There's no shortage of React component libraries. What's missing is one that's good-looking by default, covers the deep-end components nobody ships, and can be read verbatim by your AI coding assistant. That's why I built hulianui ( @hulianui/ui) — "Hulian" for short.
If you're in a hurry:
pnpm add @hulianui/ui @hulianui/tokens
Here's how it differs from shadcn/ui, MUI, and Ant Design, and a few design decisions I'm proud of.
I'm not trying to out-Ant-Design enterprise dashboards, and this isn't another shadcn reskin. The real pain is that these three things are rarely true at the same time:
hulianui is aimed squarely at all three.
The theming system is built on the OKLCH color space + Tailwind v4 @theme, split into two token layers:
--color-primary
/ --color-surface
/ --color-hairline
, etc. Components only ever consume semantic tokens.The payoff: theme switching is just runtime CSS-variable changes — no reload, no flash.
import { ThemeProvider } from "@hulianui/ui";
// Light/dark is a data-theme-driven pure CSS-variable swap — zero repaint flash
<ThemeProvider defaultSetting="system">
<App />
</ThemeProvider>
Dark mode isn't a naive color inversion either — there's a theme-aware shadow system (dark mode uses a white inset rim-light instead of drop shadows) and a "hairline" border token (light mode separates with shadow, dark mode with a 1px border). You can tweak all of it live in the theme docs.
This is hulianui's biggest differentiator. Beyond the usual forms/tables/nav/feedback, it ships a batch of components that are hard to find in generic libraries and painful in every project — all zero/light-dependency, all on the same token skin:
| Component | What it does | Docs |
|---|---|---|
| Gantt | Read-only CSS-grid percentage layout, UTC date math, today line, zero deps | |
And these aren't isolated demos — I built a dozen complete, real admin apps with them, 100% dogfooded, in the live demos:
The real test of a component is whether it dares to power full business pages, not just a storybook cell.
This is the part I think is most ahead of the curve. hulianui serves a spec-compliant llms.txt machine-readable corpus at the site root:
So when you onboard with Cursor, Claude Code, or Copilot, you feed it llms.txt and it writes code from ground truth instead of training memory — no guessed prop names, no hallucinated APIs. Every component doc page also has a "Copy MD for AI" button.
In a world where "let the AI write the feature" is the daily default, that might be more useful than a few more components.
pnpm add @hulianui/ui @hulianui/tokens
python
// Single barrel import
import { Button, ProTable, Gantt } from "@hulianui/ui";
If you also believe people shouldn't have to work against ugly software, give it a try — and tell me in the comments the one component your project keeps fighting with. hulianui might already have it.