From bde4d1c9836bfb4d337ed9d6474b1e52259a45c4 Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Thu, 3 Aug 2017 15:23:49 -0400 Subject: [PATCH] Use generic generators for text colors --- src/generators/class-variants.less | 14 +++++++++++-- src/generators/text-colors.less | 32 ++++++++++-------------------- src/utilities/text.less | 19 ++---------------- 3 files changed, 25 insertions(+), 40 deletions(-) diff --git a/src/generators/class-variants.less b/src/generators/class-variants.less index 3692c50ee..1f77d9b4d 100644 --- a/src/generators/class-variants.less +++ b/src/generators/class-variants.less @@ -1,4 +1,9 @@ -.generate-utility-variant(@utility; @variant; @ruleset) { +.generate-utility-variant(@utility; @variant; @ruleset) when (extract(@variant, 1) = default) { + @__variant-value: @variant; + .define-selector(~"@{utility}"; @ruleset); +} + +.generate-utility-variant(@utility; @variant; @ruleset) when not (extract(@variant, 1) = default) { @variant-name: extract(@variant, 1); @__variant-value: @variant; .define-selector(~"@{utility}-@{variant-name}"; @ruleset); @@ -18,7 +23,12 @@ .generate-utility-variants(@utility; @variants; @ruleset; @i + 1); } -.generate-screen-utility-variant(@utility; @variant; @screen-name; @ruleset) { +.generate-screen-utility-variant(@utility; @variant; @screen-name; @ruleset) when (extract(@variant, 1) = default) { + @__variant-value: @variant; + .define-selector(~"@{screen-name}\:@{utility}"; @ruleset); +} + +.generate-screen-utility-variant(@utility; @variant; @screen-name; @ruleset) when not (extract(@variant, 1) = default) { @variant-name: extract(@variant, 1); @__variant-value: @variant; .define-selector(~"@{screen-name}\:@{utility}-@{variant-name}"; @ruleset); diff --git a/src/generators/text-colors.less b/src/generators/text-colors.less index d0f3fc44f..742a5a514 100644 --- a/src/generators/text-colors.less +++ b/src/generators/text-colors.less @@ -1,27 +1,17 @@ -.generate-text-color-utility(@name; @variant; @color) when (@variant = default) { - .define-selector(~"text-@{name}"; { color: @color; }); +.define-text-color(@color-name; @variants) { + .generate-utility-variants(~"text-@{color-name}"; @variants; { + font-size: extract(@__variant-value, 2); + }); } -.generate-text-color-utility(@name; @variant; @color) when not (@variant = default) { - .define-selector(~"text-@{name}-@{variant}"; { color: @color; }); +.define-text-color(@color-name; @variants; none) { + .define-text-color(@color-name; @variants); } -.generate-text-color-utilities(@color-name; @color-variants; @i: 1) when (@i <= length(@color-variants)) and (length(extract(@color-variants, @i)) = 1) { - @variant-name: extract(@color-variants, 1); - @variant-color: extract(@color-variants, 2); - - .generate-text-color-utility(@color-name; @variant-name; @variant-color); +.define-text-color(@color-name; @variants; @screens) when not (@screens = none) { + .define-text-color(@color-name; @variants); + .generate-responsive-utility-variants(~"text-@{color-name}"; @variants; @screens; { + font-size: extract(@__variant-value, 2); + }); } -.generate-text-color-utilities(@color-name; @color-variants; @i: 1) when (@i <= length(@color-variants)) and (length(extract(@color-variants, @i)) = 2) { - @variant: extract(@color-variants, @i); - @variant-name: extract(@variant, 1); - @variant-color: extract(@variant, 2); - - .generate-text-color-utility(@color-name; @variant-name; @variant-color); - .generate-text-color-utilities(@color-name; @color-variants; @i + 1); -} - -.define-text-color(@color-name; @color-variants) { - .generate-text-color-utilities(@color-name; @color-variants); -} diff --git a/src/utilities/text.less b/src/utilities/text.less index 9c2f8ba0e..60923b200 100644 --- a/src/utilities/text.less +++ b/src/utilities/text.less @@ -68,14 +68,14 @@ 'soft' @text-light-soft, 'softer' @text-light-softer, 'softest' @text-light-softest -;); +; @screens); .define-text-color(dark; default @text-dark, 'soft' @text-dark-soft, 'softer' @text-dark-softer, 'softest' @text-dark-softest -;); +; @screens); // Line heights .leading-none { line-height: 1; } @@ -115,21 +115,6 @@ } .responsive({ - &text-xs { .text-xs; } - &text-sm { .text-sm; } - &text-base { .text-base; } - &text-lg { .text-lg; } - &text-xl { .text-xl; } - &text-2xl { .text-2xl; } - &text-3xl { .text-3xl; } - &text-light { .text-light; } - &text-light-soft { .text-light-soft; } - &text-light-softer { .text-light-softer; } - &text-light-softest { .text-light-softest; } - &text-dark { .text-dark; } - &text-dark-soft { .text-dark-soft; } - &text-dark-softer { .text-dark-softer; } - &text-dark-softest { .text-dark-softest; } &leading-none { .leading-none; } &leading-tight { .leading-tight; } &leading-normal { .leading-normal; }