Mercurial
comparison design_system/src/styles/elements.css @ 258:60a876c4587a
[ui] Add semantic primitive ownership
Build a layered Zenbu token and sizing system, make authored controls use native-underneath primitives, migrate mrjunejune without imposing visual surfaces, and document/enforce HTML ownership in the catalog and wiki.
Co-authored-by: Copilot <[email protected]>
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Wed, 05 Aug 2026 05:25:40 -0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 257:609d3c6aff4e | 258:60a876c4587a |
|---|---|
| 1 :where( | |
| 2 zen-accordion, | |
| 3 zen-alert-dialog, | |
| 4 zen-aspect-ratio, | |
| 5 zen-attachment, | |
| 6 zen-avatar, | |
| 7 zen-badge, | |
| 8 zen-breadcrumb, | |
| 9 zen-bubble, | |
| 10 zen-box, | |
| 11 zen-button-group, | |
| 12 zen-calendar, | |
| 13 zen-carousel, | |
| 14 zen-chart, | |
| 15 zen-checkbox, | |
| 16 zen-collapsible, | |
| 17 zen-combobox, | |
| 18 zen-command, | |
| 19 zen-context-menu, | |
| 20 zen-data-table, | |
| 21 zen-date-picker, | |
| 22 zen-dialog, | |
| 23 zen-direction, | |
| 24 zen-drawer, | |
| 25 zen-dropdown-menu, | |
| 26 zen-empty, | |
| 27 zen-form, | |
| 28 zen-hover-card, | |
| 29 zen-heading, | |
| 30 zen-icon, | |
| 31 zen-input, | |
| 32 zen-input-group, | |
| 33 zen-input-otp, | |
| 34 zen-item, | |
| 35 zen-kbd, | |
| 36 zen-label, | |
| 37 zen-marker, | |
| 38 zen-menubar, | |
| 39 zen-message, | |
| 40 zen-message-scroller, | |
| 41 zen-native-select, | |
| 42 zen-navigation-menu, | |
| 43 zen-pagination, | |
| 44 zen-popover, | |
| 45 zen-progress, | |
| 46 zen-radio-group, | |
| 47 zen-resizable, | |
| 48 zen-scroll-area, | |
| 49 zen-select, | |
| 50 zen-separator, | |
| 51 zen-sheet, | |
| 52 zen-sidebar, | |
| 53 zen-skeleton, | |
| 54 zen-slider, | |
| 55 zen-spinner, | |
| 56 zen-switch, | |
| 57 zen-table, | |
| 58 zen-text, | |
| 59 zen-tabs, | |
| 60 zen-textarea, | |
| 61 zen-toggle, | |
| 62 zen-toggle-group, | |
| 63 zen-tooltip, | |
| 64 zen-typography | |
| 65 ) { | |
| 66 box-sizing: border-box; | |
| 67 color: var(--zenbu-sys-color-text-primary); | |
| 68 font-family: var(--zenbu-sys-font-family-ui); | |
| 69 } | |
| 70 | |
| 71 :where( | |
| 72 zen-button, | |
| 73 zen-calendar, | |
| 74 zen-checkbox, | |
| 75 zen-combobox, | |
| 76 zen-command, | |
| 77 zen-date-picker, | |
| 78 zen-field, | |
| 79 zen-form, | |
| 80 zen-input, | |
| 81 zen-input-group, | |
| 82 zen-input-otp, | |
| 83 zen-native-select, | |
| 84 zen-radio-group, | |
| 85 zen-select, | |
| 86 zen-slider, | |
| 87 zen-switch, | |
| 88 zen-textarea | |
| 89 ) { | |
| 90 --zenbu-control-height: var(--zenbu-sys-control-height-md); | |
| 91 --zenbu-control-padding-block: var(--zenbu-sys-control-padding-block-md); | |
| 92 --zenbu-control-padding-inline: var(--zenbu-sys-control-padding-inline-md); | |
| 93 --zenbu-control-gap: var(--zenbu-sys-control-gap-md); | |
| 94 --zenbu-control-font-size: var(--zenbu-sys-font-size-md); | |
| 95 --zenbu-control-line-height: var(--zenbu-sys-control-line-height-md); | |
| 96 --zenbu-control-icon-size: var(--zenbu-sys-icon-size-md); | |
| 97 } | |
| 98 | |
| 99 :where( | |
| 100 zen-button, | |
| 101 zen-calendar, | |
| 102 zen-checkbox, | |
| 103 zen-combobox, | |
| 104 zen-command, | |
| 105 zen-date-picker, | |
| 106 zen-field, | |
| 107 zen-form, | |
| 108 zen-input, | |
| 109 zen-input-group, | |
| 110 zen-input-otp, | |
| 111 zen-native-select, | |
| 112 zen-radio-group, | |
| 113 zen-select, | |
| 114 zen-slider, | |
| 115 zen-switch, | |
| 116 zen-textarea | |
| 117 )[size="xs"] { | |
| 118 --zenbu-control-height: var(--zenbu-sys-control-height-xs); | |
| 119 --zenbu-control-padding-block: var(--zenbu-sys-control-padding-block-xs); | |
| 120 --zenbu-control-padding-inline: var(--zenbu-sys-control-padding-inline-xs); | |
| 121 --zenbu-control-gap: var(--zenbu-sys-control-gap-xs); | |
| 122 --zenbu-control-font-size: var(--zenbu-sys-font-size-xs); | |
| 123 --zenbu-control-line-height: var(--zenbu-sys-control-line-height-xs); | |
| 124 --zenbu-control-icon-size: var(--zenbu-sys-icon-size-xs); | |
| 125 } | |
| 126 | |
| 127 :where( | |
| 128 zen-button, | |
| 129 zen-calendar, | |
| 130 zen-checkbox, | |
| 131 zen-combobox, | |
| 132 zen-command, | |
| 133 zen-date-picker, | |
| 134 zen-field, | |
| 135 zen-form, | |
| 136 zen-input, | |
| 137 zen-input-group, | |
| 138 zen-input-otp, | |
| 139 zen-native-select, | |
| 140 zen-radio-group, | |
| 141 zen-select, | |
| 142 zen-slider, | |
| 143 zen-switch, | |
| 144 zen-textarea | |
| 145 )[size="sm"] { | |
| 146 --zenbu-control-height: var(--zenbu-sys-control-height-sm); | |
| 147 --zenbu-control-padding-block: var(--zenbu-sys-control-padding-block-sm); | |
| 148 --zenbu-control-padding-inline: var(--zenbu-sys-control-padding-inline-sm); | |
| 149 --zenbu-control-gap: var(--zenbu-sys-control-gap-sm); | |
| 150 --zenbu-control-font-size: var(--zenbu-sys-font-size-sm); | |
| 151 --zenbu-control-line-height: var(--zenbu-sys-control-line-height-sm); | |
| 152 --zenbu-control-icon-size: var(--zenbu-sys-icon-size-sm); | |
| 153 } | |
| 154 | |
| 155 :where( | |
| 156 zen-button, | |
| 157 zen-calendar, | |
| 158 zen-checkbox, | |
| 159 zen-combobox, | |
| 160 zen-command, | |
| 161 zen-date-picker, | |
| 162 zen-field, | |
| 163 zen-form, | |
| 164 zen-input, | |
| 165 zen-input-group, | |
| 166 zen-input-otp, | |
| 167 zen-native-select, | |
| 168 zen-radio-group, | |
| 169 zen-select, | |
| 170 zen-slider, | |
| 171 zen-switch, | |
| 172 zen-textarea | |
| 173 )[size="lg"] { | |
| 174 --zenbu-control-height: var(--zenbu-sys-control-height-lg); | |
| 175 --zenbu-control-padding-block: var(--zenbu-sys-control-padding-block-lg); | |
| 176 --zenbu-control-padding-inline: var(--zenbu-sys-control-padding-inline-lg); | |
| 177 --zenbu-control-gap: var(--zenbu-sys-control-gap-lg); | |
| 178 --zenbu-control-font-size: var(--zenbu-sys-font-size-lg); | |
| 179 --zenbu-control-line-height: var(--zenbu-sys-control-line-height-lg); | |
| 180 --zenbu-control-icon-size: var(--zenbu-sys-icon-size-lg); | |
| 181 } | |
| 182 | |
| 183 :where( | |
| 184 zen-button, | |
| 185 zen-calendar, | |
| 186 zen-checkbox, | |
| 187 zen-combobox, | |
| 188 zen-command, | |
| 189 zen-date-picker, | |
| 190 zen-field, | |
| 191 zen-form, | |
| 192 zen-input, | |
| 193 zen-input-group, | |
| 194 zen-input-otp, | |
| 195 zen-native-select, | |
| 196 zen-radio-group, | |
| 197 zen-select, | |
| 198 zen-slider, | |
| 199 zen-switch, | |
| 200 zen-textarea | |
| 201 )[size="xl"] { | |
| 202 --zenbu-control-height: var(--zenbu-sys-control-height-xl); | |
| 203 --zenbu-control-padding-block: var(--zenbu-sys-control-padding-block-xl); | |
| 204 --zenbu-control-padding-inline: var(--zenbu-sys-control-padding-inline-xl); | |
| 205 --zenbu-control-gap: var(--zenbu-sys-control-gap-xl); | |
| 206 --zenbu-control-font-size: var(--zenbu-sys-font-size-xl); | |
| 207 --zenbu-control-line-height: var(--zenbu-sys-control-line-height-xl); | |
| 208 --zenbu-control-icon-size: var(--zenbu-sys-icon-size-xl); | |
| 209 } | |
| 210 | |
| 211 zen-box { | |
| 212 display: block; | |
| 213 padding: var(--zenbu-box-padding, 0); | |
| 214 } | |
| 215 | |
| 216 zen-box[padding="xs"] { --zenbu-box-padding: var(--zenbu-sys-padding-xs); } | |
| 217 zen-box[padding="sm"] { --zenbu-box-padding: var(--zenbu-sys-padding-sm); } | |
| 218 zen-box[padding="md"] { --zenbu-box-padding: var(--zenbu-sys-padding-md); } | |
| 219 zen-box[padding="lg"] { --zenbu-box-padding: var(--zenbu-sys-padding-lg); } | |
| 220 zen-box[padding="xl"] { --zenbu-box-padding: var(--zenbu-sys-padding-xl); } | |
| 221 | |
| 222 :where(zen-text, zen-heading) { | |
| 223 display: contents; | |
| 224 --zenbu-type-font-size: var(--zenbu-sys-font-size-md); | |
| 225 --zenbu-type-line-height: var(--zenbu-sys-line-height-md); | |
| 226 } | |
| 227 | |
| 228 :where(zen-text, zen-heading)[size="xs"] { | |
| 229 --zenbu-type-font-size: var(--zenbu-sys-font-size-xs); | |
| 230 --zenbu-type-line-height: var(--zenbu-sys-line-height-xs); | |
| 231 } | |
| 232 | |
| 233 :where(zen-text, zen-heading)[size="sm"] { | |
| 234 --zenbu-type-font-size: var(--zenbu-sys-font-size-sm); | |
| 235 --zenbu-type-line-height: var(--zenbu-sys-line-height-sm); | |
| 236 } | |
| 237 | |
| 238 :where(zen-text, zen-heading)[size="md"] { | |
| 239 --zenbu-type-font-size: var(--zenbu-sys-font-size-md); | |
| 240 --zenbu-type-line-height: var(--zenbu-sys-line-height-md); | |
| 241 } | |
| 242 | |
| 243 :where(zen-text, zen-heading)[size="lg"] { | |
| 244 --zenbu-type-font-size: var(--zenbu-sys-font-size-lg); | |
| 245 --zenbu-type-line-height: var(--zenbu-sys-line-height-lg); | |
| 246 } | |
| 247 | |
| 248 :where(zen-text, zen-heading)[size="xl"] { | |
| 249 --zenbu-type-font-size: var(--zenbu-sys-font-size-xl); | |
| 250 --zenbu-type-line-height: var(--zenbu-sys-line-height-xl); | |
| 251 } | |
| 252 | |
| 253 zen-text > :where(span, p, small, strong) { | |
| 254 font-size: var(--zenbu-type-font-size); | |
| 255 line-height: var(--zenbu-type-line-height); | |
| 256 } | |
| 257 | |
| 258 zen-heading { | |
| 259 --zenbu-type-font-size: var(--zenbu-sys-font-size-2xl); | |
| 260 --zenbu-type-line-height: var(--zenbu-sys-line-height-xl); | |
| 261 } | |
| 262 | |
| 263 zen-heading > :where(h1, h2, h3, h4, h5, h6) { | |
| 264 font-size: var(--zenbu-type-font-size); | |
| 265 font-weight: var(--zenbu-sys-font-weight-display); | |
| 266 line-height: var(--zenbu-type-line-height); | |
| 267 } | |
| 268 | |
| 269 zen-icon { | |
| 270 --zenbu-icon-size: 1em; | |
| 271 display: inline-grid; | |
| 272 width: var(--zenbu-icon-size, 1em); | |
| 273 height: var(--zenbu-icon-size, 1em); | |
| 274 flex: 0 0 auto; | |
| 275 place-items: center; | |
| 276 color: inherit; | |
| 277 vertical-align: -0.125em; | |
| 278 } | |
| 279 | |
| 280 zen-icon > svg { | |
| 281 display: block; | |
| 282 width: 100%; | |
| 283 height: 100%; | |
| 284 } | |
| 285 | |
| 286 zen-link { | |
| 287 display: contents; | |
| 288 } | |
| 289 | |
| 290 zen-link[effect="paw"] > a > [data-zen-link-decoration] { | |
| 291 width: 1em; | |
| 292 height: 1em; | |
| 293 margin-inline-end: var(--zenbu-sys-space-related); | |
| 294 color: var(--zenbu-sys-color-link-decoration); | |
| 295 animation: zen-paw-step 600ms ease-out both; | |
| 296 } | |
| 297 | |
| 298 zen-link[effect="paw"] > a:hover > [data-zen-link-decoration] { | |
| 299 animation: zen-paw-wiggle 400ms ease-in-out infinite; | |
| 300 } | |
| 301 | |
| 302 :where( | |
| 303 zen-alert-dialog, | |
| 304 zen-calendar, | |
| 305 zen-combobox, | |
| 306 zen-command, | |
| 307 zen-date-picker, | |
| 308 zen-dialog, | |
| 309 zen-drawer, | |
| 310 zen-form, | |
| 311 zen-input-otp, | |
| 312 zen-popover, | |
| 313 zen-progress, | |
| 314 zen-radio-group, | |
| 315 zen-resizable, | |
| 316 zen-select, | |
| 317 zen-sheet, | |
| 318 zen-sidebar, | |
| 319 zen-slider, | |
| 320 zen-tabs | |
| 321 ) { | |
| 322 display: block; | |
| 323 } | |
| 324 | |
| 325 :where( | |
| 326 zen-accordion, | |
| 327 zen-collapsible | |
| 328 ) { | |
| 329 display: block; | |
| 330 } | |
| 331 | |
| 332 :where( | |
| 333 zen-accordion, | |
| 334 zen-collapsible | |
| 335 ) details { | |
| 336 interpolate-size: allow-keywords; | |
| 337 border-block-end: 1px solid color-mix( | |
| 338 in srgb, | |
| 339 var(--zenbu-sys-color-border-default) 28%, | |
| 340 transparent | |
| 341 ); | |
| 342 } | |
| 343 | |
| 344 :where( | |
| 345 zen-accordion, | |
| 346 zen-collapsible | |
| 347 ) summary { | |
| 348 display: flex; | |
| 349 align-items: center; | |
| 350 gap: var(--zenbu-sys-space-control); | |
| 351 padding: var(--zenbu-sys-space-control) 0; | |
| 352 font-weight: 800; | |
| 353 list-style: none; | |
| 354 cursor: pointer; | |
| 355 } | |
| 356 | |
| 357 :where( | |
| 358 zen-accordion, | |
| 359 zen-collapsible | |
| 360 ) summary::marker, | |
| 361 :where( | |
| 362 zen-accordion, | |
| 363 zen-collapsible | |
| 364 ) summary::-webkit-details-marker { | |
| 365 display: none; | |
| 366 content: ""; | |
| 367 } | |
| 368 | |
| 369 :where( | |
| 370 zen-accordion, | |
| 371 zen-collapsible | |
| 372 ) summary > [data-zen-disclosure-icon] { | |
| 373 margin-inline-start: auto; | |
| 374 transition: transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1); | |
| 375 } | |
| 376 | |
| 377 :where( | |
| 378 zen-accordion, | |
| 379 zen-collapsible | |
| 380 ) details[open] > summary > [data-zen-disclosure-icon] { | |
| 381 transform: rotate(180deg); | |
| 382 } | |
| 383 | |
| 384 :where( | |
| 385 zen-accordion, | |
| 386 zen-collapsible | |
| 387 ) details::details-content { | |
| 388 block-size: 0; | |
| 389 overflow: clip; | |
| 390 opacity: 0; | |
| 391 transition: | |
| 392 block-size 220ms cubic-bezier(0.2, 0.8, 0.2, 1), | |
| 393 content-visibility 220ms allow-discrete, | |
| 394 opacity 180ms ease; | |
| 395 } | |
| 396 | |
| 397 :where( | |
| 398 zen-accordion, | |
| 399 zen-collapsible | |
| 400 ) details[open]::details-content { | |
| 401 block-size: auto; | |
| 402 opacity: 1; | |
| 403 } | |
| 404 | |
| 405 :where( | |
| 406 zen-accordion, | |
| 407 zen-collapsible | |
| 408 ) details > :not(summary) { | |
| 409 margin-block-start: 0; | |
| 410 padding-block-end: var(--zenbu-sys-space-control); | |
| 411 color: var(--zenbu-sys-color-text-secondary); | |
| 412 } | |
| 413 | |
| 414 :where( | |
| 415 zen-alert-dialog, | |
| 416 zen-dialog, | |
| 417 zen-drawer, | |
| 418 zen-sheet | |
| 419 ) > [data-zen-trigger], | |
| 420 :where( | |
| 421 zen-dropdown-menu, | |
| 422 zen-menubar, | |
| 423 zen-navigation-menu, | |
| 424 zen-popover | |
| 425 ) [data-zen-trigger], | |
| 426 zen-empty > button, | |
| 427 zen-form button, | |
| 428 zen-input-group button { | |
| 429 min-height: var(--zenbu-control-height); | |
| 430 padding: | |
| 431 var(--zenbu-control-padding-block) | |
| 432 var(--zenbu-control-padding-inline); | |
| 433 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 434 border-radius: var(--zenbu-sys-radius-control); | |
| 435 box-shadow: var(--zenbu-sys-shadow-subtle); | |
| 436 background: var(--zenbu-sys-color-action-primary-background); | |
| 437 color: var(--zenbu-sys-color-action-primary-foreground); | |
| 438 font-weight: 800; | |
| 439 cursor: pointer; | |
| 440 } | |
| 441 | |
| 442 :where( | |
| 443 zen-alert-dialog, | |
| 444 zen-dialog, | |
| 445 zen-drawer, | |
| 446 zen-sheet | |
| 447 ) dialog { | |
| 448 width: min(32rem, calc(100vi - 2rem)); | |
| 449 padding: var(--zenbu-sys-space-container); | |
| 450 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 451 border-radius: var(--zenbu-sys-radius-container); | |
| 452 box-shadow: var(--zenbu-sys-shadow-raised); | |
| 453 background: var(--zenbu-sys-color-surface-raised); | |
| 454 color: var(--zenbu-sys-color-text-primary); | |
| 455 } | |
| 456 | |
| 457 :where( | |
| 458 zen-alert-dialog, | |
| 459 zen-dialog, | |
| 460 zen-drawer, | |
| 461 zen-sheet | |
| 462 ) dialog[open], | |
| 463 :where( | |
| 464 zen-combobox, | |
| 465 zen-command, | |
| 466 zen-context-menu, | |
| 467 zen-dropdown-menu, | |
| 468 zen-hover-card, | |
| 469 zen-menubar, | |
| 470 zen-navigation-menu, | |
| 471 zen-popover, | |
| 472 zen-tooltip | |
| 473 ) :where( | |
| 474 [data-zen-content], | |
| 475 [role="listbox"], | |
| 476 [role="menu"] | |
| 477 ):not([hidden]) { | |
| 478 animation: zen-surface-open 160ms ease-out; | |
| 479 } | |
| 480 | |
| 481 :where( | |
| 482 zen-alert-dialog, | |
| 483 zen-dialog, | |
| 484 zen-drawer, | |
| 485 zen-sheet | |
| 486 ) dialog::backdrop { | |
| 487 background: var(--zenbu-sys-color-scrim); | |
| 488 backdrop-filter: blur(3px); | |
| 489 } | |
| 490 | |
| 491 :where( | |
| 492 zen-alert-dialog, | |
| 493 zen-dialog, | |
| 494 zen-drawer, | |
| 495 zen-sheet | |
| 496 ) dialog > h3 { | |
| 497 margin-block-start: 0; | |
| 498 } | |
| 499 | |
| 500 :where( | |
| 501 zen-alert-dialog, | |
| 502 zen-dialog, | |
| 503 zen-drawer, | |
| 504 zen-sheet | |
| 505 ) dialog button { | |
| 506 min-height: 2.35rem; | |
| 507 margin-inline-end: var(--zenbu-sys-space-related); | |
| 508 padding-inline: var(--zenbu-sys-space-control); | |
| 509 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 510 border-radius: var(--zenbu-sys-radius-control-small); | |
| 511 background: var(--zenbu-sys-color-surface-default); | |
| 512 color: var(--zenbu-sys-color-text-primary); | |
| 513 font-weight: 700; | |
| 514 cursor: pointer; | |
| 515 } | |
| 516 | |
| 517 zen-alert-dialog dialog button[value="confirm"] { | |
| 518 background: var(--zenbu-sys-color-danger-foreground); | |
| 519 color: var(--zenbu-sys-color-text-inverse); | |
| 520 } | |
| 521 | |
| 522 :where(zen-sheet, zen-drawer) dialog { | |
| 523 position: fixed; | |
| 524 max-width: none; | |
| 525 max-height: none; | |
| 526 margin: 0; | |
| 527 } | |
| 528 | |
| 529 :where(zen-sheet, zen-drawer)[placement="right"] dialog { | |
| 530 inset: 0 0 0 auto; | |
| 531 width: min(28rem, 92vi); | |
| 532 height: 100vb; | |
| 533 border-radius: var(--zenbu-sys-radius-container) 0 0 var(--zenbu-sys-radius-container); | |
| 534 } | |
| 535 | |
| 536 :where(zen-sheet, zen-drawer)[placement="left"] dialog { | |
| 537 inset: 0 auto 0 0; | |
| 538 width: min(28rem, 92vi); | |
| 539 height: 100vb; | |
| 540 border-radius: 0 var(--zenbu-sys-radius-container) var(--zenbu-sys-radius-container) 0; | |
| 541 } | |
| 542 | |
| 543 :where(zen-sheet, zen-drawer)[placement="bottom"] dialog, | |
| 544 zen-drawer:not([placement]) dialog { | |
| 545 inset: auto 0 0; | |
| 546 width: 100vi; | |
| 547 border-radius: var(--zenbu-sys-radius-container) var(--zenbu-sys-radius-container) 0 0; | |
| 548 } | |
| 549 | |
| 550 zen-aspect-ratio { | |
| 551 --zenbu-aspect-ratio: 16 / 9; | |
| 552 display: block; | |
| 553 aspect-ratio: var(--zenbu-aspect-ratio, 16 / 9); | |
| 554 overflow: hidden; | |
| 555 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 556 border-radius: var(--zenbu-sys-radius-container); | |
| 557 background: var(--zenbu-sys-color-surface-default); | |
| 558 } | |
| 559 | |
| 560 zen-aspect-ratio > * { | |
| 561 width: 100%; | |
| 562 height: 100%; | |
| 563 } | |
| 564 | |
| 565 .demo-media { | |
| 566 display: grid; | |
| 567 place-items: center; | |
| 568 background: var(--zenbu-sys-color-surface-subtle); | |
| 569 color: var(--zenbu-sys-color-text-primary); | |
| 570 font-size: var(--zenbu-sys-font-size-lg); | |
| 571 font-weight: 900; | |
| 572 } | |
| 573 | |
| 574 zen-attachment { | |
| 575 display: grid; | |
| 576 grid-template-columns: 3rem minmax(0, 1fr) auto; | |
| 577 align-items: center; | |
| 578 gap: var(--zenbu-sys-space-control); | |
| 579 padding: var(--zenbu-sys-space-control); | |
| 580 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 581 border-radius: var(--zenbu-sys-radius-control); | |
| 582 background: var(--zenbu-sys-color-surface-default); | |
| 583 } | |
| 584 | |
| 585 zen-attachment > span { | |
| 586 display: grid; | |
| 587 width: 3rem; | |
| 588 height: 3rem; | |
| 589 place-items: center; | |
| 590 border-radius: var(--zenbu-sys-radius-control-small); | |
| 591 background: var(--zenbu-sys-color-info-foreground); | |
| 592 color: var(--zenbu-sys-color-text-inverse); | |
| 593 font-size: var(--zenbu-sys-font-size-xs); | |
| 594 font-weight: 900; | |
| 595 } | |
| 596 | |
| 597 zen-attachment > div, | |
| 598 zen-item > div { | |
| 599 display: grid; | |
| 600 } | |
| 601 | |
| 602 :where(zen-attachment, zen-item) small { | |
| 603 color: var(--zenbu-sys-color-text-secondary); | |
| 604 } | |
| 605 | |
| 606 :where(zen-attachment, zen-item) > button { | |
| 607 border: 0; | |
| 608 background: transparent; | |
| 609 color: inherit; | |
| 610 cursor: pointer; | |
| 611 } | |
| 612 | |
| 613 zen-avatar { | |
| 614 --zenbu-avatar-size: var(--zenbu-sys-control-height-md); | |
| 615 display: inline-grid; | |
| 616 width: var(--zenbu-avatar-size, 2.75rem); | |
| 617 height: var(--zenbu-avatar-size, 2.75rem); | |
| 618 overflow: hidden; | |
| 619 place-items: center; | |
| 620 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 621 border-radius: 50%; | |
| 622 background: var(--zenbu-sys-color-action-primary-background); | |
| 623 color: var(--zenbu-sys-color-action-primary-foreground); | |
| 624 font-weight: 900; | |
| 625 } | |
| 626 | |
| 627 zen-avatar > img { | |
| 628 width: 100%; | |
| 629 height: 100%; | |
| 630 object-fit: cover; | |
| 631 } | |
| 632 | |
| 633 zen-badge { | |
| 634 display: inline-flex; | |
| 635 align-items: center; | |
| 636 min-height: 1.75rem; | |
| 637 padding: 0 var(--zenbu-sys-space-related); | |
| 638 border: 1px solid var(--zenbu-sys-color-border-default); | |
| 639 border-radius: 999px; | |
| 640 background: var(--zenbu-sys-color-surface-default); | |
| 641 font-size: var(--zenbu-sys-font-size-xs); | |
| 642 font-weight: 850; | |
| 643 } | |
| 644 | |
| 645 zen-badge[tone="success"] { | |
| 646 background: var(--zenbu-sys-color-success-foreground); | |
| 647 color: var(--zenbu-sys-color-text-inverse); | |
| 648 } | |
| 649 | |
| 650 zen-badge[tone="danger"] { | |
| 651 background: var(--zenbu-sys-color-danger-foreground); | |
| 652 color: var(--zenbu-sys-color-text-inverse); | |
| 653 } | |
| 654 | |
| 655 :where(zen-breadcrumb, zen-pagination) nav { | |
| 656 display: flex; | |
| 657 align-items: center; | |
| 658 gap: var(--zenbu-sys-space-related); | |
| 659 } | |
| 660 | |
| 661 zen-breadcrumb ol { | |
| 662 display: flex; | |
| 663 flex-wrap: wrap; | |
| 664 align-items: center; | |
| 665 gap: var(--zenbu-sys-space-related); | |
| 666 margin: 0; | |
| 667 padding: 0; | |
| 668 list-style: none; | |
| 669 } | |
| 670 | |
| 671 zen-breadcrumb li:not(:last-child)::after { | |
| 672 margin-inline-start: var(--zenbu-sys-space-related); | |
| 673 color: var(--zenbu-sys-color-text-secondary); | |
| 674 content: "/"; | |
| 675 } | |
| 676 | |
| 677 :where(zen-breadcrumb, zen-pagination) a { | |
| 678 color: var(--zenbu-sys-color-info-foreground); | |
| 679 text-underline-offset: 0.2em; | |
| 680 } | |
| 681 | |
| 682 zen-bubble { | |
| 683 display: block; | |
| 684 width: fit-content; | |
| 685 max-width: min(42rem, 88%); | |
| 686 padding: var(--zenbu-sys-space-control) var(--zenbu-sys-space-group); | |
| 687 border-radius: var(--zenbu-sys-radius-container) var(--zenbu-sys-radius-container) | |
| 688 var(--zenbu-sys-radius-container) var(--zenbu-sys-radius-control-small); | |
| 689 background: var(--zenbu-sys-color-surface-raised); | |
| 690 box-shadow: var(--zenbu-sys-shadow-subtle); | |
| 691 } | |
| 692 | |
| 693 zen-bubble[align="end"] { | |
| 694 margin-inline-start: auto; | |
| 695 border-radius: var(--zenbu-sys-radius-container) var(--zenbu-sys-radius-container) | |
| 696 var(--zenbu-sys-radius-control-small) var(--zenbu-sys-radius-container); | |
| 697 background: var(--zenbu-sys-color-action-primary-background); | |
| 698 color: var(--zenbu-sys-color-action-primary-foreground); | |
| 699 } | |
| 700 | |
| 701 zen-bubble > :first-child { | |
| 702 margin-block-start: 0; | |
| 703 } | |
| 704 | |
| 705 zen-bubble > :last-child { | |
| 706 margin-block-end: 0; | |
| 707 } | |
| 708 | |
| 709 zen-button-group { | |
| 710 display: inline-flex; | |
| 711 } | |
| 712 | |
| 713 zen-button-group > :where(button, a) { | |
| 714 min-height: 2.5rem; | |
| 715 padding-inline: var(--zenbu-sys-space-control); | |
| 716 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 717 border-radius: 0; | |
| 718 background: var(--zenbu-sys-color-surface-default); | |
| 719 color: var(--zenbu-sys-color-text-primary); | |
| 720 font-weight: 750; | |
| 721 cursor: pointer; | |
| 722 } | |
| 723 | |
| 724 zen-button-group > :first-child { | |
| 725 border-radius: var(--zenbu-sys-radius-control) 0 0 var(--zenbu-sys-radius-control); | |
| 726 } | |
| 727 | |
| 728 zen-button-group > :last-child { | |
| 729 border-radius: 0 var(--zenbu-sys-radius-control) var(--zenbu-sys-radius-control) 0; | |
| 730 } | |
| 731 | |
| 732 zen-button-group > :not(:first-child) { | |
| 733 margin-inline-start: calc(-1 * var(--zenbu-sys-stroke-width-emphasis)); | |
| 734 } | |
| 735 | |
| 736 :where( | |
| 737 zen-calendar, | |
| 738 zen-date-picker, | |
| 739 zen-slider | |
| 740 ) { | |
| 741 display: grid; | |
| 742 gap: var(--zenbu-sys-space-related); | |
| 743 max-width: 22rem; | |
| 744 } | |
| 745 | |
| 746 :where( | |
| 747 zen-calendar, | |
| 748 zen-date-picker, | |
| 749 zen-input, | |
| 750 zen-input-group, | |
| 751 zen-input-otp, | |
| 752 zen-native-select, | |
| 753 zen-select, | |
| 754 zen-slider, | |
| 755 zen-textarea | |
| 756 ):not([appearance="plain"]) :where(input, select, textarea) { | |
| 757 appearance: none; | |
| 758 min-height: var(--zenbu-control-height); | |
| 759 box-sizing: border-box; | |
| 760 padding: | |
| 761 var(--zenbu-control-padding-block) | |
| 762 var(--zenbu-control-padding-inline); | |
| 763 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 764 border-radius: var(--zenbu-sys-radius-control); | |
| 765 background: var(--zenbu-sys-color-surface-default); | |
| 766 color: var(--zenbu-sys-color-text-primary); | |
| 767 font-family: inherit; | |
| 768 font-size: var(--zenbu-control-font-size); | |
| 769 line-height: var(--zenbu-control-line-height); | |
| 770 } | |
| 771 | |
| 772 :where( | |
| 773 zen-input, | |
| 774 zen-input-group, | |
| 775 zen-input-otp, | |
| 776 zen-native-select, | |
| 777 zen-select, | |
| 778 zen-textarea, | |
| 779 zen-calendar, | |
| 780 zen-date-picker | |
| 781 ):not([appearance="plain"]) :where(input, select, textarea), | |
| 782 zen-field:not([appearance="plain"]) > :where(input, select, textarea) { | |
| 783 appearance: none; | |
| 784 border-radius: var(--zenbu-sys-radius-control); | |
| 785 background: var(--zenbu-sys-color-surface-default); | |
| 786 color: var(--zenbu-sys-color-text-primary); | |
| 787 } | |
| 788 | |
| 789 :where(zen-native-select, zen-select) { | |
| 790 position: relative; | |
| 791 } | |
| 792 | |
| 793 :where(zen-native-select, zen-select) select { | |
| 794 width: 100%; | |
| 795 padding-inline-end: 2.75rem; | |
| 796 cursor: pointer; | |
| 797 } | |
| 798 | |
| 799 :where(zen-native-select, zen-select) > [data-zen-select-icon] { | |
| 800 position: absolute; | |
| 801 inset-inline-end: var(--zenbu-sys-space-control); | |
| 802 inset-block-end: 0.9rem; | |
| 803 pointer-events: none; | |
| 804 } | |
| 805 | |
| 806 :where( | |
| 807 zen-calendar, | |
| 808 zen-date-picker, | |
| 809 zen-input, | |
| 810 zen-native-select, | |
| 811 zen-select, | |
| 812 zen-textarea | |
| 813 ):not([appearance="plain"]) { | |
| 814 display: grid; | |
| 815 gap: var(--zenbu-sys-space-related); | |
| 816 } | |
| 817 | |
| 818 zen-textarea:not([appearance="plain"]) textarea { | |
| 819 width: 100%; | |
| 820 min-height: 8rem; | |
| 821 resize: vertical; | |
| 822 } | |
| 823 | |
| 824 :where( | |
| 825 zen-checkbox, | |
| 826 zen-input, | |
| 827 zen-native-select, | |
| 828 zen-radio-group, | |
| 829 zen-select, | |
| 830 zen-slider, | |
| 831 zen-switch, | |
| 832 zen-textarea | |
| 833 )[appearance="plain"] { | |
| 834 display: contents; | |
| 835 color: inherit; | |
| 836 font-family: inherit; | |
| 837 } | |
| 838 | |
| 839 :where(zen-calendar, zen-date-picker) > input[data-zen-calendar-input] { | |
| 840 position: absolute; | |
| 841 width: 1px; | |
| 842 height: 1px; | |
| 843 overflow: hidden; | |
| 844 clip-path: inset(50%); | |
| 845 pointer-events: none; | |
| 846 } | |
| 847 | |
| 848 :where(zen-calendar, zen-date-picker) [data-zen-generated="calendar"] { | |
| 849 display: grid; | |
| 850 gap: var(--zenbu-sys-space-related); | |
| 851 } | |
| 852 | |
| 853 zen-date-picker [data-zen-generated="calendar"] { | |
| 854 position: relative; | |
| 855 } | |
| 856 | |
| 857 :where(zen-calendar, zen-date-picker) :where( | |
| 858 [data-zen-date-trigger], | |
| 859 [data-zen-calendar-previous], | |
| 860 [data-zen-calendar-next], | |
| 861 [data-zen-calendar-day] | |
| 862 ) { | |
| 863 appearance: none; | |
| 864 border: 0; | |
| 865 background: transparent; | |
| 866 color: var(--zenbu-sys-color-text-primary); | |
| 867 font: inherit; | |
| 868 cursor: pointer; | |
| 869 } | |
| 870 | |
| 871 zen-date-picker [data-zen-date-trigger] { | |
| 872 display: inline-flex; | |
| 873 min-height: var(--zenbu-control-height); | |
| 874 align-items: center; | |
| 875 gap: var(--zenbu-control-gap); | |
| 876 justify-content: flex-start; | |
| 877 padding: | |
| 878 var(--zenbu-control-padding-block) | |
| 879 var(--zenbu-control-padding-inline); | |
| 880 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 881 border-radius: var(--zenbu-sys-radius-control); | |
| 882 box-shadow: var(--zenbu-sys-shadow-subtle); | |
| 883 background: var(--zenbu-sys-color-surface-default); | |
| 884 } | |
| 885 | |
| 886 zen-date-picker[data-invalid] [data-zen-date-trigger], | |
| 887 zen-calendar[data-invalid] [data-zen-calendar-view] { | |
| 888 border-color: var(--zenbu-sys-color-danger-foreground); | |
| 889 } | |
| 890 | |
| 891 zen-date-picker [data-zen-calendar-panel] { | |
| 892 position: absolute; | |
| 893 z-index: 40; | |
| 894 inset-block-start: calc(100% + var(--zenbu-sys-space-related)); | |
| 895 inset-inline-start: 0; | |
| 896 width: min(21rem, calc(100vi - 2rem)); | |
| 897 padding: var(--zenbu-sys-space-control); | |
| 898 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 899 border-radius: var(--zenbu-sys-radius-container); | |
| 900 box-shadow: var(--zenbu-sys-shadow-raised); | |
| 901 background: var(--zenbu-sys-color-surface-raised); | |
| 902 transform-origin: top left; | |
| 903 animation: zen-calendar-open 160ms ease-out; | |
| 904 } | |
| 905 | |
| 906 zen-date-picker [data-zen-calendar-panel][hidden] { | |
| 907 display: none; | |
| 908 } | |
| 909 | |
| 910 :where(zen-calendar, zen-date-picker) [data-zen-calendar-view] { | |
| 911 display: grid; | |
| 912 gap: var(--zenbu-sys-space-related); | |
| 913 padding: var(--zenbu-sys-space-control); | |
| 914 border: 1px solid var(--zenbu-sys-color-border-subtle); | |
| 915 border-radius: var(--zenbu-sys-radius-container); | |
| 916 background: var(--zenbu-sys-color-surface-default); | |
| 917 } | |
| 918 | |
| 919 zen-date-picker [data-zen-calendar-view] { | |
| 920 padding: 0; | |
| 921 border: 0; | |
| 922 } | |
| 923 | |
| 924 :where(zen-calendar, zen-date-picker) [data-zen-calendar-view] > header { | |
| 925 display: grid; | |
| 926 grid-template-columns: 2.5rem minmax(0, 1fr) 2.5rem; | |
| 927 align-items: center; | |
| 928 gap: var(--zenbu-sys-space-related); | |
| 929 text-align: center; | |
| 930 } | |
| 931 | |
| 932 :where(zen-calendar, zen-date-picker) :where( | |
| 933 [data-zen-calendar-previous], | |
| 934 [data-zen-calendar-next] | |
| 935 ) { | |
| 936 display: grid; | |
| 937 width: 2.5rem; | |
| 938 height: 2.5rem; | |
| 939 place-items: center; | |
| 940 border: 1px solid var(--zenbu-sys-color-border-subtle); | |
| 941 border-radius: 50%; | |
| 942 } | |
| 943 | |
| 944 :where(zen-calendar, zen-date-picker) :where( | |
| 945 [data-zen-calendar-previous], | |
| 946 [data-zen-calendar-next] | |
| 947 ):hover { | |
| 948 background: var(--zenbu-sys-color-action-neutral-background-hover); | |
| 949 } | |
| 950 | |
| 951 :where(zen-calendar, zen-date-picker) [data-zen-calendar-weekdays], | |
| 952 :where(zen-calendar, zen-date-picker) [data-zen-calendar-grid] > [role="row"] { | |
| 953 display: grid; | |
| 954 grid-template-columns: repeat(7, minmax(2rem, 1fr)); | |
| 955 gap: var(--zenbu-sys-space-icon-label); | |
| 956 } | |
| 957 | |
| 958 :where(zen-calendar, zen-date-picker) [data-zen-calendar-weekdays] > span { | |
| 959 padding-block: var(--zenbu-sys-space-icon-label); | |
| 960 color: var(--zenbu-sys-color-text-secondary); | |
| 961 font-size: var(--zenbu-sys-font-size-xs); | |
| 962 font-weight: 800; | |
| 963 text-align: center; | |
| 964 } | |
| 965 | |
| 966 :where(zen-calendar, zen-date-picker) [data-zen-calendar-grid] { | |
| 967 display: grid; | |
| 968 gap: var(--zenbu-sys-space-icon-label); | |
| 969 } | |
| 970 | |
| 971 :where(zen-calendar, zen-date-picker) [data-zen-calendar-day] { | |
| 972 aspect-ratio: 1; | |
| 973 min-width: 2rem; | |
| 974 border-radius: 50%; | |
| 975 font-size: var(--zenbu-sys-font-size-sm); | |
| 976 } | |
| 977 | |
| 978 :where(zen-calendar, zen-date-picker) [data-zen-calendar-day]:hover { | |
| 979 background: var(--zenbu-sys-color-action-neutral-background-hover); | |
| 980 } | |
| 981 | |
| 982 :where(zen-calendar, zen-date-picker) [data-zen-calendar-day][data-outside] { | |
| 983 color: var(--zenbu-sys-color-text-tertiary); | |
| 984 opacity: 0.55; | |
| 985 } | |
| 986 | |
| 987 :where(zen-calendar, zen-date-picker) [data-zen-calendar-day][data-today] { | |
| 988 outline: 1px solid var(--zenbu-sys-color-info-foreground); | |
| 989 outline-offset: -2px; | |
| 990 } | |
| 991 | |
| 992 :where(zen-calendar, zen-date-picker) [data-zen-calendar-day][aria-selected="true"] { | |
| 993 background: var(--zenbu-sys-color-action-primary-background); | |
| 994 color: var(--zenbu-sys-color-action-primary-foreground); | |
| 995 font-weight: 900; | |
| 996 } | |
| 997 | |
| 998 :where(zen-calendar, zen-date-picker) [data-zen-calendar-day]:disabled { | |
| 999 color: var(--zenbu-sys-color-text-disabled); | |
| 1000 cursor: not-allowed; | |
| 1001 } | |
| 1002 | |
| 1003 @keyframes zen-calendar-open { | |
| 1004 from { | |
| 1005 opacity: 0; | |
| 1006 transform: translateY(calc(-1 * var(--zenbu-sys-space-icon-label))) scale(0.98); | |
| 1007 } | |
| 1008 } | |
| 1009 | |
| 1010 @keyframes zen-paw-step { | |
| 1011 from { | |
| 1012 opacity: 0; | |
| 1013 transform: scale(0); | |
| 1014 } | |
| 1015 to { | |
| 1016 opacity: 1; | |
| 1017 transform: scale(1); | |
| 1018 } | |
| 1019 } | |
| 1020 | |
| 1021 @keyframes zen-paw-wiggle { | |
| 1022 0%, | |
| 1023 100% { | |
| 1024 transform: rotate(-15deg); | |
| 1025 } | |
| 1026 50% { | |
| 1027 transform: rotate(15deg); | |
| 1028 } | |
| 1029 } | |
| 1030 | |
| 1031 @keyframes zen-surface-open { | |
| 1032 from { | |
| 1033 opacity: 0; | |
| 1034 transform: translateY(calc(-1 * var(--zenbu-sys-space-icon-label))) scale(0.98); | |
| 1035 } | |
| 1036 } | |
| 1037 | |
| 1038 @media print { | |
| 1039 zen-link[effect="paw"] > a > [data-zen-link-decoration] { | |
| 1040 display: none; | |
| 1041 } | |
| 1042 } | |
| 1043 | |
| 1044 zen-input-group { | |
| 1045 display: flex; | |
| 1046 align-items: stretch; | |
| 1047 width: min(100%, 36rem); | |
| 1048 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1049 border-radius: var(--zenbu-sys-radius-control); | |
| 1050 background: var(--zenbu-sys-color-surface-default); | |
| 1051 } | |
| 1052 | |
| 1053 zen-input-group > :where(span, button) { | |
| 1054 display: inline-flex; | |
| 1055 align-items: center; | |
| 1056 padding-inline: var(--zenbu-sys-space-control); | |
| 1057 } | |
| 1058 | |
| 1059 zen-input-group input { | |
| 1060 min-width: 0; | |
| 1061 flex: 1; | |
| 1062 border: 0; | |
| 1063 border-radius: 0; | |
| 1064 } | |
| 1065 | |
| 1066 zen-input-group button { | |
| 1067 min-height: auto; | |
| 1068 border-width: 0 0 0 var(--zenbu-sys-stroke-width-emphasis); | |
| 1069 border-radius: 0 var(--zenbu-sys-radius-control-small) var(--zenbu-sys-radius-control-small) 0; | |
| 1070 box-shadow: none; | |
| 1071 } | |
| 1072 | |
| 1073 zen-carousel { | |
| 1074 position: relative; | |
| 1075 display: grid; | |
| 1076 grid-template-columns: auto minmax(0, 1fr) auto; | |
| 1077 align-items: center; | |
| 1078 gap: var(--zenbu-sys-space-related); | |
| 1079 } | |
| 1080 | |
| 1081 zen-carousel [data-zen-viewport] { | |
| 1082 display: flex; | |
| 1083 grid-column: 1 / -1; | |
| 1084 gap: var(--zenbu-sys-space-control); | |
| 1085 overflow: auto; | |
| 1086 scroll-snap-type: inline mandatory; | |
| 1087 scrollbar-width: none; | |
| 1088 } | |
| 1089 | |
| 1090 zen-carousel [data-zen-viewport] > * { | |
| 1091 min-width: min(22rem, 82vi); | |
| 1092 min-height: 9rem; | |
| 1093 padding: var(--zenbu-sys-space-container); | |
| 1094 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1095 border-radius: var(--zenbu-sys-radius-container); | |
| 1096 background: var(--zenbu-sys-color-surface-raised); | |
| 1097 scroll-snap-align: start; | |
| 1098 } | |
| 1099 | |
| 1100 zen-carousel :where([data-zen-prev], [data-zen-next]) { | |
| 1101 width: 2.5rem; | |
| 1102 height: 2.5rem; | |
| 1103 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1104 border-radius: 50%; | |
| 1105 background: var(--zenbu-sys-color-surface-default); | |
| 1106 color: var(--zenbu-sys-color-text-primary); | |
| 1107 cursor: pointer; | |
| 1108 } | |
| 1109 | |
| 1110 zen-carousel [data-zen-prev] { | |
| 1111 grid-column: 1; | |
| 1112 } | |
| 1113 | |
| 1114 zen-carousel [data-zen-next] { | |
| 1115 grid-column: 3; | |
| 1116 } | |
| 1117 | |
| 1118 zen-chart { | |
| 1119 display: block; | |
| 1120 min-height: 15rem; | |
| 1121 padding: var(--zenbu-sys-space-group); | |
| 1122 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1123 border-radius: var(--zenbu-sys-radius-container); | |
| 1124 background: var(--zenbu-sys-color-surface-default); | |
| 1125 } | |
| 1126 | |
| 1127 zen-chart [data-zen-chart-plot] { | |
| 1128 display: flex; | |
| 1129 height: 12rem; | |
| 1130 align-items: end; | |
| 1131 justify-content: space-around; | |
| 1132 gap: var(--zenbu-sys-space-control); | |
| 1133 border-block-end: 1px solid var(--zenbu-sys-color-border-default); | |
| 1134 } | |
| 1135 | |
| 1136 zen-chart [data-zen-chart-plot] > span { | |
| 1137 --zenbu-chart-value: 0%; | |
| 1138 position: relative; | |
| 1139 width: min(3rem, 15%); | |
| 1140 height: var(--zenbu-chart-value); | |
| 1141 min-height: 1rem; | |
| 1142 border-radius: var(--zenbu-sys-radius-control-small) var(--zenbu-sys-radius-control-small) 0 0; | |
| 1143 background: var(--zenbu-sys-color-data-1); | |
| 1144 } | |
| 1145 | |
| 1146 zen-chart [data-zen-chart-plot] > span:nth-child(2) { | |
| 1147 background: var(--zenbu-sys-color-data-2); | |
| 1148 } | |
| 1149 | |
| 1150 zen-chart [data-zen-chart-plot] > span:nth-child(3) { | |
| 1151 background: var(--zenbu-sys-color-data-3); | |
| 1152 } | |
| 1153 | |
| 1154 zen-chart [data-zen-chart-plot] > span:nth-child(4) { | |
| 1155 background: var(--zenbu-sys-color-data-4); | |
| 1156 } | |
| 1157 | |
| 1158 zen-chart [data-zen-chart-plot] > span:nth-child(5) { | |
| 1159 background: var(--zenbu-sys-color-data-5); | |
| 1160 } | |
| 1161 | |
| 1162 zen-chart [data-zen-chart-plot] > span::after { | |
| 1163 position: absolute; | |
| 1164 inset-block-start: 100%; | |
| 1165 inset-inline-start: 50%; | |
| 1166 padding-block-start: var(--zenbu-sys-space-icon-label); | |
| 1167 color: var(--zenbu-sys-color-text-secondary); | |
| 1168 content: attr(data-label); | |
| 1169 font-size: var(--zenbu-sys-font-size-xs); | |
| 1170 transform: translateX(-50%); | |
| 1171 } | |
| 1172 | |
| 1173 :where( | |
| 1174 zen-checkbox:not([appearance="plain"]), | |
| 1175 zen-switch:not([appearance="plain"]) | |
| 1176 ) label, | |
| 1177 zen-radio-group:not([appearance="plain"]) label { | |
| 1178 display: flex; | |
| 1179 align-items: center; | |
| 1180 gap: var(--zenbu-sys-space-related); | |
| 1181 width: fit-content; | |
| 1182 cursor: pointer; | |
| 1183 } | |
| 1184 | |
| 1185 :where( | |
| 1186 zen-checkbox:not([appearance="plain"]), | |
| 1187 zen-radio-group:not([appearance="plain"]) | |
| 1188 ) input { | |
| 1189 appearance: none; | |
| 1190 display: inline-grid; | |
| 1191 width: 1.2rem; | |
| 1192 height: 1.2rem; | |
| 1193 flex: 0 0 auto; | |
| 1194 place-content: center; | |
| 1195 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1196 background: var(--zenbu-sys-color-surface-default); | |
| 1197 cursor: pointer; | |
| 1198 } | |
| 1199 | |
| 1200 zen-checkbox:not([appearance="plain"]) input { | |
| 1201 border-radius: var(--zenbu-sys-radius-control-small); | |
| 1202 } | |
| 1203 | |
| 1204 zen-checkbox:not([appearance="plain"]) input::before { | |
| 1205 width: 0.55rem; | |
| 1206 height: 0.3rem; | |
| 1207 border-block-end: 2px solid var(--zenbu-sys-color-action-primary-foreground); | |
| 1208 border-inline-start: 2px solid var(--zenbu-sys-color-action-primary-foreground); | |
| 1209 content: ""; | |
| 1210 opacity: 0; | |
| 1211 transform: translateY(-0.08rem) rotate(-45deg); | |
| 1212 } | |
| 1213 | |
| 1214 zen-checkbox:not([appearance="plain"]) input:checked { | |
| 1215 background: var(--zenbu-sys-color-action-primary-background); | |
| 1216 } | |
| 1217 | |
| 1218 zen-checkbox:not([appearance="plain"]) input:checked::before { | |
| 1219 opacity: 1; | |
| 1220 } | |
| 1221 | |
| 1222 zen-radio-group:not([appearance="plain"]) input { | |
| 1223 border-radius: 50%; | |
| 1224 } | |
| 1225 | |
| 1226 zen-radio-group:not([appearance="plain"]) input::before { | |
| 1227 width: 0.55rem; | |
| 1228 height: 0.55rem; | |
| 1229 border-radius: 50%; | |
| 1230 background: var(--zenbu-sys-color-info-foreground); | |
| 1231 content: ""; | |
| 1232 opacity: 0; | |
| 1233 } | |
| 1234 | |
| 1235 zen-radio-group:not([appearance="plain"]) input:checked::before { | |
| 1236 opacity: 1; | |
| 1237 } | |
| 1238 | |
| 1239 zen-radio-group:not([appearance="plain"]) fieldset { | |
| 1240 display: grid; | |
| 1241 gap: var(--zenbu-sys-space-related); | |
| 1242 padding: var(--zenbu-sys-space-group); | |
| 1243 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1244 border-radius: var(--zenbu-sys-radius-control); | |
| 1245 } | |
| 1246 | |
| 1247 zen-switch:not([appearance="plain"]) input { | |
| 1248 appearance: none; | |
| 1249 width: 2.75rem; | |
| 1250 height: 1.5rem; | |
| 1251 margin: 0; | |
| 1252 padding: 2px; | |
| 1253 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1254 border-radius: 999px; | |
| 1255 background: var(--zenbu-sys-color-surface-default); | |
| 1256 cursor: pointer; | |
| 1257 transition: background var(--zenbu-sys-motion-duration-feedback) ease; | |
| 1258 } | |
| 1259 | |
| 1260 zen-switch:not([appearance="plain"]) input::before { | |
| 1261 display: block; | |
| 1262 width: 1rem; | |
| 1263 height: 1rem; | |
| 1264 border-radius: 50%; | |
| 1265 background: var(--zenbu-sys-color-border-default); | |
| 1266 content: ""; | |
| 1267 transition: transform var(--zenbu-sys-motion-duration-feedback) ease; | |
| 1268 } | |
| 1269 | |
| 1270 zen-switch:not([appearance="plain"]) input:checked { | |
| 1271 background: var(--zenbu-sys-color-success-foreground); | |
| 1272 } | |
| 1273 | |
| 1274 zen-switch:not([appearance="plain"]) input:checked::before { | |
| 1275 background: var(--zenbu-sys-color-text-inverse); | |
| 1276 transform: translateX(1.2rem); | |
| 1277 } | |
| 1278 | |
| 1279 :where(zen-combobox, zen-command) { | |
| 1280 position: relative; | |
| 1281 display: grid; | |
| 1282 width: min(100%, 28rem); | |
| 1283 gap: var(--zenbu-sys-space-related); | |
| 1284 } | |
| 1285 | |
| 1286 :where(zen-combobox, zen-command) > input { | |
| 1287 min-height: var(--zenbu-control-height); | |
| 1288 padding: | |
| 1289 var(--zenbu-control-padding-block) | |
| 1290 var(--zenbu-control-padding-inline); | |
| 1291 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1292 border-radius: var(--zenbu-sys-radius-control); | |
| 1293 background: var(--zenbu-sys-color-surface-default); | |
| 1294 color: var(--zenbu-sys-color-text-primary); | |
| 1295 } | |
| 1296 | |
| 1297 :where( | |
| 1298 zen-combobox, | |
| 1299 zen-command, | |
| 1300 zen-context-menu, | |
| 1301 zen-dropdown-menu, | |
| 1302 zen-menubar, | |
| 1303 zen-navigation-menu | |
| 1304 ) :where([role="listbox"], [role="menu"]) { | |
| 1305 z-index: 20; | |
| 1306 display: grid; | |
| 1307 min-width: 12rem; | |
| 1308 padding: var(--zenbu-sys-space-icon-label); | |
| 1309 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1310 border-radius: var(--zenbu-sys-radius-control); | |
| 1311 box-shadow: var(--zenbu-sys-shadow-raised); | |
| 1312 background: var(--zenbu-sys-color-surface-raised); | |
| 1313 } | |
| 1314 | |
| 1315 :where( | |
| 1316 zen-combobox, | |
| 1317 zen-command, | |
| 1318 zen-context-menu, | |
| 1319 zen-dropdown-menu, | |
| 1320 zen-menubar, | |
| 1321 zen-navigation-menu | |
| 1322 ) :where([role="listbox"], [role="menu"])[hidden] { | |
| 1323 display: none; | |
| 1324 } | |
| 1325 | |
| 1326 :where( | |
| 1327 zen-combobox, | |
| 1328 zen-command, | |
| 1329 zen-context-menu, | |
| 1330 zen-dropdown-menu, | |
| 1331 zen-menubar, | |
| 1332 zen-navigation-menu | |
| 1333 ) :where([role="option"], [role="menuitem"]) { | |
| 1334 display: block; | |
| 1335 width: 100%; | |
| 1336 padding: var(--zenbu-sys-space-related) var(--zenbu-sys-space-control); | |
| 1337 border: 0; | |
| 1338 border-radius: var(--zenbu-sys-radius-control-small); | |
| 1339 background: transparent; | |
| 1340 color: var(--zenbu-sys-color-text-primary); | |
| 1341 text-align: start; | |
| 1342 text-decoration: none; | |
| 1343 cursor: pointer; | |
| 1344 } | |
| 1345 | |
| 1346 :where( | |
| 1347 zen-combobox, | |
| 1348 zen-command, | |
| 1349 zen-context-menu, | |
| 1350 zen-dropdown-menu, | |
| 1351 zen-menubar, | |
| 1352 zen-navigation-menu | |
| 1353 ) :where([role="option"], [role="menuitem"]):is( | |
| 1354 :hover, | |
| 1355 :focus, | |
| 1356 [aria-selected="true"] | |
| 1357 ) { | |
| 1358 outline: none; | |
| 1359 background: var(--zenbu-sys-color-action-primary-background); | |
| 1360 color: var(--zenbu-sys-color-action-primary-foreground); | |
| 1361 } | |
| 1362 | |
| 1363 :where( | |
| 1364 zen-context-menu, | |
| 1365 zen-dropdown-menu, | |
| 1366 zen-navigation-menu | |
| 1367 ) { | |
| 1368 position: relative; | |
| 1369 display: inline-block; | |
| 1370 } | |
| 1371 | |
| 1372 zen-context-menu > [data-zen-trigger] { | |
| 1373 min-height: 8rem; | |
| 1374 padding: var(--zenbu-sys-space-container); | |
| 1375 border: 2px dashed var(--zenbu-sys-color-border-default); | |
| 1376 border-radius: var(--zenbu-sys-radius-container); | |
| 1377 background: var(--zenbu-sys-color-surface-default); | |
| 1378 } | |
| 1379 | |
| 1380 :where( | |
| 1381 zen-dropdown-menu, | |
| 1382 zen-navigation-menu | |
| 1383 ) > [role="menu"], | |
| 1384 zen-navigation-menu nav > [role="menu"] { | |
| 1385 position: absolute; | |
| 1386 inset-block-start: calc(100% + var(--zenbu-sys-space-related)); | |
| 1387 inset-inline-start: 0; | |
| 1388 } | |
| 1389 | |
| 1390 zen-context-menu > [role="menu"] { | |
| 1391 position: fixed; | |
| 1392 } | |
| 1393 | |
| 1394 zen-menubar { | |
| 1395 position: relative; | |
| 1396 display: flex; | |
| 1397 width: fit-content; | |
| 1398 padding: var(--zenbu-sys-space-icon-label); | |
| 1399 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1400 border-radius: var(--zenbu-sys-radius-control); | |
| 1401 background: var(--zenbu-sys-color-surface-default); | |
| 1402 } | |
| 1403 | |
| 1404 zen-menubar > [data-zen-trigger] { | |
| 1405 border: 0; | |
| 1406 box-shadow: none; | |
| 1407 background: transparent; | |
| 1408 color: var(--zenbu-sys-color-text-primary); | |
| 1409 } | |
| 1410 | |
| 1411 zen-menubar > [role="menu"] { | |
| 1412 position: absolute; | |
| 1413 inset-block-start: calc(100% + var(--zenbu-sys-space-icon-label)); | |
| 1414 } | |
| 1415 | |
| 1416 zen-data-table, | |
| 1417 zen-table { | |
| 1418 display: block; | |
| 1419 max-width: 100%; | |
| 1420 overflow: auto; | |
| 1421 } | |
| 1422 | |
| 1423 :where(zen-data-table, zen-table) table { | |
| 1424 width: 100%; | |
| 1425 border-collapse: collapse; | |
| 1426 background: var(--zenbu-sys-color-surface-default); | |
| 1427 } | |
| 1428 | |
| 1429 :where(zen-data-table, zen-table) :where(th, td) { | |
| 1430 padding: var(--zenbu-sys-space-control); | |
| 1431 border-block-end: 1px solid color-mix( | |
| 1432 in srgb, | |
| 1433 var(--zenbu-sys-color-border-default) 30%, | |
| 1434 transparent | |
| 1435 ); | |
| 1436 text-align: start; | |
| 1437 } | |
| 1438 | |
| 1439 :where(zen-data-table, zen-table) th { | |
| 1440 font-size: var(--zenbu-sys-font-size-sm); | |
| 1441 } | |
| 1442 | |
| 1443 zen-data-table [data-zen-sort] { | |
| 1444 padding: 0; | |
| 1445 border: 0; | |
| 1446 background: transparent; | |
| 1447 color: inherit; | |
| 1448 font-weight: 850; | |
| 1449 cursor: pointer; | |
| 1450 } | |
| 1451 | |
| 1452 zen-direction { | |
| 1453 display: contents; | |
| 1454 } | |
| 1455 | |
| 1456 zen-empty { | |
| 1457 display: grid; | |
| 1458 justify-items: center; | |
| 1459 gap: var(--zenbu-sys-space-related); | |
| 1460 padding: var(--zenbu-sys-space-section) var(--zenbu-sys-space-container); | |
| 1461 border: var(--zenbu-sys-stroke-width-emphasis) dashed var(--zenbu-sys-color-border-default); | |
| 1462 border-radius: var(--zenbu-sys-radius-container); | |
| 1463 background: var(--zenbu-sys-color-surface-default); | |
| 1464 text-align: center; | |
| 1465 } | |
| 1466 | |
| 1467 zen-empty > p { | |
| 1468 max-width: 34rem; | |
| 1469 margin: 0; | |
| 1470 color: var(--zenbu-sys-color-text-secondary); | |
| 1471 } | |
| 1472 | |
| 1473 zen-form form { | |
| 1474 display: grid; | |
| 1475 max-width: 34rem; | |
| 1476 gap: var(--zenbu-sys-space-group); | |
| 1477 } | |
| 1478 | |
| 1479 zen-form[data-invalid] form { | |
| 1480 padding-inline-start: var(--zenbu-sys-space-control); | |
| 1481 border-inline-start: 0.35rem solid var(--zenbu-sys-color-danger-foreground); | |
| 1482 } | |
| 1483 | |
| 1484 :where(zen-hover-card, zen-tooltip, zen-popover) { | |
| 1485 position: relative; | |
| 1486 display: inline-block; | |
| 1487 } | |
| 1488 | |
| 1489 :where(zen-hover-card, zen-tooltip, zen-popover) [data-zen-content] { | |
| 1490 position: absolute; | |
| 1491 z-index: 30; | |
| 1492 inset-block-start: calc(100% + var(--zenbu-sys-space-related)); | |
| 1493 inset-inline-start: 0; | |
| 1494 width: max-content; | |
| 1495 max-width: min(22rem, calc(100vi - 2rem)); | |
| 1496 padding: var(--zenbu-sys-space-control); | |
| 1497 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1498 border-radius: var(--zenbu-sys-radius-control); | |
| 1499 box-shadow: var(--zenbu-sys-shadow-raised); | |
| 1500 background: var(--zenbu-sys-color-surface-raised); | |
| 1501 color: var(--zenbu-sys-color-text-primary); | |
| 1502 } | |
| 1503 | |
| 1504 :where(zen-hover-card, zen-tooltip, zen-popover) [data-zen-content][hidden] { | |
| 1505 display: none; | |
| 1506 } | |
| 1507 | |
| 1508 zen-tooltip [data-zen-content] { | |
| 1509 padding: var(--zenbu-sys-space-icon-label) var(--zenbu-sys-space-related); | |
| 1510 background: var(--zenbu-sys-color-border-default); | |
| 1511 color: var(--zenbu-sys-color-surface-default); | |
| 1512 font-size: var(--zenbu-sys-font-size-xs); | |
| 1513 } | |
| 1514 | |
| 1515 zen-input-otp [data-zen-otp-slots] { | |
| 1516 display: flex; | |
| 1517 gap: var(--zenbu-control-gap); | |
| 1518 } | |
| 1519 | |
| 1520 zen-input-otp [data-zen-otp-slots] > span { | |
| 1521 display: grid; | |
| 1522 width: var(--zenbu-control-height); | |
| 1523 height: var(--zenbu-control-height); | |
| 1524 place-items: center; | |
| 1525 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1526 border-radius: var(--zenbu-sys-radius-control-small); | |
| 1527 background: var(--zenbu-sys-color-surface-default); | |
| 1528 font-size: var(--zenbu-control-font-size); | |
| 1529 font-weight: var(--zenbu-sys-font-weight-strong); | |
| 1530 } | |
| 1531 | |
| 1532 zen-item { | |
| 1533 display: grid; | |
| 1534 grid-template-columns: auto minmax(0, 1fr) auto; | |
| 1535 align-items: center; | |
| 1536 gap: var(--zenbu-sys-space-control); | |
| 1537 padding: var(--zenbu-sys-space-control); | |
| 1538 border-block-end: 1px solid color-mix( | |
| 1539 in srgb, | |
| 1540 var(--zenbu-sys-color-border-default) 28%, | |
| 1541 transparent | |
| 1542 ); | |
| 1543 } | |
| 1544 | |
| 1545 zen-kbd { | |
| 1546 display: inline-flex; | |
| 1547 align-items: center; | |
| 1548 gap: var(--zenbu-sys-space-icon-label); | |
| 1549 } | |
| 1550 | |
| 1551 zen-kbd kbd { | |
| 1552 min-width: 1.75rem; | |
| 1553 padding: 0.1rem var(--zenbu-sys-space-icon-label); | |
| 1554 border: 1px solid var(--zenbu-sys-color-border-default); | |
| 1555 border-block-end-width: 3px; | |
| 1556 border-radius: var(--zenbu-sys-radius-control-small); | |
| 1557 background: var(--zenbu-sys-color-surface-default); | |
| 1558 font: 700 var(--zenbu-sys-font-size-xs)/1.5 var(--zenbu-sys-font-family-code); | |
| 1559 text-align: center; | |
| 1560 } | |
| 1561 | |
| 1562 zen-label { | |
| 1563 display: block; | |
| 1564 margin-block-end: var(--zenbu-sys-space-related); | |
| 1565 font-weight: 800; | |
| 1566 } | |
| 1567 | |
| 1568 zen-marker { | |
| 1569 display: flex; | |
| 1570 align-items: center; | |
| 1571 gap: var(--zenbu-sys-space-related); | |
| 1572 color: var(--zenbu-sys-color-text-secondary); | |
| 1573 font-size: var(--zenbu-sys-font-size-xs); | |
| 1574 text-transform: uppercase; | |
| 1575 } | |
| 1576 | |
| 1577 zen-marker::before, | |
| 1578 zen-marker::after { | |
| 1579 height: 1px; | |
| 1580 flex: 1; | |
| 1581 background: color-mix( | |
| 1582 in srgb, | |
| 1583 var(--zenbu-sys-color-border-default) 32%, | |
| 1584 transparent | |
| 1585 ); | |
| 1586 content: ""; | |
| 1587 } | |
| 1588 | |
| 1589 zen-message { | |
| 1590 display: grid; | |
| 1591 grid-template-columns: auto minmax(0, 1fr); | |
| 1592 align-items: start; | |
| 1593 gap: var(--zenbu-sys-space-control); | |
| 1594 } | |
| 1595 | |
| 1596 zen-message > div { | |
| 1597 display: grid; | |
| 1598 gap: var(--zenbu-sys-space-icon-label); | |
| 1599 } | |
| 1600 | |
| 1601 zen-message-scroller { | |
| 1602 position: relative; | |
| 1603 display: block; | |
| 1604 } | |
| 1605 | |
| 1606 zen-message-scroller [data-zen-viewport] { | |
| 1607 max-height: 12rem; | |
| 1608 overflow: auto; | |
| 1609 padding: var(--zenbu-sys-space-control); | |
| 1610 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1611 border-radius: var(--zenbu-sys-radius-control); | |
| 1612 background: var(--zenbu-sys-color-surface-default); | |
| 1613 } | |
| 1614 | |
| 1615 zen-message-scroller [data-zen-scroll-end] { | |
| 1616 position: absolute; | |
| 1617 inset-inline-end: var(--zenbu-sys-space-control); | |
| 1618 inset-block-end: var(--zenbu-sys-space-control); | |
| 1619 } | |
| 1620 | |
| 1621 zen-navigation-menu nav { | |
| 1622 display: flex; | |
| 1623 align-items: center; | |
| 1624 gap: var(--zenbu-sys-space-control); | |
| 1625 } | |
| 1626 | |
| 1627 zen-pagination nav { | |
| 1628 flex-wrap: wrap; | |
| 1629 } | |
| 1630 | |
| 1631 zen-pagination a { | |
| 1632 display: inline-grid; | |
| 1633 min-width: 2.35rem; | |
| 1634 min-height: 2.35rem; | |
| 1635 place-items: center; | |
| 1636 padding-inline: var(--zenbu-sys-space-related); | |
| 1637 border: 1px solid transparent; | |
| 1638 border-radius: var(--zenbu-sys-radius-control-small); | |
| 1639 text-decoration: none; | |
| 1640 } | |
| 1641 | |
| 1642 zen-pagination a[aria-current] { | |
| 1643 border-color: var(--zenbu-sys-color-border-default); | |
| 1644 background: var(--zenbu-sys-color-action-primary-background); | |
| 1645 color: var(--zenbu-sys-color-action-primary-foreground); | |
| 1646 } | |
| 1647 | |
| 1648 zen-progress { | |
| 1649 display: grid; | |
| 1650 gap: var(--zenbu-sys-space-related); | |
| 1651 } | |
| 1652 | |
| 1653 zen-progress progress { | |
| 1654 appearance: none; | |
| 1655 width: 100%; | |
| 1656 height: 0.75rem; | |
| 1657 overflow: hidden; | |
| 1658 border: 0; | |
| 1659 border-radius: 999px; | |
| 1660 accent-color: var(--zenbu-sys-color-success-foreground); | |
| 1661 background: var(--zenbu-sys-color-surface-default); | |
| 1662 } | |
| 1663 | |
| 1664 zen-progress progress::-webkit-progress-bar { | |
| 1665 background: var(--zenbu-sys-color-surface-subtle); | |
| 1666 } | |
| 1667 | |
| 1668 zen-progress progress::-webkit-progress-value { | |
| 1669 background: var(--zenbu-sys-color-success-foreground); | |
| 1670 } | |
| 1671 | |
| 1672 zen-progress progress::-moz-progress-bar { | |
| 1673 background: var(--zenbu-sys-color-success-foreground); | |
| 1674 } | |
| 1675 | |
| 1676 zen-resizable { | |
| 1677 display: flex; | |
| 1678 min-height: 12rem; | |
| 1679 overflow: hidden; | |
| 1680 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1681 border-radius: var(--zenbu-sys-radius-container); | |
| 1682 } | |
| 1683 | |
| 1684 zen-resizable [data-zen-panel] { | |
| 1685 min-width: 0; | |
| 1686 flex: 1 1 50%; | |
| 1687 padding: var(--zenbu-sys-space-group); | |
| 1688 background: var(--zenbu-sys-color-surface-default); | |
| 1689 } | |
| 1690 | |
| 1691 zen-resizable [data-zen-handle] { | |
| 1692 width: 0.65rem; | |
| 1693 flex: 0 0 0.65rem; | |
| 1694 border-inline: 1px solid var(--zenbu-sys-color-border-default); | |
| 1695 background: var(--zenbu-sys-color-action-primary-background); | |
| 1696 cursor: col-resize; | |
| 1697 } | |
| 1698 | |
| 1699 zen-scroll-area { | |
| 1700 display: block; | |
| 1701 max-height: 10rem; | |
| 1702 overflow: auto; | |
| 1703 padding: var(--zenbu-sys-space-control); | |
| 1704 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1705 border-radius: var(--zenbu-sys-radius-control); | |
| 1706 background: var(--zenbu-sys-color-surface-default); | |
| 1707 scrollbar-color: var(--zenbu-sys-color-action-primary-background) transparent; | |
| 1708 } | |
| 1709 | |
| 1710 zen-separator { | |
| 1711 display: block; | |
| 1712 } | |
| 1713 | |
| 1714 zen-separator hr { | |
| 1715 margin-block: var(--zenbu-sys-space-group); | |
| 1716 border: 0; | |
| 1717 border-block-start: 1px solid var(--zenbu-sys-color-border-default); | |
| 1718 } | |
| 1719 | |
| 1720 zen-separator[orientation="vertical"] { | |
| 1721 display: inline-block; | |
| 1722 width: 1px; | |
| 1723 min-height: 1.5rem; | |
| 1724 background: var(--zenbu-sys-color-border-default); | |
| 1725 } | |
| 1726 | |
| 1727 zen-sidebar { | |
| 1728 display: grid; | |
| 1729 grid-template-columns: minmax(12rem, 17rem) minmax(0, 1fr); | |
| 1730 gap: var(--zenbu-sys-space-control); | |
| 1731 } | |
| 1732 | |
| 1733 zen-sidebar > [data-zen-sidebar-trigger] { | |
| 1734 grid-column: 1 / -1; | |
| 1735 justify-self: start; | |
| 1736 } | |
| 1737 | |
| 1738 zen-sidebar [data-zen-sidebar-panel] { | |
| 1739 padding: var(--zenbu-sys-space-control); | |
| 1740 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1741 border-radius: var(--zenbu-sys-radius-container); | |
| 1742 background: var(--zenbu-sys-color-surface-default); | |
| 1743 } | |
| 1744 | |
| 1745 zen-sidebar [data-zen-sidebar-panel] nav { | |
| 1746 display: grid; | |
| 1747 gap: var(--zenbu-sys-space-icon-label); | |
| 1748 } | |
| 1749 | |
| 1750 zen-sidebar [data-zen-sidebar-panel] a { | |
| 1751 padding: var(--zenbu-sys-space-related); | |
| 1752 border-radius: var(--zenbu-sys-radius-control-small); | |
| 1753 color: inherit; | |
| 1754 text-decoration: none; | |
| 1755 } | |
| 1756 | |
| 1757 zen-sidebar [data-zen-sidebar-panel] a:hover { | |
| 1758 background: var(--zenbu-sys-color-action-primary-background); | |
| 1759 color: var(--zenbu-sys-color-action-primary-foreground); | |
| 1760 } | |
| 1761 | |
| 1762 zen-skeleton { | |
| 1763 --zenbu-skeleton-width: 100%; | |
| 1764 display: block; | |
| 1765 width: var(--zenbu-skeleton-width, 100%); | |
| 1766 height: 1rem; | |
| 1767 border-radius: var(--zenbu-sys-radius-control-small); | |
| 1768 background: | |
| 1769 linear-gradient( | |
| 1770 100deg, | |
| 1771 color-mix(in srgb, var(--zenbu-sys-color-text-secondary) 18%, transparent) 20%, | |
| 1772 color-mix(in srgb, var(--zenbu-sys-color-text-secondary) 8%, transparent) 38%, | |
| 1773 color-mix(in srgb, var(--zenbu-sys-color-text-secondary) 18%, transparent) 56% | |
| 1774 ); | |
| 1775 background-size: 200% 100%; | |
| 1776 animation: zen-skeleton-shimmer 1.4s linear infinite; | |
| 1777 } | |
| 1778 | |
| 1779 zen-skeleton[shape="circle"] { | |
| 1780 width: 3rem; | |
| 1781 height: 3rem; | |
| 1782 border-radius: 50%; | |
| 1783 } | |
| 1784 | |
| 1785 zen-slider:not([appearance="plain"]) input { | |
| 1786 appearance: none; | |
| 1787 width: 100%; | |
| 1788 height: 0.5rem; | |
| 1789 padding-inline: 0; | |
| 1790 border: 0; | |
| 1791 border-radius: 999px; | |
| 1792 background: var(--zenbu-sys-color-surface-sunken); | |
| 1793 cursor: pointer; | |
| 1794 } | |
| 1795 | |
| 1796 zen-slider:not([appearance="plain"]) input::-webkit-slider-thumb { | |
| 1797 appearance: none; | |
| 1798 width: 1.35rem; | |
| 1799 height: 1.35rem; | |
| 1800 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1801 border-radius: 50%; | |
| 1802 box-shadow: var(--zenbu-sys-shadow-subtle); | |
| 1803 background: var(--zenbu-sys-color-action-primary-background); | |
| 1804 } | |
| 1805 | |
| 1806 zen-slider:not([appearance="plain"]) input::-moz-range-thumb { | |
| 1807 width: 1.35rem; | |
| 1808 height: 1.35rem; | |
| 1809 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--zenbu-sys-color-border-default); | |
| 1810 border-radius: 50%; | |
| 1811 box-shadow: var(--zenbu-sys-shadow-subtle); | |
| 1812 background: var(--zenbu-sys-color-action-primary-background); | |
| 1813 } | |
| 1814 | |
| 1815 zen-spinner { | |
| 1816 display: inline-block; | |
| 1817 width: 1.35rem; | |
| 1818 height: 1.35rem; | |
| 1819 border: 3px solid color-mix( | |
| 1820 in srgb, | |
| 1821 var(--zenbu-sys-color-text-secondary) 28%, | |
| 1822 transparent | |
| 1823 ); | |
| 1824 border-inline-end-color: var(--zenbu-sys-color-info-foreground); | |
| 1825 border-radius: 50%; | |
| 1826 animation: zen-element-spin 650ms linear infinite; | |
| 1827 } | |
| 1828 | |
| 1829 zen-tabs [role="tablist"] { | |
| 1830 display: flex; | |
| 1831 width: fit-content; | |
| 1832 gap: var(--zenbu-sys-space-icon-label); | |
| 1833 padding: var(--zenbu-sys-space-icon-label); | |
| 1834 border: 1px solid var(--zenbu-sys-color-border-default); | |
| 1835 border-radius: var(--zenbu-sys-radius-control); | |
| 1836 background: var(--zenbu-sys-color-surface-default); | |
| 1837 } | |
| 1838 | |
| 1839 zen-tabs [role="tab"] { | |
| 1840 min-height: 2.25rem; | |
| 1841 padding-inline: var(--zenbu-sys-space-control); | |
| 1842 border: 0; | |
| 1843 border-radius: var(--zenbu-sys-radius-control-small); | |
| 1844 background: transparent; | |
| 1845 color: var(--zenbu-sys-color-text-primary); | |
| 1846 font-weight: 750; | |
| 1847 cursor: pointer; | |
| 1848 } | |
| 1849 | |
| 1850 zen-tabs [role="tab"][aria-selected="true"] { | |
| 1851 background: var(--zenbu-sys-color-action-primary-background); | |
| 1852 color: var(--zenbu-sys-color-action-primary-foreground); | |
| 1853 } | |
| 1854 | |
| 1855 zen-tabs [role="tabpanel"] { | |
| 1856 padding-block: var(--zenbu-sys-space-group); | |
| 1857 } | |
| 1858 | |
| 1859 zen-tabs [role="tabpanel"][hidden] { | |
| 1860 display: none; | |
| 1861 } | |
| 1862 | |
| 1863 :where(zen-toggle, zen-toggle-group) { | |
| 1864 display: inline-flex; | |
| 1865 } | |
| 1866 | |
| 1867 :where(zen-toggle, zen-toggle-group) > button { | |
| 1868 min-height: 2.5rem; | |
| 1869 padding-inline: var(--zenbu-sys-space-control); | |
| 1870 border: 1px solid transparent; | |
| 1871 border-radius: var(--zenbu-sys-radius-control-small); | |
| 1872 background: transparent; | |
| 1873 color: var(--zenbu-sys-color-text-primary); | |
| 1874 font-weight: 750; | |
| 1875 cursor: pointer; | |
| 1876 } | |
| 1877 | |
| 1878 :where(zen-toggle, zen-toggle-group) > button[aria-pressed="true"] { | |
| 1879 border-color: var(--zenbu-sys-color-border-default); | |
| 1880 background: var(--zenbu-sys-color-action-primary-background); | |
| 1881 color: var(--zenbu-sys-color-action-primary-foreground); | |
| 1882 } | |
| 1883 | |
| 1884 zen-typography { | |
| 1885 display: block; | |
| 1886 max-width: 65ch; | |
| 1887 line-height: var(--zenbu-sys-type-body-line-height); | |
| 1888 } | |
| 1889 | |
| 1890 zen-typography > :where(h1, h2, h3) { | |
| 1891 line-height: 1.15; | |
| 1892 text-wrap: balance; | |
| 1893 } | |
| 1894 | |
| 1895 zen-typography blockquote { | |
| 1896 margin-inline: 0; | |
| 1897 padding-inline-start: var(--zenbu-sys-space-group); | |
| 1898 border-inline-start: 0.35rem solid var(--zenbu-sys-color-action-primary-background); | |
| 1899 color: var(--zenbu-sys-color-text-secondary); | |
| 1900 font-style: italic; | |
| 1901 } | |
| 1902 | |
| 1903 :where( | |
| 1904 button, | |
| 1905 summary, | |
| 1906 [tabindex] | |
| 1907 ):focus-visible { | |
| 1908 outline: 3px solid var(--zenbu-sys-color-focus-outer); | |
| 1909 outline-offset: 3px; | |
| 1910 } | |
| 1911 | |
| 1912 :where( | |
| 1913 zen-calendar:not([appearance="plain"]), | |
| 1914 zen-checkbox:not([appearance="plain"]), | |
| 1915 zen-combobox:not([appearance="plain"]), | |
| 1916 zen-command:not([appearance="plain"]), | |
| 1917 zen-date-picker:not([appearance="plain"]), | |
| 1918 zen-field:not([appearance="plain"]), | |
| 1919 zen-form:not([appearance="plain"]), | |
| 1920 zen-input:not([appearance="plain"]), | |
| 1921 zen-input-group:not([appearance="plain"]), | |
| 1922 zen-input-otp:not([appearance="plain"]), | |
| 1923 zen-native-select:not([appearance="plain"]), | |
| 1924 zen-radio-group:not([appearance="plain"]), | |
| 1925 zen-select:not([appearance="plain"]), | |
| 1926 zen-slider:not([appearance="plain"]), | |
| 1927 zen-switch:not([appearance="plain"]), | |
| 1928 zen-textarea:not([appearance="plain"]) | |
| 1929 ) :where(input, select, textarea):focus-visible { | |
| 1930 outline: none; | |
| 1931 } | |
| 1932 | |
| 1933 @keyframes zen-element-spin { | |
| 1934 to { transform: rotate(1turn); } | |
| 1935 } | |
| 1936 | |
| 1937 @keyframes zen-skeleton-shimmer { | |
| 1938 to { background-position-x: -200%; } | |
| 1939 } | |
| 1940 | |
| 1941 @media (max-width: 640px) { | |
| 1942 zen-sidebar { | |
| 1943 display: block; | |
| 1944 } | |
| 1945 | |
| 1946 zen-sidebar > [data-zen-sidebar-trigger] { | |
| 1947 margin-block-end: var(--zenbu-sys-space-related); | |
| 1948 } | |
| 1949 | |
| 1950 :where(zen-calendar, zen-date-picker) { | |
| 1951 width: 100%; | |
| 1952 max-width: 100%; | |
| 1953 } | |
| 1954 | |
| 1955 zen-date-picker [data-zen-calendar-panel] { | |
| 1956 position: fixed; | |
| 1957 inset: auto var(--zenbu-sys-space-control) var(--zenbu-sys-space-control); | |
| 1958 width: auto; | |
| 1959 max-height: calc(100vb - 2 * var(--zenbu-sys-space-control)); | |
| 1960 overflow: auto; | |
| 1961 transform-origin: bottom center; | |
| 1962 } | |
| 1963 } | |
| 1964 | |
| 1965 @media (forced-colors: active) { | |
| 1966 :where( | |
| 1967 zen-aspect-ratio, | |
| 1968 zen-attachment, | |
| 1969 zen-avatar, | |
| 1970 zen-badge, | |
| 1971 zen-empty, | |
| 1972 zen-resizable, | |
| 1973 zen-scroll-area | |
| 1974 ) { | |
| 1975 border: 1px solid CanvasText; | |
| 1976 } | |
| 1977 } | |
| 1978 | |
| 1979 @media (prefers-reduced-motion: reduce) { | |
| 1980 zen-link[effect="paw"] > a > [data-zen-link-decoration], | |
| 1981 zen-link[effect="paw"] > a:hover > [data-zen-link-decoration] { | |
| 1982 animation: none; | |
| 1983 } | |
| 1984 | |
| 1985 zen-skeleton, | |
| 1986 zen-spinner { | |
| 1987 animation: none; | |
| 1988 } | |
| 1989 | |
| 1990 zen-switch input, | |
| 1991 zen-switch input::before, | |
| 1992 :where( | |
| 1993 zen-accordion, | |
| 1994 zen-collapsible | |
| 1995 ) details::details-content, | |
| 1996 :where( | |
| 1997 zen-accordion, | |
| 1998 zen-collapsible | |
| 1999 ) summary > [data-zen-disclosure-icon] { | |
| 2000 transition: none; | |
| 2001 } | |
| 2002 | |
| 2003 zen-date-picker [data-zen-calendar-panel] { | |
| 2004 animation: none; | |
| 2005 } | |
| 2006 | |
| 2007 :where( | |
| 2008 zen-alert-dialog, | |
| 2009 zen-dialog, | |
| 2010 zen-drawer, | |
| 2011 zen-sheet | |
| 2012 ) dialog[open], | |
| 2013 :where( | |
| 2014 zen-combobox, | |
| 2015 zen-command, | |
| 2016 zen-context-menu, | |
| 2017 zen-dropdown-menu, | |
| 2018 zen-hover-card, | |
| 2019 zen-menubar, | |
| 2020 zen-navigation-menu, | |
| 2021 zen-popover, | |
| 2022 zen-tooltip | |
| 2023 ) :where( | |
| 2024 [data-zen-content], | |
| 2025 [role="listbox"], | |
| 2026 [role="menu"] | |
| 2027 ):not([hidden]) { | |
| 2028 animation: none; | |
| 2029 } | |
| 2030 } |