From 5319c648229ab5e0832f404cfa593a28839e81d1 Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Tue, 1 Aug 2017 18:59:26 -0400 Subject: [PATCH] Start extracting generators --- src/generators.less | 2 ++ src/generators/backgrounds.less | 23 +++++++++++++++++++++++ src/generators/borders.less | 27 +++++++++++++++++++++++++++ src/utilities.less | 2 ++ src/utilities/backgrounds.less | 24 ------------------------ src/utilities/borders.less | 28 ---------------------------- 6 files changed, 54 insertions(+), 52 deletions(-) create mode 100644 src/generators.less create mode 100644 src/generators/backgrounds.less create mode 100644 src/generators/borders.less diff --git a/src/generators.less b/src/generators.less new file mode 100644 index 000000000..60b75093b --- /dev/null +++ b/src/generators.less @@ -0,0 +1,2 @@ +@import "generators/backgrounds"; +@import "generators/borders"; diff --git a/src/generators/backgrounds.less b/src/generators/backgrounds.less new file mode 100644 index 000000000..f380ced79 --- /dev/null +++ b/src/generators/backgrounds.less @@ -0,0 +1,23 @@ +.generate-bg-utility(@name; @variant; @color) when (@variant = none) { + .bg-@{name} { background-color: @color; } +} + +.generate-bg-utility(@name; @variant; @color) when not (@variant = none) { + .bg-@{name}-@{variant} { background-color: @color; } +} + +.generate-backgrounds(@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-bg-utility(@color-name; @variant-name; @variant-color); +} + +.generate-backgrounds(@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-bg-utility(@color-name; @variant-name; @variant-color); + .generate-backgrounds(@color-name; @color-variants; @i + 1); +} diff --git a/src/generators/borders.less b/src/generators/borders.less new file mode 100644 index 000000000..8bc1eba4d --- /dev/null +++ b/src/generators/borders.less @@ -0,0 +1,27 @@ +.generate-border-color-utility(@name; @variant; @color) when (@variant = none) { + .border-@{name} { + border-color: @color; + } +} + +.generate-border-color-utility(@name; @variant; @color) when not (@variant = none) { + .border-@{name}-@{variant} { + border-color: @color; + } +} + +.generate-border-colors(@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-border-color-utility(@color-name; @variant-name; @variant-color); +} + +.generate-border-colors(@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-border-color-utility(@color-name; @variant-name; @variant-color); + .generate-border-colors(@color-name; @color-variants; @i + 1); +} diff --git a/src/utilities.less b/src/utilities.less index f5cc00e54..9df286f5d 100644 --- a/src/utilities.less +++ b/src/utilities.less @@ -1,3 +1,5 @@ +@import "generators"; + @import "colors"; @import "utilities/backgrounds"; diff --git a/src/utilities/backgrounds.less b/src/utilities/backgrounds.less index fefd65116..68f725b62 100644 --- a/src/utilities/backgrounds.less +++ b/src/utilities/backgrounds.less @@ -10,30 +10,6 @@ @bg-highlight: hsl(215, 99%, 63%); -.generate-bg-utility(@name; @variant; @color) when (@variant = none) { - .bg-@{name} { background-color: @color; } -} - -.generate-bg-utility(@name; @variant; @color) when not (@variant = none) { - .bg-@{name}-@{variant} { background-color: @color; } -} - -.generate-backgrounds(@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-bg-utility(@color-name; @variant-name; @variant-color); -} - -.generate-backgrounds(@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-bg-utility(@color-name; @variant-name; @variant-color); - .generate-backgrounds(@color-name; @color-variants; @i + 1); -} - .bg-light { background-color: @bg-light; } .bg-light-soft { background-color: @bg-light-soft; } .bg-light-softer { background-color: @bg-light-softer; } diff --git a/src/utilities/borders.less b/src/utilities/borders.less index fd75ba738..1c77bc328 100644 --- a/src/utilities/borders.less +++ b/src/utilities/borders.less @@ -18,34 +18,6 @@ @border-width-3: 4px; @border-width-4: 8px; -.generate-border-color-utility(@name; @variant; @color) when (@variant = none) { - .border-@{name} { - border-color: @color; - } -} - -.generate-border-color-utility(@name; @variant; @color) when not (@variant = none) { - .border-@{name}-@{variant} { - border-color: @color; - } -} - -.generate-border-colors(@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-border-color-utility(@color-name; @variant-name; @variant-color); -} - -.generate-border-colors(@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-border-color-utility(@color-name; @variant-name; @variant-color); - .generate-border-colors(@color-name; @color-variants; @i + 1); -} - // Base .border { border: @border-width-1 solid @border-default-color; } .border-t { border-top: @border-width-1 solid @border-default-color; }