]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Docs: automatically screenshot examples as light/dark images (#42329)
authorJulien Déramond <juderamond@gmail.com>
Sat, 18 Apr 2026 06:21:24 +0000 (08:21 +0200)
committerGitHub <noreply@github.com>
Sat, 18 Apr 2026 06:21:24 +0000 (08:21 +0200)
136 files changed:
build/screenshot-examples.mjs [new file with mode: 0644]
package-lock.json
package.json
site/src/layouts/partials/ExamplesMain.astro
site/static/docs/[version]/assets/img/examples/album-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/album-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/album.png
site/static/docs/[version]/assets/img/examples/album@2x.png
site/static/docs/[version]/assets/img/examples/badges-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/badges-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/badges.png
site/static/docs/[version]/assets/img/examples/badges@2x.png
site/static/docs/[version]/assets/img/examples/blog-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/blog-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/blog.png
site/static/docs/[version]/assets/img/examples/blog@2x.png
site/static/docs/[version]/assets/img/examples/breadcrumbs-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/breadcrumbs-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/breadcrumbs.png
site/static/docs/[version]/assets/img/examples/breadcrumbs@2x.png
site/static/docs/[version]/assets/img/examples/buttons-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/buttons-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/buttons.png
site/static/docs/[version]/assets/img/examples/buttons@2x.png
site/static/docs/[version]/assets/img/examples/carousel-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/carousel-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/carousel.png
site/static/docs/[version]/assets/img/examples/carousel@2x.png
site/static/docs/[version]/assets/img/examples/cheatsheet-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/cheatsheet-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/cheatsheet.png
site/static/docs/[version]/assets/img/examples/cheatsheet@2x.png
site/static/docs/[version]/assets/img/examples/checkout-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/checkout-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/checkout.png
site/static/docs/[version]/assets/img/examples/checkout@2x.png
site/static/docs/[version]/assets/img/examples/cover-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/cover-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/cover.png
site/static/docs/[version]/assets/img/examples/cover@2x.png
site/static/docs/[version]/assets/img/examples/dashboard-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/dashboard-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/dashboard.png
site/static/docs/[version]/assets/img/examples/dashboard@2x.png
site/static/docs/[version]/assets/img/examples/dialogs-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/dialogs-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/dialogs.png
site/static/docs/[version]/assets/img/examples/dialogs@2x.png
site/static/docs/[version]/assets/img/examples/dropdowns.png [deleted file]
site/static/docs/[version]/assets/img/examples/dropdowns@2x.png [deleted file]
site/static/docs/[version]/assets/img/examples/features-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/features-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/features.png
site/static/docs/[version]/assets/img/examples/features@2x.png
site/static/docs/[version]/assets/img/examples/footers-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/footers-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/footers.png
site/static/docs/[version]/assets/img/examples/footers@2x.png
site/static/docs/[version]/assets/img/examples/grid-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/grid-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/grid.png
site/static/docs/[version]/assets/img/examples/grid@2x.png
site/static/docs/[version]/assets/img/examples/headers-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/headers-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/headers.png
site/static/docs/[version]/assets/img/examples/headers@2x.png
site/static/docs/[version]/assets/img/examples/heroes-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/heroes-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/heroes.png
site/static/docs/[version]/assets/img/examples/heroes@2x.png
site/static/docs/[version]/assets/img/examples/jumbotron-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/jumbotron-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/jumbotron.png
site/static/docs/[version]/assets/img/examples/jumbotron@2x.png
site/static/docs/[version]/assets/img/examples/jumbotrons-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/jumbotrons-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/jumbotrons.png
site/static/docs/[version]/assets/img/examples/jumbotrons@2x.png
site/static/docs/[version]/assets/img/examples/list-groups-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/list-groups-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/list-groups.png
site/static/docs/[version]/assets/img/examples/list-groups@2x.png
site/static/docs/[version]/assets/img/examples/masonry-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/masonry-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/masonry.png
site/static/docs/[version]/assets/img/examples/masonry@2x.png
site/static/docs/[version]/assets/img/examples/navbar-bottom-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/navbar-bottom-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/navbar-bottom.png
site/static/docs/[version]/assets/img/examples/navbar-bottom@2x.png
site/static/docs/[version]/assets/img/examples/navbar-fixed-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/navbar-fixed-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/navbar-fixed.png
site/static/docs/[version]/assets/img/examples/navbar-fixed@2x.png
site/static/docs/[version]/assets/img/examples/navbar-static-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/navbar-static-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/navbar-static.png
site/static/docs/[version]/assets/img/examples/navbar-static@2x.png
site/static/docs/[version]/assets/img/examples/navbars-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/navbars-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/navbars-drawer-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/navbars-drawer-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/navbars-drawer.png
site/static/docs/[version]/assets/img/examples/navbars-drawer@2x.png
site/static/docs/[version]/assets/img/examples/navbars.png
site/static/docs/[version]/assets/img/examples/navbars@2x.png
site/static/docs/[version]/assets/img/examples/offcanvas-navbar.png [deleted file]
site/static/docs/[version]/assets/img/examples/offcanvas-navbar@2x.png [deleted file]
site/static/docs/[version]/assets/img/examples/pricing-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/pricing-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/pricing.png
site/static/docs/[version]/assets/img/examples/pricing@2x.png
site/static/docs/[version]/assets/img/examples/product-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/product-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/product.png
site/static/docs/[version]/assets/img/examples/product@2x.png
site/static/docs/[version]/assets/img/examples/sidebars-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/sidebars-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/sidebars.png
site/static/docs/[version]/assets/img/examples/sidebars@2x.png
site/static/docs/[version]/assets/img/examples/sign-in-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/sign-in-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/sign-in.png
site/static/docs/[version]/assets/img/examples/sign-in@2x.png
site/static/docs/[version]/assets/img/examples/starter-template-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/starter-template-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/starter-template.png
site/static/docs/[version]/assets/img/examples/starter-template@2x.png
site/static/docs/[version]/assets/img/examples/sticky-footer-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/sticky-footer-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/sticky-footer-navbar-dark.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/sticky-footer-navbar-dark@2x.png [new file with mode: 0644]
site/static/docs/[version]/assets/img/examples/sticky-footer-navbar.png
site/static/docs/[version]/assets/img/examples/sticky-footer-navbar@2x.png
site/static/docs/[version]/assets/img/examples/sticky-footer.png
site/static/docs/[version]/assets/img/examples/sticky-footer@2x.png

diff --git a/build/screenshot-examples.mjs b/build/screenshot-examples.mjs
new file mode 100644 (file)
index 0000000..bfd6ccc
--- /dev/null
@@ -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
+})
index 391160d6b7786cb27f23b3a488aef4b052bc6d58..4cd10bbc0379497090165be5b0bcc0cf21c0e6e2 100644 (file)
@@ -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",
         "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": {
       "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==",
       "dev": true,
       "license": "MIT",
-      "optional": true,
       "engines": {
         "node": ">=18"
       }
         "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",
       "dev": true,
       "hasInstallScript": true,
       "license": "Apache-2.0",
-      "optional": true,
       "dependencies": {
         "@img/colour": "^1.0.0",
         "detect-libc": "^2.1.2",
       "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
       "dev": true,
       "license": "ISC",
-      "optional": true,
       "bin": {
         "semver": "bin/semver.js"
       },
index 8c43604979f7db0c47dfc30c3647e4e0894154b2..7d97edc3b09002f07ef060f197f11a1081656e88 100644 (file)
@@ -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*",
     "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",
     "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": [
index 9f5318726c35331a29fc8213e737313aafa335eb..ec27a077047a302cc1d212aec4b3c68f50f2f649 100644 (file)
@@ -60,7 +60,15 @@ import { getSlug } from '@libs/utils'
                   href={`/docs/${getConfig().docs_version}/examples/${getSlug(example.name)}/`}
                 >
                   <img
-                    class="img-thumbnail mb-3"
+                    class="img-thumbnail mb-3 examples-thumb"
+                    data-light-src={getVersionedDocsPath(`/assets/img/examples/${getSlug(example.name)}.png`)}
+                    data-light-srcset={`${getVersionedDocsPath(
+                      `/assets/img/examples/${getSlug(example.name)}.png`
+                    )}, ${getVersionedDocsPath(`/assets/img/examples/${getSlug(example.name)}@2x.png`)} 2x`}
+                    data-dark-src={getVersionedDocsPath(`/assets/img/examples/${getSlug(example.name)}-dark.png`)}
+                    data-dark-srcset={`${getVersionedDocsPath(
+                      `/assets/img/examples/${getSlug(example.name)}-dark.png`
+                    )}, ${getVersionedDocsPath(`/assets/img/examples/${getSlug(example.name)}-dark@2x.png`)} 2x`}
                     srcset={`${getVersionedDocsPath(
                       `/assets/img/examples/${getSlug(example.name)}.png`
                     )}, ${getVersionedDocsPath(`/assets/img/examples/${getSlug(example.name)}@2x.png`)} 2x`}
@@ -81,3 +89,30 @@ import { getSlug } from '@libs/utils'
     )
   })
 }
