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