Design system
PHP and Laravel Cursor rules — coding standards, testing, and conventions for the Cursor editor. Install via Composer.
npx -y skills add pekral/cursor-rules --skill design-systemAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when generating, auditing, or reviewing the visual design system of a Laravel app — Tailwind tokens, Filament theming, Blade/Livewire component consistency, and visual-polish audits.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.7 KB, as published. Nobody here has run it
Constraints
- Apply
@rules/laravel/filament.mdc— for custom Blade + Tailwind, create and register a custom theme; useFilament\Support\Icons\Heroiconfor icons. - Apply
@rules/laravel/livewire.mdc— keep Blade templates presentation-only; components are slim entry points. - Apply
@rules/laravel/architecture.mdcand@rules/laravel/laravel.mdcfor file placement. - Apply
@rules/security/frontend.mdif any audit fix touches output rendering or CSP. - Stack is Blade + Livewire + Alpine.js + Filament + Tailwind. No React/Vue/Next.
- Any live-URL or browser-screenshot step is OPTIONAL and tool-agnostic — never a hard dependency.
Use when
- Starting a project that needs a coherent design system.
- Auditing an existing codebase for visual consistency.
- Before a redesign — to understand what already exists.
- The UI looks "off" but the cause is unclear.
- Reviewing a PR that touches styling, Tailwind config, or a Filament theme.
This skill has three modes. Pick the one that matches the request.
Mode 1: Generate a design system
Produce a documented token set wired into Tailwind, a Filament theme, and reusable Blade/Livewire components.
Steps
- Scan existing styling for de-facto patterns:
tailwind.config.js,resources/css/app.css, Blade views underresources/views, and any Filament theme CSS. Collect every color, font, size, radius, and shadow already in use. - Extract tokens into these groups: colors (brand, neutral, semantic success/warning/danger/info), typography (font families, type scale, weights, line heights), spacing scale, border radius, shadows, breakpoints, z-index layers.
- Inspiration (optional) — if a browser tool is available you may reference real sites; never depend on it. Tokens must be derivable from the codebase alone.
- Define tokens in Tailwind config plus CSS custom properties so values stay coherent across light/dark and component states.
- Theme Filament — register a custom panel theme that consumes the same variables.
- Build reusable components as anonymous Blade components (and Livewire components where interactive state is needed) that consume the tokens — never hard-coded hex.
- Document decisions and rationale in
DESIGN.md.
Tailwind tokens + CSS variables
// tailwind.config.js
export default {
theme: {
extend: {
colors: {
brand: { DEFAULT: 'rgb(var(--c-brand) / <alpha-value>)' },
surface: 'rgb(var(--c-surface) / <alpha-value>)',
danger: 'rgb(var(--c-danger) / <alpha-value>)',
},
borderRadius: { card: 'var(--radius-card)' },
boxShadow: { card: 'var(--shadow-card)' },
},
},
};
/* resources/css/app.css */
:root {
--c-brand: 37 99 235; /* single source of truth */
--c-surface: 255 255 255;
--c-danger: 220 38 38;
--radius-card: 0.5rem;
--shadow-card: 0 1px 2px rgb(0 0 0 / 0.06);
}
.dark {
--c-surface: 17 24 39;
}
Reusable Blade component
{{-- resources/views/components/ui/card.blade.php (anonymous) --}}
@props(['variant' => 'default'])
<div {{ $attributes->class([
'rounded-card shadow-card bg-surface',
'border border-gray-200 dark:border-gray-700' => $variant === 'outlined',
]) }}>
{{ $slot }}
</div>
Use <x-ui.card>…</x-ui.card> everywhere instead of repeating utility strings. For interactive widgets, wrap state in a Livewire or Alpine component but keep the visual shell in the shared Blade component.
Filament theme
/* resources/css/filament/admin/theme.css */
@import '/vendor/filament/filament/resources/css/theme.css';
@import '../../app.css'; /* reuse the same --c-* variables */
Register it on the panel provider with ->viteTheme(...) so Filament and the public UI share one token set.
Output: DESIGN.md (token tables + rationale), updated tailwind.config.js, CSS variables in app.css, the Filament theme, and the shared Blade/Livewire components.
Mode 2: Visual audit
Score the UI across 10 dimensions, 0–10 each. Every dimension needs a score, a concrete file:line example, and a fix.
- Color consistency — palette tokens vs ad-hoc hex/
rgb()strings in Blade. - Typographic hierarchy — clear
h1 > h2 > h3 > body > caption; no skipped levels. - Spacing rhythm — a consistent scale (4/8/16) vs arbitrary
mt-[13px]. - Component consistency — similar elements built from the same
<x-ui.*>component. - Responsive behavior — fluid across breakpoints; no overflow or layout breaks.
- Dark mode — complete
dark:coverage, not half-applied. - Motion — purposeful Alpine/
transitionuse vs gratuitous animation. - Accessibility / contrast — token contrast ratios, visible focus states, touch targets (cross-link
frontend-a11y). - Information density — clean and scannable vs cluttered.
- Polish — hover, transition, loading (
wire:loading), and empty states present.
A live-URL crawl or screenshot pass is OPTIONAL. If no browser tool exists, audit from the Blade/Tailwind source and Filament config directly — that is sufficient.
Report format per dimension:
Color consistency — 6/10
resources/views/livewire/dashboard.blade.php:42 — bg-[#3b82f6] bypasses the brand token
Fix: replace with bg-brand and add the token if missing
Mode 3: AI-slop detection
Flag generic AI-generated design tells and propose a deliberate alternative:
- Gratuitous gradients on every surface.
- Purple-to-blue default gradients with no brand basis.
- Glassmorphism / backdrop-blur cards with no functional purpose.
- Rounded corners on elements that should be square (tables, inputs in dense UIs).
- Excessive scroll-triggered animation.
- Generic centered-hero over a stock atmospheric gradient.
- A personality-free sans stack that ignores the product domain.
For each hit, give file:line and a concrete fix that ties back to the project tokens and the chosen design direction (cross-link frontend-design-direction).
Done when
- (Generate) Tokens live in Tailwind config + CSS variables, the Filament theme consumes them, shared Blade/Livewire components replace duplicated utility strings, and
DESIGN.mddocuments the rationale. - (Audit) All 10 dimensions scored, each with a
file:lineexample and a fix. - (Slop) Every flagged pattern has a location and a deliberate replacement.
- No hard-coded colors remain where a token exists; no React/Vue artifacts introduced.