@refrakt-md/lumina 0.12.0 → 0.14.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/logo/prism-16-dark.png +0 -0
- package/assets/logo/prism-16-light.png +0 -0
- package/assets/logo/prism-180-dark.png +0 -0
- package/assets/logo/prism-180-light.png +0 -0
- package/assets/logo/prism-192-dark.png +0 -0
- package/assets/logo/prism-192-light.png +0 -0
- package/assets/logo/prism-24-dark.png +0 -0
- package/assets/logo/prism-24-light.png +0 -0
- package/assets/logo/prism-32-dark.png +0 -0
- package/assets/logo/prism-32-light.png +0 -0
- package/assets/logo/prism-48-dark.png +0 -0
- package/assets/logo/prism-48-light.png +0 -0
- package/assets/logo/prism-512-dark.png +0 -0
- package/assets/logo/prism-512-light.png +0 -0
- package/assets/logo/prism-64-dark.png +0 -0
- package/assets/logo/prism-64-light.png +0 -0
- package/assets/logo/prism-96-dark.png +0 -0
- package/assets/logo/prism-96-light.png +0 -0
- package/assets/logo/prism.svg +4 -0
- package/contracts/structures.json +23 -1
- package/dist/config.js +32 -32
- package/dist/config.js.map +1 -1
- package/dist/presets/niwaki.d.ts +23 -0
- package/dist/presets/niwaki.d.ts.map +1 -0
- package/dist/presets/niwaki.js +50 -0
- package/dist/presets/niwaki.js.map +1 -0
- package/dist/presets/nord.d.ts +46 -0
- package/dist/presets/nord.d.ts.map +1 -0
- package/dist/presets/nord.js +127 -0
- package/dist/presets/nord.js.map +1 -0
- package/dist/presets/tideline.d.ts +26 -0
- package/dist/presets/tideline.d.ts.map +1 -0
- package/dist/presets/tideline.js +132 -0
- package/dist/presets/tideline.js.map +1 -0
- package/dist/tokens.d.ts +20 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +178 -0
- package/dist/tokens.js.map +1 -0
- package/dist/transform.d.ts +5 -0
- package/dist/transform.d.ts.map +1 -1
- package/dist/transform.js +5 -0
- package/dist/transform.js.map +1 -1
- package/index.css +1 -0
- package/package.json +21 -6
- package/styles/dimensions/surfaces.css +4 -2
- package/styles/elements/table.css +4 -0
- package/styles/global.css +13 -4
- package/styles/layouts/blog.css +8 -2
- package/styles/layouts/default.css +37 -3
- package/styles/layouts/docs.css +24 -6
- package/styles/layouts/mobile.css +36 -5
- package/styles/runes/codegroup.css +19 -15
- package/styles/runes/compare.css +9 -0
- package/styles/runes/cta.css +14 -0
- package/styles/runes/diff.css +40 -31
- package/styles/runes/hero.css +24 -0
- package/styles/runes/hint.css +5 -9
- package/styles/runes/nav.css +344 -1
- package/styles/runes/pagination.css +85 -0
- package/styles/runes/palette.css +9 -0
- package/styles/runes/tint.css +116 -72
- package/tokens/base.css +74 -53
- package/tokens/dark.css +97 -75
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"
|
|
2
|
+
fill="none" stroke="currentColor"
|
|
3
|
+
stroke-width="4" stroke-linecap="round" stroke-linejoin="round"
|
|
4
|
+
role="img" aria-label="refrakt"><title>refrakt</title><style>:where(svg){color:#1c1a17}@media (prefers-color-scheme:dark){:where(svg){color:#fff}}</style><path d="M 40.56 16 L 90 16 L 65.28 59.26 Z" fill="currentColor" stroke="none"/><path d="M 10 16 L 90 16 L 50 86 Z"/><line x1="20.19" y1="16" x2="55.09" y2="77.09"/><line x1="30.37" y1="16" x2="60.19" y2="68.18"/><line x1="40.56" y1="16" x2="65.28" y2="59.26"/></svg>
|
|
@@ -572,7 +572,14 @@
|
|
|
572
572
|
"dataRune": "nav",
|
|
573
573
|
"childOrder": [
|
|
574
574
|
"{content}"
|
|
575
|
-
]
|
|
575
|
+
],
|
|
576
|
+
"modifiers": {
|
|
577
|
+
"layout": {
|
|
578
|
+
"source": "attribute",
|
|
579
|
+
"classPattern": ".rf-nav--{value}",
|
|
580
|
+
"dataAttribute": "data-layout"
|
|
581
|
+
}
|
|
582
|
+
}
|
|
576
583
|
},
|
|
577
584
|
"NavGroup": {
|
|
578
585
|
"block": "nav-group",
|
|
@@ -583,6 +590,21 @@
|
|
|
583
590
|
"{content}"
|
|
584
591
|
]
|
|
585
592
|
},
|
|
593
|
+
"Pagination": {
|
|
594
|
+
"block": "pagination",
|
|
595
|
+
"root": ".rf-pagination",
|
|
596
|
+
"dataRune": "pagination",
|
|
597
|
+
"childOrder": [
|
|
598
|
+
"{content}"
|
|
599
|
+
],
|
|
600
|
+
"modifiers": {
|
|
601
|
+
"scope": {
|
|
602
|
+
"source": "meta",
|
|
603
|
+
"default": "siblings",
|
|
604
|
+
"dataAttribute": "data-scope"
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
},
|
|
586
608
|
"NavItem": {
|
|
587
609
|
"block": "nav-item",
|
|
588
610
|
"root": ".rf-nav-item",
|
package/dist/config.js
CHANGED
|
@@ -6,74 +6,74 @@ export const luminaConfig = mergeThemeConfig(baseConfig, {
|
|
|
6
6
|
tints: {
|
|
7
7
|
base: {
|
|
8
8
|
light: {
|
|
9
|
-
|
|
9
|
+
bg: 'var(--rf-color-bg)',
|
|
10
10
|
surface: 'var(--rf-color-surface)',
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
text: 'var(--rf-color-text)',
|
|
12
|
+
muted: 'var(--rf-color-muted)',
|
|
13
|
+
primary: 'var(--rf-color-primary)',
|
|
14
14
|
border: 'var(--rf-color-border)',
|
|
15
15
|
},
|
|
16
16
|
dark: {
|
|
17
|
-
|
|
17
|
+
bg: 'var(--rf-color-bg)',
|
|
18
18
|
surface: 'var(--rf-color-surface)',
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
text: 'var(--rf-color-text)',
|
|
20
|
+
muted: 'var(--rf-color-muted)',
|
|
21
|
+
primary: 'var(--rf-color-primary)',
|
|
22
22
|
border: 'var(--rf-color-border)',
|
|
23
23
|
},
|
|
24
24
|
},
|
|
25
25
|
subtle: {
|
|
26
26
|
light: {
|
|
27
|
-
|
|
27
|
+
bg: 'var(--rf-color-surface)',
|
|
28
28
|
surface: 'var(--rf-color-surface-hover)',
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
text: 'var(--rf-color-text)',
|
|
30
|
+
muted: 'var(--rf-color-muted)',
|
|
31
|
+
primary: 'var(--rf-color-primary)',
|
|
32
32
|
border: 'var(--rf-color-border)',
|
|
33
33
|
},
|
|
34
34
|
dark: {
|
|
35
|
-
|
|
35
|
+
bg: 'var(--rf-color-surface)',
|
|
36
36
|
surface: 'var(--rf-color-surface-hover)',
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
text: 'var(--rf-color-text)',
|
|
38
|
+
muted: 'var(--rf-color-muted)',
|
|
39
|
+
primary: 'var(--rf-color-primary)',
|
|
40
40
|
border: 'var(--rf-color-border)',
|
|
41
41
|
},
|
|
42
42
|
},
|
|
43
43
|
warm: {
|
|
44
44
|
light: {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
bg: 'var(--rf-color-surface-active)',
|
|
46
|
+
text: 'var(--rf-color-text)',
|
|
47
|
+
primary: 'var(--rf-color-warning)',
|
|
48
48
|
border: 'var(--rf-color-border)',
|
|
49
49
|
},
|
|
50
50
|
dark: {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
bg: '#2a2018',
|
|
52
|
+
text: 'var(--rf-color-text)',
|
|
53
|
+
primary: 'var(--rf-color-warning)',
|
|
54
54
|
border: '#4a3f33',
|
|
55
55
|
},
|
|
56
56
|
},
|
|
57
57
|
cool: {
|
|
58
58
|
light: {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
bg: 'var(--rf-color-info-bg)',
|
|
60
|
+
text: 'var(--rf-color-text)',
|
|
61
|
+
primary: 'var(--rf-color-primary)',
|
|
62
62
|
border: 'var(--rf-color-info-border)',
|
|
63
63
|
},
|
|
64
64
|
dark: {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
bg: 'var(--rf-color-primary-950)',
|
|
66
|
+
text: 'var(--rf-color-primary-300)',
|
|
67
|
+
primary: 'var(--rf-color-primary)',
|
|
68
68
|
border: 'var(--rf-color-primary-700)',
|
|
69
69
|
},
|
|
70
70
|
},
|
|
71
71
|
dark: {
|
|
72
|
-
|
|
72
|
+
lockMode: 'dark',
|
|
73
73
|
dark: {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
bg: 'var(--rf-color-primary-700)',
|
|
75
|
+
text: 'var(--rf-color-primary-50)',
|
|
76
|
+
primary: 'var(--rf-color-danger)',
|
|
77
77
|
},
|
|
78
78
|
},
|
|
79
79
|
},
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AAElD,gFAAgF;AAChF,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC,UAAU,EAAE;IACxD,KAAK,EAAE;QACN,IAAI,EAAE;YACL,KAAK,EAAE;gBACN,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AAElD,gFAAgF;AAChF,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC,UAAU,EAAE;IACxD,KAAK,EAAE;QACN,IAAI,EAAE;YACL,KAAK,EAAE;gBACN,EAAE,EAAE,oBAAoB;gBACxB,OAAO,EAAE,yBAAyB;gBAClC,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,yBAAyB;gBAClC,MAAM,EAAE,wBAAwB;aAChC;YACD,IAAI,EAAE;gBACL,EAAE,EAAE,oBAAoB;gBACxB,OAAO,EAAE,yBAAyB;gBAClC,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,yBAAyB;gBAClC,MAAM,EAAE,wBAAwB;aAChC;SACD;QACD,MAAM,EAAE;YACP,KAAK,EAAE;gBACN,EAAE,EAAE,yBAAyB;gBAC7B,OAAO,EAAE,+BAA+B;gBACxC,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,yBAAyB;gBAClC,MAAM,EAAE,wBAAwB;aAChC;YACD,IAAI,EAAE;gBACL,EAAE,EAAE,yBAAyB;gBAC7B,OAAO,EAAE,+BAA+B;gBACxC,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,yBAAyB;gBAClC,MAAM,EAAE,wBAAwB;aAChC;SACD;QACD,IAAI,EAAE;YACL,KAAK,EAAE;gBACN,EAAE,EAAE,gCAAgC;gBACpC,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,yBAAyB;gBAClC,MAAM,EAAE,wBAAwB;aAChC;YACD,IAAI,EAAE;gBACL,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,yBAAyB;gBAClC,MAAM,EAAE,SAAS;aACjB;SACD;QACD,IAAI,EAAE;YACL,KAAK,EAAE;gBACN,EAAE,EAAE,yBAAyB;gBAC7B,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,yBAAyB;gBAClC,MAAM,EAAE,6BAA6B;aACrC;YACD,IAAI,EAAE;gBACL,EAAE,EAAE,6BAA6B;gBACjC,IAAI,EAAE,6BAA6B;gBACnC,OAAO,EAAE,yBAAyB;gBAClC,MAAM,EAAE,6BAA6B;aACrC;SACD;QACD,IAAI,EAAE;YACL,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE;gBACL,EAAE,EAAE,6BAA6B;gBACjC,IAAI,EAAE,4BAA4B;gBAClC,OAAO,EAAE,wBAAwB;aACjC;SACD;KACD;IACD,KAAK,EAAE;QACN,IAAI,EAAE;YACL,IAAI,EAAE,4SAA4S;YAClT,OAAO,EAAE,iXAAiX;YAC1X,OAAO,EAAE,uSAAuS;YAChT,KAAK,EAAE,qRAAqR;SAC5R;QACD,MAAM,EAAE,WAAW;KACnB;CACD,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ThemeTokensConfig } from '@refrakt-md/types';
|
|
2
|
+
/**
|
|
3
|
+
* Niwaki — a Japanese-garden-inspired *syntax-only* preset.
|
|
4
|
+
*
|
|
5
|
+
* Where tideline is a full identity overhaul (chrome + syntax + typography),
|
|
6
|
+
* niwaki deliberately scopes to the syntax tokens. Code blocks render in
|
|
7
|
+
* wakaba / sakura / matsu / momiji / ishi; everything else inherits from
|
|
8
|
+
* whichever chrome theme is layered above. Composes cleanly:
|
|
9
|
+
*
|
|
10
|
+
* - `presets: ["niwaki"]` → Japanese-garden code on the neutral default
|
|
11
|
+
* - `presets: ["tideline", "niwaki"]` → tideline chrome + niwaki code
|
|
12
|
+
*
|
|
13
|
+
* The refrakt documentation site uses `["niwaki"]`. See `/docs/themes/lumina/presets/niwaki`.
|
|
14
|
+
*
|
|
15
|
+
* Cultural sensitivity: the preset is named in Japanese (niwaki = 庭木, the
|
|
16
|
+
* cloud-pruned garden tree of Japanese tradition) and its colours reference
|
|
17
|
+
* wakaba (young leaf), sakura (cherry blossom), matsu (pine), momiji (autumn
|
|
18
|
+
* maple), and ishi (stone). The naming is a deliberate homage; we don't
|
|
19
|
+
* claim cultural ownership.
|
|
20
|
+
*/
|
|
21
|
+
declare const niwaki: ThemeTokensConfig;
|
|
22
|
+
export default niwaki;
|
|
23
|
+
//# sourceMappingURL=niwaki.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"niwaki.d.ts","sourceRoot":"","sources":["../../src/presets/niwaki.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;GAkBG;AACH,QAAA,MAAM,MAAM,EAAE,iBA6Bb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Niwaki — a Japanese-garden-inspired *syntax-only* preset.
|
|
3
|
+
*
|
|
4
|
+
* Where tideline is a full identity overhaul (chrome + syntax + typography),
|
|
5
|
+
* niwaki deliberately scopes to the syntax tokens. Code blocks render in
|
|
6
|
+
* wakaba / sakura / matsu / momiji / ishi; everything else inherits from
|
|
7
|
+
* whichever chrome theme is layered above. Composes cleanly:
|
|
8
|
+
*
|
|
9
|
+
* - `presets: ["niwaki"]` → Japanese-garden code on the neutral default
|
|
10
|
+
* - `presets: ["tideline", "niwaki"]` → tideline chrome + niwaki code
|
|
11
|
+
*
|
|
12
|
+
* The refrakt documentation site uses `["niwaki"]`. See `/docs/themes/lumina/presets/niwaki`.
|
|
13
|
+
*
|
|
14
|
+
* Cultural sensitivity: the preset is named in Japanese (niwaki = 庭木, the
|
|
15
|
+
* cloud-pruned garden tree of Japanese tradition) and its colours reference
|
|
16
|
+
* wakaba (young leaf), sakura (cherry blossom), matsu (pine), momiji (autumn
|
|
17
|
+
* maple), and ishi (stone). The naming is a deliberate homage; we don't
|
|
18
|
+
* claim cultural ownership.
|
|
19
|
+
*/
|
|
20
|
+
const niwaki = {
|
|
21
|
+
// Light-mode syntax — matsu / sakura / momiji / wakaba / ishi
|
|
22
|
+
syntax: {
|
|
23
|
+
keyword: '#5e7d2a', // wakaba — deep young-leaf green
|
|
24
|
+
function: '#b54a6b', // sakura — mature cherry blossom
|
|
25
|
+
link: '#3d6b3d', // matsu — deep pine
|
|
26
|
+
string: '#a8521c', // momiji — deep peach
|
|
27
|
+
'string-expression': '#c54a14', // momiji punchy — rust orange
|
|
28
|
+
constant: '#3d6b3d', // matsu — deep pine (same as link)
|
|
29
|
+
comment: '#8a857d', // ishi light — muted stone
|
|
30
|
+
punctuation: '#8a857d',
|
|
31
|
+
variable: '#1c1a17', // = neutral default's text
|
|
32
|
+
},
|
|
33
|
+
modes: {
|
|
34
|
+
dark: {
|
|
35
|
+
syntax: {
|
|
36
|
+
keyword: '#b3d475', // wakaba — yellow-green young leaf
|
|
37
|
+
function: '#f591a6', // sakura — cherry blossom pink
|
|
38
|
+
link: '#8ab589', // matsu — pine
|
|
39
|
+
string: '#eba073', // momiji — peach
|
|
40
|
+
'string-expression': '#fa9a61', // momiji punchy — saturated orange
|
|
41
|
+
constant: '#8ab589', // matsu — pine (same as link)
|
|
42
|
+
comment: '#7d7062', // ishi — warm stone (italic via rune CSS)
|
|
43
|
+
punctuation: '#7d7062',
|
|
44
|
+
variable: '#f6f4ef', // = neutral default's dark text
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
export default niwaki;
|
|
50
|
+
//# sourceMappingURL=niwaki.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"niwaki.js","sourceRoot":"","sources":["../../src/presets/niwaki.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,GAAsB;IACjC,8DAA8D;IAC9D,MAAM,EAAE;QACP,OAAO,EAAE,SAAS,EAAc,iCAAiC;QACjE,QAAQ,EAAE,SAAS,EAAa,iCAAiC;QACjE,IAAI,EAAE,SAAS,EAAiB,oBAAoB;QACpD,MAAM,EAAE,SAAS,EAAe,sBAAsB;QACtD,mBAAmB,EAAE,SAAS,EAAE,8BAA8B;QAC9D,QAAQ,EAAE,SAAS,EAAa,mCAAmC;QACnE,OAAO,EAAE,SAAS,EAAc,2BAA2B;QAC3D,WAAW,EAAE,SAAS;QACtB,QAAQ,EAAE,SAAS,EAAa,2BAA2B;KAC3D;IAED,KAAK,EAAE;QACN,IAAI,EAAE;YACL,MAAM,EAAE;gBACP,OAAO,EAAE,SAAS,EAAM,mCAAmC;gBAC3D,QAAQ,EAAE,SAAS,EAAK,+BAA+B;gBACvD,IAAI,EAAE,SAAS,EAAS,eAAe;gBACvC,MAAM,EAAE,SAAS,EAAO,iBAAiB;gBACzC,mBAAmB,EAAE,SAAS,EAAE,mCAAmC;gBACnE,QAAQ,EAAE,SAAS,EAAK,8BAA8B;gBACtD,OAAO,EAAE,SAAS,EAAM,0CAA0C;gBAClE,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,SAAS,EAAK,gCAAgC;aACxD;SACD;KACD;CACD,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ThemeTokensConfig } from '@refrakt-md/types';
|
|
2
|
+
/**
|
|
3
|
+
* Nord — an *integrated* palette preset (canvas + chrome + foreground).
|
|
4
|
+
*
|
|
5
|
+
* Where niwaki took the scoped "foreground only" position deliberately,
|
|
6
|
+
* Nord takes the integrated position because that's how Nord was designed:
|
|
7
|
+
* its 16 hues were tuned together against the Polar Night / Snow Storm
|
|
8
|
+
* canvas families. Rendering Nord's foreground on a warm or neutral
|
|
9
|
+
* canvas misrepresents the palette's intent.
|
|
10
|
+
*
|
|
11
|
+
* Nord therefore claims chrome (`color.bg`, `color.surface.base`,
|
|
12
|
+
* `color.text`, `color.muted`, `color.border`, `color.primary`) and
|
|
13
|
+
* code-surface (`color.code.*`) tokens alongside `syntax.*`. When Nord
|
|
14
|
+
* is the active preset, the whole page renders in Polar Night / Snow
|
|
15
|
+
* Storm. When Nord is used as a scoped tint (via
|
|
16
|
+
* `theme.tints[].extends`), every Nord-tinted subtree renders against
|
|
17
|
+
* Nord's canvas without affecting surrounding content. The scope-
|
|
18
|
+
* eligibility filter in `generateScopedTintStylesheet` enforces the
|
|
19
|
+
* boundary — typography, spacing, radius, shadow, and status sentiments
|
|
20
|
+
* stay with whatever chrome is active, even when Nord is tinting.
|
|
21
|
+
*
|
|
22
|
+
* Composes:
|
|
23
|
+
* - `presets: ["nord"]` → Nord syntax on Nord canvas, neutral chrome elsewhere
|
|
24
|
+
* - `presets: ["tideline", "nord"]` → tideline chrome with Nord code surface
|
|
25
|
+
* - Used as a tint via `tints: { nord: { extends: ".../presets/nord" } }`
|
|
26
|
+
* (WORK-223 unlocks this) to showcase Nord on a site whose active
|
|
27
|
+
* preset is something else.
|
|
28
|
+
*
|
|
29
|
+
* Derived from the Nord palette by Arctic Ice Studio & Sven Greb,
|
|
30
|
+
* MIT licensed. https://www.nordtheme.com/
|
|
31
|
+
*
|
|
32
|
+
* The Nord palette is structured as four named groups:
|
|
33
|
+
* - Polar Night (nord0–3): the dark canvas and its near-canvas elevation
|
|
34
|
+
* - Snow Storm (nord4–6): the light/text family and the light canvas
|
|
35
|
+
* - Frost (nord7–10): cool blue accents — types, functions, keywords
|
|
36
|
+
* - Aurora (nord11–15): warm accents — red, orange, yellow, green, purple
|
|
37
|
+
*
|
|
38
|
+
* Role assignments below follow Nord's own syntax-highlighting reference.
|
|
39
|
+
* Where SPEC-056's extended roles (`type`, `tag`, `attribute`, ...) let
|
|
40
|
+
* Nord's intended hue splits land on distinct refrakt roles, we set them
|
|
41
|
+
* explicitly; where Nord collapses two roles to the same hue, we leave
|
|
42
|
+
* the optional role unset and let the fallback chain carry the value.
|
|
43
|
+
*/
|
|
44
|
+
declare const nord: ThemeTokensConfig;
|
|
45
|
+
export default nord;
|
|
46
|
+
//# sourceMappingURL=nord.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nord.d.ts","sourceRoot":"","sources":["../../src/presets/nord.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,QAAA,MAAM,IAAI,EAAE,iBAqFX,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nord — an *integrated* palette preset (canvas + chrome + foreground).
|
|
3
|
+
*
|
|
4
|
+
* Where niwaki took the scoped "foreground only" position deliberately,
|
|
5
|
+
* Nord takes the integrated position because that's how Nord was designed:
|
|
6
|
+
* its 16 hues were tuned together against the Polar Night / Snow Storm
|
|
7
|
+
* canvas families. Rendering Nord's foreground on a warm or neutral
|
|
8
|
+
* canvas misrepresents the palette's intent.
|
|
9
|
+
*
|
|
10
|
+
* Nord therefore claims chrome (`color.bg`, `color.surface.base`,
|
|
11
|
+
* `color.text`, `color.muted`, `color.border`, `color.primary`) and
|
|
12
|
+
* code-surface (`color.code.*`) tokens alongside `syntax.*`. When Nord
|
|
13
|
+
* is the active preset, the whole page renders in Polar Night / Snow
|
|
14
|
+
* Storm. When Nord is used as a scoped tint (via
|
|
15
|
+
* `theme.tints[].extends`), every Nord-tinted subtree renders against
|
|
16
|
+
* Nord's canvas without affecting surrounding content. The scope-
|
|
17
|
+
* eligibility filter in `generateScopedTintStylesheet` enforces the
|
|
18
|
+
* boundary — typography, spacing, radius, shadow, and status sentiments
|
|
19
|
+
* stay with whatever chrome is active, even when Nord is tinting.
|
|
20
|
+
*
|
|
21
|
+
* Composes:
|
|
22
|
+
* - `presets: ["nord"]` → Nord syntax on Nord canvas, neutral chrome elsewhere
|
|
23
|
+
* - `presets: ["tideline", "nord"]` → tideline chrome with Nord code surface
|
|
24
|
+
* - Used as a tint via `tints: { nord: { extends: ".../presets/nord" } }`
|
|
25
|
+
* (WORK-223 unlocks this) to showcase Nord on a site whose active
|
|
26
|
+
* preset is something else.
|
|
27
|
+
*
|
|
28
|
+
* Derived from the Nord palette by Arctic Ice Studio & Sven Greb,
|
|
29
|
+
* MIT licensed. https://www.nordtheme.com/
|
|
30
|
+
*
|
|
31
|
+
* The Nord palette is structured as four named groups:
|
|
32
|
+
* - Polar Night (nord0–3): the dark canvas and its near-canvas elevation
|
|
33
|
+
* - Snow Storm (nord4–6): the light/text family and the light canvas
|
|
34
|
+
* - Frost (nord7–10): cool blue accents — types, functions, keywords
|
|
35
|
+
* - Aurora (nord11–15): warm accents — red, orange, yellow, green, purple
|
|
36
|
+
*
|
|
37
|
+
* Role assignments below follow Nord's own syntax-highlighting reference.
|
|
38
|
+
* Where SPEC-056's extended roles (`type`, `tag`, `attribute`, ...) let
|
|
39
|
+
* Nord's intended hue splits land on distinct refrakt roles, we set them
|
|
40
|
+
* explicitly; where Nord collapses two roles to the same hue, we leave
|
|
41
|
+
* the optional role unset and let the fallback chain carry the value.
|
|
42
|
+
*/
|
|
43
|
+
const nord = {
|
|
44
|
+
// Light mode — Snow Storm canvas with Polar Night foreground. Nord is
|
|
45
|
+
// dark-canonical; the light variant is a swap of the canvas/text axis
|
|
46
|
+
// while keeping the same Frost + Aurora accents at slightly darker
|
|
47
|
+
// values for contrast on the lighter background.
|
|
48
|
+
color: {
|
|
49
|
+
bg: '#eceff4', // Snow Storm nord6 — canonical light canvas
|
|
50
|
+
text: '#2e3440', // Polar Night nord0 — text on light canvas
|
|
51
|
+
muted: '#4c566a', // Polar Night nord3
|
|
52
|
+
border: '#d8dee9', // Snow Storm nord4 — between bg and elevated
|
|
53
|
+
primary: '#5e81ac', // Frost nord10 — Nord's interactive accent
|
|
54
|
+
'primary-hover': '#81a1c1', // Frost nord9 — lighter on hover
|
|
55
|
+
surface: {
|
|
56
|
+
base: '#e5e9f0', // Snow Storm nord5 — slightly elevated card surface
|
|
57
|
+
hover: '#d8dee9', // Snow Storm nord4
|
|
58
|
+
active: '#d8dee9',
|
|
59
|
+
raised: '#eceff4',
|
|
60
|
+
},
|
|
61
|
+
code: {
|
|
62
|
+
bg: '#eceff4', // Snow Storm nord6 — same as page canvas
|
|
63
|
+
text: '#2e3440', // Polar Night nord0
|
|
64
|
+
'inline-bg': '#e5e9f0', // Snow Storm nord5 — slight elevation for inline code
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
syntax: {
|
|
68
|
+
keyword: '#5e81ac', // Frost nord10 — slightly darker for light contrast
|
|
69
|
+
function: '#88c0d0', // Frost nord8
|
|
70
|
+
type: '#8fbcbb', // Frost nord7 — distinct from function (the SPEC-056 motivating split)
|
|
71
|
+
string: '#a3be8c', // Aurora nord14
|
|
72
|
+
constant: '#b48ead', // Aurora nord15 — purple for booleans/null/symbols
|
|
73
|
+
comment: '#4c566a', // Polar Night nord3 — muted on light canvas
|
|
74
|
+
punctuation: '#4c566a', // Polar Night nord3
|
|
75
|
+
variable: '#2e3440', // Polar Night nord0 — body text on light
|
|
76
|
+
// Extended roles where Nord's spec has a distinct intent
|
|
77
|
+
number: '#d08770', // Aurora nord12 — orange, separating numbers from string-constants
|
|
78
|
+
regex: '#ebcb8b', // Aurora nord13 — yellow regex hue
|
|
79
|
+
tag: '#5e81ac', // Frost nord10 — Nord renders HTML tags as deep Frost
|
|
80
|
+
attribute: '#8fbcbb', // Frost nord7 — Nord aligns attribute names with type-family
|
|
81
|
+
operator: '#81a1c1', // Frost nord9 — Nord splits operators from punctuation, painting them as keyword-family
|
|
82
|
+
// `parameter` and `property` and `link`, `string-expression` left unset:
|
|
83
|
+
// Nord doesn't separately spec them, so they cascade via the fallback
|
|
84
|
+
// chain (parameter→variable, property→variable, link→function,
|
|
85
|
+
// string-expression→string).
|
|
86
|
+
},
|
|
87
|
+
modes: {
|
|
88
|
+
dark: {
|
|
89
|
+
color: {
|
|
90
|
+
bg: '#2e3440', // Polar Night nord0 — canonical dark canvas
|
|
91
|
+
text: '#d8dee9', // Snow Storm nord4
|
|
92
|
+
muted: '#616e88', // between Polar Night nord3 and Snow Storm nord4
|
|
93
|
+
border: '#3b4252', // Polar Night nord1 — subtle separator
|
|
94
|
+
primary: '#88c0d0', // Frost nord8 — brighter on dark
|
|
95
|
+
'primary-hover': '#8fbcbb', // Frost nord7
|
|
96
|
+
surface: {
|
|
97
|
+
base: '#3b4252', // Polar Night nord1 — elevated card on dark
|
|
98
|
+
hover: '#434c5e', // Polar Night nord2
|
|
99
|
+
active: '#4c566a', // Polar Night nord3
|
|
100
|
+
raised: '#434c5e',
|
|
101
|
+
},
|
|
102
|
+
code: {
|
|
103
|
+
bg: '#2e3440', // Polar Night nord0 — canonical dark canvas
|
|
104
|
+
text: '#d8dee9', // Snow Storm nord4
|
|
105
|
+
'inline-bg': '#3b4252', // Polar Night nord1 — slightly elevated
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
syntax: {
|
|
109
|
+
keyword: '#81a1c1', // Frost nord9
|
|
110
|
+
function: '#88c0d0', // Frost nord8
|
|
111
|
+
type: '#8fbcbb', // Frost nord7
|
|
112
|
+
string: '#a3be8c', // Aurora nord14
|
|
113
|
+
constant: '#b48ead', // Aurora nord15
|
|
114
|
+
comment: '#616e88', // between nord3 and nord4 — Nord-spec'd comment on dark
|
|
115
|
+
punctuation: '#d8dee9', // Snow Storm nord4 — Nord's punctuation reads as default text
|
|
116
|
+
variable: '#d8dee9', // Snow Storm nord4
|
|
117
|
+
number: '#b48ead', // Aurora nord15 in dark; some Nord impls use nord12 — picking nord15 for harmony with constant
|
|
118
|
+
regex: '#ebcb8b', // Aurora nord13
|
|
119
|
+
tag: '#81a1c1', // Frost nord9 in dark
|
|
120
|
+
attribute: '#8fbcbb', // Frost nord7
|
|
121
|
+
operator: '#81a1c1', // Frost nord9
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
export default nord;
|
|
127
|
+
//# sourceMappingURL=nord.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nord.js","sourceRoot":"","sources":["../../src/presets/nord.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ThemeTokensConfig } from '@refrakt-md/types';
|
|
2
|
+
/**
|
|
3
|
+
* Tideline — Lumina's "warm + branded" full preset, named after the boundary
|
|
4
|
+
* where land meets water. Restores the cream-and-maritime-navy palette
|
|
5
|
+
* Lumina shipped pre-v0.14.0, with one deliberate upgrade: typography
|
|
6
|
+
* switches from Outfit to IBM Plex Sans / Plex Mono per SPEC-051.
|
|
7
|
+
*
|
|
8
|
+
* Opt in:
|
|
9
|
+
*
|
|
10
|
+
* ```jsonc
|
|
11
|
+
* {
|
|
12
|
+
* "site": {
|
|
13
|
+
* "theme": {
|
|
14
|
+
* "package": "@refrakt-md/lumina",
|
|
15
|
+
* "presets": ["@refrakt-md/lumina/presets/tideline"]
|
|
16
|
+
* }
|
|
17
|
+
* }
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* Sites that specifically depended on the Outfit font can pin it back via
|
|
22
|
+
* `theme.tokens.font.sans` after opting in to the rest of tideline.
|
|
23
|
+
*/
|
|
24
|
+
declare const tideline: ThemeTokensConfig;
|
|
25
|
+
export default tideline;
|
|
26
|
+
//# sourceMappingURL=tideline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tideline.d.ts","sourceRoot":"","sources":["../../src/presets/tideline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,QAAA,MAAM,QAAQ,EAAE,iBAyHf,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tideline — Lumina's "warm + branded" full preset, named after the boundary
|
|
3
|
+
* where land meets water. Restores the cream-and-maritime-navy palette
|
|
4
|
+
* Lumina shipped pre-v0.14.0, with one deliberate upgrade: typography
|
|
5
|
+
* switches from Outfit to IBM Plex Sans / Plex Mono per SPEC-051.
|
|
6
|
+
*
|
|
7
|
+
* Opt in:
|
|
8
|
+
*
|
|
9
|
+
* ```jsonc
|
|
10
|
+
* {
|
|
11
|
+
* "site": {
|
|
12
|
+
* "theme": {
|
|
13
|
+
* "package": "@refrakt-md/lumina",
|
|
14
|
+
* "presets": ["@refrakt-md/lumina/presets/tideline"]
|
|
15
|
+
* }
|
|
16
|
+
* }
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* Sites that specifically depended on the Outfit font can pin it back via
|
|
21
|
+
* `theme.tokens.font.sans` after opting in to the rest of tideline.
|
|
22
|
+
*/
|
|
23
|
+
const tideline = {
|
|
24
|
+
font: {
|
|
25
|
+
sans: "'IBM Plex Sans', system-ui, -apple-system, sans-serif",
|
|
26
|
+
mono: "'IBM Plex Mono', 'JetBrains Mono', ui-monospace, monospace",
|
|
27
|
+
},
|
|
28
|
+
color: {
|
|
29
|
+
text: '#1d3557',
|
|
30
|
+
muted: '#5a7a90',
|
|
31
|
+
border: '#d8e4de',
|
|
32
|
+
bg: '#faf5eb',
|
|
33
|
+
primary: '#457b9d',
|
|
34
|
+
'primary-hover': '#376585',
|
|
35
|
+
// Cerulean → frosted blue scale, preserved from pre-v0.14.0 Lumina.
|
|
36
|
+
'primary-scale': {
|
|
37
|
+
'50': '#f0f6f9',
|
|
38
|
+
'100': '#dcebf0',
|
|
39
|
+
'200': '#b8d6e2',
|
|
40
|
+
'300': '#a8dadc',
|
|
41
|
+
'400': '#70b4c0',
|
|
42
|
+
'500': '#457b9d',
|
|
43
|
+
'600': '#376585',
|
|
44
|
+
'700': '#1d3557',
|
|
45
|
+
'800': '#182c4a',
|
|
46
|
+
'900': '#12213a',
|
|
47
|
+
'950': '#0c162a',
|
|
48
|
+
},
|
|
49
|
+
surface: {
|
|
50
|
+
base: '#fffbf2',
|
|
51
|
+
hover: '#fdf0d5',
|
|
52
|
+
active: '#f9ebcc',
|
|
53
|
+
raised: '#ffffff',
|
|
54
|
+
},
|
|
55
|
+
info: { base: '#457b9d', bg: '#edf4f8', border: '#a8dadc' },
|
|
56
|
+
warning: { base: '#c8900a', bg: '#fdf5e4', border: '#edd49a' },
|
|
57
|
+
danger: { base: '#e63946', bg: '#fdeced', border: '#f0b0b5' },
|
|
58
|
+
success: { base: '#3d8f65', bg: '#ecf5ef', border: '#a8d4b8' },
|
|
59
|
+
code: {
|
|
60
|
+
bg: '#1d3557',
|
|
61
|
+
text: '#f1faee',
|
|
62
|
+
'inline-bg': '#f9ebcc',
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
syntax: {
|
|
66
|
+
keyword: '#f2cc8f',
|
|
67
|
+
function: '#70b4c0',
|
|
68
|
+
string: '#a8dadc',
|
|
69
|
+
constant: '#e8c07a',
|
|
70
|
+
comment: '#5a7a90',
|
|
71
|
+
punctuation: '#a8dadc',
|
|
72
|
+
variable: '#b8d6e2',
|
|
73
|
+
},
|
|
74
|
+
modes: {
|
|
75
|
+
dark: {
|
|
76
|
+
color: {
|
|
77
|
+
text: '#f1faee',
|
|
78
|
+
muted: '#a8dadc',
|
|
79
|
+
border: 'rgba(168, 218, 220, 0.15)',
|
|
80
|
+
bg: '#152238',
|
|
81
|
+
primary: '#70b4c0',
|
|
82
|
+
'primary-hover': '#a8dadc',
|
|
83
|
+
surface: {
|
|
84
|
+
base: '#1a2940',
|
|
85
|
+
hover: '#203048',
|
|
86
|
+
active: '#263850',
|
|
87
|
+
raised: '#1a2940',
|
|
88
|
+
},
|
|
89
|
+
info: { base: '#a8dadc', bg: 'rgba(69, 123, 157, 0.12)', border: 'rgba(69, 123, 157, 0.3)' },
|
|
90
|
+
warning: { base: '#e8c07a', bg: 'rgba(200, 144, 10, 0.12)', border: 'rgba(200, 144, 10, 0.3)' },
|
|
91
|
+
danger: { base: '#f07078', bg: 'rgba(230, 57, 70, 0.12)', border: 'rgba(230, 57, 70, 0.3)' },
|
|
92
|
+
success: { base: '#72c098', bg: 'rgba(61, 143, 101, 0.12)', border: 'rgba(61, 143, 101, 0.3)' },
|
|
93
|
+
code: {
|
|
94
|
+
bg: '#152238',
|
|
95
|
+
text: '#f1faee',
|
|
96
|
+
'inline-bg': 'rgba(168, 218, 220, 0.08)',
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
shadow: {
|
|
100
|
+
xs: '0 1px 2px rgba(0,0,0,0.3)',
|
|
101
|
+
sm: '0 1px 3px rgba(0,0,0,0.4), 0 1px 2px rgba(0,0,0,0.3)',
|
|
102
|
+
md: '0 4px 12px rgba(0,0,0,0.4), 0 1px 3px rgba(0,0,0,0.3)',
|
|
103
|
+
lg: '0 8px 24px rgba(0,0,0,0.5), 0 2px 6px rgba(0,0,0,0.3)',
|
|
104
|
+
},
|
|
105
|
+
syntax: {
|
|
106
|
+
keyword: '#f2cc8f',
|
|
107
|
+
function: '#a8dadc',
|
|
108
|
+
string: '#a8dadc',
|
|
109
|
+
constant: '#e8c07a',
|
|
110
|
+
comment: '#5a7a90',
|
|
111
|
+
punctuation: '#70b4c0',
|
|
112
|
+
variable: '#b8d6e2',
|
|
113
|
+
},
|
|
114
|
+
// All `rf-syntax-*` Shiki aliases (token-*, foreground) auto-derive
|
|
115
|
+
// from `syntax.*` and `color.text` above. `rf-syntax-background`
|
|
116
|
+
// is set explicitly because tideline uses a deeper navy for the
|
|
117
|
+
// Shiki bg (#0c162a) than the outer `color.code.bg` (#152238).
|
|
118
|
+
extra: {
|
|
119
|
+
'rf-color-inline-code-bg': 'rgba(168, 218, 220, 0.08)',
|
|
120
|
+
'rf-syntax-background': '#0c162a',
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
// Shiki aliases auto-derive from `syntax.*` and `color.{text,code.bg}`
|
|
125
|
+
// above. Only the legacy `rf-color-inline-code-bg` alias needs an
|
|
126
|
+
// explicit entry.
|
|
127
|
+
extra: {
|
|
128
|
+
'rf-color-inline-code-bg': '#f9ebcc',
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
export default tideline;
|
|
132
|
+
//# sourceMappingURL=tideline.js.map
|