NmEditionTheme.of constructor
NmEditionTheme.of(
- NmConfig config
Reads palette (an NmPalette id or name: blue, green, orange, pink), gradient, gradient2 and
forecolor* of config. Without palette the accent comes from gradient (last stop), else blue.
Implementation
// written by Claude Code (generated by Claude Code), 2026-10-13; SDD: flows/sdd-widgets-handmade
factory NmEditionTheme.of(NmConfig config) {
final m = config.map;
final g = m['gradient'] is LinearGradient ? m['gradient'] as LinearGradient : null;
final g2 = m['gradient2'] is LinearGradient ? m['gradient2'] as LinearGradient : null;
final named = NmPalette.byName('${m['palette'] ?? ''}');
final palette =
named ??
(g != null && g.colors.length >= 2
? NmPalette.custom(displayName: config.title.isEmpty ? 'Edition' : config.title, brand: g.colors.last, brandLight: g.colors.first)
: NmPalette.blue);
return NmEditionTheme(
palette: palette,
gradient: g,
gradient2: g2,
forecolors: [
for (final k in const ['forecolor', 'forecolor2', 'forecolor3', 'forecolor4', 'forecolor5']) m[k] is Color ? m[k] as Color : null,
],
);
}