@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-patients
|
|
2
|
+
* Theme: united-kingdom-national-health-service-wales-for-patients
|
|
3
3
|
* Brand: NHS Wales / GIG Cymru (Gwasanaeth Iechyd Gwladol Cymru) — patients
|
|
4
4
|
* Format: Lily standalone theme
|
|
5
5
|
*
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
* When NOT to use this theme:
|
|
59
59
|
*
|
|
60
60
|
* - Clinician-only workstations, EPR / eMAR / ePMA, results review
|
|
61
|
-
* (use `united-kingdom-national-health-service-wales-practitioners.css`)
|
|
61
|
+
* (use `united-kingdom-national-health-service-wales-for-practitioners.css`)
|
|
62
62
|
* - Any surface where staff need to scan many rows of clinical data —
|
|
63
63
|
* this theme's rhythm makes that slow, not fast
|
|
64
64
|
*
|
|
@@ -1441,7 +1441,7 @@
|
|
|
1441
1441
|
color: var(--lily-text-muted);
|
|
1442
1442
|
}
|
|
1443
1443
|
/* Final crumb (the current page) — muted because it isn't a link. */
|
|
1444
|
-
:where(.breadcrumb-list-item[aria-current="page"]) {
|
|
1444
|
+
:where(.breadcrumb-list-item[data-current], .breadcrumb-list-item[aria-current="page"]) {
|
|
1445
1445
|
color: var(--lily-text-muted);
|
|
1446
1446
|
}
|
|
1447
1447
|
|
|
@@ -1710,11 +1710,114 @@
|
|
|
1710
1710
|
background-color: var(--color-primary);
|
|
1711
1711
|
color: var(--color-primary-content);
|
|
1712
1712
|
}
|
|
1713
|
-
/* Today — outlined
|
|
1714
|
-
|
|
1713
|
+
/* Today — outlined and bold, never filled, so a selected non-today date still
|
|
1714
|
+
reads as "selected". The ring takes the cell's own text colour (currentColor),
|
|
1715
|
+
so it holds its contrast on a light page, a dark page and a selected cell
|
|
1716
|
+
alike, and the bold number says it without colour. */
|
|
1715
1717
|
:where(.calendar-table-td[aria-current="date"]) {
|
|
1716
|
-
outline: 2px solid
|
|
1717
|
-
outline-offset: -
|
|
1718
|
+
outline: 2px solid currentColor;
|
|
1719
|
+
outline-offset: -3px;
|
|
1720
|
+
font-weight: 700;
|
|
1721
|
+
}
|
|
1722
|
+
/* Fit a phone: day cells shrink and wrap instead of forcing the grid wider. */
|
|
1723
|
+
:where(.calendar-table) {
|
|
1724
|
+
table-layout: fixed;
|
|
1725
|
+
}
|
|
1726
|
+
:where(.calendar-table-td, .calendar-table-th) {
|
|
1727
|
+
min-width: 0;
|
|
1728
|
+
overflow-wrap: anywhere;
|
|
1729
|
+
}
|
|
1730
|
+
|
|
1731
|
+
/* --- Data grid: toolbar, sorting, pagination, column visibility, pinned columns ----- */
|
|
1732
|
+
:where(.data-grid-toolbar) {
|
|
1733
|
+
display: flex;
|
|
1734
|
+
flex-wrap: wrap;
|
|
1735
|
+
gap: var(--lily-space-sm);
|
|
1736
|
+
align-items: center;
|
|
1737
|
+
margin-block-end: var(--lily-space-sm);
|
|
1738
|
+
}
|
|
1739
|
+
:where(.data-grid-search, .data-grid-search-field) {
|
|
1740
|
+
padding: var(--lily-space-xs) var(--lily-space-sm);
|
|
1741
|
+
border: var(--border) solid var(--lily-border);
|
|
1742
|
+
border-radius: var(--lily-radius-sm);
|
|
1743
|
+
background-color: var(--lily-surface);
|
|
1744
|
+
color: var(--lily-text);
|
|
1745
|
+
font: inherit;
|
|
1746
|
+
}
|
|
1747
|
+
/* A sortable header is a button that looks like its text; the arrow follows aria-sort,
|
|
1748
|
+
so the state is in the markup for assistive technology and on screen for everyone. */
|
|
1749
|
+
:where(.data-grid-sort-button) {
|
|
1750
|
+
padding: 0;
|
|
1751
|
+
border: 0;
|
|
1752
|
+
background: none;
|
|
1753
|
+
color: inherit;
|
|
1754
|
+
font: inherit;
|
|
1755
|
+
text-align: start;
|
|
1756
|
+
cursor: pointer;
|
|
1757
|
+
}
|
|
1758
|
+
:where(.data-grid-sort-button:focus-visible) {
|
|
1759
|
+
outline: 2px solid var(--color-accent);
|
|
1760
|
+
outline-offset: 2px;
|
|
1761
|
+
}
|
|
1762
|
+
:where([aria-sort="none"] .data-grid-sort-button)::after {
|
|
1763
|
+
content: " \21C5";
|
|
1764
|
+
opacity: 0.5;
|
|
1765
|
+
}
|
|
1766
|
+
:where([aria-sort="ascending"] .data-grid-sort-button)::after {
|
|
1767
|
+
content: " \25B2";
|
|
1768
|
+
}
|
|
1769
|
+
:where([aria-sort="descending"] .data-grid-sort-button)::after {
|
|
1770
|
+
content: " \25BC";
|
|
1771
|
+
}
|
|
1772
|
+
:where(.data-grid-pagination) {
|
|
1773
|
+
display: flex;
|
|
1774
|
+
flex-wrap: wrap;
|
|
1775
|
+
gap: var(--lily-space-sm);
|
|
1776
|
+
align-items: center;
|
|
1777
|
+
justify-content: flex-end;
|
|
1778
|
+
margin-block-start: var(--lily-space-sm);
|
|
1779
|
+
}
|
|
1780
|
+
:where(.data-grid-page-previous, .data-grid-page-next, .data-grid-export-button) {
|
|
1781
|
+
padding: var(--lily-space-xs) var(--lily-space-md);
|
|
1782
|
+
border: var(--border) solid var(--lily-border);
|
|
1783
|
+
border-radius: var(--lily-radius-sm);
|
|
1784
|
+
background-color: var(--lily-surface);
|
|
1785
|
+
color: var(--lily-text);
|
|
1786
|
+
font: inherit;
|
|
1787
|
+
cursor: pointer;
|
|
1788
|
+
}
|
|
1789
|
+
:where(.data-grid-page-previous:disabled, .data-grid-page-next:disabled, .data-grid-export-button:disabled) {
|
|
1790
|
+
opacity: 0.5;
|
|
1791
|
+
cursor: not-allowed;
|
|
1792
|
+
}
|
|
1793
|
+
:where(.data-grid-column-visibility) {
|
|
1794
|
+
display: flex;
|
|
1795
|
+
flex-wrap: wrap;
|
|
1796
|
+
gap: var(--lily-space-sm);
|
|
1797
|
+
margin: 0;
|
|
1798
|
+
padding: var(--lily-space-xs) var(--lily-space-sm);
|
|
1799
|
+
border: var(--border) solid var(--lily-border);
|
|
1800
|
+
border-radius: var(--lily-radius-sm);
|
|
1801
|
+
}
|
|
1802
|
+
/* Pinned columns stay put while the rest scroll; the offset is logical, so it flips in right-to-left. */
|
|
1803
|
+
:where([data-pinned="start"]) {
|
|
1804
|
+
position: sticky;
|
|
1805
|
+
inset-inline-start: 0;
|
|
1806
|
+
z-index: 1;
|
|
1807
|
+
background-color: var(--lily-surface);
|
|
1808
|
+
}
|
|
1809
|
+
:where([data-pinned="end"]) {
|
|
1810
|
+
position: sticky;
|
|
1811
|
+
inset-inline-end: 0;
|
|
1812
|
+
z-index: 1;
|
|
1813
|
+
background-color: var(--lily-surface);
|
|
1814
|
+
}
|
|
1815
|
+
:where(th[data-pinned]) {
|
|
1816
|
+
z-index: 2;
|
|
1817
|
+
}
|
|
1818
|
+
/* A missing value: dimmed, and the grid's emptyValue text (for example a dash) reads as absence. */
|
|
1819
|
+
:where(.data-table-td[data-empty]) {
|
|
1820
|
+
opacity: 0.7;
|
|
1718
1821
|
}
|
|
1719
1822
|
|
|
1720
1823
|
/* --- Kanban specifics --------------------------------------------------- */
|
|
@@ -1728,6 +1831,20 @@
|
|
|
1728
1831
|
min-width: 14rem;
|
|
1729
1832
|
}
|
|
1730
1833
|
|
|
1834
|
+
/* Dragging a card: the column it would land in is outlined; one that refuses it
|
|
1835
|
+
(canMove, allowedColumns, a full strict WIP limit) is striped and shows the
|
|
1836
|
+
not-allowed cursor, so "you can't drop here" is visible before the drop. */
|
|
1837
|
+
:where(.kanban-table-td[data-drop-target]) {
|
|
1838
|
+
outline: 2px dashed var(--color-accent);
|
|
1839
|
+
outline-offset: -3px;
|
|
1840
|
+
}
|
|
1841
|
+
:where(.kanban-table-td[data-drop-blocked]) {
|
|
1842
|
+
outline: 2px solid var(--color-error);
|
|
1843
|
+
outline-offset: -3px;
|
|
1844
|
+
cursor: not-allowed;
|
|
1845
|
+
background-image: repeating-linear-gradient(135deg, transparent 0 6px, color-mix(in srgb, var(--color-error) 18%, transparent) 6px 8px);
|
|
1846
|
+
}
|
|
1847
|
+
|
|
1731
1848
|
/* --- Gantt specifics ---------------------------------------------------- */
|
|
1732
1849
|
/* Cells marked as bars are filled with the primary colour to render the
|
|
1733
1850
|
schedule bar inline within the grid. */
|
|
@@ -1735,6 +1852,20 @@
|
|
|
1735
1852
|
background-color: var(--color-primary);
|
|
1736
1853
|
}
|
|
1737
1854
|
|
|
1855
|
+
/* Weekend, holiday and time-off shading (Gantt chart and calendar). A weekend
|
|
1856
|
+
is tinted; a day marked as a holiday or time off (data-unavailable /
|
|
1857
|
+
data-range) is striped as well, so no day is told apart by colour alone;
|
|
1858
|
+
a column only partly unavailable gets a bar under its header. */
|
|
1859
|
+
:where(.gantt-table-th[data-weekend], .gantt-table-td[data-weekend], .calendar-table-th[data-weekend], .calendar-table-td[data-weekend]) {
|
|
1860
|
+
background-color: color-mix(in srgb, var(--lily-surface) 92%, var(--lily-text));
|
|
1861
|
+
}
|
|
1862
|
+
:where(.gantt-table-th[data-unavailable], .gantt-table-td[data-unavailable], .calendar-table-td[data-range]) {
|
|
1863
|
+
background-image: repeating-linear-gradient(135deg, transparent 0 4px, color-mix(in srgb, var(--lily-text) 14%, transparent) 4px 5px);
|
|
1864
|
+
}
|
|
1865
|
+
:where(.gantt-table-th[data-partly-unavailable]) {
|
|
1866
|
+
box-shadow: inset 0 -3px 0 color-mix(in srgb, var(--lily-text) 45%, transparent);
|
|
1867
|
+
}
|
|
1868
|
+
|
|
1738
1869
|
/* ==========================================================================
|
|
1739
1870
|
* Cards, panels, surfaces
|
|
1740
1871
|
* --------------------------------------------------------------------------
|
|
@@ -2892,8 +3023,11 @@
|
|
|
2892
3023
|
.theme-picker,
|
|
2893
3024
|
.locale-picker,
|
|
2894
3025
|
.text-size-picker,
|
|
3026
|
+
.time-zone-picker,
|
|
2895
3027
|
.search-picker,
|
|
2896
3028
|
.link-picker,
|
|
3029
|
+
.menu-picker,
|
|
3030
|
+
.settings-picker,
|
|
2897
3031
|
.share-picker,
|
|
2898
3032
|
.date-time-picker
|
|
2899
3033
|
) {
|
|
@@ -2905,8 +3039,11 @@
|
|
|
2905
3039
|
.theme-picker-button,
|
|
2906
3040
|
.locale-picker-button,
|
|
2907
3041
|
.text-size-picker-button,
|
|
3042
|
+
.time-zone-picker-button,
|
|
2908
3043
|
.search-picker-button,
|
|
2909
3044
|
.link-picker-button,
|
|
3045
|
+
.menu-picker-button,
|
|
3046
|
+
.settings-picker-button,
|
|
2910
3047
|
.share-picker-button,
|
|
2911
3048
|
.date-time-picker-button
|
|
2912
3049
|
) {
|
|
@@ -2941,8 +3078,11 @@
|
|
|
2941
3078
|
.theme-picker-icon,
|
|
2942
3079
|
.locale-picker-icon,
|
|
2943
3080
|
.text-size-picker-icon,
|
|
3081
|
+
.time-zone-picker-icon,
|
|
2944
3082
|
.motion-picker-icon,
|
|
2945
3083
|
.link-picker-icon,
|
|
3084
|
+
.menu-picker-icon,
|
|
3085
|
+
.settings-picker-icon,
|
|
2946
3086
|
.share-picker-icon,
|
|
2947
3087
|
.search-picker-icon
|
|
2948
3088
|
) {
|
|
@@ -3306,8 +3446,11 @@
|
|
|
3306
3446
|
.theme-picker-tooltip,
|
|
3307
3447
|
.locale-picker-tooltip,
|
|
3308
3448
|
.text-size-picker-tooltip,
|
|
3449
|
+
.time-zone-picker-tooltip,
|
|
3309
3450
|
.motion-picker-tooltip,
|
|
3310
3451
|
.link-picker-tooltip,
|
|
3452
|
+
.menu-picker-tooltip,
|
|
3453
|
+
.settings-picker-tooltip,
|
|
3311
3454
|
.share-picker-tooltip,
|
|
3312
3455
|
.search-picker-tooltip,
|
|
3313
3456
|
.date-time-picker-tooltip
|
|
@@ -3331,8 +3474,11 @@
|
|
|
3331
3474
|
.theme-picker-tooltip,
|
|
3332
3475
|
.locale-picker-tooltip,
|
|
3333
3476
|
.text-size-picker-tooltip,
|
|
3477
|
+
.time-zone-picker-tooltip,
|
|
3334
3478
|
.motion-picker-tooltip,
|
|
3335
3479
|
.link-picker-tooltip,
|
|
3480
|
+
.menu-picker-tooltip,
|
|
3481
|
+
.settings-picker-tooltip,
|
|
3336
3482
|
.share-picker-tooltip,
|
|
3337
3483
|
.search-picker-tooltip,
|
|
3338
3484
|
.date-time-picker-tooltip
|
|
@@ -3348,8 +3494,11 @@
|
|
|
3348
3494
|
.theme-picker-tooltip,
|
|
3349
3495
|
.locale-picker-tooltip,
|
|
3350
3496
|
.text-size-picker-tooltip,
|
|
3497
|
+
.time-zone-picker-tooltip,
|
|
3351
3498
|
.motion-picker-tooltip,
|
|
3352
3499
|
.link-picker-tooltip,
|
|
3500
|
+
.menu-picker-tooltip,
|
|
3501
|
+
.settings-picker-tooltip,
|
|
3353
3502
|
.share-picker-tooltip,
|
|
3354
3503
|
.search-picker-tooltip,
|
|
3355
3504
|
.date-time-picker-tooltip
|
|
@@ -3402,8 +3551,11 @@
|
|
|
3402
3551
|
.theme-picker-list,
|
|
3403
3552
|
.locale-picker-list,
|
|
3404
3553
|
.text-size-picker-list,
|
|
3554
|
+
.time-zone-picker-list,
|
|
3405
3555
|
.motion-picker-list,
|
|
3406
3556
|
.link-picker-list,
|
|
3557
|
+
.menu-picker-panel,
|
|
3558
|
+
.settings-picker-panel,
|
|
3407
3559
|
.share-picker-list,
|
|
3408
3560
|
.search-picker-panel
|
|
3409
3561
|
) {
|
|
@@ -3429,8 +3581,11 @@
|
|
|
3429
3581
|
.theme-picker-list,
|
|
3430
3582
|
.locale-picker-list,
|
|
3431
3583
|
.text-size-picker-list,
|
|
3584
|
+
.time-zone-picker-list,
|
|
3432
3585
|
.motion-picker-list,
|
|
3433
3586
|
.link-picker-list,
|
|
3587
|
+
.menu-picker-panel,
|
|
3588
|
+
.settings-picker-panel,
|
|
3434
3589
|
.share-picker-list,
|
|
3435
3590
|
.search-picker-panel
|
|
3436
3591
|
)[hidden] {
|
|
@@ -3447,23 +3602,32 @@
|
|
|
3447
3602
|
:where(.theme-picker) { anchor-name: --lily-theme-picker; }
|
|
3448
3603
|
:where(.locale-picker) { anchor-name: --lily-locale-picker; }
|
|
3449
3604
|
:where(.text-size-picker) { anchor-name: --lily-text-size-picker; }
|
|
3605
|
+
:where(.time-zone-picker) { anchor-name: --lily-time-zone-picker; }
|
|
3450
3606
|
:where(.motion-picker) { anchor-name: --lily-motion-picker; }
|
|
3451
3607
|
:where(.link-picker) { anchor-name: --lily-link-picker; }
|
|
3608
|
+
:where(.menu-picker) { anchor-name: --lily-menu-picker; }
|
|
3609
|
+
:where(.settings-picker) { anchor-name: --lily-settings-picker; }
|
|
3452
3610
|
:where(.share-picker) { anchor-name: --lily-share-picker; }
|
|
3453
3611
|
:where(.search-picker) { anchor-name: --lily-search-picker; }
|
|
3454
3612
|
:where(.theme-picker-list) { position-anchor: --lily-theme-picker; }
|
|
3455
3613
|
:where(.locale-picker-list) { position-anchor: --lily-locale-picker; }
|
|
3456
3614
|
:where(.text-size-picker-list) { position-anchor: --lily-text-size-picker; }
|
|
3615
|
+
:where(.time-zone-picker-list) { position-anchor: --lily-time-zone-picker; }
|
|
3457
3616
|
:where(.motion-picker-list) { position-anchor: --lily-motion-picker; }
|
|
3458
3617
|
:where(.link-picker-list) { position-anchor: --lily-link-picker; }
|
|
3618
|
+
:where(.menu-picker-panel) { position-anchor: --lily-menu-picker; }
|
|
3619
|
+
:where(.settings-picker-panel) { position-anchor: --lily-settings-picker; }
|
|
3459
3620
|
:where(.share-picker-list) { position-anchor: --lily-share-picker; }
|
|
3460
3621
|
:where(.search-picker-panel) { position-anchor: --lily-search-picker; }
|
|
3461
3622
|
:where(
|
|
3462
3623
|
.theme-picker-list,
|
|
3463
3624
|
.locale-picker-list,
|
|
3464
3625
|
.text-size-picker-list,
|
|
3626
|
+
.time-zone-picker-list,
|
|
3465
3627
|
.motion-picker-list,
|
|
3466
3628
|
.link-picker-list,
|
|
3629
|
+
.menu-picker-panel,
|
|
3630
|
+
.settings-picker-panel,
|
|
3467
3631
|
.share-picker-list,
|
|
3468
3632
|
.search-picker-panel
|
|
3469
3633
|
) {
|
|
@@ -3477,11 +3641,12 @@
|
|
|
3477
3641
|
}
|
|
3478
3642
|
}
|
|
3479
3643
|
|
|
3480
|
-
:where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .motion-picker-list)
|
|
3644
|
+
:where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .time-zone-picker-list, .motion-picker-list)
|
|
3481
3645
|
> :where(
|
|
3482
3646
|
.theme-picker-option,
|
|
3483
3647
|
.locale-picker-option,
|
|
3484
3648
|
.text-size-picker-option,
|
|
3649
|
+
.time-zone-picker-option,
|
|
3485
3650
|
.motion-picker-option
|
|
3486
3651
|
) {
|
|
3487
3652
|
padding: var(--lily-space-xs) var(--lily-space-sm);
|
|
@@ -3491,7 +3656,7 @@
|
|
|
3491
3656
|
|
|
3492
3657
|
/* data-active is the keyboard cursor (aria-activedescendant); focus
|
|
3493
3658
|
stays on the listbox, so this is the only visible cue for it. */
|
|
3494
|
-
:where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .motion-picker-list)
|
|
3659
|
+
:where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .time-zone-picker-list, .motion-picker-list)
|
|
3495
3660
|
> :where([data-active]) {
|
|
3496
3661
|
background-color: var(--lily-surface-alt);
|
|
3497
3662
|
outline: var(--lily-focus-ring);
|
|
@@ -3500,7 +3665,7 @@
|
|
|
3500
3665
|
|
|
3501
3666
|
/* aria-selected marks the applied theme/locale, which is not the
|
|
3502
3667
|
same thing as the keyboard cursor. Both can be visible at once. */
|
|
3503
|
-
:where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .motion-picker-list)
|
|
3668
|
+
:where(.theme-picker-list, .locale-picker-list, .text-size-picker-list, .time-zone-picker-list, .motion-picker-list)
|
|
3504
3669
|
> :where([aria-selected="true"]) {
|
|
3505
3670
|
font-weight: 600;
|
|
3506
3671
|
background-color: var(--lily-surface-sunken);
|
|
@@ -3889,7 +4054,7 @@
|
|
|
3889
4054
|
}
|
|
3890
4055
|
/* Screen-reader-only — visually hidden but available to AT. The
|
|
3891
4056
|
classic clip-rect pattern (works in every screen reader). */
|
|
3892
|
-
:where(.screen-reader-span) {
|
|
4057
|
+
:where(.screen-reader-span, .middle-truncation-full) {
|
|
3893
4058
|
position: absolute;
|
|
3894
4059
|
width: 1px;
|
|
3895
4060
|
height: 1px;
|
|
@@ -3900,6 +4065,42 @@
|
|
|
3900
4065
|
white-space: nowrap;
|
|
3901
4066
|
border: 0;
|
|
3902
4067
|
}
|
|
4068
|
+
/* Middle truncation — a bounded one-line block; the shortened string is aria-hidden and the full
|
|
4069
|
+
text (hidden above) stays in the accessibility tree. */
|
|
4070
|
+
:where(.middle-truncation) {
|
|
4071
|
+
display: block;
|
|
4072
|
+
position: relative;
|
|
4073
|
+
overflow: hidden;
|
|
4074
|
+
white-space: nowrap;
|
|
4075
|
+
}
|
|
4076
|
+
/* Wheel picker — a scrolling listbox that snaps the chosen option to the centre. The selected option is filled with the
|
|
4077
|
+
primary colour (aria-selected, not colour alone: it is also the activedescendant and gets a bold weight). */
|
|
4078
|
+
:where(.wheel-picker-list) {
|
|
4079
|
+
max-block-size: 10em;
|
|
4080
|
+
overflow-y: auto;
|
|
4081
|
+
overscroll-behavior: contain;
|
|
4082
|
+
scroll-snap-type: y mandatory;
|
|
4083
|
+
border: 1px solid var(--color-base-300);
|
|
4084
|
+
border-radius: var(--lily-radius-md);
|
|
4085
|
+
}
|
|
4086
|
+
:where(.wheel-picker-list:focus-visible) {
|
|
4087
|
+
outline: 2px solid var(--lily-focus-ring);
|
|
4088
|
+
outline-offset: 2px;
|
|
4089
|
+
}
|
|
4090
|
+
:where(.wheel-picker-option) {
|
|
4091
|
+
padding: 0.5rem 1rem;
|
|
4092
|
+
scroll-snap-align: center;
|
|
4093
|
+
cursor: pointer;
|
|
4094
|
+
}
|
|
4095
|
+
:where(.wheel-picker-option[aria-selected="true"]) {
|
|
4096
|
+
background-color: var(--color-primary);
|
|
4097
|
+
color: var(--color-primary-content);
|
|
4098
|
+
font-weight: 600;
|
|
4099
|
+
}
|
|
4100
|
+
:where(.wheel-picker-option[aria-disabled="true"]) {
|
|
4101
|
+
opacity: 0.5;
|
|
4102
|
+
cursor: not-allowed;
|
|
4103
|
+
}
|
|
3903
4104
|
|
|
3904
4105
|
/* ==========================================================================
|
|
3905
4106
|
* Hero, figure, photo, media
|
|
@@ -4645,3 +4846,153 @@
|
|
|
4645
4846
|
:where(a, code) {
|
|
4646
4847
|
overflow-wrap: anywhere;
|
|
4647
4848
|
}
|
|
4849
|
+
|
|
4850
|
+
/* ============================================================================
|
|
4851
|
+
* Helper packages — layout and look, shared verbatim by all themes.
|
|
4852
|
+
*
|
|
4853
|
+
* The data grid, kanban board, Gantt chart and calendar view are wide by nature.
|
|
4854
|
+
* Each root scrolls sideways inside its own box and its table sizes to its content,
|
|
4855
|
+
* so a narrow screen scrolls the table instead of wrapping every cell to a letter
|
|
4856
|
+
* (the overflow guard above lets cells break anywhere, which is right for prose and
|
|
4857
|
+
* wrong for a table that has a scroller). The toolbar controls of all four helpers
|
|
4858
|
+
* share the data grid's look, every button has a >=24px target (WCAG 2.2 2.5.8), and
|
|
4859
|
+
* the Gantt chart draws its bars from `data-in-range`, a milestone as a diamond and
|
|
4860
|
+
* today as a rule. :where() keeps specificity at zero, so any consumer rule wins.
|
|
4861
|
+
* ========================================================================= */
|
|
4862
|
+
|
|
4863
|
+
:where(.data-grid, .kanban-board, .gantt-chart, .calendar-view) {
|
|
4864
|
+
max-inline-size: 100%;
|
|
4865
|
+
overflow-x: auto;
|
|
4866
|
+
}
|
|
4867
|
+
|
|
4868
|
+
:where(.data-grid table, .kanban-board table, .gantt-chart table, .calendar-view table) {
|
|
4869
|
+
inline-size: max-content;
|
|
4870
|
+
min-inline-size: 100%;
|
|
4871
|
+
}
|
|
4872
|
+
|
|
4873
|
+
:where(.kanban-board-export, .gantt-chart-export, .gantt-chart-zoom, .calendar-view-export,
|
|
4874
|
+
.calendar-view-toolbar, .calendar-view-nav, .calendar-view-switcher) {
|
|
4875
|
+
display: flex;
|
|
4876
|
+
flex-wrap: wrap;
|
|
4877
|
+
gap: var(--lily-space-sm);
|
|
4878
|
+
align-items: center;
|
|
4879
|
+
margin-block-end: var(--lily-space-sm);
|
|
4880
|
+
}
|
|
4881
|
+
|
|
4882
|
+
:where(.kanban-board-search, .gantt-chart-search, .calendar-view-search) {
|
|
4883
|
+
padding: var(--lily-space-xs) var(--lily-space-sm);
|
|
4884
|
+
border: var(--border) solid var(--lily-border);
|
|
4885
|
+
border-radius: var(--lily-radius-sm);
|
|
4886
|
+
background-color: var(--lily-surface);
|
|
4887
|
+
color: var(--lily-text);
|
|
4888
|
+
font: inherit;
|
|
4889
|
+
min-block-size: 24px;
|
|
4890
|
+
}
|
|
4891
|
+
|
|
4892
|
+
:where(.kanban-board-export-button,
|
|
4893
|
+
.kanban-board-add-button,
|
|
4894
|
+
.kanban-board-undo-button,
|
|
4895
|
+
.kanban-board-collapse-button,
|
|
4896
|
+
.kanban-board-lane-toggle,
|
|
4897
|
+
.kanban-board-move-button,
|
|
4898
|
+
.gantt-chart-export-button,
|
|
4899
|
+
.gantt-chart-zoom-in-button,
|
|
4900
|
+
.gantt-chart-zoom-out-button,
|
|
4901
|
+
.gantt-chart-collapse-button,
|
|
4902
|
+
.gantt-chart-collapse-all-button,
|
|
4903
|
+
.gantt-chart-expand-all-button,
|
|
4904
|
+
.gantt-chart-save-button,
|
|
4905
|
+
.gantt-chart-cancel-button,
|
|
4906
|
+
.calendar-view-export-button,
|
|
4907
|
+
.calendar-view-previous-button,
|
|
4908
|
+
.calendar-view-next-button,
|
|
4909
|
+
.calendar-view-today-button,
|
|
4910
|
+
.calendar-view-switcher-button) {
|
|
4911
|
+
padding: var(--lily-space-xs) var(--lily-space-md);
|
|
4912
|
+
border: var(--border) solid var(--lily-border);
|
|
4913
|
+
border-radius: var(--lily-radius-sm);
|
|
4914
|
+
background-color: var(--lily-surface);
|
|
4915
|
+
color: var(--lily-text);
|
|
4916
|
+
font: inherit;
|
|
4917
|
+
cursor: pointer;
|
|
4918
|
+
min-inline-size: 24px;
|
|
4919
|
+
min-block-size: 24px;
|
|
4920
|
+
}
|
|
4921
|
+
|
|
4922
|
+
:where(.kanban-board-export-button:disabled,
|
|
4923
|
+
.kanban-board-add-button:disabled,
|
|
4924
|
+
.kanban-board-undo-button:disabled,
|
|
4925
|
+
.gantt-chart-export-button:disabled,
|
|
4926
|
+
.gantt-chart-zoom-in-button:disabled,
|
|
4927
|
+
.gantt-chart-zoom-out-button:disabled,
|
|
4928
|
+
.calendar-view-export-button:disabled,
|
|
4929
|
+
.calendar-view-previous-button[aria-disabled="true"],
|
|
4930
|
+
.calendar-view-next-button[aria-disabled="true"]) {
|
|
4931
|
+
opacity: 0.5;
|
|
4932
|
+
cursor: not-allowed;
|
|
4933
|
+
}
|
|
4934
|
+
|
|
4935
|
+
:where(.calendar-view-switcher-button[aria-pressed="true"]) {
|
|
4936
|
+
background-color: var(--color-base-300);
|
|
4937
|
+
font-weight: 600;
|
|
4938
|
+
}
|
|
4939
|
+
|
|
4940
|
+
:where(.kanban-board-status, .gantt-chart-status, .calendar-view-status) {
|
|
4941
|
+
margin-block-start: var(--lily-space-sm);
|
|
4942
|
+
font-size: 0.875em;
|
|
4943
|
+
opacity: 0.8;
|
|
4944
|
+
}
|
|
4945
|
+
|
|
4946
|
+
:where(.calendar-view-event) {
|
|
4947
|
+
display: block;
|
|
4948
|
+
padding: 0 var(--lily-space-xs);
|
|
4949
|
+
border-radius: var(--lily-radius-sm);
|
|
4950
|
+
background-color: color-mix(in srgb, var(--color-primary) 18%, transparent);
|
|
4951
|
+
font-size: 0.75rem;
|
|
4952
|
+
}
|
|
4953
|
+
|
|
4954
|
+
:where(.gantt-table-th) {
|
|
4955
|
+
min-inline-size: 2rem;
|
|
4956
|
+
padding-inline: 0.25rem;
|
|
4957
|
+
font-size: 0.75rem;
|
|
4958
|
+
text-align: center;
|
|
4959
|
+
white-space: nowrap;
|
|
4960
|
+
}
|
|
4961
|
+
|
|
4962
|
+
:where(.gantt-table-th[scope="row"], .gantt-table-th:first-child) {
|
|
4963
|
+
min-inline-size: 10rem;
|
|
4964
|
+
padding-inline: var(--lily-space-sm);
|
|
4965
|
+
font-size: inherit;
|
|
4966
|
+
text-align: start;
|
|
4967
|
+
white-space: normal;
|
|
4968
|
+
}
|
|
4969
|
+
|
|
4970
|
+
:where(.gantt-table-td) {
|
|
4971
|
+
min-block-size: 1.7rem;
|
|
4972
|
+
padding: 0;
|
|
4973
|
+
}
|
|
4974
|
+
|
|
4975
|
+
:where(.gantt-table-td[data-in-range]) {
|
|
4976
|
+
background-color: var(--color-primary);
|
|
4977
|
+
}
|
|
4978
|
+
|
|
4979
|
+
:where(.gantt-table-td[data-in-range][data-milestone]) {
|
|
4980
|
+
clip-path: polygon(50% 8%, 92% 50%, 50% 92%, 8% 50%);
|
|
4981
|
+
}
|
|
4982
|
+
|
|
4983
|
+
:where(.gantt-table-td[data-today]) {
|
|
4984
|
+
border-inline-start: 2px solid var(--color-accent);
|
|
4985
|
+
}
|
|
4986
|
+
|
|
4987
|
+
/* The time zone picker's options are long ("UTC+10:30 – Lord Howe Daylight Time"): size the list to its widest
|
|
4988
|
+
option up to a cap, then wrap, rather than clipping the name or running off a phone. */
|
|
4989
|
+
:where(.time-zone-picker-list) {
|
|
4990
|
+
inline-size: max-content;
|
|
4991
|
+
max-inline-size: min(26rem, 90vw);
|
|
4992
|
+
max-block-size: min(24rem, 70vh);
|
|
4993
|
+
overflow-y: auto;
|
|
4994
|
+
}
|
|
4995
|
+
|
|
4996
|
+
:where(.time-zone-picker-option) {
|
|
4997
|
+
overflow-wrap: anywhere;
|
|
4998
|
+
}
|