diff options
| author | Hsieh Chin Fan <pham@topo.tw> | 2024-09-24 11:53:23 +0800 |
|---|---|---|
| committer | Hsieh Chin Fan <pham@topo.tw> | 2024-09-24 12:17:22 +0800 |
| commit | 3f698f6faa489888b9d1bcc0851f04a91bb47b02 (patch) | |
| tree | 5ea41a0a26d9db2c5b7a038fd8a1b7723e022c3f | |
| parent | cf7619f6a42cb0fe4fef8b424d253258f3af7dde (diff) | |
feat(CSS): set indicator of dumby-block
* use peudo element as indicator
* remove padding from .Dumby, pad dumby-block instead
* also dress up draggable block
| -rw-r--r-- | src/css/dumbymap.css | 83 |
1 files changed, 57 insertions, 26 deletions
diff --git a/src/css/dumbymap.css b/src/css/dumbymap.css index 996cce6..fe948e8 100644 --- a/src/css/dumbymap.css +++ b/src/css/dumbymap.css | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | .Dumby { | ||
| 2 | --block-focus-color: lightyellow; | ||
| 3 | } | ||
| 4 | |||
| 1 | [class^="leader-line"] { | 5 | [class^="leader-line"] { |
| 2 | z-index: 9999; | 6 | z-index: 9999; |
| 3 | } | 7 | } |
| @@ -82,14 +86,22 @@ | |||
| 82 | } | 86 | } |
| 83 | 87 | ||
| 84 | .dumby-block { | 88 | .dumby-block { |
| 85 | margin-left: -0.5em; | 89 | padding: 1rem 1rem 1rem 2rem; |
| 86 | padding-left: 0.5em; | ||
| 87 | 90 | ||
| 88 | border-left: #f0f0f0 0.5em solid; | 91 | position: relative; |
| 89 | margin-bottom: 3rem; | 92 | |
| 93 | &::before { | ||
| 94 | content: ""; | ||
| 95 | height: calc(100% - 2rem); | ||
| 96 | |||
| 97 | position: absolute; | ||
| 98 | left: 0.8rem; | ||
| 99 | |||
| 100 | border-left: 0.5em solid #e0e0e0; | ||
| 101 | } | ||
| 90 | 102 | ||
| 91 | &.focus { | 103 | &.focus { |
| 92 | background: lightyellow; | 104 | background: var(--block-focus-color); |
| 93 | } | 105 | } |
| 94 | } | 106 | } |
| 95 | 107 | ||
| @@ -101,11 +113,14 @@ | |||
| 101 | 113 | ||
| 102 | position: relative; | 114 | position: relative; |
| 103 | overflow-x: auto; | 115 | overflow-x: auto; |
| 116 | padding-block: 1em; | ||
| 104 | 117 | ||
| 105 | .SemanticHtml { | 118 | .SemanticHtml { |
| 119 | display: flex; | ||
| 120 | flex-direction: column; | ||
| 106 | height: 100%; | 121 | height: 100%; |
| 107 | padding: 1.5rem; | ||
| 108 | overflow-y: auto; | 122 | overflow-y: auto; |
| 123 | gap: 1rem; | ||
| 109 | 124 | ||
| 110 | pre { | 125 | pre { |
| 111 | width: 100%; | 126 | width: 100%; |
| @@ -213,8 +228,8 @@ | |||
| 213 | background-color: #3887be; | 228 | background-color: #3887be; |
| 214 | background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiICAgd2lkdGg9IjYwIiAgIGhlaWdodD0iNjAiICAgdmVyc2lvbj0iMS4xIiAgIHZpZXdCb3g9IjAgMCA2MCA2MCIgICBpZD0ic3ZnNTQzNCIgICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkxK2RldmVsK29zeG1lbnUgcjEyOTExIiAgIHNvZGlwb2RpOmRvY25hbWU9Imwtci5zdmciPiAgPG1ldGFkYXRhICAgICBpZD0ibWV0YWRhdGE1NDQ0Ij4gICAgPHJkZjpSREY+ICAgICAgPGNjOldvcmsgICAgICAgICByZGY6YWJvdXQ9IiI+ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4gICAgICAgIDxkYzp0eXBlICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+ICAgICAgPC9jYzpXb3JrPiAgICA8L3JkZjpSREY+ICA8L21ldGFkYXRhPiAgPGRlZnMgICAgIGlkPSJkZWZzNTQ0MiIgLz4gIDxzb2RpcG9kaTpuYW1lZHZpZXcgICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIgICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IiAgICAgYm9yZGVyb3BhY2l0eT0iMSIgICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiICAgICBncmlkdG9sZXJhbmNlPSIxMCIgICAgIGd1aWRldG9sZXJhbmNlPSIxMCIgICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIgICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTI4NiIgICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9Ijc1MSIgICAgIGlkPSJuYW1lZHZpZXc1NDQwIiAgICAgc2hvd2dyaWQ9InRydWUiICAgICBpbmtzY2FwZTp6b29tPSI0IiAgICAgaW5rc2NhcGU6Y3g9IjI1Ljg4OTgzMSIgICAgIGlua3NjYXBlOmN5PSIzNC4zODE4MzMiICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIgICAgIGlua3NjYXBlOndpbmRvdy15PSIyMyIgICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjAiICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc1NDM0IiAgICAgaW5rc2NhcGU6b2JqZWN0LW5vZGVzPSJ0cnVlIiAgICAgaW5rc2NhcGU6c25hcC1zbW9vdGgtbm9kZXM9InRydWUiPiAgICA8aW5rc2NhcGU6Z3JpZCAgICAgICB0eXBlPSJ4eWdyaWQiICAgICAgIGlkPSJncmlkNTk4OSIgLz4gIDwvc29kaXBvZGk6bmFtZWR2aWV3PiAgPHBhdGggICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiAgICAgZD0iTSAyNSAyNCBMIDE2IDMwIEwgMjUgMzYgTCAyNSAyNCB6IE0gMzUgMjQgTCAzNSAzNiBMIDQ0IDMwIEwgMzUgMjQgeiAiICAgICBpZD0icGF0aDU5OTUiIC8+PC9zdmc+"); | 229 | background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiICAgd2lkdGg9IjYwIiAgIGhlaWdodD0iNjAiICAgdmVyc2lvbj0iMS4xIiAgIHZpZXdCb3g9IjAgMCA2MCA2MCIgICBpZD0ic3ZnNTQzNCIgICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkxK2RldmVsK29zeG1lbnUgcjEyOTExIiAgIHNvZGlwb2RpOmRvY25hbWU9Imwtci5zdmciPiAgPG1ldGFkYXRhICAgICBpZD0ibWV0YWRhdGE1NDQ0Ij4gICAgPHJkZjpSREY+ICAgICAgPGNjOldvcmsgICAgICAgICByZGY6YWJvdXQ9IiI+ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4gICAgICAgIDxkYzp0eXBlICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+ICAgICAgPC9jYzpXb3JrPiAgICA8L3JkZjpSREY+ICA8L21ldGFkYXRhPiAgPGRlZnMgICAgIGlkPSJkZWZzNTQ0MiIgLz4gIDxzb2RpcG9kaTpuYW1lZHZpZXcgICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIgICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IiAgICAgYm9yZGVyb3BhY2l0eT0iMSIgICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiICAgICBncmlkdG9sZXJhbmNlPSIxMCIgICAgIGd1aWRldG9sZXJhbmNlPSIxMCIgICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIgICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTI4NiIgICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9Ijc1MSIgICAgIGlkPSJuYW1lZHZpZXc1NDQwIiAgICAgc2hvd2dyaWQ9InRydWUiICAgICBpbmtzY2FwZTp6b29tPSI0IiAgICAgaW5rc2NhcGU6Y3g9IjI1Ljg4OTgzMSIgICAgIGlua3NjYXBlOmN5PSIzNC4zODE4MzMiICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIgICAgIGlua3NjYXBlOndpbmRvdy15PSIyMyIgICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjAiICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc1NDM0IiAgICAgaW5rc2NhcGU6b2JqZWN0LW5vZGVzPSJ0cnVlIiAgICAgaW5rc2NhcGU6c25hcC1zbW9vdGgtbm9kZXM9InRydWUiPiAgICA8aW5rc2NhcGU6Z3JpZCAgICAgICB0eXBlPSJ4eWdyaWQiICAgICAgIGlkPSJncmlkNTk4OSIgLz4gIDwvc29kaXBvZGk6bmFtZWR2aWV3PiAgPHBhdGggICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiAgICAgZD0iTSAyNSAyNCBMIDE2IDMwIEwgMjUgMzYgTCAyNSAyNCB6IE0gMzUgMjQgTCAzNSAzNiBMIDQ0IDMwIEwgMzUgMjQgeiAiICAgICBpZD0icGF0aDU5OTUiIC8+PC9zdmc+"); |
| 215 | 230 | ||
| 216 | transform: scale(0.5, 0.5); | ||
| 217 | transition: transform 0.3s ease-in-out; | 231 | transition: transform 0.3s ease-in-out; |
| 232 | transform: scale(0.5, 0.5); | ||
| 218 | cursor: grab; | 233 | cursor: grab; |
| 219 | box-shadow: inset 0 0 0 2px white; | 234 | box-shadow: inset 0 0 0 2px white; |
| 220 | 235 | ||
| @@ -268,8 +283,8 @@ | |||
| 268 | 283 | ||
| 269 | 284 | ||
| 270 | &:hover { | 285 | &:hover { |
| 271 | opacity: 1; | ||
| 272 | visibility: visible; | 286 | visibility: visible; |
| 287 | opacity: 1; | ||
| 273 | } | 288 | } |
| 274 | 289 | ||
| 275 | [id] { | 290 | [id] { |
| @@ -305,11 +320,20 @@ | |||
| 305 | border: solid gray 3px; | 320 | border: solid gray 3px; |
| 306 | border-radius: 0.5rem; | 321 | border-radius: 0.5rem; |
| 307 | 322 | ||
| 308 | background-color: white; | 323 | background: white; |
| 309 | 324 | ||
| 310 | font-size: 0.8rem; | 325 | font-size: 0.8rem; |
| 311 | pointer-events: auto; | 326 | pointer-events: auto; |
| 312 | 327 | ||
| 328 | p:first-child { | ||
| 329 | margin-top: 0; | ||
| 330 | } | ||
| 331 | |||
| 332 | &:has(.dumby-block.focus) { | ||
| 333 | outline: solid #505050 1px; | ||
| 334 | border-color: #505050 | ||
| 335 | } | ||
| 336 | |||
| 313 | &:has(pre:only-child [data-placeholder]:only-child) { | 337 | &:has(pre:only-child [data-placeholder]:only-child) { |
| 314 | display: none; | 338 | display: none; |
| 315 | } | 339 | } |
| @@ -327,7 +351,8 @@ | |||
| 327 | max-width: 25vw; | 351 | max-width: 25vw; |
| 328 | min-height: 5rem; | 352 | min-height: 5rem; |
| 329 | max-height: 50vh; | 353 | max-height: 50vh; |
| 330 | padding-inline: 1em; | 354 | padding-inline: 1rem; |
| 355 | padding-block: 0; | ||
| 331 | 356 | ||
| 332 | /* allow random width/height after resize */ | 357 | /* allow random width/height after resize */ |
| 333 | &[style*="height"], | 358 | &[style*="height"], |
| @@ -339,15 +364,21 @@ | |||
| 339 | /* gray out top of content, make draggable part easy to be seen */ | 364 | /* gray out top of content, make draggable part easy to be seen */ |
| 340 | 365 | ||
| 341 | &::before { | 366 | &::before { |
| 367 | content: ''; | ||
| 342 | display: block; | 368 | display: block; |
| 343 | width: 100%; | 369 | width: 120%; |
| 344 | height: 1.5rem; | 370 | height: 1.5rem; |
| 345 | 371 | ||
| 346 | position: sticky; | 372 | position: sticky; |
| 347 | top: 0; | 373 | top: 0; |
| 348 | 374 | ||
| 375 | border: none; | ||
| 376 | |||
| 349 | background: linear-gradient(0deg, rgb(255 255 255 / 0%), white 60%); | 377 | background: linear-gradient(0deg, rgb(255 255 255 / 0%), white 60%); |
| 350 | content: ''; | 378 | } |
| 379 | |||
| 380 | &.focus::before { | ||
| 381 | background: linear-gradient(0deg, rgb(255 255 255 / 0%), var(--block-focus-color) 60%); | ||
| 351 | } | 382 | } |
| 352 | 383 | ||
| 353 | .map-container { | 384 | .map-container { |
| @@ -370,18 +401,20 @@ | |||
| 370 | } | 401 | } |
| 371 | 402 | ||
| 372 | .handle { | 403 | .handle { |
| 373 | font-size: 1.1rem; | 404 | font-size: 1.1rem; |
| 374 | text-align: center; | 405 | text-align: center; |
| 375 | background: white; | ||
| 376 | 406 | ||
| 377 | transform: translate(0, -0.6rem); | 407 | transition: all 0.3s ease-in-out; |
| 378 | transition: all 0.3s ease-in-out; | 408 | |
| 379 | } | 409 | /* background: white; */ |
| 410 | |||
| 411 | transform: translate(0, -0.6rem); | ||
| 412 | } | ||
| 380 | 413 | ||
| 381 | &.hide { | 414 | &.hide { |
| 382 | opacity: 0; | ||
| 383 | transition: all 0.5s; | 415 | transition: all 0.5s; |
| 384 | visibility: hidden; | 416 | visibility: hidden; |
| 417 | opacity: 0; | ||
| 385 | } | 418 | } |
| 386 | 419 | ||
| 387 | &.drag, &:has(.draggable-part:hover) { | 420 | &.drag, &:has(.draggable-part:hover) { |
| @@ -391,18 +424,16 @@ | |||
| 391 | transform: unset; | 424 | transform: unset; |
| 392 | } | 425 | } |
| 393 | 426 | ||
| 394 | .dumby-block { | ||
| 395 | color: gray; | ||
| 396 | |||
| 397 | opacity: 0.7; | ||
| 398 | } | ||
| 399 | |||
| 400 | |||
| 401 | .utils { | 427 | .utils { |
| 402 | visibility: visible; | 428 | visibility: visible; |
| 403 | animation: fade-in .5s; | 429 | animation: fade-in .5s; |
| 404 | } | 430 | } |
| 405 | 431 | ||
| 432 | > *:not(.draggable-part, .utils) { | ||
| 433 | color: gray; | ||
| 434 | |||
| 435 | opacity: 0.7; | ||
| 436 | } | ||
| 406 | } | 437 | } |
| 407 | } | 438 | } |
| 408 | 439 | ||