From Sass for Web Designers:
Where a mixin will write the same rules in each declaration it’s called from, @extend will create multiple, comma-separated selectors for shared styles. It’s good to keep that difference in mind when you’re debating which to use
Also remember that @extend
is to apply the same rules to different elements while a @mixin
can do that plus act as a function that you can pass arguments to. Cedarholm's opinion is that you shoud consider what the CSS output will look like when determining which one to use.
This is a Solutions Log post.