@slotted/react 0.1.0-beta.4 → 0.1.0-beta.5
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/README.md +16 -1
- package/dist/{action-bar-OACchRZw.js → action-bar-ti3e6FK1.js} +1 -1
- package/dist/action-bar.js +1 -1
- package/dist/{app-shell-CmYvnu_7.js → app-shell-nnSP44OO.js} +271 -267
- package/dist/app-shell.js +1 -1
- package/dist/bin/slotted-agent-docs.mjs +297 -0
- package/dist/{cascader-D1AhTyBL.js → cascader-Cn2Acpcv.js} +227 -210
- package/dist/cascader.js +1 -1
- package/dist/chart-04i6NZQA.js +968 -0
- package/dist/chart.js +1 -1
- package/dist/{checkbox-DfxFHZaU.js → checkbox-B4Sb1eXj.js} +3 -3
- package/dist/{checkbox-group-9sDgrV5Z.js → checkbox-group-LpGMuq9w.js} +2 -2
- package/dist/checkbox-group.js +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{code-block-CFHf8uTm.js → code-block-CTNiyt0U.js} +1 -1
- package/dist/code-block.js +1 -1
- package/dist/{color-picker-CwbWzCKg.js → color-picker-BcRCeISx.js} +4 -4
- package/dist/color-picker.js +1 -1
- package/dist/{column-manager-CTtizVhm.js → column-manager-BtkYLs5G.js} +4 -4
- package/dist/column-manager.js +1 -1
- package/dist/{combobox-BVMI9lg8.js → combobox-C1D5doWM.js} +227 -198
- package/dist/combobox.js +1 -1
- package/dist/{context-menu-BuST6W94.js → context-menu-B00UIBVC.js} +1 -1
- package/dist/context-menu.js +1 -1
- package/dist/{currency-field-DD9A5U3D.js → currency-field-Dti9JFu0.js} +1 -1
- package/dist/currency-field.js +1 -1
- package/dist/{dashboard-grid-CBMP_-JV.js → dashboard-grid-CoLKLvYL.js} +1 -1
- package/dist/dashboard-grid.js +1 -1
- package/dist/{data-grid-Eb-a4jg3.js → data-grid-DX95Y7mY.js} +18 -18
- package/dist/data-grid.js +1 -1
- package/dist/{data-list-oICmxGkA.js → data-list-CWYTPNm-.js} +2 -2
- package/dist/data-list.js +1 -1
- package/dist/{date-field-Hr-OCU-H.js → date-field-BxEpqAPg.js} +1 -1
- package/dist/date-field.js +1 -1
- package/dist/date-picker-DRk9SZp1.js +308 -0
- package/dist/date-picker.js +1 -1
- package/dist/date-range-picker-6Yz7avTS.js +483 -0
- package/dist/date-range-picker.js +1 -1
- package/dist/{datetime-field-B8TrmsDK.js → datetime-field-D2f9u6im.js} +1 -1
- package/dist/datetime-field.js +1 -1
- package/dist/datetime-picker-STqSWMkH.js +645 -0
- package/dist/datetime-picker.js +1 -1
- package/dist/datetime-range-picker-DQNQwr3K.js +1000 -0
- package/dist/datetime-range-picker.js +1 -1
- package/dist/{detail-panel-CW53lUjp.js → detail-panel-z6WGleP4.js} +1 -1
- package/dist/detail-panel.js +1 -1
- package/dist/docs/AGENTS.snippet.md +2 -0
- package/dist/docs/app-shell.examples.md +1 -1
- package/dist/docs/app-shell.json +4 -4
- package/dist/docs/app-shell.md +2 -2
- package/dist/docs/guidelines/README.md +2 -2
- package/dist/docs/guidelines/index.md +1 -1
- package/dist/docs/guidelines/own-elements.md +1 -1
- package/dist/docs/page-header.json +1 -0
- package/dist/docs/page-header.md +1 -1
- package/dist/docs/skills/build-own-element/SKILL.md +6 -6
- package/dist/docs/skills/compose-screen/SKILL.md +6 -6
- package/dist/docs/skills/review-screen/SKILL.md +6 -6
- package/dist/docs/skills/theme-app/SKILL.md +1 -1
- package/dist/docs/skills/waiting-states/SKILL.md +2 -2
- package/dist/docs/tabs.json +13 -3
- package/dist/docs/tabs.md +3 -2
- package/dist/{entity-picker-Dn1T7JCq.js → entity-picker-BdySwW8F.js} +274 -256
- package/dist/entity-picker.js +1 -1
- package/dist/{event-calendar-CnF3iIZD.js → event-calendar-CiphPXdV.js} +4 -4
- package/dist/event-calendar.js +1 -1
- package/dist/{field-NJaCxl2h.js → field-BxQFpOXS.js} +1 -1
- package/dist/{field-group-hAzVa2O9.js → field-group-DcN_hiZN.js} +1 -1
- package/dist/field-group.js +1 -1
- package/dist/field.js +1 -1
- package/dist/{filter-bar-CHyy1o--.js → filter-bar-C_dXljI_.js} +10 -10
- package/dist/filter-bar.js +1 -1
- package/dist/{hover-card-BJE5dtaQ.js → hover-card-DpVzwvDJ.js} +1 -1
- package/dist/hover-card.js +1 -1
- package/dist/{import-export-center-jF37b909.js → import-export-center-BQnMJz4g.js} +3 -3
- package/dist/import-export-center.js +1 -1
- package/dist/index.js +63 -63
- package/dist/{listbox-Dv856z9I.js → listbox-D0MJcAMm.js} +1 -1
- package/dist/listbox.js +1 -1
- package/dist/{markdown-CeG8mUbI.js → markdown-IiVoh6yi.js} +2 -2
- package/dist/markdown.js +1 -1
- package/dist/menu-parts-D6v_mz6O.js +809 -0
- package/dist/menu.js +1 -1
- package/dist/{menubar-b2CruimJ.js → menubar-DApIg1eR.js} +1 -1
- package/dist/menubar.js +1 -1
- package/dist/{multi-select-DQ5ds0fX.js → multi-select-B8z6ApgW.js} +286 -257
- package/dist/multi-select.js +1 -1
- package/dist/{notification-center-C1iWWl5Y.js → notification-center-CGEEHcRA.js} +2 -2
- package/dist/notification-center.js +1 -1
- package/dist/{number-field-BFIAmv-z.js → number-field-DXk1TAXA.js} +1 -1
- package/dist/number-field.js +1 -1
- package/dist/{otp-input-BNQhuKaT.js → otp-input-CI-kdNgx.js} +1 -1
- package/dist/otp-input.js +1 -1
- package/dist/{popover-Be7JWbGJ.js → popover-DEp8Bf3e.js} +186 -166
- package/dist/popover.js +1 -1
- package/dist/{prompt-composer-BxpdkTpZ.js → prompt-composer-DdcU3S3L.js} +1 -1
- package/dist/prompt-composer.js +1 -1
- package/dist/{radio-group-BaVIP9UH.js → radio-group-D8csBZ8Z.js} +2 -2
- package/dist/radio-group.js +1 -1
- package/dist/{rating-DYBQBzwB.js → rating-rI3b5zII.js} +1 -1
- package/dist/rating.js +1 -1
- package/dist/{saved-views-DlE_--Z9.js → saved-views-B3brBTD9.js} +4 -4
- package/dist/saved-views.js +1 -1
- package/dist/scroll-area-DQ_ansLu.js +112 -0
- package/dist/scroll-area.js +1 -1
- package/dist/{segmented-control-DmuOGiu6.js → segmented-control-C-PzkTtg.js} +2 -2
- package/dist/segmented-control.js +1 -1
- package/dist/{select-M7Io4UL9.js → select-BUylPwpb.js} +241 -203
- package/dist/select.js +1 -1
- package/dist/{side-navigation-CBLtCzuJ.js → side-navigation-Bm-BZma1.js} +156 -140
- package/dist/side-navigation.js +1 -1
- package/dist/{slider-DTes4HLF.js → slider-fp7kyg-6.js} +1 -1
- package/dist/slider.js +1 -1
- package/dist/{split-button-CPgHiy9G.js → split-button-DKRm0j5c.js} +1 -1
- package/dist/split-button.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/{switch-DQzuIhPX.js → switch-aVoc4C2F.js} +1 -1
- package/dist/switch.js +1 -1
- package/dist/{table-U9eJYCuB.js → table-BYEvFr4P.js} +276 -275
- package/dist/table.js +1 -1
- package/dist/{tabs-BtHmjlnM.js → tabs-HWmvOKM4.js} +109 -102
- package/dist/tabs.js +1 -1
- package/dist/{tags-input-CcOkm0AW.js → tags-input-pbv6x1Pi.js} +1 -1
- package/dist/tags-input.js +1 -1
- package/dist/{text-field-DLfIZ0fk.js → text-field-CbQ6UCAP.js} +1 -1
- package/dist/text-field.js +1 -1
- package/dist/{textarea-CBJBJBi6.js → textarea-DJSfhrXH.js} +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{time-field-DrhiCtUl.js → time-field-BI9n607q.js} +1 -1
- package/dist/time-field.js +1 -1
- package/dist/time-picker-D6SlQWNF.js +402 -0
- package/dist/time-picker.js +1 -1
- package/dist/time-range-picker-CcV3_45h.js +751 -0
- package/dist/time-range-picker.js +1 -1
- package/dist/{toggle-group-7iBR9Rn1.js → toggle-group-i7JPO8BM.js} +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/{toolbar-DDZpEftQ.js → toolbar-B9knmgHA.js} +1 -1
- package/dist/toolbar.js +1 -1
- package/dist/tooltip-CgjIROUy.js +410 -0
- package/dist/tooltip.js +1 -1
- package/dist/{top-navigation-e-tWMGNr.js → top-navigation-DiG2PF5W.js} +2 -2
- package/dist/top-navigation.js +1 -1
- package/dist/{transfer-CqZOTLMP.js → transfer--UOQVeKE.js} +5 -5
- package/dist/transfer.js +1 -1
- package/dist/types/app-shell/app-shell-parts.d.ts +6 -4
- package/dist/types/app-shell/app-shell-parts.d.ts.map +1 -1
- package/dist/types/app-shell/app-shell.d.ts.map +1 -1
- package/dist/types/cascader/cascader.d.ts.map +1 -1
- package/dist/types/chart/chart.d.ts.map +1 -1
- package/dist/types/combobox/combobox-parts.d.ts.map +1 -1
- package/dist/types/date-picker/date-picker.d.ts.map +1 -1
- package/dist/types/date-range-picker/date-range-picker.d.ts.map +1 -1
- package/dist/types/datetime-picker/datetime-picker.d.ts.map +1 -1
- package/dist/types/datetime-range-picker/datetime-range-picker.d.ts.map +1 -1
- package/dist/types/entity-picker/entity-picker-popup.d.ts.map +1 -1
- package/dist/types/menu/menu-parts.d.ts.map +1 -1
- package/dist/types/multi-select/multi-select-parts.d.ts.map +1 -1
- package/dist/types/popover/popover-parts.d.ts.map +1 -1
- package/dist/types/scroll-area/scroll-area.d.ts.map +1 -1
- package/dist/types/select/select-parts.d.ts.map +1 -1
- package/dist/types/side-navigation/side-navigation-parts.d.ts.map +1 -1
- package/dist/types/stat-card/stat-card.types.d.ts +2 -2
- package/dist/types/stat-card/stat-card.types.d.ts.map +1 -1
- package/dist/types/table/table-content.d.ts.map +1 -1
- package/dist/types/tabs/tabs-parts.d.ts +2 -4
- package/dist/types/tabs/tabs-parts.d.ts.map +1 -1
- package/dist/types/tabs/tabs.d.ts.map +1 -1
- package/dist/types/time-picker/time-picker.d.ts.map +1 -1
- package/dist/types/time-range-picker/time-range-picker.d.ts.map +1 -1
- package/dist/types/tooltip/tooltip-parts.d.ts.map +1 -1
- package/dist/{upload-DjnlVR8y.js → upload-CLX5cURk.js} +1 -1
- package/dist/upload.js +1 -1
- package/package.json +10 -7
- package/dist/chart-O0ZhkzJe.js +0 -966
- package/dist/date-picker-D3-y2Jxw.js +0 -295
- package/dist/date-range-picker-y3b82Wmf.js +0 -471
- package/dist/datetime-picker-CIRHVLQp.js +0 -629
- package/dist/datetime-range-picker-DM-1m98z.js +0 -994
- package/dist/menu-parts-W58pVNUt.js +0 -786
- package/dist/scroll-area-BriwmvYY.js +0 -111
- package/dist/time-picker-CRQsMJbQ.js +0 -396
- package/dist/time-range-picker-DlZJsj1e.js +0 -745
- package/dist/tooltip-DbKTPe_i.js +0 -392
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./datetime-range-picker-
|
|
1
|
+
import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./datetime-range-picker-DQNQwr3K.js";
|
|
2
2
|
export { n as DATETIME_RANGE_PICKER_MAX_OPTIONS, e as DATETIME_RANGE_PICKER_MONTHS, a as DATETIME_RANGE_PICKER_STEP, c as DateTimeRangePicker, s as DateTimeRangePickerDefaultsProvider, i as DateTimeRangePickerPreset, t as dateTimeRangePickerLengthLabel, o as isSameDateTimeRange, r as useDateTimeRangePickerDefaults };
|
|
@@ -5,7 +5,7 @@ import { n as r } from "./container-CjxY6rYv.js";
|
|
|
5
5
|
import { a as i } from "./page-IiYXk1sz.js";
|
|
6
6
|
import { w as a } from "./page-header-Bn4nIGfF.js";
|
|
7
7
|
import { a as o, l as s, n as c, o as l, s as u, t as d } from "./section-Be7dX9MC.js";
|
|
8
|
-
import { a as f, n as p, o as m, r as h, t as g } from "./tabs-
|
|
8
|
+
import { a as f, n as p, o as m, r as h, t as g } from "./tabs-HWmvOKM4.js";
|
|
9
9
|
import { createControllable as _ } from "@slotted/core/state";
|
|
10
10
|
import { createContext as v, useCallback as y, useContext as b, useEffect as x, useImperativeHandle as S, useMemo as C, useRef as w, useState as T } from "react";
|
|
11
11
|
import { Fragment as E, jsx as D, jsxs as O } from "react/jsx-runtime";
|
package/dist/detail-panel.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./detail-panel-
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./detail-panel-z6WGleP4.js";
|
|
2
2
|
export { t as DetailPanel, o as DetailPanelBody, r as DetailPanelDefaultsProvider, n as DetailPanelSection, i as DetailPanelTabs, e as useDetailPanel, a as useDetailPanelDefaults };
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
## Slotted UI (@slotted/react)
|
|
2
2
|
|
|
3
|
+
Paths below are relative to the directory that holds node_modules.
|
|
4
|
+
|
|
3
5
|
Before writing or changing UI, read `node_modules/@slotted/react/dist/docs/index.md`, then the file of each family you use. These files match the installed version: prefer them over prior knowledge of the library.
|
|
4
6
|
|
|
5
7
|
- Import components from `@slotted/react` or the family subpath that each file's Import section shows.
|
|
@@ -304,7 +304,7 @@ const navigation = useNavigation();
|
|
|
304
304
|
|
|
305
305
|
### The first thing a keyboard meets
|
|
306
306
|
|
|
307
|
-
Press Tab from the top of the frame: a link to the content appears, then one to the navigation, then one to the pane — one per region that rendered and is open, out of the flow until focused. The content region
|
|
307
|
+
Press Tab from the top of the frame: a link to the content appears, then one to the navigation, then one to the pane — one per region that rendered and is open, out of the flow until focused. The link makes the content region focusable for that one focus, so it moves the focus as well as the scroll.
|
|
308
308
|
|
|
309
309
|
Excerpt — not a complete module
|
|
310
310
|
|
package/dist/docs/app-shell.json
CHANGED
|
@@ -228,9 +228,9 @@
|
|
|
228
228
|
},
|
|
229
229
|
{
|
|
230
230
|
"part": "main",
|
|
231
|
-
"element": "main
|
|
231
|
+
"element": "main, or the element render returns",
|
|
232
232
|
"required": true,
|
|
233
|
-
"purpose": "The main landmark and the skip link’s destination.
|
|
233
|
+
"purpose": "The main landmark and the skip link’s destination. The skip link and focusMain() write tabindex=\"-1\" for the focus they move, and blur or the next pointer press inside removes it: a main focusable all the time takes the focus of every click on its text, and the next key draws the ring around the page."
|
|
234
234
|
},
|
|
235
235
|
{
|
|
236
236
|
"part": "progress",
|
|
@@ -571,7 +571,7 @@
|
|
|
571
571
|
"The structure is the WAI-ARIA APG’s Landmark Regions (w3.org/WAI/ARIA/apg/practices/landmark-regions/), and every one of the five is earned from the element rather than written as a role: header in the context of the body is banner, nav is navigation, main is main, aside is complementary, footer is contentinfo. The root is a div for exactly that reason — a main inside a sectioning element stops being a landmark, and the shell has to be placeable anywhere.",
|
|
572
572
|
"Both controls are the APG’s Disclosure pattern (w3.org/WAI/ARIA/apg/patterns/disclosure/): real buttons, so Enter and Space activate them natively, carrying aria-expanded and aria-controls pointing at their region. One departure is written and costed: under collapsedTo=\"rail\" the navigation does not disappear, it narrows — aria-expanded is still true or false about the region’s full form, and the region stays in the tab order because a rail whose destinations cannot be reached is not a rail. The pane has no such departure: closed, it leaves the layout and the tab order.",
|
|
573
573
|
"A document with more than one navigation or complementary landmark needs a unique label on each, so both regions carry the family’s strings and a consumer may replace either per instance. Each control’s own name changes with the state — “Open navigation” and “Close navigation”, “Open side panel” and “Close side panel” — because a control whose name never changes leaves the reader to infer the state from aria-expanded alone.",
|
|
574
|
-
"The skip links are written from the regions that rendered and are open, so no link ever points at a target nobody built or the reader closed, and main
|
|
574
|
+
"The skip links are written from the regions that rendered and are open, so no link ever points at a target nobody built or the reader closed, and the main link writes tabindex=\"-1\" on main before it moves the focus: without it the browser moves the scroll and leaves the focus behind in Safari and Firefox. Blur or the next pointer press inside removes the attribute, so a click on the content never focuses main.",
|
|
575
575
|
"While an overlaid region is modal, @slotted/core/focus contains the keyboard inside it and returns it to the control that opened it on close, and every region beside it — the banner included — takes inert, so Tab cannot reach them and a screen reader does not read them. The ways out are Escape, the veil, a destination, and whatever control the product put in the panel. Two layers can be open together only with both modes forced, and @slotted/core/dismissable-layer keeps one stack, so Escape reaches the topmost.",
|
|
576
576
|
"The pane’s edge is the APG’s Window Splitter (w3.org/WAI/ARIA/apg/patterns/windowsplitter/): a focusable separator with aria-orientation=\"vertical\", aria-controls pointing at the pane and aria-valuemin, aria-valuemax and aria-valuenow as whole percentages of the shell, named “Resize panel”. ArrowLeft and ArrowRight move it sixteen pixels, sixty-four with Shift, by the direction on the screen — so ArrowLeft grows an end pane and shrinks a start one, mirrored in right-to-left — and Home and End go to the limits.",
|
|
577
577
|
"Nothing important depends on hover, the frame answers its own inline size rather than the window’s — which is what makes a 400% zoom behave like a narrow window — and every transition comes from the motion scale, so prefers-reduced-motion collapses all of them at once."
|
|
@@ -798,7 +798,7 @@
|
|
|
798
798
|
{
|
|
799
799
|
"id": "skipLinks",
|
|
800
800
|
"title": "The first thing a keyboard meets",
|
|
801
|
-
"note": "Press Tab from the top of the frame: a link to the content appears, then one to the navigation, then one to the pane — one per region that rendered and is open, out of the flow until focused. The content region
|
|
801
|
+
"note": "Press Tab from the top of the frame: a link to the content appears, then one to the navigation, then one to the pane — one per region that rendered and is open, out of the flow until focused. The link makes the content region focusable for that one focus, so it moves the focus as well as the scroll.",
|
|
802
802
|
"language": "tsx",
|
|
803
803
|
"source": "<AppShell messages={{ skipToMain: 'Skip to the order' }}>\n <AppShellMain>…</AppShellMain>\n</AppShell>;\n",
|
|
804
804
|
"verdict": "excerpt"
|
package/dist/docs/app-shell.md
CHANGED
|
@@ -100,7 +100,7 @@ export default function AppShellBasic() {
|
|
|
100
100
|
| `nav-body` | div | no |
|
|
101
101
|
| `nav-footer` | div | no |
|
|
102
102
|
| `scrim` | div | no |
|
|
103
|
-
| `main` | main
|
|
103
|
+
| `main` | main, or the element render returns | yes |
|
|
104
104
|
| `progress` | div, holding one ProgressBar at placement="edge-start" | no |
|
|
105
105
|
| `aside` | aside, or the element render returns | no |
|
|
106
106
|
| `aside-resizer` | div with role="separator", or the element render returns | no |
|
|
@@ -186,7 +186,7 @@ export default function AppShellBasic() {
|
|
|
186
186
|
- The structure is the WAI-ARIA APG’s Landmark Regions (w3.org/WAI/ARIA/apg/practices/landmark-regions/), and every one of the five is earned from the element rather than written as a role: header in the context of the body is banner, nav is navigation, main is main, aside is complementary, footer is contentinfo. The root is a div for exactly that reason — a main inside a sectioning element stops being a landmark, and the shell has to be placeable anywhere.
|
|
187
187
|
- Both controls are the APG’s Disclosure pattern (w3.org/WAI/ARIA/apg/patterns/disclosure/): real buttons, so Enter and Space activate them natively, carrying aria-expanded and aria-controls pointing at their region. One departure is written and costed: under collapsedTo="rail" the navigation does not disappear, it narrows — aria-expanded is still true or false about the region’s full form, and the region stays in the tab order because a rail whose destinations cannot be reached is not a rail. The pane has no such departure: closed, it leaves the layout and the tab order.
|
|
188
188
|
- A document with more than one navigation or complementary landmark needs a unique label on each, so both regions carry the family’s strings and a consumer may replace either per instance. Each control’s own name changes with the state — “Open navigation” and “Close navigation”, “Open side panel” and “Close side panel” — because a control whose name never changes leaves the reader to infer the state from aria-expanded alone.
|
|
189
|
-
- The skip links are written from the regions that rendered and are open, so no link ever points at a target nobody built or the reader closed, and main
|
|
189
|
+
- The skip links are written from the regions that rendered and are open, so no link ever points at a target nobody built or the reader closed, and the main link writes tabindex="-1" on main before it moves the focus: without it the browser moves the scroll and leaves the focus behind in Safari and Firefox. Blur or the next pointer press inside removes the attribute, so a click on the content never focuses main.
|
|
190
190
|
- While an overlaid region is modal, @slotted/core/focus contains the keyboard inside it and returns it to the control that opened it on close, and every region beside it — the banner included — takes inert, so Tab cannot reach them and a screen reader does not read them. The ways out are Escape, the veil, a destination, and whatever control the product put in the panel. Two layers can be open together only with both modes forced, and @slotted/core/dismissable-layer keeps one stack, so Escape reaches the topmost.
|
|
191
191
|
- The pane’s edge is the APG’s Window Splitter (w3.org/WAI/ARIA/apg/patterns/windowsplitter/): a focusable separator with aria-orientation="vertical", aria-controls pointing at the pane and aria-valuemin, aria-valuemax and aria-valuenow as whole percentages of the shell, named “Resize panel”. ArrowLeft and ArrowRight move it sixteen pixels, sixty-four with Shift, by the direction on the screen — so ArrowLeft grows an end pane and shrinks a start one, mirrored in right-to-left — and Home and End go to the limits.
|
|
192
192
|
- Nothing important depends on hover, the frame answers its own inline size rather than the window’s — which is what makes a 400% zoom behave like a narrow window — and every transition comes from the motion scale, so prefers-reduced-motion collapses all of them at once.
|
|
@@ -14,8 +14,8 @@ screen:
|
|
|
14
14
|
2. Match the task against the `triggers` in each topic file's front matter.
|
|
15
15
|
Read the topic files that match, and `composition.md` always.
|
|
16
16
|
3. Before writing an element beside a family, read that family's page in
|
|
17
|
-
|
|
18
|
-
`own-elements.md` and
|
|
17
|
+
`..`. Before writing an element no family draws, read
|
|
18
|
+
`own-elements.md` and `../tokens.md`.
|
|
19
19
|
4. Apply the rules by level: a `MUST` broken is a defect, a `SHOULD` broken is
|
|
20
20
|
stated with its reason, a `MAY` is a permission.
|
|
21
21
|
5. A screen is done when each `Check` of the rules read passes.
|
|
@@ -79,7 +79,7 @@ Every active rule, one line each. Load this first; load a topic file when the ta
|
|
|
79
79
|
| OV-03 | SHOULD | Where the reader's scope holds one category, the chart is not drawn and one sentence states the numbers it would have compared. | `overviews.md` |
|
|
80
80
|
| OV-04 | SHOULD | The thresholds are stated once in words beside the figures, and a figure past one says so in its own comparison line, on the line the placeholder reserves. | `overviews.md` |
|
|
81
81
|
| OV-05 | SHOULD | A chart takes the `card` `variant` when it is one of two or more peer tiles in one grid with no section heading of its own, and stays `plain` when it is the body of a titled section or the only content of a tab. | `overviews.md` |
|
|
82
|
-
| OE-01 | MUST | An element of the application's own reads only tokens of the groups
|
|
82
|
+
| OE-01 | MUST | An element of the application's own reads only tokens of the groups `../tokens.md` lists for the application. | `own-elements.md` |
|
|
83
83
|
| OE-02 | MUST | Where two states hold at once, the element paints the ground, the edge and the text colour of the stronger, in the order `disabled`, `loading`, `readonly`, `invalid`, `checked`, `selected`, `pressed`, `current`, `complete`, `active`, `hover`; the focus ring of OE-03 is drawn over every state. | `own-elements.md` |
|
|
84
84
|
| OE-03 | MUST | In its `focus-visible` state the element draws an outline of `--slotted-focus-ring-width` in `--slotted-focus-ring-color`, offset by `--slotted-focus-ring-offset`. | `own-elements.md` |
|
|
85
85
|
| OE-04 | MUST | The element's hit area measures at least `--slotted-target-min` in both axes, and at least `--slotted-target-comfortable` under `pointer: coarse`. | `own-elements.md` |
|
|
@@ -18,7 +18,7 @@ the problem, the family is used instead (CP-04).
|
|
|
18
18
|
|
|
19
19
|
Level: MUST
|
|
20
20
|
Applies to: every element of the application's own that paints, spaces or moves
|
|
21
|
-
Rule: An element of the application's own reads only tokens of the groups
|
|
21
|
+
Rule: An element of the application's own reads only tokens of the groups `../tokens.md` lists for the application.
|
|
22
22
|
Why: A token of a family-only group is that family's adjustment and changes with it; an application group is the theme's promise.
|
|
23
23
|
Do: A strip of day cells spaces with `--slotted-space-2`, paints a busy day with `--slotted-tone-warning-surface` and rounds with `--slotted-radius-sm`.
|
|
24
24
|
Don't: A cell takes its height from `--slotted-avatar-size-sm` because the number fit.
|
|
@@ -412,6 +412,7 @@
|
|
|
412
412
|
"--slotted-line-height-md",
|
|
413
413
|
"--slotted-line-height-sm",
|
|
414
414
|
"--slotted-line-height-xl",
|
|
415
|
+
"--slotted-page-header-backdrop-filter",
|
|
415
416
|
"--slotted-page-header-background",
|
|
416
417
|
"--slotted-page-header-border",
|
|
417
418
|
"--slotted-page-header-control-size",
|
package/dist/docs/page-header.md
CHANGED
|
@@ -105,7 +105,7 @@ Excerpt — not a complete module
|
|
|
105
105
|
|
|
106
106
|
## Tokens
|
|
107
107
|
|
|
108
|
-
`--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-radius`, `--slotted-disabled-foreground`, `--slotted-duration-medium`, `--slotted-duration-short`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-family-heading`, `--slotted-font-family-sans`, `--slotted-font-size-2xl`, `--slotted-font-size-3xl`, `--slotted-font-size-lg`, `--slotted-font-size-md`, `--slotted-font-size-sm`, `--slotted-font-size-xl`, `--slotted-font-weight-medium`, `--slotted-font-weight-semibold`, `--slotted-line-height-2xl`, `--slotted-line-height-3xl`, `--slotted-line-height-lg`, `--slotted-line-height-md`, `--slotted-line-height-sm`, `--slotted-line-height-xl`, `--slotted-page-header-background`, `--slotted-page-header-border`, `--slotted-page-header-control-size`, `--slotted-page-header-description-measure`, `--slotted-page-header-gap`, `--slotted-page-header-heading-size-lg`, `--slotted-page-header-heading-size-md`, `--slotted-page-header-heading-size-sm`, `--slotted-page-header-inset`, `--slotted-page-header-padding-block`, `--slotted-page-header-radius`, `--slotted-page-header-shadow`, `--slotted-page-header-snapped-heading-size-lg`, `--slotted-page-header-snapped-heading-size-md`, `--slotted-page-header-snapped-heading-size-sm`, `--slotted-radius-full`, `--slotted-radius-lg`, `--slotted-radius-sm`, `--slotted-shadow-sm`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-space-6`, `--slotted-surface`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-subtle-hover`, `--slotted-tone-accent-surface`, `--slotted-tone-accent-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`, `--slotted-toolbar-inset`, `--slotted-z-index-sticky`
|
|
108
|
+
`--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-radius`, `--slotted-disabled-foreground`, `--slotted-duration-medium`, `--slotted-duration-short`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-family-heading`, `--slotted-font-family-sans`, `--slotted-font-size-2xl`, `--slotted-font-size-3xl`, `--slotted-font-size-lg`, `--slotted-font-size-md`, `--slotted-font-size-sm`, `--slotted-font-size-xl`, `--slotted-font-weight-medium`, `--slotted-font-weight-semibold`, `--slotted-line-height-2xl`, `--slotted-line-height-3xl`, `--slotted-line-height-lg`, `--slotted-line-height-md`, `--slotted-line-height-sm`, `--slotted-line-height-xl`, `--slotted-page-header-backdrop-filter`, `--slotted-page-header-background`, `--slotted-page-header-border`, `--slotted-page-header-control-size`, `--slotted-page-header-description-measure`, `--slotted-page-header-gap`, `--slotted-page-header-heading-size-lg`, `--slotted-page-header-heading-size-md`, `--slotted-page-header-heading-size-sm`, `--slotted-page-header-inset`, `--slotted-page-header-padding-block`, `--slotted-page-header-radius`, `--slotted-page-header-shadow`, `--slotted-page-header-snapped-heading-size-lg`, `--slotted-page-header-snapped-heading-size-md`, `--slotted-page-header-snapped-heading-size-sm`, `--slotted-radius-full`, `--slotted-radius-lg`, `--slotted-radius-sm`, `--slotted-shadow-sm`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-space-6`, `--slotted-surface`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-subtle-hover`, `--slotted-tone-accent-surface`, `--slotted-tone-accent-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`, `--slotted-toolbar-inset`, `--slotted-z-index-sticky`
|
|
109
109
|
|
|
110
110
|
## Examples
|
|
111
111
|
|
|
@@ -11,9 +11,9 @@ built from the same theme as the families beside it.
|
|
|
11
11
|
|
|
12
12
|
## 1. Prove that no family answers
|
|
13
13
|
|
|
14
|
-
1. Read
|
|
14
|
+
1. Read `../../index.md` and list the families whose line is near the
|
|
15
15
|
element.
|
|
16
|
-
2. Read
|
|
16
|
+
2. Read `../../<family>.md` for each: its anatomy, its slots, its axes.
|
|
17
17
|
When a family draws the element, or names a slot that holds it, the family
|
|
18
18
|
is used (CP-01).
|
|
19
19
|
3. When a family draws a part of the element — a toggle, a popup, a list, a
|
|
@@ -33,7 +33,7 @@ Free, decided by the problem:
|
|
|
33
33
|
Fixed, read from the theme:
|
|
34
34
|
|
|
35
35
|
- every value it paints comes from a token of the group
|
|
36
|
-
|
|
36
|
+
`../../tokens.md` lists for that decision (OE-01, CP-05);
|
|
37
37
|
- a tone carries the meaning the `tone` group gives it, and a data series takes
|
|
38
38
|
the `data` slots in order;
|
|
39
39
|
- how its states yield, how focus is drawn, how large a target is, what forced
|
|
@@ -43,7 +43,7 @@ A new appearance is a new combination of tokens, never a new value.
|
|
|
43
43
|
|
|
44
44
|
## 3. Map each decision to a group
|
|
45
45
|
|
|
46
|
-
| Decision | Group in
|
|
46
|
+
| Decision | Group in `../../tokens.md` |
|
|
47
47
|
| ---------------------------------------------- | --------------------------------------------------- |
|
|
48
48
|
| Distance between parts, inner padding | `space` |
|
|
49
49
|
| Corners | `radius` |
|
|
@@ -84,7 +84,7 @@ why no token covers it (CP-05).
|
|
|
84
84
|
|
|
85
85
|
## 5. Done
|
|
86
86
|
|
|
87
|
-
1. Each `Check` of
|
|
87
|
+
1. Each `Check` of `../../guidelines/own-elements.md` passes.
|
|
88
88
|
2. The element's CSS holds no colour or length literal without its comment.
|
|
89
89
|
3. Every custom property the element reads is listed in
|
|
90
|
-
|
|
90
|
+
`../../tokens.md` above "Read by their family only".
|
|
@@ -28,18 +28,18 @@ topics.
|
|
|
28
28
|
|
|
29
29
|
## 2. Read
|
|
30
30
|
|
|
31
|
-
1.
|
|
32
|
-
2.
|
|
31
|
+
1. `../../guidelines/index.md`.
|
|
32
|
+
2. `../../guidelines/composition.md`, always.
|
|
33
33
|
3. The topic of step 1. Add `layout-alignment.md` and `shell-composition.md`
|
|
34
34
|
when the screen places controls in a row or in the application frame.
|
|
35
35
|
4. Add `errors-and-conflicts.md` and `reading-permissions.md` when the screen
|
|
36
36
|
writes data or reads under a role.
|
|
37
37
|
5. When the screen writes an element of its own, follow
|
|
38
|
-
|
|
38
|
+
`../../skills/build-own-element/SKILL.md`.
|
|
39
39
|
|
|
40
40
|
## 3. Read each family before writing beside it
|
|
41
41
|
|
|
42
|
-
For each family the screen uses, read
|
|
42
|
+
For each family the screen uses, read `../../<family>.md` — its anatomy,
|
|
43
43
|
its slots, its axes (CP-01). When the family names a slot for an element, the
|
|
44
44
|
element stands in that slot.
|
|
45
45
|
|
|
@@ -65,12 +65,12 @@ element stands in that slot.
|
|
|
65
65
|
rows is a `data-grid`, which windows its rows (LP-14).
|
|
66
66
|
- Where no anatomy answers the problem, the screen writes an element of its
|
|
67
67
|
own instead of bending a family into a shape it does not have (CP-04). That
|
|
68
|
-
element is built with
|
|
68
|
+
element is built with `../../skills/build-own-element/SKILL.md`.
|
|
69
69
|
|
|
70
70
|
## 5. Waits
|
|
71
71
|
|
|
72
72
|
Every region filled by a request and every control that starts one follow
|
|
73
|
-
|
|
73
|
+
`../../skills/waiting-states/SKILL.md`.
|
|
74
74
|
|
|
75
75
|
## 6. Done
|
|
76
76
|
|
|
@@ -12,20 +12,20 @@ A review answers one question per rule read: does the screen pass the rule's
|
|
|
12
12
|
|
|
13
13
|
1. List the screen's files: its component, its template, its stylesheet and
|
|
14
14
|
the requests it starts.
|
|
15
|
-
2. List the families it imports, and read
|
|
15
|
+
2. List the families it imports, and read `../../<family>.md` for each.
|
|
16
16
|
3. List the elements of the screen's own: every element that is not a family,
|
|
17
17
|
with the CSS that paints it.
|
|
18
18
|
4. Classify the screen with the table in step 1 of
|
|
19
|
-
|
|
19
|
+
`../../skills/compose-screen/SKILL.md`.
|
|
20
20
|
|
|
21
21
|
## 2. Read
|
|
22
22
|
|
|
23
|
-
1.
|
|
24
|
-
|
|
23
|
+
1. `../../guidelines/index.md` and
|
|
24
|
+
`../../guidelines/composition.md`.
|
|
25
25
|
2. The topics of the classification, and each topic whose `triggers` the
|
|
26
26
|
screen matches.
|
|
27
27
|
3. `own-elements.md` when step 1 listed an element of the screen's own.
|
|
28
|
-
4.
|
|
28
|
+
4. `../../skills/waiting-states/SKILL.md` when the screen starts a
|
|
29
29
|
request.
|
|
30
30
|
|
|
31
31
|
## 3. Sweep the code
|
|
@@ -65,6 +65,6 @@ deviation. The screen passes when no `MUST` finding remains.
|
|
|
65
65
|
1. Fix every `MUST` finding, then each `SHOULD` finding the request covers.
|
|
66
66
|
2. A fix uses what the family offers — its state, its slot, its axis — and
|
|
67
67
|
never CSS on its parts.
|
|
68
|
-
3. A literal becomes a token of the group
|
|
68
|
+
3. A literal becomes a token of the group `../../tokens.md` lists for
|
|
69
69
|
that decision.
|
|
70
70
|
4. Run the searches of step 3 again on the changed files: none finds anything.
|
|
@@ -17,7 +17,7 @@ Take the first row that reaches the change.
|
|
|
17
17
|
| The brand colour, or the colour of one intent | a seed: `--slotted-seed-accent` or another name of `SEED_NAMES` | the theme's `seeds`, or a scope |
|
|
18
18
|
| Light, dark, high contrast, or the system's preference | the scheme: `light`, `dark`, `high-contrast`, `system` | `data-slotted-scheme`, or the scheme of the `ThemeScope` component from `@slotted/react/theme` |
|
|
19
19
|
| How tight controls and rows are | the density: `comfortable`, `compact`, `dense` | `data-slotted-density`, or the density of the `ThemeScope` component from `@slotted/react/theme` |
|
|
20
|
-
| Spacing, corners, type, lines, shadows or motion | a token of a group in
|
|
20
|
+
| Spacing, corners, type, lines, shadows or motion | a token of a group in `../../tokens.md` | the theme's `base`; `schemes` for a value per scheme; `densities` per density |
|
|
21
21
|
| One family's look | a token the family's page lists under Tokens | the theme's `components` |
|
|
22
22
|
| What no token reaches | a theme rule | the theme's `rules` |
|
|
23
23
|
|
|
@@ -12,8 +12,8 @@ pending screen occupy the same boxes.
|
|
|
12
12
|
The failure this skill prevents: three grey bars of equal length where a table,
|
|
13
13
|
a card and a list should have been.
|
|
14
14
|
|
|
15
|
-
Rules cited here are in
|
|
16
|
-
named here has its page:
|
|
15
|
+
Rules cited here are in `../../guidelines/async-feedback.md`. Each family
|
|
16
|
+
named here has its page: `../../<family>.md`.
|
|
17
17
|
|
|
18
18
|
## 1. Which indicator answers which wait
|
|
19
19
|
|
package/dist/docs/tabs.json
CHANGED
|
@@ -78,6 +78,7 @@
|
|
|
78
78
|
"label",
|
|
79
79
|
"end",
|
|
80
80
|
"dismiss",
|
|
81
|
+
"marker",
|
|
81
82
|
"panel",
|
|
82
83
|
"scroll",
|
|
83
84
|
"actions"
|
|
@@ -106,7 +107,7 @@
|
|
|
106
107
|
"part": "item",
|
|
107
108
|
"element": "div[role=\"presentation\"], or the element the render of Tab returns",
|
|
108
109
|
"required": true,
|
|
109
|
-
"purpose": "One tab and its optional close button. It exists because a button cannot contain a button, and
|
|
110
|
+
"purpose": "One tab and its optional close button. It exists because a button cannot contain a button, and it carries the hover bar under the tab. className and style reach it."
|
|
110
111
|
},
|
|
111
112
|
{
|
|
112
113
|
"part": "tab",
|
|
@@ -138,6 +139,12 @@
|
|
|
138
139
|
"required": false,
|
|
139
140
|
"purpose": "The close button. It has tabindex=\"-1\", so the arrow keys move between tabs only, and it stays in the accessibility tree, so a screen reader can press it. From the keyboard, Delete closes the focused tab, which aria-keyshortcuts on the tab announces."
|
|
140
141
|
},
|
|
142
|
+
{
|
|
143
|
+
"part": "marker",
|
|
144
|
+
"element": "span, aria-hidden",
|
|
145
|
+
"required": false,
|
|
146
|
+
"purpose": "The bar under the selected tab. The list draws one and slides it between tabs; it spans the tab’s content box, never the close button. --slotted-tabs-marker-size, --slotted-tabs-marker-radius and --slotted-tabs-marker-inset shape it, and the hover bar takes the same geometry at --slotted-tabs-hover-marker-opacity."
|
|
147
|
+
},
|
|
141
148
|
{
|
|
142
149
|
"part": "panel",
|
|
143
150
|
"element": "div[role=\"tabpanel\"]",
|
|
@@ -368,7 +375,7 @@
|
|
|
368
375
|
"The paging controls are aria-hidden and outside the Tab sequence, because the arrow keys reach every tab and scroll it into view. Cloudscape’s guidance warns against extra Tab stops between a tab list and its panel.",
|
|
369
376
|
"A list that starts to overflow scrolls the selected tab into view once its paging controls are drawn, so the selected tab is not left behind the end control.",
|
|
370
377
|
"Each tab names its panel with aria-controls and each panel names its tab with aria-labelledby. The ids come from the value, with the characters an id cannot hold escaped rather than replaced, so two values that differ only by a space never share a panel.",
|
|
371
|
-
"The selected tab is never shown by colour alone: the marker is a bar
|
|
378
|
+
"The selected tab is never shown by colour alone: the marker is a bar never thinner than a thick border, which stays visible in the high-contrast scheme, where the theme paints every surface Canvas and the fill of the contained variant disappears.",
|
|
372
379
|
"A panel carries tabindex=\"0\", so the Tab key reaches it from the list. The pattern permits that stop even when the panel’s first content is focusable."
|
|
373
380
|
]
|
|
374
381
|
}
|
|
@@ -414,7 +421,6 @@
|
|
|
414
421
|
"--slotted-radius-full",
|
|
415
422
|
"--slotted-radius-md",
|
|
416
423
|
"--slotted-radius-sm",
|
|
417
|
-
"--slotted-radius-xs",
|
|
418
424
|
"--slotted-shadow-xs",
|
|
419
425
|
"--slotted-space-1",
|
|
420
426
|
"--slotted-space-2",
|
|
@@ -438,8 +444,12 @@
|
|
|
438
444
|
"--slotted-tabs-hover-background",
|
|
439
445
|
"--slotted-tabs-hover-color",
|
|
440
446
|
"--slotted-tabs-hover-marker-color",
|
|
447
|
+
"--slotted-tabs-hover-marker-opacity",
|
|
441
448
|
"--slotted-tabs-list-gap",
|
|
442
449
|
"--slotted-tabs-marker-color",
|
|
450
|
+
"--slotted-tabs-marker-inset",
|
|
451
|
+
"--slotted-tabs-marker-radius",
|
|
452
|
+
"--slotted-tabs-marker-size",
|
|
443
453
|
"--slotted-tabs-scroll-color",
|
|
444
454
|
"--slotted-tabs-selected-color",
|
|
445
455
|
"--slotted-tabs-track-color",
|
package/dist/docs/tabs.md
CHANGED
|
@@ -110,6 +110,7 @@ export default function TabsBasic() {
|
|
|
110
110
|
| `label` | span | yes |
|
|
111
111
|
| `end` | span | no |
|
|
112
112
|
| `dismiss` | button | no |
|
|
113
|
+
| `marker` | span, aria-hidden | no |
|
|
113
114
|
| `panel` | div[role="tabpanel"] | yes |
|
|
114
115
|
| `scroll` | button | no |
|
|
115
116
|
| `actions` | div, or the element render returns | no |
|
|
@@ -174,12 +175,12 @@ export default function TabsBasic() {
|
|
|
174
175
|
- The paging controls are aria-hidden and outside the Tab sequence, because the arrow keys reach every tab and scroll it into view. Cloudscape’s guidance warns against extra Tab stops between a tab list and its panel.
|
|
175
176
|
- A list that starts to overflow scrolls the selected tab into view once its paging controls are drawn, so the selected tab is not left behind the end control.
|
|
176
177
|
- Each tab names its panel with aria-controls and each panel names its tab with aria-labelledby. The ids come from the value, with the characters an id cannot hold escaped rather than replaced, so two values that differ only by a space never share a panel.
|
|
177
|
-
- The selected tab is never shown by colour alone: the marker is a bar
|
|
178
|
+
- The selected tab is never shown by colour alone: the marker is a bar never thinner than a thick border, which stays visible in the high-contrast scheme, where the theme paints every surface Canvas and the fill of the contained variant disappears.
|
|
178
179
|
- A panel carries tabindex="0", so the Tab key reaches it from the list. The pattern permits that stop even when the panel’s first content is focusable.
|
|
179
180
|
|
|
180
181
|
## Tokens
|
|
181
182
|
|
|
182
|
-
`--slotted-border-strong`, `--slotted-border-subtle`, `--slotted-border-width-thick`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-font-weight`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-inner-size-lg`, `--slotted-control-inner-size-md`, `--slotted-control-inner-size-sm`, `--slotted-control-letter-spacing`, `--slotted-control-line-height`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-radius`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-duration-short`, `--slotted-easing-enter`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-radius-full`, `--slotted-radius-md`, `--slotted-radius-sm`, `--slotted-
|
|
183
|
+
`--slotted-border-strong`, `--slotted-border-subtle`, `--slotted-border-width-thick`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-font-weight`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-inner-size-lg`, `--slotted-control-inner-size-md`, `--slotted-control-inner-size-sm`, `--slotted-control-letter-spacing`, `--slotted-control-line-height`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-radius`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-duration-short`, `--slotted-easing-enter`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-radius-full`, `--slotted-radius-md`, `--slotted-radius-sm`, `--slotted-shadow-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-4`, `--slotted-space-6`, `--slotted-surface`, `--slotted-surface-sunken`, `--slotted-tabs-actions-gap`, `--slotted-tabs-active-background`, `--slotted-tabs-active-marker-color`, `--slotted-tabs-color`, `--slotted-tabs-contained-background`, `--slotted-tabs-contained-selected-background`, `--slotted-tabs-dismiss-active-background`, `--slotted-tabs-dismiss-active-color`, `--slotted-tabs-dismiss-color`, `--slotted-tabs-dismiss-hover-background`, `--slotted-tabs-dismiss-hover-color`, `--slotted-tabs-fade-size`, `--slotted-tabs-gap`, `--slotted-tabs-hover-background`, `--slotted-tabs-hover-color`, `--slotted-tabs-hover-marker-color`, `--slotted-tabs-hover-marker-opacity`, `--slotted-tabs-list-gap`, `--slotted-tabs-marker-color`, `--slotted-tabs-marker-inset`, `--slotted-tabs-marker-radius`, `--slotted-tabs-marker-size`, `--slotted-tabs-scroll-color`, `--slotted-tabs-selected-color`, `--slotted-tabs-track-color`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-solid`, `--slotted-tone-accent-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`
|
|
183
184
|
|
|
184
185
|
## Examples
|
|
185
186
|
|