From 3f698f6faa489888b9d1bcc0851f04a91bb47b02 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Tue, 24 Sep 2024 11:53:23 +0800 Subject: 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 --- src/css/dumbymap.css | 83 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 57 insertions(+), 26 deletions(-) (limited to 'src') 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 @@ +.Dumby { + --block-focus-color: lightyellow; +} + [class^="leader-line"] { z-index: 9999; } @@ -82,14 +86,22 @@ } .dumby-block { - margin-left: -0.5em; - padding-left: 0.5em; + padding: 1rem 1rem 1rem 2rem; - border-left: #f0f0f0 0.5em solid; - margin-bottom: 3rem; + position: relative; + + &::before { + content: ""; + height: calc(100% - 2rem); + + position: absolute; + left: 0.8rem; + + border-left: 0.5em solid #e0e0e0; + } &.focus { - background: lightyellow; + background: var(--block-focus-color); } } @@ -101,11 +113,14 @@ position: relative; overflow-x: auto; + padding-block: 1em; .SemanticHtml { + display: flex; + flex-direction: column; height: 100%; - padding: 1.5rem; overflow-y: auto; + gap: 1rem; pre { width: 100%; @@ -213,8 +228,8 @@ background-color: #3887be; background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiICAgd2lkdGg9IjYwIiAgIGhlaWdodD0iNjAiICAgdmVyc2lvbj0iMS4xIiAgIHZpZXdCb3g9IjAgMCA2MCA2MCIgICBpZD0ic3ZnNTQzNCIgICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkxK2RldmVsK29zeG1lbnUgcjEyOTExIiAgIHNvZGlwb2RpOmRvY25hbWU9Imwtci5zdmciPiAgPG1ldGFkYXRhICAgICBpZD0ibWV0YWRhdGE1NDQ0Ij4gICAgPHJkZjpSREY+ICAgICAgPGNjOldvcmsgICAgICAgICByZGY6YWJvdXQ9IiI+ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4gICAgICAgIDxkYzp0eXBlICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+ICAgICAgPC9jYzpXb3JrPiAgICA8L3JkZjpSREY+ICA8L21ldGFkYXRhPiAgPGRlZnMgICAgIGlkPSJkZWZzNTQ0MiIgLz4gIDxzb2RpcG9kaTpuYW1lZHZpZXcgICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIgICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IiAgICAgYm9yZGVyb3BhY2l0eT0iMSIgICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiICAgICBncmlkdG9sZXJhbmNlPSIxMCIgICAgIGd1aWRldG9sZXJhbmNlPSIxMCIgICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIgICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTI4NiIgICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9Ijc1MSIgICAgIGlkPSJuYW1lZHZpZXc1NDQwIiAgICAgc2hvd2dyaWQ9InRydWUiICAgICBpbmtzY2FwZTp6b29tPSI0IiAgICAgaW5rc2NhcGU6Y3g9IjI1Ljg4OTgzMSIgICAgIGlua3NjYXBlOmN5PSIzNC4zODE4MzMiICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIgICAgIGlua3NjYXBlOndpbmRvdy15PSIyMyIgICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjAiICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc1NDM0IiAgICAgaW5rc2NhcGU6b2JqZWN0LW5vZGVzPSJ0cnVlIiAgICAgaW5rc2NhcGU6c25hcC1zbW9vdGgtbm9kZXM9InRydWUiPiAgICA8aW5rc2NhcGU6Z3JpZCAgICAgICB0eXBlPSJ4eWdyaWQiICAgICAgIGlkPSJncmlkNTk4OSIgLz4gIDwvc29kaXBvZGk6bmFtZWR2aWV3PiAgPHBhdGggICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiAgICAgZD0iTSAyNSAyNCBMIDE2IDMwIEwgMjUgMzYgTCAyNSAyNCB6IE0gMzUgMjQgTCAzNSAzNiBMIDQ0IDMwIEwgMzUgMjQgeiAiICAgICBpZD0icGF0aDU5OTUiIC8+PC9zdmc+"); - transform: scale(0.5, 0.5); transition: transform 0.3s ease-in-out; + transform: scale(0.5, 0.5); cursor: grab; box-shadow: inset 0 0 0 2px white; @@ -268,8 +283,8 @@ &:hover { - opacity: 1; visibility: visible; + opacity: 1; } [id] { @@ -305,11 +320,20 @@ border: solid gray 3px; border-radius: 0.5rem; - background-color: white; + background: white; font-size: 0.8rem; pointer-events: auto; + p:first-child { + margin-top: 0; + } + + &:has(.dumby-block.focus) { + outline: solid #505050 1px; + border-color: #505050 + } + &:has(pre:only-child [data-placeholder]:only-child) { display: none; } @@ -327,7 +351,8 @@ max-width: 25vw; min-height: 5rem; max-height: 50vh; - padding-inline: 1em; + padding-inline: 1rem; + padding-block: 0; /* allow random width/height after resize */ &[style*="height"], @@ -339,15 +364,21 @@ /* gray out top of content, make draggable part easy to be seen */ &::before { + content: ''; display: block; - width: 100%; + width: 120%; height: 1.5rem; position: sticky; top: 0; + border: none; + background: linear-gradient(0deg, rgb(255 255 255 / 0%), white 60%); - content: ''; + } + + &.focus::before { + background: linear-gradient(0deg, rgb(255 255 255 / 0%), var(--block-focus-color) 60%); } .map-container { @@ -370,18 +401,20 @@ } .handle { - font-size: 1.1rem; - text-align: center; - background: white; + font-size: 1.1rem; + text-align: center; - transform: translate(0, -0.6rem); - transition: all 0.3s ease-in-out; - } + transition: all 0.3s ease-in-out; + + /* background: white; */ + + transform: translate(0, -0.6rem); + } &.hide { - opacity: 0; transition: all 0.5s; visibility: hidden; + opacity: 0; } &.drag, &:has(.draggable-part:hover) { @@ -391,18 +424,16 @@ transform: unset; } - .dumby-block { - color: gray; - - opacity: 0.7; - } - - .utils { visibility: visible; animation: fade-in .5s; } + > *:not(.draggable-part, .utils) { + color: gray; + + opacity: 0.7; + } } } -- cgit v1.2.3-70-g09d2