πŸš€ luminacn/ui

April 13, 2026 Β· View on GitHub

npm version npm downloads license

Signal-first, headless UI primitives for Angular.
Build accessible, composable components β€” owned directly in your codebase.

CLI-generated UI system for Angular 19+ and Tailwind CSS v4.


✨ Overview

luminacn/ui is a modern UI architecture for Angular that gives you full ownership of your components.

Instead of installing opaque dependencies, you generate components directly into your project β€” fully customizable, fully transparent, and fully yours.

Core Ideas

  • 🧠 Primitives over components β€” build from composable building blocks
  • ⚑ Signal-native β€” designed for Angular Signals (zoneless-ready)
  • 🧩 Headless-first β€” logic separated from styling
  • πŸ“¦ Locally owned β€” components live in your source, not node_modules
  • πŸ›  CLI-driven β€” install, update, diff, and rollback with precision

⚑ Quick Start

Initialize your project

npx luminacn@latest init

Add components

npx luminacn add sheet navigation-menu input-otp

🧩 How it works

CLI β†’ Registry β†’ Generator β†’ Your Codebase
                     ↓
            Angular Signals UI

Every component is:

  • generated into your repo
  • fully editable
  • version-tracked via CLI

No runtime lock-in. No hidden abstraction.


πŸ›  CLI

CommandDescription
initInitialize luminacn in your project
addAdd components to your codebase
listView available components
upgradeUpdate components to latest versions
rollbackRevert to a previous state
diffCompare local vs registry
doctorValidate environment setup
removeRemove components safely

🧱 Component Categories

Navigation Menu Β· Sheet Β· Accordion Β· Tabs Β· Tooltip Β· Dropdown Β· Context Menu Β· Pagination Β· Stepper

Data Display

Data Table Β· Carousel Β· Infinite Scroll Β· Badge Β· Alert Β· Progress Β· Skeleton Β· Spinner

Form Controls

Input Β· Input OTP Β· Textarea Β· Checkbox Β· Radio Β· Switch Β· Toggle Β· Toggle Group Β· Slider Β· FormField

Overlays & Feedback

Dialog Β· Popover Β· Toast Β· Sheet Β· Tooltip

Typography

Headings Β· Text Β· Lead Β· Kbd Β· Utilities


πŸ§ͺ Example β€” Stepper

<nav lmStepper [activeStep]="0" #stepper="lmStepper">
  <button lmStepperTrigger [index]="0">Profile</button>

  <button lmStepperTrigger [index]="1" [disabled]="profileInvalid()">
    Security
  </button>

  <section class="mt-4">
    @if (stepper.activeStep() === 0) {
    <profile-form />
    } @if (stepper.activeStep() === 1) {
    <security-settings />
    }
  </section>
</nav>

🧠 Philosophy

1. You own the code

Every component is generated into your project. No black boxes.

2. Headless by default

Logic is isolated from styling. Use your own design system freely.

3. Signal-native architecture

Built for Angular Signals and future zoneless Angular.

4. Zero dependency core

No runtime UI framework lock-in.


πŸ†š Why luminacn/ui?

Featureluminacn/uiAngular MaterialCDK
Source ownershipβœ… Yes❌ No⚠️ Partial
Headless architectureβœ… Yes❌ No⚠️ Partial
Signals-readyβœ… Yes❌ No❌ No
Tailwind-firstβœ… Yes❌ No❌ No
CLI-driven updatesβœ… Yes❌ No❌ No

πŸ—ΊοΈ Roadmap

Core Interactions

  • Sheet (Drawer) βœ…
  • Navigation Menu βœ…
  • Input OTP βœ…
  • Combobox / Autocomplete βœ…
  • Command Palette (Cmd+K) ⏳

Data & Display

  • Infinite Scroll βœ…
  • Data Table ⏳
  • Carousel ⏳

Forms

  • Toggle Group βœ…
  • Calendar / Date Picker βœ…

Layout

  • Resizable Panels ⏳
  • Pagination ⏳
  • Context Menu βœ…

⚑ Installation Philosophy

No lock-in. No runtime magic.

Everything is generated:

  • You inspect it
  • You modify it
  • You ship it

πŸ“¦ License

MIT


πŸ”₯ Final Note

luminacn/ui is built for developers who want:

β€œShadcn-style ownership β€” but for Angular.”