Skip to content
cccskills
FreePublished on GitHub

ui

Design system reference for the Devkit Vue stack (Vuetify 4 + custom theme helpers). Use when asked about styling, theming, layout, design system, Vuetify components, visual verification, or UI patterns. Automatically consumed by /feature when the task has a visual component. Can also be invoked directly for design-only tasks (restyle, theme change, layout fix).

The English summary is being prepared. Showing the original description.

See how to install

Files included (5)

  • SKILL.md5.3 KB
  • references/components.md2.5 KB
  • references/design-system.md9.0 KB
  • references/patterns.md7.7 KB
  • references/verification.md3.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

UI

Design system reference and visual quality guidelines for the Devkit Vue stack.

This is not a standalone workflow. For full feature implementation, use /feature which automatically applies these guidelines when visual work is involved.

Invoke /ui directly only for pure design tasks (restyle, theme change, layout fix) that don't need the full /feature workflow.

This skill is an enforcer of the design system (Vuetify 4 + MD3 + theme helpers) and a craft baseline — the "Beauty pass" below is teachable, encodable craft (not taste-by-vibes), the difference between correct and beautiful. Net-new brand identity (a bold landing aesthetic, a new visual language) still belongs to creative direction outside this skill; the Beauty pass makes the everyday output stop looking generic.

References

WhatFileContent
Tokens, typography, spacing, breakpointsreferences/design-system.mdVuetify 4 MD3 classes, theme CSS variables, config paths
Component catalogreferences/components.mdHome sections, core layout, module pattern, key Vuetify components
Theme helpers & code patternsreferences/patterns.mdliquidGlassStyle(), style(), overlapStyle(), AOS, responsive
Visual verificationreferences/verification.mdPuppeteer screenshot flow, review checklist

Key rules (quick reminder)

  • Typography: MD3 classes only (text-display-large, NOT text-h1). Responsive: text-display-small text-sm-display-medium
  • Colors: Theme tokens via config or CSS variables (rgb(var(--v-theme-primary))), never hardcoded hex in templates
  • Dark/light: Everything must work in both modes
  • Config-driven: Prefer config options over hardcoded values
  • CSS last resort: Prefer in order: Vuetify props (flat, elevation, variant, density) → Vuetify utility classes (pa-0, d-flex) → Vuetify transitions (v-fade-transition, v-scale-transition) → <style scoped> only if no Vuetify alternative exists
  • Reuse: Check existing components before creating new ones
  • Verify: Screenshot desktop+mobile, light+dark after visual changes

Beauty pass (correct → beautiful)

