@hutusi/amytis 1.15.0 → 1.17.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.
- package/.claude/rules/immersive-reading.md +21 -0
- package/.claude/rules/rst.md +13 -0
- package/CHANGELOG.md +42 -0
- package/CLAUDE.md +89 -219
- package/bun.lock +185 -547
- package/content/books/sample-book/index.mdx +3 -0
- package/content/posts/code-block-features-showcase.mdx +223 -0
- package/docs/ALERTS.md +112 -0
- package/docs/ARCHITECTURE.md +298 -5
- package/docs/CODE-BLOCKS.md +238 -0
- package/docs/CONTRIBUTING.md +25 -0
- package/docs/DIGITAL_GARDEN.md +1 -1
- package/docs/guides/README.md +11 -0
- package/docs/guides/importing-vuepress-books.md +237 -0
- package/eslint.config.mjs +18 -6
- package/package.json +42 -20
- package/scripts/generate-code-group-icons.ts +79 -0
- package/scripts/render-rst.py +207 -3
- package/scripts/sync-vuepress-book.ts +710 -0
- package/site.config.example.ts +3 -3
- package/site.config.ts +3 -3
- package/src/app/[slug]/layout.tsx +30 -0
- package/src/app/books/[slug]/{[chapter] → [...chapter]}/page.tsx +32 -10
- package/src/app/books/[slug]/layout.tsx +24 -0
- package/src/app/books/[slug]/page.tsx +85 -34
- package/src/app/globals.css +570 -123
- package/src/app/page.tsx +7 -1
- package/src/app/posts/layout.tsx +20 -0
- package/src/app/series/[slug]/page.tsx +33 -9
- package/src/app/sitemap.ts +3 -3
- package/src/components/ArticleCopyCleaner.tsx +64 -0
- package/src/components/BookMobileNav.tsx +44 -50
- package/src/components/BookReadingShell.tsx +145 -0
- package/src/components/BookSidebar.tsx +0 -0
- package/src/components/CodeBlock.test.tsx +93 -8
- package/src/components/CodeBlock.tsx +39 -101
- package/src/components/CodeBlockToolbar.tsx +88 -0
- package/src/components/CodeGroup.tsx +81 -0
- package/src/components/CoverImage.tsx +1 -0
- package/src/components/CuratedSeriesSection.tsx +28 -10
- package/src/components/ExternalLinkIcon.tsx +15 -0
- package/src/components/FeaturedStoriesSection.tsx +44 -23
- package/src/components/Footer.tsx +1 -1
- package/src/components/GithubAlert.tsx +97 -0
- package/src/components/ImmersiveReader.tsx +130 -0
- package/src/components/ImmersiveReaderTopBar.tsx +106 -0
- package/src/components/ImmersiveReadingFlagHandler.tsx +40 -0
- package/src/components/ImmersiveReadingPrefsPopover.tsx +249 -0
- package/src/components/ImmersiveReadingProvider.tsx +168 -0
- package/src/components/ImmersiveSeriesSidebar.tsx +143 -0
- package/src/components/ImmersiveToggleButton.tsx +45 -0
- package/src/components/MarkdownRenderer.test.tsx +14 -4
- package/src/components/MarkdownRenderer.tsx +175 -23
- package/src/components/Mermaid.tsx +32 -1
- package/src/components/Navbar.tsx +3 -1
- package/src/components/PostList.tsx +1 -1
- package/src/components/PostNavigation.tsx +13 -2
- package/src/components/PostReadingShell.tsx +68 -0
- package/src/components/PostSidebar.tsx +13 -2
- package/src/components/ReadingProgressBar.tsx +1 -1
- package/src/components/RstRenderer.test.tsx +15 -15
- package/src/components/RstRenderer.tsx +37 -2
- package/src/components/Search.tsx +18 -4
- package/src/components/SelectedBooksSection.tsx +27 -8
- package/src/components/SeriesCatalog.tsx +1 -1
- package/src/components/ShareBar.tsx +5 -0
- package/src/components/TocPanel.tsx +10 -2
- package/src/hooks/useActiveHeading.ts +35 -13
- package/src/hooks/useSidebarAutoScroll.ts +31 -7
- package/src/i18n/translations.ts +44 -0
- package/src/layouts/BookLayout.tsx +62 -74
- package/src/layouts/PostLayout.tsx +154 -111
- package/src/lib/code-group-icons.test.ts +78 -0
- package/src/lib/code-group-icons.ts +148 -0
- package/src/lib/immersive-reading-prefs.ts +104 -0
- package/src/lib/markdown.test.ts +56 -13
- package/src/lib/markdown.ts +217 -57
- package/src/lib/normalize-vuepress-math.ts +118 -0
- package/src/lib/rehype-fence-meta.ts +22 -0
- package/src/lib/remark-book-chapter-links.ts +106 -0
- package/src/lib/remark-code-group.ts +54 -0
- package/src/lib/remark-github-alerts.test.ts +83 -0
- package/src/lib/remark-github-alerts.ts +65 -0
- package/src/lib/remark-vuepress-containers.ts +130 -0
- package/src/lib/rst-renderer.ts +19 -7
- package/src/lib/rst.test.ts +212 -2
- package/src/lib/rst.ts +217 -13
- package/src/lib/scroll-utils.ts +44 -6
- package/src/lib/shiki-rst.ts +185 -0
- package/src/lib/shiki.test.ts +153 -0
- package/src/lib/shiki.ts +292 -0
- package/src/lib/shuffle.ts +15 -1
- package/src/lib/sort.ts +15 -0
- package/src/lib/urls.ts +62 -0
- package/src/test-utils/render.ts +23 -0
- package/tests/fixtures/sync-vuepress-book/docs/.vuepress/config.js +43 -0
- package/tests/fixtures/sync-vuepress-book/docs/intro/welcome.md +7 -0
- package/tests/fixtures/sync-vuepress-book/docs/maths/linear/assets/diagram.png +1 -0
- package/tests/fixtures/sync-vuepress-book/docs/maths/linear/matrices.md +7 -0
- package/tests/fixtures/sync-vuepress-book/docs/maths/linear/vectors.md +9 -0
- package/tests/helpers/env.ts +19 -0
- package/tests/integration/book-chapter-links.test.ts +107 -0
- package/tests/integration/book-index-cta.test.ts +87 -0
- package/tests/integration/books-nested-toc.test.ts +176 -0
- package/tests/integration/books.test.ts +3 -2
- package/tests/integration/code-block-features.test.ts +188 -0
- package/tests/integration/code-group.test.ts +183 -0
- package/tests/integration/code-notation.test.ts +97 -0
- package/tests/integration/github-alerts.test.ts +82 -0
- package/tests/integration/markdown-external-links.test.ts +103 -0
- package/tests/integration/normalize-vuepress-math.test.ts +149 -0
- package/tests/integration/reading-time-headings.test.ts +8 -6
- package/tests/integration/series-draft.test.ts +6 -13
- package/tests/integration/series-index-cta.test.ts +88 -0
- package/tests/integration/sync-vuepress-book.test.ts +443 -0
- package/tests/integration/vuepress-containers.test.ts +107 -0
- package/tests/tooling/new-post.test.ts +1 -1
- package/tests/unit/immersive-reading-prefs.test.ts +144 -0
- package/tests/unit/static-params.test.ts +32 -19
- package/vercel.json +7 -0
package/src/app/globals.css
CHANGED
|
@@ -100,120 +100,387 @@ html {
|
|
|
100
100
|
cursor: default;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
/*
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
103
|
+
/* Shiki dual-theme code blocks (build-time highlighter).
|
|
104
|
+
* Selectors are scoped to .shiki (added by Shiki itself on every <pre>) rather
|
|
105
|
+
* than .cb-root .shiki, so highlighting applies in both the MDX path (wrapped
|
|
106
|
+
* in <div class="cb-root">) and the rST html-path (bare <pre class="shiki">
|
|
107
|
+
* inserted via dangerouslySetInnerHTML). Only the wrap-toggle rules keep the
|
|
108
|
+
* .cb-root scope because that state lives on the toolbar button, MDX-only. */
|
|
109
|
+
/* Reset Shiki's per-token background spans to transparent so our line-level
|
|
110
|
+
* backgrounds (.line.highlighted, .line.diff.add, .line.error, etc.) show
|
|
111
|
+
* through. Scoped to token spans INSIDE .line — never to .line itself, or
|
|
112
|
+
* the highlight backgrounds get clobbered (the line wrapper is also a span). */
|
|
113
|
+
.shiki .line > span {
|
|
114
|
+
background-color: transparent !important;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
html:not(.dark) .shiki,
|
|
118
|
+
html:not(.dark) .shiki span {
|
|
119
|
+
color: var(--shiki-light, var(--foreground));
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
html.dark .shiki,
|
|
123
|
+
html.dark .shiki span {
|
|
124
|
+
color: var(--shiki-dark, var(--foreground));
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.shiki {
|
|
128
|
+
margin: 0;
|
|
129
|
+
padding: 1.25rem 1.5rem;
|
|
108
130
|
font-family: var(--font-mono);
|
|
109
|
-
font-size: 0.
|
|
110
|
-
|
|
111
|
-
text-align: left;
|
|
112
|
-
white-space: pre;
|
|
113
|
-
word-spacing: normal;
|
|
114
|
-
word-break: normal;
|
|
115
|
-
line-height: 1.5;
|
|
131
|
+
font-size: 0.9rem;
|
|
132
|
+
line-height: 1.6;
|
|
116
133
|
tab-size: 4;
|
|
117
|
-
hyphens: none;
|
|
118
134
|
}
|
|
119
135
|
|
|
120
|
-
.
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
136
|
+
.shiki code {
|
|
137
|
+
display: grid;
|
|
138
|
+
background: transparent;
|
|
139
|
+
border: 0;
|
|
140
|
+
padding: 0;
|
|
141
|
+
font: inherit;
|
|
142
|
+
color: inherit;
|
|
143
|
+
white-space: pre;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.shiki .line {
|
|
147
|
+
display: block;
|
|
148
|
+
min-height: 1.6em;
|
|
149
|
+
padding-inline: 1.5rem;
|
|
150
|
+
margin-inline: -1.5rem;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/* Line numbers (opt-in via data-line-numbers on <pre>) */
|
|
154
|
+
.shiki[data-line-numbers="true"] code {
|
|
155
|
+
counter-reset: shiki-line;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.shiki[data-line-numbers="true"] .line::before {
|
|
159
|
+
counter-increment: shiki-line;
|
|
160
|
+
content: counter(shiki-line);
|
|
161
|
+
display: inline-block;
|
|
162
|
+
width: 2.25rem;
|
|
163
|
+
margin-right: 1rem;
|
|
164
|
+
text-align: right;
|
|
124
165
|
color: var(--muted);
|
|
125
|
-
|
|
166
|
+
opacity: 0.55;
|
|
167
|
+
user-select: none;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/* Highlighted lines (via {1,3-5} fence meta or :emphasize-lines:).
|
|
171
|
+
* Tint bumped from 14% so highlighted lines clearly stand out. Spans the full
|
|
172
|
+
* scroll width thanks to `code { display: grid }` above. */
|
|
173
|
+
.shiki .line.highlighted,
|
|
174
|
+
.shiki .line[data-highlighted-line] {
|
|
175
|
+
background: color-mix(in srgb, var(--accent) 22%, transparent);
|
|
176
|
+
border-left: 3px solid var(--accent);
|
|
177
|
+
padding-inline-start: calc(1.5rem - 3px);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
html.dark .shiki .line.highlighted,
|
|
181
|
+
html.dark .shiki .line[data-highlighted-line] {
|
|
182
|
+
background: color-mix(in srgb, var(--accent) 30%, transparent);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/* Diff fence backgrounds (raw + / - lines) */
|
|
186
|
+
.shiki .line.diff.add {
|
|
187
|
+
background: color-mix(in srgb, #16a34a 14%, transparent);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.shiki .line.diff.remove {
|
|
191
|
+
background: color-mix(in srgb, #dc2626 14%, transparent);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
html.dark .shiki .line.diff.add {
|
|
195
|
+
background: color-mix(in srgb, #16a34a 22%, transparent);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
html.dark .shiki .line.diff.remove {
|
|
199
|
+
background: color-mix(in srgb, #dc2626 22%, transparent);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/* Notation: error / warning lines (// [!code error] / [!code warning]).
|
|
203
|
+
* Shared with the existing diff colors but with a left border accent so they
|
|
204
|
+
* read as line-level annotations rather than block-wide states. */
|
|
205
|
+
.shiki .line.error {
|
|
206
|
+
background: color-mix(in srgb, #dc2626 12%, transparent);
|
|
207
|
+
border-left: 3px solid #dc2626;
|
|
208
|
+
padding-inline-start: calc(1.5rem - 3px);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.shiki .line.warning {
|
|
212
|
+
background: color-mix(in srgb, #eab308 14%, transparent);
|
|
213
|
+
border-left: 3px solid #eab308;
|
|
214
|
+
padding-inline-start: calc(1.5rem - 3px);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
html.dark .shiki .line.error {
|
|
218
|
+
background: color-mix(in srgb, #dc2626 20%, transparent);
|
|
126
219
|
}
|
|
127
220
|
|
|
128
|
-
.
|
|
221
|
+
html.dark .shiki .line.warning {
|
|
222
|
+
background: color-mix(in srgb, #eab308 20%, transparent);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/* Notation: focus (// [!code focus]).
|
|
226
|
+
* Non-focused lines fade to make the focused subset stand out; hovering the
|
|
227
|
+
* <pre> reverts the dim so readers can scan the full block on demand. */
|
|
228
|
+
.shiki.has-focused .line:not(.focused) {
|
|
229
|
+
opacity: 0.5;
|
|
230
|
+
filter: blur(1px);
|
|
231
|
+
transition: opacity 180ms ease, filter 180ms ease;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
.shiki.has-focused:hover .line:not(.focused),
|
|
235
|
+
.shiki.has-focused:focus-within .line:not(.focused) {
|
|
236
|
+
opacity: 1;
|
|
237
|
+
filter: none;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* Tabbed code groups (CSS-only — radio + label sibling trick).
|
|
241
|
+
* Same markup is produced by CodeGroup.tsx (MDX path) and shiki-rst.ts (rST
|
|
242
|
+
* path), so this single block styles both. Hardcodes selectors for up to 10
|
|
243
|
+
* tabs — more than enough for code-group use cases. */
|
|
244
|
+
.code-group {
|
|
245
|
+
width: 100%;
|
|
246
|
+
min-width: 0;
|
|
247
|
+
max-width: 100%;
|
|
248
|
+
border: 1px solid color-mix(in srgb, var(--muted) 20%, transparent);
|
|
249
|
+
border-radius: 0.5rem;
|
|
250
|
+
background: color-mix(in srgb, var(--background) 90%, transparent);
|
|
251
|
+
overflow: hidden;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.code-group > input[type="radio"] {
|
|
255
|
+
/* Visually hide but keep keyboard-accessible via arrow keys. */
|
|
256
|
+
position: absolute;
|
|
257
|
+
width: 1px;
|
|
258
|
+
height: 1px;
|
|
259
|
+
opacity: 0;
|
|
260
|
+
pointer-events: none;
|
|
261
|
+
margin: 0;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.code-group .cg-tablist {
|
|
265
|
+
display: flex;
|
|
266
|
+
flex-wrap: wrap;
|
|
267
|
+
gap: 0;
|
|
268
|
+
border-bottom: 1px solid color-mix(in srgb, var(--muted) 15%, transparent);
|
|
269
|
+
background: color-mix(in srgb, var(--muted) 5%, transparent);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.code-group .cg-tab {
|
|
273
|
+
display: inline-flex;
|
|
274
|
+
align-items: center;
|
|
275
|
+
gap: 0.4rem;
|
|
276
|
+
padding: 0.5rem 1rem;
|
|
277
|
+
font-size: 0.8rem;
|
|
278
|
+
font-family: var(--font-mono);
|
|
129
279
|
color: var(--muted);
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
.
|
|
138
|
-
.
|
|
139
|
-
|
|
140
|
-
.
|
|
141
|
-
|
|
142
|
-
.
|
|
143
|
-
.
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
.dark .token.constant,
|
|
151
|
-
.dark .token.symbol,
|
|
152
|
-
.dark .token.deleted {
|
|
153
|
-
color: #fbbf24; /* Amber 400 */
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
.token.selector,
|
|
157
|
-
.token.attr-name,
|
|
158
|
-
.token.string,
|
|
159
|
-
.token.char,
|
|
160
|
-
.token.builtin,
|
|
161
|
-
.token.inserted {
|
|
162
|
-
color: #16a34a; /* Green 600 */
|
|
163
|
-
}
|
|
164
|
-
.dark .token.selector,
|
|
165
|
-
.dark .token.attr-name,
|
|
166
|
-
.dark .token.string,
|
|
167
|
-
.dark .token.char,
|
|
168
|
-
.dark .token.builtin,
|
|
169
|
-
.dark .token.inserted {
|
|
170
|
-
color: #4ade80; /* Green 400 */
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
.token.operator,
|
|
174
|
-
.token.entity,
|
|
175
|
-
.token.url,
|
|
176
|
-
.language-css .token.string,
|
|
177
|
-
.style .token.string {
|
|
178
|
-
color: var(--foreground);
|
|
280
|
+
cursor: pointer;
|
|
281
|
+
border-bottom: 2px solid transparent;
|
|
282
|
+
transition: color 150ms ease, border-color 150ms ease, background 150ms ease;
|
|
283
|
+
user-select: none;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/* Tab icons (inspired by vitepress-plugin-group-icons). The resolver in
|
|
287
|
+
* src/lib/code-group-icons.ts maps a tab label to an icon key; this CSS
|
|
288
|
+
* paints the matching icon via ::before. Per-key rules below activate
|
|
289
|
+
* rendering by setting `content: ''`; if the resolver returns a key for
|
|
290
|
+
* which no rule exists, no ::before renders (graceful fallback). Icons
|
|
291
|
+
* use brand-color rounded-square monograms — consistent visual style,
|
|
292
|
+
* scannable across light and dark themes, no runtime cost. */
|
|
293
|
+
.cg-tab[data-cg-icon]::before {
|
|
294
|
+
display: inline-block;
|
|
295
|
+
width: 16px;
|
|
296
|
+
height: 16px;
|
|
297
|
+
background-size: contain;
|
|
298
|
+
background-repeat: no-repeat;
|
|
299
|
+
flex-shrink: 0;
|
|
179
300
|
}
|
|
180
301
|
|
|
181
|
-
.
|
|
182
|
-
.
|
|
183
|
-
|
|
184
|
-
|
|
302
|
+
/* === BEGIN: generated by scripts/generate-code-group-icons.ts — do not hand-edit === */
|
|
303
|
+
.cg-tab[data-cg-icon="npm"]::before {
|
|
304
|
+
content: '';
|
|
305
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'><path fill='%23c12127' d='M0 256V0h256v256z'/><path fill='%23fff' d='M48 48h160v160h-32V80h-48v128H48z'/></svg>");
|
|
306
|
+
}
|
|
307
|
+
.cg-tab[data-cg-icon="yarn"]::before {
|
|
308
|
+
content: '';
|
|
309
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'><path fill='%23368fb9' d='M128 0C57.328 0 0 57.328 0 128s57.328 128 128 128s128-57.328 128-128S198.672 0 128 0'/><path fill='%23fff' d='M203.317 174.06c-7.907 1.878-11.91 3.608-21.695 9.983c-15.271 9.884-31.976 14.48-31.976 14.48s-1.383 2.076-5.387 3.015c-6.918 1.68-32.963 3.114-35.335 3.163c-6.376.05-10.28-1.63-11.367-4.25c-3.311-7.907 4.744-11.367 4.744-11.367s-1.779-1.087-2.817-2.076c-.939-.939-1.927-2.816-2.224-2.125c-1.235 3.015-1.878 10.379-5.189 13.69c-4.547 4.596-13.146 3.064-18.236.395c-5.585-2.965.395-9.933.395-9.933s-3.015 1.779-5.436-1.878c-2.175-3.36-4.2-9.094-3.657-16.16c.593-8.056 9.587-15.865 9.587-15.865s-1.581-11.91 3.608-24.117c4.695-11.12 17.347-20.065 17.347-20.065s-10.626-11.762-6.672-22.338c2.57-6.92 3.608-6.87 4.448-7.166c2.965-1.137 5.831-2.373 7.957-4.695c10.625-11.466 24.166-9.292 24.166-9.292s6.425-19.52 12.356-15.715c1.828 1.186 8.401 15.814 8.401 15.814s7.018-4.102 7.809-2.57c4.25 8.254 4.744 24.019 2.866 33.607c-3.163 15.814-11.07 24.315-14.233 29.652c-.741 1.236 8.5 5.14 14.332 21.3c5.387 14.777.593 27.182 1.433 28.566c.148.247.198.346.198.346s6.177.494 18.582-7.166c6.622-4.102 14.48-8.698 23.425-8.797c8.65-.149 9.094 9.983 2.57 11.564m11.763-7.265c-.89-7.017-6.82-11.86-14.431-11.762c-11.367.148-20.905 6.03-27.231 9.934c-2.471 1.532-4.596 2.669-6.425 3.509c.395-5.733.05-13.245-2.916-21.498c-3.608-9.885-8.45-15.963-11.91-19.472c4.003-5.832 9.489-14.332 12.058-27.478c2.224-11.219 1.533-28.664-3.558-38.45c-1.038-1.976-2.767-3.41-4.942-4.003c-.89-.247-2.57-.741-5.881.198c-4.991-10.329-6.721-11.416-8.056-12.306c-2.767-1.779-6.029-2.174-9.093-1.038c-4.102 1.483-7.61 5.437-10.922 12.454a52 52 0 0 0-1.334 3.015c-6.277.445-16.161 2.718-24.513 11.762c-1.038 1.137-3.064 1.977-5.19 2.768h.05c-4.349 1.532-6.326 5.09-8.747 11.515c-3.361 8.994.098 17.84 3.508 23.574c-4.645 4.151-10.823 10.773-14.084 18.532c-4.053 9.588-4.498 18.978-4.35 24.068c-3.459 3.658-8.796 10.527-9.39 18.237c-.79 10.773 3.114 18.088 4.844 20.756c.494.791 1.038 1.434 1.63 2.076c-.197 1.334-.246 2.768.05 4.25c.643 3.46 2.817 6.277 6.128 8.056c6.524 3.46 15.617 4.942 22.635 1.433c2.52 2.669 7.117 5.239 15.469 5.239h.494c2.125 0 29.109-1.433 36.967-3.36c3.509-.841 5.93-2.324 7.512-3.658c5.04-1.582 18.977-6.326 32.123-14.826c9.291-6.03 12.504-7.315 19.423-8.995c6.72-1.63 10.922-7.759 10.082-14.53'/></svg>");
|
|
310
|
+
}
|
|
311
|
+
.cg-tab[data-cg-icon="pnpm"]::before {
|
|
312
|
+
content: '';
|
|
313
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 368'><path fill='%23f9ad00' d='M512 126.274v114.794H397.206V126.274zM512 0v114.794H397.206V0zM385.726 0v114.794H270.932V0zM259.452 0v114.794H144.658V0z'/><path fill='%234e4e4e' d='M385.726 252.548v114.794H270.932V252.548zm126.274 0v114.794H397.206V252.548zm-252.548 0v114.794H144.658V252.548zm126.274-126.274v114.794H270.932V126.274zM21.503 159.77q5.785 0 10.752 1.494q4.965 1.496 8.534 4.58q3.568 3.086 5.593 7.763t2.025 11.138q-.001 6.171-1.736 10.8q-1.736 4.628-4.918 7.762t-7.666 4.676t-9.98 1.543q-4.147 0-7.714-1.253v16.007l-.156.044q-.972.27-2.93.582q-2.12.338-4.34.338q-2.12 0-3.808-.29q-1.687-.288-2.845-1.156q-1.157-.868-1.735-2.363Q0 219.942 0 217.531v-46.285l.005-.343q.069-2.37 1.104-3.9q1.11-1.64 3.037-2.99q2.99-1.928 7.425-3.085q4.436-1.157 9.932-1.157m112.627 0q5.785 0 10.752 1.494q4.965 1.496 8.534 4.58q3.568 3.086 5.593 7.763t2.025 11.138q0 6.171-1.736 10.8q-1.736 4.628-4.918 7.762t-7.666 4.676t-9.98 1.543q-4.147 0-7.714-1.253v16.007l-.155.044q-.973.27-2.931.582q-2.12.338-4.34.338q-2.12 0-3.808-.29q-1.687-.288-2.845-1.156q-1.157-.868-1.735-2.363q-.579-1.494-.579-3.905v-46.285l.005-.343q.069-2.37 1.104-3.9q1.11-1.64 3.037-2.99q2.99-1.928 7.425-3.085q4.436-1.157 9.932-1.157m-54.288 0q10.896 0 16.778 4.773t5.882 13.259v30.181l-.168.049q-.969.264-2.87.53q-2.072.29-4.29.29q-2.122 0-3.81-.29q-1.686-.29-2.844-1.157q-1.157-.868-1.784-2.363q-.627-1.494-.626-3.905v-22.757l-.005-.31q-.084-2.752-1.683-4.077q-1.688-1.398-4.58-1.398q-1.929 0-3.81.482q-1.88.481-3.23 1.446v33.46l-.168.049q-.969.264-2.869.53q-2.073.29-4.29.29q-2.123 0-3.81-.29t-2.844-1.157t-1.784-2.363q-.627-1.494-.627-3.905V172.21l.005-.343q.069-2.37 1.104-3.9q1.11-1.64 3.037-2.99q3.279-2.313 8.245-3.76t11.04-1.446m141.266 0q3.664 0 7.184.964t6.267 3.038q2.749 2.073 4.388 5.496q1.64 3.423 1.64 8.34v30.375l-.17.049q-.968.264-2.868.53q-2.073.29-4.291.29q-2.122 0-3.81-.29q-1.686-.29-2.844-1.157q-1.157-.868-1.784-2.363q-.627-1.494-.627-3.905v-23.046l-.005-.316q-.086-2.649-1.634-3.879q-1.64-1.3-4.435-1.301q-1.35 0-2.893.626q-1.543.627-2.315 1.302q.097.386.097.723v32.737l-.184.049q-1.05.264-2.95.53q-2.073.29-4.195.29q-2.12 0-3.808-.29t-2.845-1.157t-1.784-2.363q-.627-1.494-.627-3.905v-23.046l-.005-.3q-.088-2.66-1.779-3.895q-1.784-1.3-4.29-1.301q-1.737 0-2.99.53t-2.121 1.013v33.845l-.169.049q-.968.264-2.869.53q-2.073.29-4.29.29q-2.123 0-3.81-.29t-2.844-1.157t-1.784-2.363q-.627-1.494-.627-3.905v-29.12l.005-.343q.069-2.364 1.104-3.804q1.11-1.543 3.037-2.893q3.279-2.314 8.149-3.76q4.869-1.447 10.173-1.447q3.953 0 7.762 1.109q3.81 1.109 6.605 3.326q2.893-1.928 6.51-3.182q3.615-1.253 8.726-1.253M22.082 172.596q-1.832 0-3.279.434q-1.446.433-2.507 1.012v21.214l.391.188q.991.455 2.116.776q1.35.386 2.893.386q9.932 0 9.932-11.86q0-6.172-2.459-9.161q-2.458-2.99-7.087-2.99m112.627 0q-1.832 0-3.279.434q-1.446.433-2.507 1.012v21.214l.391.188q.991.455 2.116.776q1.35.386 2.893.386q9.933 0 9.932-11.86q0-6.172-2.459-9.161q-2.458-2.99-7.087-2.99'/></svg>");
|
|
314
|
+
}
|
|
315
|
+
.cg-tab[data-cg-icon="bun"]::before {
|
|
316
|
+
content: '';
|
|
317
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 225'><path d='M228.747 65.588a38 38 0 0 0-1.62-1.62c-.55-.519-1.07-1.102-1.62-1.62c-.551-.52-1.07-1.102-1.62-1.62c-.551-.52-1.07-1.103-1.62-1.621c-.552-.519-1.07-1.102-1.62-1.62c-.552-.519-1.07-1.102-1.621-1.62c-.551-.52-1.07-1.102-1.62-1.62a85.74 85.74 0 0 1 25.632 59.819c0 53.695-54.505 97.377-121.519 97.377c-37.525 0-71.097-13.707-93.424-35.192l1.62 1.62l1.62 1.62l1.62 1.62l1.621 1.621l1.62 1.62l1.62 1.62l1.621 1.62c22.295 22.393 56.612 36.813 95.044 36.813c67.014 0 121.519-43.682 121.519-97.215c0-22.878-9.851-44.557-27.253-61.602'/><path fill='%23fbf0df' d='M234.937 114.066c0 49.288-50.779 89.243-113.418 89.243S8.101 163.354 8.101 114.066c0-30.558 19.443-57.552 49.32-73.56C87.3 24.498 105.9 8.101 121.52 8.101s28.97 13.384 64.097 32.405c29.878 16.008 49.32 43.002 49.32 73.56'/><path fill='%23f6dece' d='M234.937 114.066a70.2 70.2 0 0 0-2.593-18.73c-8.846 107.909-140.476 113.093-192.227 80.818a129.62 129.62 0 0 0 81.402 27.155c62.542 0 113.418-40.02 113.418-89.243'/><path fill='%23fffefc' d='M77.87 34.576c14.484-8.684 33.733-24.984 52.658-25.017a30.1 30.1 0 0 0-9.009-1.458c-7.842 0-16.203 4.05-26.734 10.143c-3.662 2.139-7.453 4.504-11.472 6.967c-7.55 4.666-16.202 9.948-25.924 15.23c-30.85 16.69-49.288 44.201-49.288 73.625v3.856C27.74 48.542 63.417 43.261 77.87 34.576'/><path fill='%23ccbea7' d='M112.186 16.3a53.18 53.18 0 0 1-18.244 40.409c-.907.81-.194 2.365.972 1.912c10.92-4.245 25.665-16.948 19.443-42.58c-.259-1.459-2.17-1.07-2.17.259m7.356 0a52.63 52.63 0 0 1 5.217 43.65c-.388 1.134 1.005 2.106 1.783 1.166c7.096-9.073 13.286-27.09-5.25-46.534c-.94-.842-2.398.454-1.75 1.588zm8.944-.551a53.2 53.2 0 0 1 22.198 38.108a1.07 1.07 0 0 0 2.106.357c2.981-11.31 1.296-30.59-23.235-40.604c-1.296-.518-2.138 1.232-1.069 2.01zM68.666 49.45a54.9 54.9 0 0 0 33.928-29.164c.584-1.167 2.43-.713 2.14.583c-5.607 25.924-24.37 31.336-36.035 30.623c-1.232.032-1.2-1.685-.033-2.042'/><path d='M121.519 211.443C54.505 211.443 0 167.761 0 114.066c0-32.405 20.026-62.64 53.566-80.754c9.721-5.184 18.05-10.402 25.47-14.97c4.083-2.528 7.94-4.894 11.666-7.097C102.076 4.505 111.797 0 121.519 0s18.212 3.889 28.84 10.175c3.241 1.847 6.482 3.856 9.949 6.06c8.069 4.99 17.175 10.629 29.164 17.077c33.54 18.115 53.566 48.316 53.566 80.754c0 53.695-54.505 97.377-121.519 97.377m0-203.342c-7.842 0-16.203 4.05-26.734 10.143c-3.662 2.139-7.453 4.504-11.472 6.967c-7.55 4.666-16.202 9.948-25.924 15.23c-30.85 16.69-49.288 44.201-49.288 73.625c0 49.223 50.876 89.276 113.418 89.276s113.418-40.053 113.418-89.276c0-29.424-18.439-56.936-49.32-73.56c-12.25-6.48-21.81-12.573-29.554-17.369c-3.532-2.17-6.773-4.18-9.722-5.962c-9.818-5.833-16.98-9.074-24.822-9.074'/><path fill='%23b71422' d='M144.365 137.722a28.94 28.94 0 0 1-9.463 15.263a22.07 22.07 0 0 1-12.962 6.092a22.17 22.17 0 0 1-13.383-6.092a28.94 28.94 0 0 1-9.333-15.263a2.333 2.333 0 0 1 2.593-2.625h39.988a2.333 2.333 0 0 1 2.56 2.625'/><path fill='%23ff6164' d='M108.557 153.244a22.4 22.4 0 0 0 13.351 6.157a22.4 22.4 0 0 0 13.318-6.157a34.5 34.5 0 0 0 3.241-3.468a22.13 22.13 0 0 0-15.879-7.485a19.93 19.93 0 0 0-16.202 9.008c.745.681 1.393 1.33 2.171 1.945'/><path d='M109.076 150.684a17.37 17.37 0 0 1 13.577-6.74a19.44 19.44 0 0 1 12.962 5.476a51 51 0 0 0 2.139-2.495a22.68 22.68 0 0 0-15.263-6.254a20.61 20.61 0 0 0-15.846 7.647a31 31 0 0 0 2.43 2.366'/><path d='M121.81 161.021a24.05 24.05 0 0 1-14.42-6.481a30.85 30.85 0 0 1-10.077-16.365a3.89 3.89 0 0 1 .842-3.24a4.57 4.57 0 0 1 3.662-1.653h39.988a4.67 4.67 0 0 1 3.661 1.653a3.86 3.86 0 0 1 .81 3.24A30.85 30.85 0 0 1 136.2 154.54c-3.93 3.717-9 6-14.388 6.481m-19.993-23.98c-.519 0-.648.227-.68.292a26.86 26.86 0 0 0 8.846 14.16a20.2 20.2 0 0 0 11.828 5.672a20.35 20.35 0 0 0 11.828-5.606a26.9 26.9 0 0 0 8.814-14.161a.68.68 0 0 0-.648-.292z'/><g transform='translate(53.792 88.4)'><ellipse cx='117.047' cy='40.183' fill='%23febbd0' rx='18.957' ry='11.147'/><ellipse cx='18.957' cy='40.183' fill='%23febbd0' rx='18.957' ry='11.147'/><path d='M27.868 35.71a17.855 17.855 0 1 0-17.822-17.854c0 9.848 7.974 17.837 17.822 17.855m80.268 0A17.855 17.855 0 1 0 90.41 17.857c-.018 9.818 7.908 17.801 17.726 17.855'/><path fill='%23fff' d='M22.36 18.99a6.708 6.708 0 1 0 .064-13.416a6.708 6.708 0 0 0-.065 13.416m80.267 0a6.708 6.708 0 1 0-.065 0z'/></g></svg>");
|
|
318
|
+
}
|
|
319
|
+
.cg-tab[data-cg-icon="deno"]::before {
|
|
320
|
+
content: '';
|
|
321
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'><path d='M128 0c70.692 0 128 57.308 128 128s-57.308 128-128 128S0 198.692 0 128S57.308 0 128 0'/><path fill='%23fff' d='M123 72.45c17.9 0 33.25 4.95 45.35 14.4c10.184 7.96 17.68 18.9 21.617 31.278l.133.422l.1.3l.1.35l.2.65l.3 1.2l.8 2.8l.85 3.2l3.75 13.7l3.7 13.8l4.2 15.7l6.75 25.25l2.55 9.5l-.55.6c-17.622 19.256-41.713 32.483-68.827 36.288l-.823.112l-.25-1.65l-.45-3.3l-.4-2.4l-.45-3.15l-.6-3.85l-.25-1.5l-.55-3.65l-.35-2.15l-.45-2.8l-.45-2.7l-.45-2.6l-.45-2.55l-.4-2.5l-.45-2.4l-.4-2.3l-.3-1.7l-.35-1.65l-.6-3.15l-.3-1.5l-.35-1.85l-.3-1.3l-.25-1.25l-.25-1.2l-.15-.8l-.35-1.5l-.5-2.2l-.2-.7l-.25-1l-.2-.95l-.25-.95l-.25-.9l-.15-.55l-.25-.85l-.2-.8l-.15-.55l-.2-.5l-.15-.45l-.2-.7l-.15-.5l-.1-.3a33 33 0 0 0-.706-1.886l-.194-.464l-.15-.3l1.15-3l-4.55.15l-1.25.05c-41.3.85-67.95-16.7-67.95-44.2c0-29.15 29-52.6 66.2-52.6m-40.3 137.7c.935-3.2 4.246-5.091 7.45-4.29l.15.04c3.25.837 5.19 4.098 4.485 7.348l-.035.152l-.05.15l-6.05 22.55l-.85-.35a114 114 0 0 1-9.94-4.253l-.81-.397l5.6-20.8zm34.8-15.25c.95-3.25 4.35-5.15 7.65-4.25a6.25 6.25 0 0 1 3.815 2.991l.085.159l.2.9l.3 1.45l.2 1.05l-.05.25l-.15.7v.15l-8.5 31.5l-.05.15a6.25 6.25 0 0 1-12.08-3.098l.03-.152v-.15l8.5-31.5zm-51.6-36.7c3.024 2.64 6.509 5.05 10.322 7.096l.478.254l-7.7 28.6l-.05.15a6.25 6.25 0 0 1-12.084-3.149L56.9 191l.05-.15l8.5-31.5l.05-.2zm-27.9-32c.95-3.2 4.35-5.1 7.65-4.25c3.2.886 5.14 4.148 4.435 7.398l-.035.152v.15l-8.5 31.5l-.05.15a6.25 6.25 0 0 1-12.084-3.149l.034-.151v-.15l8.5-31.5zm190.6-7.15c.95-3.2 4.35-5.1 7.6-4.25c3.25.886 5.19 4.148 4.485 7.35l-.035.15v.2L232.1 154v.15a6.271 6.271 0 0 1-12.139-3.15l.039-.15l.05-.15l8.5-31.5zM27.1 72.75l.217.007q.651.03 1.283.193a6.28 6.28 0 0 1 4.485 7.398l-.035.152l-.05.15l-8.5 31.5l-.05.15c-.95 3.2-4.35 5.1-7.6 4.25a6.2 6.2 0 0 1-3.1-1.9a114.2 114.2 0 0 1 13.033-41.318zm179.95 4.45c1-3.2 4.35-5.1 7.65-4.25c3.2.886 5.188 4.148 4.485 7.398l-.035.152l-.05.15l-8.5 31.5l-.05.15a6.25 6.25 0 0 1-12.084-3.149l.034-.151l.05-.15l8.5-31.5zM56.5 47.25c.95-3.2 4.35-5.1 7.6-4.25c3.25.886 5.19 4.148 4.485 7.35l-.035.15l-.05.2L60 82.2l-.05.15a6.25 6.25 0 0 1-12.084-3.149l.034-.151l.05-.15l8.5-31.5zm109.2 5.95c.95-3.2 4.35-5.1 7.65-4.25c3.2.886 5.14 4.148 4.435 7.398l-.035.152v.15l-6.7 24.75l-.55-.45a70 70 0 0 0-9.935-6.094l-.615-.306l5.7-21.2zm-47.95-39.75a6.2 6.2 0 0 1-.004 2.603l-.046.197l-.05.15l-8.5 31.5l-.05.15a6.25 6.25 0 0 1-12.08-3.098l.03-.152l.05-.15L105 15.3l.85-.15a115 115 0 0 1 11.9-1.7m78.2 21.75l.75.55a116 116 0 0 1 9.222 7.666l.628.584l-.2.65l-.05.15a6.25 6.25 0 0 1-12.08-3.098l.03-.152l.05-.15zM146.5 14.5l.9.15a114 114 0 0 1 10.44 2.267l.86.233l-3.15 11.75l-.05.15a6.25 6.25 0 0 1-12.08-3.098l.03-.152l.05-.15z'/><path d='M131 93.5a8 8 0 1 1 0 16a8 8 0 0 1 0-16'/></svg>");
|
|
322
|
+
}
|
|
323
|
+
.cg-tab[data-cg-icon="typescript"]::before {
|
|
324
|
+
content: '';
|
|
325
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'><path fill='%233178c6' d='M20 0h216c11.046 0 20 8.954 20 20v216c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20V20C0 8.954 8.954 0 20 0'/><path fill='%23fff' d='M150.518 200.475v27.62q6.738 3.453 15.938 5.179T185.849 235q9.934 0 18.874-1.899t15.678-6.257q6.738-4.359 10.669-11.394q3.93-7.033 3.93-17.391q0-7.51-2.246-13.163a30.8 30.8 0 0 0-6.479-10.055q-4.232-4.402-10.149-7.898t-13.347-6.602q-5.442-2.245-9.761-4.359t-7.342-4.316q-3.024-2.2-4.665-4.661t-1.641-5.567q0-2.848 1.468-5.135q1.469-2.288 4.147-3.927t6.565-2.547q3.887-.906 8.638-.906q3.456 0 7.299.518q3.844.517 7.732 1.597a54 54 0 0 1 7.558 2.719a41.7 41.7 0 0 1 6.781 3.797v-25.807q-6.306-2.417-13.778-3.582T198.633 107q-9.847 0-18.658 2.115q-8.811 2.114-15.506 6.602q-6.694 4.49-10.582 11.437Q150 134.102 150 143.769q0 12.342 7.127 21.06t21.638 14.759a292 292 0 0 1 10.625 4.575q4.924 2.244 8.509 4.66t5.658 5.265t2.073 6.474a9.9 9.9 0 0 1-1.296 4.963q-1.295 2.287-3.93 3.97t-6.565 2.632t-9.2.95q-8.983 0-17.794-3.151t-16.327-9.451m-46.036-68.733H140V109H41v22.742h35.345V233h28.137z'/></svg>");
|
|
326
|
+
}
|
|
327
|
+
.cg-tab[data-cg-icon="javascript"]::before {
|
|
328
|
+
content: '';
|
|
329
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'><path fill='%23f7df1e' d='M0 0h256v256H0z'/><path d='m67.312 213.932l19.59-11.856c3.78 6.701 7.218 12.371 15.465 12.371c7.905 0 12.89-3.092 12.89-15.12v-81.798h24.057v82.138c0 24.917-14.606 36.259-35.916 36.259c-19.245 0-30.416-9.967-36.087-21.996m85.07-2.576l19.588-11.341c5.157 8.421 11.859 14.607 23.715 14.607c9.969 0 16.325-4.984 16.325-11.858c0-8.248-6.53-11.17-17.528-15.98l-6.013-2.58c-17.357-7.387-28.87-16.667-28.87-36.257c0-18.044 13.747-31.792 35.228-31.792c15.294 0 26.292 5.328 34.196 19.247l-18.732 12.03c-4.125-7.389-8.591-10.31-15.465-10.31c-7.046 0-11.514 4.468-11.514 10.31c0 7.217 4.468 10.14 14.778 14.608l6.014 2.577c20.45 8.765 31.963 17.7 31.963 37.804c0 21.654-17.012 33.51-39.867 33.51c-22.339 0-36.774-10.654-43.819-24.574'/></svg>");
|
|
330
|
+
}
|
|
331
|
+
.cg-tab[data-cg-icon="python"]::before {
|
|
332
|
+
content: '';
|
|
333
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 255'><defs><linearGradient id='SVGg39WleeP' x1='12.959%' x2='79.639%' y1='12.039%' y2='78.201%'><stop offset='0%' stop-color='%23387eb8'/><stop offset='100%' stop-color='%23366994'/></linearGradient><linearGradient id='SVGlXoRkc4T' x1='19.128%' x2='90.742%' y1='20.579%' y2='88.429%'><stop offset='0%' stop-color='%23ffe052'/><stop offset='100%' stop-color='%23ffc331'/></linearGradient></defs><path fill='url(%23SVGg39WleeP)' d='M126.916.072c-64.832 0-60.784 28.115-60.784 28.115l.072 29.128h61.868v8.745H41.631S.145 61.355.145 126.77c0 65.417 36.21 63.097 36.21 63.097h21.61v-30.356s-1.165-36.21 35.632-36.21h61.362s34.475.557 34.475-33.319V33.97S194.67.072 126.916.072M92.802 19.66a11.12 11.12 0 0 1 11.13 11.13a11.12 11.12 0 0 1-11.13 11.13a11.12 11.12 0 0 1-11.13-11.13a11.12 11.12 0 0 1 11.13-11.13'/><path fill='url(%23SVGlXoRkc4T)' d='M128.757 254.126c64.832 0 60.784-28.115 60.784-28.115l-.072-29.127H127.6v-8.745h86.441s41.486 4.705 41.486-60.712c0-65.416-36.21-63.096-36.21-63.096h-21.61v30.355s1.165 36.21-35.632 36.21h-61.362s-34.475-.557-34.475 33.32v56.013s-5.235 33.897 62.518 33.897m34.114-19.586a11.12 11.12 0 0 1-11.13-11.13a11.12 11.12 0 0 1 11.13-11.131a11.12 11.12 0 0 1 11.13 11.13a11.12 11.12 0 0 1-11.13 11.13'/></svg>");
|
|
334
|
+
}
|
|
335
|
+
.cg-tab[data-cg-icon="rust"]::before {
|
|
336
|
+
content: '';
|
|
337
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'><path d='m254.251 124.862l-10.747-6.653a146 146 0 0 0-.306-3.13l9.236-8.615a3.69 3.69 0 0 0 1.105-3.427a3.69 3.69 0 0 0-2.33-2.744l-11.807-4.415a137 137 0 0 0-.925-3.048l7.365-10.229a3.698 3.698 0 0 0-2.407-5.814l-12.45-2.025c-.484-.944-.988-1.874-1.496-2.796l5.231-11.483a3.68 3.68 0 0 0-.288-3.59a3.68 3.68 0 0 0-3.204-1.642l-12.636.44a100 100 0 0 0-1.996-2.421l2.904-12.308a3.7 3.7 0 0 0-.986-3.466a3.7 3.7 0 0 0-3.464-.986l-12.305 2.901a106 106 0 0 0-2.426-1.996l.442-12.635a3.68 3.68 0 0 0-1.64-3.205a3.69 3.69 0 0 0-3.59-.29l-11.48 5.234a133 133 0 0 0-2.796-1.5l-2.03-12.452a3.7 3.7 0 0 0-5.812-2.407l-10.236 7.365q-1.51-.481-3.042-.922L155.72 4.794a3.69 3.69 0 0 0-2.745-2.336a3.71 3.71 0 0 0-3.424 1.106l-8.615 9.243a111 111 0 0 0-3.13-.306l-6.653-10.75a3.698 3.698 0 0 0-6.289 0l-6.653 10.75a110 110 0 0 0-3.133.306l-8.617-9.243a3.695 3.695 0 0 0-6.169 1.23l-4.414 11.809c-1.023.293-2.035.604-3.045.922L82.599 10.16a3.69 3.69 0 0 0-3.579-.415a3.7 3.7 0 0 0-2.235 2.822l-2.03 12.452c-.94.487-1.869.988-2.796 1.5l-11.481-5.235a3.69 3.69 0 0 0-3.588.291a3.68 3.68 0 0 0-1.642 3.205l.44 12.635a118 118 0 0 0-2.426 1.996l-12.305-2.9a3.71 3.71 0 0 0-3.466.985a3.7 3.7 0 0 0-.986 3.466l2.899 12.308q-1.01 1.196-1.991 2.421l-12.636-.44a3.72 3.72 0 0 0-3.204 1.641a3.7 3.7 0 0 0-.291 3.59l5.234 11.484c-.509.922-1.012 1.852-1.5 2.796l-12.449 2.025a3.7 3.7 0 0 0-2.407 5.814l7.365 10.23q-.482 1.514-.925 3.047l-11.808 4.415a3.702 3.702 0 0 0-1.225 6.171l9.237 8.614c-.115 1.04-.217 2.087-.305 3.131L1.75 124.862A3.7 3.7 0 0 0 0 128.007c0 1.284.663 2.473 1.751 3.143l10.748 6.653q.132 1.572.305 3.131l-9.238 8.617a3.697 3.697 0 0 0 1.226 6.169l11.808 4.415c.294 1.022.605 2.037.925 3.047l-7.365 10.231a3.696 3.696 0 0 0 2.41 5.812l12.447 2.025c.487.944.986 1.874 1.5 2.8l-5.235 11.48a3.69 3.69 0 0 0 .291 3.59a3.68 3.68 0 0 0 3.204 1.641l12.63-.442c.659.821 1.322 1.626 1.997 2.426l-2.899 12.31a3.68 3.68 0 0 0 .986 3.459a3.68 3.68 0 0 0 3.466.983l12.305-2.898c.8.68 1.61 1.34 2.427 1.99l-.44 12.639a3.694 3.694 0 0 0 5.229 3.492l11.481-5.231a106 106 0 0 0 2.796 1.499l2.03 12.445a3.69 3.69 0 0 0 2.235 2.825a3.7 3.7 0 0 0 3.579-.413l10.229-7.37c1.01.32 2.025.633 3.047.927l4.415 11.804a3.69 3.69 0 0 0 2.744 2.331a3.68 3.68 0 0 0 3.425-1.106l8.617-9.238c1.04.12 2.086.22 3.133.313l6.653 10.748a3.7 3.7 0 0 0 3.143 1.75a3.7 3.7 0 0 0 3.145-1.75l6.653-10.748c1.047-.093 2.092-.193 3.131-.313l8.615 9.238a3.68 3.68 0 0 0 3.424 1.106a3.69 3.69 0 0 0 2.744-2.331l4.415-11.804c1.022-.294 2.038-.607 3.048-.927l10.231 7.37a3.7 3.7 0 0 0 5.812-2.412l2.03-12.445c.939-.487 1.868-.993 2.795-1.5l11.481 5.232a3.692 3.692 0 0 0 5.23-3.492l-.44-12.638a99 99 0 0 0 2.423-1.991l12.306 2.898c1.25.294 2.56-.07 3.463-.983a3.68 3.68 0 0 0 .986-3.459l-2.898-12.31c.675-.8 1.34-1.605 1.99-2.426l12.636.442a3.68 3.68 0 0 0 3.204-1.64a3.69 3.69 0 0 0 .289-3.592l-5.232-11.478c.511-.927 1.013-1.857 1.497-2.8l12.45-2.026a3.68 3.68 0 0 0 2.822-2.236a3.7 3.7 0 0 0-.415-3.576l-7.365-10.23q.479-1.516.925-3.048l11.806-4.415a3.68 3.68 0 0 0 2.331-2.745a3.68 3.68 0 0 0-1.106-3.424l-9.235-8.617c.112-1.04.215-2.086.305-3.13l10.748-6.654a3.69 3.69 0 0 0 1.751-3.143c0-1.281-.66-2.472-1.749-3.145m-71.932 89.156c-4.104-.885-6.714-4.93-5.833-9.047c.878-4.112 4.92-6.729 9.023-5.844c4.104.879 6.718 4.931 5.838 9.04c-.88 4.11-4.926 6.73-9.028 5.851m-3.652-24.699a6.93 6.93 0 0 0-8.23 5.332l-3.816 17.807c-11.775 5.344-24.85 8.313-38.621 8.313c-14.086 0-27.446-3.116-39.43-8.688l-3.814-17.806c-.802-3.747-4.486-6.134-8.228-5.33l-15.72 3.376a93 93 0 0 1-8.128-9.58h76.49c.865 0 1.442-.157 1.442-.945v-27.057c0-.787-.577-.944-1.443-.944H106.8v-17.15h24.195c2.208 0 11.809.63 14.878 12.902c.962 3.774 3.072 16.05 4.516 19.98c1.438 4.408 7.293 13.213 13.533 13.213h38.115c.433 0 .895-.049 1.382-.137a94 94 0 0 1-8.669 10.17zm-105.79 24.327c-4.105.886-8.146-1.731-9.029-5.843c-.878-4.119 1.732-8.162 5.836-9.047a7.607 7.607 0 0 1 9.028 5.85c.878 4.11-1.734 8.16-5.836 9.04M43.86 95.986c1.703 3.842-.03 8.345-3.867 10.045c-3.837 1.705-8.328-.03-10.03-3.875a7.615 7.615 0 0 1 3.867-10.045a7.6 7.6 0 0 1 10.03 3.874m-8.918 21.14l16.376-7.277a6.94 6.94 0 0 0 3.524-9.158l-3.372-7.626h13.264v59.788H37.973a93.7 93.7 0 0 1-3.566-25.672c0-3.398.183-6.756.535-10.056m71.862-5.807V93.696h31.586c1.632 0 11.52 1.886 11.52 9.28c0 6.139-7.584 8.34-13.821 8.34zm114.792 15.862q0 3.506-.257 6.948h-9.603c-.961 0-1.348.632-1.348 1.573v4.41c0 10.38-5.853 12.638-10.982 13.213c-4.884.55-10.3-2.045-10.967-5.034c-2.882-16.206-7.683-19.667-15.265-25.648c9.41-5.975 19.2-14.79 19.2-26.59c0-12.74-8.734-20.765-14.688-24.7c-8.352-5.506-17.6-6.61-20.095-6.61H58.279c13.467-15.03 31.719-25.677 52.362-29.551l11.706 12.28a6.923 6.923 0 0 0 9.799.226l13.098-12.528c27.445 5.11 50.682 22.194 64.073 45.633l-8.967 20.253c-1.548 3.505.032 7.604 3.527 9.157l17.264 7.668c.298 3.065.455 6.161.455 9.3M122.352 24.745c3.033-2.905 7.844-2.79 10.748.247c2.898 3.046 2.788 7.862-.252 10.765c-3.033 2.906-7.844 2.793-10.748-.25a7.62 7.62 0 0 1 .252-10.762m88.983 71.61a7.594 7.594 0 0 1 10.028-3.872c3.838 1.702 5.57 6.203 3.867 10.045a7.595 7.595 0 0 1-10.03 3.875c-3.833-1.703-5.565-6.2-3.865-10.048'/></svg>");
|
|
338
|
+
}
|
|
339
|
+
.cg-tab[data-cg-icon="go"]::before {
|
|
340
|
+
content: '';
|
|
341
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 192'><path fill='%2300acd7' d='m292.533 13.295l1.124.75c13.212 8.725 22.685 20.691 28.917 35.15c1.496 2.243.499 3.49-2.493 4.237l-5.063 1.296c-11.447 2.949-20.53 5.429-31.827 8.378l-6.443 1.678c-2.32.574-2.96.333-5.428-2.477l-.348-.399c-3.519-3.988-6.155-6.652-10.817-9.03l-.899-.443c-15.705-7.727-30.911-5.484-45.12 3.74c-16.952 10.968-25.677 27.172-25.428 47.364c.25 19.942 13.96 36.395 33.654 39.137c16.951 2.244 31.16-3.739 42.378-16.452c2.244-2.743 4.238-5.734 6.73-9.224h-48.11c-5.235 0-6.481-3.24-4.736-7.478l.864-2.035c3.204-7.454 8.173-18.168 11.4-24.294l.704-1.319c.862-1.494 2.612-3.513 5.977-3.513h80.224c3.603-11.415 9.449-22.201 17.246-32.407c18.198-23.931 40.135-36.396 69.8-41.63c25.427-4.488 49.359-1.995 71.046 12.713c19.694 13.461 31.909 31.66 35.15 55.59c4.237 33.654-5.485 61.075-28.668 84.508c-16.453 16.702-36.645 27.172-59.829 31.908c-6.73 1.247-13.461 1.496-19.942 2.244c-22.685-.499-43.376-6.98-60.826-21.937c-12.273-10.61-20.727-23.648-24.928-38.828a105 105 0 0 1-10.47 16.89c-17.949 23.683-41.381 38.39-71.046 42.38c-24.43 3.24-47.115-1.497-67.058-16.454c-18.447-13.96-28.917-32.407-31.66-55.34c-3.24-27.173 4.737-51.603 21.19-73.041c17.7-23.184 41.132-37.891 69.8-43.126c22.999-4.16 45.037-1.595 64.936 11.464M411.12 49.017l-.798.178c-23.183 5.235-38.14 19.942-43.624 43.375c-4.488 19.444 4.985 39.138 22.934 47.115c13.71 5.983 27.421 5.235 40.633-1.496c19.694-10.22 30.413-26.175 31.66-47.613c-.25-3.24-.25-5.734-.749-8.227c-4.436-24.401-26.664-38.324-50.056-33.332M116.416 94.564c.997 0 1.496.748 1.496 1.745l-.499 5.983c0 .997-.997 1.745-1.745 1.745l-54.344-.249c-.997 0-1.246-.748-.748-1.496l3.49-6.232c.499-.748 1.496-1.496 2.493-1.496zM121.9 71.63c.997 0 1.496.748 1.247 1.496l-1.995 5.983c-.249.997-1.246 1.495-2.243 1.495l-117.912.25c-.997 0-1.246-.499-.748-1.247l5.235-6.73c.499-.748 1.745-1.247 2.742-1.247zm12.963-22.934c.997 0 1.246.748.748 1.496l-4.238 6.481c-.499.748-1.745 1.496-2.493 1.496l-90.24-.25c-.998 0-1.247-.498-.749-1.246l5.235-6.73c.499-.748 1.745-1.247 2.742-1.247z'/></svg>");
|
|
342
|
+
}
|
|
343
|
+
.cg-tab[data-cg-icon="java"]::before {
|
|
344
|
+
content: '';
|
|
345
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 346'><path fill='%235382a1' d='M82.554 267.473s-13.198 7.675 9.393 10.272c27.369 3.122 41.356 2.675 71.517-3.034c0 0 7.93 4.972 19.003 9.279c-67.611 28.977-153.019-1.679-99.913-16.517m-8.262-37.814s-14.803 10.958 7.805 13.296c29.236 3.016 52.324 3.263 92.276-4.43c0 0 5.526 5.602 14.215 8.666c-81.747 23.904-172.798 1.885-114.296-17.532'/><path fill='%23e76f00' d='M143.942 165.515c16.66 19.18-4.377 36.44-4.377 36.44s42.301-21.837 22.874-49.183c-18.144-25.5-32.059-38.172 43.268-81.858c0 0-118.238 29.53-61.765 94.6'/><path fill='%235382a1' d='M233.364 295.442s9.767 8.047-10.757 14.273c-39.026 11.823-162.432 15.393-196.714.471c-12.323-5.36 10.787-12.8 18.056-14.362c7.581-1.644 11.914-1.337 11.914-1.337c-13.705-9.655-88.583 18.957-38.034 27.15c137.853 22.356 251.292-10.066 215.535-26.195M88.9 190.48s-62.771 14.91-22.228 20.323c17.118 2.292 51.243 1.774 83.03-.89c25.978-2.19 52.063-6.85 52.063-6.85s-9.16 3.923-15.787 8.448c-63.744 16.765-186.886 8.966-151.435-8.183c29.981-14.492 54.358-12.848 54.358-12.848m112.605 62.942c64.8-33.672 34.839-66.03 13.927-61.67c-5.126 1.066-7.411 1.99-7.411 1.99s1.903-2.98 5.537-4.27c41.37-14.545 73.187 42.897-13.355 65.647c0 .001 1.003-.895 1.302-1.697'/><path fill='%23e76f00' d='M162.439.371s35.887 35.9-34.037 91.101c-56.071 44.282-12.786 69.53-.023 98.377c-32.73-29.53-56.75-55.526-40.635-79.72C111.395 74.612 176.918 57.393 162.439.37'/><path fill='%235382a1' d='M95.268 344.665c62.199 3.982 157.712-2.209 159.974-31.64c0 0-4.348 11.158-51.404 20.018c-53.088 9.99-118.564 8.824-157.399 2.421c.001 0 7.95 6.58 48.83 9.201'/></svg>");
|
|
346
|
+
}
|
|
347
|
+
.cg-tab[data-cg-icon="ruby"]::before {
|
|
348
|
+
content: '';
|
|
349
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 255'><defs><linearGradient id='SVGp7IY8bkc' x1='84.75%' x2='58.254%' y1='111.399%' y2='64.584%'><stop offset='0%' stop-color='%23fb7655'/><stop offset='0%' stop-color='%23fb7655'/><stop offset='41%' stop-color='%23e42b1e'/><stop offset='99%' stop-color='%23900'/><stop offset='100%' stop-color='%23900'/></linearGradient><linearGradient id='SVGUgNYzcuh' x1='116.651%' x2='1.746%' y1='60.89%' y2='19.288%'><stop offset='0%' stop-color='%23871101'/><stop offset='0%' stop-color='%23871101'/><stop offset='99%' stop-color='%23911209'/><stop offset='100%' stop-color='%23911209'/></linearGradient><linearGradient id='SVG511Aleka' x1='75.774%' x2='38.978%' y1='219.327%' y2='7.829%'><stop offset='0%' stop-color='%23871101'/><stop offset='0%' stop-color='%23871101'/><stop offset='99%' stop-color='%23911209'/><stop offset='100%' stop-color='%23911209'/></linearGradient><linearGradient id='SVGuISx0ckJ' x1='50.012%' x2='66.483%' y1='7.234%' y2='79.135%'><stop offset='0%' stop-color='%23fff'/><stop offset='0%' stop-color='%23fff'/><stop offset='23%' stop-color='%23e57252'/><stop offset='46%' stop-color='%23de3b20'/><stop offset='99%' stop-color='%23a60003'/><stop offset='100%' stop-color='%23a60003'/></linearGradient><linearGradient id='SVGp2ih7dhN' x1='46.174%' x2='49.932%' y1='16.348%' y2='83.047%'><stop offset='0%' stop-color='%23fff'/><stop offset='0%' stop-color='%23fff'/><stop offset='23%' stop-color='%23e4714e'/><stop offset='56%' stop-color='%23be1a0d'/><stop offset='99%' stop-color='%23a80d00'/><stop offset='100%' stop-color='%23a80d00'/></linearGradient><linearGradient id='SVGVVXNPbRt' x1='36.965%' x2='49.528%' y1='15.594%' y2='92.478%'><stop offset='0%' stop-color='%23fff'/><stop offset='0%' stop-color='%23fff'/><stop offset='18%' stop-color='%23e46342'/><stop offset='40%' stop-color='%23c82410'/><stop offset='99%' stop-color='%23a80d00'/><stop offset='100%' stop-color='%23a80d00'/></linearGradient><linearGradient id='SVGpaPWneGk' x1='13.609%' x2='85.764%' y1='58.346%' y2='-46.717%'><stop offset='0%' stop-color='%23fff'/><stop offset='0%' stop-color='%23fff'/><stop offset='54%' stop-color='%23c81f11'/><stop offset='99%' stop-color='%23bf0905'/><stop offset='100%' stop-color='%23bf0905'/></linearGradient><linearGradient id='SVG1WvP2bcC' x1='27.624%' x2='50.745%' y1='21.135%' y2='79.056%'><stop offset='0%' stop-color='%23fff'/><stop offset='0%' stop-color='%23fff'/><stop offset='31%' stop-color='%23de4024'/><stop offset='99%' stop-color='%23bf190b'/><stop offset='100%' stop-color='%23bf190b'/></linearGradient><linearGradient id='SVGtihA7dCK' x1='-20.667%' x2='104.242%' y1='122.282%' y2='-6.342%'><stop offset='0%' stop-color='%23bd0012'/><stop offset='0%' stop-color='%23bd0012'/><stop offset='7%' stop-color='%23fff'/><stop offset='17%' stop-color='%23fff'/><stop offset='27%' stop-color='%23c82f1c'/><stop offset='33%' stop-color='%23820c01'/><stop offset='46%' stop-color='%23a31601'/><stop offset='72%' stop-color='%23b31301'/><stop offset='99%' stop-color='%23e82609'/><stop offset='100%' stop-color='%23e82609'/></linearGradient><linearGradient id='SVG4PNQfcAN' x1='58.792%' x2='11.964%' y1='65.205%' y2='50.128%'><stop offset='0%' stop-color='%238c0c01'/><stop offset='0%' stop-color='%238c0c01'/><stop offset='54%' stop-color='%23990c00'/><stop offset='99%' stop-color='%23a80d0e'/><stop offset='100%' stop-color='%23a80d0e'/></linearGradient><linearGradient id='SVG7JSnDYmr' x1='79.319%' x2='23.088%' y1='62.754%' y2='17.888%'><stop offset='0%' stop-color='%237e110b'/><stop offset='0%' stop-color='%237e110b'/><stop offset='99%' stop-color='%239e0c00'/><stop offset='100%' stop-color='%239e0c00'/></linearGradient><linearGradient id='SVGXci6Ba6J' x1='92.88%' x2='59.841%' y1='74.122%' y2='39.704%'><stop offset='0%' stop-color='%2379130d'/><stop offset='0%' stop-color='%2379130d'/><stop offset='99%' stop-color='%239e120b'/><stop offset='100%' stop-color='%239e120b'/></linearGradient><linearGradient id='SVGZfms5bcW' x1='56.57%' x2='3.105%' y1='101.717%' y2='11.993%'><stop offset='0%' stop-color='%238b2114'/><stop offset='0%' stop-color='%238b2114'/><stop offset='43%' stop-color='%239e100a'/><stop offset='99%' stop-color='%23b3100c'/><stop offset='100%' stop-color='%23b3100c'/></linearGradient><linearGradient id='SVG9Fw0PeZk' x1='30.87%' x2='92.471%' y1='35.599%' y2='100.694%'><stop offset='0%' stop-color='%23b31000'/><stop offset='0%' stop-color='%23b31000'/><stop offset='44%' stop-color='%23910f08'/><stop offset='99%' stop-color='%23791c12'/><stop offset='100%' stop-color='%23791c12'/></linearGradient><radialGradient id='SVGTXBEHcgf' cx='32.001%' cy='40.21%' r='69.573%' fx='32.001%' fy='40.21%'><stop offset='0%' stop-color='%23a80d00'/><stop offset='0%' stop-color='%23a80d00'/><stop offset='99%' stop-color='%237e0e08'/><stop offset='100%' stop-color='%237e0e08'/></radialGradient><radialGradient id='SVGIoVSAcoi' cx='13.549%' cy='40.86%' r='88.386%' fx='13.549%' fy='40.86%'><stop offset='0%' stop-color='%23a30c00'/><stop offset='0%' stop-color='%23a30c00'/><stop offset='99%' stop-color='%23800e08'/><stop offset='100%' stop-color='%23800e08'/></radialGradient></defs><path fill='url(%23SVGp7IY8bkc)' d='m197.467 167.764l-145.52 86.41l188.422-12.787L254.88 51.393z'/><path fill='url(%23SVGUgNYzcuh)' d='M240.677 241.257L224.482 129.48l-44.113 58.25z'/><path fill='url(%23SVG511Aleka)' d='m240.896 241.257l-118.646-9.313l-69.674 21.986z'/><path fill='url(%23SVGuISx0ckJ)' d='m52.744 253.955l29.64-97.1L17.16 170.8z'/><path fill='url(%23SVGp2ih7dhN)' d='M180.358 188.05L153.085 81.226l-78.047 73.16z'/><path fill='url(%23SVGVVXNPbRt)' d='m248.693 82.73l-73.777-60.256l-20.544 66.418z'/><path fill='url(%23SVGpaPWneGk)' d='M214.191.99L170.8 24.97L143.424.669z'/><path fill='url(%23SVG1WvP2bcC)' d='m0 203.372l18.177-33.151l-14.704-39.494z'/><path fill='%23fff' d='m2.496 129.48l14.794 41.963l64.283-14.422l73.39-68.207l20.712-65.787L143.063 0L87.618 20.75c-17.469 16.248-51.366 48.396-52.588 49c-1.21.618-22.384 40.639-32.534 59.73'/><path fill='url(%23SVGtihA7dCK)' d='M54.442 54.094c37.86-37.538 86.667-59.716 105.397-40.818c18.72 18.898-1.132 64.823-38.992 102.349c-37.86 37.525-86.062 60.925-104.78 42.027c-18.73-18.885.515-66.032 38.375-103.558'/><path fill='url(%23SVG4PNQfcAN)' d='m52.744 253.916l29.408-97.409l97.665 31.376c-35.312 33.113-74.587 61.106-127.073 66.033'/><path fill='url(%23SVG7JSnDYmr)' d='m155.092 88.622l25.073 99.313c29.498-31.016 55.972-64.36 68.938-105.603z'/><path fill='url(%23SVGXci6Ba6J)' d='M248.847 82.833c10.035-30.282 12.35-73.725-34.966-81.791l-38.825 21.445z'/><path fill='%239e1209' d='M0 202.935c1.39 49.979 37.448 50.724 52.808 51.162l-35.48-82.86z'/><path fill='url(%23SVGTXBEHcgf)' d='M155.232 88.777c22.667 13.932 68.35 41.912 69.276 42.426c1.44.81 19.695-30.784 23.838-48.64z'/><path fill='url(%23SVGIoVSAcoi)' d='m82.113 156.507l39.313 75.848c23.246-12.607 41.45-27.967 58.121-44.42z'/><path fill='url(%23SVGZfms5bcW)' d='m17.174 171.34l-5.57 66.328c10.51 14.357 24.97 15.605 40.136 14.486c-10.973-27.311-32.894-81.92-34.566-80.814'/><path fill='url(%23SVG9Fw0PeZk)' d='m174.826 22.654l78.1 10.96c-4.169-17.662-16.969-29.06-38.787-32.623z'/></svg>");
|
|
350
|
+
}
|
|
351
|
+
.cg-tab[data-cg-icon="php"]::before {
|
|
352
|
+
content: '';
|
|
353
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 135'><defs><radialGradient id='SVGCUqixdHg' cx='.837' cy='-125.811' r='363.057' gradientTransform='translate(76.464 81.918)scale(.463)' gradientUnits='userSpaceOnUse'><stop offset='0' stop-color='%23fff'/><stop offset='.5' stop-color='%234c6b97'/><stop offset='1' stop-color='%23231f20'/></radialGradient></defs><ellipse cx='128' cy='67.3' fill='url(%23SVGCUqixdHg)' rx='128' ry='67.3'/><ellipse cx='128' cy='67.3' fill='%236181b6' rx='123' ry='62.3'/><path fill='%23fff' d='m152.9 87.5l6.1-31.4c1.4-7.1.2-12.4-3.4-15.7c-3.5-3.2-9.5-4.8-18.3-4.8h-10.6l3-15.6c.1-.6 0-1.2-.4-1.7s-.9-.7-1.5-.7h-14.6c-1 0-1.8.7-2 1.6l-6.5 33.3c-.6-3.8-2-7-4.4-9.6c-4.3-4.9-11-7.4-20.1-7.4H52.1c-1 0-1.8.7-2 1.6L37 104.7c-.1.6 0 1.2.4 1.7s.9.7 1.5.7h14.7c1 0 1.8-.7 2-1.6l3.2-16.3h10.9c5.7 0 10.6-.6 14.3-1.8q5.85-1.95 10.5-6.3c2.5-2.3 4.6-4.9 6.2-7.7l-2.6 13.5c-.1.6 0 1.2.4 1.7s.9.7 1.5.7h14.6c1 0 1.8-.7 2-1.6l7.2-37h10c4.3 0 5.5.8 5.9 1.2c.3.3.9 1.5.2 5.2L134.1 87c-.1.6 0 1.2.4 1.7s.9.7 1.5.7h15c.9-.3 1.7-1 1.9-1.9m-67.6-26c-.9 4.7-2.6 8.1-5.1 10s-6.6 2.9-12 2.9h-6.5l4.7-24.2h8.4c6.2 0 8.7 1.3 9.7 2.4c1.3 1.6 1.6 4.7.8 8.9m130-18.6c-4.3-4.9-11-7.4-20.1-7.4h-28.3c-1 0-1.8.7-2 1.6l-13.1 67.5c-.1.6 0 1.2.4 1.7s.9.7 1.5.7h14.7c1 0 1.8-.7 2-1.6l3.2-16.3h10.9c5.7 0 10.6-.6 14.3-1.8q5.85-1.95 10.5-6.3c2.6-2.4 4.8-5.1 6.4-8s2.8-6.1 3.5-9.6c1.7-8.7.4-15.5-3.9-20.5M200 61.5c-.9 4.7-2.6 8.1-5.1 10s-6.6 2.9-12 2.9h-6.5l4.7-24.2h8.4c6.2 0 8.7 1.3 9.7 2.4c1.4 1.6 1.7 4.7.8 8.9'/><path fill='%23000004' d='M74.8 48.2c5.6 0 9.3 1 11.2 3.1s2.3 5.6 1.3 10.6c-1 5.2-3 9-5.9 11.2q-4.35 3.3-13.2 3.3h-8.9l5.5-28.2zM39 105h14.7l3.5-17.9h12.6c5.6 0 10.1-.6 13.7-1.8s6.8-3.1 9.8-5.9q3.75-3.45 6-7.5c1.5-2.7 2.6-5.7 3.2-9c1.6-8 .4-14.2-3.5-18.7s-10.1-6.7-18.6-6.7H52.1zm74.3-85.4h14.6l-3.5 17.9h13c8.2 0 13.8 1.4 16.9 4.3s4 7.5 2.8 13.9L151 87.1h-14.8l5.8-29.9c.7-3.4.4-5.7-.7-6.9s-3.6-1.9-7.3-1.9h-11.7l-7.5 38.7h-14.6zm76.2 28.6c5.6 0 9.3 1 11.2 3.1s2.3 5.6 1.3 10.6c-1 5.2-3 9-5.9 11.2q-4.35 3.3-13.2 3.3H174l5.5-28.2zM153.7 105h14.7l3.5-17.9h12.6c5.6 0 10.1-.6 13.7-1.8s6.8-3.1 9.8-5.9q3.75-3.45 6-7.5c1.5-2.7 2.6-5.7 3.2-9c1.6-8 .4-14.2-3.5-18.7s-10.1-6.7-18.6-6.7h-28.3z'/></svg>");
|
|
354
|
+
}
|
|
355
|
+
.cg-tab[data-cg-icon="c"]::before {
|
|
356
|
+
content: '';
|
|
357
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 288'><path fill='%23a9b9cb' d='M255.987 85.672c-.002-4.843-1.037-9.122-3.129-12.794c-2.055-3.612-5.134-6.638-9.262-9.032c-34.081-19.67-68.195-39.28-102.264-58.97c-9.185-5.307-18.091-5.114-27.208.27c-13.565 8.008-81.481 46.956-101.719 58.689C4.071 68.665.015 76.056.013 85.663C0 125.221.013 164.777 0 204.336c.002 4.736.993 8.932 2.993 12.55c2.056 3.72 5.177 6.83 9.401 9.278c20.239 11.733 88.164 50.678 101.726 58.688c9.121 5.387 18.027 5.579 27.215.27c34.07-19.691 68.186-39.3 102.272-58.97c4.224-2.447 7.345-5.559 9.401-9.276c1.997-3.618 2.99-7.814 2.992-12.551c0 0 0-79.094-.013-118.653'/><path fill='%237f8b99' d='M141.101 5.134c-9.17-5.294-18.061-5.101-27.163.269C100.395 13.39 32.59 52.237 12.385 63.94C4.064 68.757.015 76.129.013 85.711C0 125.166.013 164.62 0 204.076c.002 4.724.991 8.909 2.988 12.517c2.053 3.711 5.169 6.813 9.386 9.254a9009 9009 0 0 0 20.159 11.62L219.625 50.375c-26.178-15.074-52.363-30.136-78.524-45.241'/><path fill='%23fff' d='m154.456 126.968l39.839.281c0-16.599-16.802-57.249-64.973-57.249c-30.691 0-71.951 19.512-71.951 75.61S97.818 220 129.322 220c51.017 0 63.21-35.302 63.21-55.252l-38.007-2.173s1.017 23.075-25.406 23.075c-24.39 0-28.46-29.878-28.46-40.04c0-15.447 5.493-40.244 28.46-40.244c22.968 0 25.337 21.602 25.337 21.602'/></svg>");
|
|
358
|
+
}
|
|
359
|
+
.cg-tab[data-cg-icon="cpp"]::before {
|
|
360
|
+
content: '';
|
|
361
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 288'><path fill='%23649ad2' d='M255.987 84.59c-.002-4.837-1.037-9.112-3.13-12.781c-2.054-3.608-5.133-6.632-9.261-9.023c-34.08-19.651-68.195-39.242-102.264-58.913c-9.185-5.303-18.09-5.11-27.208.27c-13.565 8-81.48 46.91-101.719 58.632C4.071 67.6.015 74.984.013 84.58C0 124.101.013 163.62 0 203.141c0 4.73.993 8.923 2.993 12.537c2.056 3.717 5.177 6.824 9.401 9.269c20.24 11.722 88.164 50.63 101.726 58.631c9.121 5.382 18.027 5.575 27.215.27c34.07-19.672 68.186-39.262 102.272-58.913c4.224-2.444 7.345-5.553 9.401-9.267c1.997-3.614 2.992-7.806 2.992-12.539c0 0 0-79.018-.013-118.539'/><path fill='%23004482' d='m128.392 143.476l-125.4 72.202c2.057 3.717 5.178 6.824 9.402 9.269c20.24 11.722 88.164 50.63 101.726 58.631c9.121 5.382 18.027 5.575 27.215.27c34.07-19.672 68.186-39.262 102.272-58.913c4.224-2.444 7.345-5.553 9.401-9.267z'/><path fill='%231a4674' d='M91.25 164.863c7.297 12.738 21.014 21.33 36.75 21.33c15.833 0 29.628-8.7 36.888-21.576l-36.496-21.141z'/><path fill='%2301589c' d='M255.987 84.59c-.002-4.837-1.037-9.112-3.13-12.781l-124.465 71.667l124.616 72.192c1.997-3.614 2.99-7.806 2.992-12.539c0 0 0-79.018-.013-118.539'/><path fill='%23fff' d='M249.135 148.636h-9.738v9.74h-9.74v-9.74h-9.737V138.9h9.737v-9.738h9.74v9.738h9.738zM128 58.847c31.135 0 58.358 16.74 73.17 41.709l.444.759l-37.001 21.307c-7.333-12.609-20.978-21.094-36.613-21.094c-23.38 0-42.333 18.953-42.333 42.332a42.13 42.13 0 0 0 5.583 21.003c7.297 12.738 21.014 21.33 36.75 21.33c15.659 0 29.325-8.51 36.647-21.153l.241-.423l36.947 21.406c-14.65 25.597-42.228 42.851-73.835 42.851c-31.549 0-59.084-17.185-73.754-42.707c-7.162-12.459-11.26-26.904-11.26-42.307c0-46.95 38.061-85.013 85.014-85.013m75.865 70.314v9.738h9.737v9.737h-9.737v9.74h-9.738v-9.74h-9.738V138.9h9.738v-9.738z'/></svg>");
|
|
362
|
+
}
|
|
363
|
+
.cg-tab[data-cg-icon="html"]::before {
|
|
364
|
+
content: '';
|
|
365
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 361'><path fill='%23e44d26' d='m255.555 70.766l-23.241 260.36l-104.47 28.962l-104.182-28.922L.445 70.766z'/><path fill='%23f16529' d='m128 337.95l84.417-23.403l19.86-222.49H128z'/><path fill='%23ebebeb' d='M82.82 155.932H128v-31.937H47.917l.764 8.568l7.85 88.01H128v-31.937H85.739zm7.198 80.61h-32.06l4.474 50.146l65.421 18.16l.147-.04V271.58l-.14.037l-35.568-9.604z'/><path d='M24.18 0h16.23v16.035h14.847V0h16.231v48.558h-16.23v-16.26H40.411v16.26h-16.23V0M92.83 16.103H78.544V0h44.814v16.103h-14.295v32.455h-16.23V16.103zM130.47 0h16.923l10.41 17.062L168.203 0h16.93v48.558h-16.164V24.49l-11.166 17.265h-.28L146.35 24.49v24.068h-15.88zm62.74 0h16.235v32.508h22.824v16.05h-39.06z'/><path fill='%23fff' d='M127.89 220.573h39.327l-3.708 41.42l-35.62 9.614v33.226l65.473-18.145l.48-5.396l7.506-84.08l.779-8.576H127.89zm0-64.719v.078h77.143l.64-7.178l1.456-16.191l.763-8.568H127.89z'/></svg>");
|
|
366
|
+
}
|
|
367
|
+
.cg-tab[data-cg-icon="css"]::before {
|
|
368
|
+
content: '';
|
|
369
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 361'><path fill='%23264DE4' d='M127.844 360.088L23.662 331.166L.445 70.766h255.11l-23.241 260.36z'/><path fill='%232965F1' d='m212.417 314.547l19.86-222.49H128V337.95z'/><path fill='%23EBEBEB' d='m53.669 188.636l2.862 31.937H128v-31.937zm-5.752-64.641l2.903 31.937H128v-31.937zM128 271.58l-.14.037l-35.568-9.604l-2.274-25.471h-32.06l4.474 50.146l65.421 18.16l.147-.04z'/><path d='M60.484 0h38.68v16.176H76.66v16.176h22.506v16.175H60.484zm46.417 0h38.681v14.066h-22.505v2.813h22.505v32.352h-38.68V34.46h22.505v-2.813H106.9zm46.418 0H192v14.066h-22.505v2.813H192v32.352h-38.681V34.46h22.505v-2.813H153.32z'/><path fill='%23FFF' d='m202.127 188.636l5.765-64.641H127.89v31.937h45.002l-2.906 32.704H127.89v31.937h39.327l-3.708 41.42l-35.62 9.614v33.226l65.473-18.145l.48-5.396l7.506-84.08z'/></svg>");
|
|
370
|
+
}
|
|
371
|
+
.cg-tab[data-cg-icon="json"]::before {
|
|
372
|
+
content: '';
|
|
373
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><path fill='%23f5de19' d='M4.014 14.976a2.5 2.5 0 0 0 1.567-.518a2.38 2.38 0 0 0 .805-1.358a15.3 15.3 0 0 0 .214-2.944q.012-2.085.075-2.747a5.2 5.2 0 0 1 .418-1.686a3 3 0 0 1 .755-1.018A3.05 3.05 0 0 1 9 4.125A6.8 6.8 0 0 1 10.544 4h.7v1.96h-.387a2.34 2.34 0 0 0-1.723.468a3.4 3.4 0 0 0-.425 2.092a36 36 0 0 1-.137 4.133a4.7 4.7 0 0 1-.768 2.06A4.6 4.6 0 0 1 6.1 16a3.8 3.8 0 0 1 1.992 1.754a8.9 8.9 0 0 1 .618 3.865q0 2.435.05 2.9a1.76 1.76 0 0 0 .504 1.181a2.64 2.64 0 0 0 1.592.337h.387V28h-.7a5.7 5.7 0 0 1-1.773-.2a2.97 2.97 0 0 1-1.324-.93a3.35 3.35 0 0 1-.681-1.63a24 24 0 0 1-.165-3.234a16.5 16.5 0 0 0-.214-3.106a2.4 2.4 0 0 0-.805-1.361a2.5 2.5 0 0 0-1.567-.524Zm23.972 2.035a2.5 2.5 0 0 0-1.567.524a2.4 2.4 0 0 0-.805 1.361a16.5 16.5 0 0 0-.212 3.109a24 24 0 0 1-.169 3.234a3.35 3.35 0 0 1-.681 1.63a2.97 2.97 0 0 1-1.324.93a5.7 5.7 0 0 1-1.773.2h-.7V26.04h.387a2.64 2.64 0 0 0 1.592-.337a1.76 1.76 0 0 0 .506-1.186q.05-.462.05-2.9a8.9 8.9 0 0 1 .618-3.865A3.8 3.8 0 0 1 25.9 16a4.6 4.6 0 0 1-1.7-1.286a4.7 4.7 0 0 1-.768-2.06a36 36 0 0 1-.137-4.133a3.4 3.4 0 0 0-.425-2.092a2.34 2.34 0 0 0-1.723-.468h-.387V4h.7a6.8 6.8 0 0 1 1.54.125a3.05 3.05 0 0 1 1.149.581a3 3 0 0 1 .755 1.018a5.2 5.2 0 0 1 .418 1.686q.062.662.075 2.747a15.3 15.3 0 0 0 .212 2.947a2.38 2.38 0 0 0 .805 1.355a2.5 2.5 0 0 0 1.567.518Z'/></svg>");
|
|
374
|
+
}
|
|
375
|
+
.cg-tab[data-cg-icon="yaml"]::before {
|
|
376
|
+
content: '';
|
|
377
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><path fill='%23ffe885' d='M2 12.218c.755 0 1.51-.008 2.264 0l.053.038l2.761 2.758c.891-.906 1.8-1.794 2.7-2.7c.053-.052.11-.113.192-.1h1.823a1.4 1.4 0 0 1 .353.019c-.7.67-1.377 1.369-2.069 2.05L5.545 18.8c-.331.324-.648.663-.989.975c-.754.022-1.511.007-2.266.007c1.223-1.209 2.431-2.433 3.658-3.637c-1.321-1.304-2.63-2.62-3.948-3.927m10.7 0h1.839v7.566c-.611 0-1.222.012-1.832-.008v-4.994c-1.6 1.607-3.209 3.2-4.811 4.8c-.089.08-.166.217-.305.194c-.824-.006-1.649 0-2.474 0Q8.916 16 12.7 12.218m2.258.002c.47-.009.939 0 1.409 0c.836.853 1.69 1.689 2.536 2.532q1.268-1.267 2.539-2.532h1.4q-.008 3.784 0 7.567c-.471 0-.943.006-1.414 0q.008-2.387 0-4.773c-.844.843-1.676 1.7-2.526 2.536c-.856-.835-1.687-1.695-2.532-2.541c0 1.594-.006 3.188.006 4.781c-.472 0-.943.005-1.415 0q-.003-3.79-.003-7.57m8.301-.003c.472 0 .944-.007 1.416 0q-.007 3.083 0 6.166h3.782c.063.006.144-.012.191.045c.448.454.907.9 1.353 1.354q-3.371.007-6.741 0q.007-3.782-.001-7.565'/></svg>");
|
|
378
|
+
}
|
|
379
|
+
.cg-tab[data-cg-icon="markdown"]::before {
|
|
380
|
+
content: '';
|
|
381
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><path fill='none' stroke='%23755838' d='M2.5 7.955h27v16.091h-27z'/><path fill='%23755838' d='M5.909 20.636v-9.272h2.727l2.728 3.409l2.727-3.409h2.727v9.272h-2.727v-5.318l-2.727 3.409l-2.728-3.409v5.318zm17.046 0l-4.091-4.5h2.727v-4.772h2.727v4.772h2.727z'/></svg>");
|
|
382
|
+
}
|
|
383
|
+
.cg-tab[data-cg-icon="bash"]::before {
|
|
384
|
+
content: '';
|
|
385
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 224 256'><path fill='%23fff' d='M207.953 52.162L127.317 4.287a30.37 30.37 0 0 0-31.114 0L15.55 52.162A32.17 32.17 0 0 0 0 79.869v95.734a32.17 32.17 0 0 0 15.55 27.691l80.636 47.859a30.39 30.39 0 0 0 31.115 0l80.636-47.859a32.17 32.17 0 0 0 15.566-27.707V79.869a32.17 32.17 0 0 0-15.55-27.707'/><path fill='%232f3a3e' d='m208.412 52.277l-80.814-47.98a30.44 30.44 0 0 0-31.184 0l-80.83 47.98A32.24 32.24 0 0 0 0 80.045v95.945a32.24 32.24 0 0 0 15.584 27.752l80.814 47.964a30.46 30.46 0 0 0 31.183 0l80.814-47.964a32.24 32.24 0 0 0 15.6-27.769V80.045a32.24 32.24 0 0 0-15.583-27.768M99.23 246.803l-80.814-47.964A26.6 26.6 0 0 1 5.6 175.989V80.046a26.59 26.59 0 0 1 12.816-22.849L99.23 9.216a24.92 24.92 0 0 1 25.536 0l80.749 47.98a26.43 26.43 0 0 1 12.412 18.48c-2.687-5.712-8.723-7.282-15.762-3.236l-76.396 47.316c-9.531 5.551-16.554 11.814-16.57 23.303v94.213c0 6.877 2.767 11.327 7.039 12.638a25 25 0 0 1-4.24.405a25.03 25.03 0 0 1-12.768-3.512'/><path fill='%233ab14a' d='m187.007 185.06l-20.086 12.013a1.47 1.47 0 0 0-.92 1.308v5.28c0 .646.435.904.968.597l20.394-12.4a1.62 1.62 0 0 0 .613-1.615v-4.634c-.016-.598-.484-.856-.969-.55'/><path fill='%23fff' d='M144.263 140.832c.646-.323 1.179 0 1.195.92l.064 7.008a12.9 12.9 0 0 1 7.718-.937c.501.13.71.808.517 1.615l-1.534 6.152a2.65 2.65 0 0 1-.694 1.227a1.6 1.6 0 0 1-.404.29a.92.92 0 0 1-.597.098a10.24 10.24 0 0 0-7.444 1.194a9.35 9.35 0 0 0-5.506 8.284c0 3.229 1.615 4.117 7.25 4.214c7.444.13 10.673 3.375 10.754 10.883a26.69 26.69 0 0 1-9.882 20.135l.13 6.878a2.52 2.52 0 0 1-1.18 2.1l-4.068 2.34c-.646.323-1.18 0-1.195-.904v-6.765c-3.488 1.453-7.024 1.792-9.285.888c-.42-.162-.613-.791-.436-1.518l1.47-6.216a2.6 2.6 0 0 1 .726-1.292q.174-.166.388-.275a.8.8 0 0 1 .662 0c2.878.78 5.948.392 8.541-1.081a11.17 11.17 0 0 0 6.314-9.688c0-3.488-1.922-4.941-6.459-4.974c-5.861 0-11.303-1.13-11.416-9.688a25.03 25.03 0 0 1 9.462-19.15l-.29-7.04a2.5 2.5 0 0 1 1.178-2.13z'/></svg>");
|
|
386
|
+
}
|
|
387
|
+
.cg-tab[data-cg-icon="docker"]::before {
|
|
388
|
+
content: '';
|
|
389
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 185'><path fill='%232396ed' d='M250.716 70.497c-5.765-4-18.976-5.5-29.304-3.5c-1.2-10-6.725-18.749-16.333-26.499l-5.524-4l-3.844 5.75c-4.803 7.5-7.205 18-6.485 28c.24 3.499 1.441 9.749 5.044 15.249c-3.362 2-10.328 4.5-19.455 4.5H1.155l-.48 2c-1.682 9.999-1.682 41.248 18.014 65.247c14.892 18.249 36.99 27.499 66.053 27.499c62.93 0 109.528-30.25 131.386-84.997c8.647.25 27.142 0 36.51-18.75c.24-.5.72-1.5 2.401-5.249l.961-2zM139.986 0h-26.42v24.999h26.42zm0 29.999h-26.42v24.999h26.42zm-31.225 0h-26.42v24.999h26.42zm-31.225 0H51.115v24.999h26.421zM46.311 59.998H19.89v24.999h26.42zm31.225 0H51.115v24.999h26.421zm31.225 0h-26.42v24.999h26.42zm31.226 0h-26.422v24.999h26.422zm31.225 0H144.79v24.999h26.422z'/></svg>");
|
|
185
390
|
}
|
|
186
|
-
.
|
|
187
|
-
|
|
188
|
-
.
|
|
189
|
-
color: #f472b6; /* Pink 400 */
|
|
391
|
+
.cg-tab[data-cg-icon="vite"]::before {
|
|
392
|
+
content: '';
|
|
393
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 257'><defs><linearGradient id='SVGmrugVdcL' x1='-.828%' x2='57.636%' y1='7.652%' y2='78.411%'><stop offset='0%' stop-color='%2341D1FF'/><stop offset='100%' stop-color='%23BD34FE'/></linearGradient><linearGradient id='SVGqn4NsbfA' x1='43.376%' x2='50.316%' y1='2.242%' y2='89.03%'><stop offset='0%' stop-color='%23FFEA83'/><stop offset='8.333%' stop-color='%23FFDD35'/><stop offset='100%' stop-color='%23FFA800'/></linearGradient></defs><path fill='url(%23SVGmrugVdcL)' d='M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.5 6.5 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62'/><path fill='url(%23SVGqn4NsbfA)' d='M185.432.063L96.44 17.501a3.27 3.27 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113'/></svg>");
|
|
190
394
|
}
|
|
395
|
+
.cg-tab[data-cg-icon="react"]::before {
|
|
396
|
+
content: '';
|
|
397
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 228'><path fill='%2300d8ff' d='M210.483 73.824a172 172 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171 171 0 0 0-6.375 5.848a156 156 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a171 171 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a146 146 0 0 0 6.921 2.165a168 168 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a146 146 0 0 0 5.342-4.923a168 168 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145 145 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844m-6.365 70.984q-2.102.694-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14m-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a157 157 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345q.785 3.162 1.386 6.193M87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a157 157 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a135 135 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94M50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a135 135 0 0 1-6.318-1.979m12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144 144 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160 160 0 0 1-1.76-7.887m110.427 27.268a348 348 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381 381 0 0 0-7.365-13.322m-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322 322 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18M82.802 87.83a323 323 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a322 322 0 0 0-7.848 12.897m8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321 321 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147m37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486m52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382 382 0 0 0 7.859-13.026a347 347 0 0 0 7.425-13.565m-16.898 8.101a359 359 0 0 1-12.281 19.815a329 329 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310 310 0 0 1-12.513-19.846h.001a307 307 0 0 1-10.923-20.627a310 310 0 0 1 10.89-20.637l-.001.001a307 307 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329 329 0 0 1 12.335 19.695a359 359 0 0 1 11.036 20.54a330 330 0 0 1-11 20.722m22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026q-.518 2.504-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a161 161 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3M128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86'/></svg>");
|
|
398
|
+
}
|
|
399
|
+
.cg-tab[data-cg-icon="vue"]::before {
|
|
400
|
+
content: '';
|
|
401
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 221'><path fill='%2341b883' d='M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0z'/><path fill='%2341b883' d='m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0z'/><path fill='%2335495e' d='M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0z'/></svg>");
|
|
402
|
+
}
|
|
403
|
+
.cg-tab[data-cg-icon="nextjs"]::before {
|
|
404
|
+
content: '';
|
|
405
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'><defs><linearGradient id='SVGrDou6dwg' x1='55.633%' x2='83.228%' y1='56.385%' y2='96.08%'><stop offset='0%' stop-color='%23fff'/><stop offset='100%' stop-color='%23fff' stop-opacity='0'/></linearGradient><linearGradient id='SVG9onTObtB' x1='50%' x2='49.953%' y1='0%' y2='73.438%'><stop offset='0%' stop-color='%23fff'/><stop offset='100%' stop-color='%23fff' stop-opacity='0'/></linearGradient><circle id='SVGN5eQqeMK' cx='128' cy='128' r='128'/></defs><mask id='SVGMX2wGdvm' fill='%23fff'><use href='%23SVGN5eQqeMK'/></mask><g mask='url(%23SVGMX2wGdvm)'><circle cx='128' cy='128' r='128'/><path fill='url(%23SVGrDou6dwg)' d='M212.634 224.028L98.335 76.8H76.8v102.357h17.228V98.68L199.11 234.446a128 128 0 0 0 13.524-10.418'/><path fill='url(%23SVG9onTObtB)' d='M163.556 76.8h17.067v102.4h-17.067z'/></g></svg>");
|
|
406
|
+
}
|
|
407
|
+
.cg-tab[data-cg-icon="node"]::before {
|
|
408
|
+
content: '';
|
|
409
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 289'><path fill='%23539e43' d='M128 288.464c-3.975 0-7.685-1.06-11.13-2.915l-35.247-20.936c-5.3-2.915-2.65-3.975-1.06-4.505c7.155-2.385 8.48-2.915 15.9-7.156c.796-.53 1.856-.265 2.65.265l27.032 16.166c1.06.53 2.385.53 3.18 0l105.74-61.217c1.06-.53 1.59-1.59 1.59-2.915V83.08c0-1.325-.53-2.385-1.59-2.915l-105.74-60.953c-1.06-.53-2.385-.53-3.18 0L20.405 80.166c-1.06.53-1.59 1.855-1.59 2.915v122.17c0 1.06.53 2.385 1.59 2.915l28.887 16.695c15.636 7.95 25.44-1.325 25.44-10.6V93.68c0-1.59 1.326-3.18 3.181-3.18h13.516c1.59 0 3.18 1.325 3.18 3.18v120.58c0 20.936-11.396 33.126-31.272 33.126c-6.095 0-10.865 0-24.38-6.625l-27.827-15.9C4.24 220.885 0 213.465 0 205.515V83.346C0 75.396 4.24 67.976 11.13 64L116.87 2.783c6.625-3.71 15.635-3.71 22.26 0L244.87 64C251.76 67.975 256 75.395 256 83.346v122.17c0 7.95-4.24 15.37-11.13 19.345L139.13 286.08c-3.445 1.59-7.42 2.385-11.13 2.385m32.596-84.009c-46.377 0-55.917-21.2-55.917-39.221c0-1.59 1.325-3.18 3.18-3.18h13.78c1.59 0 2.916 1.06 2.916 2.65c2.12 14.045 8.215 20.936 36.306 20.936c22.261 0 31.802-5.035 31.802-16.96c0-6.891-2.65-11.926-37.367-15.372c-28.886-2.915-46.907-9.275-46.907-32.33c0-21.467 18.02-34.187 48.232-34.187c33.921 0 50.617 11.66 52.737 37.101q0 1.193-.795 2.385c-.53.53-1.325 1.06-2.12 1.06h-13.78c-1.326 0-2.65-1.06-2.916-2.385c-3.18-14.575-11.395-19.345-33.126-19.345c-24.38 0-27.296 8.48-27.296 14.84c0 7.686 3.445 10.07 36.306 14.31c32.597 4.24 47.967 10.336 47.967 33.127c-.265 23.321-19.345 36.571-53.002 36.571'/></svg>");
|
|
410
|
+
}
|
|
411
|
+
.cg-tab[data-cg-icon="tailwind"]::before {
|
|
412
|
+
content: '';
|
|
413
|
+
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 154'><defs><linearGradient id='SVGJSB7ld0l' x1='-2.778%' x2='100%' y1='32%' y2='67.556%'><stop offset='0%' stop-color='%232298bd'/><stop offset='100%' stop-color='%230ed7b5'/></linearGradient></defs><path fill='url(%23SVGJSB7ld0l)' d='M128 0Q76.8 0 64 51.2Q83.2 25.6 108.8 32c9.737 2.434 16.697 9.499 24.401 17.318C145.751 62.057 160.275 76.8 192 76.8q51.2 0 64-51.2q-19.2 25.6-44.8 19.2c-9.737-2.434-16.697-9.499-24.401-17.318C174.249 14.743 159.725 0 128 0M64 76.8q-51.2 0-64 51.2q19.2-25.6 44.8-19.2c9.737 2.434 16.697 9.499 24.401 17.318C81.751 138.857 96.275 153.6 128 153.6q51.2 0 64-51.2q-19.2 25.6-44.8 19.2c-9.737-2.434-16.697-9.499-24.401-17.318C110.249 91.543 95.725 76.8 64 76.8'/></svg>");
|
|
414
|
+
}
|
|
415
|
+
/* === END: generated icons === */
|
|
416
|
+
|
|
191
417
|
|
|
192
|
-
.
|
|
193
|
-
|
|
194
|
-
|
|
418
|
+
.code-group .cg-tab:hover {
|
|
419
|
+
color: var(--foreground);
|
|
420
|
+
background: color-mix(in srgb, var(--muted) 8%, transparent);
|
|
195
421
|
}
|
|
196
|
-
|
|
197
|
-
.
|
|
198
|
-
|
|
422
|
+
|
|
423
|
+
.code-group > input[type="radio"]:focus-visible ~ .cg-tablist .cg-tab,
|
|
424
|
+
.code-group .cg-tab:focus-visible {
|
|
425
|
+
outline: 2px solid var(--accent);
|
|
426
|
+
outline-offset: -2px;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
.code-group .cg-panel {
|
|
430
|
+
display: none;
|
|
199
431
|
}
|
|
200
432
|
|
|
201
|
-
|
|
202
|
-
.
|
|
203
|
-
.
|
|
204
|
-
|
|
433
|
+
/* Inside a panel, drop the cb-root's own outer my-6 margin — the code-group
|
|
434
|
+
* already provides framing. */
|
|
435
|
+
.code-group .cg-panel .cb-root {
|
|
436
|
+
margin: 0;
|
|
437
|
+
border: 0;
|
|
438
|
+
border-radius: 0;
|
|
439
|
+
background: transparent;
|
|
440
|
+
box-shadow: none;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
/* Show only the panel whose matching radio is checked. Hardcoded up to 10
|
|
444
|
+
* tabs; if a code-group ever needs more, extend this list. */
|
|
445
|
+
.code-group > input[data-idx="0"]:checked ~ .cg-panel[data-panel="0"],
|
|
446
|
+
.code-group > input[data-idx="1"]:checked ~ .cg-panel[data-panel="1"],
|
|
447
|
+
.code-group > input[data-idx="2"]:checked ~ .cg-panel[data-panel="2"],
|
|
448
|
+
.code-group > input[data-idx="3"]:checked ~ .cg-panel[data-panel="3"],
|
|
449
|
+
.code-group > input[data-idx="4"]:checked ~ .cg-panel[data-panel="4"],
|
|
450
|
+
.code-group > input[data-idx="5"]:checked ~ .cg-panel[data-panel="5"],
|
|
451
|
+
.code-group > input[data-idx="6"]:checked ~ .cg-panel[data-panel="6"],
|
|
452
|
+
.code-group > input[data-idx="7"]:checked ~ .cg-panel[data-panel="7"],
|
|
453
|
+
.code-group > input[data-idx="8"]:checked ~ .cg-panel[data-panel="8"],
|
|
454
|
+
.code-group > input[data-idx="9"]:checked ~ .cg-panel[data-panel="9"] {
|
|
455
|
+
display: block;
|
|
205
456
|
}
|
|
206
457
|
|
|
207
|
-
.
|
|
208
|
-
.
|
|
209
|
-
|
|
458
|
+
/* Highlight the active tab's label. The general sibling combinator (~) works
|
|
459
|
+
* because every input precedes the .cg-tablist in document order. */
|
|
460
|
+
.code-group > input[data-idx="0"]:checked ~ .cg-tablist .cg-tab[for$="-0"],
|
|
461
|
+
.code-group > input[data-idx="1"]:checked ~ .cg-tablist .cg-tab[for$="-1"],
|
|
462
|
+
.code-group > input[data-idx="2"]:checked ~ .cg-tablist .cg-tab[for$="-2"],
|
|
463
|
+
.code-group > input[data-idx="3"]:checked ~ .cg-tablist .cg-tab[for$="-3"],
|
|
464
|
+
.code-group > input[data-idx="4"]:checked ~ .cg-tablist .cg-tab[for$="-4"],
|
|
465
|
+
.code-group > input[data-idx="5"]:checked ~ .cg-tablist .cg-tab[for$="-5"],
|
|
466
|
+
.code-group > input[data-idx="6"]:checked ~ .cg-tablist .cg-tab[for$="-6"],
|
|
467
|
+
.code-group > input[data-idx="7"]:checked ~ .cg-tablist .cg-tab[for$="-7"],
|
|
468
|
+
.code-group > input[data-idx="8"]:checked ~ .cg-tablist .cg-tab[for$="-8"],
|
|
469
|
+
.code-group > input[data-idx="9"]:checked ~ .cg-tablist .cg-tab[for$="-9"] {
|
|
470
|
+
color: var(--accent);
|
|
471
|
+
border-bottom-color: var(--accent);
|
|
472
|
+
background: color-mix(in srgb, var(--background) 100%, transparent);
|
|
210
473
|
}
|
|
211
|
-
|
|
212
|
-
|
|
474
|
+
|
|
475
|
+
/* Word-wrap toggle (MDX-only — the toolbar button flips data-wrap on cb-root) */
|
|
476
|
+
.cb-root[data-wrap="true"] .cb-scroll {
|
|
477
|
+
overflow-x: hidden;
|
|
213
478
|
}
|
|
214
479
|
|
|
215
|
-
.
|
|
216
|
-
|
|
480
|
+
.cb-root[data-wrap="true"] .shiki code,
|
|
481
|
+
.cb-root[data-wrap="true"] .shiki .line {
|
|
482
|
+
white-space: pre-wrap;
|
|
483
|
+
overflow-wrap: anywhere;
|
|
217
484
|
}
|
|
218
485
|
|
|
219
486
|
@layer components {
|
|
@@ -498,6 +765,118 @@ body {
|
|
|
498
765
|
color: var(--heading);
|
|
499
766
|
}
|
|
500
767
|
|
|
768
|
+
/* GitHub-flavored alerts (Markdown / MDX) + matching rST admonitions.
|
|
769
|
+
* One per-type accent variable drives both border, title color, and tinted
|
|
770
|
+
* background, so MDX `> [!NOTE]` and rST `.. note::` look visually identical.
|
|
771
|
+
* Colors track GitHub Primer's alert palette adapted to amytis CSS variables. */
|
|
772
|
+
.alert {
|
|
773
|
+
--alert-accent: var(--accent);
|
|
774
|
+
|
|
775
|
+
margin: 2rem 0;
|
|
776
|
+
border-left: 4px solid var(--alert-accent);
|
|
777
|
+
border-radius: 0.75rem;
|
|
778
|
+
padding: 1rem 1.25rem;
|
|
779
|
+
background: color-mix(in srgb, var(--alert-accent) 8%, var(--background));
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
.alert > .alert-body > :first-child {
|
|
783
|
+
margin-top: 0;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
.alert > .alert-body > :last-child {
|
|
787
|
+
margin-bottom: 0;
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
.alert .alert-title {
|
|
791
|
+
display: flex;
|
|
792
|
+
align-items: center;
|
|
793
|
+
gap: 0.5rem;
|
|
794
|
+
margin-bottom: 0.5rem;
|
|
795
|
+
font-family: var(--font-inter), ui-sans-serif, system-ui, sans-serif;
|
|
796
|
+
font-size: 0.8rem;
|
|
797
|
+
font-weight: 700;
|
|
798
|
+
letter-spacing: 0.08em;
|
|
799
|
+
text-transform: uppercase;
|
|
800
|
+
color: var(--alert-accent);
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
.alert .alert-title svg {
|
|
804
|
+
flex: none;
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
/* Per-type accent assignments. The same variables apply to rST admonitions
|
|
808
|
+
* below so the two pipelines render with matching colors. */
|
|
809
|
+
.alert-note,
|
|
810
|
+
.rst-rendered aside.admonition-note {
|
|
811
|
+
--alert-accent: #0969da;
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
.alert-tip,
|
|
815
|
+
.rst-rendered aside.admonition-tip,
|
|
816
|
+
.rst-rendered aside.admonition-hint {
|
|
817
|
+
--alert-accent: #1a7f37;
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
.alert-important,
|
|
821
|
+
.rst-rendered aside.admonition-important {
|
|
822
|
+
--alert-accent: #8250df;
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
.alert-warning,
|
|
826
|
+
.rst-rendered aside.admonition-warning,
|
|
827
|
+
.rst-rendered aside.admonition-attention {
|
|
828
|
+
--alert-accent: #9a6700;
|
|
829
|
+
}
|
|
830
|
+
|
|
831
|
+
.alert-caution,
|
|
832
|
+
.rst-rendered aside.admonition-caution,
|
|
833
|
+
.rst-rendered aside.admonition-danger {
|
|
834
|
+
--alert-accent: #cf222e;
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
/* Dark-mode tweaks: GitHub Primer's dark-tier alert accents are brighter so
|
|
838
|
+
* they read against the dark background instead of disappearing. */
|
|
839
|
+
html.dark .alert-note,
|
|
840
|
+
html.dark .rst-rendered aside.admonition-note {
|
|
841
|
+
--alert-accent: #58a6ff;
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
html.dark .alert-tip,
|
|
845
|
+
html.dark .rst-rendered aside.admonition-tip,
|
|
846
|
+
html.dark .rst-rendered aside.admonition-hint {
|
|
847
|
+
--alert-accent: #3fb950;
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
html.dark .alert-important,
|
|
851
|
+
html.dark .rst-rendered aside.admonition-important {
|
|
852
|
+
--alert-accent: #a371f7;
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
html.dark .alert-warning,
|
|
856
|
+
html.dark .rst-rendered aside.admonition-warning,
|
|
857
|
+
html.dark .rst-rendered aside.admonition-attention {
|
|
858
|
+
--alert-accent: #d29922;
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
html.dark .alert-caution,
|
|
862
|
+
html.dark .rst-rendered aside.admonition-caution,
|
|
863
|
+
html.dark .rst-rendered aside.admonition-danger {
|
|
864
|
+
--alert-accent: #f85149;
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
/* rST admonitions: pick up the per-type accent via the same variable the MDX
|
|
868
|
+
* alerts use, so the existing rule (border-left, background) recolors itself. */
|
|
869
|
+
.rst-rendered aside.admonition {
|
|
870
|
+
--alert-accent: var(--accent);
|
|
871
|
+
|
|
872
|
+
border-left-color: var(--alert-accent);
|
|
873
|
+
background: color-mix(in srgb, var(--alert-accent) 8%, var(--background));
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
.rst-rendered aside.admonition .admonition-title {
|
|
877
|
+
color: var(--alert-accent);
|
|
878
|
+
}
|
|
879
|
+
|
|
501
880
|
.rst-rendered .docutils.literal {
|
|
502
881
|
border: 1px solid color-mix(in srgb, var(--muted) 24%, transparent);
|
|
503
882
|
border-radius: 0.375rem;
|
|
@@ -555,43 +934,44 @@ body {
|
|
|
555
934
|
vertical-align: middle;
|
|
556
935
|
}
|
|
557
936
|
|
|
558
|
-
.
|
|
559
|
-
|
|
560
|
-
overflow-x: auto;
|
|
561
|
-
border: 1px solid color-mix(in srgb, var(--muted) 28%, transparent);
|
|
562
|
-
border-radius: 0.875rem;
|
|
563
|
-
background: color-mix(in srgb, var(--heading) 7%, var(--background));
|
|
564
|
-
padding: 1rem 1.25rem;
|
|
565
|
-
color: var(--heading);
|
|
566
|
-
font-size: 0.95rem;
|
|
567
|
-
line-height: 1.7;
|
|
568
|
-
box-shadow: inset 0 1px 0 color-mix(in srgb, white 60%, transparent);
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
.dark .rst-rendered pre.literal-block,
|
|
572
|
-
.dark .rst-rendered pre.code.literal-block {
|
|
573
|
-
border-color: color-mix(in srgb, var(--muted) 22%, transparent);
|
|
574
|
-
background: color-mix(in srgb, var(--foreground) 9%, var(--background));
|
|
575
|
-
color: var(--foreground);
|
|
576
|
-
box-shadow: inset 0 1px 0 color-mix(in srgb, white 5%, transparent);
|
|
937
|
+
.katex-display {
|
|
938
|
+
text-align: center;
|
|
577
939
|
}
|
|
578
940
|
|
|
579
|
-
.
|
|
580
|
-
|
|
581
|
-
background: transparent;
|
|
582
|
-
padding: 0;
|
|
583
|
-
color: inherit;
|
|
941
|
+
.katex-display > .katex {
|
|
942
|
+
text-align: center;
|
|
584
943
|
}
|
|
585
944
|
|
|
586
|
-
|
|
587
|
-
|
|
945
|
+
/* Tailwind Typography zeros padding on first/last table cells so unframed
|
|
946
|
+
* tables align with surrounding paragraph text. Our `MarkdownRenderer` wraps
|
|
947
|
+
* every table in a bordered container, which makes that zero-padding push
|
|
948
|
+
* content flush against the border. Restore symmetric horizontal padding
|
|
949
|
+
* on every cell so framed tables breathe inside their wrapper.
|
|
950
|
+
*
|
|
951
|
+
* Selector deliberately avoids the plugin's
|
|
952
|
+
* `.prose :where(...):not(:where(.not-prose, .not-prose *))` shape:
|
|
953
|
+
* Tailwind v4 / Lightning CSS silently strips user rules that match that
|
|
954
|
+
* pattern from the compiled bundle (verified by inspecting the built CSS).
|
|
955
|
+
* Bare descendant selectors survive compilation and have specificity
|
|
956
|
+
* (0,1,2), beating the plugin's (0,1,0) first/last-child rules
|
|
957
|
+
* regardless of source order. */
|
|
958
|
+
.prose thead th, .prose tbody td, .prose tfoot td {
|
|
959
|
+
padding-inline: 0.75rem;
|
|
960
|
+
}
|
|
961
|
+
|
|
962
|
+
/* Browser-default <summary> looks like an unstyled heading — readers miss
|
|
963
|
+
* that it's interactive. Color it like a link (accent + pointer + hover
|
|
964
|
+
* underline) so it carries the same affordance as other clickable text in
|
|
965
|
+
* prose. The native disclosure marker stays — it's the redundant visual
|
|
966
|
+
* cue that confirms "this expands." Same selector shape as the cell-padding
|
|
967
|
+
* override above and for the same reason. */
|
|
968
|
+
.prose summary {
|
|
588
969
|
color: var(--accent);
|
|
589
|
-
|
|
970
|
+
cursor: pointer;
|
|
590
971
|
}
|
|
591
972
|
|
|
592
|
-
.
|
|
593
|
-
|
|
594
|
-
color: color-mix(in srgb, var(--accent) 68%, var(--foreground));
|
|
973
|
+
.prose summary:hover {
|
|
974
|
+
text-decoration: underline;
|
|
595
975
|
}
|
|
596
976
|
|
|
597
977
|
.rst-rendered a[role="doc-noteref"] {
|
|
@@ -616,3 +996,70 @@ body {
|
|
|
616
996
|
font-weight: 600;
|
|
617
997
|
color: var(--heading);
|
|
618
998
|
}
|
|
999
|
+
|
|
1000
|
+
/* Immersive reading mode.
|
|
1001
|
+
* Toggled by ImmersiveReadingProvider via the html element's data-immersive
|
|
1002
|
+
* attribute. The fullscreen ImmersiveReader overlay also covers the site
|
|
1003
|
+
* chrome, but these rules are kept as defense-in-depth (and reset the
|
|
1004
|
+
* navbar offset so the scroll padding doesn't peek through the overlay).
|
|
1005
|
+
* Do not strip the data-site-nav / data-site-footer / data-reading-progress
|
|
1006
|
+
* hooks.
|
|
1007
|
+
*
|
|
1008
|
+
* IMPORTANT: every attribute selector below uses an explicit ="true" value,
|
|
1009
|
+
* and no rule starts with `html[...]`. Tailwind v4 / Lightning CSS silently
|
|
1010
|
+
* dead-code-eliminates rules that start with `html[...]` and bare attribute
|
|
1011
|
+
* selectors like `[data-site-nav]` — they end up missing from the compiled
|
|
1012
|
+
* CSS bundle even though they're written here in source. The surviving
|
|
1013
|
+
* patterns are bare-attribute-with-value (e.g. `[data-palette="blue"]`,
|
|
1014
|
+
* `[data-line-numbers="true"]`) and class-prefixed compounds (e.g.
|
|
1015
|
+
* `.dark[data-palette="blue"]`). React serialises a bare JSX
|
|
1016
|
+
* `data-site-nav` prop to the HTML `data-site-nav="true"`, so writing
|
|
1017
|
+
* `="true"` here costs nothing on the component side. */
|
|
1018
|
+
[data-immersive="true"] [data-site-nav="true"],
|
|
1019
|
+
[data-immersive="true"] [data-site-footer="true"],
|
|
1020
|
+
[data-immersive="true"] [data-reading-progress="true"] {
|
|
1021
|
+
display: none;
|
|
1022
|
+
}
|
|
1023
|
+
[data-immersive="true"] #main-content {
|
|
1024
|
+
padding-top: 0;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
/* Font-size in the reader overlay is driven by a CSS var set inline on the
|
|
1028
|
+
* overlay container. A var (not stacked text-* classes) sidesteps fighting
|
|
1029
|
+
* the prose-lg specificity. */
|
|
1030
|
+
[data-reader-overlay="true"] .prose {
|
|
1031
|
+
font-size: var(--reading-font-size, 1.125rem);
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
/* Reading-theme overrides — scoped to the overlay so they compose with the
|
|
1035
|
+
* site's light/dark theme without leaking outside. 'auto' inherits the site
|
|
1036
|
+
* theme (no override needed); 'light' / 'dark' / 'sepia' set their own
|
|
1037
|
+
* variables. The overlay also adds Tailwind's `.dark` class on its container
|
|
1038
|
+
* when readingTheme === 'dark' so `dark:prose-invert` activates regardless of
|
|
1039
|
+
* the site theme. Shiki code blocks keep their own theme on purpose. */
|
|
1040
|
+
[data-reader-overlay="true"][data-reading-theme="light"] {
|
|
1041
|
+
--background: #fafaf9;
|
|
1042
|
+
--foreground: #44403c;
|
|
1043
|
+
--heading: #1c1917;
|
|
1044
|
+
--muted: #78716c;
|
|
1045
|
+
}
|
|
1046
|
+
[data-reader-overlay="true"][data-reading-theme="dark"] {
|
|
1047
|
+
--background: #292524;
|
|
1048
|
+
--foreground: #f5f5f4;
|
|
1049
|
+
--heading: #fafaf9;
|
|
1050
|
+
--muted: #a8a29e;
|
|
1051
|
+
}
|
|
1052
|
+
[data-reader-overlay="true"][data-reading-theme="sepia"] {
|
|
1053
|
+
--background: #f4ecd8;
|
|
1054
|
+
--foreground: #5b4636;
|
|
1055
|
+
--heading: #3b2f24;
|
|
1056
|
+
--muted: #8a7a66;
|
|
1057
|
+
}
|
|
1058
|
+
[data-reader-overlay="true"][data-reading-theme="sepia"] .prose h1,
|
|
1059
|
+
[data-reader-overlay="true"][data-reading-theme="sepia"] .prose h2,
|
|
1060
|
+
[data-reader-overlay="true"][data-reading-theme="sepia"] .prose h3,
|
|
1061
|
+
[data-reader-overlay="true"][data-reading-theme="sepia"] .prose h4,
|
|
1062
|
+
[data-reader-overlay="true"][data-reading-theme="sepia"] .prose h5,
|
|
1063
|
+
[data-reader-overlay="true"][data-reading-theme="sepia"] .prose h6 {
|
|
1064
|
+
color: var(--heading);
|
|
1065
|
+
}
|