OYNA

Glass,
not boxes

A Vue 3 component library with a dark glass look: translucent surfaces over a rich background, no borders, light used as a signal, and a keyboard-first feel.

More examples
Next release3 commits · main
v1.4.1
Build · Test · Ship
Requests131.6k
p95212 ms
Errors0.3%
VersionWhenStatus
v1.4.02 h agoLive
v1.3.9yesterdayReplaced
v1.3.83 days agoFailed
D deploys · L live updates · / search · Enter get started. Keys work on any keyboard layout.

Nothing to set up

CSS frameworkNone
Stylesheet, gzip6.8 kB
Components42
Runtime dependencies1
The whole setup
# or pnpm, yarn, bun
npm install oyna-ui

// main.ts
import 'oyna-ui/style.css'
import 'oyna-ui/fonts.css'

<!-- any component -->
<OButton variant="primary" hotkey="Enter">
  Save
</OButton>
Installation

No Tailwind, no UnoCSS

One plain stylesheet. No build plugin, no class scanning, no config file to keep in step with ours.

Your colours

Every colour, radius and font is a CSS variable. Change them and the whole library follows.

Open the theme editor

Accessibility, not reinvented

The one dependency is Reka UI. It handles focus, the keyboard and screen readers, where there is nothing to look at.

Whole screens

Built only from the library's components. Each one works, and shows its source.

The look

Glass, not boxes

A card is a translucent dark fill over the background. No neutral borders.

A ring is a signal

An outline appears only when it means something: the main thing, or something at stake.

One accent

A single bright accent on a dark stage. Everything else is white at different opacities.

Two typefaces

A condensed display face for numbers and headings, a plain sans for text.

Light, not motion

Feedback under 300 ms, nothing bounces. Reduced motion turns it all off.

Keyboard first

A button can show and own its hotkey, read from the physical key.