v3.0.0 · What’s new
Vega UI
Built on the platform. Styled by tokens.Composable, accessible React components on top of real dialogs, popovers and inputs.- Components
- 62
- kB gzip, median component
- 2.5
- Browser engines in every test run
- 3
- Components with tested keys
- 35
Platform
Real HTML underneath.
A dialog is a <dialog>, a popover uses the popover attribute, a field is an input with native validation. The browser handles focus, Escape, the top layer and autofill. Vega UI adds the styles and the composition.How it worksLive DOM
<dialog>enters the DOM when openedComposable
One slider, any look.
Components come as parts: a track, a range, a thumb and its native input. Put your own content inside, restyle them with CSS variables, and keep the keyboard, ARIA and form value the library already gives you.StylingParts
.soundSound
.scrubber.stepsPreferred reading size
.homeHeat to21°
Keyboard
Every key is tested.
The keyboard tables in the docs are generated from specs, and a real browser checks every row: Playwright presses the key and looks where the focus and the active option land. 35 components are covered.Listbox accessibilityFocus the list and press any key from the table.
bug
feature
documentation
design
performance
security
accessibility
good first issue
help wanted
needs triage
wontfix
duplicate
| Key | Action |
|---|---|
| Tab | Moves the focus to the list, which makes the selected option, or the first enabled one, active. The list is one tab stop. |
| ↓↑ | Makes the next or previous enabled option active, skipping disabled ones and stopping at the ends. The focus stays on the list. |
| HomeEnd | Makes the first or last enabled option active. |
| Page DownPage Up | Moves the active option 10 options down or up, stopping at the last or first enabled one. |
| p | Typeahead: a printable character makes the next option whose label starts with the typed text active; characters typed quickly add up. Turned off with typeahead={false}. |
| EnterSpace | Selects the active option. With multiple, toggles it and keeps the other selected options. |
Accessibility
What a screen reader hears.
Labels, roles and states come from native elements, so assistive tech announces them without extra wiring. Focus a control or change it to see what the browser exposes.Switch accessibilityAnnouncementFocus any control.
World
One date, every calendar.
Values stay ISO 8601 strings, and the locale and calendar only change how a date is shown. Persian, Hebrew, Hijri and Japanese calendars plug in through @vega-ui/i18n, and right-to-left layouts mirror on their own.InternationalizationOctober 2026
SMTWTFS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
What the app stores
- value
- 2026-10-23
- locale
- en-US
- calendar
- gregory
- dir
- ltr
- Intl
- October 23, 2026
For AI
Docs your assistant can read.
Every page has a Markdown twin, and the whole documentation comes as plain text files for language models. Point your assistant at them and it writes Vega UI code from the same source you read.- llms.txtAn index of 329 pages, each linked to its Markdown.
- llms-full.txtThe whole English documentation in one 2.7 MB file.
- index.mdAdd index.md to any docs URL, or press Copy page at the top of it.
llms.txt
# Vega UI > Composable, accessible React components on top of real dialogs, popovers and inputs. Themed with CSS tokens, in light and dark. Install with `pnpm add @vega-ui/react @vega-ui/theme-core @vega-ui/icons`. Every link below is the Markdown version of a docs page. The whole English documentation in one file: https://vega-ui.github.io/ui/llms-full.txt ## Guides - [Getting started](https://vega-ui.github.io/ui/docs/getting-started/index.md): Install the packages, connect the styles and the theme, and render your first component.- [Styling](https://vega-ui.github.io/ui/docs/styling/index.md): This section documents the global styling model behind VegaUI. Read it before the Styling page of a component.- [Themes](https://vega-ui.github.io/ui/docs/styling/themes/index.md): VegaUI ships a separate theme layer in @vega-ui/theme-core. The package entrypoint is packages/theme/src/index.css, which imports both light.css and dark.css.- [Tokens](https://vega-ui.github.io/ui/docs/styling/tokens/index.md): Global tokens live in @vega-ui/tokens-core: raw scales for color, type, radius, spacing, motion, shadow and layering that the themes build on.
Templates
Screens, not snippets.
23 templates assemble whole product screens from the same components. Open one, copy the source and make it yours.All templates- templates/analytics.tsxAnalyticsA period switch that drives KPI cards, traffic sources, conversion, an activity heatmap and top pages.
- templates/checkout.tsxCheckoutContact and shipping address, country select, shipping options and an order summary with live totals.
- templates/booking.tsxBookingStay dates with unavailable nights, a guest counter, a price breakdown and a confirm sheet.
Catalog
Everything a product needs.
62 components share the same tokens, the same parts model and the same keyboard rules. Sizes are JS and CSS after gzip.All components- Actions · 5
- Form · 22
- Checkbox3 kB
- CheckboxCard4.4 kB
- DateField12 kB
- DateRangeField12.3 kB
- DateTimeField12.5 kB
- Fieldset1.3 kB
- HelperText1.1 kB
- Label1 kB
- Listbox3.8 kB
- NumberField13.3 kB
- Option0.8 kB
- PasswordField4.4 kB
- PhoneField58.1 kB
- PinField7.1 kB
- Radio0.8 kB
- SegmentedControl2.3 kB
- Select15.4 kB
- Slider3.4 kB
- Switch1.7 kB
- TextArea0.8 kB
- TextField1.1 kB
- TimeField8.1 kB
- Overlay · 5
- Navigation · 2
- Data · 9
- Feedback · 6
- Display · 5
- Typography · 4
- Utils · 4
Start building.
Install the components and the theme, then import only what you use.pnpm add @vega-ui/react @vega-ui/theme-core @vega-ui/icons