An over-engineering audit of the whole tree, applied in five reviewed batches. Behaviour stays the same except where UPGRADE.md says otherwise. PHP: the showcase and error-page stylesheets are prebuilt into resources/dist by bin/stylesheets.mjs, through Vite's own postcss-import (first occurrence kept, the order an application's build gives), instead of Stylesheets::bundle() inlining imports on every request; only the import walk DesignGuard needs stays. SchemeStylesheet::withProfiles() replaces three copies of the scheme-plus-profiles loop, material:scheme leaves spec and contrast checks to the node script that already made them, and the error page's scheme cache, the hashed view namespace, the translations path with no lang/ folder and DesignGuard's 1.x-name hints are gone. JS: the androidx shape port progress.js and both bin scripts each carried lives once in resources/js/shapes.js (the generated SVGs are unchanged); util.js holds ringIndex(), ms(), reopenGuard() and remember(), which were written out several times; listeners are released through AbortController; tooltip.js's hoverPopover() serves the rich tooltip too. CSS: every rule for an element inside the navigation rail queries `--md-navigation-rail-value` instead of repeating the seven collapsed conditions under five media branches; badge, alert, progress, slider and button read one non-inheriting colour-role table (components/color.css); the dialog chrome, the submenu's popover chrome, the chip's state layer and touch target, and the visually-hidden inputs use the shared rules they copied; foundation/tokens.css is folded into foundation.css. Views: Support\Field and Support\Link replace the error-key, bound-value and link-attribute blocks copied into the fields and link components; the timepicker period group, the menu filter and the showcase head are partials; the datepicker's steppers and entry fields are loops; component docblocks no longer restate SKILL.md. Tests and tooling: one dataset-driven ComponentStylesheetsTest replaces four per-group files, DesignGuardTest and the layout-component tests use datasets, browser tests share one ready() helper, CSS parsing lives in ComponentStylesheet alone. docs/audits and the finding IDs citing it are removed, as are pestphp/pest-plugin-laravel, the unused composer scripts and check:font; the lint job runs in the feature job, which now installs node packages so the prebuilt-stylesheet staleness test runs in CI. Feature suite 1177 passed, Chrome browser suite 299 passed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
593 lines
20 KiB
CSS
593 lines
20 KiB
CSS
@layer material.reset, material.tokens, material.base, material.layout, material.components, material.text, material.visibility;
|
|
@layer material.reset, material.tokens, material.base, material.layout, material.components, material.text, material.visibility;
|
|
@layer material.reset, material.tokens, material.base, material.layout, material.components, material.text, material.visibility;
|
|
@layer material.reset, material.tokens, material.base, material.layout, material.components, material.text, material.visibility;
|
|
@layer material.reset, material.tokens, material.base, material.layout, material.components, material.text, material.visibility;
|
|
@layer material.reset, material.tokens, material.base, material.layout, material.components, material.text, material.visibility;
|
|
@layer material.reset, material.tokens, material.base, material.layout, material.components, material.text, material.visibility;
|
|
@layer material.components {
|
|
[data-md-icon] {
|
|
flex-shrink: 0;
|
|
inline-size: var(--md-icon-size, 24px);
|
|
block-size: var(--md-icon-size, 24px);
|
|
}
|
|
|
|
[data-md-icon][data-md-mirror-rtl]:is([dir='rtl'], [dir='rtl'] *) {
|
|
transform: scaleX(-1);
|
|
}
|
|
}
|
|
@layer material.components {
|
|
[data-md-loading] {
|
|
display: inline-flex;
|
|
flex-shrink: 0;
|
|
align-items: center;
|
|
justify-content: center;
|
|
inline-size: var(--md-loading-size, 48px);
|
|
block-size: var(--md-loading-size, 48px);
|
|
color: var(--md-sys-color-primary);
|
|
|
|
& > svg {
|
|
inline-size: 100%;
|
|
block-size: 100%;
|
|
}
|
|
|
|
& > [data-md-loading-still] {
|
|
display: none;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
& > [data-md-loading-animated] {
|
|
display: none;
|
|
}
|
|
|
|
& > [data-md-loading-still] {
|
|
display: block;
|
|
}
|
|
}
|
|
}
|
|
|
|
[data-md-loading][data-md-contained] {
|
|
border-radius: var(--md-sys-shape-corner-full);
|
|
background-color: var(--md-sys-color-primary-container);
|
|
color: var(--md-sys-color-on-primary-container);
|
|
}
|
|
}
|
|
@layer material.components {
|
|
[data-md-tooltip-anchor] {
|
|
display: inline-flex;
|
|
}
|
|
|
|
[data-md-tooltip] {
|
|
inset: auto;
|
|
margin: 0;
|
|
max-inline-size: 200px;
|
|
overflow: visible;
|
|
border-width: 0;
|
|
border-radius: var(--md-sys-shape-corner-xs);
|
|
padding-block: var(--md-sys-measurement-space50);
|
|
padding-inline: var(--md-sys-measurement-space100);
|
|
background-color: var(--md-sys-color-inverse-surface);
|
|
color: var(--md-sys-color-inverse-on-surface);
|
|
font: var(--md-sys-typescale-body-sm);
|
|
letter-spacing: var(--md-sys-typescale-body-sm-tracking);
|
|
font-variation-settings: normal;
|
|
text-align: center;
|
|
white-space: normal;
|
|
pointer-events: none;
|
|
opacity: 0;
|
|
transition-property: opacity;
|
|
transition-duration: var(--md-sys-motion-effects-fast-duration);
|
|
transition-timing-function: var(--md-sys-motion-effects-fast);
|
|
|
|
&:popover-open:not([data-md-popover-closing]) {
|
|
opacity: 1;
|
|
|
|
@starting-style {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
[data-md-tooltip]:is([data-md-side='top'], [data-md-side='bottom']) {
|
|
margin-block: var(--md-sys-measurement-space50);
|
|
position-try-fallbacks: flip-block;
|
|
}
|
|
|
|
[data-md-tooltip]:is([data-md-side='left'], [data-md-side='right']) {
|
|
margin-inline: var(--md-sys-measurement-space50);
|
|
position-try-fallbacks: flip-inline;
|
|
}
|
|
|
|
[data-md-tooltip][data-md-side='top'] {
|
|
position-area: top;
|
|
}
|
|
|
|
[data-md-tooltip][data-md-side='bottom'] {
|
|
position-area: bottom;
|
|
}
|
|
|
|
[data-md-tooltip][data-md-side='left'] {
|
|
position-area: left;
|
|
}
|
|
|
|
[data-md-tooltip][data-md-side='right'] {
|
|
position-area: right;
|
|
}
|
|
}
|
|
@layer material.components {
|
|
@property --md-color {
|
|
syntax: '*';
|
|
inherits: false;
|
|
}
|
|
|
|
@property --md-on-color {
|
|
syntax: '*';
|
|
inherits: false;
|
|
}
|
|
|
|
@property --md-container {
|
|
syntax: '*';
|
|
inherits: false;
|
|
}
|
|
|
|
@property --md-on-container {
|
|
syntax: '*';
|
|
inherits: false;
|
|
}
|
|
|
|
[data-md-color='primary'] {
|
|
--md-color: var(--md-sys-color-primary);
|
|
--md-on-color: var(--md-sys-color-on-primary);
|
|
--md-container: var(--md-sys-color-primary-container);
|
|
--md-on-container: var(--md-sys-color-on-primary-container);
|
|
}
|
|
|
|
[data-md-color='secondary'] {
|
|
--md-color: var(--md-sys-color-secondary);
|
|
--md-on-color: var(--md-sys-color-on-secondary);
|
|
--md-container: var(--md-sys-color-secondary-container);
|
|
--md-on-container: var(--md-sys-color-on-secondary-container);
|
|
}
|
|
|
|
[data-md-color='tertiary'] {
|
|
--md-color: var(--md-sys-color-tertiary);
|
|
--md-on-color: var(--md-sys-color-on-tertiary);
|
|
--md-container: var(--md-sys-color-tertiary-container);
|
|
--md-on-container: var(--md-sys-color-on-tertiary-container);
|
|
}
|
|
|
|
[data-md-color='error'] {
|
|
--md-color: var(--md-sys-color-error);
|
|
--md-on-color: var(--md-sys-color-on-error);
|
|
--md-container: var(--md-sys-color-error-container);
|
|
--md-on-container: var(--md-sys-color-on-error-container);
|
|
}
|
|
|
|
[data-md-color='success'] {
|
|
--md-color: var(--md-sys-color-success);
|
|
--md-on-color: var(--md-sys-color-on-success);
|
|
--md-container: var(--md-sys-color-success-container);
|
|
--md-on-container: var(--md-sys-color-on-success-container);
|
|
}
|
|
|
|
[data-md-color='warning'] {
|
|
--md-color: var(--md-sys-color-warning);
|
|
--md-on-color: var(--md-sys-color-on-warning);
|
|
--md-container: var(--md-sys-color-warning-container);
|
|
--md-on-container: var(--md-sys-color-on-warning-container);
|
|
}
|
|
|
|
[data-md-color='info'] {
|
|
--md-color: var(--md-sys-color-info);
|
|
--md-on-color: var(--md-sys-color-on-info);
|
|
--md-container: var(--md-sys-color-info-container);
|
|
--md-on-container: var(--md-sys-color-on-info-container);
|
|
}
|
|
}
|
|
@layer material.components {
|
|
[data-md-button] {
|
|
--md-button-color: var(--md-color, var(--md-sys-color-primary));
|
|
--md-button-on-color: var(--md-on-color, var(--md-sys-color-on-primary));
|
|
--md-button-tone: var(--md-container, var(--md-sys-color-secondary-container));
|
|
--md-button-on-tone: var(--md-on-container, var(--md-sys-color-on-secondary-container));
|
|
--md-button-tone-selected: var(--md-sys-color-secondary);
|
|
--md-button-on-tone-selected: var(--md-sys-color-on-secondary);
|
|
--md-button-quiet: var(--md-sys-color-on-surface-variant);
|
|
|
|
--md-button-container: transparent;
|
|
--md-button-label: var(--md-button-color);
|
|
--md-button-outline: transparent;
|
|
--md-button-elevation: none;
|
|
|
|
display: inline-flex;
|
|
flex-shrink: 0;
|
|
align-items: center;
|
|
justify-content: center;
|
|
block-size: var(--md-button-height);
|
|
background-color: var(--md-button-container);
|
|
color: var(--md-button-label);
|
|
box-shadow: var(--md-button-elevation);
|
|
white-space: nowrap;
|
|
cursor: pointer;
|
|
-webkit-user-select: none;
|
|
user-select: none;
|
|
transition-property: border-radius, padding, margin, bottom, background-color, color, box-shadow;
|
|
transition-duration:
|
|
var(--md-sys-motion-spatial-fast-duration), var(--md-sys-motion-spatial-fast-duration),
|
|
var(--md-sys-motion-spatial-fast-duration), var(--md-sys-motion-spatial-fast-duration),
|
|
var(--md-sys-motion-effects-fast-duration), var(--md-sys-motion-effects-fast-duration), var(--md-sys-motion-effects-fast-duration);
|
|
transition-timing-function:
|
|
var(--md-sys-motion-spatial-fast), var(--md-sys-motion-spatial-fast),
|
|
var(--md-sys-motion-spatial-fast), var(--md-sys-motion-spatial-fast),
|
|
var(--md-sys-motion-effects-fast), var(--md-sys-motion-effects-fast), var(--md-sys-motion-effects-fast);
|
|
}
|
|
[data-md-button][data-md-size='xs'] {
|
|
--md-button-height: 32px;
|
|
--md-button-padding: var(--md-sys-measurement-space200);
|
|
--md-button-gap: var(--md-sys-measurement-space100);
|
|
--md-button-icon: 20px;
|
|
--md-button-outline-width: 1px;
|
|
--md-button-square: var(--md-sys-shape-corner-md);
|
|
--md-button-pressed: var(--md-sys-shape-corner-sm);
|
|
--md-button-narrow: 28px;
|
|
--md-button-default: 32px;
|
|
--md-button-wide: 40px;
|
|
}
|
|
|
|
[data-md-button][data-md-size='sm'] {
|
|
--md-button-height: 40px;
|
|
--md-button-padding: var(--md-sys-measurement-space200);
|
|
--md-button-gap: var(--md-sys-measurement-space100);
|
|
--md-button-icon: 20px;
|
|
--md-button-outline-width: 1px;
|
|
--md-button-square: var(--md-sys-shape-corner-md);
|
|
--md-button-pressed: var(--md-sys-shape-corner-sm);
|
|
--md-button-narrow: 32px;
|
|
--md-button-default: 40px;
|
|
--md-button-wide: 52px;
|
|
}
|
|
|
|
[data-md-button][data-md-size='sm'][data-md-icon-button] {
|
|
--md-button-icon: 24px;
|
|
}
|
|
|
|
[data-md-button][data-md-size='md'] {
|
|
--md-button-height: 56px;
|
|
--md-button-padding: var(--md-sys-measurement-space300);
|
|
--md-button-gap: var(--md-sys-measurement-space100);
|
|
--md-button-icon: 24px;
|
|
--md-button-outline-width: 1px;
|
|
--md-button-square: var(--md-sys-shape-corner-lg);
|
|
--md-button-pressed: var(--md-sys-shape-corner-md);
|
|
--md-button-narrow: 48px;
|
|
--md-button-default: 56px;
|
|
--md-button-wide: 72px;
|
|
}
|
|
|
|
[data-md-button][data-md-size='lg'] {
|
|
--md-button-height: 96px;
|
|
--md-button-padding: var(--md-sys-measurement-space600);
|
|
--md-button-gap: 12px;
|
|
--md-button-icon: 32px;
|
|
--md-button-outline-width: 2px;
|
|
--md-button-square: var(--md-sys-shape-corner-xl);
|
|
--md-button-pressed: var(--md-sys-shape-corner-lg);
|
|
--md-button-narrow: 64px;
|
|
--md-button-default: 96px;
|
|
--md-button-wide: 128px;
|
|
}
|
|
|
|
[data-md-button][data-md-size='xl'] {
|
|
--md-button-height: 136px;
|
|
--md-button-padding: var(--md-sys-measurement-space800);
|
|
--md-button-gap: var(--md-sys-measurement-space200);
|
|
--md-button-icon: 40px;
|
|
--md-button-outline-width: 3px;
|
|
--md-button-square: var(--md-sys-shape-corner-xl);
|
|
--md-button-pressed: var(--md-sys-shape-corner-lg);
|
|
--md-button-narrow: 104px;
|
|
--md-button-default: 136px;
|
|
--md-button-wide: 184px;
|
|
}
|
|
|
|
[data-md-button]:not([data-md-icon-button]) {
|
|
gap: var(--md-button-gap);
|
|
padding-inline: var(--md-button-padding);
|
|
}
|
|
|
|
[data-md-button]:not([data-md-icon-button]):is([data-md-size='xs'], [data-md-size='sm']) {
|
|
font: var(--md-sys-typescale-label-lg);
|
|
letter-spacing: var(--md-sys-typescale-label-lg-tracking);
|
|
font-variation-settings: normal;
|
|
}
|
|
|
|
[data-md-button]:not([data-md-icon-button])[data-md-size='md'] {
|
|
font: var(--md-sys-typescale-title-md);
|
|
letter-spacing: var(--md-sys-typescale-title-md-tracking);
|
|
font-variation-settings: normal;
|
|
}
|
|
|
|
[data-md-button]:not([data-md-icon-button])[data-md-size='lg'] {
|
|
font: var(--md-sys-typescale-headline-sm);
|
|
letter-spacing: var(--md-sys-typescale-headline-sm-tracking);
|
|
font-variation-settings: normal;
|
|
}
|
|
|
|
[data-md-button]:not([data-md-icon-button])[data-md-size='xl'] {
|
|
font: var(--md-sys-typescale-headline-lg);
|
|
letter-spacing: var(--md-sys-typescale-headline-lg-tracking);
|
|
font-variation-settings: normal;
|
|
}
|
|
|
|
[data-md-button][data-md-icon-button] {
|
|
--md-button-width: var(--md-button-default);
|
|
|
|
inline-size: var(--md-button-width);
|
|
|
|
&[data-md-width='narrow'] {
|
|
--md-button-width: var(--md-button-narrow);
|
|
}
|
|
|
|
&[data-md-width='wide'] {
|
|
--md-button-width: var(--md-button-wide);
|
|
}
|
|
}
|
|
:where([data-md-button]) {
|
|
border-radius: var(--md-sys-shape-corner-full);
|
|
}
|
|
|
|
:where([data-md-button]):where([data-md-shape='square'], [data-md-selected='true']) {
|
|
border-radius: var(--md-button-square);
|
|
}
|
|
|
|
:where([data-md-button]):where([data-md-icon-button][data-md-shape='square'][data-md-selected='true']) {
|
|
border-radius: var(--md-sys-shape-corner-full);
|
|
}
|
|
|
|
:where([data-md-button]):where(:active) {
|
|
border-radius: var(--md-button-pressed);
|
|
}
|
|
[data-md-button][data-md-color='primary'] {
|
|
--md-button-tone: var(--md-sys-color-secondary-container);
|
|
--md-button-on-tone: var(--md-sys-color-on-secondary-container);
|
|
}
|
|
[data-md-button]:not([data-md-color='primary']) {
|
|
--md-button-tone-selected: var(--md-button-color);
|
|
--md-button-on-tone-selected: var(--md-button-on-color);
|
|
--md-button-quiet: var(--md-button-color);
|
|
}
|
|
[data-md-button][data-md-variant='filled'] {
|
|
--md-button-container: var(--md-button-color);
|
|
--md-button-label: var(--md-button-on-color);
|
|
|
|
&[data-md-selected='false'] {
|
|
--md-button-container: var(--md-sys-color-surface-container);
|
|
--md-button-label: var(--md-sys-color-on-surface-variant);
|
|
}
|
|
}
|
|
|
|
[data-md-button][data-md-variant='tonal'] {
|
|
--md-button-container: var(--md-button-tone);
|
|
--md-button-label: var(--md-button-on-tone);
|
|
|
|
&[data-md-selected='true'] {
|
|
--md-button-container: var(--md-button-tone-selected);
|
|
--md-button-label: var(--md-button-on-tone-selected);
|
|
}
|
|
}
|
|
|
|
[data-md-button][data-md-variant='outlined'] {
|
|
--md-button-label: var(--md-button-quiet);
|
|
--md-button-outline: var(--md-sys-color-outline-variant);
|
|
|
|
border: var(--md-button-outline-width) solid var(--md-button-outline);
|
|
|
|
&[data-md-selected='true'] {
|
|
--md-button-container: var(--md-sys-color-inverse-surface);
|
|
--md-button-label: var(--md-sys-color-inverse-on-surface);
|
|
--md-button-outline: transparent;
|
|
}
|
|
}
|
|
|
|
[data-md-button][data-md-variant='elevated'] {
|
|
--md-button-container: var(--md-sys-color-surface-container-low);
|
|
--md-button-elevation: var(--md-sys-elevation-1);
|
|
|
|
&[data-md-selected='true'] {
|
|
--md-button-container: var(--md-button-color);
|
|
--md-button-label: var(--md-button-on-color);
|
|
}
|
|
}
|
|
|
|
[data-md-button][data-md-variant='text'][data-md-icon-button]:not([data-md-selected='true']) {
|
|
--md-button-label: var(--md-button-quiet);
|
|
}
|
|
|
|
[data-md-button][data-md-variant='text']:not([data-md-icon-button])[data-md-selected='true'] {
|
|
--md-button-container: var(--md-button-tone);
|
|
--md-button-label: var(--md-button-on-tone);
|
|
}
|
|
|
|
@media (hover: hover) {
|
|
[data-md-button]:is([data-md-variant='filled'], [data-md-variant='tonal']):hover {
|
|
--md-button-elevation: var(--md-sys-elevation-1);
|
|
}
|
|
|
|
[data-md-button][data-md-variant='elevated']:hover {
|
|
--md-button-elevation: var(--md-sys-elevation-2);
|
|
}
|
|
}
|
|
[data-md-button]:is(:disabled, [aria-disabled='true']) {
|
|
box-shadow: none;
|
|
color: color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-content-opacity) * 100%), transparent);
|
|
}
|
|
|
|
[data-md-button]:is([data-md-variant='filled'], [data-md-variant='tonal'], [data-md-variant='elevated'], [data-md-variant='outlined'][data-md-selected='true']):is(:disabled, [aria-disabled='true']) {
|
|
background-color: color-mix(in srgb, var(--md-sys-color-on-surface) 10%, transparent);
|
|
}
|
|
|
|
[data-md-button]:disabled {
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
[data-md-button][aria-disabled='true'] {
|
|
pointer-events: none;
|
|
}
|
|
[data-md-button-icon] {
|
|
display: contents;
|
|
}
|
|
|
|
[data-md-button-spinner] {
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
[data-md-button-spinner] > [data-md-loading] {
|
|
inline-size: var(--md-button-icon);
|
|
block-size: var(--md-button-icon);
|
|
color: currentColor;
|
|
}
|
|
|
|
@media (width < 840px) {
|
|
[data-md-button] > [data-md-responsive] {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
@media (width < 600px) {
|
|
[data-md-button][data-md-compact-fab] {
|
|
--md-button-height: 56px;
|
|
--md-button-padding: var(--md-sys-measurement-space200);
|
|
--md-button-gap: var(--md-sys-measurement-space100);
|
|
|
|
position: fixed;
|
|
inset-inline-end: var(--md-sys-measurement-space200);
|
|
bottom: calc(var(--material-bottom-bar, 0px) + var(--material-snackbar-height, 0px) + var(--md-sys-measurement-space200));
|
|
z-index: 30;
|
|
border-radius: var(--md-sys-shape-corner-lg);
|
|
background-color: var(--md-sys-color-primary-container);
|
|
color: var(--md-sys-color-on-primary-container);
|
|
box-shadow: var(--md-sys-elevation-3);
|
|
font: var(--md-sys-typescale-title-md);
|
|
letter-spacing: var(--md-sys-typescale-title-md-tracking);
|
|
font-variation-settings: normal;
|
|
}
|
|
|
|
[data-md-button][data-md-compact-fab] [data-md-icon] {
|
|
inline-size: 24px;
|
|
block-size: 24px;
|
|
}
|
|
[data-md-button][data-md-compact-fab][data-md-unavailable] {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
@layer material.components {
|
|
[data-md-shape][style*='--md-shape-size'] {
|
|
inline-size: var(--md-shape-size);
|
|
block-size: var(--md-shape-size);
|
|
}
|
|
}
|
|
@layer material.components {
|
|
body:has(> [data-md-error-page]) {
|
|
margin: 0;
|
|
min-height: 100dvh;
|
|
background-color: var(--md-sys-color-surface);
|
|
color: var(--md-sys-color-on-surface);
|
|
}
|
|
|
|
[data-md-error-page] {
|
|
display: flex;
|
|
min-height: 100dvh;
|
|
max-width: 576px;
|
|
margin-inline: auto;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding-inline: var(--md-sys-measurement-space300);
|
|
padding-block: var(--md-sys-measurement-space600);
|
|
text-align: center;
|
|
}
|
|
|
|
[data-md-error-art] {
|
|
position: relative;
|
|
display: grid;
|
|
flex-shrink: 0;
|
|
place-items: center;
|
|
width: 192px;
|
|
height: 192px;
|
|
}
|
|
|
|
@media (width >= 600px) {
|
|
[data-md-error-art] {
|
|
width: 240px;
|
|
height: 240px;
|
|
}
|
|
}
|
|
|
|
[data-md-error-shape] {
|
|
position: absolute;
|
|
inset: 0;
|
|
}
|
|
|
|
[data-md-error-shape] svg {
|
|
width: 100%;
|
|
height: 100%;
|
|
color: var(--md-sys-color-primary-container);
|
|
}
|
|
|
|
@media (prefers-reduced-motion: no-preference) {
|
|
[data-md-error-shape] {
|
|
animation: material-error-turn 60s linear infinite;
|
|
}
|
|
}
|
|
|
|
@keyframes material-error-turn {
|
|
to {
|
|
transform: rotate(1turn);
|
|
}
|
|
}
|
|
|
|
[data-md-error-code] {
|
|
position: relative;
|
|
margin: 0;
|
|
color: var(--md-sys-color-on-primary-container);
|
|
font: var(--md-sys-typescale-emphasized-display-lg);
|
|
letter-spacing: var(--md-sys-typescale-emphasized-display-lg-tracking);
|
|
font-variation-settings: 'ROND' 100;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
[data-md-error-headline] {
|
|
margin: var(--md-sys-measurement-space500) 0 0;
|
|
font: var(--md-sys-typescale-headline-md);
|
|
letter-spacing: var(--md-sys-typescale-headline-md-tracking);
|
|
text-wrap: balance;
|
|
}
|
|
|
|
@media (width >= 600px) {
|
|
[data-md-error-headline] {
|
|
font: var(--md-sys-typescale-headline-lg);
|
|
letter-spacing: var(--md-sys-typescale-headline-lg-tracking);
|
|
}
|
|
}
|
|
|
|
[data-md-error-message] {
|
|
margin: 12px 0 0;
|
|
max-width: 448px;
|
|
color: var(--md-sys-color-on-surface-variant);
|
|
font: var(--md-sys-typescale-body-lg);
|
|
letter-spacing: var(--md-sys-typescale-body-lg-tracking);
|
|
text-wrap: balance;
|
|
}
|
|
|
|
[data-md-error-actions] {
|
|
display: flex;
|
|
margin-top: var(--md-sys-measurement-space500);
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 12px;
|
|
}
|
|
}
|