Components
- Accordion
- Alert
- Alert Dialog
- Aspect Ratio
- Avatar
- Badge
- Breadcrumb
- Button
- Button Group
- Calendar
- Card
- Carousel
- Chart
- Checkbox
- Code Block
- Collapsible
- Combobox
- Command
- Context Menu
- Copy Button
- Data Table
- Date Picker
- Dialog
- Drawer
- Dropdown Menu
- Empty
- Field
- Form
- Hover Card
- Input
- Input Group
- Input OTP
- Item
- Kbd
- Label
- Menubar
- Native Select
- Navigation Menu
- Page Header
- Pagination
- Panel
- Popover
- Progress
- Radio Group
- Resizable
- Scroll Area
- Section Header
- Select
- Separator
- Sheet
- Sidebar
- Skeleton
- Slider
- Sonner
- Spinner
- Stat
- Stat Card
- Switch
- Table
- Tabs
- Textarea
- Theme Toggle
- Toggle
- Toggle Group
- Tooltip
Changelog
Notable changes to the Swiss UI registry and documentation.
2026-07-29
0.3.0 — Base UI
- ChangedReplaced Radix UI with Base UI (@base-ui/react) across all 32 primitive-backed components. The registry now ships shadcn new-york structure on Base UI primitives while keeping the Swiss visual language unchanged.
- ChangedRegistry npm dependencies consolidated to @base-ui/react instead of individual @radix-ui/react-* packages.
- ChangedComposition API: overlay triggers, Button, Badge, BreadcrumbLink, Item, and sidebar menu buttons use Base UI render props (with nativeButton={false} for non-button targets) instead of Radix asChild.
- ChangedDrawer migrated from vaul to @base-ui/react/drawer. State styling follows Base UI data-open / data-closed conventions.
- Addedregistry:base item pins the swiss style to Base UI; components.json base field set to "base".
- RemovedRadix Slot/asChild patterns, @radix-ui/* direct dependencies, and vaul from the drawer stack.
2026-07-23
Structural Grid consistency
- ChangedEnforced Zero Radius in component source with rounded-none across the registry, including switch, radio, avatar, slider, progress, scroll area, carousel controls, badge, and checkbox (no circular chrome exceptions).
- ChangedRemoved soft elevation language: backdrop blur on dialog/sheet/drawer/alert-dialog overlays, and shadow treatments on sidebar, navigation menu, and chart tooltip — separation uses hairline borders and rings instead.
- ChangedUnified overlay chrome: Sheet and Drawer now match Dialog density (p-4 content, gap-2 headers, flush muted footers, close at top-2 right-2). Popover and Hover Card snap to p-2.
- ChangedAligned spacing rhythm: marketing Hero/CTA use py-24; gap-px cells use p-6 sm:p-8; page gaps stick to the 4/8/16/24/32 ladder; Item default vs sm sizes diverge again.
- ChangedReplaced the code-example fade gradient with a flat muted overlay.
- AddedPRODUCT.md and DESIGN.md (Creative North Star: The Structural Grid) documenting product truth and the incumbent visual system for future work.
2026-06-22
Label typography and CJK docs
- AddedThe .label utility (0.75rem / 12px) for compact metadata typography, driven by --label-* CSS variables that switch to sans-serif, normal case, and normal tracking under :lang(ja|ko|zh-*).
- ChangedLabel styles centralized across UI components (Label, Button, Badge, Tabs, table headers, menu labels, and others) via the .label utility instead of inline uppercase tracking classes.
- AddedNoto Sans JP, KR, SC, and TC registry font items. The swiss style now depends on them so CJK text renders with consistent webfonts instead of OS fallbacks.
- AddedDedicated /cjk documentation with side-by-side Latin/CJK examples, locale font mapping, and a live component gallery for Korean, Japanese, and Simplified Chinese.
- ChangedTypography utility-class docs moved from /components/typography to /typography. The page is listed in the Get Started sidebar before CJK and removed from the components index and sidebar.
- AddedPermanent redirect from /components/typography to /typography.
2026-06-22
0.2.0 — Radix UI
- ChangedReplaced Base UI with Radix UI across all 32 primitive-backed components. The registry now ships shadcn new-york structure on Radix primitives while keeping the Swiss visual language unchanged.
- ChangedRegistry npm dependencies switched from @base-ui/react to individual @radix-ui/react-* packages (accordion, dialog, dropdown-menu, slot, and others).
- ChangedComposition API: render props removed in favor of Radix asChild on Button, Badge, BreadcrumbLink, Item, sidebar menu buttons, and overlay triggers.
- ChangedState styling selectors updated to Radix conventions — for example data-open to data-[state=open], data-active to data-[state=active], and orientation attributes to data-[orientation=horizontal].
- RemovedBase UI-only utilities (@base-ui/react/merge-props, useRender) and the nativeButton prop on Button.
- ChangedTooltipProvider now uses delayDuration instead of delay. Accordion and ToggleGroup require an explicit type prop per Radix.
- ChangedUpdated README, landing copy, and registry build output for the new stack.
2026-06-15
0.1.0 — Registry alignment and docs
- AddedSize variants on Input and Textarea (sm and default), using data-size selectors consistent with Select and Native Select.
- ChangedButton now emits data-variant and data-size attributes to match the official shadcn styling contract.
- FixedInput Group Button sm size now applies real height and padding styles instead of falling through as a no-op.
- ChangedRestyled the default Tabs variant as a hairline segmented control with a solid inverted active tab (no floating shadow), and matched both variants to the same height.
- AddedNew Panel and Section Header layout components, ported from the Swiss design language and now used across the docs pages.
- AddedA swiss registry:style item that ships the design tokens, utilities, and keyframes, plus the Geist and Geist Mono fonts, so installing the theme styles every component.
- AddedDedicated Installation and Theming pages, and this Changelog.
- ChangedRegistry dependencies now resolve to our own items instead of stock shadcn, and the use-mobile hook, utils lib, and missing vaul dependency are shipped so components install correctly anywhere.
- AddedReal descriptions, categories, and author metadata on every registry item.
- RemovedDropped the registry:block layer and the /blocks route. Blocks existed only for dogfooding and are no longer published as installable items.
- AddedPromoted the reusable blocks into components: Copy Button, Code Block, Theme Toggle, Stat, Stat Card, and Page Header.
- ChangedDecomposed Page Header into composable parts (PageHeaderHeading, PageHeaderContent, PageHeaderTitle, ...) and removed its built-in breadcrumb.
- ChangedTypography is now a style-only page of utility-class examples, and a new style-only Form page shows how to compose forms from primitives.
- AddedEvery example now has a collapsible source block revealed with a View Code button.
- ChangedFlattened component categories into a single alphabetical list and removed the redundant empty-state block.
- ChangedSimplified the header to Docs and Components, with the remaining doc pages in the sidebar and footer; updated the footer columns and copyright.
- AddedNamespace setup instructions so you can register @swiss once and install items by short address like @swiss/button.
- RemovedThe redundant Manual tab from install commands, leaving a single CLI command.
2026-06-12
0.1.0 — Initial release
- AddedSwiss UI shadcn registry and documentation site, with every primitive restyled in the International Typographic Style.
- AddedDeferred primitives including calendar, date picker, chart, data table, carousel, resizable, and sidebar.
- AddedDocumentation search in the header, opened with Cmd+K.
- AddedPersistent docs sidebar that keeps its scroll position across navigation.
- AddedExpanded Radio Group documentation with additional examples.
- FixedSlider preview collapsing to zero width on the components grid.