@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-practitioners
2
+ * Theme: united-kingdom-national-health-service-wales-for-practitioners
3
3
  * Brand: NHS Wales / GIG Cymru (Gwasanaeth Iechyd Gwladol Cymru) — practitioners
4
4
  * Format: Lily standalone theme
5
5
  *
@@ -13,7 +13,7 @@
13
13
  * This is the *practitioners* / high-density variant of the NHS Wales
14
14
  * theme. It shares the NHS Wales colour palette, brand intent, and
15
15
  * component grammar with the patient-facing
16
- * `united-kingdom-national-health-service-wales-patients.css`, and
16
+ * `united-kingdom-national-health-service-wales-for-patients.css`, and
17
17
  * deliberately diverges on geometry and rhythm to serve a different
18
18
  * audience: healthcare practitioners (doctors, nurses, midwives,
19
19
  * pharmacists, AHPs, paramedics, dentists, ward clerks, MDT
@@ -1548,7 +1548,7 @@
1548
1548
  color: var(--lily-text-muted);
1549
1549
  }
1550
1550
  /* Final crumb (the current page) — muted because it isn't a link. */
1551
- :where(.breadcrumb-list-item[aria-current="page"]) {
1551
+ :where(.breadcrumb-list-item[data-current], .breadcrumb-list-item[aria-current="page"]) {
1552
1552
  color: var(--lily-text-muted);
1553
1553
  }
1554
1554
 
@@ -1820,11 +1820,114 @@
1820
1820
  background-color: var(--color-primary);
1821
1821
  color: var(--color-primary-content);
1822
1822
  }
1823
- /* Today — outlined rather than filled, so a selected non-today date
1824
- still reads as the "selected" one. */
1823
+ /* Today — outlined and bold, never filled, so a selected non-today date still
1824
+ reads as "selected". The ring takes the cell's own text colour (currentColor),
1825
+ so it holds its contrast on a light page, a dark page and a selected cell
1826
+ alike, and the bold number says it without colour. */
1825
1827
  :where(.calendar-table-td[aria-current="date"]) {
1826
- outline: 2px solid var(--color-primary);
1827
- outline-offset: -2px;
1828
+ outline: 2px solid currentColor;
1829
+ outline-offset: -3px;
1830
+ font-weight: 700;
1831
+ }
1832
+ /* Fit a phone: day cells shrink and wrap instead of forcing the grid wider. */
1833
+ :where(.calendar-table) {
1834
+ table-layout: fixed;
1835
+ }
1836
+ :where(.calendar-table-td, .calendar-table-th) {
1837
+ min-width: 0;
1838
+ overflow-wrap: anywhere;
1839
+ }
1840
+
1841
+ /* --- Data grid: toolbar, sorting, pagination, column visibility, pinned columns ----- */
1842
+ :where(.data-grid-toolbar) {
1843
+ display: flex;
1844
+ flex-wrap: wrap;
1845
+ gap: var(--lily-space-sm);
1846
+ align-items: center;
1847
+ margin-block-end: var(--lily-space-sm);
1848
+ }
1849
+ :where(.data-grid-search, .data-grid-search-field) {
1850
+ padding: var(--lily-space-xs) var(--lily-space-sm);
1851
+ border: var(--border) solid var(--lily-border);
1852
+ border-radius: var(--lily-radius-sm);
1853
+ background-color: var(--lily-surface);
1854
+ color: var(--lily-text);
1855
+ font: inherit;
1856
+ }
1857
+ /* A sortable header is a button that looks like its text; the arrow follows aria-sort,
1858
+ so the state is in the markup for assistive technology and on screen for everyone. */
1859
+ :where(.data-grid-sort-button) {
1860
+ padding: 0;
1861
+ border: 0;
1862
+ background: none;
1863
+ color: inherit;
1864
+ font: inherit;
1865
+ text-align: start;
1866
+ cursor: pointer;
1867
+ }
1868
+ :where(.data-grid-sort-button:focus-visible) {
1869
+ outline: 2px solid var(--color-accent);
1870
+ outline-offset: 2px;
1871
+ }
1872
+ :where([aria-sort="none"] .data-grid-sort-button)::after {
1873
+ content: " \21C5";
1874
+ opacity: 0.5;
1875
+ }
1876
+ :where([aria-sort="ascending"] .data-grid-sort-button)::after {
1877
+ content: " \25B2";
1878
+ }
1879
+ :where([aria-sort="descending"] .data-grid-sort-button)::after {
1880
+ content: " \25BC";
1881
+ }
1882
+ :where(.data-grid-pagination) {
1883
+ display: flex;
1884
+ flex-wrap: wrap;
1885
+ gap: var(--lily-space-sm);
1886
+ align-items: center;
1887
+ justify-content: flex-end;
1888
+ margin-block-start: var(--lily-space-sm);
1889
+ }
1890
+ :where(.data-grid-page-previous, .data-grid-page-next, .data-grid-export-button) {
1891
+ padding: var(--lily-space-xs) var(--lily-space-md);
1892
+ border: var(--border) solid var(--lily-border);
1893
+ border-radius: var(--lily-radius-sm);
1894
+ background-color: var(--lily-surface);
1895
+ color: var(--lily-text);
1896
+ font: inherit;
1897
+ cursor: pointer;
1898
+ }
1899
+ :where(.data-grid-page-previous:disabled, .data-grid-page-next:disabled, .data-grid-export-button:disabled) {
1900
+ opacity: 0.5;
1901
+ cursor: not-allowed;
1902
+ }
1903
+ :where(.data-grid-column-visibility) {
1904
+ display: flex;
1905
+ flex-wrap: wrap;
1906
+ gap: var(--lily-space-sm);
1907
+ margin: 0;
1908
+ padding: var(--lily-space-xs) var(--lily-space-sm);
1909
+ border: var(--border) solid var(--lily-border);
1910
+ border-radius: var(--lily-radius-sm);
1911
+ }
1912
+ /* Pinned columns stay put while the rest scroll; the offset is logical, so it flips in right-to-left. */
1913
+ :where([data-pinned="start"]) {
1914
+ position: sticky;
1915
+ inset-inline-start: 0;
1916
+ z-index: 1;
1917
+ background-color: var(--lily-surface);
1918
+ }
1919
+ :where([data-pinned="end"]) {
1920
+ position: sticky;
1921
+ inset-inline-end: 0;
1922
+ z-index: 1;
1923
+ background-color: var(--lily-surface);
1924
+ }
1925
+ :where(th[data-pinned]) {
1926
+ z-index: 2;
1927
+ }
1928
+ /* A missing value: dimmed, and the grid's emptyValue text (for example a dash) reads as absence. */
1929
+ :where(.data-table-td[data-empty]) {
1930
+ opacity: 0.7;
1828
1931
  }
1829
1932
 
1830
1933
  /* --- Kanban specifics --------------------------------------------------- */
@@ -1838,6 +1941,20 @@
1838
1941
  min-width: 10rem;
1839
1942
  }
1840
1943
 
1944
+ /* Dragging a card: the column it would land in is outlined; one that refuses it
1945
+ (canMove, allowedColumns, a full strict WIP limit) is striped and shows the
1946
+ not-allowed cursor, so "you can't drop here" is visible before the drop. */
1947
+ :where(.kanban-table-td[data-drop-target]) {
1948
+ outline: 2px dashed var(--color-accent);
1949
+ outline-offset: -3px;
1950
+ }
1951
+ :where(.kanban-table-td[data-drop-blocked]) {
1952
+ outline: 2px solid var(--color-error);
1953
+ outline-offset: -3px;
1954
+ cursor: not-allowed;
1955
+ background-image: repeating-linear-gradient(135deg, transparent 0 6px, color-mix(in srgb, var(--color-error) 18%, transparent) 6px 8px);
1956
+ }
1957
+
1841
1958
  /* --- Gantt specifics ---------------------------------------------------- */
1842
1959
  /* Cells marked as bars are filled with the primary colour to render the
1843
1960
  schedule bar inline within the grid. */
@@ -1845,6 +1962,20 @@
1845
1962
  background-color: var(--color-primary);
1846
1963
  }
1847
1964
 
1965
+ /* Weekend, holiday and time-off shading (Gantt chart and calendar). A weekend
1966
+ is tinted; a day marked as a holiday or time off (data-unavailable /
1967
+ data-range) is striped as well, so no day is told apart by colour alone;
1968
+ a column only partly unavailable gets a bar under its header. */
1969
+ :where(.gantt-table-th[data-weekend], .gantt-table-td[data-weekend], .calendar-table-th[data-weekend], .calendar-table-td[data-weekend]) {
1970
+ background-color: color-mix(in srgb, var(--lily-surface) 92%, var(--lily-text));
1971
+ }
1972
+ :where(.gantt-table-th[data-unavailable], .gantt-table-td[data-unavailable], .calendar-table-td[data-range]) {
1973
+ background-image: repeating-linear-gradient(135deg, transparent 0 4px, color-mix(in srgb, var(--lily-text) 14%, transparent) 4px 5px);
1974
+ }
1975
+ :where(.gantt-table-th[data-partly-unavailable]) {
1976
+ box-shadow: inset 0 -3px 0 color-mix(in srgb, var(--lily-text) 45%, transparent);
1977
+ }
1978
+
1848
1979
  /* ==========================================================================
1849
1980
  * Cards, panels, surfaces
1850
1981
  * --------------------------------------------------------------------------
@@ -3034,6 +3165,7 @@
3034
3165
  .theme-picker,
3035
3166
  .locale-picker,
3036
3167
  .text-size-picker,
3168
+ .time-zone-picker,
3037
3169
  .search-picker,
3038
3170
  .link-picker,
3039
3171
  .menu-picker,
@@ -3049,6 +3181,7 @@
3049
3181
  .theme-picker-button,
3050
3182
  .locale-picker-button,
3051
3183
  .text-size-picker-button,
3184
+ .time-zone-picker-button,
3052
3185
  .search-picker-button,
3053
3186
  .link-picker-button,
3054
3187
  .menu-picker-button,
@@ -3087,6 +3220,7 @@
3087
3220
  .theme-picker-icon,
3088
3221
  .locale-picker-icon,
3089
3222
  .text-size-picker-icon,
3223
+ .time-zone-picker-icon,
3090
3224
  .motion-picker-icon,
3091
3225
  .link-picker-icon,
3092
3226
  .menu-picker-icon,
@@ -3454,6 +3588,7 @@
3454
3588
  .theme-picker-tooltip,
3455
3589
  .locale-picker-tooltip,
3456
3590
  .text-size-picker-tooltip,
3591
+ .time-zone-picker-tooltip,
3457
3592
  .motion-picker-tooltip,
3458
3593
  .link-picker-tooltip,
3459
3594
  .menu-picker-tooltip,
@@ -3481,6 +3616,7 @@
3481
3616
  .theme-picker-tooltip,
3482
3617
  .locale-picker-tooltip,
3483
3618
  .text-size-picker-tooltip,
3619
+ .time-zone-picker-tooltip,
3484
3620
  .motion-picker-tooltip,
3485
3621
  .link-picker-tooltip,
3486
3622
  .menu-picker-tooltip,
@@ -3500,6 +3636,7 @@
3500
3636
  .theme-picker-tooltip,
3501
3637
  .locale-picker-tooltip,
3502
3638
  .text-size-picker-tooltip,
3639
+ .time-zone-picker-tooltip,
3503
3640
  .motion-picker-tooltip,
3504
3641
  .link-picker-tooltip,
3505
3642
  .menu-picker-tooltip,
@@ -3556,6 +3693,7 @@
3556
3693
  .theme-picker-list,
3557
3694
  .locale-picker-list,
3558
3695
  .text-size-picker-list,
3696
+ .time-zone-picker-list,
3559
3697
  .motion-picker-list,
3560
3698
  .link-picker-list,
3561
3699
  .menu-picker-panel,
@@ -3585,6 +3723,7 @@
3585
3723
  .theme-picker-list,
3586
3724
  .locale-picker-list,
3587
3725
  .text-size-picker-list,
3726
+ .time-zone-picker-list,
3588
3727
  .motion-picker-list,
3589
3728
  .link-picker-list,
3590
3729
  .menu-picker-panel,
@@ -3605,6 +3744,7 @@
3605
3744
  :where(.theme-picker) { anchor-name: --lily-theme-picker; }
3606
3745
  :where(.locale-picker) { anchor-name: --lily-locale-picker; }
3607
3746
  :where(.text-size-picker) { anchor-name: --lily-text-size-picker; }
3747
+ :where(.time-zone-picker) { anchor-name: --lily-time-zone-picker; }
3608
3748
  :where(.motion-picker) { anchor-name: --lily-motion-picker; }
3609
3749
  :where(.link-picker) { anchor-name: --lily-link-picker; }
3610
3750
  :where(.menu-picker) { anchor-name: --lily-menu-picker; }
@@ -3614,6 +3754,7 @@
3614
3754
  :where(.theme-picker-list) { position-anchor: --lily-theme-picker; }
3615
3755
  :where(.locale-picker-list) { position-anchor: --lily-locale-picker; }
3616
3756
  :where(.text-size-picker-list) { position-anchor: --lily-text-size-picker; }
3757
+ :where(.time-zone-picker-list) { position-anchor: --lily-time-zone-picker; }
3617
3758
  :where(.motion-picker-list) { position-anchor: --lily-motion-picker; }
3618
3759
  :where(.link-picker-list) { position-anchor: --lily-link-picker; }
3619
3760
  :where(.menu-picker-panel) { position-anchor: --lily-menu-picker; }
@@ -3624,6 +3765,7 @@
3624
3765
  .theme-picker-list,
3625
3766
  .locale-picker-list,
3626
3767
  .text-size-picker-list,
3768
+ .time-zone-picker-list,
3627
3769
  .motion-picker-list,
3628
3770
  .link-picker-list,
3629
3771
  .menu-picker-panel,
@@ -3641,11 +3783,12 @@
3641
3783
  }
3642
3784
  }
3643
3785
 
3644
- :where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .motion-picker-list)
3786
+ :where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .time-zone-picker-list, .motion-picker-list)
3645
3787
  > :where(
3646
3788
  .theme-picker-option,
3647
3789
  .locale-picker-option,
3648
3790
  .text-size-picker-option,
3791
+ .time-zone-picker-option,
3649
3792
  .motion-picker-option
3650
3793
  ) {
3651
3794
  padding: var(--lily-space-xs) var(--lily-space-sm);
@@ -3655,7 +3798,7 @@
3655
3798
 
3656
3799
  /* data-active is the keyboard cursor (aria-activedescendant); focus
3657
3800
  stays on the listbox, so this is the only visible cue for it. */
