hamen/material-3-skill8 files

Material 3

>

Specification
Skill ID
hamen/material-3-skill/material-3
Publisher
hamen
Repository
material-3-skill
Installs
0
Files
8
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

hamen/material-3-skill/material-3Installs these files
  • .claude-plugin/plugin.json
  • SKILL.md
  • references/color-system.md
  • references/component-catalog.md
  • references/layout-and-responsive.md
  • references/navigation-patterns.md
  • references/theming-and-dynamic-color.md
  • references/typography-and-shape.md

What this skill tells the agent

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-*)

TokenPurpose
primaryHigh-emphasis fills, text, icons against surface
on-primaryText/icons on primary
primary-containerStandout fill for key components (FAB, etc.)
on-primary-containerText/icons on primary-container
secondary / on-secondaryLess prominent accents
secondary-container / on-secondary-containerRecessive components (tonal buttons)
tertiary / on-tertiaryContrasting accents
tertiary-container / on-tertiary-containerComplementary containers
error / on-errorError states (static — doesn't change with dynamic color)
error-container / on-error-containerError container fills
surfaceDefault background
on-surfaceText/icons on any surface
on-surface-variantLower-emphasis text/icons on surface
surface-container-lowestLowest-emphasis container
surface-container-lowLow-emphasis container
surface-containerDefault container (nav areas)
surface-container-highHigh-emphasis container
surface-container-highestHighest-emphasis container
surface-dim / surface-brightMaintain relative brightness across light/dark
inverse-surface / inverse-on-surface / inverse-primaryContrasting elements (snackbars)
outlineImportant boundaries (text field borders)
outline-variantDecorative elements (dividers)

Full details: references/color-system.md

Typography Tokens (--md-sys-typescale-*)

ScaleSizesUse
DisplayL / M / SHero text, large numbers
HeadlineL / M / SSection headers
TitleL / M / SSmaller headers, card titles
BodyL / M / SParagraph text, descriptions
LabelL / M / SButtons, chips, captions

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-*)

TokenValueExample components
none0dp—
extra-small4dpChips, snackbars
small8dpText fields, menus
medium12dpCards
large16dpFABs, navigation drawer
large-increased20dp(Expressive)
extra-large28dpDialogs, bottom sheets
extra-large-increased32dp(Expressive)
extra-extra-large48dp(Expressive)
full9999pxButtons, chips, badges

Elevation Levels

LevelDPTonal offsetUse
00dpNoneFlat surfaces, most components at rest
11dp+5% primaryElevated cards, modal sheets
23dp+8% primaryMenus, nav bar, scrolled app bar
36dp+11% primaryFAB, dialogs, search, date/time pickers
48dp+12% primary(hover/focus increase only)
512dp+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):

EasingDurationTransition type
Emphasized500msBegin and end on screen
Emphasized decelerate400msEnter the screen
Emphasized accelerate200msExit the screen
Standard300msBegin and end on screen (utility)
Standard decelerate250msEnter screen (utility)
Standard accelerate200msExit screen (utility)

CSS easing values:

  • Emphasized: cubic-bezier(0.2, 0, 0, 1)

Use this skill in a project

Open any RiverX project, search the Skills panel for hamen/material-3-skill/material-3, and install it in one click.

Use this skill