opui-css
| Install | |
|---|---|
npm install opui-css |
|
| Latest Version: | 5.4.3 |
| Vue: | 3 |
| License: | MIT |
| Last Updated: | Oct 23, 2026 |
| Links: | GitHub · npm |
Open Props UI
A CSS UI library exploring how next-gen HTML & CSS features can change the way we create components. Built on top of Open Props and ships HTML, Astro and Vue components alongside framework-agnostic CSS.
- Docs: open-props-ui.netlify.app
- Source: github.com/felix-bohlin/ui
Install
pnpm add opui-css open-props
Peer dependencies:
astro^6(only required if you use the Astro components)vue^3(only required if you use the Vue components)open-props^1
Usage
Astro components
---
import "opui-css/css/imports.css"
import { Button, Card } from "opui-css/astro"
---
<Card>
<Button variant="primary">Click me</Button>
</Card>
Plain HTML + CSS (no build step)
Drop a pre-bundled stylesheet into any page and use the documented class names:
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/opui-css/dist/opui.css"
/>
<button class="ui-button ui-primary">Click me</button>
dist/opui.css is a single self-contained file (Open Props + normalize + theme + every component + utils, in the correct cascade layers). dist/opui.components.css is the same minus tokens and reset for users who already have those.
If you do have a bundler that resolves CSS @imports (Vite, Astro, webpack, …), import the source instead so you only ship what you use:
@import "opui-css/css/imports.css"; /* same content as dist/opui.css */
@import "opui-css/css/components/button.css"; /* or pick à la carte */
Cascade layers
The library defines this layer order:
@layer openprops, theme, normalize, components.root, components.extended, utils;
Wrap your own styles in a layer above utils (or unlayered) to override.
Entry points
| Import | What it gives you |
|---|---|
opui-css |
Pre-bundled: everything in one file (default) |
opui-css/open-props |
Pre-bundled: Open Props tokens only |
opui-css/dist/opui.css |
Same as default - explicit path |
opui-css/dist/opui.components.css |
Pre-bundled: components only |
opui-css/dist/op.css |
Same as opui-css/open-props - explicit path |
opui-css/css/imports.css |
Source: everything (resolved by your bundler) |
opui-css/css/components.css |
All component styles (no tokens / reset) |
opui-css/css/components/*.css |
One component at a time |
opui-css/core/normalize.css |
CSS reset |
opui-css/core/palette.css |
Extra OKLCH palette |
opui-css/core/utils.css |
Utility classes |
opui-css/astro |
All Astro components |
opui-css/components/* |
Individual Astro component sources |
License
MIT © Felix Bohlin
Related Packages
CSS themes for the unofficial astryx-vue port of Astryx. Not affiliated with Met...
Adkompas UI — design tokens, Vuetify theme preset, framework-agnostic CSS, and p...
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 5.4.3 | ^3.5.39 | MIT | |
| 5.4.2 | catalog: | MIT | |
| 5.4.1 | catalog: | MIT | |
| 5.4.0 | catalog: | MIT | |
| 5.3.0 | catalog: | MIT | |
| 5.2.0 | MIT | ||
| 5.1.2 | MIT | ||
| 5.1.1 | MIT | ||
| 5.1.0 | MIT | ||
| 5.0.1 | MIT | ||
| 5.0.0 | MIT | ||
| 4.1.0 | MIT | ||
| 4.0.1 | MIT | ||
| 4.0.0 | MIT | ||
| 3.3.5 | ^3.5.25 | MIT | |
| 3.3.4 | ^3.5.25 | MIT | |
| 3.3.3 | ^3.5.25 | MIT | |
| 3.3.2 | ^3.5.25 | MIT | |
| 3.3.1 | ^3.5.25 | MIT | |
| 3.3.0 | ^3.5.25 | MIT | |
| 3.2.1 | ^3.5.25 | MIT | |
| 3.2.0 | ^3.5.25 | MIT | |
| 3.1.1 | MIT | ||
| 3.1.0 | MIT | ||
| 3.0.0 | MIT | ||
| 2.4.0 | MIT | ||
| 2.3.0 | MIT | ||
| 2.2.3 | MIT | ||
| 2.2.2 | MIT | ||
| 2.2.1 | MIT |
Showing the latest 30 of 38. See every release on npm