@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.
Input
Text/email/password input with sizes, invalid state, disabled state.
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
OKInteractive
→Badge
Solid-fill inline labels. 9 colors + pill modifier.
Tag
Soft-tinted chips for filters / selections.
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.
Skeleton
Countdown
Tabular-numeric clocked display with themed cells.
Accordion
Built on native <details>. Animated chevron, no JS needed.
What's @nekostack/ui?
Does it require JavaScript?
Can I theme it?
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.
Stack
Vertical gap between children.
Cluster
Horizontal wrap with gap.
Grid
Auto-fit responsive columns.
Center
Divider
Table
| Month | Revenue | Status |
|---|---|---|
| January | $12.4k | On track |
| February | $14.2k | On track |
| March | $13.8k | Dip |
| April | $16.1k | Record |
List
- AAliceOnline
- BBobAway
- CCarolOffline
Avatar
Stat
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.
Drawer
Side-anchored panel. Demo shown statically.
Tooltip
Hover or focus to reveal. 4 placements.
Popover
Chat Bubble
Conversation message bubbles.
Indicator
Position a marker on a corner of any element.
Carousel
CSS scroll-snap. Drag/scroll horizontally.
Diff
Side-by-side before/after, status-tinted.
Timeline
- Project created
Jan 4, 2026 - v0.1 published
Feb 12, 2026 - Cupcake theme added
Jun 15, 2026 - 26 new components
Today
Steps
Wizard progress indicator. data-state controls per-step.
- Account
- Plan
- Payment
- Confirm
- Sign up
- Configure
- Deploy
Artboard
Fixed-size device canvas for previewing content at exact viewport sizes.
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.
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.
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>.
Tree
Nested expand/collapse list — built recursively on <details>.
📁 src
📁 components
📁 themes
📁 dist
Theme Controller
Pre-styled dark/light toggle. Wire to data-mode in app code.
Banner
Full-width announcement above content. Distinct from .neko-alert (which is block-level dismissable).
Status
Tiny inline status dot. Use next to text labels for live state.
Loading Dots
Three-dot bouncing loader. Alternative to spinner.
Calendar
Static calendar grid primitive. Wire up day cells in app code.
Stepper
Number input with +/- buttons. Native spinners hidden.
Kbd Combo
Group of <kbd> elements joined by separators (default +, modifier →).