@@ -108,9 +108,7 @@ combine transform combined =
108108
109109render : Combined -> String
110110render combined =
111- [ render_ translate_ combined. xy
112- , render_ translateX_ combined. x
113- , render_ translateY_ combined. y
111+ [ translate_ combined
114112 , render_ scale_ combined. scale
115113 , render_ rotate_ combined. rotate
116114 ]
@@ -125,42 +123,64 @@ render_ f =
125123
126124scale_ : ( Float , Float ) -> String
127125scale_ ( x_, y_ ) =
128- join [ " scale(" , String . fromFloat x_, " ," , String . fromFloat y_, " )" ]
126+ String . concat [ " scale3d(" , String . fromFloat x_, " ," , String . fromFloat y_, " ,1)" ]
127+
128+
129+ translate_ : Combined -> String
130+ translate_ combined =
131+ case ( combined. xy, combined. x, combined. y ) of
132+ ( Just ( x_, y_ ) , _, _ ) ->
133+ translateXY_ x_ y_
134+
135+ ( Nothing , Just x_, Nothing ) ->
136+ translateX_ x_
137+
138+ ( Nothing , Nothing , Just y_ ) ->
139+ translateY_ y_
140+
141+ ( Nothing , Just x_, Just y_ ) ->
142+ translateXY_ x_ y_
143+
144+ ( Nothing , Nothing , Nothing ) ->
145+ " "
146+
147+
148+ translateXY_ : Float -> Float -> String
149+ translateXY_ x_ y_ =
150+ String . concat [ " translate3d(" , px x_, " ," , px y_, " ,0)" ]
129151
130152
131153translateX_ : Float -> String
132154translateX_ n =
133- join [ " translateX (" , px n, " )" ]
155+ String . concat [ " translate3d (" , px n, " ,0,0 )" ]
134156
135157
136158translateY_ : Float -> String
137159translateY_ n =
138- join [ " translateY(" , px n, " )" ]
139-
140-
141- translate_ : ( Float , Float ) -> String
142- translate_ ( x_, y_ ) =
143- join [ " translate(" , px x_, " ," , px y_, " )" ]
160+ String . concat [ " translate3d(0," , px n, " ,0)" ]
144161
145162
146163rotate_ : Float -> String
147164rotate_ n =
148- join [ " rotate(" , deg n, " )" ]
149-
150-
151- join : List String -> String
152- join =
153- String . join " "
165+ String . concat [ " rotate3d(0,0,1," , deg n, " )" ]
154166
155167
156168px : Float -> String
157169px n =
158- String . fromFloat n ++ " px"
170+ if n == 0 then
171+ " 0"
172+
173+ else
174+ String . fromFloat n ++ " px"
159175
160176
161177deg : Float -> String
162178deg n =
163- String . fromFloat n ++ " deg"
179+ if n == 0 then
180+ " 0"
181+
182+ else
183+ String . fromFloat n ++ " deg"
164184
165185
166186
0 commit comments