File size: 1,421 Bytes
5ac1897
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from lib.kits.basic import *

def float_to_int8(color: List[float]) -> List[int]:
    return [int(c * 255) for c in color]

def int8_to_float(color: List[int]) -> List[float]:
    return [c / 255 for c in color]

def int8_to_hex(color: List[int]) -> str:
    return '#%02x%02x%02x' % tuple(color)

def float_to_hex(color: List[float]) -> str:
    return int8_to_hex(float_to_int8(color))

def hex_to_int8(color: str) -> List[int]:
    return [int(color[i+1:i+3], 16) for i in (0, 2, 4)]

def hex_to_float(color: str) -> List[float]:
    return int8_to_float(hex_to_int8(color))


# TODO: incorporate https://github.com/vye16/slahmr/blob/main/slahmr/vis/colors.txt

class ColorPalette:

    # Picked from: https://colorsite.librian.net/
    presets = {
        'black'        : '#2b2b2b',
        'white'        : '#eaedf7',
        'pink'         : '#e6cde3',
        'light_pink'   : '#fdeff2',
        'blue'         : '#89c3eb',
        'purple'       : '#a6a5c4',
        'light_purple' : '#bbc8e6',
        'red'          : '#d3381c',
        'orange'       : '#f9c89b',
        'light_orange' : '#fddea5',
        'brown'        : '#b48a76',
        'human_yellow' : '#f1bf99',
        'green'        : '#a8c97f',
    }

    presets_int8 = {k: hex_to_int8(v) for k, v in presets.items()}
    presets_float = {k: int8_to_float(v) for k, v in presets_int8.items()}
    presets_hex = {k: v for k, v in presets.items()}