@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.
- package/dist/abyss.css +338 -9
- package/dist/acid.css +338 -9
- package/dist/adobe-spectrum.css +338 -9
- package/dist/ant-design.css +338 -9
- package/dist/aqua.css +338 -9
- package/dist/atlassian.css +338 -9
- package/dist/autumn.css +338 -9
- package/dist/black.css +338 -9
- package/dist/bumblebee.css +338 -9
- package/dist/business.css +338 -9
- package/dist/cappuccino.css +338 -9
- package/dist/caramellatte.css +338 -9
- package/dist/cmyk.css +338 -9
- package/dist/coffee.css +338 -9
- package/dist/corporate.css +338 -9
- package/dist/cupcake.css +338 -9
- package/dist/cyberpunk.css +338 -9
- package/dist/dark.css +338 -9
- package/dist/dim.css +338 -9
- package/dist/dracula.css +338 -9
- package/dist/emerald.css +338 -9
- package/dist/excel.css +338 -9
- package/dist/fantasy.css +338 -9
- package/dist/fluent.css +338 -9
- package/dist/forest.css +338 -9
- package/dist/garden.css +338 -9
- package/dist/github-primer.css +338 -9
- package/dist/halloween.css +338 -9
- package/dist/ibm-carbon.css +338 -9
- package/dist/lemonade.css +338 -9
- package/dist/light.css +338 -9
- package/dist/linear.css +338 -9
- package/dist/lofi.css +338 -9
- package/dist/luxury.css +338 -9
- package/dist/mozilla-protocol.css +338 -9
- package/dist/night.css +338 -9
- package/dist/nord.css +338 -9
- package/dist/notion.css +338 -9
- package/dist/pastel.css +338 -9
- package/dist/retro.css +338 -9
- package/dist/salesforce.css +338 -9
- package/dist/sap-fiori.css +338 -9
- package/dist/silk.css +338 -9
- package/dist/sunset.css +338 -9
- package/dist/synthwave.css +338 -9
- package/dist/united-kingdom-government-digital-service.css +338 -9
- package/dist/united-kingdom-national-health-service-england-for-patients.css +338 -9
- package/dist/united-kingdom-national-health-service-england-for-practitioners.css +338 -9
- package/dist/united-kingdom-national-health-service-scotland-for-patients.css +338 -9
- package/dist/united-kingdom-national-health-service-scotland-for-practitioners.css +338 -9
- package/dist/united-kingdom-national-health-service-wales-for-patients.css +340 -11
- package/dist/united-kingdom-national-health-service-wales-for-practitioners.css +340 -11
- package/dist/united-states-web-design-system.css +338 -9
- package/dist/valentine.css +338 -9
- package/dist/vercel.css +338 -9
- package/dist/winter.css +338 -9
- package/dist/wireframe.css +338 -9
- 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
|
|
1824
|
-
|
|
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
|
|
1827
|
-
outline-offset: -
|
|
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
|
+
}
|