Consistency + accessibility make a UI correct; these seven rules make it beautiful. Each is a checkable rule with a named failure mode — the inverse of each is exactly what makes a layout read as generic. Apply on every visual surface; they need no bespoke CSS (Vuetify props, spacing classes, elevation, and theme tokens carry all seven). Deeper config levers to push past the generic Material look: references/design-system.md § "Beauty levers".

  1. Whitespace first, then reduce. Start generous, don't fill the viewport; cramped padding is the #1 generic tell. Lean on pa-6/pa-8, section py-12+. Context-calibrate: dense dashboards tighten, but never start cramped.
  2. Hierarchy by weight + color, not size alone. Cap ~3 type sizes per view; de-emphasize secondary/tertiary with a lighter text-medium-emphasis / muted color, not just smaller. Size-only hierarchy is a slop signature.
  3. Spacing on the fixed scale only. Use the spacing classes (steps 0→16 = 4→64px); never an arbitrary inline margin: 13px. Off-scale spacing reads ad-hoc.
  4. Color reserved for emphasis. Mostly-neutral base (tinted greys via surface/background, not pure grey); primary for the ONE action that matters, not spread across the screen. Even color spread = the default-Material generic look. Never grey text on a colored background.
  5. Depth = soft, two-part elevation. Prefer low elevation-1/elevation-2 (Vuetify's shadows are already the layered contact+ambient pair) or elevation-0 + a subtle surface border; overlap elements to layer. One harsh high-contrast shadow reads cheap.
  6. Proximity groups related items (Gestalt). A field label sits tight to its input; a card's title/body/action cluster with less gap inside than between cards. Uniform spacing everywhere destroys grouping.
  7. Restraint over decoration. Fewer weights, one accent, generous rhythm — boring-and-consistent beats clever-and-busy. Delete an element before adding one.

These seven rules are the canonical craft baseline: name the visual intent when planning a surface, apply the rules while building, and score the rendered result against them in QA. This skill is where they're authored.

Anti-patterns

  • text-h1..text-h6 → use MD3: text-display-large, text-headline-medium
  • Hardcoded colors in templates → use theme variables
  • New components for things existing ones already handle
  • Ignoring dark mode
  • Skipping visual verification
  • Custom CSS when a Vuetify prop/class/transition covers the need
  • Generic-look tells (Beauty pass inverses): cramped padding · hierarchy by size alone · color spread evenly instead of reserved for emphasis · one harsh shadow · arbitrary off-scale spacing · pure untinted greys · grey text on colored backgrounds

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use this whenever the user asks to "create a module", "scaffold a feature", "add a Vue domain", "new module called X", or starts work on a brand-new vertical (views + components + store + router entry + tests). Duplicates the canonical `src/modules/tasks` template, applies kebab/Pascal/camel/ UPPER renames, and wires config-driven values. Module stays self-contained.

The English summary is being prepared. Showing the original description.

pierreb-devkit/Vue20Updated Oct 19, 2026

Use this whenever the user asks to "implement", "add", "build", "create", or "modify" a feature, page, view, component, or module in this Vue project. Three phases: Phase 0 scope analysis (flows + edge cases + UI needs + plan validation, STOP for user), Phase 1 implementation (layered UI → Store → API, Vue 3 Composition + Vuetify 4, /ui design rules), Phase 2 Definition-of-Done checklist + /verify + /pull-request. Auto-runs /create-module if the target module doesn't exist.

The English summary is being prepared. Showing the original description.

pierreb-devkit/Vue20Updated Oct 19, 2026

naming

Free

Use this whenever a new file/folder is created or renamed in this Vue project, when reviewing a module for consistency, or when the right path for a file is unclear. Also triggers on "what should I name this?", "is this file named correctly?", "audit module naming". Enforces kebab-case folders, dot-prefixed `{module}.{name}.{type}.vue|js` files, multi-entity rules, singular vs plural for views, and the layered structure UI → Store → API.

The English summary is being prepared. Showing the original description.

pierreb-devkit/Vue20Updated Oct 19, 2026

Use this whenever the user asks to "open a PR", "ship this", "create the pull request", "make a PR", or once a Vue feature/fix is verified and ready to push. Full lifecycle: branch → commit (commitizen) → issue → draft PR → CI → ready → autonomous monitor loop (fix comments, resolve threads, iterate until CI green + zero unresolved threads). `--perfect` adds a CodeRabbit convergence loop on top. Never works on `main`/`master`, never uses `--no-verify`.

The English summary is being prepared. Showing the original description.

pierreb-devkit/Vue20Updated Oct 19, 2026

Use this whenever a downstream Vue project needs to absorb upstream Devkit Vue changes — triggers on "update stack", "sync with devkit", "merge upstream", "pull stack updates", "resolve stack conflicts". Two-phase: ISO merge (stack modules stay byte-identical to upstream) then project alignment (apply MIGRATIONS.md, diff project modules vs `tasks` reference, /verify). Stack-code failures get an issue on `pierreb-devkit/Vue`.

The English summary is being prepared. Showing the original description.

pierreb-devkit/Vue20Updated Oct 19, 2026

verify

Free

Run this after every code change in this Vue project, before committing, before opening a PR, or whenever the user says "verify", "check", "lint", "run tests", "build", "audit". Diff audit (router guards, store boundaries, UX, /ui consistency, error handling) → lint → tests + coverage gate → build. Coverage drops → add tests, never lower thresholds. Triggers on "is this ready to commit?", "any issues?", "tests passing?".

The English summary is being prepared. Showing the original description.

pierreb-devkit/Vue20Updated Oct 19, 2026

See all skills by pierreb-devkit

Report a problem with this skill