@refrakt-md/lumina 0.12.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/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 +17 -6
- package/styles/dimensions/surfaces.css +4 -2
- package/styles/global.css +4 -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/hint.css +5 -9
- package/styles/runes/nav.css +330 -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,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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tideline.js","sourceRoot":"","sources":["../../src/presets/tideline.ts"],"names":[],"mappings":"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"}
|
package/dist/tokens.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ThemeTokensConfig } from '@refrakt-md/types';
|
|
2
|
+
/**
|
|
3
|
+
* Lumina's design tokens — the new **neutral default** palette landing in
|
|
4
|
+
* v0.14.0 per SPEC-051. Warm-neutral surface, monochrome primary, the
|
|
5
|
+
* "quiet spectrum walk" syntax palette (teal / violet / rust / ochre /
|
|
6
|
+
* sage), and the four muted-earthy status colours.
|
|
7
|
+
*
|
|
8
|
+
* This is the *source of truth* for Lumina's runtime CSS values; the
|
|
9
|
+
* hand-authored `tokens/base.css` and `tokens/dark.css` mirror it
|
|
10
|
+
* verbatim and a coverage test keeps the two in lockstep.
|
|
11
|
+
*
|
|
12
|
+
* Sites that want the previous cream-and-navy appearance opt into the
|
|
13
|
+
* `tideline` preset shipping alongside this default (see
|
|
14
|
+
* `@refrakt-md/lumina/presets/tideline` once Chunk 7 lands).
|
|
15
|
+
*
|
|
16
|
+
* Sites that want Japanese-garden syntax colours on top of this neutral
|
|
17
|
+
* chrome opt into the `niwaki` preset (Chunk 7).
|
|
18
|
+
*/
|
|
19
|
+
export declare const luminaTokens: ThemeTokensConfig;
|
|
20
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,YAAY,EAAE,iBAiL1B,CAAC"}
|