css - Why are parentheses not compiling after #{$var} in SASS? -
i have following @mixin in sass:
@mixin complextransform($axis, $perspective, $degrees, $axis2, $px) { -webkit-transform: perspective( $perspective ) rotate#{ $axis }( $degrees ) translate#{ $axis2 }( $px ); -moz-transform: perspective( $perspective ) rotate#{ $axis }( $degrees ) translate#{ $axis2 }( $px ); -o-transform: perspective( $perspective ) rotate#{ $axis }( $degrees ) translate#{ $axis2 }( $px ); -ms-transform: perspective( $perspective ) rotate#{ $axis }( $degrees ) translate#{ $axis2 }( $px ); transform: perspective( $perspective ) rotate#{ $axis }( $degrees ) translate#{ $axis2 }( $px ); } everything compiles nicely, except parentheses after rotate#{$axis} , translate#{$axis}. compiled css looks like:
-webkit-transform: perspective(600px) rotatex45deg translatey75px; -moz-transform: perspective(600px) rotatex45deg translatey75px; -o-transform: perspective(600px) rotatex45deg translatey75px; -ms-transform: perspective(600px) rotatex45deg translatey75px; transform: perspective(600px) rotatex45deg translatey75px; what doing wrong? or wrong way go doing this?
thank in advance!
eidt: nevermind! found solution... might bit 'hacky' @ least works. posting here in case else encounters same issue.
here's improved, working mixin:
@mixin complextransform($axis, $perspective, $degrees, $axis2, $px) { -webkit-transform: perspective( $perspective + px ) rotate#{$axis +"(" $degrees +deg +")" } translate#{ $axis2 +"(" + $px +px +")" }; -moz-transform: perspective( $perspective + px ) rotate#{$axis +"(" $degrees +deg +")" } translate#{ $axis2 +"(" + $px +px +")" }; -o-transform: perspective( $perspective + px ) rotate#{$axis +"(" $degrees +deg +")" } translate#{ $axis2 +"(" + $px +px +")" }; -ms-transform: perspective( $perspective + px ) rotate#{$axis +"(" $degrees +deg +")" } translate#{ $axis2 +"(" + $px +px +")" }; transform: perspective( $perspective + px ) rotate#{$axis +"(" $degrees +deg +")" } translate#{ $axis2 +"(" + $px +px +")" }; }
with little modification, find mixin suit requirements better:
@mixin keyframebuilder($animationname, $f, $startparams, $stopparams) { @-webkit-keyframes $animationname { { -webkit-transform: $f+'('#{$startparams}')' } { -webkit-transform: $f+'('#{$stopparams}')' } } @-moz-keyframes $animationname { { -moz-transform: $f+'('#{$startparams}')' } { -moz-transform: $f+'('#{$stopparams}')' } } ... (other vendor prefixes) } so when call
@include keyframebuilder(spin, rotate, 0deg, 360deg); it produces:
@-webkit-keyframes spin { { -webkit-transform: rotate(0deg); } { -webkit-transform: rotate(360deg); } } @-moz-keyframes spin { { -moz-transform: rotate(0deg); } { -moz-transform: rotate(360deg); } } @-o-keyframes spin { { -o-transform: rotate(0deg); } { -o-transform: rotate(360deg); } } @keyframes spin { { transform: rotate(0deg); } { transform: rotate(360deg); } } i hope someone! :)
Comments
Post a Comment