@refrakt-md/lumina 0.9.1 → 0.9.3

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.
@@ -284,11 +284,6 @@
284
284
  "{content}"
285
285
  ],
286
286
  "modifiers": {
287
- "title": {
288
- "source": "meta",
289
- "classPattern": ".rf-budget--{value}",
290
- "dataAttribute": "data-title"
291
- },
292
287
  "currency": {
293
288
  "source": "meta",
294
289
  "default": "USD",
@@ -331,19 +326,11 @@
331
326
  "selector": ".rf-budget__header",
332
327
  "source": "structure",
333
328
  "conditionAny": [
334
- "title",
335
329
  "currency",
336
330
  "travelers",
337
331
  "duration"
338
332
  ]
339
333
  },
340
- "title": {
341
- "tag": "h2",
342
- "selector": ".rf-budget__title",
343
- "source": "structure",
344
- "parent": "header",
345
- "condition": "title"
346
- },
347
334
  "meta": {
348
335
  "tag": "div",
349
336
  "selector": ".rf-budget__meta",
@@ -2365,7 +2352,7 @@
2365
2352
  "root": ".rf-event",
2366
2353
  "dataRune": "event",
2367
2354
  "childOrder": [
2368
- "details",
2355
+ "header",
2369
2356
  "{content:content}"
2370
2357
  ],
2371
2358
  "modifiers": {
@@ -2391,42 +2378,34 @@
2391
2378
  }
2392
2379
  },
2393
2380
  "elements": {
2394
- "details": {
2395
- "tag": "div",
2396
- "selector": ".rf-event__details",
2397
- "source": "structure"
2398
- },
2399
- "detail": {
2381
+ "header": {
2400
2382
  "tag": "div",
2401
- "selector": ".rf-event__detail",
2402
- "source": "structure",
2403
- "parent": "details",
2404
- "condition": "date"
2405
- },
2406
- "label": {
2407
- "tag": "span",
2408
- "selector": ".rf-event__label",
2383
+ "selector": ".rf-event__header",
2409
2384
  "source": "structure",
2410
- "parent": "detail"
2385
+ "conditionAny": [
2386
+ "date",
2387
+ "location",
2388
+ "url"
2389
+ ]
2411
2390
  },
2412
- "value": {
2413
- "tag": "span",
2414
- "selector": ".rf-event__value",
2391
+ "meta": {
2392
+ "tag": "div",
2393
+ "selector": ".rf-event__meta",
2415
2394
  "source": "structure",
2416
- "parent": "detail"
2395
+ "parent": "header"
2417
2396
  },
2418
- "end-date": {
2397
+ "meta-item": {
2419
2398
  "tag": "span",
2420
- "selector": ".rf-event__end-date",
2399
+ "selector": ".rf-event__meta-item",
2421
2400
  "source": "structure",
2422
- "parent": "detail",
2423
- "condition": "endDate"
2401
+ "parent": "meta",
2402
+ "condition": "date"
2424
2403
  },
2425
2404
  "register": {
2426
2405
  "tag": "a",
2427
2406
  "selector": ".rf-event__register",
2428
2407
  "source": "structure",
2429
- "parent": "details",
2408
+ "parent": "header",
2430
2409
  "condition": "url"
2431
2410
  },
2432
2411
  "content": {
@@ -2873,10 +2852,10 @@
2873
2852
  "{content}"
2874
2853
  ],
2875
2854
  "modifiers": {
2876
- "title": {
2855
+ "titleText": {
2877
2856
  "source": "meta",
2878
2857
  "classPattern": ".rf-design-context--{value}",
2879
- "dataAttribute": "data-title"
2858
+ "dataAttribute": "data-title-text"
2880
2859
  }
2881
2860
  }
2882
2861
  },
package/dist/config.js CHANGED
@@ -6,74 +6,74 @@ export const luminaConfig = mergeThemeConfig(baseConfig, {
6
6
  tints: {
7
7
  base: {
8
8
  light: {
9
- background: '#ffffff',
10
- surface: '#f8fafc',
11
- primary: '#1a1a2e',
12
- secondary: '#64748b',
13
- accent: '#0ea5e9',
14
- border: '#e2e8f0',
9
+ background: 'var(--rf-color-bg)',
10
+ surface: 'var(--rf-color-surface)',
11
+ primary: 'var(--rf-color-text)',
12
+ secondary: 'var(--rf-color-muted)',
13
+ accent: 'var(--rf-color-primary)',
14
+ border: 'var(--rf-color-border)',
15
15
  },
16
16
  dark: {
17
- background: '#0c1222',
18
- surface: '#0f172a',
19
- primary: '#e2e8f0',
20
- secondary: '#94a3b8',
21
- accent: '#38bdf8',
22
- border: 'rgba(255, 255, 255, 0.1)',
17
+ background: 'var(--rf-color-bg)',
18
+ surface: 'var(--rf-color-surface)',
19
+ primary: 'var(--rf-color-text)',
20
+ secondary: 'var(--rf-color-muted)',
21
+ accent: 'var(--rf-color-primary)',
22
+ border: 'var(--rf-color-border)',
23
23
  },
24
24
  },
25
25
  subtle: {
26
26
  light: {
27
- background: '#f8f9fb',
28
- surface: '#f8fafc',
29
- primary: '#1a1a2e',
30
- secondary: '#64748b',
31
- accent: '#0ea5e9',
32
- border: '#e2e8f0',
27
+ background: 'var(--rf-color-surface)',
28
+ surface: 'var(--rf-color-surface-hover)',
29
+ primary: 'var(--rf-color-text)',
30
+ secondary: 'var(--rf-color-muted)',
31
+ accent: 'var(--rf-color-primary)',
32
+ border: 'var(--rf-color-border)',
33
33
  },
34
34
  dark: {
35
- background: '#111827',
36
- surface: '#0f172a',
37
- primary: '#e2e8f0',
38
- secondary: '#94a3b8',
39
- accent: '#38bdf8',
40
- border: 'rgba(255, 255, 255, 0.1)',
35
+ background: 'var(--rf-color-surface)',
36
+ surface: 'var(--rf-color-surface-hover)',
37
+ primary: 'var(--rf-color-text)',
38
+ secondary: 'var(--rf-color-muted)',
39
+ accent: 'var(--rf-color-primary)',
40
+ border: 'var(--rf-color-border)',
41
41
  },
42
42
  },
43
43
  warm: {
44
44
  light: {
45
- background: '#fdf6e3',
46
- primary: '#5c4a32',
47
- accent: '#c47d3b',
48
- border: '#e0d5c0',
45
+ background: 'var(--rf-color-surface-active)',
46
+ primary: 'var(--rf-color-text)',
47
+ accent: 'var(--rf-color-warning)',
48
+ border: 'var(--rf-color-border)',
49
49
  },
50
50
  dark: {
51
- background: '#2a2118',
52
- primary: '#e8d5b7',
53
- accent: '#e0a86e',
51
+ background: '#2a2018',
52
+ primary: 'var(--rf-color-text)',
53
+ accent: 'var(--rf-color-warning)',
54
54
  border: '#4a3f33',
55
55
  },
56
56
  },
57
57
  cool: {
58
58
  light: {
59
- background: '#f0f4ff',
60
- primary: '#1e3a5f',
61
- accent: '#3b82f6',
62
- border: '#c7d7f0',
59
+ background: 'var(--rf-color-info-bg)',
60
+ primary: 'var(--rf-color-text)',
61
+ accent: 'var(--rf-color-primary)',
62
+ border: 'var(--rf-color-info-border)',
63
63
  },
64
64
  dark: {
65
- background: '#0f1a2e',
66
- primary: '#c7d7f0',
67
- accent: '#60a5fa',
68
- border: '#1e3a5f',
65
+ background: 'var(--rf-color-primary-950)',
66
+ primary: 'var(--rf-color-primary-300)',
67
+ accent: 'var(--rf-color-primary)',
68
+ border: 'var(--rf-color-primary-700)',
69
69
  },
70
70
  },
71
71
  dark: {
72
72
  mode: 'dark',
73
73
  dark: {
74
- background: '#1a1a2e',
75
- primary: '#e0e0e0',
76
- accent: '#e94560',
74
+ background: 'var(--rf-color-primary-700)',
75
+ primary: 'var(--rf-color-primary-50)',
76
+ accent: 'var(--rf-color-danger)',
77
77
  },
78
78
  },
79
79
  },
@@ -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,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,SAAS;aACjB;YACD,IAAI,EAAE;gBACL,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,0BAA0B;aAClC;SACD;QACD,MAAM,EAAE;YACP,KAAK,EAAE;gBACN,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,SAAS;aACjB;YACD,IAAI,EAAE;gBACL,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,0BAA0B;aAClC;SACD;QACD,IAAI,EAAE;YACL,KAAK,EAAE;gBACN,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,SAAS;aACjB;YACD,IAAI,EAAE;gBACL,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,SAAS;aACjB;SACD;QACD,IAAI,EAAE;YACL,KAAK,EAAE;gBACN,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,SAAS;aACjB;YACD,IAAI,EAAE;gBACL,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,SAAS;aACjB;SACD;QACD,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE;gBACL,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,SAAS;aACjB;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"}
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,UAAU,EAAE,oBAAoB;gBAChC,OAAO,EAAE,yBAAyB;gBAClC,OAAO,EAAE,sBAAsB;gBAC/B,SAAS,EAAE,uBAAuB;gBAClC,MAAM,EAAE,yBAAyB;gBACjC,MAAM,EAAE,wBAAwB;aAChC;YACD,IAAI,EAAE;gBACL,UAAU,EAAE,oBAAoB;gBAChC,OAAO,EAAE,yBAAyB;gBAClC,OAAO,EAAE,sBAAsB;gBAC/B,SAAS,EAAE,uBAAuB;gBAClC,MAAM,EAAE,yBAAyB;gBACjC,MAAM,EAAE,wBAAwB;aAChC;SACD;QACD,MAAM,EAAE;YACP,KAAK,EAAE;gBACN,UAAU,EAAE,yBAAyB;gBACrC,OAAO,EAAE,+BAA+B;gBACxC,OAAO,EAAE,sBAAsB;gBAC/B,SAAS,EAAE,uBAAuB;gBAClC,MAAM,EAAE,yBAAyB;gBACjC,MAAM,EAAE,wBAAwB;aAChC;YACD,IAAI,EAAE;gBACL,UAAU,EAAE,yBAAyB;gBACrC,OAAO,EAAE,+BAA+B;gBACxC,OAAO,EAAE,sBAAsB;gBAC/B,SAAS,EAAE,uBAAuB;gBAClC,MAAM,EAAE,yBAAyB;gBACjC,MAAM,EAAE,wBAAwB;aAChC;SACD;QACD,IAAI,EAAE;YACL,KAAK,EAAE;gBACN,UAAU,EAAE,gCAAgC;gBAC5C,OAAO,EAAE,sBAAsB;gBAC/B,MAAM,EAAE,yBAAyB;gBACjC,MAAM,EAAE,wBAAwB;aAChC;YACD,IAAI,EAAE;gBACL,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,sBAAsB;gBAC/B,MAAM,EAAE,yBAAyB;gBACjC,MAAM,EAAE,SAAS;aACjB;SACD;QACD,IAAI,EAAE;YACL,KAAK,EAAE;gBACN,UAAU,EAAE,yBAAyB;gBACrC,OAAO,EAAE,sBAAsB;gBAC/B,MAAM,EAAE,yBAAyB;gBACjC,MAAM,EAAE,6BAA6B;aACrC;YACD,IAAI,EAAE;gBACL,UAAU,EAAE,6BAA6B;gBACzC,OAAO,EAAE,6BAA6B;gBACtC,MAAM,EAAE,yBAAyB;gBACjC,MAAM,EAAE,6BAA6B;aACrC;SACD;QACD,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE;gBACL,UAAU,EAAE,6BAA6B;gBACzC,OAAO,EAAE,4BAA4B;gBACrC,MAAM,EAAE,wBAAwB;aAChC;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,13 @@
1
+ import { defaultLayout, docsLayout, blogArticleLayout } from '@refrakt-md/transform';
2
+
3
+ /**
4
+ * Layout name -> LayoutConfig map.
5
+ *
6
+ * This is the single framework-agnostic entry point for Lumina's layouts,
7
+ * replacing the per-framework adapter files (ADR-009).
8
+ */
9
+ export const layouts = {
10
+ default: defaultLayout,
11
+ docs: docsLayout,
12
+ 'blog-article': blogArticleLayout,
13
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@refrakt-md/lumina",
3
- "description": "Lumina theme for refrakt.md — design tokens, CSS, identity transform, and framework adapters",
4
- "version": "0.9.1",
3
+ "description": "Lumina theme for refrakt.md — design tokens, CSS, identity transform, and layout configs",
4
+ "version": "0.9.3",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -23,18 +23,11 @@
23
23
  },
24
24
  "./manifest": "./manifest.json",
25
25
  "./contracts": "./contracts/structures.json",
26
- "./svelte": {
27
- "types": "./svelte/index.ts",
28
- "svelte": "./svelte/index.ts",
29
- "default": "./svelte/index.ts"
26
+ "./layouts": {
27
+ "types": "./layouts/index.ts",
28
+ "default": "./layouts/index.ts"
30
29
  },
31
- "./html": {
32
- "types": "./html/index.ts",
33
- "default": "./html/index.ts"
34
- },
35
- "./styles/runes/*.css": "./styles/runes/*.css",
36
- "./svelte/tokens.css": "./svelte/tokens.css",
37
- "./svelte/manifest": "./svelte/manifest.json"
30
+ "./styles/runes/*.css": "./styles/runes/*.css"
38
31
  },
39
32
  "files": [
40
33
  "dist",
@@ -44,35 +37,17 @@
44
37
  "styles",
45
38
  "contracts",
46
39
  "manifest.json",
47
- "svelte",
48
- "html"
40
+ "layouts"
49
41
  ],
50
42
  "scripts": {
51
43
  "build": "tsc"
52
44
  },
53
45
  "dependencies": {
54
- "@refrakt-md/runes": "0.9.1",
55
- "@refrakt-md/transform": "0.9.1",
56
- "@refrakt-md/types": "0.9.1",
57
- "@refrakt-md/svelte": "0.9.1"
58
- },
59
- "peerDependencies": {
60
- "svelte": "^5.0.0",
61
- "@sveltejs/kit": "^2.0.0",
62
- "@refrakt-md/html": "0.9.1"
46
+ "@refrakt-md/runes": "0.9.3",
47
+ "@refrakt-md/transform": "0.9.3",
48
+ "@refrakt-md/types": "0.9.3"
63
49
  },
64
50
  "devDependencies": {
65
51
  "postcss": "^8.4.0"
66
- },
67
- "peerDependenciesMeta": {
68
- "svelte": {
69
- "optional": true
70
- },
71
- "@sveltejs/kit": {
72
- "optional": true
73
- },
74
- "@refrakt-md/html": {
75
- "optional": true
76
- }
77
52
  }
78
53
  }
@@ -49,3 +49,25 @@
49
49
  [data-density="minimal"] [data-meta-rank="secondary"] {
50
50
  display: none;
51
51
  }
52
+
53
+ /* ─── Nested density scoping ─────────────────────────────────────── *
54
+ * Density rules use descendant selectors that leak into nested runes
55
+ * with their own density. These resets ensure each rune's density is
56
+ * self-contained — e.g. a full-density recipe inside a compact-density
57
+ * preview should not have its description truncated.
58
+ * ──────────────────────────────────────────────────────────────────── */
59
+
60
+ [data-density="compact"] [data-density="full"] [data-section="description"] {
61
+ display: block;
62
+ -webkit-line-clamp: unset;
63
+ -webkit-box-orient: initial;
64
+ overflow: visible;
65
+ }
66
+
67
+ [data-density="compact"] [data-density="full"] [data-meta-rank="secondary"],
68
+ [data-density="minimal"] [data-density="full"] [data-section="description"],
69
+ [data-density="minimal"] [data-density="full"] [data-section="body"],
70
+ [data-density="minimal"] [data-density="full"] [data-section="footer"],
71
+ [data-density="minimal"] [data-density="full"] [data-meta-rank="secondary"] {
72
+ display: revert;
73
+ }
@@ -9,13 +9,9 @@
9
9
 
10
10
  /* ─── Rank ─────────────────────────────────────────────────────────── */
11
11
 
12
- [data-meta-rank="primary"] {
13
- --meta-font-size: 0.8125rem;
14
- }
15
-
12
+ [data-meta-rank="primary"],
16
13
  [data-meta-rank="secondary"] {
17
- --meta-font-size: 0.75rem;
18
- opacity: 0.8;
14
+ --meta-font-size: 0.8125rem;
19
15
  }
20
16
 
21
17
  /* ─── Sentiment ────────────────────────────────────────────────────── */
@@ -36,7 +36,7 @@
36
36
 
37
37
  /* Scale title with density */
38
38
  [data-density="compact"] [data-section="title"] {
39
- font-size: 2.125rem;
39
+ font-size: 1.25rem;
40
40
  }
41
41
 
42
42
  [data-density="minimal"] [data-section="title"] {
@@ -31,11 +31,14 @@
31
31
  .rf-swatch,
32
32
  .rf-palette,
33
33
  .rf-typography,
34
+ .rf-spacing,
35
+ .rf-design-context,
34
36
  .rf-itinerary,
35
37
  .rf-symbol,
36
38
  .rf-changelog,
37
39
  .rf-api,
38
- .rf-howto {
40
+ .rf-howto,
41
+ .rf-form {
39
42
  background: var(--rf-color-surface);
40
43
  border-radius: var(--rf-radius-md);
41
44
  padding: var(--rune-padding, var(--rf-spacing-md));
@@ -49,14 +52,12 @@
49
52
  .rf-conversation,
50
53
  .rf-annotate,
51
54
  .rf-xref,
52
- .rf-diff,
53
55
  .rf-pullquote,
54
56
  .rf-textblock,
55
57
  .rf-nav,
56
58
  .rf-breadcrumb,
57
59
  .rf-toc,
58
- .rf-datatable,
59
- .rf-form {
60
+ .rf-datatable {
60
61
  padding: var(--rune-padding, var(--rf-spacing-sm)) 0;
61
62
  }
62
63
 
@@ -3,7 +3,7 @@ blockquote {
3
3
  position: relative;
4
4
  border-left: 3px solid var(--rf-color-primary);
5
5
  margin: 1.5rem 0;
6
- padding: 1rem 1.25rem 1rem 2.75rem;
6
+ padding: 1rem 1.25rem 1rem 3.25rem;
7
7
  color: var(--rf-color-muted);
8
8
  background: var(--rf-color-surface);
9
9
  border-radius: 0 var(--rf-radius-md) var(--rf-radius-md) 0;
@@ -1,3 +1,14 @@
1
+ /* Standalone code blocks in prose — the rf-codeblock wrapper (from Pre element
2
+ override) zeros the inner pre margin, so the wrapper itself carries spacing.
3
+ Inside codegroup the margin is removed by .rf-codegroup .rf-codeblock. */
4
+ .rf-codeblock {
5
+ margin: 1.5rem 0;
6
+ }
7
+
8
+ .rf-codeblock > pre {
9
+ margin: 0;
10
+ }
11
+
1
12
  /* Code wrapper — behavior-injected copy button for code blocks */
2
13
  .rf-code-wrapper {
3
14
  position: relative;
@@ -3,23 +3,29 @@
3
3
  overflow-x: auto;
4
4
  -webkit-overflow-scrolling: touch;
5
5
  margin: 1.5rem 0;
6
- border: 1px solid var(--rf-color-border);
7
- border-radius: var(--rf-radius-md);
8
6
  }
9
7
  .rf-table-wrapper table {
10
8
  margin: 0;
11
9
  border-collapse: collapse;
12
10
  width: 100%;
13
- min-width: 100%;
14
11
  }
15
12
  .rf-table-wrapper th {
16
- background: var(--rf-color-surface);
13
+ white-space: nowrap;
17
14
  }
18
- .rf-table-wrapper th:first-child {
19
- border-top-left-radius: var(--rf-radius-md);
15
+ .rf-table-wrapper td {
16
+ white-space: nowrap;
20
17
  }
21
- .rf-table-wrapper th:last-child {
22
- border-top-right-radius: var(--rf-radius-md);
18
+ .rf-table-wrapper td:last-child {
19
+ white-space: normal;
20
+ min-width: 20rem;
21
+ }
22
+ .rf-table-wrapper th:first-child,
23
+ .rf-table-wrapper td:first-child {
24
+ padding-left: 0;
25
+ }
26
+ .rf-table-wrapper th:last-child,
27
+ .rf-table-wrapper td:last-child {
28
+ padding-right: 0;
23
29
  }
24
30
  .rf-table-wrapper tr:last-child td {
25
31
  border-bottom: none;
package/styles/global.css CHANGED
@@ -113,7 +113,7 @@ th {
113
113
  text-align: left;
114
114
  font-weight: 600;
115
115
  padding: 0.625rem 1rem;
116
- border-bottom: 2px solid var(--rf-color-border);
116
+ border-bottom: 1px solid var(--rf-color-border);
117
117
  font-size: 0.8rem;
118
118
  text-transform: uppercase;
119
119
  letter-spacing: 0.04em;
@@ -25,6 +25,13 @@
25
25
  margin: 0;
26
26
  line-height: 1;
27
27
  }
28
+ .rf-header h1, .rf-header h2, .rf-header h3 {
29
+ margin: 0;
30
+ font-size: 1.2rem;
31
+ font-weight: 600;
32
+ letter-spacing: -0.02em;
33
+ line-height: 1;
34
+ }
28
35
  .rf-header a {
29
36
  display: inline-block;
30
37
  color: inherit;
@@ -1,73 +1,30 @@
1
1
  /* Api */
2
- .rf-api {
3
- border: 1px solid var(--rf-color-border);
4
- border-radius: var(--rf-radius-lg);
5
- overflow: hidden;
6
- }
7
2
  .rf-api__header {
8
- padding: 1rem 1.25rem;
9
- background: var(--rf-color-surface-hover);
10
- border-bottom: 1px solid var(--rf-color-border);
3
+ padding: 0.5rem 0;
11
4
  }
12
5
  .rf-api__method {
13
- font-weight: 700;
14
- font-size: 0.75rem;
15
- padding: 0.25rem 0.5rem;
16
- border-radius: var(--rf-radius-sm);
17
6
  font-family: var(--rf-font-mono);
18
7
  }
19
8
  .rf-api__path {
20
- font-family: var(--rf-font-mono);
21
- font-size: 0.9375rem;
22
- font-weight: 500;
23
- color: var(--rf-color-text);
9
+ background: none;
24
10
  }
25
11
  .rf-api__auth {
26
12
  margin-left: auto;
27
- font-size: 0.75rem;
28
- color: var(--rf-color-muted);
29
- background: var(--rf-color-surface-active);
30
- padding: 0.125rem 0.5rem;
31
- border-radius: var(--rf-radius-sm);
32
13
  }
33
- /* Method colors driven by data-method attribute from engine */
34
- [data-method="GET"] .rf-api__method { color: var(--rf-color-success); background: var(--rf-color-success-bg); }
35
- [data-method="POST"] .rf-api__method { color: var(--rf-color-info); background: var(--rf-color-info-bg); }
36
- [data-method="PUT"] .rf-api__method { color: var(--rf-color-warning); background: var(--rf-color-warning-bg); }
37
- [data-method="PATCH"] .rf-api__method { color: var(--rf-color-warning); background: var(--rf-color-warning-bg); }
38
- [data-method="DELETE"] .rf-api__method { color: var(--rf-color-danger); background: var(--rf-color-danger-bg); }
39
- [data-method="HEAD"] .rf-api__method { color: var(--rf-color-muted); background: var(--rf-color-surface); }
40
- [data-method="OPTIONS"] .rf-api__method { color: var(--rf-color-muted); background: var(--rf-color-surface); }
41
14
  .rf-api__body {
42
- padding: 1.25rem;
43
- }
44
- .rf-api__body table {
45
- width: 100%;
46
- border-collapse: collapse;
47
- margin: 1rem 0;
48
- }
49
- .rf-api__body th {
50
- text-align: left;
51
- padding: 0.5rem 0.75rem;
52
- font-size: 0.75rem;
53
- font-weight: 600;
54
- text-transform: uppercase;
55
- color: var(--rf-color-muted);
56
- border-bottom: 2px solid var(--rf-color-border);
57
- }
58
- .rf-api__body td {
59
- padding: 0.5rem 0.75rem;
60
- border-bottom: 1px solid var(--rf-color-border);
61
- font-size: 0.875rem;
15
+ padding: 0;
62
16
  }
63
17
  .rf-api__body pre {
64
18
  border-radius: var(--rf-radius-md);
65
19
  margin: 1rem 0;
66
20
  }
67
21
  .rf-api__body blockquote {
68
- border-left: 3px solid var(--rf-color-warning-border);
69
- background: var(--rf-color-warning-bg);
70
- padding: 0.75rem 1rem;
71
- border-radius: 0 var(--rf-radius-md) var(--rf-radius-md) 0;
72
- margin: 1rem 0;
22
+ border-left: 3px solid var(--rf-color-border);
23
+ padding: 0.5rem 1rem;
24
+ margin: 0.75rem 0;
25
+ border-radius: 0 var(--rf-radius-sm) var(--rf-radius-sm) 0;
26
+ font-size: 0.9375rem;
27
+ }
28
+ .rf-api__body blockquote::before {
29
+ content: none;
73
30
  }
@@ -1,9 +1,9 @@
1
1
  /* Bond */
2
2
  .rf-bond {
3
3
  display: flex;
4
+ flex-wrap: wrap;
4
5
  align-items: center;
5
- gap: 1rem;
6
- margin: 1rem 0;
6
+ gap: 0.75rem;
7
7
  }
8
8
  .rf-bond > span[property="from"],
9
9
  .rf-bond > span[property="to"] {
@@ -43,7 +43,7 @@
43
43
  border-right: 6px solid var(--rf-color-border);
44
44
  }
45
45
  .rf-bond__body {
46
- flex: 1;
46
+ width: 100%;
47
47
  font-size: 0.875rem;
48
48
  color: var(--rf-color-muted);
49
49
  }
@@ -1,15 +1,29 @@
1
1
  /* Budget */
2
- .rf-budget__header {
2
+ .rf-budget__meta {
3
3
  display: flex;
4
- flex-direction: column;
5
- align-items: flex-start;
4
+ flex-wrap: wrap;
5
+ align-items: center;
6
+ gap: 0.5rem;
7
+ }
8
+ .rf-budget__preamble {
6
9
  margin-bottom: 1.5rem;
7
10
  }
8
- .rf-budget__title {
9
- margin: 0 0 0.5rem;
10
- font-size: 1.25rem;
11
- font-weight: 700;
12
- color: var(--rf-color-text);
11
+ .rf-budget .rf-budget__eyebrow {
12
+ font-size: 0.8rem;
13
+ font-weight: 600;
14
+ letter-spacing: 0.06em;
15
+ text-transform: uppercase;
16
+ color: var(--rf-color-primary);
17
+ margin: 0 0 0.375rem;
18
+ }
19
+ .rf-budget__headline {
20
+ margin-top: 0;
21
+ margin-bottom: 0.25rem;
22
+ }
23
+ .rf-budget .rf-budget__blurb {
24
+ color: var(--rf-color-muted);
25
+ margin-bottom: 0;
26
+ max-width: 40rem;
13
27
  }
14
28
 
15
29
  /* Categories */
@@ -2,6 +2,7 @@
2
2
  .rf-chart {
3
3
  border-radius: var(--rf-radius-lg);
4
4
  padding: 1.5rem;
5
+ margin: 0;
5
6
  }
6
7
  .rf-chart__title {
7
8
  font-weight: 600;