@lilydesignsystem/themes 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/abyss.css +338 -9
  2. package/dist/acid.css +338 -9
  3. package/dist/adobe-spectrum.css +338 -9
  4. package/dist/ant-design.css +338 -9
  5. package/dist/aqua.css +338 -9
  6. package/dist/atlassian.css +338 -9
  7. package/dist/autumn.css +338 -9
  8. package/dist/black.css +338 -9
  9. package/dist/bumblebee.css +338 -9
  10. package/dist/business.css +338 -9
  11. package/dist/cappuccino.css +338 -9
  12. package/dist/caramellatte.css +338 -9
  13. package/dist/cmyk.css +338 -9
  14. package/dist/coffee.css +338 -9
  15. package/dist/corporate.css +338 -9
  16. package/dist/cupcake.css +338 -9
  17. package/dist/cyberpunk.css +338 -9
  18. package/dist/dark.css +338 -9
  19. package/dist/dim.css +338 -9
  20. package/dist/dracula.css +338 -9
  21. package/dist/emerald.css +338 -9
  22. package/dist/excel.css +338 -9
  23. package/dist/fantasy.css +338 -9
  24. package/dist/fluent.css +338 -9
  25. package/dist/forest.css +338 -9
  26. package/dist/garden.css +338 -9
  27. package/dist/github-primer.css +338 -9
  28. package/dist/halloween.css +338 -9
  29. package/dist/ibm-carbon.css +338 -9
  30. package/dist/lemonade.css +338 -9
  31. package/dist/light.css +338 -9
  32. package/dist/linear.css +338 -9
  33. package/dist/lofi.css +338 -9
  34. package/dist/luxury.css +338 -9
  35. package/dist/mozilla-protocol.css +338 -9
  36. package/dist/night.css +338 -9
  37. package/dist/nord.css +338 -9
  38. package/dist/notion.css +338 -9
  39. package/dist/pastel.css +338 -9
  40. package/dist/retro.css +338 -9
  41. package/dist/salesforce.css +338 -9
  42. package/dist/sap-fiori.css +338 -9
  43. package/dist/silk.css +338 -9
  44. package/dist/sunset.css +338 -9
  45. package/dist/synthwave.css +338 -9
  46. package/dist/united-kingdom-government-digital-service.css +338 -9
  47. package/dist/united-kingdom-national-health-service-england-for-patients.css +338 -9
  48. package/dist/united-kingdom-national-health-service-england-for-practitioners.css +338 -9
  49. package/dist/united-kingdom-national-health-service-scotland-for-patients.css +338 -9
  50. package/dist/united-kingdom-national-health-service-scotland-for-practitioners.css +338 -9
  51. package/dist/united-kingdom-national-health-service-wales-for-patients.css +340 -11
  52. package/dist/united-kingdom-national-health-service-wales-for-practitioners.css +340 -11
  53. package/dist/united-states-web-design-system.css +338 -9
  54. package/dist/valentine.css +338 -9
  55. package/dist/vercel.css +338 -9
  56. package/dist/winter.css +338 -9
  57. package/dist/wireframe.css +338 -9
  58. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /* ============================================================================
2
- * Theme: united-kingdom-national-health-service-wales-patients
2
+ * Theme: united-kingdom-national-health-service-wales-for-patients
3
3
  * Brand: NHS Wales / GIG Cymru (Gwasanaeth Iechyd Gwladol Cymru) — patients
4
4
  * Format: Lily standalone theme
5
5
  *
@@ -58,7 +58,7 @@
58
58
  * When NOT to use this theme:
59
59
  *
60
60
  * - Clinician-only workstations, EPR / eMAR / ePMA, results review
61
- * (use `united-kingdom-national-health-service-wales-practitioners.css`)
61
+ * (use `united-kingdom-national-health-service-wales-for-practitioners.css`)
62
62
  * - Any surface where staff need to scan many rows of clinical data —
63
63
  * this theme's rhythm makes that slow, not fast
64
64
  *
@@ -1441,7 +1441,7 @@
1441
1441
  color: var(--lily-text-muted);
1442
1442
  }
1443
1443
  /* Final crumb (the current page) — muted because it isn't a link. */
