argyleink/open-props

CSS custom properties to help accelerate adaptive and consistent design.

HTML

5,539

492 commits

updated Oct 11, 2026

See the code

README

Open Props Logo

Open Source CSS Variables

colors gradients shadows aspect ratios typography
easings animations sizes borders z-indexes media-queries

Tests npm version Discord

Need help?   👉   Discord


CDN (browse)

Bookmarklet

javascript: (() => {
  const href = "https://unpkg.com/open-props";
  document.head.append(Object.assign(document.createElement("link"),{rel:"stylesheet",href}));
})();

CLI

  • npm run gen:op - runs through src/ js files and creates the PostCSS files in src/
  • npm run gen:nowhere - creates a version of Open Props without the use of :where()
  • npm run gen:shadowdom - creates a version of Open Props with :host as the selector scope
  • npm run gen:prefixed - creates a version of Open Props with each prop prefixed with op, like --op-font-size-1
  • npm run bundle - creates all the various minified bundles of props
  • npm run lib:js - builds the JS modules for NPM

Testing

npm run build && npm run bundle
npm test
css
css-colors
css-custom-media-queries
css-custom-properties
css-easing-functions
css-gradients
css-normalise
css-utilites

argyleink/open-props

CSS custom properties to help accelerate adaptive and consistent design.

HTML

5,539

492 commits

updated Oct 11, 2026

See the code

README

Open Props Logo

Open Source CSS Variables

colors gradients shadows aspect ratios typography
easings animations sizes borders z-indexes media-queries

Tests npm version Discord

Need help?   👉   Discord


CDN (browse)

Bookmarklet

javascript: (() => {
  const href = "https://unpkg.com/open-props";
  document.head.append(Object.assign(document.createElement("link"),{rel:"stylesheet",href}));
})();

CLI

  • npm run gen:op - runs through src/ js files and creates the PostCSS files in src/
  • npm run gen:nowhere - creates a version of Open Props without the use of :where()
  • npm run gen:shadowdom - creates a version of Open Props with :host as the selector scope
  • npm run gen:prefixed - creates a version of Open Props with each prop prefixed with op, like --op-font-size-1
  • npm run bundle - creates all the various minified bundles of props
  • npm run lib:js - builds the JS modules for NPM

Testing

npm run build && npm run bundle
npm test
css
css-colors
css-custom-media-queries
css-custom-properties
css-easing-functions
css-gradients
css-normalise
css-utilites

Project health

Latest release

1.7.23 · Jan 31, 2026

Releases this year

6

Significant stargazers

(top 24 of 80)

Jared Forsyth

1,314 followers · starred Sep 2022

Christian Oliff

561 followers · starred Dec 2024

Christian Murphy

218 followers · starred Oct 2024

Benny Powers

328 followers · starred Dec 2021