src/App.css 2.6 K raw
1
.murmurations-canvas {
2
	position: fixed;
3
	inset: 0;
4
	width: 100%;
5
	height: 100%;
6
	display: block;
7
	touch-action: none;
8
}
9
10
.controls {
11
	position: fixed;
12
	top: 1rem;
13
	right: 1rem;
14
	z-index: 10;
15
	background: rgba(18, 17, 19, 0.85);
16
	border: 1px solid rgba(245, 243, 238, 0.2);
17
	padding: 0.75rem;
18
	font-size: 12px;
19
	color: #f5f3ee;
20
	display: flex;
21
	flex-direction: column;
22
	gap: 0.5rem;
23
	min-width: 220px;
24
	backdrop-filter: blur(4px);
25
}
26
27
.controls label {
28
	display: flex;
29
	justify-content: space-between;
30
	align-items: center;
31
	gap: 0.5rem;
32
}
33
34
.controls select,
35
.controls input[type='range'],
36
.controls button {
37
	background: rgba(245, 243, 238, 0.06);
38
	border: 1px solid rgba(245, 243, 238, 0.2);
39
	color: #f5f3ee;
40
	font: inherit;
41
	padding: 0.25rem 0.5rem;
42
}
43
44
.controls button {
45
	cursor: pointer;
46
}
47
48
.controls button:hover {
49
	background: rgba(245, 243, 238, 0.15);
50
}
51
52
.controls .status {
53
	font-size: 11px;
54
	opacity: 0.6;
55
}
56
57
.controls .section {
58
	font-size: 11px;
59
	opacity: 0.7;
60
	text-transform: uppercase;
61
	letter-spacing: 0.5px;
62
	margin-top: 0.25rem;
63
	padding-top: 0.5rem;
64
	border-top: 1px solid rgba(245, 243, 238, 0.15);
65
}
66
67
.controls input[type='range'] {
68
	flex: 1;
69
	max-width: 110px;
70
}
71
72
.controls {
73
	max-height: calc(100vh - 2rem);
74
	overflow-y: auto;
75
}
76
77
.controls details {
78
	border-top: 1px solid rgba(245, 243, 238, 0.15);
79
	padding-top: 0.4rem;
80
}
81
82
.controls details:first-of-type {
83
	border-top: none;
84
	padding-top: 0;
85
}
86
87
.controls summary {
88
	cursor: pointer;
89
	font-size: 11px;
90
	text-transform: uppercase;
91
	letter-spacing: 0.5px;
92
	opacity: 0.8;
93
	padding: 0.15rem 0;
94
	user-select: none;
95
}
96
97
.controls details[open] summary {
98
	margin-bottom: 0.35rem;
99
}
100
101
.controls details > * + * {
102
	margin-top: 0.4rem;
103
}
104
105
.controls label > span:first-child {
106
	flex-shrink: 0;
107
	min-width: 70px;
108
}
109
110
.controls .val {
111
	font-variant-numeric: tabular-nums;
112
	font-size: 10px;
113
	opacity: 0.6;
114
	min-width: 36px;
115
	text-align: right;
116
}
117
118
.controls button.reset {
119
	font-size: 10px;
120
	opacity: 0.7;
121
	padding: 0.2rem 0.4rem;
122
}
123
124
.controls button.reset:hover {
125
	opacity: 1;
126
}
127
128
.controls-header {
129
	display: flex;
130
	gap: 0.5rem;
131
	align-items: center;
132
}
133
134
.controls-header > button:first-child {
135
	flex: 1;
136
}
137
138
.controls-header .close {
139
	width: 28px;
140
	height: 28px;
141
	padding: 0;
142
	font-size: 16px;
143
	line-height: 1;
144
}
145
146
.controls-toggle {
147
	position: fixed;
148
	top: 1rem;
149
	right: 1rem;
150
	z-index: 10;
151
	width: 36px;
152
	height: 36px;
153
	background: rgba(18, 17, 19, 0.85);
154
	border: 1px solid rgba(245, 243, 238, 0.2);
155
	color: #f5f3ee;
156
	font: inherit;
157
	font-size: 18px;
158
	line-height: 1;
159
	cursor: pointer;
160
	backdrop-filter: blur(4px);
161
}
162
163
.controls-toggle:hover {
164
	background: rgba(245, 243, 238, 0.15);
165
}