@viraui/react 2026.3.10 → 2026.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/catalog.json +50 -50
- package/dist/components/dialog/dialog-sheet.js +2 -1
- package/dist/components/separator/separator.d.ts +2 -2
- package/dist/components/separator/separator.js +2 -2
- package/dist/components/surface/surface.css +1 -1
- package/dist/components/surface/surface.js +2 -0
- 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 -114
- 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,8 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<usage surface="accordion">
|
|
3
|
+
<do>Progressive disclosure for related content sections in one surface</do>
|
|
4
|
+
<do>FAQ or settings groups where only one section may be open by default</do>
|
|
5
|
+
<do>Multiple open sections when `multiple` is enabled</do>
|
|
6
|
+
<dont>Trying to compose separate public `Accordion.Header`, `Accordion.Trigger`, or `Accordion.Panel` exports</dont>
|
|
7
|
+
<dont>Rendering an item without trigger text and without an external aria-label strategy</dont>
|
|
8
|
+
</usage>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<a11y surface="annotate">
|
|
3
|
+
<rule>Arrow and note are presentational spans with aria-hidden — decorative only and not exposed to assistive tech</rule>
|
|
4
|
+
<rule>Do not put critical information in note; keep real meaning in children or aria-describedby content</rule>
|
|
5
|
+
<rule>Children retain native semantics; Annotate itself is a presentational span wrap</rule>
|
|
6
|
+
</a11y>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<meta id="annotate" title="Annotate" category="effect" shared_contract="annotate">
|
|
3
|
+
<summary>Decorative arrow and handwritten label that wraps inline content with optional highlighter mark, positioned via CSS anchor positioning.</summary>
|
|
4
|
+
<exports>
|
|
5
|
+
<export name="Annotate" />
|
|
6
|
+
</exports>
|
|
7
|
+
<related>
|
|
8
|
+
<ref id="text" />
|
|
9
|
+
<ref id="title" />
|
|
10
|
+
<ref id="tooltip" />
|
|
11
|
+
<ref id="chip" />
|
|
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
|
+
</meta>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<patterns surface="annotate">
|
|
3
|
+
<example title="Annotate structure">
|
|
4
|
+
<tsx><![CDATA[<Annotate note="…">…</Annotate>]]></tsx>
|
|
5
|
+
<notes>Public assembly hint from legacy guide; not API authority.</notes>
|
|
6
|
+
</example>
|
|
7
|
+
</patterns>
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<props surface="annotate">
|
|
3
|
+
<when_to_use>
|
|
4
|
+
<item>Call out a word or phrase in marketing, docs, or onboarding copy</item>
|
|
5
|
+
<item>Add a playful visual annotation without interactive chrome</item>
|
|
6
|
+
<item>Highlight a target with an optional mark while keeping children as the real content</item>
|
|
7
|
+
</when_to_use>
|
|
8
|
+
<when_not_to_use>
|
|
9
|
+
<item>Conveying critical instructions, status, or validation that assistive tech must announce</item>
|
|
10
|
+
<item>Interactive tooltips or popovers that need focus and keyboard behavior</item>
|
|
11
|
+
<item>Layouts that clip overflow and cannot leave room for the arrow and label</item>
|
|
12
|
+
</when_not_to_use>
|
|
13
|
+
<prop name="arrowOffsetX" kind="react">
|
|
14
|
+
<description>Horizontal offset for the arrow pseudo (`--vui-annotate-arrow-x`).</description>
|
|
15
|
+
</prop>
|
|
16
|
+
<prop name="arrowOffsetY" kind="react">
|
|
17
|
+
<description>Vertical offset for the arrow pseudo (`--vui-annotate-arrow-y`).</description>
|
|
18
|
+
</prop>
|
|
19
|
+
<prop name="color" kind="react">
|
|
20
|
+
<description>Highlight token driving arrow, label, and optional mark color via `--vui-annotate-color`.</description>
|
|
21
|
+
</prop>
|
|
22
|
+
<prop name="labelGap" kind="react">
|
|
23
|
+
<description>Gap between arrow and label on all sides via `--vui-annotate-label-gap`.</description>
|
|
24
|
+
</prop>
|
|
25
|
+
<prop name="labelMaxWidth" kind="react">
|
|
26
|
+
<description>Max width for the label pseudo via `--vui-annotate-label-max-width`.</description>
|
|
27
|
+
</prop>
|
|
28
|
+
<prop name="mark" kind="react">
|
|
29
|
+
<description>When true, applies a highlighter mark behind the wrapped content.</description>
|
|
30
|
+
</prop>
|
|
31
|
+
<prop name="note" kind="react">
|
|
32
|
+
<description>Decorative label rendered in a presentational note span (not announced). Do not put critical information here — assistive tech does not announce the note.</description>
|
|
33
|
+
</prop>
|
|
34
|
+
<prop name="rotate" kind="react">
|
|
35
|
+
<description>Rotation for the label (and composed transforms) via `--vui-annotate-rotate`.</description>
|
|
36
|
+
</prop>
|
|
37
|
+
<prop name="side" kind="react">
|
|
38
|
+
<description>Places the decorative arrow and label relative to the wrapped content.</description>
|
|
39
|
+
</prop>
|
|
40
|
+
<prop name="targetGap" kind="react">
|
|
41
|
+
<description>Gap between the target and the arrow via `--vui-annotate-target-gap`.</description>
|
|
42
|
+
</prop>
|
|
43
|
+
<prop name="textAlign" kind="react">
|
|
44
|
+
<description>Text alignment for the note via `--vui-annotate-text-align`.</description>
|
|
45
|
+
</prop>
|
|
46
|
+
<prop name="textOffsetX" kind="react">
|
|
47
|
+
<description>Horizontal nudge for the note part (translateX on the inner nudge wrapper).</description>
|
|
48
|
+
</prop>
|
|
49
|
+
<prop name="textOffsetY" kind="react">
|
|
50
|
+
<description>Vertical nudge for the note part (translateY on the inner nudge wrapper).</description>
|
|
51
|
+
</prop>
|
|
52
|
+
<prop name="zIndex" kind="react">
|
|
53
|
+
<description>Stacking order for arrow and note via `--vui-annotate-z-index`. Same value on both parts.</description>
|
|
54
|
+
</prop>
|
|
55
|
+
<css_var suffix="arrow-x">
|
|
56
|
+
<description>Horizontal arrow offset.</description>
|
|
57
|
+
</css_var>
|
|
58
|
+
<css_var suffix="arrow-y">
|
|
59
|
+
<description>Vertical arrow offset.</description>
|
|
60
|
+
</css_var>
|
|
61
|
+
<css_var suffix="color">
|
|
62
|
+
<description>Arrow, note, and mark accent color. Defaults to var(--global-foreground).</description>
|
|
63
|
+
</css_var>
|
|
64
|
+
<css_var suffix="label-gap">
|
|
65
|
+
<description>Gap between arrow and note on all sides.</description>
|
|
66
|
+
</css_var>
|
|
67
|
+
<css_var suffix="label-max-width">
|
|
68
|
+
<description>Max width for the note part.</description>
|
|
69
|
+
</css_var>
|
|
70
|
+
<css_var suffix="rotate">
|
|
71
|
+
<description>Note rotation angle.</description>
|
|
72
|
+
</css_var>
|
|
73
|
+
<css_var suffix="target-gap">
|
|
74
|
+
<description>Gap between the target and the arrow.</description>
|
|
75
|
+
</css_var>
|
|
76
|
+
<css_var suffix="text-align">
|
|
77
|
+
<description>Text alignment for the note. Defaults to start.</description>
|
|
78
|
+
</css_var>
|
|
79
|
+
<css_var suffix="text-x">
|
|
80
|
+
<description>Legacy horizontal note offset custom property. Prefer textOffsetX from React.</description>
|
|
81
|
+
</css_var>
|
|
82
|
+
<css_var suffix="text-y">
|
|
83
|
+
<description>Legacy vertical note offset custom property. Prefer textOffsetY from React.</description>
|
|
84
|
+
</css_var>
|
|
85
|
+
<css_var suffix="z-index">
|
|
86
|
+
<description>Stacking order for arrow and note. Defaults to auto.</description>
|
|
87
|
+
</css_var>
|
|
88
|
+
</props>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<usage surface="annotate">
|
|
3
|
+
<do>Call out a word or phrase in marketing, docs, or onboarding copy</do>
|
|
4
|
+
<do>Add a playful visual annotation without interactive chrome</do>
|
|
5
|
+
<do>Highlight a target with an optional mark while keeping children as the real content</do>
|
|
6
|
+
<dont>Using note as the only source of instructions or status</dont>
|
|
7
|
+
<dont>Nesting Annotate inside overflow-hidden parents without padding for the arrow</dont>
|
|
8
|
+
<dont>Expecting the label to participate in hit-testing or selection</dont>
|
|
9
|
+
<dont>Adding position:relative on Annotate — it breaks CSS anchor position-area placement</dont>
|
|
10
|
+
</usage>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<a11y surface="autocomplete">
|
|
3
|
+
<rule>Provide label or aria-label so the input has an accessible name</rule>
|
|
4
|
+
<rule>Wire description and error copy through the field pattern so assistive tech gets helper text</rule>
|
|
5
|
+
<rule>Keep empty and status slots mounted; update their children when messaging changes</rule>
|
|
6
|
+
</a11y>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<meta id="autocomplete" title="Autocomplete" category="form" shared_contract="autocomplete">
|
|
3
|
+
<summary>Field-wrapped free-form suggest input with Textfield chrome and Select-like popup list.</summary>
|
|
4
|
+
<exports>
|
|
5
|
+
<export name="Autocomplete" />
|
|
6
|
+
</exports>
|
|
7
|
+
<related>
|
|
8
|
+
<ref id="textfield" />
|
|
9
|
+
<ref id="select" />
|
|
10
|
+
<ref id="fieldset" />
|
|
11
|
+
<ref id="stack" />
|
|
12
|
+
<ref id="surface" />
|
|
13
|
+
<ref id="spinner" />
|
|
14
|
+
</related>
|
|
15
|
+
<units>
|
|
16
|
+
<unit kind="a11y" href="a11y.xml" />
|
|
17
|
+
<unit kind="props" href="props.xml" />
|
|
18
|
+
<unit kind="usage" href="usage.xml" />
|
|
19
|
+
<unit kind="patterns" href="patterns.xml" />
|
|
20
|
+
</units>
|
|
21
|
+
<base_ui href="https://base-ui.com/react/components/autocomplete#api-reference" />
|
|
22
|
+
</meta>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<patterns surface="autocomplete">
|
|
3
|
+
<example title="Autocomplete structure">
|
|
4
|
+
<tsx><![CDATA[<Autocomplete>
|
|
5
|
+
<Autocomplete.Item value="…">…</Autocomplete.Item>
|
|
6
|
+
<Autocomplete.Group label="…" items={[…]}>
|
|
7
|
+
<Autocomplete.Collection>
|
|
8
|
+
{(item) => <Autocomplete.Item value={item}>…</Autocomplete.Item>}
|
|
9
|
+
</Autocomplete.Collection>
|
|
10
|
+
</Autocomplete.Group>
|
|
11
|
+
</Autocomplete>]]></tsx>
|
|
12
|
+
<notes>Public assembly hint from legacy guide; not API authority.</notes>
|
|
13
|
+
</example>
|
|
14
|
+
</patterns>
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<props surface="autocomplete">
|
|
3
|
+
<when_to_use>
|
|
4
|
+
<item>Suggest options while allowing free-form text in the input</item>
|
|
5
|
+
<item>Filterable tag, movie, or docs search with optional empty and status copy</item>
|
|
6
|
+
<item>Grouped suggestion lists via Autocomplete.Group and Collection</item>
|
|
7
|
+
<item>Async or limited result lists that need polite status announcements</item>
|
|
8
|
+
<item>Custom portal host (iframe preview, shadow root, or app overlay root) via `container` on the portal-owning public part</item>
|
|
9
|
+
</when_to_use>
|
|
10
|
+
<when_not_to_use>
|
|
11
|
+
<item>Remembered selection from a closed list — use Select (or Combobox when available)</item>
|
|
12
|
+
<item>Command palette, grid picker, or virtualized lists — separate surfaces on Base UI Autocomplete</item>
|
|
13
|
+
<item>Wrapping a lone Autocomplete in Fieldset when its own label is sufficient</item>
|
|
14
|
+
</when_not_to_use>
|
|
15
|
+
<prop name="children" kind="react">
|
|
16
|
+
<description>List content: static Item, Group, or Collection nodes, or a Base UI list render function.</description>
|
|
17
|
+
</prop>
|
|
18
|
+
<prop name="container" kind="react">
|
|
19
|
+
<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>
|
|
20
|
+
</prop>
|
|
21
|
+
<prop name="description" kind="react">
|
|
22
|
+
<description>Helper copy rendered with `Field.Description` and `Text` while the field is valid.</description>
|
|
23
|
+
</prop>
|
|
24
|
+
<prop name="empty" kind="react">
|
|
25
|
+
<description>Content rendered inside baked `Autocomplete.Empty` when the filtered list has no items.</description>
|
|
26
|
+
</prop>
|
|
27
|
+
<prop name="endAddon" kind="react">
|
|
28
|
+
<description>Trailing decoration (icon, button). Buttons must use `type="button"`.</description>
|
|
29
|
+
</prop>
|
|
30
|
+
<prop name="error" kind="react">
|
|
31
|
+
<description>Error copy rendered with `Field.Error` and `Text` in the same slot as `description`. Replaces description while the field is invalid and dirty.</description>
|
|
32
|
+
</prop>
|
|
33
|
+
<prop name="fitContent" kind="react">
|
|
34
|
+
<description>When `true`, sets `field-sizing: content` so the control grows inline with its value. Block chrome stays `var(--vui-autocomplete-input-height)`. Omitted / `false` keeps the browser fixed default.</description>
|
|
35
|
+
</prop>
|
|
36
|
+
<prop name="Group.label" kind="react">
|
|
37
|
+
<description>Accessible group label rendered with `Autocomplete.GroupLabel`.</description>
|
|
38
|
+
</prop>
|
|
39
|
+
<prop name="Item.addon" kind="react">
|
|
40
|
+
<description>Decorative leading node rendered before the item label.</description>
|
|
41
|
+
</prop>
|
|
42
|
+
<prop name="Item.addonAlign" kind="react">
|
|
43
|
+
<description>Vertical alignment of the addon relative to the item label row.</description>
|
|
44
|
+
</prop>
|
|
45
|
+
<prop name="label" kind="react">
|
|
46
|
+
<description>Visible label rendered with shared internal `FieldLabel`.</description>
|
|
47
|
+
</prop>
|
|
48
|
+
<prop name="placeholder" kind="react">
|
|
49
|
+
<description>Placeholder text shown in the input when empty.</description>
|
|
50
|
+
</prop>
|
|
51
|
+
<prop name="ref" kind="react">
|
|
52
|
+
<description>Ref forwarded to the autocomplete input.</description>
|
|
53
|
+
</prop>
|
|
54
|
+
<prop name="startAddon" kind="react">
|
|
55
|
+
<description>Leading decoration (prefix text, icon). Not a second field control.</description>
|
|
56
|
+
</prop>
|
|
57
|
+
<prop name="status" kind="react">
|
|
58
|
+
<description>Content rendered inside baked `Autocomplete.Status` (async / limit messaging). Keep the slot mounted; update children when status changes.</description>
|
|
59
|
+
</prop>
|
|
60
|
+
<css_var suffix="control-group-background">
|
|
61
|
+
<description>Autocomplete control group background.</description>
|
|
62
|
+
</css_var>
|
|
63
|
+
<css_var suffix="control-group-border-color">
|
|
64
|
+
<description>Autocomplete control group border color; invalid state overrides.</description>
|
|
65
|
+
</css_var>
|
|
66
|
+
<css_var suffix="control-group-border-radius">
|
|
67
|
+
<description>Autocomplete control group corner radius.</description>
|
|
68
|
+
</css_var>
|
|
69
|
+
<css_var suffix="control-group-color">
|
|
70
|
+
<description>Autocomplete control group foreground color.</description>
|
|
71
|
+
</css_var>
|
|
72
|
+
<css_var suffix="input-height">
|
|
73
|
+
<description>Autocomplete control group block size.</description>
|
|
74
|
+
</css_var>
|
|
75
|
+
<css_var suffix="list-border-radius">
|
|
76
|
+
<description>Popup list border radius custom property on the popup root.</description>
|
|
77
|
+
</css_var>
|
|
78
|
+
<css_var suffix="list-padding">
|
|
79
|
+
<description>Popup list padding custom property used for scroll padding.</description>
|
|
80
|
+
</css_var>
|
|
81
|
+
</props>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<usage surface="autocomplete">
|
|
3
|
+
<do>Suggest options while allowing free-form text in the input</do>
|
|
4
|
+
<do>Filterable tag, movie, or docs search with optional empty and status copy</do>
|
|
5
|
+
<do>Grouped suggestion lists via Autocomplete.Group and Collection</do>
|
|
6
|
+
<do>Async or limited result lists that need polite status announcements</do>
|
|
7
|
+
<do>Custom portal host (iframe preview, shadow root, or app overlay root) via `container` on the portal-owning public part</do>
|
|
8
|
+
<dont>Expecting Select-like closed selection state</dont>
|
|
9
|
+
<dont>Leaving the input without label or aria-label</dont>
|
|
10
|
+
<dont>Conditionally unmounting Empty or Status instead of updating their children</dont>
|
|
11
|
+
</usage>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<meta id="avatar" title="Avatar" category="layout" shared_contract="avatar">
|
|
3
|
+
<summary>Circular identity image or fallback for users, entities, or profile chips.</summary>
|
|
4
|
+
<exports>
|
|
5
|
+
<export name="Avatar" />
|
|
6
|
+
</exports>
|
|
7
|
+
<related>
|
|
8
|
+
<ref id="skeleton" />
|
|
9
|
+
</related>
|
|
10
|
+
<units>
|
|
11
|
+
<unit kind="a11y" href="a11y.xml" />
|
|
12
|
+
<unit kind="props" href="props.xml" />
|
|
13
|
+
<unit kind="usage" href="usage.xml" />
|
|
14
|
+
<unit kind="patterns" href="patterns.xml" />
|
|
15
|
+
</units>
|
|
16
|
+
<base_ui href="https://base-ui.com/react/components/avatar#api-reference" />
|
|
17
|
+
</meta>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<props surface="avatar">
|
|
3
|
+
<when_to_use>
|
|
4
|
+
<item>Show a user or entity photo with text or image fallback</item>
|
|
5
|
+
<item>Display profile chips from x-small through large sizes</item>
|
|
6
|
+
</when_to_use>
|
|
7
|
+
<when_not_to_use>
|
|
8
|
+
<item>Interactive controls or navigation</item>
|
|
9
|
+
<item>Non-identity imagery without a fallback plan</item>
|
|
10
|
+
</when_not_to_use>
|
|
11
|
+
<prop name="alt" kind="react">
|
|
12
|
+
<description>Supplies alternative text for the avatar image.</description>
|
|
13
|
+
</prop>
|
|
14
|
+
<prop name="fallback" kind="react">
|
|
15
|
+
<description>Supplies the content shown when the image is absent or fails to load.</description>
|
|
16
|
+
</prop>
|
|
17
|
+
<prop name="ref" kind="react">
|
|
18
|
+
<description>Ref forwarded to the rendered avatar root element.</description>
|
|
19
|
+
</prop>
|
|
20
|
+
<prop name="size" kind="react">
|
|
21
|
+
<description>Selects the rendered avatar footprint.</description>
|
|
22
|
+
</prop>
|
|
23
|
+
<prop name="src" kind="react">
|
|
24
|
+
<description>Supplies the avatar image source URL.</description>
|
|
25
|
+
</prop>
|
|
26
|
+
<css_var suffix="background">
|
|
27
|
+
<description>Root background fill behind image or fallback.</description>
|
|
28
|
+
</css_var>
|
|
29
|
+
<css_var suffix="foreground">
|
|
30
|
+
<description>Root foreground color for fallback content.</description>
|
|
31
|
+
</css_var>
|
|
32
|
+
<css_var suffix="radius">
|
|
33
|
+
<description>Corner radius on the root; size presets also adjust this.</description>
|
|
34
|
+
</css_var>
|
|
35
|
+
<css_var suffix="size">
|
|
36
|
+
<description>Avatar inline and block size on the root.</description>
|
|
37
|
+
</css_var>
|
|
38
|
+
</props>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<usage surface="avatar">
|
|
3
|
+
<do>Show a user or entity photo with text or image fallback</do>
|
|
4
|
+
<do>Display profile chips from x-small through large sizes</do>
|
|
5
|
+
<dont>Relying on Avatar children for layout sizing</dont>
|
|
6
|
+
<dont>Omitting meaningful alt text when the image conveys identity</dont>
|
|
7
|
+
</usage>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<a11y surface="avatar-group">
|
|
3
|
+
<rule>Provide meaningful alt text on each avatar image when identity matters</rule>
|
|
4
|
+
<rule>Treat overflow content such as +3 or +9938 as summary text rather than an interactive affordance</rule>
|
|
5
|
+
<rule>Keep decorative avatars on empty alt text when the surrounding context already labels the group</rule>
|
|
6
|
+
</a11y>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<meta id="avatar-group" title="AvatarGroup" category="layout" shared_contract="avatar-group">
|
|
3
|
+
<summary>Overlapping avatar stack with shared sizing, directional layout, and an optional overflow pill.</summary>
|
|
4
|
+
<exports>
|
|
5
|
+
<export name="AvatarGroup" />
|
|
6
|
+
</exports>
|
|
7
|
+
<related>
|
|
8
|
+
<ref id="avatar" />
|
|
9
|
+
</related>
|
|
10
|
+
<units>
|
|
11
|
+
<unit kind="a11y" href="a11y.xml" />
|
|
12
|
+
<unit kind="props" href="props.xml" />
|
|
13
|
+
<unit kind="usage" href="usage.xml" />
|
|
14
|
+
<unit kind="patterns" href="patterns.xml" />
|
|
15
|
+
</units>
|
|
16
|
+
</meta>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<patterns surface="avatar-group">
|
|
3
|
+
<example title="AvatarGroup structure">
|
|
4
|
+
<tsx><![CDATA[<AvatarGroup avatars={[{ fallback: "AB" }]} />]]></tsx>
|
|
5
|
+
<notes>Public assembly hint from legacy guide; not API authority.</notes>
|
|
6
|
+
</example>
|
|
7
|
+
</patterns>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<props surface="avatar-group">
|
|
3
|
+
<when_to_use>
|
|
4
|
+
<item>Show a compact list of people or entities with consistent avatar sizing</item>
|
|
5
|
+
<item>Display overlapping identity clusters in horizontal or vertical layouts</item>
|
|
6
|
+
<item>Collapse long avatar lists into a final overflow pill such as +15 or +9938</item>
|
|
7
|
+
</when_to_use>
|
|
8
|
+
<when_not_to_use>
|
|
9
|
+
<item>Interactive chip collections that need per-item actions</item>
|
|
10
|
+
<item>Mixed avatar sizes inside one group</item>
|
|
11
|
+
</when_not_to_use>
|
|
12
|
+
<prop name="avatars" kind="react">
|
|
13
|
+
<description>Supplies the avatar payloads rendered by the group in DOM order.</description>
|
|
14
|
+
</prop>
|
|
15
|
+
<prop name="direction" kind="react">
|
|
16
|
+
<description>Chooses whether avatars overlap across the inline or block axis.</description>
|
|
17
|
+
</prop>
|
|
18
|
+
<prop name="maxVisible" kind="react">
|
|
19
|
+
<description>Limits how many real avatars render before the optional overflow pill is appended. Omitted, zero, and negative values are ignored.</description>
|
|
20
|
+
</prop>
|
|
21
|
+
<prop name="overflowText" kind="react">
|
|
22
|
+
<description>Supplies the content rendered inside the optional overflow pill when truncation is active.</description>
|
|
23
|
+
</prop>
|
|
24
|
+
<prop name="size" kind="react">
|
|
25
|
+
<description>Selects the shared avatar footprint for every rendered avatar.</description>
|
|
26
|
+
</prop>
|
|
27
|
+
<css_var suffix="gap-size">
|
|
28
|
+
<description>Cutout gap used by overlap clip-path math.</description>
|
|
29
|
+
</css_var>
|
|
30
|
+
<css_var suffix="item-radius">
|
|
31
|
+
<description>Corner radius applied to grouped avatar items.</description>
|
|
32
|
+
</css_var>
|
|
33
|
+
<css_var suffix="overlap-distance">
|
|
34
|
+
<description>Negative margin overlap between adjacent avatars.</description>
|
|
35
|
+
</css_var>
|
|
36
|
+
<css_var suffix="size">
|
|
37
|
+
<description>Rendered avatar size used for overlap layout.</description>
|
|
38
|
+
</css_var>
|
|
39
|
+
</props>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<usage surface="avatar-group">
|
|
3
|
+
<do>Show a compact list of people or entities with consistent avatar sizing</do>
|
|
4
|
+
<do>Display overlapping identity clusters in horizontal or vertical layouts</do>
|
|
5
|
+
<do>Collapse long avatar lists into a final overflow pill such as +15 or +9938</do>
|
|
6
|
+
<dont>Passing per-avatar size values instead of using the group size prop</dont>
|
|
7
|
+
<dont>Expecting AvatarGroup to derive hidden-count labels instead of passing overflowText directly</dont>
|
|
8
|
+
<dont>Expecting grouped avatars to always render as circles — items keep theme radius/squircle via --vui-avatar-group-item-radius</dont>
|
|
9
|
+
<dont>Using non-positive maxVisible values expecting truncation</dont>
|
|
10
|
+
</usage>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<a11y surface="badge">
|
|
3
|
+
<rule>The status dot is a decorative ::after pseudo — not exposed to assistive tech</rule>
|
|
4
|
+
<rule>Do not rely on the dot alone for status; keep real meaning in the child's accessible name or nearby text</rule>
|
|
5
|
+
<rule>Children retain native semantics; Badge itself is a presentational div wrap</rule>
|
|
6
|
+
<rule>Enter/exit motion (hole↔dot, reverse on hide) is suppressed under prefers-reduced-motion</rule>
|
|
7
|
+
</a11y>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<meta id="badge" title="Badge" category="feedback" shared_contract="badge">
|
|
3
|
+
<summary>Decorative status-dot overlay that wraps a child, with optional radial mask cutout on the child around the corner dot.</summary>
|
|
4
|
+
<exports>
|
|
5
|
+
<export name="Badge" />
|
|
6
|
+
</exports>
|
|
7
|
+
<related>
|
|
8
|
+
<ref id="avatar" />
|
|
9
|
+
<ref id="avatar-group" />
|
|
10
|
+
<ref id="chip" />
|
|
11
|
+
<ref id="annotate" />
|
|
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
|
+
</meta>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<props surface="badge">
|
|
3
|
+
<when_to_use>
|
|
4
|
+
<item>Show online/offline or presence on an Avatar or icon without changing the child component API</item>
|
|
5
|
+
<item>Mark a control as needing attention with a small corner indicator</item>
|
|
6
|
+
<item>Keep Chip for labeled text badges; use Badge only for the status-dot overlay</item>
|
|
7
|
+
</when_to_use>
|
|
8
|
+
<when_not_to_use>
|
|
9
|
+
<item>Conveying critical status that assistive tech must announce — put real meaning in the child name or nearby text</item>
|
|
10
|
+
<item>Labeled text badges or tags — use Chip</item>
|
|
11
|
+
<item>Count or text inside a pill — out of scope for v1</item>
|
|
12
|
+
</when_not_to_use>
|
|
13
|
+
<prop name="color" kind="react">
|
|
14
|
+
<description>Highlight token driving the status-dot color via `--vui-badge-color`.</description>
|
|
15
|
+
</prop>
|
|
16
|
+
<prop name="position" kind="react">
|
|
17
|
+
<description>Places the status dot on a corner of the wrapped content.</description>
|
|
18
|
+
</prop>
|
|
19
|
+
<prop name="show" kind="react">
|
|
20
|
+
<description>When true, shows the decorative status dot and applies the radial mask cutout. Enter: hole expands, then the dot scales in. Exit: reverse (dot then hole).</description>
|
|
21
|
+
</prop>
|
|
22
|
+
<prop name="size" kind="react">
|
|
23
|
+
<description>Diameter of the status dot via `--vui-badge-size`.</description>
|
|
24
|
+
</prop>
|
|
25
|
+
<css_var suffix="color">
|
|
26
|
+
<description>Status-dot accent color. Defaults to var(--global-primary).</description>
|
|
27
|
+
</css_var>
|
|
28
|
+
<css_var suffix="position-x">
|
|
29
|
+
<description>Horizontal status-dot anchor. Position presets set it to 0% for start or 100% for end.</description>
|
|
30
|
+
</css_var>
|
|
31
|
+
<css_var suffix="position-y">
|
|
32
|
+
<description>Vertical status-dot anchor. Position presets set it to 0% for top or 100% for bottom.</description>
|
|
33
|
+
</css_var>
|
|
34
|
+
<css_var suffix="size">
|
|
35
|
+
<description>Status-dot diameter. Defaults to 0.5rem.</description>
|
|
36
|
+
</css_var>
|
|
37
|
+
</props>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<usage surface="badge">
|
|
3
|
+
<do>Show online/offline or presence on an Avatar or icon without changing the child component API</do>
|
|
4
|
+
<do>Mark a control as needing attention with a small corner indicator</do>
|
|
5
|
+
<do>Keep Chip for labeled text badges; use Badge only for the status-dot overlay</do>
|
|
6
|
+
<dont>Using the visible dot as the only source of status for assistive tech</dont>
|
|
7
|
+
<dont>Wrapping multiple element children when only one should receive the radial mask cutout</dont>
|
|
8
|
+
<dont>Expecting the dot to participate in hit-testing</dont>
|
|
9
|
+
</usage>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<a11y surface="beam">
|
|
3
|
+
<rule>Root stays in the accessibility tree; bloom layer is empty div</rule>
|
|
4
|
+
<rule>Beam is not a focus or status indicator — consumer owns accessible names and state</rule>
|
|
5
|
+
<rule>Offscreen instances pause animations without firing activate/deactivate</rule>
|
|
6
|
+
<rule>prefers-reduced-motion disables motion and leaves a static resting look</rule>
|
|
7
|
+
</a11y>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<meta id="beam" title="Beam" category="effect" shared_contract="beam">
|
|
3
|
+
<summary>Decorative animated border, line, or pulse glow on a transparent Surface shell (radius only). Put the visual card as children. CSS-module geometry plus shared ~30fps pulse rAF for pulse variants. Memory/CPU cost — use sparingly.</summary>
|
|
4
|
+
<exports>
|
|
5
|
+
<export name="Beam" />
|
|
6
|
+
</exports>
|
|
7
|
+
<related>
|
|
8
|
+
<ref id="surface" />
|
|
9
|
+
<ref id="glow" />
|
|
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>
|