@livenetworks/ashlar 2.2.0 → 2.2.2
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/ln-data-coordinator/ln-data-coordinator.js +1 -1
- package/components/ln-date/ln-date.js +1 -1
- package/components/ln-debug/ln-debug.js +1 -1
- package/components/ln-debug/src/generated-attributes.js +306 -304
- package/components/ln-external-links/ln-external-links.js +1 -1
- package/components/ln-filter/ln-filter.js +1 -1
- package/components/ln-obfuscator/ln-obfuscator.js +1 -1
- package/components/ln-sort/ln-sort.js +1 -1
- package/components/ln-table/ln-table.js +1 -1
- package/components/ln-table-coordinator/ln-table-coordinator.js +1 -1
- package/components/ln-toast/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/ln-validate.js +1 -1
- package/ln-ashlar.html-data.json +1832 -1824
- package/package.json +2 -1
- package/theme/components/_translations.scss +118 -111
- package/theme/config/_breakpoints.scss +8 -0
- package/theme/config/mixins/_app-shell.scss +14 -0
- package/theme/config/mixins/_card.scss +7 -4
- package/theme/config/mixins/_count.scss +48 -0
- package/theme/config/mixins/_dropdown.scss +5 -1
- package/theme/config/mixins/_index.scss +1 -0
- package/theme/config/mixins/_nav.scss +3 -11
- package/theme/config/mixins/_popover.scss +12 -1
- package/theme/config/mixins/_translations.scss +126 -124
- package/theme/presentation/_effects.scss +68 -0
- package/theme/presentation/_navbar.scss +72 -1
- package/theme/presentation/_typography.scss +13 -0
- package/web-types.json +2365 -2351
|
@@ -1,124 +1,126 @@
|
|
|
1
|
-
@use 'display' as *;
|
|
2
|
-
@use 'spacing' as *;
|
|
3
|
-
@use 'sizing' as *;
|
|
4
|
-
@use 'typography' as *;
|
|
5
|
-
@use 'colors' as *;
|
|
6
|
-
@use 'borders' as *;
|
|
7
|
-
@use 'transitions' as *;
|
|
8
|
-
@use 'interaction' as *;
|
|
9
|
-
@use 'motion' as *;
|
|
10
|
-
|
|
11
|
-
// Translation management -- flag icons, badges, trigger button.
|
|
12
|
-
//
|
|
13
|
-
// Usage:
|
|
14
|
-
// [data-ln-translatable-lang] { @include translations-flag-input; }
|
|
15
|
-
// [data-ln-translations-active] { @include translations-active-list; }
|
|
16
|
-
|
|
17
|
-
// ─── Flag icon in input background ───────────────────────────────
|
|
18
|
-
|
|
19
|
-
@mixin translations-flag-input {
|
|
20
|
-
// Intrinsic flag-icon decoration math — pad-left + bg-pos + bg-size
|
|
21
|
-
// composed against the icon's own dimensions, not shell rhythm.
|
|
22
|
-
padding-
|
|
23
|
-
background-repeat: no-repeat;
|
|
24
|
-
background-size: var(--size-md-up) auto;
|
|
25
|
-
background-position: var(--size-sm-up)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// ─── Dropdown menu item: flag via ::before ───────────────────────
|
|
29
|
-
|
|
30
|
-
@mixin translations-dropdown-flag {
|
|
31
|
-
@include flex;
|
|
32
|
-
@include items-center;
|
|
33
|
-
gap: var(--
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
background-
|
|
42
|
-
background-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
@include
|
|
52
|
-
|
|
53
|
-
gap: var(--
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
@include
|
|
62
|
-
|
|
63
|
-
gap: var(--
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
@include
|
|
71
|
-
|
|
72
|
-
gap: var(--
|
|
73
|
-
|
|
74
|
-
--padding-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
@include
|
|
79
|
-
@include
|
|
80
|
-
@include
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
background-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
@include
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
@include
|
|
114
|
-
@include
|
|
115
|
-
@include
|
|
116
|
-
@include
|
|
117
|
-
@include
|
|
118
|
-
@include
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
1
|
+
@use 'display' as *;
|
|
2
|
+
@use 'spacing' as *;
|
|
3
|
+
@use 'sizing' as *;
|
|
4
|
+
@use 'typography' as *;
|
|
5
|
+
@use 'colors' as *;
|
|
6
|
+
@use 'borders' as *;
|
|
7
|
+
@use 'transitions' as *;
|
|
8
|
+
@use 'interaction' as *;
|
|
9
|
+
@use 'motion' as *;
|
|
10
|
+
|
|
11
|
+
// Translation management -- flag icons, badges, trigger button.
|
|
12
|
+
//
|
|
13
|
+
// Usage:
|
|
14
|
+
// [data-ln-translatable-lang] { @include translations-flag-input; }
|
|
15
|
+
// [data-ln-translations-active] { @include translations-active-list; }
|
|
16
|
+
|
|
17
|
+
// ─── Flag icon in input background ───────────────────────────────
|
|
18
|
+
|
|
19
|
+
@mixin translations-flag-input {
|
|
20
|
+
// Intrinsic flag-icon decoration math — pad-left + bg-pos + bg-size
|
|
21
|
+
// composed against the icon's own dimensions, not shell rhythm.
|
|
22
|
+
padding-inline-start: calc(var(--size-sm-up) + var(--size-md-up) + var(--size-sm-up));
|
|
23
|
+
background-repeat: no-repeat;
|
|
24
|
+
background-size: var(--size-md-up) auto;
|
|
25
|
+
background-position: var(--size-sm-up) center;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// ─── Dropdown menu item: flag via ::before ───────────────────────
|
|
29
|
+
|
|
30
|
+
@mixin translations-dropdown-flag {
|
|
31
|
+
@include flex;
|
|
32
|
+
@include items-center;
|
|
33
|
+
--gap: var(--size-xs);
|
|
34
|
+
gap: var(--gap);
|
|
35
|
+
|
|
36
|
+
&::before {
|
|
37
|
+
content: '';
|
|
38
|
+
@include inline-block;
|
|
39
|
+
width: 1.25rem;
|
|
40
|
+
aspect-ratio: 4 / 3;
|
|
41
|
+
background-size: contain;
|
|
42
|
+
background-repeat: no-repeat;
|
|
43
|
+
background-position: center;
|
|
44
|
+
flex-shrink: 0;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// ─── Header actions ──────────────────────────────────────────────
|
|
49
|
+
|
|
50
|
+
@mixin translations-actions {
|
|
51
|
+
@include inline-flex;
|
|
52
|
+
@include items-center;
|
|
53
|
+
--gap: var(--size-xs);
|
|
54
|
+
gap: var(--gap);
|
|
55
|
+
margin-inline-start: auto;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// ─── Active translations list ────────────────────────────────────
|
|
59
|
+
|
|
60
|
+
@mixin translations-active-list {
|
|
61
|
+
@include inline-flex;
|
|
62
|
+
@include items-center;
|
|
63
|
+
--gap: var(--size-xs);
|
|
64
|
+
gap: var(--gap);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// ─── Badge with flag ─────────────────────────────────────────────
|
|
68
|
+
|
|
69
|
+
@mixin translations-badge {
|
|
70
|
+
@include inline-flex;
|
|
71
|
+
@include items-center;
|
|
72
|
+
--gap: var(--size-xs);
|
|
73
|
+
gap: var(--gap);
|
|
74
|
+
--padding-y: var(--size-2xs);
|
|
75
|
+
--padding-x: var(--size-xs);
|
|
76
|
+
padding-block: var(--padding-y);
|
|
77
|
+
padding-inline: var(--padding-x);
|
|
78
|
+
@include text-xs;
|
|
79
|
+
@include font-semibold;
|
|
80
|
+
@include rounded-sm;
|
|
81
|
+
@include tinted-surface(0.08);
|
|
82
|
+
@include select-none;
|
|
83
|
+
margin: 0;
|
|
84
|
+
background-repeat: no-repeat;
|
|
85
|
+
background-position: var(--size-xs) center; // Intrinsic flag-icon position, not shell rhythm.
|
|
86
|
+
background-size: 1rem auto;
|
|
87
|
+
--padding-x: var(--size-lg);
|
|
88
|
+
padding-inline-start: var(--padding-x);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// ─── Badge remove button ─────────────────────────────────────────
|
|
92
|
+
|
|
93
|
+
@mixin translations-badge-remove {
|
|
94
|
+
background: none;
|
|
95
|
+
border: none;
|
|
96
|
+
@include cursor-pointer;
|
|
97
|
+
@include text-sm;
|
|
98
|
+
@include font-bold;
|
|
99
|
+
color: inherit;
|
|
100
|
+
--btn-padding-y: 0;
|
|
101
|
+
--btn-padding-x: 0;
|
|
102
|
+
line-height: 1;
|
|
103
|
+
@include transition-fast;
|
|
104
|
+
|
|
105
|
+
&:hover {
|
|
106
|
+
@include text-error;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// ─── Trigger button ──────────────────────────────────────────────
|
|
111
|
+
|
|
112
|
+
@mixin translations-add-button {
|
|
113
|
+
@include inline-flex;
|
|
114
|
+
@include items-center;
|
|
115
|
+
@include justify-center;
|
|
116
|
+
@include size(1.5rem);
|
|
117
|
+
@include rounded-sm;
|
|
118
|
+
@include cursor-pointer;
|
|
119
|
+
@include transition-fast;
|
|
120
|
+
@include tinted-surface(0.08);
|
|
121
|
+
border: none;
|
|
122
|
+
|
|
123
|
+
&:hover {
|
|
124
|
+
@include tinted-surface(0.15);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -97,6 +97,74 @@
|
|
|
97
97
|
@include glass-panel;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
+
// ---------------------------------------------------------------------------
|
|
101
|
+
// Photo Backdrop (full-bleed photograph behind a region's content)
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
103
|
+
// The region's FIRST child is a <figure><img></figure>; it fills the region
|
|
104
|
+
// behind everything that follows. The scrim is mixed from the region's own
|
|
105
|
+
// --bg-base, so the region's text tokens stay legible in light mode, dark
|
|
106
|
+
// mode and scoped theme islands — set data-mode / data-theme on the region,
|
|
107
|
+
// never a hardcoded text color.
|
|
108
|
+
//
|
|
109
|
+
// <section id="hero" class="hero-section photo-backdrop" data-mode="dark">
|
|
110
|
+
// <figure><img src="…" alt="…"></figure>
|
|
111
|
+
// <div class="landing-container">…</div>
|
|
112
|
+
// </section>
|
|
113
|
+
//
|
|
114
|
+
// #hero { @include photo-backdrop; } // default scrim
|
|
115
|
+
// #cta { @include photo-backdrop(photo-scrim(180deg, 85%, 40%)); }
|
|
116
|
+
// #story { @include photo-backdrop(linear-gradient(…brand tint…)); }
|
|
117
|
+
// #plain { @include photo-backdrop(null); } // no scrim
|
|
118
|
+
//
|
|
119
|
+
// photo-scrim($angle, $from, $to): $from / $to are the --bg-base share at
|
|
120
|
+
// the start / end of the gradient (100% = opaque surface).
|
|
121
|
+
// ---------------------------------------------------------------------------
|
|
122
|
+
@function photo-scrim($angle: 90deg, $from: 92%, $to: 30%) {
|
|
123
|
+
$mid: ($from + $to) * 0.5;
|
|
124
|
+
|
|
125
|
+
@return linear-gradient(
|
|
126
|
+
$angle,
|
|
127
|
+
color-mix(in srgb, var(--bg-base) #{$from}, transparent) 0%,
|
|
128
|
+
color-mix(in srgb, var(--bg-base) #{$mid}, transparent) 45%,
|
|
129
|
+
color-mix(in srgb, var(--bg-base) #{$to}, transparent) 100%
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
@mixin photo-backdrop($scrim: photo-scrim()) {
|
|
134
|
+
position: relative;
|
|
135
|
+
isolation: isolate;
|
|
136
|
+
// [data-mode] re-derives --color-fg on the region, but `color` itself is
|
|
137
|
+
// inherited already resolved from <body>; re-read it here.
|
|
138
|
+
color: var(--color-fg);
|
|
139
|
+
|
|
140
|
+
> figure:first-child {
|
|
141
|
+
position: absolute;
|
|
142
|
+
inset: 0;
|
|
143
|
+
z-index: -1;
|
|
144
|
+
margin: 0;
|
|
145
|
+
|
|
146
|
+
img {
|
|
147
|
+
display: block;
|
|
148
|
+
width: 100%;
|
|
149
|
+
height: 100%;
|
|
150
|
+
object-fit: cover;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
@if $scrim {
|
|
154
|
+
&::after {
|
|
155
|
+
content: '';
|
|
156
|
+
position: absolute;
|
|
157
|
+
inset: 0;
|
|
158
|
+
background: $scrim;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.photo-backdrop {
|
|
165
|
+
@include photo-backdrop;
|
|
166
|
+
}
|
|
167
|
+
|
|
100
168
|
// ---------------------------------------------------------------------------
|
|
101
169
|
// Hover Glow & Elevation
|
|
102
170
|
// ---------------------------------------------------------------------------
|
|
@@ -2,8 +2,29 @@
|
|
|
2
2
|
// Presentation Header & Navigation — ln-ashlar
|
|
3
3
|
// ==========================================================================
|
|
4
4
|
// Sticky frosted glass header, brand mark, navigation links, and action bar.
|
|
5
|
+
//
|
|
6
|
+
// Below the `nav` breakpoint the inline .nav-menu collapses: .menu-toggle
|
|
7
|
+
// in .nav-actions opens a <nav> that is a direct child of .site-header
|
|
8
|
+
// (ln-toggle + .collapsible). Above it, the toggle and the panel are hidden.
|
|
9
|
+
//
|
|
10
|
+
// <header class="site-header">
|
|
11
|
+
// <div class="landing-container">
|
|
12
|
+
// <nav class="site-nav">
|
|
13
|
+
// …brand, ul.nav-menu…
|
|
14
|
+
// <div class="nav-actions">
|
|
15
|
+
// <button type="button" class="btn btn-ghost btn-sm menu-toggle"
|
|
16
|
+
// data-ln-toggle-for="site-menu" aria-label="Menu">…</button>
|
|
17
|
+
// </div>
|
|
18
|
+
// </nav>
|
|
19
|
+
// </div>
|
|
20
|
+
// <nav id="site-menu" data-ln-toggle class="collapsible" aria-label="Menu">
|
|
21
|
+
// <div class="collapsible-body"><ul><li><a href="…">…</a></li></ul></div>
|
|
22
|
+
// </nav>
|
|
23
|
+
// </header>
|
|
5
24
|
// ==========================================================================
|
|
6
25
|
|
|
26
|
+
@use '../config/mixins' as *;
|
|
27
|
+
|
|
7
28
|
.site-header {
|
|
8
29
|
position: sticky;
|
|
9
30
|
top: 0;
|
|
@@ -60,7 +81,7 @@
|
|
|
60
81
|
margin: 0;
|
|
61
82
|
padding: 0;
|
|
62
83
|
|
|
63
|
-
@
|
|
84
|
+
@include mq-down(nav) {
|
|
64
85
|
display: none;
|
|
65
86
|
}
|
|
66
87
|
|
|
@@ -97,6 +118,56 @@
|
|
|
97
118
|
align-items: center;
|
|
98
119
|
gap: var(--size-sm);
|
|
99
120
|
}
|
|
121
|
+
|
|
122
|
+
// Collapsed-menu trigger — only while .nav-menu is hidden.
|
|
123
|
+
.menu-toggle {
|
|
124
|
+
@include mq-up(nav) {
|
|
125
|
+
display: none;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Collapsed-menu panel. The .collapsible parent stays padding-free;
|
|
130
|
+
// the list inside .collapsible-body carries the spacing.
|
|
131
|
+
> nav {
|
|
132
|
+
@include mq-up(nav) {
|
|
133
|
+
display: none;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
ul {
|
|
137
|
+
display: flex;
|
|
138
|
+
flex-direction: column;
|
|
139
|
+
gap: var(--size-2xs);
|
|
140
|
+
list-style: none;
|
|
141
|
+
margin: 0;
|
|
142
|
+
padding: var(--size-sm) var(--container-padding-x) var(--size-md);
|
|
143
|
+
border-top: var(--border-width) solid color-mix(in srgb, var(--color-border) 60%, transparent);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
li {
|
|
147
|
+
margin: 0;
|
|
148
|
+
padding: 0;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
a {
|
|
152
|
+
display: block;
|
|
153
|
+
padding: var(--size-sm-up) var(--size-sm);
|
|
154
|
+
border-radius: var(--radius-md);
|
|
155
|
+
font-weight: 600;
|
|
156
|
+
color: var(--color-fg);
|
|
157
|
+
text-decoration: none;
|
|
158
|
+
transition: color var(--transition-fast), background-color var(--transition-fast);
|
|
159
|
+
|
|
160
|
+
&:hover {
|
|
161
|
+
background-color: var(--bg-hover);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
&.active,
|
|
165
|
+
&[aria-current="page"] {
|
|
166
|
+
color: hsl(var(--color-primary));
|
|
167
|
+
background-color: color-mix(in srgb, hsl(var(--color-primary)) 10%, transparent);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
100
171
|
}
|
|
101
172
|
|
|
102
173
|
// ---------------------------------------------------------------------------
|
|
@@ -161,3 +161,16 @@
|
|
|
161
161
|
text-decoration-color: hsl(var(--color-primary));
|
|
162
162
|
}
|
|
163
163
|
}
|
|
164
|
+
|
|
165
|
+
// A link inside a heading is a title link (card, article, news item), not an
|
|
166
|
+
// inline text link: it keeps the heading color and only tints on hover. Same
|
|
167
|
+
// specificity as the rule above and declared after it, so it wins for
|
|
168
|
+
// `li h3 a` without touching inline links in the same list item.
|
|
169
|
+
.landing-section :is(h1, h2, h3, h4, h5, h6) a:not(.btn) {
|
|
170
|
+
color: inherit;
|
|
171
|
+
text-decoration: none;
|
|
172
|
+
|
|
173
|
+
&:hover {
|
|
174
|
+
color: hsl(var(--color-primary));
|
|
175
|
+
}
|
|
176
|
+
}
|