List, search, and inspect Ply Angular + Tailwind copy-in components.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
MIT free-tier source. Components live in
components/(same layout asnpx ply-ui-cli add). CLI and MCP live inpackages/. Pro items are not stored here β install those withPLY_LICENSE_KEYfrom ply-ui.com.Angular 19+: free components on
compat/angular-19.mainis Angular 22 (signal-forms[formField]).
Ply (formerly Base UI (Angular)) β ply-ui.com β is a CLI-first Angular + Tailwind CSS component library: 218 components and blocks (128 free, 90 Pro), 390 icons, and 18 full page layouts β standalone, zoneless, signal-based and SSR-safe, delivered shadcn-style: npx ply-ui-cli add copies the source into your project and it's yours. Not MUI Base UI (React).
π Documentation & live previews: ply-ui.com
π Changelog: ply-ui.com/changelog Β· CHANGELOG.md Β· Issues Β· Discussions
βΏ Accessibility (ACR): ply-ui.com/accessibility Β· npm run test:a11y
π₯οΈ SSR-safe: the docs site prerenders every catalog route, enforced by a blocking CI job Β· how we verify it
π€ AI agents (MCP): ply-ui.com/getting-started#ai-agents-mcp Β· ply-ui-mcp Β· why copy-in UI works better with LLMs Β· token walkthrough: rich text editor
π¨ Figma Design System: Ply Design System
β¨ See what you can build for free: Live Admin Dashboard Demo (Source code: ply-free-dashboard)
The free tier is production-ready with no account or license: all primitives (buttons, cards, dialogs, hover cards, menubars, inputs, currency fields, selects, tabs, stacked toasts, tooltips, and more) plus all 19 form blocks (login, signup, checkout, billing, wizard, β¦).
This writes ply-ui.json, creates ply-ui.css (CDK overlay styles, keyframes, autofill fixes) imported from your global stylesheet, and downloads the icon sprites into your assets folder. Use --yes to accept defaults non-interactively. It does not install npm packages, so add the Angular CDK yourself: npm install @angular/cdk.
Ply works with standard Tailwind CSS 4 β no custom theme file required.
src/tailwind.css, register it in angular.json before global SCSS, and point @source at your templates. @source paths are relative to the CSS file:Buttons, inputs, folder/underline/pills tabs, selects, combobox, toast, accordion, and the command palette read --ply-primary from ply-ui.css. That file aliases --color-blue-* to the same scale, so blue-* widgets follow it. A Theme Studio export sets --ply-brand and --ply-scale-*.
Optional β custom brand color: set --ply-brand in any stylesheet (load order does not matter), or copy a Theme Studio export:
Use Theme Studio (or the docs customizer) to live-preview those controls and export a full 50β950 scale as a Tailwind v4 @theme block. Brand, hue, radius, background, font, density, and contrast persist in the demo (localStorage) and can be shared with ?theme=nord&radius=0.75&bg=zinc&font=inter&density=compact.
Omit the name (npx ply-ui-cli add) in a terminal to pick from the catalog. Pass names plus --yes in CI and for agents.
Component dependencies are resolved recursively, and missing npm packages are installed with your package manager automatically. Run npx ply-ui-cli list to see everything that's available.
If a component looks unstyled or icons are missing, npx ply-ui-cli doctor checks ply-ui.json, Tailwind, CDK, and the icon sprites (read-only). Later, npx ply-ui-cli diff shows what's changed upstream for components you've already installed, and npx ply-ui-cli update pulls those changes in β automatically for files you haven't touched, interactively (keep / take upstream / save side-by-side) for anything you've customized that also changed upstream. See packages/cli for details.
All components are standalone β import them from your local components folder:
Pro components are the pre-built blocks β blog and article cards, ecommerce blocks, media and social widgets, 18 full page layouts β plus advanced widgets (data table, date pickers, command palette, mega menu, file upload, multi-select, rich text editor, crop image, product gallery, tree, mention input, splitter).
After purchasing a license at ply-ui.com, set your license key once and add pro components with the same CLI:
The key is validated server-side by the pro registry on every fetch. In CI, set PLY_LICENSE_KEY as a secret.
Templates are complete, production-grade applications built on Pro β every route wired up, shipped as source you own. Each bundle includes a Ply Pro license.
| Category | Free | Pro |
|---|---|---|
| UI primitives | 50+ (buttons, inputs, dialogs, hover cards, menubars, currency, kbd, tabs, calendar, stacked toasts, β¦) | data table, date pickers, command palette, mega menu, file upload, multi-select, rich text editor, crop image, product gallery, tree, mention input, splitter |
| Form blocks | all 19 (login, signup, checkout, billing, wizard, β¦) | β |
| Blocks & widgets | β | blog/article cards, ecommerce blocks, media + social widgets |
| Page layouts | β | 18 (dashboard, kanban, inbox, docs, admin table, β¦) |
| Directives, services, utils | all | β |
| Icons | 390 SVG sprite icons | β |
| Templates | β | Motif storefront, Motif Admin dashboard, Relay workspace ($149 each, or Motif Suite $169) |
Free component source lives in components/. CLI and MCP source live in packages/. Pro components are not in this repository.
Pull requests: see CONTRIBUTING.md. Free, CLI, and MCP PRs merge on this repository. A private docs/Pro tree imports main afterwards so ply-ui.com and npm stay in sync.
main. Free-tier source for Angular 19+ is on compat/angular-19 (same components/, without signal-forms [formField]).Components are safe to server-render or prerender. Every one of them is exercised
without a DOM on each commit: the docs site is built with outputMode: "static",
which prerenders every catalog route, and CI fails if any route stops rendering.
That means no window/document/localStorage access on a render or teardown
path β including the easily-missed ones, since ngAfterViewInit, ngOnDestroy
and effect() bodies all execute during prerendering. The
full write-up
covers what broke when we turned it on.
No reviews yet β be the first to share how this listing worked for you.
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/ply-ui)<a href="https://allmcps.com/mcp/ply-ui"><img src="https://allmcps.com/api/badge/ply-ui?style=directory" alt="Ply UI on AllMCPs" /></a>