11from .hsba_color import HSBAColor
22from .color_scheme import ColorScheme
33
4+
45def print_color (color : HSBAColor , text : str = " " ):
56 # Simple HSBA to RGB conversion for demo purposes
67 # Source: https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_RGB
78 h = color .hue * 360
89 s = color .saturation
910 v = color .brightness
10-
11+
1112 c = v * s
1213 x = c * (1 - abs ((h / 60 ) % 2 - 1 ))
1314 m = v - c
14-
15+
1516 if 0 <= h < 60 :
1617 r , g , b = c , x , 0
1718 elif 60 <= h < 120 :
@@ -24,39 +25,48 @@ def print_color(color: HSBAColor, text: str = " "):
2425 r , g , b = x , 0 , c
2526 else :
2627 r , g , b = c , 0 , x
27-
28+
2829 r = int ((r + m ) * 255 )
2930 g = int ((g + m ) * 255 )
3031 b = int ((b + m ) * 255 )
31-
32+
3233 # ANSI escape code for background color
3334 print (f"\033 [48;2;{ r } ;{ g } ;{ b } m{ text } \033 [0m" , end = " " )
3435
36+
3537def print_scheme (name : str , scheme : ColorScheme ):
3638 print (f"{ name :<15} : " , end = "" )
3739 for color in scheme :
3840 print_color (color , " " )
3941 print (f" (Theme Hue: { scheme .theme_color .hue :.2f} )" )
4042
43+
4144def main ():
4245 # Start with a random bright color
4346 print ("Generating random base color..." )
44- base = HSBAColor .random (saturation_range = (0.7 , 1.0 ), brightness_range = (0.8 , 1.0 ))
45-
47+ base = HSBAColor .random (
48+ saturation_range = (0.7 , 1.0 ),
49+ brightness_range = (0.8 , 1.0 ),
50+ )
51+
4652 print ("\n BetterColors Demo" )
4753 print ("=================" )
4854 print (f"{ 'Base Color' :<15} : " , end = "" )
4955 print_color (base , " " )
5056 print ("\n " )
51-
57+
5258 print_scheme ("Analogous" , ColorScheme .from_analogous (base ))
5359 print_scheme ("Complementary" , ColorScheme .from_complementary (base ))
5460 print_scheme ("Triadic" , ColorScheme .from_triadic (base ))
5561 print_scheme ("Split Compl." , ColorScheme .from_split_complementary (base ))
5662 print_scheme ("Monochromatic" , ColorScheme .from_monochromatic (base ))
5763 print_scheme ("Compound" , ColorScheme .from_compound (base ))
5864 print_scheme ("Shades" , ColorScheme .from_shades (base ))
59- print_scheme ("Accented Analog" , ColorScheme .from_accented_analogous (base ))
65+ print_scheme (
66+ "Accented Analog" ,
67+ ColorScheme .from_accented_analogous (base ),
68+ )
69+
6070
6171if __name__ == "__main__" :
6272 main ()
0 commit comments