Precision meets expression.
Every LUC interface starts from one system: tokens, accessible components, spatial motion, professional charts and whole reference products — documented one page at a time.
import { Button } from "@luc/ui";Actions · six intents
Status · never colour alone
Numbers · tabular by default
Density · one radius scale
- catalog entries
- 282
- components and integrations
- 110
- canonical charts
- 76
- motion components
- 35
What this system believes
Four rules decide every component in the library — and every page that documents it.
Tokens come before components
Three layers — core, semantic and utility — so a component never names a colour or a size directly.
Dark mode is the reference
The dark theme is designed first; the light theme is an independent design, never an inversion.
The interface never computes
Charts and tables render values the caller prepared; indicators, factors and backtests stay in the data layer.
Documentation stays honest
Where a component cannot express something, its page says so instead of quietly faking the result.
How to read a component page
Each page opens with what the component is for, then a live example, the real import path, the API from the generated catalog and what it does not do.
The charts state their units
A chart here draws what you prepared and says nothing you did not declare: no computed indicator, no guessed currency, no line across a gap. Axes, ticks and tooltips are formatted from the format you pass in.
The figure beside this text is the catalog itself, counted by area of the site. It is the only dataset the front door owns, so it cannot drift from what it describes.
Motion answers a pointer. Nothing moves on its own.
Motion with an off switch
Changing the sentence is a real transition through the library's own stagger. Turn motion down in the header and the same change becomes an instant swap, which is what a reader who asked for less motion should get.
Open the motion galleryWhere to go next
Each surface has one job: learn the rules, find a component, read a chart, assemble a page, or see a whole product built from the library.
The tokens, the spacing rhythm and the rules a page is built from.
Components164 in this areaEvery public primitive and composite, one honest page at a time.
Charts76 in this areaThe chart catalogue, and the contracts that keep chart engines out of your data layer.
Motion164 in this areaSpatial and expressive motion primitives, with reduced-motion behaviour built in.
Experiences34 in this areaSixteen reference products assembled only from public components.
Data table164 in this areaSorting, filtering, selection and virtualisation for datasets that are actually large.
Integrations164 in this areaThird-party surfaces wrapped behind a LUC contract, starting with TradingView.
Studios34 in this areaConfigure a chart, a motion feel or a theme against the real props, then copy the code.
Blocks34 in this areaPage sections assembled from components: a hero, a pricing band, a feed, a timeline.
Templates34 in this areaWhole-page starters — a personal site, a marketing page, a product console.
Personal sites34 in this areaCareer, academic, portfolio and digital-garden references, built from the same primitives.
Install from a Git tag or a vetted tarball
The package is not published on npm. The public Git tag installs the built package directly; the release tarball is the offline, checksum-pinned alternative.
Git tag
VerifiedThe public install is the built package at the immutable v1.0.1 Git tag. It needs no install script, and the lockfile records the resolved commit.
pnpm add @luc/ui@github:lucxu495/luc-ui#v1.0.1npm install @luc/ui@github:lucxu495/luc-ui#v1.0.1yarn add @luc/ui@github:lucxu495/luc-ui#v1.0.1bun add @luc/ui@github:lucxu495/luc-ui#v1.0.1Packed tarball
VerifiedUse the release tarball for offline or checksum-pinned installs. This repository's consumer gate installs both this artifact and the public Git tag with plain npm.
pnpm add ./luc-ui-1.0.1.tgznpm install ./luc-ui-1.0.1.tgzyarn add ./luc-ui-1.0.1.tgzbun add ./luc-ui-1.0.1.tgzRequires: react ^19.0.0 · react-dom ^19.0.0 · react-hook-form ^7.0.0 (optional, for @luc/ui/forms/react-hook-form) · tailwindcss ^4.0.0 · node >= 22 (repository tools)
Build with a system that shows you how it is built.
Luc UI is public on GitHub. Version 1.0.1 installs from an immutable Git tag published in GitHub Releases; registry publication is still pending, and there is no paid tier. The installation guide shows the exact commands that work today.