@livenetworks/ashlar 2.1.13 → 2.2.1
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/assets/brand/android-chrome-192x192.png +0 -0
- package/assets/brand/android-chrome-512x512.png +0 -0
- package/assets/brand/apple-touch-icon.png +0 -0
- package/assets/brand/favicon-16x16.png +0 -0
- package/assets/brand/favicon-32x32.png +0 -0
- package/assets/brand/favicon-48x48.png +0 -0
- package/assets/brand/favicon-dark-128x128.png +0 -0
- package/assets/brand/favicon-dark-16x16.png +0 -0
- package/assets/brand/favicon-dark-180x180.png +0 -0
- package/assets/brand/favicon-dark-192x192.png +0 -0
- package/assets/brand/favicon-dark-256x256.png +0 -0
- package/assets/brand/favicon-dark-32x32.png +0 -0
- package/assets/brand/favicon-dark-48x48.png +0 -0
- package/assets/brand/favicon-dark-512x512.png +0 -0
- package/assets/brand/favicon-dark-64x64.png +0 -0
- package/assets/brand/favicon-dark.ico +0 -0
- package/assets/brand/favicon-dark.png +0 -0
- package/assets/brand/favicon-light-128x128.png +0 -0
- package/assets/brand/favicon-light-16x16.png +0 -0
- package/assets/brand/favicon-light-180x180.png +0 -0
- package/assets/brand/favicon-light-192x192.png +0 -0
- package/assets/brand/favicon-light-256x256.png +0 -0
- package/assets/brand/favicon-light-32x32.png +0 -0
- package/assets/brand/favicon-light-48x48.png +0 -0
- package/assets/brand/favicon-light-512x512.png +0 -0
- package/assets/brand/favicon-light-64x64.png +0 -0
- package/assets/brand/favicon-light.ico +0 -0
- package/assets/brand/favicon-light.png +0 -0
- package/assets/brand/favicon.ico +0 -0
- package/assets/brand/favicon.png +0 -0
- package/assets/brand/favicon.svg +12 -0
- package/assets/brand/ln-ashlar-emblem-dark-128.png +0 -0
- package/assets/brand/ln-ashlar-emblem-dark-16.png +0 -0
- package/assets/brand/ln-ashlar-emblem-dark-256.png +0 -0
- package/assets/brand/ln-ashlar-emblem-dark-32.png +0 -0
- package/assets/brand/ln-ashlar-emblem-dark-64.png +0 -0
- package/assets/brand/ln-ashlar-emblem-dark.png +0 -0
- package/assets/brand/ln-ashlar-emblem-light-128.png +0 -0
- package/assets/brand/ln-ashlar-emblem-light-16.png +0 -0
- package/assets/brand/ln-ashlar-emblem-light-256.png +0 -0
- package/assets/brand/ln-ashlar-emblem-light-32.png +0 -0
- package/assets/brand/ln-ashlar-emblem-light-64.png +0 -0
- package/assets/brand/ln-ashlar-emblem-light.png +0 -0
- package/assets/brand/ln-ashlar-logo-dark-128.png +0 -0
- package/assets/brand/ln-ashlar-logo-dark-256.png +0 -0
- package/assets/brand/ln-ashlar-logo-dark-512.png +0 -0
- package/assets/brand/ln-ashlar-logo-dark.png +0 -0
- package/assets/brand/ln-ashlar-logo-light-128.png +0 -0
- package/assets/brand/ln-ashlar-logo-light-256.png +0 -0
- package/assets/brand/ln-ashlar-logo-light-512.png +0 -0
- package/assets/brand/ln-ashlar-logo-light.png +0 -0
- package/assets/brand/site.webmanifest +41 -0
- package/assets/brand/source/ln-ashlar-icon-dark-1024.png +0 -0
- package/assets/brand/source/ln-ashlar-icon-dark-uncropped-1024.png +0 -0
- package/assets/brand/source/ln-ashlar-icon-light-1024.png +0 -0
- package/assets/brand/source/ln-ashlar-icon-light-uncropped-1024.png +0 -0
- package/assets/flags/ad.svg +150 -0
- package/assets/flags/ae.svg +6 -0
- package/assets/flags/af.svg +81 -0
- package/assets/flags/ag.svg +14 -0
- package/assets/flags/ai.svg +29 -0
- package/assets/flags/al.svg +5 -0
- package/assets/flags/am.svg +5 -0
- package/assets/flags/ao.svg +13 -0
- package/assets/flags/aq.svg +5 -0
- package/assets/flags/ar.svg +32 -0
- package/assets/flags/arab.svg +109 -0
- package/assets/flags/as.svg +72 -0
- package/assets/flags/asean.svg +13 -0
- package/assets/flags/at.svg +4 -0
- package/assets/flags/au.svg +8 -0
- package/assets/flags/aw.svg +186 -0
- package/assets/flags/ax.svg +18 -0
- package/assets/flags/az.svg +8 -0
- package/assets/flags/ba.svg +12 -0
- package/assets/flags/bb.svg +6 -0
- package/assets/flags/bd.svg +4 -0
- package/assets/flags/be.svg +7 -0
- package/assets/flags/bf.svg +7 -0
- package/assets/flags/bg.svg +5 -0
- package/assets/flags/bh.svg +4 -0
- package/assets/flags/bi.svg +15 -0
- package/assets/flags/bj.svg +14 -0
- package/assets/flags/bl.svg +5 -0
- package/assets/flags/bm.svg +97 -0
- package/assets/flags/bn.svg +36 -0
- package/assets/flags/bo.svg +673 -0
- package/assets/flags/bq.svg +5 -0
- package/assets/flags/br.svg +45 -0
- package/assets/flags/bs.svg +13 -0
- package/assets/flags/bt.svg +89 -0
- package/assets/flags/bv.svg +13 -0
- package/assets/flags/bw.svg +7 -0
- package/assets/flags/by.svg +18 -0
- package/assets/flags/bz.svg +145 -0
- package/assets/flags/ca.svg +4 -0
- package/assets/flags/cc.svg +19 -0
- package/assets/flags/cd.svg +5 -0
- package/assets/flags/cefta.svg +13 -0
- package/assets/flags/cf.svg +15 -0
- package/assets/flags/cg.svg +12 -0
- package/assets/flags/ch.svg +9 -0
- package/assets/flags/ci.svg +7 -0
- package/assets/flags/ck.svg +9 -0
- package/assets/flags/cl.svg +13 -0
- package/assets/flags/cm.svg +15 -0
- package/assets/flags/cn.svg +11 -0
- package/assets/flags/co.svg +7 -0
- package/assets/flags/cp.svg +7 -0
- package/assets/flags/cr.svg +7 -0
- package/assets/flags/cu.svg +13 -0
- package/assets/flags/cv.svg +13 -0
- package/assets/flags/cw.svg +14 -0
- package/assets/flags/cx.svg +15 -0
- package/assets/flags/cy.svg +6 -0
- package/assets/flags/cz.svg +5 -0
- package/assets/flags/de.svg +5 -0
- package/assets/flags/dg.svg +130 -0
- package/assets/flags/dj.svg +13 -0
- package/assets/flags/dk.svg +5 -0
- package/assets/flags/dm.svg +152 -0
- package/assets/flags/do.svg +121 -0
- package/assets/flags/dz.svg +5 -0
- package/assets/flags/eac.svg +48 -0
- package/assets/flags/ec.svg +138 -0
- package/assets/flags/ee.svg +5 -0
- package/assets/flags/eg.svg +38 -0
- package/assets/flags/eh.svg +16 -0
- package/assets/flags/er.svg +8 -0
- package/assets/flags/es-ct.svg +4 -0
- package/assets/flags/es-ga.svg +187 -0
- package/assets/flags/es-pv.svg +5 -0
- package/assets/flags/es.svg +544 -0
- package/assets/flags/et.svg +14 -0
- package/assets/flags/eu.svg +28 -0
- package/assets/flags/fi.svg +5 -0
- package/assets/flags/fj.svg +120 -0
- package/assets/flags/fk.svg +90 -0
- package/assets/flags/fm.svg +11 -0
- package/assets/flags/fo.svg +12 -0
- package/assets/flags/fr.svg +5 -0
- package/assets/flags/ga.svg +7 -0
- package/assets/flags/gb-eng.svg +5 -0
- package/assets/flags/gb-nir.svg +132 -0
- package/assets/flags/gb-sct.svg +4 -0
- package/assets/flags/gb-wls.svg +9 -0
- package/assets/flags/gb.svg +7 -0
- package/assets/flags/gd.svg +27 -0
- package/assets/flags/ge.svg +6 -0
- package/assets/flags/gf.svg +5 -0
- package/assets/flags/gg.svg +9 -0
- package/assets/flags/gh.svg +6 -0
- package/assets/flags/gi.svg +32 -0
- package/assets/flags/gl.svg +4 -0
- package/assets/flags/gm.svg +14 -0
- package/assets/flags/gn.svg +7 -0
- package/assets/flags/gp.svg +5 -0
- package/assets/flags/gq.svg +23 -0
- package/assets/flags/gr.svg +16 -0
- package/assets/flags/gs.svg +133 -0
- package/assets/flags/gt.svg +204 -0
- package/assets/flags/gu.svg +19 -0
- package/assets/flags/gw.svg +13 -0
- package/assets/flags/gy.svg +9 -0
- package/assets/flags/hk.svg +8 -0
- package/assets/flags/hm.svg +8 -0
- package/assets/flags/hn.svg +18 -0
- package/assets/flags/hr.svg +58 -0
- package/assets/flags/ht.svg +116 -0
- package/assets/flags/hu.svg +7 -0
- package/assets/flags/ic.svg +7 -0
- package/assets/flags/id.svg +4 -0
- package/assets/flags/ie.svg +7 -0
- package/assets/flags/il.svg +14 -0
- package/assets/flags/im.svg +36 -0
- package/assets/flags/in.svg +25 -0
- package/assets/flags/io.svg +130 -0
- package/assets/flags/iq.svg +10 -0
- package/assets/flags/ir.svg +219 -0
- package/assets/flags/is.svg +12 -0
- package/assets/flags/it.svg +7 -0
- package/assets/flags/je.svg +62 -0
- package/assets/flags/jm.svg +8 -0
- package/assets/flags/jo.svg +16 -0
- package/assets/flags/jp.svg +11 -0
- package/assets/flags/ke.svg +23 -0
- package/assets/flags/kg.svg +4 -0
- package/assets/flags/kh.svg +61 -0
- package/assets/flags/ki.svg +36 -0
- package/assets/flags/km.svg +16 -0
- package/assets/flags/kn.svg +14 -0
- package/assets/flags/kp.svg +15 -0
- package/assets/flags/kr.svg +24 -0
- package/assets/flags/kw.svg +13 -0
- package/assets/flags/ky.svg +103 -0
- package/assets/flags/kz.svg +36 -0
- package/assets/flags/la.svg +12 -0
- package/assets/flags/lb.svg +15 -0
- package/assets/flags/lc.svg +8 -0
- package/assets/flags/li.svg +43 -0
- package/assets/flags/lk.svg +22 -0
- package/assets/flags/lr.svg +14 -0
- package/assets/flags/ls.svg +8 -0
- package/assets/flags/lt.svg +7 -0
- package/assets/flags/lu.svg +5 -0
- package/assets/flags/lv.svg +6 -0
- package/assets/flags/ly.svg +13 -0
- package/assets/flags/ma.svg +4 -0
- package/assets/flags/mc.svg +6 -0
- package/assets/flags/md.svg +70 -0
- package/assets/flags/me.svg +116 -0
- package/assets/flags/mf.svg +5 -0
- package/assets/flags/mg.svg +7 -0
- package/assets/flags/mh.svg +7 -0
- package/assets/flags/mk.svg +5 -0
- package/assets/flags/ml.svg +7 -0
- package/assets/flags/mm.svg +12 -0
- package/assets/flags/mn.svg +14 -0
- package/assets/flags/mo.svg +9 -0
- package/assets/flags/mp.svg +86 -0
- package/assets/flags/mq.svg +5 -0
- package/assets/flags/mr.svg +6 -0
- package/assets/flags/ms.svg +29 -0
- package/assets/flags/mt.svg +58 -0
- package/assets/flags/mu.svg +8 -0
- package/assets/flags/mv.svg +6 -0
- package/assets/flags/mw.svg +10 -0
- package/assets/flags/mx.svg +382 -0
- package/assets/flags/my.svg +26 -0
- package/assets/flags/mz.svg +21 -0
- package/assets/flags/na.svg +16 -0
- package/assets/flags/nc.svg +13 -0
- package/assets/flags/ne.svg +6 -0
- package/assets/flags/nf.svg +9 -0
- package/assets/flags/ng.svg +6 -0
- package/assets/flags/ni.svg +129 -0
- package/assets/flags/nl.svg +5 -0
- package/assets/flags/no.svg +7 -0
- package/assets/flags/np.svg +13 -0
- package/assets/flags/nr.svg +12 -0
- package/assets/flags/nu.svg +10 -0
- package/assets/flags/nz.svg +36 -0
- package/assets/flags/om.svg +115 -0
- package/assets/flags/pa.svg +14 -0
- package/assets/flags/pc.svg +33 -0
- package/assets/flags/pe.svg +4 -0
- package/assets/flags/pf.svg +19 -0
- package/assets/flags/pg.svg +9 -0
- package/assets/flags/ph.svg +6 -0
- package/assets/flags/pk.svg +15 -0
- package/assets/flags/pl.svg +6 -0
- package/assets/flags/pm.svg +5 -0
- package/assets/flags/pn.svg +53 -0
- package/assets/flags/pr.svg +13 -0
- package/assets/flags/ps.svg +6 -0
- package/assets/flags/pt.svg +57 -0
- package/assets/flags/pw.svg +11 -0
- package/assets/flags/py.svg +157 -0
- package/assets/flags/qa.svg +4 -0
- package/assets/flags/re.svg +5 -0
- package/assets/flags/ro.svg +7 -0
- package/assets/flags/rs.svg +292 -0
- package/assets/flags/ru.svg +5 -0
- package/assets/flags/rw.svg +13 -0
- package/assets/flags/sa.svg +25 -0
- package/assets/flags/sb.svg +13 -0
- package/assets/flags/sc.svg +7 -0
- package/assets/flags/sd.svg +13 -0
- package/assets/flags/se.svg +4 -0
- package/assets/flags/sg.svg +13 -0
- package/assets/flags/sh-ac.svg +689 -0
- package/assets/flags/sh-hl.svg +164 -0
- package/assets/flags/sh-ta.svg +76 -0
- package/assets/flags/sh.svg +7 -0
- package/assets/flags/si.svg +18 -0
- package/assets/flags/sj.svg +7 -0
- package/assets/flags/sk.svg +9 -0
- package/assets/flags/sl.svg +7 -0
- package/assets/flags/sm.svg +75 -0
- package/assets/flags/sn.svg +8 -0
- package/assets/flags/so.svg +11 -0
- package/assets/flags/sr.svg +6 -0
- package/assets/flags/ss.svg +8 -0
- package/assets/flags/st.svg +16 -0
- package/assets/flags/sv.svg +593 -0
- package/assets/flags/sx.svg +56 -0
- package/assets/flags/sy.svg +6 -0
- package/assets/flags/sz.svg +34 -0
- package/assets/flags/tc.svg +50 -0
- package/assets/flags/td.svg +7 -0
- package/assets/flags/tf.svg +15 -0
- package/assets/flags/tg.svg +14 -0
- package/assets/flags/th.svg +7 -0
- package/assets/flags/tj.svg +22 -0
- package/assets/flags/tk.svg +5 -0
- package/assets/flags/tl.svg +13 -0
- package/assets/flags/tm.svg +204 -0
- package/assets/flags/tn.svg +4 -0
- package/assets/flags/to.svg +10 -0
- package/assets/flags/tr.svg +8 -0
- package/assets/flags/tt.svg +5 -0
- package/assets/flags/tv.svg +9 -0
- package/assets/flags/tw.svg +34 -0
- package/assets/flags/tz.svg +13 -0
- package/assets/flags/ua.svg +6 -0
- package/assets/flags/ug.svg +30 -0
- package/assets/flags/um.svg +9 -0
- package/assets/flags/un.svg +16 -0
- package/assets/flags/us.svg +9 -0
- package/assets/flags/uy.svg +28 -0
- package/assets/flags/uz.svg +30 -0
- package/assets/flags/va.svg +190 -0
- package/assets/flags/vc.svg +8 -0
- package/assets/flags/ve.svg +26 -0
- package/assets/flags/vg.svg +59 -0
- package/assets/flags/vi.svg +28 -0
- package/assets/flags/vn.svg +11 -0
- package/assets/flags/vu.svg +21 -0
- package/assets/flags/wf.svg +5 -0
- package/assets/flags/ws.svg +7 -0
- package/assets/flags/xk.svg +5 -0
- package/assets/flags/xx.svg +4 -0
- package/assets/flags/ye.svg +7 -0
- package/assets/flags/yt.svg +5 -0
- package/assets/flags/za.svg +17 -0
- package/assets/flags/zm.svg +27 -0
- package/assets/flags/zw.svg +21 -0
- package/components/COMPONENTS.md +80 -80
- package/components/ln-api-connector/ln-api-connector.schema.json +105 -105
- package/components/ln-chart/ln-chart-dev.scss +0 -4
- package/components/ln-core/README.md +21 -21
- package/components/ln-core/ln-core.schema.json +120 -120
- package/components/ln-core/query.js +113 -113
- package/components/ln-data-coordinator/README.md +2 -0
- package/components/ln-data-coordinator/ln-data-coordinator.js +1 -1
- package/components/ln-data-coordinator/ln-data-coordinator.schema.json +196 -196
- package/components/ln-data-coordinator/src/ln-data-coordinator.js +457 -432
- package/components/ln-data-store/ln-data-store.schema.json +92 -92
- package/components/ln-date/ln-date.js +1 -1
- package/components/ln-date/src/ln-date.js +1 -1
- package/components/ln-debug/ln-debug.js +1 -1
- package/components/ln-debug/ln-debug.schema.json +28 -28
- package/components/ln-debug/src/generated-attributes.js +4 -0
- package/components/ln-dropdown/ln-dropdown.schema.json +90 -90
- package/components/ln-external-links/README.md +19 -19
- package/components/ln-external-links/ln-external-links.js +1 -1
- package/components/ln-external-links/ln-external-links.schema.json +9 -0
- package/components/ln-external-links/ln-external-links.scss +12 -0
- package/components/ln-external-links/src/ln-external-links.js +3 -2
- package/components/ln-filter/README.md +2 -1
- package/components/ln-filter/ln-filter.js +1 -1
- package/components/ln-filter/ln-filter.schema.json +157 -169
- package/components/ln-filter/src/ln-filter.js +1 -3
- package/components/ln-form/ln-form.schema.json +57 -57
- package/components/ln-key/ln-key.js +1 -1
- package/components/ln-key/ln-key.schema.json +8 -0
- package/components/ln-key/src/ln-key.js +8 -5
- package/components/ln-obfuscator/ln-obfuscator.js +1 -1
- package/components/ln-obfuscator/ln-obfuscator.schema.json +6 -0
- package/components/ln-obfuscator/src/ln-obfuscator.js +2 -2
- package/components/ln-options/ln-options.schema.json +47 -47
- package/components/ln-popover/ln-popover.schema.json +82 -82
- package/components/ln-progress/ln-progress.schema.json +0 -13
- package/components/ln-search/ln-search.schema.json +111 -111
- package/components/ln-sort/README.md +1 -0
- package/components/ln-sort/ln-sort.js +1 -1
- package/components/ln-sort/ln-sort.schema.json +100 -112
- package/components/ln-sort/src/sort-model.js +1 -6
- package/components/ln-sortable/ln-sortable.schema.json +38 -38
- package/components/ln-sortable/ln-sortable.scss +25 -25
- package/components/ln-table/README.md +8 -1
- package/components/ln-table/ln-table.js +1 -1
- package/components/ln-table/ln-table.schema.json +195 -195
- package/components/ln-table/src/ln-table.js +43 -7
- package/components/ln-table-coordinator/ln-table-coordinator.js +1 -1
- package/components/ln-table-coordinator/ln-table-coordinator.schema.json +18 -0
- package/components/ln-table-coordinator/src/ln-table-coordinator.js +104 -2
- package/components/ln-toast/README.md +1 -1
- package/components/ln-toast/ln-toast.js +1 -1
- package/components/ln-toast/ln-toast.schema.json +6 -0
- package/components/ln-toast/src/ln-toast.js +1 -1
- package/components/ln-translations/README.md +202 -120
- package/components/ln-translations/ln-translations.js +1 -1
- package/components/ln-translations/ln-translations.schema.json +136 -120
- package/components/ln-translations/src/ln-translations.js +354 -295
- package/components/ln-translations/src/translations-model.js +221 -0
- package/components/ln-validate/README.md +6 -6
- package/components/ln-validate/ln-validate-dev.scss +0 -5
- package/components/ln-validate/ln-validate.js +1 -1
- package/components/ln-validate/ln-validate.schema.json +0 -6
- package/components/ln-validate/src/ln-validate.js +48 -29
- package/ln-ashlar.html-data.json +26 -8
- package/package.json +3 -2
- package/theme/README.md +7 -6
- package/theme/base/_global.scss +2 -2
- package/theme/base/_reset.scss +11 -0
- package/theme/components/_app-shell.scss +0 -8
- package/theme/components/_form.scss +6 -6
- package/theme/components/_ln-table.scss +6 -3
- package/theme/components/_scrollbar.scss +5 -4
- package/theme/components/_sortable.scss +19 -19
- package/theme/components/_stat-card.scss +1 -0
- package/theme/components/_table.scss +10 -33
- package/theme/components/_translations.scss +118 -111
- package/theme/config/_density.scss +236 -104
- package/theme/config/_palette.scss +71 -49
- package/theme/config/_theme.scss +27 -31
- package/theme/config/_tokens.scss +28 -26
- package/theme/config/mixins/_app-shell.scss +31 -21
- package/theme/config/mixins/_btn.scss +4 -2
- package/theme/config/mixins/_card.scss +87 -67
- package/theme/config/mixins/_colors.scss +2 -1
- package/theme/config/mixins/_count.scss +48 -0
- package/theme/config/mixins/_display.scss +12 -0
- package/theme/config/mixins/_footer.scss +3 -1
- package/theme/config/mixins/_form.scss +48 -16
- package/theme/config/mixins/_index.scss +1 -0
- package/theme/config/mixins/_layout.scss +9 -0
- package/theme/config/mixins/_ln-table.scss +22 -15
- package/theme/config/mixins/_modal.scss +3 -0
- package/theme/config/mixins/_nav.scss +19 -4
- package/theme/config/mixins/_sidebar.scss +2 -1
- package/theme/config/mixins/_stat-card.scss +33 -2
- package/theme/config/mixins/_status-badge.scss +1 -0
- package/theme/config/mixins/_table.scss +81 -39
- package/theme/config/mixins/_tabs.scss +31 -0
- package/theme/config/mixins/_toast.scss +0 -1
- package/theme/config/mixins/_translations.scss +126 -124
- package/theme/designs/relaxed/_card.scss +12 -0
- package/theme/designs/relaxed/_layout.scss +24 -0
- package/theme/ln-ashlar-core.scss +1 -0
- package/theme/ln-ashlar-dev.scss +0 -1
- package/theme/ln-ashlar-relaxed.scss +67 -0
- package/theme/tailwind/components.css +561 -24
- package/theme/utilities/_utilities.scss +1 -11
- package/web-types.json +38 -10
- package/components/ln-progress/ln-progress-dev.scss +0 -8
|
@@ -1,104 +1,236 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
// ==========================================================================
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
// The :root default is
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
// <html>
|
|
12
|
-
// <html data-density="
|
|
13
|
-
// <
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
//
|
|
25
|
-
//
|
|
26
|
-
//
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
//
|
|
36
|
-
//
|
|
37
|
-
//
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
//
|
|
42
|
-
//
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
//
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
//
|
|
60
|
-
//
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
--
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
--
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
//
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
//
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
//
|
|
92
|
-
--
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
//
|
|
96
|
-
|
|
97
|
-
--
|
|
98
|
-
|
|
99
|
-
//
|
|
100
|
-
--
|
|
101
|
-
|
|
102
|
-
//
|
|
103
|
-
--input-padding-y: var(--size-
|
|
104
|
-
|
|
1
|
+
@use 'mixins/breakpoints' as *;
|
|
2
|
+
|
|
3
|
+
// ==========================================================================
|
|
4
|
+
// Density — ln-ashlar
|
|
5
|
+
// ==========================================================================
|
|
6
|
+
// The :root default is COMFORTABLE (16px body, 44px controls, 56px header,
|
|
7
|
+
// 256px sidebar). Density goes down or up via [data-density]:
|
|
8
|
+
//
|
|
9
|
+
// <html> ← default: comfortable
|
|
10
|
+
// <html data-density="compact"> ← dense DocuFlow scale (14px / 36px)
|
|
11
|
+
// <html data-density="comfortable"> ← explicit handle (same as default)
|
|
12
|
+
// <html data-density="spacious"> ← large type, generous padding
|
|
13
|
+
// <table data-density="compact"> ← scope dense within a page
|
|
14
|
+
//
|
|
15
|
+
// _tokens.scss declares the dense values as the raw base; the comfortable
|
|
16
|
+
// block re-binds them at :root, so they surface through
|
|
17
|
+
// [data-density="compact"].
|
|
18
|
+
//
|
|
19
|
+
// Density is an explicit user choice (settings toggle). It is NEVER
|
|
20
|
+
// auto-switched by viewport; the mobile rhythm block at the end of this
|
|
21
|
+
// file tightens padding/gap at narrow widths independently.
|
|
22
|
+
//
|
|
23
|
+
// What reacts: the type roles, spatial rhythm, shell geometry, control
|
|
24
|
+
// sizing, and card/table padding. Each tier owns its own type scale.
|
|
25
|
+
//
|
|
26
|
+
// Interactive controls: compact 36px = WCAG AA; comfortable 44px and
|
|
27
|
+
// spacious 54px = AAA. All controls share --control-line-height.
|
|
28
|
+
// ==========================================================================
|
|
29
|
+
|
|
30
|
+
:root {
|
|
31
|
+
|
|
32
|
+
// -----------------------------------------------------------------------
|
|
33
|
+
// Density — Row height
|
|
34
|
+
// Minimum row height for table rows and data lists. Kept density-named
|
|
35
|
+
// because it has no analogue in the base token scale.
|
|
36
|
+
// -----------------------------------------------------------------------
|
|
37
|
+
--density-row-h: 2.25rem; // 36px — dense base
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
// :root / [data-density="comfortable"] — the default.
|
|
42
|
+
//
|
|
43
|
+
// WCAG 2.5.5 AAA: buttons, inputs and pills 44px.
|
|
44
|
+
// ---------------------------------------------------------------------------
|
|
45
|
+
:root,
|
|
46
|
+
[data-density="comfortable"] {
|
|
47
|
+
|
|
48
|
+
// -- Logical rhythm --------------------------------------------------
|
|
49
|
+
--padding-y: var(--size-sm); // 8px
|
|
50
|
+
--gap: var(--size-sm); // 8px
|
|
51
|
+
|
|
52
|
+
// -- Body text -------------------------------------------------------
|
|
53
|
+
--text-body-md: 1rem;
|
|
54
|
+
--lh-body-md: 1.6;
|
|
55
|
+
|
|
56
|
+
--text-body-sm: 0.875rem;
|
|
57
|
+
--lh-body-sm: 1.5;
|
|
58
|
+
|
|
59
|
+
// Explicit rebind — form inputs consume --font-size and don't always
|
|
60
|
+
// cascade lazy var(--text-body-md) resolutions under a scope.
|
|
61
|
+
--font-size: var(--text-body-md);
|
|
62
|
+
--line-height: var(--lh-body-md);
|
|
63
|
+
|
|
64
|
+
// -- Labels ----------------------------------------------------------
|
|
65
|
+
--text-label-md: 0.875rem;
|
|
66
|
+
--lh-label-md: 1.4;
|
|
67
|
+
|
|
68
|
+
--text-label-sm: 0.8125rem; // 13px — form-label, table th
|
|
69
|
+
--lh-label-sm: 1.4;
|
|
70
|
+
|
|
71
|
+
// -- Caption ---------------------------------------------------------
|
|
72
|
+
--text-caption: 0.8125rem; // 13px — modal subtitle, validation errors
|
|
73
|
+
--lh-caption: 1.4;
|
|
74
|
+
|
|
75
|
+
// -- Titles ----------------------------------------------------------
|
|
76
|
+
--text-title-md: 1.125rem;
|
|
77
|
+
--lh-title-md: 1.4;
|
|
78
|
+
|
|
79
|
+
--text-title-sm: 1rem;
|
|
80
|
+
--lh-title-sm: 1.4;
|
|
81
|
+
|
|
82
|
+
// -- Headings --------------------------------------------------------
|
|
83
|
+
--text-heading-sm: 1.25rem; --lh-heading-sm: 1.3;
|
|
84
|
+
--text-heading-md: 1.5rem; --lh-heading-md: 1.25;
|
|
85
|
+
--text-heading-lg: 1.875rem; --lh-heading-lg: 1.2;
|
|
86
|
+
|
|
87
|
+
// -- Display ---------------------------------------------------------
|
|
88
|
+
--text-display-sm: 2.25rem; --lh-display-sm: 1.15;
|
|
89
|
+
|
|
90
|
+
// -- App shell -------------------------------------------------------
|
|
91
|
+
--app-header-height: 3.5rem; // 56px
|
|
92
|
+
--app-sidebar-width: 16rem; // 256px
|
|
93
|
+
|
|
94
|
+
// -- Row height ------------------------------------------------------
|
|
95
|
+
--density-row-h: 2.75rem; // 44px
|
|
96
|
+
|
|
97
|
+
// -- Interactive controls — WCAG 2.5.5 AAA ≥44px --------------------
|
|
98
|
+
// Shared control contract: 26px line box + 2×8px + 2px borders = 44px
|
|
99
|
+
// for buttons, inputs, selects and pills alike.
|
|
100
|
+
--control-line-height: 1.625rem; // 26px
|
|
101
|
+
--btn-padding-y: var(--size-sm); // 8px → buttons 44px
|
|
102
|
+
--btn-padding-x: var(--size-md); // 16px
|
|
103
|
+
--input-padding-y: var(--size-sm); // 8px → inputs/pills 44px
|
|
104
|
+
|
|
105
|
+
// -- Card and table padding ------------------------------------------
|
|
106
|
+
--card-padding-y: var(--size-md); // 16px
|
|
107
|
+
--card-padding-x: var(--size-lg); // 24px
|
|
108
|
+
--table-cell-padding-y: var(--size-sm-up); // 12px
|
|
109
|
+
--table-cell-padding-x: var(--size-lg); // 24px
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// ---------------------------------------------------------------------------
|
|
113
|
+
// [data-density="compact"] — the dense DocuFlow scale.
|
|
114
|
+
//
|
|
115
|
+
// Declared after the :root default so it wins on <html>; also scopes a
|
|
116
|
+
// dense region inside a comfortable/spacious page.
|
|
117
|
+
// ---------------------------------------------------------------------------
|
|
118
|
+
[data-density="compact"] {
|
|
119
|
+
--padding-y: var(--size-xs-up); // 6px
|
|
120
|
+
--gap: var(--size-xs-up); // 6px
|
|
121
|
+
|
|
122
|
+
--text-body-md: 0.875rem; --lh-body-md: 1.5;
|
|
123
|
+
--text-body-sm: 0.8125rem; --lh-body-sm: 1.45;
|
|
124
|
+
--font-size: var(--text-body-md);
|
|
125
|
+
--line-height: var(--lh-body-md);
|
|
126
|
+
|
|
127
|
+
--text-label-md: 0.8125rem; --lh-label-md: 1.4;
|
|
128
|
+
--text-label-sm: 0.75rem; --lh-label-sm: 1.4;
|
|
129
|
+
--text-caption: 0.75rem; --lh-caption: 1.4;
|
|
130
|
+
|
|
131
|
+
--text-title-md: 1rem; --lh-title-md: 1.3;
|
|
132
|
+
--text-title-sm: 0.875rem; --lh-title-sm: 1.3;
|
|
133
|
+
|
|
134
|
+
--text-heading-sm: 1.125rem; --lh-heading-sm: 1.25;
|
|
135
|
+
--text-heading-md: 1.25rem; --lh-heading-md: 1.2;
|
|
136
|
+
--text-heading-lg: 1.75rem; --lh-heading-lg: 1.15;
|
|
137
|
+
--text-display-sm: 1.875rem; --lh-display-sm: 1.1;
|
|
138
|
+
|
|
139
|
+
--app-header-height: 3.25rem; // 52px
|
|
140
|
+
--app-sidebar-width: 14.5rem; // 232px
|
|
141
|
+
--density-row-h: 2.25rem; // 36px
|
|
142
|
+
|
|
143
|
+
// Control contract — 22px line box + 2×6px + 2px = 36px
|
|
144
|
+
--control-line-height: 1.375rem;
|
|
145
|
+
--btn-padding-y: var(--size-xs-up);
|
|
146
|
+
--btn-padding-x: var(--size-sm-up);
|
|
147
|
+
--input-padding-y: var(--size-xs-up);
|
|
148
|
+
|
|
149
|
+
--card-padding-y: var(--size-sm-up); // 12px
|
|
150
|
+
--card-padding-x: var(--size-md); // 16px
|
|
151
|
+
--table-cell-padding-y: var(--size-sm); // 8px
|
|
152
|
+
--table-cell-padding-x: var(--size-md); // 16px
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// ---------------------------------------------------------------------------
|
|
156
|
+
// [data-density="spacious"] — the tier above comfortable.
|
|
157
|
+
//
|
|
158
|
+
// For low-vision, touch-primary, or presentation contexts.
|
|
159
|
+
// Body 18px, generous padding, larger shell. WCAG 2.5.5 AAA:
|
|
160
|
+
// buttons 54px, inputs/pills 54px.
|
|
161
|
+
//
|
|
162
|
+
// <html data-density="spacious">
|
|
163
|
+
// ---------------------------------------------------------------------------
|
|
164
|
+
[data-density="spacious"] {
|
|
165
|
+
|
|
166
|
+
// -- Logical rhythm --------------------------------------------------
|
|
167
|
+
--padding-y: var(--size-md); // 16px
|
|
168
|
+
--gap: var(--size-md); // 16px
|
|
169
|
+
|
|
170
|
+
// -- Body text -------------------------------------------------------
|
|
171
|
+
--text-body-md: 1.125rem; // 18px
|
|
172
|
+
--lh-body-md: 1.75;
|
|
173
|
+
|
|
174
|
+
--text-body-sm: 1rem;
|
|
175
|
+
--lh-body-sm: 1.6;
|
|
176
|
+
|
|
177
|
+
--font-size: var(--text-body-md);
|
|
178
|
+
--line-height: var(--lh-body-md);
|
|
179
|
+
|
|
180
|
+
// -- Labels ----------------------------------------------------------
|
|
181
|
+
--text-label-md: 1rem;
|
|
182
|
+
--lh-label-md: 1.5;
|
|
183
|
+
|
|
184
|
+
--text-label-sm: 0.9375rem; // 15px — form-label, table th
|
|
185
|
+
--lh-label-sm: 1.45;
|
|
186
|
+
|
|
187
|
+
// -- Caption ---------------------------------------------------------
|
|
188
|
+
--text-caption: 0.9375rem; // 15px — modal subtitle, validation errors
|
|
189
|
+
--lh-caption: 1.45;
|
|
190
|
+
|
|
191
|
+
// -- Titles ----------------------------------------------------------
|
|
192
|
+
--text-title-md: 1.25rem;
|
|
193
|
+
--lh-title-md: 1.5;
|
|
194
|
+
|
|
195
|
+
--text-title-sm: 1.125rem;
|
|
196
|
+
--lh-title-sm: 1.45;
|
|
197
|
+
|
|
198
|
+
// -- Headings --------------------------------------------------------
|
|
199
|
+
--text-heading-sm: 1.5rem; --lh-heading-sm: 1.35;
|
|
200
|
+
--text-heading-md: 1.875rem; --lh-heading-md: 1.3;
|
|
201
|
+
--text-heading-lg: 2.25rem; --lh-heading-lg: 1.25;
|
|
202
|
+
|
|
203
|
+
// -- Display ---------------------------------------------------------
|
|
204
|
+
--text-display-sm: 2.75rem; --lh-display-sm: 1.2;
|
|
205
|
+
|
|
206
|
+
// -- App shell -------------------------------------------------------
|
|
207
|
+
--app-header-height: 4rem; // 64px
|
|
208
|
+
--app-sidebar-width: 17.5rem; // 280px
|
|
209
|
+
|
|
210
|
+
// -- Row height ------------------------------------------------------
|
|
211
|
+
--density-row-h: 3rem; // 48px
|
|
212
|
+
|
|
213
|
+
// -- Interactive controls --------------------------------------------
|
|
214
|
+
// Shared control contract: 28px line box + 2×12px + 2px borders = 54px
|
|
215
|
+
--control-line-height: 1.75rem; // 28px
|
|
216
|
+
--btn-padding-y: var(--size-sm-up); // 12px → buttons 54px
|
|
217
|
+
--btn-padding-x: var(--size-lg); // 24px
|
|
218
|
+
--input-padding-y: var(--size-sm-up); // 12px → inputs/pills 54px
|
|
219
|
+
|
|
220
|
+
// -- Card and table padding ------------------------------------------
|
|
221
|
+
--card-padding-y: var(--size-lg); // 24px
|
|
222
|
+
--card-padding-x: var(--size-xl); // 32px
|
|
223
|
+
--table-cell-padding-y: var(--size-md); // 16px
|
|
224
|
+
--table-cell-padding-x: var(--size-xl); // 32px
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// ---------------------------------------------------------------------------
|
|
228
|
+
// Mobile rhythm — logical tokens tighten at ≤ md viewport, whatever the
|
|
229
|
+
// density tier (declared last so it stacks on top of every tier).
|
|
230
|
+
// ---------------------------------------------------------------------------
|
|
231
|
+
@include mq-down(md) {
|
|
232
|
+
:root {
|
|
233
|
+
--padding-y: var(--size-xs);
|
|
234
|
+
--gap: var(--size-xs-up);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
@@ -11,64 +11,51 @@
|
|
|
11
11
|
--color-secondary-light: 160 84% 94%;
|
|
12
12
|
--color-secondary-lighter: 160 84% 97%;
|
|
13
13
|
|
|
14
|
-
// Status colors
|
|
15
|
-
|
|
14
|
+
// Status colors — solid tones sit below the 7:1 text/fill target;
|
|
15
|
+
// ratios are against white (D2: design values kept exact).
|
|
16
|
+
--color-success: 142 72% 29%; // 5.07:1
|
|
16
17
|
--color-success-light: 142 71% 94%;
|
|
17
18
|
--color-success-lighter: 142 71% 97%;
|
|
18
19
|
|
|
19
|
-
--color-error: 0
|
|
20
|
+
--color-error: 0 72% 51%; // 4.80:1
|
|
20
21
|
--color-error-light: 0 84% 94%;
|
|
21
22
|
--color-error-lighter: 0 84% 97%;
|
|
22
23
|
|
|
23
|
-
--color-warning:
|
|
24
|
+
--color-warning: 26 90% 37%; // 5.04:1
|
|
24
25
|
--color-warning-light: 38 92% 94%;
|
|
25
26
|
--color-warning-lighter: 38 92% 97%;
|
|
26
27
|
|
|
27
|
-
--color-info:
|
|
28
|
+
--color-info: 221 83% 53%; // 5.20:1
|
|
28
29
|
--color-info-light: 199 89% 94%;
|
|
29
30
|
--color-info-lighter: 199 89% 97%;
|
|
30
31
|
|
|
31
|
-
// Neutral scale
|
|
32
|
-
--color-neutral-50: 210
|
|
33
|
-
--color-neutral-100:
|
|
34
|
-
--color-neutral-150:
|
|
35
|
-
--color-neutral-175:
|
|
36
|
-
--color-neutral-200:
|
|
37
|
-
--color-neutral-300:
|
|
38
|
-
--color-neutral-400:
|
|
39
|
-
--color-neutral-500:
|
|
40
|
-
--color-neutral-600: 215
|
|
41
|
-
--color-neutral-700:
|
|
42
|
-
--color-neutral-800:
|
|
32
|
+
// Neutral scale — cool slate greys
|
|
33
|
+
--color-neutral-50: 210 40% 98%;
|
|
34
|
+
--color-neutral-100: 210 40% 96%;
|
|
35
|
+
--color-neutral-150: 214 35% 93%;
|
|
36
|
+
--color-neutral-175: 214 33% 92%;
|
|
37
|
+
--color-neutral-200: 214 32% 91%;
|
|
38
|
+
--color-neutral-300: 213 27% 84%;
|
|
39
|
+
--color-neutral-400: 215 20% 65%;
|
|
40
|
+
--color-neutral-500: 215 16% 47%;
|
|
41
|
+
--color-neutral-600: 215 19% 35%;
|
|
42
|
+
--color-neutral-700: 215 25% 27%;
|
|
43
|
+
--color-neutral-800: 217 33% 17%;
|
|
43
44
|
--color-neutral-900: 222 47% 11%;
|
|
44
45
|
|
|
45
46
|
// Base canvas background
|
|
46
47
|
--color-white: 0 0% 100%;
|
|
47
48
|
|
|
48
|
-
// Shadows —
|
|
49
|
+
// Shadows — soft, diffuse, single layer. Resting surfaces are defined by
|
|
50
|
+
// their border; depth is reserved for floating layers.
|
|
49
51
|
--shadow-none: none;
|
|
50
52
|
|
|
51
|
-
--shadow-xs:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
--shadow-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
--shadow-md:
|
|
59
|
-
0 4px 6px -1px hsl(220 40% 10% / 0.08),
|
|
60
|
-
0 2px 4px -2px hsl(220 40% 10% / 0.05);
|
|
61
|
-
|
|
62
|
-
--shadow-lg:
|
|
63
|
-
0 10px 15px -3px hsl(220 40% 10% / 0.08),
|
|
64
|
-
0 4px 6px -4px hsl(220 40% 10% / 0.04);
|
|
65
|
-
|
|
66
|
-
--shadow-xl:
|
|
67
|
-
0 20px 25px -5px hsl(220 40% 10% / 0.09),
|
|
68
|
-
0 8px 10px -6px hsl(220 40% 10% / 0.04);
|
|
69
|
-
|
|
70
|
-
--shadow-2xl:
|
|
71
|
-
0 25px 50px -12px hsl(220 40% 10% / 0.18);
|
|
53
|
+
--shadow-xs: 0 1px 2px hsl(215 40% 20% / 0.04);
|
|
54
|
+
--shadow-sm: 0 2px 6px hsl(215 40% 20% / 0.05);
|
|
55
|
+
--shadow-md: 0 4px 16px -4px hsl(215 40% 20% / 0.10);
|
|
56
|
+
--shadow-lg: 0 12px 32px -8px hsl(215 40% 20% / 0.14);
|
|
57
|
+
--shadow-xl: 0 24px 48px -12px hsl(215 40% 20% / 0.18);
|
|
58
|
+
--shadow-2xl: 0 32px 64px -16px hsl(215 40% 20% / 0.22);
|
|
72
59
|
|
|
73
60
|
--shadow-inner:
|
|
74
61
|
inset 0 2px 4px 0 hsl(220 40% 15% / 0.06);
|
|
@@ -79,24 +66,29 @@
|
|
|
79
66
|
// Value vocabulary — what bg/fg/border/shadow values exist
|
|
80
67
|
--bg-base: hsl(var(--color-white));
|
|
81
68
|
--bg-elevated: var(--bg-base);
|
|
82
|
-
--bg-sunken: hsl(var(--color-neutral-
|
|
83
|
-
--bg-recessed: hsl(var(--color-neutral-
|
|
69
|
+
--bg-sunken: hsl(var(--color-neutral-50)); // quiet chrome (thead, tracks)
|
|
70
|
+
--bg-recessed: hsl(var(--color-neutral-100)); // page canvas
|
|
84
71
|
|
|
85
72
|
--bg-hover: hsl(var(--color-neutral-100));
|
|
86
73
|
--bg-active: hsl(var(--color-neutral-150));
|
|
87
74
|
|
|
88
|
-
//
|
|
89
|
-
|
|
90
|
-
--fg-
|
|
91
|
-
--fg-
|
|
92
|
-
--fg-subtle: hsl(var(--color-neutral-700));
|
|
75
|
+
// fg-muted and fg-subtle are below the 7:1 target (D2: design values kept).
|
|
76
|
+
--fg-default: hsl(var(--color-neutral-800));
|
|
77
|
+
--fg-muted: hsl(213 20% 40%); // 6.07:1 on white
|
|
78
|
+
--fg-subtle: hsl(var(--color-neutral-500)); // 4.72:1 on white, 4.30:1 on the canvas
|
|
93
79
|
|
|
94
80
|
--border-subtle: hsl(var(--color-neutral-200));
|
|
95
81
|
--border-strong: hsl(var(--color-neutral-300));
|
|
82
|
+
--border-strong-hover: hsl(var(--color-neutral-500)); // 4.72:1 on white; one ramp step darker than --border-ui
|
|
96
83
|
|
|
97
84
|
// Interactive boundaries only (input/select/checkbox). 1.4.11 wants 3:1
|
|
98
85
|
// for these; --border-subtle/-strong stay decorative and exempt.
|
|
99
|
-
|
|
86
|
+
// Solved literal: slate-300 is 1.48:1, slate-400 is 2.57:1.
|
|
87
|
+
--border-ui: hsl(215 20% 58%); // 3.24:1 on white
|
|
88
|
+
|
|
89
|
+
// Lightness step for accent hover/active (relative colour syntax,
|
|
90
|
+
// unitless). Light surfaces darken; dark values flip the sign.
|
|
91
|
+
--accent-hover-shift: -8;
|
|
100
92
|
|
|
101
93
|
--color-scrim: hsl(var(--color-neutral-900) / 0.5);
|
|
102
94
|
|
|
@@ -143,14 +135,23 @@
|
|
|
143
135
|
|
|
144
136
|
--border-subtle: hsl(var(--color-neutral-175));
|
|
145
137
|
--border-strong: hsl(var(--color-neutral-300));
|
|
138
|
+
--border-strong-hover: hsl(var(--color-neutral-400));
|
|
146
139
|
|
|
147
140
|
--border-ui: hsl(var(--color-neutral-400));
|
|
148
141
|
|
|
142
|
+
// Dark surfaces lighten on hover.
|
|
143
|
+
--accent-hover-shift: 8;
|
|
144
|
+
|
|
149
145
|
// Scrims — anchored to black, not the ramp: dark --color-neutral-900 is
|
|
150
146
|
// near-white, so binding either to it would need an index flip.
|
|
151
147
|
--color-scrim: hsl(0 0% 0% / 0.6);
|
|
152
148
|
--app-scrim-bg: hsl(0 0% 0% / 0.4);
|
|
153
149
|
|
|
150
|
+
// Status tones — brighter on dark surfaces
|
|
151
|
+
--color-success: 142 69% 48%;
|
|
152
|
+
--color-warning: 38 92% 55%;
|
|
153
|
+
--color-info: 213 94% 68%;
|
|
154
|
+
|
|
154
155
|
// Status tint layers — re-tuned for dark surfaces
|
|
155
156
|
--color-success-light: 142 50% 18%;
|
|
156
157
|
--color-success-lighter: 142 40% 13%;
|
|
@@ -159,7 +160,7 @@
|
|
|
159
160
|
--color-info-light: 217 55% 22%;
|
|
160
161
|
--color-info-lighter: 217 45% 15%;
|
|
161
162
|
|
|
162
|
-
--color-error: 0
|
|
163
|
+
--color-error: 0 91% 71%; // Lighter red for text contrast in dark mode
|
|
163
164
|
--color-error-light: 0 50% 20%;
|
|
164
165
|
--color-error-lighter: 0 40% 14%;
|
|
165
166
|
|
|
@@ -215,7 +216,7 @@
|
|
|
215
216
|
// stylesheet load order, which is brand.css's whole guarantee.
|
|
216
217
|
// ---------------------------------------------------------------------------
|
|
217
218
|
:where(:root) {
|
|
218
|
-
--brand-primary:
|
|
219
|
+
--brand-primary: 201 96% 32%; // 5.94:1 on white (D2: design value kept)
|
|
219
220
|
--brand-secondary: 160 84% 36%;
|
|
220
221
|
}
|
|
221
222
|
|
|
@@ -239,6 +240,8 @@
|
|
|
239
240
|
--color-border: var(--border-subtle);
|
|
240
241
|
--shadow: var(--shadow-resting);
|
|
241
242
|
--radius: var(--radius-md);
|
|
243
|
+
// Indirection so a skin that zeroes --radius-lg (glass) reaches panels.
|
|
244
|
+
--panel-radius: var(--radius-lg);
|
|
242
245
|
|
|
243
246
|
// accent — tints computed against the LOCAL --bg-base, so one
|
|
244
247
|
// formula serves both themes. The two override slots are
|
|
@@ -272,3 +275,22 @@
|
|
|
272
275
|
--btn-fg-hover: var(--color-fg);
|
|
273
276
|
--btn-border-hover: var(--border-strong);
|
|
274
277
|
}
|
|
278
|
+
|
|
279
|
+
// ---------------------------------------------------------------------------
|
|
280
|
+
// Default dark lift — brighter accent with an ink label on dark surfaces.
|
|
281
|
+
// Zero specificity; [data-theme] subtrees are excluded so an ancestor theme's
|
|
282
|
+
// declaration is not clobbered (Declaration-Site Invariant).
|
|
283
|
+
// ---------------------------------------------------------------------------
|
|
284
|
+
:where([data-mode="dark"]:not([data-theme], [data-theme] *)) {
|
|
285
|
+
--brand-primary: 199 89% 64%; // 8.79:1 vs ink
|
|
286
|
+
--color-accent-fg: hsl(var(--color-ink));
|
|
287
|
+
--check-mark: var(--check-mark-on-dark);
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
@media (prefers-color-scheme: dark) {
|
|
291
|
+
:where(:root:not([data-mode="light"]):not([data-theme])) {
|
|
292
|
+
--brand-primary: 199 89% 64%;
|
|
293
|
+
--color-accent-fg: hsl(var(--color-ink));
|
|
294
|
+
--check-mark: var(--check-mark-on-dark);
|
|
295
|
+
}
|
|
296
|
+
}
|
package/theme/config/_theme.scss
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
// :root:not([data-mode="light"]) ← opt-out of auto
|
|
17
17
|
// <html data-skin="glass"> ← structural preset (flat, borderless)
|
|
18
18
|
// <html data-theme="ocean"> ← brand palette preset
|
|
19
|
+
// <aside data-mode="dark" data-theme="navy"> ← dark navy brand region
|
|
19
20
|
//
|
|
20
21
|
// See docs-mcp/css/theming.md for the full guide.
|
|
21
22
|
// ==========================================================================
|
|
@@ -153,6 +154,28 @@
|
|
|
153
154
|
}
|
|
154
155
|
}
|
|
155
156
|
|
|
157
|
+
// Brand region — a dark-navy surface island, e.g. a sidebar. Always paired
|
|
158
|
+
// with data-mode="dark": the ramp re-seats the dark vocabulary on navy.
|
|
159
|
+
// <aside data-mode="dark" data-theme="navy">
|
|
160
|
+
[data-theme="navy"] {
|
|
161
|
+
&[data-mode="dark"],
|
|
162
|
+
:where([data-mode="dark"]) & {
|
|
163
|
+
--color-neutral-50: 213 74% 8%;
|
|
164
|
+
--color-neutral-100: 213 74% 11%;
|
|
165
|
+
--color-neutral-150: 213 55% 15%;
|
|
166
|
+
--color-neutral-175: 213 50% 17%;
|
|
167
|
+
--color-neutral-200: 213 45% 20%;
|
|
168
|
+
--color-neutral-300: 213 35% 28%;
|
|
169
|
+
--color-neutral-400: 213 30% 40%; // 2.82:1 on navy-100, under the 3:1 ui target
|
|
170
|
+
--color-neutral-600: 215 20% 65%; // 6.80:1 on navy-100 (fg-subtle)
|
|
171
|
+
--color-neutral-700: 213 27% 84%; // 11.79:1
|
|
172
|
+
--color-neutral-900: 210 40% 98%; // 16.70:1
|
|
173
|
+
--brand-primary: 199 89% 64%; // 8.59:1 on navy-100
|
|
174
|
+
--color-accent-fg: hsl(var(--color-ink));
|
|
175
|
+
--check-mark: var(--check-mark-on-dark);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
156
179
|
// ---------------------------------------------------------------------------
|
|
157
180
|
// Named skins — structural/physics presets. Polarity-agnostic. Activation:
|
|
158
181
|
// <html data-skin="glass">
|
|
@@ -185,9 +208,10 @@
|
|
|
185
208
|
--btn-bg-hover: var(--bg-hover);
|
|
186
209
|
--btn-border: var(--color-accent);
|
|
187
210
|
// --color-accent-hover is declared only below <html> (a, mixin bodies);
|
|
188
|
-
// invalid at computed-value time here — derive locally.
|
|
189
|
-
// @mixin btn's own accent-hover so neutral
|
|
190
|
-
|
|
211
|
+
// invalid at computed-value time here — derive locally. Follows
|
|
212
|
+
// --accent-hover-shift like @mixin btn's own accent-hover, so neutral
|
|
213
|
+
// and accent buttons agree.
|
|
214
|
+
--btn-border-hover: hsl(from var(--color-accent) h s calc(l + var(--accent-hover-shift)));
|
|
191
215
|
|
|
192
216
|
// ── Accent buttons — translucent fill via consumer-scope rebind
|
|
193
217
|
// Rebind --btn-* on the button itself (not at skin :root) so
|
|
@@ -263,31 +287,3 @@
|
|
|
263
287
|
--btn-border-hover: hsl(var(--color-primary));
|
|
264
288
|
}
|
|
265
289
|
}
|
|
266
|
-
|
|
267
|
-
[data-skin="soft"] {
|
|
268
|
-
// Soft — playful, maximum radius, heavily shadow-based, no borders.
|
|
269
|
-
--radius-xs: 0.5rem;
|
|
270
|
-
--radius-sm: 0.75rem;
|
|
271
|
-
--radius-md: 1rem;
|
|
272
|
-
--radius-lg: 1.5rem;
|
|
273
|
-
--radius-xl: 2rem;
|
|
274
|
-
--radius-2xl: 2.5rem;
|
|
275
|
-
|
|
276
|
-
// Override shadows to be much larger and softer (volumetric look)
|
|
277
|
-
--shadow-sm: 0 8px 16px -2px rgba(0, 0, 0, 0.08);
|
|
278
|
-
--shadow-md: 0 12px 24px -4px rgba(0, 0, 0, 0.12);
|
|
279
|
-
--shadow-lg: 0 24px 48px -4px rgba(0, 0, 0, 0.16);
|
|
280
|
-
|
|
281
|
-
// Floating elements are more pronounced
|
|
282
|
-
--shadow-resting: var(--shadow-sm);
|
|
283
|
-
--shadow-floating: var(--shadow-lg);
|
|
284
|
-
|
|
285
|
-
// Remove default subtle borders (cards, panels) so they rely solely on shadows
|
|
286
|
-
--border-subtle: transparent;
|
|
287
|
-
|
|
288
|
-
// ── Buttons — pill shapes, floating, no borders
|
|
289
|
-
--btn-border: transparent;
|
|
290
|
-
--btn-border-hover: transparent;
|
|
291
|
-
--btn-bg: var(--bg-elevated);
|
|
292
|
-
--btn-bg-hover: var(--bg-hover);
|
|
293
|
-
}
|