Repository navigation
Releases: Krelborn/StylesUI
Release list
v0.8.1
New
- Published to npm.
@krelborn/stylesuinow installs from npmjs.com with no.npmrcor token:pnpm add @krelborn/stylesui. Versions up to 0.8.0 stay on GitHub Packages only, so if your project's.npmrcmaps@krelborntonpm.pkg.github.com, remove that line to get this version and later ones. - Provenance. GitHub Actions builds and publishes each version through npm's trusted publishing, and npm attaches a provenance attestation linking the package to the commit and workflow run it came from.
The components are unchanged from 0.8.0.
Full changelog: v0.8.0...v0.8.1
v0.8.0
Breaking
- Checkbox, Radio and Switch are smaller. The Checkbox box and the Radio circle go from 24px to
--sui-space-4. The Switch track goes from 2.75rem by 1.5rem to--sui-space-6by--sui-space-4. Layouts tuned to the old sizes will shift. - A choice control's label is no longer a flex container. Its children must be inline content, as HTML requires of a
label: a child laid out as a block drops below the box. Flex overrides on the label no longer apply, and padding set throughstylemoves the box.
New
- Label text lines up on the space scale. Checkbox and Radio text starts at
--sui-space-6, so text padded byvar(--sui-space-6)lines up under it. Switch text starts at--sui-space-8, so pad text under a switch byvar(--sui-space-8). This holds in every theme. - A hover halo on Checkbox, Radio and Switch. It shows only on devices that can hover, never on a disabled control, and never while the control has keyboard focus.
--sui-choice-control-halo-spreadsets its size, and0pxturns it off. - The box is centred on the label's first line, halfway between the capital and lowercase letters, and every label stays a 24px target in small text.
Fixes
- The
playfulspring no longer carries the Switch thumb into the track's border.
Full changelog: v0.7.0...v0.8.0
v0.7.0
Breaking
variant="outline"is nowvariant="outline-primary"."outline"is no longer aButtonVariant, so TypeScript rejects it. In plain JavaScript it raises no error and the button renders as a filled primary button, so search for it. The outline hover is now an 8% tint of the button's text colour instead of--sui-color-primary-subtle.OverlayPlacementhas new members. Code that handles every member, such as aRecord<OverlayPlacement, …>or aswitchwith anevercheck, needs the new cases.
New
- Status Button variants:
success,info,warninganddanger, each with its own hover colour token in every palette. - Outline variants in each colour:
outline-primary,outline-secondaryand one per status colour. - Aligned overlay placements:
top-start,top-end,bottom-startandbottom-endforTooltipandPopover, mirrored in right-to-left. usePopoverreturns focus to the trigger when the popover closes with focus inside it, or with focus lost to the page afterclose()(WebKit). ItsinitialFocusoption chooses what gets focus when the popover opens.
Fixes
- Popover syncing is hardened (#46). A browser refusing to show or hide a popover is retried once on the next task, and a second refusal is reported as
PopoverRefusedErrorwithout unmounting the app. Any other error is no longer swallowed. - Publishing is split into a build job and a publish job, so only the publish job holds the token, and every action is pinned to a commit SHA (#47).
Full changelog: v0.6.0...v0.7.0
v0.6.1-beta.0
v0.6.0
New icons and a popover crash fix
Two new icons: PaletteIcon and ColorModeIcon, drawn from Lucide's palette and sun-moon.
Closing a popover with Escape, while its trigger also has a tooltip (as an IconButton does), no longer crashes the app. The browser refuses to show a popover while it is closing another, so the tooltip now waits a task before showing when focus returns from a closing popover, and Overlay retries a refused show or hide once on the next task. A second refusal is reported from a timer instead of unmounting the React root.
What's Changed
- Run story test files one at a time per project by @Krelborn in #43
- Add PaletteIcon and ColorModeIcon by @Krelborn in #44
- Stop a popover's closing from crashing the app through an Overlay effect by @Krelborn in #45
Full Changelog: v0.5.0...v0.6.0
v0.5.0
Palettes: colour is now separate from themes
A theme sets shape (radius, borders, shadows, spacing, motion, fonts); a palette sets colour. Theme has a new palette prop (and data-sui-palette attribute), with five palettes: bright (default's companion), pop (playful's), mist, paper and dusk. New exported type: PaletteName.
No --sui-* token was removed. Themes now take their colours from their companion palettes, so default and playful colours may shift slightly; check any custom overrides.
What's Changed
Full Changelog: v0.4.0...v0.5.0
v0.4.0
v0.3.0
v0.2.2
What's Changed
- Add Icon components by @Krelborn in #35
- Add common UI icons and RTL mirroring support by @Krelborn in #36
- Sync new components and icons to Claude Design by @Krelborn in #37
- Scroll wide Prose tables, shade their header cells and move info to indigo by @Krelborn in #38
Full Changelog: v0.2.1...v0.2.2