by skydashnet
A reusable Agent Skill for designing, reviewing, and implementing UI/UX with Google Material Design 3, Material You, M3 Expressive, accessibility, adaptive layouts, and semantic design tokens.
# Add to your Claude Code skills
git clone https://github.com/skydashnet/material-design-3-ui-skillGuides for using ai agents skills like material-design-3-ui-skill.
material-design-3-ui-skill is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by skydashnet. A reusable Agent Skill for designing, reviewing, and implementing UI/UX with Google Material Design 3, Material You, M3 Expressive, accessibility, adaptive layouts, and semantic design tokens. It has 54 GitHub stars.
material-design-3-ui-skill's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/skydashnet/material-design-3-ui-skill" and add it to your Claude Code skills directory (see the Installation section above). material-design-3-ui-skill ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
material-design-3-ui-skill is primarily written in PowerShell. It is open-source under skydashnet on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh material-design-3-ui-skill against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Create interfaces that behave like Material Design 3, not interfaces that merely look rounded or “Google-like.”
Treat M3 as a system:
user goal → information architecture → hierarchy → adaptive layout → semantic tokens → components → states → interaction → motion → accessibility → visual expression
M3 Expressive is optional. Use it to strengthen hierarchy, usability, recognition, and emotional clarity; never use it as permission to make every element loud.
https://m3.material.io/.https://developer.android.com/.Load only the references needed for the current task. Do not read every reference by default.
| Need | Read |
|---|---|
| Color roles, surfaces, dark theme, dynamic color | references/color-system.md |
| Type hierarchy, scaling, expressive typography | references/typography.md |
| Shape, cards, containment, elevation | references/shape-and-elevation.md |
| Spacing, alignment, readable widths, safe areas | references/spacing-and-layout.md |
| Buttons, FAB, cards, chips, selection, inputs, feedback | references/component-selection.md |
| Navigation bar/rail/drawer, tabs, app bars | references/navigation.md |
| Forms, validation, settings, text input | references/forms-and-input.md |
| Snackbar, dialog, sheet, loading, empty/error states | references/feedback-and-overlays.md |
| Responsive, tablet, foldable, desktop, multi-pane | references/adaptive-design.md |
| Accessibility audit or any final UI review | references/accessibility.md |
| Transitions, feedback animation, shape morphing | references/motion.md |
| Material 3 Expressive | references/m3-expressive.md |
| Final audit / suspicious “Material-looking” UI | references/anti-patterns.md |
For a broad end-to-end design, load the references incrementally as decisions require them. Always include the accessibility reference before final approval.
Follow this order unless the task explicitly scopes one stage.
Identify: - platform, - primary user goal, - primary action, - top-level destinations, - content hierarchy, - data density, - input methods, - brand constraints, - required states and edge cases, - target window sizes, - whether M3 Expressive is desired or appropriate.
If missing information does not block the work, make a conservative M3-aligned assumption and state it. Ask only when the missing information materially changes architecture or interaction.
Before styling: - group related information, - separate navigation from actions, - identify the primary task per screen, - remove duplicated controls, - define progressive disclosure, - separate destructive actions, - avoid showing information merely because space is available.
Read references/adaptive-design.md and references/navigation.md when multiple window sizes or navigation forms matter.
Prefer canonical patterns such as list-detail, supporting pane, feed, and adaptive navigation when they fit the content.
Wider space must improve context or productivity rather than merely stretch content.
Read the relevant color, typography, shape/elevation, and spacing references.
Use the hierarchy:
reference/system tokens → semantic/system roles → component tokens
Screens should depend on semantic roles rather than scattered literal values.
Read references/component-selection.md plus specialized navigation/form/feedback references as needed.
For each important control determine: 1. semantic purpose, 2. emphasis, 3. immediate vs transactional behavior, 4. interaction states, 5. accessibility behavior, 6. adaptive behavior.
Cover relevant: - loading, - empty, - error, - success, - disabled, - selected, - pressed, - focus, - hover, - busy/submitting.
Error states must provide a recovery path.
Read references/accessibility.md.
Accessibility is a release requirement. Do not defer it to visual polish.
Read references/motion.md only when motion is part of the task.
Motion must explain state, hierarchy, spatial relationship, or response. Do not animate for spectacle.
Read references/m3-expressive.md.
Use a few deliberate expressive moments. Routine reading, forms, settings, and dense productivity surfaces should remain calm unless stronger expression improves usability.
Read references/anti-patterns.md and run the self-audit below.
Before delivering a design, score each applicable category 0, 1, or 2.
0 = incorrect / missing1 = partially correct / needs refinement2 = ready| Category | Check |
|---|---|
| Task clarity | Primary user goal and action are obvious |
| Information hierarchy | Grouping and emphasis are coherent |
| Component semantics | Controls match their actual behavior |
| Token discipline | Semantic roles are used consistently |
| Adaptive behavior | Layout improves across relevant windows |
| States & feedback | Important states and recovery are covered |
| Accessibility | Targets, contrast, semantics, focus, scaling, reduced motion |
| Expressive restraint | Expression improves hierarchy without creating noise |
A design with any 0 in component semantics, states & feedback, or accessibility is not ready for approval.
Do not inflate scores to satisfy the user. State the concrete issue and correction.
When asked to design, redesign, audit, or hand off a UI, provide enough detail for another designer or developer to reproduce the decisions.
Unless the user requests another format, include as applicable:
When creating actual code or an artifact, apply these decisions instead of stopping at a description.
Prefer:
Screen background: surface
Primary text: onSurface
Secondary text: onSurfaceVariant
Primary CTA: filled button / primary + onPrimary
Secondary CTA: outlined button
Section container: surfaceContainer
Subtle separator: outlineVariant
Error container: errorContainer + onErrorContainer
Avoid handoff based on arbitrary literals unless they come from the project’s token system.
androidx.compose.material3 for new M3 work.Do not hardcode library version numbers into generated implementation unless they are verified against current official release notes.
Material 3 guidance can inform the design even when an official implementation library does not expose every component.
Material Design 3 is a semantic, adaptive, accessible design system.
A successful M3 interface should remain coherent when brand colors change, the window resizes, dark theme turns on, text scales up, keyboard replaces touch, or expressive styling is reduced.
If the design only works because every surface is rounded and colorful, it is not a robust Material 3 design.
A reusable Agent Skill for designing, redesigning, reviewing, and implementing interfaces with Google Material Design 3, Material You, and Material 3 Expressive principles.
This repository provides a practical SKILL.md that teaches AI design and coding agents how to use Material Design 3 as a real design system—not as a collection of rounded cards, purple buttons, and Material icons.
The skill turns M3 guidance into actionable rules for information architecture, visual hierarchy, semantic design tokens, component selection, adaptive layouts, interaction states, motion, accessibility, implementation handoff, and optional M3 Expressive treatment.
Material Design 3 is easy to imitate visually and surprisingly easy to apply incorrectly.
A UI can look “Material” while still using the wrong component semantics, weak hierarchy, arbitrary colors, inaccessible controls, broken responsive behavior, excessive cards, or decorative motion that does not communicate anything.
This skill is designed to prevent that.
Instead of telling an agent to simply “make this look like Material Design 3,” give it a reusable system that defines how M3 decisions should actually be made.
User goal
↓
Information architecture
↓
Hierarchy
↓
Adaptive layout
↓
Semantic tokens
↓
Components
↓
States & interaction
↓
Motion
↓
Accessibility
↓
Visual expression
The skill teaches agents to choose components by purpose and behavior, not by appearance.
Coverage includes:
The skill treats responsiveness as a structural design problem rather than simply scaling a mobile screen.
It covers:
| Width class | Available width |
|---|---|
| Compact | < 600dp |
| Medium | 600–839dp |
| Expanded | 840–1199dp |
| Large | 1200–1599dp |
| Extra large | ≥ 1600dp |
It also guides agents through list-detail layouts, supporting panes, feeds, adaptive navigation, resizable windows, tablets, foldables, desktop-sized layouts, safe areas, and edge-to-edge interfaces.
Accessibility is treated as a release requirement.
The rules include:
48dp × 48dp minimum Android-oriented touch targetsM3 Expressive is supported as an optional layer, not a license to make every screen visually loud.
The skill guides agents in the intentional use of:
The core rule is simple:
Expression must improve hierarchy, usability, recognition, or emotional clarity.
This skill explicitly rejects common shortcuts that produce interfaces which only look vaguely Material.
DON'T:
✗ Put every section inside a rounded card
✗ Turn every control into a pill
✗ Use the primary color everywhere
✗ Add shadows to every container
✗ Use chips as generic buttons
✗ Use tabs as unrelated top-level navigation
✗ Add multiple competing FABs
✗ Treat gradients as a shortcut to “Material”
✗ Stretch a phone layout across desktop widths
✗ Animate elements purely for spectacle
✗ Ignore focus, keyboard, text scaling, or reduced motion
DO:
✓ Start from the user's task
✓ Establish information hierarchy first
✓ Use semantic design tokens
✓ Select components by behavior
✓ Design all important states
✓ Adapt structure to available window size
✓ Preserve accessibility
✓ Use expression selectively
.
├── SKILL.md
├── skill-files.txt
├── references/
│ ├── accessibility.md
│ ├── adaptive-design.md
│ ├── anti-patterns.md
│ ├── color-system.md
│ ├── component-selection.md
│ ├── feedback-and-overlays.md
│ ├── forms-and-input.md
│ ├── m3-expressive.md
│ ├── motion.md
│ ├── navigation.md
│ ├── shape-and-elevation.md
│ ├── spacing-and-layout.md
│ └── typography.md
├── tests/
│ ├── cases/
│ └── validate_skill.py
├── install.sh
├── install.ps1
├── uninstall.sh
├── uninstall.ps1
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
└── .github/
SKILL.md is intentionally the decision engine, not a giant Material 3 textbook.
It routes the agent to focused files under references/ only when a task needs them. A navigation task can load navigation guidance; a form can load form and accessibility guidance; M3 Expressive guidance is loaded only when expression is relevant.
This reduces unnecessary context while keeping detailed rules available on demand.
skill-files.txt defines the portable skill package. The cross-agent installers copy SKILL.md plus every referenced package file to the selected host.
curl -fsSL https://raw.githubusercontent.com/skydashnet/material-design-3-ui-skill/main/install.sh | bash
irm https://raw.githubusercontent.com/skydashnet/material-design-3-ui-skill/main/install.ps1 | iex
By default, the universal installer places the skill in the global skill location for every supported host. This avoids false negatives when an IDE is installed without its CLI on PATH.
The installer is filesystem-only. It does not install, configure, authenticate, or launch any AI agent.
Security note: Piping a remote script directly into a shell is convenient, but review the script first when that matters for your environment. The clone-and-run method below is easier to inspect and pin to a specific commit or release.
| Agent | Global installation used by this project |
|---|---|
| Claude Code | ~/.claude/skills/material-design-3-ui/ |
| OpenAI Codex | ~/.agents/skills/material-design-3-ui/ |
| Google Antigravity | ~/.gemini/config/skills/material-design-3-ui/ |
| Kiro | ~/.kiro/skills/material-design-3-ui/ |
| OpenCode | ~/.config/opencode/skills/material-design-3-ui/ |
| Hermes Agent | ~/.hermes/skills/material-design-3-ui/ |
| OpenClaw | ${OPENCLAW_STATE_DIR:-~/.openclaw}/skills/material-design-3-ui/ |
Every destination receives the same portable skill package: SKILL.md plus its progressive-disclosure references/ files.
git clone https://github.com/skydashnet/material-design-3-ui-skill.git
cd material-design-3-ui-skill
./install.sh
Windows:
git clone https://github.com/skydashnet/material-design-3-ui-skill.git
cd material-design-3-ui-skill
.\install.ps1
./install.sh --detect
.\install.ps1 -Detect
Detection checks the relevant CLI when available and the host's existing configuration directory. Universal mode remains the default because it is more reliable for GUI-only installations.
./install.sh --agent claude --agent codex --agent antigravity
.\install.ps1 -Agent claude,codex,antigravity
Supported names: claude, codex, antigravity, kiro, opencode, hermes, openclaw.
Upgrading from v1.0: v1.1 installs a multi-file skill package instead of only
SKILL.md. If an older installation already exists, run the installer with--force/-Forceafter reviewing any local edits.
The installer never silently overwrites a different existing skill directory. Re-run with force after reviewing local changes.
./install.sh --force
.\install.ps1 -Force
If the installed SKILL.md is already identical, the installer reports it as up to date and makes no change.
When working from a c