Overview
CSS variables are entities defined by CSS authors that contain specific values to be reused throughout a document.
Custom properties are subject to the cascade and inherit their value from their parent.
This virtual variable style will make Shadow DOM responsive and customizable in style.
<div class="">.\$size\:2\.5rem {
--size: 2.5rem
}Basic usage
Stylize a shadow dom
Let's say this's your custom element and its tree:
<test-element>
▼ #shadow-root (open)
<button part="button"></button>
</test-element>and the element contains an encapsulated style like this:
:host {
--button-bg: red;
}
[part=button] {
background: var(--button-bg);
}Elements in the shadow DOM cannot be selected via descendant selectors, but you can:
<test-element class="$button-bg:red $button-bg:pink@sm">
▼ #shadow-root (open)
<button part="button"></button>
</test-element>Applying with functions
<div class="$size:$(custom-size)">...</div>Master supports native CSS variables and functions, just add var(--key) or use shorthand$(key) for variables.
You can also use calc(expression), env(expression) and other CSS functions if the property supports it.
To learn more, see the Functions documentation.
Conditionally apply
States and selectors
<div class="$size:2.5rem:hover">...</div>Master supports all native CSS selectors, just add :hover, :disabled, chaining, combinators and other CSS selectors as usual.
To learn more, see the Selectors documentation.
Responsive breakpoints
<div class="$size:2.5rem@sm">...</div>Responsive breakpoints can be applied to all styles. Some available breakpoints are 3xs, 2xs, xs, sm,md, lg, xl, 2xl, 3xl, 4xl. Arbitrary breakpoints can be specified through comparison operators >, >=, <, <=.
To learn more, see the Breakpoints documentation.
Print format and media queries
<div class="$size:2.5rem@print">...</div>Master supports media types like print, screen, speech, all, and other media queries.
To learn more, see the Media Queries documentation.
Dark mode and color schemes
<div class="$size:2.5rem@dark">...</div>Master uses the selector html.dark to support color schemes. Now, you can easily fine-tune your style for the color schemes.
To learn more, see the Color Schemes documentation.