Pico CSS is a minimal CSS framework for semantic HTML, without using classes.

0 detections
0 websites tracked
Updated 25 May 2026

Websites Using Pico CSS

No websites detected yet. Analyze a website to contribute data.

What Is Pico CSS?

Pico CSS is a minimal, semantic, class-light CSS framework that styles native HTML elements beautifully with little or no extra markup. Its guiding idea is that well-written, semantic HTML should look good on its own, so instead of asking you to memorize a large vocabulary of utility or component classes, Pico applies elegant defaults directly to standard elements, headings, paragraphs, forms, tables, buttons, navigation, and more. You write clean markup, link the stylesheet, and get a polished, responsive page almost for free.

The framework is frequently described as "classless," and that captures most of how it is used, though the description needs a small qualification. Pico's core experience is genuinely classless: a plain HTML document wrapped in a simple container looks immediately refined. But Pico also offers a class-light layer for cases where you need a bit more control, such as grid utilities, button variants, and component helpers. The philosophy is to keep classes optional and minimal rather than mandatory and pervasive, which is the opposite of utility-first frameworks.

Pico CSS is open source under the MIT license and is maintained as a community project. It is not a SaaS, not a browser extension, and not a JavaScript library; it is a stylesheet you include in a page. You can load it from a CDN, install it through a package manager, or self-host the file. It also ships with a built-in, automatic dark mode and supports theming through CSS custom properties, so a site can adapt to a user's preferred color scheme with no extra effort.

Understanding Pico's place in the ecosystem helps. It belongs to the family of lightweight, semantic frameworks alongside tools like Milligram, but it tends to feel more complete and polished out of the box, with refined form styling, a built-in color system, and dark-mode support. Where utility frameworks like Tailwind hand you raw building blocks and component frameworks like Bootstrap hand you finished widgets, Pico hands you a beautifully styled version of the HTML you already know. That makes it especially appealing for content-driven sites, prototypes, documentation, and developers who value clean, readable markup over class-heavy templates.

How Pico CSS Works

Pico works by targeting HTML elements directly with carefully crafted default styles, then layering optional helpers on top. When you include the stylesheet and write semantic markup, Pico styles the document automatically: typography gets a comfortable scale and rhythm, links and buttons receive consistent treatment, tables look clean, and form controls, inputs, selects, checkboxes, and the rest, are styled cohesively without any classes. This element-first approach is why a bare HTML page transforms the moment Pico is linked.

A distinctive part of Pico's model is its use of a semantic container and native elements for layout cues. Wrapping content in a <main class="container"> (or using the container class) centers and constrains the content to a readable width. Pico also styles structural elements like <nav>, <article>, <header>, <footer>, and <section> so that semantic page structure produces sensible visuals, reinforcing good HTML practice rather than working around it.

Theming and color are handled through CSS custom properties. Pico defines a system of variables for colors, spacing, typography, and more, and exposes color themes you can switch between. Its automatic dark mode responds to the user's prefers-color-scheme setting, and you can force a theme by setting a data-theme attribute (for example data-theme="dark" or data-theme="light") on the <html> element. Because the theme is variable-driven, customizing the look means overriding custom properties rather than rewriting rules.

For the cases where pure semantics is not enough, Pico provides a class-light layer. This includes a responsive grid (a .grid class that arranges children into columns), button modifiers such as .secondary, .contrast, and .outline, and helpers for components like dropdowns, modals, accordions (often built on native elements like <details>), and loading states. These classes are intentionally few in number, so the markup stays readable.

Pico requires no JavaScript and no build step in its basic form, you simply link the CSS and write HTML. It is also distributed in modular and conditional builds, so teams can include a version scoped to the .pico class to avoid styling the entire document, which is useful when integrating Pico into an existing site. For projects with a bundler, Pico can be imported and customized via its SCSS sources or through CSS variable overrides. This flexibility, from a single CDN link to a customized build, lets it fit projects of very different sizes while keeping the authoring model consistent.

How to Tell if a Website Uses Pico CSS

Because StackOptic analyzes a URL from the server side, it inspects the same signals you can check by hand with browser tools or by viewing source. Classless and class-light frameworks are inherently harder to fingerprint than class-heavy ones, because they add so little distinctive markup, but Pico still leaves several recognizable traces.

