-
Notifications
You must be signed in to change notification settings - Fork 111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a function similar to ZStack in SwiftUI #342
Comments
Assuming you want a solution and don't care if its the library that does it. You can pull this off using the zStack attrs children =
case children of
[] ->
none
bottomMost :: otherChildren ->
el
(inFront (zStack attr otherChildren) :: attr)
bottomMost then module Main exposing (..)
import Element exposing (Element, alignRight, centerY, el, fill, fillPortion, height, padding, px, rgb, rgb255, rgba, row, spacing, text, width)
import Element.Background as Background
import Element.Border as Border
import Element.Font as Font
import Element.Input as Input
type Msg
= Noop Float
main =
Element.layout [] content
content =
zStack [width fill]
[ text "Bottom"
, el [Element.moveDown 10] ( text "Middle" )
, el [Element.moveDown 20] (text "Top")
]
zStack attrs children =
case children of
[] ->
Element.none
bottomMost :: otherChildren ->
el
(Element.inFront (zStack attrs otherChildren) :: attrs)
bottomMost |
@NduatiK's suggested approach is pretty good. But I want to add a bit of weight to the desire for more formal application of this principle. I should say I'm arguing solely from the perspective of ergonomics, and have no idea how complex this would be to actually implement... For me, the simplicity and elegance of rows and columns, combined with the way Now, is this really necessary to strive for? I can't say I've ever needed an Element to "fill" the whole z direction (or what that would mean exactly). And a "pixel" length doesn't make much sense - the analog would be a thin layer, I guess? So I can't say this looks like it would be simple to do. BUT. If I could just as thoughtlessly extend elements in the z direction as I do in X and Y with rows and columns, that'd be so nice. As it is, every time I need to layer stuff in elm-ui, I stumble a bit and have to go to some old project, or search around a bit, to figure out how exactly to set it up. I also wonder if formalizing this behavior in this way might clear up some of the other issues around Just my 2 cents! |
Another issue with the |
It would be like
row
orcolumn
except it puts each element on top of the previous oneThe text was updated successfully, but these errors were encountered: