clew-code 0.2.21 → 0.2.23
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/README.md +45 -45
- package/dist/main.js +2906 -2722
- package/docs/architecture.html +91 -148
- package/docs/assets/clew-agent-loop.png +0 -0
- package/docs/assets/clew-general-architecture.png +0 -0
- package/docs/assets/clew-mcp-architecture.png +0 -0
- package/docs/assets/clew-p2p-swarm.png +0 -0
- package/docs/changelog.html +150 -0
- package/docs/cli-reference.html +90 -0
- package/docs/commands.html +133 -241
- package/docs/configuration.html +85 -147
- package/docs/contributing.html +91 -0
- package/docs/css/styles.css +272 -152
- package/docs/daemon.html +62 -129
- package/docs/features/bridge-mode.html +61 -66
- package/docs/features/evals.html +57 -149
- package/docs/features/searxng-search.html +58 -118
- package/docs/features/sentry-setup.html +61 -124
- package/docs/index.html +185 -148
- package/docs/installation.html +77 -105
- package/docs/internals/growthbook-ab-testing.html +69 -91
- package/docs/internals/hidden-features.html +81 -143
- package/docs/js/main.js +29 -0
- package/docs/loop.html +69 -181
- package/docs/mcp.html +99 -247
- package/docs/models.html +63 -92
- package/docs/permission-model.html +86 -102
- package/docs/plugins.html +84 -102
- package/docs/providers.html +87 -127
- package/docs/quick-start.html +81 -93
- package/docs/research-memory.html +71 -102
- package/docs/security.html +71 -0
- package/docs/skills.html +67 -117
- package/docs/swarm.html +78 -236
- package/docs/tools.html +183 -171
- package/docs/troubleshooting.html +86 -106
- package/docs/voice-mode.html +79 -0
- package/package.json +1 -1
- package/docs/architecture.th.html +0 -79
- package/docs/clew-code-architecture.html +0 -1126
- package/docs/commands.th.html +0 -269
- package/docs/configuration.th.html +0 -108
- package/docs/daemon.th.html +0 -73
- package/docs/features/bridge-mode.th.html +0 -62
- package/docs/features/evals.th.html +0 -62
- package/docs/features/searxng-search.th.html +0 -67
- package/docs/features/sentry-setup.th.html +0 -69
- package/docs/features/swarm.html +0 -156
- package/docs/generated/providers.html +0 -625
- package/docs/generated/tools.html +0 -558
- package/docs/index.th.html +0 -292
- package/docs/installation.th.html +0 -105
- package/docs/internals/growthbook-ab-testing.th.html +0 -60
- package/docs/internals/hidden-features.th.html +0 -107
- package/docs/loop.th.html +0 -227
- package/docs/mcp.th.html +0 -207
- package/docs/models.th.html +0 -61
- package/docs/permission-model.th.html +0 -67
- package/docs/plugins.th.html +0 -79
- package/docs/prompts-and-features.html +0 -806
- package/docs/providers.th.html +0 -81
- package/docs/quick-start.th.html +0 -89
- package/docs/research-memory.th.html +0 -72
- package/docs/skills.th.html +0 -90
- package/docs/swarm.th.html +0 -280
- package/docs/tools.th.html +0 -84
- package/docs/troubleshooting.th.html +0 -85
package/docs/css/styles.css
CHANGED
|
@@ -1,50 +1,65 @@
|
|
|
1
1
|
/* ============================================================
|
|
2
|
-
Clew Docs —
|
|
2
|
+
Clew Docs — Modern Purple Theme v2
|
|
3
3
|
============================================================ */
|
|
4
4
|
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
|
|
5
5
|
|
|
6
6
|
:root {
|
|
7
|
-
--bg: #
|
|
8
|
-
--bg-card: #
|
|
9
|
-
--bg-code: #
|
|
10
|
-
--bg-hover: #
|
|
11
|
-
--text: #
|
|
12
|
-
--text-dim: #
|
|
13
|
-
--text-faint:#
|
|
7
|
+
--bg: #fafbfc;
|
|
8
|
+
--bg-card: #ffffff;
|
|
9
|
+
--bg-code: #f7f6fa;
|
|
10
|
+
--bg-hover: #f0edfa;
|
|
11
|
+
--text: #0f0f1a;
|
|
12
|
+
--text-dim: #5a5678;
|
|
13
|
+
--text-faint:#9b97b3;
|
|
14
14
|
--accent: #7c3aed;
|
|
15
15
|
--accent2: #a78bfa;
|
|
16
|
+
--accent3: #c4b5fd;
|
|
16
17
|
--border: #e8e5f0;
|
|
17
|
-
--border2: #
|
|
18
|
-
--shadow: rgba(124,58,237,.
|
|
18
|
+
--border2: #ddd8ec;
|
|
19
|
+
--shadow: rgba(124,58,237,.08);
|
|
20
|
+
--shadow-lg: rgba(124,58,237,.15);
|
|
21
|
+
--success: #10b981;
|
|
22
|
+
--warning: #f59e0b;
|
|
23
|
+
--error: #ef4444;
|
|
19
24
|
|
|
20
25
|
--font: 'DM Sans', system-ui, -apple-system, sans-serif;
|
|
21
26
|
--mono: 'JetBrains Mono', 'SF Mono', monospace;
|
|
22
27
|
|
|
23
|
-
--header-h:
|
|
24
|
-
--max-w:
|
|
25
|
-
--sidebar-w:
|
|
28
|
+
--header-h: 56px;
|
|
29
|
+
--max-w: 900px;
|
|
30
|
+
--sidebar-w: 240px;
|
|
31
|
+
--radius: 10px;
|
|
32
|
+
--radius-sm: 6px;
|
|
26
33
|
}
|
|
27
34
|
|
|
28
35
|
@media(prefers-color-scheme:dark){
|
|
29
36
|
:root {
|
|
30
|
-
--bg: #
|
|
31
|
-
--bg-card: #
|
|
32
|
-
--bg-code: #
|
|
33
|
-
--bg-hover: #
|
|
34
|
-
--text: #
|
|
37
|
+
--bg: #0c0c14;
|
|
38
|
+
--bg-card: #12121e;
|
|
39
|
+
--bg-code: #181828;
|
|
40
|
+
--bg-hover: #222238;
|
|
41
|
+
--text: #e8e6f0;
|
|
35
42
|
--text-dim: #9a96b0;
|
|
36
43
|
--text-faint:#6b6880;
|
|
37
44
|
--accent: #a78bfa;
|
|
38
45
|
--accent2: #7c3aed;
|
|
46
|
+
--accent3: #5b4db0;
|
|
39
47
|
--border: #2a2a3e;
|
|
40
48
|
--border2: #3a3a54;
|
|
41
49
|
--shadow: rgba(0,0,0,.3);
|
|
50
|
+
--shadow-lg: rgba(0,0,0,.5);
|
|
42
51
|
}
|
|
43
|
-
.header{background:rgba(
|
|
44
|
-
.term{box-shadow:0 12px 40px rgba(0,0,0,.
|
|
52
|
+
.header{background:rgba(12,12,20,.92)}
|
|
53
|
+
.term{box-shadow:0 12px 40px rgba(0,0,0,.25),0 0 0 1px rgba(124,58,237,.1)}
|
|
45
54
|
img{opacity:.9}
|
|
46
55
|
}
|
|
47
56
|
|
|
57
|
+
/* ── Scrollbar ── */
|
|
58
|
+
::-webkit-scrollbar{width:8px;height:8px}
|
|
59
|
+
::-webkit-scrollbar-track{background:transparent}
|
|
60
|
+
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}
|
|
61
|
+
::-webkit-scrollbar-thumb:hover{background:var(--accent3)}
|
|
62
|
+
|
|
48
63
|
html{scroll-behavior:smooth}
|
|
49
64
|
body{
|
|
50
65
|
font-family:var(--font);
|
|
@@ -53,37 +68,44 @@ body{
|
|
|
53
68
|
color:var(--text);
|
|
54
69
|
background:var(--bg);
|
|
55
70
|
-webkit-font-smoothing:antialiased;
|
|
71
|
+
-moz-osx-font-smoothing:grayscale;
|
|
56
72
|
}
|
|
57
73
|
::selection{background:var(--accent);color:#fff}
|
|
58
|
-
|
|
59
|
-
a
|
|
74
|
+
|
|
75
|
+
a{color:var(--accent);text-decoration:none;transition:all .15s ease}
|
|
76
|
+
a:hover{color:#6d28d9;text-decoration:none}
|
|
60
77
|
@media(prefers-color-scheme:dark){a:hover{color:#c4b5fd}}
|
|
78
|
+
|
|
79
|
+
/* ── code ── */
|
|
61
80
|
code{
|
|
62
81
|
font-family:var(--mono);
|
|
63
82
|
font-size:.85em;
|
|
64
83
|
background:var(--bg-code);
|
|
65
84
|
color:var(--accent);
|
|
66
|
-
padding:.
|
|
67
|
-
border-radius:
|
|
85
|
+
padding:.2em .45em;
|
|
86
|
+
border-radius:5px;
|
|
87
|
+
border:1px solid var(--border);
|
|
88
|
+
font-weight:500;
|
|
68
89
|
}
|
|
69
|
-
pre code{background:none;padding:0;color:inherit}
|
|
90
|
+
pre code{background:none;padding:0;color:inherit;border:none;font-weight:400}
|
|
70
91
|
|
|
71
92
|
/* ── header ── */
|
|
72
93
|
.header{
|
|
73
94
|
position:fixed;top:0;left:0;right:0;height:var(--header-h);
|
|
74
|
-
background:rgba(
|
|
75
|
-
-webkit-backdrop-filter:blur(
|
|
95
|
+
background:rgba(250,251,252,.92);backdrop-filter:blur(20px) saturate(180%);
|
|
96
|
+
-webkit-backdrop-filter:blur(20px) saturate(180%);
|
|
76
97
|
border-bottom:1px solid var(--border);z-index:100;
|
|
77
|
-
box-shadow:0 1px 3px rgba(0,0,0,.
|
|
98
|
+
box-shadow:0 1px 3px rgba(0,0,0,.03);
|
|
99
|
+
transition:background .2s;
|
|
78
100
|
}
|
|
79
101
|
@media(prefers-color-scheme:dark){
|
|
80
102
|
.header{
|
|
81
|
-
background:rgba(
|
|
103
|
+
background:rgba(12,12,20,.92);
|
|
82
104
|
box-shadow:0 1px 3px rgba(0,0,0,.2);
|
|
83
105
|
}
|
|
84
106
|
}
|
|
85
107
|
.header-inner{
|
|
86
|
-
max-width:var(--max-w);margin:0 auto;padding:0
|
|
108
|
+
max-width:calc(var(--max-w) + var(--sidebar-w));margin:0 auto;padding:0 28px;
|
|
87
109
|
height:100%;display:flex;align-items:center;gap:12px;
|
|
88
110
|
}
|
|
89
111
|
.logo{
|
|
@@ -93,11 +115,13 @@ pre code{background:none;padding:0;color:inherit}
|
|
|
93
115
|
}
|
|
94
116
|
.logo:hover{opacity:.85;text-decoration:none}
|
|
95
117
|
.logo-mark{
|
|
96
|
-
width:
|
|
118
|
+
width:28px;height:28px;border-radius:8px;
|
|
97
119
|
background:linear-gradient(135deg,#7c3aed,#a78bfa);
|
|
98
120
|
color:#fff;display:flex;align-items:center;justify-content:center;
|
|
99
|
-
font-size:
|
|
121
|
+
font-size:13px;font-weight:700;box-shadow:0 2px 10px rgba(124,58,237,.3);
|
|
122
|
+
transition:transform .2s,box-shadow .2s;
|
|
100
123
|
}
|
|
124
|
+
.logo:hover .logo-mark{transform:translateY(-2px);box-shadow:0 4px 16px rgba(124,58,237,.4)}
|
|
101
125
|
|
|
102
126
|
/* ── breadcrumbs ── */
|
|
103
127
|
.header-breadcrumbs{
|
|
@@ -115,58 +139,61 @@ pre code{background:none;padding:0;color:inherit}
|
|
|
115
139
|
position:relative;margin-left:auto;flex-shrink:0;
|
|
116
140
|
}
|
|
117
141
|
.header-search input{
|
|
118
|
-
width:
|
|
119
|
-
border:1px solid var(--border);border-radius:
|
|
142
|
+
width:200px;height:32px;padding:0 32px 0 12px;
|
|
143
|
+
border:1px solid var(--border);border-radius:8px;
|
|
120
144
|
background:var(--bg);color:var(--text);
|
|
121
|
-
font-family:var(--font);font-size:
|
|
122
|
-
outline:none;transition
|
|
145
|
+
font-family:var(--font);font-size:13px;
|
|
146
|
+
outline:none;transition:all .2s;
|
|
123
147
|
}
|
|
124
148
|
.header-search input:focus{
|
|
125
|
-
border-color:var(--accent2);box-shadow:0 0 0 3px rgba(124,58,237,.
|
|
126
|
-
width:
|
|
149
|
+
border-color:var(--accent2);box-shadow:0 0 0 3px rgba(124,58,237,.12);
|
|
150
|
+
width:240px;
|
|
127
151
|
}
|
|
128
152
|
.header-search input::placeholder{color:var(--text-faint)}
|
|
129
153
|
.header-search .search-icon{
|
|
130
|
-
position:absolute;right:
|
|
154
|
+
position:absolute;right:10px;top:50%;transform:translateY(-50%);
|
|
131
155
|
font-size:12px;color:var(--text-faint);pointer-events:none;
|
|
132
156
|
}
|
|
133
157
|
.header-search .search-results{
|
|
134
|
-
display:none;position:absolute;top:100%;right:0;width:
|
|
135
|
-
overflow-y:auto;margin-top:
|
|
136
|
-
border:1px solid var(--border);border-radius:
|
|
137
|
-
box-shadow:0
|
|
158
|
+
display:none;position:absolute;top:100%;right:0;width:340px;max-height:300px;
|
|
159
|
+
overflow-y:auto;margin-top:8px;background:var(--bg-card);
|
|
160
|
+
border:1px solid var(--border);border-radius:10px;
|
|
161
|
+
box-shadow:0 12px 32px rgba(0,0,0,.1);z-index:300;
|
|
138
162
|
}
|
|
139
163
|
.header-search .search-results.open{display:block}
|
|
140
164
|
.header-search .search-result{
|
|
141
|
-
display:block;padding:
|
|
165
|
+
display:block;padding:10px 14px;font-size:13px;color:var(--text-dim);
|
|
142
166
|
border-bottom:1px solid var(--border);
|
|
143
167
|
transition:.08s;
|
|
144
168
|
}
|
|
145
169
|
.header-search .search-result:last-child{border:none}
|
|
146
170
|
.header-search .search-result:hover{background:var(--bg-hover);color:var(--text);text-decoration:none}
|
|
147
|
-
.header-search .search-result mark{background:rgba(124,58,237,.15);color:var(--accent)}
|
|
171
|
+
.header-search .search-result mark{background:rgba(124,58,237,.15);color:var(--accent);border-radius:2px;padding:0 2px}
|
|
148
172
|
.header-search .search-empty{
|
|
149
|
-
padding:
|
|
173
|
+
padding:14px;font-size:13px;color:var(--text-faint);text-align:center;
|
|
150
174
|
}
|
|
151
175
|
|
|
152
176
|
/* ── header nav ── */
|
|
153
177
|
.header-nav{display:flex;gap:2px;align-items:center;flex-shrink:0}
|
|
154
178
|
.header-nav a{
|
|
155
|
-
padding:
|
|
179
|
+
padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;
|
|
156
180
|
color:var(--text-dim);white-space:nowrap;
|
|
181
|
+
transition:all .15s;
|
|
157
182
|
}
|
|
158
183
|
.header-nav a:hover{background:var(--bg-hover);color:var(--text);text-decoration:none}
|
|
159
|
-
.header-nav a.active{color:var(--accent);background:var(--bg-code)}
|
|
184
|
+
.header-nav a.active{color:var(--accent);background:var(--bg-code);font-weight:600}
|
|
160
185
|
|
|
161
186
|
/* ── language toggle ── */
|
|
162
187
|
.lang-toggle{
|
|
163
|
-
display:flex;align-items:center;padding:4px
|
|
188
|
+
display:flex;align-items:center;padding:4px 10px;border-radius:6px;
|
|
164
189
|
background:none;border:1px solid var(--border);cursor:pointer;
|
|
165
|
-
font-size:
|
|
166
|
-
transition
|
|
190
|
+
font-size:12px;color:var(--text-dim);font-family:var(--font);gap:4px;
|
|
191
|
+
transition:all .15s;flex-shrink:0;
|
|
167
192
|
}
|
|
168
|
-
.lang-toggle:hover{background:var(--bg-hover);border-color:var(--border2)}
|
|
169
|
-
|
|
193
|
+
.lang-toggle:hover{background:var(--bg-hover);border-color:var(--border2);color:var(--accent)}
|
|
194
|
+
|
|
195
|
+
.menu-btn{display:none;width:32px;height:32px;border:1px solid var(--border);border-radius:6px;background:none;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;flex-shrink:0;transition:all .15s}
|
|
196
|
+
.menu-btn:hover{background:var(--bg-hover);border-color:var(--border2)}
|
|
170
197
|
.menu-btn span{display:block;width:16px;height:2px;background:var(--text-dim);border-radius:2px;transition:.15s}
|
|
171
198
|
.menu-btn.open span:nth-child(1){transform:rotate(45deg) translate(4px,4px)}
|
|
172
199
|
.menu-btn.open span:nth-child(2){opacity:0}
|
|
@@ -176,221 +203,305 @@ pre code{background:none;padding:0;color:inherit}
|
|
|
176
203
|
/* ── page layout (index) ── */
|
|
177
204
|
.page{
|
|
178
205
|
max-width:var(--max-w);margin:calc(var(--header-h) + 40px) auto 60px;
|
|
179
|
-
padding:0
|
|
206
|
+
padding:0 28px;
|
|
180
207
|
}
|
|
181
208
|
|
|
182
209
|
/* ── doc layout (sub-pages) ── */
|
|
183
|
-
.app{display:flex;max-width:var(--max-w);margin:0 auto;padding:0
|
|
210
|
+
.app{display:flex;max-width:calc(var(--max-w) + var(--sidebar-w));margin:0 auto;padding:0 28px;gap:0}
|
|
184
211
|
.sidebar{
|
|
185
212
|
position:fixed;top:var(--header-h);left:0;bottom:0;
|
|
186
|
-
width:var(--sidebar-w);overflow-y:auto;padding:
|
|
213
|
+
width:var(--sidebar-w);overflow-y:auto;padding:28px 16px 40px;
|
|
187
214
|
border-right:1px solid var(--border);
|
|
188
215
|
background:var(--bg);
|
|
189
216
|
z-index:50;
|
|
190
217
|
}
|
|
191
|
-
.sidebar-section{margin-bottom:
|
|
218
|
+
.sidebar-section{margin-bottom:28px}
|
|
192
219
|
.sidebar-label{
|
|
193
|
-
font-family:var(--mono);font-size:
|
|
194
|
-
color:var(--text-faint);letter-spacing:.
|
|
220
|
+
font-family:var(--mono);font-size:11px;font-weight:600;text-transform:uppercase;
|
|
221
|
+
color:var(--text-faint);letter-spacing:.06em;margin-bottom:8px;padding:0 10px;
|
|
195
222
|
}
|
|
196
223
|
.sidebar-link{
|
|
197
|
-
display:block;padding:
|
|
198
|
-
font-size:13px;color:var(--text-dim);transition
|
|
224
|
+
display:block;padding:4px 10px;border-radius:6px;
|
|
225
|
+
font-size:13px;color:var(--text-dim);transition:all .12s;
|
|
226
|
+
margin-bottom:2px;
|
|
199
227
|
}
|
|
200
|
-
.sidebar-link:hover{background:var(--bg-hover);color:var(--text);text-decoration:none}
|
|
201
|
-
.sidebar-link.active{color:var(--accent);background:var(--bg-code);font-weight:
|
|
228
|
+
.sidebar-link:hover{background:var(--bg-hover);color:var(--text);text-decoration:none;transform:translateX(2px)}
|
|
229
|
+
.sidebar-link.active{color:var(--accent);background:var(--bg-code);font-weight:600}
|
|
202
230
|
.sidebar-link .link-icon{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--border2);margin-right:6px;vertical-align:middle;transition:.1s}
|
|
203
231
|
.sidebar-link:hover .link-icon{background:var(--accent2)}
|
|
204
232
|
.sidebar-link.active .link-icon{background:var(--accent)}
|
|
205
233
|
|
|
206
234
|
.content-wrap{flex:1;margin-left:var(--sidebar-w);min-width:0}
|
|
207
235
|
.content{
|
|
208
|
-
max-width:var(--max-w);padding:calc(var(--header-h) +
|
|
236
|
+
max-width:var(--max-w);padding:calc(var(--header-h) + 28px) 36px 60px;
|
|
209
237
|
}
|
|
210
238
|
|
|
211
239
|
/* ── TOC sidebar ── */
|
|
212
|
-
.toc-sidebar{
|
|
213
|
-
display:none;
|
|
214
|
-
}
|
|
240
|
+
.toc-sidebar{display:none}
|
|
215
241
|
@media(min-width:1200px){
|
|
216
242
|
.toc-sidebar{
|
|
217
|
-
display:block;position:sticky;top:calc(var(--header-h) +
|
|
218
|
-
width:
|
|
219
|
-
overflow-y:auto;padding:calc(var(--header-h) +
|
|
243
|
+
display:block;position:sticky;top:calc(var(--header-h) + 28px);
|
|
244
|
+
width:200px;min-width:200px;max-height:calc(100vh - var(--header-h) - 56px);
|
|
245
|
+
overflow-y:auto;padding:calc(var(--header-h) + 28px) 0 40px 20px;
|
|
220
246
|
margin-left:24px;border-left:1px solid var(--border);
|
|
221
247
|
}
|
|
222
248
|
.content-wrap{display:flex;flex-direction:row}
|
|
223
249
|
.content{flex:1;min-width:0}
|
|
224
250
|
}
|
|
225
251
|
.toc-label{
|
|
226
|
-
font-family:var(--mono);font-size:
|
|
227
|
-
color:var(--text-faint);letter-spacing:.
|
|
252
|
+
font-family:var(--mono);font-size:11px;font-weight:600;text-transform:uppercase;
|
|
253
|
+
color:var(--text-faint);letter-spacing:.06em;margin-bottom:8px;
|
|
228
254
|
}
|
|
229
255
|
.toc-link{
|
|
230
|
-
display:block;padding:
|
|
231
|
-
font-size:12px;color:var(--text-faint);line-height:1.6;transition
|
|
256
|
+
display:block;padding:3px 0 3px 14px;border-left:2px solid transparent;
|
|
257
|
+
font-size:12px;color:var(--text-faint);line-height:1.6;transition:all .12s;
|
|
232
258
|
}
|
|
233
|
-
.toc-link:hover{color:var(--accent);border-color:var(--accent2);text-decoration:none}
|
|
234
|
-
.toc-link.active{color:var(--accent);border-color:var(--accent)}
|
|
235
|
-
.toc-h3{padding-left:
|
|
259
|
+
.toc-link:hover{color:var(--accent);border-color:var(--accent2);text-decoration:none;transform:translateX(2px)}
|
|
260
|
+
.toc-link.active{color:var(--accent);border-color:var(--accent);font-weight:500}
|
|
261
|
+
.toc-h3{padding-left:24px;font-size:11px}
|
|
236
262
|
|
|
237
263
|
/* ── breadcrumbs ── */
|
|
238
264
|
.breadcrumbs{
|
|
239
|
-
font-size:13px;color:var(--text-faint);margin-bottom:
|
|
265
|
+
font-size:13px;color:var(--text-faint);margin-bottom:28px;
|
|
266
|
+
padding:8px 0;
|
|
240
267
|
}
|
|
241
|
-
.breadcrumbs a{color:var(--text-faint)}
|
|
268
|
+
.breadcrumbs a{color:var(--text-faint);transition:all .12s}
|
|
242
269
|
.breadcrumbs a:hover{color:var(--accent)}
|
|
243
|
-
.breadcrumbs .sep{margin:0 6px}
|
|
270
|
+
.breadcrumbs .sep{margin:0 6px;opacity:.6}
|
|
244
271
|
|
|
245
272
|
/* ── headings ── */
|
|
246
273
|
h1{
|
|
247
|
-
font-family:var(--mono);font-size:
|
|
248
|
-
margin-bottom:
|
|
274
|
+
font-family:var(--mono);font-size:30px;font-weight:700;
|
|
275
|
+
margin-bottom:10px;color:var(--text);
|
|
276
|
+
letter-spacing:-0.02em;
|
|
249
277
|
}
|
|
250
278
|
h2{
|
|
251
|
-
font-family:var(--mono);font-size:
|
|
252
|
-
margin:
|
|
253
|
-
padding-bottom:
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
279
|
+
font-family:var(--mono);font-size:20px;font-weight:600;
|
|
280
|
+
margin:48px 0 18px;color:var(--text);
|
|
281
|
+
padding-bottom:8px;border-bottom:1px solid var(--border);
|
|
282
|
+
letter-spacing:-0.01em;
|
|
283
|
+
}
|
|
284
|
+
h3{font-size:16px;font-weight:600;margin:28px 0 10px;color:var(--text)}
|
|
285
|
+
p{color:var(--text-dim);margin-bottom:14px;line-height:1.8}
|
|
286
|
+
.sub{color:var(--text-dim);margin-bottom:28px;font-size:16px}
|
|
258
287
|
|
|
259
288
|
/* ── hero ── */
|
|
260
|
-
.hero{
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
289
|
+
.hero{
|
|
290
|
+
padding:56px 0 40px;
|
|
291
|
+
text-align:center;
|
|
292
|
+
position:relative;
|
|
293
|
+
overflow:hidden;
|
|
294
|
+
}
|
|
295
|
+
.hero::before{
|
|
296
|
+
content:'';
|
|
297
|
+
position:absolute;
|
|
298
|
+
top:-50%;left:-50%;right:-50%;bottom:-50%;
|
|
299
|
+
background:radial-gradient(ellipse at 50% 0%,rgba(124,58,237,.08) 0%,transparent 60%),
|
|
300
|
+
radial-gradient(ellipse at 80% 20%,rgba(167,139,250,.06) 0%,transparent 50%);
|
|
301
|
+
pointer-events:none;
|
|
302
|
+
z-index:0;
|
|
303
|
+
}
|
|
304
|
+
.hero > *{position:relative;z-index:1}
|
|
305
|
+
.hero h1{font-size:40px;margin-bottom:14px;letter-spacing:-0.03em}
|
|
306
|
+
.hero .hl{
|
|
307
|
+
background:linear-gradient(135deg,#7c3aed,#a78bfa);
|
|
308
|
+
-webkit-background-clip:text;
|
|
309
|
+
-webkit-text-fill-color:transparent;
|
|
310
|
+
background-clip:text;
|
|
311
|
+
}
|
|
312
|
+
.hero p{max-width:580px;margin:0 auto 24px;font-size:17px;line-height:1.7}
|
|
313
|
+
.hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
|
|
265
314
|
|
|
266
315
|
.badge{
|
|
267
316
|
display:inline-flex;align-items:center;gap:6px;
|
|
268
|
-
padding:
|
|
269
|
-
font-family:var(--mono);font-size:
|
|
317
|
+
padding:4px 14px;border-radius:100px;
|
|
318
|
+
font-family:var(--mono);font-size:12px;font-weight:500;
|
|
270
319
|
color:var(--accent);background:var(--bg-code);
|
|
271
|
-
border:1px solid var(--border2);margin-bottom:
|
|
320
|
+
border:1px solid var(--border2);margin-bottom:24px;
|
|
321
|
+
box-shadow:0 2px 8px rgba(124,58,237,.06);
|
|
322
|
+
}
|
|
323
|
+
.badge .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 2s infinite}
|
|
324
|
+
|
|
325
|
+
@keyframes pulse{
|
|
326
|
+
0%,100%{opacity:1}
|
|
327
|
+
50%{opacity:.5}
|
|
272
328
|
}
|
|
273
|
-
.badge .dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}
|
|
274
329
|
|
|
275
330
|
.btn{
|
|
276
331
|
display:inline-flex;align-items:center;gap:6px;
|
|
277
|
-
padding:
|
|
278
|
-
font-family:var(--mono);font-size:
|
|
332
|
+
padding:10px 20px;border-radius:var(--radius-sm);
|
|
333
|
+
font-family:var(--mono);font-size:13px;font-weight:600;
|
|
279
334
|
border:1px solid var(--border);
|
|
280
|
-
background:var(--bg);color:var(--text);
|
|
281
|
-
cursor:pointer;transition
|
|
335
|
+
background:var(--bg-card);color:var(--text);
|
|
336
|
+
cursor:pointer;transition:all .2s;
|
|
337
|
+
position:relative;
|
|
338
|
+
overflow:hidden;
|
|
282
339
|
}
|
|
283
|
-
.btn:hover{text-decoration:none;
|
|
340
|
+
.btn:hover{text-decoration:none;transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow)}
|
|
284
341
|
.btn-p{
|
|
285
342
|
background:var(--accent);color:#fff;border-color:var(--accent);
|
|
286
|
-
box-shadow:0 3px
|
|
343
|
+
box-shadow:0 3px 14px rgba(124,58,237,.25);
|
|
287
344
|
}
|
|
288
|
-
.btn-p:hover{background:#6d28d9;color:#fff;border-color:#6d28d9;box-shadow:0
|
|
345
|
+
.btn-p:hover{background:#6d28d9;color:#fff;border-color:#6d28d9;box-shadow:0 6px 20px rgba(124,58,237,.35);transform:translateY(-2px)}
|
|
289
346
|
.btn-ghost{color:var(--text-dim);border-color:var(--border)}
|
|
290
|
-
.btn-ghost:hover{color:var(--accent);border-color:var(--border2);background:var(--bg-
|
|
347
|
+
.btn-ghost:hover{color:var(--accent);border-color:var(--border2);background:var(--bg-hover);transform:translateY(-2px)}
|
|
291
348
|
|
|
292
349
|
/* ── stat cards ── */
|
|
293
|
-
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:
|
|
350
|
+
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:36px 0}
|
|
294
351
|
.stat{
|
|
295
|
-
text-align:center;padding:
|
|
352
|
+
text-align:center;padding:20px 10px;border-radius:var(--radius);
|
|
296
353
|
background:var(--bg-card);border:1px solid var(--border);
|
|
297
|
-
|
|
354
|
+
transition:all .2s;
|
|
355
|
+
position:relative;
|
|
356
|
+
overflow:hidden;
|
|
357
|
+
}
|
|
358
|
+
.stat::before{
|
|
359
|
+
content:'';
|
|
360
|
+
position:absolute;top:0;left:0;right:0;height:2px;
|
|
361
|
+
background:linear-gradient(90deg,var(--accent),var(--accent2));
|
|
362
|
+
opacity:0;transition:opacity .2s;
|
|
363
|
+
}
|
|
364
|
+
.stat:hover{border-color:var(--border2);box-shadow:0 6px 20px var(--shadow);transform:translateY(-3px)}
|
|
365
|
+
.stat:hover::before{opacity:1}
|
|
298
366
|
.stat-num{
|
|
299
|
-
font-family:var(--mono);font-size:
|
|
367
|
+
font-family:var(--mono);font-size:28px;font-weight:700;
|
|
300
368
|
background:linear-gradient(135deg,#7c3aed,#a78bfa);
|
|
301
|
-
-webkit-background-clip:text
|
|
369
|
+
-webkit-background-clip:text;
|
|
370
|
+
-webkit-text-fill-color:transparent;
|
|
371
|
+
background-clip:text;
|
|
302
372
|
line-height:1.2;
|
|
303
373
|
}
|
|
304
|
-
.stat-lbl{font-size:
|
|
374
|
+
.stat-lbl{font-size:13px;color:var(--text-faint);font-weight:500;margin-top:4px}
|
|
305
375
|
|
|
306
376
|
/* ── grid cards ── */
|
|
307
|
-
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(
|
|
377
|
+
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:28px 0}
|
|
308
378
|
.card{
|
|
309
|
-
padding:
|
|
379
|
+
padding:24px;border-radius:var(--radius);
|
|
310
380
|
background:var(--bg-card);border:1px solid var(--border);
|
|
311
|
-
transition
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
.card
|
|
381
|
+
transition:all .2s;
|
|
382
|
+
position:relative;
|
|
383
|
+
overflow:hidden;
|
|
384
|
+
}
|
|
385
|
+
.card::before{
|
|
386
|
+
content:'';
|
|
387
|
+
position:absolute;top:0;left:0;right:0;height:2px;
|
|
388
|
+
background:linear-gradient(90deg,var(--accent),var(--accent2));
|
|
389
|
+
opacity:0;transition:opacity .2s;
|
|
390
|
+
}
|
|
391
|
+
.card:hover{border-color:var(--border2);box-shadow:0 6px 24px var(--shadow);transform:translateY(-3px)}
|
|
392
|
+
.card:hover::before{opacity:1}
|
|
393
|
+
.card h3{font-family:var(--mono);font-size:14px;margin-bottom:8px;color:var(--accent);display:flex;align-items:center;gap:8px}
|
|
394
|
+
.card p{font-size:13px;line-height:1.6}
|
|
316
395
|
.card .tag{
|
|
317
|
-
display:inline-block;font-family:var(--mono);font-size:
|
|
318
|
-
padding:
|
|
396
|
+
display:inline-block;font-family:var(--mono);font-size:11px;
|
|
397
|
+
padding:2px 8px;border-radius:4px;
|
|
319
398
|
background:var(--bg-code);color:var(--accent);
|
|
320
|
-
border:1px solid var(--border2);margin:
|
|
399
|
+
border:1px solid var(--border2);margin:8px 4px 0 0;
|
|
400
|
+
font-weight:500;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
/* ── card icons ── */
|
|
404
|
+
.card-icon{
|
|
405
|
+
width:32px;height:32px;border-radius:8px;
|
|
406
|
+
background:linear-gradient(135deg,rgba(124,58,237,.1),rgba(167,139,250,.1));
|
|
407
|
+
display:flex;align-items:center;justify-content:center;
|
|
408
|
+
font-size:16px;flex-shrink:0;
|
|
321
409
|
}
|
|
322
410
|
|
|
323
411
|
/* ── terminal mock ── */
|
|
324
412
|
.term{
|
|
325
413
|
background:var(--bg-code);border:1px solid var(--border2);
|
|
326
|
-
border-radius:
|
|
327
|
-
max-width:
|
|
414
|
+
border-radius:var(--radius);overflow:hidden;margin:36px auto;
|
|
415
|
+
max-width:680px;box-shadow:0 12px 40px var(--shadow),0 0 0 1px rgba(124,58,237,.05);
|
|
416
|
+
position:relative;
|
|
417
|
+
}
|
|
418
|
+
.term::after{
|
|
419
|
+
content:'';
|
|
420
|
+
position:absolute;bottom:0;left:0;right:0;height:40px;
|
|
421
|
+
background:linear-gradient(to bottom,transparent,var(--bg-code));
|
|
422
|
+
pointer-events:none;
|
|
328
423
|
}
|
|
329
424
|
.term-bar{
|
|
330
|
-
display:flex;align-items:center;gap:
|
|
331
|
-
padding:
|
|
425
|
+
display:flex;align-items:center;gap:8px;
|
|
426
|
+
padding:12px 16px;background:rgba(124,58,237,.04);
|
|
332
427
|
border-bottom:1px solid var(--border2);
|
|
333
428
|
}
|
|
334
|
-
.term-dot{width:
|
|
429
|
+
.term-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 6px rgba(0,0,0,.1)}
|
|
335
430
|
.term-dot:nth-child(1){background:#ff5f56}
|
|
336
431
|
.term-dot:nth-child(2){background:#ffbd2e}
|
|
337
432
|
.term-dot:nth-child(3){background:#27c93f}
|
|
338
|
-
.term-title{font-family:var(--mono);font-size:
|
|
433
|
+
.term-title{font-family:var(--mono);font-size:12px;color:var(--text-faint);margin-left:6px;font-weight:500}
|
|
339
434
|
.term-body{
|
|
340
|
-
padding:
|
|
435
|
+
padding:16px;font-family:var(--mono);font-size:13px;line-height:1.8;
|
|
341
436
|
color:var(--text);overflow-x:auto;white-space:pre;
|
|
437
|
+
min-height:200px;
|
|
342
438
|
}
|
|
343
439
|
.term-body .p{color:var(--accent);font-weight:600}
|
|
344
440
|
.term-body .d{color:var(--text-faint)}
|
|
345
441
|
.term-body .h{color:var(--accent)}
|
|
442
|
+
.term-cursor{display:inline-block;width:8px;height:16px;background:var(--accent);animation:cursor-blink 1s infinite;vertical-align:middle;margin-left:2px}
|
|
443
|
+
@keyframes cursor-blink{
|
|
444
|
+
0%,100%{opacity:1}
|
|
445
|
+
50%{opacity:0}
|
|
446
|
+
}
|
|
346
447
|
|
|
347
448
|
/* ── table ── */
|
|
348
|
-
.table-wrap{overflow-x:auto;margin:
|
|
449
|
+
.table-wrap{overflow-x:auto;margin:20px 0;border-radius:var(--radius-sm);border:1px solid var(--border);box-shadow:0 2px 8px rgba(0,0,0,.03)}
|
|
349
450
|
table{width:100%;border-collapse:collapse;font-size:13px}
|
|
350
451
|
th{
|
|
351
|
-
font-family:var(--mono);font-size:
|
|
352
|
-
text-align:left;padding:
|
|
452
|
+
font-family:var(--mono);font-size:11px;font-weight:600;text-transform:uppercase;
|
|
453
|
+
text-align:left;padding:10px 14px;letter-spacing:.06em;
|
|
353
454
|
color:var(--accent);background:var(--bg-code);
|
|
354
455
|
border-bottom:1px solid var(--border);
|
|
456
|
+
white-space:nowrap;
|
|
355
457
|
}
|
|
356
|
-
td{padding:
|
|
458
|
+
td{padding:10px 14px;border-bottom:1px solid var(--border);color:var(--text-dim);vertical-align:top;line-height:1.6}
|
|
357
459
|
tr:last-child td{border:none}
|
|
358
|
-
tr:hover td{background:rgba(124,58,237,.
|
|
460
|
+
tr:hover td{background:rgba(124,58,237,.03)}
|
|
359
461
|
|
|
360
462
|
/* ── code blocks ── */
|
|
361
|
-
.code-block-wrap{margin:
|
|
463
|
+
.code-block-wrap{margin:20px 0;border-radius:var(--radius-sm);border:1px solid var(--border);overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.03)}
|
|
362
464
|
.code-block-header{
|
|
363
465
|
display:flex;justify-content:space-between;align-items:center;
|
|
364
|
-
padding:
|
|
365
|
-
border-bottom:1px solid var(--border);font-size:
|
|
366
|
-
font-family:var(--mono);
|
|
466
|
+
padding:8px 12px;background:var(--bg-card);
|
|
467
|
+
border-bottom:1px solid var(--border);font-size:12px;color:var(--text-faint);
|
|
468
|
+
font-family:var(--mono);font-weight:500;
|
|
367
469
|
}
|
|
368
|
-
.code-block-wrap pre{margin:0;border:none;border-radius:0}
|
|
470
|
+
.code-block-wrap pre{margin:0;border:none;border-radius:0;padding:14px 16px;font-size:13px;line-height:1.7}
|
|
369
471
|
.copy-btn{
|
|
370
472
|
background:none;border:1px solid var(--border);border-radius:4px;
|
|
371
|
-
color:var(--text-faint);font-size:
|
|
473
|
+
color:var(--text-faint);font-size:11px;padding:3px 10px;cursor:pointer;font-family:var(--mono);transition:all .15s;
|
|
372
474
|
}
|
|
373
475
|
.copy-btn:hover{background:var(--bg-hover);color:var(--accent);border-color:var(--accent2)}
|
|
374
476
|
.copy-btn.copied{background:var(--bg-code);color:var(--accent);border-color:var(--accent)}
|
|
375
477
|
|
|
478
|
+
/* ── back to top ── */
|
|
479
|
+
.back-to-top{
|
|
480
|
+
position:fixed;bottom:24px;right:24px;
|
|
481
|
+
width:40px;height:40px;border-radius:50%;
|
|
482
|
+
background:var(--accent);color:#fff;border:none;
|
|
483
|
+
cursor:pointer;opacity:0;visibility:hidden;
|
|
484
|
+
transition:all .3s;z-index:80;
|
|
485
|
+
display:flex;align-items:center;justify-content:center;
|
|
486
|
+
font-size:18px;box-shadow:0 4px 12px rgba(124,58,237,.3);
|
|
487
|
+
}
|
|
488
|
+
.back-to-top.visible{opacity:1;visibility:visible}
|
|
489
|
+
.back-to-top:hover{background:#6d28d9;transform:translateY(-2px);box-shadow:0 6px 16px rgba(124,58,237,.4)}
|
|
490
|
+
|
|
376
491
|
/* ── language toggle (kept for backward compat) ── */
|
|
377
492
|
.lang-select{display:none}
|
|
378
493
|
|
|
379
494
|
/* ── misc ── */
|
|
380
|
-
hr{border:none;border-top:1px solid var(--border);margin:
|
|
495
|
+
hr{border:none;border-top:1px solid var(--border);margin:48px 0}
|
|
381
496
|
.footer{
|
|
382
|
-
margin-top:60px;padding-top:
|
|
497
|
+
margin-top:60px;padding-top:24px;border-top:1px solid var(--border);
|
|
383
498
|
display:flex;justify-content:space-between;align-items:center;gap:16px;
|
|
384
|
-
font-size:
|
|
499
|
+
font-size:13px;color:var(--text-faint);flex-wrap:wrap;
|
|
385
500
|
}
|
|
386
501
|
.footer-links{display:flex;gap:16px}
|
|
387
|
-
.footer-links a{color:var(--text-faint);
|
|
502
|
+
.footer-links a{color:var(--text-faint);transition:all .12s}
|
|
388
503
|
.footer-links a:hover{color:var(--accent)}
|
|
389
504
|
|
|
390
|
-
.menu-btn{display:none;width:32px;height:32px;border:1px solid var(--border);border-radius:5px;background:none;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;margin-left:auto}
|
|
391
|
-
.menu-btn span{display:block;width:16px;height:2px;background:var(--text-dim);border-radius:2px}
|
|
392
|
-
.sidebar-overlay{display:none}
|
|
393
|
-
|
|
394
505
|
/* ── responsive ── */
|
|
395
506
|
@media(max-width:900px){
|
|
396
507
|
.sidebar{display:none}
|
|
@@ -400,12 +511,14 @@ hr{border:none;border-top:1px solid var(--border);margin:40px 0}
|
|
|
400
511
|
.menu-btn{display:flex}
|
|
401
512
|
.stats{grid-template-columns:repeat(2,1fr)}
|
|
402
513
|
.grid{grid-template-columns:1fr}
|
|
403
|
-
.hero h1{font-size:
|
|
514
|
+
.hero h1{font-size:28px}
|
|
515
|
+
.hero{padding:36px 0 28px}
|
|
516
|
+
.hero p{font-size:15px}
|
|
404
517
|
|
|
405
518
|
.sidebar.open{
|
|
406
519
|
display:block;position:fixed;top:var(--header-h);left:0;right:0;bottom:0;
|
|
407
520
|
width:auto;z-index:200;background:var(--bg);padding:24px;
|
|
408
|
-
border-right:none;animation:slideIn .
|
|
521
|
+
border-right:none;animation:slideIn .2s ease-out;
|
|
409
522
|
}
|
|
410
523
|
.sidebar.open .header-search{
|
|
411
524
|
display:block;margin:0 0 16px;position:static;
|
|
@@ -420,6 +533,13 @@ hr{border:none;border-top:1px solid var(--border);margin:40px 0}
|
|
|
420
533
|
}
|
|
421
534
|
|
|
422
535
|
@keyframes slideIn{
|
|
423
|
-
from{transform:translateX(-100%)}
|
|
424
|
-
to{transform:translateX(0)}
|
|
536
|
+
from{transform:translateX(-100%);opacity:0}
|
|
537
|
+
to{transform:translateX(0);opacity:1}
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
/* ── print ── */
|
|
541
|
+
@media print{
|
|
542
|
+
.header,.sidebar,.toc-sidebar,.back-to-top{display:none}
|
|
543
|
+
.content-wrap{margin-left:0}
|
|
544
|
+
.content{padding:0}
|
|
425
545
|
}
|