1. Use ThemeExtensions for consistent styling across your app
  2. Use style models when you need to customize specific Widget instances
  3. Style models are the source of truth - they always override ThemeExtension values
  4. Provide sensible defaults in ThemeExtensions to ensure widgets work out of the box
  5. Use null values in style models to inherit from ThemeExtensions when appropriate