/frontend-design-guidelines
Apply tasteful frontend defaults to a Sui dapp (layout, spacing, typography). Use when the user wants frontend defaults or a UI review.
$ npx -y skills add pivyme/suiperpower --skill frontend-design-guidelines --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/frontend-design-guidelines
Context preview
The summary Claude sees to decide when to auto-load this skill.
Apply tasteful frontend defaults to a Sui dapp (layout, spacing, typography). Use when the user wants frontend defaults or a UI review.
SKILL.md
frontend-design-guidelines.SKILL.mdname: frontend-design-guidelines
description: Apply tasteful frontend defaults to a Sui dapp (layout, spacing, typography). Use when the user wants frontend defaults or a UI review.
Preamble (run first)
# Suiperpower telemetry. Routes through the CLI so projects.json + Convex stay in sync.
# Silent on failure so the skill never blocks. Opt out: SUIPERPOWER_TELEMETRY=off.
#
# AGENT NOTE: when this skill finishes, run the matching completion command:
# suiperpower track frontend-design-guidelines build completed
# Or use "failed" / "aborted" if it ended that way.
command -v suiperpower >/dev/null 2>&1 && suiperpower track frontend-design-guidelines build started >/dev/null 2>&1 &
true
If `TEL_PROMPTED` is `no`, before doing real work, ask the user:
> Help suiperpower get better. We track which skills get used and how long they take. No code, no file paths, no PII. Change anytime in `~/.suiperpower/config.json`. > > A) Sure, anonymous > B) No thanks
Write the answer to `~/.suiperpower/config.json` `telemetryTier` field and create `~/.suiperpower/.telemetry-prompted`. Then continue.
What this skill does
Applies a small set of opinionated frontend defaults to a Sui dapp so it does not look like a template. Covers layout, spacing, type hierarchy, color usage, button states, empty states, error states, accessibility. The output is concrete component-level guidance the user can apply line by line, not a 50-page design system document.
When to use it
- Frontend exists, looks generic or rough, and the user wants it tightened.
- New page or component being built and the user wants a tasteful starting point.
- Reviewing a dapp UI for the design pass before launch.
When NOT to use it
- The brand has not been picked yet, run `brand-design` first.
- The user wants a brutal critique, route to `roast-my-product`.
- The user wants accessibility-only review, focus the conversation on the WCAG sections of this skill.
- For Sui-specific number formatting, route to `number-formatting`.
If you activated this and the user actually wants something else, consult `skills/SKILL_ROUTER.md` and hand off.
Inputs
- The frontend code or screenshots of the current state.
- `.suiperpower/brand.md` if it exists, for color and type tokens.
- The user's stated frustration, if any (e.g. "buttons feel weak", "the page looks empty").
Outputs
- A list of concrete changes per component, file:line where possible.
- Updated Tailwind config or CSS variables if the brand tokens are missing.
- An empty-state and error-state pass for every async surface.
Workflow
1. **Establish tokens**
- If `.suiperpower/brand.md` exists, read tokens. If not, hand off to `brand-design` first.
- Confirm Tailwind config or CSS variables match the tokens.
2. **Audit hierarchy**
- One H1 per page. Headings descend without skipping levels.
- Body text at 16px minimum, line-height 1.5 minimum.
- Numbers in tabular figures. Always.
3. **Audit spacing**
- 4px / 8px / 12px / 16px / 24px / 32px / 48px / 64px scale. No off-scale numbers.
- Section padding consistent across pages.
- Component padding bigger on touch targets (mobile-first when in doubt).
4. **Audit color usage**
- Primary color used for primary action only, not for accents and decoration.
- Text on background and surface both pass 4.5:1.
- State colors (success / warning / error) used only for state, never decoration.
5. **Audit interactive states**
- Every button: hover, active, focus-visible, disabled, loading.
- Every input: focus, error, disabled.
- Every link: hover, focus-visible. Underline on hover at minimum.
6. **Audit async surfaces**
- Loading state. Not a generic spinner; a layout-shift-free skeleton or progress.
- Empty state. Specific to the surface, not a generic "nothing here yet".
- Error state. Includes the actual error and a recovery action (retry, contact, navigate elsewhere).
7. **Sui-specific surfaces**
- Wallet connect: clear connect / disconnect, current address visible, network indicator.
- Address display: ellipsis the middle, copy button adjacent, never display the full 66-char on mobile.
- Transaction state: signing / pending / success / failed, each with a SuiVision link.
- Gas / MIST values: route to `number-formatting`.
8. **Accessibility pass**
- Keyboard nav on every interactive surface.
- `aria-label` on icon-only buttons.
- Focus ring visible. Default focus rings are usually disabled in starter templates; restore them.
- Color contrast at 4.5:1 for body text, 3:1 for large.
9. **Writeback**
- Append a list of applied fixes to `.suiperpower/build-context.md`.
Quality gate (anti-slop)
Before reporting done:
- Does every async surface have a real loading, empty, AND error state? (Not just two of the three.)
- Did the audit catch the obvious template-look markers from `references/template-look-markers.md`?
- Are all button states implemented, including focus-visible?
- Does the page work with keyboard only, screen reader on?
- Is at least one component still distinct enough that a competitor's screenshot would not be confused with this one?
If any answer is no, the skill keeps working.
References
On-demand references (load when relevant to the user's question):
- `references/template-look-markers.md`: Markers that signal "this is a starter template".
- `references/component-defaults.md`: Default specs for buttons, inputs, cards, modals, toasts.
- `references/sui-frontend-patterns.md`: Wallet connect, address display, tx state surfaces.
Knowledge docs:
- `skills/data/sui-knowledge/05-app-layer-and-consumer.md`: App-layer Sui context.
Use in your agent
- Claude Code: `claude "/suiper:frontend-design-guidelines <your message>"`
- Codex: `codex "/frontend-design-guidelines <your message>"`
- Grok Build: run `grok`, then `/frontend-design-guidelines <your message>` in the session
- Cursor: paste a chat messa
Read more
name: frontend-design-guidelines description: Apply tasteful frontend defaults to a Sui dapp (layout, spacing, typography). Use when the user wants frontend defaults or a UI review.
Preamble (run first)
# Suiperpower telemetry. Routes through the CLI so projects.json + Convex stay in sync. # Silent on failure so the skill never blocks. Opt out: SUIPERPOWER_TELEMETRY=off. # # AGENT NOTE: when this skill finishes, run the matching completion command: # suiperpower track frontend-design-guidelines build completed # Or use "failed" / "aborted" if it ended that way. command -v suiperpower >/dev/null 2>&1 && suiperpower track frontend-design-guidelines build started >/dev/null 2>&1 & true
If `TEL_PROMPTED` is `no`, before doing real work, ask the user:
> Help suiperpower get better. We track which skills get used and how long they take. No code, no file paths, no PII. Change anytime in `~/.suiperpower/config.json`. > > A) Sure, anonymous > B) No thanks
Write the answer to `~/.suiperpower/config.json` `telemetryTier` field and create `~/.suiperpower/.telemetry-prompted`. Then continue.
What this skill does
Applies a small set of opinionated frontend defaults to a Sui dapp so it does not look like a template. Covers layout, spacing, type hierarchy, color usage, button states, empty states, error states, accessibility. The output is concrete component-level guidance the user can apply line by line, not a 50-page design system document.
When to use it
- Frontend exists, looks generic or rough, and the user wants it tightened.
- New page or component being built and the user wants a tasteful starting point.
- Reviewing a dapp UI for the design pass before launch.
When NOT to use it
- The brand has not been picked yet, run `brand-design` first.
- The user wants a brutal critique, route to `roast-my-product`.
- The user wants accessibility-only review, focus the conversation on the WCAG sections of this skill.
- For Sui-specific number formatting, route to `number-formatting`.
If you activated this and the user actually wants something else, consult `skills/SKILL_ROUTER.md` and hand off.
Inputs
- The frontend code or screenshots of the current state.
- `.suiperpower/brand.md` if it exists, for color and type tokens.
- The user's stated frustration, if any (e.g. "buttons feel weak", "the page looks empty").
Outputs
- A list of concrete changes per component, file:line where possible.
- Updated Tailwind config or CSS variables if the brand tokens are missing.
- An empty-state and error-state pass for every async surface.
Workflow
1. **Establish tokens**
- If `.suiperpower/brand.md` exists, read tokens. If not, hand off to `brand-design` first.
- Confirm Tailwind config or CSS variables match the tokens.
2. **Audit hierarchy**
- One H1 per page. Headings descend without skipping levels.
- Body text at 16px minimum, line-height 1.5 minimum.
- Numbers in tabular figures. Always.
3. **Audit spacing**
- 4px / 8px / 12px / 16px / 24px / 32px / 48px / 64px scale. No off-scale numbers.
- Section padding consistent across pages.
- Component padding bigger on touch targets (mobile-first when in doubt).
4. **Audit color usage**
- Primary color used for primary action only, not for accents and decoration.
- Text on background and surface both pass 4.5:1.
- State colors (success / warning / error) used only for state, never decoration.
5. **Audit interactive states**
- Every button: hover, active, focus-visible, disabled, loading.
- Every input: focus, error, disabled.
- Every link: hover, focus-visible. Underline on hover at minimum.
6. **Audit async surfaces**
- Loading state. Not a generic spinner; a layout-shift-free skeleton or progress.
- Empty state. Specific to the surface, not a generic "nothing here yet".
- Error state. Includes the actual error and a recovery action (retry, contact, navigate elsewhere).
7. **Sui-specific surfaces**
- Wallet connect: clear connect / disconnect, current address visible, network indicator.
- Address display: ellipsis the middle, copy button adjacent, never display the full 66-char on mobile.
- Transaction state: signing / pending / success / failed, each with a SuiVision link.
- Gas / MIST values: route to `number-formatting`.
8. **Accessibility pass**
- Keyboard nav on every interactive surface.
- `aria-label` on icon-only buttons.
- Focus ring visible. Default focus rings are usually disabled in starter templates; restore them.
- Color contrast at 4.5:1 for body text, 3:1 for large.
9. **Writeback**
- Append a list of applied fixes to `.suiperpower/build-context.md`.
Quality gate (anti-slop)
Before reporting done:
- Does every async surface have a real loading, empty, AND error state? (Not just two of the three.)
- Did the audit catch the obvious template-look markers from `references/template-look-markers.md`?
- Are all button states implemented, including focus-visible?
- Does the page work with keyboard only, screen reader on?
- Is at least one component still distinct enough that a competitor's screenshot would not be confused with this one?
If any answer is no, the skill keeps working.
References
On-demand references (load when relevant to the user's question):
- `references/template-look-markers.md`: Markers that signal "this is a starter template".
- `references/component-defaults.md`: Default specs for buttons, inputs, cards, modals, toasts.
- `references/sui-frontend-patterns.md`: Wallet connect, address display, tx state surfaces.
Knowledge docs:
- `skills/data/sui-knowledge/05-app-layer-and-consumer.md`: App-layer Sui context.
Use in your agent
- Claude Code: `claude "/suiper:frontend-design-guidelines <your message>"`
- Codex: `codex "/frontend-design-guidelines <your message>"`
- Grok Build: run `grok`, then `/frontend-design-guidelines <your message>` in the session
- Cursor: paste a chat messa
Showing the first part of this file.
Build something meaningful, on Sui. A superpower for AI coding agents to ship real products on Sui. Your AI coding agent has never written Move before. Suiperpower fixes that.
Repo: pivyme/suiperpower
Other skills on suiperpower.
- /brand-design
Pick a brand name, color palette, or typography for a Sui product. Use when the user wants to name or brand a Sui project.
Open skill - /build-ai-agent
Build an AI agent that signs Sui transactions or runs onchain actions. Use when the user wants an AI agent on Sui.
Open skill - /build-data-pipeline
Build a Sui data indexer or analytics pipeline. Use when the user wants to index Sui events, build a pipeline, or query Sui RPC data.
Open skill - /build-mobile-sui
Build a mobile Sui app with React Native or the Sui Mobile SDK. Use when the user wants iOS, Android, or mobile Sui flows.
Open skill - /build-with-claude
Pair with a coding agent to build a Sui MVP step by step. Use when the user wants to build the MVP iteratively with an agent.
Open skill - /build-with-move
Author Sui Move modules and packages with a senior Move dev as your pair. Use when the user wants to write, build, author, add, or scaffold Move code, smart contracts, or Sui programs at the module or function level, in any phrasing.
Open skill

