@@ -6,7 +6,7 @@ fn main() {
66
77 // Parse arguments and flags
88 let mut accent_color = "" ;
9- let mut gray_color = "#6b7280 " ; // Default gray
9+ let mut gray_scale = "gray " ; // Default gray scale name
1010 let mut show_css = false ;
1111 let mut color_name = "accent" ;
1212
@@ -24,11 +24,10 @@ fn main() {
2424 }
2525 }
2626 arg if arg. starts_with ( '#' ) => {
27- if accent_color. is_empty ( ) {
28- accent_color = arg;
29- } else {
30- gray_color = arg;
31- }
27+ accent_color = arg;
28+ }
29+ arg if [ "gray" , "mauve" , "slate" , "sage" , "olive" , "sand" ] . contains ( & arg) => {
30+ gray_scale = arg;
3231 }
3332 _ => {
3433 eprintln ! ( "Unknown argument: {}" , args[ i] ) ;
@@ -40,30 +39,30 @@ fn main() {
4039
4140 if accent_color. is_empty ( ) {
4241 eprintln ! (
43- "Usage: {} <accent-color> [gray-color ] [--css] [--name <color-name>]" ,
42+ "Usage: {} <accent-color> [gray-scale ] [--css] [--name <color-name>]" ,
4443 args[ 0 ]
4544 ) ;
4645 eprintln ! ( "Examples:" ) ;
4746 eprintln ! ( " {} \" #3b82f6\" " , args[ 0 ] ) ;
48- eprintln ! ( " {} \" #3b82f6\" \" #6b7280 \" " , args[ 0 ] ) ;
49- eprintln ! ( " {} \" #10b981\" \" #64748b \" --css" , args[ 0 ] ) ;
47+ eprintln ! ( " {} \" #3b82f6\" sand " , args[ 0 ] ) ;
48+ eprintln ! ( " {} \" #10b981\" slate --css" , args[ 0 ] ) ;
5049 eprintln ! ( " {} \" #3b82f6\" --css --name blue" , args[ 0 ] ) ;
5150 eprintln ! ( "" ) ;
51+ eprintln ! ( "Gray scale options: gray, mauve, slate, sage, olive, sand (default: gray)" ) ;
52+ eprintln ! ( "" ) ;
5253 eprintln ! ( "Flags:" ) ;
5354 eprintln ! ( " --css Output raw CSS instead of color preview" ) ;
5455 eprintln ! ( " --name <name> Set the CSS variable prefix (default: accent)" ) ;
5556 std:: process:: exit ( 1 ) ;
5657 }
5758
58- // Validate hex color formats
59- for ( name, color) in [ ( "accent" , accent_color) , ( "gray" , gray_color) ] {
60- if !color. starts_with ( '#' ) || ( color. len ( ) != 7 && color. len ( ) != 4 ) {
61- eprintln ! (
62- "Error: Invalid {} color format '{}'. Use #RRGGBB or #RGB" ,
63- name, color
64- ) ;
65- std:: process:: exit ( 1 ) ;
66- }
59+ // Validate accent color format
60+ if !accent_color. starts_with ( '#' ) || ( accent_color. len ( ) != 7 && accent_color. len ( ) != 4 ) {
61+ eprintln ! (
62+ "Error: Invalid accent color format '{}'. Use #RRGGBB or #RGB" ,
63+ accent_color
64+ ) ;
65+ std:: process:: exit ( 1 ) ;
6766 }
6867
6968 // Create the color generator
@@ -72,10 +71,10 @@ fn main() {
7271 if show_css {
7372 // Output CSS for both light and dark modes
7473 let light_palette =
75- generator. generate_scale ( Appearance :: Light , accent_color, gray_color , "#ffffff" ) ;
74+ generator. generate_scale ( Appearance :: Light , accent_color, gray_scale , "#ffffff" ) ;
7675
7776 let dark_palette =
78- generator. generate_scale ( Appearance :: Dark , accent_color, gray_color , "#0f0f0f" ) ;
77+ generator. generate_scale ( Appearance :: Dark , accent_color, gray_scale , "#0f0f0f" ) ;
7978
8079 // Generate CSS for light mode
8180 let light_css = light_palette. generate_css ( color_name, ":root, .light, .light-theme" ) ;
@@ -85,20 +84,20 @@ fn main() {
8584 println ! ( "{}" , dark_css) ;
8685 } else {
8786 // Generate palettes for both light and dark modes (original behavior)
88- if gray_color == "#6b7280 " {
87+ if gray_scale == "gray " {
8988 println ! ( "🎨 Generating color palette for: {}" , accent_color) ;
9089 } else {
9190 println ! (
92- "🎨 Generating color palette for accent: {} with gray: {}" ,
93- accent_color, gray_color
91+ "🎨 Generating color palette for accent: {} with gray scale : {}" ,
92+ accent_color, gray_scale
9493 ) ;
9594 }
9695 println ! ( ) ;
9796
9897 // Light mode
9998 println ! ( "🌅 LIGHT MODE" ) ;
10099 let light_palette =
101- generator. generate_scale ( Appearance :: Light , accent_color, gray_color , "#ffffff" ) ;
100+ generator. generate_scale ( Appearance :: Light , accent_color, gray_scale , "#ffffff" ) ;
102101
103102 print_palette ( & light_palette, "Light" ) ;
104103
@@ -107,7 +106,7 @@ fn main() {
107106 // Dark mode
108107 println ! ( "🌙 DARK MODE" ) ;
109108 let dark_palette =
110- generator. generate_scale ( Appearance :: Dark , accent_color, gray_color , "#0f0f0f" ) ;
109+ generator. generate_scale ( Appearance :: Dark , accent_color, gray_scale , "#0f0f0f" ) ;
111110
112111 print_palette ( & dark_palette, "Dark" ) ;
113112 }
0 commit comments