diff --git a/cli/src/zshell/subcommands/scheme.py b/cli/src/zshell/subcommands/scheme.py index 8cb1feb..6332423 100644 --- a/cli/src/zshell/subcommands/scheme.py +++ b/cli/src/zshell/subcommands/scheme.py @@ -590,8 +590,19 @@ def generate( raise typer.BadParameter( f"Accent '{accent}' not available for '{p_scheme}:{p_variant}'. Available accents: {available}" ) + + requested_mode = mode or config_mode + resolved_mode = requested_mode + if p_scheme in schemes: + meta = schemes[p_scheme] + variant = next( + (vari for vari in meta.variants if vari.id == p_variant), None + ) + if variant and requested_mode not in variant.modes and variant.modes: + resolved_mode = sorted(variant.modes)[0] + palette_obj = get_palette( - p_scheme, p_variant, mode or config_mode, accent=accent + p_scheme, p_variant, resolved_mode, accent=accent ) colors = palette_obj.colors effective_mode = palette_obj.mode