@refrakt-md/lumina 0.8.0 → 0.8.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/base.css CHANGED
@@ -20,3 +20,7 @@
20
20
  @import './styles/layouts/on-this-page.css';
21
21
  @import './styles/layouts/search.css';
22
22
  @import './styles/layouts/version-switcher.css';
23
+ @import './styles/layouts/split.css';
24
+
25
+ /* Universal Rune Attributes */
26
+ @import './styles/base/attributes.css';
@@ -1184,6 +1184,11 @@
1184
1184
  "tag": "image",
1185
1185
  "selector": ".rf-feature__image",
1186
1186
  "source": "autoLabel"
1187
+ },
1188
+ "definitions": {
1189
+ "tag": "dl",
1190
+ "selector": ".rf-feature__definitions",
1191
+ "source": "autoLabel"
1187
1192
  }
1188
1193
  },
1189
1194
  "inlineStyles": {
@@ -1198,15 +1203,6 @@
1198
1203
  }
1199
1204
  }
1200
1205
  },
1201
- "FeatureDefinition": {
1202
- "block": "feature-definition",
1203
- "root": ".rf-feature-definition",
1204
- "dataRune": "feature-definition",
1205
- "parent": "Feature",
1206
- "childOrder": [
1207
- "{content}"
1208
- ]
1209
- },
1210
1206
  "Steps": {
1211
1207
  "block": "steps",
1212
1208
  "root": ".rf-steps",
package/html/index.ts ADDED
@@ -0,0 +1,28 @@
1
+ import type { HtmlTheme } from '@refrakt-md/html';
2
+ import manifest from '../manifest.json';
3
+ import { defaultLayout, docsLayout, blogArticleLayout } from '@refrakt-md/transform';
4
+
5
+ // Layout region metadata from the base theme manifest
6
+ const layoutRegions: Record<string, { regions: string[]; requiredRegions?: string[] }> = {
7
+ default: { regions: ['header', 'footer'] },
8
+ docs: { regions: ['header', 'nav', 'sidebar', 'footer'], requiredRegions: ['nav'] },
9
+ 'blog-article': { regions: ['header', 'sidebar', 'footer'] },
10
+ };
11
+
12
+ const layouts: Record<string, any> = {};
13
+ for (const [name, def] of Object.entries(manifest.layouts)) {
14
+ layouts[name] = { ...layoutRegions[name], ...def };
15
+ }
16
+
17
+ const mergedManifest = { ...manifest, layouts };
18
+
19
+ export { mergedManifest as manifest };
20
+
21
+ export const theme: HtmlTheme = {
22
+ manifest: mergedManifest as any,
23
+ layouts: {
24
+ default: defaultLayout,
25
+ docs: docsLayout,
26
+ 'blog-article': blogArticleLayout,
27
+ },
28
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@refrakt-md/lumina",
3
3
  "description": "Lumina theme for refrakt.md — design tokens, CSS, identity transform, and framework adapters",
4
- "version": "0.8.0",
4
+ "version": "0.8.1",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -28,6 +28,10 @@
28
28
  "svelte": "./svelte/index.ts",
29
29
  "default": "./svelte/index.ts"
30
30
  },
31
+ "./html": {
32
+ "types": "./html/index.ts",
33
+ "default": "./html/index.ts"
34
+ },
31
35
  "./styles/runes/*.css": "./styles/runes/*.css",
32
36
  "./svelte/tokens.css": "./svelte/tokens.css",
33
37
  "./svelte/manifest": "./svelte/manifest.json"
@@ -40,20 +44,22 @@
40
44
  "styles",
41
45
  "contracts",
42
46
  "manifest.json",
43
- "svelte"
47
+ "svelte",
48
+ "html"
44
49
  ],
45
50
  "scripts": {
46
51
  "build": "tsc"
47
52
  },
48
53
  "dependencies": {
49
- "@refrakt-md/runes": "0.8.0",
50
- "@refrakt-md/transform": "0.8.0",
51
- "@refrakt-md/types": "0.8.0",
52
- "@refrakt-md/svelte": "0.8.0"
54
+ "@refrakt-md/runes": "0.8.1",
55
+ "@refrakt-md/transform": "0.8.1",
56
+ "@refrakt-md/types": "0.8.1",
57
+ "@refrakt-md/svelte": "0.8.1"
53
58
  },
54
59
  "peerDependencies": {
55
60
  "svelte": "^5.0.0",
56
- "@sveltejs/kit": "^2.0.0"
61
+ "@sveltejs/kit": "^2.0.0",
62
+ "@refrakt-md/html": "0.8.1"
57
63
  },
58
64
  "devDependencies": {
59
65
  "postcss": "^8.4.0"
@@ -64,6 +70,9 @@
64
70
  },
