diff --git a/dist/_bourbon.scss b/dist/_bourbon.scss index 0eb740000..d0168c8f6 100644 --- a/dist/_bourbon.scss +++ b/dist/_bourbon.scss @@ -11,6 +11,7 @@ @import "helpers/shape-size-stripper"; // Custom Functions +@import "functions/assign"; @import "functions/flex-grid"; @import "functions/grid-width"; @import "functions/golden-ratio"; diff --git a/dist/addons/_html5-input-types.scss b/dist/addons/_html5-input-types.scss index 26fc87902..9e9324ae0 100644 --- a/dist/addons/_html5-input-types.scss +++ b/dist/addons/_html5-input-types.scss @@ -20,29 +20,19 @@ $inputs-list: 'input[type="email"]', 'input[type="time"]', 'input[type="week"]'; -$unquoted-inputs-list: (); -@each $input-type in $inputs-list { - $unquoted-inputs-list: append($unquoted-inputs-list, unquote($input-type), comma) !global; -} - -$all-text-inputs: $unquoted-inputs-list; - +// Bare inputs +//************************************************************************// +$all-text-inputs: assign-inputs($inputs-list); // Hover Pseudo-class //************************************************************************// -$all-text-inputs-hover: (); -@each $input-type in $unquoted-inputs-list { - $input-type-hover: $input-type + ":hover"; - $all-text-inputs-hover: append($all-text-inputs-hover, $input-type-hover, comma) !global; -} +$all-text-inputs-hover: assign-inputs($inputs-list, hover); // Focus Pseudo-class //************************************************************************// -$all-text-inputs-focus: (); -@each $input-type in $unquoted-inputs-list { - $input-type-focus: $input-type + ":focus"; - $all-text-inputs-focus: append($all-text-inputs-focus, $input-type-focus, comma) !global; -} +$all-text-inputs-focus: assign-inputs($inputs-list, focus); + + // You must use interpolation on the variable: // #{$all-text-inputs} @@ -65,37 +55,23 @@ $inputs-button-list: 'input[type="button"]', 'input[type="reset"]', 'input[type="submit"]'; -$unquoted-inputs-button-list: (); -@each $input-type in $inputs-button-list { - $unquoted-inputs-button-list: append($unquoted-inputs-button-list, unquote($input-type), comma); -} - -$all-button-inputs: $unquoted-inputs-button-list; - +// Bare inputs +//************************************************************************// +$all-button-inputs: assign-inputs($inputs-button-list); // Hover Pseudo-class //************************************************************************// -$all-button-inputs-hover: (); -@each $input-type in $unquoted-inputs-button-list { - $input-type-hover: $input-type + ":hover"; - $all-button-inputs-hover: append($all-button-inputs-hover, $input-type-hover, comma); -} +$all-button-inputs-hover: assign-inputs($inputs-button-list, hover); // Focus Pseudo-class //************************************************************************// -$all-button-inputs-focus: (); -@each $input-type in $unquoted-inputs-button-list { - $input-type-focus: $input-type + ":focus"; - $all-button-inputs-focus: append($all-button-inputs-focus, $input-type-focus, comma); -} +$all-button-inputs-focus: assign-inputs($inputs-button-list, focus); // Active Pseudo-class //************************************************************************// -$all-button-inputs-active: (); -@each $input-type in $unquoted-inputs-button-list { - $input-type-active: $input-type + ":active"; - $all-button-inputs-active: append($all-button-inputs-active, $input-type-active, comma); -} +$all-button-inputs-active: assign-inputs($inputs-button-list, active); + + // You must use interpolation on the variable: // #{$all-button-inputs} diff --git a/dist/addons/_prefixer.scss b/dist/addons/_prefixer.scss index bac1aed2c..c32f50275 100644 --- a/dist/addons/_prefixer.scss +++ b/dist/addons/_prefixer.scss @@ -37,9 +37,9 @@ } @mixin disable-prefix-for-all() { - $prefix-for-webkit: false; - $prefix-for-mozilla: false; - $prefix-for-microsoft: false; - $prefix-for-opera: false; - $prefix-for-spec: false; + $prefix-for-webkit: false !global; + $prefix-for-mozilla: false !global; + $prefix-for-microsoft: false !global; + $prefix-for-opera: false !global; + $prefix-for-spec: false !global; } diff --git a/dist/css3/_keyframes.scss b/dist/css3/_keyframes.scss index 62a9dc4b6..742bb783f 100644 --- a/dist/css3/_keyframes.scss +++ b/dist/css3/_keyframes.scss @@ -8,29 +8,29 @@ @if $original-prefix-for-webkit { @include disable-prefix-for-all(); - $prefix-for-webkit: true; + $prefix-for-webkit: true !global; @-webkit-keyframes #{$name} { @content; } } @if $original-prefix-for-mozilla { @include disable-prefix-for-all(); - $prefix-for-mozilla: true; + $prefix-for-mozilla: true !global; @-moz-keyframes #{$name} { @content; } } @if $original-prefix-for-spec { @include disable-prefix-for-all(); - $prefix-for-spec: true; + $prefix-for-spec: true !global; @keyframes #{$name} { @content; } } - $prefix-for-webkit: $original-prefix-for-webkit; - $prefix-for-mozilla: $original-prefix-for-mozilla; - $prefix-for-microsoft: $original-prefix-for-microsoft; - $prefix-for-opera: $original-prefix-for-opera; - $prefix-for-spec: $original-prefix-for-spec; + $prefix-for-webkit: $original-prefix-for-webkit !global; + $prefix-for-mozilla: $original-prefix-for-mozilla !global; + $prefix-for-microsoft: $original-prefix-for-microsoft !global; + $prefix-for-opera: $original-prefix-for-opera !global; + $prefix-for-spec: $original-prefix-for-spec !global; } diff --git a/dist/css3/_placeholder.scss b/dist/css3/_placeholder.scss index 22fd92b4f..5682fd097 100644 --- a/dist/css3/_placeholder.scss +++ b/dist/css3/_placeholder.scss @@ -1,29 +1,8 @@ -$placeholders: '-webkit-input-placeholder', - '-moz-placeholder', - '-ms-input-placeholder'; - @mixin placeholder { + $placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input"; @each $placeholder in $placeholders { - @if $placeholder == "-webkit-input-placeholder" { - &::#{$placeholder} { - @content; - } - } - @else if $placeholder == "-moz-placeholder" { - // FF 18- - &:#{$placeholder} { - @content; - } - - // FF 19+ - &::#{$placeholder} { - @content; - } - } - @else { - &:#{$placeholder} { - @content; - } + &:#{$placeholder}-placeholder { + @content; } } } diff --git a/dist/functions/_assign.scss b/dist/functions/_assign.scss new file mode 100644 index 000000000..9a1db93ef --- /dev/null +++ b/dist/functions/_assign.scss @@ -0,0 +1,11 @@ +@function assign-inputs($inputs, $pseudo: null) { + $list : (); + + @each $input in $inputs { + $input: unquote($input); + $input: if($pseudo, $input + ":" + $pseudo, $input); + $list: append($list, $input, comma); + } + + @return $list; +} \ No newline at end of file