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

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -