@lilydesignsystem/themes 0.4.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 (59) hide show
  1. package/dist/abyss.css +360 -9
  2. package/dist/acid.css +360 -9
  3. package/dist/adobe-spectrum.css +360 -9
  4. package/dist/ant-design.css +3961 -0
  5. package/dist/aqua.css +360 -9
  6. package/dist/atlassian.css +3961 -0
  7. package/dist/autumn.css +360 -9
  8. package/dist/black.css +360 -9
  9. package/dist/bumblebee.css +360 -9
  10. package/dist/business.css +360 -9
  11. package/dist/cappuccino.css +3961 -0
  12. package/dist/caramellatte.css +360 -9
  13. package/dist/cmyk.css +360 -9
  14. package/dist/coffee.css +360 -9
  15. package/dist/corporate.css +360 -9
  16. package/dist/cupcake.css +360 -9
  17. package/dist/cyberpunk.css +360 -9
  18. package/dist/dark.css +360 -9
  19. package/dist/dim.css +360 -9
  20. package/dist/dracula.css +360 -9
  21. package/dist/emerald.css +360 -9
  22. package/dist/excel.css +3961 -0
  23. package/dist/fantasy.css +360 -9
  24. package/dist/fluent.css +3961 -0
  25. package/dist/forest.css +360 -9
  26. package/dist/garden.css +360 -9
  27. package/dist/github-primer.css +3961 -0
  28. package/dist/halloween.css +360 -9
  29. package/dist/ibm-carbon.css +3961 -0
  30. package/dist/lemonade.css +360 -9
  31. package/dist/light.css +360 -9
  32. package/dist/linear.css +3961 -0
  33. package/dist/lofi.css +360 -9
  34. package/dist/luxury.css +360 -9
  35. package/dist/mozilla-protocol.css +360 -9
  36. package/dist/night.css +360 -9
  37. package/dist/nord.css +360 -9
  38. package/dist/notion.css +3961 -0
  39. package/dist/pastel.css +360 -9
  40. package/dist/retro.css +360 -9
  41. package/dist/salesforce.css +3961 -0
  42. package/dist/sap-fiori.css +3961 -0
  43. package/dist/silk.css +360 -9
  44. package/dist/sunset.css +360 -9
  45. package/dist/synthwave.css +360 -9
  46. package/dist/united-kingdom-government-digital-service.css +360 -9
  47. package/dist/united-kingdom-national-health-service-england-for-patients.css +360 -9
  48. package/dist/united-kingdom-national-health-service-england-for-practitioners.css +360 -9
  49. package/dist/united-kingdom-national-health-service-scotland-for-patients.css +360 -9
  50. package/dist/united-kingdom-national-health-service-scotland-for-practitioners.css +360 -9
  51. package/dist/united-kingdom-national-health-service-wales-for-patients.css +362 -11
  52. package/dist/united-kingdom-national-health-service-wales-for-practitioners.css +362 -11
  53. package/dist/united-states-web-design-system.css +360 -9
  54. package/dist/valentine.css +360 -9
  55. package/dist/vercel.css +3961 -0
  56. package/dist/winter.css +360 -9
  57. package/dist/wireframe.css +360 -9
  58. package/index.md +14 -10
  59. package/package.json +5 -4
@@ -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,8 +3165,11 @@
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,
3171
+ .menu-picker,
3172
+ .settings-picker,
3039
3173
  .share-picker,
3040
3174
  .date-time-picker
3041
3175
  ) {
@@ -3047,8 +3181,11 @@
3047
3181
  .theme-picker-button,
3048
3182
  .locale-picker-button,
3049
3183
  .text-size-picker-button,
3184
+ .time-zone-picker-button,
3050
3185
  .search-picker-button,
3051
3186
  .link-picker-button,
3187
+ .menu-picker-button,
3188
+ .settings-picker-button,
3052
3189
  .share-picker-button,
3053
3190
  .date-time-picker-button
3054
3191
  ) {
@@ -3083,8 +3220,11 @@
3083
3220
  .theme-picker-icon,
3084
3221
  .locale-picker-icon,
3085
3222
  .text-size-picker-icon,
3223
+ .time-zone-picker-icon,
3086
3224
  .motion-picker-icon,
3087
3225
  .link-picker-icon,
3226
+ .menu-picker-icon,
3227
+ .settings-picker-icon,
3088
3228
  .share-picker-icon,
3089
3229
  .search-picker-icon
3090
3230
  ) {
@@ -3448,8 +3588,11 @@
3448
3588
  .theme-picker-tooltip,
3449
3589
  .locale-picker-tooltip,
3450
3590
  .text-size-picker-tooltip,
3591
+ .time-zone-picker-tooltip,
3451
3592
  .motion-picker-tooltip,
3452
3593
  .link-picker-tooltip,
3594
+ .menu-picker-tooltip,
3595
+ .settings-picker-tooltip,
3453
3596
  .share-picker-tooltip,
3454
3597
  .search-picker-tooltip,
3455
3598
  .date-time-picker-tooltip
@@ -3473,8 +3616,11 @@
3473
3616
  .theme-picker-tooltip,
3474
3617
  .locale-picker-tooltip,
3475
3618
  .text-size-picker-tooltip,
3619
+ .time-zone-picker-tooltip,
3476
3620
  .motion-picker-tooltip,
3477
3621
  .link-picker-tooltip,
3622
+ .menu-picker-tooltip,
3623
+ .settings-picker-tooltip,
3478
3624
  .share-picker-tooltip,
3479
3625
  .search-picker-tooltip,
3480
3626
  .date-time-picker-tooltip
@@ -3490,8 +3636,11 @@
3490
3636
  .theme-picker-tooltip,
3491
3637
  .locale-picker-tooltip,
3492
3638
  .text-size-picker-tooltip,
3639
+ .time-zone-picker-tooltip,
3493
3640
  .motion-picker-tooltip,
3494
3641
  .link-picker-tooltip,
3642
+ .menu-picker-tooltip,
3643
+ .settings-picker-tooltip,
3495
3644
  .share-picker-tooltip,
3496
3645
  .search-picker-tooltip,
3497
3646
  .date-time-picker-tooltip
@@ -3544,8 +3693,11 @@
3544
3693
  .theme-picker-list,
3545
3694
  .locale-picker-list,
3546
3695
  .text-size-picker-list,
3696
+ .time-zone-picker-list,
3547
3697
  .motion-picker-list,
3548
3698
  .link-picker-list,
3699
+ .menu-picker-panel,
3700
+ .settings-picker-panel,
3549
3701
  .share-picker-list,
3550
3702
  .search-picker-panel
3551
3703
  ) {
@@ -3571,8 +3723,11 @@
3571
3723
  .theme-picker-list,
3572
3724
  .locale-picker-list,
3573
3725
  .text-size-picker-list,
3726
+ .time-zone-picker-list,
3574
3727
  .motion-picker-list,
3575
3728
  .link-picker-list,
3729
+ .menu-picker-panel,
3730
+ .settings-picker-panel,
3576
3731
  .share-picker-list,
3577
3732
  .search-picker-panel
3578
3733
  )[hidden] {
@@ -3589,23 +3744,32 @@
3589
3744
  :where(.theme-picker) { anchor-name: --lily-theme-picker; }
3590
3745
  :where(.locale-picker) { anchor-name: --lily-locale-picker; }
3591
3746
  :where(.text-size-picker) { anchor-name: --lily-text-size-picker; }
3747
+ :where(.time-zone-picker) { anchor-name: --lily-time-zone-picker; }
3592
3748
  :where(.motion-picker) { anchor-name: --lily-motion-picker; }
3593
3749
  :where(.link-picker) { anchor-name: --lily-link-picker; }
3750
+ :where(.menu-picker) { anchor-name: --lily-menu-picker; }
3751
+ :where(.settings-picker) { anchor-name: --lily-settings-picker; }
3594
3752
  :where(.share-picker) { anchor-name: --lily-share-picker; }
3595
3753
  :where(.search-picker) { anchor-name: --lily-search-picker; }
3596
3754
  :where(.theme-picker-list) { position-anchor: --lily-theme-picker; }
3597
3755
  :where(.locale-picker-list) { position-anchor: --lily-locale-picker; }
3598
3756
  :where(.text-size-picker-list) { position-anchor: --lily-text-size-picker; }
3757
+ :where(.time-zone-picker-list) { position-anchor: --lily-time-zone-picker; }
3599
3758
  :where(.motion-picker-list) { position-anchor: --lily-motion-picker; }
3600
3759
  :where(.link-picker-list) { position-anchor: --lily-link-picker; }
3760
+ :where(.menu-picker-panel) { position-anchor: --lily-menu-picker; }
3761
+ :where(.settings-picker-panel) { position-anchor: --lily-settings-picker; }
3601
3762
  :where(.share-picker-list) { position-anchor: --lily-share-picker; }
3602
3763
  :where(.search-picker-panel) { position-anchor: --lily-search-picker; }
3603
3764
  :where(
3604
3765
  .theme-picker-list,
3605
3766
  .locale-picker-list,
3606
3767
  .text-size-picker-list,
3768
+ .time-zone-picker-list,
3607
3769
  .motion-picker-list,
3608
3770
  .link-picker-list,
3771
+ .menu-picker-panel,
3772
+ .settings-picker-panel,
3609
3773
  .share-picker-list,
3610
3774
  .search-picker-panel
3611
3775
  ) {
@@ -3619,11 +3783,12 @@
3619
3783
  }
3620
3784
  }
