pico
Pico is a minimalist, lightweight CSS framework that styles semantic HTML elements beautifully out of the box, requiring few or no classes. It offers a class-less mode, dark/light themes, SASS customization, and a small set of components, acting like a supercharged CSS reset.
MITPermissive — free to use in commercial and proprietary software, with attribution.View license →
Production readiness
5/5- Actively maintainedCommits in the last 6 months
- No known vulnerabilitiesNo OSV advisories
- Clear, usable licenseMIT (permissive)
- Proven adoptionWidely used
- Has documentationDocumentation indexed
Our analysis
Pico is a minimal CSS framework that styles native HTML elements directly so semantic markup looks polished without (or with very few) utility classes. It ships as plain CSS via CDN/NPM, with a class-less variant and SASS source for customization.
When to use pico
Reach for Pico when building small-to-medium projects, prototypes, documentation sites, dashboards, or content-heavy pages where you want clean, responsive, accessible defaults with near-zero markup overhead. The class-less version is ideal for quickly making plain HTML (or generated/CMS HTML) look good.
When not to
Avoid it for large, design-system-driven apps that need granular, composable utilities or extensive prebuilt component libraries — Tailwind or Bootstrap fit better there. Since Pico intentionally ships no helper/utility classes, complex custom layouts require real SCSS/CSS work.
Strengths
- Extremely lightweight and fast to adopt — just link one stylesheet
- Semantic-first: styles elements directly, keeping markup clean
- Built-in light/dark mode and a large set of precompiled color themes
- Customizable via CSS variables and SASS
- Good accessibility focus and responsive defaults
Trade-offs
- No utility/helper classes, so non-trivial layouts demand custom CSS knowledge
- Smaller component set than Bootstrap/Bulma
- Opinionated default look can require overriding for distinctive branding
- Drops support for older browsers like IE11
- Relies on modern CSS features that may need fallbacks in edge cases
Maturity
Mature and popular (16k+ stars) with a stable v2 release adding SASS-based theming, a full color palette, and new components. Actively maintained, MIT-licensed, and distributed through NPM, jsDelivr CDN, and Composer.
Minimal CSS Framework for Semantic HTML
A minimalist and lightweight starter kit that prioritizes semantic syntax, making every HTML element responsive and elegant by default.
Write HTML, Add Pico CSS, and Voilà!
What’s new in v2?
Pico v2.0 features better accessibility, easier customization with SASS, a complete color palette, a new group component, and 20 precompiled color themes totaling over 100 combinations accessible via CDN.
A Superpowered HTML Reset
With just the right amount of everything, Pico is great starting point for a clean and lightweight design system.
Class-light and Semantic
Great Styles with Just CSS
Responsive Everything
Light or Dark Mode
Easy Customization
Optimized Performance
Table of contents
Quick start
There are 4 ways to get started with pico.css:
Install manually
Download Pico and link /css/pico.min.css in the <head> of your website.
<link rel="stylesheet" href="css/pico.min.css">
Usage from CDN
Alternatively, you can use jsDelivr CDN to link pico.css.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css">
Install with NPM
npm install @picocss/pico
Or
yarn add @picocss/pico
Then, import Pico into your SCSS file with @use:
@use "pico";
Install with Composer
composer require picocss/pico
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/pico.min.css">
<title>Hello world!</title>
</head>
<body>
<main class="container">
<h1>Hello world!</h1>
</main>
</body>
</html>
Class-less version
Pico provides a .classless version.
In this version, <header>, <main>, and <footer> inside <body> act as containers to define a centered or a fluid viewport.
Use the default .classless version if you need centered viewports:
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"
/>
Or use the .fluid.classless version if you need a fluid container:
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.fluid.classless.min.css"
>
Then just write pure HTML, and it should look great:
<!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="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"
>
<title>Hello, world!</title>
</head>
<body>
<main>
<h1>Hello, world!</h1>
</main>
</body>
</html>
Limitations
Pico CSS can be used without custom CSS for quick or small projects. However, it’s designed as a starting point, like a “reset CSS on steroids”. As Pico does not integrate any helpers or utilities .classes, this minimal CSS framework requires SCSS or CSS knowledge to build large projects.
Documentation
Getting started
Customization
Layout
Content
Forms
Components
About
Browser Support
Pico CSS is designed and tested for the latest stable Chrome, Firefox, Edge, and Safari releases. It does not support any version of IE, including IE 11.
Contributing
If you are interested in contributing to Pico CSS, please read our contributing guidelines.
Copyright and license
Licensed under the MIT License.