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):
secondaryColorausente → usaprimaryColor.tertiaryColorausente → usasecondaryColor(ouprimaryColor).success/warning/danger/info/neutralausentes → 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 doflocks. -
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