aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/css/dumbymap.css157
-rw-r--r--src/css/index.css13
2 files changed, 88 insertions, 82 deletions
diff --git a/src/css/dumbymap.css b/src/css/dumbymap.css
index 4826b5b..7b7f393 100644
--- a/src/css/dumbymap.css
+++ b/src/css/dumbymap.css
@@ -3,7 +3,7 @@ root {
3 counter-reset: block; 3 counter-reset: block;
4} 4}
5 5
6[class^="leader-line"] { 6[class^='leader-line'] {
7 z-index: 9999; 7 z-index: 9999;
8} 8}
9 9
@@ -11,6 +11,7 @@ root {
11 from { 11 from {
12 opacity: 0; 12 opacity: 0;
13 } 13 }
14
14 to { 15 to {
15 opacity: 1; 16 opacity: 1;
16 } 17 }
@@ -31,6 +32,7 @@ root {
31 from { 32 from {
32 opacity: 0.3; 33 opacity: 0.3;
33 } 34 }
35
34 to { 36 to {
35 opacity: 1; 37 opacity: 1;
36 } 38 }
@@ -40,6 +42,7 @@ root {
40 from { 42 from {
41 opacity: 1; 43 opacity: 1;
42 } 44 }
45
43 to { 46 to {
44 opacity: 0.3; 47 opacity: 0.3;
45 } 48 }
@@ -50,7 +53,7 @@ root {
50 transform-origin: top left; 53 transform-origin: top left;
51 54
52 &.focus::after { 55 &.focus::after {
53 content: "Map-ID: " attr(id); 56 content: 'Map-ID: ' attr(id);
54 padding: 0.3rem 0.5rem; 57 padding: 0.3rem 0.5rem;
55 58
56 position: absolute; 59 position: absolute;
@@ -77,7 +80,7 @@ root {
77.with-leader-line:not(:has(> *)) { 80.with-leader-line:not(:has(> *)) {
78 display: inline-block; 81 display: inline-block;
79 82
80 background-image: url("data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cG9seWdvbiBwb2ludHM9IjI0LDAgMCw4IDgsMTEgMCwxOSA1LDI0IDEzLDE2IDE2LDI0IiBmaWxsPSJjb3JhbCIvPjwvc3ZnPg=="); 83 background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cG9seWdvbiBwb2ludHM9IjI0LDAgMCw4IDgsMTEgMCwxOSA1LDI0IDEzLDE2IDE2LDI0IiBmaWxsPSJjb3JhbCIvPjwvc3ZnPg==');
81 background-repeat: no-repeat; 84 background-repeat: no-repeat;
82 background-position: right 2px top 2px; 85 background-position: right 2px top 2px;
83 86
@@ -136,7 +139,7 @@ root {
136 counter-increment: block; 139 counter-increment: block;
137 140
138 &::before { 141 &::before {
139 content: ""; 142 content: '';
140 height: calc(100% - 2rem); 143 height: calc(100% - 2rem);
141 144
142 position: absolute; 145 position: absolute;
@@ -156,7 +159,7 @@ root {
156 } 159 }
157 160
158 &::after { 161 &::after {
159 content: counter(block) "/" attr(data-total); 162 content: counter(block) '/' attr(data-total);
160 padding: 0.3rem 0.5rem; 163 padding: 0.3rem 0.5rem;
161 164
162 position: absolute; 165 position: absolute;
@@ -189,98 +192,98 @@ root {
189 position: relative; 192 position: relative;
190 overflow-x: auto; 193 overflow-x: auto;
191 194
192 .SemanticHtml { 195 &::after {
193 display: flex; 196 content: 'Layout: ' attr(data-layout);
194 flex-direction: column; 197 padding: 0.3rem 0.5rem;
195 height: 100%;
196 overflow-y: auto;
197 gap: 1rem;
198
199 justify-content: flex-start;
200 198
201 /* Trivial: gray out text not focused */ 199 position: absolute;
202 &:has(.dumby-block.focus) { 200 left: 50%;
203 color: gray; 201 top: 50%;
204 .dumby-block.focus { 202 z-index: 9999;
205 color: initial;
206 }
207 }
208 203
209 :has(> .mapclay, > [data-placeholder]) { 204 border: solid transparent;
210 display: flex; 205 border-radius: 5px;
211 gap: 0.5em;
212 206
213 background-color: white; 207 background: gray;
214 }
215 208
216 /* if Map not in showcase, add border when focused */ 209 color: white;
217 .mapclay { 210 font-size: 1.5rem;
218 border: 3px solid transparent; 211 font-weight: bold;
212 line-height: 1.2;
219 213
220 &.focus { 214 transform: translate(-50%, -50%);
221 border: 3px solid gray; 215 opacity: 0;
222 } 216 }
223 } 217}
224 218
225 [data-placeholder] { 219.SemanticHtml {
226 border: 3px solid gray; 220 display: flex;
227 flex-grow: 0; 221 flex-direction: column;
222 height: 100%;
223 gap: 1rem;
224 justify-content: flex-start;
225 overflow-y: auto;
228 226
229 & > * { 227 /* Trivial: gray out text not focused */
230 opacity: 0.3; 228 &:has(.dumby-block.focus) {
231 } 229 color: gray;
232 230
233 /* animation: map-fade-out 1s; */ 231 .dumby-block.focus {
232 color: initial;
234 } 233 }
235 } 234 }
236 235
237 .Showcase { 236 :has(> .mapclay, > [data-placeholder]) {
238 display: none; 237 display: flex;
239 overflow: visible; 238 gap: 0.5em;
240 width: 100%;
241 height: 100%;
242 239
243 position: relative; 240 background-color: white;
241 }
244 242
245 .mapclay { 243 /* if Map not in showcase, add border when focused */
246 width: 100%; 244 .mapclay {
247 height: 100%; 245 border: 3px solid transparent;
248 246
249 position: absolute; 247 &.focus {
250 left: 0; 248 border: 3px solid gray;
251 top: 0;
252 } 249 }
250 }
251
252 [data-placeholder] {
253 border: 3px solid gray;
254 flex-grow: 0;
253 255
254 .focus { 256 & > * {
255 z-index: 1; 257 opacity: 0.3;
256 } 258 }
257 }
258 259
259 &::after { 260 /* animation: map-fade-out 1s; */
260 content: "Layout: " attr(data-layout); 261 }
261 padding: 0.3rem 0.5rem; 262}
262 263
263 position: absolute; 264.Showcase {
264 left: 50%; 265 display: none;
265 top: 50%; 266 overflow: visible;
266 z-index: 9999; 267 width: 100%;
268 height: 100%;
267 269
268 border: solid transparent; 270 position: relative;
269 border-radius: 5px;
270 271
271 background: gray; 272 .mapclay {
273 width: 100%;
274 height: 100%;
272 275
273 color: white; 276 position: absolute;
274 font-size: 1.5rem; 277 left: 0;
275 font-weight: bold; 278 top: 0;
276 line-height: 1.2; 279 }
277 280
278 transform: translate(-50%, -50%); 281 .focus {
279 opacity: 0; 282 z-index: 1;
280 } 283 }
281} 284}
282 285
283.Dumby[data-layout="normal"] { 286.Dumby[data-layout='normal'] {
284 max-width: 60em; 287 max-width: 60em;
285 288
286 &::after { 289 &::after {
@@ -288,7 +291,7 @@ root {
288 } 291 }
289} 292}
290 293
291.Dumby[data-layout="side-by-side"] { 294.Dumby[data-layout='side-by-side'] {
292 &::after { 295 &::after {
293 animation: 1.5s forwards fade-out cubic-bezier(0.44, 0.18, 0.86, -0.21); 296 animation: 1.5s forwards fade-out cubic-bezier(0.44, 0.18, 0.86, -0.21);
294 } 297 }
@@ -337,7 +340,7 @@ root {
337 border-radius: 50%; 340 border-radius: 50%;
338 341
339 background-color: #3887be; 342 background-color: #3887be;
340 background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiICAgd2lkdGg9IjYwIiAgIGhlaWdodD0iNjAiICAgdmVyc2lvbj0iMS4xIiAgIHZpZXdCb3g9IjAgMCA2MCA2MCIgICBpZD0ic3ZnNTQzNCIgICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkxK2RldmVsK29zeG1lbnUgcjEyOTExIiAgIHNvZGlwb2RpOmRvY25hbWU9Imwtci5zdmciPiAgPG1ldGFkYXRhICAgICBpZD0ibWV0YWRhdGE1NDQ0Ij4gICAgPHJkZjpSREY+ICAgICAgPGNjOldvcmsgICAgICAgICByZGY6YWJvdXQ9IiI+ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4gICAgICAgIDxkYzp0eXBlICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+ICAgICAgPC9jYzpXb3JrPiAgICA8L3JkZjpSREY+ICA8L21ldGFkYXRhPiAgPGRlZnMgICAgIGlkPSJkZWZzNTQ0MiIgLz4gIDxzb2RpcG9kaTpuYW1lZHZpZXcgICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIgICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IiAgICAgYm9yZGVyb3BhY2l0eT0iMSIgICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiICAgICBncmlkdG9sZXJhbmNlPSIxMCIgICAgIGd1aWRldG9sZXJhbmNlPSIxMCIgICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIgICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTI4NiIgICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9Ijc1MSIgICAgIGlkPSJuYW1lZHZpZXc1NDQwIiAgICAgc2hvd2dyaWQ9InRydWUiICAgICBpbmtzY2FwZTp6b29tPSI0IiAgICAgaW5rc2NhcGU6Y3g9IjI1Ljg4OTgzMSIgICAgIGlua3NjYXBlOmN5PSIzNC4zODE4MzMiICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIgICAgIGlua3NjYXBlOndpbmRvdy15PSIyMyIgICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjAiICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc1NDM0IiAgICAgaW5rc2NhcGU6b2JqZWN0LW5vZGVzPSJ0cnVlIiAgICAgaW5rc2NhcGU6c25hcC1zbW9vdGgtbm9kZXM9InRydWUiPiAgICA8aW5rc2NhcGU6Z3JpZCAgICAgICB0eXBlPSJ4eWdyaWQiICAgICAgIGlkPSJncmlkNTk4OSIgLz4gIDwvc29kaXBvZGk6bmFtZWR2aWV3PiAgPHBhdGggICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiAgICAgZD0iTSAyNSAyNCBMIDE2IDMwIEwgMjUgMzYgTCAyNSAyNCB6IE0gMzUgMjQgTCAzNSAzNiBMIDQ0IDMwIEwgMzUgMjQgeiAiICAgICBpZD0icGF0aDU5OTUiIC8+PC9zdmc+"); 343 background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiICAgd2lkdGg9IjYwIiAgIGhlaWdodD0iNjAiICAgdmVyc2lvbj0iMS4xIiAgIHZpZXdCb3g9IjAgMCA2MCA2MCIgICBpZD0ic3ZnNTQzNCIgICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkxK2RldmVsK29zeG1lbnUgcjEyOTExIiAgIHNvZGlwb2RpOmRvY25hbWU9Imwtci5zdmciPiAgPG1ldGFkYXRhICAgICBpZD0ibWV0YWRhdGE1NDQ0Ij4gICAgPHJkZjpSREY+ICAgICAgPGNjOldvcmsgICAgICAgICByZGY6YWJvdXQ9IiI+ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4gICAgICAgIDxkYzp0eXBlICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+ICAgICAgPC9jYzpXb3JrPiAgICA8L3JkZjpSREY+ICA8L21ldGFkYXRhPiAgPGRlZnMgICAgIGlkPSJkZWZzNTQ0MiIgLz4gIDxzb2RpcG9kaTpuYW1lZHZpZXcgICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIgICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IiAgICAgYm9yZGVyb3BhY2l0eT0iMSIgICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiICAgICBncmlkdG9sZXJhbmNlPSIxMCIgICAgIGd1aWRldG9sZXJhbmNlPSIxMCIgICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIgICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTI4NiIgICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9Ijc1MSIgICAgIGlkPSJuYW1lZHZpZXc1NDQwIiAgICAgc2hvd2dyaWQ9InRydWUiICAgICBpbmtzY2FwZTp6b29tPSI0IiAgICAgaW5rc2NhcGU6Y3g9IjI1Ljg4OTgzMSIgICAgIGlua3NjYXBlOmN5PSIzNC4zODE4MzMiICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIgICAgIGlua3NjYXBlOndpbmRvdy15PSIyMyIgICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjAiICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc1NDM0IiAgICAgaW5rc2NhcGU6b2JqZWN0LW5vZGVzPSJ0cnVlIiAgICAgaW5rc2NhcGU6c25hcC1zbW9vdGgtbm9kZXM9InRydWUiPiAgICA8aW5rc2NhcGU6Z3JpZCAgICAgICB0eXBlPSJ4eWdyaWQiICAgICAgIGlkPSJncmlkNTk4OSIgLz4gIDwvc29kaXBvZGk6bmFtZWR2aWV3PiAgPHBhdGggICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiAgICAgZD0iTSAyNSAyNCBMIDE2IDMwIEwgMjUgMzYgTCAyNSAyNCB6IE0gMzUgMjQgTCAzNSAzNiBMIDQ0IDMwIEwgMzUgMjQgeiAiICAgICBpZD0icGF0aDU5OTUiIC8+PC9zdmc+');
341 344
342 transition: transform 0.3s ease-in-out; 345 transition: transform 0.3s ease-in-out;
343 transform: scale(0.5, 0.5); 346 transform: scale(0.5, 0.5);
@@ -351,7 +354,7 @@ root {
351 } 354 }
352} 355}
353 356
354.Dumby[data-layout="overlay"] { 357.Dumby[data-layout='overlay'] {
355 &::after { 358 &::after {
356 animation: 1.5s forwards fade-out cubic-bezier(0.44, 0.18, 0.86, -0.21); 359 animation: 1.5s forwards fade-out cubic-bezier(0.44, 0.18, 0.86, -0.21);
357 } 360 }
@@ -450,7 +453,7 @@ root {
450 453
451 /* Fade out top of contents scrolling */ 454 /* Fade out top of contents scrolling */
452 &::before { 455 &::before {
453 content: ""; 456 content: '';
454 display: block; 457 display: block;
455 height: 1.5rem; 458 height: 1.5rem;
456 459
@@ -489,8 +492,8 @@ root {
489 } 492 }
490 493
491 /* allow random width/height after resize */ 494 /* allow random width/height after resize */
492 &[style*="height"], 495 &[style*='height'],
493 &[style*="width"] { 496 &[style*='width'] {
494 max-width: unset; 497 max-width: unset;
495 max-height: unset; 498 max-height: unset;
496 } 499 }
diff --git a/src/css/index.css b/src/css/index.css
index a17ecce..221ee69 100644
--- a/src/css/index.css
+++ b/src/css/index.css
@@ -12,7 +12,7 @@ body {
12 width: 100%; 12 width: 100%;
13 height: 100vh; 13 height: 100vh;
14 14
15 &[data-mode="editing"] { 15 &[data-mode='editing'] {
16 display: flex; 16 display: flex;
17 align-items: stretch; 17 align-items: stretch;
18 gap: 0.5em; 18 gap: 0.5em;
@@ -51,8 +51,9 @@ body {
51 display: flex; 51 display: flex;
52 box-sizing: border-box; 52 box-sizing: border-box;
53 flex-direction: column; 53 flex-direction: column;
54 height: 100%;
55 align-items: stretch; 54 align-items: stretch;
55
56 height: 100%;
56 gap: 0.5em; 57 gap: 0.5em;
57 58
58 .CodeMirror { 59 .CodeMirror {
@@ -123,14 +124,15 @@ body {
123 124
124.container__suggestion { 125.container__suggestion {
125 display: flex; 126 display: flex;
127 justify-content: space-between;
128 align-items: center;
129
126 overflow: hidden; 130 overflow: hidden;
127 height: fit-content; 131 height: fit-content;
128 132
129 cursor: pointer; 133 cursor: pointer;
130 justify-content: space-between;
131 min-height: 2rem; 134 min-height: 2rem;
132 white-space: nowrap; 135 white-space: nowrap;
133 align-items: center;
134 136
135 &:not(:first-child) { 137 &:not(:first-child) {
136 border-top: 1px solid rgb(203 213 225); 138 border-top: 1px solid rgb(203 213 225);
@@ -165,12 +167,13 @@ body {
165 167
166.menu-item { 168.menu-item {
167 display: flex; 169 display: flex;
170 justify-content: space-between;
171
168 padding: 0.5rem; 172 padding: 0.5rem;
169 173
170 z-index: 9999; 174 z-index: 9999;
171 175
172 cursor: pointer; 176 cursor: pointer;
173 justify-content: space-between;
174 177
175 &:hover { 178 &:hover {
176 background: rgb(226 232 240); 179 background: rgb(226 232 240);