Skip to main content
v1.0.0 — Open Source & Free

VelinStyle

VelinStyle is the WCAG 2.2 AAA CSS framework with native JavaScript runtime and Web Components. 35+ CSS components, 36 Web Components, 27 declarative HTML attributes, 13 OKLCH themes, and agent metadata (velin-agent.json, llms.txt).

 components  web components  themes WCAG 2.2 AAA · ready Subpath APIs Velin-Meta
Component growth 0.5 → 1.0.0
One stack, three habits

VelinStyle meets you where you are — then levels you up

We do not ship Bootstrap or Tailwind. This strip shows how the same product story feels in three engineering cultures — and how VelinStyle collapses noise into tokens, components, and accessible defaults.

Component-first habit

Familiar — but every surface is a bespoke bundle of class names and JS plugins for focus, overlays, and dark mode.

Utility-first habit

Flexible — but every screen re-encodes design decisions as long class strings; A11y and theming stay your responsibility.

VelinStyle

Coherent — semantic components, OKLCH tokens, @layer, container queries, and optional Web Components with focus + ARIA baked in.

Why VelinStyle?

Built Different from the Ground Up

Not another Bootstrap clone. VelinStyle uses the latest CSS standards to deliver accessibility, performance, and developer experience in one package.

Accessibility Built-in

WCAG 2.2 AAA token defaults are built in (AA via data-velin-contrast="aa"). Focus trapping, labeled dialogs, skip links, 44px targets, and forced-colors — production-ready in CSS and components.

Modern CSS Only

@layer, CSS nesting, :has(), Container Queries, OKLCH, @scope, Anchor Positioning — no preprocessors, no build step.

13 Themes + Dark Mode

Swap entire design personality with one attribute. 13 presets from Corporate to Brutalist. Dark mode auto-detects system preference — zero config.

Multi-Provider Icons

50+ built-in icons plus instant access to Lucide, Heroicons, Material, Bootstrap Icons, Font Awesome and Tabler — via one attribute. No extra imports.

CLI: scaffold, audit, scan

1.0.0: docs generate, perf audit, tokens validate, PII scan (--only pii --fix), scaffold, layout audit, and security scan.

Security Built-in

XSS-safe Web Components, PII scanner, <velin-email> obfuscation, optional velin-secure-field, CSP, and Trusted Types.

Motion runtime (1.0.0)

initMotion, velin-stagger, scroll-driven .velin-in-view, and attribute bridges (velin-reveal, velin-fade, …). This page uses data-velin-reveal-auto on <html>.

Search & highlight (1.0.0)

Offline fuzzy VelinSearch, <velin-search>, and VelinHighlight with lazy in-view tokenizing via <velin-code-block> — same engine as the docs site.

Live on this page

1.0.0 runtime in action

Motion, syntax highlighting, and agent metadata ship as subpath exports — wired into this homepage, not just listed in the changelog.

Motion

Stagger & reveals

initMotion() + velin-stagger — scroll the page or resize to see cards animate in. Respects prefers-reduced-motion.

Motion guide →
VelinHighlight

Lazy in-view code

<velin-code-block> highlights when scrolled into view (IntersectionObserver + rAF batching).

import { initHighlight } from '@birdapi/velinstyle/highlight'; initHighlight(document, { selector: 'pre.playground-pane__code, velin-code-block pre', }); Syntax guide →
Velin-Meta

Agent-ready bundle

velin-agent.json + llms.txt for Cursor, Copilot, and custom tools. MIME application/vnd.velinstyle.meta+json (served as JSON on GitHub Pages).

1.0.0 runtime & toolchain

Search, motion, highlight, attributes & Velin-Meta

Subpath exports, Web Components, and CLI doc generation — see the live runtime strip above for motion, highlight, and Velin-Meta. Hero also uses velin-counter, velin-sparkline, and velin-live-dot. Full feature scope map.

New · Velin-Meta

Agent context for Cursor & Copilot

dist/velin-agent.json + llms.txt and page-level application/vnd.velinstyle.meta+json — conventions, components, CLI, doc URLs without hiding content from humans.

Runtime

VelinSearch

Fuzzy offline search — same engine as the docs header. @birdapi/velinstyle/search

Guide →
Runtime

Motion

initMotion, stagger, scroll-driven reveals. @birdapi/velinstyle/motion

Guide →
Runtime

VelinHighlight

Lazy in-view highlighting (IntersectionObserver). Playground code panes use the same pipeline via <velin-code-block>.

Live demo ↑ Guide →
Runtime

HTML attributes

27 bridges: velin-modal, velin-reveal, velin-scroll-top, velin-code, …

Guide →
Web Component

<velin-search>

Autocomplete with keyboard navigation and grouped results.

Component →
Web Component

<velin-code-block>

Copy, line numbers, collapsible blocks with lazy highlight.

Component →
Install & ship

Install & Go

Pick your path — npm, CDN, Vite starter, or a custom CSS bundle from the CLI. Copy buttons grab the exact snippet.

  1. Add the package

    From your project root:

    npm install @birdapi/velinstyle
  2. Load CSS

    Reference the built CSS (or import it in your bundle entry).

    <link rel="stylesheet" href="node_modules/@birdapi/velinstyle/dist/velinstyle.min.css">
  3. Optional: Web Components (ESM)

    Use the minified module bundle for interactive primitives.

    <script type="module" src="node_modules/@birdapi/velinstyle/dist/velinstyle-components.min.js"></script>
  4. Markup

    Use velin-* classes and optional <velin-…> elements — see the docs for patterns.

No ES modules? Use velinstyle-components.iife.js for legacy pages — covered in the download guide.
Docs & repo tools

Blueprint, tokens, and patterns

