๐ฅท Blades ![][B_NPM]
July 2, 2026 ยท View on GitHub
Minimal CSS Framework for Semantic HTML
Fully compatible and actively maintained successor to Pico CSS.
Introduces float labels, breakout container and other modern, opt-out helpers.
Simply switch pico.css to blades.css OR use blades.standalone.css with other frameworks.
Quick start
There are 4 ways to get started:
A. Install manually
Download CSS archive and link css/blades.css in the <head> of your website.
<link rel="stylesheet" href="css/blades.css" />
B. Usage from CDN
<link rel="stylesheet" href="
https://cdn.jsdelivr.net/npm/@anyblades/blades@2/css/blades.min.css
"/>
Live example: https://github.com/pallets/website/blob/main/src/pallets/templates/layout.html
Full list of CSS files available on CDN: https://cdn.jsdelivr.net/npm/@anyblades/blades@2/css/
C. Starter projects
- https://subtle.blades.ninja/ 11ty micro-starter
- https://start.11ty.blades.ninja/ 7-in-1 starter (including Tailwind)
- https://getgrav.org/ v2 now features Blades CSS in its default theme (Quark2)
- https://jekyll.blades.ninja/ starter
D. Install with NPM
npm install @anyblades/blades
You can use precompiled Pico+Blades CSS (same as CDN version):
<link rel="stylesheet" href="
node_modules/@anyblades/blades/css/blades.css
" />
Or import standalone Blades CSS sources (without Pico CSS):
@import "@anyblades/blades/standalone";
Live example using Tailwind: https://github.com/anyblades/buildawesome-starters/blob/main/site-tailwind/styles.css
To install and import both Pico+Blades CSS sources at once:
npm install @anyblades/pico @anyblades/blades
@import "@anyblades/pico";
@import "@anyblades/blades/standalone";
This is exactly how Blades CSS is built itself: https://github.com/anyblades/blades/blob/main/src/blades.css
Appendix
Starter HTML template
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="color-scheme" content="light dark" />
<link rel="stylesheet" href="css/blades.css" />
<title>Hello world!</title>
</head>
<body>
<main class="container">
<h1>Hello world!</h1>
</main>
</body>
</html>
Standalone versions
Most of internal Blades CSS modules are available as standalone helpers, giving you flexibility to use them with other CSS frameworks:
| Module | CDN | Import from NPM |
|---|---|---|
| Breakout container | https://cdn.jsdelivr.net/npm/@anyblades/blades@2/css/breakout.min.css | N/A |
| Link icon | https://cdn.jsdelivr.net/npm/@anyblades/blades@2/css/link-icon.min.css | N/A |
| Responsive table | https://cdn.jsdelivr.net/npm/@anyblades/blades@2/css/responsive-table.min.css | N/A |
| Float labels https://github.com/anyblades/float-label-css | https://cdn.jsdelivr.net/npm/@anyblades/blades@2/css/float-label.min.css | npm install @anyblades/blades @import "@anyblades/blades/float-label"; |
| All above together | https://cdn.jsdelivr.net/npm/@anyblades/blades@2/css/blades.standalone.min.css | npm install @anyblades/blades @import "@anyblades/blades/standalone"; |
| Reset/normalizer https://github.com/anyblades/pico | https://cdn.jsdelivr.net/npm/@anyblades/pico@2/css/pico.min.css | npm install @anyblades/pico @import "@anyblades/pico"; |
| Experimental "ninja" add-ons | https://cdn.jsdelivr.net/npm/@anyblades/blades@2/css/blades.ninja.min.css | npm install @anyblades/blades @import "@anyblades/blades/ninja"; |
Live examples:
- https://www.mattanger.dev/ (Link icon via CDN)
Documentation
Trusted by
Featured by
- sveltiacms.app
- getgrav.org โ
- dummy.my/frameworks
- awesome-css-frameworks @gabrielizalo
- awesome-css @uhub
- 11ty.dev โ โ
- @pauleveritt
- @johnheenan
- @githubsignals โ
- https://news.ycombinator.com/item?id=48729467