1444
- :where(.breadcrumb-list-item[aria-current="page"]) {
1444
+ :where(.breadcrumb-list-item[data-current], .breadcrumb-list-item[aria-current="page"]) {
1445
1445
  color: var(--lily-text-muted);
1446
1446
  }
1447
1447
 
@@ -1710,11 +1710,114 @@
1710
1710
  background-color: var(--color-primary);
1711
1711
  color: var(--color-primary-content);
1712
1712
  }
1713
- /* Today — outlined rather than filled, so a selected non-today date
1714
- still reads as the "selected" one. */
1713
+ /* Today — outlined and bold, never filled, so a selected non-today date still
1714
+ reads as "selected". The ring takes the cell's own text colour (currentColor),
1715
+ so it holds its contrast on a light page, a dark page and a selected cell
1716
+ alike, and the bold number says it without colour. */
1715
1717
  :where(.calendar-table-td[aria-current="date"]) {
1716
- outline: 2px solid var(--color-primary);
1717
- outline-offset: -2px;
1718
+ outline: 2px solid currentColor;
1719
+ outline-offset: -3px;
1720
+ font-weight: 700;
1721
+ }
1722
+ /* Fit a phone: day cells shrink and wrap instead of forcing the grid wider. */
1723
+ :where(.calendar-table) {
1724
+ table-layout: fixed;
1725
+ }
1726
+ :where(.calendar-table-td, .calendar-table-th) {
1727
+ min-width: 0;
1728
+ overflow-wrap: anywhere;
1729
+ }
1730
+
1731
+ /* --- Data grid: toolbar, sorting, pagination, column visibility, pinned columns ----- */
1732
+ :where(.data-grid-toolbar) {
1733
+ display: flex;
1734
+ flex-wrap: wrap;
1735
+ gap: var(--lily-space-sm);
1736
+ align-items: center;
1737
+ margin-block-end: var(--lily-space-sm);
1738
+ }
1739
+ :where(.data-grid-search, .data-grid-search-field) {
1740
+ padding: var(--lily-space-xs) var(--lily-space-sm);
1741
+ border: var(--border) solid var(--lily-border);
1742
+ border-radius: var(--lily-radius-sm);
1743
+ background-color: var(--lily-surface);
1744
+ color: var(--lily-text);
1745
+ font: inherit;
1746
+ }
1747
+ /* A sortable header is a button that looks like its text; the arrow follows aria-sort,
1748
+ so the state is in the markup for assistive technology and on screen for everyone. */
1749
+ :where(.data-grid-sort-button) {
1750
+ padding: 0;
1751
+ border: 0;
1752
+ background: none;
1753
+ color: inherit;
1754
+ font: inherit;
1755
+ text-align: start;
1756
+ cursor: pointer;
1757
+ }
1758
+ :where(.data-grid-sort-button:focus-visible) {
1759
+ outline: 2px solid var(--color-accent);
1760
+ outline-offset: 2px;
1761
+ }
1762
+ :where([aria-sort="none"] .data-grid-sort-button)::after {
1763
+ content: " \21C5";
1764
+ opacity: 0.5;
1765
+ }
1766
+ :where([aria-sort="ascending"] .data-grid-sort-button)::after {
1767
+ content: " \25B2";
1768
+ }
1769
+ :where([aria-sort="descending"] .data-grid-sort-button)::after {
1770
+ content: " \25BC";
1771
+ }
1772
+ :where(.data-grid-pagination) {
1773
+ display: flex;
1774
+ flex-wrap: wrap;
1775
+ gap: var(--lily-space-sm);
1776
+ align-items: center;
1777
+ justify-content: flex-end;
1778
+ margin-block-start: var(--lily-space-sm);
1779
+ }
1780
+ :where(.data-grid-page-previous, .data-grid-page-next, .data-grid-export-button) {
1781
+ padding: var(--lily-space-xs) var(--lily-space-md);
1782
+ border: var(--border) solid var(--lily-border);
1783
+ border-radius: var(--lily-radius-sm);
1784
+ background-color: var(--lily-surface);
1785
+ color: var(--lily-text);
1786
+ font: inherit;
1787
+ cursor: pointer;
1788
+ }
1789
+ :where(.data-grid-page-previous:disabled, .data-grid-page-next:disabled, .data-grid-export-button:disabled) {
1790
+ opacity: 0.5;
1791
+ cursor: not-allowed;
1792
+ }
1793
+ :where(.data-grid-column-visibility) {
1794
+ display: flex;
1795
+ flex-wrap: wrap;
1796
+ gap: var(--lily-space-sm);
1797
+ margin: 0;
1798
+ padding: var(--lily-space-xs) var(--lily-space-sm);
1799
+ border: var(--border) solid var(--lily-border);
1800
+ border-radius: var(--lily-radius-sm);
1801
+ }
1802
+ /* Pinned columns stay put while the rest scroll; the offset is logical, so it flips in right-to-left. */
1803
+ :where([data-pinned="start"]) {
1804
+ position: sticky;
1805
+ inset-inline-start: 0;
1806
+ z-index: 1;
1807
+ background-color: var(--lily-surface);
1808
+ }
1809
+ :where([data-pinned="end"]) {
1810
+ position: sticky;
1811
+ inset-inline-end: 0;
1812
+ z-index: 1;
1813
+ background-color: var(--lily-surface);
1814
+ }
1815
+ :where(th[data-pinned]) {
1816
+ z-index: 2;
1817
+ }
1818
+ /* A missing value: dimmed, and the grid's emptyValue text (for example a dash) reads as absence. */
1819
+ :where(.data-table-td[data-empty]) {
1820
+ opacity: 0.7;
1718
1821
  }
