← back UI Component Playground CSS · JS · DOM
// buttons

Button Variants

All states: default, hover, active, loading, and disabled.

// form controls

Toggles & Sliders

Click to toggle state. Drag to adjust values.

Dark mode on
Notifications off
Auto-save on
Volume 72
Brightness 55%
Opacity 1.0
// navigation

Tabs

Switch between panels without a page reload.

This is the Overview tab. Click the other tabs to switch panels. State is managed in plain JavaScript — no framework needed.
function switchTab(btn, id) {
  document.querySelectorAll('.tab-btn')
    .forEach(b => b.classList.remove('active'));
  document.querySelectorAll('.tab-panel')
    .forEach(p => p.classList.remove('active'));
  btn.classList.add('active');
  document.getElementById(id).classList.add('active');
}
Settings panel. You could put a form here, some toggles, or anything else — the tab system is purely structural.
// disclosure

Accordion

Smooth expand/collapse with CSS max-height transitions.

A collection of interactive demos built with plain HTML, CSS, and JavaScript — no frameworks. It exists to demonstrate real skills, not just talk about them.

Because knowing the platform makes you better at using abstractions on top of it. Every toggle here works purely on class manipulation and CSS transitions.

CSS max-height transition from 0 to a safe large value. No JavaScript height calculations needed — just a class toggle.

// status

Badges & Cards

Status indicators and content cards.

Online In Progress Error Warning
[tools]
Tools
Built-in dev utilities and converters.
[api]
API
Live data fetched from external APIs.
[game]
Games
Canvas-based browser games.
// forms

Input Fields

Focus states, validation, and helper text.

4–20 characters
Enter a valid email address
// overlays

Modal & Toast Notifications

Trigger overlays with accessible focus trapping and smooth transitions.