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

simple-transform-mixin not working #170

Closed
paulchrablass opened this Issue Jun 5, 2014 · 1 comment

Comments

Projects
None yet
3 participants
@paulchrablass

paulchrablass commented Jun 5, 2014

Hi,

when using the compass mixin "simple-transform" I get the following error while calling it with a grunt compass task:

error static/css/style.scss (Line 565 of _transform.scss: Mixin transform-origin takes 1 argument but 4 were passed.)

Here is my scss code:

@include simple-transform(1.5, 45deg, 1em, 2em, 5deg, -5deg, 100%, 0%);

Removing the comma between the two transform-origin-values didn't help.

I'm using Sass 3.3.5 and Compass 1.0.0.alpha.19

The interesthing thing is: When I compile scss without grunt (only compass compile), this doesn't happen.

@lukeheath

This comment has been minimized.

Show comment
Hide comment
@lukeheath

lukeheath Jun 9, 2014

Using Compass v0.12.6 / grunt-contrib-compass v0.8.0.

Very similar issue here with the mixin "transition-duration".

After calling:

@include transition-duration(0.5s);

I receive this error:

error assets/styles/importer/importer.scss (Line 72 of _transition.scss: Mixin experimental takes 0 arguments but 8 were passed.)

I went poking around in the Compass gem at /compass/css3/_transition.scss and found that it calls a mixin called "experimental" and does pass 8 arguments:

@include experimental(transition-duration, $durations, -moz, -webkit, -o, not -ms, not -khtml, official );

So I went and checked the mixin definition at /compass/css3/_shared.scss and the definition does accept 8 arguments:

@mixin experimental($property, $value, $moz : $experimental-support-for-mozilla, $webkit : $experimental-support-for-webkit, $o : $experimental-support-for-opera, $ms : $experimental-support-for-microsoft, $khtml : $experimental-support-for-khtml, $official : true ) { @if $webkit and $experimental-support-for-webkit { -webkit-#{$property} : $value; } @if $khtml and $experimental-support-for-khtml { -khtml-#{$property} : $value; } @if $moz and $experimental-support-for-mozilla { -moz-#{$property} : $value; } @if $ms and $experimental-support-for-microsoft { -ms-#{$property} : $value; } @if $o and $experimental-support-for-opera { -o-#{$property} : $value; } @if $official { #{$property} : $value; } }

Strange. I changed the name of the mixin definition to "experimental-test", but kept the reference in _transition pointing at "experimental". I expected to get a "mixin not found" error, but instead got the same "too many arguments" error. I then changed my reference in _transition.scss to point to the newly renamed "experimental-test" like so:

@include experimental-test(transition-duration, $durations, -moz, -webkit, -o, not -ms, not -khtml, official );

And voila, it works! Of course hacking the gem directly isn't a sustainable solution, but it does appear that somehow grunt-contrib-compass is referencing a different version of the "experimental" mixin, and that version does not accept any arguments. I suspect the exact same thing is happening for @paulchrablass above and "simple-transform". I tried to dig into simple-transform-mixin to help find a solution but haven't found anything yet. I don't have any other versions of Compass installed, so not sure where it's getting the phantom mixin from. I'll keep digging, but wanted to share what I've discovered so far.

lukeheath commented Jun 9, 2014

Using Compass v0.12.6 / grunt-contrib-compass v0.8.0.

Very similar issue here with the mixin "transition-duration".

After calling:

@include transition-duration(0.5s);

I receive this error:

error assets/styles/importer/importer.scss (Line 72 of _transition.scss: Mixin experimental takes 0 arguments but 8 were passed.)

I went poking around in the Compass gem at /compass/css3/_transition.scss and found that it calls a mixin called "experimental" and does pass 8 arguments:

@include experimental(transition-duration, $durations, -moz, -webkit, -o, not -ms, not -khtml, official );

So I went and checked the mixin definition at /compass/css3/_shared.scss and the definition does accept 8 arguments:

@mixin experimental($property, $value, $moz : $experimental-support-for-mozilla, $webkit : $experimental-support-for-webkit, $o : $experimental-support-for-opera, $ms : $experimental-support-for-microsoft, $khtml : $experimental-support-for-khtml, $official : true ) { @if $webkit and $experimental-support-for-webkit { -webkit-#{$property} : $value; } @if $khtml and $experimental-support-for-khtml { -khtml-#{$property} : $value; } @if $moz and $experimental-support-for-mozilla { -moz-#{$property} : $value; } @if $ms and $experimental-support-for-microsoft { -ms-#{$property} : $value; } @if $o and $experimental-support-for-opera { -o-#{$property} : $value; } @if $official { #{$property} : $value; } }

Strange. I changed the name of the mixin definition to "experimental-test", but kept the reference in _transition pointing at "experimental". I expected to get a "mixin not found" error, but instead got the same "too many arguments" error. I then changed my reference in _transition.scss to point to the newly renamed "experimental-test" like so:

@include experimental-test(transition-duration, $durations, -moz, -webkit, -o, not -ms, not -khtml, official );

And voila, it works! Of course hacking the gem directly isn't a sustainable solution, but it does appear that somehow grunt-contrib-compass is referencing a different version of the "experimental" mixin, and that version does not accept any arguments. I suspect the exact same thing is happening for @paulchrablass above and "simple-transform". I tried to dig into simple-transform-mixin to help find a solution but haven't found anything yet. I don't have any other versions of Compass installed, so not sure where it's getting the phantom mixin from. I'll keep digging, but wanted to share what I've discovered so far.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment