ng-blatui for Angular β search components, blocks, charts & templates and read their typed API.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
Accessible Angular UI library β a faithful port of BlatUI's visual system to Angular. Built on the official Angular headless stack (Angular Aria + CDK), styled with Tailwind CSS v4 + oklch design tokens.
155 components Β· 16 blocks Β· 70 charts Β· 34 page templates β all standalone, signal-based, zoneless and SSR-safe.
π Docs & live demo β Β· π¦ npm Β· π€ Using with AI β
input()/model()/output()), zoneless change detection, OnPush by default.@angular/aria + @angular/cdk; passes AXE / WCAG AA.ControlValueAccessor, so the same component works with Reactive, Template-driven and Signal forms.llms.txt index and a machine-readable registry (see below).Peer dependencies (Angular 21 or 22): @angular/core, @angular/common, @angular/forms, @angular/cdk, @angular/aria.
Styling is Tailwind CSS v4. In your app's global stylesheet (e.g. src/styles.css) add three lines:
The @source line is the easy one to miss: without it Tailwind never scans ng-blatui's
compiled templates, so the components render unstyled. Point it at wherever ng-blatui lives
relative to the stylesheet (adjust the ../ depth). Dark mode is a dark class on a parent
(<html class="dark">); override any oklch token in :root / .dark to re-theme. Full guide:
https://ngblatui.remix-it.com/docs/installation.
ng-blatui ships no icon set β wire your own (e.g. @ng-icons)
with provideIcons(...) and register each icon you use. Components that take an icon accept an SVG
path d string, so any icon source works.
Import the component class from the ng-blatui barrel and add it to a standalone component's imports[] β no NgModule. Selectors are prefixed bui.
<bui-avatar>, <bui-rating>, β¦<button buiButton>, <input buiInput>, <span buiBadge tone="success">, β¦[checked] / (checkedChange) etc.; works under zoneless CD and SSR with no extra setup.formControlName, [(ngModel)] or [formControl] all work β every control is a ControlValueAccessor.BuiInputField,
BuiMoneyInput (localized currency; symbol="DH" overrides the ISO code), BuiDateRangePicker
(startβend with presets), plus BuiSelect, BuiCombobox, BuiAutocomplete, BuiPhoneInput.buiField + buiFieldLabel / buiFieldDescription
/ buiFieldError wrap a bare buiInput / .blat-* control and manage the a11y relationships.Reach for a bare control (buiInput) only when you also add the buiField scaffolding yourself.
Other easy-to-miss building blocks: buiEmpty (empty states), bui-stat (stat cards),
buiFieldSet / buiFieldLegend (grouped fields).
Styling is Tailwind v4 + CSS variables. Override the oklch design tokens (--background, --foreground, --primary, --border, --muted, --radius, β¦) to restyle everything globally; toggle a dark class for dark mode. See https://ngblatui.remix-it.com/docs/theming.
| Category | Count | Browse |
|---|---|---|
| Components | 157 | https://ngblatui.remix-it.com/components |
| Blocks | 16 | https://ngblatui.remix-it.com/blocks |
| Charts | 70 | https://ngblatui.remix-it.com/charts |
| Templates | 34 | https://ngblatui.remix-it.com/templates |
Templates are full, production-style pages (dashboard, pricing, auth, store, CRM, blog, docs, e-commerce product, plus 20 art-directed landing pages) β faithful 1:1 reproductions of the BlatUI originals.
ng-blatui is built to be consumed by AI coding assistants so they discover and use the catalog correctly instead of guessing β via three layers:
| Layer | What | Where |
|---|---|---|
| MCP server | Tools to list/search the catalog and fetch full docs + code | npx ng-blatui-mcp |
| llms.txt | The llms.txt standard index | https://ngblatui.remix-it.com/llms.txt |
| registry.json | Machine-readable catalog | https://ngblatui.remix-it.com/registry.json |
Quick start (works in Claude, Cursor, Windsurf, Cline, Zed, VS Codeβ¦):
The MCP server exposes list_components (optional category), list_blocks, list_charts, list_templates, search({ query }) and get_docs({ name }). Full guide with per-client config and copy-paste editor rules: USING-WITH-AI.md.
This is an Angular workspace with two projects: the library (projects/ng-blatui) and the docs/demo app (projects/demo).
| Command | What it does |
|---|---|
npm start | Serve the demo app (ng serve demo) |
npm run build:lib | Build the publishable library (ng build ng-blatui) |
npm run build | Build the demo site |
npm test | Unit tests (Vitest) |
npm run lint | ESLint (type-aware, strict) + template a11y |
npm run format | Prettier (with Tailwind class sorting) |
npm run build:registry | Regenerate registry.json + llms.txt from the catalog |
npm run capture:previews | Capture template preview images (Playwright) |
npm run deploy:site | Build + deploy the docs site to the VPS |
Angular v22, zoneless, standalone (defaults β never set explicitly). Signals everywhere; native control flow (@if/@for/@switch); no *ngIf/ngClass. Library selector prefix bui, demo prefix app. See AGENTS.md and CONTRIBUTING.md for the full ruleset.
ng-blatui) β the Release GitHub Actions workflow (manual dispatch) runs semantic-release: it analyzes Conventional Commits, bumps the version, tags, creates a GitHub release and publishes to npm with provenance.ng-blatui-mcp) β bump mcp/package.json, then run the Release MCP workflow (manual dispatch) to publish it.Angular port of BlatUI (Blade/Laravel + Tailwind component system). Behavior on Angular Aria + CDK.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/ng-blatui)<a href="https://allmcps.com/mcp/ng-blatui"><img src="https://allmcps.com/api/badge/ng-blatui?style=directory" alt="Ng Blatui on AllMCPs" /></a>