1719
1822
 
1720
1823
  /* --- Kanban specifics --------------------------------------------------- */
@@ -1728,6 +1831,20 @@
1728
1831
  min-width: 14rem;
1729
1832
  }
1730
1833
 
1834
+ /* Dragging a card: the column it would land in is outlined; one that refuses it
1835
+ (canMove, allowedColumns, a full strict WIP limit) is striped and shows the
1836
+ not-allowed cursor, so "you can't drop here" is visible before the drop. */
1837
+ :where(.kanban-table-td[data-drop-target]) {
1838
+ outline: 2px dashed var(--color-accent);
1839
+ outline-offset: -3px;
1840
+ }
1841
+ :where(.kanban-table-td[data-drop-blocked]) {
1842
+ outline: 2px solid var(--color-error);
1843
+ outline-offset: -3px;
1844
+ cursor: not-allowed;
1845
+ background-image: repeating-linear-gradient(135deg, transparent 0 6px, color-mix(in srgb, var(--color-error) 18%, transparent) 6px 8px);
1846
+ }
1847
+
1731
1848
  /* --- Gantt specifics ---------------------------------------------------- */
1732
1849
  /* Cells marked as bars are filled with the primary colour to render the
1733
1850
  schedule bar inline within the grid. */
@@ -1735,6 +1852,20 @@
1735
1852
  background-color: var(--color-primary);
1736
1853
  }
1737
1854
 
