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