[class^="leader-line"] { z-index: 9999; } @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } @keyframes fade-out { from { opacity: 1; } to { opacity: 0; } } @keyframes map-fade-in { from { opacity: 0.3; } to { opacity: 1; } } @keyframes map-fade-out { from { opacity: 1; } to { opacity: 0.3; } } .map-container { transform-origin: top left; } .with-leader-line:not(:has(> *)) { display: inline-block; background-image: url("data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cG9seWdvbiBwb2ludHM9IjI0LDAgMCw4IDgsMTEgMCwxOSA1LDI0IDEzLDE2IDE2LDI0IiBmaWxsPSJjb3JhbCIvPjwvc3ZnPg=="); background-repeat: no-repeat; background-position: right 2px top 2px; color: #555; padding-right: 15px; padding-left: 6px; background-size: 12px 12px; &.geolink { background-color: rgb(248 248 129); } &.doclink { background-color: #9ee7ea; } &:hover { background-image: none; font-weight: bolder; text-decoration: none; } } *:has(> nav) { /* FIXME Hide nav at proper time */ display: none; padding: 0.5rem; position: absolute; right: 10px; bottom: 10px; z-index: 500; border: 2px solid gray; border-radius: 0.5rem; background-color: white; min-width: 120px; &:has(> nav:empty) { display: none; } ol { margin-top: 0; margin-bottom: 0.5rem; } } .dumby-block { margin-left: -0.5em; padding-left: 0.5em; border-left: #f0f0f0 0.5em solid; margin-bottom: 3rem; } .Dumby { width: 100%; height: 100%; margin: 0 auto; padding: 0; position: relative; overflow-x: auto; .SemanticHtml { height: 100%; padding: 1.5rem; overflow-y: auto; pre { width: 100%; &:has(.map-container) { display: flex; justify-content: flex-start; background-color: inherit; } } .map-container { margin: 2px; border: 3px solid transparent; background: white; animation: map-fade-in 1s; &[data-focus="true"] { border: 3px solid gray; } } [data-placeholder] { margin: 2px; border: 3px solid gray; opacity: 0.3; animation: map-fade-out 1s; } } .Showcase { display: none; overflow: visible; height: 100%; position: relative; > * { width: 100%; height: 100%; position: absolute; left: 0; top: 0; } [data-focus="true"] { z-index: 1; } } } .Dumby[data-layout="normal"] { max-width: 60em; } .Dumby[data-layout="side-by-side"] { .SemanticHtml, .Showcase { width: 50%; position: absolute; top: 0; min-width: 20%; } .SemanticHtml { left: 0; } .Showcase { display: block; right: 0; } .bar { display: flex; overflow: visible; width: 1px; height: 100%; position: absolute; left: 50%; z-index: 9999; border: 2px black solid; .bar-handle { display: inline-block; width: 60px; height: 60px; position: absolute; left: -30px; top: calc(50% - 30px); border-radius: 50%; 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; cursor: grab; box-shadow: inset 0 0 0 2px white; &:hover { transform: unset; } } } } .Dumby[data-layout="overlay"] { .SemanticHtml, .Showcase { display: block; width: 100%; height: 100%; margin: 0; padding: 0; position: fixed; left: 0; top: 0; } .Showcase { z-index: 0; } .SemanticHtml { pointer-events: none; z-index: 1; } } .draggable-block { overflow: visible; width: fit-content; position: absolute; border: solid gray 3px; border-radius: 0.5rem; background-color: white; font-size: 0.8rem; pointer-events: auto; transition: visibility 1s; .dumby-block { overflow: auto; margin: 0; position: relative; border: none; resize: both; min-width: 5rem; max-width: 25vw; min-height: 5rem; max-height: 50vh; padding-inline: 1em; /* allow random width/height after resize */ &[style*="height"], &[style*="width"] { max-width: unset; max-height: unset; } /* gray out top of content, make draggable part easy to be seen */ &::before { display: block; width: 100%; height: 1.5rem; position: sticky; top: 0; background: linear-gradient(0deg, rgb(255 255 255 / 0%), white 60%); content: ''; } .map-container { min-width: 200px; } } .draggable { display: block; overflow: clip; width: 100%; position: absolute; left: 0; top: 0; z-index: 1; border-top-left-radius: 0.3rem; border-top-right-radius: 0.3rem; .handle { font-size: 1.1rem; text-align: center; transform: translate(0, -0.6rem); transition: all 0.3s ease-in-out; } } .utils { display: none; } &[data-state="hide"] { animation: fade-out 0.3s; opacity: 0; visibility: hidden; } &:has(.draggable:hover, .utils:hover), &[data-state="on-drag"] { .dumby-block { color: gray; opacity: 0.7; } .handle { background: #e1e1e1; transform: unset; } .utils { display: flex; position: absolute; left: 100%; top: 0; top: -0.5rem; font-size: 1.5rem; gap: 6px; animation: fade-in 1s; padding-left: 1rem; transition: opacity 0.5s; > * { padding: 0.2rem 0.4rem; border: 3px gray solid; border-radius: 5px; background: white; user-select: none; } #close { cursor: pointer; } #plus-font-size { cursor: zoom-in; } #minus-font-size { cursor: zoom-out; } } } } .bold-options { font-weight: bold; }