+
+<script is:inline>
+  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']
+  })
+</script>
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 (file)
index 0000000..f4f1cc1
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 (file)
index 0000000..1b70767
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/album-dark@2x.png differ
index f0af624013efc952551e5a36922ad2a9be08de9e..9bd3eac487d72a771c949177ee0dc7bedd90c333 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/album.png and b/site/static/docs/[version]/assets/img/examples/album.png differ
index bd43a51e1a748b2fa1c7031e9a9ef85e601c7a97..2e0ce814ba9cd3781d0e325a38a97a2457a5c444 100644 (file)
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 (file)
index 0000000..58c71c6
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 (file)
index 0000000..efd57cd
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/badges-dark@2x.png differ
index af4a9ac6b678efea0128d42b2b787e82cf2f4167..d73b7979a5e75c7c047a65b2f40f4d83c1359414 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/badges.png and b/site/static/docs/[version]/assets/img/examples/badges.png differ
index 8c3fd3f7220b8fc918abb8b900993df32f7b1e4d..886c9628b2bfa974adca9b9400cc13d36e7876e0 100644 (file)
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 (file)
index 0000000..282d2c9
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 (file)
index 0000000..59d7550
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/blog-dark@2x.png differ
index 3ce428418e1af9fb8beb5f661966dc5c2c0c75c6..e5b2b2d1e27b05980076a26a23d2b1ed6ddd83f7 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/blog.png and b/site/static/docs/[version]/assets/img/examples/blog.png differ
index f5480314b4be5882138dad695bdbcaa6c37a4179..1d89b967fe1e482b2dfea85bd5d41268281725c3 100644 (file)
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 (file)
index 0000000..eb2a87a
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 (file)
index 0000000..2d32126
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/breadcrumbs-dark@2x.png differ
index 4417e95b3aca79dd79f4534597177d2fe828d675..6b64e59554b08aa9cd3a824740e2570a0607abeb 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/breadcrumbs.png and b/site/static/docs/[version]/assets/img/examples/breadcrumbs.png differ
index 0eb36d1362ed394020f9c6441dde8e91ed9f5172..d7c31c9d128ed3ac4c92fa808a3358f5e6693262 100644 (file)
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 (file)
index 0000000..0f5a4a4
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 (file)
index 0000000..525fc2a
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/buttons-dark@2x.png differ
index 4da03f7917ed2284f9094e1c8c34b008f8d49aa2..37d7f29c6b3046c1f2aeec0c9fb29c25545a8c28 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/buttons.png and b/site/static/docs/[version]/assets/img/examples/buttons.png differ
index 752e659028df30595ec5532b7a20866b1a2c2074..47f996a222b3199598865a59d13bd870888ec4ef 100644 (file)
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 (file)
index 0000000..c4713ab
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 (file)
index 0000000..1cafb9a
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/carousel-dark@2x.png differ
index e2bbba6c80003cd0608e2eafce9f278826f6263e..a4a3e4619e78a985c1b0fd5e9e75b0b627fccc15 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/carousel.png and b/site/static/docs/[version]/assets/img/examples/carousel.png differ
index bc5d4a09d0f02b5b7ea13a869d6cba7023d4e866..86fb02ea54c539019c70ada29504e0ac2b11909c 100644 (file)
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 (file)
index 0000000..8aeb6df
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 (file)
index 0000000..2c25ed7
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/cheatsheet-dark@2x.png differ
index 074be001558f1555b626098cf34f267b9b7ddcce..2388270f6872be3428f836a79739afd935f32d7e 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/cheatsheet.png and b/site/static/docs/[version]/assets/img/examples/cheatsheet.png differ
index c958b6cb601319e2d65f7d62263bb60482e08681..ab9b48ceab577657979198e845eeb5b8881ad00e 100644 (file)
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 (file)
index 0000000..fc7d5e7
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 (file)
index 0000000..68daf9c
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/checkout-dark@2x.png differ
index cb81ef2d7ca0021f5a4c2e7df400f3d398f0f31c..ceea4737cc7c8ef998bd1cf92c9e648de6eab044 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/checkout.png and b/site/static/docs/[version]/assets/img/examples/checkout.png differ
index 79c7b4bb8278143c3b485c8e50c7720205767b8a..9362151bbbc06632d5eb1d68db52c3081923034a 100644 (file)
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 (file)
index 0000000..d827649
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 (file)
index 0000000..9a1c607
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/cover-dark@2x.png differ
index 5458ff11d389674ee1b40cdc3be3c9af5218e70d..c6f69347a9472a778d7136801e81504ec6d26f69 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/cover.png and b/site/static/docs/[version]/assets/img/examples/cover.png differ
index eacd82e9832799a04a57187a789debf380e2b689..618a074b1324051a43573a65e1cf911c98aa82d7 100644 (file)
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 (file)
index 0000000..efc2eb0
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 (file)
index 0000000..965601b
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/dashboard-dark@2x.png differ
index 52988da739526d2b28c4e35e62b0fdca8a819bea..d4dfbc29f0934f4e3dbc868ad65f8ef7b6e690bb 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/dashboard.png and b/site/static/docs/[version]/assets/img/examples/dashboard.png differ
index 52b23dff6939d25e75027fd15fae5a92e4841520..eb084678b3493dc4ec1c2c1a6761297683596f42 100644 (file)
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 (file)
index 0000000..543698e
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 (file)
index 0000000..c103df8
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/dialogs-dark@2x.png differ
index a9b6723dfb5e2ac41e517a06201d61e83e885ec0..91f229c12b822ae080da3bb90ee482ec5a735905 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/dialogs.png and b/site/static/docs/[version]/assets/img/examples/dialogs.png differ
index 013aa33dd298187a69b5ea31b5d7171c5123937c..e4aab68b2eb69ec6edbd4e0db77e278c79c92b05 100644 (file)
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 (file)
index 64fc8f2..0000000
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 (file)
index 6978dcb..0000000
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 (file)
index 0000000..249dc4a
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 (file)
index 0000000..b282812
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/features-dark@2x.png differ
index c77ed09bbc0321ca8c9be999f14f7b4c4234f860..878a0cd2a742de56e56b3ed07fadfd0698f4bc2e 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/features.png and b/site/static/docs/[version]/assets/img/examples/features.png differ
index 28bcbf1f5a10274a08e2abb757413ca026a14def..d13dbde67dfede3c6fff73d6b9115907bb22b73d 100644 (file)
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 (file)
index 0000000..2af7e5e
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 (file)
index 0000000..b07bfc1
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/footers-dark@2x.png differ
index 74fe820653c0dc40d6d72f0e39cee38d8ad1e6e5..a122cc146264971d4ca2937b33d054b22e85a688 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/footers.png and b/site/static/docs/[version]/assets/img/examples/footers.png differ
index 27003921566deda449d1003a7f687e240263030a..2fd221410fec9f579663b3bc60b5ad531d9d90a7 100644 (file)
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 (file)
index 0000000..20ded2c
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 (file)
index 0000000..a710794
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/grid-dark@2x.png differ
index 9b8afb78b9485f898d05e26b01a8d6943f19e630..e9d84ff89c7bc64984867f0f0b1b4d58b440f2a2 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/grid.png and b/site/static/docs/[version]/assets/img/examples/grid.png differ
index 78ade65f50be74a2eef5d3d1202e7a553828397d..4c9361e07fc63dce2dd624070fc25d5b747be054 100644 (file)
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 (file)
index 0000000..9a64cfa
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 (file)
index 0000000..73b13fb
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/headers-dark@2x.png differ
index 9895762460bc04d3dc7eaa3a97c15c9cf8f6b2f7..15316fae01fe692484fc1050c2f93beb19b13d06 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/headers.png and b/site/static/docs/[version]/assets/img/examples/headers.png differ
index e8de7498cc8238e46f8066fa34b0f582fa516b71..db704566235e0ea2af42f5215177d27919ce7933 100644 (file)
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 (file)
index 0000000..32f46a7
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 (file)
index 0000000..bb00f2c
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/heroes-dark@2x.png differ
index e9bc3e627af922d1974e8d8d982d1c363d636c7c..4ebb512a1beb4c26e6c96dab69d95bb390ae110e 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/heroes.png and b/site/static/docs/[version]/assets/img/examples/heroes.png differ
index fff3a72c7034a09373184f02dad1771ef1d5c37c..5d2a936502adaa13788cc44f6bd9603441422755 100644 (file)
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 (file)
index 0000000..feb824b
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 (file)
index 0000000..af4792e
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/jumbotron-dark@2x.png differ
index 48e0c9c0e0e08171cd4009976a8c727c792d8458..84de0d16b43769496535a9a01e56cfde75fb596d 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/jumbotron.png and b/site/static/docs/[version]/assets/img/examples/jumbotron.png differ
index 229b6300761db086b38b13e807d767e175f91df4..633ea319b8b3319dba9dcf2d694b12880de4d1d8 100644 (file)
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 (file)
index 0000000..2d93a7c
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 (file)
index 0000000..868350f
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/jumbotrons-dark@2x.png differ
index daafe594ba8922cb4160c076eef4801d553e9480..8b9c71da1b3ee20b91931b720adc4d84686324ee 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/jumbotrons.png and b/site/static/docs/[version]/assets/img/examples/jumbotrons.png differ
index 4e549a484c0c4ad1b971363a6516628dbc3b2ae7..27f230d159dc7453abd734d32bbd4ab30603cec0 100644 (file)
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 (file)
index 0000000..d9cfa4f
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 (file)
index 0000000..6523a10
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/list-groups-dark@2x.png differ
index 6c63f93ca15ae7d1d2f0ae7203aad9a238e3bc36..c57c366c1a831f2765a026cc9850143586c9b664 100644 (file)
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
index 6181038a614c3a7cd65fe639b233b4a006cbc8e5..8d29422169f7319ee515196131d114e38055bf92 100644 (file)
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 (file)
index 0000000..97f45ec
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 (file)
index 0000000..83f52e6
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/masonry-dark@2x.png differ
index 67e0d8a838e23c65e5c4d848ff9eec5aacbfd521..c1f41ef6ad0921fb5d4aa0ee24b021534a224217 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/masonry.png and b/site/static/docs/[version]/assets/img/examples/masonry.png differ
index fe6d1569ebbb845d1aca0a87093980b0b70160a2..ae904277bc351cef63d2f5b6a4f54682756c38ac 100644 (file)
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 (file)
index 0000000..de61f1a
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 (file)
index 0000000..5120e72
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/navbar-bottom-dark@2x.png differ
index 77f1dc83a8371efe76dd593d263e707e962bc917..654d5046863ceedac38310b265f2fd139cedb37b 100644 (file)
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
index 031e12d2aed53ed125ab6632f82fbe7a52ef72b1..3362a1e7786c2febbce33dea5da05b419e1169db 100644 (file)
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 (file)
index 0000000..b8d1e42
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 (file)
index 0000000..1f64847
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/navbar-fixed-dark@2x.png differ
index 1b18d79dd8ab373b9880b2ccbf3335cfe30ae7d3..2087e34732ef9b7e9fa1632ca5e85f157cb3a43e 100644 (file)
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
index 6d2a644f78daab709373a5a4c1dc079c834933f8..7f24795439870b18d6044503a0c4db48fe71af75 100644 (file)
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 (file)
index 0000000..75e20b3
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 (file)
index 0000000..c65ac8a
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/navbar-static-dark@2x.png differ
index eb09fca8366f4c2348efde555545eb9415cbb230..f121220f193d60c8d30c3c34208bf21b7e758eb2 100644 (file)
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
index 6cf7c52eaf77765530c8ba1a3633ed7fb875ed06..c3b67fd36cc13958d0bef574272c051a688764be 100644 (file)
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 (file)
index 0000000..2e3872a
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 (file)
index 0000000..cc58b6b
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 (file)
index 0000000..a3b0111
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 (file)
index 0000000..728575a
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/navbars-drawer-dark@2x.png differ
index a628dffc0ffd719cf218dc588d7c2cbcce2aad53..a95c22d2b25f27163c5b6841ec58b12df87334d6 100644 (file)
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
index 83acbca5627cc5c42be32ee71e6af807f91758c4..5044484000c4dec2e3c37c2e9c286278b627df88 100644 (file)
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
index a81e85cbdfc3f87d90fe4f910523410b07c8f84b..e94cd90e2bb77d8daad6af768473e25926a2085d 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/navbars.png and b/site/static/docs/[version]/assets/img/examples/navbars.png differ
index dc0cea0854ae8d9df35a2fd1a82456968a9ccca7..275adfada984040d5824ed9a36a70f389a9e55be 100644 (file)
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 (file)
index 9540fe5..0000000
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 (file)
index abb13bc..0000000
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 (file)
index 0000000..67d3245
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 (file)
index 0000000..1933dce
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/pricing-dark@2x.png differ
index ea7224615a5f2b61e51596c95607eb9ec6b1c3cb..4dbdb86f1c172fa450d5a90e68926cc85980f523 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/pricing.png and b/site/static/docs/[version]/assets/img/examples/pricing.png differ
index 543b0a3f28cdd54bdecabb78d561a70c0f6c7fd8..209d35d59507907821208eb5f9cb612fa5bf7710 100644 (file)
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 (file)
index 0000000..d444c63
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 (file)
index 0000000..131c9d7
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/product-dark@2x.png differ
index a95eff622120ce0d9c84ef964540b1e605c9b5fb..16aed1eeca1ec3165e5b481ab56ae1581856da53 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/product.png and b/site/static/docs/[version]/assets/img/examples/product.png differ
index 1dfe454821782b4ca6917d7b546333b70de99eeb..ddefd8cb384c25fac5d511f27dfb97577b2b1980 100644 (file)
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 (file)
index 0000000..ca5e86e
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 (file)
index 0000000..a98c0b4
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/sidebars-dark@2x.png differ
index 00efb311e73f984c71810c22c33f63589c505c44..6a7041aa9384e1cd5e9c371c4ff65752023efdf5 100644 (file)
Binary files a/site/static/docs/[version]/assets/img/examples/sidebars.png and b/site/static/docs/[version]/assets/img/examples/sidebars.png differ
index cb167e5351f6333e4c8ebc049e78d4cd089e489b..4062a8cb0a79474b5bdb700732e1ec44f2607656 100644 (file)
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 (file)
index 0000000..b6120e1
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 (file)
index 0000000..1da605a
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/sign-in-dark@2x.png differ
index 8d57f561ca21ea6cb94e59d68c981810018de3e7..87c8540da47d257ea5ad048dfaa4c4757db203ea 100644 (file)
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
index 477335984d853dca8f1d1b99d9ea3e7e62d11363..136bd98d1c49e616536234209da16251ec4e46ab 100644 (file)
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 (file)
index 0000000..2d5ae29
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 (file)
index 0000000..f39e9c1
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/starter-template-dark@2x.png differ
index d4b20217acc650226c4128ffcad6f485e4848ed0..6cadd55c0b37f117e09da62fc4d2976fda6ce28d 100644 (file)
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
index 9323837caae20a82cec3bde12b082f0be990e1a4..e3bf7b74e13f279e61d1774b4026f0cdff532032 100644 (file)
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 (file)
index 0000000..7c530c3
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 (file)
index 0000000..aa7826f
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 (file)
index 0000000..bd86b32
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 (file)
index 0000000..0c1008e
Binary files /dev/null and b/site/static/docs/[version]/assets/img/examples/sticky-footer-navbar-dark@2x.png differ
index 8417cc8300d5b2b96622c3ac3935d9a7d29665c7..99069cd788a1a7e0f859518ec40fa48cc15578c0 100644 (file)
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
index 1abb3822300d2884125e25d6d9cd6ca00225b25c..1a7dc185ab4e8f0b8e84004ec962cf189c6bd5eb 100644 (file)
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
index c5ea6ef8209387b6e34ec00760f0aae974194418..9bb7736b0f12712ab6824b88a347e3dc8cc23cf8 100644 (file)
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
index 5a008a0ac3a5c7dc1181d0522a3ed68e43016265..883d5979fc7c675f6cb4d82adf04391f0f2807e6 100644 (file)
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