@use "sass:list"; @use "sass:map"; @use './variables/colors.scss'; @use './variables/typographies.scss'; @mixin patchColor($name, $color) { &.bg-#{$name} { background-color: $color; } } .patch { display: inline-block; vertical-align: bottom; margin-right: .3em; width: 1.5em; height: 1.5em; border-radius: 50%; background-color: inherit; @include patchColor('Primary_100', colors.$Primary_100); @include patchColor('Primary_200', colors.$Primary_200); @include patchColor('Primary_300', colors.$Primary_300); @include patchColor('Primary_400', colors.$Primary_400); @include patchColor('Primary_500', colors.$Primary_500); @include patchColor('Primary_600', colors.$Primary_600); @include patchColor('Primary_700', colors.$Primary_700); @include patchColor('Primary_800', colors.$Primary_800); @include patchColor('Primary_900', colors.$Primary_900); @include patchColor('Secondary_100', colors.$Secondary_100); @include patchColor('Secondary_200', colors.$Secondary_200); @include patchColor('Secondary_300', colors.$Secondary_300); @include patchColor('Secondary_400', colors.$Secondary_400); @include patchColor('Secondary_500', colors.$Secondary_500); @include patchColor('Secondary_600', colors.$Secondary_600); @include patchColor('Secondary_700', colors.$Secondary_700); @include patchColor('Secondary_800', colors.$Secondary_800); @include patchColor('Secondary_900', colors.$Secondary_900); @include patchColor('Neutral_100', colors.$Neutral_100); @include patchColor('Neutral_200', colors.$Neutral_200); @include patchColor('Neutral_300', colors.$Neutral_300); @include patchColor('Neutral_400', colors.$Neutral_400); @include patchColor('Neutral_500', colors.$Neutral_500); @include patchColor('Neutral_600', colors.$Neutral_600); @include patchColor('Neutral_700', colors.$Neutral_700); @include patchColor('Neutral_800', colors.$Neutral_800); @include patchColor('Neutral_900', colors.$Neutral_900); } $breakpoint: 768px; @mixin desktop() { @media (min-width: $breakpoint) { @content; } } @mixin typographyClass($name, $typographyMap) { .#{$name} { @each $prop, $value in $typographyMap { #{$prop}: $value; } } } @include typographyClass('Body_Large', typographies.$Body_Large); @include typographyClass('Body_Medium', typographies.$Body_Medium); @include typographyClass('Body_Small', typographies.$Body_Small); @include typographyClass('Body_Small_Uppercase', typographies.$Body_Small_Uppercase); @include typographyClass('Title_Large', typographies.$📱_Title_Large); @include typographyClass('Title_Medium', typographies.$📱_Title_Medium); @include typographyClass('Title_Small', typographies.$📱_Title_Small); @include desktop() { @include typographyClass('Title_Large', typographies.$🖥_Title_Large); @include typographyClass('Title_Medium', typographies.$🖥_Title_Medium); @include typographyClass('Title_Small', typographies.$🖥_Title_Small); }