Initial commit: add all skills files
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
246
android-native-dev/references/visual-design.md
Normal file
246
android-native-dev/references/visual-design.md
Normal file
@@ -0,0 +1,246 @@
|
||||
# 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 |
|
||||
Reference in New Issue
Block a user