@mixin language($name)
    [data-language="#{$name}"], .lang-#{$name}, .language-#{$name}
        @content

@keyframes #{fade-in}
    0%
        opacity: 0

    100%
        opacity: 1

[data-language] code, [class^="lang"] code,
pre [data-language], pre [class^="lang"]
    opacity: 0

    // IE9 supports unprefixed opacity property but does not support keyframe
    // animations.  This means in order to get the code to show up in IE 9 when
    // javascript is disabled we have to include this ugly bad boy.
    //
    // IE 10+ and all modern browsers support CSS animations
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"

    animation: 40ms ease-in-out 1000ms forwards fade-in

    &.rainbow
        animation-delay: 0ms

    &.stop-animation
        opacity: 0
        // background: red
        animation-play-state: paused

$name: ""
@mixin language($names)
    @if length($names) == 1
        [data-language="#{$name}"], .lang-#{$name}, .language-#{$name}
            @content
    @else
        @each $name in $names
            [data-language="#{$name}"], .lang-#{$name}, .language-#{$name}
                @content

@keyframes #{fade-in}
    0%
        opacity: 0

    100%
        opacity: 1

[data-language] code, [class^="lang"] code,
pre [data-language], pre [class^="lang"]
    opacity: 0

    // IE9 supports unprefixed opacity property but does not support keyframe
    // animations.  This means in order to get the code to show up in IE 9 when
    // javascript is disabled we have to include this ugly bad boy.
    //
    // IE 10+ and all modern browsers support CSS animations
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"

    animation: 40ms ease-in-out 1000ms forwards fade-in

    &.rainbow
        animation-delay: 0ms

    &.stop-animation
        opacity: 0
        // background: red
        animation-play-state: paused

Add support for passing a list of languages
Add support for passing a list of languages
