Add utility for generating CSS for color themes
This commit is contained in:
parent
28c8422e6b
commit
a40d45b197
2 changed files with 406 additions and 0 deletions
37
themes/generate.py
Normal file
37
themes/generate.py
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import json, colorsys
|
||||||
|
|
||||||
|
colors = json.load(open("material-colors.json", "r"))
|
||||||
|
palettes = colors['palettes']
|
||||||
|
|
||||||
|
def hex_to_rgb(h):
|
||||||
|
return tuple(int(h[i:i+2], 16) / 255 for i in (0, 2 ,4))
|
||||||
|
|
||||||
|
def prep(x):
|
||||||
|
cols = [x['colors'][5], x['colors'][7]]
|
||||||
|
rgb = [hex_to_rgb(c[1:]) for c in cols]
|
||||||
|
hls = [colorsys.rgb_to_hls(*c) for c in rgb]
|
||||||
|
|
||||||
|
main_index = 0 if hls[0][1] < 0.6 else 1
|
||||||
|
dark_main = hls[main_index][1] < 0.6
|
||||||
|
|
||||||
|
return {
|
||||||
|
"name": x['shade'].lower().replace(' ', '-'),
|
||||||
|
"main": cols[main_index],
|
||||||
|
"input": x['colors'][3 if main_index == 0 else 5],
|
||||||
|
"text": "white" if dark_main else "black",
|
||||||
|
}
|
||||||
|
|
||||||
|
print(
|
||||||
|
"\n".join(
|
||||||
|
"\
|
||||||
|
.theme-{name} {{\n\
|
||||||
|
--theme-main: {main};\n\
|
||||||
|
--theme-text: {text};\n\
|
||||||
|
--theme-input: {input};\n\
|
||||||
|
--theme-link: #01579b;\n\
|
||||||
|
}}\n".format(**x)
|
||||||
|
for x in (prep(palette) for palette in palettes)
|
||||||
|
)
|
||||||
|
)
|
369
themes/material-colors.json
Normal file
369
themes/material-colors.json
Normal file
|
@ -0,0 +1,369 @@
|
||||||
|
{
|
||||||
|
"names": [
|
||||||
|
"50",
|
||||||
|
"100",
|
||||||
|
"200",
|
||||||
|
"300",
|
||||||
|
"400",
|
||||||
|
"500",
|
||||||
|
"600",
|
||||||
|
"700",
|
||||||
|
"800",
|
||||||
|
"900",
|
||||||
|
"A100",
|
||||||
|
"A200",
|
||||||
|
"A400",
|
||||||
|
"A700"
|
||||||
|
],
|
||||||
|
"palettes": [
|
||||||
|
{
|
||||||
|
"shade": "Red",
|
||||||
|
"colors": [
|
||||||
|
"#FFEBEE",
|
||||||
|
"#FFCDD2",
|
||||||
|
"#EF9A9A",
|
||||||
|
"#E57373",
|
||||||
|
"#EF5350",
|
||||||
|
"#F44336",
|
||||||
|
"#E53935",
|
||||||
|
"#D32F2F",
|
||||||
|
"#C62828",
|
||||||
|
"#B71C1C",
|
||||||
|
"#FF8A80",
|
||||||
|
"#FF5252",
|
||||||
|
"#FF1744",
|
||||||
|
"#D50000"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Pink",
|
||||||
|
"colors": [
|
||||||
|
"#FCE4EC",
|
||||||
|
"#F8BBD0",
|
||||||
|
"#F48FB1",
|
||||||
|
"#F06292",
|
||||||
|
"#EC407A",
|
||||||
|
"#E91E63",
|
||||||
|
"#D81B60",
|
||||||
|
"#C2185B",
|
||||||
|
"#AD1457",
|
||||||
|
"#880E4F",
|
||||||
|
"#FF80AB",
|
||||||
|
"#FF4081",
|
||||||
|
"#F50057",
|
||||||
|
"#C51162"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Purple",
|
||||||
|
"colors": [
|
||||||
|
"#F3E5F5",
|
||||||
|
"#E1BEE7",
|
||||||
|
"#CE93D8",
|
||||||
|
"#BA68C8",
|
||||||
|
"#AB47BC",
|
||||||
|
"#9C27B0",
|
||||||
|
"#8E24AA",
|
||||||
|
"#7B1FA2",
|
||||||
|
"#6A1B9A",
|
||||||
|
"#4A148C",
|
||||||
|
"#EA80FC",
|
||||||
|
"#E040FB",
|
||||||
|
"#D500F9",
|
||||||
|
"#AA00FF"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Deep purple",
|
||||||
|
"colors": [
|
||||||
|
"#EDE7F6",
|
||||||
|
"#D1C4E9",
|
||||||
|
"#B39DDB",
|
||||||
|
"#9575CD",
|
||||||
|
"#7E57C2",
|
||||||
|
"#673AB7",
|
||||||
|
"#5E35B1",
|
||||||
|
"#512DA8",
|
||||||
|
"#4527A0",
|
||||||
|
"#311B92",
|
||||||
|
"#B388FF",
|
||||||
|
"#7C4DFF",
|
||||||
|
"#651FFF",
|
||||||
|
"#6200EA"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Indigo",
|
||||||
|
"colors": [
|
||||||
|
"#E8EAF6",
|
||||||
|
"#C5CAE9",
|
||||||
|
"#9FA8DA",
|
||||||
|
"#7986CB",
|
||||||
|
"#5C6BC0",
|
||||||
|
"#3F51B5",
|
||||||
|
"#3949AB",
|
||||||
|
"#303F9F",
|
||||||
|
"#283593",
|
||||||
|
"#1A237E",
|
||||||
|
"#8C9EFF",
|
||||||
|
"#536DFE",
|
||||||
|
"#3D5AFE",
|
||||||
|
"#304FFE"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Blue",
|
||||||
|
"colors": [
|
||||||
|
"#E3F2FD",
|
||||||
|
"#BBDEFB",
|
||||||
|
"#90CAF9",
|
||||||
|
"#64B5F6",
|
||||||
|
"#42A5F5",
|
||||||
|
"#2196F3",
|
||||||
|
"#1E88E5",
|
||||||
|
"#1976D2",
|
||||||
|
"#1565C0",
|
||||||
|
"#0D47A1",
|
||||||
|
"#82B1FF",
|
||||||
|
"#448AFF",
|
||||||
|
"#2979FF",
|
||||||
|
"#2962FF"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Light Blue",
|
||||||
|
"colors": [
|
||||||
|
"#E1F5FE",
|
||||||
|
"#B3E5FC",
|
||||||
|
"#81D4FA",
|
||||||
|
"#4FC3F7",
|
||||||
|
"#29B6F6",
|
||||||
|
"#03A9F4",
|
||||||
|
"#039BE5",
|
||||||
|
"#0288D1",
|
||||||
|
"#0277BD",
|
||||||
|
"#01579B",
|
||||||
|
"#80D8FF",
|
||||||
|
"#40C4FF",
|
||||||
|
"#00B0FF",
|
||||||
|
"#0091EA"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Cyan",
|
||||||
|
"colors": [
|
||||||
|
"#E0F7FA",
|
||||||
|
"#B2EBF2",
|
||||||
|
"#80DEEA",
|
||||||
|
"#4DD0E1",
|
||||||
|
"#26C6DA",
|
||||||
|
"#00BCD4",
|
||||||
|
"#00ACC1",
|
||||||
|
"#0097A7",
|
||||||
|
"#00838F",
|
||||||
|
"#006064",
|
||||||
|
"#84FFFF",
|
||||||
|
"#18FFFF",
|
||||||
|
"#00E5FF",
|
||||||
|
"#00B8D4"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Teal",
|
||||||
|
"colors": [
|
||||||
|
"#E0F2F1",
|
||||||
|
"#B2DFDB",
|
||||||
|
"#80CBC4",
|
||||||
|
"#4DB6AC",
|
||||||
|
"#26A69A",
|
||||||
|
"#009688",
|
||||||
|
"#00897B",
|
||||||
|
"#00796B",
|
||||||
|
"#00695C",
|
||||||
|
"#004D40",
|
||||||
|
"#A7FFEB",
|
||||||
|
"#64FFDA",
|
||||||
|
"#1DE9B6",
|
||||||
|
"#00BFA5"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Green",
|
||||||
|
"colors": [
|
||||||
|
"#E8F5E9",
|
||||||
|
"#C8E6C9",
|
||||||
|
"#A5D6A7",
|
||||||
|
"#81C784",
|
||||||
|
"#66BB6A",
|
||||||
|
"#4CAF50",
|
||||||
|
"#43A047",
|
||||||
|
"#388E3C",
|
||||||
|
"#2E7D32",
|
||||||
|
"#1B5E20",
|
||||||
|
"#B9F6CA",
|
||||||
|
"#69F0AE",
|
||||||
|
"#00E676",
|
||||||
|
"#00C853"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Light Green",
|
||||||
|
"colors": [
|
||||||
|
"#F1F8E9",
|
||||||
|
"#DCEDC8",
|
||||||
|
"#C5E1A5",
|
||||||
|
"#AED581",
|
||||||
|
"#9CCC65",
|
||||||
|
"#8BC34A",
|
||||||
|
"#7CB342",
|
||||||
|
"#689F38",
|
||||||
|
"#558B2F",
|
||||||
|
"#33691E",
|
||||||
|
"#CCFF90",
|
||||||
|
"#B2FF59",
|
||||||
|
"#76FF03",
|
||||||
|
"#64DD17"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Lime",
|
||||||
|
"colors": [
|
||||||
|
"#F9FBE7",
|
||||||
|
"#F0F4C3",
|
||||||
|
"#E6EE9C",
|
||||||
|
"#DCE775",
|
||||||
|
"#D4E157",
|
||||||
|
"#CDDC39",
|
||||||
|
"#C0CA33",
|
||||||
|
"#AFB42B",
|
||||||
|
"#9E9D24",
|
||||||
|
"#827717",
|
||||||
|
"#F4FF81",
|
||||||
|
"#EEFF41",
|
||||||
|
"#C6FF00",
|
||||||
|
"#AEEA00"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Yellow",
|
||||||
|
"colors": [
|
||||||
|
"#FFFDE7",
|
||||||
|
"#FFF9C4",
|
||||||
|
"#FFF59D",
|
||||||
|
"#FFF176",
|
||||||
|
"#FFEE58",
|
||||||
|
"#FFEB3B",
|
||||||
|
"#FDD835",
|
||||||
|
"#FBC02D",
|
||||||
|
"#F9A825",
|
||||||
|
"#F57F17",
|
||||||
|
"#FFFF8D",
|
||||||
|
"#FFFF00",
|
||||||
|
"#FFEA00",
|
||||||
|
"#FFD600"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Amber",
|
||||||
|
"colors": [
|
||||||
|
"#FFF8E1",
|
||||||
|
"#FFECB3",
|
||||||
|
"#FFE082",
|
||||||
|
"#FFD54F",
|
||||||
|
"#FFCA28",
|
||||||
|
"#FFC107",
|
||||||
|
"#FFB300",
|
||||||
|
"#FFA000",
|
||||||
|
"#FF8F00",
|
||||||
|
"#FF6F00",
|
||||||
|
"#FFE57F",
|
||||||
|
"#FFD740",
|
||||||
|
"#FFC400",
|
||||||
|
"#FFAB00"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Orange",
|
||||||
|
"colors": [
|
||||||
|
"#FFF3E0",
|
||||||
|
"#FFE0B2",
|
||||||
|
"#FFCC80",
|
||||||
|
"#FFB74D",
|
||||||
|
"#FFA726",
|
||||||
|
"#FF9800",
|
||||||
|
"#FB8C00",
|
||||||
|
"#F57C00",
|
||||||
|
"#EF6C00",
|
||||||
|
"#E65100",
|
||||||
|
"#FFD180",
|
||||||
|
"#FFAB40",
|
||||||
|
"#FF9100",
|
||||||
|
"#FF6D00"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Deep Orange",
|
||||||
|
"colors": [
|
||||||
|
"#FBE9E7",
|
||||||
|
"#FFCCBC",
|
||||||
|
"#FFAB91",
|
||||||
|
"#FF8A65",
|
||||||
|
"#FF7043",
|
||||||
|
"#FF5722",
|
||||||
|
"#F4511E",
|
||||||
|
"#E64A19",
|
||||||
|
"#D84315",
|
||||||
|
"#BF360C",
|
||||||
|
"#FF9E80",
|
||||||
|
"#FF6E40",
|
||||||
|
"#FF3D00",
|
||||||
|
"#DD2C00"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Brown",
|
||||||
|
"colors": [
|
||||||
|
"#EFEBE9",
|
||||||
|
"#D7CCC8",
|
||||||
|
"#BCAAA4",
|
||||||
|
"#A1887F",
|
||||||
|
"#8D6E63",
|
||||||
|
"#795548",
|
||||||
|
"#6D4C41",
|
||||||
|
"#5D4037",
|
||||||
|
"#4E342E",
|
||||||
|
"#3E2723"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Gray",
|
||||||
|
"colors": [
|
||||||
|
"#FAFAFA",
|
||||||
|
"#F5F5F5",
|
||||||
|
"#EEEEEE",
|
||||||
|
"#E0E0E0",
|
||||||
|
"#BDBDBD",
|
||||||
|
"#9E9E9E",
|
||||||
|
"#757575",
|
||||||
|
"#616161",
|
||||||
|
"#424242",
|
||||||
|
"#212121"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shade": "Blue Gray",
|
||||||
|
"colors": [
|
||||||
|
"#ECEFF1",
|
||||||
|
"#CFD8DC",
|
||||||
|
"#B0BEC5",
|
||||||
|
"#90A4AE",
|
||||||
|
"#78909C",
|
||||||
|
"#607D8B",
|
||||||
|
"#546E7A",
|
||||||
|
"#455A64",
|
||||||
|
"#37474F",
|
||||||
|
"#263238"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in a new issue