One surface for CLI workflows, token pipelines, and accessible UI recipes — without leaving the design system you already ship.

CLI docs · perf · scan · tokens

Command-line reference

Snippet emitters, velinstyle tokens build, extended scan flags (--fix-dry-run, --fix-lang), and copy-paste config samples.

A11y

Pattern library

Skip links, live regions, dialogs, tabs, landmarks, and form error wiring — aligned with Velin components.

Open patterns →
Forms

Validation layer

:user-invalid, [aria-invalid], hints and errors — documented end-to-end.

Validation docs →
Repo

Local tooling

tools/theme-builder, tools/playground, and the Vite starter templates/vite-velinstyle.

GitHub →
Local preview: run npm run build in this repo, then npm run dev (port 4000). Open via http://localhost:4000file:// needs dist/ present.
Under the Hood

Modern CSS That Others Can't Match

VelinStyle uses cutting-edge standards that Bootstrap and Tailwind don't support yet.

@layer

8 ordered cascade layers for predictable specificity

CSS Nesting

Native nesting without Sass or PostCSS

Parent Selectors

CSS-only filtering & state detection

OKLCH Colors

Perceptually uniform, P3 gamut support

Container Queries

Components adapt to their container, not viewport

CSS Scope

Scoped styles without Shadow DOM

Anchor Positioning

Native tooltip/dropdown positioning, no Popper.js

Fluid Typography

Smooth scaling between mobile and desktop

Try It Live

Interactive Playground

Pick an example on the left — Preview and HTML sit side by side (docs-style layout). The Buttons tab uses <velin-code-block> with lazy highlight; other tabs show plain markup until you switch.

Preview

Variants

Sizes

States

HTML
<button class="velin-btn velin-btn--primary">Primary</button> <button class="velin-btn velin-btn--success">Success</button> <button class="velin-btn velin-btn--outline">Outline</button> <button class="velin-btn velin-btn--primary velin-btn--sm">Small</button> <button class="velin-btn velin-btn--primary velin-btn--loading">Loading</button> <button class="velin-btn velin-btn--primary velin-btn--block">Block</button>

Full split-view playground lives in the core repo: tools/playground — clone VelinStyle and open it locally.

13 Theme Presets

Same HTML, Different Personality

Swap with data-velin-theme="...". No rebuild, no extra CSS file. Scope themes to sections or the entire page.

Button

Default

Clean, balanced, professional.

Button

Sharp

Angular, editorial, zero radius.

Button

Soft

Rounded, warm, friendly.

Button

Brutalist

Raw, bold, hard shadows.

+ 9 more: Corporate, Elegant, Neon, Pastel, Retro, Glassmorphism, Nature, Monochrome, High Contrast

Explore All Themes →

How We Compare

VelinStyle vs. the Rest

A framework built for the modern web — not patched onto the old one.

Bootstrap since 2011
Modernness
Bundle
Components
~25
Deps
jQuery / Popper
Tailwind since 2017
Modernness
Bundle
JIT (varies)
Components
0 (utility only)
Deps
PostCSS + Node
VelinStyle v1.0.0 since 2025
Modernness
CSS bundle
JS bundle
Components
35+ CSS · 36 WC
Deps
None
Feature Bootstrap Tailwind VelinStyle
Components ~25 0 (utility only) 35+ CSS + 36 Web Components
Bundle Size ~230 KB (CSS+JS) JIT (varies) ~46 KB CSS + ~111 KB JS
Accessibility Partial (ARIA in JS) None built-in WCAG 2.2 AAA · ready
Dark Mode Manual Sass swap dark: variant Automatic token swap
Color System HEX / RGB HEX / RGB OKLCH (perceptual)
JS Dependency jQuery / Popper PostCSS + Node None (Web Components)
CSS Layers 8 ordered layers
Container Queries v4 only First-class
RTL Support Plugin Plugin Built-in (logical props)
Theme System Sass variables tailwind.config 13 presets, 1 attribute swap
Icon System External (Bootstrap Icons) External (Heroicons) Built-in + 6 providers
CLI Scanner A11y, Security, CSS
Security (XSS, CSP) Sanitization, Trusted Types
View Transitions CSS-only morph
Haptic Feedback 6 patterns
Form Persistence Zero-JS <velin-persist>
Fluid Typography Manual clamp() engine
Motion & charts (0.8.0+) Sparkline, counter, FLIP-filter
VelinSearch & docs index (1.0.0) Fuzzy search + search index
Auto-generated API docs (1.0.0) docs generate Markdown
Velin-Meta (AI context) (1.0.0) velin-agent.json, llms.txt
PII & perf CLI (1.0.0) scan --only pii, perf audit
Get Started in Seconds

Copy, Paste, Ship

No build tools. No config files. Just HTML.

<!-- Add to <head> — that's it! -->
<link rel="stylesheet"
      href="dist/velinstyle.min.css">
<script type="module"
        src="dist/velinstyle-components.min.js"></script>

<!-- Start building -->
<div class="velin-container">
  <div class="velin-grid velin-grid--auto-fit">
    <article class="velin-card">
      <div class="velin-card__body">
        <h2 class="velin-card__title">Hello World</h2>
        <button class="velin-btn velin-btn--primary">Get Started</button>
      </div>
    </article>
  </div>
</div>
36 Canonical Components

Zero-Dependency Web Components

36 canonical custom elements (38 lazy-loader entries). Native Custom Elements with CLS placeholders, component contracts, and Playwright smoke tests in CI. Works with React, Vue, Angular, Svelte, or plain HTML — no framework lock-in.

View all 36 components →

Start Building Today

One command. Zero config. Instant accessibility, dark mode, and 35+ components.

npm install @birdapi/velinstyle