3621
3785
 
3622
- :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)
3623
3787
  > :where(
3624
3788
  .theme-picker-option,
3625
3789
  .locale-picker-option,
3626
3790
  .text-size-picker-option,
3791
+ .time-zone-picker-option,
3627
3792
  .motion-picker-option
3628
3793
  ) {
3629
3794
  padding: var(--lily-space-xs) var(--lily-space-sm);
@@ -3633,7 +3798,7 @@
3633
3798
 
3634
3799
  /* data-active is the keyboard cursor (aria-activedescendant); focus
3635
3800
  stays on the listbox, so this is the only visible cue for it. */
3636
- :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)
3637
3802
  > :where([data-active]) {
3638
3803
  background-color: var(--lily-surface-alt);
3639
3804
  outline: var(--lily-focus-ring);
@@ -3642,7 +3807,7 @@
3642
3807
 
3643
3808
  /* aria-selected marks the applied theme/locale, which is not the
3644
3809
  same thing as the keyboard cursor. Both can be visible at once. */
3645
- :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)
3646
3811
  > :where([aria-selected="true"]) {
3647
3812
  font-weight: 600;
3648
3813
  background-color: var(--lily-surface-sunken);
@@ -4039,7 +4204,7 @@
4039
4204
  }
4040
4205
  /* Screen-reader-only — visually hidden but available to AT. The
4041
4206
  classic clip-rect pattern (works in every screen reader). */
4042
- :where(.screen-reader-span) {
4207
+ :where(.screen-reader-span, .middle-truncation-full) {
4043
4208
  position: absolute;
4044
4209
  width: 1px;
4045
4210
  height: 1px;
@@ -4050,6 +4215,42 @@
4050
4215
  white-space: nowrap;
4051
4216
  border: 0;
4052
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
+ }
4053
4254
 
4054
4255
  /* ==========================================================================
4055
4256
  * Hero, figure, photo, media
@@ -4821,3 +5022,153 @@
4821
5022
  :where(a, code) {
4822
5023
  overflow-wrap: anywhere;
4823
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
+ }