Skip to content

Repository files navigation

Noir

A utility-first dark theme CSS framework with bold accent colors.

License GitHub Pages CSS Size

Features

  • Utility-first design — compose layouts and styles with low-level utility classes
  • Dark / Light theme — switch themes via data-theme attribute or auto-follow OS preference
  • Responsive breakpointssm / md / lg utility variants (mobile-first; xs is the default base)
  • Modular architecture — load only the modules you need
  • No JavaScript required — pure CSS components; interactive patterns (modal, dropdown) need minimal JS
  • Lightweight (~66KB unminified, ~51KB minified) — full framework
  • prefers-reduced-motion support — respects user accessibility settings

Why Noir?

Noir Tailwind CSS Bootstrap
Philosophy Utility-first Utility-first Component-first
Default theme Dark Light Light
JavaScript Optional (modal/dropdown) None (core) Required
File size ~77KB ~300KB+* ~200KB+
Build step Optional (minified build) Required (PostCSS) Optional
Dark mode Built-in (data-theme) Class-based (dark:) data-bs-theme (v5.3+)
Learning curve Low Medium Medium
Customization CSS variables tailwind.config.js Sass variables

* Tailwind's ~300KB+ is the full development build; post-purge production builds are typically 5–15KB.

Noir is ideal when you want:

  • A dark-first design without extra configuration
  • A lightweight framework with no build tools or JS dependencies
  • Quick prototyping with utility classes and ready-made components

Quick Start

git clone https://github.com/kakuteki/Noir.git
<!-- Load the full framework -->
<link rel="stylesheet" href="css/noir.css">

<!-- Or load individual modules -->
<link rel="stylesheet" href="css/modules/base.css">
<link rel="stylesheet" href="css/modules/layout.css">

Usage

Theme Switching

<!-- Dark theme (default) -->
<html data-theme="dark">

<!-- Light theme -->
<html data-theme="light">

<!-- Auto-follow OS preference -->
<html>

Layout / Grid

<!-- Container -->
<div class="container">...</div>

<!-- Responsive grid -->
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
  <div>1</div>
  <div>2</div>
  <div>3</div>
</div>

<!-- Flexbox -->
<div class="flex justify-between items-center gap-4">
  <span>Left</span>
  <span>Right</span>
</div>

Buttons

<button class="btn btn-primary">Primary</button>
<button class="btn btn-secondary">Secondary</button>
<button class="btn btn-ghost">Ghost</button>
<button class="btn btn-warm">Warm</button>
<button class="btn btn-danger">Danger</button>

<!-- Sizes -->
<button class="btn btn-primary btn-sm">Small</button>
<button class="btn btn-primary btn-lg">Large</button>

Cards

<div class="card card-hover">
  <div class="card-header">Header</div>
  <div class="card-body">
    <p class="text-secondary">Content goes here.</p>
  </div>
  <div class="card-footer">Footer</div>
</div>

Forms

<div class="form-group">
  <label class="form-label">Email</label>
  <input type="email" class="input" placeholder="you@example.com">
  <span class="form-hint">Hint text</span>
</div>

<label class="checkbox"><input type="checkbox"> Option</label>
<label class="toggle"><input type="checkbox"> Toggle</label>

Documentation

  • Demo — Live preview of all components
  • Class Reference — Complete list of all utility classes

Modules

File Description
base.css CSS variables, reset, dark/light theme system
typography.css Font sizes, weights, alignment, text utilities
layout.css Grid, flexbox, spacing, responsive breakpoints (sm/md/lg)
forms.css Input, select, checkbox, radio, toggle, range
components.css Buttons, cards, badges, alerts, modal, tooltip, table, spinner, toast, accordion, skeleton
navigation.css Navbar, sidebar, tabs, breadcrumb, pagination, dropdown
utilities.css Transform utilities
states.css State variant utilities: hover:, focus:, active:, group-hover:, disabled:
animations.css Fade, slide, pulse, spin, bounce, ping animations

Browser Support

Browser Version
Chrome 90+
Firefox 90+
Safari 14+
Edge 90+

License

Apache License 2.0


日本語

Noir はユーティリティファーストのダークテーマ CSS フレームワークです。 ダーク/ライトテーマの切り替え、5段階のレスポンシブ対応、モジュール分割構成を備えており、JavaScript 不要で動作します。 詳しい使い方は上記の英語セクションをご覧ください。デモは GitHub Pages で確認できます。

About

A utility-first CSS framework with dark-cool aesthetic and red/orange accents. Lightweight, modular, no JS required.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages