@nekostack/ui

Vanilla CSS component library consuming @nekostack/theme tokens. 83 components, zero hardcoded colors, BEM-light naming.

Pick a component from the sidebar

Each component renders standalone so you can compare it across themes and modes.

Button

Default is primary. 9 color variants, 3 shape variants, sizes, states, group.

Colors
Shapes
Sizes / states
Group

Input

Text/email/password input with sizes, invalid state, disabled state.

Required.
https://

Textarea

Multi-line input.

Select

Native select, theme-aware via color-scheme.

Checkbox

Native checkbox, themed.

Radio

Switch

Range

Styled input[type="range"]. Track + thumb both themed.

File Input

Styled input[type="file"] via ::file-selector-button.

Rating

Star rating via hidden radios + clip-path stars.

Card

Header / body / footer with optional interactive variant.

Standard

OK
A card with a header badge and footer actions.

Interactive

Whole card is a link with hover/focus states.

Badge

Solid-fill inline labels. 9 colors + pill modifier.

Primary Secondary Accent 1 Accent 2 Accent 3 Info Success Warning Danger Pill

Tag

Soft-tinted chips for filters / selections.

Neutral Primary Secondary Accent 1 Accent 2 Accent 3 Info Success Warning Danger
Removable
Remove me

Alert

Primary

Default primary-toned alert.

Info

Heads up — something to know.

Success

Saved.

Warning

Proceed with caution.

Danger

Something went wrong.

Toast

Floating notification. Shown statically for preview.

Update available

v0.2 ready to install.

Saved

All changes synced.

Slow connection

Retry?

Upload failed

Could not reach the server.

Spinner

Progress

Radial Progress

Set --value inline (0–100). Uses conic-gradient.

25%
50%
75%
90%

Skeleton

Countdown

Tabular-numeric clocked display with themed cells.

02:34:56

Accordion

Built on native <details>. Animated chevron, no JS needed.

What's @nekostack/ui?
A vanilla CSS component library consuming @nekostack/theme tokens. No framework dependency.
Does it require JavaScript?
Most components are pure CSS. A few (dropdown click, carousel auto-rotate, countdown timer) accept optional JS for richer behavior but ship usable CSS-only fallbacks.
Can I theme it?
Yes — switch themes using the sidebar selector to see Neko, Synthwave, and Cupcake all share the same components.

Swap

Two-state visual toggle. Click to switch.

Dropdown

Hover or focus to open. Add data-open="true" via JS for click semantics.


Container

Max-width content wrapper.

Centered content with max-width and gutters.

Stack

Vertical gap between children.

Stack item 1
Stack item 2
Stack item 3

Cluster

Horizontal wrap with gap.

Status Pass

Grid

Auto-fit responsive columns.

Cell 1
Cell 2
Cell 3
Cell 4

Center

Centered

Divider

Left
Right

Table

Q1 results
MonthRevenueStatus
January$12.4kOn track
February$14.2kOn track
March$13.8kDip
April$16.1kRecord

List

Avatar

S CM LG

Stat

Users8,249+12.3%
Revenue$42k-2.1%
Uptime99.97%

Empty State

📦

No items yet

When you create items, they'll appear here.

Tabs

Link

Breadcrumb

Menu

Pagination

Navbar

Top navigation: brand + menu + actions.

Bottom Navigation

Mobile tab bar with active indicator.

Footer

Hero

Build with @nekostack/ui

Vanilla CSS, fully themable, no framework required.

Dialog

Native <dialog> with backdrop.

Create project

Drawer

Side-anchored panel. Demo shown statically.

Drawer

Slide-in sidebar pattern.

Tooltip

Hover or focus to reveal. 4 placements.

TopDefault BottomBelow LeftLeft side RightRight side

Popover

Notifications 3
You have 3 unread messages and 1 pending invite.

Chat Bubble

Conversation message bubbles.

Alice · 12:42
Hey, did you see the new component preview?
You · 12:43
Yeah! The mockups are great.
Glad you like them.

Indicator

Position a marker on a corner of any element.

9+
AB
NEW
Card

Carousel

CSS scroll-snap. Drag/scroll horizontally.

Diff

Side-by-side before/after, status-tinted.

- function add(a, b) { - return a + b - }
+ const add = (a, b) => a + b

Timeline

Steps

Wizard progress indicator. data-state controls per-step.

  1. Account
  2. Plan
  3. Payment
  4. Confirm
Vertical
  1. Sign up
  2. Configure
  3. Deploy

Artboard

Fixed-size device canvas for previewing content at exact viewport sizes.

Phone (320×568)

Phone viewport

Pre-sized for mobile previews — drop content in and see it at native dimensions.

Mask

Shape clip-paths for images / avatars / decorative wrappers.

Mockup: Window

OS window chrome with traffic-light controls.

App window

Drop any content here and it renders inside the mockup frame.

Mockup: Browser

Browser chrome with URL bar.

https://nekostack.dev/ui

Web page preview

Use this to showcase a website inside docs or marketing pages.

Mockup: Phone

Stylized phone with notch.

Mobile

Drop a mobile UI preview here.

Mockup: Code

Terminal / code block with line prefixes.

npm install @nekostack/ui added 1 package in 2s found 0 vulnerabilities peer @nekostack/theme not installed

Prose

Long-form typography wrapper.

Headings, paragraphs, lists

The .neko-prose class provides sensible long-form typography: capped line length, stacked margins, styled lists and blockquotes.

Quoted content gets a primary accent border.
  • Unordered list item
  • Another list item

Code

Inline code + keyboard keys.

const x = 42; Ctrl + S

Collapse

Checkbox-controlled show/hide. Alternative to accordion when you don't want native <details>.

Open by default
This collapse starts open. Click the title to close.
Animated grid-template-rows
Uses modern CSS grid animation for a smooth height transition.

Tree

Nested expand/collapse list — built recursively on <details>.

Theme Controller

Pre-styled dark/light toggle. Wire to data-mode in app code.

Toggle dark / light

Banner

Full-width announcement above content. Distinct from .neko-alert (which is block-level dismissable).

🎉 New release: v0.2 ships 26 new components!
ℹ️ Maintenance window scheduled for Saturday 2am UTC.
✅ All systems operational.
⚠️ Your trial ends in 3 days.
🚨 Service disruption — investigating.

Status

Tiny inline status dot. Use next to text labels for live state.

Operational
Degraded
Outage
Provisioning
Unknown
Sizes

Loading Dots

Three-dot bouncing loader. Alternative to spinner.

Loading…

Calendar

Static calendar grid primitive. Wire up day cells in app code.

June 2026
S
M
T
W
T
F
S

Stepper

Number input with +/- buttons. Native spinners hidden.

Sizes
Disabled

Kbd Combo

Group of <kbd> elements joined by separators (default +, modifier ).

CtrlShiftP Command palette
K Quick search
GD Go to dashboard (Gmail-style)