Back to Skills

material-design

vinnie357
Updated Yesterday
32 views
0
View on GitHub
Designdesign

About

This skill provides guidance for implementing Material Design 3 (Material You) principles across Android, web, and cross-platform applications. Activate it when designing UIs or building with frameworks like Flutter and Jetpack Compose to apply dynamic theming and personalized color systems. It helps developers create adaptive, accessible, and consistent interfaces that follow Google's latest design system.

Documentation

Material Design 3 (Material You)

Apply Google's Material Design 3 principles when designing and developing user interfaces with emphasis on personalization, accessibility, and cross-platform consistency.

When to Activate

Use this skill when:

  • Designing or implementing Android applications
  • Building web applications following Material Design
  • Working with Flutter or Jetpack Compose
  • Implementing dynamic theming and color systems
  • Creating Material components
  • Reviewing designs for Material Design compliance

What is Material Design 3?

Material Design 3 (Material You) represents Google's latest design system with:

  • Personalization: Dynamic color extraction from user preferences
  • Expressiveness: Softer, rounded components with visual hierarchy
  • Adaptability: Responsive across devices and platforms
  • Accessibility: Built-in inclusive design features

Key Differences from Material Design 2

AspectMD2MD3
ColorsFixed brand palettesDynamic, user-generated schemes
CustomizationLimited themingHighly personalized
ComponentsFlat, rigid shapesRounded, expressive
AccessibilityBasic supportPriority built-in

Core Foundations

1. Dynamic Color System

Material Design 3 uses HCT (Hue, Chroma, Tone) color space for perceptually accurate color generation.

Key concepts:

  • Color roles (primary, secondary, tertiary, error, neutral)
  • Tonal palettes (50-99 tones per color)
  • Automatic light/dark theme generation
  • User-driven personalization from wallpaper/system

For detailed color system implementation, see references/color-system.md.

2. Typography

Type scale with 5 display sizes and 9 text sizes:

Quick example:

  • Display Large: 57sp
  • Headline Large: 32sp
  • Body Large: 16sp
  • Label Small: 11sp

For complete typography system and responsive scaling, see references/typography.md.

3. Layout

Responsive breakpoints and grid system:

  • Compact: 0-599dp (phones)
  • Medium: 600-839dp (tablets, folded phones)
  • Expanded: 840dp+ (desktops, large tablets)

For layout guidelines and examples, see references/layout.md.

Component Guidelines

Material Design 3 provides specifications for:

  • Common Buttons: Elevated, Filled, Tonal, Outlined, Text
  • Cards: Elevated, Filled, Outlined variants
  • Text Fields: Filled, Outlined with labels and helper text
  • Navigation: Navigation bar, rail, drawer
  • Chips: Assist, Filter, Input, Suggestion chips
  • Dialogs: Basic, Full-screen dialogs

For detailed component specifications, consult references/components.md.

Quick Component Examples

Buttons

// Jetpack Compose
Button(onClick = { }) {
    Text("Filled Button")
}

OutlinedButton(onClick = { }) {
    Text("Outlined Button")
}

Cards

Card(
    modifier = Modifier.fillMaxWidth(),
    elevation = CardDefaults.cardElevation(defaultElevation = 6.dp)
) {
    Column(modifier = Modifier.padding(16.dp)) {
        Text("Card Title", style = MaterialTheme.typography.headlineSmall)
        Text("Card content", style = MaterialTheme.typography.bodyMedium)
    }
}

Text Fields

OutlinedTextField(
    value = text,
    onValueChange = { text = it },
    label = { Text("Label") },
    supportingText = { Text("Helper text") }
)

For more component examples and patterns, see references/components.md.

Implementing Dynamic Color

Android (Jetpack Compose)

val dynamicColor = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S

val colorScheme = when {
    dynamicColor && darkTheme -> dynamicDarkColorScheme(LocalContext.current)
    dynamicColor && !darkTheme -> dynamicLightColorScheme(LocalContext.current)
    darkTheme -> darkColorScheme()
    else -> lightColorScheme()
}

MaterialTheme(
    colorScheme = colorScheme,
    typography = Typography,
    content = content
)

Web

For web implementation with Material Web Components, see references/web-implementation.md.

Motion and Animation

Material Design 3 motion principles:

  • Easing: Standard, emphasized, decelerated curves
  • Duration: Based on travel distance and complexity
  • Choreography: Coordinated element movements

For motion specifications, see references/motion.md.

Accessibility

Material Design 3 prioritizes accessibility:

  • Minimum 4.5:1 contrast ratio (text)
  • 3:1 contrast ratio (UI components)
  • Touch targets minimum 48dp × 48dp
  • Screen reader support
  • Semantic color usage (not color-only indicators)

For accessibility implementation details, see references/accessibility.md.

When to Consult References

  • Color system implementation: Read references/color-system.md
  • Typography scales and usage: Read references/typography.md
  • Layout and responsive design: Read references/layout.md
  • Component specifications: Read references/components.md
  • Web implementation: Read references/web-implementation.md
  • Motion and animation: Read references/motion.md
  • Accessibility guidelines: Read references/accessibility.md

Key Principles

  • User-driven personalization: Colors adapt to user preferences
  • Expressive and flexible: Rounded corners, dynamic elevation
  • Accessible by default: Built-in contrast, touch targets, semantics
  • Cross-platform consistency: Same principles across Android, web, iOS
  • Design tokens: Use semantic tokens, not hardcoded values
  • Responsive: Adapt to device size and orientation

Resources

Quick Install

/plugin add https://github.com/vinnie357/claude-skills/tree/main/material-design

Copy and paste this command in Claude Code to install this skill

GitHub 仓库

vinnie357/claude-skills
Path: core/skills/material-design

Related Skills

langchain

Meta

LangChain is a framework for building LLM applications using agents, chains, and RAG pipelines. It supports multiple LLM providers, offers 500+ integrations, and includes features like tool calling and memory management. Use it for rapid prototyping and deploying production systems like chatbots, autonomous agents, and question-answering services.

View skill

Algorithmic Art Generation

Meta

This skill helps developers create algorithmic art using p5.js, focusing on generative art, computational aesthetics, and interactive visualizations. It automatically activates for topics like "generative art" or "p5.js visualization" and guides you through creating unique algorithms with features like seeded randomness, flow fields, and particle systems. Use it when you need to build reproducible, code-driven artistic patterns.

View skill

webapp-testing

Testing

This Claude Skill provides a Playwright-based toolkit for testing local web applications through Python scripts. It enables frontend verification, UI debugging, screenshot capture, and log viewing while managing server lifecycles. Use it for browser automation tasks but run scripts directly rather than reading their source code to avoid context pollution.

View skill

requesting-code-review

Design

This skill dispatches a code-reviewer subagent to analyze code changes against requirements before proceeding. It should be used after completing tasks, implementing major features, or before merging to main. The review helps catch issues early by comparing the current implementation with the original plan.

View skill