1855
+ /* Weekend, holiday and time-off shading (Gantt chart and calendar). A weekend
1856
+ is tinted; a day marked as a holiday or time off (data-unavailable /
1857
+ data-range) is striped as well, so no day is told apart by colour alone;
1858
+ a column only partly unavailable gets a bar under its header. */
1859
+ :where(.gantt-table-th[data-weekend], .gantt-table-td[data-weekend], .calendar-table-th[data-weekend], .calendar-table-td[data-weekend]) {
1860
+ background-color: color-mix(in srgb, var(--lily-surface) 92%, var(--lily-text));
1861
+ }
1862
+ :where(.gantt-table-th[data-unavailable], .gantt-table-td[data-unavailable], .calendar-table-td[data-range]) {
1863
+ background-image: repeating-linear-gradient(135deg, transparent 0 4px, color-mix(in srgb, var(--lily-text) 14%, transparent) 4px 5px);
1864
+ }
1865
+ :where(.gantt-table-th[data-partly-unavailable]) {
1866
+ box-shadow: inset 0 -3px 0 color-mix(in srgb, var(--lily-text) 45%, transparent);
1867
+ }
1868
+
1738
1869
  /* ==========================================================================
1739
1870
  * Cards, panels, surfaces
1740
1871
  * --------------------------------------------------------------------------
@@ -2892,6 +3023,7 @@
2892
3023
  .theme-picker,
2893
3024
  .locale-picker,
2894
3025
  .text-size-picker,
3026
+ .time-zone-picker,
2895
3027
  .search-picker,
2896
3028
  .link-picker,
2897
3029
  .menu-picker,
@@ -2907,6 +3039,7 @@
2907
3039
  .theme-picker-button,
2908
3040
  .locale-picker-button,
2909
3041
  .text-size-picker-button,
3042
+ .time-zone-picker-button,
2910
3043
  .search-picker-button,
2911
3044
  .link-picker-button,
2912
3045
  .menu-picker-button,
@@ -2945,6 +3078,7 @@
2945
3078
  .theme-picker-icon,
2946
3079
  .locale-picker-icon,
2947
3080
  .text-size-picker-icon,
3081
+ .time-zone-picker-icon,
2948
3082
  .motion-picker-icon,
2949
3083
  .link-picker-icon,
2950
3084
  .menu-picker-icon,
@@ -3312,6 +3446,7 @@
3312
3446
  .theme-picker-tooltip,
3313
3447
  .locale-picker-tooltip,
3314
3448
  .text-size-picker-tooltip,
3449
+ .time-zone-picker-tooltip,
3315
3450
  .motion-picker-tooltip,
3316
3451
  .link-picker-tooltip,
3317
3452
  .menu-picker-tooltip,
@@ -3339,6 +3474,7 @@
3339
3474
  .theme-picker-tooltip,
3340
3475
  .locale-picker-tooltip,
3341
3476
  .text-size-picker-tooltip,
3477
+ .time-zone-picker-tooltip,
3342
3478
  .motion-picker-tooltip,
3343
3479
  .link-picker-tooltip,
3344
3480
  .menu-picker-tooltip,
@@ -3358,6 +3494,7 @@
3358
3494
  .theme-picker-tooltip,
3359
3495
  .locale-picker-tooltip,
3360
3496
  .text-size-picker-tooltip,
3497
+ .time-zone-picker-tooltip,
3361
3498
  .motion-picker-tooltip,
3362
3499
  .link-picker-tooltip,
3363
3500
  .menu-picker-tooltip,
@@ -3414,6 +3551,7 @@
3414
3551
  .theme-picker-list,
3415
3552
  .locale-picker-list,
3416
3553
  .text-size-picker-list,
3554
+ .time-zone-picker-list,
3417
3555
  .motion-picker-list,
3418
3556
  .link-picker-list,
3419
3557
  .menu-picker-panel,
@@ -3443,6 +3581,7 @@
3443
3581
  .theme-picker-list,
3444
3582
  .locale-picker-list,
3445
3583
  .text-size-picker-list,
3584
+ .time-zone-picker-list,
3446
3585
  .motion-picker-list,
3447
3586
  .link-picker-list,
3448
3587
  .menu-picker-panel,
@@ -3463,6 +3602,7 @@
3463
3602
  :where(.theme-picker) { anchor-name: --lily-theme-picker; }
3464
3603
  :where(.locale-picker) { anchor-name: --lily-locale-picker; }
3465
3604
  :where(.text-size-picker) { anchor-name: --lily-text-size-picker; }
3605
+ :where(.time-zone-picker) { anchor-name: --lily-time-zone-picker; }
3466
3606
  :where(.motion-picker) { anchor-name: --lily-motion-picker; }
3467
3607
  :where(.link-picker) { anchor-name: --lily-link-picker; }
3468
3608
  :where(.menu-picker) { anchor-name: --lily-menu-picker; }
@@ -3472,6 +3612,7 @@
3472
3612
  :where(.theme-picker-list) { position-anchor: --lily-theme-picker; }
3473
3613
  :where(.locale-picker-list) { position-anchor: --lily-locale-picker; }
3474
3614
  :where(.text-size-picker-list) { position-anchor: --lily-text-size-picker; }
3615
+ :where(.time-zone-picker-list) { position-anchor: --lily-time-zone-picker; }
3475
3616
  :where(.motion-picker-list) { position-anchor: --lily-motion-picker; }
3476
3617
  :where(.link-picker-list) { position-anchor: --lily-link-picker; }
3477
3618
  :where(.menu-picker-panel) { position-anchor: --lily-menu-picker; }
@@ -3482,6 +3623,7 @@
3482
3623
  .theme-picker-list,
3483
3624
  .locale-picker-list,
3484
3625
  .text-size-picker-list,
3626
+ .time-zone-picker-list,
3485
3627
  .motion-picker-list,
3486
3628
  .link-picker-list,
3487
3629
  .menu-picker-panel,
@@ -3499,11 +3641,12 @@
3499
3641
  }
3500
3642
  }
3501
3643
 
3502
- :where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .motion-picker-list)
3644
+ :where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .time-zone-picker-list, .motion-picker-list)
3503
3645
  > :where(
3504
3646
  .theme-picker-option,
3505
3647
  .locale-picker-option,
3506
3648
  .text-size-picker-option,
3649
+ .time-zone-picker-option,
3507
3650
  .motion-picker-option
3508
3651
  ) {
3509
3652
  padding: var(--lily-space-xs) var(--lily-space-sm);
@@ -3513,7 +3656,7 @@
3513
3656
 
3514
3657
  /* data-active is the keyboard cursor (aria-activedescendant); focus
3515
3658
  stays on the listbox, so this is the only visible cue for it. */
