@viraui/react 2026.3.11 → 2026.4.1
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/catalog.json +50 -50
- package/dist/components/textarea/textarea.js +2 -2
- package/dist/components/textfield/textfield.js +2 -2
- package/dist/specs/PROTOCOL.md +48 -0
- package/dist/specs/activity-hints.xml +42 -0
- package/dist/specs/components/accordion/a11y.xml +6 -0
- package/dist/specs/components/accordion/meta.xml +20 -0
- package/dist/specs/components/accordion/patterns.xml +9 -0
- package/dist/specs/components/accordion/props.xml +48 -0
- package/dist/specs/components/accordion/usage.xml +8 -0
- package/dist/specs/components/annotate/a11y.xml +6 -0
- package/dist/specs/components/annotate/meta.xml +19 -0
- package/dist/specs/components/annotate/patterns.xml +7 -0
- package/dist/specs/components/annotate/props.xml +88 -0
- package/dist/specs/components/annotate/usage.xml +10 -0
- package/dist/specs/components/autocomplete/a11y.xml +6 -0
- package/dist/specs/components/autocomplete/meta.xml +22 -0
- package/dist/specs/components/autocomplete/patterns.xml +14 -0
- package/dist/specs/components/autocomplete/props.xml +81 -0
- package/dist/specs/components/autocomplete/usage.xml +11 -0
- package/dist/specs/components/avatar/a11y.xml +5 -0
- package/dist/specs/components/avatar/meta.xml +17 -0
- package/dist/specs/components/avatar/patterns.xml +7 -0
- package/dist/specs/components/avatar/props.xml +38 -0
- package/dist/specs/components/avatar/usage.xml +7 -0
- package/dist/specs/components/avatar-group/a11y.xml +6 -0
- package/dist/specs/components/avatar-group/meta.xml +16 -0
- package/dist/specs/components/avatar-group/patterns.xml +7 -0
- package/dist/specs/components/avatar-group/props.xml +39 -0
- package/dist/specs/components/avatar-group/usage.xml +10 -0
- package/dist/specs/components/badge/a11y.xml +7 -0
- package/dist/specs/components/badge/meta.xml +19 -0
- package/dist/specs/components/badge/patterns.xml +7 -0
- package/dist/specs/components/badge/props.xml +37 -0
- package/dist/specs/components/badge/usage.xml +9 -0
- package/dist/specs/components/beam/a11y.xml +7 -0
- package/dist/specs/components/beam/meta.xml +18 -0
- package/dist/specs/components/beam/patterns.xml +7 -0
- package/dist/specs/components/beam/props.xml +90 -0
- package/dist/specs/components/beam/usage.xml +11 -0
- package/dist/specs/components/bleed/a11y.xml +7 -0
- package/dist/specs/components/bleed/meta.xml +18 -0
- package/dist/specs/components/bleed/patterns.xml +7 -0
- package/dist/specs/components/bleed/props.xml +22 -0
- package/dist/specs/components/bleed/usage.xml +10 -0
- package/dist/specs/components/breakpoints/a11y.xml +5 -0
- package/dist/specs/components/breakpoints/meta.xml +17 -0
- package/dist/specs/components/breakpoints/patterns.xml +9 -0
- package/dist/specs/components/breakpoints/props.xml +20 -0
- package/dist/specs/components/breakpoints/usage.xml +9 -0
- package/dist/specs/components/button/a11y.xml +9 -0
- package/dist/specs/components/button/meta.xml +20 -0
- package/dist/specs/components/button/patterns.xml +11 -0
- package/dist/specs/components/button/props.xml +101 -0
- package/dist/specs/components/button/usage.xml +18 -0
- package/dist/specs/components/checkbox/a11y.xml +6 -0
- package/dist/specs/components/checkbox/meta.xml +21 -0
- package/dist/specs/components/checkbox/patterns.xml +7 -0
- package/dist/specs/components/checkbox/props.xml +48 -0
- package/dist/specs/components/checkbox/usage.xml +10 -0
- package/dist/specs/components/chip/a11y.xml +6 -0
- package/dist/specs/components/chip/meta.xml +19 -0
- package/dist/specs/components/chip/patterns.xml +7 -0
- package/dist/specs/components/chip/props.xml +49 -0
- package/dist/specs/components/chip/usage.xml +11 -0
- package/dist/specs/components/clamp-text/a11y.xml +6 -0
- package/dist/specs/components/clamp-text/meta.xml +17 -0
- package/dist/specs/components/clamp-text/patterns.xml +7 -0
- package/dist/specs/components/clamp-text/props.xml +27 -0
- package/dist/specs/components/clamp-text/usage.xml +8 -0
- package/dist/specs/components/dialog/a11y.xml +7 -0
- package/dist/specs/components/dialog/meta.xml +21 -0
- package/dist/specs/components/dialog/patterns.xml +19 -0
- package/dist/specs/components/dialog/props.xml +49 -0
- package/dist/specs/components/dialog/usage.xml +12 -0
- package/dist/specs/components/elevator/a11y.xml +6 -0
- package/dist/specs/components/elevator/meta.xml +16 -0
- package/dist/specs/components/elevator/patterns.xml +7 -0
- package/dist/specs/components/elevator/props.xml +31 -0
- package/dist/specs/components/elevator/usage.xml +8 -0
- package/dist/specs/components/fieldset/a11y.xml +6 -0
- package/dist/specs/components/fieldset/meta.xml +22 -0
- package/dist/specs/components/fieldset/patterns.xml +7 -0
- package/dist/specs/components/fieldset/props.xml +26 -0
- package/dist/specs/components/fieldset/usage.xml +11 -0
- package/dist/specs/components/fit-text/a11y.xml +6 -0
- package/dist/specs/components/fit-text/meta.xml +18 -0
- package/dist/specs/components/fit-text/patterns.xml +7 -0
- package/dist/specs/components/fit-text/props.xml +19 -0
- package/dist/specs/components/fit-text/usage.xml +9 -0
- package/dist/specs/components/glow/a11y.xml +6 -0
- package/dist/specs/components/glow/meta.xml +19 -0
- package/dist/specs/components/glow/patterns.xml +7 -0
- package/dist/specs/components/glow/props.xml +74 -0
- package/dist/specs/components/glow/usage.xml +12 -0
- package/dist/specs/components/grid/a11y.xml +6 -0
- package/dist/specs/components/grid/meta.xml +18 -0
- package/dist/specs/components/grid/patterns.xml +9 -0
- package/dist/specs/components/grid/props.xml +101 -0
- package/dist/specs/components/grid/usage.xml +10 -0
- package/dist/specs/components/icon-button/a11y.xml +9 -0
- package/dist/specs/components/icon-button/meta.xml +18 -0
- package/dist/specs/components/icon-button/patterns.xml +11 -0
- package/dist/specs/components/icon-button/props.xml +95 -0
- package/dist/specs/components/icon-button/usage.xml +14 -0
- package/dist/specs/components/linear-progress/a11y.xml +6 -0
- package/dist/specs/components/linear-progress/meta.xml +21 -0
- package/dist/specs/components/linear-progress/patterns.xml +7 -0
- package/dist/specs/components/linear-progress/props.xml +31 -0
- package/dist/specs/components/linear-progress/usage.xml +11 -0
- package/dist/specs/components/masonry/a11y.xml +6 -0
- package/dist/specs/components/masonry/meta.xml +18 -0
- package/dist/specs/components/masonry/patterns.xml +9 -0
- package/dist/specs/components/masonry/props.xml +32 -0
- package/dist/specs/components/masonry/usage.xml +9 -0
- package/dist/specs/components/menu/a11y.xml +7 -0
- package/dist/specs/components/menu/meta.xml +25 -0
- package/dist/specs/components/menu/patterns.xml +25 -0
- package/dist/specs/components/menu/props.xml +73 -0
- package/dist/specs/components/menu/usage.xml +15 -0
- package/dist/specs/components/meter/a11y.xml +6 -0
- package/dist/specs/components/meter/meta.xml +19 -0
- package/dist/specs/components/meter/patterns.xml +7 -0
- package/dist/specs/components/meter/props.xml +31 -0
- package/dist/specs/components/meter/usage.xml +10 -0
- package/dist/specs/components/popover/a11y.xml +7 -0
- package/dist/specs/components/popover/meta.xml +22 -0
- package/dist/specs/components/popover/patterns.xml +15 -0
- package/dist/specs/components/popover/props.xml +37 -0
- package/dist/specs/components/popover/usage.xml +12 -0
- package/dist/specs/components/progressive-blur/a11y.xml +6 -0
- package/dist/specs/components/progressive-blur/meta.xml +17 -0
- package/dist/specs/components/progressive-blur/patterns.xml +7 -0
- package/dist/specs/components/progressive-blur/props.xml +28 -0
- package/dist/specs/components/progressive-blur/usage.xml +10 -0
- package/dist/specs/components/radio/a11y.xml +6 -0
- package/dist/specs/components/radio/meta.xml +20 -0
- package/dist/specs/components/radio/patterns.xml +9 -0
- package/dist/specs/components/radio/props.xml +44 -0
- package/dist/specs/components/radio/usage.xml +12 -0
- package/dist/specs/components/select/a11y.xml +6 -0
- package/dist/specs/components/select/meta.xml +21 -0
- package/dist/specs/components/select/patterns.xml +13 -0
- package/dist/specs/components/select/props.xml +83 -0
- package/dist/specs/components/select/usage.xml +14 -0
- package/dist/specs/components/separator/a11y.xml +6 -0
- package/dist/specs/components/separator/meta.xml +18 -0
- package/dist/specs/components/separator/patterns.xml +7 -0
- package/dist/specs/components/separator/props.xml +39 -0
- package/dist/specs/components/separator/usage.xml +8 -0
- package/dist/specs/components/shimmer/a11y.xml +6 -0
- package/dist/specs/components/shimmer/meta.xml +18 -0
- package/dist/specs/components/shimmer/patterns.xml +7 -0
- package/dist/specs/components/shimmer/props.xml +40 -0
- package/dist/specs/components/shimmer/usage.xml +9 -0
- package/dist/specs/components/skeleton/a11y.xml +8 -0
- package/dist/specs/components/skeleton/meta.xml +17 -0
- package/dist/specs/components/skeleton/patterns.xml +8 -0
- package/dist/specs/components/skeleton/props.xml +73 -0
- package/dist/specs/components/skeleton/usage.xml +10 -0
- package/dist/specs/components/slider/a11y.xml +6 -0
- package/dist/specs/components/slider/meta.xml +19 -0
- package/dist/specs/components/slider/patterns.xml +7 -0
- package/dist/specs/components/slider/props.xml +45 -0
- package/dist/specs/components/slider/usage.xml +8 -0
- package/dist/specs/components/spinner/a11y.xml +7 -0
- package/dist/specs/components/spinner/meta.xml +17 -0
- package/dist/specs/components/spinner/patterns.xml +7 -0
- package/dist/specs/components/spinner/props.xml +24 -0
- package/dist/specs/components/spinner/usage.xml +8 -0
- package/dist/specs/components/stack/a11y.xml +6 -0
- package/dist/specs/components/stack/meta.xml +19 -0
- package/dist/specs/components/stack/patterns.xml +7 -0
- package/dist/specs/components/stack/props.xml +94 -0
- package/dist/specs/components/stack/usage.xml +14 -0
- package/dist/specs/components/static-noise/a11y.xml +6 -0
- package/dist/specs/components/static-noise/meta.xml +17 -0
- package/dist/specs/components/static-noise/patterns.xml +7 -0
- package/dist/specs/components/static-noise/props.xml +27 -0
- package/dist/specs/components/static-noise/usage.xml +10 -0
- package/dist/specs/components/surface/a11y.xml +6 -0
- package/dist/specs/components/surface/meta.xml +17 -0
- package/dist/specs/components/surface/patterns.xml +7 -0
- package/dist/specs/components/surface/props.xml +92 -0
- package/dist/specs/components/surface/usage.xml +16 -0
- package/dist/specs/components/switch/a11y.xml +6 -0
- package/dist/specs/components/switch/meta.xml +19 -0
- package/dist/specs/components/switch/patterns.xml +7 -0
- package/dist/specs/components/switch/props.xml +48 -0
- package/dist/specs/components/switch/usage.xml +8 -0
- package/dist/specs/components/tabs/a11y.xml +6 -0
- package/dist/specs/components/tabs/meta.xml +19 -0
- package/dist/specs/components/tabs/patterns.xml +14 -0
- package/dist/specs/components/tabs/props.xml +24 -0
- package/dist/specs/components/tabs/usage.xml +8 -0
- package/dist/specs/components/text/a11y.xml +6 -0
- package/dist/specs/components/text/meta.xml +17 -0
- package/dist/specs/components/text/patterns.xml +7 -0
- package/dist/specs/components/text/props.xml +129 -0
- package/dist/specs/components/text/usage.xml +7 -0
- package/dist/specs/components/textarea/a11y.xml +6 -0
- package/dist/specs/components/textarea/meta.xml +19 -0
- package/dist/specs/components/textarea/patterns.xml +7 -0
- package/dist/specs/components/textarea/props.xml +39 -0
- package/dist/specs/components/textarea/usage.xml +10 -0
- package/dist/specs/components/textfield/a11y.xml +6 -0
- package/dist/specs/components/textfield/meta.xml +21 -0
- package/dist/specs/components/textfield/patterns.xml +7 -0
- package/dist/specs/components/textfield/props.xml +51 -0
- package/dist/specs/components/textfield/usage.xml +9 -0
- package/dist/specs/components/title/a11y.xml +7 -0
- package/dist/specs/components/title/meta.xml +17 -0
- package/dist/specs/components/title/patterns.xml +7 -0
- package/dist/specs/components/title/props.xml +124 -0
- package/dist/specs/components/title/usage.xml +10 -0
- package/dist/specs/components/toast/a11y.xml +7 -0
- package/dist/specs/components/toast/meta.xml +20 -0
- package/dist/specs/components/toast/patterns.xml +15 -0
- package/dist/specs/components/toast/props.xml +42 -0
- package/dist/specs/components/toast/usage.xml +10 -0
- package/dist/specs/components/toggle-button/a11y.xml +6 -0
- package/dist/specs/components/toggle-button/meta.xml +20 -0
- package/dist/specs/components/toggle-button/patterns.xml +7 -0
- package/dist/specs/components/toggle-button/props.xml +61 -0
- package/dist/specs/components/toggle-button/usage.xml +10 -0
- package/dist/specs/components/toggle-group/a11y.xml +6 -0
- package/dist/specs/components/toggle-group/meta.xml +19 -0
- package/dist/specs/components/toggle-group/patterns.xml +9 -0
- package/dist/specs/components/toggle-group/props.xml +15 -0
- package/dist/specs/components/toggle-group/usage.xml +9 -0
- package/dist/specs/components/tooltip/a11y.xml +6 -0
- package/dist/specs/components/tooltip/meta.xml +21 -0
- package/dist/specs/components/tooltip/patterns.xml +12 -0
- package/dist/specs/components/tooltip/props.xml +20 -0
- package/dist/specs/components/tooltip/usage.xml +10 -0
- package/dist/specs/components/typewriter/a11y.xml +7 -0
- package/dist/specs/components/typewriter/meta.xml +18 -0
- package/dist/specs/components/typewriter/patterns.xml +7 -0
- package/dist/specs/components/typewriter/props.xml +43 -0
- package/dist/specs/components/typewriter/usage.xml +11 -0
- package/dist/specs/foundation/attributes.xml +127 -0
- package/dist/specs/foundation/bootstrap.xml +62 -0
- package/dist/specs/foundation/elevation.xml +21 -0
- package/dist/specs/foundation/meta.xml +20 -0
- package/dist/specs/foundation/modules.xml +62 -0
- package/dist/specs/foundation/theme-topics.xml +60 -0
- package/dist/specs/foundation/toggles.xml +25 -0
- package/dist/specs/index.xml +538 -0
- package/dist/specs/patterns/settings-row.xml +19 -0
- package/package.json +12 -11
- package/dist/components/accordion/accordion.guide.json +0 -69
- package/dist/components/annotate/annotate.guide.json +0 -110
- package/dist/components/autocomplete/autocomplete.guide.json +0 -103
- package/dist/components/avatar/avatar.guide.json +0 -53
- package/dist/components/avatar-group/avatar-group.guide.json +0 -56
- package/dist/components/badge/badge.guide.json +0 -59
- package/dist/components/beam/beam.guide.json +0 -123
- package/dist/components/bleed/bleed.guide.json +0 -43
- package/dist/components/breakpoints/breakpoints.guide.json +0 -40
- package/dist/components/button/button-link.guide.json +0 -69
- package/dist/components/button/button.guide.json +0 -78
- package/dist/components/checkbox/checkbox.guide.json +0 -68
- package/dist/components/chip/chip.guide.json +0 -69
- package/dist/components/clamp-text/clamp-text.guide.json +0 -47
- package/dist/components/dialog/dialog.guide.json +0 -72
- package/dist/components/elevator/elevator.guide.json +0 -46
- package/dist/components/fieldset/fieldset.guide.json +0 -43
- package/dist/components/fit-text/fit-text.guide.json +0 -38
- package/dist/components/glow/glow.guide.json +0 -108
- package/dist/components/grid/grid.guide.json +0 -120
- package/dist/components/icon-button/icon-button-link.guide.json +0 -73
- package/dist/components/icon-button/icon-button.guide.json +0 -72
- package/dist/components/linear-progress/linear-progress.guide.json +0 -53
- package/dist/components/masonry/masonry.guide.json +0 -50
- package/dist/components/menu/menu.guide.json +0 -94
- package/dist/components/meter/meter.guide.json +0 -52
- package/dist/components/popover/popover.guide.json +0 -58
- package/dist/components/progressive-blur/progressive-blur.guide.json +0 -50
- package/dist/components/radio/radio.guide.json +0 -65
- package/dist/components/select/select.guide.json +0 -105
- package/dist/components/separator/separator.guide.json +0 -58
- package/dist/components/shimmer/shimmer.guide.json +0 -67
- package/dist/components/skeleton/skeleton.guide.json +0 -98
- package/dist/components/slider/slider.guide.json +0 -64
- package/dist/components/spinner/spinner.guide.json +0 -43
- package/dist/components/stack/stack.guide.json +0 -116
- package/dist/components/static-noise/static-noise.guide.json +0 -44
- package/dist/components/surface/surface.guide.json +0 -115
- package/dist/components/switch/switch.guide.json +0 -71
- package/dist/components/tabs/tabs.guide.json +0 -43
- package/dist/components/text/text.guide.json +0 -152
- package/dist/components/textarea/textarea.guide.json +0 -55
- package/dist/components/textfield/textfield.guide.json +0 -70
- package/dist/components/title/title.guide.json +0 -149
- package/dist/components/toast/toast.guide.json +0 -60
- package/dist/components/toggle-button/toggle-button.guide.json +0 -81
- package/dist/components/toggle-group/toggle-group.guide.json +0 -27
- package/dist/components/tooltip/tooltip.guide.json +0 -40
- package/dist/components/typewriter/typewriter.guide.json +0 -65
- package/dist/consumption.json +0 -84
- package/dist/preflight-surface.json +0 -233
- package/dist/theme-surface.json +0 -71
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<props surface="title">
|
|
3
|
+
<when_to_use>
|
|
4
|
+
<item>Headings and display text with title presets</item>
|
|
5
|
+
<item>Semantic heading tags chosen explicitly through render</item>
|
|
6
|
+
<item>Size and render paired together for most heading use cases</item>
|
|
7
|
+
<item>Fluid clamp sizing across title appearance presets</item>
|
|
8
|
+
</when_to_use>
|
|
9
|
+
<when_not_to_use>
|
|
10
|
+
<item>Body copy — use Text</item>
|
|
11
|
+
<item>Body or mono family typography</item>
|
|
12
|
+
</when_not_to_use>
|
|
13
|
+
<prop name="align" kind="react">
|
|
14
|
+
<description>Aligns text using logical alignment values.</description>
|
|
15
|
+
</prop>
|
|
16
|
+
<prop name="balanced" kind="react">
|
|
17
|
+
<description>Enables balanced wrapping for block-like titles.</description>
|
|
18
|
+
</prop>
|
|
19
|
+
<prop name="color" kind="react">
|
|
20
|
+
<description>Applies a literal color escape hatch.</description>
|
|
21
|
+
</prop>
|
|
22
|
+
<prop name="fontWidth" kind="react">
|
|
23
|
+
<description>Overrides font width as a percentage (100 = normal); maps to `font-stretch` and `wdth`.</description>
|
|
24
|
+
</prop>
|
|
25
|
+
<prop name="hPadding" kind="react">
|
|
26
|
+
<description>Sets inline padding using one token for both sides or a `[start, end]` tuple.</description>
|
|
27
|
+
</prop>
|
|
28
|
+
<prop name="lineHeight" kind="react">
|
|
29
|
+
<description>Controls line height through foundation leading tokens.</description>
|
|
30
|
+
</prop>
|
|
31
|
+
<prop name="maxWidth" kind="react">
|
|
32
|
+
<description>Constrains the maximum inline size of the rendered text block.</description>
|
|
33
|
+
</prop>
|
|
34
|
+
<prop name="opticalSize" kind="react">
|
|
35
|
+
<description>Overrides the optical size (`opsz`) axis on variable fonts; static fonts keep `font-optical-sizing: auto`.</description>
|
|
36
|
+
</prop>
|
|
37
|
+
<prop name="ref" kind="react">
|
|
38
|
+
<description>Ref forwarded to the rendered title root element.</description>
|
|
39
|
+
</prop>
|
|
40
|
+
<prop name="render" kind="react">
|
|
41
|
+
<description>Replaces the default `span` root using Base UI render semantics. Pair this with `size` for most headings so DOM semantics and visual preset stay intentionally aligned.</description>
|
|
42
|
+
</prop>
|
|
43
|
+
<prop name="selection" kind="react">
|
|
44
|
+
<description>Enables text selection on the rendered copy.</description>
|
|
45
|
+
</prop>
|
|
46
|
+
<prop name="size" kind="react">
|
|
47
|
+
<description>Selects a heading or display typography preset from the active theme scale. This controls only the visual preset. Semantic heading choice remains owned by `render`, because `Title` keeps a `span` root unless `render` replaces it.</description>
|
|
48
|
+
</prop>
|
|
49
|
+
<prop name="tracking" kind="react">
|
|
50
|
+
<description>Sets letter spacing on the rendered copy. Overrides size preset letter-spacing when set.</description>
|
|
51
|
+
</prop>
|
|
52
|
+
<prop name="transform" kind="react">
|
|
53
|
+
<description>Applies a text-transform on the rendered copy.</description>
|
|
54
|
+
</prop>
|
|
55
|
+
<prop name="trim" kind="react">
|
|
56
|
+
<description>Trims text box whitespace at the chosen edge when the browser supports `text-box`. Pass `false` to disable text-box trim.</description>
|
|
57
|
+
</prop>
|
|
58
|
+
<prop name="trimType" kind="react">
|
|
59
|
+
<description>Selects the `text-box` trim basis when `trim` is active.</description>
|
|
60
|
+
</prop>
|
|
61
|
+
<prop name="vPadding" kind="react">
|
|
62
|
+
<description>Sets block padding using one token for both sides or a `[start, end]` tuple.</description>
|
|
63
|
+
</prop>
|
|
64
|
+
<prop name="weight" kind="react">
|
|
65
|
+
<description>Overrides the size preset weight (`font-weight` + `wght` axis).</description>
|
|
66
|
+
</prop>
|
|
67
|
+
<prop name="whiteSpace" kind="react">
|
|
68
|
+
<description>Controls white-space preservation and wrapping behavior.</description>
|
|
69
|
+
</prop>
|
|
70
|
+
<css_var suffix="align">
|
|
71
|
+
<description>Title alignment on the root.</description>
|
|
72
|
+
</css_var>
|
|
73
|
+
<css_var suffix="font-family">
|
|
74
|
+
<description>Heading font family on the root.</description>
|
|
75
|
+
</css_var>
|
|
76
|
+
<css_var suffix="font-opsz">
|
|
77
|
+
<description>Optical size axis on the root (variable fonts).</description>
|
|
78
|
+
</css_var>
|
|
79
|
+
<css_var suffix="font-size">
|
|
80
|
+
<description>Heading font size; size prop presets via data attributes.</description>
|
|
81
|
+
</css_var>
|
|
82
|
+
<css_var suffix="font-weight">
|
|
83
|
+
<description>Font weight on the root.</description>
|
|
84
|
+
</css_var>
|
|
85
|
+
<css_var suffix="font-width">
|
|
86
|
+
<description>Font width percentage on the root (font-stretch + wdth).</description>
|
|
87
|
+
</css_var>
|
|
88
|
+
<css_var suffix="letter-spacing">
|
|
89
|
+
<description>Public letter spacing from the `tracking` prop when set.</description>
|
|
90
|
+
</css_var>
|
|
91
|
+
<css_var suffix="line-height">
|
|
92
|
+
<description>Line height; lineHeight prop presets via data attributes.</description>
|
|
93
|
+
</css_var>
|
|
94
|
+
<css_var suffix="literal-color">
|
|
95
|
+
<description>Literal color override on the root.</description>
|
|
96
|
+
</css_var>
|
|
97
|
+
<css_var suffix="max-width">
|
|
98
|
+
<description>Max inline size of the title root.</description>
|
|
99
|
+
</css_var>
|
|
100
|
+
<css_var suffix="padding-block-end">
|
|
101
|
+
<description>Block-end padding when padding is enabled.</description>
|
|
102
|
+
</css_var>
|
|
103
|
+
<css_var suffix="padding-block-start">
|
|
104
|
+
<description>Block-start padding when padding is enabled.</description>
|
|
105
|
+
</css_var>
|
|
106
|
+
<css_var suffix="padding-inline-end">
|
|
107
|
+
<description>Inline-end padding when padding is enabled.</description>
|
|
108
|
+
</css_var>
|
|
109
|
+
<css_var suffix="padding-inline-start">
|
|
110
|
+
<description>Inline-start padding when padding is enabled.</description>
|
|
111
|
+
</css_var>
|
|
112
|
+
<css_var suffix="trim">
|
|
113
|
+
<description>Text-box trim mode on the root.</description>
|
|
114
|
+
</css_var>
|
|
115
|
+
<css_var suffix="trim-type">
|
|
116
|
+
<description>Text-box trim basis on the root.</description>
|
|
117
|
+
</css_var>
|
|
118
|
+
<css_var suffix="text-transform">
|
|
119
|
+
<description>Text transform on the root.</description>
|
|
120
|
+
</css_var>
|
|
121
|
+
<css_var suffix="white-space">
|
|
122
|
+
<description>White-space behavior on the root.</description>
|
|
123
|
+
</css_var>
|
|
124
|
+
</props>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<usage surface="title">
|
|
3
|
+
<do>Headings and display text with title presets</do>
|
|
4
|
+
<do>Semantic heading tags chosen explicitly through render</do>
|
|
5
|
+
<do>Size and render paired together for most heading use cases</do>
|
|
6
|
+
<do>Fluid clamp sizing across title appearance presets</do>
|
|
7
|
+
<dont>Assuming size changes the HTML tag automatically</dont>
|
|
8
|
+
<dont>Letting size force the HTML tag instead of choosing render explicitly</dont>
|
|
9
|
+
<dont>Using Title for long body paragraphs</dont>
|
|
10
|
+
</usage>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<a11y surface="toast">
|
|
3
|
+
<rule>Pass title and description strings to toastManager.add for screen reader announcements on high-priority toasts</rule>
|
|
4
|
+
<rule>Keep toast copy concise; users can navigate the toast viewport landmark with F6</rule>
|
|
5
|
+
<rule>Ensure action and dismiss controls have visible labels</rule>
|
|
6
|
+
<rule>Use anchored toasts for contextual feedback tied to a specific trigger</rule>
|
|
7
|
+
</a11y>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<meta id="toast" title="Toast" category="feedback" shared_contract="toast">
|
|
3
|
+
<summary>Non-callable compound Toast namespace for transient notifications, with stacked or anchored placement, Banner high-level API, and optional action buttons.</summary>
|
|
4
|
+
<exports>
|
|
5
|
+
<export name="Toast" />
|
|
6
|
+
</exports>
|
|
7
|
+
<related>
|
|
8
|
+
<ref id="button" />
|
|
9
|
+
<ref id="surface" />
|
|
10
|
+
<ref id="stack" />
|
|
11
|
+
<ref id="dialog" />
|
|
12
|
+
</related>
|
|
13
|
+
<units>
|
|
14
|
+
<unit kind="a11y" href="a11y.xml" />
|
|
15
|
+
<unit kind="props" href="props.xml" />
|
|
16
|
+
<unit kind="usage" href="usage.xml" />
|
|
17
|
+
<unit kind="patterns" href="patterns.xml" />
|
|
18
|
+
</units>
|
|
19
|
+
<base_ui href="https://base-ui.com/react/components/toast#api-reference" />
|
|
20
|
+
</meta>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<patterns surface="toast">
|
|
3
|
+
<example title="Toast structure">
|
|
4
|
+
<tsx><![CDATA[<Toast.Provider>
|
|
5
|
+
<Toast.Portal>
|
|
6
|
+
<Toast.Viewport>
|
|
7
|
+
<Toast.Banner toast={…}>
|
|
8
|
+
<Toast.Action>…</Toast.Action>
|
|
9
|
+
</Toast.Banner>
|
|
10
|
+
</Toast.Viewport>
|
|
11
|
+
</Toast.Portal>
|
|
12
|
+
</Toast.Provider>]]></tsx>
|
|
13
|
+
<notes>Public assembly hint from legacy guide; not API authority.</notes>
|
|
14
|
+
</example>
|
|
15
|
+
</patterns>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<props surface="toast">
|
|
3
|
+
<when_to_use>
|
|
4
|
+
<item>Confirming a completed action such as save or delete</item>
|
|
5
|
+
<item>Offering a short undo window after a reversible change</item>
|
|
6
|
+
<item>Showing contextual feedback anchored to the control that triggered it</item>
|
|
7
|
+
<item>Custom portal host (iframe preview, shadow root, or app overlay root) via `container` on the portal-owning public part</item>
|
|
8
|
+
</when_to_use>
|
|
9
|
+
<when_not_to_use>
|
|
10
|
+
<item>Blocking errors that need immediate correction — use inline field errors or a dialog</item>
|
|
11
|
+
<item>Persistent status that should stay visible — use inline status text or a banner pattern</item>
|
|
12
|
+
<item>Long-form content that needs reading time — use a dialog or dedicated panel</item>
|
|
13
|
+
</when_not_to_use>
|
|
14
|
+
<prop name="Banner.children" kind="react">
|
|
15
|
+
<description>Optional action buttons. Accepts a single `Toast.Action` or an array of them.</description>
|
|
16
|
+
</prop>
|
|
17
|
+
<prop name="Banner.className" kind="react">
|
|
18
|
+
<description>Class name forwarded to the toast root.</description>
|
|
19
|
+
</prop>
|
|
20
|
+
<prop name="Banner.description" kind="react">
|
|
21
|
+
<description>Supporting copy below the title.</description>
|
|
22
|
+
</prop>
|
|
23
|
+
<prop name="Banner.dismissable" kind="react">
|
|
24
|
+
<description>Whether to render the dismiss control.</description>
|
|
25
|
+
</prop>
|
|
26
|
+
<prop name="Banner.dismissLabel" kind="react">
|
|
27
|
+
<description>Label for the dismiss control.</description>
|
|
28
|
+
</prop>
|
|
29
|
+
<prop name="Banner.onDismiss" kind="react">
|
|
30
|
+
<description>Called when the dismiss control is activated, before Base UI closes the toast.</description>
|
|
31
|
+
</prop>
|
|
32
|
+
<prop name="Banner.title" kind="react">
|
|
33
|
+
<description>Heading above the description. Falls back to `toast.title` from `toastManager.add`.</description>
|
|
34
|
+
</prop>
|
|
35
|
+
<prop name="Banner.toast" kind="react">
|
|
36
|
+
<description>Toast instance from `Toast.useToastManager().toasts` or `Toast.createToastManager()`.</description>
|
|
37
|
+
</prop>
|
|
38
|
+
<prop name="Viewport.position" kind="react">
|
|
39
|
+
<description>Controls viewport placement and stacking layout hooks.</description>
|
|
40
|
+
</prop>
|
|
41
|
+
|
|
42
|
+
</props>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<usage surface="toast">
|
|
3
|
+
<do>Confirming a completed action such as save or delete</do>
|
|
4
|
+
<do>Offering a short undo window after a reversible change</do>
|
|
5
|
+
<do>Showing contextual feedback anchored to the control that triggered it</do>
|
|
6
|
+
<do>Custom portal host (iframe preview, shadow root, or app overlay root) via `container` on the portal-owning public part</do>
|
|
7
|
+
<dont>Nesting arbitrary components inside Toast.Banner — children must be Toast.Action only</dont>
|
|
8
|
+
<dont>Stacking many simultaneous toasts without a clear limit</dont>
|
|
9
|
+
<dont>Using toasts for critical validation errors that block task completion</dont>
|
|
10
|
+
</usage>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<a11y surface="toggle-button">
|
|
3
|
+
<rule>Provide aria-label or aria-labelledby on every ToggleButton — icon alone is not a name</rule>
|
|
4
|
+
<rule>Base UI Toggle exposes aria-pressed on the rendered button</rule>
|
|
5
|
+
<rule>Keep the accessible name stable when loading state changes</rule>
|
|
6
|
+
</a11y>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<meta id="toggle-button" title="ToggleButton" category="action" shared_contract="toggle-button">
|
|
3
|
+
<summary>Icon-only two-state toggle that swaps resting and optional pressed icons on Base UI Toggle state; `interpolateIcons` (default false) opt-in crossfade + light rotate between dual icons.</summary>
|
|
4
|
+
<exports>
|
|
5
|
+
<export name="ToggleButton" />
|
|
6
|
+
</exports>
|
|
7
|
+
<related>
|
|
8
|
+
<ref id="icon-button" />
|
|
9
|
+
<ref id="button" />
|
|
10
|
+
<ref id="switch" />
|
|
11
|
+
<ref id="toggle-group" />
|
|
12
|
+
</related>
|
|
13
|
+
<units>
|
|
14
|
+
<unit kind="a11y" href="a11y.xml" />
|
|
15
|
+
<unit kind="props" href="props.xml" />
|
|
16
|
+
<unit kind="usage" href="usage.xml" />
|
|
17
|
+
<unit kind="patterns" href="patterns.xml" />
|
|
18
|
+
</units>
|
|
19
|
+
<base_ui href="https://base-ui.com/react/components/toggle#api-reference" />
|
|
20
|
+
</meta>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<patterns surface="toggle-button">
|
|
3
|
+
<example title="ToggleButton structure">
|
|
4
|
+
<tsx><![CDATA[<ToggleButton restingIcon={<Plus />} aria-label="Pin" />]]></tsx>
|
|
5
|
+
<notes>Public assembly hint from legacy guide; not API authority.</notes>
|
|
6
|
+
</example>
|
|
7
|
+
</patterns>
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<props surface="toggle-button">
|
|
3
|
+
<when_to_use>
|
|
4
|
+
<item>Toolbar pin, favorite, or mute toggles identified only by icon</item>
|
|
5
|
+
<item>Compact on/off controls that share IconButton size, variant, and loading model</item>
|
|
6
|
+
<item>Two-state actions where pressed state should swap the visible glyph</item>
|
|
7
|
+
<item>Temporally swap icons after user interactions with temporal pressed state, like copy feedback.</item>
|
|
8
|
+
</when_to_use>
|
|
9
|
+
<when_not_to_use>
|
|
10
|
+
<item>Settings-style on/off fields — use Switch</item>
|
|
11
|
+
<item>One-shot actions with no pressed state — use IconButton</item>
|
|
12
|
+
</when_not_to_use>
|
|
13
|
+
<prop name="interpolateIcons" kind="react">
|
|
14
|
+
<description>When `pressedIcon` is set, crossfade and rotate between resting and pressed icons (`data-interpolate="true"`). When `false`, swap instantly with no transition.</description>
|
|
15
|
+
</prop>
|
|
16
|
+
<prop name="loading" kind="react">
|
|
17
|
+
<description>Shows a centered spinner overlay while preserving the original content width.</description>
|
|
18
|
+
</prop>
|
|
19
|
+
<prop name="pill" kind="react">
|
|
20
|
+
<description>Applies a fully rounded pill shape to the button.</description>
|
|
21
|
+
</prop>
|
|
22
|
+
<prop name="pressedIcon" kind="react">
|
|
23
|
+
<description>Icon shown while the toggle is pressed.</description>
|
|
24
|
+
</prop>
|
|
25
|
+
<prop name="pressedVariant" kind="react">
|
|
26
|
+
<description>Visual variant while the toggle is pressed.</description>
|
|
27
|
+
</prop>
|
|
28
|
+
<prop name="restingIcon" kind="react">
|
|
29
|
+
<description>Icon shown while the toggle is not pressed.</description>
|
|
30
|
+
</prop>
|
|
31
|
+
<prop name="size" kind="react">
|
|
32
|
+
<description>Controls the visual button size.</description>
|
|
33
|
+
</prop>
|
|
34
|
+
<prop name="variant" kind="react">
|
|
35
|
+
<description>Visual variant while the toggle is not pressed.</description>
|
|
36
|
+
</prop>
|
|
37
|
+
<css_var suffix="background">
|
|
38
|
+
<description>Button fill; variant and state selectors preset this.</description>
|
|
39
|
+
</css_var>
|
|
40
|
+
<css_var suffix="color">
|
|
41
|
+
<description>Button label and icon color.</description>
|
|
42
|
+
</css_var>
|
|
43
|
+
<css_var suffix="height">
|
|
44
|
+
<description>Button block size; size prop presets via data attributes.</description>
|
|
45
|
+
</css_var>
|
|
46
|
+
<css_var suffix="icon-size">
|
|
47
|
+
<description>Addon icon size inside the button.</description>
|
|
48
|
+
</css_var>
|
|
49
|
+
<css_var suffix="padding-block">
|
|
50
|
+
<description>Vertical padding inside the button.</description>
|
|
51
|
+
</css_var>
|
|
52
|
+
<css_var suffix="padding-inline">
|
|
53
|
+
<description>Horizontal padding inside the button.</description>
|
|
54
|
+
</css_var>
|
|
55
|
+
<css_var suffix="radius">
|
|
56
|
+
<description>Corner radius; pill sets infinite radius via data-pill.</description>
|
|
57
|
+
</css_var>
|
|
58
|
+
<css_var suffix="spinner-color">
|
|
59
|
+
<description>Loading spinner color on the root.</description>
|
|
60
|
+
</css_var>
|
|
61
|
+
</props>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<usage surface="toggle-button">
|
|
3
|
+
<do>Toolbar pin, favorite, or mute toggles identified only by icon</do>
|
|
4
|
+
<do>Compact on/off controls that share IconButton size, variant, and loading model</do>
|
|
5
|
+
<do>Two-state actions where pressed state should swap the visible glyph</do>
|
|
6
|
+
<do>Temporally swap icons after user interactions with temporal pressed state, like copy feedback.</do>
|
|
7
|
+
<dont>Using IconButton for persistent pressed toolbar state</dont>
|
|
8
|
+
<dont>Using Switch for compact icon-only toolbar toggles</dont>
|
|
9
|
+
<dont>Passing icon or render — ToggleButton owns icon swap and Toggle render wiring</dont>
|
|
10
|
+
</usage>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<a11y surface="toggle-group">
|
|
3
|
+
<rule>Provide aria-label or aria-labelledby on the ToggleGroup root</rule>
|
|
4
|
+
<rule>Provide aria-label or aria-labelledby on every ToggleButton child</rule>
|
|
5
|
+
<rule>Each ToggleButton exposes aria-pressed; group selection follows Base UI ToggleGroup semantics</rule>
|
|
6
|
+
</a11y>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<meta id="toggle-group" title="ToggleGroup" category="action" shared_contract="toggle-group">
|
|
3
|
+
<summary>Toolbar toggle set with shared selection state; Stack direction follows orientation with zero default gap.</summary>
|
|
4
|
+
<exports>
|
|
5
|
+
<export name="ToggleGroup" />
|
|
6
|
+
</exports>
|
|
7
|
+
<related>
|
|
8
|
+
<ref id="toggle-button" />
|
|
9
|
+
<ref id="icon-button" />
|
|
10
|
+
<ref id="tabs" />
|
|
11
|
+
</related>
|
|
12
|
+
<units>
|
|
13
|
+
<unit kind="a11y" href="a11y.xml" />
|
|
14
|
+
<unit kind="props" href="props.xml" />
|
|
15
|
+
<unit kind="usage" href="usage.xml" />
|
|
16
|
+
<unit kind="patterns" href="patterns.xml" />
|
|
17
|
+
</units>
|
|
18
|
+
<base_ui href="https://base-ui.com/react/components/toggle-group#api-reference" />
|
|
19
|
+
</meta>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<patterns surface="toggle-group">
|
|
3
|
+
<example title="ToggleGroup structure">
|
|
4
|
+
<tsx><![CDATA[<ToggleGroup>
|
|
5
|
+
<ToggleButton restingIcon={<Plus />} aria-label="List" value="list" />
|
|
6
|
+
</ToggleGroup>]]></tsx>
|
|
7
|
+
<notes>Public assembly hint from legacy guide; not API authority.</notes>
|
|
8
|
+
</example>
|
|
9
|
+
</patterns>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<props surface="toggle-group">
|
|
3
|
+
<when_to_use>
|
|
4
|
+
<item>Segmented icon toolbars such as text alignment or formatting controls</item>
|
|
5
|
+
<item>Single- or multi-select pressed states across related ToggleButton items</item>
|
|
6
|
+
<item>Compact action clusters that need coordinated value and disabled state</item>
|
|
7
|
+
</when_to_use>
|
|
8
|
+
<when_not_to_use>
|
|
9
|
+
<item>Standalone one-off toggles — use ToggleButton</item>
|
|
10
|
+
<item>Settings-style on/off fields — use Switch</item>
|
|
11
|
+
<item>Tabbed panel navigation — use Tabs</item>
|
|
12
|
+
</when_not_to_use>
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
</props>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<usage surface="toggle-group">
|
|
3
|
+
<do>Segmented icon toolbars such as text alignment or formatting controls</do>
|
|
4
|
+
<do>Single- or multi-select pressed states across related ToggleButton items</do>
|
|
5
|
+
<do>Compact action clusters that need coordinated value and disabled state</do>
|
|
6
|
+
<dont>Omitting value on ToggleButton children inside a group</dont>
|
|
7
|
+
<dont>Using Switch for icon-only toolbar toggle sets</dont>
|
|
8
|
+
<dont>Embedding Surface chrome in the component — wrap demos or app chrome at the consumer</dont>
|
|
9
|
+
</usage>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<a11y surface="tooltip">
|
|
3
|
+
<rule>Match trigger `aria-label` to tooltip copy so sighted and assistive users get the same hint</rule>
|
|
4
|
+
<rule>Keep tooltip copy concise; use Popover when the hint needs paragraphs, links, or controls</rule>
|
|
5
|
+
<rule>Wrap regions with multiple tooltips in `Tooltip.Provider` for predictable delay grouping</rule>
|
|
6
|
+
</a11y>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<meta id="tooltip" title="Tooltip" category="overlay" shared_contract="tooltip">
|
|
3
|
+
<summary>Compound tooltip built on Base UI Tooltip with `Tooltip.Provider`, `Tooltip.Trigger`, `Tooltip.Content`, and `Tooltip.createHandle` for detached and multiple triggers; `Content` encapsulates Portal + Positioner + Popup + Viewport and animates position, size, and content between triggers.</summary>
|
|
4
|
+
<exports>
|
|
5
|
+
<export name="Tooltip" />
|
|
6
|
+
</exports>
|
|
7
|
+
<related>
|
|
8
|
+
<ref id="surface" />
|
|
9
|
+
<ref id="button" />
|
|
10
|
+
<ref id="icon-button" />
|
|
11
|
+
<ref id="stack" />
|
|
12
|
+
<ref id="popover" />
|
|
13
|
+
</related>
|
|
14
|
+
<units>
|
|
15
|
+
<unit kind="a11y" href="a11y.xml" />
|
|
16
|
+
<unit kind="props" href="props.xml" />
|
|
17
|
+
<unit kind="usage" href="usage.xml" />
|
|
18
|
+
<unit kind="patterns" href="patterns.xml" />
|
|
19
|
+
</units>
|
|
20
|
+
<base_ui href="https://base-ui.com/react/components/tooltip#api-reference" />
|
|
21
|
+
</meta>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<patterns surface="tooltip">
|
|
3
|
+
<example title="Tooltip structure">
|
|
4
|
+
<tsx><![CDATA[<Tooltip.Provider>
|
|
5
|
+
<Tooltip>
|
|
6
|
+
<Tooltip.Trigger />
|
|
7
|
+
<Tooltip.Content />
|
|
8
|
+
</Tooltip>
|
|
9
|
+
</Tooltip.Provider>]]></tsx>
|
|
10
|
+
<notes>Public assembly hint from legacy guide; not API authority.</notes>
|
|
11
|
+
</example>
|
|
12
|
+
</patterns>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<props surface="tooltip">
|
|
3
|
+
<when_to_use>
|
|
4
|
+
<item>Short hints on hover or focus for toolbar controls and icon buttons</item>
|
|
5
|
+
<item>Per-trigger labels on shared tooltip roots using `payload` and Root render-function children</item>
|
|
6
|
+
<item>Adjacent controls that benefit from shared open/close delay via `Tooltip.Provider`</item>
|
|
7
|
+
<item>Custom portal host (iframe preview, shadow root, or app overlay root) via `container` on the portal-owning public part</item>
|
|
8
|
+
</when_to_use>
|
|
9
|
+
<when_not_to_use>
|
|
10
|
+
<item>Rich interactive panels or forms (use Popover or Dialog)</item>
|
|
11
|
+
<item>System-wide transient alerts (use Toast)</item>
|
|
12
|
+
<item>Content that must stay open while the pointer moves into the popup (enable `disableHoverablePopup` only when needed)</item>
|
|
13
|
+
</when_not_to_use>
|
|
14
|
+
<prop name="Content.container" kind="react">
|
|
15
|
+
<description>Portal mount node (iframe body, shadow root, or app overlay root). Omit for Base UI default (`document.body` from the module window — iframe hosts must pass the iframe document body explicitly).</description>
|
|
16
|
+
</prop>
|
|
17
|
+
<css_var suffix="content-fade-duration">
|
|
18
|
+
<description>content fade duration custom property on the component root.</description>
|
|
19
|
+
</css_var>
|
|
20
|
+
</props>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<usage surface="tooltip">
|
|
3
|
+
<do>Short hints on hover or focus for toolbar controls and icon buttons</do>
|
|
4
|
+
<do>Per-trigger labels on shared tooltip roots using `payload` and Root render-function children</do>
|
|
5
|
+
<do>Adjacent controls that benefit from shared open/close delay via `Tooltip.Provider`</do>
|
|
6
|
+
<do>Custom portal host (iframe preview, shadow root, or app overlay root) via `container` on the portal-owning public part</do>
|
|
7
|
+
<dont>Putting essential-only information in a tooltip with no accessible name on the trigger</dont>
|
|
8
|
+
<dont>Expecting `Tooltip.Arrow` (it is intentionally not exported or rendered)</dont>
|
|
9
|
+
<dont>Using tooltip for modal or focus-trapped tasks</dont>
|
|
10
|
+
</usage>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<a11y surface="typewriter">
|
|
3
|
+
<rule>One phrase layer (Ghost when preserveSpace, clipped A11y otherwise) holds the full current phrase and announces via aria-live</rule>
|
|
4
|
+
<rule>The absolute/in-flow typed layer is aria-hidden and only paints the progressive effect plus caret</rule>
|
|
5
|
+
<rule>Reduced motion shows the final phrase immediately without cycling delays</rule>
|
|
6
|
+
<rule>Parent region owns loading or busy semantics when Typewriter is decorative</rule>
|
|
7
|
+
</a11y>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<meta id="typewriter" title="Typewriter" category="typography" shared_contract="typewriter">
|
|
3
|
+
<summary>Decorative inline typewriter animation that inherits typography and color from a parent text primitive.</summary>
|
|
4
|
+
<exports>
|
|
5
|
+
<export name="Typewriter" />
|
|
6
|
+
</exports>
|
|
7
|
+
<related>
|
|
8
|
+
<ref id="text" />
|
|
9
|
+
<ref id="title" />
|
|
10
|
+
<ref id="shimmer" />
|
|
11
|
+
</related>
|
|
12
|
+
<units>
|
|
13
|
+
<unit kind="a11y" href="a11y.xml" />
|
|
14
|
+
<unit kind="props" href="props.xml" />
|
|
15
|
+
<unit kind="usage" href="usage.xml" />
|
|
16
|
+
<unit kind="patterns" href="patterns.xml" />
|
|
17
|
+
</units>
|
|
18
|
+
</meta>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<patterns surface="typewriter">
|
|
3
|
+
<example title="Typewriter structure">
|
|
4
|
+
<tsx><![CDATA[<Typewriter>…</Typewriter>]]></tsx>
|
|
5
|
+
<notes>Public assembly hint from legacy guide; not API authority.</notes>
|
|
6
|
+
</example>
|
|
7
|
+
</patterns>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<props surface="typewriter">
|
|
3
|
+
<when_to_use>
|
|
4
|
+
<item>Hero or marketing copy that cycles through short phrases</item>
|
|
5
|
+
<item>Loading or status labels that reveal text progressively</item>
|
|
6
|
+
<item>Muted intro copy inside Text or Title where motion adds emphasis</item>
|
|
7
|
+
</when_to_use>
|
|
8
|
+
<when_not_to_use>
|
|
9
|
+
<item>Standalone accessible status updates without a surrounding labeled region</item>
|
|
10
|
+
<item>Long-form content better served by static Text</item>
|
|
11
|
+
<item>Cases where reduced-motion users must see every phrase in a multi-text cycle</item>
|
|
12
|
+
</when_not_to_use>
|
|
13
|
+
<prop name="caret" kind="react">
|
|
14
|
+
<description>Selects the caret style rendered after the typed text.</description>
|
|
15
|
+
</prop>
|
|
16
|
+
<prop name="caretColor" kind="react">
|
|
17
|
+
<description>Overrides the caret color.</description>
|
|
18
|
+
</prop>
|
|
19
|
+
<prop name="delay" kind="react">
|
|
20
|
+
<description>Sets the initial delay before typing starts, in milliseconds.</description>
|
|
21
|
+
</prop>
|
|
22
|
+
<prop name="deleteSpeed" kind="react">
|
|
23
|
+
<description>Sets the delay between deleted characters in milliseconds.</description>
|
|
24
|
+
</prop>
|
|
25
|
+
<prop name="loop" kind="react">
|
|
26
|
+
<description>Repeats the phrase cycle after the final phrase is deleted.</description>
|
|
27
|
+
</prop>
|
|
28
|
+
<prop name="pause" kind="react">
|
|
29
|
+
<description>Sets the pause after a phrase completes before deletion starts, in milliseconds.</description>
|
|
30
|
+
</prop>
|
|
31
|
+
<prop name="preserveSpace" kind="react">
|
|
32
|
+
<description>Reserves the full phrase width and height (including wrap under parent constraints) from first paint through delay, typing, and deletion.</description>
|
|
33
|
+
</prop>
|
|
34
|
+
<prop name="speed" kind="react">
|
|
35
|
+
<description>Sets the delay between typed characters in milliseconds.</description>
|
|
36
|
+
</prop>
|
|
37
|
+
<prop name="texts" kind="react">
|
|
38
|
+
<description>Cycles through multiple phrases instead of a single `children` string.</description>
|
|
39
|
+
</prop>
|
|
40
|
+
<css_var suffix="caret-color">
|
|
41
|
+
<description>Typewriter caret color.</description>
|
|
42
|
+
</css_var>
|
|
43
|
+
</props>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<usage surface="typewriter">
|
|
3
|
+
<do>Hero or marketing copy that cycles through short phrases</do>
|
|
4
|
+
<do>Loading or status labels that reveal text progressively</do>
|
|
5
|
+
<do>Muted intro copy inside Text or Title where motion adds emphasis</do>
|
|
6
|
+
<dont>Using Typewriter as the only source of critical status information</dont>
|
|
7
|
+
<dont>Embedding layout positioning rules inside the component stylesheet</dont>
|
|
8
|
+
<dont>Restarting animation on every parent render by passing unstable inline text arrays without stable content</dont>
|
|
9
|
+
<dont>Setting parent Text or Title trim={false} solely so preserveSpace can reserve wrapped height</dont>
|
|
10
|
+
<dont>Driving per-character typing through React state (use DOM writes on the typed layer instead)</dont>
|
|
11
|
+
</usage>
|