style.css
ASCII text
1@import "/static/efficient-ui/MASTER.css"; 2 3:root { 4--gap-navbar: 1rem; 5--width-navbar-button: 0; 6--text-soft: #000000C0; 7--text-softer: #0000009A; 8--text-faint: #00000066; 9--color-shape-label: #0097A7; --color-shape-label-text: #ffffff; 10--shadow-card-inset: inset 0 3px 6px -4px rgba(0, 0, 0, 0.12), inset 0 3px 6px 0 rgba(0, 0, 0, 0.24), inset 0 1px 4px 0 rgba(0, 0, 0, 0.12); 11/*view-transition-name: root;*/ 12} 13 14nav { 15/*view-transition-name: nav;*/ 16} 17 18p { 19color: var(--text-soft); 20} 21 22iconify-icon { 23display: inline-block; 24width: 1em; 25height: 1em; 26} 27 28:is(#shape-selector, #shape-options) > button > iconify-icon { 29font-size: 2rem; 30} 31 32#annotation-zone { 33position: relative; 34user-select: none; 35} 36 37#annotation-image { 38user-drag: none; 39-webkit-user-drag: none; 40image-rendering: pixelated; 41} 42 43#annotation-zone > svg { 44z-index: 1; 45position: absolute; 46top: 0; 47left: 0; 48width: 100%; 49height: 100%; 50} 51 52.annotation-ruler { 53z-index: 2; 54position: absolute; 55top: 0; 56left: 0; 57background: var(--color-accent); 58display: none; 59} 60 61#annotation-ruler-horizontal, #annotation-ruler-horizontal-secondary { 62height: 1px; 63width: 100%; 64} 65 66#annotation-ruler-vertical, #annotation-ruler-vertical-secondary { 67width: 1px; 68height: 100%; 69} 70 71.shape { 72stroke: var(--color-accent); 73fill: var(--color-accent); 74fill-opacity: 0.1; 75stroke-width: 2px; 76vector-effect: non-scaling-stroke; 77pointer-events: auto; 78transition: filter 0.25s cubic-bezier(0.61, 1, 0.88, 1), 79fill-opacity 0.25s cubic-bezier(0.61, 1, 0.88, 1), 80stroke-width 0.25s cubic-bezier(0.61, 1, 0.88, 1); 81stroke-linecap: square; 82stroke-linejoin: miter; 83} 84 85.shape-polyline { 86fill: none; 87} 88 89.shape-point { 90stroke: var(--color-accent); 91stroke-width: 2px; 92fill-opacity: 1; 93r: 2; 94transition: r 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), 95stroke-width 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), 96filter 0.25s cubic-bezier(0.61, 1, 0.88, 1); 97} 98 99.shape.selected { 100fill-opacity: 0.2; 101stroke-width: 4px; 102filter: drop-shadow(0 0 2px var(--text-soft)); 103} 104 105.shape-point.selected { 106fill-opacity: 1; 107r: 6; 108stroke-width: 6px; 109} 110 111.shape-container, .shape-container-viewonly { 112pointer-events: none; 113} 114 115#annotation-helper-message { 116min-height: 2lh; 117} 118 119.shape-container-viewonly > .shape { 120fill: var(--color-info); 121stroke: var(--color-info); 122fill-opacity: 0; 123stroke-opacity: 0; 124transition: fill-opacity 0.25s cubic-bezier(0.61, 1, 0.88, 1), 125stroke-opacity 0.25s cubic-bezier(0.61, 1, 0.88, 1); 126} 127 128.shape-container-viewonly > .shape-polyline { 129fill: none; 130} 131 132.shape-container-viewonly > .shape-point { 133stroke: var(--color-info); 134transition: r 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), 135stroke-width 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), 136filter 0.25s cubic-bezier(0.61, 1, 0.88, 1); 137} 138 139.shape-label { 140position: absolute; 141font-weight: 500; 142color: var(--color-shape-label-text); 143pointer-events: auto; 144height: 28px; 145padding-left: 8px; 146padding-right: 8px; 147display: flex; 148align-items: center; 149justify-content: center; 150background: var(--color-shape-label); 151width: max-content; 152box-shadow: var(--shadow-button); 153/* top-left corner is square to point to the shape */ 154border-radius: 0 16px 16px 16px; 155opacity: 0; 156transition: opacity 0.25s cubic-bezier(0.61, 1, 0.88, 1), 157transform 0.375s cubic-bezier(0.16, 1, 0.3, 1); 158transform: scale(0); 159transform-origin: top left; 160z-index: 3; 161} 162 163/* Only show region parts when checkbox is checked */ 164#annotation-zone:has(+ x-buttonbox #show-objects:checked) > .shape-label { 165opacity: 1; 166transform: scale(1); 167} 168 169/* Hide points with a bubble */ 170#annotation-zone:has(+ x-buttonbox #show-objects:checked) > .shape-container-viewonly > .shape-point:has(+ foreignObject) { 171r: 0; 172border-width: 0; 173} 174 175#annotation-zone:has(+ x-buttonbox #show-shapes:checked) > .shape-container-viewonly > .shape { 176fill-opacity: 0.1; 177stroke-opacity: 1; 178} 179 180/* Disabled for now, until there is more navigation that would benefit from transitions */ 181/* 182@view-transition { 183navigation: auto; 184} 185 186@keyframes move-out { 187from { 188transform: translateX(0%); 189} 190to { 191transform: translateX(-100%); 192} 193} 194 195@keyframes move-in { 196from { 197transform: translateX(100%); 198} 199to { 200transform: translateX(0%); 201} 202} 203 204@media (prefers-reduced-motion: no-preference) { 205::view-transition-old(root), 206::view-transition-new(root) { 207animation-duration: 0.25s; 208animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); 209} 210 211::view-transition-old(root) { 212animation-name: move-out; 213} 214 215::view-transition-new(root) { 216animation-name: move-in; 217} 218} 219*/ 220 221.multi-select, .single-select { 222display: flex; 223flex-flow: column nowrap; 224overflow-y: scroll; 225box-shadow: var(--shadow-card-inset); 226padding: 16px; 227gap: 8px; 228} 229 230.licence-selection, .image-type-selection { 231display: flex; 232flex-flow: column nowrap; 233} 234 235.licence-selection-info, .image-type-selection-info { 236margin-left: calc(var(--size-checkbox) + var(--gap-label-checkbox)); 237/* Align with the checkbox above */ 238} 239 240.licence-selection-info > p, .image-type-selection-info > p { 241font-weight: 300; 242} 243 244.licence-logo { 245width: 128px; 246float: right; 247margin-left: 1ch; 248} 249 250.licence-title, .image-type-title { 251display: flex; 252justify-content: space-between; 253width: 100%; 254} 255 256.licence-title > .licence-name, .image-type-title > .image-type-name { 257font: var(--h5-font); 258font-weight: 400; 259} 260 261.icon-explainer { 262display: grid; 263gap: 4px 8px; 264grid-template-columns: auto 1fr; 265align-items: center; 266} 267 268.icon-explainer *:nth-child(even) { 269font-weight: 300; 270} 271 272.required-asterisk::after { 273content: "*"; 274color: var(--color-error); 275} 276 277small { 278/* BIG :D */ 279font-size: 1em; 280} 281 282#pagination { 283display: flex; 284gap: 1em; 285justify-content: center; 286align-items: center; 287font-size: 1.5em; 288font-weight: 600; 289flex: 1 0 auto; 290} 291 292#pagination > a { 293text-decoration: none; 294color: var(--color-accent-1); 295} 296 297#pagination-options > form { 298align-items: center; 299display: flex; 300gap: 1em; 301} 302 303#pagination-options { 304justify-content: center; 305align-items: center; 306gap: 1em; 307width: 100%; 308} 309 310.thumbnail-list { 311list-style: none; 312margin: 0 !important; 313display: grid; 314grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); 315gap: 16px; 316} 317 318.thumbnail-list > li { 319transition: transform 0.25s cubic-bezier(0.61, 1, 0.88, 1), 320box-shadow 0.25s cubic-bezier(0.61, 1, 0.88, 1); 321box-shadow: var(--shadow-card); 322background: var(--color-card); 323} 324 325.thumbnail-list > li:hover { 326position: relative; 327transform: scale(1.5); 328z-index: 1; 329box-shadow: var(--shadow-card), 0 4px 32px rgba(0, 0, 0, 0.12), 0 4px 16px rgba(0, 0, 0, 0.08); 330} 331