The Pico stylesheet link. The strongest signal is a link to Pico's stylesheet. Sites commonly load it from a CDN with a path containing pico and a version, for example a jsdelivr URL ending in pico.min.css (or pico.classless.min.css). A stylesheet literally named pico.min.css in the <head> is close to definitive.

The data-theme attribute. Pico's theming uses a data-theme attribute on the <html> element, frequently data-theme="light" or data-theme="dark". Spotting data-theme on the root element, in combination with minimal class usage, is a strong Pico-flavored signal, though you should confirm with the stylesheet since the attribute name is not exclusive to Pico.

Pico's custom properties. Pico defines a recognizable set of CSS custom properties, many prefixed with --pico- in recent versions (for example --pico-primary or --pico-background-color). Selecting :root in DevTools and finding --pico-* variables is a reliable confirmation.

Class-light markers. When Pico's optional layer is used, you may see its small set of helper classes such as .grid, .secondary, .contrast, or .outline on buttons and containers. These are supportive signals rather than definitive on their own.

MethodWhat to doWhat Pico CSS reveals
View Source"View Page Source" and scan <link> tagsA reference to pico.min.css or pico.classless.min.css
Browser DevToolsInspect the <html> element and select :rootA data-theme attribute and --pico-* custom properties
Network tabLook at loaded stylesheetsA request for a Pico CSS file from a CDN
curl -s`curl -s https://example.comgrep -iE "pico.
WappalyzerRun the extension on the pageMay identify Pico CSS when the CDN path is present

A quick command-line check is curl -s https://example.com | grep -i "pico". If that returns a stylesheet link, you are almost certainly looking at a Pico-styled page. For the broader methodology, see our guide on how to find out what technology a website uses.

A fair caveat applies, as with all minimal frameworks. Because Pico is class-light and content-driven, a page that uses it can look like ordinary semantic HTML with very few distinctive class names, so when a developer inlines or renames the stylesheet, the most obvious signal disappears. In that situation you are left inferring Pico from surviving clues like the --pico-* custom properties or the data-theme attribute, which is less certain than a clear pico.min.css link. This reflects a general rule: minimal and atomic CSS approaches are harder to fingerprint because they leave less markup behind, and an honest answer sometimes has to acknowledge uncertainty. Server-side analysis helps by fetching the unmodified HTML and its linked stylesheets directly, so any surviving CDN reference or characteristic variables are easy to read without the noise a browser adds. To contrast Pico's approach with a heavier, class-driven framework, see how to tell if a website uses Bootstrap, and to compare it with the utility-first model, read how to tell if a website uses Tailwind CSS.

Key Features

  • Classless core. Beautiful default styling for native HTML elements with little or no extra markup required.
  • Automatic dark mode. Built-in light and dark themes that respond to prefers-color-scheme, with a data-theme override.
  • CSS custom properties. A --pico-* variable system for straightforward theming and customization.
  • Refined form styling. Cohesive, modern styling for inputs, selects, checkboxes, and other controls out of the box.
  • Class-light helpers. An optional, minimal layer with a responsive grid, button variants, and component helpers.
  • Semantic-first. Styles structural elements like <nav>, <article>, and <footer>, encouraging good HTML.
  • Lightweight and dependency-free. Pure CSS with no JavaScript requirement, available in modular and scoped builds.

Pros and Cons

Pros

  • Makes semantic HTML look polished instantly, ideal for content-driven sites and prototypes.
  • Keeps markup clean and readable by avoiding pervasive utility classes.
  • Built-in dark mode and a clear custom-property system make theming easy.
  • Small footprint with no JavaScript dependency and flexible build options.

Cons

  • Limited component set compared with full frameworks like Bootstrap.
  • The classless model can make highly custom or unconventional layouts harder.
  • Less suited to large applications needing an extensive, systematized component library.
  • Distinctive fingerprints are subtle, which is great for clean markup but complicates auditing.

Pico CSS vs Alternatives

Pico sits among lightweight, semantic frameworks but leans more complete and polished than the most minimal options. The table below compares it with common alternatives.

FrameworkApproachDark modeBest for
Pico CSSClassless, class-light, semanticBuilt in, automaticContent sites, prototypes, clean semantic markup
MilligramLightly opinionated, near-classlessNot built inTiny footprint, docs and small sites
Pure CSSModular, utility-leaningNot built inIncluding only specific modules
BootstrapComponent-rich, class-heavySupported (recent versions)Full-featured applications
Tailwind CSSUtility-firstVia configBespoke designs built from utilities

If a site turns out not to be Pico, the same signals point to the real tool; compare Pico with the minimal Milligram or the component-rich Bootstrap to see the range of philosophies. Our broader guide, how to find out what technology a website uses, ties the techniques together.

Use Cases

Pico CSS is most at home on content-driven and documentation sites, where semantic HTML and readable typography are the priority and a heavy component library would be overkill. Linking Pico turns a plain document into a polished, responsive page with dark mode, which is exactly what blogs, docs, and articles need. It is also a popular choice for rapid prototyping, because you can sketch a real-looking interface in minutes without writing custom CSS or learning a class vocabulary.

It suits personal sites and portfolios, small business and marketing pages, and admin or internal tools where a clean, consistent look matters more than bespoke design. Developers who value semantic markup, and who dislike the verbosity of utility classes, gravitate to Pico because it rewards good HTML practice. It also fits server-rendered apps and frameworks that emit semantic markup, since Pico styles that markup directly without requiring template changes.

Consider a few concrete scenarios. A developer building documentation for an open-source project might use Pico so the docs look professional with built-in dark mode and zero design effort. A team prototyping a new web app might lean on Pico to validate flows quickly with a presentable UI, deferring custom design until the concept is proven. An engineer building an internal dashboard might choose Pico's class-light grid and form styling to ship a clean, functional tool without a heavyweight framework. The common thread is a preference for clean markup and tasteful defaults over extensive custom styling.

From a technology-research perspective, detecting Pico on a site is an informative signal. It often indicates a developer-built, semantically minded project that favors lightweight tooling and clean HTML over heavy frameworks, useful context when profiling the team or purpose behind a domain. Because class-light frameworks are subtler to fingerprint than class-heavy ones, surfacing Pico reliably across many sites benefits from automated, multi-signal analysis that can read stylesheet links and custom properties together.

Frequently Asked Questions

Is Pico CSS really classless?

Mostly, with a deliberate qualification. Pico's core experience is classless: semantic HTML wrapped in a simple container looks polished without any utility classes. However, Pico also provides an optional, intentionally small class-light layer, a grid, button variants, and a few component helpers, for cases that need more control. The philosophy is that classes are optional and minimal rather than required and pervasive, which distinguishes Pico from utility-first frameworks where classes do nearly all the work.

How can I tell if a website uses Pico CSS?

View the page source and look for a <link> to pico.min.css or pico.classless.min.css, often from a CDN like jsDelivr. Then open DevTools, inspect the <html> element for a data-theme attribute, and select :root to look for --pico-* custom properties. A curl -s URL | grep -i pico surfaces a CDN reference. If the stylesheet has been inlined or renamed, detection relies on the surviving variables and is less certain.

Does Pico CSS support dark mode?

Yes, and it is one of Pico's signature features. Pico ships with automatic light and dark themes that respond to the user's prefers-color-scheme setting, so a site adapts to the operating system's preference with no extra work. You can also force a specific theme by setting a data-theme="dark" or data-theme="light" attribute on the <html> element, and because the themes are built on custom properties, you can customize the colors by overriding those variables.

What is the difference between Pico CSS and Tailwind CSS?

They sit at opposite ends of the spectrum. Tailwind is utility-first: you build designs by composing many small utility classes directly in your markup, which is powerful but verbose. Pico is semantic and class-light: it styles native HTML elements with elegant defaults so your markup stays clean and you write few or no classes. You choose Pico when you value readable, semantic HTML and tasteful defaults, and Tailwind when you want fine-grained, build-time control over every design detail.

Is Pico CSS free to use?

Yes. Pico CSS is open source under the permissive MIT license and free for personal and commercial use. You can load it from a CDN, install it via a package manager, self-host the file, or build a customized version from its SCSS sources. There is no sign-up, no license fee, and no proprietary tooling, just a stylesheet you include in your project.

Want to identify Pico CSS and the rest of a site's stack automatically? Run any URL through StackOptic at https://stackoptic.com.

Pico CSS - Websites Using Pico CSS | StackOptic