@scattered-light/loomiere-mojave 0.7.1 → 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/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 +1 -1
- package/dist/exports/design-system/components/DataTable/README.md +1 -1
- package/dist/exports/design-system/components/DataTable/preview.html +38 -38
- 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 +620 -161
- 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 +313 -26
- package/dist/tokens.css +220 -105
- package/dist/tokens.d.ts +78 -0
- package/dist/tokens.js +79 -1
- package/dist/tokens.json +580 -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. */
|
|
@@ -1856,6 +1982,10 @@
|
|
|
1856
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. */
|
|
1857
1983
|
--sl-collection-editable-list-stack-width: var(--sl-space-80); /** Below this, editable rows stack and show their own labels. 320px matches. */
|
|
1858
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. */
|
|
1859
1989
|
--sl-drawer-handle-width: var(--sl-space-10); /** Grab bar length. */
|
|
1860
1990
|
--sl-drawer-handle-height: var(--sl-space-1); /** Grab bar thickness. */
|
|
1861
1991
|
--sl-list-detail-header-gap: var(--sl-space-3); /** Space between the title, the actions and Close. */
|
|
@@ -1863,9 +1993,22 @@
|
|
|
1863
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. */
|
|
1864
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. */
|
|
1865
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. */
|
|
1866
2002
|
--sl-slider-thumb-size: var(--sl-space-5); /** Knob diameter, big enough to grab with a finger on a 4px track. */
|
|
1867
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. */
|
|
1868
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. */
|
|
1869
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. */
|
|
1870
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. */
|
|
1871
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. */
|
|
@@ -1896,73 +2039,12 @@
|
|
|
1896
2039
|
--sl-color-chrome-on-1000: var(--sl-color-neutral-on-1000);
|
|
1897
2040
|
--sl-color-chrome-on-1100: var(--sl-color-neutral-on-1100);
|
|
1898
2041
|
--sl-color-chrome-on-1200: var(--sl-color-neutral-on-1200);
|
|
1899
|
-
--sl-a11y-focus-ring-radius: var(--sl-radius-focus); /** Rounds the focus ring to match the small control radius. */
|
|
1900
2042
|
--sl-bar-border-width: var(--sl-stroke-default); /** Strip edge thickness. */
|
|
1901
|
-
--sl-
|
|
1902
|
-
--sl-
|
|
1903
|
-
--sl-
|
|
1904
|
-
--sl-
|
|
1905
|
-
--sl-
|
|
1906
|
-
--sl-status-error: var(--sl-scope-error-signal); /** Errors and destructive actions. */
|
|
1907
|
-
--sl-status-error-dark: var(--sl-scope-error-fg); /** Error color for text or icons that need more contrast than the base color. */
|
|
1908
|
-
--sl-status-error-light: var(--sl-scope-error-soft); /** Error tint for backgrounds behind error messages. */
|
|
1909
|
-
--sl-status-info: var(--sl-scope-info-signal); /** Neutral notices and help. */
|
|
1910
|
-
--sl-status-info-dark: var(--sl-scope-info-fg); /** Info color for text or icons that need more contrast. */
|
|
1911
|
-
--sl-status-info-light: var(--sl-scope-info-soft); /** Info tint for notice backgrounds. */
|
|
1912
|
-
--sl-status-success: var(--sl-scope-success-signal); /** Confirmations and completed states. */
|
|
1913
|
-
--sl-status-success-dark: var(--sl-scope-success-fg); /** Success color for text or icons that need more contrast. */
|
|
1914
|
-
--sl-status-success-light: var(--sl-scope-success-soft); /** Success tint for confirmation backgrounds. */
|
|
1915
|
-
--sl-status-warning: var(--sl-scope-warning-signal); /** Warnings, and the required-field marker. */
|
|
1916
|
-
--sl-status-warning-dark: var(--sl-scope-warning-fg); /** Warning color for text or icons that need more contrast. */
|
|
1917
|
-
--sl-status-warning-light: var(--sl-scope-warning-soft); /** Warning tint for caution backgrounds. */
|
|
1918
|
-
--sl-text-primary: var(--sl-scope-chrome-fg); /** Body text and headings. The highest-contrast neutral. */
|
|
1919
|
-
--sl-disclosure-indicator-width: var(--sl-stroke-emphasis); /** Selected tab line thickness. */
|
|
1920
|
-
--sl-field-border-width: var(--sl-stroke-default); /** Field edge thickness. */
|
|
1921
|
-
--sl-field-radius: var(--sl-radius-control); /** Field corners, the same as every other control. */
|
|
1922
|
-
--sl-field-transition: var(--sl-transition-input); /** Border and halo ease in, never snap. */
|
|
1923
|
-
--sl-gauge-radius: var(--sl-radius-pill); /** Round ends on the track and the fill. */
|
|
1924
|
-
--sl-icon-button-radius: var(--sl-radius-item); /** Rounded like a menu item, since its hover fill reads as a highlighted item. */
|
|
1925
|
-
--sl-icon-button-transition: var(--sl-transition-button); /** Responds as fast as a button. */
|
|
1926
|
-
--sl-item-radius: var(--sl-radius-item); /** Row corners inside the popup. */
|
|
1927
|
-
--sl-modal-border-width: var(--sl-stroke-default); /** Modal edge thickness. */
|
|
1928
|
-
--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. */
|
|
1929
|
-
--sl-modal-shadow: var(--sl-elevation-xl); /** The deepest shadow, because a modal sits above everything but popups and toasts. */
|
|
1930
|
-
--sl-modal-backdrop: color-mix(in srgb, var(--sl-overlay-base) 50%, transparent); /** Scrim that dims the page behind a modal. */
|
|
1931
|
-
--sl-popup-border-width: var(--sl-stroke-default); /** Popup edge thickness. */
|
|
1932
|
-
--sl-popup-radius: var(--sl-radius-surface); /** Corners of a free-floating popup. */
|
|
1933
|
-
--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. */
|
|
1934
|
-
--sl-popup-shadow: var(--sl-elevation-lg); /** Lifts the popup above the page. */
|
|
1935
|
-
--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. */
|
|
1936
|
-
--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. */
|
|
1937
|
-
--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. */
|
|
1938
|
-
--sl-table-cell-padding-inline: var(--sl-control-padding-inline-sm); /** Space either side of cell text, matching small controls. */
|
|
1939
|
-
--sl-table-radius: var(--sl-radius-surface); /** Grid corners, like any card or panel. */
|
|
1940
|
-
--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. */
|
|
1941
|
-
--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. */
|
|
1942
|
-
--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. */
|
|
1943
|
-
--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. */
|
|
1944
|
-
--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. */
|
|
1945
|
-
--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. */
|
|
1946
|
-
--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. */
|
|
1947
|
-
--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. */
|
|
1948
|
-
--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. */
|
|
1949
|
-
--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. */
|
|
1950
|
-
--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. */
|
|
1951
|
-
--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. */
|
|
1952
|
-
--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. */
|
|
1953
|
-
--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. */
|
|
1954
|
-
--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. */
|
|
1955
|
-
--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. */
|
|
1956
|
-
--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. */
|
|
1957
|
-
--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. */
|
|
1958
|
-
--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. */
|
|
1959
|
-
--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. */
|
|
1960
|
-
--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. */
|
|
1961
|
-
--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. */
|
|
1962
|
-
--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. */
|
|
1963
|
-
--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. */
|
|
1964
|
-
--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. */
|
|
1965
|
-
--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. */
|
|
1966
2048
|
--sl-emphasis-quiet-fg: var(--sl-scope-chrome-fg); /** quiet in default: outline in chrome (neutral) */
|
|
1967
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. */
|
|
1968
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. */
|
|
@@ -2120,44 +2202,10 @@
|
|
|
2120
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. */
|
|
2121
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. */
|
|
2122
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. */
|
|
2123
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. */
|
|
2124
|
-
--sl-focus-shadow-3px-error: 0 0 0 3px var(--sl-status-error); /** Focus halo for a field with an error. */
|
|
2125
|
-
--sl-calendar-day-color: var(--sl-text-primary); /** A day in the month being shown. */
|
|
2126
|
-
--sl-border-accent: var(--sl-scope-accent-border); /** Borders that signal selection or the active item. */
|
|
2127
|
-
--sl-border-default: var(--sl-scope-chrome-divider); /** Everyday dividers and control outlines. Darkens under prefers-contrast: more. */
|
|
2128
|
-
--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. */
|
|
2129
|
-
--sl-border-subtle: var(--sl-scope-chrome-border-subtle); /** Hairlines inside a surface (table rows, list separators) that should barely register. */
|
|
2130
|
-
--sl-border-control: var(--sl-scope-chrome-border); /** Edge of a small control (checkbox, radio, switch) that must be found before it is filled. */
|
|
2131
|
-
--sl-border-control-hover: var(--sl-scope-chrome-border-hover); /** Control edge under the pointer: one clear step darker than border.control. */
|
|
2132
|
-
--sl-interactive-active: var(--sl-scope-accent-solid-active); /** Pressed state of the main accent. Darker than hover so the press is felt. */
|
|
2133
|
-
--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. */
|
|
2134
|
-
--sl-interactive-disabled: var(--sl-scope-chrome-soft-active); /** Fill for disabled accent controls. Low contrast on purpose, but never invisible. */
|
|
2135
|
-
--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. */
|
|
2136
|
-
--sl-interactive-tint: var(--sl-scope-accent-soft); /** Faint accent wash behind a ghost or outline control on hover, or a selected row. */
|
|
2137
|
-
--sl-interactive-tint-hover: var(--sl-scope-accent-soft-hover); /** Accent wash for a highlighted menu item or a pressed toggle. */
|
|
2138
|
-
--sl-interactive-tint-active: var(--sl-scope-accent-soft-active); /** Accent wash for a selected or pressed item: one step past tint-hover. */
|
|
2139
|
-
--sl-interactive-tint-strong: var(--sl-scope-accent-soft-strong); /** Strongest accent wash, for hovering an item that is already pressed. */
|
|
2140
|
-
--sl-surface-canvas: var(--sl-scope-chrome-canvas); /** The page itself. Paper in light mode, the darkest neutral in dark mode. */
|
|
2141
|
-
--sl-surface-overlay: var(--sl-scope-chrome-overlay); /** Popups, menus and code blocks that sit above raised surfaces. */
|
|
2142
|
-
--sl-surface-raised: var(--sl-scope-chrome-raised); /** Cards and panels one level above the canvas. */
|
|
2143
|
-
--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. */
|
|
2144
|
-
--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. */
|
|
2145
|
-
--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. */
|
|
2146
|
-
--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. */
|
|
2147
|
-
--sl-text-disabled: var(--sl-scope-chrome-fg-disabled); /** Text in disabled controls. Deliberately below AA, which WCAG allows for disabled UI. */
|
|
2148
|
-
--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. */
|
|
2149
|
-
--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. */
|
|
2150
|
-
--sl-text-on-tint: var(--sl-scope-accent-on-soft); /** Text on an accent wash (interactive.tint*). Stays in the accent family. */
|
|
2151
|
-
--sl-text-on-tint-strong: var(--sl-scope-accent-ink); /** Text on the selected accent wash, a step darker than on-tint. */
|
|
2152
|
-
--sl-fill-subtle: var(--sl-scope-chrome-soft); /** Lightest fill: hovered rows, chips, empty tracks. */
|
|
2153
|
-
--sl-fill-default: var(--sl-scope-chrome-soft-hover); /** Standard fill: slider and switch tracks, pressed rows. */
|
|
2154
|
-
--sl-fill-strong: var(--sl-scope-chrome-soft-active); /** Heaviest fill: scroll thumbs, slider marks, hovered tracks. */
|
|
2155
|
-
--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. */
|
|
2156
|
-
--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. */
|
|
2157
|
-
--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. */
|
|
2158
|
-
--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. */
|
|
2159
|
-
--sl-content-selection-text: var(--sl-text-primary); /** Selected text stays body text so it reads the same on the tint. */
|
|
2160
|
-
--sl-field-border-color-error: var(--sl-status-error); /** Field edge when the value is invalid. */
|
|
2161
2209
|
--sl-field-color: var(--sl-text-primary); /** The value you typed. */
|
|
2162
2210
|
--sl-gauge-label-color: var(--sl-text-primary); /** What is being measured. */
|
|
2163
2211
|
--sl-icon-button-color-hover: var(--sl-text-primary); /** Darkens on hover to confirm it's the target. */
|
|
@@ -2215,7 +2263,8 @@
|
|
|
2215
2263
|
--sl-status-level-success-bold-fg: var(--sl-scope-success-on-solid); /** bold in success: solid in success */
|
|
2216
2264
|
--sl-status-level-warning-bold-fg: var(--sl-scope-warning-on-solid); /** bold in warning: solid in warning */
|
|
2217
2265
|
--sl-status-level-error-bold-fg: var(--sl-scope-error-on-solid); /** bold in error: solid in error */
|
|
2218
|
-
--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. */
|
|
2219
2268
|
--sl-focus-shadow-3px-primary: 0 0 0 3px var(--sl-interactive-tint-hover); /** Soft focus halo for inputs. */
|
|
2220
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. */
|
|
2221
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. */
|
|
@@ -2287,6 +2336,7 @@
|
|
|
2287
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. */
|
|
2288
2337
|
--sl-popup-border-color: var(--sl-border-default); /** Popup edge, a quiet line that separates it from the page under it. */
|
|
2289
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. */
|
|
2290
2340
|
--sl-table-background: var(--sl-surface-canvas); /** Cell area. The page color, so a grid sits on the page like body text. */
|
|
2291
2341
|
--sl-table-subtle-color: var(--sl-text-secondary); /** Secondary text in cells and panels: counts, hints, group totals. */
|
|
2292
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. */
|
|
@@ -2299,7 +2349,16 @@
|
|
|
2299
2349
|
--sl-table-range-background: var(--sl-interactive-tint); /** Cells inside a dragged range selection. */
|
|
2300
2350
|
--sl-emphasis-bold-fg: var(--sl-scope-accent-on-solid); /** bold in default: solid in accent (primary) */
|
|
2301
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. */
|
|
2302
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. */
|
|
2303
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. */
|
|
2304
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. */
|
|
2305
2364
|
--sl-check-mark-color: var(--sl-text-on-primary); /** Check mark, dash or dot on a ticked fill. */
|
|
@@ -2315,6 +2374,11 @@
|
|
|
2315
2374
|
--sl-table-row-hover: var(--sl-item-background-hover); /** Row under the pointer. Same tint as a highlighted menu row. */
|
|
2316
2375
|
--sl-table-row-selected: var(--sl-item-background-selected); /** Selected rows. Same tint as the chosen menu row. */
|
|
2317
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. */
|
|
2318
2382
|
--sl-check-background: var(--sl-field-background); /** Empty box, the same fill as a field so it reads as something to fill in. */
|
|
2319
2383
|
--sl-popup-arrow-fill: var(--sl-popup-background); /** The arrow is part of the popup, so it takes the popup's fill. */
|
|
2320
2384
|
}
|
|
@@ -5780,6 +5844,7 @@
|
|
|
5780
5844
|
--sl-popup-arrow-fill: var(--sl-popup-background);
|
|
5781
5845
|
--sl-popup-arrow-stroke: var(--sl-popup-border-color);
|
|
5782
5846
|
--sl-popup-separator-color: var(--sl-border-subtle);
|
|
5847
|
+
--sl-rule-color: var(--sl-border-strong);
|
|
5783
5848
|
--sl-table-background: var(--sl-surface-canvas);
|
|
5784
5849
|
--sl-table-color: var(--sl-text-primary);
|
|
5785
5850
|
--sl-table-subtle-color: var(--sl-text-secondary);
|
|
@@ -5795,7 +5860,23 @@
|
|
|
5795
5860
|
--sl-table-column-hover: var(--sl-fill-subtle);
|
|
5796
5861
|
--sl-table-range-background: var(--sl-interactive-tint);
|
|
5797
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);
|
|
5798
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);
|
|
5799
5880
|
--sl-calendar-day-background-hover: var(--sl-item-background-hover);
|
|
5800
5881
|
--sl-check-background: var(--sl-field-background);
|
|
5801
5882
|
}
|
|
@@ -5926,6 +6007,7 @@
|
|
|
5926
6007
|
--sl-popup-arrow-fill: var(--sl-popup-background);
|
|
5927
6008
|
--sl-popup-arrow-stroke: var(--sl-popup-border-color);
|
|
5928
6009
|
--sl-popup-separator-color: var(--sl-border-subtle);
|
|
6010
|
+
--sl-rule-color: var(--sl-border-strong);
|
|
5929
6011
|
--sl-table-background: var(--sl-surface-canvas);
|
|
5930
6012
|
--sl-table-color: var(--sl-text-primary);
|
|
5931
6013
|
--sl-table-subtle-color: var(--sl-text-secondary);
|
|
@@ -5941,7 +6023,23 @@
|
|
|
5941
6023
|
--sl-table-column-hover: var(--sl-fill-subtle);
|
|
5942
6024
|
--sl-table-range-background: var(--sl-interactive-tint);
|
|
5943
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);
|
|
5944
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);
|
|
5945
6043
|
--sl-calendar-day-background-hover: var(--sl-item-background-hover);
|
|
5946
6044
|
--sl-check-background: var(--sl-field-background);
|
|
5947
6045
|
}
|
|
@@ -6072,6 +6170,7 @@
|
|
|
6072
6170
|
--sl-popup-arrow-fill: var(--sl-popup-background);
|
|
6073
6171
|
--sl-popup-arrow-stroke: var(--sl-popup-border-color);
|
|
6074
6172
|
--sl-popup-separator-color: var(--sl-border-subtle);
|
|
6173
|
+
--sl-rule-color: var(--sl-border-strong);
|
|
6075
6174
|
--sl-table-background: var(--sl-surface-canvas);
|
|
6076
6175
|
--sl-table-color: var(--sl-text-primary);
|
|
6077
6176
|
--sl-table-subtle-color: var(--sl-text-secondary);
|
|
@@ -6087,7 +6186,23 @@
|
|
|
6087
6186
|
--sl-table-column-hover: var(--sl-fill-subtle);
|
|
6088
6187
|
--sl-table-range-background: var(--sl-interactive-tint);
|
|
6089
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);
|
|
6090
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);
|
|
6091
6206
|
--sl-calendar-day-background-hover: var(--sl-item-background-hover);
|
|
6092
6207
|
--sl-check-background: var(--sl-field-background);
|
|
6093
6208
|
}
|
|
@@ -6160,6 +6275,16 @@
|
|
|
6160
6275
|
letter-spacing: var(--sl-font-title-base-letter-spacing);
|
|
6161
6276
|
}
|
|
6162
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
|
+
|
|
6163
6288
|
/* Code uses the mono family so characters line up. */
|
|
6164
6289
|
.text-style-code-condense {
|
|
6165
6290
|
font-family: var(--sl-font-code-condense-font-family);
|
|
@@ -6169,6 +6294,16 @@
|
|
|
6169
6294
|
letter-spacing: var(--sl-font-code-condense-letter-spacing);
|
|
6170
6295
|
}
|
|
6171
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
|
+
|
|
6172
6307
|
/* Body copy in the condense tier, dense UI text (tables, secondary labels). */
|
|
6173
6308
|
.text-style-body-condense {
|
|
6174
6309
|
font-family: var(--sl-font-body-condense-font-family);
|
|
@@ -6224,6 +6359,16 @@
|
|
|
6224
6359
|
text-transform: var(--sl-font-eyebrow-condense-text-transform);
|
|
6225
6360
|
}
|
|
6226
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
|
+
|
|
6227
6372
|
/* Titles in the condense tier: group headers in tables, menus and dense panels. Titles use the display family; the tier sets the size. */
|
|
6228
6373
|
.text-style-title-condense {
|
|
6229
6374
|
font-family: var(--sl-font-title-condense-font-family);
|
|
@@ -6414,7 +6559,7 @@
|
|
|
6414
6559
|
}
|
|
6415
6560
|
|
|
6416
6561
|
|
|
6417
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
6562
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
6418
6563
|
/* Loomiere for Base UI: component styles. Brand-free: every value is a --sl- variable from a
|
|
6419
6564
|
Loomiere theme. Load the theme first:
|
|
6420
6565
|
@import '<your theme>/tokens.css';
|
|
@@ -6424,7 +6569,7 @@
|
|
|
6424
6569
|
/* Document defaults, in the reset layer so any unlayered rule wins over them, and so layered
|
|
6425
6570
|
frameworks (Chakra's recipes, Tailwind's utilities) are not undone by them. */
|
|
6426
6571
|
@layer reset {
|
|
6427
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
6572
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
6428
6573
|
/* CSS Reset - Mojave Theme */
|
|
6429
6574
|
|
|
6430
6575
|
/* ============================================
|
|
@@ -6698,7 +6843,7 @@ pre {
|
|
|
6698
6843
|
background: var(--sl-content-pre-background);
|
|
6699
6844
|
border: var(--sl-stroke-thin) solid var(--sl-content-pre-border);
|
|
6700
6845
|
color: var(--sl-content-pre-text);
|
|
6701
|
-
border-radius: var(--sl-
|
|
6846
|
+
border-radius: var(--sl-content-pre-radius);
|
|
6702
6847
|
overflow-x: auto;
|
|
6703
6848
|
margin-block: var(--sl-space-6);
|
|
6704
6849
|
}
|
|
@@ -6868,7 +7013,7 @@ hr {
|
|
|
6868
7013
|
}
|
|
6869
7014
|
}
|
|
6870
7015
|
@layer reset {
|
|
6871
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7016
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
6872
7017
|
/* Accessibility — base rules (no theme color dependencies). Theme-specific focus/invalid: accessibility-theme.css */
|
|
6873
7018
|
|
|
6874
7019
|
/* Remove default focus; keyboard focus styled in accessibility-theme.css */
|
|
@@ -6981,7 +7126,7 @@ main:focus {
|
|
|
6981
7126
|
|
|
6982
7127
|
}
|
|
6983
7128
|
@layer reset {
|
|
6984
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7129
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
6985
7130
|
/* Focus, invalid, contrast — requires theme tokens (after theme-accessibility.css). */
|
|
6986
7131
|
|
|
6987
7132
|
:focus-visible {
|
|
@@ -7049,7 +7194,7 @@ button,
|
|
|
7049
7194
|
|
|
7050
7195
|
}
|
|
7051
7196
|
/* Component styles */
|
|
7052
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7197
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7053
7198
|
/* Accordion - Mojave Theme
|
|
7054
7199
|
*
|
|
7055
7200
|
* No component tokens. Hover, press, chevron, divider and motion are the disclosure
|
|
@@ -7170,7 +7315,7 @@ button,
|
|
|
7170
7315
|
overflow: hidden;
|
|
7171
7316
|
}
|
|
7172
7317
|
|
|
7173
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7318
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7174
7319
|
/* Alert Dialog - Mojave Theme
|
|
7175
7320
|
*
|
|
7176
7321
|
* No component tokens and no rules of its own. An alert dialog looks exactly like a
|
|
@@ -7179,7 +7324,7 @@ button,
|
|
|
7179
7324
|
* cancel quiet, and a destructive one bold with data-color="error".
|
|
7180
7325
|
*/
|
|
7181
7326
|
|
|
7182
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7327
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7183
7328
|
/* Autocomplete - Mojave Theme
|
|
7184
7329
|
*
|
|
7185
7330
|
* No component tokens. The input is Input (Input.css), the clear button is an icon
|
|
@@ -7381,7 +7526,7 @@ button,
|
|
|
7381
7526
|
(reset-accessibility.css).
|
|
7382
7527
|
============================================ */
|
|
7383
7528
|
|
|
7384
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7529
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7385
7530
|
/* Avatar - Mojave Theme
|
|
7386
7531
|
*
|
|
7387
7532
|
* A round picture with a ring in the page color, so avatars in a group cut out of each other in
|
|
@@ -7489,7 +7634,7 @@ button,
|
|
|
7489
7634
|
}
|
|
7490
7635
|
}
|
|
7491
7636
|
|
|
7492
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7637
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7493
7638
|
/* Button - Mojave Theme
|
|
7494
7639
|
*
|
|
7495
7640
|
* Colors are the brand's emphasis levels, sizes are control.*, text is the trigger
|
|
@@ -7639,7 +7784,7 @@ button,
|
|
|
7639
7784
|
font-size: var(--sl-icon-size-maximize);
|
|
7640
7785
|
}
|
|
7641
7786
|
|
|
7642
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7787
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7643
7788
|
/* Checkbox - Mojave Theme
|
|
7644
7789
|
* Sizes follow the label: the box is the icon size one tier above the label's text
|
|
7645
7790
|
* tier (like a button's icon) and the check mark one tier below it.
|
|
@@ -7796,7 +7941,7 @@ button,
|
|
|
7796
7941
|
border-radius: var(--sl-radius-pill);
|
|
7797
7942
|
}
|
|
7798
7943
|
|
|
7799
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7944
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7800
7945
|
/* Checkbox Group - Mojave Theme */
|
|
7801
7946
|
|
|
7802
7947
|
/* Each checkbox row is already a full tap target tall, so the rows sit close. */
|
|
@@ -7812,7 +7957,7 @@ button,
|
|
|
7812
7957
|
pointer-events: none;
|
|
7813
7958
|
}
|
|
7814
7959
|
|
|
7815
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
7960
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7816
7961
|
/* Collapsible - Mojave Theme
|
|
7817
7962
|
*
|
|
7818
7963
|
* No component tokens. Hover, press, chevron and motion are the disclosure concept
|
|
@@ -7928,7 +8073,7 @@ button,
|
|
|
7928
8073
|
background: var(--sl-surface-raised);
|
|
7929
8074
|
}
|
|
7930
8075
|
|
|
7931
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
8076
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
7932
8077
|
/* Combobox - Mojave Theme
|
|
7933
8078
|
*
|
|
7934
8079
|
* No component tokens. The input is Input (Input.css); the chips box is a field; the
|
|
@@ -8413,7 +8558,7 @@ button,
|
|
|
8413
8558
|
color: var(--sl-text-tertiary);
|
|
8414
8559
|
}
|
|
8415
8560
|
|
|
8416
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
8561
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
8417
8562
|
/* Context Menu - Mojave Theme
|
|
8418
8563
|
*
|
|
8419
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
|
|
@@ -8582,7 +8727,7 @@ button,
|
|
|
8582
8727
|
stroke-width: var(--sl-stroke-default);
|
|
8583
8728
|
}
|
|
8584
8729
|
|
|
8585
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
8730
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
8586
8731
|
/* Dialog and Alert dialog - Mojave Theme
|
|
8587
8732
|
*
|
|
8588
8733
|
* Both are centered modals built from the modal concept (tokens/semantic/modal.json):
|
|
@@ -8728,12 +8873,14 @@ button,
|
|
|
8728
8873
|
margin-top: var(--sl-modal-actions-spacing);
|
|
8729
8874
|
}
|
|
8730
8875
|
|
|
8731
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
8876
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
8732
8877
|
/* Drawer - a panel that slides in from an edge and can be swiped away.
|
|
8733
8878
|
The surface, scrim, heading and motion are the modal concept's (--sl-modal-*), so a
|
|
8734
8879
|
drawer reads as a dialog's sibling; only its size and grab bar are its own
|
|
8735
8880
|
(--sl-drawer-*). Base UI supplies the swipe through
|
|
8736
|
-
--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. */
|
|
8737
8884
|
|
|
8738
8885
|
.DrawerBackdrop {
|
|
8739
8886
|
position: fixed;
|
|
@@ -8770,6 +8917,8 @@ button,
|
|
|
8770
8917
|
overflow-y: auto;
|
|
8771
8918
|
overscroll-behavior: contain;
|
|
8772
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);
|
|
8773
8922
|
transform: translate(var(--drawer-swipe-movement-x, 0px), var(--drawer-swipe-movement-y, 0px));
|
|
8774
8923
|
transition: transform calc(var(--sl-modal-animation-duration) * var(--drawer-swipe-strength, 1)) var(--sl-modal-animation-easing);
|
|
8775
8924
|
}
|
|
@@ -8800,6 +8949,8 @@ button,
|
|
|
8800
8949
|
max-height: var(--sl-drawer-popup-max-size);
|
|
8801
8950
|
border-top: 0;
|
|
8802
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);
|
|
8803
8954
|
}
|
|
8804
8955
|
|
|
8805
8956
|
.DrawerPopup[data-swipe-direction='right'] {
|
|
@@ -8855,7 +9006,7 @@ button,
|
|
|
8855
9006
|
color: var(--sl-modal-description-color);
|
|
8856
9007
|
}
|
|
8857
9008
|
|
|
8858
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9009
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
8859
9010
|
/* Field - Mojave Theme
|
|
8860
9011
|
*
|
|
8861
9012
|
* Label, control, description and error. No component tokens: spacing is the field
|
|
@@ -8916,7 +9067,7 @@ textarea.FieldControl {
|
|
|
8916
9067
|
height: auto;
|
|
8917
9068
|
}
|
|
8918
9069
|
|
|
8919
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9070
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
8920
9071
|
/* Fieldset - Mojave Theme
|
|
8921
9072
|
*
|
|
8922
9073
|
* No component tokens: a titled group of fields, spaced by the stack gaps, with
|
|
@@ -8958,7 +9109,7 @@ textarea.FieldControl {
|
|
|
8958
9109
|
color: var(--sl-text-secondary);
|
|
8959
9110
|
}
|
|
8960
9111
|
|
|
8961
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9112
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
8962
9113
|
/* Form - Mojave Theme
|
|
8963
9114
|
*
|
|
8964
9115
|
* No component tokens: fields stack with the large block space, and the action
|
|
@@ -8978,7 +9129,7 @@ textarea.FieldControl {
|
|
|
8978
9129
|
margin-top: var(--sl-space-block-md);
|
|
8979
9130
|
}
|
|
8980
9131
|
|
|
8981
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9132
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
8982
9133
|
/* Input - Mojave Theme
|
|
8983
9134
|
*
|
|
8984
9135
|
* No component tokens: the look is the field concept (tokens/semantic/field.json),
|
|
@@ -9115,7 +9266,7 @@ textarea.FieldControl {
|
|
|
9115
9266
|
padding-inline: var(--sl-control-padding-inline-lg);
|
|
9116
9267
|
}
|
|
9117
9268
|
|
|
9118
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9269
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
9119
9270
|
/* Menu - Mojave Theme
|
|
9120
9271
|
*
|
|
9121
9272
|
* No component tokens. The trigger is a Button. The popup is the popup concept, rows are item rows at the
|
|
@@ -9264,7 +9415,7 @@ textarea.FieldControl {
|
|
|
9264
9415
|
color: var(--sl-text-tertiary);
|
|
9265
9416
|
}
|
|
9266
9417
|
|
|
9267
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9418
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
9268
9419
|
/* Menubar - Mojave Theme
|
|
9269
9420
|
*
|
|
9270
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
|
|
@@ -9457,7 +9608,7 @@ textarea.FieldControl {
|
|
|
9457
9608
|
color: var(--sl-text-tertiary);
|
|
9458
9609
|
}
|
|
9459
9610
|
|
|
9460
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9611
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
9461
9612
|
/* Meter - Mojave Theme
|
|
9462
9613
|
*
|
|
9463
9614
|
* A gauge (tokens/semantic/gauge.json). The fill is the solid color of the scope around it:
|
|
@@ -9520,7 +9671,7 @@ textarea.FieldControl {
|
|
|
9520
9671
|
height: var(--sl-gauge-height-lg);
|
|
9521
9672
|
}
|
|
9522
9673
|
|
|
9523
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
9674
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
9524
9675
|
/* Navigation Menu - Mojave Theme
|
|
9525
9676
|
*
|
|
9526
9677
|
* The strip is the bar concept, the panel is the popup concept and each link is an item
|
|
@@ -9940,7 +10091,7 @@ textarea.FieldControl {
|
|
|
9940
10091
|
width: 100%;
|
|
9941
10092
|
}
|
|
9942
10093
|
|
|
9943
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10094
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
9944
10095
|
/* Number Field - Mojave Theme
|
|
9945
10096
|
*
|
|
9946
10097
|
* No component tokens. The input is Input (Input.css) and the label, description and
|
|
@@ -10031,7 +10182,7 @@ textarea.FieldControl {
|
|
|
10031
10182
|
user-select: none;
|
|
10032
10183
|
}
|
|
10033
10184
|
|
|
10034
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10185
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10035
10186
|
/* OTP Field - Mojave Theme
|
|
10036
10187
|
*
|
|
10037
10188
|
* One-time code entry: a row of single-character inputs. Each slot is the same control as Input
|
|
@@ -10094,7 +10245,7 @@ textarea.FieldControl {
|
|
|
10094
10245
|
letter-spacing: var(--sl-font-body-magnify-letter-spacing);
|
|
10095
10246
|
}
|
|
10096
10247
|
|
|
10097
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10248
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10098
10249
|
/* Popover - Mojave Theme */
|
|
10099
10250
|
|
|
10100
10251
|
/* ============================================
|
|
@@ -10259,7 +10410,7 @@ textarea.FieldControl {
|
|
|
10259
10410
|
fill: var(--sl-popup-arrow-stroke);
|
|
10260
10411
|
}
|
|
10261
10412
|
|
|
10262
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10413
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10263
10414
|
/* Preview Card - Mojave Theme
|
|
10264
10415
|
*
|
|
10265
10416
|
* The popup concept (surface, arrow, motion) with a title-magnify title and condense
|
|
@@ -10376,7 +10527,7 @@ textarea.FieldControl {
|
|
|
10376
10527
|
fill: var(--sl-popup-arrow-stroke);
|
|
10377
10528
|
}
|
|
10378
10529
|
|
|
10379
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10530
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10380
10531
|
/* Progress - Mojave Theme
|
|
10381
10532
|
*
|
|
10382
10533
|
* A gauge (tokens/semantic/gauge.json), the same bar as Meter. The fill is the solid color of
|
|
@@ -10453,7 +10604,7 @@ textarea.FieldControl {
|
|
|
10453
10604
|
height: var(--sl-gauge-height-lg);
|
|
10454
10605
|
}
|
|
10455
10606
|
|
|
10456
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10607
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10457
10608
|
/* Radio - Mojave Theme
|
|
10458
10609
|
* Same box as Checkbox, always round. Sizes follow the label the same way, and the
|
|
10459
10610
|
* dot is a share of the circle (check.dot-scale).
|
|
@@ -10605,7 +10756,7 @@ textarea.FieldControl {
|
|
|
10605
10756
|
gap: var(--sl-gap-stack-sm);
|
|
10606
10757
|
}
|
|
10607
10758
|
|
|
10608
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10759
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10609
10760
|
/* Scroll Area - Mojave Theme
|
|
10610
10761
|
*
|
|
10611
10762
|
* The scrollbar is the content scrollbar (content.scrollbar-*): a track that stays clear until
|
|
@@ -10687,7 +10838,7 @@ textarea.FieldControl {
|
|
|
10687
10838
|
background: transparent;
|
|
10688
10839
|
}
|
|
10689
10840
|
|
|
10690
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
10841
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10691
10842
|
/* Select - Mojave Theme
|
|
10692
10843
|
*
|
|
10693
10844
|
* The trigger is a field (the field pattern, control sizes, the base text style); the
|
|
@@ -10972,7 +11123,7 @@ textarea.FieldControl {
|
|
|
10972
11123
|
stroke-width: var(--sl-stroke-default);
|
|
10973
11124
|
}
|
|
10974
11125
|
|
|
10975
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11126
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
10976
11127
|
/* Separator - Mojave Theme
|
|
10977
11128
|
*
|
|
10978
11129
|
* A hairline in the everyday divider color (border.default), one stroke thick, with a step of
|
|
@@ -11000,7 +11151,7 @@ textarea.FieldControl {
|
|
|
11000
11151
|
margin-inline: var(--sl-space-4);
|
|
11001
11152
|
}
|
|
11002
11153
|
|
|
11003
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11154
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11004
11155
|
/* Slider - Mojave Theme
|
|
11005
11156
|
*
|
|
11006
11157
|
* A slider is a gauge you can drag: the track, fill and label row are gauge.* (the same bar as
|
|
@@ -11166,7 +11317,7 @@ textarea.FieldControl {
|
|
|
11166
11317
|
transform: translate(-50%, 50%);
|
|
11167
11318
|
}
|
|
11168
11319
|
|
|
11169
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11320
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11170
11321
|
/* Switch - Mojave Theme
|
|
11171
11322
|
* Switch keeps its track sizes. The thumb, its travel and the ON/OFF text are
|
|
11172
11323
|
* worked out from them: the thumb fills the track's height inside the padding,
|
|
@@ -11332,7 +11483,7 @@ textarea.FieldControl {
|
|
|
11332
11483
|
color: var(--sl-text-disabled);
|
|
11333
11484
|
}
|
|
11334
11485
|
|
|
11335
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11486
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11336
11487
|
/* Tabs - Mojave Theme
|
|
11337
11488
|
*
|
|
11338
11489
|
* No component tokens. The divider, the selected line and color, hover and the disabled
|
|
@@ -11468,7 +11619,7 @@ textarea.FieldControl {
|
|
|
11468
11619
|
padding: var(--sl-space-6);
|
|
11469
11620
|
}
|
|
11470
11621
|
|
|
11471
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11622
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11472
11623
|
/* Toast - Mojave Theme
|
|
11473
11624
|
*
|
|
11474
11625
|
* A toast is a notice (tokens/semantic/notice.json) on the popup surface. A toast whose type
|
|
@@ -11704,7 +11855,7 @@ textarea.FieldControl {
|
|
|
11704
11855
|
flex-shrink: 0;
|
|
11705
11856
|
}
|
|
11706
11857
|
|
|
11707
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11858
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11708
11859
|
/* Toggle - Mojave Theme
|
|
11709
11860
|
* A toggle is a button that stays pressed: the same heights, padding, gap and
|
|
11710
11861
|
* trigger text style as a button of the same size. Pressed, it takes its emphasis level's
|
|
@@ -11816,7 +11967,7 @@ textarea.FieldControl {
|
|
|
11816
11967
|
height: var(--sl-icon-size-maximize);
|
|
11817
11968
|
}
|
|
11818
11969
|
|
|
11819
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11970
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11820
11971
|
/* Toggle Group - Mojave Theme
|
|
11821
11972
|
*
|
|
11822
11973
|
* No component tokens. The strip is the bar concept (tokens/semantic/bar.json); the
|
|
@@ -11837,7 +11988,7 @@ textarea.FieldControl {
|
|
|
11837
11988
|
border-radius: var(--sl-radius-item);
|
|
11838
11989
|
}
|
|
11839
11990
|
|
|
11840
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
11991
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11841
11992
|
/* Toolbar - Mojave Theme
|
|
11842
11993
|
*
|
|
11843
11994
|
* The strip is the bar concept (tokens/semantic/bar.json). Buttons, toggles, selects
|
|
@@ -11899,7 +12050,7 @@ textarea.FieldControl {
|
|
|
11899
12050
|
max-width: var(--sl-toolbar-input-max-width);
|
|
11900
12051
|
}
|
|
11901
12052
|
|
|
11902
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
12053
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11903
12054
|
/* Tooltip - Mojave Theme
|
|
11904
12055
|
*
|
|
11905
12056
|
* The inverse surface (surface.inverse, text.on-inverse-surface) with condense text, so a tooltip
|
|
@@ -11960,7 +12111,7 @@ textarea.FieldControl {
|
|
|
11960
12111
|
}
|
|
11961
12112
|
|
|
11962
12113
|
/* Custom components: not Base UI parts. Built from existing concepts and tokens. */
|
|
11963
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
12114
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
11964
12115
|
/* Badge
|
|
11965
12116
|
*
|
|
11966
12117
|
* A status or count label. Not a Base UI part, and not interactive: no hover or focus.
|
|
@@ -12065,7 +12216,7 @@ textarea.FieldControl {
|
|
|
12065
12216
|
height: var(--sl-badge-dot-base);
|
|
12066
12217
|
}
|
|
12067
12218
|
|
|
12068
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
12219
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
12069
12220
|
/*
|
|
12070
12221
|
* DatePicker: a field that opens a calendar for one date or a period.
|
|
12071
12222
|
* Not a Base UI part. The popup is Popover on a wide viewport and Drawer
|
|
@@ -12638,7 +12789,7 @@ textarea.FieldControl {
|
|
|
12638
12789
|
flex-basis: 100%;
|
|
12639
12790
|
}
|
|
12640
12791
|
|
|
12641
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
12792
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
12642
12793
|
/* Money field
|
|
12643
12794
|
*
|
|
12644
12795
|
* An amount of money, built on Number field. The value is an integer in minor units
|
|
@@ -12983,7 +13134,7 @@ textarea.FieldControl {
|
|
|
12983
13134
|
letter-spacing: var(--sl-font-body-base-letter-spacing);
|
|
12984
13135
|
}
|
|
12985
13136
|
|
|
12986
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
13137
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
12987
13138
|
/* ListDetail
|
|
12988
13139
|
*
|
|
12989
13140
|
* The detail of one item, next to its list. Not a Base UI part. It is a Splitter
|
|
@@ -13110,7 +13261,7 @@ textarea.FieldControl {
|
|
|
13110
13261
|
background: transparent;
|
|
13111
13262
|
}
|
|
13112
13263
|
|
|
13113
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
13264
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
13114
13265
|
/* Splitter
|
|
13115
13266
|
*
|
|
13116
13267
|
* Two or more panels and a handle between them. Not a Base UI part. It follows the
|
|
@@ -13318,7 +13469,7 @@ textarea.FieldControl {
|
|
|
13318
13469
|
background: var(--sl-border-default);
|
|
13319
13470
|
}
|
|
13320
13471
|
|
|
13321
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
13472
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
13322
13473
|
/* EmptyState
|
|
13323
13474
|
*
|
|
13324
13475
|
* The block a page, pane, table, list or popup shows when it has nothing to show.
|
|
@@ -13574,7 +13725,7 @@ textarea.FieldControl {
|
|
|
13574
13725
|
color: inherit;
|
|
13575
13726
|
}
|
|
13576
13727
|
|
|
13577
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
13728
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
13578
13729
|
/* Table - Mojave Theme
|
|
13579
13730
|
*
|
|
13580
13731
|
* Base UI has no table, so this styles the native <table class="Table"> elements with the
|
|
@@ -13587,6 +13738,13 @@ textarea.FieldControl {
|
|
|
13587
13738
|
* `<tr><td data-empty colSpan={n}><EmptyState size="compact" … /></td></tr>`. A cell with
|
|
13588
13739
|
* only text still uses this rule's padding. A cell whose child is an EmptyState lets the
|
|
13589
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.
|
|
13590
13748
|
*/
|
|
13591
13749
|
|
|
13592
13750
|
.Table {
|
|
@@ -13605,6 +13763,15 @@ textarea.FieldControl {
|
|
|
13605
13763
|
border-radius: var(--sl-table-radius);
|
|
13606
13764
|
overflow: hidden;
|
|
13607
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);
|
|
13608
13775
|
}
|
|
13609
13776
|
|
|
13610
13777
|
.Table caption {
|
|
@@ -13716,6 +13883,52 @@ textarea.FieldControl {
|
|
|
13716
13883
|
border-bottom: none;
|
|
13717
13884
|
}
|
|
13718
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
|
+
|
|
13719
13932
|
/* A header that stays put while the body scrolls (the table's wrapper scrolls) */
|
|
13720
13933
|
.Table[data-sticky-header] thead th {
|
|
13721
13934
|
position: sticky;
|
|
@@ -13746,7 +13959,7 @@ textarea.FieldControl {
|
|
|
13746
13959
|
color: inherit;
|
|
13747
13960
|
}
|
|
13748
13961
|
|
|
13749
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
13962
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
13750
13963
|
/* Collection
|
|
13751
13964
|
*
|
|
13752
13965
|
* DataTable, DataList, the toolbar and the pagination, in one place so the two views
|
|
@@ -13757,7 +13970,7 @@ textarea.FieldControl {
|
|
|
13757
13970
|
* the tabs and the search where they are, so selecting rows does not grow the toolbar.
|
|
13758
13971
|
*/
|
|
13759
13972
|
|
|
13760
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
13973
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
13761
13974
|
/* Collection toolbar
|
|
13762
13975
|
*
|
|
13763
13976
|
* The wrap follows the toolbar's own width, not the window: a table in a narrow pane wraps
|
|
@@ -13898,7 +14111,7 @@ textarea.FieldControl {
|
|
|
13898
14111
|
letter-spacing: var(--sl-font-body-condense-letter-spacing);
|
|
13899
14112
|
}
|
|
13900
14113
|
|
|
13901
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
14114
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
13902
14115
|
/* DataTable additions on top of .Table.
|
|
13903
14116
|
*
|
|
13904
14117
|
* Sort buttons fill the header cell and inherit its hover, so old aria-sort markup keeps
|
|
@@ -14019,12 +14232,15 @@ textarea.FieldControl {
|
|
|
14019
14232
|
color: var(--sl-table-subtle-color);
|
|
14020
14233
|
}
|
|
14021
14234
|
|
|
14022
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
14235
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
14023
14236
|
/* DataList
|
|
14024
14237
|
*
|
|
14025
14238
|
* The same rows as the table, in one container with the table's borders, hover, selected
|
|
14026
14239
|
* and current states. Not a stack of floating cards: the two views should read as one family.
|
|
14027
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.
|
|
14028
14244
|
*/
|
|
14029
14245
|
|
|
14030
14246
|
.DataList {
|
|
@@ -14043,6 +14259,13 @@ textarea.FieldControl {
|
|
|
14043
14259
|
background: var(--sl-table-background);
|
|
14044
14260
|
border: var(--sl-stroke-default) solid var(--sl-table-border-color);
|
|
14045
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);
|
|
14046
14269
|
}
|
|
14047
14270
|
|
|
14048
14271
|
.DataList li {
|
|
@@ -14136,6 +14359,14 @@ textarea.FieldControl {
|
|
|
14136
14359
|
background: var(--sl-table-background);
|
|
14137
14360
|
border: var(--sl-stroke-default) solid var(--sl-table-border-color);
|
|
14138
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);
|
|
14139
14370
|
}
|
|
14140
14371
|
|
|
14141
14372
|
.DataList[data-loading] ul {
|
|
@@ -14143,7 +14374,7 @@ textarea.FieldControl {
|
|
|
14143
14374
|
transition: opacity var(--sl-duration-fast) var(--sl-easing-default);
|
|
14144
14375
|
}
|
|
14145
14376
|
|
|
14146
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
14377
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
14147
14378
|
/* Pagination
|
|
14148
14379
|
*
|
|
14149
14380
|
* Not tied to a collection. Anything with a page, a page count and a total can use it.
|
|
@@ -14168,7 +14399,7 @@ textarea.FieldControl {
|
|
|
14168
14399
|
margin: 0;
|
|
14169
14400
|
}
|
|
14170
14401
|
|
|
14171
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
14402
|
+
/* @scattered-light/loomiere-base-ui 0.8.0 · styles for @base-ui/react 1.9.0 */
|
|
14172
14403
|
/* EditableList
|
|
14173
14404
|
*
|
|
14174
14405
|
* One table at every width, so a field is not submitted twice. Under the stack width each
|
|
@@ -14266,3 +14497,231 @@ textarea.FieldControl {
|
|
|
14266
14497
|
letter-spacing: var(--sl-font-subtitle-condense-letter-spacing);
|
|
14267
14498
|
}
|
|
14268
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
|
+
}
|