@tempoxyz/ds 0.3.11 → 0.3.13
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 +7 -6
- package/dist/docs/AGENTS.md +8 -5
- package/dist/docs/index.md +143 -135
- package/dist/docs/marketing/introduction/getting-started.md +241 -0
- package/dist/docs/{components → product/components}/accordion.md +8 -8
- package/dist/docs/{components → product/components}/address-card.md +5 -5
- package/dist/docs/{components → product/components}/agent-logo.md +5 -5
- package/dist/docs/{components → product/components}/alert-dialog.md +11 -11
- package/dist/docs/{components → product/components}/alert.md +11 -11
- package/dist/docs/{components → product/components}/amount-input.md +13 -13
- package/dist/docs/{components → product/components}/amount.md +8 -8
- package/dist/docs/{components → product/components}/app-shell.md +13 -13
- package/dist/docs/{components → product/components}/asset-chip.md +11 -11
- package/dist/docs/{components → product/components}/autocomplete.md +10 -9
- package/dist/docs/{components → product/components}/avatar.md +8 -8
- package/dist/docs/{components → product/components}/badge.md +9 -9
- package/dist/docs/{components → product/components}/badged-logo.md +6 -6
- package/dist/docs/{components → product/components}/banner.md +8 -8
- package/dist/docs/{components → product/components}/bar-chart.md +7 -7
- package/dist/docs/{components → product/components}/breadcrumbs.md +8 -8
- package/dist/docs/{components → product/components}/button-group.md +8 -8
- package/dist/docs/{components → product/components}/button.md +17 -17
- package/dist/docs/{components → product/components}/calendar.md +8 -8
- package/dist/docs/{components → product/components}/callout.md +5 -5
- package/dist/docs/{components → product/components}/checkbox-group.md +13 -13
- package/dist/docs/{components → product/components}/checkbox.md +12 -12
- package/dist/docs/{components → product/components}/choice-group.md +14 -14
- package/dist/docs/{components → product/components}/choicebox.md +9 -9
- package/dist/docs/{components → product/components}/code.md +5 -5
- package/dist/docs/{components → product/components}/combobox.md +9 -9
- package/dist/docs/{components → product/components}/container.md +7 -7
- package/dist/docs/{components → product/components}/copy-button.md +13 -13
- package/dist/docs/{components → product/components}/date-picker.md +11 -11
- package/dist/docs/{components → product/components}/dialog.md +17 -17
- package/dist/docs/{components → product/components}/drawer.md +11 -11
- package/dist/docs/{components → product/components}/empty.md +9 -9
- package/dist/docs/{components → product/components}/field.md +14 -14
- package/dist/docs/{components → product/components}/fieldset.md +6 -6
- package/dist/docs/{components → product/components}/frame.md +9 -9
- package/dist/docs/{components → product/components}/gauge.md +7 -7
- package/dist/docs/{components → product/components}/get-started-visual.md +4 -4
- package/dist/docs/{components → product/components}/grid.md +7 -7
- package/dist/docs/{components → product/components}/hero-visual.md +4 -4
- package/dist/docs/{components → product/components}/hex.md +9 -9
- package/dist/docs/{components → product/components}/icon-tile.md +8 -8
- package/dist/docs/{components → product/components}/identicon.md +7 -7
- package/dist/docs/{components → product/components}/inline.md +7 -7
- package/dist/docs/{components → product/components}/inset.md +8 -8
- package/dist/docs/{components → product/components}/kbd.md +8 -8
- package/dist/docs/{components → product/components}/list-group.md +24 -24
- package/dist/docs/{components → product/components}/loading-dots.md +8 -8
- package/dist/docs/{components → product/components}/menu.md +14 -14
- package/dist/docs/{components → product/components}/native-select.md +7 -7
- package/dist/docs/{components → product/components}/network-logo.md +7 -7
- package/dist/docs/{components → product/components}/number-field.md +8 -8
- package/dist/docs/{components → product/components}/otp-field.md +9 -9
- package/dist/docs/{components → product/components}/pagination.md +8 -8
- package/dist/docs/{components → product/components}/popover.md +11 -11
- package/dist/docs/{components → product/components}/progress.md +10 -10
- package/dist/docs/{components → product/components}/qr.md +8 -8
- package/dist/docs/{components → product/components}/radio-group.md +10 -10
- package/dist/docs/{components → product/components}/secret-value.md +8 -8
- package/dist/docs/{components → product/components}/select.md +13 -13
- package/dist/docs/{components → product/components}/separator.md +7 -7
- package/dist/docs/{components → product/components}/sidebar-menu.md +11 -11
- package/dist/docs/{components → product/components}/skeleton.md +9 -9
- package/dist/docs/{components → product/components}/slider.md +8 -8
- package/dist/docs/{components → product/components}/snippet.md +10 -10
- package/dist/docs/{components → product/components}/spinner.md +12 -12
- package/dist/docs/{components → product/components}/split-bar.md +5 -5
- package/dist/docs/{components → product/components}/split-button.md +11 -11
- package/dist/docs/{components → product/components}/stack.md +8 -8
- package/dist/docs/{components → product/components}/status-chip.md +7 -7
- package/dist/docs/{components → product/components}/status-indicator.md +6 -6
- package/dist/docs/{components → product/components}/status-row.md +7 -7
- package/dist/docs/{components → product/components}/stepper.md +9 -9
- package/dist/docs/{components → product/components}/success-hero.md +5 -5
- package/dist/docs/{components → product/components}/surface.md +11 -11
- package/dist/docs/{components → product/components}/switch.md +11 -11
- package/dist/docs/{components → product/components}/table.md +16 -16
- package/dist/docs/{components → product/components}/tabs.md +11 -11
- package/dist/docs/{components → product/components}/tempo-logo.md +4 -4
- package/dist/docs/{components → product/components}/text-input.md +14 -14
- package/dist/docs/{components → product/components}/textarea.md +7 -7
- package/dist/docs/{components → product/components}/toast.md +11 -11
- package/dist/docs/{components → product/components}/token-logo.md +16 -16
- package/dist/docs/{components → product/components}/token.md +10 -10
- package/dist/docs/{components → product/components}/tooltip.md +11 -11
- package/dist/docs/{components → product/components}/verification-code.md +4 -4
- package/dist/docs/{components → product/components}/visual.md +5 -5
- package/dist/docs/product/components.md +203 -0
- package/dist/docs/{foundations → product/foundations}/accessibility.md +16 -16
- package/dist/docs/{foundations → product/foundations}/agents.md +17 -17
- package/dist/docs/{foundations → product/foundations}/color.md +7 -7
- package/dist/docs/{foundations → product/foundations}/content/tone.md +7 -7
- package/dist/docs/{foundations → product/foundations}/content/voice.md +2 -2
- package/dist/docs/{foundations → product/foundations}/content/writing-style.md +8 -8
- package/dist/docs/{foundations → product/foundations}/iconography.md +11 -11
- package/dist/docs/{foundations → product/foundations}/intent.md +28 -28
- package/dist/docs/{foundations → product/foundations}/layout.md +22 -22
- package/dist/docs/product/foundations/linter.md +496 -0
- package/dist/docs/{foundations → product/foundations}/motion.md +7 -7
- package/dist/docs/{foundations → product/foundations}/radius-and-padding.md +3 -3
- package/dist/docs/{foundations → product/foundations}/typography.md +4 -4
- package/dist/docs/{introduction → product/introduction}/faq.md +22 -21
- package/dist/docs/{introduction → product/introduction}/getting-started.md +4 -4
- package/dist/docs/{patterns → product/patterns}/blockchain-values.md +20 -20
- package/dist/docs/{patterns → product/patterns}/dashboards.md +28 -28
- package/dist/docs/{patterns → product/patterns}/destructive-actions.md +16 -16
- package/dist/docs/{patterns → product/patterns}/empty-states.md +14 -14
- package/dist/docs/{patterns → product/patterns}/errors-and-validation.md +23 -23
- package/dist/docs/{patterns → product/patterns}/feedback-and-status.md +31 -31
- package/dist/docs/{patterns → product/patterns}/forms.md +24 -24
- package/dist/docs/{patterns → product/patterns}/loading.md +19 -19
- package/dist/docs/{patterns → product/patterns}/navigation.md +23 -23
- package/dist/docs/{patterns → product/patterns}/payments.md +20 -20
- package/dist/docs/{patterns → product/patterns}/responsive-layout.md +23 -23
- package/dist/docs/{patterns → product/patterns}/tables-and-lists.md +19 -19
- package/dist/docs/{products → product/products}/tempo-console.md +12 -12
- package/dist/docs/{products → product/products}/tempo-performance.md +11 -11
- package/dist/docs/{products → product/products}/tempo-wallet.md +12 -12
- package/dist/marketing/index.d.ts +4 -0
- package/dist/marketing/index.d.ts.map +1 -0
- package/dist/marketing/index.js +4 -0
- package/dist/marketing/index.js.map +1 -0
- package/dist/marketing/index.js.zyzz.json +1 -0
- package/dist/marketing/vars.d.ts +907 -0
- package/dist/marketing/vars.d.ts.map +1 -0
- package/dist/marketing/vars.js +15 -0
- package/dist/marketing/vars.js.map +1 -0
- package/dist/marketing/vars.js.zyzz.json +1 -0
- package/dist/marketing/zyzz.config.d.ts +4512 -0
- package/dist/marketing/zyzz.config.d.ts.map +1 -0
- package/dist/marketing/zyzz.config.js +63 -0
- package/dist/marketing/zyzz.config.js.map +1 -0
- package/dist/marketing/zyzz.config.js.zyzz.json +1 -0
- package/dist/oxlint/index.d.ts +12 -1
- package/dist/oxlint/index.d.ts.map +1 -1
- package/dist/oxlint/index.js +39 -1
- package/dist/oxlint/index.js.map +1 -1
- package/dist/oxlint/internal/Docs.d.ts +9 -0
- package/dist/oxlint/internal/Docs.d.ts.map +1 -0
- package/dist/oxlint/internal/Docs.js +15 -0
- package/dist/oxlint/internal/Docs.js.map +1 -0
- package/dist/oxlint/internal/Imports.d.ts +1 -1
- package/dist/oxlint/internal/Imports.d.ts.map +1 -1
- package/dist/oxlint/internal/Imports.js +2 -0
- package/dist/oxlint/internal/Imports.js.map +1 -1
- package/dist/oxlint/internal/Styles.d.ts +40 -0
- package/dist/oxlint/internal/Styles.d.ts.map +1 -0
- package/dist/oxlint/internal/Styles.js +194 -0
- package/dist/oxlint/internal/Styles.js.map +1 -0
- package/dist/oxlint/internal/Tokens.d.ts +16 -0
- package/dist/oxlint/internal/Tokens.d.ts.map +1 -0
- package/dist/oxlint/internal/Tokens.js +39 -0
- package/dist/oxlint/internal/Tokens.js.map +1 -0
- package/dist/oxlint/rules/NoCrossSurface.d.ts +2 -2
- package/dist/oxlint/rules/NoCrossSurface.js +3 -3
- package/dist/oxlint/rules/NoCrossSurface.js.map +1 -1
- package/dist/oxlint/rules/NoCustomValues.d.ts +11 -0
- package/dist/oxlint/rules/NoCustomValues.d.ts.map +1 -0
- package/dist/oxlint/rules/NoCustomValues.js +150 -0
- package/dist/oxlint/rules/NoCustomValues.js.map +1 -0
- package/dist/oxlint/rules/NoSingleKeyShortcuts.d.ts +11 -0
- package/dist/oxlint/rules/NoSingleKeyShortcuts.d.ts.map +1 -0
- package/dist/oxlint/rules/NoSingleKeyShortcuts.js +158 -0
- package/dist/oxlint/rules/NoSingleKeyShortcuts.js.map +1 -0
- package/dist/oxlint/rules/PreferComponent.d.ts +3 -2
- package/dist/oxlint/rules/PreferComponent.d.ts.map +1 -1
- package/dist/oxlint/rules/PreferComponent.js +11 -4
- package/dist/oxlint/rules/PreferComponent.js.map +1 -1
- package/dist/oxlint/rules/PreferLayout.d.ts +9 -0
- package/dist/oxlint/rules/PreferLayout.d.ts.map +1 -0
- package/dist/oxlint/rules/PreferLayout.js +90 -0
- package/dist/oxlint/rules/PreferLayout.js.map +1 -0
- package/dist/oxlint/rules/PreferProgress.d.ts +9 -0
- package/dist/oxlint/rules/PreferProgress.d.ts.map +1 -0
- package/dist/oxlint/rules/PreferProgress.js +43 -0
- package/dist/oxlint/rules/PreferProgress.js.map +1 -0
- package/dist/oxlint/rules/PreferSurface.d.ts +9 -0
- package/dist/oxlint/rules/PreferSurface.d.ts.map +1 -0
- package/dist/oxlint/rules/PreferSurface.js +55 -0
- package/dist/oxlint/rules/PreferSurface.js.map +1 -0
- package/dist/oxlint/rules/RequireAccessibleName.d.ts.map +1 -1
- package/dist/oxlint/rules/RequireAccessibleName.js +3 -1
- package/dist/oxlint/rules/RequireAccessibleName.js.map +1 -1
- package/dist/oxlint/rules/RequireScrollRegion.d.ts +11 -0
- package/dist/oxlint/rules/RequireScrollRegion.d.ts.map +1 -0
- package/dist/oxlint/rules/RequireScrollRegion.js +71 -0
- package/dist/oxlint/rules/RequireScrollRegion.js.map +1 -0
- package/dist/web/icons/index.js.zyzz.json +1 -0
- package/package.json +6 -1
- package/src/marketing/README.md +21 -0
- package/src/marketing/index.ts +3 -0
- package/src/marketing/vars.ts +751 -0
- package/src/marketing/zyzz.config.ts +376 -0
- package/src/oxlint/index.ts +40 -1
- package/src/oxlint/internal/Docs.ts +18 -0
- package/src/oxlint/internal/Imports.ts +2 -1
- package/src/oxlint/internal/Styles.ts +240 -0
- package/src/oxlint/internal/Tokens.ts +43 -0
- package/src/oxlint/rules/NoCrossSurface.ts +3 -3
- package/src/oxlint/rules/NoCustomValues.ts +170 -0
- package/src/oxlint/rules/NoSingleKeyShortcuts.ts +190 -0
- package/src/oxlint/rules/PreferComponent.ts +11 -4
- package/src/oxlint/rules/PreferLayout.ts +96 -0
- package/src/oxlint/rules/PreferProgress.ts +49 -0
- package/src/oxlint/rules/PreferSurface.ts +70 -0
- package/src/oxlint/rules/RequireAccessibleName.ts +3 -1
- package/src/oxlint/rules/RequireScrollRegion.ts +92 -0
- package/dist/docs/components.md +0 -203
- package/dist/docs/foundations/linter.md +0 -296
|
@@ -185,17 +185,17 @@ import { Checkbox } from '@tempoxyz/ds'
|
|
|
185
185
|
|
|
186
186
|
### When Not to Use
|
|
187
187
|
|
|
188
|
-
* Use [Switch](
|
|
189
|
-
* Use [CheckboxGroup](
|
|
190
|
-
* If only one of several options can be chosen, use [RadioGroup](
|
|
191
|
-
* If each option needs an icon or a description, use `Choicebox.Checkbox` from [Choicebox](
|
|
188
|
+
* Use [Switch](switch.md) for a setting that applies immediately.
|
|
189
|
+
* Use [CheckboxGroup](checkbox-group.md) for several related options that share one value array.
|
|
190
|
+
* If only one of several options can be chosen, use [RadioGroup](radio-group.md) or [ChoiceGroup](choice-group.md).
|
|
191
|
+
* If each option needs an icon or a description, use `Choicebox.Checkbox` from [Choicebox](choicebox.md).
|
|
192
192
|
|
|
193
193
|
### Choose Checkbox or Switch by When It Applies
|
|
194
194
|
|
|
195
195
|
* **Checkbox (on submit):** Applies when the form is submitted.
|
|
196
196
|
* **Switch (on change):** Applies immediately, such as Payment notifications.
|
|
197
197
|
|
|
198
|
-
Don't put a [Switch](
|
|
198
|
+
Don't put a [Switch](switch.md) in a form that ends with Save, or a checkbox in a settings list that saves on change.
|
|
199
199
|
|
|
200
200
|
### Write the Label as the Checked Statement
|
|
201
201
|
|
|
@@ -247,7 +247,7 @@ export function Demo() {
|
|
|
247
247
|
|
|
248
248
|
### Make the Label Toggle the Box
|
|
249
249
|
|
|
250
|
-
Pair the checkbox with `Field.Item` and `Field.Label` from [Field](
|
|
250
|
+
Pair the checkbox with `Field.Item` and `Field.Label` from [Field](field.md), or wrap both in a `<label>`. Pressing the text then toggles the box.
|
|
251
251
|
|
|
252
252
|
**Do:** Put the checkbox and its `Field.Label` in one `Field.Item`.
|
|
253
253
|
|
|
@@ -299,7 +299,7 @@ namespace styles {
|
|
|
299
299
|
|
|
300
300
|
### Use Indeterminate for Partial Selection Only
|
|
301
301
|
|
|
302
|
-
Inside a [CheckboxGroup](
|
|
302
|
+
Inside a [CheckboxGroup](checkbox-group.md), set `parent` instead and let the group manage the state.
|
|
303
303
|
|
|
304
304
|
**Do:** Set `indeterminate` on a box that controls others while only some are checked.
|
|
305
305
|
|
|
@@ -446,22 +446,22 @@ The check animates in with a slight overshoot. Under `prefers-reduced-motion: re
|
|
|
446
446
|
|
|
447
447
|
## Related
|
|
448
448
|
|
|
449
|
-
[CheckboxGroup](
|
|
449
|
+
[CheckboxGroup](checkbox-group.md)
|
|
450
450
|
|
|
451
451
|
Use for several related checkboxes.
|
|
452
452
|
|
|
453
|
-
[Switch](
|
|
453
|
+
[Switch](switch.md)
|
|
454
454
|
|
|
455
455
|
Use for settings that apply immediately.
|
|
456
456
|
|
|
457
|
-
[Field](
|
|
457
|
+
[Field](field.md)
|
|
458
458
|
|
|
459
459
|
Use for the label and description.
|
|
460
460
|
|
|
461
|
-
[Choicebox](
|
|
461
|
+
[Choicebox](choicebox.md)
|
|
462
462
|
|
|
463
463
|
Use for options that need descriptions.
|
|
464
464
|
|
|
465
|
-
[Forms](
|
|
465
|
+
[Forms](../patterns/forms.md)
|
|
466
466
|
|
|
467
467
|
Covers placing checkboxes in a form.
|
|
@@ -214,12 +214,12 @@ import { ChoiceGroup } from '@tempoxyz/ds'
|
|
|
214
214
|
|
|
215
215
|
### When Not to Use
|
|
216
216
|
|
|
217
|
-
* If options need longer labels or are submitted with a form, use [RadioGroup](
|
|
218
|
-
* Use [Select](
|
|
219
|
-
* Use [Tabs](
|
|
220
|
-
* If each option needs an icon and a description, use [Choicebox](
|
|
221
|
-
* Use [Switch](
|
|
222
|
-
* Use [Button](
|
|
217
|
+
* If options need longer labels or are submitted with a form, use [RadioGroup](radio-group.md).
|
|
218
|
+
* Use [Select](select.md) for many options, or when space is limited.
|
|
219
|
+
* Use [Tabs](tabs.md) to switch between panels, such as Overview, Activity, and Settings.
|
|
220
|
+
* If each option needs an icon and a description, use [Choicebox](choicebox.md).
|
|
221
|
+
* Use [Switch](switch.md) for an on or off setting, not On and Off segments.
|
|
222
|
+
* Use [Button](button.md) for actions such as Send, Receive, and Swap.
|
|
223
223
|
|
|
224
224
|
### Keep Options Few and Short
|
|
225
225
|
|
|
@@ -321,7 +321,7 @@ export function Demo() {
|
|
|
321
321
|
|
|
322
322
|
### Apply the Choice Immediately
|
|
323
323
|
|
|
324
|
-
If the choice waits for a form submit, use [RadioGroup](
|
|
324
|
+
If the choice waits for a form submit, use [RadioGroup](radio-group.md).
|
|
325
325
|
|
|
326
326
|
**Do:** Update the view when the selection changes, such as redrawing the chart for 7D.
|
|
327
327
|
|
|
@@ -381,9 +381,9 @@ namespace styles {
|
|
|
381
381
|
|
|
382
382
|
### Match the Height of Nearby Controls
|
|
383
383
|
|
|
384
|
-
`small`, `medium`, and `large` tracks are 32, 48, and 56px tall. A `medium` track fills its row and gives each item an equal width, as tall as [TextInput](
|
|
384
|
+
`small`, `medium`, and `large` tracks are 32, 48, and 56px tall. A `medium` track fills its row and gives each item an equal width, as tall as [TextInput](text-input.md).
|
|
385
385
|
|
|
386
|
-
**Do:** Use `small` in a dashboard toolbar beside a small [Select](
|
|
386
|
+
**Do:** Use `small` in a dashboard toolbar beside a small [Select](select.md).
|
|
387
387
|
|
|
388
388
|
```tsx
|
|
389
389
|
/**
|
|
@@ -495,22 +495,22 @@ Under `prefers-reduced-motion: reduce`, the pill moves without sliding and items
|
|
|
495
495
|
|
|
496
496
|
## Related
|
|
497
497
|
|
|
498
|
-
[RadioGroup](
|
|
498
|
+
[RadioGroup](radio-group.md)
|
|
499
499
|
|
|
500
500
|
Use for one choice in a form.
|
|
501
501
|
|
|
502
|
-
[Tabs](
|
|
502
|
+
[Tabs](tabs.md)
|
|
503
503
|
|
|
504
504
|
Use for switching between panels.
|
|
505
505
|
|
|
506
|
-
[Select](
|
|
506
|
+
[Select](select.md)
|
|
507
507
|
|
|
508
508
|
Use for longer lists.
|
|
509
509
|
|
|
510
|
-
[Choicebox](
|
|
510
|
+
[Choicebox](choicebox.md)
|
|
511
511
|
|
|
512
512
|
Use for options with descriptions.
|
|
513
513
|
|
|
514
|
-
[Dashboards](
|
|
514
|
+
[Dashboards](../patterns/dashboards.md)
|
|
515
515
|
|
|
516
516
|
Covers filters above charts.
|
|
@@ -235,10 +235,10 @@ import { Choicebox } from '@tempoxyz/ds'
|
|
|
235
235
|
|
|
236
236
|
### When Not to Use
|
|
237
237
|
|
|
238
|
-
* If a label alone tells the options apart, use [RadioGroup](
|
|
239
|
-
* Use [ChoiceGroup](
|
|
240
|
-
* Use [Select](
|
|
241
|
-
* Use [Button](
|
|
238
|
+
* If a label alone tells the options apart, use [RadioGroup](radio-group.md).
|
|
239
|
+
* Use [ChoiceGroup](choice-group.md) for a short mode switch, such as a chart's time range.
|
|
240
|
+
* Use [Select](select.md) for more options than fit on screen.
|
|
241
|
+
* Use [Button](button.md) for a single action, and [Menu](menu.md) for actions that need no description.
|
|
242
242
|
|
|
243
243
|
### Pick the Group by What a Tile Does
|
|
244
244
|
|
|
@@ -620,22 +620,22 @@ Pressed tiles scale to `scale.press` (0.98), except under `prefers-reduced-motio
|
|
|
620
620
|
|
|
621
621
|
## Related
|
|
622
622
|
|
|
623
|
-
[RadioGroup](
|
|
623
|
+
[RadioGroup](radio-group.md)
|
|
624
624
|
|
|
625
625
|
Use for one choice with short labels.
|
|
626
626
|
|
|
627
|
-
[CheckboxGroup](
|
|
627
|
+
[CheckboxGroup](checkbox-group.md)
|
|
628
628
|
|
|
629
629
|
Use for several choices with short labels.
|
|
630
630
|
|
|
631
|
-
[ChoiceGroup](
|
|
631
|
+
[ChoiceGroup](choice-group.md)
|
|
632
632
|
|
|
633
633
|
Use for switching a view or mode.
|
|
634
634
|
|
|
635
|
-
[Fieldset](
|
|
635
|
+
[Fieldset](fieldset.md)
|
|
636
636
|
|
|
637
637
|
Use for naming a group with a legend.
|
|
638
638
|
|
|
639
|
-
[Payments](
|
|
639
|
+
[Payments](../patterns/payments.md)
|
|
640
640
|
|
|
641
641
|
Covers choosing a funding or settlement method.
|
|
@@ -50,9 +50,9 @@ import { Code } from '@tempoxyz/ds'
|
|
|
50
50
|
|
|
51
51
|
### When Not to Use
|
|
52
52
|
|
|
53
|
-
* Use a [Snippet](
|
|
54
|
-
* Use [Kbd](
|
|
55
|
-
* Use a [Badge](
|
|
53
|
+
* Use a [Snippet](snippet.md) for a command that people copy or a block of code.
|
|
54
|
+
* Use [Kbd](kbd.md) for keys and shortcuts.
|
|
55
|
+
* Use a [Badge](badge.md) for a status or an attribute.
|
|
56
56
|
|
|
57
57
|
### Keep Code Short
|
|
58
58
|
|
|
@@ -91,10 +91,10 @@ Code renders a native `<code>` element, which screen readers read as part of the
|
|
|
91
91
|
|
|
92
92
|
## Related
|
|
93
93
|
|
|
94
|
-
[Snippet](
|
|
94
|
+
[Snippet](snippet.md)
|
|
95
95
|
|
|
96
96
|
Use for commands that people copy.
|
|
97
97
|
|
|
98
|
-
[Kbd](
|
|
98
|
+
[Kbd](kbd.md)
|
|
99
99
|
|
|
100
100
|
Use for keys and shortcuts.
|
|
@@ -317,10 +317,10 @@ import { Combobox } from '@tempoxyz/ds'
|
|
|
317
317
|
|
|
318
318
|
### When Not to Use
|
|
319
319
|
|
|
320
|
-
* If people can scan the whole list without typing, use [Select](
|
|
321
|
-
* If any typed text is a valid value, such as a recipient address, use [Autocomplete](
|
|
322
|
-
* Use [RadioGroup](
|
|
323
|
-
* Use [CheckboxGroup](
|
|
320
|
+
* If people can scan the whole list without typing, use [Select](select.md).
|
|
321
|
+
* If any typed text is a valid value, such as a recipient address, use [Autocomplete](autocomplete.md).
|
|
322
|
+
* Use [RadioGroup](radio-group.md) or [ChoiceGroup](choice-group.md) for a few options that fit on screen.
|
|
323
|
+
* Use [CheckboxGroup](checkbox-group.md) for several options from a short list.
|
|
324
324
|
|
|
325
325
|
### Keep a Visible Label
|
|
326
326
|
|
|
@@ -918,22 +918,22 @@ DOM focus stays on the input while the arrow keys move the highlight. Chips take
|
|
|
918
918
|
|
|
919
919
|
## Related
|
|
920
920
|
|
|
921
|
-
[Autocomplete](
|
|
921
|
+
[Autocomplete](autocomplete.md)
|
|
922
922
|
|
|
923
923
|
Use for free text with suggestions.
|
|
924
924
|
|
|
925
|
-
[Select](
|
|
925
|
+
[Select](select.md)
|
|
926
926
|
|
|
927
927
|
Use for short lists.
|
|
928
928
|
|
|
929
|
-
[Field](
|
|
929
|
+
[Field](field.md)
|
|
930
930
|
|
|
931
931
|
Use for the label and error.
|
|
932
932
|
|
|
933
|
-
[TokenLogo](
|
|
933
|
+
[TokenLogo](token-logo.md)
|
|
934
934
|
|
|
935
935
|
Use for token icons in items.
|
|
936
936
|
|
|
937
|
-
[Blockchain Values](
|
|
937
|
+
[Blockchain Values](../patterns/blockchain-values.md)
|
|
938
938
|
|
|
939
939
|
Covers showing assets and addresses.
|
|
@@ -133,9 +133,9 @@ import { Container } from '@tempoxyz/ds'
|
|
|
133
133
|
|
|
134
134
|
### When Not to Use
|
|
135
135
|
|
|
136
|
-
* Use [AppShell](
|
|
137
|
-
* Use [Inset](
|
|
138
|
-
* Use [Stack](
|
|
136
|
+
* Use [AppShell](app-shell.md) for pages with persistent navigation. `AppShell.Main` already caps and pads the content column.
|
|
137
|
+
* Use [Inset](inset.md) to pad content inside a region, and [Surface](surface.md) for a card.
|
|
138
|
+
* Use [Stack](stack.md) or [Grid](grid.md) to arrange the content inside the container.
|
|
139
139
|
|
|
140
140
|
### Pick a Size by Content
|
|
141
141
|
|
|
@@ -240,18 +240,18 @@ A container has no role, name, or keyboard behavior.
|
|
|
240
240
|
|
|
241
241
|
## Related
|
|
242
242
|
|
|
243
|
-
[AppShell](
|
|
243
|
+
[AppShell](app-shell.md)
|
|
244
244
|
|
|
245
245
|
Use for pages with a sidebar.
|
|
246
246
|
|
|
247
|
-
[Stack](
|
|
247
|
+
[Stack](stack.md)
|
|
248
248
|
|
|
249
249
|
Use for spacing content inside the container.
|
|
250
250
|
|
|
251
|
-
[Layout](
|
|
251
|
+
[Layout](../foundations/layout.md)
|
|
252
252
|
|
|
253
253
|
Covers widths, spacing, and breakpoints.
|
|
254
254
|
|
|
255
|
-
[Responsive Layout](
|
|
255
|
+
[Responsive Layout](../patterns/responsive-layout.md)
|
|
256
256
|
|
|
257
257
|
Covers adapting pages across breakpoints.
|
|
@@ -50,7 +50,7 @@ namespace styles {
|
|
|
50
50
|
|
|
51
51
|
### Variant
|
|
52
52
|
|
|
53
|
-
Set `variant` to any [Button](
|
|
53
|
+
Set `variant` to any [Button](button.md) variant, such as `tertiary` (default) or `secondary`.
|
|
54
54
|
|
|
55
55
|
```tsx
|
|
56
56
|
import { CopyButton, style } from '@tempoxyz/ds'
|
|
@@ -105,10 +105,10 @@ import { CopyButton } from '@tempoxyz/ds'
|
|
|
105
105
|
|
|
106
106
|
### When Not to Use
|
|
107
107
|
|
|
108
|
-
* Use [Hex](
|
|
109
|
-
* Use [Snippet](
|
|
110
|
-
* Use [SecretValue](
|
|
111
|
-
* Use a [Button](
|
|
108
|
+
* Use [Hex](hex.md) with `copy` for addresses and transaction hashes. It truncates the middle and adds this button.
|
|
109
|
+
* Use [Snippet](snippet.md) for a command or code value.
|
|
110
|
+
* Use [SecretValue](secret-value.md) for API keys and other secrets that stay hidden until revealed.
|
|
111
|
+
* Use a [Button](button.md) for other actions, such as Share or Download.
|
|
112
112
|
|
|
113
113
|
### Place It Right After the Value
|
|
114
114
|
|
|
@@ -413,7 +413,7 @@ namespace styles {
|
|
|
413
413
|
}
|
|
414
414
|
```
|
|
415
415
|
|
|
416
|
-
**Don't:** Add a [Toast](
|
|
416
|
+
**Don't:** Add a [Toast](toast.md) or text such as Copied to clipboard.
|
|
417
417
|
|
|
418
418
|
```tsx
|
|
419
419
|
/**
|
|
@@ -496,7 +496,7 @@ Keep `small` beside body text. Use `medium` or `large` in touch layouts, or besi
|
|
|
496
496
|
|
|
497
497
|
### Let a Clickable Row Copy
|
|
498
498
|
|
|
499
|
-
If a whole row copies on press, handle the copy in the row and pass `copied` to the button. The button shows the confirmation without a second copy. [Snippet](
|
|
499
|
+
If a whole row copies on press, handle the copy in the row and pass `copied` to the button. The button shows the confirmation without a second copy. [Snippet](snippet.md) and [SecretValue](secret-value.md) work this way.
|
|
500
500
|
|
|
501
501
|
**Do:** Pass `copied` so the button confirms the row's copy.
|
|
502
502
|
|
|
@@ -598,7 +598,7 @@ namespace styles {
|
|
|
598
598
|
|
|
599
599
|
## Accessibility
|
|
600
600
|
|
|
601
|
-
A copy button renders an icon-only [Button](
|
|
601
|
+
A copy button renders an icon-only [Button](button.md) with a visually hidden status message. It follows the [WAI-ARIA Authoring Practices button pattern](https://www.w3.org/WAI/ARIA/apg/patterns/button/).
|
|
602
602
|
|
|
603
603
|
### Semantics
|
|
604
604
|
|
|
@@ -621,22 +621,22 @@ A copy button renders an icon-only [Button](/docs/components/button) with a visu
|
|
|
621
621
|
|
|
622
622
|
## Related
|
|
623
623
|
|
|
624
|
-
[Hex](
|
|
624
|
+
[Hex](hex.md)
|
|
625
625
|
|
|
626
626
|
Use for addresses and hashes with copying built in.
|
|
627
627
|
|
|
628
|
-
[Snippet](
|
|
628
|
+
[Snippet](snippet.md)
|
|
629
629
|
|
|
630
630
|
Use for commands and code.
|
|
631
631
|
|
|
632
|
-
[SecretValue](
|
|
632
|
+
[SecretValue](secret-value.md)
|
|
633
633
|
|
|
634
634
|
Use for API keys and secrets.
|
|
635
635
|
|
|
636
|
-
[Button](
|
|
636
|
+
[Button](button.md)
|
|
637
637
|
|
|
638
638
|
Use for other icon-only actions.
|
|
639
639
|
|
|
640
|
-
[Blockchain Values](
|
|
640
|
+
[Blockchain Values](../patterns/blockchain-values.md)
|
|
641
641
|
|
|
642
642
|
Covers showing addresses, hashes, and amounts.
|
|
@@ -129,9 +129,9 @@ import { DatePicker } from '@tempoxyz/ds'
|
|
|
129
129
|
|
|
130
130
|
### When Not to Use
|
|
131
131
|
|
|
132
|
-
* Use [Calendar](
|
|
133
|
-
* Use [TextInput](
|
|
134
|
-
* Use [ChoiceGroup](
|
|
132
|
+
* Use [Calendar](calendar.md) when the grid stays visible, such as in a filter panel.
|
|
133
|
+
* Use [TextInput](text-input.md) for memorable dates far from today, such as a date of birth.
|
|
134
|
+
* Use [ChoiceGroup](choice-group.md) or [Select](select.md) for preset periods, such as 7D or Last 30 days.
|
|
135
135
|
|
|
136
136
|
### Label the Trigger
|
|
137
137
|
|
|
@@ -375,7 +375,7 @@ namespace styles {
|
|
|
375
375
|
|
|
376
376
|
### Match the Fields Around It
|
|
377
377
|
|
|
378
|
-
`DatePicker.Trigger` is as tall as a [TextInput](
|
|
378
|
+
`DatePicker.Trigger` is as tall as a [TextInput](text-input.md), at 48px. Use the same variant as the fields beside it.
|
|
379
379
|
|
|
380
380
|
**Do:** Give the trigger the variant of the inputs in the same row.
|
|
381
381
|
|
|
@@ -469,14 +469,14 @@ A date picker renders a button that opens a calendar in a popup dialog. It follo
|
|
|
469
469
|
|
|
470
470
|
* **DatePicker.Trigger (button):** Announces that it opens a dialog, and whether the dialog is open.
|
|
471
471
|
* **DatePicker.Popup (dialog):** Renders a `dialog` named "Choose date" unless you pass `aria-label`.
|
|
472
|
-
* **DatePicker.Calendar (grid):** Uses the grid semantics described on [Calendar](
|
|
472
|
+
* **DatePicker.Calendar (grid):** Uses the grid semantics described on [Calendar](calendar.md#accessibility).
|
|
473
473
|
* **Target Size (48px):** The trigger is above the 24px WCAG 2.2 minimum.
|
|
474
474
|
|
|
475
475
|
### Keyboard
|
|
476
476
|
|
|
477
477
|
* **Move Focus to the Trigger (Tab):** Moves focus to the trigger.
|
|
478
478
|
* **Open the Popup (Enter or Space):** On the trigger, opens the popup and focuses a day.
|
|
479
|
-
* **Move Through Dates (Arrow keys):** Home, End, Page Up, and Page Down also move, as on [Calendar](
|
|
479
|
+
* **Move Through Dates (Arrow keys):** Home, End, Page Up, and Page Down also move, as on [Calendar](calendar.md#keyboard).
|
|
480
480
|
* **Select a Day (Enter or Space):** On a day, selects it and closes the popup. In `range` mode, the popup closes after the end date.
|
|
481
481
|
* **Move Within the Popup (Tab and Shift+Tab):** Move between the month buttons and the day grid.
|
|
482
482
|
* **Close the Popup (Escape):** Closes the popup without a change, and returns focus to the trigger.
|
|
@@ -493,22 +493,22 @@ When the popup opens, focus moves to the selected day, or today. The popup doesn
|
|
|
493
493
|
|
|
494
494
|
## Related
|
|
495
495
|
|
|
496
|
-
[Calendar](
|
|
496
|
+
[Calendar](calendar.md)
|
|
497
497
|
|
|
498
498
|
Use for an inline month grid.
|
|
499
499
|
|
|
500
|
-
[TextInput](
|
|
500
|
+
[TextInput](text-input.md)
|
|
501
501
|
|
|
502
502
|
Use for typed and native dates.
|
|
503
503
|
|
|
504
|
-
[Popover](
|
|
504
|
+
[Popover](popover.md)
|
|
505
505
|
|
|
506
506
|
Use for other anchored popups.
|
|
507
507
|
|
|
508
|
-
[Field](
|
|
508
|
+
[Field](field.md)
|
|
509
509
|
|
|
510
510
|
Use for labels and errors on other controls.
|
|
511
511
|
|
|
512
|
-
[Forms](
|
|
512
|
+
[Forms](../patterns/forms.md)
|
|
513
513
|
|
|
514
514
|
Covers placing a date among other fields.
|
|
@@ -84,7 +84,7 @@ export function Demo() {
|
|
|
84
84
|
|
|
85
85
|
### Header Layout
|
|
86
86
|
|
|
87
|
-
Set `layout` on `Dialog.Header` to `inline` (default), `stacked`, `centered` or `hero`. A `Dialog.Nav` holds `Dialog.Back` and a [Stepper](
|
|
87
|
+
Set `layout` on `Dialog.Header` to `inline` (default), `stacked`, `centered` or `hero`. A `Dialog.Nav` holds `Dialog.Back` and a [Stepper](stepper.md) above the title.
|
|
88
88
|
|
|
89
89
|
```tsx
|
|
90
90
|
import { Button, ButtonGroup, Dialog, IconTile, Inline, Stepper } from '@tempoxyz/ds'
|
|
@@ -150,7 +150,7 @@ Each screen pairs a size and a header layout with parts from the library.
|
|
|
150
150
|
|
|
151
151
|
### Confirmation
|
|
152
152
|
|
|
153
|
-
Confirms a destructive or irreversible action in an [AlertDialog](
|
|
153
|
+
Confirms a destructive or irreversible action in an [AlertDialog](alert-dialog.md).
|
|
154
154
|
|
|
155
155
|
```tsx
|
|
156
156
|
import { Alert, AlertDialog, Button, ButtonGroup } from '@tempoxyz/ds'
|
|
@@ -937,13 +937,13 @@ import { ButtonGroup, Dialog } from '@tempoxyz/ds'
|
|
|
937
937
|
|
|
938
938
|
### When Not to Use
|
|
939
939
|
|
|
940
|
-
* Use an [AlertDialog](
|
|
941
|
-
* Use a [Drawer](
|
|
942
|
-
* Use a [Popover](
|
|
940
|
+
* Use an [AlertDialog](alert-dialog.md) to confirm a destructive or irreversible action.
|
|
941
|
+
* Use a [Drawer](drawer.md) for long forms, filters, or record details.
|
|
942
|
+
* Use a [Popover](popover.md) for a sentence or one setting anchored to its trigger.
|
|
943
943
|
* Use a page for content that still scrolls at the `large` size.
|
|
944
|
-
* Use a [Toast](
|
|
944
|
+
* Use a [Toast](toast.md) to confirm that an action finished.
|
|
945
945
|
|
|
946
|
-
See [Choosing a Component](
|
|
946
|
+
See [Choosing a Component](../components.md#popups) to compare overlays.
|
|
947
947
|
|
|
948
948
|
### Pick the Size From the Content
|
|
949
949
|
|
|
@@ -1250,7 +1250,7 @@ A backdrop press closes the dialog. Escape and the close controls work in both c
|
|
|
1250
1250
|
|
|
1251
1251
|
### Title With the Task
|
|
1252
1252
|
|
|
1253
|
-
Write a verb and an object, without end punctuation. Reuse the trigger's label, such as Rename wallet. Save questions for an [AlertDialog](
|
|
1253
|
+
Write a verb and an object, without end punctuation. Reuse the trigger's label, such as Rename wallet. Save questions for an [AlertDialog](alert-dialog.md).
|
|
1254
1254
|
|
|
1255
1255
|
### Describe the Effect
|
|
1256
1256
|
|
|
@@ -1262,7 +1262,7 @@ Label the primary action with the title's verb, such as Save name. Use Cancel to
|
|
|
1262
1262
|
|
|
1263
1263
|
### Write One Headline
|
|
1264
1264
|
|
|
1265
|
-
Give each dialog one `Dialog.Title`. Name the groups in the body with a [ListGroup](
|
|
1265
|
+
Give each dialog one `Dialog.Title`. Name the groups in the body with a [ListGroup](list-group.md) heading instead of a second headline.
|
|
1266
1266
|
|
|
1267
1267
|
## Accessibility
|
|
1268
1268
|
|
|
@@ -1275,7 +1275,7 @@ A dialog follows the [WAI-ARIA Authoring Practices modal dialog pattern](https:/
|
|
|
1275
1275
|
* **Dialog.Title (h2):** Names the dialog.
|
|
1276
1276
|
* **Dialog.Description (p):** Describes the dialog.
|
|
1277
1277
|
* **Dialog.Back (button):** A "Back" icon button, first in the focus order.
|
|
1278
|
-
* **Stepper (progressbar):** Name the flow with `aria-label` on the [Stepper](
|
|
1278
|
+
* **Stepper (progressbar):** Name the flow with `aria-label` on the [Stepper](stepper.md).
|
|
1279
1279
|
* **Close Button (closeButton):** A "Close" icon button, last in the focus order.
|
|
1280
1280
|
* **Page Behind (inert):** Ignores pointer input and scroll while open.
|
|
1281
1281
|
|
|
@@ -1303,30 +1303,30 @@ Under reduced motion, the dialog fades in and out without scaling or sliding.
|
|
|
1303
1303
|
|
|
1304
1304
|
## Related
|
|
1305
1305
|
|
|
1306
|
-
[AlertDialog](
|
|
1306
|
+
[AlertDialog](alert-dialog.md)
|
|
1307
1307
|
|
|
1308
1308
|
Use for confirming destructive actions.
|
|
1309
1309
|
|
|
1310
|
-
[ButtonGroup](
|
|
1310
|
+
[ButtonGroup](button-group.md)
|
|
1311
1311
|
|
|
1312
1312
|
Use for the actions in the footer.
|
|
1313
1313
|
|
|
1314
|
-
[Drawer](
|
|
1314
|
+
[Drawer](drawer.md)
|
|
1315
1315
|
|
|
1316
1316
|
Use for long forms and details panels.
|
|
1317
1317
|
|
|
1318
|
-
[Popover](
|
|
1318
|
+
[Popover](popover.md)
|
|
1319
1319
|
|
|
1320
1320
|
Use for anchored, non-blocking content.
|
|
1321
1321
|
|
|
1322
|
-
[Stepper](
|
|
1322
|
+
[Stepper](stepper.md)
|
|
1323
1323
|
|
|
1324
1324
|
Use for progress through the steps of a flow.
|
|
1325
1325
|
|
|
1326
|
-
[Forms](
|
|
1326
|
+
[Forms](../patterns/forms.md)
|
|
1327
1327
|
|
|
1328
1328
|
Covers laying out fields and actions.
|
|
1329
1329
|
|
|
1330
|
-
[Payments](
|
|
1330
|
+
[Payments](../patterns/payments.md)
|
|
1331
1331
|
|
|
1332
1332
|
Covers reviewing a payment before you send it.
|
|
@@ -111,10 +111,10 @@ import { Drawer } from '@tempoxyz/ds'
|
|
|
111
111
|
|
|
112
112
|
### When Not to Use
|
|
113
113
|
|
|
114
|
-
* Use a [Dialog](
|
|
115
|
-
* Use an [AlertDialog](
|
|
116
|
-
* Use a [Popover](
|
|
117
|
-
* Use [AppShell](
|
|
114
|
+
* Use a [Dialog](dialog.md) for a short, focused task, such as Rename wallet.
|
|
115
|
+
* Use an [AlertDialog](alert-dialog.md) to confirm a destructive action.
|
|
116
|
+
* Use a [Popover](popover.md) for content anchored to its trigger on wide screens.
|
|
117
|
+
* Use [AppShell](app-shell.md) for navigation. Below 1024px, its sidebar already opens in a drawer.
|
|
118
118
|
* Use a page for content you'd link to, such as a full transaction record.
|
|
119
119
|
|
|
120
120
|
### Pick an Edge
|
|
@@ -126,7 +126,7 @@ import { Drawer } from '@tempoxyz/ds'
|
|
|
126
126
|
* **Left Edge (left):** Rarely. Use the right edge across a product.
|
|
127
127
|
* **Top (up):** Avoid. It covers the header and sits far from the thumb.
|
|
128
128
|
|
|
129
|
-
Below 640px, change a `right` drawer to `swipeDirection="down"`, to match a [Dialog](
|
|
129
|
+
Below 640px, change a `right` drawer to `swipeDirection="down"`, to match a [Dialog](dialog.md) at that width.
|
|
130
130
|
|
|
131
131
|
### Give Drawers Content That Needs Room
|
|
132
132
|
|
|
@@ -241,7 +241,7 @@ namespace styles {
|
|
|
241
241
|
}
|
|
242
242
|
```
|
|
243
243
|
|
|
244
|
-
**Don't:** Put a short confirmation in a drawer. Use an [AlertDialog](
|
|
244
|
+
**Don't:** Put a short confirmation in a drawer. Use an [AlertDialog](alert-dialog.md).
|
|
245
245
|
|
|
246
246
|
```tsx
|
|
247
247
|
/**
|
|
@@ -945,22 +945,22 @@ A drawer is a modal dialog. It follows the [WAI-ARIA Authoring Practices modal d
|
|
|
945
945
|
|
|
946
946
|
## Related
|
|
947
947
|
|
|
948
|
-
[Dialog](
|
|
948
|
+
[Dialog](dialog.md)
|
|
949
949
|
|
|
950
950
|
Use for short, focused tasks.
|
|
951
951
|
|
|
952
|
-
[Popover](
|
|
952
|
+
[Popover](popover.md)
|
|
953
953
|
|
|
954
954
|
Use for anchored content on wide screens.
|
|
955
955
|
|
|
956
|
-
[AppShell](
|
|
956
|
+
[AppShell](app-shell.md)
|
|
957
957
|
|
|
958
958
|
Use for navigation that collapses into a drawer.
|
|
959
959
|
|
|
960
|
-
[Responsive Layout](
|
|
960
|
+
[Responsive Layout](../patterns/responsive-layout.md)
|
|
961
961
|
|
|
962
962
|
Covers switching layouts at narrow widths.
|
|
963
963
|
|
|
964
|
-
[Tables and Lists](
|
|
964
|
+
[Tables and Lists](../patterns/tables-and-lists.md)
|
|
965
965
|
|
|
966
966
|
Covers opening record details.
|
|
@@ -41,7 +41,7 @@ export function Demo() {
|
|
|
41
41
|
|
|
42
42
|
### Progress
|
|
43
43
|
|
|
44
|
-
Use a [Spinner](
|
|
44
|
+
Use a [Spinner](spinner.md) instead of the icon while the region waits on another task, such as a checkout in another window. Frame it in a `medium` [Surface](surface.md) for a panel.
|
|
45
45
|
|
|
46
46
|
```tsx
|
|
47
47
|
/** An empty state in a medium surface that waits on a checkout in another window. @module */
|
|
@@ -87,15 +87,15 @@ import { Empty } from '@tempoxyz/ds'
|
|
|
87
87
|
|
|
88
88
|
### When Not to Use
|
|
89
89
|
|
|
90
|
-
* Use [Skeleton](
|
|
91
|
-
* Use a `negative` [Alert](
|
|
92
|
-
* Use `Combobox.Empty` of [Combobox](
|
|
90
|
+
* Use [Skeleton](skeleton.md) while the request runs. Show the empty state only after it returns no records.
|
|
91
|
+
* Use a `negative` [Alert](alert.md) with a Retry action if the data fails to load.
|
|
92
|
+
* Use `Combobox.Empty` of [Combobox](combobox.md) or `Autocomplete.Empty` of [Autocomplete](autocomplete.md) for a popup list with no matches.
|
|
93
93
|
|
|
94
94
|
### Explain Why, Then Offer a Next Step
|
|
95
95
|
|
|
96
96
|
* **`Empty.Title`:** States what belongs here.
|
|
97
97
|
* **`Empty.Description`:** States why there is nothing.
|
|
98
|
-
* **`Empty.Actions`:** Holds a [Button](
|
|
98
|
+
* **`Empty.Actions`:** Holds a [Button](button.md) for the next step.
|
|
99
99
|
|
|
100
100
|
**Do:** Say what will appear and offer the action that adds it.
|
|
101
101
|
|
|
@@ -323,18 +323,18 @@ An empty state renders plain elements with no ARIA wiring, in the order you comp
|
|
|
323
323
|
|
|
324
324
|
## Related
|
|
325
325
|
|
|
326
|
-
[Skeleton](
|
|
326
|
+
[Skeleton](skeleton.md)
|
|
327
327
|
|
|
328
328
|
Use for content that is still loading.
|
|
329
329
|
|
|
330
|
-
[Alert](
|
|
330
|
+
[Alert](alert.md)
|
|
331
331
|
|
|
332
332
|
Use for a failed load with a retry.
|
|
333
333
|
|
|
334
|
-
[Button](
|
|
334
|
+
[Button](button.md)
|
|
335
335
|
|
|
336
336
|
Use for the action that fills the state.
|
|
337
337
|
|
|
338
|
-
[Empty States](
|
|
338
|
+
[Empty States](../patterns/empty-states.md)
|
|
339
339
|
|
|
340
340
|
Covers first-use, no-results, and cleared states.
|