@refrakt-md/lumina 0.4.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.
Files changed (98) hide show
  1. package/contracts/structures.json +5 -0
  2. package/dist/config.d.ts +4 -0
  3. package/dist/config.d.ts.map +1 -0
  4. package/dist/config.js +238 -0
  5. package/dist/config.js.map +1 -0
  6. package/dist/lib/engine.d.ts +13 -0
  7. package/dist/lib/engine.d.ts.map +1 -0
  8. package/dist/lib/engine.js +218 -0
  9. package/dist/lib/engine.js.map +1 -0
  10. package/dist/lib/helpers.d.ts +14 -0
  11. package/dist/lib/helpers.d.ts.map +1 -0
  12. package/dist/lib/helpers.js +26 -0
  13. package/dist/lib/helpers.js.map +1 -0
  14. package/dist/lib/types.d.ts +74 -0
  15. package/dist/lib/types.d.ts.map +1 -0
  16. package/dist/lib/types.js +2 -0
  17. package/dist/lib/types.js.map +1 -0
  18. package/dist/transform.d.ts +5 -0
  19. package/dist/transform.d.ts.map +1 -0
  20. package/dist/transform.js +7 -0
  21. package/dist/transform.js.map +1 -0
  22. package/index.css +57 -0
  23. package/manifest.json +13 -0
  24. package/package.json +62 -0
  25. package/styles/elements/blockquote.css +22 -0
  26. package/styles/elements/table.css +26 -0
  27. package/styles/global.css +138 -0
  28. package/styles/layouts/default.css +45 -0
  29. package/styles/layouts/docs.css +94 -0
  30. package/styles/runes/accordion.css +55 -0
  31. package/styles/runes/annotate.css +87 -0
  32. package/styles/runes/api.css +77 -0
  33. package/styles/runes/bento.css +48 -0
  34. package/styles/runes/breadcrumb.css +46 -0
  35. package/styles/runes/cast.css +56 -0
  36. package/styles/runes/changelog.css +53 -0
  37. package/styles/runes/chart.css +33 -0
  38. package/styles/runes/codegroup.css +72 -0
  39. package/styles/runes/compare.css +41 -0
  40. package/styles/runes/comparison.css +211 -0
  41. package/styles/runes/conversation.css +54 -0
  42. package/styles/runes/cta.css +87 -0
  43. package/styles/runes/datatable.css +112 -0
  44. package/styles/runes/details.css +44 -0
  45. package/styles/runes/diagram.css +27 -0
  46. package/styles/runes/diff.css +74 -0
  47. package/styles/runes/embed.css +32 -0
  48. package/styles/runes/event.css +57 -0
  49. package/styles/runes/feature.css +67 -0
  50. package/styles/runes/figure.css +24 -0
  51. package/styles/runes/form.css +184 -0
  52. package/styles/runes/grid.css +13 -0
  53. package/styles/runes/hero.css +102 -0
  54. package/styles/runes/hint.css +97 -0
  55. package/styles/runes/howto.css +37 -0
  56. package/styles/runes/nav.css +50 -0
  57. package/styles/runes/organization.css +26 -0
  58. package/styles/runes/page-section.css +20 -0
  59. package/styles/runes/pricing.css +109 -0
  60. package/styles/runes/recipe.css +47 -0
  61. package/styles/runes/reveal.css +55 -0
  62. package/styles/runes/sidenote.css +28 -0
  63. package/styles/runes/steps.css +59 -0
  64. package/styles/runes/storyboard.css +65 -0
  65. package/styles/runes/tabs.css +50 -0
  66. package/styles/runes/testimonial.css +59 -0
  67. package/styles/runes/timeline.css +67 -0
  68. package/styles/runes/toc.css +43 -0
  69. package/sveltekit/components/Accordion.svelte +26 -0
  70. package/sveltekit/components/Bento.svelte +50 -0
  71. package/sveltekit/components/Chart.svelte +121 -0
  72. package/sveltekit/components/CodeGroup.svelte +88 -0
  73. package/sveltekit/components/Comparison.svelte +209 -0
  74. package/sveltekit/components/DataTable.svelte +154 -0
  75. package/sveltekit/components/Details.svelte +23 -0
  76. package/sveltekit/components/Diagram.svelte +45 -0
  77. package/sveltekit/components/Embed.svelte +36 -0
  78. package/sveltekit/components/Form.svelte +194 -0
  79. package/sveltekit/components/Grid.svelte +42 -0
  80. package/sveltekit/components/Nav.svelte +62 -0
  81. package/sveltekit/components/Pricing.svelte +20 -0
  82. package/sveltekit/components/Reveal.svelte +62 -0
  83. package/sveltekit/components/Storyboard.svelte +41 -0
  84. package/sveltekit/components/Tabs.svelte +75 -0
  85. package/sveltekit/components/Testimonial.svelte +26 -0
  86. package/sveltekit/elements/Blockquote.svelte +37 -0
  87. package/sveltekit/elements/Pre.svelte +77 -0
  88. package/sveltekit/elements/Table.svelte +40 -0
  89. package/sveltekit/elements.ts +11 -0
  90. package/sveltekit/index.ts +32 -0
  91. package/sveltekit/layouts/BlogLayout.svelte +382 -0
  92. package/sveltekit/layouts/DefaultLayout.svelte +70 -0
  93. package/sveltekit/layouts/DocsLayout.svelte +133 -0
  94. package/sveltekit/manifest.json +51 -0
  95. package/sveltekit/registry.ts +59 -0
  96. package/sveltekit/tokens.css +71 -0
  97. package/tokens/base.css +78 -0
  98. package/tokens/dark.css +102 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,KAAK,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,QAAQ,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,EAAE,CAAC;AAE/F,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IAC1B,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IAEd,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAC1B,uCAAuC;QACvC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC;QAC7B,iCAAiC;QACjC,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IAEH,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAE3C,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC,6DAA6D;IAC7D,cAAc,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED,MAAM,WAAW,cAAc;IAC9B,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC;IACvC,sCAAsC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,2DAA2D;IAC3D,SAAS,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;IACpD,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC3B,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IAEf,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IAEpB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAE9C,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAClC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export { createTransform } from '@refrakt-md/transform';
