@scattered-light/loomiere-mojave 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exports/AGENTS.md +8 -5
- package/dist/exports/catalog.json +6 -0
- package/dist/exports/design-system/README.md +8 -5
- package/dist/exports/design-system/components/Collection/README.md +1 -1
- package/dist/exports/design-system/components/CollectionToolbar/README.md +7 -2
- package/dist/exports/design-system/components/ContextMenu/README.md +1 -1
- package/dist/exports/design-system/components/ContextMenu/preview.html +1 -1
- package/dist/exports/design-system/components/DataList/README.md +1 -1
- package/dist/exports/design-system/components/DataList/preview.html +171 -171
- package/dist/exports/design-system/components/DataTable/README.md +1 -1
- package/dist/exports/design-system/components/DataTable/preview.html +176 -176
- package/dist/exports/design-system/components/DescriptionList/README.md +41 -0
- package/dist/exports/design-system/components/DescriptionList/preview.html +19 -0
- package/dist/exports/design-system/components/Drawer/README.md +1 -1
- package/dist/exports/design-system/components/ScrollArea/preview.html +2 -2
- package/dist/exports/design-system/components/Sheet/README.md +46 -0
- package/dist/exports/design-system/components/Sheet/preview.html +19 -0
- package/dist/exports/design-system/components/StatFigure/README.md +38 -0
- package/dist/exports/design-system/components/StatFigure/preview.html +19 -0
- package/dist/exports/design-system/components/Table/README.md +2 -2
- package/dist/exports/design-system/components/Table/preview.html +2 -2
- package/dist/exports/design-system/components/bundle.css +708 -165
- package/dist/exports/design-system/components/bundle.js +7 -7
- package/dist/exports/design-system/components/index.d.ts +1 -1
- package/dist/exports/design-system/tokens.json +35 -0
- package/dist/exports/figma.json +1 -1
- package/dist/exports/tailwind.css +81 -0
- package/dist/exports/tokens.dtcg.json +317 -26
- package/dist/tokens.css +221 -105
- package/dist/tokens.d.ts +79 -0
- package/dist/tokens.js +80 -1
- package/dist/tokens.json +588 -27
- package/dist/utilities.css +30 -0
- package/package.json +2 -2
|
@@ -94,6 +94,7 @@
|
|
|
94
94
|
--sl-letter-spacing-normal: 0; /** Body text. */
|
|
95
95
|
--sl-letter-spacing-wide: 0.025em; /** Small text that needs air. */
|
|
96
96
|
--sl-letter-spacing-wider: 0.05em; /** Small caps and labels. */
|
|
97
|
+
--sl-letter-spacing-caps: 0.08em; /** Uppercase labels that sit beside figures, such as a column head or a working-paper caption. Between wider and widest. */
|
|
97
98
|
--sl-letter-spacing-widest: 0.1em; /** Uppercase group labels. */
|
|
98
99
|
--sl-font-family-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; /** Platform UI font. Fallback when a brand typeface is unavailable. */
|
|
99
100
|
--sl-font-family-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif; /** Platform serif stack. */
|
|
@@ -764,8 +765,12 @@
|
|
|
764
765
|
--sl-popup-scale-closed: 0.95; /** Popups grow from just under full size as they open, so they seem to come from the trigger. */
|
|
765
766
|
--sl-popup-list-max-height: 300px; /** A long list scrolls inside the popup after about seven rows. */
|
|
766
767
|
--sl-popup-min-width: 200px; /** Narrowest a free-floating popup or menu gets, so short labels don't make a sliver. */
|
|
768
|
+
--sl-rule-width: 0px; /** Thickness of the top rule. 0 turns it off and leaves every top edge as it was. Point it at a stroke step (stroke.medium or stroke.thick) to turn it on. */
|
|
767
769
|
--sl-color-scheme: light; /** Which way native browser parts (scrollbars, date pickers, autofill) draw: light, or dark wherever the dark theme is on. Set as color-scheme on the root and handed to AG Grid's browserColorScheme, so they follow data-theme as well as the system setting. */
|
|
770
|
+
--sl-font-figures-base-font-variant-numeric: tabular-nums; /** font-variant-numeric of font.figures-base. */
|
|
771
|
+
--sl-font-figures-condense-font-variant-numeric: tabular-nums; /** font-variant-numeric of font.figures-condense. */
|
|
768
772
|
--sl-font-eyebrow-condense-text-transform: uppercase; /** text-transform of font.eyebrow-condense. */
|
|
773
|
+
--sl-font-caps-condense-text-transform: uppercase; /** text-transform of font.caps-condense. */
|
|
769
774
|
--sl-font-eyebrow-minimize-text-transform: uppercase; /** text-transform of font.eyebrow-minimize. */
|
|
770
775
|
--sl-emphasis-standard-bg: transparent; /** standard in default: outline in accent (primary) */
|
|
771
776
|
--sl-emphasis-quiet-bg: transparent; /** quiet in default: outline in chrome (neutral) */
|
|
@@ -780,6 +785,7 @@
|
|
|
780
785
|
--sl-status-level-error-standard-bg: transparent; /** standard in error: outline in error */
|
|
781
786
|
--sl-status-level-error-quiet-bg: transparent; /** quiet in error: outline in error */
|
|
782
787
|
--sl-button-opacity-disabled: 0.5; /** A disabled button fades as a whole, keeping its shape so the layout doesn't jump. */
|
|
788
|
+
--sl-description-list-label-width: minmax(8rem, 1fr); /** The label column in the default variant. The value column takes twice the room. */
|
|
783
789
|
--sl-drawer-popup-size: min(420px, 90vw); /** Width of a side drawer. A bottom or top drawer sizes to its content up to max-size. */
|
|
784
790
|
--sl-drawer-popup-max-size: 85vh; /** Tallest a bottom or top drawer gets, leaving the page visible above it. */
|
|
785
791
|
--sl-list-detail-split-min-width: 720px; /** Side by side once this element, not the window, is this wide. Dryden used 1100px of the window. A container needs less: a list around 320px and a form around 400px still read at 720px. Narrower, the detail becomes a drawer or a page. */
|
|
@@ -1444,7 +1450,6 @@
|
|
|
1444
1450
|
--sl-vision-achromatopsia-color-data-19: var(--sl-vision-achromatopsia-color-data-chartreuse); /** Data series 19: chartreuse. Categorical; use in order. */
|
|
1445
1451
|
--sl-vision-achromatopsia-color-data-20: var(--sl-vision-achromatopsia-color-data-ivory); /** Data series 20: ivory. Categorical; use in order. */
|
|
1446
1452
|
--sl-focus-ring-width: var(--sl-a11y-focus-outline-width); /** Alias for the focus outline width, kept for components that style rings with box-shadow. */
|
|
1447
|
-
--sl-focus-outline: var(--sl-a11y-focus-outline-width) solid var(--sl-focus-ring); /** The one keyboard focus ring. Every control uses it, outside or inset. */
|
|
1448
1453
|
--sl-focus-outline-offset: var(--sl-a11y-focus-outline-offset); /** Outside ring: a gap between the control and the ring so it never blends into the control border. The default. */
|
|
1449
1454
|
--sl-focus-outline-offset-inset: calc(-1 * var(--sl-a11y-focus-outline-width)); /** Inset ring: drawn just inside the control's edge, for controls packed into a container (menus, tab lists, steppers) where an outside ring would be clipped or overlap a neighbor. */
|
|
1450
1455
|
--sl-focus-halo-spread: calc(var(--sl-a11y-focus-outline-offset) + var(--sl-a11y-focus-outline-width) + 2px); /** A soft glow just outside the focus ring: the gap, the ring, then 2px of tint. The ring carries the contrast (WCAG 1.4.11), so the glow can stay pale. */
|
|
@@ -1549,6 +1554,7 @@
|
|
|
1549
1554
|
--sl-spacing-stack-md: var(--sl-space-6);
|
|
1550
1555
|
--sl-spacing-stack-sm: var(--sl-space-4);
|
|
1551
1556
|
--sl-spacing-stack-xs: var(--sl-space-2);
|
|
1557
|
+
--sl-table-grand-total-rule-width: var(--sl-stroke-thick); /** The double line under a grand total row (tr data-total="grand"). It is drawn as a CSS double border, which needs at least 3px to show two strokes. */
|
|
1552
1558
|
--sl-font-body-base-font-family: var(--sl-font-family-body); /** font-family of font.body-base. */
|
|
1553
1559
|
--sl-font-body-base-font-size: var(--sl-font-size-md); /** font-size of font.body-base. */
|
|
1554
1560
|
--sl-font-body-base-font-weight: var(--sl-font-weight-normal); /** font-weight of font.body-base. */
|
|
@@ -1584,11 +1590,21 @@
|
|
|
1584
1590
|
--sl-font-title-base-font-weight: var(--sl-font-weight-semibold); /** font-weight of font.title-base. */
|
|
1585
1591
|
--sl-font-title-base-line-height: var(--sl-line-height-md); /** line-height of font.title-base. */
|
|
1586
1592
|
--sl-font-title-base-letter-spacing: var(--sl-letter-spacing-normal); /** letter-spacing of font.title-base. */
|
|
1593
|
+
--sl-font-figures-base-font-family: var(--sl-font-family-mono); /** font-family of font.figures-base. */
|
|
1594
|
+
--sl-font-figures-base-font-size: var(--sl-font-size-md); /** font-size of font.figures-base. */
|
|
1595
|
+
--sl-font-figures-base-font-weight: var(--sl-font-weight-normal); /** font-weight of font.figures-base. */
|
|
1596
|
+
--sl-font-figures-base-line-height: var(--sl-line-height-md); /** line-height of font.figures-base. */
|
|
1597
|
+
--sl-font-figures-base-letter-spacing: var(--sl-letter-spacing-normal); /** letter-spacing of font.figures-base. */
|
|
1587
1598
|
--sl-font-code-condense-font-family: var(--sl-font-family-mono); /** font-family of font.code-condense. */
|
|
1588
1599
|
--sl-font-code-condense-font-size: var(--sl-font-size-sm); /** font-size of font.code-condense. */
|
|
1589
1600
|
--sl-font-code-condense-font-weight: var(--sl-font-weight-normal); /** font-weight of font.code-condense. */
|
|
1590
1601
|
--sl-font-code-condense-line-height: var(--sl-line-height-sm); /** line-height of font.code-condense. */
|
|
1591
1602
|
--sl-font-code-condense-letter-spacing: var(--sl-letter-spacing-normal); /** letter-spacing of font.code-condense. */
|
|
1603
|
+
--sl-font-figures-condense-font-family: var(--sl-font-family-mono); /** font-family of font.figures-condense. */
|
|
1604
|
+
--sl-font-figures-condense-font-size: var(--sl-font-size-sm); /** font-size of font.figures-condense. */
|
|
1605
|
+
--sl-font-figures-condense-font-weight: var(--sl-font-weight-normal); /** font-weight of font.figures-condense. */
|
|
1606
|
+
--sl-font-figures-condense-line-height: var(--sl-line-height-sm); /** line-height of font.figures-condense. */
|
|
1607
|
+
--sl-font-figures-condense-letter-spacing: var(--sl-letter-spacing-normal); /** letter-spacing of font.figures-condense. */
|
|
1592
1608
|
--sl-font-body-condense-font-family: var(--sl-font-family-body); /** font-family of font.body-condense. */
|
|
1593
1609
|
--sl-font-body-condense-font-size: var(--sl-font-size-sm); /** font-size of font.body-condense. */
|
|
1594
1610
|
--sl-font-body-condense-font-weight: var(--sl-font-weight-normal); /** font-weight of font.body-condense. */
|
|
@@ -1619,6 +1635,11 @@
|
|
|
1619
1635
|
--sl-font-eyebrow-condense-font-weight: var(--sl-font-weight-semibold); /** font-weight of font.eyebrow-condense. */
|
|
1620
1636
|
--sl-font-eyebrow-condense-line-height: var(--sl-line-height-sm); /** line-height of font.eyebrow-condense. */
|
|
1621
1637
|
--sl-font-eyebrow-condense-letter-spacing: var(--sl-letter-spacing-wider); /** letter-spacing of font.eyebrow-condense. */
|
|
1638
|
+
--sl-font-caps-condense-font-family: var(--sl-font-family-body); /** font-family of font.caps-condense. */
|
|
1639
|
+
--sl-font-caps-condense-font-size: var(--sl-font-size-sm); /** font-size of font.caps-condense. */
|
|
1640
|
+
--sl-font-caps-condense-font-weight: var(--sl-font-weight-semibold); /** font-weight of font.caps-condense. */
|
|
1641
|
+
--sl-font-caps-condense-line-height: var(--sl-line-height-sm); /** line-height of font.caps-condense. */
|
|
1642
|
+
--sl-font-caps-condense-letter-spacing: var(--sl-letter-spacing-caps); /** letter-spacing of font.caps-condense. */
|
|
1622
1643
|
--sl-font-title-condense-font-family: var(--sl-font-family-display); /** font-family of font.title-condense. */
|
|
1623
1644
|
--sl-font-title-condense-font-size: var(--sl-font-size-sm); /** font-size of font.title-condense. */
|
|
1624
1645
|
--sl-font-title-condense-font-weight: var(--sl-font-weight-semibold); /** font-weight of font.title-condense. */
|
|
@@ -1659,6 +1680,111 @@
|
|
|
1659
1680
|
--sl-font-link-minimize-font-weight: var(--sl-font-weight-normal); /** font-weight of font.link-minimize. */
|
|
1660
1681
|
--sl-font-link-minimize-line-height: var(--sl-line-height-xs); /** line-height of font.link-minimize. */
|
|
1661
1682
|
--sl-font-link-minimize-letter-spacing: var(--sl-letter-spacing-normal); /** letter-spacing of font.link-minimize. */
|
|
1683
|
+
--sl-a11y-focus-ring-radius: var(--sl-radius-focus); /** Rounds the focus ring to match the small control radius. */
|
|
1684
|
+
--sl-bar-radius: var(--sl-radius-surface); /** Strip corners. Controls inside a toggle group take radius.item, so the inner corners follow the outer ones. */
|
|
1685
|
+
--sl-calendar-day-radius: var(--sl-radius-pill); /** Selected days are circles. The pill radius is the same full radius badges and switches use. */
|
|
1686
|
+
--sl-check-border-width: var(--sl-stroke-default); /** Edge thickness. */
|
|
1687
|
+
--sl-check-radius: var(--sl-radius-box); /** Checkbox corners. Radios are always round. */
|
|
1688
|
+
--sl-check-transition: var(--sl-transition-input); /** Changes at the same speed as a field. */
|
|
1689
|
+
--sl-status-error: var(--sl-scope-error-signal); /** Errors and destructive actions. */
|
|
1690
|
+
--sl-status-error-dark: var(--sl-scope-error-fg); /** Error color for text or icons that need more contrast than the base color. */
|
|
1691
|
+
--sl-status-error-light: var(--sl-scope-error-soft); /** Error tint for backgrounds behind error messages. */
|
|
1692
|
+
--sl-status-info: var(--sl-scope-info-signal); /** Neutral notices and help. */
|
|
1693
|
+
--sl-status-info-dark: var(--sl-scope-info-fg); /** Info color for text or icons that need more contrast. */
|
|
1694
|
+
--sl-status-info-light: var(--sl-scope-info-soft); /** Info tint for notice backgrounds. */
|
|
1695
|
+
--sl-status-success: var(--sl-scope-success-signal); /** Confirmations and completed states. */
|
|
1696
|
+
--sl-status-success-dark: var(--sl-scope-success-fg); /** Success color for text or icons that need more contrast. */
|
|
1697
|
+
--sl-status-success-light: var(--sl-scope-success-soft); /** Success tint for confirmation backgrounds. */
|
|
1698
|
+
--sl-status-warning: var(--sl-scope-warning-signal); /** Warnings, and the required-field marker. */
|
|
1699
|
+
--sl-status-warning-dark: var(--sl-scope-warning-fg); /** Warning color for text or icons that need more contrast. */
|
|
1700
|
+
--sl-status-warning-light: var(--sl-scope-warning-soft); /** Warning tint for caution backgrounds. */
|
|
1701
|
+
--sl-text-primary: var(--sl-scope-chrome-fg); /** Body text and headings. The highest-contrast neutral. */
|
|
1702
|
+
--sl-content-pre-radius: var(--sl-radius-surface); /** Code block corners, like any panel, so a brand that squares its surfaces squares code blocks too. */
|
|
1703
|
+
--sl-disclosure-indicator-width: var(--sl-stroke-emphasis); /** Selected tab line thickness. */
|
|
1704
|
+
--sl-field-border-width: var(--sl-stroke-default); /** Field edge thickness. */
|
|
1705
|
+
--sl-field-radius: var(--sl-radius-control); /** Field corners, the same as every other control. */
|
|
1706
|
+
--sl-field-transition: var(--sl-transition-input); /** Border and halo ease in, never snap. */
|
|
1707
|
+
--sl-gauge-radius: var(--sl-radius-pill); /** Round ends on the track and the fill. */
|
|
1708
|
+
--sl-icon-button-radius: var(--sl-radius-item); /** Rounded like a menu item, since its hover fill reads as a highlighted item. */
|
|
1709
|
+
--sl-icon-button-transition: var(--sl-transition-button); /** Responds as fast as a button. */
|
|
1710
|
+
--sl-item-radius: var(--sl-radius-item); /** Row corners inside the popup. */
|
|
1711
|
+
--sl-modal-border-width: var(--sl-stroke-default); /** Modal edge thickness. */
|
|
1712
|
+
--sl-modal-radius: var(--sl-radius-modal); /** The largest radius, so a modal reads as its own layer. A drawer rounds only the edge facing the page. */
|
|
1713
|
+
--sl-modal-shadow: var(--sl-elevation-xl); /** The deepest shadow, because a modal sits above everything but popups and toasts. */
|
|
1714
|
+
--sl-modal-backdrop: color-mix(in srgb, var(--sl-overlay-base) 50%, transparent); /** Scrim that dims the page behind a modal. */
|
|
1715
|
+
--sl-popup-border-width: var(--sl-stroke-default); /** Popup edge thickness. */
|
|
1716
|
+
--sl-popup-radius: var(--sl-radius-surface); /** Corners of a free-floating popup. */
|
|
1717
|
+
--sl-popup-radius-field: var(--sl-radius-control); /** Corners of a list that drops from a field, matching the field so the two read as one control. */
|
|
1718
|
+
--sl-popup-shadow: var(--sl-elevation-lg); /** Lifts the popup above the page. */
|
|
1719
|
+
--sl-popup-empty-padding-block: var(--sl-empty-padding-block-compact); /** Room around a plain 'No results' line. The same padding as a compact empty state, so a sentence and an EmptyState in that slot take the same space. An EmptyState drops this padding and uses its own. */
|
|
1720
|
+
--sl-table-row-height: var(--sl-control-height-sm); /** Row height: the small control height, so a checkbox, input or button in a cell fits without growing the row. */
|
|
1721
|
+
--sl-table-header-height: var(--sl-control-height-md); /** Header row height: the regular control height, a little taller than rows so the header reads as its own band. */
|
|
1722
|
+
--sl-table-cell-padding-inline: var(--sl-control-padding-inline-sm); /** Space either side of cell text, matching small controls. */
|
|
1723
|
+
--sl-table-radius: var(--sl-radius-surface); /** Grid corners, like any card or panel. */
|
|
1724
|
+
--sl-table-subtotal-rule-width: var(--sl-stroke-default); /** The single line above a subtotal row (tr data-total="subtotal"), the line an accountant draws before adding a column. */
|
|
1725
|
+
--sl-font-body-base-font: var(--sl-font-body-base-font-weight) var(--sl-font-body-base-font-size) / var(--sl-font-body-base-line-height) var(--sl-font-body-base-font-family); /** Body copy in the base tier, the default UI and body text. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1726
|
+
--sl-font-selected-base-font: var(--sl-font-selected-base-font-weight) var(--sl-font-selected-base-font-size) / var(--sl-font-selected-base-line-height) var(--sl-font-selected-base-font-family); /** The selected or current item in the base tier (the default UI and body text): selected tabs and toggles, the current nav item or page. Base body text at semibold, so selection reads without changing size. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1727
|
+
--sl-font-label-base-font: var(--sl-font-label-base-font-weight) var(--sl-font-label-base-font-size) / var(--sl-font-label-base-line-height) var(--sl-font-label-base-font-family); /** Form labels in the base tier, the default UI and body text. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1728
|
+
--sl-font-link-base-font: var(--sl-font-link-base-font-weight) var(--sl-font-link-base-font-size) / var(--sl-font-link-base-line-height) var(--sl-font-link-base-font-family); /** Links in the base tier. The same type as base body text: a link stands out by color and underline, not by its type. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1729
|
+
--sl-font-subtitle-base-font: var(--sl-font-subtitle-base-font-weight) var(--sl-font-subtitle-base-font-size) / var(--sl-font-subtitle-base-line-height) var(--sl-font-subtitle-base-font-family); /** Subtitles in the base tier, the default UI and body text. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1730
|
+
--sl-font-trigger-base-font: var(--sl-font-trigger-base-font-weight) var(--sl-font-trigger-base-font-size) / var(--sl-font-trigger-base-line-height) var(--sl-font-trigger-base-font-family); /** Buttons and triggers in the base tier, the default UI and body text. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1731
|
+
--sl-font-title-base-font: var(--sl-font-title-base-font-weight) var(--sl-font-title-base-font-size) / var(--sl-font-title-base-line-height) var(--sl-font-title-base-font-family); /** Titles in the base tier: a toast, an accordion row, a list item heading. Titles use the display family; the tier sets the size. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1732
|
+
--sl-font-figures-base-font: var(--sl-font-figures-base-font-weight) var(--sl-font-figures-base-font-size) / var(--sl-font-figures-base-line-height) var(--sl-font-figures-base-font-family); /** Figures in the base tier: an amount beside base text, a balance in a card. The mono family with tabular numbers, so digits line up. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1733
|
+
--sl-font-code-condense-font: var(--sl-font-code-condense-font-weight) var(--sl-font-code-condense-font-size) / var(--sl-font-code-condense-line-height) var(--sl-font-code-condense-font-family); /** Code uses the mono family so characters line up. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1734
|
+
--sl-font-figures-condense-font: var(--sl-font-figures-condense-font-weight) var(--sl-font-figures-condense-font-size) / var(--sl-font-figures-condense-line-height) var(--sl-font-figures-condense-font-family); /** Figures in the condense tier: amounts and counts in tables and dense rows. The mono family with tabular numbers, so digits line up down a column. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1735
|
+
--sl-font-body-condense-font: var(--sl-font-body-condense-font-weight) var(--sl-font-body-condense-font-size) / var(--sl-font-body-condense-line-height) var(--sl-font-body-condense-font-family); /** Body copy in the condense tier, dense UI text (tables, secondary labels). As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1736
|
+
--sl-font-trigger-condense-font: var(--sl-font-trigger-condense-font-weight) var(--sl-font-trigger-condense-font-size) / var(--sl-font-trigger-condense-line-height) var(--sl-font-trigger-condense-font-family); /** Buttons and triggers in the condense tier (dense UI): condense body text at medium, like base-trigger one tier down. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1737
|
+
--sl-font-selected-condense-font: var(--sl-font-selected-condense-font-weight) var(--sl-font-selected-condense-font-size) / var(--sl-font-selected-condense-line-height) var(--sl-font-selected-condense-font-family); /** The selected or current item in the condense tier (dense UI text): selected tabs and toggles, the current nav item or page. Condense body text at semibold, so selection reads without changing size. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1738
|
+
--sl-font-link-condense-font: var(--sl-font-link-condense-font-weight) var(--sl-font-link-condense-font-size) / var(--sl-font-link-condense-line-height) var(--sl-font-link-condense-font-family); /** Links in the condense tier. The same type as condense body text: a link stands out by color and underline, not by its type. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1739
|
+
--sl-font-subtitle-condense-font: var(--sl-font-subtitle-condense-font-weight) var(--sl-font-subtitle-condense-font-size) / var(--sl-font-subtitle-condense-line-height) var(--sl-font-subtitle-condense-font-family); /** Subtitles in the condense tier, dense UI text (tables, secondary labels). As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1740
|
+
--sl-font-eyebrow-condense-font: var(--sl-font-eyebrow-condense-font-weight) var(--sl-font-eyebrow-condense-font-size) / var(--sl-font-eyebrow-condense-line-height) var(--sl-font-eyebrow-condense-font-family); /** Small uppercase eyebrow labels in the condense tier, dense UI text (tables, secondary labels). As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1741
|
+
--sl-font-caps-condense-font: var(--sl-font-caps-condense-font-weight) var(--sl-font-caps-condense-font-size) / var(--sl-font-caps-condense-line-height) var(--sl-font-caps-condense-font-family); /** Caps labels in the condense tier: a working-paper caption, a column head over figures, a sheet's tab label. Uppercase and tracked a little wider than an eyebrow, so it reads as a label and not a heading. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1742
|
+
--sl-font-title-condense-font: var(--sl-font-title-condense-font-weight) var(--sl-font-title-condense-font-size) / var(--sl-font-title-condense-line-height) var(--sl-font-title-condense-font-family); /** Titles in the condense tier: group headers in tables, menus and dense panels. Titles use the display family; the tier sets the size. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1743
|
+
--sl-font-body-magnify-font: var(--sl-font-body-magnify-font-weight) var(--sl-font-body-magnify-font-size) / var(--sl-font-body-magnify-line-height) var(--sl-font-body-magnify-font-family); /** Body copy in the magnify tier, emphasized body text (lead paragraphs). As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1744
|
+
--sl-font-trigger-magnify-font: var(--sl-font-trigger-magnify-font-weight) var(--sl-font-trigger-magnify-font-size) / var(--sl-font-trigger-magnify-line-height) var(--sl-font-trigger-magnify-font-family); /** Buttons and triggers in the magnify tier (emphasized, larger UI): magnify body text at medium, like base-trigger one tier up. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1745
|
+
--sl-font-title-magnify-font: var(--sl-font-title-magnify-font-weight) var(--sl-font-title-magnify-font-size) / var(--sl-font-title-magnify-line-height) var(--sl-font-title-magnify-font-family); /** Titles in the magnify tier: popovers, cards and fieldsets. Titles use the display family; the tier sets the size. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1746
|
+
--sl-font-body-minimize-font: var(--sl-font-body-minimize-font-weight) var(--sl-font-body-minimize-font-size) / var(--sl-font-body-minimize-line-height) var(--sl-font-body-minimize-font-family); /** Body copy in the minimize tier, the smallest functional text (captions, fine print). As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1747
|
+
--sl-font-trigger-minimize-font: var(--sl-font-trigger-minimize-font-weight) var(--sl-font-trigger-minimize-font-size) / var(--sl-font-trigger-minimize-line-height) var(--sl-font-trigger-minimize-font-family); /** Buttons and triggers in the minimize tier (the smallest UI): minimize body text at medium, like base-trigger one tier down. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1748
|
+
--sl-font-selected-minimize-font: var(--sl-font-selected-minimize-font-weight) var(--sl-font-selected-minimize-font-size) / var(--sl-font-selected-minimize-line-height) var(--sl-font-selected-minimize-font-family); /** The selected or current item in the minimize tier (the smallest functional text): selected tabs and toggles, the current nav item or page. Minimize body text at semibold, so selection reads without changing size. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1749
|
+
--sl-focus-shadow-3px-error: 0 0 0 3px var(--sl-status-error); /** Focus halo for a field with an error. */
|
|
1750
|
+
--sl-calendar-day-color: var(--sl-text-primary); /** A day in the month being shown. */
|
|
1751
|
+
--sl-border-accent: var(--sl-scope-accent-border); /** Borders that signal selection or the active item. */
|
|
1752
|
+
--sl-border-default: var(--sl-scope-chrome-divider); /** Everyday dividers and control outlines. Darkens under prefers-contrast: more. */
|
|
1753
|
+
--sl-border-strong: var(--sl-scope-chrome-border-strong); /** Borders that identify a control, such as inputs and unchecked checkboxes. 3:1 against the canvas, as WCAG asks for control boundaries. */
|
|
1754
|
+
--sl-border-subtle: var(--sl-scope-chrome-border-subtle); /** Hairlines inside a surface (table rows, list separators) that should barely register. */
|
|
1755
|
+
--sl-border-control: var(--sl-scope-chrome-border); /** Edge of a small control (checkbox, radio, switch) that must be found before it is filled. */
|
|
1756
|
+
--sl-border-control-hover: var(--sl-scope-chrome-border-hover); /** Control edge under the pointer: one clear step darker than border.control. */
|
|
1757
|
+
--sl-interactive-active: var(--sl-scope-accent-solid-active); /** Pressed state of the main accent. Darker than hover so the press is felt. */
|
|
1758
|
+
--sl-interactive-default: var(--sl-scope-accent-solid); /** Primary accent for buttons, links and selected states. Step 600 is 6.1:1 on paper; step 400 is 5.6:1 on the dark canvas. */
|
|
1759
|
+
--sl-interactive-disabled: var(--sl-scope-chrome-soft-active); /** Fill for disabled accent controls. Low contrast on purpose, but never invisible. */
|
|
1760
|
+
--sl-interactive-hover: var(--sl-scope-accent-solid-hover); /** Hover state of the main accent. One step away from default in the direction of more contrast. */
|
|
1761
|
+
--sl-interactive-tint: var(--sl-scope-accent-soft); /** Faint accent wash behind a ghost or outline control on hover, or a selected row. */
|
|
1762
|
+
--sl-interactive-tint-hover: var(--sl-scope-accent-soft-hover); /** Accent wash for a highlighted menu item or a pressed toggle. */
|
|
1763
|
+
--sl-interactive-tint-active: var(--sl-scope-accent-soft-active); /** Accent wash for a selected or pressed item: one step past tint-hover. */
|
|
1764
|
+
--sl-interactive-tint-strong: var(--sl-scope-accent-soft-strong); /** Strongest accent wash, for hovering an item that is already pressed. */
|
|
1765
|
+
--sl-surface-canvas: var(--sl-scope-chrome-canvas); /** The page itself. Paper in light mode, the darkest neutral in dark mode. */
|
|
1766
|
+
--sl-surface-overlay: var(--sl-scope-chrome-overlay); /** Popups, menus and code blocks that sit above raised surfaces. */
|
|
1767
|
+
--sl-surface-raised: var(--sl-scope-chrome-raised); /** Cards and panels one level above the canvas. */
|
|
1768
|
+
--sl-surface-modal: var(--sl-scope-chrome-modal); /** Dialogs and drawers. Paper in light mode; in dark mode one step lighter than the page, so a modal lifts off the dimmed page under it. */
|
|
1769
|
+
--sl-surface-tray: var(--sl-scope-chrome-tray); /** The strip behind a row of controls (toolbars, toggle groups). A step off the page in both themes, so the controls sitting on it stand out, while secondary and accent text on it still pass AA. */
|
|
1770
|
+
--sl-surface-inverse: var(--sl-scope-chrome-inverse); /** Dark-on-light flip for small floating things such as tooltips. Inside a brand pair it becomes the pair's text color. */
|
|
1771
|
+
--sl-text-accent: var(--sl-scope-accent-fg); /** Accent text such as active tabs. One step darker than the interactive color so it stays AA as text. */
|
|
1772
|
+
--sl-text-disabled: var(--sl-scope-chrome-fg-disabled); /** Text in disabled controls. Deliberately below AA, which WCAG allows for disabled UI. */
|
|
1773
|
+
--sl-text-secondary: var(--sl-scope-chrome-fg-secondary); /** Supporting text such as descriptions and helper copy. Over 7:1 on every surface, and darker still under prefers-contrast: more. */
|
|
1774
|
+
--sl-text-tertiary: var(--sl-scope-chrome-fg-tertiary); /** Placeholders, captions and metadata. The lightest text that still passes AA (4.5:1) on every surface. */
|
|
1775
|
+
--sl-text-on-tint: var(--sl-scope-accent-on-soft); /** Text on an accent wash (interactive.tint*). Stays in the accent family. */
|
|
1776
|
+
--sl-text-on-tint-strong: var(--sl-scope-accent-ink); /** Text on the selected accent wash, a step darker than on-tint. */
|
|
1777
|
+
--sl-fill-subtle: var(--sl-scope-chrome-soft); /** Lightest fill: hovered rows, chips, empty tracks. */
|
|
1778
|
+
--sl-fill-default: var(--sl-scope-chrome-soft-hover); /** Standard fill: slider and switch tracks, pressed rows. */
|
|
1779
|
+
--sl-fill-strong: var(--sl-scope-chrome-soft-active); /** Heaviest fill: scroll thumbs, slider marks, hovered tracks. */
|
|
1780
|
+
--sl-fill-inverse: var(--sl-scope-chrome-solid); /** A small solid chip in the chrome color that flips with the theme: dark on light pages, light on dark ones. Keyboard keys use it. */
|
|
1781
|
+
--sl-fill-stronger: var(--sl-scope-chrome-soft-strong); /** One step past fill.strong, for the hover state of a strong fill such as a scrollbar thumb. */
|
|
1782
|
+
--sl-fill-track: var(--sl-scope-chrome-track); /** The empty part of a meter or progress bar. Light like fill.subtle in light mode; near the page in dark mode, so any palette's fill reads 3:1 against it. */
|
|
1783
|
+
--sl-content-prose-color: var(--sl-text-primary); /** Long-form body text. The same as body text, so prose and UI read as one voice. */
|
|
1784
|
+
--sl-content-selection-text: var(--sl-text-primary); /** Selected text stays body text so it reads the same on the tint. */
|
|
1785
|
+
--sl-field-border-color-error: var(--sl-status-error); /** Field edge when the value is invalid. */
|
|
1786
|
+
--sl-focus-ring: var(--sl-interactive-default); /** Focus ring color. Uses the interactive accent so focus reads as "this is the thing you can act on". */
|
|
1787
|
+
--sl-focus-outline: var(--sl-a11y-focus-outline-width) solid var(--sl-focus-ring); /** The one keyboard focus ring. Every control uses it, outside or inset. */
|
|
1662
1788
|
--sl-font-subtitle-minimize-font-family: var(--sl-font-family-body); /** font-family of font.subtitle-minimize. */
|
|
1663
1789
|
--sl-font-subtitle-minimize-font-size: var(--sl-font-size-xs); /** font-size of font.subtitle-minimize. */
|
|
1664
1790
|
--sl-font-subtitle-minimize-font-weight: var(--sl-font-weight-bold); /** font-weight of font.subtitle-minimize. */
|
|
@@ -1852,9 +1978,14 @@
|
|
|
1852
1978
|
--sl-collection-list-row-padding-block: var(--sl-space-3); /** Vertical padding of a list row. The row is not a fixed height, because a second line and an extra slot have to fit. */
|
|
1853
1979
|
--sl-collection-list-row-gap: var(--sl-space-2); /** Between the checkbox, the text, the amount and the actions in a list row. */
|
|
1854
1980
|
--sl-collection-toolbar-gap: var(--sl-space-2); /** Between the search, the filters and the actions. */
|
|
1981
|
+
--sl-collection-search-min-width: var(--sl-space-60); /** The narrowest the toolbar search gets beside the filters and actions. Under it, the search wraps to its own line, so a few words of a query still show. */
|
|
1855
1982
|
--sl-collection-narrow-width: var(--sl-space-96); /** Below this, a table with narrow="list" becomes a list, and the toolbar's search takes the full width. A 360px pane is under it. */
|
|
1856
1983
|
--sl-collection-editable-list-stack-width: var(--sl-space-80); /** Below this, editable rows stack and show their own labels. 320px matches. */
|
|
1857
1984
|
--sl-collection-selection-column-width: var(--sl-space-10); /** The checkbox column. Wide enough for the control, no wider, so the data keeps the room. */
|
|
1985
|
+
--sl-description-list-row-padding-block: var(--sl-space-2); /** Space above and below each pair. */
|
|
1986
|
+
--sl-description-list-row-padding-inline: var(--sl-space-4); /** Space either side of each pair, so pairs inside a sheet line up with its tab label. */
|
|
1987
|
+
--sl-description-list-column-gap: var(--sl-space-4); /** Space between the label column and the value column in the default variant. */
|
|
1988
|
+
--sl-description-list-leader-gap: var(--sl-space-1-5); /** Space between the leader and the label or value either side of it. */
|
|
1858
1989
|
--sl-drawer-handle-width: var(--sl-space-10); /** Grab bar length. */
|
|
1859
1990
|
--sl-drawer-handle-height: var(--sl-space-1); /** Grab bar thickness. */
|
|
1860
1991
|
--sl-list-detail-header-gap: var(--sl-space-3); /** Space between the title, the actions and Close. */
|
|
@@ -1862,9 +1993,22 @@
|
|
|
1862
1993
|
--sl-money-field-picker-min-inline-size: var(--sl-space-56); /** The currency list shows a code, a name and a symbol, so the popup is wider than the code trigger inside the field. */
|
|
1863
1994
|
--sl-popover-text-max-width: var(--sl-measure-narrow); /** Keeps the title and description to a readable line length. The popup itself has no fixed cap, so wider content such as a calendar or a form fits; it stops at the space Base UI reports beside the trigger. */
|
|
1864
1995
|
--sl-popover-popup-min-width: var(--sl-popup-min-width); /** Narrow enough for a short note, wide enough that a title doesn't wrap word by word. */
|
|
1996
|
+
--sl-sheet-rule-width: var(--sl-stroke-medium); /** The top rule. A sheet always has one, so it is its own token rather than rule.width (which is 0 until a brand turns it on for tables and drawers). */
|
|
1997
|
+
--sl-sheet-padding: var(--sl-space-4); /** Space inside a sheet with inset set. Without it, rows and tables inside run edge to edge. */
|
|
1998
|
+
--sl-sheet-tab-height: var(--sl-space-7); /** Height of the tab label. */
|
|
1999
|
+
--sl-sheet-tab-padding-inline: var(--sl-space-3-5); /** Space either side of the tab label's text. */
|
|
2000
|
+
--sl-sheet-tab-radius: var(--sl-radius-sm); /** The tab label's top corners. Its bottom corners stay square where it meets the rule. */
|
|
2001
|
+
--sl-sheet-header-gap: var(--sl-space-3); /** Space between the tab label and an action at the end of the header row, such as an Edit link. */
|
|
1865
2002
|
--sl-slider-thumb-size: var(--sl-space-5); /** Knob diameter, big enough to grab with a finger on a 4px track. */
|
|
1866
2003
|
--sl-splitter-handle-hit-size: var(--sl-a11y-min-touch-target); /** The part a finger grabs. The line stays one stroke. A fine pointer uses a11y.min-target (24px) instead, so the grab area does not cover the panel's scrollbar. Coarse pointers keep this 44px. */
|
|
1867
2004
|
--sl-splitter-grip-size: var(--sl-space-1); /** 4px. The diameter of one grip dot. Small enough to sit on the hairline without becoming a second control. */
|
|
2005
|
+
--sl-stat-figure-figure-font-size: var(--sl-font-size-4xl); /** Size of the figure. Large enough to lead the page, a step under the page title. */
|
|
2006
|
+
--sl-stat-figure-figure-font-size-sm: var(--sl-font-size-2xl); /** Size of the figure at size="sm", for a row of figures in a card or a sheet header. */
|
|
2007
|
+
--sl-stat-figure-figure-line-height: var(--sl-line-height-4xl); /** Line height paired with figure-font-size. */
|
|
2008
|
+
--sl-stat-figure-figure-line-height-sm: var(--sl-line-height-2xl); /** Line height paired with figure-font-size-sm. */
|
|
2009
|
+
--sl-stat-figure-figure-font-weight: var(--sl-font-weight-semibold); /** Weight of the figure. */
|
|
2010
|
+
--sl-stat-figure-underline-width: var(--sl-stroke-thick); /** The double underline at underline="double", the accountant's mark for a final total. A CSS double border, so at least 3px. */
|
|
2011
|
+
--sl-stat-figure-gap: var(--sl-space-1); /** Space between the label, the figure and the caption. */
|
|
1868
2012
|
--sl-switch-track-text-font-size: var(--sl-font-size-xs); /** Sized to the track, not a text style: the ON/OFF label has to fit inside the switch at each size. The rest of the label uses condense-subtitle-label. */
|
|
1869
2013
|
--sl-switch-track-text-font-size-sm: var(--sl-font-size-xxs); /** Sized to the track, not a text style: the ON/OFF label has to fit inside the switch at each size. The rest of the label uses condense-subtitle-label. */
|
|
1870
2014
|
--sl-switch-track-text-font-size-lg: var(--sl-font-size-sm); /** Sized to the track, not a text style: the ON/OFF label has to fit inside the switch at each size. The rest of the label uses condense-subtitle-label. */
|
|
@@ -1895,73 +2039,12 @@
|
|
|
1895
2039
|
--sl-color-chrome-on-1000: var(--sl-color-neutral-on-1000);
|
|
1896
2040
|
--sl-color-chrome-on-1100: var(--sl-color-neutral-on-1100);
|
|
1897
2041
|
--sl-color-chrome-on-1200: var(--sl-color-neutral-on-1200);
|
|
1898
|
-
--sl-a11y-focus-ring-radius: var(--sl-radius-focus); /** Rounds the focus ring to match the small control radius. */
|
|
1899
2042
|
--sl-bar-border-width: var(--sl-stroke-default); /** Strip edge thickness. */
|
|
1900
|
-
--sl-
|
|
1901
|
-
--sl-
|
|
1902
|
-
--sl-
|
|
1903
|
-
--sl-
|
|
1904
|
-
--sl-
|
|
1905
|
-
--sl-status-error: var(--sl-scope-error-signal); /** Errors and destructive actions. */
|
|
1906
|
-
--sl-status-error-dark: var(--sl-scope-error-fg); /** Error color for text or icons that need more contrast than the base color. */
|
|
1907
|
-
--sl-status-error-light: var(--sl-scope-error-soft); /** Error tint for backgrounds behind error messages. */
|
|
1908
|
-
--sl-status-info: var(--sl-scope-info-signal); /** Neutral notices and help. */
|
|
1909
|
-
--sl-status-info-dark: var(--sl-scope-info-fg); /** Info color for text or icons that need more contrast. */
|
|
1910
|
-
--sl-status-info-light: var(--sl-scope-info-soft); /** Info tint for notice backgrounds. */
|
|
1911
|
-
--sl-status-success: var(--sl-scope-success-signal); /** Confirmations and completed states. */
|
|
1912
|
-
--sl-status-success-dark: var(--sl-scope-success-fg); /** Success color for text or icons that need more contrast. */
|
|
1913
|
-
--sl-status-success-light: var(--sl-scope-success-soft); /** Success tint for confirmation backgrounds. */
|
|
1914
|
-
--sl-status-warning: var(--sl-scope-warning-signal); /** Warnings, and the required-field marker. */
|
|
1915
|
-
--sl-status-warning-dark: var(--sl-scope-warning-fg); /** Warning color for text or icons that need more contrast. */
|
|
1916
|
-
--sl-status-warning-light: var(--sl-scope-warning-soft); /** Warning tint for caution backgrounds. */
|
|
1917
|
-
--sl-text-primary: var(--sl-scope-chrome-fg); /** Body text and headings. The highest-contrast neutral. */
|
|
1918
|
-
--sl-disclosure-indicator-width: var(--sl-stroke-emphasis); /** Selected tab line thickness. */
|
|
1919
|
-
--sl-field-border-width: var(--sl-stroke-default); /** Field edge thickness. */
|
|
1920
|
-
--sl-field-radius: var(--sl-radius-control); /** Field corners, the same as every other control. */
|
|
1921
|
-
--sl-field-transition: var(--sl-transition-input); /** Border and halo ease in, never snap. */
|
|
1922
|
-
--sl-gauge-radius: var(--sl-radius-pill); /** Round ends on the track and the fill. */
|
|
1923
|
-
--sl-icon-button-radius: var(--sl-radius-item); /** Rounded like a menu item, since its hover fill reads as a highlighted item. */
|
|
1924
|
-
--sl-icon-button-transition: var(--sl-transition-button); /** Responds as fast as a button. */
|
|
1925
|
-
--sl-item-radius: var(--sl-radius-item); /** Row corners inside the popup. */
|
|
1926
|
-
--sl-modal-border-width: var(--sl-stroke-default); /** Modal edge thickness. */
|
|
1927
|
-
--sl-modal-radius: var(--sl-radius-modal); /** The largest radius, so a modal reads as its own layer. A drawer rounds only the edge facing the page. */
|
|
1928
|
-
--sl-modal-shadow: var(--sl-elevation-xl); /** The deepest shadow, because a modal sits above everything but popups and toasts. */
|
|
1929
|
-
--sl-modal-backdrop: color-mix(in srgb, var(--sl-overlay-base) 50%, transparent); /** Scrim that dims the page behind a modal. */
|
|
1930
|
-
--sl-popup-border-width: var(--sl-stroke-default); /** Popup edge thickness. */
|
|
1931
|
-
--sl-popup-radius: var(--sl-radius-surface); /** Corners of a free-floating popup. */
|
|
1932
|
-
--sl-popup-radius-field: var(--sl-radius-control); /** Corners of a list that drops from a field, matching the field so the two read as one control. */
|
|
1933
|
-
--sl-popup-shadow: var(--sl-elevation-lg); /** Lifts the popup above the page. */
|
|
1934
|
-
--sl-popup-empty-padding-block: var(--sl-empty-padding-block-compact); /** Room around a plain 'No results' line. The same padding as a compact empty state, so a sentence and an EmptyState in that slot take the same space. An EmptyState drops this padding and uses its own. */
|
|
1935
|
-
--sl-table-row-height: var(--sl-control-height-sm); /** Row height: the small control height, so a checkbox, input or button in a cell fits without growing the row. */
|
|
1936
|
-
--sl-table-header-height: var(--sl-control-height-md); /** Header row height: the regular control height, a little taller than rows so the header reads as its own band. */
|
|
1937
|
-
--sl-table-cell-padding-inline: var(--sl-control-padding-inline-sm); /** Space either side of cell text, matching small controls. */
|
|
1938
|
-
--sl-table-radius: var(--sl-radius-surface); /** Grid corners, like any card or panel. */
|
|
1939
|
-
--sl-font-body-base-font: var(--sl-font-body-base-font-weight) var(--sl-font-body-base-font-size) / var(--sl-font-body-base-line-height) var(--sl-font-body-base-font-family); /** Body copy in the base tier, the default UI and body text. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1940
|
-
--sl-font-selected-base-font: var(--sl-font-selected-base-font-weight) var(--sl-font-selected-base-font-size) / var(--sl-font-selected-base-line-height) var(--sl-font-selected-base-font-family); /** The selected or current item in the base tier (the default UI and body text): selected tabs and toggles, the current nav item or page. Base body text at semibold, so selection reads without changing size. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1941
|
-
--sl-font-label-base-font: var(--sl-font-label-base-font-weight) var(--sl-font-label-base-font-size) / var(--sl-font-label-base-line-height) var(--sl-font-label-base-font-family); /** Form labels in the base tier, the default UI and body text. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1942
|
-
--sl-font-link-base-font: var(--sl-font-link-base-font-weight) var(--sl-font-link-base-font-size) / var(--sl-font-link-base-line-height) var(--sl-font-link-base-font-family); /** Links in the base tier. The same type as base body text: a link stands out by color and underline, not by its type. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1943
|
-
--sl-font-subtitle-base-font: var(--sl-font-subtitle-base-font-weight) var(--sl-font-subtitle-base-font-size) / var(--sl-font-subtitle-base-line-height) var(--sl-font-subtitle-base-font-family); /** Subtitles in the base tier, the default UI and body text. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1944
|
-
--sl-font-trigger-base-font: var(--sl-font-trigger-base-font-weight) var(--sl-font-trigger-base-font-size) / var(--sl-font-trigger-base-line-height) var(--sl-font-trigger-base-font-family); /** Buttons and triggers in the base tier, the default UI and body text. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1945
|
-
--sl-font-title-base-font: var(--sl-font-title-base-font-weight) var(--sl-font-title-base-font-size) / var(--sl-font-title-base-line-height) var(--sl-font-title-base-font-family); /** Titles in the base tier: a toast, an accordion row, a list item heading. Titles use the display family; the tier sets the size. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1946
|
-
--sl-font-code-condense-font: var(--sl-font-code-condense-font-weight) var(--sl-font-code-condense-font-size) / var(--sl-font-code-condense-line-height) var(--sl-font-code-condense-font-family); /** Code uses the mono family so characters line up. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1947
|
-
--sl-font-body-condense-font: var(--sl-font-body-condense-font-weight) var(--sl-font-body-condense-font-size) / var(--sl-font-body-condense-line-height) var(--sl-font-body-condense-font-family); /** Body copy in the condense tier, dense UI text (tables, secondary labels). As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1948
|
-
--sl-font-trigger-condense-font: var(--sl-font-trigger-condense-font-weight) var(--sl-font-trigger-condense-font-size) / var(--sl-font-trigger-condense-line-height) var(--sl-font-trigger-condense-font-family); /** Buttons and triggers in the condense tier (dense UI): condense body text at medium, like base-trigger one tier down. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1949
|
-
--sl-font-selected-condense-font: var(--sl-font-selected-condense-font-weight) var(--sl-font-selected-condense-font-size) / var(--sl-font-selected-condense-line-height) var(--sl-font-selected-condense-font-family); /** The selected or current item in the condense tier (dense UI text): selected tabs and toggles, the current nav item or page. Condense body text at semibold, so selection reads without changing size. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1950
|
-
--sl-font-link-condense-font: var(--sl-font-link-condense-font-weight) var(--sl-font-link-condense-font-size) / var(--sl-font-link-condense-line-height) var(--sl-font-link-condense-font-family); /** Links in the condense tier. The same type as condense body text: a link stands out by color and underline, not by its type. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1951
|
-
--sl-font-subtitle-condense-font: var(--sl-font-subtitle-condense-font-weight) var(--sl-font-subtitle-condense-font-size) / var(--sl-font-subtitle-condense-line-height) var(--sl-font-subtitle-condense-font-family); /** Subtitles in the condense tier, dense UI text (tables, secondary labels). As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1952
|
-
--sl-font-eyebrow-condense-font: var(--sl-font-eyebrow-condense-font-weight) var(--sl-font-eyebrow-condense-font-size) / var(--sl-font-eyebrow-condense-line-height) var(--sl-font-eyebrow-condense-font-family); /** Small uppercase eyebrow labels in the condense tier, dense UI text (tables, secondary labels). As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1953
|
-
--sl-font-title-condense-font: var(--sl-font-title-condense-font-weight) var(--sl-font-title-condense-font-size) / var(--sl-font-title-condense-line-height) var(--sl-font-title-condense-font-family); /** Titles in the condense tier: group headers in tables, menus and dense panels. Titles use the display family; the tier sets the size. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1954
|
-
--sl-font-body-magnify-font: var(--sl-font-body-magnify-font-weight) var(--sl-font-body-magnify-font-size) / var(--sl-font-body-magnify-line-height) var(--sl-font-body-magnify-font-family); /** Body copy in the magnify tier, emphasized body text (lead paragraphs). As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1955
|
-
--sl-font-trigger-magnify-font: var(--sl-font-trigger-magnify-font-weight) var(--sl-font-trigger-magnify-font-size) / var(--sl-font-trigger-magnify-line-height) var(--sl-font-trigger-magnify-font-family); /** Buttons and triggers in the magnify tier (emphasized, larger UI): magnify body text at medium, like base-trigger one tier up. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1956
|
-
--sl-font-title-magnify-font: var(--sl-font-title-magnify-font-weight) var(--sl-font-title-magnify-font-size) / var(--sl-font-title-magnify-line-height) var(--sl-font-title-magnify-font-family); /** Titles in the magnify tier: popovers, cards and fieldsets. Titles use the display family; the tier sets the size. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1957
|
-
--sl-font-body-minimize-font: var(--sl-font-body-minimize-font-weight) var(--sl-font-body-minimize-font-size) / var(--sl-font-body-minimize-line-height) var(--sl-font-body-minimize-font-family); /** Body copy in the minimize tier, the smallest functional text (captions, fine print). As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1958
|
-
--sl-font-trigger-minimize-font: var(--sl-font-trigger-minimize-font-weight) var(--sl-font-trigger-minimize-font-size) / var(--sl-font-trigger-minimize-line-height) var(--sl-font-trigger-minimize-font-family); /** Buttons and triggers in the minimize tier (the smallest UI): minimize body text at medium, like base-trigger one tier down. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1959
|
-
--sl-font-selected-minimize-font: var(--sl-font-selected-minimize-font-weight) var(--sl-font-selected-minimize-font-size) / var(--sl-font-selected-minimize-line-height) var(--sl-font-selected-minimize-font-family); /** The selected or current item in the minimize tier (the smallest functional text): selected tabs and toggles, the current nav item or page. Minimize body text at semibold, so selection reads without changing size. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1960
|
-
--sl-font-link-minimize-font: var(--sl-font-link-minimize-font-weight) var(--sl-font-link-minimize-font-size) / var(--sl-font-link-minimize-line-height) var(--sl-font-link-minimize-font-family); /** Links in the minimize tier. The same type as minimize body text: a link stands out by color and underline, not by its type. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1961
|
-
--sl-font-subtitle-minimize-font: var(--sl-font-subtitle-minimize-font-weight) var(--sl-font-subtitle-minimize-font-size) / var(--sl-font-subtitle-minimize-line-height) var(--sl-font-subtitle-minimize-font-family); /** Subtitles in the minimize tier, the smallest functional text (captions, fine print). As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1962
|
-
--sl-font-eyebrow-minimize-font: var(--sl-font-eyebrow-minimize-font-weight) var(--sl-font-eyebrow-minimize-font-size) / var(--sl-font-eyebrow-minimize-line-height) var(--sl-font-eyebrow-minimize-font-family); /** Small uppercase eyebrow labels in the minimize tier, the smallest functional text (captions, fine print). As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1963
|
-
--sl-font-title-amplify-font: var(--sl-font-title-amplify-font-weight) var(--sl-font-title-amplify-font-size) / var(--sl-font-title-amplify-line-height) var(--sl-font-title-amplify-font-family); /** Titles in the amplify tier: dialogs, drawers and page sections. Titles use the display family; the tier sets the size. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
1964
|
-
--sl-font-title-maximize-font: var(--sl-font-title-maximize-font-weight) var(--sl-font-title-maximize-font-size) / var(--sl-font-title-maximize-line-height) var(--sl-font-title-maximize-font-family); /** Titles in the maximize tier: the page head. Titles use the display family; the tier sets the size. As a font shorthand; letter-spacing and text-transform are separate. */
|
|
2043
|
+
--sl-font-link-minimize-font: var(--sl-font-link-minimize-font-weight) var(--sl-font-link-minimize-font-size) / var(--sl-font-link-minimize-line-height) var(--sl-font-link-minimize-font-family); /** Links in the minimize tier. The same type as minimize body text: a link stands out by color and underline, not by its type. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
2044
|
+
--sl-font-subtitle-minimize-font: var(--sl-font-subtitle-minimize-font-weight) var(--sl-font-subtitle-minimize-font-size) / var(--sl-font-subtitle-minimize-line-height) var(--sl-font-subtitle-minimize-font-family); /** Subtitles in the minimize tier, the smallest functional text (captions, fine print). As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
2045
|
+
--sl-font-eyebrow-minimize-font: var(--sl-font-eyebrow-minimize-font-weight) var(--sl-font-eyebrow-minimize-font-size) / var(--sl-font-eyebrow-minimize-line-height) var(--sl-font-eyebrow-minimize-font-family); /** Small uppercase eyebrow labels in the minimize tier, the smallest functional text (captions, fine print). As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
2046
|
+
--sl-font-title-amplify-font: var(--sl-font-title-amplify-font-weight) var(--sl-font-title-amplify-font-size) / var(--sl-font-title-amplify-line-height) var(--sl-font-title-amplify-font-family); /** Titles in the amplify tier: dialogs, drawers and page sections. Titles use the display family; the tier sets the size. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
2047
|
+
--sl-font-title-maximize-font: var(--sl-font-title-maximize-font-weight) var(--sl-font-title-maximize-font-size) / var(--sl-font-title-maximize-line-height) var(--sl-font-title-maximize-font-family); /** Titles in the maximize tier: the page head. Titles use the display family; the tier sets the size. As a font shorthand; letter-spacing, text-transform and font-variant-numeric are separate. */
|
|
1965
2048
|
--sl-emphasis-quiet-fg: var(--sl-scope-chrome-fg); /** quiet in default: outline in chrome (neutral) */
|
|
1966
2049
|
--sl-pair-ember-dune-hover: color-mix(in oklab, var(--sl-pair-ember-dune-accent) 85%, var(--sl-pair-ember-dune-bg)); /** Accent on hover: accent moved 15% toward bg. 4.76:1 against bg, which is the button label. */
|
|
1967
2050
|
--sl-pair-ember-dune-active: var(--sl-pair-ember-dune-accent); /** Accent while pressed: the accent itself, because moving it would drop the button label below AA. */
|
|
@@ -2119,44 +2202,10 @@
|
|
|
2119
2202
|
--sl-collection-row-height-md: var(--sl-control-height-md); /** A roomier row when the collection is the page rather than a dense register. */
|
|
2120
2203
|
--sl-collection-header-height-sm: var(--sl-control-height-md); /** The dense header, a step above the dense row, matching today's table header. */
|
|
2121
2204
|
--sl-collection-header-height-md: var(--sl-control-height-lg); /** The header for the roomier row. */
|
|
2205
|
+
--sl-description-list-leader-width: var(--sl-stroke-default); /** Thickness of the dotted leader. */
|
|
2206
|
+
--sl-sheet-border-width: var(--sl-stroke-default); /** Thickness of the sides and bottom. */
|
|
2207
|
+
--sl-sheet-radius: var(--sl-radius-surface); /** Corners, like any card or panel. The top corners stay square under a tab label, so the tab sits flush on the rule. */
|
|
2122
2208
|
--sl-splitter-handle-size: var(--sl-stroke-default); /** The visible separator. One stroke, the same hairline as Separator, so a splitter reads as a divider you can grab. */
|
|
2123
|
-
--sl-focus-shadow-3px-error: 0 0 0 3px var(--sl-status-error); /** Focus halo for a field with an error. */
|
|
2124
|
-
--sl-calendar-day-color: var(--sl-text-primary); /** A day in the month being shown. */
|
|
2125
|
-
--sl-border-accent: var(--sl-scope-accent-border); /** Borders that signal selection or the active item. */
|
|
2126
|
-
--sl-border-default: var(--sl-scope-chrome-divider); /** Everyday dividers and control outlines. Darkens under prefers-contrast: more. */
|
|
2127
|
-
--sl-border-strong: var(--sl-scope-chrome-border-strong); /** Borders that identify a control, such as inputs and unchecked checkboxes. 3:1 against the canvas, as WCAG asks for control boundaries. */
|
|
2128
|
-
--sl-border-subtle: var(--sl-scope-chrome-border-subtle); /** Hairlines inside a surface (table rows, list separators) that should barely register. */
|
|
2129
|
-
--sl-border-control: var(--sl-scope-chrome-border); /** Edge of a small control (checkbox, radio, switch) that must be found before it is filled. */
|
|
2130
|
-
--sl-border-control-hover: var(--sl-scope-chrome-border-hover); /** Control edge under the pointer: one clear step darker than border.control. */
|
|
2131
|
-
--sl-interactive-active: var(--sl-scope-accent-solid-active); /** Pressed state of the main accent. Darker than hover so the press is felt. */
|
|
2132
|
-
--sl-interactive-default: var(--sl-scope-accent-solid); /** Primary accent for buttons, links and selected states. Step 600 is 6.1:1 on paper; step 400 is 5.6:1 on the dark canvas. */
|
|
2133
|
-
--sl-interactive-disabled: var(--sl-scope-chrome-soft-active); /** Fill for disabled accent controls. Low contrast on purpose, but never invisible. */
|
|
2134
|
-
--sl-interactive-hover: var(--sl-scope-accent-solid-hover); /** Hover state of the main accent. One step away from default in the direction of more contrast. */
|
|
2135
|
-
--sl-interactive-tint: var(--sl-scope-accent-soft); /** Faint accent wash behind a ghost or outline control on hover, or a selected row. */
|
|
2136
|
-
--sl-interactive-tint-hover: var(--sl-scope-accent-soft-hover); /** Accent wash for a highlighted menu item or a pressed toggle. */
|
|
2137
|
-
--sl-interactive-tint-active: var(--sl-scope-accent-soft-active); /** Accent wash for a selected or pressed item: one step past tint-hover. */
|
|
2138
|
-
--sl-interactive-tint-strong: var(--sl-scope-accent-soft-strong); /** Strongest accent wash, for hovering an item that is already pressed. */
|
|
2139
|
-
--sl-surface-canvas: var(--sl-scope-chrome-canvas); /** The page itself. Paper in light mode, the darkest neutral in dark mode. */
|
|
2140
|
-
--sl-surface-overlay: var(--sl-scope-chrome-overlay); /** Popups, menus and code blocks that sit above raised surfaces. */
|
|
2141
|
-
--sl-surface-raised: var(--sl-scope-chrome-raised); /** Cards and panels one level above the canvas. */
|
|
2142
|
-
--sl-surface-modal: var(--sl-scope-chrome-modal); /** Dialogs and drawers. Paper in light mode; in dark mode one step lighter than the page, so a modal lifts off the dimmed page under it. */
|
|
2143
|
-
--sl-surface-tray: var(--sl-scope-chrome-tray); /** The strip behind a row of controls (toolbars, toggle groups). A step off the page in both themes, so the controls sitting on it stand out, while secondary and accent text on it still pass AA. */
|
|
2144
|
-
--sl-surface-inverse: var(--sl-scope-chrome-inverse); /** Dark-on-light flip for small floating things such as tooltips. Inside a brand pair it becomes the pair's text color. */
|
|
2145
|
-
--sl-text-accent: var(--sl-scope-accent-fg); /** Accent text such as active tabs. One step darker than the interactive color so it stays AA as text. */
|
|
2146
|
-
--sl-text-disabled: var(--sl-scope-chrome-fg-disabled); /** Text in disabled controls. Deliberately below AA, which WCAG allows for disabled UI. */
|
|
2147
|
-
--sl-text-secondary: var(--sl-scope-chrome-fg-secondary); /** Supporting text such as descriptions and helper copy. Over 7:1 on every surface, and darker still under prefers-contrast: more. */
|
|
2148
|
-
--sl-text-tertiary: var(--sl-scope-chrome-fg-tertiary); /** Placeholders, captions and metadata. The lightest text that still passes AA (4.5:1) on every surface. */
|
|
2149
|
-
--sl-text-on-tint: var(--sl-scope-accent-on-soft); /** Text on an accent wash (interactive.tint*). Stays in the accent family. */
|
|
2150
|
-
--sl-text-on-tint-strong: var(--sl-scope-accent-ink); /** Text on the selected accent wash, a step darker than on-tint. */
|
|
2151
|
-
--sl-fill-subtle: var(--sl-scope-chrome-soft); /** Lightest fill: hovered rows, chips, empty tracks. */
|
|
2152
|
-
--sl-fill-default: var(--sl-scope-chrome-soft-hover); /** Standard fill: slider and switch tracks, pressed rows. */
|
|
2153
|
-
--sl-fill-strong: var(--sl-scope-chrome-soft-active); /** Heaviest fill: scroll thumbs, slider marks, hovered tracks. */
|
|
2154
|
-
--sl-fill-inverse: var(--sl-scope-chrome-solid); /** A small solid chip in the chrome color that flips with the theme: dark on light pages, light on dark ones. Keyboard keys use it. */
|
|
2155
|
-
--sl-fill-stronger: var(--sl-scope-chrome-soft-strong); /** One step past fill.strong, for the hover state of a strong fill such as a scrollbar thumb. */
|
|
2156
|
-
--sl-fill-track: var(--sl-scope-chrome-track); /** The empty part of a meter or progress bar. Light like fill.subtle in light mode; near the page in dark mode, so any palette's fill reads 3:1 against it. */
|
|
2157
|
-
--sl-content-prose-color: var(--sl-text-primary); /** Long-form body text. The same as body text, so prose and UI read as one voice. */
|
|
2158
|
-
--sl-content-selection-text: var(--sl-text-primary); /** Selected text stays body text so it reads the same on the tint. */
|
|
2159
|
-
--sl-field-border-color-error: var(--sl-status-error); /** Field edge when the value is invalid. */
|
|
2160
2209
|
--sl-field-color: var(--sl-text-primary); /** The value you typed. */
|
|
2161
2210
|
--sl-gauge-label-color: var(--sl-text-primary); /** What is being measured. */
|
|
2162
2211
|
--sl-icon-button-color-hover: var(--sl-text-primary); /** Darkens on hover to confirm it's the target. */
|
|
@@ -2214,7 +2263,8 @@
|
|
|
2214
2263
|
--sl-status-level-success-bold-fg: var(--sl-scope-success-on-solid); /** bold in success: solid in success */
|
|
2215
2264
|
--sl-status-level-warning-bold-fg: var(--sl-scope-warning-on-solid); /** bold in warning: solid in warning */
|
|
2216
2265
|
--sl-status-level-error-bold-fg: var(--sl-scope-error-on-solid); /** bold in error: solid in error */
|
|
2217
|
-
--sl-
|
|
2266
|
+
--sl-description-list-value-color: var(--sl-text-primary); /** Values. */
|
|
2267
|
+
--sl-stat-figure-figure-color: var(--sl-text-primary); /** The figure's color. */
|
|
2218
2268
|
--sl-focus-shadow-3px-primary: 0 0 0 3px var(--sl-interactive-tint-hover); /** Soft focus halo for inputs. */
|
|
2219
2269
|
--sl-focus-shadow-3px-primary-soft: 0 0 0 3px var(--sl-interactive-tint-active); /** Slightly stronger focus halo for inputs on tinted surfaces. */
|
|
2220
2270
|
--sl-focus-halo-color: var(--sl-interactive-tint-hover); /** The pale tint of the focus glow. Components on a colored scope use that scope's soft-hover instead. */
|
|
@@ -2286,6 +2336,7 @@
|
|
|
2286
2336
|
--sl-notice-description-color: var(--sl-text-secondary); /** Description on the plain surface. A tinted notice uses its palette's text color for both lines. */
|
|
2287
2337
|
--sl-popup-border-color: var(--sl-border-default); /** Popup edge, a quiet line that separates it from the page under it. */
|
|
2288
2338
|
--sl-popup-separator-color: var(--sl-border-subtle); /** Line between groups of rows, quieter than the popup edge. */
|
|
2339
|
+
--sl-rule-color: var(--sl-border-strong); /** Color of the top rule. The chrome's strong border, so the rule reads as structure, not as an accent or a selection. A brand can point it at text.primary for an ink rule. */
|
|
2289
2340
|
--sl-table-background: var(--sl-surface-canvas); /** Cell area. The page color, so a grid sits on the page like body text. */
|
|
2290
2341
|
--sl-table-subtle-color: var(--sl-text-secondary); /** Secondary text in cells and panels: counts, hints, group totals. */
|
|
2291
2342
|
--sl-table-header-background: var(--sl-surface-tray); /** Header row, side bar and other grid chrome. The tray step, so it sits a step off the cells in both themes and secondary text on it still passes AA. */
|
|
@@ -2298,7 +2349,16 @@
|
|
|
2298
2349
|
--sl-table-range-background: var(--sl-interactive-tint); /** Cells inside a dragged range selection. */
|
|
2299
2350
|
--sl-emphasis-bold-fg: var(--sl-scope-accent-on-solid); /** bold in default: solid in accent (primary) */
|
|
2300
2351
|
--sl-status-level-default-bold-fg: var(--sl-scope-accent-on-solid); /** bold in default: solid in accent (primary) */
|
|
2352
|
+
--sl-description-list-row-border-color: var(--sl-border-subtle); /** Hairline between pairs, as quiet as a table's row lines. */
|
|
2353
|
+
--sl-description-list-label-color: var(--sl-text-secondary); /** Labels. */
|
|
2354
|
+
--sl-description-list-leader-color: var(--sl-border-control); /** The dotted leader at variant="leader". The control edge color: dark enough to lead the eye, still lighter than the text. */
|
|
2301
2355
|
--sl-drawer-handle-color: var(--sl-border-strong); /** The grab bar on bottom drawers. Strong border so it reads as something to drag. */
|
|
2356
|
+
--sl-sheet-background: var(--sl-surface-raised); /** The sheet's fill: the raised surface, one level above the page like any card or panel. */
|
|
2357
|
+
--sl-sheet-border-color: var(--sl-border-default); /** The sheet's sides and bottom, the everyday divider. */
|
|
2358
|
+
--sl-sheet-tab-background: var(--sl-surface-inverse); /** The tab label's fill: the inverse surface, so the label reads as the sheet's name, and its text passes AA in every theme. */
|
|
2359
|
+
--sl-stat-figure-figure-color-accent: var(--sl-text-accent); /** The figure's color at tone="accent", for a figure that asks for action (open questions, items to review). */
|
|
2360
|
+
--sl-stat-figure-label-color: var(--sl-text-secondary); /** The caps label above the figure. */
|
|
2361
|
+
--sl-stat-figure-caption-color: var(--sl-text-secondary); /** The caption under the figure. */
|
|
2302
2362
|
--sl-shadow-outline: 0 0 0 3px color-mix(in oklab, var(--sl-focus-ring) 60%, transparent); /** Focus halo for controls that use box-shadow instead of outline: the focus ring color at 60% opacity, so it follows the accent and the theme. Becomes currentColor under prefers-contrast: more. */
|
|
2303
2363
|
--sl-calendar-day-background-hover: var(--sl-item-background-hover); /** The same hover tint as a list item, so a day feels like a choice in a list. */
|
|
2304
2364
|
--sl-check-mark-color: var(--sl-text-on-primary); /** Check mark, dash or dot on a ticked fill. */
|
|
@@ -2314,6 +2374,11 @@
|
|
|
2314
2374
|
--sl-table-row-hover: var(--sl-item-background-hover); /** Row under the pointer. Same tint as a highlighted menu row. */
|
|
2315
2375
|
--sl-table-row-selected: var(--sl-item-background-selected); /** Selected rows. Same tint as the chosen menu row. */
|
|
2316
2376
|
--sl-table-range-border: var(--sl-focus-ring); /** Edge of a range selection and of the focused cell, the same color as every focus ring. */
|
|
2377
|
+
--sl-table-total-rule-color: var(--sl-rule-color); /** The line above a subtotal or total row and the double line under a grand total. The working-paper rule color, so totals and sheet tops are ruled in the same ink. */
|
|
2378
|
+
--sl-table-total-background: var(--sl-table-background); /** Fill of a subtotal or grand total row: the cell color, so the rules mark the total instead of a band. The footer's default totals row keeps the header tray. */
|
|
2379
|
+
--sl-sheet-rule-color: var(--sl-rule-color); /** The top rule's color: the working-paper rule color, so sheets and ruled tables match. */
|
|
2380
|
+
--sl-sheet-tab-color: var(--sl-text-on-inverse-surface); /** Text on the tab label. */
|
|
2381
|
+
--sl-stat-figure-underline-color: var(--sl-rule-color); /** The double underline's color: the working-paper rule color, like a grand total's double rule. */
|
|
2317
2382
|
--sl-check-background: var(--sl-field-background); /** Empty box, the same fill as a field so it reads as something to fill in. */
|
|
2318
2383
|
--sl-popup-arrow-fill: var(--sl-popup-background); /** The arrow is part of the popup, so it takes the popup's fill. */
|
|
2319
2384
|
}
|
|
@@ -5779,6 +5844,7 @@
|
|
|
5779
5844
|
--sl-popup-arrow-fill: var(--sl-popup-background);
|
|
5780
5845
|
--sl-popup-arrow-stroke: var(--sl-popup-border-color);
|
|
5781
5846
|
--sl-popup-separator-color: var(--sl-border-subtle);
|
|
5847
|
+
--sl-rule-color: var(--sl-border-strong);
|
|
5782
5848
|
--sl-table-background: var(--sl-surface-canvas);
|
|
5783
5849
|
--sl-table-color: var(--sl-text-primary);
|
|
5784
5850
|
--sl-table-subtle-color: var(--sl-text-secondary);
|
|
@@ -5794,7 +5860,23 @@
|
|
|
5794
5860
|
--sl-table-column-hover: var(--sl-fill-subtle);
|
|
5795
5861
|
--sl-table-range-background: var(--sl-interactive-tint);
|
|
5796
5862
|
--sl-table-range-border: var(--sl-focus-ring);
|
|
5863
|
+
--sl-table-total-rule-color: var(--sl-rule-color);
|
|
5864
|
+
--sl-table-total-background: var(--sl-table-background);
|
|
5865
|
+
--sl-description-list-row-border-color: var(--sl-border-subtle);
|
|
5866
|
+
--sl-description-list-label-color: var(--sl-text-secondary);
|
|
5867
|
+
--sl-description-list-value-color: var(--sl-text-primary);
|
|
5868
|
+
--sl-description-list-leader-color: var(--sl-border-control);
|
|
5797
5869
|
--sl-drawer-handle-color: var(--sl-border-strong);
|
|
5870
|
+
--sl-sheet-background: var(--sl-surface-raised);
|
|
5871
|
+
--sl-sheet-border-color: var(--sl-border-default);
|
|
5872
|
+
--sl-sheet-rule-color: var(--sl-rule-color);
|
|
5873
|
+
--sl-sheet-tab-background: var(--sl-surface-inverse);
|
|
5874
|
+
--sl-sheet-tab-color: var(--sl-text-on-inverse-surface);
|
|
5875
|
+
--sl-stat-figure-figure-color: var(--sl-text-primary);
|
|
5876
|
+
--sl-stat-figure-figure-color-accent: var(--sl-text-accent);
|
|
5877
|
+
--sl-stat-figure-underline-color: var(--sl-rule-color);
|
|
5878
|
+
--sl-stat-figure-label-color: var(--sl-text-secondary);
|
|
5879
|
+
--sl-stat-figure-caption-color: var(--sl-text-secondary);
|
|
5798
5880
|
--sl-calendar-day-background-hover: var(--sl-item-background-hover);
|
|
5799
5881
|
--sl-check-background: var(--sl-field-background);
|
|
5800
5882
|
}
|
|
@@ -5925,6 +6007,7 @@
|
|
|
5925
6007
|
--sl-popup-arrow-fill: var(--sl-popup-background);
|
|
5926
6008
|
--sl-popup-arrow-stroke: var(--sl-popup-border-color);
|
|
5927
6009
|
--sl-popup-separator-color: var(--sl-border-subtle);
|
|
6010
|
+
--sl-rule-color: var(--sl-border-strong);
|
|
5928
6011
|
--sl-table-background: var(--sl-surface-canvas);
|
|
5929
6012
|
--sl-table-color: var(--sl-text-primary);
|
|
5930
6013
|
--sl-table-subtle-color: var(--sl-text-secondary);
|
|
@@ -5940,7 +6023,23 @@
|
|
|
5940
6023
|
--sl-table-column-hover: var(--sl-fill-subtle);
|
|
5941
6024
|
--sl-table-range-background: var(--sl-interactive-tint);
|
|
5942
6025
|
--sl-table-range-border: var(--sl-focus-ring);
|
|
6026
|
+
--sl-table-total-rule-color: var(--sl-rule-color);
|
|
6027
|
+
--sl-table-total-background: var(--sl-table-background);
|
|
6028
|
+
--sl-description-list-row-border-color: var(--sl-border-subtle);
|
|
6029
|
+
--sl-description-list-label-color: var(--sl-text-secondary);
|
|
6030
|
+
--sl-description-list-value-color: var(--sl-text-primary);
|
|
6031
|
+
--sl-description-list-leader-color: var(--sl-border-control);
|
|
5943
6032
|
--sl-drawer-handle-color: var(--sl-border-strong);
|
|
6033
|
+
--sl-sheet-background: var(--sl-surface-raised);
|
|
6034
|
+
--sl-sheet-border-color: var(--sl-border-default);
|
|
6035
|
+
--sl-sheet-rule-color: var(--sl-rule-color);
|
|
6036
|
+
--sl-sheet-tab-background: var(--sl-surface-inverse);
|
|
6037
|
+
--sl-sheet-tab-color: var(--sl-text-on-inverse-surface);
|
|
6038
|
+
--sl-stat-figure-figure-color: var(--sl-text-primary);
|
|
6039
|
+
--sl-stat-figure-figure-color-accent: var(--sl-text-accent);
|
|
6040
|
+
--sl-stat-figure-underline-color: var(--sl-rule-color);
|
|
6041
|
+
--sl-stat-figure-label-color: var(--sl-text-secondary);
|
|
6042
|
+
--sl-stat-figure-caption-color: var(--sl-text-secondary);
|
|
5944
6043
|
--sl-calendar-day-background-hover: var(--sl-item-background-hover);
|
|
5945
6044
|
--sl-check-background: var(--sl-field-background);
|
|
5946
6045
|
}
|
|
@@ -6071,6 +6170,7 @@
|
|
|
6071
6170
|
--sl-popup-arrow-fill: var(--sl-popup-background);
|
|
6072
6171
|
--sl-popup-arrow-stroke: var(--sl-popup-border-color);
|
|
6073
6172
|
--sl-popup-separator-color: var(--sl-border-subtle);
|
|
6173
|
+
--sl-rule-color: var(--sl-border-strong);
|
|
6074
6174
|
--sl-table-background: var(--sl-surface-canvas);
|
|
6075
6175
|
--sl-table-color: var(--sl-text-primary);
|
|
6076
6176
|
--sl-table-subtle-color: var(--sl-text-secondary);
|
|
@@ -6086,7 +6186,23 @@
|
|
|
6086
6186
|
--sl-table-column-hover: var(--sl-fill-subtle);
|
|
6087
6187
|
--sl-table-range-background: var(--sl-interactive-tint);
|
|
6088
6188
|
--sl-table-range-border: var(--sl-focus-ring);
|
|
6189
|
+
--sl-table-total-rule-color: var(--sl-rule-color);
|
|
6190
|
+
--sl-table-total-background: var(--sl-table-background);
|
|
6191
|
+
--sl-description-list-row-border-color: var(--sl-border-subtle);
|
|
6192
|
+
--sl-description-list-label-color: var(--sl-text-secondary);
|
|
6193
|
+
--sl-description-list-value-color: var(--sl-text-primary);
|
|
6194
|
+
--sl-description-list-leader-color: var(--sl-border-control);
|
|
6089
6195
|
--sl-drawer-handle-color: var(--sl-border-strong);
|
|
6196
|
+
--sl-sheet-background: var(--sl-surface-raised);
|
|
6197
|
+
--sl-sheet-border-color: var(--sl-border-default);
|
|
6198
|
+
--sl-sheet-rule-color: var(--sl-rule-color);
|
|
6199
|
+
--sl-sheet-tab-background: var(--sl-surface-inverse);
|
|
6200
|
+
--sl-sheet-tab-color: var(--sl-text-on-inverse-surface);
|
|
6201
|
+
--sl-stat-figure-figure-color: var(--sl-text-primary);
|
|
6202
|
+
--sl-stat-figure-figure-color-accent: var(--sl-text-accent);
|
|
6203
|
+
--sl-stat-figure-underline-color: var(--sl-rule-color);
|
|
6204
|
+
--sl-stat-figure-label-color: var(--sl-text-secondary);
|
|
6205
|
+
--sl-stat-figure-caption-color: var(--sl-text-secondary);
|
|
6090
6206
|
--sl-calendar-day-background-hover: var(--sl-item-background-hover);
|
|
6091
6207
|
--sl-check-background: var(--sl-field-background);
|
|
6092
6208
|
}
|
|
@@ -6159,6 +6275,16 @@
|
|
|
6159
6275
|
letter-spacing: var(--sl-font-title-base-letter-spacing);
|
|
6160
6276
|
}
|
|
6161
6277
|
|
|
6278
|
+
/* Figures in the base tier: an amount beside base text, a balance in a card. The mono family with tabular numbers, so digits line up. */
|
|
6279
|
+
.text-style-figures-base {
|
|
6280
|
+
font-family: var(--sl-font-figures-base-font-family);
|
|
6281
|
+
font-size: var(--sl-font-figures-base-font-size);
|
|
6282
|
+
font-weight: var(--sl-font-figures-base-font-weight);
|
|
6283
|
+
line-height: var(--sl-font-figures-base-line-height);
|
|
6284
|
+
letter-spacing: var(--sl-font-figures-base-letter-spacing);
|
|
6285
|
+
font-variant-numeric: var(--sl-font-figures-base-font-variant-numeric);
|
|
6286
|
+
}
|
|
6287
|
+
|
|
6162
6288
|
/* Code uses the mono family so characters line up. */
|
|
6163
6289
|
.text-style-code-condense {
|
|
6164
6290
|
font-family: var(--sl-font-code-condense-font-family);
|
|
@@ -6168,6 +6294,16 @@
|
|
|
6168
6294
|
letter-spacing: var(--sl-font-code-condense-letter-spacing);
|
|
6169
6295
|
}
|
|
6170
6296
|
|
|
6297
|
+
/* Figures in the condense tier: amounts and counts in tables and dense rows. The mono family with tabular numbers, so digits line up down a column. */
|
|
6298
|
+
.text-style-figures-condense {
|
|
6299
|
+
font-family: var(--sl-font-figures-condense-font-family);
|
|
6300
|
+
font-size: var(--sl-font-figures-condense-font-size);
|
|
6301
|
+
font-weight: var(--sl-font-figures-condense-font-weight);
|
|
6302
|
+
line-height: var(--sl-font-figures-condense-line-height);
|
|
6303
|
+
letter-spacing: var(--sl-font-figures-condense-letter-spacing);
|
|
6304
|
+
font-variant-numeric: var(--sl-font-figures-condense-font-variant-numeric);
|
|
6305
|
+
}
|
|
6306
|
+
|
|
6171
6307
|
/* Body copy in the condense tier, dense UI text (tables, secondary labels). */
|
|
6172
6308
|
.text-style-body-condense {
|
|
6173
6309
|
font-family: var(--sl-font-body-condense-font-family);
|
|
@@ -6223,6 +6359,16 @@
|
|
|
6223
6359
|
text-transform: var(--sl-font-eyebrow-condense-text-transform);
|
|
6224
6360
|
}
|
|
6225
6361
|
|
|
6362
|
+
/* Caps labels in the condense tier: a working-paper caption, a column head over figures, a sheet's tab label. Uppercase and tracked a little wider than an eyebrow, so it reads as a label and not a heading. */
|
|
6363
|
+
.text-style-caps-condense {
|
|
6364
|
+
font-family: var(--sl-font-caps-condense-font-family);
|
|
6365
|
+
font-size: var(--sl-font-caps-condense-font-size);
|
|
6366
|
+
font-weight: var(--sl-font-caps-condense-font-weight);
|
|
6367
|
+
line-height: var(--sl-font-caps-condense-line-height);
|
|
6368
|
+
letter-spacing: var(--sl-font-caps-condense-letter-spacing);
|
|
6369
|
+
text-transform: var(--sl-font-caps-condense-text-transform);
|
|
6370
|
+
}
|
|
6371
|
+
|
|
6226
6372
|
/* Titles in the condense tier: group headers in tables, menus and dense panels. Titles use the display family; the tier sets the size. */
|
|
6227
6373
|
.text-style-title-condense {
|
|
6228
6374
|
font-family: var(--sl-font-title-condense-font-family);
|
|
@@ -6413,7 +6559,7 @@
|
|
|
6413
6559
|
}
|
|
6414
6560
|
|
|
6415
6561
|
|
|
6416
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
6562
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
6417
6563
|
/* Loomiere for Base UI: component styles. Brand-free: every value is a --sl- variable from a
|
|
6418
6564
|
Loomiere theme. Load the theme first:
|
|
6419
6565
|
@import '<your theme>/tokens.css';
|
|
@@ -6423,7 +6569,7 @@
|
|
|
6423
6569
|
/* Document defaults, in the reset layer so any unlayered rule wins over them, and so layered
|
|
6424
6570
|
frameworks (Chakra's recipes, Tailwind's utilities) are not undone by them. */
|
|
6425
6571
|
@layer reset {
|
|
6426
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
6572
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
6427
6573
|
/* CSS Reset - Mojave Theme */
|
|
6428
6574
|
|
|
6429
6575
|
/* ============================================
|
|
@@ -6697,7 +6843,7 @@ pre {
|
|
|
6697
6843
|
background: var(--sl-content-pre-background);
|
|
6698
6844
|
border: var(--sl-stroke-thin) solid var(--sl-content-pre-border);
|
|
6699
6845
|
color: var(--sl-content-pre-text);
|
|
6700
|
-
border-radius: var(--sl-
|
|
6846
|
+
border-radius: var(--sl-content-pre-radius);
|
|
6701
6847
|
overflow-x: auto;
|
|
6702
6848
|
margin-block: var(--sl-space-6);
|
|
6703
6849
|
}
|
|
@@ -6867,7 +7013,7 @@ hr {
|
|
|
6867
7013
|
}
|
|
6868
7014
|
}
|
|
6869
7015
|
@layer reset {
|
|
6870
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7016
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
6871
7017
|
/* Accessibility — base rules (no theme color dependencies). Theme-specific focus/invalid: accessibility-theme.css */
|
|
6872
7018
|
|
|
6873
7019
|
/* Remove default focus; keyboard focus styled in accessibility-theme.css */
|
|
@@ -6980,7 +7126,7 @@ main:focus {
|
|
|
6980
7126
|
|
|
6981
7127
|
}
|
|
6982
7128
|
@layer reset {
|
|
6983
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7129
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
6984
7130
|
/* Focus, invalid, contrast — requires theme tokens (after theme-accessibility.css). */
|
|
6985
7131
|
|
|
6986
7132
|
:focus-visible {
|
|
@@ -7048,7 +7194,7 @@ button,
|
|
|
7048
7194
|
|
|
7049
7195
|
}
|
|
7050
7196
|
/* Component styles */
|
|
7051
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7197
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7052
7198
|
/* Accordion - Mojave Theme
|
|
7053
7199
|
*
|
|
7054
7200
|
* No component tokens. Hover, press, chevron, divider and motion are the disclosure
|
|
@@ -7169,7 +7315,7 @@ button,
|
|
|
7169
7315
|
overflow: hidden;
|
|
7170
7316
|
}
|
|
7171
7317
|
|
|
7172
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7318
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7173
7319
|
/* Alert Dialog - Mojave Theme
|
|
7174
7320
|
*
|
|
7175
7321
|
* No component tokens and no rules of its own. An alert dialog looks exactly like a
|
|
@@ -7178,7 +7324,7 @@ button,
|
|
|
7178
7324
|
* cancel quiet, and a destructive one bold with data-color="error".
|
|
7179
7325
|
*/
|
|
7180
7326
|
|
|
7181
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7327
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7182
7328
|
/* Autocomplete - Mojave Theme
|
|
7183
7329
|
*
|
|
7184
7330
|
* No component tokens. The input is Input (Input.css), the clear button is an icon
|
|
@@ -7380,7 +7526,7 @@ button,
|
|
|
7380
7526
|
(reset-accessibility.css).
|
|
7381
7527
|
============================================ */
|
|
7382
7528
|
|
|
7383
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7529
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7384
7530
|
/* Avatar - Mojave Theme
|
|
7385
7531
|
*
|
|
7386
7532
|
* A round picture with a ring in the page color, so avatars in a group cut out of each other in
|
|
@@ -7488,7 +7634,7 @@ button,
|
|
|
7488
7634
|
}
|
|
7489
7635
|
}
|
|
7490
7636
|
|
|
7491
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7637
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7492
7638
|
/* Button - Mojave Theme
|
|
7493
7639
|
*
|
|
7494
7640
|
* Colors are the brand's emphasis levels, sizes are control.*, text is the trigger
|
|
@@ -7638,7 +7784,7 @@ button,
|
|
|
7638
7784
|
font-size: var(--sl-icon-size-maximize);
|
|
7639
7785
|
}
|
|
7640
7786
|
|
|
7641
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7787
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7642
7788
|
/* Checkbox - Mojave Theme
|
|
7643
7789
|
* Sizes follow the label: the box is the icon size one tier above the label's text
|
|
7644
7790
|
* tier (like a button's icon) and the check mark one tier below it.
|
|
@@ -7795,7 +7941,7 @@ button,
|
|
|
7795
7941
|
border-radius: var(--sl-radius-pill);
|
|
7796
7942
|
}
|
|
7797
7943
|
|
|
7798
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7944
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7799
7945
|
/* Checkbox Group - Mojave Theme */
|
|
7800
7946
|
|
|
7801
7947
|
/* Each checkbox row is already a full tap target tall, so the rows sit close. */
|
|
@@ -7811,7 +7957,7 @@ button,
|
|
|
7811
7957
|
pointer-events: none;
|
|
7812
7958
|
}
|
|
7813
7959
|
|
|
7814
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7960
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7815
7961
|
/* Collapsible - Mojave Theme
|
|
7816
7962
|
*
|
|
7817
7963
|
* No component tokens. Hover, press, chevron and motion are the disclosure concept
|
|
@@ -7927,7 +8073,7 @@ button,
|
|
|
7927
8073
|
background: var(--sl-surface-raised);
|
|
7928
8074
|
}
|
|
7929
8075
|
|
|
7930
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
8076
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7931
8077
|
/* Combobox - Mojave Theme
|
|
7932
8078
|
*
|
|
7933
8079
|
* No component tokens. The input is Input (Input.css); the chips box is a field; the
|
|
@@ -8412,7 +8558,7 @@ button,
|
|
|
8412
8558
|
color: var(--sl-text-tertiary);
|
|
8413
8559
|
}
|
|
8414
8560
|
|
|
8415
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
8561
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
8416
8562
|
/* Context Menu - Mojave Theme
|
|
8417
8563
|
*
|
|
8418
8564
|
* No component tokens. Opens on right-click; the trigger area only sets the cursor. The popup is the popup concept, rows are item rows at the
|
|
@@ -8581,7 +8727,7 @@ button,
|
|
|
8581
8727
|
stroke-width: var(--sl-stroke-default);
|
|
8582
8728
|
}
|
|
8583
8729
|
|
|
8584
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
8730
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
8585
8731
|
/* Dialog and Alert dialog - Mojave Theme
|
|
8586
8732
|
*
|
|
8587
8733
|
* Both are centered modals built from the modal concept (tokens/semantic/modal.json):
|
|
@@ -8727,12 +8873,14 @@ button,
|
|
|
8727
8873
|
margin-top: var(--sl-modal-actions-spacing);
|
|
8728
8874
|
}
|
|
8729
8875
|
|
|
8730
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
8876
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
8731
8877
|
/* Drawer - a panel that slides in from an edge and can be swiped away.
|
|
8732
8878
|
The surface, scrim, heading and motion are the modal concept's (--sl-modal-*), so a
|
|
8733
8879
|
drawer reads as a dialog's sibling; only its size and grab bar are its own
|
|
8734
8880
|
(--sl-drawer-*). Base UI supplies the swipe through
|
|
8735
|
-
--drawer-swipe-movement-x/y and data-swipe-direction on the popup.
|
|
8881
|
+
--drawer-swipe-movement-x/y and data-swipe-direction on the popup.
|
|
8882
|
+
The working-paper rule (rule.width, 0 by default) replaces the top border with a heavier
|
|
8883
|
+
line in rule.color. It is an inset shadow, so it stays put while the drawer scrolls. */
|
|
8736
8884
|
|
|
8737
8885
|
.DrawerBackdrop {
|
|
8738
8886
|
position: fixed;
|
|
@@ -8769,6 +8917,8 @@ button,
|
|
|
8769
8917
|
overflow-y: auto;
|
|
8770
8918
|
overscroll-behavior: contain;
|
|
8771
8919
|
pointer-events: auto;
|
|
8920
|
+
border-top-width: max(0px, var(--sl-modal-border-width) - var(--sl-rule-width) * 1000);
|
|
8921
|
+
box-shadow: inset 0 var(--sl-rule-width) 0 0 var(--sl-rule-color), var(--sl-modal-shadow);
|
|
8772
8922
|
transform: translate(var(--drawer-swipe-movement-x, 0px), var(--drawer-swipe-movement-y, 0px));
|
|
8773
8923
|
transition: transform calc(var(--sl-modal-animation-duration) * var(--drawer-swipe-strength, 1)) var(--sl-modal-animation-easing);
|
|
8774
8924
|
}
|
|
@@ -8799,6 +8949,8 @@ button,
|
|
|
8799
8949
|
max-height: var(--sl-drawer-popup-max-size);
|
|
8800
8950
|
border-top: 0;
|
|
8801
8951
|
border-radius: 0 0 var(--sl-modal-radius) var(--sl-modal-radius);
|
|
8952
|
+
/* Its top edge is the screen's, so no rule. */
|
|
8953
|
+
box-shadow: var(--sl-modal-shadow);
|
|
8802
8954
|
}
|
|
8803
8955
|
|
|
8804
8956
|
.DrawerPopup[data-swipe-direction='right'] {
|
|
@@ -8854,7 +9006,7 @@ button,
|
|
|
8854
9006
|
color: var(--sl-modal-description-color);
|
|
8855
9007
|
}
|
|
8856
9008
|
|
|
8857
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9009
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
8858
9010
|
/* Field - Mojave Theme
|
|
8859
9011
|
*
|
|
8860
9012
|
* Label, control, description and error. No component tokens: spacing is the field
|
|
@@ -8915,7 +9067,7 @@ textarea.FieldControl {
|
|
|
8915
9067
|
height: auto;
|
|
8916
9068
|
}
|
|
8917
9069
|
|
|
8918
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9070
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
8919
9071
|
/* Fieldset - Mojave Theme
|
|
8920
9072
|
*
|
|
8921
9073
|
* No component tokens: a titled group of fields, spaced by the stack gaps, with
|
|
@@ -8957,7 +9109,7 @@ textarea.FieldControl {
|
|
|
8957
9109
|
color: var(--sl-text-secondary);
|
|
8958
9110
|
}
|
|
8959
9111
|
|
|
8960
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9112
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
8961
9113
|
/* Form - Mojave Theme
|
|
8962
9114
|
*
|
|
8963
9115
|
* No component tokens: fields stack with the large block space, and the action
|
|
@@ -8977,7 +9129,7 @@ textarea.FieldControl {
|
|
|
8977
9129
|
margin-top: var(--sl-space-block-md);
|
|
8978
9130
|
}
|
|
8979
9131
|
|
|
8980
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9132
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
8981
9133
|
/* Input - Mojave Theme
|
|
8982
9134
|
*
|
|
8983
9135
|
* No component tokens: the look is the field concept (tokens/semantic/field.json),
|
|
@@ -9114,7 +9266,7 @@ textarea.FieldControl {
|
|
|
9114
9266
|
padding-inline: var(--sl-control-padding-inline-lg);
|
|
9115
9267
|
}
|
|
9116
9268
|
|
|
9117
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9269
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
9118
9270
|
/* Menu - Mojave Theme
|
|
9119
9271
|
*
|
|
9120
9272
|
* No component tokens. The trigger is a Button. The popup is the popup concept, rows are item rows at the
|
|
@@ -9263,7 +9415,7 @@ textarea.FieldControl {
|
|
|
9263
9415
|
color: var(--sl-text-tertiary);
|
|
9264
9416
|
}
|
|
9265
9417
|
|
|
9266
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9418
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
9267
9419
|
/* Menubar - Mojave Theme
|
|
9268
9420
|
*
|
|
9269
9421
|
* No component tokens. A row of quiet triggers, each opening a menu. The popup is the popup concept, rows are item rows at the
|
|
@@ -9456,7 +9608,7 @@ textarea.FieldControl {
|
|
|
9456
9608
|
color: var(--sl-text-tertiary);
|
|
9457
9609
|
}
|
|
9458
9610
|
|
|
9459
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9611
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
9460
9612
|
/* Meter - Mojave Theme
|
|
9461
9613
|
*
|
|
9462
9614
|
* A gauge (tokens/semantic/gauge.json). The fill is the solid color of the scope around it:
|
|
@@ -9519,7 +9671,7 @@ textarea.FieldControl {
|
|
|
9519
9671
|
height: var(--sl-gauge-height-lg);
|
|
9520
9672
|
}
|
|
9521
9673
|
|
|
9522
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9674
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
9523
9675
|
/* Navigation Menu - Mojave Theme
|
|
9524
9676
|
*
|
|
9525
9677
|
* The strip is the bar concept, the panel is the popup concept and each link is an item
|
|
@@ -9939,7 +10091,7 @@ textarea.FieldControl {
|
|
|
9939
10091
|
width: 100%;
|
|
9940
10092
|
}
|
|
9941
10093
|
|
|
9942
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10094
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
9943
10095
|
/* Number Field - Mojave Theme
|
|
9944
10096
|
*
|
|
9945
10097
|
* No component tokens. The input is Input (Input.css) and the label, description and
|
|
@@ -10030,7 +10182,7 @@ textarea.FieldControl {
|
|
|
10030
10182
|
user-select: none;
|
|
10031
10183
|
}
|
|
10032
10184
|
|
|
10033
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10185
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10034
10186
|
/* OTP Field - Mojave Theme
|
|
10035
10187
|
*
|
|
10036
10188
|
* One-time code entry: a row of single-character inputs. Each slot is the same control as Input
|
|
@@ -10093,7 +10245,7 @@ textarea.FieldControl {
|
|
|
10093
10245
|
letter-spacing: var(--sl-font-body-magnify-letter-spacing);
|
|
10094
10246
|
}
|
|
10095
10247
|
|
|
10096
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10248
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10097
10249
|
/* Popover - Mojave Theme */
|
|
10098
10250
|
|
|
10099
10251
|
/* ============================================
|
|
@@ -10258,7 +10410,7 @@ textarea.FieldControl {
|
|
|
10258
10410
|
fill: var(--sl-popup-arrow-stroke);
|
|
10259
10411
|
}
|
|
10260
10412
|
|
|
10261
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10413
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10262
10414
|
/* Preview Card - Mojave Theme
|
|
10263
10415
|
*
|
|
10264
10416
|
* The popup concept (surface, arrow, motion) with a title-magnify title and condense
|
|
@@ -10375,7 +10527,7 @@ textarea.FieldControl {
|
|
|
10375
10527
|
fill: var(--sl-popup-arrow-stroke);
|
|
10376
10528
|
}
|
|
10377
10529
|
|
|
10378
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10530
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10379
10531
|
/* Progress - Mojave Theme
|
|
10380
10532
|
*
|
|
10381
10533
|
* A gauge (tokens/semantic/gauge.json), the same bar as Meter. The fill is the solid color of
|
|
@@ -10452,7 +10604,7 @@ textarea.FieldControl {
|
|
|
10452
10604
|
height: var(--sl-gauge-height-lg);
|
|
10453
10605
|
}
|
|
10454
10606
|
|
|
10455
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10607
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10456
10608
|
/* Radio - Mojave Theme
|
|
10457
10609
|
* Same box as Checkbox, always round. Sizes follow the label the same way, and the
|
|
10458
10610
|
* dot is a share of the circle (check.dot-scale).
|
|
@@ -10604,7 +10756,7 @@ textarea.FieldControl {
|
|
|
10604
10756
|
gap: var(--sl-gap-stack-sm);
|
|
10605
10757
|
}
|
|
10606
10758
|
|
|
10607
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10759
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10608
10760
|
/* Scroll Area - Mojave Theme
|
|
10609
10761
|
*
|
|
10610
10762
|
* The scrollbar is the content scrollbar (content.scrollbar-*): a track that stays clear until
|
|
@@ -10686,7 +10838,7 @@ textarea.FieldControl {
|
|
|
10686
10838
|
background: transparent;
|
|
10687
10839
|
}
|
|
10688
10840
|
|
|
10689
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10841
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10690
10842
|
/* Select - Mojave Theme
|
|
10691
10843
|
*
|
|
10692
10844
|
* The trigger is a field (the field pattern, control sizes, the base text style); the
|
|
@@ -10971,7 +11123,7 @@ textarea.FieldControl {
|
|
|
10971
11123
|
stroke-width: var(--sl-stroke-default);
|
|
10972
11124
|
}
|
|
10973
11125
|
|
|
10974
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11126
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10975
11127
|
/* Separator - Mojave Theme
|
|
10976
11128
|
*
|
|
10977
11129
|
* A hairline in the everyday divider color (border.default), one stroke thick, with a step of
|
|
@@ -10999,7 +11151,7 @@ textarea.FieldControl {
|
|
|
10999
11151
|
margin-inline: var(--sl-space-4);
|
|
11000
11152
|
}
|
|
11001
11153
|
|
|
11002
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11154
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11003
11155
|
/* Slider - Mojave Theme
|
|
11004
11156
|
*
|
|
11005
11157
|
* A slider is a gauge you can drag: the track, fill and label row are gauge.* (the same bar as
|
|
@@ -11165,7 +11317,7 @@ textarea.FieldControl {
|
|
|
11165
11317
|
transform: translate(-50%, 50%);
|
|
11166
11318
|
}
|
|
11167
11319
|
|
|
11168
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11320
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11169
11321
|
/* Switch - Mojave Theme
|
|
11170
11322
|
* Switch keeps its track sizes. The thumb, its travel and the ON/OFF text are
|
|
11171
11323
|
* worked out from them: the thumb fills the track's height inside the padding,
|
|
@@ -11331,7 +11483,7 @@ textarea.FieldControl {
|
|
|
11331
11483
|
color: var(--sl-text-disabled);
|
|
11332
11484
|
}
|
|
11333
11485
|
|
|
11334
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11486
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11335
11487
|
/* Tabs - Mojave Theme
|
|
11336
11488
|
*
|
|
11337
11489
|
* No component tokens. The divider, the selected line and color, hover and the disabled
|
|
@@ -11467,7 +11619,7 @@ textarea.FieldControl {
|
|
|
11467
11619
|
padding: var(--sl-space-6);
|
|
11468
11620
|
}
|
|
11469
11621
|
|
|
11470
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11622
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11471
11623
|
/* Toast - Mojave Theme
|
|
11472
11624
|
*
|
|
11473
11625
|
* A toast is a notice (tokens/semantic/notice.json) on the popup surface. A toast whose type
|
|
@@ -11703,7 +11855,7 @@ textarea.FieldControl {
|
|
|
11703
11855
|
flex-shrink: 0;
|
|
11704
11856
|
}
|
|
11705
11857
|
|
|
11706
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11858
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11707
11859
|
/* Toggle - Mojave Theme
|
|
11708
11860
|
* A toggle is a button that stays pressed: the same heights, padding, gap and
|
|
11709
11861
|
* trigger text style as a button of the same size. Pressed, it takes its emphasis level's
|
|
@@ -11815,7 +11967,7 @@ textarea.FieldControl {
|
|
|
11815
11967
|
height: var(--sl-icon-size-maximize);
|
|
11816
11968
|
}
|
|
11817
11969
|
|
|
11818
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11970
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11819
11971
|
/* Toggle Group - Mojave Theme
|
|
11820
11972
|
*
|
|
11821
11973
|
* No component tokens. The strip is the bar concept (tokens/semantic/bar.json); the
|
|
@@ -11836,7 +11988,7 @@ textarea.FieldControl {
|
|
|
11836
11988
|
border-radius: var(--sl-radius-item);
|
|
11837
11989
|
}
|
|
11838
11990
|
|
|
11839
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11991
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11840
11992
|
/* Toolbar - Mojave Theme
|
|
11841
11993
|
*
|
|
11842
11994
|
* The strip is the bar concept (tokens/semantic/bar.json). Buttons, toggles, selects
|
|
@@ -11898,7 +12050,7 @@ textarea.FieldControl {
|
|
|
11898
12050
|
max-width: var(--sl-toolbar-input-max-width);
|
|
11899
12051
|
}
|
|
11900
12052
|
|
|
11901
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
12053
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11902
12054
|
/* Tooltip - Mojave Theme
|
|
11903
12055
|
*
|
|
11904
12056
|
* The inverse surface (surface.inverse, text.on-inverse-surface) with condense text, so a tooltip
|
|
@@ -11959,7 +12111,7 @@ textarea.FieldControl {
|
|
|
11959
12111
|
}
|
|
11960
12112
|
|
|
11961
12113
|
/* Custom components: not Base UI parts. Built from existing concepts and tokens. */
|
|
11962
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
12114
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11963
12115
|
/* Badge
|
|
11964
12116
|
*
|
|
11965
12117
|
* A status or count label. Not a Base UI part, and not interactive: no hover or focus.
|
|
@@ -12064,7 +12216,7 @@ textarea.FieldControl {
|
|
|
12064
12216
|
height: var(--sl-badge-dot-base);
|
|
12065
12217
|
}
|
|
12066
12218
|
|
|
12067
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
12219
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
12068
12220
|
/*
|
|
12069
12221
|
* DatePicker: a field that opens a calendar for one date or a period.
|
|
12070
12222
|
* Not a Base UI part. The popup is Popover on a wide viewport and Drawer
|
|
@@ -12637,7 +12789,7 @@ textarea.FieldControl {
|
|
|
12637
12789
|
flex-basis: 100%;
|
|
12638
12790
|
}
|
|
12639
12791
|
|
|
12640
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
12792
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
12641
12793
|
/* Money field
|
|
12642
12794
|
*
|
|
12643
12795
|
* An amount of money, built on Number field. The value is an integer in minor units
|
|
@@ -12982,7 +13134,7 @@ textarea.FieldControl {
|
|
|
12982
13134
|
letter-spacing: var(--sl-font-body-base-letter-spacing);
|
|
12983
13135
|
}
|
|
12984
13136
|
|
|
12985
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
13137
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
12986
13138
|
/* ListDetail
|
|
12987
13139
|
*
|
|
12988
13140
|
* The detail of one item, next to its list. Not a Base UI part. It is a Splitter
|
|
@@ -13109,7 +13261,7 @@ textarea.FieldControl {
|
|
|
13109
13261
|
background: transparent;
|
|
13110
13262
|
}
|
|
13111
13263
|
|
|
13112
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
13264
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
13113
13265
|
/* Splitter
|
|
13114
13266
|
*
|
|
13115
13267
|
* Two or more panels and a handle between them. Not a Base UI part. It follows the
|
|
@@ -13317,7 +13469,7 @@ textarea.FieldControl {
|
|
|
13317
13469
|
background: var(--sl-border-default);
|
|
13318
13470
|
}
|
|
13319
13471
|
|
|
13320
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
13472
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
13321
13473
|
/* EmptyState
|
|
13322
13474
|
*
|
|
13323
13475
|
* The block a page, pane, table, list or popup shows when it has nothing to show.
|
|
@@ -13573,7 +13725,7 @@ textarea.FieldControl {
|
|
|
13573
13725
|
color: inherit;
|
|
13574
13726
|
}
|
|
13575
13727
|
|
|
13576
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
13728
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
13577
13729
|
/* Table - Mojave Theme
|
|
13578
13730
|
*
|
|
13579
13731
|
* Base UI has no table, so this styles the native <table class="Table"> elements with the
|
|
@@ -13586,6 +13738,13 @@ textarea.FieldControl {
|
|
|
13586
13738
|
* `<tr><td data-empty colSpan={n}><EmptyState size="compact" … /></td></tr>`. A cell with
|
|
13587
13739
|
* only text still uses this rule's padding. A cell whose child is an EmptyState lets the
|
|
13588
13740
|
* empty state pad itself. The empty row does not take the row hover.
|
|
13741
|
+
*
|
|
13742
|
+
* Totals: tr data-total="subtotal" draws a single rule above the row, and data-total="grand"
|
|
13743
|
+
* a rule above and a double rule under, as on a working paper (table.total-*). They work in
|
|
13744
|
+
* tbody or tfoot. A tfoot row without data-total keeps the header tray band.
|
|
13745
|
+
*
|
|
13746
|
+
* The working-paper rule (rule.width, 0 by default) replaces the table's top border with a
|
|
13747
|
+
* heavier line in rule.color, drawn on the first row's cells so it stays with a sticky header.
|
|
13589
13748
|
*/
|
|
13590
13749
|
|
|
13591
13750
|
.Table {
|
|
@@ -13604,6 +13763,15 @@ textarea.FieldControl {
|
|
|
13604
13763
|
border-radius: var(--sl-table-radius);
|
|
13605
13764
|
overflow: hidden;
|
|
13606
13765
|
font-variant-numeric: tabular-nums;
|
|
13766
|
+
/* The top border steps aside while the working-paper rule is on (any rule.width above 0). */
|
|
13767
|
+
border-top-width: max(0px, var(--sl-stroke-default) - var(--sl-rule-width) * 1000);
|
|
13768
|
+
}
|
|
13769
|
+
|
|
13770
|
+
/* The working-paper rule, on the first row: the header, or the body when there is none.
|
|
13771
|
+
At rule.width 0 this is no border at all. */
|
|
13772
|
+
.Table > thead > tr:first-child > *,
|
|
13773
|
+
.Table:not(:has(> thead)) > tbody:first-of-type > tr:first-child > * {
|
|
13774
|
+
border-top: var(--sl-rule-width) solid var(--sl-rule-color);
|
|
13607
13775
|
}
|
|
13608
13776
|
|
|
13609
13777
|
.Table caption {
|
|
@@ -13715,6 +13883,52 @@ textarea.FieldControl {
|
|
|
13715
13883
|
border-bottom: none;
|
|
13716
13884
|
}
|
|
13717
13885
|
|
|
13886
|
+
/* Subtotal and grand total rows: rules instead of a band, in the subtitle weight.
|
|
13887
|
+
Hover and selection don't apply: a total is not a record. */
|
|
13888
|
+
.Table tr[data-total] > * {
|
|
13889
|
+
font-family: var(--sl-font-subtitle-condense-font-family);
|
|
13890
|
+
font-size: var(--sl-font-subtitle-condense-font-size);
|
|
13891
|
+
font-weight: var(--sl-font-subtitle-condense-font-weight);
|
|
13892
|
+
line-height: var(--sl-font-subtitle-condense-line-height);
|
|
13893
|
+
letter-spacing: var(--sl-font-subtitle-condense-letter-spacing);
|
|
13894
|
+
background: var(--sl-table-total-background);
|
|
13895
|
+
color: var(--sl-table-color);
|
|
13896
|
+
border-top: var(--sl-table-subtotal-rule-width) solid var(--sl-table-total-rule-color);
|
|
13897
|
+
}
|
|
13898
|
+
|
|
13899
|
+
.Table tbody tr[data-total] > * {
|
|
13900
|
+
border-bottom: var(--sl-stroke-default) solid var(--sl-table-row-border-color);
|
|
13901
|
+
}
|
|
13902
|
+
|
|
13903
|
+
.Table tbody tr[data-total]:last-child:not([data-total='grand']) > * {
|
|
13904
|
+
border-bottom: none;
|
|
13905
|
+
}
|
|
13906
|
+
|
|
13907
|
+
/* The grand total: a double rule under the figures. */
|
|
13908
|
+
.Table :is(tbody, tfoot) tr[data-total='grand'] > * {
|
|
13909
|
+
border-bottom: var(--sl-table-grand-total-rule-width) double var(--sl-table-total-rule-color);
|
|
13910
|
+
}
|
|
13911
|
+
|
|
13912
|
+
/* A label or blank cell in a total row can leave the rules off, so they only run under the
|
|
13913
|
+
figures: data-rule="none" on the cell. */
|
|
13914
|
+
.Table :is(tbody, tfoot) tr[data-total] > [data-rule='none'] {
|
|
13915
|
+
border-top-color: transparent;
|
|
13916
|
+
border-bottom-color: transparent;
|
|
13917
|
+
}
|
|
13918
|
+
|
|
13919
|
+
/* In the footer the body's last row has no line under it, so those cells keep the footer's
|
|
13920
|
+
usual line on top. */
|
|
13921
|
+
.Table tfoot tr[data-total] > [data-rule='none'] {
|
|
13922
|
+
border-top: var(--sl-stroke-default) solid var(--sl-table-border-color);
|
|
13923
|
+
}
|
|
13924
|
+
|
|
13925
|
+
@media (hover: hover) {
|
|
13926
|
+
.Table tbody tr[data-total]:hover > * {
|
|
13927
|
+
background: var(--sl-table-total-background);
|
|
13928
|
+
color: var(--sl-table-color);
|
|
13929
|
+
}
|
|
13930
|
+
}
|
|
13931
|
+
|
|
13718
13932
|
/* A header that stays put while the body scrolls (the table's wrapper scrolls) */
|
|
13719
13933
|
.Table[data-sticky-header] thead th {
|
|
13720
13934
|
position: sticky;
|
|
@@ -13745,23 +13959,28 @@ textarea.FieldControl {
|
|
|
13745
13959
|
color: inherit;
|
|
13746
13960
|
}
|
|
13747
13961
|
|
|
13748
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
13962
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
13749
13963
|
/* Collection
|
|
13750
13964
|
*
|
|
13751
13965
|
* DataTable, DataList, the toolbar and the pagination, in one place so the two views
|
|
13752
13966
|
* share the table concept. Sections: toolbar, table additions, groups, list, pagination, sizes.
|
|
13753
13967
|
* Each section is its own file so the design system can name the part. This file brings them in.
|
|
13754
13968
|
*
|
|
13755
|
-
* The selection bar replaces the trailing controls (filters, sort,
|
|
13969
|
+
* The selection bar replaces the trailing controls (filters, sort, actions) and leaves
|
|
13756
13970
|
* the tabs and the search where they are, so selecting rows does not grow the toolbar.
|
|
13757
13971
|
*/
|
|
13758
13972
|
|
|
13759
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
13973
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
13760
13974
|
/* Collection toolbar
|
|
13761
13975
|
*
|
|
13762
13976
|
* The wrap follows the toolbar's own width, not the window: a table in a narrow pane wraps
|
|
13763
|
-
* even when the page is wide. Search
|
|
13977
|
+
* even when the page is wide. Search grows to fill the row beside the trailing controls, and
|
|
13978
|
+
* wraps to its own line before it shrinks under collection.search-min-width. Under the narrow
|
|
13979
|
+
* width it takes the full row and filters wrap under it.
|
|
13764
13980
|
* A container query cannot read the width token, so the component also sets data-narrow.
|
|
13981
|
+
*
|
|
13982
|
+
* The search icon and the clear button sit inside the field. The browser's own search cancel
|
|
13983
|
+
* is hidden by the reset, so the clear button is the only one, in every browser.
|
|
13765
13984
|
*/
|
|
13766
13985
|
|
|
13767
13986
|
.CollectionToolbar {
|
|
@@ -13773,7 +13992,6 @@ textarea.FieldControl {
|
|
|
13773
13992
|
}
|
|
13774
13993
|
|
|
13775
13994
|
.CollectionToolbarMain,
|
|
13776
|
-
.CollectionToolbarTrailing,
|
|
13777
13995
|
.CollectionSelectionBar,
|
|
13778
13996
|
.CollectionSort {
|
|
13779
13997
|
display: flex;
|
|
@@ -13786,11 +14004,90 @@ textarea.FieldControl {
|
|
|
13786
14004
|
display: flex;
|
|
13787
14005
|
align-items: center;
|
|
13788
14006
|
gap: var(--sl-collection-toolbar-gap);
|
|
14007
|
+
flex: 1 1 0;
|
|
14008
|
+
min-width: min(100%, var(--sl-collection-search-min-width));
|
|
14009
|
+
}
|
|
14010
|
+
|
|
14011
|
+
.CollectionSearchField {
|
|
14012
|
+
position: relative;
|
|
14013
|
+
flex: 1 1 auto;
|
|
13789
14014
|
min-width: 0;
|
|
13790
14015
|
}
|
|
13791
14016
|
|
|
13792
|
-
.
|
|
14017
|
+
/* Scoped to the field so it wins over Input.css, which loads later. */
|
|
14018
|
+
.CollectionSearchField .Input {
|
|
13793
14019
|
min-width: 0;
|
|
14020
|
+
padding-inline-start: calc(var(--sl-control-padding-inline) + var(--sl-icon-size-magnify) + var(--sl-space-2));
|
|
14021
|
+
}
|
|
14022
|
+
|
|
14023
|
+
.CollectionSearchField[data-filled] .Input {
|
|
14024
|
+
padding-inline-end: calc(var(--sl-control-padding-inline) + var(--sl-icon-button-size));
|
|
14025
|
+
}
|
|
14026
|
+
|
|
14027
|
+
.CollectionSearchIcon {
|
|
14028
|
+
position: absolute;
|
|
14029
|
+
inset-inline-start: var(--sl-control-padding-inline);
|
|
14030
|
+
inset-block-start: 50%;
|
|
14031
|
+
transform: translateY(-50%);
|
|
14032
|
+
width: var(--sl-icon-size-magnify);
|
|
14033
|
+
height: var(--sl-icon-size-magnify);
|
|
14034
|
+
font-size: var(--sl-icon-size-magnify);
|
|
14035
|
+
line-height: 1;
|
|
14036
|
+
color: var(--sl-field-affix-color);
|
|
14037
|
+
pointer-events: none;
|
|
14038
|
+
}
|
|
14039
|
+
|
|
14040
|
+
.CollectionSearchClear {
|
|
14041
|
+
display: flex;
|
|
14042
|
+
align-items: center;
|
|
14043
|
+
justify-content: center;
|
|
14044
|
+
flex-shrink: 0;
|
|
14045
|
+
width: var(--sl-icon-button-size);
|
|
14046
|
+
height: var(--sl-icon-button-size);
|
|
14047
|
+
padding: 0;
|
|
14048
|
+
border: none;
|
|
14049
|
+
border-radius: var(--sl-icon-button-radius);
|
|
14050
|
+
background: transparent;
|
|
14051
|
+
color: var(--sl-icon-button-color);
|
|
14052
|
+
cursor: pointer;
|
|
14053
|
+
outline: none;
|
|
14054
|
+
transition: var(--sl-icon-button-transition);
|
|
14055
|
+
position: absolute;
|
|
14056
|
+
inset-inline-end: var(--sl-space-3);
|
|
14057
|
+
inset-block-start: 50%;
|
|
14058
|
+
transform: translateY(-50%);
|
|
14059
|
+
font-size: var(--sl-icon-size-magnify);
|
|
14060
|
+
line-height: 1;
|
|
14061
|
+
}
|
|
14062
|
+
|
|
14063
|
+
.CollectionSearchClear:hover {
|
|
14064
|
+
background: var(--sl-icon-button-background-hover);
|
|
14065
|
+
color: var(--sl-icon-button-color-hover);
|
|
14066
|
+
}
|
|
14067
|
+
|
|
14068
|
+
.CollectionSearchClear:focus-visible {
|
|
14069
|
+
outline: var(--sl-focus-outline);
|
|
14070
|
+
outline-offset: var(--sl-focus-outline-offset);
|
|
14071
|
+
box-shadow: 0 0 0 var(--sl-focus-halo-spread) var(--sl-focus-halo-color);
|
|
14072
|
+
}
|
|
14073
|
+
|
|
14074
|
+
/* The trailing controls join the main row one by one, so each keeps its own width and
|
|
14075
|
+
wraps under the search on its own rather than squeezing. Search takes what is left. */
|
|
14076
|
+
.CollectionToolbarTrailing {
|
|
14077
|
+
display: contents;
|
|
14078
|
+
}
|
|
14079
|
+
|
|
14080
|
+
.CollectionSelectionBar {
|
|
14081
|
+
flex: 0 0 auto;
|
|
14082
|
+
max-width: 100%;
|
|
14083
|
+
}
|
|
14084
|
+
|
|
14085
|
+
/* Select.css and Combobox.css fill their container. In the row they size to their text. */
|
|
14086
|
+
.CollectionToolbarMain .SelectTrigger,
|
|
14087
|
+
.CollectionToolbarMain .ComboboxInputWrapper {
|
|
14088
|
+
flex: none;
|
|
14089
|
+
width: auto;
|
|
14090
|
+
max-width: 100%;
|
|
13794
14091
|
}
|
|
13795
14092
|
|
|
13796
14093
|
.CollectionToolbarActions {
|
|
@@ -13814,7 +14111,7 @@ textarea.FieldControl {
|
|
|
13814
14111
|
letter-spacing: var(--sl-font-body-condense-letter-spacing);
|
|
13815
14112
|
}
|
|
13816
14113
|
|
|
13817
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
14114
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
13818
14115
|
/* DataTable additions on top of .Table.
|
|
13819
14116
|
*
|
|
13820
14117
|
* Sort buttons fill the header cell and inherit its hover, so old aria-sort markup keeps
|
|
@@ -13935,12 +14232,15 @@ textarea.FieldControl {
|
|
|
13935
14232
|
color: var(--sl-table-subtle-color);
|
|
13936
14233
|
}
|
|
13937
14234
|
|
|
13938
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
14235
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
13939
14236
|
/* DataList
|
|
13940
14237
|
*
|
|
13941
14238
|
* The same rows as the table, in one container with the table's borders, hover, selected
|
|
13942
14239
|
* and current states. Not a stack of floating cards: the two views should read as one family.
|
|
13943
14240
|
* variant=cards adds the surface radius and a gap when a queue should read as separate items.
|
|
14241
|
+
*
|
|
14242
|
+
* The working-paper rule (rule.width, 0 by default) replaces the top border with a heavier
|
|
14243
|
+
* line in rule.color: on the first row, or on each card's top edge.
|
|
13944
14244
|
*/
|
|
13945
14245
|
|
|
13946
14246
|
.DataList {
|
|
@@ -13959,6 +14259,13 @@ textarea.FieldControl {
|
|
|
13959
14259
|
background: var(--sl-table-background);
|
|
13960
14260
|
border: var(--sl-stroke-default) solid var(--sl-table-border-color);
|
|
13961
14261
|
border-radius: var(--sl-table-radius);
|
|
14262
|
+
/* The top border steps aside while the working-paper rule is on (any rule.width above 0). */
|
|
14263
|
+
border-top-width: max(0px, var(--sl-stroke-default) - var(--sl-rule-width) * 1000);
|
|
14264
|
+
}
|
|
14265
|
+
|
|
14266
|
+
/* The working-paper rule on the first row. At rule.width 0 this is no border at all. */
|
|
14267
|
+
.DataList ul > li:first-child {
|
|
14268
|
+
border-top: var(--sl-rule-width) solid var(--sl-rule-color);
|
|
13962
14269
|
}
|
|
13963
14270
|
|
|
13964
14271
|
.DataList li {
|
|
@@ -14052,6 +14359,14 @@ textarea.FieldControl {
|
|
|
14052
14359
|
background: var(--sl-table-background);
|
|
14053
14360
|
border: var(--sl-stroke-default) solid var(--sl-table-border-color);
|
|
14054
14361
|
border-radius: var(--sl-table-radius);
|
|
14362
|
+
border-top-width: max(0px, var(--sl-stroke-default) - var(--sl-rule-width) * 1000);
|
|
14363
|
+
box-shadow: inset 0 var(--sl-rule-width) 0 0 var(--sl-rule-color);
|
|
14364
|
+
}
|
|
14365
|
+
|
|
14366
|
+
.DataList[data-variant='cards'] li[aria-current='true'] {
|
|
14367
|
+
box-shadow:
|
|
14368
|
+
inset var(--sl-stroke-strong) 0 0 0 var(--sl-border-accent),
|
|
14369
|
+
inset 0 var(--sl-rule-width) 0 0 var(--sl-rule-color);
|
|
14055
14370
|
}
|
|
14056
14371
|
|
|
14057
14372
|
.DataList[data-loading] ul {
|
|
@@ -14059,7 +14374,7 @@ textarea.FieldControl {
|
|
|
14059
14374
|
transition: opacity var(--sl-duration-fast) var(--sl-easing-default);
|
|
14060
14375
|
}
|
|
14061
14376
|
|
|
14062
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
14377
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
14063
14378
|
/* Pagination
|
|
14064
14379
|
*
|
|
14065
14380
|
* Not tied to a collection. Anything with a page, a page count and a total can use it.
|
|
@@ -14084,7 +14399,7 @@ textarea.FieldControl {
|
|
|
14084
14399
|
margin: 0;
|
|
14085
14400
|
}
|
|
14086
14401
|
|
|
14087
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
14402
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
14088
14403
|
/* EditableList
|
|
14089
14404
|
*
|
|
14090
14405
|
* One table at every width, so a field is not submitted twice. Under the stack width each
|
|
@@ -14182,3 +14497,231 @@ textarea.FieldControl {
|
|
|
14182
14497
|
letter-spacing: var(--sl-font-subtitle-condense-letter-spacing);
|
|
14183
14498
|
}
|
|
14184
14499
|
}
|
|
14500
|
+
|
|
14501
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
14502
|
+
/* Sheet
|
|
14503
|
+
*
|
|
14504
|
+
* A working-paper surface: the raised surface with a heavier rule across its top
|
|
14505
|
+
* (sheet.rule-width in sheet.rule-color) instead of its top border, and an optional tab
|
|
14506
|
+
* label that sits on the rule like the tab of a ledger page. The tab is caps-condense on
|
|
14507
|
+
* the inverse surface. An action (an Edit link, a count) sits at the end of the header row.
|
|
14508
|
+
* Tokens: sheet.* (tokens/component/sheet.json).
|
|
14509
|
+
*
|
|
14510
|
+
* Content runs edge to edge, so a Table, DataList or leader DescriptionList inside lines up
|
|
14511
|
+
* with the sheet's sides; data-inset on SheetBody pads it by sheet.padding instead. A Table
|
|
14512
|
+
* inside drops its own outer border and corners, since the sheet is its frame.
|
|
14513
|
+
*/
|
|
14514
|
+
|
|
14515
|
+
.Sheet {
|
|
14516
|
+
box-sizing: border-box;
|
|
14517
|
+
display: flex;
|
|
14518
|
+
flex-direction: column;
|
|
14519
|
+
min-width: 0;
|
|
14520
|
+
}
|
|
14521
|
+
|
|
14522
|
+
.SheetHeader {
|
|
14523
|
+
display: flex;
|
|
14524
|
+
align-items: flex-end;
|
|
14525
|
+
gap: var(--sl-sheet-header-gap);
|
|
14526
|
+
min-height: var(--sl-sheet-tab-height);
|
|
14527
|
+
}
|
|
14528
|
+
|
|
14529
|
+
.SheetTab {
|
|
14530
|
+
font-family: var(--sl-font-caps-condense-font-family);
|
|
14531
|
+
font-size: var(--sl-font-caps-condense-font-size);
|
|
14532
|
+
font-weight: var(--sl-font-caps-condense-font-weight);
|
|
14533
|
+
line-height: var(--sl-font-caps-condense-line-height);
|
|
14534
|
+
letter-spacing: var(--sl-font-caps-condense-letter-spacing);
|
|
14535
|
+
text-transform: var(--sl-font-caps-condense-text-transform);
|
|
14536
|
+
display: inline-flex;
|
|
14537
|
+
align-items: center;
|
|
14538
|
+
height: var(--sl-sheet-tab-height);
|
|
14539
|
+
padding-inline: var(--sl-sheet-tab-padding-inline);
|
|
14540
|
+
background: var(--sl-sheet-tab-background);
|
|
14541
|
+
color: var(--sl-sheet-tab-color);
|
|
14542
|
+
border-radius: var(--sl-sheet-tab-radius) var(--sl-sheet-tab-radius) 0 0;
|
|
14543
|
+
white-space: nowrap;
|
|
14544
|
+
}
|
|
14545
|
+
|
|
14546
|
+
.SheetAction {
|
|
14547
|
+
font-family: var(--sl-font-subtitle-condense-font-family);
|
|
14548
|
+
font-size: var(--sl-font-subtitle-condense-font-size);
|
|
14549
|
+
font-weight: var(--sl-font-subtitle-condense-font-weight);
|
|
14550
|
+
line-height: var(--sl-font-subtitle-condense-line-height);
|
|
14551
|
+
letter-spacing: var(--sl-font-subtitle-condense-letter-spacing);
|
|
14552
|
+
margin-inline-start: auto;
|
|
14553
|
+
padding-block-end: var(--sl-space-1);
|
|
14554
|
+
}
|
|
14555
|
+
|
|
14556
|
+
.SheetBody {
|
|
14557
|
+
box-sizing: border-box;
|
|
14558
|
+
flex: 1;
|
|
14559
|
+
min-width: 0;
|
|
14560
|
+
background: var(--sl-sheet-background);
|
|
14561
|
+
border: var(--sl-sheet-border-width) solid var(--sl-sheet-border-color);
|
|
14562
|
+
border-top: var(--sl-sheet-rule-width) solid var(--sl-sheet-rule-color);
|
|
14563
|
+
border-radius: var(--sl-sheet-radius);
|
|
14564
|
+
/* Rows inside keep to the rounded corners. clip, not hidden, so a sticky header still sticks. */
|
|
14565
|
+
overflow: clip;
|
|
14566
|
+
}
|
|
14567
|
+
|
|
14568
|
+
/* Under a tab the top corners stay square, so the tab sits flush on the rule. */
|
|
14569
|
+
.Sheet[data-tab] > .SheetBody {
|
|
14570
|
+
border-start-start-radius: 0;
|
|
14571
|
+
border-start-end-radius: 0;
|
|
14572
|
+
}
|
|
14573
|
+
|
|
14574
|
+
.SheetBody[data-inset] {
|
|
14575
|
+
padding: var(--sl-sheet-padding);
|
|
14576
|
+
}
|
|
14577
|
+
|
|
14578
|
+
/* The sheet is the frame: a table or list inside drops its own outer edge. */
|
|
14579
|
+
.SheetBody > .Table,
|
|
14580
|
+
.SheetBody > .CollectionView .Table,
|
|
14581
|
+
.SheetBody > .DataList ul {
|
|
14582
|
+
border: 0;
|
|
14583
|
+
border-radius: 0;
|
|
14584
|
+
}
|
|
14585
|
+
|
|
14586
|
+
.SheetBody > .Table > thead > tr:first-child > *,
|
|
14587
|
+
.SheetBody > .Table:not(:has(> thead)) > tbody:first-of-type > tr:first-child > *,
|
|
14588
|
+
.SheetBody > .DataList ul > li:first-child {
|
|
14589
|
+
border-top: 0;
|
|
14590
|
+
}
|
|
14591
|
+
|
|
14592
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
14593
|
+
/* StatFigure
|
|
14594
|
+
*
|
|
14595
|
+
* One large figure with a caps label above and a caption under it. The label is
|
|
14596
|
+
* caps-condense, the figure uses the figures text family (mono, tabular numbers) at
|
|
14597
|
+
* stat-figure.figure-font-size, the caption is body-condense. data-underline="double"
|
|
14598
|
+
* draws a double rule under the figure only, the accountant's mark for a final total;
|
|
14599
|
+
* data-tone="accent" colors the figure; data-size="sm" makes it smaller for a row of figures.
|
|
14600
|
+
* Tokens: stat-figure.* (tokens/component/stat-figure.json).
|
|
14601
|
+
*/
|
|
14602
|
+
|
|
14603
|
+
.StatFigure {
|
|
14604
|
+
display: inline-flex;
|
|
14605
|
+
flex-direction: column;
|
|
14606
|
+
align-items: flex-start;
|
|
14607
|
+
gap: var(--sl-stat-figure-gap);
|
|
14608
|
+
min-width: 0;
|
|
14609
|
+
}
|
|
14610
|
+
|
|
14611
|
+
.StatFigureLabel {
|
|
14612
|
+
font-family: var(--sl-font-caps-condense-font-family);
|
|
14613
|
+
font-size: var(--sl-font-caps-condense-font-size);
|
|
14614
|
+
font-weight: var(--sl-font-caps-condense-font-weight);
|
|
14615
|
+
line-height: var(--sl-font-caps-condense-line-height);
|
|
14616
|
+
letter-spacing: var(--sl-font-caps-condense-letter-spacing);
|
|
14617
|
+
text-transform: var(--sl-font-caps-condense-text-transform);
|
|
14618
|
+
color: var(--sl-stat-figure-label-color);
|
|
14619
|
+
}
|
|
14620
|
+
|
|
14621
|
+
.StatFigureValue {
|
|
14622
|
+
font-family: var(--sl-font-figures-base-font-family);
|
|
14623
|
+
font-variant-numeric: var(--sl-font-figures-base-font-variant-numeric);
|
|
14624
|
+
font-size: var(--sl-stat-figure-figure-font-size);
|
|
14625
|
+
font-weight: var(--sl-stat-figure-figure-font-weight);
|
|
14626
|
+
line-height: var(--sl-stat-figure-figure-line-height);
|
|
14627
|
+
color: var(--sl-stat-figure-figure-color);
|
|
14628
|
+
white-space: nowrap;
|
|
14629
|
+
}
|
|
14630
|
+
|
|
14631
|
+
.StatFigure[data-size='sm'] .StatFigureValue {
|
|
14632
|
+
font-size: var(--sl-stat-figure-figure-font-size-sm);
|
|
14633
|
+
line-height: var(--sl-stat-figure-figure-line-height-sm);
|
|
14634
|
+
}
|
|
14635
|
+
|
|
14636
|
+
.StatFigure[data-tone='accent'] .StatFigureValue {
|
|
14637
|
+
color: var(--sl-stat-figure-figure-color-accent);
|
|
14638
|
+
}
|
|
14639
|
+
|
|
14640
|
+
.StatFigure[data-underline='double'] .StatFigureValue {
|
|
14641
|
+
border-bottom: var(--sl-stat-figure-underline-width) double var(--sl-stat-figure-underline-color);
|
|
14642
|
+
}
|
|
14643
|
+
|
|
14644
|
+
.StatFigureCaption {
|
|
14645
|
+
font-family: var(--sl-font-body-condense-font-family);
|
|
14646
|
+
font-size: var(--sl-font-body-condense-font-size);
|
|
14647
|
+
font-weight: var(--sl-font-body-condense-font-weight);
|
|
14648
|
+
line-height: var(--sl-font-body-condense-line-height);
|
|
14649
|
+
letter-spacing: var(--sl-font-body-condense-letter-spacing);
|
|
14650
|
+
color: var(--sl-stat-figure-caption-color);
|
|
14651
|
+
}
|
|
14652
|
+
|
|
14653
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
14654
|
+
/* DescriptionList
|
|
14655
|
+
*
|
|
14656
|
+
* Label and value pairs in a native dl, one DescriptionItem (a div holding a dt and a dd)
|
|
14657
|
+
* per pair, with a hairline between pairs. The default variant sets labels in a column
|
|
14658
|
+
* beside their values. data-variant="leader" runs a dotted leader from each label to its
|
|
14659
|
+
* value, which sits at the end of the row, as on a working paper. Labels are body text
|
|
14660
|
+
* in the secondary color, values primary text with tabular numbers.
|
|
14661
|
+
* Tokens: description-list.* (tokens/component/description-list.json).
|
|
14662
|
+
*/
|
|
14663
|
+
|
|
14664
|
+
.DescriptionList {
|
|
14665
|
+
font-family: var(--sl-font-body-base-font-family);
|
|
14666
|
+
font-size: var(--sl-font-body-base-font-size);
|
|
14667
|
+
font-weight: var(--sl-font-body-base-font-weight);
|
|
14668
|
+
line-height: var(--sl-font-body-base-line-height);
|
|
14669
|
+
letter-spacing: var(--sl-font-body-base-letter-spacing);
|
|
14670
|
+
margin: 0;
|
|
14671
|
+
padding: 0;
|
|
14672
|
+
font-variant-numeric: tabular-nums;
|
|
14673
|
+
}
|
|
14674
|
+
|
|
14675
|
+
.DescriptionItem {
|
|
14676
|
+
display: grid;
|
|
14677
|
+
grid-template-columns: var(--sl-description-list-label-width) 2fr;
|
|
14678
|
+
align-items: baseline;
|
|
14679
|
+
column-gap: var(--sl-description-list-column-gap);
|
|
14680
|
+
padding-block: var(--sl-description-list-row-padding-block);
|
|
14681
|
+
padding-inline: var(--sl-description-list-row-padding-inline);
|
|
14682
|
+
border-bottom: var(--sl-stroke-default) solid var(--sl-description-list-row-border-color);
|
|
14683
|
+
}
|
|
14684
|
+
|
|
14685
|
+
.DescriptionItem:last-child {
|
|
14686
|
+
border-bottom: none;
|
|
14687
|
+
}
|
|
14688
|
+
|
|
14689
|
+
.DescriptionTerm {
|
|
14690
|
+
margin: 0;
|
|
14691
|
+
color: var(--sl-description-list-label-color);
|
|
14692
|
+
}
|
|
14693
|
+
|
|
14694
|
+
.DescriptionDetails {
|
|
14695
|
+
margin: 0;
|
|
14696
|
+
min-width: 0;
|
|
14697
|
+
color: var(--sl-description-list-value-color);
|
|
14698
|
+
overflow-wrap: anywhere;
|
|
14699
|
+
}
|
|
14700
|
+
|
|
14701
|
+
/* Leader: the label grows to fill the row, and its ::after is the dotted line that leads
|
|
14702
|
+
to the value. The line sits on the text's baseline. */
|
|
14703
|
+
.DescriptionList[data-variant='leader'] .DescriptionItem {
|
|
14704
|
+
display: flex;
|
|
14705
|
+
column-gap: var(--sl-description-list-leader-gap);
|
|
14706
|
+
}
|
|
14707
|
+
|
|
14708
|
+
.DescriptionList[data-variant='leader'] .DescriptionTerm {
|
|
14709
|
+
display: flex;
|
|
14710
|
+
flex: 1 1 auto;
|
|
14711
|
+
align-items: baseline;
|
|
14712
|
+
gap: var(--sl-description-list-leader-gap);
|
|
14713
|
+
min-width: 0;
|
|
14714
|
+
}
|
|
14715
|
+
|
|
14716
|
+
.DescriptionList[data-variant='leader'] .DescriptionTerm::after {
|
|
14717
|
+
content: '';
|
|
14718
|
+
flex: 1 1 var(--sl-space-6);
|
|
14719
|
+
min-width: var(--sl-space-6);
|
|
14720
|
+
border-bottom: var(--sl-description-list-leader-width) dotted var(--sl-description-list-leader-color);
|
|
14721
|
+
}
|
|
14722
|
+
|
|
14723
|
+
.DescriptionList[data-variant='leader'] .DescriptionDetails {
|
|
14724
|
+
flex: 0 1 auto;
|
|
14725
|
+
max-width: 60%;
|
|
14726
|
+
text-align: end;
|
|
14727
|
+
}
|