diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs
index 21ebe70e9..0e49d4499 100644
--- a/docs/astro.config.mjs
+++ b/docs/astro.config.mjs
@@ -1,5 +1,8 @@
import starlight from "@astrojs/starlight";
import sentry from "@sentry/astro";
+import sentryStarlightTheme, {
+ monochromeCodeTheme,
+} from "@sentry/starlight-theme";
import { defineConfig } from "astro/config";
// Allow base path override via environment variable for PR previews
@@ -10,6 +13,9 @@ export default defineConfig({
base,
markdown: {
smartypants: false,
+ shikiConfig: {
+ theme: monochromeCodeTheme,
+ },
},
// Generate sourcemaps for Sentry. "hidden" produces .map files without
// adding //# sourceMappingURL comments to the output (the debug IDs
@@ -52,28 +58,9 @@ export default defineConfig({
href: "https://github.com/getsentry/cli",
},
],
- expressiveCode: {
- themes: ["github-dark"],
- styleOverrides: {
- frames: {
- frameBoxShadowCssValue: "none",
- editorActiveTabIndicatorTopColor: "transparent",
- editorActiveTabIndicatorBottomColor: "transparent",
- editorTabBarBorderBottomColor: "transparent",
- editorTabBarBackground: "transparent",
- terminalTitlebarBorderBottomColor: "transparent",
- terminalTitlebarBackground: "rgba(255, 255, 255, 0.03)",
- terminalBackground: "#0a0a0f",
- },
- borderRadius: "12px",
- borderColor: "rgba(255, 255, 255, 0.1)",
- codeBackground: "#0a0a0f",
- },
- },
+ plugins: [sentryStarlightTheme()],
components: {
- ThemeProvider: "./src/components/ThemeProvider.astro",
Header: "./src/components/Header.astro",
- ThemeSelect: "./src/components/ThemeSelect.astro",
PageTitle: "./src/components/PageTitle.astro",
},
head: [
@@ -91,7 +78,7 @@ export default defineConfig({
const path = window.location.pathname;
// Works with both / (prod) and /pr-preview/pr-XX (preview)
return path === '/' ||
- /^\\/_preview\\/pr-(\\d+|main)\\/?$/.test(path);
+ /^\\/\\_preview\\/pr-(\\d+|main)\\/?$/.test(path);
}
function checkAtBottom() {
@@ -235,7 +222,7 @@ export default defineConfig({
},
{
label: "Commands",
- autogenerate: { directory: "commands" },
+ items: [{ autogenerate: { directory: "commands" } }],
},
{
label: "Resources",
@@ -245,7 +232,7 @@ export default defineConfig({
],
},
],
- customCss: ["./src/styles/custom.css"],
+ customCss: ["./src/styles/cli.css"],
}),
],
});
diff --git a/docs/package.json b/docs/package.json
index f650e6599..c73b5ce29 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -8,9 +8,10 @@
"preview": "astro preview"
},
"dependencies": {
- "@astrojs/starlight": "^0.38.3",
+ "@astrojs/starlight": "^0.39.2",
"@sentry/astro": "^10.38.0",
- "astro": "^6.1.8",
+ "@sentry/starlight-theme": "^0.3.0",
+ "astro": "^6.3.5",
"sharp": "^0.33.5",
"shiki": "^3.21.0"
}
diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml
index b0714788e..0c39ec74e 100644
--- a/docs/pnpm-lock.yaml
+++ b/docs/pnpm-lock.yaml
@@ -9,13 +9,16 @@ importers:
.:
dependencies:
'@astrojs/starlight':
- specifier: ^0.38.3
- version: 0.38.5(astro@6.3.7(@types/node@25.9.1)(rollup@4.60.4))
+ specifier: ^0.39.2
+ version: 0.39.2(astro@6.3.7(@types/node@25.9.1)(rollup@4.60.4))
'@sentry/astro':
specifier: ^10.38.0
version: 10.53.1(astro@6.3.7(@types/node@25.9.1)(rollup@4.60.4))(rollup@4.60.4)
+ '@sentry/starlight-theme':
+ specifier: ^0.3.0
+ version: 0.3.0(@astrojs/starlight@0.39.2(astro@6.3.7(@types/node@25.9.1)(rollup@4.60.4)))
astro:
- specifier: ^6.1.8
+ specifier: ^6.3.5
version: 6.3.7(@types/node@25.9.1)(rollup@4.60.4)
sharp:
specifier: ^0.33.5
@@ -48,8 +51,8 @@ packages:
'@astrojs/sitemap@3.7.2':
resolution: {integrity: sha512-PqkzkcZTb5ICiyIR8VoKbIAP/laNRXi5tw616N1Ckk+40oNB8Can1AzVV56lrbC5GKSZFCyJYUVYqVivMisvpA==}
- '@astrojs/starlight@0.38.5':
- resolution: {integrity: sha512-35xLSOtZDAMAilHG2zAEZoJ4AaPb+doYOvxuuRTAnmIBSOvujffOAHv3/rr6W/LJtkhBU38PjRDJ4i8QT1uGVw==}
+ '@astrojs/starlight@0.39.2':
+ resolution: {integrity: sha512-vlw+bwnjtf5buCTUtLU7JfV6D3knslxqnspr6LKs6hfRuFZiyr5hT44F7GyDqR9FKANUqFxnIzWM81F1k/kOUA==}
peerDependencies:
astro: ^6.0.0
@@ -112,10 +115,6 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/runtime@7.29.2':
- resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
- engines: {node: '>=6.9.0'}
-
'@babel/template@7.28.6':
resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==}
engines: {node: '>=6.9.0'}
@@ -372,155 +371,183 @@ packages:
resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-arm64@1.2.4':
resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-arm@1.0.5':
resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==}
cpu: [arm]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-arm@1.2.4':
resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==}
cpu: [arm]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-ppc64@1.2.4':
resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==}
cpu: [ppc64]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-riscv64@1.2.4':
resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==}
cpu: [riscv64]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-s390x@1.0.4':
resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==}
cpu: [s390x]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-s390x@1.2.4':
resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==}
cpu: [s390x]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-x64@1.0.4':
resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-x64@1.2.4':
resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linuxmusl-arm64@1.0.4':
resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@img/sharp-libvips-linuxmusl-arm64@1.2.4':
resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@img/sharp-libvips-linuxmusl-x64@1.0.4':
resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@img/sharp-libvips-linuxmusl-x64@1.2.4':
resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@img/sharp-linux-arm64@0.33.5':
resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-arm64@0.34.5':
resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-arm@0.33.5':
resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-arm@0.34.5':
resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-ppc64@0.34.5':
resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [ppc64]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-riscv64@0.34.5':
resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [riscv64]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-s390x@0.33.5':
resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [s390x]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-s390x@0.34.5':
resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [s390x]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-x64@0.33.5':
resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-x64@0.34.5':
resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@img/sharp-linuxmusl-arm64@0.33.5':
resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@img/sharp-linuxmusl-arm64@0.34.5':
resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@img/sharp-linuxmusl-x64@0.33.5':
resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@img/sharp-linuxmusl-x64@0.34.5':
resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@img/sharp-wasm32@0.33.5':
resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==}
@@ -846,66 +873,79 @@ packages:
resolution: {integrity: sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==}
cpu: [arm]
os: [linux]
+ libc: [glibc]
'@rollup/rollup-linux-arm-musleabihf@4.60.4':
resolution: {integrity: sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==}
cpu: [arm]
os: [linux]
+ libc: [musl]
'@rollup/rollup-linux-arm64-gnu@4.60.4':
resolution: {integrity: sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@rollup/rollup-linux-arm64-musl@4.60.4':
resolution: {integrity: sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@rollup/rollup-linux-loong64-gnu@4.60.4':
resolution: {integrity: sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==}
cpu: [loong64]
os: [linux]
+ libc: [glibc]
'@rollup/rollup-linux-loong64-musl@4.60.4':
resolution: {integrity: sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==}
cpu: [loong64]
os: [linux]
+ libc: [musl]
'@rollup/rollup-linux-ppc64-gnu@4.60.4':
resolution: {integrity: sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==}
cpu: [ppc64]
os: [linux]
+ libc: [glibc]
'@rollup/rollup-linux-ppc64-musl@4.60.4':
resolution: {integrity: sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==}
cpu: [ppc64]
os: [linux]
+ libc: [musl]
'@rollup/rollup-linux-riscv64-gnu@4.60.4':
resolution: {integrity: sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==}
cpu: [riscv64]
os: [linux]
+ libc: [glibc]
'@rollup/rollup-linux-riscv64-musl@4.60.4':
resolution: {integrity: sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==}
cpu: [riscv64]
os: [linux]
+ libc: [musl]
'@rollup/rollup-linux-s390x-gnu@4.60.4':
resolution: {integrity: sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==}
cpu: [s390x]
os: [linux]
+ libc: [glibc]
'@rollup/rollup-linux-x64-gnu@4.60.4':
resolution: {integrity: sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@rollup/rollup-linux-x64-musl@4.60.4':
resolution: {integrity: sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@rollup/rollup-openbsd-x64@4.60.4':
resolution: {integrity: sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==}
@@ -1073,6 +1113,12 @@ packages:
rollup:
optional: true
+ '@sentry/starlight-theme@0.3.0':
+ resolution: {integrity: sha512-/6HZoCd54dQ9lJHcF5C5f9EDM1iZZZkMjDaItMPhC5ExpYgwT82sci77a+lFVx/85U7n1/0fGpekB4aozLQXAA==}
+ engines: {node: '>=22.12.0'}
+ peerDependencies:
+ '@astrojs/starlight': '>=0.39.0'
+
'@sentry/vite-plugin@5.3.0':
resolution: {integrity: sha512-qcoSzo4n2MulVQ70UUPLq6dTleb2a2HwL2wuwvAgWhPChrYTuk6A6mDg6aQb9fairPAwFPiU9PzOANpoDJcz1A==}
engines: {node: '>= 18'}
@@ -1636,8 +1682,13 @@ packages:
resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
engines: {node: '>= 6'}
- i18next@23.16.8:
- resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==}
+ i18next@26.2.0:
+ resolution: {integrity: sha512-zwBHldHdTmwN7r6UNc7lC6GWNN+YYg3DrRSeHR5PRRBf5QnJZcYHrQc0uaU26qZeYxR7iFZD+Y315dPnKP47wA==}
+ peerDependencies:
+ typescript: ^5 || ^6
+ peerDependenciesMeta:
+ typescript:
+ optional: true
import-in-the-middle@2.0.6:
resolution: {integrity: sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw==}
@@ -2579,7 +2630,7 @@ snapshots:
stream-replace-string: 2.0.0
zod: 4.4.3
- '@astrojs/starlight@0.38.5(astro@6.3.7(@types/node@25.9.1)(rollup@4.60.4))':
+ '@astrojs/starlight@0.39.2(astro@6.3.7(@types/node@25.9.1)(rollup@4.60.4))':
dependencies:
'@astrojs/markdown-remark': 7.1.2
'@astrojs/mdx': 5.0.6(astro@6.3.7(@types/node@25.9.1)(rollup@4.60.4))
@@ -2595,7 +2646,7 @@ snapshots:
hast-util-select: 6.0.4
hast-util-to-string: 3.0.1
hastscript: 9.0.1
- i18next: 23.16.8
+ i18next: 26.2.0
js-yaml: 4.1.1
klona: 2.0.6
magic-string: 0.30.21
@@ -2612,6 +2663,7 @@ snapshots:
vfile: 6.0.3
transitivePeerDependencies:
- supports-color
+ - typescript
'@astrojs/telemetry@3.3.2':
dependencies:
@@ -2698,8 +2750,6 @@ snapshots:
dependencies:
'@babel/types': 7.29.0
- '@babel/runtime@7.29.2': {}
-
'@babel/template@7.28.6':
dependencies:
'@babel/code-frame': 7.29.0
@@ -3586,6 +3636,10 @@ snapshots:
- encoding
- supports-color
+ '@sentry/starlight-theme@0.3.0(@astrojs/starlight@0.39.2(astro@6.3.7(@types/node@25.9.1)(rollup@4.60.4)))':
+ dependencies:
+ '@astrojs/starlight': 0.39.2(astro@6.3.7(@types/node@25.9.1)(rollup@4.60.4))
+
'@sentry/vite-plugin@5.3.0(rollup@4.60.4)':
dependencies:
'@sentry/bundler-plugin-core': 5.3.0
@@ -3724,7 +3778,7 @@ snapshots:
'@types/sax@1.2.7':
dependencies:
- '@types/node': 24.12.4
+ '@types/node': 25.9.1
'@types/tedious@4.0.14':
dependencies:
@@ -4392,9 +4446,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- i18next@23.16.8:
- dependencies:
- '@babel/runtime': 7.29.2
+ i18next@26.2.0: {}
import-in-the-middle@2.0.6:
dependencies:
diff --git a/docs/src/components/CodeBlock.astro b/docs/src/components/CodeBlock.astro
deleted file mode 100644
index c35c3de85..000000000
--- a/docs/src/components/CodeBlock.astro
+++ /dev/null
@@ -1,115 +0,0 @@
----
-interface Props {
- code: string;
- lang?: string;
- title?: string;
-}
-
-const { code, lang = "bash", title = "Terminal" } = Astro.props;
-const codeId = `code-${Math.random().toString(36).substr(2, 9)}`;
----
-
-
-
-
-
-
diff --git a/docs/src/components/CommandBox.astro b/docs/src/components/CommandBox.astro
deleted file mode 100644
index e391c0e3c..000000000
--- a/docs/src/components/CommandBox.astro
+++ /dev/null
@@ -1,138 +0,0 @@
----
-interface Props {
- command?: string;
- docsLink?: string;
- docsText?: string;
-}
-
-const {
- command = "npx sentry@latest",
- docsLink,
- docsText = "Read the docs"
-} = Astro.props;
----
-
-
-
-
-
-
diff --git a/docs/src/components/FeatureTerminal.astro b/docs/src/components/FeatureTerminal.astro
index 3f13576d4..753d4b22e 100644
--- a/docs/src/components/FeatureTerminal.astro
+++ b/docs/src/components/FeatureTerminal.astro
@@ -65,7 +65,7 @@ const { title = "Terminal" } = Astro.props;
.feature-terminal-body {
padding: 0 1.5rem 1.25rem;
- font-family: 'JetBrains Mono', ui-monospace, monospace;
+ font-family: var(--sl-font-mono);
line-height: 1.6;
color: rgba(255, 255, 255, 0.85);
}
@@ -108,7 +108,7 @@ const { title = "Terminal" } = Astro.props;
/* Table box styles */
.feature-terminal-body :global(.table-box) {
- font-family: 'JetBrains Mono', ui-monospace, monospace;
+ font-family: var(--sl-font-mono);
font-size: 0.7rem;
line-height: 1.5;
margin: 0;
diff --git a/docs/src/components/Header.astro b/docs/src/components/Header.astro
index ca2f8d492..cffb606fe 100644
--- a/docs/src/components/Header.astro
+++ b/docs/src/components/Header.astro
@@ -1,16 +1,17 @@
---
-import Search from "@astrojs/starlight/components/Search.astro";
-import SiteTitle from "@astrojs/starlight/components/SiteTitle.astro";
-import SocialIcons from "@astrojs/starlight/components/SocialIcons.astro";
+import config from "virtual:starlight/user-config";
+
+import Search from "virtual:starlight/components/Search";
+import SiteTitle from "virtual:starlight/components/SiteTitle";
+import SocialIcons from "virtual:starlight/components/SocialIcons";
-// Check if we're on the homepage (splash page).
-// In Starlight >=0.33, route data lives on Astro.locals.starlightRoute; the
-// old `slug` field is now `id` (empty string for the landing page).
const isHomepage = Astro.locals.starlightRoute.id === "";
+const shouldRenderSearch =
+ config.pagefind ||
+ config.components.Search !== "@astrojs/starlight/components/Search.astro";
-// Get base path for links
const baseUrl = import.meta.env.BASE_URL;
-const base = baseUrl.endsWith('/') ? baseUrl : baseUrl + '/';
+const base = baseUrl.endsWith("/") ? baseUrl : baseUrl + "/";
---
@@ -19,7 +20,7 @@ const base = baseUrl.endsWith('/') ? baseUrl : baseUrl + '/';
+
+
+
{npm}
+
{pnpm}
+
{yarn}
+
{bun}
-
-
{npm}
-
{pnpm}
-
{yarn}
-
{bun}
-
diff --git a/docs/src/components/Terminal.astro b/docs/src/components/Terminal.astro
index 2b051dce7..7609d2f91 100644
--- a/docs/src/components/Terminal.astro
+++ b/docs/src/components/Terminal.astro
@@ -162,7 +162,7 @@ if (background) {
.terminal-body {
padding: 0 1.5rem 1.25rem;
- font-family: 'JetBrains Mono', monospace;
+ font-family: var(--sl-font-mono);
font-size: 0.8rem;
line-height: 1.6;
}
@@ -245,7 +245,7 @@ if (background) {
}
.table-box {
- font-family: 'JetBrains Mono', monospace;
+ font-family: var(--sl-font-mono);
font-size: 0.7rem;
line-height: 1.5;
margin: 0;
diff --git a/docs/src/components/ThemeProvider.astro b/docs/src/components/ThemeProvider.astro
deleted file mode 100644
index 30f4d8fe1..000000000
--- a/docs/src/components/ThemeProvider.astro
+++ /dev/null
@@ -1,23 +0,0 @@
----
-// Force dark mode only - completely overrides Starlight's theme system
----
-
-{/* Matches Starlight's inline pattern to prevent FOUC */}
-
-
-{/* Empty template to satisfy any code expecting theme icons */}
-
diff --git a/docs/src/components/ThemeSelect.astro b/docs/src/components/ThemeSelect.astro
deleted file mode 100644
index b2cd08d28..000000000
--- a/docs/src/components/ThemeSelect.astro
+++ /dev/null
@@ -1,3 +0,0 @@
----
-// Empty component to hide theme selector - we're dark mode only
----
diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx
index 3a99e84e6..4fbff5831 100644
--- a/docs/src/content/docs/index.mdx
+++ b/docs/src/content/docs/index.mdx
@@ -12,7 +12,6 @@ hero:
---
import { Card, CardGrid } from '@astrojs/starlight/components';
-import CommandBox from '../../components/CommandBox.astro';
import InstallSelector from '../../components/InstallSelector.astro';
import Terminal from '../../components/Terminal.astro';
import FeatureTerminal from '../../components/FeatureTerminal.astro';
diff --git a/docs/src/styles/cli.css b/docs/src/styles/cli.css
new file mode 100644
index 000000000..146348cfe
--- /dev/null
+++ b/docs/src/styles/cli.css
@@ -0,0 +1,614 @@
+/* ==========================================================================
+ Sentry CLI Docs — Project-specific overrides
+ Base theme provided by @sentry/starlight-theme
+ ========================================================================== */
+
+:root,
+:root[data-theme="dark"],
+:root[data-theme="light"] {
+ /* Compat: existing components reference this var */
+ --sl-color-accent-rgb: 139 92 246;
+
+ /* CLI uses Inter + JetBrains Mono */
+ --sl-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
+ --sl-font-mono: "JetBrains Mono", ui-monospace, monospace;
+
+ /* Match the original CLI docs header sizing. */
+ --sl-nav-height: 4rem !important;
+ --sl-nav-pad-x: 1.5rem !important;
+ --sl-nav-gap: 2rem !important;
+}
+
+/* Subtle background gradient glow */
+.main-frame::before {
+ content: "";
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 100vh;
+ background:
+ radial-gradient(
+ ellipse 80% 50% at 50% -20%,
+ rgb(var(--sl-color-accent-rgb) / 0.12) 0%,
+ transparent 50%
+ ),
+ radial-gradient(
+ ellipse 60% 40% at 100% 0%,
+ rgba(59, 130, 246, 0.08) 0%,
+ transparent 40%
+ );
+ pointer-events: none;
+ z-index: -1;
+}
+
+/* GitHub icon - white in header */
+.social-icons a,
+.social-icons a svg,
+a[href*="github.com"],
+a[href*="github.com"] svg {
+ color: #fff !important;
+ fill: #fff !important;
+}
+
+.social-icons a:hover,
+.social-icons a:hover svg,
+a[href*="github.com"]:hover,
+a[href*="github.com"]:hover svg {
+ color: rgba(255, 255, 255, 0.8) !important;
+ fill: rgba(255, 255, 255, 0.8) !important;
+}
+
+/* Header / Navigation */
+header.header {
+ background: rgba(10, 10, 15, 0.95);
+ backdrop-filter: blur(12px);
+ border-bottom: none;
+}
+
+header.header > .header {
+ display: flex;
+ gap: 1rem;
+ justify-content: space-between;
+ align-items: center;
+ height: 100%;
+ width: 100%;
+ padding: 0;
+ background: transparent;
+ backdrop-filter: none;
+}
+
+.header-left {
+ flex: 0 0 auto;
+}
+
+.header-right {
+ flex: 0 0 auto;
+ gap: 1rem;
+ align-items: center;
+}
+
+.site-title img {
+ height: 2.3rem !important;
+ width: auto !important;
+}
+
+starlight-menu-button button {
+ background-color: #1a1a1f !important;
+ color: #fff !important;
+ border: 1px solid rgba(255, 255, 255, 0.2) !important;
+ box-shadow: none !important;
+}
+
+site-search {
+ --sl-search-width: 22rem;
+}
+
+site-search button {
+ background: var(--sl-color-bg) !important;
+ border: 1px solid rgba(255, 255, 255, 0.25) !important;
+ border-radius: 6px !important;
+ padding: 0.35rem 0.75rem !important;
+ font-size: 0.8rem !important;
+ height: auto !important;
+ min-height: unset !important;
+ gap: 0.5rem !important;
+ width: 22rem !important;
+ min-width: 22rem !important;
+ justify-content: space-between !important;
+ position: fixed !important;
+ left: 50% !important;
+ transform: translateX(-50%) !important;
+ top: 0.75rem !important;
+ z-index: 1000 !important;
+}
+
+site-search button:hover {
+ border-color: rgba(255, 255, 255, 0.4) !important;
+}
+
+site-search button svg {
+ width: 14px !important;
+ height: 14px !important;
+ color: rgba(255, 255, 255, 0.5) !important;
+}
+
+site-search button span {
+ font-size: 0.8rem !important;
+ color: rgba(255, 255, 255, 0.5) !important;
+}
+
+site-search button kbd {
+ background: transparent !important;
+ border: none !important;
+ color: rgba(255, 255, 255, 0.5) !important;
+ font-size: 0.75rem !important;
+ padding: 0 !important;
+ box-shadow: none !important;
+}
+
+/* Docs section heading accent - keep it below the text, not through it. */
+html[data-has-sidebar] .sl-markdown-content h2:not(:where(.not-content *))::before {
+ bottom: 0.02em;
+ height: 0.12em;
+ left: 0;
+ right: var(--sl-anchor-icon-space, 0);
+ transform: none;
+}
+
+/* ==========================================================================
+ Splash / Landing Page Styles
+ ========================================================================== */
+
+/* Hero section */
+.hero {
+ padding: 10rem 0 0.5rem !important;
+ text-align: left !important;
+ max-width: none !important;
+}
+
+.hero > img,
+.hero > .hero-image {
+ display: none !important;
+}
+
+/* Hero title - make it bold and impactful */
+.hero h1 {
+ font-size: clamp(2.5rem, 8vw, 4rem) !important;
+ font-weight: 700 !important;
+ line-height: 1 !important;
+ letter-spacing: -0.03em !important;
+ margin-bottom: 1.5rem !important;
+}
+
+/* Hero tagline */
+.hero .tagline {
+ font-size: 1.125rem !important;
+ line-height: 1.7 !important;
+ color: rgba(255, 255, 255, 0.6) !important;
+ max-width: 540px !important;
+ margin: 0 !important;
+}
+
+/* Hide default hero actions */
+.hero .action,
+.hero .sl-flex.actions {
+ display: none !important;
+}
+
+/* Command box in hero - tight to tagline, space below */
+.hero-command {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 0.75rem;
+ margin-top: 0.5rem;
+ margin-bottom: 4rem;
+}
+
+.hero-docs-link {
+ color: rgba(255, 255, 255, 0.7) !important;
+ text-decoration: none !important;
+ font-weight: 400;
+ font-size: 0.9rem;
+ transition: color 0.2s ease;
+ margin-top: 0.75rem;
+ position: relative;
+ display: inline-block;
+}
+
+.hero-docs-link::after {
+ content: "";
+ position: absolute;
+ bottom: -3px;
+ right: 0;
+ width: 7.5em; /* Width of "documentation." */
+ height: 1px;
+ background: currentColor;
+ transition: width 0.3s ease;
+}
+
+.hero-docs-link:hover {
+ color: #fff !important;
+}
+
+.hero-docs-link:hover::after {
+ width: 100%;
+}
+
+/* Remove the static underline from the span since pseudo-element handles it */
+.hero-docs-link .underline {
+ text-decoration: none;
+}
+
+/* Stack container - page layout for splash.
+ Keep the landing page at the pre-theme width; normal docs pages use the
+ shared Sentry Starlight theme defaults. */
+html[data-has-hero]:not([data-has-sidebar]) {
+ --sl-content-width: 67.5rem !important;
+ --sl-content-pad-x: 2rem !important;
+}
+
+@media (max-width: 49.999rem) {
+ html[data-has-hero]:not([data-has-sidebar]) {
+ --sl-nav-height: 3.5rem !important;
+ --sl-nav-pad-x: 1rem !important;
+ }
+}
+
+@media (min-width: 50rem) {
+ html[data-has-hero]:not([data-has-sidebar]) {
+ --sl-nav-height: 4rem !important;
+ --sl-nav-pad-x: 1.5rem !important;
+ }
+}
+
+html[data-has-hero]:not([data-has-sidebar]) header.header {
+ background: rgba(10, 10, 15, 0.95);
+ border-bottom: none;
+}
+
+html[data-has-hero]:not([data-has-sidebar]) header.header > .header {
+ background: transparent;
+ backdrop-filter: none;
+}
+
+html[data-has-hero]:not([data-has-sidebar]) .header-homepage {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 1rem;
+ height: 100%;
+ width: 100%;
+ max-width: var(--sl-content-width);
+ margin: 0 auto;
+ padding: 0;
+}
+
+html[data-has-hero]:not([data-has-sidebar]) .header-left {
+ flex: 0 0 auto;
+}
+
+html[data-has-hero]:not([data-has-sidebar]) .header-right {
+ display: flex;
+ flex: 0 0 auto;
+ align-items: center;
+ gap: 1rem;
+ margin-left: auto;
+}
+
+html[data-has-hero]:not([data-has-sidebar]) .content-panel {
+ padding: 1.5rem var(--sl-content-pad-x);
+}
+
+html[data-has-hero]:not([data-has-sidebar]) .sl-container {
+ max-width: var(--sl-content-width);
+ margin: 0 auto;
+ padding: 0;
+}
+
+html[data-has-hero]:not([data-has-sidebar]) main > .content-panel:first-child .sl-container > * + * {
+ margin-top: 1.5rem;
+}
+
+html[data-has-hero]:not([data-has-sidebar]) .sl-markdown-content {
+ line-height: 1.8;
+}
+
+html[data-has-hero]:not([data-has-sidebar]) .command-text {
+ font-size: 0.875em;
+ font-weight: 500;
+ line-height: 1;
+ padding: 0.2em 0.5em;
+}
+
+html[data-has-hero]:not([data-has-sidebar]) main {
+ padding-top: 0;
+}
+
+/* ==========================================================================
+ Features Section - Horizontal Rows with Terminals
+ ========================================================================== */
+
+.feature-section {
+ margin: 2rem 0;
+ background: rgba(255, 255, 255, 0.02);
+ border-radius: 16px;
+ overflow: hidden;
+}
+
+.feature-section-inner {
+ display: flex;
+ align-items: stretch;
+}
+
+.feature-section-inner.reverse {
+ flex-direction: row-reverse;
+}
+
+.feature-text {
+ flex: 1;
+ min-width: 0;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ padding: 2.5rem;
+}
+
+.feature-text h3 {
+ font-size: 1.75rem;
+ font-weight: 600;
+ color: #fff;
+ margin: 0 0 0.75rem 0;
+ line-height: 1.2;
+}
+
+.feature-text p {
+ font-size: 1.05rem;
+ line-height: 1.7;
+ color: rgba(255, 255, 255, 0.55);
+ margin: 0 0 1rem 0;
+}
+
+.feature-text p:last-child {
+ margin-bottom: 0;
+ color: rgba(255, 255, 255, 0.45);
+}
+
+.feature-text code {
+ background: rgba(255, 255, 255, 0.1);
+ padding: 0.15em 0.4em;
+ border-radius: 4px;
+ font-size: 0.9em;
+}
+
+.feature-visual {
+ flex: 0 0 55%;
+ min-width: 0;
+ min-height: 420px;
+ margin: 0.5rem 0.75rem 0.75rem 0;
+ padding: 10%;
+ background-size: cover;
+ background-position: center;
+ border-radius: 8px;
+ border: 1px solid rgba(255, 255, 255, 0.1);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ box-sizing: border-box;
+ overflow: hidden;
+}
+
+.feature-section-inner.reverse .feature-visual {
+ margin: 0.75rem 0 0.75rem 0.75rem;
+}
+
+/* Responsive for feature sections */
+@media (max-width: 1000px) {
+ .feature-section-inner,
+ .feature-section-inner.reverse {
+ flex-direction: column;
+ }
+
+ .feature-text {
+ padding: 2rem;
+ text-align: center;
+ }
+
+ .feature-visual,
+ .feature-section-inner.reverse .feature-visual {
+ flex: none;
+ width: calc(100% - 1.5rem);
+ min-height: 380px;
+ margin: 0 0.75rem 0.75rem 0.75rem;
+ }
+}
+
+@media (max-width: 600px) {
+ .feature-section {
+ margin: 1.5rem 0;
+ }
+
+ .feature-text {
+ padding: 1.5rem;
+ }
+
+ .feature-visual {
+ min-height: 340px;
+ margin: 0 0.5rem 0.5rem 0.5rem;
+ padding: 8%;
+ }
+
+ .feature-text h3 {
+ font-size: 1.4rem;
+ }
+}
+
+@media (max-width: 480px) {
+ .feature-visual {
+ margin: 0 0.5rem 0.5rem 0.5rem;
+ min-height: 300px;
+ padding: 6%;
+ }
+
+ .feature-text {
+ padding: 1.25rem;
+ }
+
+ .feature-text h3 {
+ font-size: 1.25rem;
+ }
+}
+
+/* ==========================================================================
+ PackageManagerCode - pm-pre no-border treatment
+ ========================================================================== */
+
+pre.pm-pre,
+.pm-pre {
+ background: transparent !important;
+ border: none !important;
+ border-radius: 0 !important;
+ margin: 0 !important;
+ padding: 0 !important;
+}
+
+/* ASCII art tables inside terminals - no chrome, consistent monospace */
+pre.table-box {
+ background: transparent !important;
+ border: none !important;
+ border-radius: 0 !important;
+ margin: 0 !important;
+ padding: 0 !important;
+}
+
+pre.table-box,
+pre.table-box * {
+ font-family: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas,
+ "DejaVu Sans Mono", monospace !important;
+ font-size: inherit !important;
+ font-weight: 400 !important;
+ font-style: normal !important;
+ font-variant: normal !important;
+ font-variant-ligatures: none !important;
+ font-feature-settings: normal !important;
+ font-stretch: normal !important;
+ letter-spacing: 0 !important;
+ word-spacing: 0 !important;
+ text-decoration: none !important;
+ text-transform: none !important;
+ -webkit-text-size-adjust: none !important;
+}
+
+/* ==========================================================================
+ Mobile Responsive
+ ========================================================================== */
+
+@media (max-width: 768px) {
+ /* Reset search bar to flow naturally in the compact docs header. */
+ site-search button {
+ position: static !important;
+ left: auto !important;
+ top: auto !important;
+ transform: none !important;
+ z-index: auto !important;
+ width: auto !important;
+ min-width: auto !important;
+ padding: 0.5rem !important;
+ }
+
+ site-search button span,
+ site-search button kbd {
+ display: none !important;
+ }
+
+ .hero {
+ text-align: center !important;
+ }
+
+ .hero h1 {
+ font-size: 2rem !important;
+ }
+
+ .hero .tagline {
+ font-size: 1rem !important;
+ margin: 0 auto !important;
+ }
+
+ .hero-command {
+ align-items: center;
+ }
+
+ .hero-command .command-box-wrapper {
+ justify-content: center;
+ }
+
+ .hero-command .install-selector {
+ max-width: 100%;
+ }
+
+ .hero-command .install-box {
+ flex-shrink: 0;
+ }
+
+ .hero-command .command-area {
+ font-size: 0.7rem;
+ padding: 0.5rem 0.75rem;
+ }
+}
+
+/* ==========================================================================
+ Overscroll Easter Egg
+ ========================================================================== */
+
+.overscroll-message {
+ position: fixed;
+ bottom: -60px;
+ left: 50%;
+ transform: translateX(-50%) translateY(0);
+ z-index: 9999;
+ pointer-events: none;
+ opacity: 0;
+ transition:
+ opacity 0.15s ease-out,
+ transform 0.15s ease-out;
+}
+
+.overscroll-message span {
+ display: inline-block;
+ padding: 0.6rem 1.5rem;
+ background: rgb(var(--sl-color-accent-rgb) / 0.12);
+ border: 1px solid rgb(var(--sl-color-accent-rgb) / 0.25);
+ border-radius: 24px;
+ color: rgba(255, 255, 255, 0.8);
+ font-size: 0.9rem;
+ font-weight: 500;
+ font-family: var(--sl-font);
+ backdrop-filter: blur(12px);
+ white-space: nowrap;
+}
+
+.overscroll-message code {
+ background: rgba(255, 255, 255, 0.1);
+ padding: 0.2em 0.5em;
+ border-radius: 6px;
+ font-family: var(--sl-font-mono);
+ font-size: 0.85em;
+ color: #a78bfa;
+ cursor: pointer;
+ pointer-events: auto;
+}
+
+.overscroll-message code:hover {
+ background: rgba(255, 255, 255, 0.18);
+}
+
+@media (max-width: 640px) {
+ .overscroll-message span {
+ white-space: normal;
+ text-align: center;
+ max-width: calc(100vw - 2rem);
+ font-size: 0.8rem;
+ padding: 0.5rem 1rem;
+ }
+}
diff --git a/docs/src/styles/custom.css b/docs/src/styles/custom.css
deleted file mode 100644
index 1a53bf828..000000000
--- a/docs/src/styles/custom.css
+++ /dev/null
@@ -1,1869 +0,0 @@
-/* ==========================================================================
- Sentry CLI Documentation - Dark Theme Only
- ========================================================================== */
-
-/* Force dark mode regardless of system preference */
-:root,
-html,
-html[data-theme="light"],
-html[data-theme="dark"] {
- color-scheme: dark !important;
-}
-
-/* Override all theme states with dark mode values */
-:root,
-html,
-[data-theme="light"],
-[data-theme="dark"] {
- /* Background colors */
- --sl-color-bg: #0a0a0f;
- --sl-color-bg-nav: rgba(10, 10, 15, 0.95);
- --sl-color-bg-sidebar: rgba(10, 10, 15, 0.98);
- --sl-color-bg-inline-code: rgba(255, 255, 255, 0.08);
-
- /* Accent colors - Purple theme */
- --sl-color-accent: #8b5cf6;
- --sl-color-accent-rgb: 139 92 246;
- --sl-color-accent-high: #a78bfa;
- --sl-color-accent-low: rgb(var(--sl-color-accent-rgb) / 0.2);
-
- /* Text colors - BOOSTED CONTRAST */
- --sl-color-white: #ffffff;
- --sl-color-gray-1: #ffffff;
- --sl-color-gray-2: #f1f5f9;
- --sl-color-gray-3: #e2e8f0;
- --sl-color-gray-4: #cbd5e1;
- --sl-color-gray-5: #94a3b8;
- --sl-color-gray-6: #64748b;
- --sl-color-black: #0a0a0f;
-
- /* Border colors */
- --sl-color-hairline: rgba(255, 255, 255, 0.1);
- --sl-color-hairline-shade: rgba(255, 255, 255, 0.1);
- --sl-color-hairline-light: rgba(255, 255, 255, 0.06);
-
- /* Inline code - accent-tinted */
- --sl-color-bg-inline-code: rgb(var(--sl-color-accent-rgb) / 0.15);
-
- /* Typography */
- --sl-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
- --sl-font-mono: "JetBrains Mono", ui-monospace, monospace;
-
- /* Sizing */
- --sl-content-width: 50rem;
- --sl-sidebar-width: 17rem;
- --sl-content-pad-x: 2rem;
-}
-
-/* ==========================================================================
- Global Styles
- ========================================================================== */
-
-body {
- background: var(--sl-color-bg);
-}
-
-/* Strip Starlight's default focus outline — our :focus-visible rule below
- provides the purple outline for keyboard users instead.
- NOTE: Do NOT add background-color overrides here — it breaks elements
- with intentional backgrounds (sidebar active link, hover states). */
-:focus {
- outline: none !important;
-}
-
-/* Re-add purple outline for keyboard focus */
-:focus-visible {
- outline: 2px solid rgb(var(--sl-color-accent-rgb) / 0.5) !important;
- outline-offset: 2px !important;
- border-radius: 4px;
-}
-
-/* Skip to content link — visible on any focus (keyboard only element) */
-a[href="#_top"]:focus {
- background: rgb(var(--sl-color-accent-rgb) / 0.9) !important;
- color: #fff !important;
- outline: none !important;
-}
-
-/* Subtle background gradient */
-.sl-layout::before {
- content: "";
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- height: 100vh;
- background:
- radial-gradient(
- ellipse 80% 50% at 50% -20%,
- rgb(var(--sl-color-accent-rgb) / 0.12) 0%,
- transparent 50%
- ),
- radial-gradient(
- ellipse 60% 40% at 100% 0%,
- rgba(59, 130, 246, 0.08) 0%,
- transparent 40%
- );
- pointer-events: none;
- z-index: -1;
-}
-
-/* ==========================================================================
- Header / Navigation
- ========================================================================== */
-
-header.header {
- background: rgba(10, 10, 15, 0.95);
- backdrop-filter: blur(12px);
- border-bottom: none;
-}
-
-/* Ensure hamburger menu button is visible and properly styled */
-starlight-menu-button button {
- background-color: #1a1a1f !important;
- color: #fff !important;
- border: 1px solid rgba(255, 255, 255, 0.2) !important;
- box-shadow: none !important;
-}
-
-/* Logo size - larger */
-.site-title img {
- height: 2.3rem !important;
- width: auto !important;
-}
-
-/* GitHub icon - white */
-.social-icons a,
-.social-icons a svg,
-a[href*="github.com"],
-a[href*="github.com"] svg,
-[class*="astro-wy4te6ga"],
-[class*="astro-wy4te6ga"] svg {
- color: #fff !important;
- fill: #fff !important;
-}
-
-.social-icons a:hover,
-.social-icons a:hover svg,
-a[href*="github.com"]:hover,
-a[href*="github.com"]:hover svg {
- color: rgba(255, 255, 255, 0.8) !important;
- fill: rgba(255, 255, 255, 0.8) !important;
-}
-
-/* Search bar - centered in page */
-site-search {
- --sl-search-width: 22rem;
-}
-
-site-search button {
- background: var(--sl-color-bg) !important;
- border: 1px solid rgba(255, 255, 255, 0.25) !important;
- border-radius: 6px !important;
- padding: 0.35rem 0.75rem !important;
- font-size: 0.8rem !important;
- height: auto !important;
- min-height: unset !important;
- gap: 0.5rem !important;
- width: 22rem !important;
- min-width: 22rem !important;
- justify-content: space-between !important;
- position: fixed !important;
- left: 50% !important;
- transform: translateX(-50%) !important;
- top: 0.75rem !important;
- z-index: 1000 !important;
-}
-
-site-search button:hover {
- border-color: rgba(255, 255, 255, 0.4) !important;
-}
-
-/* Search icon */
-site-search button svg {
- width: 14px !important;
- height: 14px !important;
- color: rgba(255, 255, 255, 0.5) !important;
-}
-
-/* Search text */
-site-search button span {
- font-size: 0.8rem !important;
- color: rgba(255, 255, 255, 0.5) !important;
-}
-
-/* Command+K indicator */
-site-search button kbd {
- background: transparent !important;
- border: none !important;
- color: rgba(255, 255, 255, 0.5) !important;
- font-size: 0.75rem !important;
- padding: 0 !important;
- box-shadow: none !important;
-}
-
-/* ==========================================================================
- Splash / Landing Page Styles
- ========================================================================== */
-
-/* Hero section */
-.hero {
- padding: 10rem 0 0.5rem !important;
- text-align: left !important;
- max-width: none !important;
-}
-
-.hero > img,
-.hero > .hero-image {
- display: none !important;
-}
-
-/* Hero title - make it bold and impactful */
-.hero h1 {
- font-size: clamp(2.5rem, 8vw, 4rem) !important;
- font-weight: 700 !important;
- line-height: 1 !important;
- letter-spacing: -0.03em !important;
- margin-bottom: 1.5rem !important;
-}
-
-/* Hero tagline */
-.hero .tagline {
- font-size: 1.125rem !important;
- line-height: 1.7 !important;
- color: rgba(255, 255, 255, 0.6) !important;
- max-width: 540px !important;
- margin: 0 !important;
-}
-
-/* Hide default hero actions */
-.hero .action,
-.hero .sl-flex.actions {
- display: none !important;
-}
-
-/* Command box in hero - tight to tagline, space below */
-.hero-command {
- display: flex;
- flex-direction: column;
- align-items: flex-start;
- gap: 0.75rem;
- margin-top: 0.5rem;
- margin-bottom: 4rem;
-}
-
-.hero-docs-link {
- color: rgba(255, 255, 255, 0.7) !important;
- text-decoration: none !important;
- font-weight: 400;
- font-size: 0.9rem;
- transition: color 0.2s ease;
- margin-top: 0.75rem;
- position: relative;
- display: inline-block;
-}
-
-.hero-docs-link::after {
- content: "";
- position: absolute;
- bottom: -3px;
- right: 0;
- width: 7.5em; /* Width of "documentation." */
- height: 1px;
- background: currentColor;
- transition: width 0.3s ease;
-}
-
-.hero-docs-link:hover {
- color: #fff !important;
-}
-
-.hero-docs-link:hover::after {
- width: 100%;
-}
-
-/* Remove the static underline from the span since pseudo-element handles it */
-.hero-docs-link .underline {
- text-decoration: none;
-}
-
-/* Stack container - page layout for splash */
-[data-page-type="splash"] .sl-container {
- max-width: var(--sl-content-width);
- margin: 0 auto;
- padding: 0 1.5rem;
-}
-
-[data-page-type="splash"] main {
- padding-top: 0;
-}
-
-/* ==========================================================================
- Install Section
- ========================================================================== */
-
-.install-section {
- margin: 3rem 0;
- text-align: left;
-}
-
-.install-section h2 {
- font-size: 1.5rem;
- font-weight: 600;
- margin-bottom: 1rem;
- color: var(--sl-color-white);
-}
-
-/* ==========================================================================
- Tabs Component
- ========================================================================== */
-
-starlight-tabs {
- --sl-color-bg-nav: transparent;
- margin: 1.5rem 0;
-}
-
-starlight-tabs [role="tablist"] {
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
- gap: 0;
- background: transparent;
-}
-
-starlight-tabs [role="tab"] {
- padding: 0.6rem 1rem;
- font-size: 0.85rem;
- font-weight: 500;
- color: rgba(255, 255, 255, 0.5);
- border: none;
- border-bottom: 2px solid transparent;
- background: transparent;
- transition: all 0.15s ease;
- cursor: pointer;
-}
-
-starlight-tabs [role="tab"]:hover {
- color: rgba(255, 255, 255, 0.8);
-}
-
-starlight-tabs [role="tab"][aria-selected="true"] {
- color: #fff;
- border-bottom-color: #fff;
-}
-
-starlight-tabs [role="tabpanel"] {
- padding: 1rem 0 0;
-}
-
-/* ==========================================================================
- Quick Start Section
- ========================================================================== */
-
-.quick-start {
- margin: 4rem 0;
-}
-
-.quick-start h2 {
- font-size: 1.5rem;
- font-weight: 600;
- margin-bottom: 1.5rem;
- color: var(--sl-color-white);
-}
-
-/* ==========================================================================
- Features Section
- ========================================================================== */
-
-.features-section {
- margin: 5rem 0;
-}
-
-.features-section h2 {
- font-size: 1.5rem;
- font-weight: 600;
- margin-bottom: 2rem;
- color: var(--sl-color-white);
-}
-
-/* Feature cards */
-.sl-card-grid {
- --sl-card-grid-cols: 3;
-}
-
-.card {
- background: rgba(255, 255, 255, 0.02) !important;
- border: 1px solid rgba(255, 255, 255, 0.06) !important;
- border-radius: 12px !important;
- padding: 1.5rem !important;
- transition: all 0.3s ease !important;
-}
-
-.card:hover {
- background: rgba(255, 255, 255, 0.04) !important;
- border-color: rgba(255, 255, 255, 0.1) !important;
- transform: translateY(-2px);
-}
-
-.card .title {
- font-size: 1rem !important;
- font-weight: 600 !important;
- margin-bottom: 0.5rem !important;
-}
-
-.card .body {
- color: rgba(255, 255, 255, 0.6) !important;
- font-size: 0.875rem !important;
- line-height: 1.6 !important;
-}
-
-/* ==========================================================================
- Features Section - Horizontal Rows with Terminals
- ========================================================================== */
-
-.feature-section {
- margin: 2rem 0;
- background: rgba(255, 255, 255, 0.02);
- border-radius: 16px;
- overflow: hidden;
-}
-
-.feature-section-inner {
- display: flex;
- align-items: stretch;
-}
-
-.feature-section-inner.reverse {
- flex-direction: row-reverse;
-}
-
-.feature-text {
- flex: 1;
- min-width: 0;
- display: flex;
- flex-direction: column;
- justify-content: center;
- padding: 2.5rem;
-}
-
-.feature-text h3 {
- font-size: 1.75rem;
- font-weight: 600;
- color: #fff;
- margin: 0 0 0.75rem 0;
- line-height: 1.2;
-}
-
-.feature-text p {
- font-size: 1.05rem;
- line-height: 1.7;
- color: rgba(255, 255, 255, 0.55);
- margin: 0 0 1rem 0;
-}
-
-.feature-text p:last-child {
- margin-bottom: 0;
- color: rgba(255, 255, 255, 0.45);
-}
-
-.feature-text code {
- background: rgba(255, 255, 255, 0.1);
- padding: 0.15em 0.4em;
- border-radius: 4px;
- font-size: 0.9em;
-}
-
-.feature-visual {
- flex: 0 0 55%;
- min-height: 420px;
- margin: 0.5rem 0.75rem 0.75rem 0;
- padding: 10%;
- background-size: cover;
- background-position: center;
- border-radius: 8px;
- border: 1px solid rgba(255, 255, 255, 0.1);
- display: flex;
- align-items: center;
- justify-content: center;
- box-sizing: border-box;
-}
-
-.feature-section-inner.reverse .feature-visual {
- margin: 0.75rem 0 0.75rem 0.75rem;
-}
-
-/* Responsive for feature sections */
-@media (max-width: 1000px) {
- .feature-section-inner,
- .feature-section-inner.reverse {
- flex-direction: column;
- }
-
- .feature-text {
- padding: 2rem;
- text-align: center;
- }
-
- .feature-visual,
- .feature-section-inner.reverse .feature-visual {
- flex: none;
- width: calc(100% - 1.5rem);
- min-height: 380px;
- margin: 0 0.75rem 0.75rem 0.75rem;
- }
-}
-
-@media (max-width: 600px) {
- .feature-section {
- margin: 1.5rem 0;
- }
-
- .feature-text {
- padding: 1.5rem;
- }
-
- .feature-visual {
- min-height: 340px;
- margin: 0 0.5rem 0.5rem 0.5rem;
- padding: 8%;
- }
-
- .feature-text h3 {
- font-size: 1.4rem;
- }
-}
-
-@media (max-width: 480px) {
- .feature-visual {
- margin: 0 0.5rem 0.5rem 0.5rem;
- min-height: 300px;
- padding: 6%;
- }
-
- .feature-text {
- padding: 1.25rem;
- }
-
- .feature-text h3 {
- font-size: 1.25rem;
- }
-}
-
-.features-section-new h2 {
- font-size: 1.75rem;
- font-weight: 600;
- color: #fff;
- margin-bottom: 3rem;
- text-align: center;
-}
-
-.feature-row {
- display: flex;
- align-items: center;
- gap: 3rem;
- margin-bottom: 4rem;
-}
-
-.feature-row.reverse {
- flex-direction: row-reverse;
-}
-
-.feature-row:last-child {
- margin-bottom: 0;
-}
-
-.feature-image {
- flex: 0 0 400px;
- height: 280px;
- background-size: cover;
- background-position: center;
- border-radius: 16px;
- position: relative;
- display: flex;
- align-items: center;
- justify-content: center;
- overflow: hidden;
-}
-
-.feature-image::before {
- content: "";
- position: absolute;
- inset: 0;
- background: rgba(0, 0, 0, 0.3);
- backdrop-filter: blur(1px);
-}
-
-.feature-command {
- position: relative;
- z-index: 1;
- background: rgba(10, 10, 15, 0.85);
- backdrop-filter: blur(10px);
- border: 1px solid rgba(255, 255, 255, 0.15);
- border-radius: 8px;
- padding: 0.875rem 1.5rem;
- font-family: "JetBrains Mono", ui-monospace, monospace;
- font-size: 1rem;
- color: #fff;
- white-space: nowrap;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
-}
-
-.feature-command .prompt {
- color: rgba(255, 255, 255, 0.5);
- margin-right: 0.5rem;
-}
-
-.feature-content {
- flex: 1;
-}
-
-.feature-content h3 {
- font-size: 1.5rem;
- font-weight: 600;
- color: #fff;
- margin-bottom: 1rem;
-}
-
-.feature-content p {
- font-size: 1rem;
- line-height: 1.7;
- color: rgba(255, 255, 255, 0.6);
- margin: 0;
- max-width: 450px;
-}
-
-/* Responsive for feature rows */
-@media (max-width: 900px) {
- .feature-row,
- .feature-row.reverse {
- flex-direction: column;
- gap: 2rem;
- }
-
- .feature-image {
- flex: none;
- width: 100%;
- height: 220px;
- }
-
- .feature-content {
- text-align: center;
- }
-
- .feature-content p {
- max-width: none;
- }
-}
-
-.features-v1 h2 {
- font-size: 0.75rem;
- font-weight: 600;
- text-transform: uppercase;
- letter-spacing: 0.1em;
- color: rgba(255, 255, 255, 0.4);
- margin-bottom: 2rem;
-}
-
-.v1-grid {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- gap: 1.5rem;
-}
-
-.v1-card {
- background: rgba(255, 255, 255, 0.03);
- border: 1px solid rgba(255, 255, 255, 0.08);
- border-radius: 16px;
- overflow: hidden;
- transition: all 0.3s ease;
-}
-
-.v1-card:hover {
- border-color: rgba(255, 255, 255, 0.15);
- transform: translateY(-4px);
- box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
-}
-
-.v1-image {
- height: 180px;
- background-size: cover;
- background-position: center;
- position: relative;
-}
-
-.v1-image::after {
- content: "";
- position: absolute;
- inset: 0;
- background: linear-gradient(
- to bottom,
- transparent 50%,
- rgba(10, 10, 15, 0.8) 100%
- );
-}
-
-.v1-content {
- padding: 1.5rem;
-}
-
-.v1-content h3 {
- font-size: 1.25rem;
- font-weight: 600;
- color: #fff;
- margin-bottom: 0.75rem;
-}
-
-.v1-content p {
- font-size: 0.9rem;
- line-height: 1.6;
- color: rgba(255, 255, 255, 0.6);
- margin: 0;
-}
-
-/* ==========================================================================
- VARIATION 2: Horizontal Feature Rows
- ========================================================================== */
-
-.features-v2 {
- margin: 6rem 0;
- padding: 4rem 0;
- border-top: 1px solid rgba(255, 255, 255, 0.1);
-}
-
-.features-v2 h2 {
- font-size: 0.75rem;
- font-weight: 600;
- text-transform: uppercase;
- letter-spacing: 0.1em;
- color: rgba(255, 255, 255, 0.4);
- margin-bottom: 3rem;
-}
-
-.v2-row {
- display: flex;
- align-items: center;
- gap: 3rem;
- margin-bottom: 3rem;
-}
-
-.v2-row.reverse {
- flex-direction: row-reverse;
-}
-
-.v2-image {
- flex: 0 0 280px;
- height: 200px;
- background-size: cover;
- background-position: center;
- border-radius: 12px;
- border: 1px solid rgba(255, 255, 255, 0.1);
-}
-
-.v2-content {
- flex: 1;
-}
-
-.v2-content h3 {
- font-size: 1.5rem;
- font-weight: 600;
- color: #fff;
- margin-bottom: 1rem;
-}
-
-.v2-content p {
- font-size: 1rem;
- line-height: 1.7;
- color: rgba(255, 255, 255, 0.6);
- margin: 0;
- max-width: 500px;
-}
-
-/* ==========================================================================
- VARIATION 3: Minimal Cards with Accent Bars
- ========================================================================== */
-
-.features-v3 {
- margin: 6rem 0;
- padding: 4rem 0;
- border-top: 1px solid rgba(255, 255, 255, 0.1);
-}
-
-.features-v3 h2 {
- font-size: 0.75rem;
- font-weight: 600;
- text-transform: uppercase;
- letter-spacing: 0.1em;
- color: rgba(255, 255, 255, 0.4);
- margin-bottom: 2rem;
-}
-
-.v3-grid {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- gap: 1.25rem;
-}
-
-.v3-card {
- background: rgba(255, 255, 255, 0.02);
- border: 1px solid rgba(255, 255, 255, 0.06);
- border-radius: 12px;
- padding: 1.5rem;
- transition: all 0.3s ease;
- position: relative;
- overflow: hidden;
-}
-
-.v3-card:hover {
- background: rgba(255, 255, 255, 0.04);
- border-color: rgba(255, 255, 255, 0.1);
-}
-
-.v3-accent {
- height: 4px;
- border-radius: 2px;
- margin-bottom: 1.25rem;
-}
-
-.v3-accent.purple {
- background: linear-gradient(90deg, #8b5cf6, #a78bfa);
-}
-
-.v3-accent.blue {
- background: linear-gradient(90deg, #3b82f6, #60a5fa);
-}
-
-.v3-accent.pink {
- background: linear-gradient(90deg, #ec4899, #f472b6);
-}
-
-.v3-accent.green {
- background: linear-gradient(90deg, #10b981, #34d399);
-}
-
-.v3-accent.orange {
- background: linear-gradient(90deg, #f59e0b, #fbbf24);
-}
-
-.v3-accent.cyan {
- background: linear-gradient(90deg, #06b6d4, #22d3ee);
-}
-
-.v3-card h3 {
- font-size: 1.1rem;
- font-weight: 600;
- color: #fff;
- margin-bottom: 0.5rem;
-}
-
-.v3-card p {
- font-size: 0.875rem;
- line-height: 1.6;
- color: rgba(255, 255, 255, 0.55);
- margin: 0;
-}
-
-/* Responsive for all variations */
-@media (max-width: 900px) {
- .v1-grid,
- .v3-grid {
- grid-template-columns: repeat(2, 1fr);
- }
-
- .v2-row,
- .v2-row.reverse {
- flex-direction: column;
- }
-
- .v2-image {
- flex: none;
- width: 100%;
- height: 180px;
- }
-}
-
-@media (max-width: 600px) {
- .v1-grid,
- .v3-grid {
- grid-template-columns: 1fr;
- }
-}
-
-/* ==========================================================================
- Why Section
- ========================================================================== */
-
-.why-section {
- margin: 5rem 0;
- padding: 3rem;
- background: rgba(255, 255, 255, 0.02);
- border: 1px solid rgba(255, 255, 255, 0.05);
- border-radius: 16px;
-}
-
-.why-section h2 {
- font-size: 1.5rem;
- font-weight: 600;
- margin-bottom: 1rem;
- color: var(--sl-color-white);
-}
-
-.why-section p {
- color: rgba(255, 255, 255, 0.6);
- margin-bottom: 1.5rem;
- max-width: 600px;
-}
-
-.why-section ul {
- list-style: none;
- padding: 0;
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
- gap: 1rem;
-}
-
-.why-section li {
- color: rgba(255, 255, 255, 0.8);
- padding-left: 0;
-}
-
-.why-section li strong {
- color: var(--sl-color-white);
-}
-
-/* ==========================================================================
- Code Blocks
- ========================================================================== */
-
-pre:not(.pm-pre):not(.table-box) {
- background: rgba(20, 20, 25, 0.9) !important;
- border: 1px solid rgba(255, 255, 255, 0.08) !important;
- border-radius: 12px !important;
-}
-
-/* Package Manager Code - no border */
-pre.pm-pre,
-.pm-pre {
- background: transparent !important;
- border: none !important;
- border-radius: 0 !important;
- margin: 0 !important;
- padding: 0 !important;
-}
-
-/* ASCII art tables inside terminals - no chrome, consistent monospace */
-pre.table-box {
- background: transparent !important;
- border: none !important;
- border-radius: 0 !important;
- margin: 0 !important;
- padding: 0 !important;
-}
-
-pre.table-box,
-pre.table-box * {
- font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace !important;
- font-size: inherit !important;
- font-weight: 400 !important;
- font-style: normal !important;
- font-variant: normal !important;
- font-variant-ligatures: none !important;
- font-feature-settings: normal !important;
- font-stretch: normal !important;
- letter-spacing: 0 !important;
- word-spacing: 0 !important;
- text-decoration: none !important;
- text-transform: none !important;
- -webkit-text-size-adjust: none !important;
-}
-
-code {
- font-family: var(--sl-font-mono);
- font-size: 0.9em;
-}
-
-/* ==========================================================================
- Doc Content Pages
- ========================================================================== */
-
-/* Main content area */
-.sl-markdown-content {
- color: rgba(255, 255, 255, 0.8);
- line-height: 1.8;
- font-size: 1rem;
-}
-
-/* Headings - clean hierarchy like reference */
-.sl-markdown-content h1 {
- font-size: 2.25rem;
- font-weight: 700;
- color: #fff;
- margin: 3rem 0 1rem;
- letter-spacing: -0.02em;
-}
-
-.sl-markdown-content h2 {
- font-size: 1.75rem;
- font-weight: 700;
- color: #fff;
- margin: 3rem 0 1rem;
- letter-spacing: -0.01em;
-}
-
-.sl-markdown-content h2:first-child {
- margin-top: 0;
-}
-
-.sl-markdown-content h3 {
- font-size: 1.25rem;
- font-weight: 600;
- color: #fff;
- margin: 2rem 0 0.75rem;
-}
-
-.sl-markdown-content h4 {
- font-size: 1rem;
- font-weight: 600;
- color: rgba(255, 255, 255, 0.95);
- margin: 1.5rem 0 0.5rem;
-}
-
-/* Paragraphs */
-.sl-markdown-content p {
- margin-bottom: 1.5rem;
- color: rgba(255, 255, 255, 0.75);
-}
-
-/* Lists */
-.sl-markdown-content ul,
-.sl-markdown-content ol {
- margin: 1rem 0 1.5rem;
- padding-left: 1.25rem;
-}
-
-.sl-markdown-content li {
- margin-bottom: 0.625rem;
- color: rgba(255, 255, 255, 0.75);
-}
-
-.sl-markdown-content li::marker {
- color: rgba(255, 255, 255, 0.4);
-}
-
-/* Inline code - subtle dark pill */
-.sl-markdown-content code:not(pre code) {
- background: rgba(255, 255, 255, 0.1);
- color: rgba(255, 255, 255, 0.9);
- padding: 0.2em 0.5em;
- border-radius: 5px;
- font-size: 0.875em;
- font-weight: 500;
-}
-
-/* ==========================================================================
- Code Blocks
- ========================================================================== */
-
-/* Container */
-.expressive-code {
- margin: 1.5rem 0 !important;
-}
-
-/* Frame - the outer container */
-.expressive-code figure.frame {
- background: #0d0d12 !important;
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
- border-radius: 12px !important;
- overflow: hidden !important;
- box-shadow: none !important;
-}
-
-/* Header */
-.expressive-code .header {
- background: rgba(255, 255, 255, 0.03) !important;
- padding: 0.35rem 1rem !important;
- border: none !important;
-}
-
-/* Add "Terminal" text via CSS */
-.expressive-code .header .title:empty::before,
-.expressive-code.is-terminal .header::before {
- content: "Terminal";
- color: rgba(255, 255, 255, 0.5);
- font-size: 0.85rem;
- font-weight: 500;
-}
-
-/* Hide sr-only and empty spans */
-.expressive-code .header .sr-only {
- position: absolute !important;
- width: 1px !important;
- height: 1px !important;
- overflow: hidden !important;
- clip: rect(0, 0, 0, 0) !important;
-}
-
-/* Code area */
-.expressive-code pre {
- background: #0a0a0f !important;
- margin: 0 !important;
- padding: 1rem 1.25rem !important;
- border: none !important;
- border-radius: 0 0 11px 11px !important;
-}
-
-.expressive-code code {
- font-family: "JetBrains Mono", ui-monospace, monospace !important;
- font-size: 0.875rem !important;
- line-height: 1.7 !important;
-}
-
-/* Copy button */
-.expressive-code .copy {
- position: absolute !important;
- top: 0.55rem !important;
- right: 0.75rem !important;
-}
-
-.expressive-code .copy button {
- background: transparent !important;
- border: none !important;
- color: rgba(255, 255, 255, 0.4) !important;
- cursor: pointer !important;
-}
-
-.expressive-code .copy button:hover {
- color: rgba(255, 255, 255, 0.7) !important;
-}
-
-/* Standalone pre */
-.sl-markdown-content pre:not(.expressive-code pre):not(.pm-pre):not(.table-box) {
- background: #0a0a0f !important;
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
- border-radius: 12px !important;
- padding: 1rem 1.25rem !important;
- margin: 1.5rem 0 !important;
-}
-
-.sl-markdown-content pre:not(.expressive-code pre):not(.pm-pre) code {
- color: rgba(255, 255, 255, 0.85) !important;
- font-family: "JetBrains Mono", ui-monospace, monospace !important;
- font-size: 0.875rem !important;
- line-height: 1.7 !important;
-}
-
-/* Main container */
-.expressive-code {
- margin: 1rem 0 !important;
- display: block !important;
-}
-
-/* The figure/frame - two-tone look like PackageManagerCode */
-.expressive-code figure,
-.expressive-code figure.frame,
-.expressive-code figure.frame.is-terminal {
- margin: 0 !important;
- padding: 0.5rem !important;
- background: rgba(255, 255, 255, 0.04) !important;
- border: none !important;
- border-radius: 12px !important;
- overflow: visible !important;
- position: relative !important;
- display: block !important;
-}
-
-/* Header area - flex container for label and copy button */
-.expressive-code figcaption,
-.expressive-code figcaption.header,
-.expressive-code figure.frame figcaption.header {
- display: flex !important;
- align-items: center !important;
- justify-content: space-between !important;
- padding: 0.5rem 0.5rem !important;
- background: transparent !important;
- border: none !important;
- margin: 0 !important;
-}
-
-/* Hide the 3 dots from expressive-code terminal styling */
-.expressive-code .frame.is-terminal .header::before {
- display: none !important;
-}
-
-/* Terminal label - replaces the dots */
-.expressive-code figcaption .title {
- display: block !important;
- color: rgba(255, 255, 255, 0.4) !important;
- font-size: 0.8rem !important;
- font-weight: 500 !important;
- font-family: var(--sl-font) !important;
- padding: 0.5rem 0.75rem !important;
-}
-
-.expressive-code figcaption .title::before {
- content: "Terminal" !important;
-}
-
-/* Hide sr-only text */
-.expressive-code figcaption .sr-only {
- display: none !important;
-}
-
-/* Pre/code area - rounded corners */
-.expressive-code pre {
- margin: 0 !important;
- padding: 0.75rem 1rem !important;
- background: #0a0a0f !important;
- border: none !important;
- border-radius: 8px !important;
- overflow-x: auto !important;
-}
-
-.expressive-code pre code,
-.expressive-code code {
- font-family: "JetBrains Mono", ui-monospace, monospace !important;
- font-size: 0.875rem !important;
- line-height: 1.7 !important;
- color: rgba(255, 255, 255, 0.85) !important;
- background: transparent !important;
- padding: 0 !important;
- border: none !important;
- display: block !important;
-}
-
-/* Code lines */
-.expressive-code .ec-line {
- display: block !important;
- padding: 0 !important;
- margin: 0 !important;
-}
-
-.expressive-code .ec-line .code {
- display: inline !important;
-}
-
-/* Copy button - positioned in header area, matching PackageManagerCode style */
-.expressive-code .copy {
- position: absolute !important;
- top: 1rem !important;
- right: 1rem !important;
- z-index: 10 !important;
- flex-direction: row !important;
- gap: 0.25rem !important;
-}
-
-.expressive-code .copy button {
- all: unset !important;
- display: flex !important;
- align-items: center !important;
- gap: 0.25rem !important;
- background: none !important;
- border: none !important;
- color: rgba(255, 255, 255, 0.4) !important;
- cursor: pointer !important;
- padding: 0.5rem !important;
- transition: color 0.15s ease !important;
- width: auto !important;
- height: auto !important;
- opacity: 1 !important;
-}
-
-.expressive-code .copy button:hover {
- color: rgba(255, 255, 255, 0.8) !important;
-}
-
-.expressive-code .copy button:focus-visible {
- color: rgba(255, 255, 255, 0.8) !important;
- outline: 2px solid rgb(var(--sl-color-accent-rgb) / 0.5) !important;
- outline-offset: 2px !important;
- border-radius: 4px !important;
-}
-
-/* Hide the default div background effect */
-.expressive-code .copy button div {
- display: none !important;
-}
-
-/* Hide default border pseudo-element */
-.expressive-code .copy button::before {
- display: none !important;
-}
-
-/* Icon via ::after - matching PackageManagerCode SVG */
-.expressive-code .copy button::after {
- content: "" !important;
- display: block !important;
- width: 16px !important;
- height: 16px !important;
- background-color: currentColor !important;
- -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='14' height='14' x='8' y='8' rx='2' ry='2'/%3E%3Cpath d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/%3E%3C/svg%3E") !important;
- -webkit-mask-repeat: no-repeat !important;
- -webkit-mask-size: contain !important;
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='14' height='14' x='8' y='8' rx='2' ry='2'/%3E%3Cpath d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/%3E%3C/svg%3E") !important;
- mask-repeat: no-repeat !important;
- mask-size: contain !important;
- margin: 0 !important;
- position: static !important;
- inset: auto !important;
-}
-
-/* Feedback tooltip - style like PackageManagerCode "Copied!" */
-.expressive-code .copy .feedback {
- background: transparent !important;
- color: #22c55e !important;
- font-size: 0.75rem !important;
- padding: 0 !important;
- margin: 0 !important;
- position: static !important;
- align-self: center !important;
-}
-
-.expressive-code .copy .feedback::after {
- display: none !important;
-}
-
-/* Syntax highlighting colors - keep them */
-.expressive-code span[style*="--0"] {
- color: var(--0) !important;
-}
-
-/* Links in content */
-.sl-markdown-content a {
- color: #93c5fd;
- text-decoration: none;
- transition: all 0.15s ease;
-}
-
-.sl-markdown-content a:hover {
- color: #bfdbfe;
- text-decoration: underline;
-}
-
-/* Callouts/Asides - blue accent like reference */
-.sl-markdown-content aside,
-.starlight-aside {
- background: rgba(59, 130, 246, 0.08) !important;
- border: none !important;
- border-left: 3px solid #3b82f6 !important;
- border-radius: 0 12px 12px 0 !important;
- padding: 1rem 1.25rem !important;
- margin: 1.5rem 0 !important;
-}
-
-.starlight-aside__title {
- color: #60a5fa !important;
- font-weight: 600 !important;
- font-size: 0.9rem !important;
- margin-bottom: 0.5rem !important;
-}
-
-.starlight-aside__content,
-.starlight-aside p {
- color: rgba(255, 255, 255, 0.75) !important;
- font-size: 0.95rem !important;
- margin: 0 !important;
-}
-
-.starlight-aside__icon {
- color: #3b82f6 !important;
-}
-
-/* Note variant */
-.starlight-aside--note {
- background: rgba(59, 130, 246, 0.08) !important;
- border-left-color: #3b82f6 !important;
-}
-
-/* Tip variant */
-.starlight-aside--tip {
- background: rgba(34, 197, 94, 0.08) !important;
- border-left-color: #22c55e !important;
-}
-
-.starlight-aside--tip .starlight-aside__icon {
- color: #22c55e !important;
-}
-
-.starlight-aside--tip .starlight-aside__title {
- color: #4ade80 !important;
-}
-
-/* Caution variant */
-.starlight-aside--caution {
- background: rgba(245, 158, 11, 0.08) !important;
- border-left-color: #f59e0b !important;
-}
-
-.starlight-aside--caution .starlight-aside__icon {
- color: #f59e0b !important;
-}
-
-.starlight-aside--caution .starlight-aside__title {
- color: #fbbf24 !important;
-}
-
-/* Danger variant */
-.starlight-aside--danger {
- background: rgba(239, 68, 68, 0.08) !important;
- border-left-color: #ef4444 !important;
-}
-
-.starlight-aside--danger .starlight-aside__icon {
- color: #ef4444 !important;
-}
-
-.starlight-aside--danger .starlight-aside__title {
- color: #f87171 !important;
-}
-
-/* Blockquotes */
-.sl-markdown-content blockquote {
- border-left: 3px solid rgba(255, 255, 255, 0.2);
- padding-left: 1.25rem;
- margin: 1.5rem 0;
- color: rgba(255, 255, 255, 0.6);
- font-style: italic;
-}
-
-.sl-markdown-content blockquote p {
- color: inherit;
-}
-
-/* Tables */
-.sl-markdown-content table {
- width: 100% !important;
- max-width: 100% !important;
- margin: 1.5rem 0;
- border-collapse: collapse;
- font-size: 0.875rem;
- display: table !important;
-}
-
-.sl-markdown-content th,
-.sl-markdown-content td {
- padding: 0.75rem 1rem;
- text-align: left;
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
-}
-
-.sl-markdown-content th {
- color: #fff;
- font-weight: 600;
-}
-
-.sl-markdown-content td {
- color: rgba(255, 255, 255, 0.8);
-}
-
-.sl-markdown-content tr:last-child td {
- border-bottom: none;
-}
-
-/* Horizontal rules */
-.sl-markdown-content hr {
- border: none;
- border-top: 1px solid rgba(255, 255, 255, 0.08);
- margin: 2.5rem 0;
-}
-
-/* Strong/bold text */
-.sl-markdown-content strong {
- color: #fff;
- font-weight: 600;
-}
-
-/* Remove border between header and content */
-.content-panel + .content-panel {
- border-top: none !important;
-}
-
-/* Page title area */
-.content-panel h1#_top {
- font-size: 2.75rem;
- font-weight: 700;
- color: #fff;
- margin-bottom: 0.5rem;
- letter-spacing: -0.025em;
-}
-
-/* Page description if present */
-.content-panel .meta {
- color: rgba(255, 255, 255, 0.5);
- font-size: 1.1rem;
- margin-bottom: 2rem;
-}
-
-/* ==========================================================================
- Pagination (Previous/Next links)
- ========================================================================== */
-
-.pagination-links {
- gap: 0.75rem;
- margin-top: 2rem;
-}
-
-.pagination-links a {
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
- border-radius: 8px !important;
- padding: 0.625rem 0.875rem !important;
- font-size: 0.8rem !important;
- box-shadow: none !important;
- background: transparent !important;
- color: rgba(255, 255, 255, 0.6) !important;
-}
-
-.pagination-links a:hover {
- border-color: rgba(255, 255, 255, 0.2) !important;
- background: rgba(255, 255, 255, 0.03) !important;
- color: rgba(255, 255, 255, 0.9) !important;
-}
-
-.pagination-links .link-title {
- font-size: 0.875rem !important;
- color: rgba(255, 255, 255, 0.9) !important;
-}
-
-.pagination-links a:hover .link-title {
- color: #fff !important;
-}
-
-.pagination-links svg {
- width: 1rem !important;
- height: 1rem !important;
- opacity: 0.5;
-}
-
-/* ==========================================================================
- Links
- ========================================================================== */
-
-a {
- color: var(--sl-color-accent-high);
- transition: color 0.15s ease;
-}
-
-a:hover {
- color: var(--sl-color-white);
-}
-
-/* ==========================================================================
- Table of Contents (Right Sidebar)
- ========================================================================== */
-
-/* Remove left border from right sidebar */
-.right-sidebar {
- border-inline-start: none !important;
-}
-
-starlight-toc a {
- color: rgba(255, 255, 255, 0.6);
- font-size: 0.875rem;
- transition: all 0.15s ease;
-}
-
-starlight-toc a:hover {
- color: rgba(255, 255, 255, 0.9);
-}
-
-starlight-toc a[aria-current="true"] {
- color: #fff;
- font-weight: 500;
-}
-
-starlight-toc h2,
-#starlight__on-this-page,
-#starlight__on-this-page--mobile,
-.right-sidebar h2,
-starlight-toc nav h2 {
- color: #fff !important;
- font-size: 0.75rem;
- text-transform: uppercase;
- letter-spacing: 0.05em;
- font-weight: 600;
-}
-
-/* ==========================================================================
- Sidebar (for docs pages)
- ========================================================================== */
-
-/* Left sidebar border removed */
-.sidebar-pane {
- border-inline-end: none !important;
-}
-
-.sidebar-content {
- background: transparent;
- font-size: 0.875rem;
-}
-
-nav.sidebar a {
- color: rgba(255, 255, 255, 0.75);
- transition: color 0.15s ease, background 0.15s ease;
- padding: 0.5rem 0.75rem;
- border-radius: 6px;
- margin: 1px 0;
-}
-
-nav.sidebar a:hover {
- color: #fff;
- background: rgb(var(--sl-color-accent-rgb) / 0.1);
-}
-
-nav.sidebar a[aria-current="page"] {
- color: #fff;
- background: rgb(var(--sl-color-accent-rgb) / 0.2);
-}
-
-/* Sidebar group labels - "GETTING STARTED", "COMMANDS", etc. */
-.group-label,
-.group-label .large,
-.group-label span,
-.sidebar-content .top-level > li > details > summary,
-.sidebar-content .top-level > li > details > summary .group-label,
-.sidebar-content .top-level > li > details > summary .large {
- color: #fff !important;
- font-weight: 600;
- font-size: 0.75rem;
- text-transform: uppercase;
- letter-spacing: 0.05em;
-}
-
-.sidebar-content .top-level > li > details > summary:hover .group-label,
-.sidebar-content .top-level > li > details > summary:hover .large {
- color: #fff !important;
-}
-
-/* ==========================================================================
- Mobile Responsive
- ========================================================================== */
-
-@media (max-width: 768px) {
- .hero {
- text-align: center !important;
- }
-
- .hero h1 {
- font-size: 2rem !important;
- }
-
- .hero .tagline {
- font-size: 1rem !important;
- margin: 0 auto !important;
- }
-
- .hero-command {
- align-items: center;
- }
-
- .hero-command .command-box-wrapper {
- justify-content: center;
- }
-
- .hero-command .install-selector {
- max-width: 100%;
- }
-
- .hero-command .install-box {
- flex-shrink: 0;
- }
-
- .hero-command .command-area {
- font-size: 0.7rem;
- padding: 0.5rem 0.75rem;
- }
-
- .sl-card-grid {
- --sl-card-grid-cols: 1;
- }
-
- .why-section {
- padding: 1.5rem;
- }
-
- .why-section ul {
- grid-template-columns: 1fr;
- }
-
- /* Reset search bar to flow naturally in header */
- site-search button {
- position: static !important;
- transform: none !important;
- width: auto !important;
- min-width: auto !important;
- padding: 0.5rem !important;
- }
-
- /* Hide search text and kbd shortcut on mobile */
- site-search button span,
- site-search button kbd {
- display: none !important;
- }
-}
-
-/* ==========================================================================
- Force Dark Mode Globally
- Ensures dark theme even if JS fails or system preference leaks through
- ========================================================================== */
-
-:root {
- color-scheme: dark !important;
-}
-
-:root,
-:root[data-theme="light"] {
- --sl-color-bg: #0a0a0f !important;
- --sl-color-bg-nav: #0a0a0f !important;
- --sl-color-bg-sidebar: #0a0a0f !important;
- --sl-color-black: #0a0a0f !important;
- --sl-color-white: #ffffff !important;
- --sl-color-text: rgba(255, 255, 255, 0.9) !important;
- --sl-color-text-accent: #ffffff !important;
- --sl-color-gray-1: #e0e0e0 !important;
- --sl-color-gray-2: #c0c0c0 !important;
- --sl-color-gray-3: #888888 !important;
- --sl-color-gray-4: #555555 !important;
- --sl-color-gray-5: #333333 !important;
- --sl-color-gray-6: #1a1a1a !important;
-}
-
-/* Mobile Table of Contents - Force Dark Theme */
-mobile-starlight-toc {
- --sl-color-black: #0a0a0f !important;
- --sl-color-white: #ffffff !important;
-}
-
-mobile-starlight-toc nav,
-mobile-starlight-toc summary,
-mobile-starlight-toc .toggle {
- background-color: #0a0a0f !important;
- border-color: rgba(255, 255, 255, 0.1) !important;
-}
-
-mobile-starlight-toc .toggle {
- color: #ffffff !important;
- border-color: rgba(255, 255, 255, 0.2) !important;
-}
-
-mobile-starlight-toc .toggle:hover {
- border-color: rgba(255, 255, 255, 0.3) !important;
-}
-
-mobile-starlight-toc .display-current {
- color: rgba(255, 255, 255, 0.9) !important;
-}
-
-mobile-starlight-toc .dropdown {
- background-color: #0a0a0f !important;
- border-color: rgba(255, 255, 255, 0.1) !important;
-}
-
-mobile-starlight-toc a {
- color: rgba(255, 255, 255, 0.7) !important;
-}
-
-mobile-starlight-toc a:hover {
- color: #ffffff !important;
-}
-
-/* Mobile TOC Summary - Direct targeting for light mode override */
-summary#starlight__on-this-page--mobile,
-summary[id="starlight__on-this-page--mobile"] {
- background-color: #0a0a0f !important;
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
- border-radius: 8px !important;
- color: #ffffff !important;
-}
-
-summary#starlight__on-this-page--mobile .toggle,
-summary[id="starlight__on-this-page--mobile"] .toggle {
- background-color: transparent !important;
- color: #ffffff !important;
-}
-
-summary#starlight__on-this-page--mobile .display-current,
-summary[id="starlight__on-this-page--mobile"] .display-current {
- color: rgba(255, 255, 255, 0.7) !important;
-}
-
-summary#starlight__on-this-page--mobile svg,
-summary[id="starlight__on-this-page--mobile"] svg,
-summary#starlight__on-this-page--mobile .caret,
-summary[id="starlight__on-this-page--mobile"] .caret {
- color: rgba(255, 255, 255, 0.5) !important;
- fill: rgba(255, 255, 255, 0.5) !important;
-}
-
-/* ==========================================================================
- Scrollbar
- ========================================================================== */
-
-::-webkit-scrollbar {
- width: 8px;
- height: 8px;
-}
-
-::-webkit-scrollbar-track {
- background: rgba(255, 255, 255, 0.02);
-}
-
-::-webkit-scrollbar-thumb {
- background: rgba(255, 255, 255, 0.1);
- border-radius: 4px;
-}
-
-::-webkit-scrollbar-thumb:hover {
- background: rgba(255, 255, 255, 0.2);
-}
-
-/* ==========================================================================
- Overscroll Easter Egg
- ========================================================================== */
-
-.overscroll-message {
- position: fixed;
- bottom: -60px;
- left: 50%;
- transform: translateX(-50%) translateY(0);
- z-index: 9999;
- pointer-events: none;
- opacity: 0;
- transition:
- opacity 0.15s ease-out,
- transform 0.15s ease-out;
-}
-
-.overscroll-message span {
- display: inline-block;
- padding: 0.6rem 1.5rem;
- background: rgb(var(--sl-color-accent-rgb) / 0.12);
- border: 1px solid rgb(var(--sl-color-accent-rgb) / 0.25);
- border-radius: 24px;
- color: rgba(255, 255, 255, 0.8);
- font-size: 0.9rem;
- font-weight: 500;
- font-family: var(--sl-font);
- backdrop-filter: blur(12px);
- white-space: nowrap;
-}
-
-.overscroll-message code {
- background: rgba(255, 255, 255, 0.1);
- padding: 0.2em 0.5em;
- border-radius: 6px;
- font-family: "JetBrains Mono", ui-monospace, monospace;
- font-size: 0.85em;
- color: #a78bfa;
- cursor: pointer;
- pointer-events: auto;
-}
-
-.overscroll-message code:hover {
- background: rgba(255, 255, 255, 0.18);
-}
-
-@media (max-width: 640px) {
- .overscroll-message span {
- white-space: normal;
- text-align: center;
- max-width: calc(100vw - 2rem);
- font-size: 0.8rem;
- padding: 0.5rem 1rem;
- }
-}