65
71
  "@sveltejs/kit": {
66
72
  "optional": true
73
+ },
74
+ "@refrakt-md/html": {
75
+ "optional": true
67
76
  }
68
77
  }
69
78
  }
@@ -57,7 +57,7 @@
57
57
  .rf-feature[data-align="right"] h2 {
58
58
  text-align: right;
59
59
  }
60
- .rf-feature dl {
60
+ .rf-feature__definitions {
61
61
  display: grid;
62
62
  grid-template-columns: repeat(auto-fit, minmax(max(240px, calc((100% - 3rem) / 3)), 1fr));
63
63
  gap: 1.5rem;
@@ -74,40 +74,40 @@
74
74
  .rf-feature[data-layout="split-reverse"] h2 {
75
75
  text-align: left;
76
76
  }
77
- .rf-feature[data-layout="split"] dl,
78
- .rf-feature[data-layout="split-reverse"] dl {
77
+ .rf-feature[data-layout="split"] .rf-feature__definitions,
78
+ .rf-feature[data-layout="split-reverse"] .rf-feature__definitions {
79
79
  display: block;
80
80
  }
81
- .rf-feature[data-layout="split"] .rf-feature-definition,
82
- .rf-feature[data-layout="split-reverse"] .rf-feature-definition {
81
+ .rf-feature[data-layout="split"] .rf-feature__feature-item,
82
+ .rf-feature[data-layout="split-reverse"] .rf-feature__feature-item {
83
83
  border: none;
84
84
  background: none;
85
85
  padding: 0.75rem 0;
86
86
  }
87
- .rf-feature-definition {
87
+ .rf-feature__feature-item {
88
88
  padding: 1.75rem;
89
89
  border-radius: var(--rf-radius-md);
90
90
  border: 1px solid var(--rf-color-border);
91
91
  background: var(--rf-color-bg);
92
92
  }
93
- .rf-feature-definition dt {
93
+ .rf-feature__feature-item dt {
94
94
  font-weight: 650;
95
95
  font-size: 1.125rem;
96
96
  margin-bottom: 0.75rem;
97
97
  letter-spacing: -0.01em;
98
98
  color: var(--rf-color-text);
99
99
  }
100
- .rf-feature-definition dt:has(> .rf-icon) {
100
+ .rf-feature__feature-item dt:has(> .rf-icon) {
101
101
  display: flex;
102
102
  flex-direction: column;
103
103
  }
104
- .rf-feature-definition dt > .rf-icon {
104
+ .rf-feature__feature-item dt > .rf-icon {
105
105
  width: 1.5rem;
106
106
  height: 1.5rem;
107
107
  margin-bottom: 0.5rem;
108
108
  color: var(--rf-color-accent);
109
109
  }
110
- .rf-feature-definition dd {
110
+ .rf-feature__feature-item dd {
111
111
  margin: 0;
112
112
  color: var(--rf-color-muted);
113
113
  font-size: 0.9rem;
@@ -118,7 +118,7 @@
118
118
  .rf-feature--in-hero {
119
119
  padding-top: 0;
120
120
  }
121
- .rf-feature--in-hero .rf-feature-definition {
121
+ .rf-feature--in-hero .rf-feature__feature-item {
122
122
  background: transparent;
123
123
  border-color: rgba(255, 255, 255, 0.15);
124
124
  }
@@ -42,13 +42,7 @@
42
42
  .rf-tabs__image {
43
43
  margin-bottom: 1rem;
44
44
  }
45
- .rf-tabs__tabs,
46
- .rf-tabs__panels {
47
- list-style: none;
48
- padding: 0;
49
- margin: 0;
50
- }
51
- .rf-tabs__bar {
45
+ .rf-tabs__tabs {
52
46
  display: flex;
53
47
  background: var(--rf-color-surface);
54
48
  border-bottom: 1px solid var(--rf-color-border);
@@ -56,7 +50,11 @@
56
50
  overflow-y: hidden;
57
51
  -webkit-overflow-scrolling: touch;
58
52
  }
59
- .rf-tabs__button {
53
+ .rf-tabs__panels {
54
+ padding: 0;
55
+ margin: 0;
56
+ }
57
+ .rf-tab {
60
58
  flex: 0 0 auto;
61
59
  padding: 0.625rem 1.25rem;
62
60
  font-size: 0.85rem;
@@ -71,11 +69,11 @@
71
69
  margin-bottom: -1px;
72
70
  font-family: inherit;
73
71
  }
74
- .rf-tabs__button:hover {
72
+ .rf-tab:hover {
75
73
  color: var(--rf-color-text);
76
74
  background: var(--rf-color-surface-hover);
77
75
  }
78
- .rf-tabs__button--active {
76
+ .rf-tab--active {
79
77
  color: var(--rf-color-primary);
80
78
  border-bottom-color: var(--rf-color-primary);
81
79
  font-weight: 600;