Simplicity
Less code means less energy, faster loads, and a longer lifespan. The web platform is enough.
"Less is pure"
A minimalist design system built with pure HTML5 and CSS. Zero JavaScript. Maximum accessibility. Inspired by the purest water on Earth: Antarctic ice.
The modern web is drowning in complexity. Megabytes of JavaScript for a button. Build tools for build tools. Dependencies upon dependencies.
Purissimo is a return to essence.
Less code means less energy, faster loads, and a longer lifespan. The web platform is enough.
If it doesn't work for everyone, it doesn't work. WCAG 2.1 AA as a baseline, not an afterthought.
Minimal footprint. No build steps. No runtime dependencies. Pure, long-lasting CSS.
No JavaScript in components. If it can be done with HTML and CSS, it will be.
Clean visual language. Every element has purpose. Nothing decorative without function.
Minimal footprint. Fast loading. Low energy consumption.
WCAG 2.1 AA compliance minimum. Respects user preferences for motion and contrast.
Open process. Documented decisions. Visible design tokens.
Consistent patterns that AI tools can understand and generate correctly.
Live examples using Purissimo itself. All components work with pure HTML and CSS.
Use buttons for actions. Choose the variant that matches the importance of the action. All buttons support hover, focus, active, and disabled states. Accessible via keyboard (Enter / Space).
<button class="btn btn--primary">Primary</button>
<button class="btn btn--secondary">Secondary</button>
<button class="btn btn--ghost">Ghost</button>
<button class="btn btn--primary btn--sm">Small</button>
<button class="btn btn--primary btn--lg">Large</button>
<button class="btn btn--primary" disabled>Disabled</button>
Styled links for different contexts: default for inline content, subtle for secondary navigation, nav for primary navigation with active-page support via aria-current.
<a href="#" class="link">Default link</a>
<a href="#" class="link link--subtle">Subtle link</a>
<a href="#" class="link link--nav">Nav link</a>
Complete form system with labels, inputs, textareas, selects, hints, and validation. Custom checkbox, radio, and toggle controls are built with pure CSS. All controls are keyboard-accessible and use visible focus rings.
<div class="form-field">
<label for="name" class="form-label">Name</label>
<input type="text" id="name" class="form-input" placeholder="Enter your name">
<span class="form-hint">Your full name.</span>
</div>
<label class="form-checkbox">
<input type="checkbox">
<span class="form-checkbox__indicator"></span>
<span class="form-checkbox__label">I agree</span>
</label>
<label class="form-toggle">
<input type="checkbox">
<span class="form-toggle__track"></span>
<span class="form-toggle__label">Notifications</span>
</label>
Content containers with optional header and footer. Variants: default (subtle border), elevated (shadow), outlined (visible border), and glass (frosted backdrop). Use <article> for semantic markup.
Subtle border, clean look.
Shadow for depth.
Visible border.
Frosted effect.
<article class="card card--elevated">
<header class="card__header">
<h3 class="card__title">Title</h3>
</header>
<div class="card__body"><p>Content</p></div>
<footer class="card__footer">
<button class="btn btn--primary">Action</button>
</footer>
</article>
Informational messages with semantic color coding. Always include role="alert" for screen reader announcements.
<div class="alert alert--info" role="alert">
<span class="alert__icon" aria-hidden="true">ℹ</span>
<p class="alert__message">Informational message.</p>
</div>
Data tables with striped and bordered variants. Use semantic <thead> and <tbody> for accessibility.
| Token | Value | Usage |
|---|---|---|
--space-1 | 4px | Tight spacing |
--space-4 | 16px | Default spacing |
--space-8 | 32px | Section gaps |
<table class="table table--striped">
<thead><tr><th>Name</th><th>Value</th></tr></thead>
<tbody><tr><td>Data</td><td>Value</td></tr></tbody>
</table>
Expandable sections using native <details> and <summary>. No JavaScript required. Keyboard-accessible with Enter and Space.
Purissimo is built entirely with HTML and CSS. No JavaScript, no build tools, no runtime dependencies. Every component is accessible out of the box.
The last 2 versions of Chrome, Firefox, Safari, and Edge. Modern CSS features like custom properties, Grid, and :has() are used throughout.
Yes. Override the CSS custom properties on :root or on any container element to change colors, spacing, typography, and more.
<div class="accordion">
<details class="accordion__item">
<summary class="accordion__header">Section Title</summary>
<div class="accordion__content"><p>Content here.</p></div>
</details>
</div>
Tabbed content using radio inputs. Pure CSS, keyboard-navigable with arrow keys. Supports up to 5 panels.
Purissimo is a minimalist design system for the modern web.
Zero JavaScript, WCAG 2.1 AA compliant, base-4 spacing, and a single CSS file.
Add <link rel="stylesheet" href="purissimo.css"> to your HTML and start building.
<div class="tabs">
<input type="radio" name="tabs" id="tab1" class="tabs__input" checked>
<label for="tab1" class="tabs__label">Tab 1</label>
<input type="radio" name="tabs" id="tab2" class="tabs__input">
<label for="tab2" class="tabs__label">Tab 2</label>
<div class="tabs__panels">
<div class="tabs__panel">Content 1</div>
<div class="tabs__panel">Content 2</div>
</div>
</div>
Overlay dialog using :target. Opens via anchor link, closes by navigating away. Use role="dialog" and aria-modal="true".
This modal was opened with a simple anchor link. No JavaScript needed.
<a href="#my-modal" class="btn btn--primary">Open</a>
<div id="my-modal" class="modal">
<a href="#" class="modal__overlay" aria-hidden="true"></a>
<div class="modal__content" role="dialog" aria-modal="true">
<header class="modal__header">
<h2 class="modal__title">Title</h2>
<a href="#" class="modal__close" aria-label="Close">×</a>
</header>
<div class="modal__body"><p>Content</p></div>
<footer class="modal__footer">
<a href="#" class="btn btn--secondary">Cancel</a>
<button class="btn btn--primary">Confirm</button>
</footer>
</div>
</div>
Small labels for status, counts, or categories.
<span class="badge badge--primary">Primary</span>
<span class="badge badge--success">Success</span>
Contextual information on hover or focus. Use aria-describedby to link the trigger to the tooltip content for screen readers.
<button class="tooltip" aria-describedby="tip1">
Info
<span class="tooltip__content" role="tooltip" id="tip1">Details</span>
</button>
Blockquotes, inline code, code blocks, and keyboard shortcuts.
"Less is pure."
Use the --color-action variable for interactive elements. Press Ctrl + S to save.
<blockquote class="blockquote">
<p>"Less is pure."</p>
<footer class="blockquote__footer"><cite>Purissimo</cite></footer>
</blockquote>
<code class="code">inline code</code>
<kbd>Ctrl</kbd> + <kbd>S</kbd>
Navbar and breadcrumb components. Use aria-label on <nav> and aria-current="page" on the active link.
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="/">Home</a></li>
<li><a href="/docs">Docs</a></li>
<li aria-current="page">Components</li>
</ol>
</nav>
All values are CSS custom properties. Override them on :root to customize the system.
pure-white
ice-white
frost
mist
gray-300
gray-500
gray-800
glacial-100
glacial-300
glacial-500
glacial-700
glacial-900
success
warning
error
5xl — 48px
4xl — 40px
3xl — 32px
2xl — 24px
xl — 20px
lg — 18px
base — 16px
sm — 14px
xs — 12px
How Purissimo was created through human-AI collaboration.
Purissimo was built collaboratively between a human product designer and Claude, an AI assistant. The entire design system — from specification to implementation — was developed through iterative conversation.
The process started with a clear brief: build a pure CSS design system inspired by Antarctic ice. Through structured phases, each decision was documented, debated, and refined. The AI asked clarifying questions, proposed alternatives, and executed the code.
Modern HTML and CSS are remarkably capable. By constraining ourselves to these two technologies, Purissimo demonstrates what the web platform can do natively — while gaining zero runtime dependencies, universal accessibility, and maximum performance.
A 4px grid is the industry standard. It works well with common font sizes (12, 14, 16px), produces visually harmonious layouts, and is easy to reason about. Every spacing value in Purissimo is a multiple of 4.
Outfit is a geometric sans-serif with a delicate, modern feel. It has excellent readability at all sizes, supports the weight range we need (300–700), and is freely available through Google Fonts.
The Antarctic palette represents purity and clarity — whites, pale blues, and glacial turquoise. It reinforces the project's name and philosophy: the purest form of design, stripped to its essence.
Clear requirements lead to better AI output. By starting with a detailed specification and phased roadmap, every decision had context. The result is a design system that's both human-designed and AI-executed — demonstrating a new model for creative collaboration.
Get started with Purissimo in seconds.
Download purissimo.min.css and add it to your project, or use the CDN:
<!-- CDN (GitHub Pages) -->
<link rel="stylesheet" href="https://craice.github.io/purissimo/purissimo.min.css">
<!-- Or local file -->
<link rel="stylesheet" href="purissimo.min.css">
<button class="btn btn--primary">Get Started</button>
<article class="card card--elevated">
<div class="card__body">
<p>Pure HTML. Pure CSS. Pure simplicity.</p>
</div>
</article>
:root {
--color-action: #6C63FF; /* Change primary color */
--font-family-base: 'Inter'; /* Change typeface */
--radius-base: 1rem; /* Rounder corners */
}
See AI.md for instructions on using Purissimo with AI tools like Claude, ChatGPT, and Copilot.
0
Lines of JavaScript
AA
WCAG 2.1 Compliance
~60KB
Unminified CSS
0
Dependencies