summaryrefslogtreecommitdiff
path: root/tools/gencolors.js
blob: eaff6306a1a9cdd925470a6a6d474d60d9aaddc7 (plain)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
const { parse_hex, format_hex, lrgb_from_any, rgb_from_any, oklab_from_any } = require("./colors.js")

const white = "#ffffff"
const black = "#000000"

function lerp(a, b, n) {
	return a + (b - a) * n
}

function blend(a, b, n) {
	a = lrgb_from_any(parse_hex(a))
	b = lrgb_from_any(parse_hex(b))
	return format_hex({
		mode: "lrgb",
		r: lerp(a.r, b.r, n),
		g: lerp(a.g, b.g, n),
		b: lerp(a.b, b.b, n)
	})
}

function multiply_luminance(hex, m) {
	let oklab = oklab_from_any(parse_hex(hex))
	oklab.l = Math.max(0, Math.min(1, oklab.l * m))
	return format_hex(oklab)
}

function add_luminance(hex, m) {
	let oklab = oklab_from_any(parse_hex(hex))
	oklab.l = Math.max(0, Math.min(1, oklab.l + m))
	return format_hex(oklab)
}

function make_3d_colors(base) {
	return [
		base,
		multiply_luminance(base, 0.9),
		multiply_luminance(base, 0.8),
		multiply_luminance(base, 0.7),
		multiply_luminance(base, 0.4)
	]
}

function make_2d_colors(base) {
	return [
		base,
		multiply_luminance(base, 1.2),
		multiply_luminance(base, 0.8),
		multiply_luminance(base, 0.4)
	]
}

function make_2d_colors_add(base) {
	return [
		base,
		add_luminance(base, 0.2),
		add_luminance(base, -0.2),
		add_luminance(base, -0.5),
	]
}

function print(x) {
	console.log(x)
}

function gencss(color, sel) {
	let [ bg, hi, lo, sh ] = make_2d_colors(color)
	print(`${sel} { border-color: ${hi} ${lo} ${lo} ${hi}; box-shadow: 0 0 0 1px ${sh}, 1px 2px 4px #0008; }`)
}

gencss("#efebea", ".amphitheater, .basilica, .limes")
gencss("#ed1b2f", ".red")
gencss("#a0caec", ".blue")
gencss("#ffe175", ".yellow")
gencss("#80b563", ".green")
gencss("#c3bc8e", ".alamanni")
gencss("#9cb4be", ".franks")
gencss("#3a9cd6", ".goths")
gencss("#f99d1c", ".nomads")
gencss("#8e5ca6", ".sassanids")
gencss("#b8b996", ".rival")
gencss("#e3dedc", ".neutral")
gencss("#f0f0f0", ".militia")
gencss("#f0f0f0", ".legion")
gencss("#6e6e6e", ".no_place_governor")

gencss("#f3ddbd", "body.tint .militia")
gencss("#f4cccd", "body.tint .legion.reduced")

gencss("#444444", ".dice.black")
gencss("#eeeeee", ".dice.white")