3658
- :where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .motion-picker-list)
3801
+ :where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .time-zone-picker-list, .motion-picker-list)
3659
3802
  > :where([data-active]) {
3660
3803
  background-color: var(--lily-surface-alt);
3661
3804
  outline: var(--lily-focus-ring);
@@ -3664,7 +3807,7 @@
3664
3807
 
3665
3808
  /* aria-selected marks the applied theme/locale, which is not the
3666
3809
  same thing as the keyboard cursor. Both can be visible at once. */
3667
- :where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .motion-picker-list)
3810
+ :where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .time-zone-picker-list, .motion-picker-list)
3668
3811
  > :where([aria-selected="true"]) {
3669
3812
  font-weight: 600;
3670
3813
  background-color: var(--lily-surface-sunken);
@@ -4061,7 +4204,7 @@
4061
4204
  }
4062
4205
  /* Screen-reader-only — visually hidden but available to AT. The
4063
4206
  classic clip-rect pattern (works in every screen reader). */
4064
- :where(.screen-reader-span) {
4207
+ :where(.screen-reader-span, .middle-truncation-full) {
4065
4208
  position: absolute;
4066
4209
  width: 1px;
4067
4210
  height: 1px;
@@ -4072,6 +4215,42 @@
4072
4215
  white-space: nowrap;
4073
4216
  border: 0;
4074
4217
  }
4218
+ /* Middle truncation — a bounded one-line block; the shortened string is aria-hidden and the full
4219
+ text (hidden above) stays in the accessibility tree. */
4220
+ :where(.middle-truncation) {
4221
+ display: block;
4222
+ position: relative;
4223
+ overflow: hidden;
4224
+ white-space: nowrap;
4225
+ }
4226
+ /* Wheel picker — a scrolling listbox that snaps the chosen option to the centre. The selected option is filled with the
4227
+ primary colour (aria-selected, not colour alone: it is also the activedescendant and gets a bold weight). */
4228
+ :where(.wheel-picker-list) {
4229
+ max-block-size: 10em;
4230
+ overflow-y: auto;
4231
+ overscroll-behavior: contain;
4232
+ scroll-snap-type: y mandatory;
4233
+ border: 1px solid var(--color-base-300);
4234
+ border-radius: var(--lily-radius-md);
4235
+ }
4236
+ :where(.wheel-picker-list:focus-visible) {
4237
+ outline: 2px solid var(--lily-focus-ring);
4238
+ outline-offset: 2px;
4239
+ }
4240
+ :where(.wheel-picker-option) {
4241
+ padding: 0.5rem 1rem;
4242
+ scroll-snap-align: center;
4243
+ cursor: pointer;
4244
+ }
4245
+ :where(.wheel-picker-option[aria-selected="true"]) {
4246
+ background-color: var(--color-primary);
4247
+ color: var(--color-primary-content);
4248
+ font-weight: 600;
4249
+ }
4250
+ :where(.wheel-picker-option[aria-disabled="true"]) {
4251
+ opacity: 0.5;
4252
+ cursor: not-allowed;
4253
+ }
4075
4254
 
4076
4255
  /* ==========================================================================
4077
4256
  * Hero, figure, photo, media
@@ -4843,3 +5022,153 @@
4843
5022
  :where(a, code) {
4844
5023
  overflow-wrap: anywhere;
4845
5024
  }
5025
+
5026
+ /* ============================================================================
5027
+ * Helper packages — layout and look, shared verbatim by all themes.
5028
+ *
5029
+ * The data grid, kanban board, Gantt chart and calendar view are wide by nature.
5030
+ * Each root scrolls sideways inside its own box and its table sizes to its content,
5031
+ * so a narrow screen scrolls the table instead of wrapping every cell to a letter
5032
+ * (the overflow guard above lets cells break anywhere, which is right for prose and
5033
+ * wrong for a table that has a scroller). The toolbar controls of all four helpers
5034
+ * share the data grid's look, every button has a >=24px target (WCAG 2.2 2.5.8), and
5035
+ * the Gantt chart draws its bars from `data-in-range`, a milestone as a diamond and
5036
+ * today as a rule. :where() keeps specificity at zero, so any consumer rule wins.
5037
+ * ========================================================================= */
5038
+
5039
+ :where(.data-grid, .kanban-board, .gantt-chart, .calendar-view) {
5040
+ max-inline-size: 100%;
5041
+ overflow-x: auto;
5042
+ }
5043
+
5044
+ :where(.data-grid table, .kanban-board table, .gantt-chart table, .calendar-view table) {
5045
+ inline-size: max-content;
5046
+ min-inline-size: 100%;
5047
+ }
5048
+
5049
+ :where(.kanban-board-export, .gantt-chart-export, .gantt-chart-zoom, .calendar-view-export,
5050
+ .calendar-view-toolbar, .calendar-view-nav, .calendar-view-switcher) {
5051
+ display: flex;
5052
+ flex-wrap: wrap;
5053
+ gap: var(--lily-space-sm);
5054
+ align-items: center;
5055
+ margin-block-end: var(--lily-space-sm);
5056
+ }
5057
+
5058
+ :where(.kanban-board-search, .gantt-chart-search, .calendar-view-search) {
5059
+ padding: var(--lily-space-xs) var(--lily-space-sm);
5060
+ border: var(--border) solid var(--lily-border);
5061
+ border-radius: var(--lily-radius-sm);
5062
+ background-color: var(--lily-surface);
5063
+ color: var(--lily-text);
5064
+ font: inherit;
5065
+ min-block-size: 24px;
5066
+ }
5067
+
5068
+ :where(.kanban-board-export-button,
5069
+ .kanban-board-add-button,
5070
+ .kanban-board-undo-button,
5071
+ .kanban-board-collapse-button,
5072
+ .kanban-board-lane-toggle,
5073
+ .kanban-board-move-button,
5074
+ .gantt-chart-export-button,
5075
+ .gantt-chart-zoom-in-button,
5076
+ .gantt-chart-zoom-out-button,
5077
+ .gantt-chart-collapse-button,
5078
+ .gantt-chart-collapse-all-button,
5079
+ .gantt-chart-expand-all-button,
5080
+ .gantt-chart-save-button,
5081
+ .gantt-chart-cancel-button,
5082
+ .calendar-view-export-button,
5083
+ .calendar-view-previous-button,
5084
+ .calendar-view-next-button,
5085
+ .calendar-view-today-button,
5086
+ .calendar-view-switcher-button) {
5087
+ padding: var(--lily-space-xs) var(--lily-space-md);
5088
+ border: var(--border) solid var(--lily-border);
5089
+ border-radius: var(--lily-radius-sm);
5090
+ background-color: var(--lily-surface);
5091
+ color: var(--lily-text);
5092
+ font: inherit;
5093
+ cursor: pointer;
5094
+ min-inline-size: 24px;
5095
+ min-block-size: 24px;
5096
+ }
5097
+
5098
+ :where(.kanban-board-export-button:disabled,
5099
+ .kanban-board-add-button:disabled,
5100
+ .kanban-board-undo-button:disabled,
5101
+ .gantt-chart-export-button:disabled,
5102
+ .gantt-chart-zoom-in-button:disabled,
5103
+ .gantt-chart-zoom-out-button:disabled,
5104
+ .calendar-view-export-button:disabled,
5105
+ .calendar-view-previous-button[aria-disabled="true"],
5106
+ .calendar-view-next-button[aria-disabled="true"]) {
5107
+ opacity: 0.5;
5108
+ cursor: not-allowed;
5109
+ }
5110
+
5111
+ :where(.calendar-view-switcher-button[aria-pressed="true"]) {
5112
+ background-color: var(--color-base-300);
5113
+ font-weight: 600;
5114
+ }
5115
+
5116
+ :where(.kanban-board-status, .gantt-chart-status, .calendar-view-status) {
5117
+ margin-block-start: var(--lily-space-sm);
5118
+ font-size: 0.875em;
5119
+ opacity: 0.8;
5120
+ }
5121
+
5122
+ :where(.calendar-view-event) {
5123
+ display: block;
5124
+ padding: 0 var(--lily-space-xs);
5125
+ border-radius: var(--lily-radius-sm);
5126
+ background-color: color-mix(in srgb, var(--color-primary) 18%, transparent);
5127
+ font-size: 0.75rem;
5128
+ }
5129
+
5130
+ :where(.gantt-table-th) {
5131
+ min-inline-size: 2rem;
5132
+ padding-inline: 0.25rem;
5133
+ font-size: 0.75rem;
5134
+ text-align: center;
5135
+ white-space: nowrap;
5136
+ }
5137
+
5138
+ :where(.gantt-table-th[scope="row"], .gantt-table-th:first-child) {
5139
+ min-inline-size: 10rem;
5140
+ padding-inline: var(--lily-space-sm);
5141
+ font-size: inherit;
5142
+ text-align: start;
5143
+ white-space: normal;
5144
+ }
5145
+
5146
+ :where(.gantt-table-td) {
5147
+ min-block-size: 1.7rem;
5148
+ padding: 0;
5149
+ }
5150
+
5151
+ :where(.gantt-table-td[data-in-range]) {
5152
+ background-color: var(--color-primary);
5153
+ }
5154
+
5155
+ :where(.gantt-table-td[data-in-range][data-milestone]) {
5156
+ clip-path: polygon(50% 8%, 92% 50%, 50% 92%, 8% 50%);
5157
+ }
5158
+
5159
+ :where(.gantt-table-td[data-today]) {
5160
+ border-inline-start: 2px solid var(--color-accent);
5161
+ }
5162
+
5163
+ /* The time zone picker's options are long ("UTC+10:30 – Lord Howe Daylight Time"): size the list to its widest
5164
+ option up to a cap, then wrap, rather than clipping the name or running off a phone. */
5165
+ :where(.time-zone-picker-list) {
5166
+ inline-size: max-content;
5167
+ max-inline-size: min(26rem, 90vw);
5168
+ max-block-size: min(24rem, 70vh);
5169
+ overflow-y: auto;
5170
+ }
5171
+
5172
+ :where(.time-zone-picker-option) {
5173
+ overflow-wrap: anywhere;
5174
+ }