diff --git a/build/screenshot-examples.mjs b/build/screenshot-examples.mjs new file mode 100644 index 000000000000..bfd6ccc7a1fd --- /dev/null +++ b/build/screenshot-examples.mjs @@ -0,0 +1,202 @@ +/** + * Screenshot Bootstrap examples using Playwright. + * + * Starts the Astro dev server automatically, waits for it to be ready, + * takes light + dark screenshots at 1x and 2x, then shuts the server down. + * + * Usage: + * node build/screenshot-examples.mjs [--only album,pricing] + * + * Prerequisites: + * npm install -D playwright + * npx playwright install chromium + * + * The script reads examples.yml and saves to: + * site/static/docs/[version]/assets/img/examples/{slug}.png (480×300) + * site/static/docs/[version]/assets/img/examples/{slug}@2x.png (960×600) + * site/static/docs/[version]/assets/img/examples/{slug}-dark.png (480×300) + * site/static/docs/[version]/assets/img/examples/{slug}-dark@2x.png (960×600) + */ + +import { readFileSync, mkdirSync } from 'node:fs' +import path from 'node:path' +import { fileURLToPath } from 'node:url' +import { spawn } from 'node:child_process' +import { parse as parseYaml } from 'yaml' +import { chromium } from 'playwright' +import sharp from 'sharp' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) +const ROOT = path.resolve(__dirname, '..') + +// ─── Config ────────────────────────────────────────────────────────────────── + +const args = process.argv.slice(2) +const getArg = flag => { + const idx = args.indexOf(flag) + return idx === -1 ? null : args[idx + 1] +} + +const ONLY = getArg('--only')?.split(',').map(s => s.trim().toLowerCase()) ?? null + +// Astro dev server port (matches astro-dev in package.json) +const PORT = 9001 +const BASE_URL = `http://localhost:${PORT}` +const SERVER_TIMEOUT_MS = 60_000 +const SERVER_POLL_INTERVAL_MS = 500 + +// Read docs version from config.yml +const configYml = readFileSync(path.resolve(ROOT, 'config.yml'), 'utf8') +const DOCS_VERSION = parseYaml(configYml).docs_version ?? '6.0' + +// Output directory — [version] is a literal Astro dynamic-route folder name +const OUT_DIR = path.resolve(ROOT, 'site/static/docs/[version]/assets/img/examples') +mkdirSync(OUT_DIR, { recursive: true }) + +// Full-width capture viewport; images are then resized down to thumbnail sizes +const CAPTURE_VIEWPORT = { width: 1440, height: 900 } +// 1x thumbnail: 480×300 | 2x thumbnail: 960×600 +const THUMB = { w: 480, h: 300 } + +// ─── Dev server ────────────────────────────────────────────────────────────── + +/** Spawn the Astro dev server and return the child process. */ +function startDevServer() { + console.log('Starting Astro dev server…') + const server = spawn('node', ['node_modules/.bin/astro', 'dev', '--root', 'site', '--port', String(PORT)], { + cwd: ROOT, + stdio: ['ignore', 'pipe', 'pipe'] + }) + server.stdout.on('data', d => process.stdout.write(`[astro] ${d}`)) + server.stderr.on('data', d => process.stderr.write(`[astro] ${d}`)) + return server +} + +/** Poll until the server responds or timeout is reached. */ +async function waitForServer() { + const deadline = Date.now() + SERVER_TIMEOUT_MS + + const poll = async () => { + if (Date.now() >= deadline) { + throw new Error(`Dev server did not start within ${SERVER_TIMEOUT_MS / 1000}s`) + } + + try { + const res = await fetch(`${BASE_URL}/`) + if (res.ok || res.status < 500) { + console.log('Dev server is ready.\n') + return + } + } catch { + // not up yet + } + + await new Promise(resolvePromise => { + setTimeout(resolvePromise, SERVER_POLL_INTERVAL_MS) + }) + + await poll() + } + + await poll() +} + +// ─── Helpers ───────────────────────────────────────────────────────────────── + +/** Replicate the getSlug() logic used in the Astro components */ +function getSlug(name) { + return name + .toLowerCase() + .replace(/[^a-z0-9]+/g, '-') + .replace(/(^-|-$)/g, '') +} + +/** Collect all non-external examples from examples.yml */ +function getExamples() { + const yml = readFileSync(path.resolve(ROOT, 'site/data/examples.yml'), 'utf8') + const categories = parseYaml(yml) + const result = [] + for (const { examples, external } of categories) { + if (external) { + continue + } + + for (const example of examples ?? []) { + result.push(example.name) + } + } + + return result +} + +// ─── Screenshot ────────────────────────────────────────────────────────────── + +/** + * Capture the page at full viewport, then resize to the target thumbnail size. + * colorScheme: 'light' | 'dark' + * scale: 1 (480×300) | 2 (960×600) + */ +async function screenshot(page, slug, colorScheme, scale) { + const darkSuffix = colorScheme === 'dark' ? '-dark' : '' + const scaleSuffix = scale === 2 ? '@2x' : '' + const outFile = path.resolve(OUT_DIR, `${slug}${darkSuffix}${scaleSuffix}.png`) + + await page.emulateMedia({ colorScheme }) + const rawBuffer = await page.screenshot({ type: 'png' }) + + await sharp(rawBuffer) + .resize(THUMB.w * scale, THUMB.h * scale, { fit: 'cover', position: 'top' }) + .toFile(outFile) + + console.log(` saved ${outFile.replace(`${ROOT}/`, '')}`) +} + +async function run() { + const examples = getExamples() + const filtered = ONLY ? examples.filter(n => ONLY.includes(n.toLowerCase())) : examples + + if (filtered.length === 0) { + throw new Error('No examples matched. Check --only values against examples.yml.') + } + + const server = startDevServer() + + // Ensure the server is killed even if we crash + const cleanup = () => server.kill() + process.on('exit', cleanup) + + try { + await waitForServer() + + console.log(`Taking screenshots of ${filtered.length} example(s)`) + console.log(`Output → ${OUT_DIR}\n`) + + const browser = await chromium.launch() + + await Promise.all(filtered.map(async name => { + const slug = getSlug(name) + const url = `${BASE_URL}/docs/${DOCS_VERSION}/examples/${slug}/` + console.log(`→ ${name} (${slug})`) + + // Single page load — reuse for light & dark, both scales (sharp handles resizing) + const page = await browser.newPage({ viewport: CAPTURE_VIEWPORT, deviceScaleFactor: 1 }) + await page.goto(url, { waitUntil: 'networkidle' }) + await page.addStyleTag({ content: '.bd-mode-toggle { display: none !important; }' }) + await screenshot(page, slug, 'light', 1) + await screenshot(page, slug, 'light', 2) + await screenshot(page, slug, 'dark', 1) + await screenshot(page, slug, 'dark', 2) + await page.close() + })) + + await browser.close() + console.log('\nDone.') + } finally { + server.kill() + } +} + +run().catch(error => { + console.error(error) + process.exitCode = 1 +}) diff --git a/package-lock.json b/package-lock.json index 391160d6b778..4cd10bbc0379 100644 --- a/package-lock.json +++ b/package-lock.json @@ -76,6 +76,7 @@ "mime": "^4.1.0", "nodemon": "^3.1.14", "npm-run-all2": "^8.0.4", + "playwright": "^1.59.1", "postcss": "^8.5.10", "postcss-cli": "^11.0.1", "prettier": "^3.8.3", @@ -87,12 +88,14 @@ "rollup-plugin-istanbul": "^5.0.0", "sass": "^1.99.0", "sass-true": "^10.1.0", + "sharp": "^0.34.5", "shelljs": "^0.10.0", "stylelint": "16.26.1", "stylelint-config-twbs-bootstrap": "^16.1.0", "stylelint-order": "^8.1.1", "terser": "^5.46.1", "unist-util-visit": "^5.1.0", + "yaml": "^2.8.3", "zod": "^4.3.6" }, "peerDependencies": { @@ -3961,7 +3964,6 @@ "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", "dev": true, "license": "MIT", - "optional": true, "engines": { "node": ">=18" } @@ -16699,6 +16701,53 @@ "node": ">=6" } }, + "node_modules/playwright": { + "version": "1.59.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.59.1.tgz", + "integrity": "sha512-C8oWjPR3F81yljW9o5OxcWzfh6avkVwDD2VYdwIGqTkl+OGFISgypqzfu7dOe4QNLL2aqcWBmI3PMtLIK233lw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.59.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.59.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.59.1.tgz", + "integrity": "sha512-HBV/RJg81z5BiiZ9yPzIiClYV/QMsDCKUyogwH9p3MCP6IYjUFu/MActgYAvK0oWyV9NlwM3GLBjADyWgydVyg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/pluralize": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", @@ -18374,7 +18423,6 @@ "dev": true, "hasInstallScript": true, "license": "Apache-2.0", - "optional": true, "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.2", @@ -18419,7 +18467,6 @@ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, "license": "ISC", - "optional": true, "bin": { "semver": "bin/semver.js" }, diff --git a/package.json b/package.json index 8c43604979f7..7d97edc3b090 100644 --- a/package.json +++ b/package.json @@ -94,6 +94,7 @@ "docs-prettier-format": "prettier --config site/.prettierrc.json --write --cache site", "docs-serve": "npm run astro-dev -- --host", "docs-serve-only": "npx sirv-cli _site --port 9001", + "screenshots": "rm -f site/static/docs/[version]/assets/img/examples/*.png && node build/screenshot-examples.mjs", "lockfile-lint": "lockfile-lint --allowed-hosts npm --allowed-schemes https: --empty-hostname false --type npm --path package-lock.json", "update-deps": "ncu -u", "release": "npm-run-all dist release-sri docs-build release-zip*", @@ -179,6 +180,7 @@ "mime": "^4.1.0", "nodemon": "^3.1.14", "npm-run-all2": "^8.0.4", + "playwright": "^1.59.1", "postcss": "^8.5.10", "postcss-cli": "^11.0.1", "prettier": "^3.8.3", @@ -190,12 +192,14 @@ "rollup-plugin-istanbul": "^5.0.0", "sass": "^1.99.0", "sass-true": "^10.1.0", + "sharp": "^0.34.5", "shelljs": "^0.10.0", "stylelint": "16.26.1", "stylelint-config-twbs-bootstrap": "^16.1.0", "stylelint-order": "^8.1.1", "terser": "^5.46.1", "unist-util-visit": "^5.1.0", + "yaml": "^2.8.3", "zod": "^4.3.6" }, "files": [ diff --git a/site/src/layouts/partials/ExamplesMain.astro b/site/src/layouts/partials/ExamplesMain.astro index 9f5318726c35..ec27a077047a 100644 --- a/site/src/layouts/partials/ExamplesMain.astro +++ b/site/src/layouts/partials/ExamplesMain.astro @@ -60,7 +60,15 @@ import { getSlug } from '@libs/utils' href={`/docs/${getConfig().docs_version}/examples/${getSlug(example.name)}/`} > + const applyExamplesThumbTheme = () => { + const isDark = document.documentElement.getAttribute('data-bs-theme') === 'dark' + const thumbs = document.querySelectorAll('.examples-thumb') + + thumbs.forEach((thumb) => { + const src = isDark ? thumb.dataset.darkSrc : thumb.dataset.lightSrc + const srcset = isDark ? thumb.dataset.darkSrcset : thumb.dataset.lightSrcset + + if (src && thumb.getAttribute('src') !== src) { + thumb.setAttribute('src', src) + } + + if (srcset && thumb.getAttribute('srcset') !== srcset) { + thumb.setAttribute('srcset', srcset) + } + }) + } + + applyExamplesThumbTheme() + + new MutationObserver(applyExamplesThumbTheme).observe(document.documentElement, { + attributes: true, + attributeFilter: ['data-bs-theme'] + }) + diff --git a/site/static/docs/[version]/assets/img/examples/album-dark.png b/site/static/docs/[version]/assets/img/examples/album-dark.png new file mode 100644 index 000000000000..f4f1cc188457 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/album-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/album-dark@2x.png b/site/static/docs/[version]/assets/img/examples/album-dark@2x.png new file mode 100644 index 000000000000..1b70767a3e05 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/album-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/album.png b/site/static/docs/[version]/assets/img/examples/album.png index f0af624013ef..9bd3eac487d7 100644 Binary files a/site/static/docs/[version]/assets/img/examples/album.png and b/site/static/docs/[version]/assets/img/examples/album.png differ diff --git a/site/static/docs/[version]/assets/img/examples/album@2x.png b/site/static/docs/[version]/assets/img/examples/album@2x.png index bd43a51e1a74..2e0ce814ba9c 100644 Binary files a/site/static/docs/[version]/assets/img/examples/album@2x.png and b/site/static/docs/[version]/assets/img/examples/album@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/badges-dark.png b/site/static/docs/[version]/assets/img/examples/badges-dark.png new file mode 100644 index 000000000000..58c71c6a2e75 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/badges-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/badges-dark@2x.png b/site/static/docs/[version]/assets/img/examples/badges-dark@2x.png new file mode 100644 index 000000000000..efd57cd37a43 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/badges-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/badges.png b/site/static/docs/[version]/assets/img/examples/badges.png index af4a9ac6b678..d73b7979a5e7 100644 Binary files a/site/static/docs/[version]/assets/img/examples/badges.png and b/site/static/docs/[version]/assets/img/examples/badges.png differ diff --git a/site/static/docs/[version]/assets/img/examples/badges@2x.png b/site/static/docs/[version]/assets/img/examples/badges@2x.png index 8c3fd3f7220b..886c9628b2bf 100644 Binary files a/site/static/docs/[version]/assets/img/examples/badges@2x.png and b/site/static/docs/[version]/assets/img/examples/badges@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/blog-dark.png b/site/static/docs/[version]/assets/img/examples/blog-dark.png new file mode 100644 index 000000000000..282d2c94f26c Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/blog-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/blog-dark@2x.png b/site/static/docs/[version]/assets/img/examples/blog-dark@2x.png new file mode 100644 index 000000000000..59d75506ca49 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/blog-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/blog.png b/site/static/docs/[version]/assets/img/examples/blog.png index 3ce428418e1a..e5b2b2d1e27b 100644 Binary files a/site/static/docs/[version]/assets/img/examples/blog.png and b/site/static/docs/[version]/assets/img/examples/blog.png differ diff --git a/site/static/docs/[version]/assets/img/examples/blog@2x.png b/site/static/docs/[version]/assets/img/examples/blog@2x.png index f5480314b4be..1d89b967fe1e 100644 Binary files a/site/static/docs/[version]/assets/img/examples/blog@2x.png and b/site/static/docs/[version]/assets/img/examples/blog@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/breadcrumbs-dark.png b/site/static/docs/[version]/assets/img/examples/breadcrumbs-dark.png new file mode 100644 index 000000000000..eb2a87af683c Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/breadcrumbs-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/breadcrumbs-dark@2x.png b/site/static/docs/[version]/assets/img/examples/breadcrumbs-dark@2x.png new file mode 100644 index 000000000000..2d3212622887 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/breadcrumbs-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/breadcrumbs.png b/site/static/docs/[version]/assets/img/examples/breadcrumbs.png index 4417e95b3aca..6b64e59554b0 100644 Binary files a/site/static/docs/[version]/assets/img/examples/breadcrumbs.png and b/site/static/docs/[version]/assets/img/examples/breadcrumbs.png differ diff --git a/site/static/docs/[version]/assets/img/examples/breadcrumbs@2x.png b/site/static/docs/[version]/assets/img/examples/breadcrumbs@2x.png index 0eb36d1362ed..d7c31c9d128e 100644 Binary files a/site/static/docs/[version]/assets/img/examples/breadcrumbs@2x.png and b/site/static/docs/[version]/assets/img/examples/breadcrumbs@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/buttons-dark.png b/site/static/docs/[version]/assets/img/examples/buttons-dark.png new file mode 100644 index 000000000000..0f5a4a4c1630 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/buttons-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/buttons-dark@2x.png b/site/static/docs/[version]/assets/img/examples/buttons-dark@2x.png new file mode 100644 index 000000000000..525fc2a3cdc6 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/buttons-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/buttons.png b/site/static/docs/[version]/assets/img/examples/buttons.png index 4da03f7917ed..37d7f29c6b30 100644 Binary files a/site/static/docs/[version]/assets/img/examples/buttons.png and b/site/static/docs/[version]/assets/img/examples/buttons.png differ diff --git a/site/static/docs/[version]/assets/img/examples/buttons@2x.png b/site/static/docs/[version]/assets/img/examples/buttons@2x.png index 752e659028df..47f996a222b3 100644 Binary files a/site/static/docs/[version]/assets/img/examples/buttons@2x.png and b/site/static/docs/[version]/assets/img/examples/buttons@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/carousel-dark.png b/site/static/docs/[version]/assets/img/examples/carousel-dark.png new file mode 100644 index 000000000000..c4713ab31f5f Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/carousel-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/carousel-dark@2x.png b/site/static/docs/[version]/assets/img/examples/carousel-dark@2x.png new file mode 100644 index 000000000000..1cafb9a0ecd2 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/carousel-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/carousel.png b/site/static/docs/[version]/assets/img/examples/carousel.png index e2bbba6c8000..a4a3e4619e78 100644 Binary files a/site/static/docs/[version]/assets/img/examples/carousel.png and b/site/static/docs/[version]/assets/img/examples/carousel.png differ diff --git a/site/static/docs/[version]/assets/img/examples/carousel@2x.png b/site/static/docs/[version]/assets/img/examples/carousel@2x.png index bc5d4a09d0f0..86fb02ea54c5 100644 Binary files a/site/static/docs/[version]/assets/img/examples/carousel@2x.png and b/site/static/docs/[version]/assets/img/examples/carousel@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/cheatsheet-dark.png b/site/static/docs/[version]/assets/img/examples/cheatsheet-dark.png new file mode 100644 index 000000000000..8aeb6df66f15 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/cheatsheet-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/cheatsheet-dark@2x.png b/site/static/docs/[version]/assets/img/examples/cheatsheet-dark@2x.png new file mode 100644 index 000000000000..2c25ed7fd0d6 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/cheatsheet-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/cheatsheet.png b/site/static/docs/[version]/assets/img/examples/cheatsheet.png index 074be001558f..2388270f6872 100644 Binary files a/site/static/docs/[version]/assets/img/examples/cheatsheet.png and b/site/static/docs/[version]/assets/img/examples/cheatsheet.png differ diff --git a/site/static/docs/[version]/assets/img/examples/cheatsheet@2x.png b/site/static/docs/[version]/assets/img/examples/cheatsheet@2x.png index c958b6cb6013..ab9b48ceab57 100644 Binary files a/site/static/docs/[version]/assets/img/examples/cheatsheet@2x.png and b/site/static/docs/[version]/assets/img/examples/cheatsheet@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/checkout-dark.png b/site/static/docs/[version]/assets/img/examples/checkout-dark.png new file mode 100644 index 000000000000..fc7d5e7cfe26 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/checkout-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/checkout-dark@2x.png b/site/static/docs/[version]/assets/img/examples/checkout-dark@2x.png new file mode 100644 index 000000000000..68daf9ca5641 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/checkout-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/checkout.png b/site/static/docs/[version]/assets/img/examples/checkout.png index cb81ef2d7ca0..ceea4737cc7c 100644 Binary files a/site/static/docs/[version]/assets/img/examples/checkout.png and b/site/static/docs/[version]/assets/img/examples/checkout.png differ diff --git a/site/static/docs/[version]/assets/img/examples/checkout@2x.png b/site/static/docs/[version]/assets/img/examples/checkout@2x.png index 79c7b4bb8278..9362151bbbc0 100644 Binary files a/site/static/docs/[version]/assets/img/examples/checkout@2x.png and b/site/static/docs/[version]/assets/img/examples/checkout@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/cover-dark.png b/site/static/docs/[version]/assets/img/examples/cover-dark.png new file mode 100644 index 000000000000..d827649bef5f Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/cover-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/cover-dark@2x.png b/site/static/docs/[version]/assets/img/examples/cover-dark@2x.png new file mode 100644 index 000000000000..9a1c6075dcff Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/cover-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/cover.png b/site/static/docs/[version]/assets/img/examples/cover.png index 5458ff11d389..c6f69347a947 100644 Binary files a/site/static/docs/[version]/assets/img/examples/cover.png and b/site/static/docs/[version]/assets/img/examples/cover.png differ diff --git a/site/static/docs/[version]/assets/img/examples/cover@2x.png b/site/static/docs/[version]/assets/img/examples/cover@2x.png index eacd82e98327..618a074b1324 100644 Binary files a/site/static/docs/[version]/assets/img/examples/cover@2x.png and b/site/static/docs/[version]/assets/img/examples/cover@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/dashboard-dark.png b/site/static/docs/[version]/assets/img/examples/dashboard-dark.png new file mode 100644 index 000000000000..efc2eb017380 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/dashboard-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/dashboard-dark@2x.png b/site/static/docs/[version]/assets/img/examples/dashboard-dark@2x.png new file mode 100644 index 000000000000..965601bf5eff Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/dashboard-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/dashboard.png b/site/static/docs/[version]/assets/img/examples/dashboard.png index 52988da73952..d4dfbc29f093 100644 Binary files a/site/static/docs/[version]/assets/img/examples/dashboard.png and b/site/static/docs/[version]/assets/img/examples/dashboard.png differ diff --git a/site/static/docs/[version]/assets/img/examples/dashboard@2x.png b/site/static/docs/[version]/assets/img/examples/dashboard@2x.png index 52b23dff6939..eb084678b349 100644 Binary files a/site/static/docs/[version]/assets/img/examples/dashboard@2x.png and b/site/static/docs/[version]/assets/img/examples/dashboard@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/dialogs-dark.png b/site/static/docs/[version]/assets/img/examples/dialogs-dark.png new file mode 100644 index 000000000000..543698ece85a Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/dialogs-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/dialogs-dark@2x.png b/site/static/docs/[version]/assets/img/examples/dialogs-dark@2x.png new file mode 100644 index 000000000000..c103df860e07 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/dialogs-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/dialogs.png b/site/static/docs/[version]/assets/img/examples/dialogs.png index a9b6723dfb5e..91f229c12b82 100644 Binary files a/site/static/docs/[version]/assets/img/examples/dialogs.png and b/site/static/docs/[version]/assets/img/examples/dialogs.png differ diff --git a/site/static/docs/[version]/assets/img/examples/dialogs@2x.png b/site/static/docs/[version]/assets/img/examples/dialogs@2x.png index 013aa33dd298..e4aab68b2eb6 100644 Binary files a/site/static/docs/[version]/assets/img/examples/dialogs@2x.png and b/site/static/docs/[version]/assets/img/examples/dialogs@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/dropdowns.png b/site/static/docs/[version]/assets/img/examples/dropdowns.png deleted file mode 100644 index 64fc8f2f0025..000000000000 Binary files a/site/static/docs/[version]/assets/img/examples/dropdowns.png and /dev/null differ diff --git a/site/static/docs/[version]/assets/img/examples/dropdowns@2x.png b/site/static/docs/[version]/assets/img/examples/dropdowns@2x.png deleted file mode 100644 index 6978dcb5639f..000000000000 Binary files a/site/static/docs/[version]/assets/img/examples/dropdowns@2x.png and /dev/null differ diff --git a/site/static/docs/[version]/assets/img/examples/features-dark.png b/site/static/docs/[version]/assets/img/examples/features-dark.png new file mode 100644 index 000000000000..249dc4a46fe5 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/features-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/features-dark@2x.png b/site/static/docs/[version]/assets/img/examples/features-dark@2x.png new file mode 100644 index 000000000000..b282812676c7 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/features-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/features.png b/site/static/docs/[version]/assets/img/examples/features.png index c77ed09bbc03..878a0cd2a742 100644 Binary files a/site/static/docs/[version]/assets/img/examples/features.png and b/site/static/docs/[version]/assets/img/examples/features.png differ diff --git a/site/static/docs/[version]/assets/img/examples/features@2x.png b/site/static/docs/[version]/assets/img/examples/features@2x.png index 28bcbf1f5a10..d13dbde67dfe 100644 Binary files a/site/static/docs/[version]/assets/img/examples/features@2x.png and b/site/static/docs/[version]/assets/img/examples/features@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/footers-dark.png b/site/static/docs/[version]/assets/img/examples/footers-dark.png new file mode 100644 index 000000000000..2af7e5ed2bfb Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/footers-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/footers-dark@2x.png b/site/static/docs/[version]/assets/img/examples/footers-dark@2x.png new file mode 100644 index 000000000000..b07bfc199583 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/footers-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/footers.png b/site/static/docs/[version]/assets/img/examples/footers.png index 74fe820653c0..a122cc146264 100644 Binary files a/site/static/docs/[version]/assets/img/examples/footers.png and b/site/static/docs/[version]/assets/img/examples/footers.png differ diff --git a/site/static/docs/[version]/assets/img/examples/footers@2x.png b/site/static/docs/[version]/assets/img/examples/footers@2x.png index 27003921566d..2fd221410fec 100644 Binary files a/site/static/docs/[version]/assets/img/examples/footers@2x.png and b/site/static/docs/[version]/assets/img/examples/footers@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/grid-dark.png b/site/static/docs/[version]/assets/img/examples/grid-dark.png new file mode 100644 index 000000000000..20ded2ca898f Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/grid-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/grid-dark@2x.png b/site/static/docs/[version]/assets/img/examples/grid-dark@2x.png new file mode 100644 index 000000000000..a710794050b7 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/grid-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/grid.png b/site/static/docs/[version]/assets/img/examples/grid.png index 9b8afb78b948..e9d84ff89c7b 100644 Binary files a/site/static/docs/[version]/assets/img/examples/grid.png and b/site/static/docs/[version]/assets/img/examples/grid.png differ diff --git a/site/static/docs/[version]/assets/img/examples/grid@2x.png b/site/static/docs/[version]/assets/img/examples/grid@2x.png index 78ade65f50be..4c9361e07fc6 100644 Binary files a/site/static/docs/[version]/assets/img/examples/grid@2x.png and b/site/static/docs/[version]/assets/img/examples/grid@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/headers-dark.png b/site/static/docs/[version]/assets/img/examples/headers-dark.png new file mode 100644 index 000000000000..9a64cfa411f2 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/headers-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/headers-dark@2x.png b/site/static/docs/[version]/assets/img/examples/headers-dark@2x.png new file mode 100644 index 000000000000..73b13fbf65b7 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/headers-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/headers.png b/site/static/docs/[version]/assets/img/examples/headers.png index 9895762460bc..15316fae01fe 100644 Binary files a/site/static/docs/[version]/assets/img/examples/headers.png and b/site/static/docs/[version]/assets/img/examples/headers.png differ diff --git a/site/static/docs/[version]/assets/img/examples/headers@2x.png b/site/static/docs/[version]/assets/img/examples/headers@2x.png index e8de7498cc82..db704566235e 100644 Binary files a/site/static/docs/[version]/assets/img/examples/headers@2x.png and b/site/static/docs/[version]/assets/img/examples/headers@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/heroes-dark.png b/site/static/docs/[version]/assets/img/examples/heroes-dark.png new file mode 100644 index 000000000000..32f46a784c48 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/heroes-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/heroes-dark@2x.png b/site/static/docs/[version]/assets/img/examples/heroes-dark@2x.png new file mode 100644 index 000000000000..bb00f2c77453 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/heroes-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/heroes.png b/site/static/docs/[version]/assets/img/examples/heroes.png index e9bc3e627af9..4ebb512a1beb 100644 Binary files a/site/static/docs/[version]/assets/img/examples/heroes.png and b/site/static/docs/[version]/assets/img/examples/heroes.png differ diff --git a/site/static/docs/[version]/assets/img/examples/heroes@2x.png b/site/static/docs/[version]/assets/img/examples/heroes@2x.png index fff3a72c7034..5d2a936502ad 100644 Binary files a/site/static/docs/[version]/assets/img/examples/heroes@2x.png and b/site/static/docs/[version]/assets/img/examples/heroes@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/jumbotron-dark.png b/site/static/docs/[version]/assets/img/examples/jumbotron-dark.png new file mode 100644 index 000000000000..feb824b23651 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/jumbotron-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/jumbotron-dark@2x.png b/site/static/docs/[version]/assets/img/examples/jumbotron-dark@2x.png new file mode 100644 index 000000000000..af4792e653a5 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/jumbotron-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/jumbotron.png b/site/static/docs/[version]/assets/img/examples/jumbotron.png index 48e0c9c0e0e0..84de0d16b437 100644 Binary files a/site/static/docs/[version]/assets/img/examples/jumbotron.png and b/site/static/docs/[version]/assets/img/examples/jumbotron.png differ diff --git a/site/static/docs/[version]/assets/img/examples/jumbotron@2x.png b/site/static/docs/[version]/assets/img/examples/jumbotron@2x.png index 229b6300761d..633ea319b8b3 100644 Binary files a/site/static/docs/[version]/assets/img/examples/jumbotron@2x.png and b/site/static/docs/[version]/assets/img/examples/jumbotron@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/jumbotrons-dark.png b/site/static/docs/[version]/assets/img/examples/jumbotrons-dark.png new file mode 100644 index 000000000000..2d93a7c4d6e1 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/jumbotrons-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/jumbotrons-dark@2x.png b/site/static/docs/[version]/assets/img/examples/jumbotrons-dark@2x.png new file mode 100644 index 000000000000..868350f00812 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/jumbotrons-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/jumbotrons.png b/site/static/docs/[version]/assets/img/examples/jumbotrons.png index daafe594ba89..8b9c71da1b3e 100644 Binary files a/site/static/docs/[version]/assets/img/examples/jumbotrons.png and b/site/static/docs/[version]/assets/img/examples/jumbotrons.png differ diff --git a/site/static/docs/[version]/assets/img/examples/jumbotrons@2x.png b/site/static/docs/[version]/assets/img/examples/jumbotrons@2x.png index 4e549a484c0c..27f230d159dc 100644 Binary files a/site/static/docs/[version]/assets/img/examples/jumbotrons@2x.png and b/site/static/docs/[version]/assets/img/examples/jumbotrons@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/list-groups-dark.png b/site/static/docs/[version]/assets/img/examples/list-groups-dark.png new file mode 100644 index 000000000000..d9cfa4f84d23 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/list-groups-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/list-groups-dark@2x.png b/site/static/docs/[version]/assets/img/examples/list-groups-dark@2x.png new file mode 100644 index 000000000000..6523a10e400a Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/list-groups-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/list-groups.png b/site/static/docs/[version]/assets/img/examples/list-groups.png index 6c63f93ca15a..c57c366c1a83 100644 Binary files a/site/static/docs/[version]/assets/img/examples/list-groups.png and b/site/static/docs/[version]/assets/img/examples/list-groups.png differ diff --git a/site/static/docs/[version]/assets/img/examples/list-groups@2x.png b/site/static/docs/[version]/assets/img/examples/list-groups@2x.png index 6181038a614c..8d29422169f7 100644 Binary files a/site/static/docs/[version]/assets/img/examples/list-groups@2x.png and b/site/static/docs/[version]/assets/img/examples/list-groups@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/masonry-dark.png b/site/static/docs/[version]/assets/img/examples/masonry-dark.png new file mode 100644 index 000000000000..97f45ec47941 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/masonry-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/masonry-dark@2x.png b/site/static/docs/[version]/assets/img/examples/masonry-dark@2x.png new file mode 100644 index 000000000000..83f52e637705 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/masonry-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/masonry.png b/site/static/docs/[version]/assets/img/examples/masonry.png index 67e0d8a838e2..c1f41ef6ad09 100644 Binary files a/site/static/docs/[version]/assets/img/examples/masonry.png and b/site/static/docs/[version]/assets/img/examples/masonry.png differ diff --git a/site/static/docs/[version]/assets/img/examples/masonry@2x.png b/site/static/docs/[version]/assets/img/examples/masonry@2x.png index fe6d1569ebbb..ae904277bc35 100644 Binary files a/site/static/docs/[version]/assets/img/examples/masonry@2x.png and b/site/static/docs/[version]/assets/img/examples/masonry@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbar-bottom-dark.png b/site/static/docs/[version]/assets/img/examples/navbar-bottom-dark.png new file mode 100644 index 000000000000..de61f1a13987 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/navbar-bottom-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbar-bottom-dark@2x.png b/site/static/docs/[version]/assets/img/examples/navbar-bottom-dark@2x.png new file mode 100644 index 000000000000..5120e72d6c09 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/navbar-bottom-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbar-bottom.png b/site/static/docs/[version]/assets/img/examples/navbar-bottom.png index 77f1dc83a837..654d5046863c 100644 Binary files a/site/static/docs/[version]/assets/img/examples/navbar-bottom.png and b/site/static/docs/[version]/assets/img/examples/navbar-bottom.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbar-bottom@2x.png b/site/static/docs/[version]/assets/img/examples/navbar-bottom@2x.png index 031e12d2aed5..3362a1e7786c 100644 Binary files a/site/static/docs/[version]/assets/img/examples/navbar-bottom@2x.png and b/site/static/docs/[version]/assets/img/examples/navbar-bottom@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbar-fixed-dark.png b/site/static/docs/[version]/assets/img/examples/navbar-fixed-dark.png new file mode 100644 index 000000000000..b8d1e425d25f Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/navbar-fixed-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbar-fixed-dark@2x.png b/site/static/docs/[version]/assets/img/examples/navbar-fixed-dark@2x.png new file mode 100644 index 000000000000..1f64847e500a Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/navbar-fixed-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbar-fixed.png b/site/static/docs/[version]/assets/img/examples/navbar-fixed.png index 1b18d79dd8ab..2087e34732ef 100644 Binary files a/site/static/docs/[version]/assets/img/examples/navbar-fixed.png and b/site/static/docs/[version]/assets/img/examples/navbar-fixed.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbar-fixed@2x.png b/site/static/docs/[version]/assets/img/examples/navbar-fixed@2x.png index 6d2a644f78da..7f2479543987 100644 Binary files a/site/static/docs/[version]/assets/img/examples/navbar-fixed@2x.png and b/site/static/docs/[version]/assets/img/examples/navbar-fixed@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbar-static-dark.png b/site/static/docs/[version]/assets/img/examples/navbar-static-dark.png new file mode 100644 index 000000000000..75e20b329e70 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/navbar-static-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbar-static-dark@2x.png b/site/static/docs/[version]/assets/img/examples/navbar-static-dark@2x.png new file mode 100644 index 000000000000..c65ac8a24344 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/navbar-static-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbar-static.png b/site/static/docs/[version]/assets/img/examples/navbar-static.png index eb09fca8366f..f121220f193d 100644 Binary files a/site/static/docs/[version]/assets/img/examples/navbar-static.png and b/site/static/docs/[version]/assets/img/examples/navbar-static.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbar-static@2x.png b/site/static/docs/[version]/assets/img/examples/navbar-static@2x.png index 6cf7c52eaf77..c3b67fd36cc1 100644 Binary files a/site/static/docs/[version]/assets/img/examples/navbar-static@2x.png and b/site/static/docs/[version]/assets/img/examples/navbar-static@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbars-dark.png b/site/static/docs/[version]/assets/img/examples/navbars-dark.png new file mode 100644 index 000000000000..2e3872a4f657 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/navbars-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbars-dark@2x.png b/site/static/docs/[version]/assets/img/examples/navbars-dark@2x.png new file mode 100644 index 000000000000..cc58b6b466c2 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/navbars-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbars-drawer-dark.png b/site/static/docs/[version]/assets/img/examples/navbars-drawer-dark.png new file mode 100644 index 000000000000..a3b011197005 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/navbars-drawer-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbars-drawer-dark@2x.png b/site/static/docs/[version]/assets/img/examples/navbars-drawer-dark@2x.png new file mode 100644 index 000000000000..728575ab5017 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/navbars-drawer-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbars-drawer.png b/site/static/docs/[version]/assets/img/examples/navbars-drawer.png index a628dffc0ffd..a95c22d2b25f 100644 Binary files a/site/static/docs/[version]/assets/img/examples/navbars-drawer.png and b/site/static/docs/[version]/assets/img/examples/navbars-drawer.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbars-drawer@2x.png b/site/static/docs/[version]/assets/img/examples/navbars-drawer@2x.png index 83acbca5627c..5044484000c4 100644 Binary files a/site/static/docs/[version]/assets/img/examples/navbars-drawer@2x.png and b/site/static/docs/[version]/assets/img/examples/navbars-drawer@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbars.png b/site/static/docs/[version]/assets/img/examples/navbars.png index a81e85cbdfc3..e94cd90e2bb7 100644 Binary files a/site/static/docs/[version]/assets/img/examples/navbars.png and b/site/static/docs/[version]/assets/img/examples/navbars.png differ diff --git a/site/static/docs/[version]/assets/img/examples/navbars@2x.png b/site/static/docs/[version]/assets/img/examples/navbars@2x.png index dc0cea0854ae..275adfada984 100644 Binary files a/site/static/docs/[version]/assets/img/examples/navbars@2x.png and b/site/static/docs/[version]/assets/img/examples/navbars@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/offcanvas-navbar.png b/site/static/docs/[version]/assets/img/examples/offcanvas-navbar.png deleted file mode 100644 index 9540fe5962e5..000000000000 Binary files a/site/static/docs/[version]/assets/img/examples/offcanvas-navbar.png and /dev/null differ diff --git a/site/static/docs/[version]/assets/img/examples/offcanvas-navbar@2x.png b/site/static/docs/[version]/assets/img/examples/offcanvas-navbar@2x.png deleted file mode 100644 index abb13bc3797c..000000000000 Binary files a/site/static/docs/[version]/assets/img/examples/offcanvas-navbar@2x.png and /dev/null differ diff --git a/site/static/docs/[version]/assets/img/examples/pricing-dark.png b/site/static/docs/[version]/assets/img/examples/pricing-dark.png new file mode 100644 index 000000000000..67d32457301e Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/pricing-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/pricing-dark@2x.png b/site/static/docs/[version]/assets/img/examples/pricing-dark@2x.png new file mode 100644 index 000000000000..1933dce6f3a7 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/pricing-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/pricing.png b/site/static/docs/[version]/assets/img/examples/pricing.png index ea7224615a5f..4dbdb86f1c17 100644 Binary files a/site/static/docs/[version]/assets/img/examples/pricing.png and b/site/static/docs/[version]/assets/img/examples/pricing.png differ diff --git a/site/static/docs/[version]/assets/img/examples/pricing@2x.png b/site/static/docs/[version]/assets/img/examples/pricing@2x.png index 543b0a3f28cd..209d35d59507 100644 Binary files a/site/static/docs/[version]/assets/img/examples/pricing@2x.png and b/site/static/docs/[version]/assets/img/examples/pricing@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/product-dark.png b/site/static/docs/[version]/assets/img/examples/product-dark.png new file mode 100644 index 000000000000..d444c6328099 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/product-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/product-dark@2x.png b/site/static/docs/[version]/assets/img/examples/product-dark@2x.png new file mode 100644 index 000000000000..131c9d70362d Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/product-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/product.png b/site/static/docs/[version]/assets/img/examples/product.png index a95eff622120..16aed1eeca1e 100644 Binary files a/site/static/docs/[version]/assets/img/examples/product.png and b/site/static/docs/[version]/assets/img/examples/product.png differ diff --git a/site/static/docs/[version]/assets/img/examples/product@2x.png b/site/static/docs/[version]/assets/img/examples/product@2x.png index 1dfe45482178..ddefd8cb384c 100644 Binary files a/site/static/docs/[version]/assets/img/examples/product@2x.png and b/site/static/docs/[version]/assets/img/examples/product@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sidebars-dark.png b/site/static/docs/[version]/assets/img/examples/sidebars-dark.png new file mode 100644 index 000000000000..ca5e86ec489e Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/sidebars-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sidebars-dark@2x.png b/site/static/docs/[version]/assets/img/examples/sidebars-dark@2x.png new file mode 100644 index 000000000000..a98c0b4e6b18 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/sidebars-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sidebars.png b/site/static/docs/[version]/assets/img/examples/sidebars.png index 00efb311e73f..6a7041aa9384 100644 Binary files a/site/static/docs/[version]/assets/img/examples/sidebars.png and b/site/static/docs/[version]/assets/img/examples/sidebars.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sidebars@2x.png b/site/static/docs/[version]/assets/img/examples/sidebars@2x.png index cb167e5351f6..4062a8cb0a79 100644 Binary files a/site/static/docs/[version]/assets/img/examples/sidebars@2x.png and b/site/static/docs/[version]/assets/img/examples/sidebars@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sign-in-dark.png b/site/static/docs/[version]/assets/img/examples/sign-in-dark.png new file mode 100644 index 000000000000..b6120e16de7b Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/sign-in-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sign-in-dark@2x.png b/site/static/docs/[version]/assets/img/examples/sign-in-dark@2x.png new file mode 100644 index 000000000000..1da605afc773 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/sign-in-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sign-in.png b/site/static/docs/[version]/assets/img/examples/sign-in.png index 8d57f561ca21..87c8540da47d 100644 Binary files a/site/static/docs/[version]/assets/img/examples/sign-in.png and b/site/static/docs/[version]/assets/img/examples/sign-in.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sign-in@2x.png b/site/static/docs/[version]/assets/img/examples/sign-in@2x.png index 477335984d85..136bd98d1c49 100644 Binary files a/site/static/docs/[version]/assets/img/examples/sign-in@2x.png and b/site/static/docs/[version]/assets/img/examples/sign-in@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/starter-template-dark.png b/site/static/docs/[version]/assets/img/examples/starter-template-dark.png new file mode 100644 index 000000000000..2d5ae292a473 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/starter-template-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/starter-template-dark@2x.png b/site/static/docs/[version]/assets/img/examples/starter-template-dark@2x.png new file mode 100644 index 000000000000..f39e9c1820d8 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/starter-template-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/starter-template.png b/site/static/docs/[version]/assets/img/examples/starter-template.png index d4b20217acc6..6cadd55c0b37 100644 Binary files a/site/static/docs/[version]/assets/img/examples/starter-template.png and b/site/static/docs/[version]/assets/img/examples/starter-template.png differ diff --git a/site/static/docs/[version]/assets/img/examples/starter-template@2x.png b/site/static/docs/[version]/assets/img/examples/starter-template@2x.png index 9323837caae2..e3bf7b74e13f 100644 Binary files a/site/static/docs/[version]/assets/img/examples/starter-template@2x.png and b/site/static/docs/[version]/assets/img/examples/starter-template@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sticky-footer-dark.png b/site/static/docs/[version]/assets/img/examples/sticky-footer-dark.png new file mode 100644 index 000000000000..7c530c307fd5 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/sticky-footer-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sticky-footer-dark@2x.png b/site/static/docs/[version]/assets/img/examples/sticky-footer-dark@2x.png new file mode 100644 index 000000000000..aa7826f6be11 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/sticky-footer-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar-dark.png b/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar-dark.png new file mode 100644 index 000000000000..bd86b321c84d Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar-dark.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar-dark@2x.png b/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar-dark@2x.png new file mode 100644 index 000000000000..0c1008e96bb1 Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar-dark@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar.png b/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar.png index 8417cc8300d5..99069cd788a1 100644 Binary files a/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar.png and b/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar@2x.png b/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar@2x.png index 1abb3822300d..1a7dc185ab4e 100644 Binary files a/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar@2x.png and b/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar@2x.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sticky-footer.png b/site/static/docs/[version]/assets/img/examples/sticky-footer.png index c5ea6ef82093..9bb7736b0f12 100644 Binary files a/site/static/docs/[version]/assets/img/examples/sticky-footer.png and b/site/static/docs/[version]/assets/img/examples/sticky-footer.png differ diff --git a/site/static/docs/[version]/assets/img/examples/sticky-footer@2x.png b/site/static/docs/[version]/assets/img/examples/sticky-footer@2x.png index 5a008a0ac3a5..883d5979fc7c 100644 Binary files a/site/static/docs/[version]/assets/img/examples/sticky-footer@2x.png and b/site/static/docs/[version]/assets/img/examples/sticky-footer@2x.png differ