LeadUp Premium UI Upgrader
Purpose
Raise an app's visual quality to the polish bar of a funded international SaaS
— spacing, type, components, the missing states (empty/loading/error), motion,
responsiveness, accessibility — without breaking behaviour.
When to use
Trigger phrases: "make UI premium", "international standard design", "improve
design", "make it attractive", "upgrade UI", "SaaS level UI", "make it look
expensive", "polish the dashboard", "this looks amateur, fix it".
For correctness/console-error testing → leadup-browser-playwright-tester.
This skill is about polish, not functional verification.
Inputs needed
- The app/repo and which screens to upgrade (or "all").
- Any brand constraints (colors, logo, font) or "you choose".
- Framework (Next.js/React, Flutter, Bagisto) for idiomatic changes.
Step-by-step workflow
Use references/premium-ui-checklist.md.
- Audit current UI screen by screen against the checklist; note the worst
offenders (cramped spacing, no empty/error states, weak hierarchy).
- Decide a system: spacing scale (4/8px), type scale, restrained palette
- 1 accent, elevation language. Match existing brand if present.
- Prioritize: quick wins (spacing, type, buttons) → components (cards,
tables, forms) → the differentiating states (empty/loading/error/success)
→ motion → responsive → accessibility.
- Implement changes idiomatically for the framework; keep all behaviour,
props, routes, and accessibility intact (do not regress a11y).
- Verify responsive at 360/768/1024/1440 and
prefers-reduced-motion.
- Document before/after per screen and remaining deeper work.
Required output format
- UI audit — per screen, the issues found.
- Design system applied — spacing/type/color/motion decisions.
- Changes made — per screen, before → after, files touched.
- Prioritized remaining work — quick wins vs deeper.
- A11y statement — confirmed no regression (keyboard/contrast/focus).
Safety rules
See references/security-rules.md. Most relevant here:
- Preserve all functionality, routes, and data flows — visual changes only.
- Do not regress accessibility (keyboard, contrast, focus, labels).
- Do not push/deploy; hand changes back for local review and approval.
Common mistakes
- Restyling that breaks a form submit or route (visual-only means visual-only).
- Adding a flashy theme but still no empty/loading/error states (the real tell).
- Reducing contrast below WCAG AA for "aesthetic" reasons.
- Heavy animations that ignore
prefers-reduced-motion or cause layout shift.
- Desktop-only polish on a mobile-first Indian-business SaaS.
- Inventing a brand when one already exists in the codebase.
Troubleshooting
- Under-triggers: user said "this looks cheap" — re-invoke; suggest
trigger phrases.
- Over-triggers when they want functional testing → route to
leadup-browser-playwright-tester.
- Missing tool/MCP: no preview available — make changes + describe expected
result and provide the run command to view locally.
- No internet/browser: proceed; rely on the checklist and code; defer
visual confirmation to the user.
- Missing project files: if components can't be found, run
leadup-existing-repo-analyzer first.
- Build/test failure after changes: revert the offending change, isolate
(CSS vs logic), report; never ship UI changes that break the build.
Test prompts
Should trigger (5)
- "Make the jewellery SaaS dashboard premium, international standard."
- "This salon admin UI looks amateur — upgrade it to SaaS level."
- "Improve the design of the clinic site, make it attractive."
- "Upgrade UI for the CRM — proper empty and loading states."
- "Make the school site look expensive and polished."
Should NOT trigger (3)
- "Test that login works in the browser." (→ browser-playwright-tester)
- "Is the payment flow secure?" (→ security-review)
- "Research a UI kit repo on GitHub." (→ github-repo-researcher)
Functional test cases (2)
- Given a dashboard with no empty/error states, the output adds them and
lists them under "Changes made" without altering data fetching.
- After changes, the a11y statement confirms keyboard nav + AA contrast
preserved and the build still passes.
Success criteria
- Measurable polish against the premium checklist, screen by screen.
- Empty/loading/error/success states present.
- Responsive + reduced-motion respected; a11y not regressed.
- All functionality intact; nothing pushed/deployed.
1---2name: leadup-premium-ui-upgrader3description: Upgrade a LeadUp app's UI to premium international-SaaS standard. Improves layout, spacing, typography, responsive design, dashboard cards, empty/loading/error states, motion, and accessibility while preserving all functionality. Use when the user says "make UI premium", "international standard design", "improve design", "make attractive", "upgrade UI", or "SaaS level UI".4---56# LeadUp Premium UI Upgrader78## Purpose910Raise an app's visual quality to the polish bar of a funded international SaaS11— spacing, type, components, the missing states (empty/loading/error), motion,12responsiveness, accessibility — without breaking behaviour.1314## When to use1516Trigger phrases: "make UI premium", "international standard design", "improve17design", "make it attractive", "upgrade UI", "SaaS level UI", "make it look18expensive", "polish the dashboard", "this looks amateur, fix it".1920For correctness/console-error testing → `leadup-browser-playwright-tester`.21This skill is about polish, not functional verification.2223## Inputs needed2425- The app/repo and which screens to upgrade (or "all").26- Any brand constraints (colors, logo, font) or "you choose".27- Framework (Next.js/React, Flutter, Bagisto) for idiomatic changes.2829## Step-by-step workflow3031Use `references/premium-ui-checklist.md`.32331. **Audit current UI** screen by screen against the checklist; note the worst34 offenders (cramped spacing, no empty/error states, weak hierarchy).352. **Decide a system**: spacing scale (4/8px), type scale, restrained palette36 + 1 accent, elevation language. Match existing brand if present.373. **Prioritize**: quick wins (spacing, type, buttons) → components (cards,38 tables, forms) → the differentiating states (empty/loading/error/success)39 → motion → responsive → accessibility.404. **Implement** changes idiomatically for the framework; keep all behaviour,41 props, routes, and accessibility intact (do not regress a11y).425. **Verify responsive** at 360/768/1024/1440 and `prefers-reduced-motion`.436. **Document before/after** per screen and remaining deeper work.4445## Required output format46471. **UI audit** — per screen, the issues found.482. **Design system applied** — spacing/type/color/motion decisions.493. **Changes made** — per screen, before → after, files touched.504. **Prioritized remaining work** — quick wins vs deeper.515. **A11y statement** — confirmed no regression (keyboard/contrast/focus).5253## Safety rules5455See `references/security-rules.md`. Most relevant here:56- Preserve all functionality, routes, and data flows — visual changes only.57- Do not regress accessibility (keyboard, contrast, focus, labels).58- Do not push/deploy; hand changes back for local review and approval.5960## Common mistakes6162- Restyling that breaks a form submit or route (visual-only means visual-only).63- Adding a flashy theme but still no empty/loading/error states (the real tell).64- Reducing contrast below WCAG AA for "aesthetic" reasons.65- Heavy animations that ignore `prefers-reduced-motion` or cause layout shift.66- Desktop-only polish on a mobile-first Indian-business SaaS.67- Inventing a brand when one already exists in the codebase.6869## Troubleshooting7071- **Under-triggers**: user said "this looks cheap" — re-invoke; suggest72 trigger phrases.73- **Over-triggers** when they want functional testing → route to74 `leadup-browser-playwright-tester`.75- **Missing tool/MCP**: no preview available — make changes + describe expected76 result and provide the run command to view locally.77- **No internet/browser**: proceed; rely on the checklist and code; defer78 visual confirmation to the user.79- **Missing project files**: if components can't be found, run80 `leadup-existing-repo-analyzer` first.81- **Build/test failure** after changes: revert the offending change, isolate82 (CSS vs logic), report; never ship UI changes that break the build.8384## Test prompts8586### Should trigger (5)871. "Make the jewellery SaaS dashboard premium, international standard."882. "This salon admin UI looks amateur — upgrade it to SaaS level."893. "Improve the design of the clinic site, make it attractive."904. "Upgrade UI for the CRM — proper empty and loading states."915. "Make the school site look expensive and polished."9293### Should NOT trigger (3)941. "Test that login works in the browser." (→ browser-playwright-tester)952. "Is the payment flow secure?" (→ security-review)963. "Research a UI kit repo on GitHub." (→ github-repo-researcher)9798### Functional test cases (2)991. Given a dashboard with no empty/error states, the output adds them and100 lists them under "Changes made" without altering data fetching.1012. After changes, the a11y statement confirms keyboard nav + AA contrast102 preserved and the build still passes.103104## Success criteria105106- Measurable polish against the premium checklist, screen by screen.107- Empty/loading/error/success states present.108- Responsive + reduced-motion respected; a11y not regressed.109- All functionality intact; nothing pushed/deployed.