Minimalist CSS framework for rapid prototyping by s17 Labs.
Minimal-UI is a zero-dependency CSS framework — no build step, no npm, no config. Add one <link> tag to your HTML and every component is ready to use. Works with plain HTML files, any backend, or any frontend framework.
The only required step. Paste this into your <head>:
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/gh/s17labs/minimal-ui@latest/minimal-ui.css">
Required for headings and the brand typeface:
<link href="https://fonts.googleapis.com/css2?family=Aldrich&display=swap"
rel="stylesheet">
That's it. You now have access to every component — buttons, forms, cards, navbar, tooltips, accordion, footer variants, and more. Browse the Components section below to see everything available.
Many examples in these docs use Font Awesome icons. Not required by the framework itself — only needed if you use <i class="fa-..."> in your markup.
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.0/css/all.min.css">
Use the red square brand mark in any project header or footer via CDN — no file to copy or download:
<img class="brand-cube"
src="https://cdn.jsdelivr.net/gh/s17labs/minimal-ui@latest/s17-icon.svg"
alt="s17 Labs">
Alternatively, copy s17-icon.svg from the repo into your project and reference it locally. The .brand-cube class handles sizing and alignment automatically.
The navbar is fully CSS-based except for the mobile hamburger toggle. Add this before your closing </body> tag — it's the only JS the framework ever needs:
<script>
document.getElementById('nav-toggle')
.addEventListener('click', () => {
document.getElementById('nav-menu').classList.toggle('open');
document.getElementById('nav-toggle').classList.toggle('open');
});
</script>
The open class on #nav-menu reveals the mobile dropdown. The open class on #nav-toggle animates the three bars into an ✕ close icon.
Pin a specific version
Replace@latest with a release tag like @v0.2.0 to lock your project to a specific version and avoid unexpected changes from future updates.
Standard paragraph — --mu-text-muted color. Highly readable against dark backgrounds while maintaining a clean typographic hierarchy.
.font-mono
All variants and sizes, composable with each other. Works identically on <button> and <a>.
.mobile-col)
Heads up
Default alert for neutral notices and informational messages.Action required
Accent alert for important messages that require user attention.Use .btn-accent for primary actions and .btn-outline for secondary CTAs.
/* Import Minimal-UI */
@import url('minimal-ui.css');
/* Use components */
<button class="btn btn-accent">
Click me
</button>
Standard divider:
Labelled divider:
.surface
Subtle transparent fill, no border.
.surface-raised
Elevated with border — good for cards.
Cards use a subtle background to group related content. Combine with badges, buttons, and grid for layout blocks.
Hover to see the accent gradient slide-in effect.
Composable with badges, text utilities, and more.
One line of JS required for the hamburger menu
Everything else is pure CSS. For the mobile hamburger toggle, see the Get Started section — it's a singleaddEventListener call.
Add data-tooltip="..." to any element. No JS required.
Minimal-UI is a lightweight CSS framework built for rapid prototyping, designed with the s17 Labs dark aesthetic in mind.
Link the CDN stylesheet in your HTML head — no build step or npm install required. Works with any plain HTML file.
Almost nothing requires JS. The accordion uses native <details>, tooltips are pure CSS, and form controls use :has(). Only the navbar hamburger needs a one-liner toggle.
Yes — Minimal-UI is open source. Check the repository for the full license details.
Override any CSS variable from :root in your own stylesheet. Every color, radius, and spacing value is a variable.