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

@astrake/lumora-ui

v0.10.0

Published

Headless Vue 3 component framework for three surface targets — Mobile, Desktop, and Embedded — with a unified --lu-* design token system.

Readme

@astrake/lumora-ui

CI npm version npm downloads License: MIT Bun Vue 3

Headless Vue 3 component framework targeting three distinct surface types — Mobile, Desktop, and Embedded — with a unified --lu-* design token system.

Documentation · npm · Changelog · Issues


Overview

@astrake/lumora-ui provides a single component library with three surface targets:

| Target | Components | Use case | |--------|-----------|---------| | Mobile (LuMobile*) | LuMobileShell, LuMobileHeader, LuMobileNavBar | PWA-ready apps — touch targets ≥44px, swipe gestures, bottom nav | | Desktop (LuDesktop*) | LuDesktopShell, LuDesktopSidebar, LuDesktopTopBar | Feature-rich browser / Electron apps — resizable splits, keyboard shortcuts | | Embedded (LuEmbedded*) | LuEmbeddedShell | Retail POS, Kiosk, IoT, in-car screens — fixed viewport, high contrast, touch-first | | Shared (Lu*) | LuDataGrid, LuKanban, LuBarChart, LuRichTextEditor, LuButton | Cross-surface primitives, data-rich components, and operational features |


Install

bun add @astrake/lumora-ui vue@^3.5.0 tailwindcss @tailwindcss/vite \
        echarts vue-echarts \
        @tiptap/vue-3 @tiptap/starter-kit @tiptap/extension-placeholder \
        vue-draggable-plus

The postinstall script will print this command automatically after bun add @astrake/lumora-ui.


Usage

// Import shared components and layout primitives
import { LuButton, LuDataGrid, LuKanban, LuStack } from "@astrake/lumora-ui"

// Import surface-specific shells
import { LuMobileShell, LuDesktopShell, LuEmbeddedShell } from "@astrake/lumora-ui"

Register the plugin:

// main.ts
import { createApp } from "vue"
import { createLumoraUI } from "@astrake/lumora-ui"
import "@astrake/lumora-ui/style"
import App from "./App.vue"

createApp(App).use(createLumoraUI()).mount("#app")

Design Token System

All targets share a --lu-* CSS custom property namespace:

| Token group | Examples | |-------------|---------| | Color | --lu-color-surface, --lu-color-accent, --lu-color-border | | Typography | --lu-text-sm, --lu-font-weight-semibold | | Spacing | --lu-space-1--lu-space-16 (4px grid) | | Radius | --lu-radius-sm--lu-radius-full | | Shadow | --lu-shadow-sm--lu-shadow-lg | | Motion | --lu-duration-fast, --lu-easing-standard |

Each target root overrides tokens as appropriate (e.g., Embedded reduces shadow and motion values for performance).


Runtime Stack

| Concern | Technology | |---------|-----------| | Component framework | Vue 3.5+ (Composition API) | | Language | TypeScript 5.9+ | | Bundler | Vite (library mode, three entry points) | | Interactive Add-ons (Peer) | Apache ECharts, Tiptap, Sortable.js (vue-draggable-plus) | | Type check | vue-tsc | | Tests | Vitest + @vue/test-utils | | Package manager | Bun 1.3+ |


Repo Shape

LumoraUI/
├── packages/core/        ← @astrake/lumora-ui (published package)
│   └── src/
│       ├── components/   ← shared primitives + complex components (Lu*)
│       ├── layout/       ← layout primitives (LuStack, LuGrid, LuDock, etc.)
│       ├── shell/        ← surface shells (LuDesktopShell, LuMobileShell, etc.)
│       ├── composables/  ← shared composition functions
│       ├── skins/        ← SkinMap default theme
│       ├── lumora.css    ← structural CSS baseline
│       └── index.ts
├── apps/showcase/        ← reference Vite + Vue 3 showcase app
├── tools/                ← build, check, version, changelog scripts
├── .agent/               ← AI agent rules and authoring guides
└── docs/                 ← architecture, development, releases, legal

Local Development

git clone https://github.com/madlybong/LumoraUI.git
cd LumoraUI
bun install
bun run check      # typecheck
bun run test --run # run test suite
bun run dev        # start the showcase app

Documentation


Automation

| Trigger | Workflow | Effect | |---------|----------|--------| | Push to main | CI | Install → typecheck → test → build | | PR with VERSION change | Version Check | Ensures VERSION is the single source of truth | | VERSION bump on main | Release | Build → changelog → GitHub Release → npm publish | | Manual tag v* | Release | Same as above | | Every Monday | CodeQL | Security scan |

Required secrets: NPM_TOKEN — see docs/RELEASES.md.


Contributing

Contributions are welcome. Please read the working rules in AGENTS.md before submitting a PR. By contributing, you agree your work is licensed under MIT. See docs/LEGAL.md.


Disclaimer

@astrake/lumora-ui is provided "as is" without warranty of any kind. The author accepts no liability for damages arising from the use of this software. See docs/LEGAL.md for the full warranty disclaimer and legal notice.


License

MIT © 2026 Anuvab Chakraborty