AppBrandConfig class final

Configuracao de white-label para um cliente especifico.

Centraliza o que o design system precisa para se vestir de uma marca: a paleta completa (50–950 por papel), os eixos globais de tema (raio, animação, estilo, glass, ícone, ilustração) e a tipografia. Nada além disso.

O que esta classe deliberadamente NÃO guarda

Nome do app, subtítulo, site, base de CDN, caminho de vídeo, URL de loja, rótulo "powered by". Eram campos daqui, e nenhum era consumido por lib/src — a classe os carregava só para o app lê-los de volta.

O custo não era o peso: os getters derivados de asset (splashLogoUrl, otpLogoUrl, railExpandedUrl e companhia) codificavam suposições sobre a arquitetura de quem adota — que existe splash, fluxo de OTP, nav rail, fundo de autenticação, e que se publica na Play Store. Um design system que afirma isso tem opinião sobre o produto alheio, que é a mesma classe de acoplamento que o Flocks recusa no Material.

Esses campos viraram a ficha de identidade do app, e vivem na infraestrutura de quem os usa (AppIdentityConfig, em tracked_shared_pkg), selecionada pelo mesmo --dart-define=CLIENT. A marca continua sendo o que o tema lê; a ficha, o que o app exibe sobre si.

Fallbacks (marcas com paleta parcial):

  • secondaryColor ausente → usa primaryColor.
  • tertiaryColor ausente → usa secondaryColor (ou primaryColor).
  • success/warning/danger/info/neutral ausentes → usam os globais de AppColors (a marca padrão JotaPe).
  • on* ausentes → preto ou branco por contraste (_bestOnColor) sobre a base.

A base de cada cor é o value do ColorSwatch (1º argumento): pode apontar para qualquer stop (ex.: primary da JotaPe = stop 950; da ZX = 600).

Available extensions
Annotations

Constructors

AppBrandConfig({required String clientSlug, required ColorSwatch<int> primaryColor, ColorSwatch<int>? onPrimaryColor, ColorSwatch<int>? secondaryColor, ColorSwatch<int>? onSecondaryColor, ColorSwatch<int>? tertiaryColor, ColorSwatch<int>? onTertiaryColor, ColorSwatch<int>? neutralLightColor, ColorSwatch<int>? neutralDarkColor, ColorSwatch<int>? successColor, ColorSwatch<int>? warningColor, ColorSwatch<int>? dangerColor, ColorSwatch<int>? infoColor, AppRadiusTheme radiusTheme = AppRadiusTheme.standard, AppAnimationTheme animationTheme = AppAnimationTheme.standard, AppStyleTheme styleTheme = AppStyleTheme.standard, AppGlassTheme glassTheme = AppGlassTheme.standard, AppIconTheme iconTheme = AppIconTheme.standard, AppIllustrationTheme illustrationTheme = AppIllustrationTheme.standard, AppBrandTypography typography = AppBrandTypography.standard})
const

Properties

animationTheme AppAnimationTheme
Global de micro-interações da marca. Default: ligado (AppAnimationTheme.standard).
final
clientSlug String
Nome da marca. Identifica a configuração — é a chave do registry AppBrand e o rótulo que nomeia os goldens (jotape_dark) e os relatórios de contraste. Ex: 'jotape'.
final
dangerColor ColorSwatch<int>?
final
glassTheme AppGlassTheme
Eixo glass da marca ("liquid glass"). Default: desligado (AppGlassTheme.standard). Uma marca liga (AppGlassTheme(enabled: true)) para aplicar o vidro à allow-list de superfícies flutuantes.
final
hashCode int
The hash code for this object.
no setterinherited
iconTheme AppIconTheme
Quem desenha os ícones da marca. Default: os SVGs embutidos no pacote (AppIconTheme.standard). Uma marca com catálogo próprio aponta para o seu CDN via AppNetworkIconProvider.
final
illustrationTheme AppIllustrationTheme
Quem desenha as ilustrações da marca. Default: o SVG embutido (AppIllustrationTheme.standard). Um catálogo maior mora no CDN e é o APP que aponta, por AppThemeScope(illustrationProvider:).
final
infoColor ColorSwatch<int>?
final
neutralDarkColor ColorSwatch<int>?
Neutro (escala escura, invertida: 50 escuro → 950 claro). Ausente → global.
final
neutralLightColor ColorSwatch<int>?
Neutro (escala clara: 50 claro → 950 escuro). Ausente → global.
final
onPrimaryColor ColorSwatch<int>?
On-color da primaria (opcional; computada por contraste se ausente).
final
onSecondaryColor ColorSwatch<int>?
final
onTertiaryColor ColorSwatch<int>?
final
primaryColor ColorSwatch<int>
Cor primaria da marca (obrigatoria).
final
radiusTheme AppRadiusTheme
Escala de radius (arredondamento) da marca. Default: standard.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
secondaryColor ColorSwatch<int>?
Cor secundaria. Ausente → cai em primaryColor.
final
styleTheme AppStyleTheme
Estilo de container da marca (borda/fundo/sombra). Default: preenchido (AppStyleTheme.standard = AppStyle.filled). Uma marca pode fixar outro default (ex.: outlined) para preservar um visual anterior.
final
successColor ColorSwatch<int>?
Semanticas. Ausentes → globais de AppColors.
final
tertiaryColor ColorSwatch<int>?
Cor terciaria. Ausente → cai em secondaryColor (ou primaryColor).
final
typography AppBrandTypography
Famílias tipográficas da marca (display e corpo). Default: Poppins nos dois papéis (AppBrandTypography.standard).
final
warningColor ColorSwatch<int>?
final

Methods

copyWith({AppAnimationTheme? animationTheme, String? clientSlug, ColorSwatch<int>? dangerColor, AppGlassTheme? glassTheme, AppIconTheme? iconTheme, AppIllustrationTheme? illustrationTheme, ColorSwatch<int>? infoColor, ColorSwatch<int>? neutralDarkColor, ColorSwatch<int>? neutralLightColor, ColorSwatch<int>? onPrimaryColor, ColorSwatch<int>? onSecondaryColor, ColorSwatch<int>? onTertiaryColor, ColorSwatch<int>? primaryColor, AppRadiusTheme? radiusTheme, ColorSwatch<int>? secondaryColor, AppStyleTheme? styleTheme, ColorSwatch<int>? successColor, ColorSwatch<int>? tertiaryColor, AppBrandTypography? typography, ColorSwatch<int>? warningColor}) AppBrandConfig
Cópia com os campos informados sobrescritos.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDarkColorTheme() AppColorTheme
Constroi o AppColorTheme dark aplicando as cores da marca.
toDartSnippet({String? clientSlug, bool dark = false}) String

Available on AppBrandConfig, provided by the AppBrandConfigSnippet extension

A configuração como um arquivo Dart que compila colado num app que já dependa do flocks.
toLightColorTheme() AppColorTheme
Constroi o AppColorTheme light aplicando as cores da marca.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited