Skip to content

Theming & Material You Integration

fparted adopts the Material Design 3 (M3) design system and integrates with Android 12+ dynamic wallpaper theming via native palette extraction.


🎨 Dynamic Wallpaper Palette Extraction

On Android 12+ (API 31+), fparted invokes MethodChannelSystemPaletteBridge to extract the system's active CorePalette directly from the Android framework:

Android Wallpaper Engine ──► Platform Bridge (getSystemPalettes)
                                      │
                                      â–¼
             Flutter AppTheme.corePaletteFromChannel()
                                      │
                                      â–¼
          ColorScheme.fromSeed(primeSeed, brightness: ...)
                                      │
                                      â–¼
               Coherent M3 Color Scheme Across UI

Key Theming Invariants

  1. Single Hue Derivation: Flutter's ColorScheme.fromSeed derives every tonal role (Primary, Secondary, Tertiary, Surface, Error) from a single coherent hue, preventing jarring mismatched color families.
  2. Follow System Mode: Dynamically switches between Light and Dark themes according to Android system preferences.
  3. Manual Seed Color Fallback: If system dynamic theming is disabled or unavailable (e.g. on Linux or older Android versions), users can select custom seed colors (Indigo, Blue, Teal, Amber, Purple, Deep Orange).