unoforge/flexiwind/flexiwind
Claude Code and agent skill by unoforge/flexiwind
- community
Checking that the SKILL.md file is still in the repository.
Use this skill when an AI assistant needs to help someone use Flexiwind in a Laravel Blade or Laravel Livewire project.
Install
npx vskill@latest install unoforge/flexiwind/flexiwindSKILL.md
Flexiwind Skill
Flexiwind is a Laravel-first UI component system built with Blade, Livewire, and Tailwind CSS v4. Think of it like shadcn/ui but for Laravel — it provides copy-paste components, blocks, and a semantic theming system, all installable via CLI.
Goal
Help users build accurate Flexiwind integrations without inventing components, props, CLI commands, or block names.
How Flexiwind Works
Flexiwind has three layers that work together:
- Components (
x-ui.*) — Reusable Blade primitives installed individually via CLI (php artisan flexi:add button). Each component is a Blade file you own and customize.
- Blocks — Pre-built sections (login forms, sidebars, KPIs, hero sections, etc.) composed from components. Listed in
config/blocks.php.
- Theme — CSS variable tokens (
--primary,--background,--foreground,--title-foreground,--border, etc.) consumed through Tailwind v4@themeutilities (bg-primary,text-foreground,text-title-foreground,border-border).
Source of truth
Use the files in this skill first. The public docs site is also available at https://flexiwind.unoforge.com.
- references/best-practices.md — verified usage rules and source-of-truth guidance
- references/styling-principles.md — semantic tokens, dark mode, theming vocabulary
- references/things-to-avoid.md — common mistakes and invented APIs to avoid
- references/accessibility.md — accessible usage patterns
- references/performance.md — performance guidance
- references/theme.md — full CSS variable token reference and theme setup
- references/colors.md — color token setup for light/dark/both modes
- references/button-utilities.md — CSS utility definitions for button variants
- references/components.md — full component reference index
- references/interactions.md — Flexilla interaction setup, plugin imports, and livewire compatibility
Working Rules
- Never invent
x-ui.*components that are not present inresources/views/components/ui. - Never invent props, CLI commands, or block names.
- Distinguish between docs page names and Blade component names when they differ:
| Docs page | Blade component | Install slug | |
|---|---|---|---|
| text-area | x-ui.textarea | text-area | |
| aspect-ratio | x-ui.aspect | aspect | |
| sidebar | x-ui.sidebar-wrapper | sidebar-wrapper | |
| otp | x-ui.otp | otp | |
| alert-dialog | not standalone; built on x-ui.modal | — | |
| navbar | no Blade component; Alpine directives only | npm package |
- Prefer documented composition patterns over custom abstractions.
- When a component, prop, command, or block is not present in the skill files or the live docs, do not invent it.
- Do not reference repository-local paths, examples, or source files in user-facing answers. Use Blade component syntax.
- Components that require Flexilla JS must include the npm install and Alpine plugin import in any answer. For detailed Flexilla guidance (JS APIs, events, accessibility), suggest installing the Flexilla skill:
php artisan boost:add-skill unoforge/flexilla. - The
dissmissiblecomponent name is intentionally spelled with double-s in the codebase and CLI slug. Use that spelling exactly.
- Follow component composition safety rules:
- Trigger components (
x-ui.modal.trigger,x-ui.slideover.trigger,x-ui.dropdown.trigger,x-ui.popover.trigger,x-ui.tooltip.trigger) already render as<button>elements. Do not nest another<x-ui.button>or<button>inside them — they accept button props directly. - Triggers must be placed outside their overlay wrapper (
<x-ui.modal>,<x-ui.slideover>). These wrappers are invisible when closed — a trigger inside would be unclickable. - Trigger attribute names:
modal-id,slide-over-id(notslideover-id),dropdown-id,popover-id,tooltip-id. x-ui.modal.closeandx-ui.slideover.closeinheritx-ui.buttonprops — do not nest a<button>or<x-ui.button>inside them. Passing text or an icon is fine.x-ui.dropdown.triggeraccepts button props (variant,intent,size, etc.) — pass them directly to the trigger rather than wrapping in a button.- Do not nest
<x-ui.link>inside<x-ui.button>or vice versa. If you need a link that looks like a button, usex-ui.button hreforx-ui.link asButton. x-ui.linkrenders an<a>tag by default — do not put interactive elements (buttons, links) inside it.
Answering Pattern
- Identify the need: Is it a component, a block, theming, or CLI question?
- Read the source: Open the relevant file from
components/*.mdorreferences/*.md.
- Give the smallest working example:
- Install command:
php artisan flexi:add <name> - Minimal Blade usage with
x-ui.*tags - JS initialization if the component requires Flexilla/Alpine plugins
- Call out important props — size, variant, intent, and any required attributes.
- Add one short "avoid" note when there is a common Flexiwind mistake for that component.
Example Answer (good)
To add a button:```bashphp artisan flexi:add button``````blade<x-ui.button variant="solid" intent="primary" size="md">Click me</x-ui.button>```Key props:variant(solid|soft|outline|ghost|none),intent(one the variant supports, seecomponents/button.md),size(xs|sm|md|lg|xl).Avoid: Do not invent variant names outside the documented set.
Example Answer (bad)
Use flexi-ui-button with loading prop.❌ "flexi-ui-button" doesn't exist. "loading" is not a documented prop.
Components Overview
Actions & Inputs
| Component | Install | Blade | |
|---|---|---|---|
| Button | flexi:add button | x-ui.button | |
| Input | flexi:add input | x-ui.input | |
| Textarea | flexi:add text-area | x-ui.textarea | |
| Select | flexi:add select | x-ui.select | |
| Checkbox | flexi:add checkbox | x-ui.checkbox | |
| Radio | flexi:add radio | x-ui.radio | |
| Switch | flexi:add switch | x-ui.switch | |
| OTP / Pin | flexi:add otp | x-ui.otp | |
| Range | flexi:add range | x-ui.range | |
| Listbox | flexi:add listbox | x-ui.listbox | |
| Autocomplete | flexi:add autocomplete | x-ui.autocomplete | |
| Tag input | flexi:add tag-input | x-ui.tag-input | |
| Tag group | flexi:add tag-group | x-ui.tag-group | |
| Toggle | flexi:add toggle | x-ui.toggle | |
| Toggle group | flexi:add toggle-group | x-ui.toggle-group | |
| File trigger | flexi:add file-trigger | x-ui.file-trigger | |
| Rich text | flexi:add rich-text | x-ui.rich-text | |
| Rich text Pro (Pro) | flexi:add @fx/rich-text-pro | x-ui.rich-text-pro |
Layout & Structure
| Component | Install | Blade | |
|---|---|---|---|
| Card | flexi:add card | x-ui.card | |
| Divider | flexi:add divider | x-ui.divider | |
| Field | flexi:add field | x-ui.field | |
| Aspect Ratio | flexi:add aspect | x-ui.aspect |
Navigation
| Component | Install | Blade | |
|---|---|---|---|
| Navbar | npm (@flexilla/alpine-navbar) | Alpine directives | |
| Sidebar | flexi:add sidebar-wrapper | x-ui.sidebar-wrapper | |
| Breadcrumbs | flexi:add breadcrumbs | x-ui.breadcrumbs | |
| Tabs | flexi:add tabs | x-ui.tabs | |
| Pagination | flexi:add pagination | x-ui.pagination | |
| Link | flexi:add link | x-ui.link |
Data & Feedback
| Component | Install | Blade | |
|---|---|---|---|
| Table | flexi:add table | x-ui.table | |
| Avatar | flexi:add avatar | x-ui.avatar | |
| Badge | flexi:add badge | x-ui.badge | |
| Alert | flexi:add alert | x-ui.alert | |
| Callout | flexi:add callout | x-ui.callout | |
| Progress | flexi:add progress | x-ui.progress | |
| Meter | flexi:add meter | x-ui.meter | |
| Skeleton | flexi:add skeleton | x-ui.skeleton | |
| Kbd | flexi:add kbd | x-ui.kbd | |
| Chart | flexi:add chart | x-ui.chart | |
| ECharts | flexi:add echarts | x-ui.echart |
Overlays & Disclosure
| Component | Install | Blade | Flexilla? | |
|---|---|---|---|---|
| Modal | flexi:add modal | x-ui.modal | Yes | |
| Alert Dialog | built on modal | x-ui.modal | Yes | |
| Slideover | flexi:add slideover | x-ui.slideover | Yes | |
| Dropdown | flexi:add dropdown | x-ui.dropdown | Yes | |
| Popover | flexi:add popover | x-ui.popover | Yes | |
| Tooltip | flexi:add tooltip | x-ui.tooltip | Yes | |
| Accordion | flexi:add accordion | x-ui.accordion | Yes | |
| Collapse | flexi:add collapse | x-ui.collapse | Yes | |
| Dissmissible | flexi:add dissmissible | x-ui.dissmissible | Yes | |
| Command menu | flexi:add command-menu | x-ui.command-menu | No | |
| Toast | flexi:add toast | x-ui.toaster | No |
Typography
| Component | Install | Blade | |
|---|---|---|---|
| Icon | flexi:add icon | x-ui.icon | |
| Text | flexi:add text | x-ui.text | |
| Heading | flexi:add heading | x-ui.heading |
Key Composition Patterns
Button
Input Group (CRITICAL — strict rules)
Rules: variant="unstyled" inside group, never pass label to grouped input.
Modal
The trigger must be outside <x-ui.modal> — the dialog is hidden when closed. Requires Flexilla JS: npm i @flexilla/modal. Import plugin in Alpine.
Card
Table
Blocks (Pre-built Sections)
Blocks are full sections composed from components. Available block categories from config/blocks.php:
Application Blocks
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/flexiwind/SKILL.md
Popularity
- Repository stars
- 31
- Repository forks
- 3
- 7-day trend score
- 17
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/unoforge/flexiwind/flexiwind)