npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

civic-ui

v0.2.1

Published

A clean, professional Vue 3 component library with a calm, high-trust institutional design language — accessible and ready to drop into any project.

Readme

Civic UI

The Codeberg repository is the canonical source. The GitHub repository is a read-only mirror, used for npm provenance/publishing and for hosting the live playground via GitHub Pages.

A Vue 3 component library for public-sector and institutional websites — a calm, high-trust design language (deep navy ink, a strong yellow accent, soft-cornered buttons, generous whitespace) built entirely on CSS custom properties, so it re-skins without touching a single component.

It ships ready-to-use Sections for a public-facing site (hero, service teasers, FAQ, appointment booking, footer…), a full component set (buttons, forms, tables, overlays…), and a parallel webapp kit (AppShell, Sidebar, DataTable, StatCard…) so an internal tool can share the same design system as the public site.

Re-skinning to a different brand doesn't mean hand-picking two dozen CSS variables and hoping the contrast still holds: generatePalette()/applyPalette() take a ready-made palette, one brand color, a handful of roles, or every role, derive whatever you didn't specify, and check (and if needed correct) every text/background pairing against WCAG AA. See Theming.

Civic UI playground — component and section catalog

Built for government and public-sector deployments

  • Accessible by default. The entire component set is built and checked against WCAG 2.2 Level AA, EN 301 549, and BITV 2.0 — Germany's federal accessibility ordinance. Real keyboard operability everywhere, managed focus for every overlay, correct WAI-ARIA wiring, and forms that tie label/hint/error text together programmatically. Full breakdown: Accessibility & privacy conformance.
  • GDPR-compliant by construction. Zero requests to third-party hosts — fonts are self-hosted, not pulled from a Google Fonts CDN, so loading the library never leaks a visitor's IP address to anyone. Details: Privacy and third-party requests.
  • Built against OWASP ASVS 4.0 and BSI IT-Grundschutz APP.1.4. The two real injection surfaces a component library can expose — raw SVG props and URL bindings — route through an overridable security.js module, so you can wire in your own sanitizer or backend allowlist with one function call. Details: Security.

These are conformance targets the library is checked against during development, not third-party certifications — Accessibility & privacy conformance explains how to verify all of it yourself with free tooling once deployed.

Install

npm install civic-ui vue
// main.js
import { createApp } from 'vue'
import CivicUI from 'civic-ui'
import App from './App.vue'

createApp(App).use(CivicUI).mount('#app')
<template>
  <cui-hero-section title="Welcome" text="Built with Civic UI." />
</template>

Or import only what you need:

<script setup>
import { AppButton, Card } from 'civic-ui'
</script>

See Getting started for the full setup guide.

Documentation

The complete reference — every component and section, one page each, with live examples and full prop tables — lives in docs/. Run the interactive version locally:

git clone https://codeberg.org/zerobrick/civic-ui.git
cd civic-ui
npm install
npm run dev

This opens the playground: a browsable catalog of every component and section with a live preview, prop reference, and copy-pasteable code for each. It also has its own README — none of it ships in the published package.

Contribute / develop locally

npm run dev      # playground — Sections and Components catalog
npm run build    # builds the publishable library into dist/

License

MIT