safi / laralcn-ui
LaralCN-UI: a shadcn-style copy-and-own Blade component installer for Laravel.
Requires
- php: ^8.2
- illuminate/console: ^11.0 || ^12.0 || ^13.0
- illuminate/filesystem: ^11.0 || ^12.0 || ^13.0
- illuminate/support: ^11.0 || ^12.0 || ^13.0
Requires (Dev)
- gehrisandro/tailwind-merge-laravel: ^1.2
- orchestra/testbench: ^9.0 || ^10.0
- pestphp/pest: ^3.0
README
A shadcn/ui-style copy-and-own component system for Laravel & Blade.
LaralCN-UI is not a component library. You do not depend on a runtime package for the components. You pull individual components into your own project as plain .blade.php files that you fully own and can edit.
- Pure Blade + Tailwind v4. Alpine.js only when interactivity is unavoidable. No React/Vue, no base UI primitive dependency.
- Two channels. Install via Artisan CLI, or copy from the website.
- Yours to edit. Components live in your source tree. No version coupling.
- MIT licensed.
Channel A: CLI
composer require --dev safi/laralcn-ui # once php artisan ui:init # one-time project setup php artisan ui:add button # per component
<x-ui.button variant="destructive">Delete</x-ui.button>
Commands: ui:init, ui:add, ui:list, ui:diff. The CLI is Laravel-only.
Channel B: copy from the website
Every component has a docs page with a live preview and one-click copyable source. Copy the file into resources/views/components/ui/, copy the theme variables once, done. No CLI, no Composer. This is the supported path for plain-Blade and Statamic projects.
Requirements
- Laravel app on Tailwind CSS v4 (the default
laravel newsetup: CSS-first@import "tailwindcss",@tailwindcss/vite, notailwind.config.js). gehrisandro/tailwind-merge-laravelin the consuming project (soclass="px-8"correctly overrides a component's built-inpx-4).ui:initdetects this and prints the install command.- Alpine.js only for interactive components (Dialog, Dropdown, etc.).
Repository layout (monorepo)
| Path | What |
|---|---|
packages/blade-ui |
the safi/laralcn-ui installer package + CLI |
registry/ |
single source of truth: component JSON + sources |
website/ |
Laravel docs/showcase app (dogfoods the components) |
docs/ |
DECISIONS.md (locked calls), AUTHORING.md |
Contributing
Read docs/AUTHORING.md (the component standard) and docs/DECISIONS.md (the locked architectural calls) before proposing components.
License
MIT © 2026 AbdulKader Safi