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, .annotation-zone { 33position: relative; 34user-select: none; 35} 36 37#annotation-image, .annotation-image { 38user-drag: none; 39-webkit-user-drag: none; 40image-rendering: pixelated; 41} 42 43#annotation-zone > svg, .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, .thumbnail-list > li .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, .thumbnail-list > li .shape-polyline { 129fill: none; 130} 131 132.shape-container-viewonly > .shape-point, .thumbnail-list > li .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) !important; 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; 161text-decoration: none; 162} 163 164.shape-label:hover { 165text-decoration: underline; 166} 167 168/* Only show region parts when checkbox is checked */ 169#annotation-zone:has(+ x-buttonbox #show-objects:checked) > .shape-label { 170opacity: 1; 171transform: scale(1); 172} 173 174/* Hide points with a bubble */ 175#annotation-zone:has(+ x-buttonbox #show-objects:checked) > .shape-container-viewonly > .shape-point:has(+ foreignObject) { 176r: 0; 177border-width: 0; 178} 179 180#annotation-zone:has(+ x-buttonbox #show-shapes:checked) > .shape-container-viewonly > .shape { 181fill-opacity: 0.1; 182stroke-opacity: 1; 183} 184 185.thumbnail-list > li:hover .shape { 186fill-opacity: 0.2; 187stroke-opacity: 1; 188} 189 190/* Disabled for now, until there is more navigation that would benefit from transitions */ 191/* 192@view-transition { 193navigation: auto; 194} 195 196@keyframes move-out { 197from { 198transform: translateX(0%); 199} 200to { 201transform: translateX(-100%); 202} 203} 204 205@keyframes move-in { 206from { 207transform: translateX(100%); 208} 209to { 210transform: translateX(0%); 211} 212} 213 214@media (prefers-reduced-motion: no-preference) { 215::view-transition-old(root), 216::view-transition-new(root) { 217animation-duration: 0.25s; 218animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); 219} 220 221::view-transition-old(root) { 222animation-name: move-out; 223} 224 225::view-transition-new(root) { 226animation-name: move-in; 227} 228} 229*/ 230 231.multi-select, .single-select { 232display: flex; 233flex-flow: column nowrap; 234overflow-y: scroll; 235box-shadow: var(--shadow-card-inset); 236padding: 16px; 237gap: 8px; 238} 239 240.licence-selection, .image-type-selection { 241display: flex; 242flex-flow: column nowrap; 243} 244 245.licence-selection-info, .image-type-selection-info { 246margin-left: calc(var(--size-checkbox) + var(--gap-label-checkbox)); 247/* Align with the checkbox above */ 248} 249 250.licence-selection-info > p, .image-type-selection-info > p { 251font-weight: 300; 252} 253 254.licence-logo { 255width: 128px; 256float: right; 257margin-left: 1ch; 258} 259 260.licence-title, .image-type-title { 261display: flex; 262justify-content: space-between; 263width: 100%; 264} 265 266.licence-title > .licence-name, .image-type-title > .image-type-name { 267font: var(--h5-font); 268font-weight: 400; 269} 270 271.icon-explainer { 272display: grid; 273gap: 4px 8px; 274grid-template-columns: auto 1fr; 275align-items: center; 276} 277 278.icon-explainer *:nth-child(even) { 279font-weight: 300; 280} 281 282.required-asterisk::after { 283content: "*"; 284color: var(--color-error); 285} 286 287small { 288/* BIG :D */ 289font-size: 1em; 290} 291 292#pagination { 293display: flex; 294gap: 1em; 295justify-content: center; 296align-items: center; 297font-size: 1.5em; 298font-weight: 600; 299flex: 1 0 auto; 300} 301 302#pagination > a { 303text-decoration: none; 304color: var(--color-accent-1); 305} 306 307#pagination-options > form { 308align-items: center; 309display: flex; 310gap: 1em; 311} 312 313#pagination-options { 314justify-content: center; 315align-items: center; 316gap: 1em; 317width: 100%; 318} 319 320.thumbnail-list { 321list-style: none; 322margin: 0 !important; 323display: grid; 324grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); 325gap: 16px; 326} 327 328.thumbnail-list > li { 329transition: transform 0.25s cubic-bezier(0.61, 1, 0.88, 1), 330box-shadow 0.25s cubic-bezier(0.61, 1, 0.88, 1); 331box-shadow: var(--shadow-card); 332background: var(--color-card); 333} 334 335.thumbnail-list > li > a { 336display: flex; 337flex-direction: column; 338justify-content: space-between; 339height: 100%; 340} 341 342.thumbnail-list > li:is(:hover, :focus, :has(:focus)) { 343position: relative; 344transform: scale(1.5); 345z-index: 1; 346box-shadow: var(--shadow-card), 0 4px 32px rgba(0, 0, 0, 0.12), 0 4px 16px rgba(0, 0, 0, 0.08); 347} 348 349.thumbnail-list > li .list-detail { 350padding: 8px; 351display: block; 352} 353