← SkillSafe
Theme Lens

For Flutter developers moving a theme to Material 3

Theme LensuseMaterial3: false, accentColor, RaisedButton, CardTheme in ThemeData - find what is holding your theme back, then migrate it.

Paste your theme and the widgets that use it. Your browser finds deprecated APIs, Material 2 leftovers, component themes on the wrong class, buttons that no longer compile, role colours under 4.5:1 (with a colour that passes), widgets that bypass the theme and a missing dark theme - and writes a starter theme from your seed. Then the review, and the migrated file.

Try a sample:

The theme free

The scan free

What the scan found

Role contrast the page could measure

The skill's Material 3 migration

A starter theme and the checklist free

The theme the skill would write from your seed: ColorScheme.fromSeed for light and dark, and the normalized *ThemeData component classes.

lib/app_theme.dart


    

The review

Pricing as soon as the session is ready...

NOT RUN YET

The page's check of this reply

    Saved themes

    How it works - and what it cannot see

    The scan reads the Dart itself: comments and strings are masked, every call is matched to its closing bracket and its named arguments are read at their own depth. It follows the skill: Material 3 by default, ColorScheme.fromSeed, no accent properties or AppBarTheme color, the *ThemeData component classes, TextButton, ElevatedButton and OutlinedButton instead of the removed buttons, NavigationBar, NavigationDrawer and SegmentedButton, a dark theme from the same seed, and the desktop idioms.

    It measures only literal colours: a ColorScheme that spells out a role and its on-colour gets a ratio, and a failing pair gets a passing colour the page computes - the run is told to use it, never to pick its own. Colours held in variables and state-dependent styles are for the review. The page re-scans the migrated file, so a fix that did not land is flagged rather than trusted.