Snice

64 Components

Pre-built UI components. Use standalone or with React/Vue/Angular.

Buttons

All variants, sizes, and states

Default Primary Success Warning Danger Text
Outline Success Danger
Small Medium Large
Pill Button + ×
Loading Disabled

Form Controls

Inputs, selects, toggles, and sliders

Notifications

Select / Dropdown

Searchable, multi-select, and custom dropdowns

United States United Kingdom Canada Australia Germany France Japan Engineering Design Marketing Sales
JavaScript TypeScript React Vue Node.js Python Go Rust

Progress & Loading

Linear progress bars and spinners

Download Progress
Upload Complete
Storage Warning
Processing

Alerts

Contextual feedback messages

This is an informational message. Use it to provide helpful context. Your changes have been saved successfully. Please review your input before continuing. An error occurred. Please try again.

Badges

Notification indicators and count displays

Messages Notifications Updates
Status: Priority: Type:

Chips

Tags, filters, and selections

Avatars

User profile images with fallback initials

Cards

Content containers with header/footer slots

Elevated Card

Cards with shadow appear to float above the surface.

Action

Outlined Card

Outlined cards have a subtle border.

Learn More

Skeleton

Loading placeholders

Divider

Content separators in horizontal and vertical orientations

Home Products About Contact

Breadcrumbs

Navigation path indicators

Modal

Dialog overlays for focused interactions

Open Modal Form Modal

Confirm Action

Are you sure you want to proceed? This action cannot be undone.

Cancel Confirm

Edit Profile

Cancel Save Changes

Tooltip

Contextual information on hover or click

Top Right Bottom Left Click Trigger

Pagination

Navigation for paged content

Link

Styled anchor elements

Default Link Primary Secondary Always Underlined External Link

Empty State

Placeholder for empty content areas

Timer

Countdown and stopwatch timers

Color Picker

Interactive color selection

Date Picker

Date selection with calendar

QR Code

Generate QR codes with colors, logos, and styles

Accordion

Expandable content sections

What is Snice?

A TypeScript web component library with decorators, differential rendering, and separation of concerns.

How do I install it?

Run npm install snice to get started. Components are tree-shakeable.

Is it accessible?

Yes! All components follow WCAG guidelines with keyboard navigation and ARIA attributes.

Tabs

Tabbed content navigation

Overview Features Usage

Snice provides 64 production-ready UI components built with TypeScript and modern web standards.

Decorators, differential rendering, routing, controllers, form association, and more.

Use standalone builds, or import from the full package. Works with React, Vue, and Angular.

Banner

Full-width notification banners

Show Info Banner Show Warning Banner

Drawer

Slide-out panels from any edge

Left Drawer Right Drawer Bottom Drawer

Navigation

Dashboard Projects Settings

Details Panel

Additional information and actions can go here.

Quick Actions

Save Cancel

Menu

Dropdown menus with keyboard navigation

Actions Menu Edit Duplicate Delete More Options Download Share Archive

Toast

Temporary notification messages

Success Toast Error Toast Warning Toast Info Toast

Command Palette

Keyboard-driven command search (Ctrl/Cmd+K)

Open Command Palette or press Ctrl+K

Stepper

Multi-step process indicator

Previous Next

Chart

Line, bar, pie, and area charts

Sparkline

Inline mini charts

Revenue
Users
Errors

Timeline

Chronological event display

Image

Lazy-loaded images with variants

Carousel

Image and content slider

Slide 1
Slide 2
Slide 3

File Upload

Drag-and-drop file selection

File Gallery

File management with previews and upload progress

Code Block

Syntax-highlighted code display

Terminal

Interactive command-line interface

Chat

Real-time messaging interface

Split Pane

Resizable split layouts

Left Panel

Drag the divider to resize

Right Panel

Content adjusts automatically

Calendar

Date picker calendar with events

Draw

Freehand drawing canvas

Clear Undo Download

Color Display

Color swatch with label

Kanban

Drag-and-drop kanban board

Location

Address and coordinate display

Camera

Webcam capture (requires permission)

Open Camera

Camera Capture

Close

QR Reader

QR code scanner (requires camera permission)

Open QR Scanner

Scan QR Code

Close

Audio Recorder

Voice recording (requests mic permission on record)

Music Player

Audio playback with playlist

Standalone Build

Use any component without the full framework

npx snice build-component button
# creates snice-button.min.js (~25kb gzipped)

<script src="snice-button.min.js"></script>
<snice-button variant="primary">Works anywhere</snice-button>

React Adapter

First-class React 17+ support

import { Button, Input, Alert } from 'snice/react';

function LoginForm() {
  const [email, setEmail] = useState('');

  return (
    <>
      <Input
        label="Email"
        value={email}
        onChange={(e) => setEmail(e.detail.value)}
      />
      <Button variant="primary" onClick={handleSubmit}>
        Sign In
      </Button>
    </>
  );
}

All 64 Components

snice-accordion snice-alert snice-audio-recorder snice-avatar snice-badge snice-banner snice-breadcrumbs snice-button snice-calendar snice-camera snice-card snice-carousel snice-chart snice-chat snice-checkbox snice-chip snice-code-block snice-color-display snice-color-picker snice-command-palette snice-date-picker snice-divider snice-doc snice-draw snice-drawer snice-empty-state snice-file-gallery snice-file-upload snice-image snice-input snice-kanban snice-kpi snice-layout snice-link snice-list snice-location snice-login snice-menu snice-modal snice-music-player snice-nav snice-pagination snice-progress snice-qr-code snice-qr-reader snice-radio snice-select snice-skeleton snice-slider snice-sparkline snice-spinner snice-split-pane snice-stepper snice-switch snice-table snice-tabs snice-terminal snice-textarea snice-timeline snice-timer snice-toast snice-tooltip snice-tree snice-virtual-scroller