Get color value by key and type name from the $colors
map. The $colors
map is nested, so you can access the color values by multiple levels, separated into groups.
The function returns a CSS custom property with a fallback color, but you can also access just the color value setting the $only-color
value to true
.
The color
function also handles null
values, which means in Sass that your declaration block won’t render if the value you access is null.
Name | Default Value | Description |
---|---|---|
$key | The name of the color. | |
$type | 'base' | The group of the color. |
$only-color | false | Whether to get just the color value or the CSS custom property. |
$map | $colors | The name of the map from which the function will get the values. |
a {
color: color('primary');
}
.has-error {
color: color('danger', 'alert');
}
Get only the color value by key and type name from the $colors
map.
Name | Default Value | Description |
---|---|---|
$key | The name of the color. | |
$type | 'base' | The group of the color. |
$map | $colors | The name of the map from which the function will get the values. |
a {
color: color-value('primary');
}
.has-error {
color: color-value('danger', 'alert');
}
Get a contrast color (black or white) based on the given one. Spruce use this function internally at selection mixin.
Name | Description |
---|---|
$color | Any color value. |
a {
color: color-contrast('blue'); // return white (hsl(0 0% 100%))
}
Using the config()
function, you can get any key value from any map. It is a wrapper function for map.get
.
If you use the CSS custom property mode, you should always use this function because this will return you the proper custom property.
Name | Default Value | Description |
---|---|---|
$key | The name of the key. | |
$map | The name of the map. | |
$custom-property | true | Whether if you want CSS custom property or not. |
.element {
border-radius: config('border-radius-lg', $display);
block-size: 3rem;
inline-size: 3rem;
}
Get a value from the $font-sizes
map by key name. By default, the function gives back a fluid font size using clamp()
, which amount you can control using the $scaler
value.
Name | Default Value | Description |
---|---|---|
$key | The name of the font-size (defaults: h1, h2, h3, h4, h5, h6). | |
$fluid | true | Whether you want fluid declaration or not. |
$scaler | 15 | How much smaller font size do you want for the smaller screen in percentage. |
$optimal-size | 2vw + 1rem from the $settings map. | The optimal font-size value if $fluid is set to true . |
.title {
font-size: font-size('h2');
}
.serial-number {
color: color('primary');
font-size: font-size('h3', 30);
}
Add the prefix value to a CSS custom properties. To set any CSS variable with prefix use the set-css-variable
function.
Name | Description |
---|---|
$var | The name of the variable without the prefix value. |
.container {
@include layout-center(
get-css-variable(--container-gap)
);
}
It is hard to get generic font sizes that we can use throughout a whole project. Usually, we need unique ones. For this, we can set fluid declaration, similar to the font-size()
function.
Name | Default Value | Description |
---|---|---|
$size | The size of the font with a preferred unit. | |
$scaler | 15 | How much smaller font size do you want for the smaller screen in percentage. |
$optimal-size | 2vw + 1rem from the $settings map. | The optimal font-size value if $fluid is set to true . |
.testimonial-title {
font-size: responsive-font-size(4rem, 30);
}
Get a value by key name from the $settings
map.
Name | Description |
---|---|
$key | The name of the setting. |
@if setting('hyphens') {
p,
li,
h1,
h2,
h3,
h4,
h5,
h6 {
hyphens: auto;
overflow-wrap: break-word;
}
}
Get one or two (separated with a colon) values by key name from the $spacers
map.
Name | Description |
---|---|
$key | The name of the spacer or shorthand for two values separated with a colon ('m:l'). |
.prism-code {
padding: spacer('xs') spacer('m');
}
.prism-code {
padding: spacer('xs:m');
}
The shorthand syntax is useful when you want a separate value for block and inline. It only supports two value.
Create a clamp()
declaration with values from the $spacers
map or from any generic value. The goal of this helper function is to create fluid spacers more easily.
Name | Description |
---|---|
$min | The name of the spacer. |
$max | The name of the spacer. |
$optimal | The optimal value which is fallback to the optimal-spacer-size setting. |
.block {
padding: spacer-clamp('m', 'l');
}
.block {
padding: spacer-clamp('xs', 's', '2vw');
}
.block {
padding: spacer-clamp(2rem, 'l');
}
Replace any specified value in a string.
Name | Default Value | Description |
---|---|---|
$string | Initial string. | |
$search | Substring to replace. | |
$replace | '' | New value. |
// Get custom icon background for input and select fields
@mixin field-icon(
$icon,
$color
) {
background-image: url('#{svg-escape(str-replace($icon, "#COLOR#", $color))}');
}
Escape the special characters in SVG when used as a data:image
. The characters are declared under the $escaping-characters
map.
Name | Description |
---|---|
$svg | The <svg> element to escape. |
// Get custom icon background for input and select fields
@mixin field-icon(
$icon,
$color
) {
background-image: url('#{svg-escape(str-replace($icon, "#COLOR#", $color))}');
}