@beforesemicolon/builder 1.8.11 → 1.8.18
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 +839 -142
- package/dist/cjs/docs/run.js +16 -14
- package/dist/cjs/docs/templates/fading-citrus/README.md +772 -0
- package/dist/cjs/docs/templates/fading-citrus/assets/logo.dark.svg +8 -0
- package/dist/cjs/docs/templates/fading-citrus/assets/logo.light.svg +8 -0
- package/dist/cjs/docs/templates/fading-citrus/assets/logo.svg +8 -0
- package/dist/cjs/docs/templates/fading-citrus/layouts/_footer.js +13 -6
- package/dist/cjs/docs/templates/fading-citrus/layouts/_head-meta.js +3 -2
- package/dist/cjs/docs/templates/fading-citrus/layouts/_header.js +9 -4
- package/dist/cjs/docs/templates/fading-citrus/layouts/document.js +3 -2
- package/dist/cjs/docs/templates/fading-citrus/layouts/landing.js +4 -2
- package/dist/cjs/docs/templates/fading-citrus/stylesheets/common.css +135 -50
- package/dist/cjs/docs/templates/fading-citrus/stylesheets/documentation.css +32 -24
- package/dist/cjs/docs/templates/fading-citrus/stylesheets/github-dark.hightlighter.css +12 -12
- package/dist/cjs/docs/templates/fading-citrus/stylesheets/github-light.hightlighter.css +22 -22
- package/dist/cjs/docs/templates/fading-citrus/stylesheets/landing.css +74 -87
- package/dist/cjs/docs/templates/fading-citrus/template.config.js +106 -15
- package/dist/cjs/docs/types.js +1 -1
- package/dist/esm/docs/run.js +15 -13
- package/dist/esm/docs/templates/fading-citrus/README.md +772 -0
- package/dist/esm/docs/templates/fading-citrus/assets/logo.dark.svg +8 -0
- package/dist/esm/docs/templates/fading-citrus/assets/logo.light.svg +8 -0
- package/dist/esm/docs/templates/fading-citrus/assets/logo.svg +8 -0
- package/dist/esm/docs/templates/fading-citrus/layouts/_footer.js +13 -6
- package/dist/esm/docs/templates/fading-citrus/layouts/_head-meta.js +3 -2
- package/dist/esm/docs/templates/fading-citrus/layouts/_header.js +9 -4
- package/dist/esm/docs/templates/fading-citrus/layouts/document.js +3 -2
- package/dist/esm/docs/templates/fading-citrus/layouts/landing.js +4 -2
- package/dist/esm/docs/templates/fading-citrus/stylesheets/common.css +135 -50
- package/dist/esm/docs/templates/fading-citrus/stylesheets/documentation.css +32 -24
- package/dist/esm/docs/templates/fading-citrus/stylesheets/github-dark.hightlighter.css +12 -12
- package/dist/esm/docs/templates/fading-citrus/stylesheets/github-light.hightlighter.css +22 -22
- package/dist/esm/docs/templates/fading-citrus/stylesheets/landing.css +74 -87
- package/dist/esm/docs/templates/fading-citrus/template.config.js +106 -15
- package/dist/types/docs/types.d.ts +4 -2
- package/package.json +1 -1
- package/dist/cjs/docs/templates/fading-citrus/assets/before-semicolon-logo.png +0 -0
- package/dist/cjs/docs/templates/fading-citrus/layouts/_logo.js +0 -31
- package/dist/esm/docs/templates/fading-citrus/assets/before-semicolon-logo.png +0 -0
- package/dist/esm/docs/templates/fading-citrus/layouts/_logo.js +0 -31
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 60" role="img" aria-label="Fading Citrus">
|
|
2
|
+
<g fill="none" fill-rule="evenodd">
|
|
3
|
+
<circle cx="30" cy="30" r="23" fill="#f97316" />
|
|
4
|
+
<path d="M30 7a23 23 0 0 1 23 23H30z" fill="#22d3ee" opacity=".9" />
|
|
5
|
+
<path d="M30 7a23 23 0 0 0 0 46 23 23 0 0 1 0-46z" fill="#fff7ed" opacity=".35" />
|
|
6
|
+
<text x="68" y="37" fill="#f8fafc" font-family="Inter, Arial, sans-serif" font-size="22" font-weight="700">Docs</text>
|
|
7
|
+
</g>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 60" role="img" aria-label="Fading Citrus">
|
|
2
|
+
<g fill="none" fill-rule="evenodd">
|
|
3
|
+
<circle cx="30" cy="30" r="23" fill="#f97316" />
|
|
4
|
+
<path d="M30 7a23 23 0 0 1 23 23H30z" fill="#0891b2" opacity=".9" />
|
|
5
|
+
<path d="M30 7a23 23 0 0 0 0 46 23 23 0 0 1 0-46z" fill="#fff7ed" opacity=".35" />
|
|
6
|
+
<text x="68" y="37" fill="#111827" font-family="Inter, Arial, sans-serif" font-size="22" font-weight="700">Docs</text>
|
|
7
|
+
</g>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 60" role="img" aria-label="Fading Citrus">
|
|
2
|
+
<g fill="none" fill-rule="evenodd">
|
|
3
|
+
<circle cx="30" cy="30" r="23" fill="#f97316" />
|
|
4
|
+
<path d="M30 7a23 23 0 0 1 23 23H30z" fill="#22d3ee" opacity=".9" />
|
|
5
|
+
<path d="M30 7a23 23 0 0 0 0 46 23 23 0 0 1 0-46z" fill="#fff7ed" opacity=".35" />
|
|
6
|
+
<text x="68" y="37" fill="#f8fafc" font-family="Inter, Arial, sans-serif" font-size="22" font-weight="700">Docs</text>
|
|
7
|
+
</g>
|
|
8
|
+
</svg>
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import logo from './_logo.js'
|
|
2
|
-
|
|
3
1
|
const social = [
|
|
4
2
|
{
|
|
5
3
|
link: 'https://medium.com/before-semicolon',
|
|
@@ -33,11 +31,20 @@ const social = [
|
|
|
33
31
|
},
|
|
34
32
|
]
|
|
35
33
|
|
|
36
|
-
export default () =>
|
|
34
|
+
export default (props = {}) => {
|
|
35
|
+
const siteName =
|
|
36
|
+
props.projectMeta?.name || props.name || props.title || 'Documentation'
|
|
37
|
+
const logo = `
|
|
38
|
+
<span class="site-logo-pair">
|
|
39
|
+
<img class="site-logo site-logo-dark" src="/assets/logo.dark.svg" alt="${siteName} logo" width="100" height="30" />
|
|
40
|
+
<img class="site-logo site-logo-light" src="/assets/logo.light.svg" alt="" width="100" height="30" aria-hidden="true" />
|
|
41
|
+
</span>`
|
|
42
|
+
|
|
43
|
+
return `
|
|
37
44
|
<footer class="site-footer">
|
|
38
45
|
<div class="footer-inner wrapper">
|
|
39
46
|
<div class="footer-brand">
|
|
40
|
-
${logo
|
|
47
|
+
${logo}
|
|
41
48
|
<p>A reactive HTML templating system for building dynamic UIs with pure JavaScript. No build step. No virtual DOM.</p>
|
|
42
49
|
</div>
|
|
43
50
|
<ul class="footer-links">
|
|
@@ -57,16 +64,16 @@ export default () => `
|
|
|
57
64
|
.map(
|
|
58
65
|
(s) => `
|
|
59
66
|
<a href="${s.link}" rel="noopener" target="_blank" aria-label="${s.name}">
|
|
60
|
-
<
|
|
67
|
+
<span class="footer-social-icon" style="--icon: url('/${s.icon}')" aria-hidden="true"></span>
|
|
61
68
|
</a>
|
|
62
69
|
`
|
|
63
70
|
)
|
|
64
71
|
.join('')}
|
|
65
72
|
</div>
|
|
66
73
|
<div class="footer-credit">
|
|
67
|
-
<img width="20" height="20" src="/assets/before-semicolon-logo.png" alt="Before Semicolon logo" />
|
|
68
74
|
<span>Copyright © ${new Date().getFullYear()} Before Semicolon. All rights reserved.</span>
|
|
69
75
|
</div>
|
|
70
76
|
</div>
|
|
71
77
|
</footer>
|
|
72
78
|
`
|
|
79
|
+
}
|
|
@@ -131,7 +131,7 @@ const pageJson = ({ title, description, path, name }) => {
|
|
|
131
131
|
url: 'https://beforesemicolon.com',
|
|
132
132
|
logo: {
|
|
133
133
|
'@type': 'ImageObject',
|
|
134
|
-
url: `${siteUrl}/assets/
|
|
134
|
+
url: `${siteUrl}/assets/logo.svg`,
|
|
135
135
|
},
|
|
136
136
|
},
|
|
137
137
|
mainEntityOfPage: url,
|
|
@@ -164,6 +164,7 @@ export default (props = {}) => {
|
|
|
164
164
|
const url = absoluteUrl(props.path)
|
|
165
165
|
const canonical = escapeHTML(url)
|
|
166
166
|
const image = props.image || defaultImage
|
|
167
|
+
const cacheKey = props.cacheKey ? `?v=${escapeHTML(props.cacheKey)}` : ''
|
|
167
168
|
const type = canonicalPath(props.path).startsWith('/documentation')
|
|
168
169
|
? 'article'
|
|
169
170
|
: 'website'
|
|
@@ -211,7 +212,7 @@ export default (props = {}) => {
|
|
|
211
212
|
<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon/favicon-16x16.png" />
|
|
212
213
|
<link rel="manifest" href="/assets/favicon/site.webmanifest" />
|
|
213
214
|
<link rel="icon" type="image/x-icon" href="/assets/favicon/favicon.ico" />
|
|
214
|
-
<link rel="stylesheet" href="/stylesheets/github-dark.hightlighter.css">
|
|
215
|
+
<link rel="stylesheet" href="/stylesheets/github-dark.hightlighter.css${cacheKey}">
|
|
215
216
|
${jsonScript(pageJson({ ...props, title, description }))}
|
|
216
217
|
${jsonScript(breadcrumbJson({ title, path: props.path }))}
|
|
217
218
|
${
|
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
import logo from './_logo.js'
|
|
2
|
-
|
|
3
1
|
export default (props = {}) => {
|
|
4
2
|
const isDocs = props.path?.startsWith('/documentation')
|
|
3
|
+
const siteName =
|
|
4
|
+
props.projectMeta?.name || props.name || props.title || 'Documentation'
|
|
5
|
+
const logo = `
|
|
6
|
+
<span class="site-logo-pair">
|
|
7
|
+
<img class="site-logo site-logo-dark" src="/assets/logo.dark.svg" alt="${siteName} logo" width="90" height="27" />
|
|
8
|
+
<img class="site-logo site-logo-light" src="/assets/logo.light.svg" alt="" width="90" height="27" aria-hidden="true" />
|
|
9
|
+
</span>`
|
|
5
10
|
|
|
6
11
|
return `
|
|
7
12
|
<header class="site-header">
|
|
8
13
|
<div class="header-inner wrapper">
|
|
9
14
|
<h1>
|
|
10
|
-
<a href="/" aria-label="
|
|
11
|
-
${logo
|
|
15
|
+
<a href="/" aria-label="${siteName} home">
|
|
16
|
+
${logo}
|
|
12
17
|
</a>
|
|
13
18
|
</h1>
|
|
14
19
|
${
|
|
@@ -26,6 +26,7 @@ const navCategoryToHTML = (docs, currentPath) =>
|
|
|
26
26
|
export default (props) => {
|
|
27
27
|
const docs = props.siteMap.get('documentation')
|
|
28
28
|
const isDocsIndex = props.path === '/documentation/index.html'
|
|
29
|
+
const cacheKey = props.cacheKey ? `?v=${props.cacheKey}` : ''
|
|
29
30
|
const docsMenu = `<ul>${navCategoryToHTML(docs, props.path)}</ul>`
|
|
30
31
|
const pages = [...docs.values()].flatMap((page) =>
|
|
31
32
|
page instanceof Map ? [...page.values()] : [page]
|
|
@@ -45,7 +46,7 @@ export default (props) => {
|
|
|
45
46
|
<html lang="en">
|
|
46
47
|
<head>
|
|
47
48
|
${meta(props)}
|
|
48
|
-
<link rel="stylesheet" href="/stylesheets/documentation.css
|
|
49
|
+
<link rel="stylesheet" href="/stylesheets/documentation.css${cacheKey}">
|
|
49
50
|
${
|
|
50
51
|
props.themeStylesheet
|
|
51
52
|
? `<link rel="stylesheet" href="${props.themeStylesheet}">`
|
|
@@ -86,7 +87,7 @@ export default (props) => {
|
|
|
86
87
|
</aside>
|
|
87
88
|
</main>
|
|
88
89
|
|
|
89
|
-
${footer()}
|
|
90
|
+
${footer(props)}
|
|
90
91
|
${props.scripts?.join('') || ''}
|
|
91
92
|
|
|
92
93
|
</body>
|
|
@@ -3,12 +3,14 @@ import header from './_header.js'
|
|
|
3
3
|
import footer from './_footer.js'
|
|
4
4
|
|
|
5
5
|
export default (props) => {
|
|
6
|
+
const cacheKey = props.cacheKey ? `?v=${props.cacheKey}` : ''
|
|
7
|
+
|
|
6
8
|
return `
|
|
7
9
|
<!doctype html>
|
|
8
10
|
<html lang="en">
|
|
9
11
|
<head>
|
|
10
12
|
${meta(props)}
|
|
11
|
-
<link rel="stylesheet" href="/stylesheets/landing.css
|
|
13
|
+
<link rel="stylesheet" href="/stylesheets/landing.css${cacheKey}">
|
|
12
14
|
${
|
|
13
15
|
props.themeStylesheet
|
|
14
16
|
? `<link rel="stylesheet" href="${props.themeStylesheet}">`
|
|
@@ -18,7 +20,7 @@ export default (props) => {
|
|
|
18
20
|
<body>
|
|
19
21
|
${header(props)}
|
|
20
22
|
${props.content}
|
|
21
|
-
${footer()}
|
|
23
|
+
${footer(props)}
|
|
22
24
|
${props.scripts?.join('') || ''}
|
|
23
25
|
</body>
|
|
24
26
|
</html>
|
|
@@ -4,23 +4,60 @@
|
|
|
4
4
|
:root {
|
|
5
5
|
--background: oklch(0.18 0.015 250);
|
|
6
6
|
--foreground: oklch(0.96 0.005 250);
|
|
7
|
+
--heading: var(--foreground);
|
|
7
8
|
--card: oklch(0.22 0.018 250);
|
|
8
9
|
--primary: oklch(0.74 0.18 45);
|
|
9
10
|
--primary-glow: oklch(0.78 0.19 50);
|
|
10
11
|
--primary-foreground: oklch(0.18 0.02 250);
|
|
12
|
+
--primary-soft: color-mix(in oklch, var(--primary) 12%, transparent);
|
|
13
|
+
--primary-softer: color-mix(in oklch, var(--primary) 6%, transparent);
|
|
14
|
+
--primary-border: color-mix(in oklch, var(--primary) 45%, transparent);
|
|
11
15
|
--secondary: oklch(0.27 0.02 250);
|
|
12
16
|
--muted: oklch(0.25 0.018 250);
|
|
13
17
|
--muted-foreground: oklch(0.68 0.02 250);
|
|
14
18
|
--accent: oklch(0.7 0.16 200);
|
|
19
|
+
--accent-soft: color-mix(in oklch, var(--accent) 12%, transparent);
|
|
20
|
+
--accent-softer: color-mix(in oklch, var(--accent) 6%, transparent);
|
|
21
|
+
--accent-border: color-mix(in oklch, var(--accent) 35%, transparent);
|
|
15
22
|
--border: oklch(0.3 0.02 250);
|
|
16
23
|
--ring: oklch(0.74 0.18 45);
|
|
17
24
|
--radius: 0.75rem;
|
|
25
|
+
--surface: color-mix(in oklch, var(--card) 40%, transparent);
|
|
26
|
+
--surface-muted: color-mix(in oklch, var(--card) 60%, transparent);
|
|
27
|
+
--surface-hover: color-mix(in oklch, var(--card) 70%, transparent);
|
|
28
|
+
--surface-border: color-mix(in oklch, var(--border) 65%, transparent);
|
|
29
|
+
--surface-border-strong: color-mix(
|
|
30
|
+
in oklch,
|
|
31
|
+
var(--foreground) 20%,
|
|
32
|
+
transparent
|
|
33
|
+
);
|
|
34
|
+
--header-bg: color-mix(in oklch, var(--background) 60%, transparent);
|
|
35
|
+
--footer-bg: color-mix(in oklch, var(--background) 88%, black 12%);
|
|
36
|
+
--grid-line: color-mix(in oklch, var(--foreground) 5%, transparent);
|
|
37
|
+
--inline-code-bg: color-mix(
|
|
38
|
+
in oklch,
|
|
39
|
+
var(--background) 82%,
|
|
40
|
+
var(--foreground) 8%
|
|
41
|
+
);
|
|
18
42
|
--code-bg: oklch(0.16 0.015 250);
|
|
43
|
+
--code-header-bg: color-mix(in oklch, var(--card) 60%, transparent);
|
|
44
|
+
--code-border: var(--surface-border);
|
|
45
|
+
--code-line-number: color-mix(
|
|
46
|
+
in oklch,
|
|
47
|
+
var(--muted-foreground) 65%,
|
|
48
|
+
transparent
|
|
49
|
+
);
|
|
50
|
+
--success: oklch(0.78 0.15 145);
|
|
51
|
+
--success-soft: color-mix(in oklch, var(--success) 14%, transparent);
|
|
52
|
+
--warning: oklch(0.78 0.14 90);
|
|
53
|
+
--warning-soft: color-mix(in oklch, var(--warning) 14%, transparent);
|
|
54
|
+
--danger: oklch(0.62 0.22 25);
|
|
55
|
+
--danger-soft: color-mix(in oklch, var(--danger) 14%, transparent);
|
|
19
56
|
--syntax-comment: oklch(0.55 0.02 250);
|
|
20
|
-
--syntax-keyword:
|
|
21
|
-
--syntax-string:
|
|
22
|
-
--syntax-tag:
|
|
23
|
-
--syntax-attr:
|
|
57
|
+
--syntax-keyword: var(--primary);
|
|
58
|
+
--syntax-string: var(--success);
|
|
59
|
+
--syntax-tag: var(--accent);
|
|
60
|
+
--syntax-attr: var(--warning);
|
|
24
61
|
|
|
25
62
|
--font-sans:
|
|
26
63
|
ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI',
|
|
@@ -32,7 +69,7 @@
|
|
|
32
69
|
|
|
33
70
|
--gradient-hero: radial-gradient(
|
|
34
71
|
ellipse at top,
|
|
35
|
-
|
|
72
|
+
color-mix(in oklch, var(--primary) 26%, transparent),
|
|
36
73
|
transparent 60%
|
|
37
74
|
);
|
|
38
75
|
--gradient-primary: linear-gradient(
|
|
@@ -47,10 +84,11 @@
|
|
|
47
84
|
);
|
|
48
85
|
--gradient-border: linear-gradient(
|
|
49
86
|
135deg,
|
|
50
|
-
|
|
51
|
-
|
|
87
|
+
color-mix(in oklch, var(--primary) 50%, transparent),
|
|
88
|
+
color-mix(in oklch, var(--accent) 30%, transparent)
|
|
52
89
|
);
|
|
53
|
-
--shadow-glow: 0 0 60px -15px
|
|
90
|
+
--shadow-glow: 0 0 60px -15px
|
|
91
|
+
color-mix(in oklch, var(--primary) 50%, transparent);
|
|
54
92
|
--shadow-card:
|
|
55
93
|
0 1px 0 0 oklch(1 0 0 / 0.05) inset,
|
|
56
94
|
0 20px 40px -20px oklch(0 0 0 / 0.5);
|
|
@@ -111,7 +149,7 @@ h4,
|
|
|
111
149
|
h5,
|
|
112
150
|
h6 {
|
|
113
151
|
font-family: var(--font-title);
|
|
114
|
-
color:
|
|
152
|
+
color: var(--heading);
|
|
115
153
|
font-weight: 800;
|
|
116
154
|
}
|
|
117
155
|
|
|
@@ -194,8 +232,8 @@ ul {
|
|
|
194
232
|
.bg-grid {
|
|
195
233
|
background-size: 48px 48px;
|
|
196
234
|
background-image:
|
|
197
|
-
linear-gradient(to right,
|
|
198
|
-
linear-gradient(to bottom,
|
|
235
|
+
linear-gradient(to right, var(--grid-line) 1px, transparent 1px),
|
|
236
|
+
linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);
|
|
199
237
|
mask-image: radial-gradient(
|
|
200
238
|
ellipse 80% 60% at 50% 0%,
|
|
201
239
|
black 30%,
|
|
@@ -246,8 +284,8 @@ ul {
|
|
|
246
284
|
header {
|
|
247
285
|
height: 4rem;
|
|
248
286
|
max-width: 1280px;
|
|
249
|
-
border-bottom: 1px solid
|
|
250
|
-
background-color:
|
|
287
|
+
border-bottom: 1px solid var(--surface-border);
|
|
288
|
+
background-color: var(--header-bg);
|
|
251
289
|
backdrop-filter: blur(16px);
|
|
252
290
|
-webkit-backdrop-filter: blur(16px);
|
|
253
291
|
display: flex;
|
|
@@ -315,18 +353,18 @@ header nav a.github-link {
|
|
|
315
353
|
height: 36px;
|
|
316
354
|
display: inline-grid;
|
|
317
355
|
place-items: center;
|
|
318
|
-
border: 1px solid
|
|
356
|
+
border: 1px solid var(--surface-border);
|
|
319
357
|
border-radius: 8px;
|
|
320
358
|
}
|
|
321
359
|
|
|
322
360
|
header nav a.github-link:hover {
|
|
323
|
-
border-color:
|
|
361
|
+
border-color: var(--primary-border);
|
|
324
362
|
color: var(--primary);
|
|
325
363
|
}
|
|
326
364
|
|
|
327
365
|
/* footer ------------------- */
|
|
328
366
|
footer {
|
|
329
|
-
background:
|
|
367
|
+
background: var(--footer-bg);
|
|
330
368
|
color: var(--muted-foreground);
|
|
331
369
|
border-top: 1px solid var(--border);
|
|
332
370
|
padding-top: 60px;
|
|
@@ -341,9 +379,8 @@ footer .footer-brand {
|
|
|
341
379
|
min-width: 280px;
|
|
342
380
|
}
|
|
343
381
|
|
|
344
|
-
footer .footer-brand
|
|
382
|
+
footer .footer-brand .site-logo-pair {
|
|
345
383
|
margin-bottom: 16px;
|
|
346
|
-
display: block;
|
|
347
384
|
}
|
|
348
385
|
|
|
349
386
|
footer .footer-brand p {
|
|
@@ -398,7 +435,7 @@ footer address a {
|
|
|
398
435
|
height: 32px;
|
|
399
436
|
border-radius: 6px;
|
|
400
437
|
border: 1px solid var(--border);
|
|
401
|
-
background:
|
|
438
|
+
background: var(--surface);
|
|
402
439
|
transition: all 0.2s ease;
|
|
403
440
|
}
|
|
404
441
|
|
|
@@ -410,7 +447,7 @@ footer address a img {
|
|
|
410
447
|
|
|
411
448
|
footer address a:hover {
|
|
412
449
|
border-color: var(--primary);
|
|
413
|
-
background:
|
|
450
|
+
background: var(--primary-softer);
|
|
414
451
|
}
|
|
415
452
|
|
|
416
453
|
footer address a:hover img {
|
|
@@ -419,7 +456,7 @@ footer address a:hover img {
|
|
|
419
456
|
|
|
420
457
|
footer .copyright-section {
|
|
421
458
|
width: 100%;
|
|
422
|
-
border-top: 1px solid
|
|
459
|
+
border-top: 1px solid var(--surface-border);
|
|
423
460
|
padding-top: 24px;
|
|
424
461
|
margin-top: 20px;
|
|
425
462
|
display: flex;
|
|
@@ -445,7 +482,7 @@ footer .copyright-section .brand-logo-container img {
|
|
|
445
482
|
.code-snippet {
|
|
446
483
|
background: var(--code-bg);
|
|
447
484
|
border-radius: 0.75rem;
|
|
448
|
-
border: 1px solid
|
|
485
|
+
border: 1px solid var(--code-border);
|
|
449
486
|
margin: 16px 0;
|
|
450
487
|
width: 100%;
|
|
451
488
|
max-width: 100%;
|
|
@@ -464,8 +501,8 @@ footer .copyright-section .brand-logo-container img {
|
|
|
464
501
|
align-items: center;
|
|
465
502
|
gap: 12px;
|
|
466
503
|
padding: 0 10px 0 16px;
|
|
467
|
-
background:
|
|
468
|
-
border-bottom: 1px solid
|
|
504
|
+
background: var(--code-header-bg);
|
|
505
|
+
border-bottom: 1px solid var(--code-border);
|
|
469
506
|
}
|
|
470
507
|
|
|
471
508
|
.code-snippet .mac-dots {
|
|
@@ -481,15 +518,15 @@ footer .copyright-section .brand-logo-container img {
|
|
|
481
518
|
}
|
|
482
519
|
|
|
483
520
|
.code-snippet .mac-dots .dot-red {
|
|
484
|
-
background-color:
|
|
521
|
+
background-color: color-mix(in oklch, var(--danger) 70%, transparent);
|
|
485
522
|
}
|
|
486
523
|
|
|
487
524
|
.code-snippet .mac-dots .dot-yellow {
|
|
488
|
-
background-color:
|
|
525
|
+
background-color: color-mix(in oklch, var(--warning) 70%, transparent);
|
|
489
526
|
}
|
|
490
527
|
|
|
491
528
|
.code-snippet .mac-dots .dot-green {
|
|
492
|
-
background-color:
|
|
529
|
+
background-color: color-mix(in oklch, var(--success) 70%, transparent);
|
|
493
530
|
}
|
|
494
531
|
|
|
495
532
|
.code-snippet .filename {
|
|
@@ -571,7 +608,7 @@ footer .copyright-section .brand-logo-container img {
|
|
|
571
608
|
padding-right: 16px;
|
|
572
609
|
flex-shrink: 0;
|
|
573
610
|
text-align: right;
|
|
574
|
-
color:
|
|
611
|
+
color: var(--code-line-number);
|
|
575
612
|
}
|
|
576
613
|
|
|
577
614
|
.code-snippet .line-code {
|
|
@@ -614,16 +651,16 @@ footer .copyright-section .brand-logo-container img {
|
|
|
614
651
|
.code-snippet .code-copy-btn::after {
|
|
615
652
|
top: 7px;
|
|
616
653
|
left: 12px;
|
|
617
|
-
background:
|
|
654
|
+
background: var(--code-header-bg);
|
|
618
655
|
}
|
|
619
656
|
|
|
620
657
|
.code-snippet .code-copy-btn:hover {
|
|
621
658
|
color: var(--foreground);
|
|
622
|
-
background:
|
|
659
|
+
background: var(--surface-muted);
|
|
623
660
|
}
|
|
624
661
|
|
|
625
662
|
.code-snippet .code-copy-btn.copied {
|
|
626
|
-
color:
|
|
663
|
+
color: var(--success);
|
|
627
664
|
}
|
|
628
665
|
|
|
629
666
|
@media screen and (max-width: 768px) {
|
|
@@ -663,8 +700,52 @@ header.site-header .header-inner {
|
|
|
663
700
|
justify-content: space-between;
|
|
664
701
|
}
|
|
665
702
|
|
|
666
|
-
|
|
703
|
+
.site-logo-pair {
|
|
704
|
+
display: inline-grid;
|
|
705
|
+
align-items: center;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
.site-logo-pair .site-logo {
|
|
709
|
+
grid-area: 1 / 1;
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
.site-logo-light {
|
|
713
|
+
display: block;
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
.site-logo-dark {
|
|
717
|
+
display: none;
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
@media (prefers-color-scheme: dark) {
|
|
721
|
+
.site-logo-light {
|
|
722
|
+
display: none;
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
.site-logo-dark {
|
|
726
|
+
display: block;
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
[data-theme='light'] .site-logo-light {
|
|
731
|
+
display: block;
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
[data-theme='light'] .site-logo-dark {
|
|
735
|
+
display: none;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
[data-theme='dark'] .site-logo-light {
|
|
739
|
+
display: none;
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
[data-theme='dark'] .site-logo-dark {
|
|
743
|
+
display: block;
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
header.site-header h1 a .site-logo {
|
|
667
747
|
height: 28px;
|
|
748
|
+
width: auto;
|
|
668
749
|
}
|
|
669
750
|
|
|
670
751
|
header.site-header nav a {
|
|
@@ -689,7 +770,7 @@ header.site-header nav a.docs-github-link {
|
|
|
689
770
|
}
|
|
690
771
|
|
|
691
772
|
.site-footer {
|
|
692
|
-
border-top: 1px solid
|
|
773
|
+
border-top: 1px solid var(--surface-border);
|
|
693
774
|
background: transparent;
|
|
694
775
|
padding: 56px 0 36px;
|
|
695
776
|
}
|
|
@@ -704,10 +785,9 @@ header.site-header nav a.docs-github-link {
|
|
|
704
785
|
gap: 40px;
|
|
705
786
|
}
|
|
706
787
|
|
|
707
|
-
.site-footer .footer-brand
|
|
788
|
+
.site-footer .footer-brand .site-logo {
|
|
708
789
|
height: 28px;
|
|
709
790
|
width: auto;
|
|
710
|
-
color: var(--foreground);
|
|
711
791
|
}
|
|
712
792
|
|
|
713
793
|
.site-footer .footer-brand p {
|
|
@@ -747,11 +827,12 @@ header.site-header nav a.docs-github-link {
|
|
|
747
827
|
|
|
748
828
|
.footer-credit {
|
|
749
829
|
grid-column: 1 / -1;
|
|
750
|
-
border-top: 1px solid
|
|
830
|
+
border-top: 1px solid var(--surface-border);
|
|
751
831
|
padding-top: 24px;
|
|
752
832
|
display: flex;
|
|
753
833
|
align-items: center;
|
|
754
|
-
|
|
834
|
+
justify-content: center;
|
|
835
|
+
text-align: center;
|
|
755
836
|
font-size: 0.8125rem;
|
|
756
837
|
}
|
|
757
838
|
|
|
@@ -769,25 +850,33 @@ header.site-header nav a.docs-github-link {
|
|
|
769
850
|
display: grid;
|
|
770
851
|
place-items: center;
|
|
771
852
|
border-radius: 6px;
|
|
772
|
-
border: 1px solid
|
|
853
|
+
border: 1px solid var(--surface-border);
|
|
773
854
|
color: var(--muted-foreground);
|
|
774
|
-
background:
|
|
855
|
+
background: var(--surface);
|
|
775
856
|
transition: all 0.2s ease;
|
|
776
857
|
}
|
|
777
858
|
|
|
778
|
-
.footer-social
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
859
|
+
.footer-social-icon {
|
|
860
|
+
width: 16px;
|
|
861
|
+
height: 16px;
|
|
862
|
+
display: block;
|
|
863
|
+
background-color: var(--muted-foreground);
|
|
864
|
+
opacity: 0.72;
|
|
865
|
+
mask: var(--icon) center / contain no-repeat;
|
|
866
|
+
-webkit-mask: var(--icon) center / contain no-repeat;
|
|
867
|
+
transition:
|
|
868
|
+
background-color 0.2s ease,
|
|
869
|
+
opacity 0.2s ease;
|
|
782
870
|
}
|
|
783
871
|
|
|
784
872
|
.footer-social a:hover {
|
|
785
873
|
color: var(--primary);
|
|
786
|
-
border-color:
|
|
787
|
-
background:
|
|
874
|
+
border-color: var(--primary-border);
|
|
875
|
+
background: var(--primary-softer);
|
|
788
876
|
}
|
|
789
877
|
|
|
790
|
-
.footer-social a:hover
|
|
878
|
+
.footer-social a:hover .footer-social-icon {
|
|
879
|
+
background-color: var(--primary);
|
|
791
880
|
opacity: 1;
|
|
792
881
|
}
|
|
793
882
|
|
|
@@ -808,8 +897,4 @@ header.site-header nav a.docs-github-link {
|
|
|
808
897
|
.footer-social {
|
|
809
898
|
justify-content: flex-start;
|
|
810
899
|
}
|
|
811
|
-
|
|
812
|
-
.footer-credit {
|
|
813
|
-
align-items: flex-start;
|
|
814
|
-
}
|
|
815
900
|
}
|