You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
2.3 KiB
105 lines
2.3 KiB
2 years ago
|
@use "design-system";
|
||
|
@use "sass:map";
|
||
|
|
||
|
$text-variants: (
|
||
|
display: ("md"),
|
||
|
heading: ( "sm", "md", "lg"),
|
||
|
body: ("xs", "sm", "sm-bold", "md", "md-bold", "lg-medium"),
|
||
|
);
|
||
|
|
||
|
// Variable output mixin
|
||
|
// screen size, type, size
|
||
|
|
||
|
@mixin textVariables($type, $size) {
|
||
|
font-family: var(--typography-s-#{$type}-#{$size}-font-family);
|
||
|
font-weight: var(--typography-s-#{$type}-#{$size}-font-weight);
|
||
|
font-size: var(--typography-s-#{$type}-#{$size}-font-size);
|
||
|
line-height: var(--typography-s-#{$type}-#{$size}-line-height);
|
||
|
letter-spacing: var(--typography-s-#{$type}-#{$size}-letter-spacing);
|
||
|
|
||
|
@include screen-md-min {
|
||
|
font-family: var(--typography-l-#{$type}-#{$size}-font-family);
|
||
|
font-weight: var(--typography-l-#{$type}-#{$size}-font-weight);
|
||
|
font-size: var(--typography-l-#{$type}-#{$size}-font-size);
|
||
|
line-height: var(--typography-l-#{$type}-#{$size}-line-height);
|
||
|
letter-spacing: var(--typography-l-#{$type}-#{$size}-letter-spacing);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
.text {
|
||
|
// Set default styles
|
||
|
color: var(--color-text-default);
|
||
|
font-family: var(----font-family-sans);
|
||
|
|
||
|
@each $type, $size-options in $text-variants {
|
||
|
&--#{$type} {
|
||
|
// Sets a default
|
||
|
@include textVariables($type, "md");
|
||
|
// Generates all the size options
|
||
|
@each $size in $size-options {
|
||
|
&-#{$size} {
|
||
|
@include textVariables($type, $size);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@each $variant, $color in $color-map {
|
||
|
&--color-#{$variant} {
|
||
|
color: var($color);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@each $weight in $font-weight {
|
||
|
&--font-weight-#{$weight} {
|
||
|
@if $weight == "medium" {
|
||
|
font-weight: var(--font-weight-medium);
|
||
|
}
|
||
|
|
||
|
@else {
|
||
|
font-weight: $weight;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@each $style in $font-style {
|
||
|
&--font-style-#{$style} {
|
||
|
font-style: $style;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@each $alignment in $text-align {
|
||
|
&--text-align-#{$alignment} {
|
||
|
text-align: $alignment;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@each $overflow in $overflow-wrap {
|
||
|
&--overflow-wrap-#{$overflow} {
|
||
|
overflow-wrap: $overflow;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
&--ellipsis {
|
||
|
text-overflow: ellipsis;
|
||
|
white-space: nowrap;
|
||
|
overflow: hidden;
|
||
|
}
|
||
|
|
||
|
&--text-transform-uppercase {
|
||
|
text-transform: uppercase;
|
||
|
}
|
||
|
|
||
|
&--text-transform-lowercase {
|
||
|
text-transform: lowercase;
|
||
|
}
|
||
|
|
||
|
&--text-transform-capitalize {
|
||
|
text-transform: capitalize;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|