Classless by design
Headings, lists, tables, forms, buttons and code blocks look good without a single class.
A lightweight, classless CSS framework. Write semantic HTML and it just looks great, in light and dark mode. No classes, no build step, and the core needs no JavaScript.
Lumen is a modern, lightweight CSS framework for developers who want a good-looking page without learning class names. Link one stylesheet and style plain HTML for landing pages, docs, blogs and web panels.
Headings, lists, tables, forms, buttons and code blocks look good without a single class.
One stylesheet of about 4 KB gzipped. No dependencies, no build step, no JavaScript required.
Follows the system theme automatically, with an optional one-line theme switch for visitors.
Fluid typography, an auto-fit card grid and scrollable tables work on every screen size.
Change one CSS variable and the tints, glows, focus rings and gradients follow.
Forms, buttons, navigation, tables, images, video and code blocks are ready for real projects.
Add one line to your <head>. That's it.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/7AS1N/Lumen/lumen.css">
Grab lumen.css from the repo, drop it in your project and link it:
<link rel="stylesheet" href="lumen.css">
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>My site</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/7AS1N/Lumen/lumen.css">
</head>
<body>
<header><h1>Hello</h1></header>
<main><p>Styled with zero classes.</p></main>
</body>
</html>
A section that contains articles becomes a responsive auto-fit grid. An aside beside your content becomes a sticky sidebar. Resize this window to watch it flow.
Elements are styled by what they are.
One small stylesheet and nothing else.
Follows your system theme, with an optional one-line switch.
<section>
<article><h3>Classless</h3><p>...</p></article>
<article><h3>Lightweight</h3><p>...</p></article>
<article><h3>Dark mode</h3><p>...</p></article>
</section>
Paragraphs get a comfortable measure and line height, with links, bold, highlights and inline code all styled.
Simplicity is the ultimate sophistication.
<h1>Heading 1</h1>
<h2>Heading 2</h2>
<p>A paragraph with <a href="#">a link</a> and <mark>highlight</mark>.</p>
<blockquote>A quote.</blockquote>
Wrap controls in a label and a form. Text inputs, textarea, select, checkbox and radio are all styled.
<form>
<label>Email
<input type="email" placeholder="ada@example.com">
</label>
<label>Topic
<select>
<option>General question</option>
<option>Bug report</option>
</select>
</label>
<label>Message
<textarea></textarea>
</label>
<fieldset>
<legend>Preferences</legend>
<label><input type="checkbox"> Email me updates</label>
<label><input type="radio" name="plan"> Free</label>
</fieldset>
<p>
<button type="submit">Send</button>
<button type="reset">Reset</button>
</p>
</form>
Every color is a CSS variable. Tints, glows, focus rings and the select arrow are all derived from --accent, so changing it re-themes everything. Try it:
Override the variables after the stylesheet. One color works for both themes, or use light-dark() to give each theme its own.
:root {
--accent: #0ea5e9;
--accent-2: #22d3ee;
/* or a separate color for light and dark */
--accent: light-dark(#0ea5e9, #38bdf8);
}
The framework follows the system theme by default. To let visitors switch, add the optional script in your <head> and drop a button anywhere. It fills itself with a sun or moon icon and remembers the choice.
<script src="https://cdn.jsdelivr.net/gh/7AS1N/Lumen/lumen-theme.js"></script>
<button data-theme-toggle></button>
No JavaScript? Force a theme with <html data-theme="dark"> or data-theme="light".
A classless CSS framework styles standard HTML elements directly, so you never add class names. Write semantic HTML such as <h1>, <form> and <table> and it is styled automatically.
The stylesheet is about 15 KB unminified and about 4.4 KB gzipped, with no dependencies. The optional theme switch script adds about 1.2 KB gzipped.
Add one <link> tag to your <head> from the jsDelivr CDN, or download lumen.css and link it locally. See Install for the code.
Yes. Lumen follows the visitor's system theme automatically. You can also force a theme with data-theme or add a theme switch button with one script. See Theming.
No. Lumen is a single CSS file. The theme switch script is optional, and there is nothing to compile or install.
Like Water.css, Sakura and Simple.css, Lumen is classless. It also turns a section of articles into a responsive card grid and includes polished form controls, tables, buttons and one-variable theming, which suits landing pages and web panels. Unlike class-based frameworks such as Pure.css or Bootstrap, you do not need to learn or write class names.
Lumen targets modern browsers: Chrome and Edge 123+, Firefox 121+ and Safari 17.5+. It uses :has(), color-mix() and light-dark().
Yes. Lumen is open source under the MIT license, so you can use it in personal and commercial projects.