How it works
Snow CSS is a single-file design system. One accent color generates a complete light + dark palette using OKLCH color science.
Hybrid styling
Typography elements like headings, paragraphs, links, code, and blockquotes are styled automatically — no classes needed. Everything else uses explicit snow-* classes:
- Buttons:
snow-btn,snow-btn-primary,snow-btn-outline - Forms:
snow-input,snow-select,snow-textarea - Components:
snow-card,snow-accordion,snow-dialog - Labels:
snow-label,snow-fieldset,snow-legend
Light & dark mode
Both themes are generated automatically from your accent color. The active theme follows the user's system preference, or can be set manually with data-theme="dark" on the root element.
Tailwind compatible
All styles are wrapped in @layer declarations (snow-base, snow-components, snow-flair) so Tailwind utility classes always take precedence.
Customization
Use the wizard to pick your accent color, typography, spacing, and flair — then generate an AI-ready prompt or raw CSS.
Using the wizard
Click the Customize tab on the right to open the wizard. Changes preview live on the page as you adjust:
- Palette — Pick an accent color. A full set of semantic colors (primary, secondary, success, warning, error) plus backgrounds, text, and borders are generated for both light and dark mode.
- Typography — Choose a font family and base font size.
- Spacing & Shape — Adjust spacing scale, border radius, and shadow intensity.
Generate AI prompt
Click Generate Prompt in the wizard footer. The modal gives you two outputs:
- AI Prompt — A complete prompt containing your theme CSS, full class reference, and Tailwind config. Paste it straight into Claude or your AI coder to build with your exact design system.
- CSS Only — The raw CSS custom properties to drop into your stylesheet.
Typography
Beautiful typography out of the box with fluid scaling.
Headings
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Paragraph text
This is a paragraph of text. Snow CSS provides comfortable line-height and spacing for optimal readability. The font size scales fluidly based on viewport width.
Bold text, italic text, and highlighted text are all styled.
Blockquotes
Design is not just what it looks like and feels like. Design is how it works.
Links
Clean link styling with accessible focus states.
This is a regular link in a paragraph.
Links can also be underlined or plain.
Lists
Default classless lists plus styled variations with the snow-list class.
Default (classless)
Bare <ul> and <ol> elements get sensible styling automatically.
- Unordered item one
- Unordered item two
- Nested item
- Another nested item
- Deep nested
- Unordered item three
- First ordered item
- Second ordered item
- Third ordered item
snow-list
Adds primary-colored markers. Apply to <ul> or <ol>.
- Primary-colored bullet
- Another item
- Third item
- Numbered with color
- Second item
- Third item
snow-list-none
Strips all markers and indentation.
- No bullet
- Clean and minimal
- Just text
snow-list-inline
Horizontal list, great for tags or breadcrumbs.
- Home
- Products
- Pricing
- About
snow-list-divided
Items separated by subtle border lines.
- Email notifications
- Push notifications
- SMS alerts
- Weekly digest
snow-list-check
Checkmark bullets in your primary color.
- Unlimited projects
- Priority support
- Custom domains
- Advanced analytics
snow-list-timeline
Vertical timeline with connected dots.
- Project kickoff
Initial planning and requirements gathering. - Design phase
Wireframes and visual design. - Development
Build and iterate on core features. - Launch
Deploy to production.
Definition lists
Use snow-dl for vertical or snow-dl-horizontal for side-by-side layout.
- HTML
- HyperText Markup Language — the standard markup for web pages.
- CSS
- Cascading Style Sheets — controls presentation and layout.
- JS
- JavaScript — adds interactivity and dynamic behavior.
- Status
- Active
- Created
- January 15, 2026
- Last updated
- February 9, 2026
Tables
Clean, readable tables with proper spacing.
| Name | Role | Status |
|---|---|---|
| Alice | Developer | Active |
| Bob | Designer | Active |
| Carol | Manager | Away |
Code
Inline and block code styling.
Inline code
Use const x = 42; for inline code snippets.
Code blocks
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet('World'));
Keyboard input
Press Ctrl + S to save.
Text inputs
All input types styled beautifully with snow-input classes.
Basic usage
Form groups (snow-form-group)
Validation states
Selects
Native select elements with custom styling.
Checkboxes & Radios
Custom styled checkboxes and radio buttons.
Accordion
Native HTML <details> element styled as an accordion.
What is Snow CSS?
Snow CSS is a modern, class-based CSS framework that provides beautiful styling for HTML elements using snow-* classes.
How do I customize it?
Snow CSS is built on CSS custom properties. Override the variables in your own stylesheet or use the wizard to generate custom CSS.
Is it accessible?
Yes! Snow CSS is built with accessibility as a core principle, including proper contrast ratios, focus states, and semantic markup.
Cards
Card components using the snow-card class.
Basic card
Card Title
This is a card component. It uses the snow-card class and provides a contained section for content.
Structured card (snow-card)
Card Title
Card body content goes here. This is a structured card component with explicit sections.
<div class="snow-card">
<div class="snow-card-header"><h2>Title</h2></div>
<div class="snow-card-body"><p>Content</p></div>
<div class="snow-card-footer"><button class="snow-btn">Action</button></div>
</div>
Dialog
Native HTML <dialog> element for modals.
<dialog id="my-dialog" class="snow-dialog">
<div class="snow-dialog-header">
<h3>Title</h3>
<button class="close" onclick="this.closest('dialog').close()">×</button>
</div>
<div class="snow-dialog-body">
<p>Dialog content...</p>
</div>
<div class="snow-dialog-footer">
<button class="snow-btn snow-btn-secondary">Cancel</button>
<button class="snow-btn snow-btn-primary">Confirm</button>
</div>
</dialog>
Pagination
Navigation for paged content.
<nav>
<ul class="snow-pagination">
<li><a href="#">«</a></li>
<li><a href="#">1</a></li>
<li class="active"><a href="#" aria-current="page">2</a></li>
<li><a href="#">3</a></li>
<li><span class="ellipsis">…</span></li>
<li><a href="#">12</a></li>
<li><a href="#">»</a></li>
</ul>
</nav>
Search
Search input with icon and optional clear button.
<div class="snow-search">
<span class="snow-search-icon">
<svg ...></svg>
</span>
<input class="snow-input" type="search" placeholder="Search...">
</div>
Filters
Filter chips for toggling categories or tags.
<div class="snow-filter-bar">
<button class="snow-filter-chip active">All</button>
<button class="snow-filter-chip">Design <span class="snow-filter-count">12</span></button>
<button class="snow-filter-chip">Development <span class="snow-filter-count">8</span></button>
<button class="snow-filter-chip">Marketing <span class="snow-filter-count">5</span></button>
</div>
Toggle Group
Segmented control for switching between options.
<div class="snow-toggle-group">
<button class="active">Day</button>
<button>Week</button>
<button>Month</button>
</div>
Progress
Native progress and meter elements.
Progress bar
Meter
Tooltips
Simple tooltips using the data-tooltip attribute.
<button class="snow-btn" data-tooltip="This is a tooltip!">
Hover me
</button>