3516
- :where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .motion-picker-list)
3659
+ :where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .time-zone-picker-list, .motion-picker-list)
3517
3660
  > :where([data-active]) {
3518
3661
  background-color: var(--lily-surface-alt);
3519
3662
  outline: var(--lily-focus-ring);
@@ -3522,7 +3665,7 @@
3522
3665
 
3523
3666
  /* aria-selected marks the applied theme/locale, which is not the
3524
3667
  same thing as the keyboard cursor. Both can be visible at once. */
3525
- :where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .motion-picker-list)
3668
+ :where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .time-zone-picker-list, .motion-picker-list)
3526
3669
  > :where([aria-selected="true"]) {
3527
3670
  font-weight: 600;
3528
3671
  background-color: var(--lily-surface-sunken);
@@ -3911,7 +4054,7 @@
3911
4054
  }
3912
4055
  /* Screen-reader-only — visually hidden but available to AT. The
3913
4056
  classic clip-rect pattern (works in every screen reader). */
3914
- :where(.screen-reader-span) {
4057
+ :where(.screen-reader-span, .middle-truncation-full) {
3915
4058
  position: absolute;
3916
4059
  width: 1px;
3917
4060
  height: 1px;
@@ -3922,6 +4065,42 @@
3922
4065
  white-space: nowrap;
3923
4066
  border: 0;
3924
4067
  }
4068
+ /* Middle truncation — a bounded one-line block; the shortened string is aria-hidden and the full
4069
+ text (hidden above) stays in the accessibility tree. */
4070
+ :where(.middle-truncation) {
4071
+ display: block;
4072
+ position: relative;
4073
+ overflow: hidden;
4074
+ white-space: nowrap;
4075
+ }
4076
+ /* Wheel picker — a scrolling listbox that snaps the chosen option to the centre. The selected option is filled with the
4077
+ primary colour (aria-selected, not colour alone: it is also the activedescendant and gets a bold weight). */
4078
+ :where(.wheel-picker-list) {
4079
+ max-block-size: 10em;
4080
+ overflow-y: auto;
4081
+ overscroll-behavior: contain;
4082
+ scroll-snap-type: y mandatory;
4083
+ border: 1px solid var(--color-base-300);
4084
+ border-radius: var(--lily-radius-md);
4085
+ }
4086
+ :where(.wheel-picker-list:focus-visible) {
4087
+ outline: 2px solid var(--lily-focus-ring);
4088
+ outline-offset: 2px;
4089
+ }
4090
+ :where(.wheel-picker-option) {
4091
+ padding: 0.5rem 1rem;
4092
+ scroll-snap-align: center;
4093
+ cursor: pointer;
4094
+ }
4095
+ :where(.wheel-picker-option[aria-selected="true"]) {
4096
+ background-color: var(--color-primary);
4097
+ color: var(--color-primary-content);
4098
+ font-weight: 600;
4099
+ }
4100
+ :where(.wheel-picker-option[aria-disabled="true"]) {
4101
+ opacity: 0.5;
4102
+ cursor: not-allowed;
4103
+ }
3925
4104
 
3926
4105
  /* ==========================================================================
3927
4106
  * Hero, figure, photo, media
@@ -4667,3 +4846,153 @@
4667
4846
  :where(a, code) {
4668
4847
  overflow-wrap: anywhere;
4669
4848
  }
4849
+
4850
+ /* ============================================================================
4851
+ * Helper packages — layout and look, shared verbatim by all themes.
4852
+ *
4853
+ * The data grid, kanban board, Gantt chart and calendar view are wide by nature.
4854
+ * Each root scrolls sideways inside its own box and its table sizes to its content,
4855
+ * so a narrow screen scrolls the table instead of wrapping every cell to a letter
4856
+ * (the overflow guard above lets cells break anywhere, which is right for prose and
4857
+ * wrong for a table that has a scroller). The toolbar controls of all four helpers
4858
+ * share the data grid's look, every button has a >=24px target (WCAG 2.2 2.5.8), and
4859
+ * the Gantt chart draws its bars from `data-in-range`, a milestone as a diamond and
4860
+ * today as a rule. :where() keeps specificity at zero, so any consumer rule wins.
4861
+ * ========================================================================= */
4862
+
4863
+ :where(.data-grid, .kanban-board, .gantt-chart, .calendar-view) {
4864
+ max-inline-size: 100%;
4865
+ overflow-x: auto;
4866
+ }
4867
+
4868
+ :where(.data-grid table, .kanban-board table, .gantt-chart table, .calendar-view table) {
4869
+ inline-size: max-content;
4870
+ min-inline-size: 100%;
4871
+ }
4872
+
4873
+ :where(.kanban-board-export, .gantt-chart-export, .gantt-chart-zoom, .calendar-view-export,
4874
+ .calendar-view-toolbar, .calendar-view-nav, .calendar-view-switcher) {
4875
+ display: flex;
4876
+ flex-wrap: wrap;
4877
+ gap: var(--lily-space-sm);
4878
+ align-items: center;
4879
+ margin-block-end: var(--lily-space-sm);
4880
+ }
4881
+
4882
+ :where(.kanban-board-search, .gantt-chart-search, .calendar-view-search) {
4883
+ padding: var(--lily-space-xs) var(--lily-space-sm);
4884
+ border: var(--border) solid var(--lily-border);
4885
+ border-radius: var(--lily-radius-sm);
4886
+ background-color: var(--lily-surface);
4887
+ color: var(--lily-text);
4888
+ font: inherit;
4889
+ min-block-size: 24px;
4890
+ }
4891
+
4892
+ :where(.kanban-board-export-button,
4893
+ .kanban-board-add-button,
4894
+ .kanban-board-undo-button,
4895
+ .kanban-board-collapse-button,
4896
+ .kanban-board-lane-toggle,
4897
+ .kanban-board-move-button,
4898
+ .gantt-chart-export-button,
4899
+ .gantt-chart-zoom-in-button,
4900
+ .gantt-chart-zoom-out-button,
4901
+ .gantt-chart-collapse-button,
4902
+ .gantt-chart-collapse-all-button,
4903
+ .gantt-chart-expand-all-button,
4904
+ .gantt-chart-save-button,
4905
+ .gantt-chart-cancel-button,
4906
+ .calendar-view-export-button,
4907
+ .calendar-view-previous-button,
4908
+ .calendar-view-next-button,
4909
+ .calendar-view-today-button,
4910
+ .calendar-view-switcher-button) {
4911
+ padding: var(--lily-space-xs) var(--lily-space-md);
4912
+ border: var(--border) solid var(--lily-border);
4913
+ border-radius: var(--lily-radius-sm);
4914
+ background-color: var(--lily-surface);
4915
+ color: var(--lily-text);
4916
+ font: inherit;
4917
+ cursor: pointer;
4918
+ min-inline-size: 24px;
4919
+ min-block-size: 24px;
4920
+ }
4921
+
4922
+ :where(.kanban-board-export-button:disabled,
4923
+ .kanban-board-add-button:disabled,
4924
+ .kanban-board-undo-button:disabled,
4925
+ .gantt-chart-export-button:disabled,
4926
+ .gantt-chart-zoom-in-button:disabled,
4927
+ .gantt-chart-zoom-out-button:disabled,
4928
+ .calendar-view-export-button:disabled,
4929
+ .calendar-view-previous-button[aria-disabled="true"],
4930
+ .calendar-view-next-button[aria-disabled="true"]) {
4931
+ opacity: 0.5;
4932
+ cursor: not-allowed;
4933
+ }
4934
+
4935
+ :where(.calendar-view-switcher-button[aria-pressed="true"]) {
4936
+ background-color: var(--color-base-300);
4937
+ font-weight: 600;
4938
+ }
4939
+
4940
+ :where(.kanban-board-status, .gantt-chart-status, .calendar-view-status) {
4941
+ margin-block-start: var(--lily-space-sm);
4942
+ font-size: 0.875em;
4943
+ opacity: 0.8;
4944
+ }
4945
+
4946
+ :where(.calendar-view-event) {
4947
+ display: block;
4948
+ padding: 0 var(--lily-space-xs);
4949
+ border-radius: var(--lily-radius-sm);
4950
+ background-color: color-mix(in srgb, var(--color-primary) 18%, transparent);
4951
+ font-size: 0.75rem;
4952
+ }
4953
+
4954
+ :where(.gantt-table-th) {
4955
+ min-inline-size: 2rem;
4956
+ padding-inline: 0.25rem;
4957
+ font-size: 0.75rem;
4958
+ text-align: center;
4959
+ white-space: nowrap;
4960
+ }
4961
+
4962
+ :where(.gantt-table-th[scope="row"], .gantt-table-th:first-child) {
4963
+ min-inline-size: 10rem;
4964
+ padding-inline: var(--lily-space-sm);
4965
+ font-size: inherit;
4966
+ text-align: start;
4967
+ white-space: normal;
4968
+ }
4969
+
4970
+ :where(.gantt-table-td) {
4971
+ min-block-size: 1.7rem;
4972
+ padding: 0;
4973
+ }
4974
+
4975
+ :where(.gantt-table-td[data-in-range]) {
4976
+ background-color: var(--color-primary);
4977
+ }
4978
+
4979
+ :where(.gantt-table-td[data-in-range][data-milestone]) {
4980
+ clip-path: polygon(50% 8%, 92% 50%, 50% 92%, 8% 50%);
4981
+ }
4982
+
4983
+ :where(.gantt-table-td[data-today]) {
4984
+ border-inline-start: 2px solid var(--color-accent);
4985
+ }
4986
+
4987
+ /* The time zone picker's options are long ("UTC+10:30 – Lord Howe Daylight Time"): size the list to its widest
4988
+ option up to a cap, then wrap, rather than clipping the name or running off a phone. */
4989
+ :where(.time-zone-picker-list) {
4990
+ inline-size: max-content;
4991
+ max-inline-size: min(26rem, 90vw);
4992
+ max-block-size: min(24rem, 70vh);
4993
+ overflow-y: auto;
4994
+ }
4995
+
4996
+ :where(.time-zone-picker-option) {
4997
+ overflow-wrap: anywhere;
4998
+ }