Install the "material-3" agent skill from https://github.com/hamen/material-3-skill/tree/master/skills/material-3 into .claude/skills/material-3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "material-3", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add hamen/material-3-skill --skill material-3 -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "material-3" agent skill from https://github.com/hamen/material-3-skill/tree/master/skills/material-3 into .agents/skills/material-3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "material-3", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add hamen/material-3-skill --skill material-3 -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "material-3" agent skill from https://github.com/hamen/material-3-skill/tree/master/skills/material-3 into .cursor/skills/material-3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "material-3", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add hamen/material-3-skill --skill material-3 -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "material-3" agent skill from https://github.com/hamen/material-3-skill/tree/master/skills/material-3 into .gemini/skills/material-3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "material-3", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add hamen/material-3-skill --skill material-3 -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "material-3" agent skill from https://github.com/hamen/material-3-skill/tree/master/skills/material-3 into .github/skills/material-3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "material-3", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add hamen/material-3-skill --skill material-3 -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "material-3" agent skill from https://github.com/hamen/material-3-skill/tree/master/skills/material-3 into .opencode/skills/material-3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "material-3", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
material-3
GitHub stars
1.5k
Used in
2 other repos
Token cost
~7.8k tokens
SKILL.md length
2,316 words
Files
8 (incl. references)
Skills in repo
1
Repo updated
First seen
Licence
MIT
At a glance
Implement Google's Material Design 3 (Material You) UI system.
Works in 2 steps: Identify the target: The user provides a… → Inspect the following categories and…
: material design
SKILL.md covers Philosophy, Current Updates: Google I/O 2026, Decision Tree and Design Token System, plus 8 more sections
Calls flutter and npm; reaches fonts.googleapis.com
What it does
Material 3 is an agent skill from hamen/material-3-skill. Implement Google's Material Design 3 (Material You) UI system. Primary: Jetpack Compose Material3 (MaterialTheme, components, adaptive layout). Also Flutter and limited web (@material/web, maintenance mode). Covers tokens, 30+ components, layout, theming, M3 Expressive (platform matrix), and accessibility. Use when: "material design", "MD3", "material you", "Jetpack Compose", "MaterialTheme", "material component", "md3 button".
Its SKILL.md is about 7.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including reference files (for example `.claude-plugin/plugin.json`, `references/color-system.md` and `references/component-catalog.md`).
It sits in Frontend & Design, covering Android development, Theming and dark mode and Responsive design. It works with Jetpack Compose, Flutter and Android. The repository describes itself as: Material Design 3 skill for Claude Code — 30+ components, design tokens, theming, responsive layout, and MD3 compliance audit. The licence is MIT.
When your agent uses it
: material design
Jetpack Compose
Material component
Example prompts
“material design”
“material you”
“Jetpack Compose”
“/material-3”
Workflow steps
2 steps, taken from the first numbered list in SKILL.md.
1Identify the target: The user provides a URL (use browser tools to inspect), file paths (read source), or a running app.
2Inspect the following categories and score each 0–10
What it can do on your machine
Read from SKILL.md and the folder at commit 14385f2. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Shell commands in SKILL.md call:
flutter
npm
From the folder's file list and the shell code blocks in SKILL.md.
Network
Hosts in commands or code, which the agent is likely to contact:
fonts.googleapis.com
Also links to:
m3.material.io
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Material 3 loads about 7.8k tokens when it runs, and up to ~36k if it reads all its reference files. Until then it costs about 111 tokens; SKILL.md has 2,316 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~111
When it runs· the whole SKILL.md, loaded when a task matches
~7.8k
With references· SKILL.md plus every file in references/, read only if the agent opens them
~36k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/material-3/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
material-3
description
Implement Google's Material Design 3 (Material You) UI system. Primary: Jetpack Compose Material3 (MaterialTheme, components, adaptive layout). Also Flutter and limited web (@material/web, maintenance mode). Covers tokens, 30+ components, layout, theming, M3 Expressive (platform matrix), and accessibility. Use when: "material design", "MD3", "material you", "Jetpack Compose", "MaterialTheme", "material component", "md3 button".
user-invokable
true
argument-hint
[component|theme|layout|scaffold|audit] [description or URL]
Material Design 3
This skill guides implementation of Google's Material Design 3 (MD3) — a personal, adaptive, expressive design system. MD3 uses dynamic color, tonal surfaces, rounded shapes, and spring-based motion to create UIs that feel alive and personal.
Philosophy
MD3 is built on three principles:
Personal: Dynamic color adapts UI to the user's wallpaper or content. Theming is individual, not one-size-fits-all.
Adaptive: Layouts transform across 5 window size classes. Components resize, reposition, and change form factor responsively.
Expressive: Shape morphing, spring physics, and emphasized typography create moments of delight without sacrificing usability.
Current Updates: Google I/O 2026
Material's Google I/O 2026 update reinforces a Compose-first Android path and expands expressive/adaptive guidance:
Material Android is Compose-first: For new Android work, prefer Jetpack Compose Material3 for the latest components, expressive APIs, adaptive scaffolds, and Styles API integration. Android Views may remain necessary in existing apps, but they should not be treated as the default path for new Material 3 implementations.
Expressive layout system: Use an expressive layout scaffold to adapt screens across mobile, desktop, foldables, watches, XR, and other spatial form factors. Start from adaptive scaffolds/window size classes instead of fixed phone-first layouts.
8dp spacing system: Apply spacing tokens for margins, padding, and gaps so layouts and components can adapt programmatically to device type and density.
New/updated expressive components: Lists, menus, search, and search app bars have refreshed expressive guidance, with Jetpack Compose as the primary implementation target.
Watches and XR: Watches emphasize physics-based motion, arc text, and edge-hugging containers. XR emphasizes spatial panels and depth-based elevation.
Key differences from MD2:
Tonal surfaces replace elevation shadows as the primary depth cue
Dynamic color generates full schemes from a single seed color
Fully rounded corners by default (not slightly rounded)
Spring-based motion physics replace fixed easing curves for components
3 levels of user-controlled contrast (standard/medium/high)
Relationship with frontend-design skill:
When both skills are active, MD3 provides the design system (tokens, components, layout rules) and frontend-design provides creative direction within those constraints. MD3 rules take precedence for component structure and token usage. Note: Roboto/Roboto Flex IS the correct default typeface in MD3 — the frontend-design guidance to avoid Roboto does not apply when implementing MD3.
Decision Tree
What are you building?
Full app scaffold → See "Common Patterns: App Shell" + references/layout-and-responsive.md
Single component → See "Component Quick Reference" table → references/component-catalog.md
Custom theme → See references/theming-and-dynamic-color.md
Form / input layout → See references/component-catalog.md § Input Components
Navigation structure → See references/navigation-patterns.md
Data display → See references/component-catalog.md § Data Display
What platform?
Jetpack Compose → Primary: androidx.compose.material3, MaterialTheme, references/*
Flutter → useMaterial3: true in ThemeData, ColorScheme.fromSeed()
Web (vanilla JS) → @material/web (limited; maintenance mode) + CSS custom properties
Web (React/Vue/Svelte) → CSS custom properties + wrapper components (no official React lib)
Web (CSS-only) → MD3 token values as CSS custom properties (no <md-*> elements)
Design Token System
All MD3 tokens use the md.sys namespace. Jetpack Compose maps roles to MaterialTheme.colorScheme, MaterialTheme.typography, and MaterialTheme.shapes (same semantic roles as the spec). On the web, these map to CSS custom properties (--md-sys-*):
Color Tokens (--md-sys-color-*)
Token
Purpose
primary
High-emphasis fills, text, icons against surface
on-primary
Text/icons on primary
primary-container
Standout fill for key components (FAB, etc.)
on-primary-container
Text/icons on primary-container
secondary / on-secondary
Less prominent accents
secondary-container / on-secondary-container
Recessive components (tonal buttons)
tertiary / on-tertiary
Contrasting accents
tertiary-container / on-tertiary-container
Complementary containers
error / on-error
Error states (static — doesn't change with dynamic color)
Each style has tokens for: -font, -weight, -size, -line-height, -tracking
Plus 15 emphasized variants (higher weight) via --md-sys-typescale-emphasized-*
Full details: references/typography-and-shape.md
Shape Tokens (--md-sys-shape-corner-*)
Token
Value
Example components
none
0dp
—
extra-small
4dp
Chips, snackbars
small
8dp
Text fields, menus
medium
12dp
Cards
large
16dp
FABs, navigation drawer
large-increased
20dp
(Expressive)
extra-large
28dp
Dialogs, bottom sheets
extra-large-increased
32dp
(Expressive)
extra-extra-large
48dp
(Expressive)
full
9999px
Buttons, chips, badges
Elevation Levels
Level
DP
Tonal offset
Use
0
0dp
None
Flat surfaces, most components at rest
1
1dp
+5% primary
Elevated cards, modal sheets
2
3dp
+8% primary
Menus, nav bar, scrolled app bar
3
6dp
+11% primary
FAB, dialogs, search, date/time pickers
4
8dp
+12% primary
(hover/focus increase only)
5
12dp
+14% primary
(hover/focus increase only)
Elevation in MD3 is communicated through tonal surface color, not shadows. Shadows are only used when needed for additional protection against busy backgrounds.
Motion
MD3 Expressive (May 2025) introduced spring-based motion physics for components. The legacy easing/duration system is still used for transitions (enter/exit/shared-axis):
Note: Components marked with — for web element don't have @material/web implementations yet. Use CSS custom properties with standard HTML for these. Compose mappings and examples live in references/component-catalog.md.
Full component details with code examples: references/component-catalog.md
Jetpack Compose (primary)
Use androidx.compose.material3 with MaterialTheme and Material 3 composables (Scaffold, Button, NavigationBar, top app bars, etc.).
Theming: MaterialTheme(colorScheme = …, typography = …, shapes = …). Prefer dynamicLightColorScheme / dynamicDarkColorScheme on Android 12+ (API 31+) when dynamic color is desired; otherwise lightColorScheme / darkColorScheme or generated theme code from Material Theme Builder.
Adaptive UI: Window size classes, list-detail and supporting-pane layouts, foldables — see references/layout-and-responsive.md and references/navigation-patterns.md.
Edge-to-edge & insets: Lay out content with WindowInsets / scaffold padding so bars and IME behave correctly — see references/layout-and-responsive.md.
Experimental APIs: Some Material 3 APIs require @OptIn(ExperimentalMaterial3Api::class) or expressive opt-ins; match your BOM and compiler.
kotlin
MaterialTheme(
colorScheme = colorScheme, // from dynamicLightColorScheme / lightColorScheme / etc.
typography = Typography(),
shapes = Shapes(),
) {
// M3 content — prefer references for Scaffold, navigation, text fields
}
Web (limited): @material/web
Important: Per Material Design 3 for Web, Material Web Components are in maintenance mode and M3 Expressive is not implemented on Web. Use @material/web for token-backed web UIs when appropriate, but do not treat it as equivalent to Compose for current Expressive features.
Setup
bash
npm install @material/web
Import Components Individually
Always import only the components you use — importing the entire package bloats the bundle:
javascript
// Good — individual imports
import '@material/web/button/filled-button.js';
import '@material/web/button/outlined-button.js';
import '@material/web/textfield/outlined-text-field.js';
import '@material/web/icon/icon.js';
// Bad — never do this
import '@material/web'; // imports everything
More patterns: references/navigation-patterns.md, references/layout-and-responsive.md
Show full SKILL.md (1,021 more words)Show less
Anti-Patterns
Never do these when implementing MD3:
Mix MD2 and MD3 libraries: Don't use @material/mdc-* (MD2) alongside @material/web (MD3). They have incompatible APIs and styling.
Hardcode colors: Always use var(--md-sys-color-*) tokens, never raw hex/rgb values. Hardcoded colors break dynamic theming, dark mode, and contrast adjustment.
Ignore tonal pairing: Only combine colors in their intended pairs (e.g., primary + on-primary, surface-container + on-surface). Arbitrary pairings break contrast in dynamic color and high contrast modes.
Use outline for dividers: Use outline-variant for dividers. outline is for important boundaries like text field borders.
Import all of @material/web: Always import individual component modules. Barrel imports include every component and destroy bundle size.
Use border-radius directly: Use shape tokens (var(--md-sys-shape-corner-medium)) so shapes stay consistent with theming.
Use shadows for elevation by default: MD3 communicates elevation through tonal surface color, not shadows. Only add shadows when elements need extra separation from busy backgrounds.
Apply frontend-design "avoid Roboto" rule: On Android, Roboto is the default Material typeface; web often uses Roboto or Roboto Flex with MD3 tokens. Replace only when intentionally customizing the type scale.
Assume SSR compatibility: @material/web uses Web Components (custom elements) which require JavaScript to render. They won't produce meaningful HTML in SSR without additional hydration strategies.
Ignore foldables and large screens: MD3 is designed for all screen sizes. Don't ship phone-only layouts — use canonical layouts, multi-pane at 600dp+, and test on foldable/tablet emulators. Place no interactive content across the fold/hinge.
Stretch content to fill wide screens: On Large (1200dp+) and Extra-large (1600dp+) windows, constrain content to a max width (840–1040dp). Endless-width text lines are unreadable.
See Jetpack Compose (primary) above. Use LocalContext.current with dynamicLightColorScheme / dynamicDarkColorScheme only when Build.VERSION.SDK_INT >= Build.VERSION_CODES.S and dynamic color is enabled; otherwise supply static light/dark schemes.
Component Name Mapping
Concept
Web
Flutter
Compose
Filled button
md-filled-button
FilledButton
Button
Outlined text field
md-outlined-text-field
OutlinedTextField
OutlinedTextField
FAB
md-fab
FloatingActionButton
FloatingActionButton
Navigation bar
md-navigation-bar
NavigationBar
NavigationBar
Switch
md-switch
Switch
Switch
M3 Expressive (May 2025)
The Expressive update adds visual richness while maintaining usability. Availability differs by platform — do not assume one stack implements everything.
Capability
Jetpack Compose
Flutter
Web (@material/web)
Expressive layout scaffold / adaptive layout
Compose-first via Material3 adaptive APIs and window size classes
Use Flutter adaptive/layout primitives
CSS/container queries/manual layout; no Material Web parity
8dp spacing system
Use design tokens / Dp spacing constants; keep margins, padding, and gaps adaptive
Use theme spacing constants
CSS custom properties / design tokens
Expressive lists, menus, search, search app bar
Primary target per current Material guidance; check BOM and opt-ins
Check current Flutter Material docs
Spec-aligned custom implementation; @material/web is maintenance-only
Spring / motion physics
Supported in Material 3 (see MotionScheme, expressive APIs per BOM)
Varies by Flutter Material version
Not in Material Web; use easing/duration or custom motion
Emphasized typography
Via theme / type scale
Via theme
Token/CSS only; no full Expressive component set
Shape morphing
Compose-first in Google’s expressive rollout
Check current Flutter docs
Not in @material/web
New button sizes (XS–XL), toggle
Follow Compose Material3 components
Follow Flutter MD3
Height/CSS approximations only
Extra corner tokens (e.g. large-increased)
MaterialTheme.shapes / tokens
Theme shapes
CSS --md-sys-shape-*
3 contrast levels
Scheme builders / system
Plugins / manual
SchemeContent contrast parameter in JS utilities
Watches / XR form factors
Use Compose/Wear/XR-specific guidance where available
Legacy easing/duration remains valid for transitions (enter/exit/shared-axis) where the spec still references them; see the Motion table below.
MD3 Compliance Audit
When invoked with audit as the argument (e.g., /material-3 audit), or when asked to audit/review MD3 compliance, analyze the target app or page and produce a compliance report.
Audit Procedure
Identify the target: The user provides a URL (use browser tools to inspect), file paths (read source), or a running app.
Inspect the following categories and score each 0–10:
Category
What to check
Color tokens
Web:--md-sys-color-* / generated CSS. Compose:MaterialTheme.colorScheme roles (no arbitrary Color(...) for surfaces without reason). Proper tonal pairing (onX on X). Dark theme. Flutter:ColorScheme roles.
Typography
MD3 type scale: ComposeMaterialTheme.typography; web typescale tokens; correct roles (Display, Headline, Title, Body, Label).
Canonical layouts; Compose window size class / adaptive APIs; readable max width on large widths; foldable hinge avoidance.
Navigation
Bar / rail / drawer / drawers+ComposeNavHost patterns per size class; predictive back where applicable.
Motion
ComposeMotionScheme / expressive APIs when used; transitions may still use easing/duration. Web: CSS motion tokens fallback.
Accessibility
MD3 roles help, but verify contrast: UI components often need 3:1 for large text/borders and 4.5:1 for normal text (WCAG 2.x). TalkBack/semantics (Compose), focus order, touch targets (~48dp). Web: ARIA, keyboard.
Theming
Compose:MaterialTheme + light/dark/dynamic as designed. Web: CSS custom properties on :root or subtree. Flutter:ThemeData + ColorScheme.
We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in hamen/material-3-skill, which our catalogue first saw on October 7, 2026.
Material 3 next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
A skill your agent uses when the user asks for an Android app, Compose UI, Material 3, Material You, Material 3 Expressive, Pixel-style app, foldable/adaptive layout, Play Store deliverable, React…
A skill your agent uses when building native Android with Jetpack Compose - stateless composables, state hoisting, ViewModel-owned state, edge-to-edge, predictive back, adaptive layout, atomic…
Design system imported from the SlayTheAmethyst Android Jetpack Compose launcher: Material 3 surfaces, user-selected seed colors, light and dark themes and typography rules.
Make the CometChat Android v6 UI match your app in the Jetpack Compose cohort — theming with the CometChatTheme composable and lightColorScheme/darkColorScheme, per-component style data classes…
Implement Google's Material Design 3 (Material You) UI system. Material 3 is an agent skill from hamen/material-3-skill. Implement Google's Material Design 3 (Material You) UI system.
When should I use Material 3?
Material 3 fits situations like: : material design; jetpack Compose; material component.
How do I install Material 3 in Claude Code?
Run `npx skills add hamen/material-3-skill --skill material-3 -a claude-code`. Or copy the skill folder (skills/material-3 in hamen/material-3-skill) into .claude/skills/material-3 in your project. Claude Code loads it when a task matches its description.
How do I install Material 3 in Codex?
Run `npx skills add hamen/material-3-skill --skill material-3 -a codex`. Or copy the skill folder (skills/material-3 in hamen/material-3-skill) into .agents/skills/material-3 in your project. Codex loads it when a task matches its description.
Can I use Material 3 in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hamen/material-3-skill --skill material-3 -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/material-3, .gemini/skills/material-3, .github/skills/material-3 and .opencode/skills/material-3 in your project.
What does Material 3 need to run?
Going by SKILL.md and its folder, Material 3 needs the command-line tools its instructions call (flutter and npm).
Does Material 3 access the network?
SKILL.md names 2 domains. In commands or code: fonts.googleapis.com; the agent is likely to contact it when it follows the instructions. As links in the text: m3.material.io. This is read from the text; nothing was executed.
Is Material 3 safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
What licence does Material 3 use?
Material 3 is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Material 3 use?
About 7.8k tokens (SKILL.md is roughly 31k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 28k tokens, read only when the agent opens those files.
What are the alternatives to Material 3?
Skills that share tags, products or a category with Material 3: Android Design (hashgraph-online/awesome-codex-plugins, 1.2k stars), Compose Multiplatform Patterns (monta-app/ocpp-emulator, 179 stars), Android Compose Patterns (makifbaysal/tasktrooper, 109 stars) and STS Amethyst Launcher Design System (ModinMobileSTS/SlayTheAmethystModded, 400 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Material 3?
hamen (a GitHub user) maintains it in hamen/material-3-skill, which has 1,455 GitHub stars. The repository was last updated on July 15, 2026.
Source: hamen/material-3-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.