Visual Design Guidelines
Detailed specifications for colors, typography, spacing, elevation, and shapes in Material Design 3.
Color System
Color Roles (Tokens)
Material Design 3 uses a token-based color system with three accent groups:
| Role |
Usage |
| Primary |
Key components, FAB, prominent buttons |
| Secondary |
Less prominent components, filters, chips |
| Tertiary |
Accent, complementary elements |
| Error |
Error states, destructive actions |
| Surface |
Backgrounds, cards, dialogs |
Each role includes variants: base color, onColor, container, onContainer.
Color Contrast Requirements
| Element |
Minimum Contrast Ratio |
Notes |
| Body text |
4.5:1 |
WCAG AA compliance |
| Large text (18sp+) |
3:1 |
14sp bold also qualifies |
| UI components |
3:1 |
Icons, borders, controls |
| Focus indicators |
3:1 |
Must be clearly visible |
Recommended Color Palettes
Modern Professional (Business Apps)
| Role |
Color |
Name |
| Primary |
#1976D2 |
Blue 700 |
| Secondary |
#455A64 |
Blue Grey 700 |
| Tertiary |
#00897B |
Teal 600 |
| Background |
#FAFAFA |
Grey 50 |
Vibrant & Playful (Consumer Apps)
| Role |
Color |
Name |
| Primary |
#6200EE |
Deep Purple |
| Secondary |
#03DAC6 |
Teal Accent |
| Tertiary |
#FF5722 |
Deep Orange |
| Background |
#FFFFFF |
White |
Dark & Elegant (Premium Apps)
| Role |
Color |
Name |
| Primary |
#BB86FC |
Purple 200 |
| Secondary |
#03DAC6 |
Teal 200 |
| Tertiary |
#CF6679 |
Red 200 |
| Background |
#121212 |
Dark surface |
Nature & Wellness (Health Apps)
| Role |
Color |
Name |
| Primary |
#4CAF50 |
Green 500 |
| Secondary |
#8BC34A |
Light Green 500 |
| Tertiary |
#FFEB3B |
Yellow 500 |
| Background |
#F1F8E9 |
Light Green 50 |
Finance & Trust (Banking Apps)
| Role |
Color |
Name |
| Primary |
#00695C |
Teal 800 |
| Secondary |
#37474F |
Blue Grey 800 |
| Tertiary |
#FFC107 |
Amber 500 |
| Background |
#ECEFF1 |
Blue Grey 50 |
Dark Theme Requirements
- Background: #121212 or darker
- Surface colors use elevation-based tonal overlay
- Primary colors should be lighter variants (200-300 range)
- Maintain contrast ratios in dark mode
- Test all states (hover, focus, pressed) in dark mode
Typography System
Type Scale
| Style |
Size |
Weight |
Line Height |
Usage |
| Display Large |
57sp |
400 |
64sp |
Hero text |
| Display Medium |
45sp |
400 |
52sp |
Large headers |
| Display Small |
36sp |
400 |
44sp |
Section headers |
| Headline Large |
32sp |
400 |
40sp |
Screen titles |
| Headline Medium |
28sp |
400 |
36sp |
Subsection titles |
| Headline Small |
24sp |
400 |
32sp |
Card titles |
| Title Large |
22sp |
400 |
28sp |
App bar titles |
| Title Medium |
16sp |
500 |
24sp |
List item titles |
| Title Small |
14sp |
500 |
20sp |
Tabs |
| Body Large |
16sp |
400 |
24sp |
Primary body text |
| Body Medium |
14sp |
400 |
20sp |
Secondary body text |
| Body Small |
12sp |
400 |
16sp |
Captions |
| Label Large |
14sp |
500 |
20sp |
Button text |
| Label Medium |
12sp |
500 |
16sp |
Navigation labels |
| Label Small |
11sp |
500 |
16sp |
Badges |
Recommended Fonts
| Category |
Fonts |
| Primary |
Roboto (system default) |
| Display |
Roboto Serif, Google Sans |
| Monospace |
Roboto Mono, JetBrains Mono |
Text Readability
- Line length: 45-75 characters per line (including spaces)
- Paragraph spacing: 1.5x line height between paragraphs
- Letter spacing: Use default unless brand requires adjustment
- Text alignment: Left-aligned for body text (LTR languages)
Spacing & Layout
8dp Grid System
All spacing values should be multiples of 8dp (with 4dp for fine adjustments).
| Token |
Value |
Usage |
| xs |
4dp |
Icon padding, fine adjustments |
| sm |
8dp |
Tight spacing, inline elements |
| md |
16dp |
Default padding, card content |
| lg |
24dp |
Section spacing |
| xl |
32dp |
Large gaps, group separation |
| xxl |
48dp |
Screen margins, major sections |
Component Dimensions
| Component |
Height |
Min Width |
Notes |
| Button |
40dp |
64dp |
Touch target 48dp |
| FAB |
56dp |
56dp |
Standard size |
| Mini FAB |
40dp |
40dp |
Secondary actions |
| Extended FAB |
56dp |
80dp |
With text label |
| Text Field |
56dp |
280dp |
Including label |
| App Bar |
64dp |
- |
Top app bar |
| Bottom Nav |
80dp |
- |
With labels |
| Nav Rail |
- |
80dp |
Tablet/desktop |
| List Item |
56-88dp |
- |
Depends on content |
| Chip |
32dp |
- |
Filter/action chips |
Touch Targets
| Type |
Size |
Notes |
| Minimum |
48 × 48dp |
WCAG requirement |
| Recommended |
56 × 56dp |
Primary actions |
| Kids apps |
56dp+ |
Larger for motor skills |
| Spacing |
8dp minimum |
Between adjacent targets |
Elevation & Shadows
Elevation Levels
| Level |
Elevation |
Usage |
| Level 0 |
0dp |
Flat surfaces |
| Level 1 |
1dp |
Cards, elevated buttons |
| Level 2 |
3dp |
FAB (resting), raised elements |
| Level 3 |
6dp |
Navigation drawer, bottom sheet |
| Level 4 |
8dp |
FAB (pressed), menus |
| Level 5 |
12dp |
Dialogs, modal surfaces |
Shadow Guidelines
- Use elevation consistently for same component types
- Higher elevation = more important/prominent
- In dark theme, use surface tint instead of shadows
- Avoid excessive elevation (keeps UI grounded)
Shape System
Corner Radius
| Size |
Radius |
Usage |
| None |
0dp |
Sharp edges, dividers |
| Extra Small |
4dp |
Badges, small chips |
| Small |
8dp |
Buttons, chips, small cards |
| Medium |
12dp |
Cards, dialogs, text fields |
| Large |
16dp |
FAB, bottom sheets |
| Extra Large |
28dp |
Large sheets, expanded cards |
| Full |
50% |
Pills, avatars, circular buttons |
M3 Expressive Shapes
Material 3 Expressive introduces 35 new decorative shapes:
- Organic curves
- Asymmetric corners
- Cut corners
- Scalloped edges
Use sparingly for brand differentiation and visual interest.
Shape Consistency Rules
- Same component type = same shape
- Related components should share shape family
- Don't mix too many shape styles on one screen
- Consider shape in dark/light theme transitions
Icons
Size Specifications
| Size |
Dimensions |
Usage |
| Small |
20 × 20dp |
Compact UI, inline |
| Standard |
24 × 24dp |
Default for most uses |
| Large |
40 × 40dp |
Emphasis, empty states |
Icon Guidelines
- Touch target: Always wrap in 48dp minimum clickable area
- Style: Outlined (default), Filled (selected/active states)
- Stroke width: 2dp for outlined icons
- Optical alignment: May need visual adjustments
- Color: Use semantic colors (primary, error, etc.)
Recommended Icon Sets
| Set |
Usage |
| Material Symbols |
Recommended, variable font support |
| Material Icons |
Legacy, still widely used |
Adaptive Icons (App Icon)
| Property |
Value |
| Canvas size |
108 × 108dp |
| Safe zone |
66 × 66dp (centered circle) |
| Logo size |
48-66dp |
| Max display |
72 × 72dp |
| Layers |
Foreground + Background (both 108dp) |
| Android 13+ |
Include monochrome layer for theming |