@sparkstone/css v1.3.0
@sparkstone/css
A minimal CSS framework inspired by Pico.css, rebuilt with oklch() color primitives and a powerful, themeable design system using native CSS custom properties.
๐ View on NPM | View on GitHub
โจ Features
- ๐ก Built with
oklch()for perceptually uniform color scales - ๐ Automatic light/dark theming with CSS variables
- ๐งฑ Minimal class usage (like
card,contrast,ghost) - โก No JS required for core styles
- ๐จ Fully themeable via CSS variables or Sass functions
- ๐งฉ SCSS mixins for advanced integrations
๐ Install
# pnpm
pnpm add @sparkstone/css# yarn
yarn add @sparkstone/css# npm
npm install @sparkstone/css๐ Live Demo & Docs
Explore the docs and theme live:
๐ https://sparkstonepdx.github.io/css/docs
๐ฆ Usage
Import in your project:
// SCSS (recommended)
import '@sparkstone/css/src/theme.scss';
// Or precompiled CSS
import '@sparkstone/css/theme.css';Apply base HTML structure:
<article class="card">
<h2>Hello World</h2>
<p>This card uses the default theme and layout utilities.</p>
</article>๐จ Theming
Set custom colors using CSS variables:
:root {
--color: rebeccapurple;
--primary-color: blue;
--accent-color: oklch(from var(--color) l c calc(h + 180));
--error-color: maroon;
}System-based dark mode is supported by default, but you can override manually:
<html data-color-scheme="light">
<!-- or -->
<html data-color-scheme="dark"></html>
</html>๐งโ๐จ Theme Swatches
Use these CSS variables for consistent contrast:
--text-lc-1...--text-lc-9--surface-lc-1...--surface-lc-9
They adjust automatically in dark/light mode and derive from --color.
You can preview or override them using:
@use '@sparkstone/css/src/vars.scss' as *;
// Example: generate a color
color: get-color(var(--text-lc-2), var(--accent-color));
border-color: get-border-color();๐งช Documentation
See it live via GitHub Pages:
forms.htmlโ Styled form elements and validation statescolors.htmlโ Theme-based palette viewer with interactive color pickercontainers.htmlโ Articles, cards, and dialogsindex.htmlโ Overview & installation
Each page includes copyable code examples and live previews.
๐ Dev
pnpm install
pnpm devThis watches both src/ and pages/ for changes. It compiles SCSS to dist/, renders Nunjucks templates from pages/ to docs/, and serves with live reload.
To build manually:
pnpm build๐ฆ Package Structure
dist/ # Compiled CSS
src/ # Source SCSS (theme, vars, functions)
pages/ # Nunjucks page templates
templates/ # Shared macros and layout
docs/ # Output static site for GitHub Pages๐ฌ License
MIT ยฉ Sparkstone LLC