@fpkit/acss 0.5.12 → 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/README.md +89 -0
- package/libs/chunk-2NRIP6RB.cjs +17 -0
- package/libs/chunk-2NRIP6RB.cjs.map +1 -0
- package/libs/chunk-33PNJ4LO.cjs +15 -0
- package/libs/chunk-33PNJ4LO.cjs.map +1 -0
- package/libs/chunk-4BZKFPEC.cjs +17 -0
- package/libs/chunk-4BZKFPEC.cjs.map +1 -0
- package/libs/{chunk-O6QZBB6G.js → chunk-5QD3DWFI.js} +5 -5
- package/libs/chunk-5QD3DWFI.js.map +1 -0
- package/libs/chunk-6SAHIYCZ.js +7 -0
- package/libs/chunk-6SAHIYCZ.js.map +1 -0
- package/libs/{chunk-KKLTUJFB.cjs → chunk-6WTC4JXH.cjs} +5 -5
- package/libs/chunk-6WTC4JXH.cjs.map +1 -0
- package/libs/chunk-75QHTLFO.js +7 -0
- package/libs/chunk-75QHTLFO.js.map +1 -0
- package/libs/{chunk-YWOYVRFT.js → chunk-7XPFW7CB.js} +3 -3
- package/libs/chunk-BFK62VX5.js +5 -0
- package/libs/chunk-BFK62VX5.js.map +1 -0
- package/libs/{chunk-ICCKQ2GC.cjs → chunk-DKTHCQ5P.cjs} +4 -4
- package/libs/{chunk-6TE5QEVE.cjs → chunk-E2AJURUW.cjs} +3 -3
- package/libs/chunk-E2AJURUW.cjs.map +1 -0
- package/libs/chunk-ENTCUJ3A.cjs +13 -0
- package/libs/chunk-ENTCUJ3A.cjs.map +1 -0
- package/libs/chunk-F5EYMVQM.js +10 -0
- package/libs/chunk-F5EYMVQM.js.map +1 -0
- package/libs/chunk-FVROL3V5.js +9 -0
- package/libs/chunk-FVROL3V5.js.map +1 -0
- package/libs/chunk-GT77BX4L.cjs +17 -0
- package/libs/chunk-GT77BX4L.cjs.map +1 -0
- package/libs/chunk-GUJSMQ3V.cjs +16 -0
- package/libs/chunk-GUJSMQ3V.cjs.map +1 -0
- package/libs/chunk-HHLNOC5T.js +7 -0
- package/libs/chunk-HHLNOC5T.js.map +1 -0
- package/libs/chunk-HRRHPLER.js +8 -0
- package/libs/chunk-HRRHPLER.js.map +1 -0
- package/libs/chunk-IEB64SWY.js +8 -0
- package/libs/chunk-IEB64SWY.js.map +1 -0
- package/libs/{chunk-LIQJ7ZZR.js → chunk-IQ76HGVP.js} +2 -2
- package/libs/chunk-IRLFZ3OL.js +9 -0
- package/libs/chunk-IRLFZ3OL.js.map +1 -0
- package/libs/chunk-KK47SYZI.js +8 -0
- package/libs/chunk-KK47SYZI.js.map +1 -0
- package/libs/chunk-O3JIHC5M.cjs +15 -0
- package/libs/chunk-O3JIHC5M.cjs.map +1 -0
- package/libs/chunk-O5XAJ7BY.cjs +18 -0
- package/libs/chunk-O5XAJ7BY.cjs.map +1 -0
- package/libs/chunk-OVWLQYMK.js +10 -0
- package/libs/chunk-OVWLQYMK.js.map +1 -0
- package/libs/chunk-PNWIRCG3.cjs +7 -0
- package/libs/chunk-PNWIRCG3.cjs.map +1 -0
- package/libs/chunk-QVW6W76L.cjs +18 -0
- package/libs/chunk-QVW6W76L.cjs.map +1 -0
- package/libs/chunk-T4T6GWYQ.cjs +17 -0
- package/libs/chunk-T4T6GWYQ.cjs.map +1 -0
- package/libs/chunk-TON2YGMD.cjs +9 -0
- package/libs/chunk-TON2YGMD.cjs.map +1 -0
- package/libs/chunk-UEPAWMDF.js +8 -0
- package/libs/chunk-UEPAWMDF.js.map +1 -0
- package/libs/{chunk-LT5KZ2QW.cjs → chunk-US2I5GI7.cjs} +3 -3
- package/libs/{chunk-E3XP6BEX.cjs → chunk-W2UIN7EV.cjs} +3 -3
- package/libs/chunk-W5TKWBFC.cjs +18 -0
- package/libs/chunk-W5TKWBFC.cjs.map +1 -0
- package/libs/chunk-WXBFBWYF.cjs +16 -0
- package/libs/chunk-WXBFBWYF.cjs.map +1 -0
- package/libs/chunk-X3JCTEPD.js +11 -0
- package/libs/chunk-X3JCTEPD.js.map +1 -0
- package/libs/chunk-X5LGFCWG.js +9 -0
- package/libs/chunk-X5LGFCWG.js.map +1 -0
- package/libs/{chunk-5M57K4SW.js → chunk-Y2PFDELK.js} +2 -2
- package/libs/chunk-ZFJ4U45S.js +10 -0
- package/libs/chunk-ZFJ4U45S.js.map +1 -0
- package/libs/{component-props-a8a2f97e.d.ts → component-props-67d978a2.d.ts} +4 -4
- package/libs/components/alert/alert.css +1 -1
- package/libs/components/alert/alert.css.map +1 -1
- package/libs/components/alert/alert.min.css +2 -2
- package/libs/components/badge/badge.css +1 -1
- package/libs/components/badge/badge.css.map +1 -1
- package/libs/components/badge/badge.min.css +2 -2
- package/libs/components/breadcrumbs/breadcrumb.cjs +9 -5
- package/libs/components/breadcrumbs/breadcrumb.d.cts +275 -36
- package/libs/components/breadcrumbs/breadcrumb.d.ts +275 -36
- package/libs/components/breadcrumbs/breadcrumb.js +3 -3
- package/libs/components/button.cjs +6 -4
- package/libs/components/button.d.cts +97 -4
- package/libs/components/button.d.ts +97 -4
- package/libs/components/button.js +4 -2
- package/libs/components/buttons/button.css +1 -1
- package/libs/components/buttons/button.css.map +1 -1
- package/libs/components/buttons/button.min.css +2 -2
- package/libs/components/card.cjs +7 -7
- package/libs/components/card.d.cts +278 -34
- package/libs/components/card.d.ts +278 -34
- package/libs/components/card.js +2 -2
- package/libs/components/cards/card.css +1 -1
- package/libs/components/cards/card.css.map +1 -1
- package/libs/components/cards/card.min.css +2 -2
- package/libs/components/details/details.css +1 -1
- package/libs/components/details/details.css.map +1 -1
- package/libs/components/details/details.min.css +2 -2
- package/libs/components/dialog/dialog.cjs +9 -7
- package/libs/components/dialog/dialog.css +1 -1
- package/libs/components/dialog/dialog.css.map +1 -1
- package/libs/components/dialog/dialog.d.cts +88 -34
- package/libs/components/dialog/dialog.d.ts +88 -34
- package/libs/components/dialog/dialog.js +7 -5
- package/libs/components/dialog/dialog.min.css +2 -2
- package/libs/components/form/fields.cjs +4 -4
- package/libs/components/form/fields.d.cts +16 -7
- package/libs/components/form/fields.d.ts +16 -7
- package/libs/components/form/fields.js +2 -2
- package/libs/components/form/inputs.cjs +6 -4
- package/libs/components/form/inputs.d.cts +50 -2
- package/libs/components/form/inputs.d.ts +50 -2
- package/libs/components/form/inputs.js +4 -2
- package/libs/components/form/textarea.cjs +5 -4
- package/libs/components/form/textarea.d.cts +32 -23
- package/libs/components/form/textarea.d.ts +32 -23
- package/libs/components/form/textarea.js +3 -2
- package/libs/components/heading/heading.cjs +3 -3
- package/libs/components/heading/heading.d.cts +3 -14
- package/libs/components/heading/heading.d.ts +3 -14
- package/libs/components/heading/heading.js +2 -2
- package/libs/components/icons/icon.cjs +4 -4
- package/libs/components/icons/icon.d.cts +183 -39
- package/libs/components/icons/icon.d.ts +183 -39
- package/libs/components/icons/icon.js +2 -2
- package/libs/components/images/img.css +1 -1
- package/libs/components/images/img.css.map +1 -1
- package/libs/components/images/img.min.css +2 -2
- package/libs/components/link/link.cjs +4 -4
- package/libs/components/link/link.css +1 -1
- package/libs/components/link/link.css.map +1 -1
- package/libs/components/link/link.d.cts +3 -19
- package/libs/components/link/link.d.ts +3 -19
- package/libs/components/link/link.js +2 -2
- package/libs/components/link/link.min.css +2 -2
- package/libs/components/list/list.cjs +5 -5
- package/libs/components/list/list.css +1 -0
- package/libs/components/list/list.css.map +1 -0
- package/libs/components/list/list.d.cts +120 -33
- package/libs/components/list/list.d.ts +120 -33
- package/libs/components/list/list.js +2 -2
- package/libs/components/list/list.min.css +3 -0
- package/libs/components/modal.cjs +6 -4
- package/libs/components/modal.d.cts +8 -8
- package/libs/components/modal.d.ts +8 -8
- package/libs/components/modal.js +5 -3
- package/libs/components/nav/nav.cjs +7 -7
- package/libs/components/nav/nav.css +1 -1
- package/libs/components/nav/nav.css.map +1 -1
- package/libs/components/nav/nav.d.cts +550 -34
- package/libs/components/nav/nav.d.ts +550 -34
- package/libs/components/nav/nav.js +3 -3
- package/libs/components/nav/nav.min.css +2 -2
- package/libs/components/popover/popover.d.cts +5 -5
- package/libs/components/popover/popover.d.ts +5 -5
- package/libs/components/tables/table.cjs +5 -5
- package/libs/components/tables/table.d.cts +8 -8
- package/libs/components/tables/table.d.ts +8 -8
- package/libs/components/tables/table.js +2 -2
- package/libs/components/tag/tag.css +1 -1
- package/libs/components/tag/tag.css.map +1 -1
- package/libs/components/tag/tag.min.css +2 -2
- package/libs/components/text/text.cjs +5 -5
- package/libs/components/text/text.d.cts +5 -5
- package/libs/components/text/text.d.ts +5 -5
- package/libs/components/text/text.js +2 -2
- package/libs/form.types-d25ebfac.d.ts +233 -0
- package/libs/heading-7446cb46.d.ts +250 -0
- package/libs/hooks.cjs +12 -0
- package/libs/hooks.d.cts +140 -1
- package/libs/hooks.d.ts +140 -1
- package/libs/hooks.js +4 -0
- package/libs/icons.cjs +3 -3
- package/libs/icons.d.cts +2 -2
- package/libs/icons.d.ts +2 -2
- package/libs/icons.js +2 -2
- package/libs/index.cjs +117 -94
- package/libs/index.cjs.map +1 -1
- package/libs/index.css +1 -1
- package/libs/index.css.map +1 -1
- package/libs/index.d.cts +834 -61
- package/libs/index.d.ts +834 -61
- package/libs/index.js +36 -22
- package/libs/index.js.map +1 -1
- package/libs/link-5192f411.d.ts +323 -0
- package/libs/list.types-d26de310.d.ts +245 -0
- package/libs/ui-d01b50d4.d.ts +289 -0
- package/package.json +4 -87
- package/src/components/README-UI.mdx +416 -0
- package/src/components/alert/ACCESSIBILITY.md +319 -0
- package/src/components/alert/README.mdx +475 -19
- package/src/components/alert/alert.scss +110 -6
- package/src/components/alert/alert.stories.tsx +372 -0
- package/src/components/alert/alert.test.tsx +762 -0
- package/src/components/alert/alert.tsx +331 -66
- package/src/components/alert/views/alert-actions.tsx +13 -0
- package/src/components/alert/views/alert-content.tsx +17 -0
- package/src/components/alert/views/alert-icon.tsx +53 -0
- package/src/components/alert/views/alert-screen-reader-text.tsx +30 -0
- package/src/components/alert/views/alert-title.tsx +23 -0
- package/src/components/alert/views/alert-view.tsx +158 -0
- package/src/components/alert/views/index.ts +12 -0
- package/src/components/badge/badge.mdx +186 -49
- package/src/components/badge/badge.scss +20 -2
- package/src/components/badge/badge.stories.tsx +160 -14
- package/src/components/badge/badge.test.tsx +179 -0
- package/src/components/badge/badge.tsx +97 -4
- package/src/components/breadcrumbs/README.mdx +364 -45
- package/src/components/breadcrumbs/__snapshots__/breadcrumb.test.tsx.snap +152 -0
- package/src/components/breadcrumbs/breadcrumb.stories.tsx +7 -3
- package/src/components/breadcrumbs/breadcrumb.test.tsx +490 -0
- package/src/components/breadcrumbs/breadcrumb.tsx +430 -170
- package/src/components/buttons/README.mdx +102 -1
- package/src/components/buttons/button.scss +34 -31
- package/src/components/buttons/button.stories.tsx +141 -0
- package/src/components/buttons/button.tsx +82 -52
- package/src/components/cards/README.mdx +657 -0
- package/src/components/cards/card.scss +22 -0
- package/src/components/cards/card.stories.tsx +167 -5
- package/src/components/cards/card.test.tsx +360 -20
- package/src/components/cards/card.tsx +200 -79
- package/src/components/cards/card.types.ts +135 -0
- package/src/components/cards/card.utils.ts +79 -0
- package/src/components/details/ACCESSIBILITY-REVIEW-LIVE.md +1050 -0
- package/src/components/details/ACCESSIBILITY-REVIEW.md +502 -0
- package/src/components/details/README.mdx +437 -69
- package/src/components/details/details.scss +16 -7
- package/src/components/details/details.test.tsx +385 -0
- package/src/components/details/details.tsx +101 -69
- package/src/components/details/details.types.ts +76 -0
- package/src/components/dialog/README.mdx +513 -110
- package/src/components/dialog/dialog-a11y-review.md +653 -0
- package/src/components/dialog/dialog-modal.tsx +79 -56
- package/src/components/dialog/dialog.scss +53 -3
- package/src/components/dialog/dialog.stories.tsx +10 -7
- package/src/components/dialog/dialog.test.tsx +450 -0
- package/src/components/dialog/dialog.tsx +69 -59
- package/src/components/dialog/dialog.types.ts +133 -0
- package/src/components/dialog/views/dialog-footer.tsx +54 -11
- package/src/components/dialog/views/dialog-header.tsx +20 -15
- package/src/components/form/README.mdx +725 -43
- package/src/components/form/WCAG-REVIEW.md +654 -0
- package/src/components/form/fields.tsx +10 -1
- package/src/components/form/form.stories.tsx +604 -23
- package/src/components/form/form.tsx +204 -63
- package/src/components/form/form.types.ts +378 -0
- package/src/components/form/input.stories.tsx +71 -3
- package/src/components/form/inputs.tsx +159 -67
- package/src/components/form/select.tsx +122 -66
- package/src/components/form/textarea.tsx +120 -73
- package/src/components/fp.tsx +86 -11
- package/src/components/heading/heading.stories.tsx +44 -4
- package/src/components/heading/heading.tsx +89 -23
- package/src/components/icons/README.mdx +332 -0
- package/src/components/icons/icon.stories.tsx +74 -1
- package/src/components/icons/icon.tsx +89 -1
- package/src/components/icons/types.ts +47 -0
- package/src/components/images/README.mdx +340 -24
- package/src/components/images/img.scss +19 -3
- package/src/components/images/img.stories.tsx +424 -15
- package/src/components/images/img.test.tsx +354 -25
- package/src/components/images/img.tsx +186 -63
- package/src/components/images/img.types.ts +211 -0
- package/src/components/link/README.mdx +923 -0
- package/src/components/link/link.scss +79 -26
- package/src/components/link/link.stories.tsx +383 -30
- package/src/components/link/link.test.tsx +677 -0
- package/src/components/link/link.tsx +163 -57
- package/src/components/link/link.types.ts +261 -0
- package/src/components/list/README.mdx +764 -0
- package/src/components/list/list.scss +285 -0
- package/src/components/list/list.stories.tsx +514 -27
- package/src/components/list/list.test.tsx +554 -0
- package/src/components/list/list.tsx +153 -51
- package/src/components/list/list.types.ts +255 -0
- package/src/components/nav/ACCESSIBILITY.md +649 -0
- package/src/components/nav/README.mdx +782 -0
- package/src/components/nav/nav.scss +32 -1
- package/src/components/nav/nav.stories.tsx +44 -6
- package/src/components/nav/nav.tsx +302 -51
- package/src/components/nav/nav.types.ts +308 -0
- package/src/components/tag/README.mdx +426 -0
- package/src/components/tag/tag.scss +101 -27
- package/src/components/tag/tag.stories.tsx +384 -10
- package/src/components/tag/tag.test.tsx +210 -0
- package/src/components/tag/tag.tsx +106 -9
- package/src/components/tag/tag.types.ts +107 -0
- package/src/components/title/MIGRATION.md +199 -0
- package/src/components/title/README.md +326 -0
- package/src/components/title/README.mdx +452 -0
- package/src/components/title/title.stories.tsx +393 -0
- package/src/components/title/title.test.tsx +251 -0
- package/src/components/title/title.tsx +219 -0
- package/src/components/ui.stories.tsx +894 -0
- package/src/components/ui.test.tsx +559 -0
- package/src/components/ui.tsx +274 -18
- package/src/components/word-count/README.md +240 -0
- package/src/hooks/use-disabled-state.test.tsx +536 -0
- package/src/hooks/use-disabled-state.ts +246 -0
- package/src/hooks/useDisabledState.md +393 -0
- package/src/hooks.ts +7 -0
- package/src/index.scss +2 -0
- package/src/index.ts +12 -3
- package/src/sass/_globals.scss +2 -7
- package/src/sass/_properties.scss +1 -0
- package/src/styles/alert/alert.css +92 -4
- package/src/styles/alert/alert.css.map +1 -1
- package/src/styles/badge/badge.css +20 -2
- package/src/styles/badge/badge.css.map +1 -1
- package/src/styles/buttons/button.css +31 -31
- package/src/styles/buttons/button.css.map +1 -1
- package/src/styles/cards/card.css +16 -0
- package/src/styles/cards/card.css.map +1 -1
- package/src/styles/details/details.css +19 -8
- package/src/styles/details/details.css.map +1 -1
- package/src/styles/dialog/dialog.css +43 -2
- package/src/styles/dialog/dialog.css.map +1 -1
- package/src/styles/images/img.css +15 -3
- package/src/styles/images/img.css.map +1 -1
- package/src/styles/index.css +691 -128
- package/src/styles/index.css.map +1 -1
- package/src/styles/link/link.css +45 -28
- package/src/styles/link/link.css.map +1 -1
- package/src/styles/list/list.css +214 -0
- package/src/styles/list/list.css.map +1 -0
- package/src/styles/nav/nav.css +21 -1
- package/src/styles/nav/nav.css.map +1 -1
- package/src/styles/tag/tag.css +113 -35
- package/src/styles/tag/tag.css.map +1 -1
- package/src/styles/utilities/_disabled.scss +58 -0
- package/src/test/setup.d.ts +9 -0
- package/src/test/setup.ts +53 -1
- package/src/types/shared.ts +43 -6
- package/src/utils/accessibility.ts +109 -0
- package/libs/chunk-5ZM4XL44.js +0 -8
- package/libs/chunk-5ZM4XL44.js.map +0 -1
- package/libs/chunk-6BVXFW7U.cjs +0 -15
- package/libs/chunk-6BVXFW7U.cjs.map +0 -1
- package/libs/chunk-6TE5QEVE.cjs.map +0 -1
- package/libs/chunk-7K76RW2A.cjs +0 -18
- package/libs/chunk-7K76RW2A.cjs.map +0 -1
- package/libs/chunk-BHRQBJRY.js +0 -8
- package/libs/chunk-BHRQBJRY.js.map +0 -1
- package/libs/chunk-BIP2NY53.js +0 -8
- package/libs/chunk-BIP2NY53.js.map +0 -1
- package/libs/chunk-BSPKFLO4.js +0 -8
- package/libs/chunk-BSPKFLO4.js.map +0 -1
- package/libs/chunk-BV5CLH44.cjs +0 -18
- package/libs/chunk-BV5CLH44.cjs.map +0 -1
- package/libs/chunk-DKGJHKGW.js +0 -9
- package/libs/chunk-DKGJHKGW.js.map +0 -1
- package/libs/chunk-DV56L5YX.cjs +0 -18
- package/libs/chunk-DV56L5YX.cjs.map +0 -1
- package/libs/chunk-ECLD37WN.cjs +0 -16
- package/libs/chunk-ECLD37WN.cjs.map +0 -1
- package/libs/chunk-EQ67LF46.js +0 -9
- package/libs/chunk-EQ67LF46.js.map +0 -1
- package/libs/chunk-HYBZBN4G.js +0 -8
- package/libs/chunk-HYBZBN4G.js.map +0 -1
- package/libs/chunk-IYUN2EW3.cjs +0 -15
- package/libs/chunk-IYUN2EW3.cjs.map +0 -1
- package/libs/chunk-KKLTUJFB.cjs.map +0 -1
- package/libs/chunk-LHVJKDMA.cjs +0 -15
- package/libs/chunk-LHVJKDMA.cjs.map +0 -1
- package/libs/chunk-LL7HTLMS.cjs +0 -15
- package/libs/chunk-LL7HTLMS.cjs.map +0 -1
- package/libs/chunk-M5QL5TAE.cjs +0 -14
- package/libs/chunk-M5QL5TAE.cjs.map +0 -1
- package/libs/chunk-NE6YXTMC.js +0 -7
- package/libs/chunk-NE6YXTMC.js.map +0 -1
- package/libs/chunk-NHYXGV3L.js +0 -8
- package/libs/chunk-NHYXGV3L.js.map +0 -1
- package/libs/chunk-O6QZBB6G.js.map +0 -1
- package/libs/chunk-P7TTEYCD.js +0 -7
- package/libs/chunk-P7TTEYCD.js.map +0 -1
- package/libs/chunk-PPOOBUOS.js +0 -8
- package/libs/chunk-PPOOBUOS.js.map +0 -1
- package/libs/chunk-QCMV4VQZ.js +0 -8
- package/libs/chunk-QCMV4VQZ.js.map +0 -1
- package/libs/chunk-QVV34QEH.cjs +0 -32
- package/libs/chunk-QVV34QEH.cjs.map +0 -1
- package/libs/chunk-S7BABR7Z.cjs +0 -13
- package/libs/chunk-S7BABR7Z.cjs.map +0 -1
- package/libs/chunk-SXVZSWX6.js +0 -11
- package/libs/chunk-SXVZSWX6.js.map +0 -1
- package/libs/chunk-X3EVB7VS.cjs +0 -15
- package/libs/chunk-X3EVB7VS.cjs.map +0 -1
- package/libs/inputs-f3a216db.d.ts +0 -45
- package/libs/ui-9a6f9f8d.d.ts +0 -24
- package/src/components/cards/README.md +0 -80
- package/src/components/dialog/hooks/useClickOutside.ts +0 -33
- /package/libs/{chunk-YWOYVRFT.js.map → chunk-7XPFW7CB.js.map} +0 -0
- /package/libs/{chunk-ICCKQ2GC.cjs.map → chunk-DKTHCQ5P.cjs.map} +0 -0
- /package/libs/{chunk-LIQJ7ZZR.js.map → chunk-IQ76HGVP.js.map} +0 -0
- /package/libs/{chunk-LT5KZ2QW.cjs.map → chunk-US2I5GI7.cjs.map} +0 -0
- /package/libs/{chunk-E3XP6BEX.cjs.map → chunk-W2UIN7EV.cjs.map} +0 -0
- /package/libs/{chunk-5M57K4SW.js.map → chunk-Y2PFDELK.js.map} +0 -0
package/src/styles/index.css
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@charset "UTF-8";
|
|
1
2
|
*,
|
|
2
3
|
*::before,
|
|
3
4
|
*::after {
|
|
@@ -180,6 +181,7 @@ svg[role=img] {
|
|
|
180
181
|
--placeholder-style: italic;
|
|
181
182
|
--placeholder-fs: smaller;
|
|
182
183
|
--transition: all 0.25s linear;
|
|
184
|
+
--tran-all: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
183
185
|
--fs-0: clamp(.9rem, 4vw - 1rem, 1.12rem);
|
|
184
186
|
--fs-1: clamp(0.65rem, 1.3vw + 0.25rem, 0.75rem);
|
|
185
187
|
--fs-2: clamp(0.7rem, 2vw - 0.5rem, 0.875rem);
|
|
@@ -297,14 +299,7 @@ body > a[href^="#"]:focus {
|
|
|
297
299
|
top: 0;
|
|
298
300
|
}
|
|
299
301
|
|
|
300
|
-
|
|
301
|
-
* + ul,
|
|
302
|
-
* + section {
|
|
303
|
-
margin-block-start: 1rem;
|
|
304
|
-
}
|
|
305
|
-
* + div:empty,
|
|
306
|
-
* + ul:empty,
|
|
307
|
-
* + section:empty {
|
|
302
|
+
div:empty {
|
|
308
303
|
display: none;
|
|
309
304
|
}
|
|
310
305
|
|
|
@@ -427,26 +422,79 @@ h6:has(span:first-of-type) > span {
|
|
|
427
422
|
--title-6: var(--h6);
|
|
428
423
|
}
|
|
429
424
|
|
|
425
|
+
/**
|
|
426
|
+
* Disabled State Utility Styles
|
|
427
|
+
*
|
|
428
|
+
* Provides accessible styling for disabled form elements using aria-disabled pattern.
|
|
429
|
+
* Meets WCAG 2.1 Level AA requirements for visual distinction and contrast.
|
|
430
|
+
*
|
|
431
|
+
* WCAG References:
|
|
432
|
+
* - WCAG 1.4.3 (Contrast Minimum): UI components require 3:1 contrast minimum
|
|
433
|
+
* - WCAG 2.1.1 (Keyboard): Elements remain focusable via keyboard
|
|
434
|
+
* - WCAG 4.1.2 (Name, Role, Value): aria-disabled properly announces state
|
|
435
|
+
*
|
|
436
|
+
* Usage:
|
|
437
|
+
* - Apply .is-disabled class OR aria-disabled="true" attribute
|
|
438
|
+
* - Customize via CSS custom properties (--disabled-opacity, --disabled-cursor, --disabled-color)
|
|
439
|
+
* - Default color (hsl(0 0% 40%)) ensures 3:1 contrast on white backgrounds
|
|
440
|
+
*
|
|
441
|
+
* WARNING: If overriding --disabled-color, ensure WCAG 1.4.3 compliance
|
|
442
|
+
* (minimum 3:1 contrast ratio for UI components)
|
|
443
|
+
*/
|
|
444
|
+
.is-disabled,
|
|
445
|
+
[aria-disabled=true] {
|
|
446
|
+
/* CSS Custom Properties for theming */
|
|
447
|
+
--disabled-opacity: 0.6;
|
|
448
|
+
--disabled-cursor: not-allowed;
|
|
449
|
+
/* hsl(0 0% 40%) = #666666, provides 3:1 contrast on white (#ffffff) */
|
|
450
|
+
--disabled-color: hsl(0 0% 40%);
|
|
451
|
+
/* Apply disabled styles */
|
|
452
|
+
opacity: var(--disabled-opacity);
|
|
453
|
+
cursor: var(--disabled-cursor);
|
|
454
|
+
color: var(--disabled-color);
|
|
455
|
+
/**
|
|
456
|
+
* Maintain focus visibility for keyboard navigation (WCAG 2.4.7)
|
|
457
|
+
* Disabled elements must still be focusable and have visible focus indicators
|
|
458
|
+
*
|
|
459
|
+
* WCAG 2.4.7 requires focus indicators to have 3:1 contrast against both:
|
|
460
|
+
* - The background color
|
|
461
|
+
* - Adjacent non-focused component colors
|
|
462
|
+
*
|
|
463
|
+
* Theme authors: If providing a custom --focus-color, ensure it meets WCAG 2.4.7
|
|
464
|
+
* contrast requirements (3:1 minimum) against all background colors in your theme.
|
|
465
|
+
*
|
|
466
|
+
* Example theme customization:
|
|
467
|
+
* :root {
|
|
468
|
+
* --focus-color: #005fcc; // Ensure 3:1 contrast on your backgrounds
|
|
469
|
+
* }
|
|
470
|
+
*/
|
|
471
|
+
}
|
|
472
|
+
.is-disabled:focus-visible,
|
|
473
|
+
[aria-disabled=true]:focus-visible {
|
|
474
|
+
/* Preserve focus ring from global styles */
|
|
475
|
+
outline-width: 0.125rem; /* 2px */
|
|
476
|
+
outline-style: solid;
|
|
477
|
+
outline-offset: 0.125rem; /* 2px */
|
|
478
|
+
/* Use custom focus color with currentColor fallback */
|
|
479
|
+
outline-color: var(--focus-color, currentColor);
|
|
480
|
+
}
|
|
481
|
+
|
|
430
482
|
button {
|
|
431
|
-
--btn-xs: 0.
|
|
432
|
-
--btn-sm: 0.
|
|
433
|
-
--btn-md: 0.
|
|
434
|
-
--btn-lg: 1.
|
|
483
|
+
--btn-xs: 0.6875rem;
|
|
484
|
+
--btn-sm: 0.8125rem;
|
|
485
|
+
--btn-md: 0.9375rem;
|
|
486
|
+
--btn-lg: 1.125rem;
|
|
435
487
|
--btn-pill: 100rem;
|
|
436
|
-
--btn-
|
|
437
|
-
--
|
|
438
|
-
--btn-fs: 0.9375rem;
|
|
488
|
+
--btn-fs: var(--btn-md);
|
|
489
|
+
--btn-height: calc(var(--btn-fs) * 2.25);
|
|
439
490
|
--btn-bg: lightgray;
|
|
440
491
|
--btn-width: max-content;
|
|
441
|
-
--btn-calc-height: var(--btn-height, calc(40rem / 16));
|
|
442
492
|
font-size: var(--btn-fs);
|
|
443
493
|
font-weight: var(--btn-fw, 500);
|
|
444
|
-
height: var(--btn-height
|
|
445
|
-
max-height: var(--btn-calc-height);
|
|
446
|
-
min-height: 1.5rem;
|
|
494
|
+
height: var(--btn-height);
|
|
447
495
|
place-items: var(--btn-place, center);
|
|
448
|
-
padding-inline: var(--btn-px, calc(var(--btn-fs)
|
|
449
|
-
padding-block: var(--btn-py, calc(var(--btn-fs)
|
|
496
|
+
padding-inline: var(--btn-px, calc(var(--btn-fs) * 1.5));
|
|
497
|
+
padding-block: var(--btn-py, calc(var(--btn-fs) * 0.5));
|
|
450
498
|
border: var(--btn-bdr, none);
|
|
451
499
|
border-radius: var(--btn-rds, 0.375rem);
|
|
452
500
|
text-decoration: var(--btn-deco, none);
|
|
@@ -455,7 +503,7 @@ button {
|
|
|
455
503
|
gap: var(--btn-gap, 0.2rem);
|
|
456
504
|
white-space: var(--btn-wspc, inherit);
|
|
457
505
|
margin: var(--btn-spc, 0);
|
|
458
|
-
transition: var(--tran-all);
|
|
506
|
+
transition: var(--btn-transition, var(--tran-all, all 0.3s cubic-bezier(0.4, 0, 0.2, 1)));
|
|
459
507
|
background-color: var(--btn-bg, var(--btn));
|
|
460
508
|
outline: none;
|
|
461
509
|
width: var(--btn-width);
|
|
@@ -478,14 +526,15 @@ button[disabled]:is(:hover, :focus), button[aria-disabled=true]:is(:hover, :focu
|
|
|
478
526
|
transform: none;
|
|
479
527
|
}
|
|
480
528
|
button:is(:hover, :focus) {
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
529
|
+
filter: var(--btn-hover-filter, brightness(0.85));
|
|
530
|
+
transform: var(--btn-hover-transform, scale(1.03));
|
|
531
|
+
outline: var(--btn-hover-outline, thin);
|
|
484
532
|
outline-offset: var(--line-offset, 1px);
|
|
485
533
|
}
|
|
486
534
|
button:is(:hover, :focus)[aria-disabled=true] {
|
|
487
535
|
transform: none;
|
|
488
536
|
opacity: var(--btn-opacity, 0.5);
|
|
537
|
+
filter: none;
|
|
489
538
|
}
|
|
490
539
|
button[type=reset] {
|
|
491
540
|
--btn-bg: transparent;
|
|
@@ -501,25 +550,25 @@ button[type=submit] {
|
|
|
501
550
|
button[data-fp-btn~=pill], button[data-btn~=pill], button[data-style~=pill] {
|
|
502
551
|
border-radius: var(--btn-pill, 100rem);
|
|
503
552
|
}
|
|
504
|
-
button[data-btn~=xs]
|
|
505
|
-
|
|
553
|
+
button[data-btn~=xs],
|
|
554
|
+
button .btn-xs {
|
|
506
555
|
--btn-fs: var(--btn-xs);
|
|
507
|
-
--btn-height: 1.5rem;
|
|
508
556
|
text-transform: uppercase;
|
|
509
557
|
}
|
|
510
|
-
button[data-btn~=sm]
|
|
558
|
+
button[data-btn~=sm],
|
|
559
|
+
button .btn-sm {
|
|
511
560
|
--btn-fs: var(--btn-sm);
|
|
512
|
-
--btn-height: 1.75rem;
|
|
513
561
|
}
|
|
514
|
-
button[data-btn~=md]
|
|
562
|
+
button[data-btn~=md],
|
|
563
|
+
button .btn-md {
|
|
515
564
|
--btn-fs: var(--btn-md);
|
|
516
|
-
--btn-height: 2rem;
|
|
517
565
|
}
|
|
518
|
-
button[data-btn~=lg]
|
|
566
|
+
button[data-btn~=lg],
|
|
567
|
+
button .btn-lg {
|
|
519
568
|
--btn-fs: var(--btn-lg);
|
|
520
|
-
--btn-height: 2.5rem;
|
|
521
569
|
}
|
|
522
|
-
button[data-btn~=icon]
|
|
570
|
+
button[data-btn~=icon],
|
|
571
|
+
button .btn-icon {
|
|
523
572
|
padding: unset;
|
|
524
573
|
height: unset;
|
|
525
574
|
--btn-bg: transparent;
|
|
@@ -530,7 +579,8 @@ button[data-btn~=icon] {
|
|
|
530
579
|
align-items: center;
|
|
531
580
|
justify-content: center;
|
|
532
581
|
}
|
|
533
|
-
button[data-btn~=text]
|
|
582
|
+
button[data-btn~=text],
|
|
583
|
+
button .btn-text {
|
|
534
584
|
--btn-bg: transparent;
|
|
535
585
|
--btn-cl: currentColor;
|
|
536
586
|
--btn-bdr: none;
|
|
@@ -539,27 +589,48 @@ button[data-btn~=text] {
|
|
|
539
589
|
--btn-py: 0.75rem;
|
|
540
590
|
--btn-px: 0.75rem;
|
|
541
591
|
}
|
|
542
|
-
button[data-btn~=text]:is(:hover, :focus)
|
|
543
|
-
|
|
544
|
-
|
|
592
|
+
button[data-btn~=text]:is(:hover, :focus),
|
|
593
|
+
button .btn-text:is(:hover, :focus) {
|
|
594
|
+
background-color: color-mix(in srgb, var(--btn-cl) 10%, transparent);
|
|
595
|
+
outline: 0.025rem solid var(--btn-cl);
|
|
545
596
|
outline-offset: 0;
|
|
546
|
-
|
|
547
|
-
|
|
597
|
+
filter: none;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
/**
|
|
601
|
+
* Tag Component Styles - WCAG 2.1 AA Compliant
|
|
602
|
+
*
|
|
603
|
+
* Provides visual styling for the Tag component with CSS custom properties
|
|
604
|
+
* for easy theming and variant support. All measurements use rem units
|
|
605
|
+
* for scalability and accessibility.
|
|
606
|
+
*
|
|
607
|
+
* Accessibility Features:
|
|
608
|
+
* - Color contrast ratios meet WCAG AA 4.5:1 minimum (WCAG 1.4.3)
|
|
609
|
+
* - Visual indicators beyond color (symbols via ::before) (WCAG 1.4.1)
|
|
610
|
+
* - Visible focus indicators with 3:1 contrast (WCAG 2.4.7)
|
|
611
|
+
*/
|
|
612
|
+
/**
|
|
613
|
+
* Base Tag Styles
|
|
614
|
+
* Applied to all tag elements via role and data-tag attributes
|
|
615
|
+
*/
|
|
548
616
|
p[role=note],
|
|
549
617
|
[role=note],
|
|
550
618
|
small > span,
|
|
551
619
|
[data-tag] {
|
|
552
|
-
|
|
553
|
-
--
|
|
554
|
-
--
|
|
555
|
-
--
|
|
556
|
-
|
|
557
|
-
--tag-
|
|
558
|
-
--tag-
|
|
559
|
-
--tag-
|
|
560
|
-
--tag-
|
|
561
|
-
--tag-
|
|
562
|
-
--tag-
|
|
620
|
+
/* Variant color tokens - WCAG AA compliant colors */
|
|
621
|
+
--beta: #fbbf24; /* Amber: 6.94:1 contrast with black */
|
|
622
|
+
--stable: #0f7c3e; /* Dark green: 4.56:1 contrast with white */
|
|
623
|
+
--production: #1e3a8a; /* Dark blue: 8.59:1 contrast with white */
|
|
624
|
+
/* Tag component tokens */
|
|
625
|
+
--tag-px: 0.7rem; /* Horizontal padding (11.2px at 16px base) */
|
|
626
|
+
--tag-py: 0.2rem; /* Vertical padding (3.2px at 16px base) */
|
|
627
|
+
--tag-fs: 0.8rem; /* Font size (12.8px at 16px base) */
|
|
628
|
+
--tag-radius: 99rem; /* Fully rounded pill shape */
|
|
629
|
+
--tag-bg: lightgray; /* Default background color */
|
|
630
|
+
--tag-fw: 500; /* Medium font weight */
|
|
631
|
+
--tag-color: currentColor; /* Default text color (inherits) */
|
|
632
|
+
--tag-display: inline-block; /* Display type */
|
|
633
|
+
/* Apply CSS custom properties */
|
|
563
634
|
display: var(--tag-display);
|
|
564
635
|
padding-inline: var(--tag-px);
|
|
565
636
|
padding-block: var(--tag-py);
|
|
@@ -567,72 +638,142 @@ small > span,
|
|
|
567
638
|
color: var(--tag-color);
|
|
568
639
|
background-color: var(--tag-bg);
|
|
569
640
|
border-radius: var(--tag-radius);
|
|
641
|
+
/**
|
|
642
|
+
* Focus Indicators (WCAG 2.4.7)
|
|
643
|
+
* Visible focus for keyboard navigation with 3:1 minimum contrast
|
|
644
|
+
*/
|
|
645
|
+
/* Remove outline for mouse users while preserving for keyboard users */
|
|
646
|
+
/**
|
|
647
|
+
* Variant Modifiers
|
|
648
|
+
* Applied via data-tag attribute (e.g., data-tag="beta")
|
|
649
|
+
* Each variant includes both color AND visual symbol for accessibility (WCAG 1.4.1)
|
|
650
|
+
*/
|
|
651
|
+
/* Alpha variant - early development stage */
|
|
652
|
+
/* Beta variant - pre-release version */
|
|
653
|
+
/* Stable variant - production-ready release */
|
|
654
|
+
/* Production variant - live environment indicator */
|
|
655
|
+
}
|
|
656
|
+
p[role=note]:focus-visible,
|
|
657
|
+
[role=note]:focus-visible,
|
|
658
|
+
small > span:focus-visible,
|
|
659
|
+
[data-tag]:focus-visible {
|
|
660
|
+
outline: 2px solid currentColor;
|
|
661
|
+
outline-offset: 2px;
|
|
662
|
+
}
|
|
663
|
+
p[role=note]:focus:not(:focus-visible),
|
|
664
|
+
[role=note]:focus:not(:focus-visible),
|
|
665
|
+
small > span:focus:not(:focus-visible),
|
|
666
|
+
[data-tag]:focus:not(:focus-visible) {
|
|
667
|
+
outline: none;
|
|
668
|
+
}
|
|
669
|
+
p[role=note][data-tag~=alpha],
|
|
670
|
+
[role=note][data-tag~=alpha],
|
|
671
|
+
small > span[data-tag~=alpha],
|
|
672
|
+
[data-tag][data-tag~=alpha] {
|
|
673
|
+
--tag-color: #000000; /* Black: maximum contrast with amber background */
|
|
674
|
+
--tag-bg: var(--beta);
|
|
675
|
+
/* Visual indicator beyond color - warning symbol */
|
|
676
|
+
}
|
|
677
|
+
p[role=note][data-tag~=alpha]::before,
|
|
678
|
+
[role=note][data-tag~=alpha]::before,
|
|
679
|
+
small > span[data-tag~=alpha]::before,
|
|
680
|
+
[data-tag][data-tag~=alpha]::before {
|
|
681
|
+
content: "⚠";
|
|
682
|
+
margin-inline-end: 0.25rem;
|
|
683
|
+
font-weight: 700;
|
|
684
|
+
aria-hidden: true;
|
|
570
685
|
}
|
|
571
686
|
p[role=note][data-tag~=beta],
|
|
572
687
|
[role=note][data-tag~=beta],
|
|
573
688
|
small > span[data-tag~=beta],
|
|
574
689
|
[data-tag][data-tag~=beta] {
|
|
575
|
-
|
|
690
|
+
--tag-color: #000000; /* Black: maximum contrast with amber background */
|
|
691
|
+
--tag-bg: var(--beta);
|
|
692
|
+
/* Visual indicator beyond color - warning symbol */
|
|
693
|
+
}
|
|
694
|
+
p[role=note][data-tag~=beta]::before,
|
|
695
|
+
[role=note][data-tag~=beta]::before,
|
|
696
|
+
small > span[data-tag~=beta]::before,
|
|
697
|
+
[data-tag][data-tag~=beta]::before {
|
|
698
|
+
content: "⚠";
|
|
699
|
+
margin-inline-end: 0.25rem;
|
|
700
|
+
font-weight: 700;
|
|
701
|
+
aria-hidden: true;
|
|
576
702
|
}
|
|
577
703
|
p[role=note][data-tag~=stable],
|
|
578
704
|
[role=note][data-tag~=stable],
|
|
579
705
|
small > span[data-tag~=stable],
|
|
580
706
|
[data-tag][data-tag~=stable] {
|
|
581
|
-
--tag-
|
|
707
|
+
--tag-color: #ffffff; /* White: 4.56:1 contrast with dark green */
|
|
582
708
|
--tag-bg: var(--stable);
|
|
709
|
+
/* Visual indicator beyond color - checkmark symbol */
|
|
710
|
+
}
|
|
711
|
+
p[role=note][data-tag~=stable]::before,
|
|
712
|
+
[role=note][data-tag~=stable]::before,
|
|
713
|
+
small > span[data-tag~=stable]::before,
|
|
714
|
+
[data-tag][data-tag~=stable]::before {
|
|
715
|
+
content: "✓";
|
|
716
|
+
margin-inline-end: 0.25rem;
|
|
717
|
+
font-weight: 700;
|
|
718
|
+
aria-hidden: true;
|
|
583
719
|
}
|
|
584
720
|
p[role=note][data-tag~=production],
|
|
585
721
|
[role=note][data-tag~=production],
|
|
586
722
|
small > span[data-tag~=production],
|
|
587
723
|
[data-tag][data-tag~=production] {
|
|
588
|
-
--tag-color:
|
|
724
|
+
--tag-color: #ffffff; /* White: 8.59:1 contrast with dark blue */
|
|
589
725
|
--tag-bg: var(--production);
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
[role=note][data-tag~=
|
|
593
|
-
|
|
594
|
-
[data-tag
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
[role=note][data-tag~=beta],
|
|
607
|
-
small > span[data-tag~=beta],
|
|
608
|
-
[data-tag][data-tag~=beta] {
|
|
609
|
-
--tag-color: currentColor;
|
|
610
|
-
--tag-bg: var(--beta);
|
|
611
|
-
}
|
|
612
|
-
|
|
726
|
+
/* Visual indicator beyond color - live indicator symbol */
|
|
727
|
+
}
|
|
728
|
+
p[role=note][data-tag~=production]::before,
|
|
729
|
+
[role=note][data-tag~=production]::before,
|
|
730
|
+
small > span[data-tag~=production]::before,
|
|
731
|
+
[data-tag][data-tag~=production]::before {
|
|
732
|
+
content: "●";
|
|
733
|
+
margin-inline-end: 0.25rem;
|
|
734
|
+
font-weight: 700;
|
|
735
|
+
aria-hidden: true;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
/**
|
|
739
|
+
* Block-level tag modifier
|
|
740
|
+
* Applied when Tag renders as <p> element
|
|
741
|
+
*/
|
|
613
742
|
p[role=note] {
|
|
614
743
|
--tag-display: block;
|
|
615
|
-
--
|
|
744
|
+
--tag-radius: 0.5rem; /* Less rounded for block tags (8px at 16px base) */
|
|
616
745
|
}
|
|
617
746
|
|
|
747
|
+
/**
|
|
748
|
+
* Image component styles
|
|
749
|
+
*
|
|
750
|
+
* Applies to all images with alt attribute (both decorative alt="" and semantic).
|
|
751
|
+
* Uses CSS custom properties for flexible theming and responsive behavior.
|
|
752
|
+
*/
|
|
618
753
|
img[alt] {
|
|
754
|
+
/* CSS Custom Properties - Override these for customization */
|
|
619
755
|
--img-max-width: 100%;
|
|
620
756
|
--img-height: auto;
|
|
621
757
|
--img-object-fit: cover;
|
|
622
758
|
--img-object-position: center;
|
|
623
759
|
--img-aspect-ratio: auto 2/3;
|
|
624
760
|
--img-display: inline-block;
|
|
761
|
+
/* Layout - Responsive by default */
|
|
625
762
|
max-width: var(--img-max-width);
|
|
626
|
-
max-inline-size: var(--img-max-width);
|
|
763
|
+
max-inline-size: var(--img-max-width); /* Logical property for i18n */
|
|
627
764
|
block-size: var(--img-height);
|
|
765
|
+
display: var(--img-display);
|
|
766
|
+
vertical-align: middle;
|
|
767
|
+
/* Object fitting for responsive images */
|
|
628
768
|
object-fit: var(--img-object-fit);
|
|
629
769
|
object-position: var(--img-object-position);
|
|
630
770
|
aspect-ratio: var(--img-aspect-ratio);
|
|
631
|
-
|
|
632
|
-
vertical-align: middle;
|
|
771
|
+
/* Accessibility - Italic font for broken image alt text */
|
|
633
772
|
font-style: italic;
|
|
773
|
+
/* Background for loading state */
|
|
634
774
|
background-size: cover;
|
|
635
775
|
background-repeat: no-repeat;
|
|
776
|
+
/* Shape margin for text wrapping */
|
|
636
777
|
shape-margin: var(--spc-3);
|
|
637
778
|
}
|
|
638
779
|
|
|
@@ -705,6 +846,22 @@ figure:has(img[alt]) > figcaption {
|
|
|
705
846
|
padding-block-start: calc(var(--card-p) - 0.5rem);
|
|
706
847
|
}
|
|
707
848
|
|
|
849
|
+
[data-card=interactive] {
|
|
850
|
+
cursor: pointer;
|
|
851
|
+
transition: box-shadow 0.2s ease, transform 0.2s ease;
|
|
852
|
+
}
|
|
853
|
+
[data-card=interactive]:hover {
|
|
854
|
+
transform: translateY(-2px);
|
|
855
|
+
box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15);
|
|
856
|
+
}
|
|
857
|
+
[data-card=interactive]:focus-visible {
|
|
858
|
+
outline: 0.125rem solid var(--focus-color, #0066CC);
|
|
859
|
+
outline-offset: 0.125rem;
|
|
860
|
+
}
|
|
861
|
+
[data-card=interactive]:focus:not(:focus-visible) {
|
|
862
|
+
outline: none;
|
|
863
|
+
}
|
|
864
|
+
|
|
708
865
|
progress {
|
|
709
866
|
/* Revert all styles */
|
|
710
867
|
all: revert;
|
|
@@ -790,6 +947,12 @@ details {
|
|
|
790
947
|
max-height: var(--max-h-closed);
|
|
791
948
|
overflow: clip;
|
|
792
949
|
}
|
|
950
|
+
@starting-style {
|
|
951
|
+
details {
|
|
952
|
+
transition: var(--summary-transitions);
|
|
953
|
+
color: red;
|
|
954
|
+
}
|
|
955
|
+
}
|
|
793
956
|
details + details {
|
|
794
957
|
border-radius: 0;
|
|
795
958
|
border-top: none;
|
|
@@ -819,14 +982,6 @@ details summary {
|
|
|
819
982
|
transition: var(--summary-transitions);
|
|
820
983
|
/* This ensures no bullet points are shown */
|
|
821
984
|
}
|
|
822
|
-
@supports (transition-behavior: allow-discrete) {
|
|
823
|
-
@starting-style {
|
|
824
|
-
details summary {
|
|
825
|
-
border-bottom: none;
|
|
826
|
-
transition: var(--summary-transitions);
|
|
827
|
-
}
|
|
828
|
-
}
|
|
829
|
-
}
|
|
830
985
|
details summary::-webkit-details-marker {
|
|
831
986
|
display: none;
|
|
832
987
|
}
|
|
@@ -861,34 +1016,58 @@ details[open] > summary {
|
|
|
861
1016
|
details[open] > section {
|
|
862
1017
|
max-height: var(--max-h-open);
|
|
863
1018
|
}
|
|
1019
|
+
@starting-style {
|
|
1020
|
+
details[open] > section {
|
|
1021
|
+
max-height: 0;
|
|
1022
|
+
}
|
|
1023
|
+
}
|
|
1024
|
+
@supports (transition-behavior: allow-discrete) {
|
|
1025
|
+
@starting-style {
|
|
1026
|
+
details {
|
|
1027
|
+
max-height: 0;
|
|
1028
|
+
transition: var(--summary-transitions);
|
|
1029
|
+
}
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
864
1032
|
|
|
1033
|
+
/**
|
|
1034
|
+
* Link Component Styles
|
|
1035
|
+
*
|
|
1036
|
+
* Provides accessible, customizable link styles using CSS custom properties.
|
|
1037
|
+
* Supports standard text links, button-styled links, and pill variants.
|
|
1038
|
+
*
|
|
1039
|
+
* WCAG 2.1 AA Compliance:
|
|
1040
|
+
* - Focus indicators meet 2.4.7 (3:1 contrast minimum)
|
|
1041
|
+
* - Color contrast meets 1.4.3 (4.5:1 for normal text)
|
|
1042
|
+
* - Uses :focus-visible for better UX (keyboard vs mouse)
|
|
1043
|
+
*/
|
|
865
1044
|
a[href] {
|
|
866
|
-
--link-decoration: none;
|
|
867
1045
|
--link-color: #085ab7;
|
|
1046
|
+
--link-weight: 400;
|
|
1047
|
+
--link-fs: 1rem;
|
|
1048
|
+
--link-decoration: none;
|
|
1049
|
+
--link-decoration-offset: 0.09375rem;
|
|
1050
|
+
--link-decoration-thickness: 0.0625rem;
|
|
1051
|
+
--link-skip-ink: auto;
|
|
868
1052
|
--link-bg: transparent;
|
|
1053
|
+
--link-radius: 0.25rem;
|
|
869
1054
|
--link-px: 0;
|
|
870
1055
|
--link-py: 0;
|
|
871
1056
|
--link-transition: all 0.75s ease-in-out;
|
|
872
|
-
--link-
|
|
873
|
-
--link-
|
|
874
|
-
--link-
|
|
875
|
-
--link-
|
|
876
|
-
--link-decoration-thickness: 3px;
|
|
877
|
-
--link-decoration: color: var(--link-color) var(--link-decoration-offset)
|
|
878
|
-
var(--link-decoration-thickness) var(--link-skip-ink);
|
|
879
|
-
--link-decoration-thickness: 3px;
|
|
880
|
-
--link-decoration: color: var(--link-color) var(--link-decoration-offset)
|
|
881
|
-
var(--link-decoration-thickness) var(--link-skip-ink);
|
|
1057
|
+
--link-focus-color: currentColor;
|
|
1058
|
+
--link-focus-width: 0.125rem;
|
|
1059
|
+
--link-focus-offset: 0.125rem;
|
|
1060
|
+
--link-focus-style: solid;
|
|
882
1061
|
color: var(--link-color);
|
|
883
1062
|
font-size: var(--link-fs);
|
|
1063
|
+
font-weight: var(--link-weight);
|
|
884
1064
|
text-decoration: var(--link-decoration);
|
|
885
1065
|
text-underline-offset: var(--link-decoration-offset);
|
|
1066
|
+
text-decoration-thickness: var(--link-decoration-thickness);
|
|
886
1067
|
text-decoration-skip-ink: var(--link-skip-ink);
|
|
887
1068
|
background-color: var(--link-bg);
|
|
888
1069
|
border-radius: var(--link-radius);
|
|
889
|
-
|
|
890
|
-
border-radius: var(--link-radius);
|
|
891
|
-
font-weight: var(--link-weight);
|
|
1070
|
+
transition: var(--link-transition);
|
|
892
1071
|
}
|
|
893
1072
|
a[href] > i,
|
|
894
1073
|
a[href] > b {
|
|
@@ -899,41 +1078,51 @@ a[href]:hover {
|
|
|
899
1078
|
--link-decoration: underline;
|
|
900
1079
|
}
|
|
901
1080
|
a[href]:focus {
|
|
902
|
-
outline:
|
|
1081
|
+
outline: var(--link-focus-width) var(--link-focus-style) var(--link-focus-color);
|
|
1082
|
+
outline-offset: var(--link-focus-offset);
|
|
903
1083
|
--link-decoration: underline;
|
|
904
1084
|
}
|
|
1085
|
+
a[href]:focus-visible {
|
|
1086
|
+
outline: var(--link-focus-width) var(--link-focus-style) var(--link-focus-color);
|
|
1087
|
+
outline-offset: var(--link-focus-offset);
|
|
1088
|
+
}
|
|
905
1089
|
a[href]:visited, a[href]:active {
|
|
906
1090
|
--link-color: currentColor;
|
|
907
1091
|
}
|
|
908
|
-
a[href]:has(> b), a[href][data-
|
|
1092
|
+
a[href]:has(> b), a[href][data-btn], a[href]:has(> i) {
|
|
909
1093
|
--link-button-color: var(--link-color);
|
|
910
1094
|
--link-bg: transparent;
|
|
911
1095
|
--link-decoration: none;
|
|
912
|
-
--link-border:
|
|
1096
|
+
--link-border-width: 0.125rem;
|
|
1097
|
+
--link-border-color: currentColor;
|
|
1098
|
+
--link-border-style: solid;
|
|
913
1099
|
--link-fs: 0.9rem;
|
|
1100
|
+
color: var(--link-button-color);
|
|
914
1101
|
background-color: var(--link-bg);
|
|
915
1102
|
font-style: normal;
|
|
916
1103
|
font-size: var(--link-fs);
|
|
917
|
-
color: var(--link-button-color);
|
|
918
1104
|
padding-inline: var(--link-fs);
|
|
919
1105
|
padding-block: calc(var(--link-fs) - 0.4rem);
|
|
920
1106
|
border-radius: var(--link-radius, 99rem);
|
|
921
1107
|
display: inline-flex;
|
|
922
|
-
|
|
1108
|
+
align-items: center;
|
|
1109
|
+
justify-content: center;
|
|
1110
|
+
outline: var(--link-border-width) var(--link-border-color) var(--link-border-style);
|
|
923
1111
|
--scale-transition: transform 0.25s ease;
|
|
924
1112
|
--scale: scale(1);
|
|
925
1113
|
--scale-to: scale(1.05);
|
|
926
1114
|
transform: var(--scale);
|
|
927
1115
|
transition: var(--scale-transition);
|
|
928
1116
|
}
|
|
929
|
-
a[href]:has(> b):focus, a[href][data-
|
|
930
|
-
outline: var(--link-border);
|
|
1117
|
+
a[href]:has(> b):focus, a[href]:has(> b):focus-visible, a[href][data-btn]:focus, a[href][data-btn]:focus-visible, a[href]:has(> i):focus, a[href]:has(> i):focus-visible {
|
|
1118
|
+
outline: var(--link-border-width) var(--link-border-color) var(--link-border-style);
|
|
1119
|
+
outline-offset: var(--link-focus-offset);
|
|
931
1120
|
--link-decoration: none;
|
|
932
1121
|
}
|
|
933
|
-
a[href]:has(> b):hover, a[href][data-
|
|
1122
|
+
a[href]:has(> b):hover, a[href][data-btn]:hover, a[href]:has(> i):hover {
|
|
934
1123
|
--link-decoration: none;
|
|
935
1124
|
}
|
|
936
|
-
a[href]:has(> b):hover, a[href][data-
|
|
1125
|
+
a[href]:has(> b):hover, a[href][data-btn]:hover, a[href]:has(> i):hover {
|
|
937
1126
|
transform: var(--scale-to);
|
|
938
1127
|
}
|
|
939
1128
|
a[href][data-link~=pill], a[href]:has(> i) {
|
|
@@ -941,14 +1130,10 @@ a[href][data-link~=pill], a[href]:has(> i) {
|
|
|
941
1130
|
--link-decoration: none;
|
|
942
1131
|
font-style: normal;
|
|
943
1132
|
}
|
|
944
|
-
a[href][data-link~=pill]:hover, a[href][data-link~=pill]:focus, a[href]:has(> i):hover, a[href]:has(> i):focus {
|
|
1133
|
+
a[href][data-link~=pill]:hover, a[href][data-link~=pill]:focus, a[href][data-link~=pill]:focus-visible, a[href]:has(> i):hover, a[href]:has(> i):focus, a[href]:has(> i):focus-visible {
|
|
945
1134
|
--link-decoration: none;
|
|
946
1135
|
}
|
|
947
1136
|
|
|
948
|
-
header > section {
|
|
949
|
-
width: auto;
|
|
950
|
-
}
|
|
951
|
-
|
|
952
1137
|
header,
|
|
953
1138
|
[data-hero],
|
|
954
1139
|
[data-grid~=overlay] {
|
|
@@ -1118,8 +1303,23 @@ footer > div {
|
|
|
1118
1303
|
--dialog-button-hover-bg: whitesmoke;
|
|
1119
1304
|
--dialog-display: flex;
|
|
1120
1305
|
--dialog-flex-direction: column;
|
|
1306
|
+
/* Focus and accessibility */
|
|
1307
|
+
--dialog-focus-color: #0066cc;
|
|
1308
|
+
--dialog-focus-width: 0.125rem;
|
|
1309
|
+
--dialog-focus-offset: 0.125rem;
|
|
1310
|
+
--dialog-focus-outline: var(--dialog-focus-width) solid var(--dialog-focus-color);
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
/* High contrast mode support */
|
|
1314
|
+
@media (prefers-contrast: high) {
|
|
1315
|
+
:root {
|
|
1316
|
+
--dialog-border-color: currentColor;
|
|
1317
|
+
--dialog-border-width: 0.125rem;
|
|
1318
|
+
--dialog-close-color: currentColor;
|
|
1319
|
+
--dialog-button-border: currentColor 0.125rem solid;
|
|
1320
|
+
--dialog-focus-width: 0.1875rem;
|
|
1321
|
+
}
|
|
1121
1322
|
}
|
|
1122
|
-
|
|
1123
1323
|
dialog {
|
|
1124
1324
|
width: var(--dialog-min-w);
|
|
1125
1325
|
min-width: var(--min-w);
|
|
@@ -1127,7 +1327,12 @@ dialog {
|
|
|
1127
1327
|
border: var(--dialog-border-color) var(--dialog-border-width) solid;
|
|
1128
1328
|
border-radius: var(--dialog-border-radius);
|
|
1129
1329
|
padding: var(--dialog-padding);
|
|
1130
|
-
padding-block-start:
|
|
1330
|
+
padding-block-start: var(--dialog-padding);
|
|
1331
|
+
/* Focus visible for keyboard navigation */
|
|
1332
|
+
}
|
|
1333
|
+
dialog:focus-visible {
|
|
1334
|
+
outline: var(--dialog-focus-outline);
|
|
1335
|
+
outline-offset: var(--dialog-focus-offset);
|
|
1131
1336
|
}
|
|
1132
1337
|
dialog[open] {
|
|
1133
1338
|
display: var(--dialog-display);
|
|
@@ -1162,11 +1367,22 @@ dialog section {
|
|
|
1162
1367
|
background-color: var(--dialog-button-bg);
|
|
1163
1368
|
border: var(--dialog-button-border);
|
|
1164
1369
|
cursor: pointer;
|
|
1370
|
+
/* Keyboard focus indicator */
|
|
1371
|
+
/* Remove default focus for mouse users */
|
|
1165
1372
|
}
|
|
1166
|
-
.dialog-header button[type=button]:hover
|
|
1373
|
+
.dialog-header button[type=button]:hover {
|
|
1167
1374
|
border-color: var(--dialog-close-color);
|
|
1168
1375
|
background-color: var(--dialog-button-hover-bg);
|
|
1169
1376
|
}
|
|
1377
|
+
.dialog-header button[type=button]:focus-visible {
|
|
1378
|
+
outline: var(--dialog-focus-outline);
|
|
1379
|
+
outline-offset: var(--dialog-focus-offset);
|
|
1380
|
+
border-color: var(--dialog-focus-color);
|
|
1381
|
+
background-color: var(--dialog-button-hover-bg);
|
|
1382
|
+
}
|
|
1383
|
+
.dialog-header button[type=button]:focus:not(:focus-visible) {
|
|
1384
|
+
outline: none;
|
|
1385
|
+
}
|
|
1170
1386
|
|
|
1171
1387
|
.alert-dialog-actions,
|
|
1172
1388
|
.dialog-footer {
|
|
@@ -1176,6 +1392,16 @@ dialog section {
|
|
|
1176
1392
|
justify-content: var(--dialog-footer-justify, flex-end);
|
|
1177
1393
|
gap: var(--dialog-gap);
|
|
1178
1394
|
width: 100%;
|
|
1395
|
+
/* Focus styles for footer buttons */
|
|
1396
|
+
}
|
|
1397
|
+
.alert-dialog-actions button:focus-visible,
|
|
1398
|
+
.dialog-footer button:focus-visible {
|
|
1399
|
+
outline: var(--dialog-focus-outline);
|
|
1400
|
+
outline-offset: var(--dialog-focus-offset);
|
|
1401
|
+
}
|
|
1402
|
+
.alert-dialog-actions button:focus:not(:focus-visible),
|
|
1403
|
+
.dialog-footer button:focus:not(:focus-visible) {
|
|
1404
|
+
outline: none;
|
|
1179
1405
|
}
|
|
1180
1406
|
|
|
1181
1407
|
:root {
|
|
@@ -1290,8 +1516,26 @@ sup:has(> span) span {
|
|
|
1290
1516
|
color: inherit;
|
|
1291
1517
|
}
|
|
1292
1518
|
sup:has(> span)[data-badge~=rounded] {
|
|
1293
|
-
--badge-radius:
|
|
1294
|
-
--badge-padding: 0
|
|
1519
|
+
--badge-radius: 50%;
|
|
1520
|
+
--badge-padding: 0;
|
|
1521
|
+
--badge-size: 1.5625rem;
|
|
1522
|
+
width: var(--badge-size);
|
|
1523
|
+
height: var(--badge-size);
|
|
1524
|
+
display: inline-flex;
|
|
1525
|
+
align-items: center;
|
|
1526
|
+
justify-content: center;
|
|
1527
|
+
line-height: 1;
|
|
1528
|
+
font-size: 0.6875rem;
|
|
1529
|
+
font-weight: 700;
|
|
1530
|
+
overflow: hidden;
|
|
1531
|
+
box-sizing: border-box;
|
|
1532
|
+
}
|
|
1533
|
+
sup:has(> span)[data-badge~=rounded] span {
|
|
1534
|
+
max-width: 100%;
|
|
1535
|
+
overflow: hidden;
|
|
1536
|
+
text-overflow: clip;
|
|
1537
|
+
white-space: nowrap;
|
|
1538
|
+
padding: 0 0.125rem;
|
|
1295
1539
|
}
|
|
1296
1540
|
|
|
1297
1541
|
body > nav,
|
|
@@ -1321,7 +1565,7 @@ body > nav ul > li,
|
|
|
1321
1565
|
}
|
|
1322
1566
|
body > nav ul > li:hover,
|
|
1323
1567
|
[aria-label~=navbar] ul > li:hover, .navbar ul > li:hover {
|
|
1324
|
-
background-color: var(--nav-hov-bg,
|
|
1568
|
+
background-color: var(--nav-hov-bg, #e8e8e8);
|
|
1325
1569
|
}
|
|
1326
1570
|
body > nav ul > li:hover:where(img),
|
|
1327
1571
|
[aria-label~=navbar] ul > li:hover:where(img), .navbar ul > li:hover:where(img) {
|
|
@@ -1329,6 +1573,10 @@ body > nav ul > li:hover:where(img),
|
|
|
1329
1573
|
}
|
|
1330
1574
|
|
|
1331
1575
|
nav {
|
|
1576
|
+
--nav-focus-color: currentColor;
|
|
1577
|
+
--nav-focus-width: 0.125rem;
|
|
1578
|
+
--nav-focus-offset: 0.125rem;
|
|
1579
|
+
--nav-focus-style: solid;
|
|
1332
1580
|
display: var(--nav-dsp, flex);
|
|
1333
1581
|
flex-direction: var(--nav-direction, row);
|
|
1334
1582
|
width: var(--nav-w, auto);
|
|
@@ -1377,6 +1625,22 @@ nav[data-variant] {
|
|
|
1377
1625
|
nav > div {
|
|
1378
1626
|
margin-block-start: 0;
|
|
1379
1627
|
}
|
|
1628
|
+
nav a:focus {
|
|
1629
|
+
outline: var(--nav-focus-width) var(--nav-focus-style) var(--nav-focus-color);
|
|
1630
|
+
outline-offset: var(--nav-focus-offset);
|
|
1631
|
+
}
|
|
1632
|
+
nav a:focus-visible {
|
|
1633
|
+
outline: var(--nav-focus-width) var(--nav-focus-style) var(--nav-focus-color);
|
|
1634
|
+
outline-offset: var(--nav-focus-offset);
|
|
1635
|
+
}
|
|
1636
|
+
nav button:focus {
|
|
1637
|
+
outline: var(--nav-focus-width) var(--nav-focus-style) var(--nav-focus-color);
|
|
1638
|
+
outline-offset: var(--nav-focus-offset);
|
|
1639
|
+
}
|
|
1640
|
+
nav button:focus-visible {
|
|
1641
|
+
outline: var(--nav-focus-width) var(--nav-focus-style) var(--nav-focus-color);
|
|
1642
|
+
outline-offset: var(--nav-focus-offset);
|
|
1643
|
+
}
|
|
1380
1644
|
|
|
1381
1645
|
:root {
|
|
1382
1646
|
--input-border-color: gray;
|
|
@@ -1511,6 +1775,230 @@ nav[data-breadcrumb] ol li a[href][aria-current] {
|
|
|
1511
1775
|
text-decoration: none;
|
|
1512
1776
|
}
|
|
1513
1777
|
|
|
1778
|
+
/**
|
|
1779
|
+
* List Component Styles
|
|
1780
|
+
*
|
|
1781
|
+
* Provides default styling for ul, ol, and dl list elements with CSS custom
|
|
1782
|
+
* properties for theming. Uses rem units exclusively for accessibility.
|
|
1783
|
+
*
|
|
1784
|
+
* @base-rem: 16px = 1rem
|
|
1785
|
+
*/
|
|
1786
|
+
ul,
|
|
1787
|
+
ol,
|
|
1788
|
+
dl {
|
|
1789
|
+
--list-margin-top: 0;
|
|
1790
|
+
--list-margin-bottom: 1rem;
|
|
1791
|
+
--list-margin-inline: 0;
|
|
1792
|
+
--list-padding-inline: 2.5rem;
|
|
1793
|
+
--list-gap: 0.5rem;
|
|
1794
|
+
--list-marker-color: currentColor;
|
|
1795
|
+
--list-marker-size: 1em;
|
|
1796
|
+
--list-marker-offset: 0.5rem;
|
|
1797
|
+
--list-font-size: 1rem;
|
|
1798
|
+
--list-line-height: 1.5;
|
|
1799
|
+
--list-font-family: inherit;
|
|
1800
|
+
--list-color: inherit;
|
|
1801
|
+
--list-item-margin-bottom: 0.5rem;
|
|
1802
|
+
--list-item-padding-inline: 0;
|
|
1803
|
+
--list-item-padding-block: 0;
|
|
1804
|
+
--dt-font-weight: 600;
|
|
1805
|
+
--dt-margin-bottom: 0.25rem;
|
|
1806
|
+
--dd-margin-inline-start: 2rem;
|
|
1807
|
+
--dd-margin-bottom: 1rem;
|
|
1808
|
+
}
|
|
1809
|
+
|
|
1810
|
+
ul,
|
|
1811
|
+
ol,
|
|
1812
|
+
dl {
|
|
1813
|
+
margin-block-start: var(--list-margin-top);
|
|
1814
|
+
margin-block-end: var(--list-margin-bottom);
|
|
1815
|
+
margin-inline: var(--list-margin-inline);
|
|
1816
|
+
padding-inline-start: var(--list-padding-inline);
|
|
1817
|
+
font-size: var(--list-font-size);
|
|
1818
|
+
line-height: var(--list-line-height);
|
|
1819
|
+
font-family: var(--list-font-family);
|
|
1820
|
+
color: var(--list-color);
|
|
1821
|
+
}
|
|
1822
|
+
ul ul,
|
|
1823
|
+
ul ol,
|
|
1824
|
+
ul dl,
|
|
1825
|
+
ol ul,
|
|
1826
|
+
ol ol,
|
|
1827
|
+
ol dl,
|
|
1828
|
+
dl ul,
|
|
1829
|
+
dl ol,
|
|
1830
|
+
dl dl {
|
|
1831
|
+
margin-block-start: var(--list-gap);
|
|
1832
|
+
margin-block-end: var(--list-gap);
|
|
1833
|
+
}
|
|
1834
|
+
|
|
1835
|
+
ul {
|
|
1836
|
+
list-style-type: disc;
|
|
1837
|
+
}
|
|
1838
|
+
ul::marker {
|
|
1839
|
+
color: var(--list-marker-color);
|
|
1840
|
+
font-size: var(--list-marker-size);
|
|
1841
|
+
}
|
|
1842
|
+
ul ul {
|
|
1843
|
+
list-style-type: circle;
|
|
1844
|
+
}
|
|
1845
|
+
ul ul ul {
|
|
1846
|
+
list-style-type: square;
|
|
1847
|
+
}
|
|
1848
|
+
|
|
1849
|
+
ol {
|
|
1850
|
+
list-style-type: decimal;
|
|
1851
|
+
}
|
|
1852
|
+
ol::marker {
|
|
1853
|
+
color: var(--list-marker-color);
|
|
1854
|
+
font-size: var(--list-marker-size);
|
|
1855
|
+
}
|
|
1856
|
+
ol ol {
|
|
1857
|
+
list-style-type: lower-alpha;
|
|
1858
|
+
}
|
|
1859
|
+
ol ol ol {
|
|
1860
|
+
list-style-type: lower-roman;
|
|
1861
|
+
}
|
|
1862
|
+
|
|
1863
|
+
li {
|
|
1864
|
+
margin-block-end: var(--list-item-margin-bottom);
|
|
1865
|
+
padding-inline: var(--list-item-padding-inline);
|
|
1866
|
+
padding-block: var(--list-item-padding-block);
|
|
1867
|
+
padding-inline-start: var(--list-marker-offset);
|
|
1868
|
+
}
|
|
1869
|
+
li:last-child {
|
|
1870
|
+
margin-block-end: 0;
|
|
1871
|
+
}
|
|
1872
|
+
|
|
1873
|
+
dl {
|
|
1874
|
+
padding-inline-start: 0;
|
|
1875
|
+
}
|
|
1876
|
+
|
|
1877
|
+
dt {
|
|
1878
|
+
font-weight: var(--dt-font-weight);
|
|
1879
|
+
margin-block-end: var(--dt-margin-bottom);
|
|
1880
|
+
padding-inline: var(--list-item-padding-inline);
|
|
1881
|
+
padding-block: var(--list-item-padding-block);
|
|
1882
|
+
}
|
|
1883
|
+
|
|
1884
|
+
dd {
|
|
1885
|
+
margin-inline-start: var(--dd-margin-inline-start);
|
|
1886
|
+
margin-block-end: var(--dd-margin-bottom);
|
|
1887
|
+
padding-inline: var(--list-item-padding-inline);
|
|
1888
|
+
padding-block: var(--list-item-padding-block);
|
|
1889
|
+
}
|
|
1890
|
+
dd:last-child {
|
|
1891
|
+
margin-block-end: 0;
|
|
1892
|
+
}
|
|
1893
|
+
|
|
1894
|
+
ul[data-variant=none],
|
|
1895
|
+
ol[data-variant=none],
|
|
1896
|
+
dl[data-variant=none] {
|
|
1897
|
+
list-style-type: none;
|
|
1898
|
+
padding-inline-start: 0;
|
|
1899
|
+
}
|
|
1900
|
+
ul[data-variant=none] li,
|
|
1901
|
+
ol[data-variant=none] li,
|
|
1902
|
+
dl[data-variant=none] li {
|
|
1903
|
+
padding-inline-start: 0;
|
|
1904
|
+
}
|
|
1905
|
+
ul[data-variant=inline],
|
|
1906
|
+
ol[data-variant=inline],
|
|
1907
|
+
dl[data-variant=inline] {
|
|
1908
|
+
display: flex;
|
|
1909
|
+
flex-direction: row;
|
|
1910
|
+
flex-wrap: wrap;
|
|
1911
|
+
gap: var(--list-gap);
|
|
1912
|
+
padding-inline-start: 0;
|
|
1913
|
+
list-style-type: none;
|
|
1914
|
+
}
|
|
1915
|
+
ul[data-variant=inline] li,
|
|
1916
|
+
ol[data-variant=inline] li,
|
|
1917
|
+
dl[data-variant=inline] li {
|
|
1918
|
+
padding-inline-start: 0;
|
|
1919
|
+
margin-block-end: 0;
|
|
1920
|
+
}
|
|
1921
|
+
ul[data-variant=custom],
|
|
1922
|
+
ol[data-variant=custom],
|
|
1923
|
+
dl[data-variant=custom] {
|
|
1924
|
+
list-style-type: none;
|
|
1925
|
+
padding-inline-start: 0;
|
|
1926
|
+
}
|
|
1927
|
+
ul[data-variant=custom] li,
|
|
1928
|
+
ol[data-variant=custom] li,
|
|
1929
|
+
dl[data-variant=custom] li {
|
|
1930
|
+
position: relative;
|
|
1931
|
+
padding-inline-start: calc(var(--list-marker-size) + var(--list-marker-offset));
|
|
1932
|
+
}
|
|
1933
|
+
ul[data-variant=custom] li::before,
|
|
1934
|
+
ol[data-variant=custom] li::before,
|
|
1935
|
+
dl[data-variant=custom] li::before {
|
|
1936
|
+
content: var(--list-marker-content, "•");
|
|
1937
|
+
color: var(--list-marker-color);
|
|
1938
|
+
font-size: var(--list-marker-size);
|
|
1939
|
+
position: absolute;
|
|
1940
|
+
left: 0;
|
|
1941
|
+
}
|
|
1942
|
+
ul[data-variant=compact],
|
|
1943
|
+
ol[data-variant=compact],
|
|
1944
|
+
dl[data-variant=compact] {
|
|
1945
|
+
--list-gap: 0.25rem;
|
|
1946
|
+
--list-item-margin-bottom: 0.25rem;
|
|
1947
|
+
--list-margin-bottom: 0.5rem;
|
|
1948
|
+
}
|
|
1949
|
+
ul[data-variant=spaced],
|
|
1950
|
+
ol[data-variant=spaced],
|
|
1951
|
+
dl[data-variant=spaced] {
|
|
1952
|
+
--list-gap: 1rem;
|
|
1953
|
+
--list-item-margin-bottom: 1rem;
|
|
1954
|
+
}
|
|
1955
|
+
|
|
1956
|
+
li:has(a:focus-visible),
|
|
1957
|
+
li:has(button:focus-visible) {
|
|
1958
|
+
outline: 0.0625rem solid transparent;
|
|
1959
|
+
}
|
|
1960
|
+
|
|
1961
|
+
li:has(> a),
|
|
1962
|
+
li:has(> button) {
|
|
1963
|
+
margin-block-end: 0;
|
|
1964
|
+
}
|
|
1965
|
+
|
|
1966
|
+
@media print {
|
|
1967
|
+
ul,
|
|
1968
|
+
ol,
|
|
1969
|
+
dl {
|
|
1970
|
+
--list-margin-bottom: 0.5rem;
|
|
1971
|
+
--list-item-margin-bottom: 0.25rem;
|
|
1972
|
+
}
|
|
1973
|
+
ul,
|
|
1974
|
+
ol {
|
|
1975
|
+
list-style-position: inside;
|
|
1976
|
+
}
|
|
1977
|
+
}
|
|
1978
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1979
|
+
ul,
|
|
1980
|
+
ol,
|
|
1981
|
+
dl,
|
|
1982
|
+
li,
|
|
1983
|
+
dt,
|
|
1984
|
+
dd {
|
|
1985
|
+
animation: none;
|
|
1986
|
+
transition: none;
|
|
1987
|
+
}
|
|
1988
|
+
}
|
|
1989
|
+
/* Screen reader only utility class */
|
|
1990
|
+
.sr-only {
|
|
1991
|
+
position: absolute;
|
|
1992
|
+
width: 1px;
|
|
1993
|
+
height: 1px;
|
|
1994
|
+
padding: 0;
|
|
1995
|
+
margin: -1px;
|
|
1996
|
+
overflow: hidden;
|
|
1997
|
+
clip: rect(0, 0, 0, 0);
|
|
1998
|
+
white-space: nowrap;
|
|
1999
|
+
border-width: 0;
|
|
2000
|
+
}
|
|
2001
|
+
|
|
1514
2002
|
[role=alert] {
|
|
1515
2003
|
/* Success colors */
|
|
1516
2004
|
--alert-success-bg: #e6f4ea;
|
|
@@ -1528,6 +2016,8 @@ nav[data-breadcrumb] ol li a[href][aria-current] {
|
|
|
1528
2016
|
--alert-info-bg: #e5f6fd;
|
|
1529
2017
|
--alert-info-border: #0288d1;
|
|
1530
2018
|
--alert-info-text: #084154;
|
|
2019
|
+
/* Animation */
|
|
2020
|
+
--alert-transition-duration: 0.3s;
|
|
1531
2021
|
--alert-border: thin solid currentColor;
|
|
1532
2022
|
background-color: var(--alert-bg, whitesmoke);
|
|
1533
2023
|
border: var(--alert-border, currentColor);
|
|
@@ -1539,19 +2029,59 @@ nav[data-breadcrumb] ol li a[href][aria-current] {
|
|
|
1539
2029
|
display: flex;
|
|
1540
2030
|
flex-direction: row;
|
|
1541
2031
|
border-radius: var(--alert-border-radius, var(--border-radius));
|
|
1542
|
-
border: var(--alert-border);
|
|
1543
2032
|
gap: var(--alert-gap, var(--spc-4));
|
|
2033
|
+
/* Exit animations */
|
|
2034
|
+
transition: opacity var(--alert-transition-duration) ease, transform var(--alert-transition-duration) ease;
|
|
2035
|
+
opacity: 1;
|
|
2036
|
+
transform: translateY(0);
|
|
2037
|
+
/* Focus indicators for keyboard navigation (WCAG 2.4.7) */
|
|
2038
|
+
/* Hide focus outline for mouse clicks, keep for keyboard */
|
|
2039
|
+
/* Variant: Filled - Solid colored background */
|
|
2040
|
+
/* Variant: Soft - No border, subtle background */
|
|
2041
|
+
/* Variant: Outlined - Default with border (no additional styles needed) */
|
|
2042
|
+
}
|
|
2043
|
+
[role=alert]:not([data-visible=true]) {
|
|
2044
|
+
opacity: 0;
|
|
2045
|
+
transform: translateY(-0.5rem);
|
|
1544
2046
|
}
|
|
1545
|
-
|
|
2047
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2048
|
+
[role=alert] {
|
|
2049
|
+
transition-duration: 0.01ms;
|
|
2050
|
+
}
|
|
2051
|
+
}
|
|
2052
|
+
[role=alert]:focus {
|
|
2053
|
+
outline: 2px solid currentColor;
|
|
2054
|
+
outline-offset: 2px;
|
|
2055
|
+
}
|
|
2056
|
+
[role=alert]:focus:not(:focus-visible) {
|
|
2057
|
+
outline: none;
|
|
2058
|
+
}
|
|
2059
|
+
[role=alert] .alert-icon {
|
|
1546
2060
|
margin-block-start: 0;
|
|
1547
2061
|
align-items: center;
|
|
1548
2062
|
}
|
|
1549
2063
|
[role=alert] .alert-message {
|
|
1550
2064
|
flex: 2;
|
|
1551
2065
|
margin-block-start: 0;
|
|
2066
|
+
/* Title styles for both heading and strong elements */
|
|
2067
|
+
/* Reset heading-specific styles */
|
|
1552
2068
|
}
|
|
1553
|
-
[role=alert] .alert-message
|
|
1554
|
-
margin-block-end: 0;
|
|
2069
|
+
[role=alert] .alert-message .alert-title {
|
|
2070
|
+
margin-block-end: var(--spc-1, 0.25rem);
|
|
2071
|
+
margin-block-start: 0;
|
|
2072
|
+
font-weight: var(--alert-title-weight, 600);
|
|
2073
|
+
font-size: var(--alert-title-size, inherit);
|
|
2074
|
+
line-height: 1.4;
|
|
2075
|
+
}
|
|
2076
|
+
[role=alert] .alert-message h2.alert-title,
|
|
2077
|
+
[role=alert] .alert-message h3.alert-title,
|
|
2078
|
+
[role=alert] .alert-message h4.alert-title,
|
|
2079
|
+
[role=alert] .alert-message h5.alert-title,
|
|
2080
|
+
[role=alert] .alert-message h6.alert-title {
|
|
2081
|
+
margin: 0;
|
|
2082
|
+
margin-block-end: var(--spc-1, 0.25rem);
|
|
2083
|
+
font-size: inherit;
|
|
2084
|
+
font-weight: var(--alert-title-weight, 600);
|
|
1555
2085
|
}
|
|
1556
2086
|
[role=alert][data-alert~=info] {
|
|
1557
2087
|
--alert-bg: var(--alert-info-bg);
|
|
@@ -1575,6 +2105,39 @@ nav[data-breadcrumb] ol li a[href][aria-current] {
|
|
|
1575
2105
|
}
|
|
1576
2106
|
[role=alert] button[data-btn~=icon] {
|
|
1577
2107
|
--btn-bg: transparent;
|
|
2108
|
+
align-items: flex-start;
|
|
2109
|
+
}
|
|
2110
|
+
[role=alert][data-variant=filled] {
|
|
2111
|
+
border: none;
|
|
2112
|
+
}
|
|
2113
|
+
[role=alert][data-variant=filled][data-alert~=info] {
|
|
2114
|
+
--alert-bg: var(--alert-info-border);
|
|
2115
|
+
--alert-color: white;
|
|
2116
|
+
}
|
|
2117
|
+
[role=alert][data-variant=filled][data-alert~=warning] {
|
|
2118
|
+
--alert-bg: var(--alert-warning-border);
|
|
2119
|
+
--alert-color: white;
|
|
2120
|
+
}
|
|
2121
|
+
[role=alert][data-variant=filled][data-alert~=error] {
|
|
2122
|
+
--alert-bg: var(--alert-error-border);
|
|
2123
|
+
--alert-color: white;
|
|
2124
|
+
}
|
|
2125
|
+
[role=alert][data-variant=filled][data-alert~=success] {
|
|
2126
|
+
--alert-bg: var(--alert-success-border);
|
|
2127
|
+
--alert-color: white;
|
|
2128
|
+
}
|
|
2129
|
+
[role=alert][data-variant=filled][data-alert~=default] {
|
|
2130
|
+
--alert-bg: #757575;
|
|
2131
|
+
--alert-color: white;
|
|
2132
|
+
}
|
|
2133
|
+
[role=alert][data-variant=soft] {
|
|
2134
|
+
border: none;
|
|
2135
|
+
}
|
|
2136
|
+
[role=alert][data-variant=outlined] {
|
|
2137
|
+
/* This is the default variant, styles already applied above */
|
|
2138
|
+
}
|
|
2139
|
+
[role=alert] p {
|
|
2140
|
+
font-size: 0.875rem;
|
|
1578
2141
|
}
|
|
1579
2142
|
|
|
1580
2143
|
[data-tts] {
|