A Gemini CLI extension that helps you make confident UI design decisions through rapid iteration.
Design Lab generates multiple distinct UI variations for any component or page, lets you compare them side-by-side in your browser, collects your feedback, and synthesizes a refined version—repeating until you're confident in the result.
Instead of guessing at the right design or going back-and-forth on revisions, you see real options, pick what works, and iterate quickly.
gemini extensions install https://github.com/your-username/gemini-design-pluginOr for local development:
gemini extensions link /path/to/gemini-design-plugin/design:start
Or with a specific target:
/design:start ProfileCard
- Preflight — Detects your framework (Next.js, Vite, etc.) and styling system (Tailwind, MUI, etc.)
- Style inference — Reads your existing design tokens from Tailwind config, CSS variables, or theme files
- Interview — Asks about:
- What you're designing (component vs page, new vs redesign)
- Pain points and what should improve
- Visual and interaction inspiration
- Target user and key tasks
- Generation — Creates 5 distinct variations exploring different:
- Information hierarchy
- Layout models (cards, lists, tables, split-pane)
- Density (compact vs spacious)
- Interaction patterns (modal, inline, drawer)
- Visual expression
- Review — Open
http://localhost:3000/__design_lab(or your dev server port) to see all variations - Feedback — Tell Gemini:
- If one is already good → select it, make minor tweaks
- If you like parts of different ones → describe what you like about each, get a synthesized version
- Iterate — Repeat until you're confident
- Finalize — All temp files are deleted,
DESIGN_PLAN.mdis generated with implementation steps
/design:cleanup
- Next.js (App Router & Pages Router)
- Vite (React, Vue)
- Remix
- Astro
- Create React App
- Tailwind CSS
- CSS Modules
- Material UI (MUI)
- Chakra UI
- Ant Design
- styled-components
- Emotion
- Be specific in the interview. The more context about pain points, target users, and inspiration, the more distinct the variations.
- Reference products you admire. "Like Linear's density" or "Stripe's clarity" gives concrete direction.
- Don't settle on round one. The synthesis step is where it gets good—describe what you like about each variant.
- Keep your dev server running. The extension won't start it for you.
- Check the DESIGN_PLAN.md. After finalizing, this contains implementation steps and accessibility checklist.
During the session:
.gemini-design/— variants, previews, design briefapp/__design_lab/orpages/__design_lab.tsx— the comparison route
All of this is deleted when you finalize or abort. Nothing is left behind.
After finalizing:
DESIGN_PLAN.md— implementation plan for your chosen designDESIGN_MEMORY.md— captured style decisions (speeds up future sessions)
gemini-design-plugin/
├── gemini-extension.json # Extension manifest
├── GEMINI.md # Context loaded by Gemini CLI
├── commands/
│ └── design/
│ ├── start.toml # /design:start command
│ └── cleanup.toml # /design:cleanup command
├── templates/
│ ├── DESIGN_PLAN.md # Output template
│ └── DESIGN_MEMORY.md # Memory template
└── README.md
MIT