Changelog
Notable changes to nsdev/ui, newest first. Entries are dated, not versioned, until it is decided how the library is distributed.
Block: Navigation 2
Added
- Navigation 2: a fixed underlay navigation. The menu sits underneath the page, and a Menu button slides the page aside to show it, with the same entrance as Navigation 1 for the links, the hairline and the contact details. See Navigation 2.
Navigation 1: optional picture
Added
- No picture:
<Navigation1 image={false} />puts the card on the plain page background instead of the canyon picture. See Navigation 1.
Fixed
- Narrow cards: in a narrow space the phone number in the open card no longer wraps onto two lines.
Button: small size and ghost variant
Added
- Small Button:
size="sm"is 28px tall with 14px text, andsize="icon-sm"is a 28px square for an icon. See Button. - Ghost Button:
variant="ghost"has no fill and no outline until you point at it.
Changed
- Button widths animate: a button that changes between two set widths, such as a label becoming an icon, now grows or shrinks smoothly. The regular buttons look the same as before.
- Navigation 1: its links use Scramble on Hover and its menu button is a Button.
Text effects
Added
- Scramble on Hover: text whose letters flicker through random characters and settle when the mouse moves over it. See Scramble on Hover.
- Scramble on Load: a heading or line of text that does the same as soon as it is on the screen. See Scramble on Load.
Changed
- Components menu: a fifth group, Text, for effects on text.
First block: Navigation 1
Added
- Navigation 1: an animated navigation menu. A small card with a logo and a MENU button opens into a larger one with the links, and the button becomes a plain cross. Contact details and social links sit under the links. See Navigation 1.
- Blocks: the section is open, with a menu of Marketing, Form and Authentication, and a viewer that shows each block in a Desktop, Tablet or Mobile frame, with its code a click away.
Ten toast examples
Changed
- Toast: now compact, with an icon before the text. The page shows ten examples: success, error, promise, multi line, emoji, dark, JSX content, themed, custom position and a fully custom layout. See Toast.
- Toast options: a toast takes an icon, one of six positions and a tone through
data, andpromise()turns a loading toast into its result. - Toast close button: now just a quiet cross in the top right corner, lined up with the first line of text, with no border.
- Toast loading type:
type: "loading"shows a spinner and stays until it is updated or closed.
Overlays, menus and feedback
Added
- Accordion: a stack of sections that open and close. See Accordion.
- Alert Dialog: a dialog for a question that has to be answered. See Alert Dialog.
- Collapsible: one section with a button that opens it. See Collapsible.
- Context Menu: a menu that opens where you right-click. See Context Menu.
- Dialog: a window over the page that holds focus. See Dialog.
- Dropdown Menu: a list of actions that opens from a button. See Dropdown Menu.
- Hover Card: a preview that opens when you hover or focus a link. See Hover Card.
- Popover: a floating panel that opens from a button. See Popover.
- Scroll Area: a scrolling region with themed scrollbars. See Scroll Area.
- Select: choose one value from a list. See Select.
- Tabs: panels you switch between with a row of tabs. See Tabs.
- Toast: a short message that goes away by itself. See Toast.
- Tooltip: a small label for hover and focus. See Tooltip.
Changed
- Components menu: it now has four groups: Foundations, Form controls, Disclosure & Overlays, and Menus & Feedback.
- Overlays share one look: every popup uses the same surface, motion and stacking order.
Eight more components
Added
- Alert: a message in the page, in four tones. See Alert.
- Card: a raised surface built from a header, content and footer. See Card.
- Field: joins a label, a control, a hint and an error, with a Fieldset for groups. See Field.
- Kbd: a keyboard key. See Kbd.
- Skeleton: a placeholder that holds the shape of loading content. See Skeleton.
- Spinner: a ring for something that is happening for an unknown time. See Spinner.
- Textarea: a multi-line text field. See Textarea.
- Toggle Group: a row of toggles, to pick one or several. See Toggle Group.
Changed
- Components menu: it now has two groups, Foundations and Form controls. Checkbox, Input, Label, Radio Group, Slider, Switch and Toggle moved to Form controls.
Eleven new components
Added
- Avatar: an image with a fallback, three sizes and an overlapping group. See Avatar.
- Badge: a small status label, with success, warning and destructive variants, that can render as a link. See Badge.
- Checkbox: checked, unchecked, indeterminate and disabled. See Checkbox.
- Input: a text field with hover, focus, disabled and invalid states. See Input.
- Label: a label that dims along with a disabled control. See Label.
- Progress: a bar for known and unknown progress. See Progress.
- Radio Group: pick one option from a list. See Radio Group.
- Separator: a horizontal or vertical divider. See Separator.
- Slider: a single value or a range of two. See Slider.
- Switch: an on-off setting that works straight away. See Switch.
- Toggle: a button that stays pressed. See Toggle.
Changed
- Components menu and index: they now list components from A to Z.
Button page, and a green default
Added
- Button page: a live demo of every variant with its source, plus notes on the design, the interaction and accessibility. See Button.
- Destructive variant: a danger fill for actions that remove something.
- Inverse variant: the light fill the default button used to have, for places where green isn't wanted.
- Components section: its own menu on the left, and an index page.
Changed
- Default Button: it now uses the green accent. The old light fill is the
inversevariant. - Pressed state: a pressed button shrinks to 97% with a 150ms animation. Before, it moved 1px, and the animation never ran.
- Icons in a button: they are 16px unless you size them yourself.
Fixed
- Focus rings: keyboard focus was not visible on buttons and links across the site. It now draws a 2px outline.
Foundations begin
Added
- Design tokens: color, typography and radius, declared once in a single
@themeblock. See Theming. - Typefaces: Host Grotesk for interface text and Geist Mono for code. See Typeset.
- Button: primary and secondary variants and a default and an icon size, built on Base UI. Hover, focus, pressed and disabled states are all styled.
- Docs: Introduction, Theming and Typeset.