2
+ export type { ThemeConfig, RuneConfig, SerializedTag, RendererNode } from '@refrakt-md/transform';
3
+ /** Lumina identity transform — adds BEM classes, consumes meta tags, enhances structure */
4
+ export declare const identityTransform: (tree: import("@refrakt-md/transform").RendererNode) => import("@refrakt-md/transform").RendererNode;
5
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAElG,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB,sGAAgC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { createTransform } from '@refrakt-md/transform';
2
+ import { luminaConfig } from './config.js';
3
+ // Re-export everything from @refrakt-md/transform for backward compat
4
+ export { createTransform } from '@refrakt-md/transform';
5
+ /** Lumina identity transform — adds BEM classes, consumes meta tags, enhances structure */
6
+ export const identityTransform = createTransform(luminaConfig);
7
+ //# sourceMappingURL=transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,sEAAsE;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC"}
package/index.css ADDED
@@ -0,0 +1,57 @@
1
+ /* Lumina Theme Identity — CSS Barrel */
2
+
3
+ /* Design Tokens */
4
+ @import './tokens/base.css';
5
+ @import './tokens/dark.css';
6
+
7
+ /* Global Styles */
8
+ @import './styles/global.css';
9
+
10
+ /* Element Overrides */
11
+ @import './styles/elements/table.css';
12
+ @import './styles/elements/blockquote.css';
13
+
14
+ /* Layouts */
15
+ @import './styles/layouts/default.css';
16
+ @import './styles/layouts/docs.css';
17
+
18
+ /* Runes */
19
+ @import './styles/runes/accordion.css';
20
+ @import './styles/runes/annotate.css';
21
+ @import './styles/runes/api.css';
22
+ @import './styles/runes/bento.css';
23
+ @import './styles/runes/breadcrumb.css';
24
+ @import './styles/runes/cast.css';
25
+ @import './styles/runes/changelog.css';
26
+ @import './styles/runes/chart.css';
27
+ @import './styles/runes/compare.css';
28
+ @import './styles/runes/comparison.css';
29
+ @import './styles/runes/conversation.css';
30
+ @import './styles/runes/cta.css';
31
+ @import './styles/runes/datatable.css';
32
+ @import './styles/runes/details.css';
33
+ @import './styles/runes/diagram.css';
34
+ @import './styles/runes/diff.css';
35
+ @import './styles/runes/codegroup.css';
36
+ @import './styles/runes/embed.css';
37
+ @import './styles/runes/event.css';
38
+ @import './styles/runes/feature.css';
39
+ @import './styles/runes/figure.css';
40
+ @import './styles/runes/form.css';
41
+ @import './styles/runes/grid.css';
42
+ @import './styles/runes/hero.css';
43
+ @import './styles/runes/hint.css';
44
+ @import './styles/runes/howto.css';
45
+ @import './styles/runes/nav.css';
46
+ @import './styles/runes/organization.css';
47
+ @import './styles/runes/page-section.css';
48
+ @import './styles/runes/pricing.css';
49
+ @import './styles/runes/recipe.css';
50
+ @import './styles/runes/reveal.css';
51
+ @import './styles/runes/sidenote.css';
52
+ @import './styles/runes/steps.css';
53
+ @import './styles/runes/storyboard.css';
54
+ @import './styles/runes/tabs.css';
55
+ @import './styles/runes/testimonial.css';
56
+ @import './styles/runes/timeline.css';
57
+ @import './styles/runes/toc.css';
package/manifest.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "Lumina",
3
+ "description": "A clean, light documentation theme for refrakt.md",
4
+ "version": "0.3.0",
5
+ "author": "refrakt.md",
6
+ "prefix": "rf",
7
+ "tokenPrefix": "--rf",
8
+ "darkMode": {
9
+ "attribute": "data-theme",
10
+ "values": { "dark": "dark", "light": "light" },
11
+ "systemPreference": true
12
+ }
13
+ }
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@refrakt-md/lumina",
3
+ "description": "Lumina theme for refrakt.md — design tokens, CSS, identity transform, and framework adapters",
4
+ "version": "0.4.0",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/refrakt-md/refrakt.git",
10
+ "directory": "packages/lumina"
11
+ },
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "main": "dist/transform.js",
16
+ "types": "dist/transform.d.ts",
17
+ "exports": {
18
+ ".": "./index.css",
19
+ "./transform": {
20
+ "types": "./dist/transform.d.ts",
21
+ "default": "./dist/transform.js"
22
+ },
23
+ "./manifest": "./manifest.json",
24
+ "./contracts": "./contracts/structures.json",
25
+ "./sveltekit": {
26
+ "types": "./sveltekit/index.ts",
27
+ "svelte": "./sveltekit/index.ts",
28
+ "default": "./sveltekit/index.ts"
29
+ },
30
+ "./sveltekit/tokens.css": "./sveltekit/tokens.css",
31
+ "./sveltekit/manifest": "./sveltekit/manifest.json"
32
+ },
33
+ "files": [
34
+ "dist",
35
+ "index.css",
36
+ "tokens",
37
+ "styles",
38
+ "contracts",
39
+ "manifest.json",
40
+ "sveltekit"
41
+ ],
42
+ "scripts": {
43
+ "build": "tsc"
44
+ },
45
+ "dependencies": {
46
+ "@refrakt-md/transform": "0.4.0",
47
+ "@refrakt-md/types": "0.4.0",
48
+ "@refrakt-md/svelte": "0.4.0"
49
+ },
50
+ "peerDependencies": {
51
+ "svelte": "^5.0.0",
52
+ "@sveltejs/kit": "^2.0.0"
53
+ },
54
+ "peerDependenciesMeta": {
55
+ "svelte": {
56
+ "optional": true
57
+ },
58
+ "@sveltejs/kit": {
59
+ "optional": true
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,22 @@
1
+ /* Blockquote */
2
+ .rf-blockquote {
3
+ position: relative;
4
+ border-left: 3px solid var(--rf-color-primary);
5
+ margin: 1.5rem 0;
6
+ padding: 1rem 1.25rem 1rem 2.75rem;
7
+ color: var(--rf-color-muted);
8
+ background: var(--rf-color-surface);
9
+ border-radius: 0 var(--rf-radius-md) var(--rf-radius-md) 0;
10
+ }
11
+ .rf-blockquote__mark {
12
+ position: absolute;
13
+ left: 0.75rem;
14
+ top: 1rem;
15
+ width: 18px;
16
+ height: 18px;
17
+ color: var(--rf-color-primary);
18
+ opacity: 0.4;
19
+ }
20
+ .rf-blockquote p:last-child {
21
+ margin-bottom: 0;
22
+ }
@@ -0,0 +1,26 @@
1
+ /* Table wrapper */
2
+ .rf-table-wrapper {
3
+ overflow-x: auto;
4
+ -webkit-overflow-scrolling: touch;
5
+ margin: 1.5rem 0;
6
+ border: 1px solid var(--rf-color-border);
7
+ border-radius: var(--rf-radius-md);
8
+ }
9
+ .rf-table-wrapper table {
10
+ margin: 0;
11
+ border-collapse: collapse;
12
+ width: 100%;
13
+ min-width: 100%;
14
+ }
15
+ .rf-table-wrapper th {
16
+ background: var(--rf-color-surface);
17
+ }
18
+ .rf-table-wrapper th:first-child {
19
+ border-top-left-radius: var(--rf-radius-md);
20
+ }
21
+ .rf-table-wrapper th:last-child {
22
+ border-top-right-radius: var(--rf-radius-md);
23
+ }
24
+ .rf-table-wrapper tr:last-child td {
25
+ border-bottom: none;
26
+ }
@@ -0,0 +1,138 @@
1
+ /* Lumina Theme — Global Base Styles */
2
+
3
+ /* Reset */
4
+ *, *::before, *::after {
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ html {
9
+ font-family: var(--rf-font-sans);
10
+ color: var(--rf-color-text);
11
+ background: var(--rf-color-bg);
12
+ line-height: 1.7;
13
+ -webkit-font-smoothing: antialiased;
14
+ -moz-osx-font-smoothing: grayscale;
15
+ transition: background-color 200ms ease, color 200ms ease;
16
+ }
17
+
18
+ body {
19
+ margin: 0;
20
+ }
21
+
22
+ h1, h2, h3, h4, h5, h6 {
23
+ line-height: 1.25;
24
+ margin-top: 2em;
25
+ margin-bottom: 0.5em;
26
+ font-weight: 650;
27
+ letter-spacing: -0.015em;
28
+ }
29
+
30
+ h1 { font-size: 2rem; font-weight: 700; letter-spacing: -0.025em; }
31
+ h2 { font-size: 1.5rem; }
32
+ h3 { font-size: 1.25rem; }
33
+ h4 { font-size: 1.1rem; }
34
+
35
+ p {
36
+ margin-top: 0;
37
+ margin-bottom: 1rem;
38
+ }
39
+
40
+ a {
41
+ color: var(--rf-color-primary);
42
+ text-decoration: none;
43
+ transition: color 150ms ease;
44
+ }
45
+ a:hover {
46
+ color: var(--rf-color-primary-hover);
47
+ text-decoration: underline;
48
+ }
49
+
50
+ strong { font-weight: 600; }
51
+
52
+ code {
53
+ font-family: var(--rf-font-mono);
54
+ font-size: 0.875em;
55
+ background: var(--rf-color-inline-code-bg);
56
+ padding: 0.15rem 0.4rem;
57
+ border-radius: var(--rf-radius-sm);
58
+ font-variant-ligatures: none;
59
+ }
60
+
61
+ pre {
62
+ background: var(--rf-color-code-bg);
63
+ color: var(--rf-color-code-text);
64
+ padding: 1.25rem 1.5rem;
65
+ border-radius: var(--rf-radius-md);
66
+ overflow-x: auto;
67
+ margin: 1.5rem 0;
68
+ font-size: 0.875rem;
69
+ line-height: 1.7;
70
+ border: 1px solid var(--rf-color-border);
71
+ }
72
+
73
+ pre code {
74
+ background: none;
75
+ padding: 0;
76
+ font-size: inherit;
77
+ border-radius: 0;
78
+ }
79
+
80
+ img {
81
+ max-width: 100%;
82
+ height: auto;
83
+ }
84
+
85
+ hr {
86
+ border: none;
87
+ border-top: 1px solid var(--rf-color-border);
88
+ margin: 2rem 0;
89
+ }
90
+
91
+ ul, ol {
92
+ padding-left: 1.5rem;
93
+ margin-top: 0;
94
+ margin-bottom: 1rem;
95
+ }
96
+
97
+ li {
98
+ margin-bottom: 0.25rem;
99
+ }
100
+
101
+ li > p {
102
+ margin-bottom: 0.5rem;
103
+ }
104
+
105
+ blockquote {
106
+ border-left: 3px solid var(--rf-color-border);
107
+ margin: 1.5rem 0;
108
+ padding: 0.5rem 1rem;
109
+ color: var(--rf-color-muted);
110
+ }
111
+
112
+ table {
113
+ width: 100%;
114
+ border-collapse: collapse;
115
+ margin: 1.5rem 0;
116
+ font-size: 0.9rem;
117
+ }
118
+
119
+ th {
120
+ text-align: left;
121
+ font-weight: 600;
122
+ padding: 0.625rem 1rem;
123
+ border-bottom: 2px solid var(--rf-color-border);
124
+ font-size: 0.8rem;
125
+ text-transform: uppercase;
126
+ letter-spacing: 0.04em;
127
+ color: var(--rf-color-muted);
128
+ }
129
+
130
+ td {
131
+ padding: 0.625rem 1rem;
132
+ border-bottom: 1px solid var(--rf-color-border);
133
+ }
134
+
135
+ meta {
136
+ display: none;
137
+ }
138
+
@@ -0,0 +1,45 @@
1
+ /* Default layout */
2
+ .rf-header {
3
+ border-bottom: 1px solid var(--rf-color-border);
4
+ }
5
+ .rf-header__inner {
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: space-between;
9
+ padding: 0.875rem 1.5rem;
10
+ }
11
+ .rf-header p {
12
+ margin: 0;
13
+ line-height: 1;
14
+ }
15
+ .rf-header a {
16
+ display: inline-block;
17
+ color: inherit;
18
+ text-decoration: none;
19
+ }
20
+ .rf-header a:hover {
21
+ text-decoration: none;
22
+ }
23
+ .rf-header img {
24
+ display: block;
25
+ height: 1.5rem;
26
+ width: auto;
27
+ }
28
+ .rf-header__inner p:last-child:not(:first-child) {
29
+ font-size: 0.85rem;
30
+ }
31
+ .rf-header__inner p:last-child:not(:first-child) a {
32
+ margin-left: 1.5rem;
33
+ color: var(--rf-color-muted);
34
+ }
35
+ .rf-header__inner p:last-child:not(:first-child) a:hover {
36
+ color: var(--rf-color-text);
37
+ }
38
+ .rf-page-content {
39
+ padding-top: 2.5rem;
40
+ padding-bottom: 4rem;
41
+ max-width: 64rem;
42
+ margin: 0 auto;
43
+ padding-left: 1.5rem;
44
+ padding-right: 1.5rem;
45
+ }
@@ -0,0 +1,94 @@
1
+ /* Docs layout */
2
+ .rf-docs-header {
3
+ position: fixed;
4
+ top: 0;
5
+ left: 0;
6
+ right: 0;
7
+ z-index: 10;
8
+ background: var(--rf-color-bg);
9
+ border-bottom: 1px solid var(--rf-color-border);
10
+ }
11
+ .rf-docs-header__inner {
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: space-between;
15
+ padding: 0.875rem 1.5rem;
16
+ }
17
+ .rf-docs-header p {
18
+ margin: 0;
19
+ line-height: 1;
20
+ }
21
+ .rf-docs-header a {
22
+ display: inline-block;
23
+ color: inherit;
24
+ text-decoration: none;
25
+ }
26
+ .rf-docs-header a:hover {
27
+ text-decoration: none;
28
+ }
29
+ .rf-docs-header img {
30
+ display: block;
31
+ height: 1.5rem;
32
+ width: auto;
33
+ }
34
+ .rf-docs-header__inner p:last-child:not(:first-child) {
35
+ font-size: 0.85rem;
36
+ }
37
+ .rf-docs-header__inner p:last-child:not(:first-child) a {
38
+ margin-left: 1.5rem;
39
+ color: var(--rf-color-muted);
40
+ }
41
+ .rf-docs-header__inner p:last-child:not(:first-child) a:hover {
42
+ color: var(--rf-color-text);
43
+ }
44
+ /* Sidebar */
45
+ .rf-docs-sidebar {
46
+ position: fixed;
47
+ left: 0;
48
+ top: 3.375rem;
49
+ bottom: 0;
50
+ width: 240px;
51
+ overflow-y: auto;
52
+ padding: 1.5rem;
53
+ border-right: 1px solid var(--rf-color-border);
54
+ background: var(--rf-color-bg);
55
+ z-index: 5;
56
+ }
57
+ .rf-docs-sidebar::-webkit-scrollbar {
58
+ width: 0;
59
+ }
60
+ /* Content area */
61
+ .rf-docs-content {
62
+ padding-top: 5rem;
63
+ padding-bottom: 4rem;
64
+ }
65
+ .rf-docs-content--has-nav {
66
+ margin-left: 240px;
67
+ }
68
+ .rf-docs-content__inner {
69
+ max-width: 60rem;
70
+ margin: 0 auto;
71
+ padding: 0 2.5rem;
72
+ }
73
+ /* Mobile */
74
+ @media (max-width: 768px) {
75
+ .rf-docs-header {
76
+ position: static;
77
+ }
78
+ .rf-docs-sidebar {
79
+ position: static;
80
+ width: auto;
81
+ border-right: none;
82
+ border-bottom: 1px solid var(--rf-color-border);
83
+ padding: 1rem 1.5rem;
84
+ }
85
+ .rf-docs-content {
86
+ padding-top: 2rem;
87
+ }
88
+ .rf-docs-content--has-nav {
89
+ margin-left: 0;
90
+ }
91
+ .rf-docs-content__inner {
92
+ padding: 0 1.5rem;
93
+ }
94
+ }
@@ -0,0 +1,55 @@
1
+ /* Accordion */
2
+ .rf-accordion {
3
+ border: 1px solid var(--rf-color-border);
4
+ border-radius: var(--rf-radius-md);
5
+ overflow: hidden;
6
+ margin: 1.5rem 0;
7
+ }
8
+ .rf-accordion__items {
9
+ display: contents;
10
+ }
11
+ .rf-accordion-item {
12
+ border-bottom: 1px solid var(--rf-color-border);
13
+ }
14
+ .rf-accordion-item:last-child {
15
+ border-bottom: none;
16
+ }
17
+ .rf-accordion-item__header {
18
+ display: flex;
19
+ align-items: center;
20
+ justify-content: space-between;
21
+ padding: 0.875rem 1.25rem;
22
+ font-weight: 600;
23
+ font-size: 0.95rem;
24
+ cursor: pointer;
25
+ user-select: none;
26
+ transition: background-color 200ms ease;
27
+ list-style: none;
28
+ }
29
+ .rf-accordion-item__header::-webkit-details-marker { display: none; }
30
+ .rf-accordion-item__header::marker { display: none; content: ''; }
31
+ .rf-accordion-item__header:hover {
32
+ background: var(--rf-color-surface);
33
+ }
34
+ .rf-accordion-item__header::after {
35
+ content: '▾';
36
+ flex-shrink: 0;
37
+ color: var(--rf-color-muted);
38
+ transition: transform 200ms ease;
39
+ }
40
+ .rf-accordion-item[open] .rf-accordion-item__header::after {
41
+ transform: rotate(180deg);
42
+ }
43
+ .rf-accordion-item__title {
44
+ flex: 1;
45
+ min-width: 0;
46
+ }
47
+ .rf-accordion-item__body {
48
+ padding: 0 1.25rem 1rem;
49
+ font-size: 0.925rem;
50
+ line-height: 1.65;
51
+ color: var(--rf-color-muted);
52
+ }
53
+ .rf-accordion-item__body p:last-child {
54
+ margin-bottom: 0;
55
+ }
@@ -0,0 +1,87 @@
1
+ /* Annotate */
2
+ .rf-annotate {
3
+ margin: 1.5rem 0;
4
+ }
5
+ .rf-annotate__body {
6
+ display: contents;
7
+ }
8
+ /* Margin style */
9
+ .rf-annotate--margin {
10
+ position: relative;
11
+ }
12
+ .rf-annotate--margin .rf-annotate-note {
13
+ float: right;
14
+ clear: right;
15
+ width: 40%;
16
+ margin: 0 -44% 0.5rem 1rem;
17
+ padding: 0.75rem 1rem;
18
+ font-size: 0.8125rem;
19
+ color: var(--rf-color-muted);
20
+ border-left: 2px solid var(--rf-color-border);
21
+ }
22
+ /* Inline style */
23
+ .rf-annotate--inline .rf-annotate-note {
24
+ margin: 0.5rem 0 1rem;
25
+ padding: 0.75rem 1rem;
26
+ font-size: 0.875rem;
27
+ color: var(--rf-color-muted);
28
+ background: var(--rf-color-surface);
29
+ border-radius: var(--rf-radius-md);
30
+ border-left: 3px solid var(--rf-color-primary);
31
+ }
32
+ /* Tooltip style */
33
+ .rf-annotate--tooltip .rf-annotate-note {
34
+ display: inline-block;
35
+ position: relative;
36
+ margin: 0 0.25rem;
37
+ padding: 0;
38
+ font-size: 0;
39
+ vertical-align: super;
40
+ }
41
+ .rf-annotate--tooltip .rf-annotate-note::before {
42
+ content: '?';
43
+ display: inline-flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+ width: 1rem;
47
+ height: 1rem;
48
+ font-size: 0.625rem;
49
+ font-weight: 700;
50
+ color: var(--rf-color-primary);
51
+ border: 1px solid var(--rf-color-primary);
52
+ border-radius: var(--rf-radius-full, 50%);
53
+ cursor: help;
54
+ }
55
+ .rf-annotate--tooltip .rf-annotate-note__body {
56
+ display: none;
57
+ position: absolute;
58
+ bottom: 100%;
59
+ left: 50%;
60
+ transform: translateX(-50%);
61
+ width: 16rem;
62
+ padding: 0.75rem;
63
+ font-size: 0.8125rem;
64
+ color: var(--rf-color-text);
65
+ background: var(--rf-color-bg);
66
+ border: 1px solid var(--rf-color-border);
67
+ border-radius: var(--rf-radius-md);
68
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
69
+ margin-bottom: 0.5rem;
70
+ z-index: 10;
71
+ }
72
+ .rf-annotate--tooltip .rf-annotate-note:hover .rf-annotate-note__body {
73
+ display: block;
74
+ }
75
+ .rf-annotate-note__body p:last-child { margin-bottom: 0; }
76
+ .rf-annotate-note__body span[property],
77
+ .rf-annotate-note__body meta { display: none; }
78
+ @media (max-width: 768px) {
79
+ .rf-annotate--margin .rf-annotate-note {
80
+ float: none;
81
+ width: 100%;
82
+ margin: 0.5rem 0 1rem;
83
+ padding: 0.75rem 1rem;
84
+ background: var(--rf-color-surface);
85
+ border-radius: var(--rf-radius-md);
86
+ }
87
+ }