-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgen-root.py
More file actions
60 lines (43 loc) · 1.77 KB
/
gen-root.py
File metadata and controls
60 lines (43 loc) · 1.77 KB
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import json
import itertools
variations = json.load(open("variations.json"))
print("""// @generated by gen-root.py. Do not edit.
// Not Material Theme v2.
// Pretty pastels in a wide variety of colours and contrast options.
version 1
@include "gen/harmonized.m.kdl"
@include "modules/extras.m.kdl"
@include "modules/roles.m.kdl"
@include "modules/theme.m.kdl"
name "Maybe Material"
author "github.com/iamawatermelo"
""")
for color, variation in variations.items():
for (scheme, contrast, background) in itertools.product(
["dark", "light"],
["standard", "high"], # "medium",
["opaque", "transparent", "blurred"]
):
layers = [f'layer "m3-palette-{color}"']
name = variation["names"][0] if scheme == "light" else variation["names"][1]
variant_name = "Maybe Material"
if background != "opaque":
# For a better preview experience I'm grouping by contrast
variant_name += f" [{background.capitalize()}]"
variant_name += f" {name}"
if contrast == "standard":
layers.append(f'layer "m3-roles-{scheme}-standard"')
layers.append(f'layer "m3-ext-{scheme}"')
else:
variant_name += f" ({contrast.capitalize()})"
layers.append(f'layer "m3-roles-{scheme}-{contrast}-contrast"')
layers.append(f'layer "m3-ext-{scheme}-hicontrast"')
layers.append(f'layer "bg-{background}"')
layers.append('layer "theme"')
layers_str = "\n ".join(layers)
print(f'variant "{variant_name}" {{')
print(f' background "{background}"')
print(f' appearance "{scheme}"')
print(' ')
print(f' {layers_str}')
print('}\n')