theme library
Tema do Flocks (AppTheme, AppThemeData, AppThemeScope).
Classes
- AppAnimationTheme
- Global de micro-interações do Flocks (espelha AppRadiusTheme).
- AppColorTheme
- AppGlassTheme
- Eixo de glass ("liquid glass") do Flocks — um tratamento aditivo, ortogonal ao AppStyleTheme, aplicado só à allow-list de superfícies flutuantes (overlays, barras, FAB, Menu/Popover). Espelha AppTransparencyTheme, mas o default é desligado (opt-in por marca), enquanto a transparência é um gate de acessibilidade (default ligado).
- AppIconTheme
- O eixo de ícone: quem desenha o ícone que os componentes pedem.
- AppIllustrationTheme
- O eixo de ilustração: quem desenha a ilustração que os componentes pedem.
- AppOverlayScope
-
Reprovê, no conteúdo de um
OverlayEntry, os providers que o Overlay do root deixa para trás (ele vive ACIMA do tema/text-scale/DefaultTextStyle do app): - AppRadiusTheme
- Eixo global de forma dos cantos do tema.
- AppStyleTheme
- Global de estilo de container do Flocks (espelha AppRadiusTheme e AppAnimationTheme).
- AppTextTheme
- A class that contains the text theme for the App.
- AppTheme
- A class that contains the themes for the App.
- AppThemeData
- AppThemeScope
- Fornece o AppTheme resolvido para a árvore, reagindo ao mode escolhido pelo usuário e ao brilho do sistema operacional (quando AppThemeMode.system).
- AppTransparency
-
Ponto único de decisão de "reduzir transparência" do Flocks (espelha
AppMotion). - AppTransparencyTheme
- Gate de acessibilidade de transparência do Flocks (espelha AppAnimationTheme).
- ContrastRule
- Uma regra do contrato: um par de cores do tema com um alvo por tier.
- ContrastTarget
- Alvos de contraste (razão WCAG + ΔT de tom) para um ContrastTier num brilho.
- StructuralRule
-
Regra estrutural do tema: uma checagem sobre uma cor (não um par
fg/bg), como "a superfície escura não é preto puro". Vive na mesma fonte única que flocksContrastContract e é iterada pelos mesmos consumidores (testes + relatório), eliminando oif (brightness == dark)duplicado.
Enums
- AppBrightness
- AppThemeMode
- Modo de tema escolhido pelo usuário.
- ContrastTier
- Categoria de uma ContrastRule — define os alvos de razão e ΔT.
Extensions
- AppRadiusThemeResolve on AppRadiusTheme
- Açúcar de appResolveRadius sobre o eixo global (AppRadiusTheme).
Constants
-
flocksContrastContract
→ const List<
ContrastRule> - Todas as regras de contraste que toda marca × brilho deve satisfazer.
-
flocksStructuralContract
→ const List<
StructuralRule> - Regras estruturais (single-color) que toda marca × brilho deve satisfazer.
- kRedondoCap → const double
- Teto (px) do arredondamento AppRadiusMode.redondo — evita que caixas grandes/content-sized fiquem exageradamente redondas. É o raio "padrão" no qual botões, cards, superfícies e demais containers pousam. Tunável.
- kRedondoFraction → const double
-
Fração do lado menor usada pelo modo AppRadiusMode.redondo.
0.25= 25%. Mantém o arredondamento proporcional entre componentes de tamanhos diferentes (um controle pequeno e um grande guardam a mesma "cara"). - kSurfaceCircularRadius → const double
- Raio das superfícies grandes no modo AppRadiusMode.circular. Ver kSurfaceRedondoRadius.
- kSurfaceRedondoRadius → const double
-
Raios dedicados das superfícies grandes (bottom sheet, side sheet,
dialog). Como no tile, o
circularNÃO satura em oval: pousa num raio bem pronunciado.redondo/padraousam um raio próprio, maior que o do tile (superfície maior comporta cantos maiores). Tunáveis. - kTileCircularRadius → const double
- Raio do tile no modo AppRadiusMode.circular. Ver kTileRedondoRadius.
- kTileRedondoRadius → const double
-
Raios dedicados dos containers de list-tiles (linha avulsa, card de grupo
e envelope do expansion). O
circularpuro satura em metade do lado menor e vira um oval gigante cujos cantos cortam o conteúdo (avatar, ícone leading, chevron, texto); aqui ele pousa num raio pronunciado mas seguro.redondo/padraousam um raio próprio do tile (maior que okRedondoCapglobal de 12, mas discreto). Escala menor que as superfícies grandes. Tunáveis.
Functions
-
appResolveGlassOn(
BuildContext context, bool? glass) → bool - Ponto único de resolução do eixo glass (espelha AppTransparency, que é o gate de acessibilidade).
-
appResolveRadius(
{required AppRadiusMode mode, required AppRadiusMode componentDefault, Size? size}) → BorderRadius -
Resolve o BorderRadius de um componente a partir do eixo de forma
(AppRadiusMode) — função pura, testável sem render (padrão dos
resolvers do DS, ex.:
resolveStyleDecoration). -
contrastTargetFor(
ContrastTier tier, AppBrightness brightness) → ContrastTarget -
Resolve os alvos de
tierpara umbrightness(só a separação varia por brilho — a regra de amplificação no escuro). -
darkSurfaceInBand(
AppColorTheme theme) → bool -
Regra estrutural do tema escuro: a superfície base não pode ser preto
puro — seu tom HCT deve ficar em
[kDarkSurfaceToneMin,kDarkSurfaceToneMax]. -
resolveStyleDecoration(
{required AppStyle style, required bool isDark, required Color outline, required Color surfaceContainer, Color? ownFill, Color? background, double borderWidth = AppStrokes.m}) → StyleDecoration -
Resolve o tratamento de container (AppStyle) de um componente — função
pura (padrão dos resolvers de cor do DS, ex.:
appFilledButtonColors), testável sem render. -
styleBoxDecoration(
{required AppStyle style, required bool isDark, required BorderRadius radius, required Color outline, required Color surfaceContainer, Color? ownFill, Color? background, double borderWidth = AppStrokes.m}) → BoxDecoration -
Atalho de resolveStyleDecoration que já devolve um
BoxDecorationcom oradiusdo componente aplicado.
Typedefs
- ColorSelector = Color Function(AppColorTheme theme)
- Seleciona uma cor a partir do AppColorTheme resolvido.
-
StyleDecoration
= ({BoxBorder? border, List<
BoxShadow> ? boxShadow, Color? color}) -
Resultado de resolveStyleDecoration: os três aspectos de container que o
eixo AppStyle controla. O componente monta o
BoxDecorationfinal juntando o seu próprioborderRadius(ver styleBoxDecoration para o atalho).