stack-site-builder 1.19.1 → 1.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -11,6 +11,28 @@ content schema, while a consuming site supplies only content, taxonomy data and
11
11
  config. Sites track the theme with `pnpm up stack-site-builder`, so each release
12
12
  here is a plain version bump they pull in.
13
13
 
14
+ ## [1.19.3] - 2026-07-23
15
+
16
+ ### Fixed
17
+
18
+ - **Hero/card icons: no more drop shadow, no more distortion** — the cards
19
+ home and product-landing hero icons dropped their shadow, and every icon
20
+ slot (heroes, home cards, products index) now uses `object-contain`, so a
21
+ non-square source keeps its aspect ratio instead of stretching to fill
22
+ the square box.
23
+
24
+ ## [1.19.2] - 2026-07-23
25
+
26
+ ### Fixed
27
+
28
+ - **Dark mode made custom-styled diagrams unreadable** — authored
29
+ `style X fill:#…` lines carry light-mode colors, while Mermaid's HTML
30
+ labels take their text color from the theme variables; in dark mode that
31
+ paired light text with the hardcoded light fills. The loader now drops
32
+ fill styles when rendering in dark mode, so those diagrams follow the
33
+ theme palette there — light mode keeps the authored colors, and toggling
34
+ the theme re-renders accordingly.
35
+
14
36
  ## [1.19.1] - 2026-07-23
15
37
 
16
38
  ### Changed
@@ -333,6 +355,8 @@ catalog sites from a thin content-only repository.
333
355
  - **Standalone development setup** — a devcontainer and a minimal `playground/`
334
356
  consuming site for developing and previewing the theme on its own.
335
357
 
358
+ [1.19.3]: https://github.com/CodeCompose7/stack-site-builder/compare/v1.19.2...v1.19.3
359
+ [1.19.2]: https://github.com/CodeCompose7/stack-site-builder/compare/v1.19.1...v1.19.2
336
360
  [1.19.1]: https://github.com/CodeCompose7/stack-site-builder/compare/v1.19.0...v1.19.1
337
361
  [1.19.0]: https://github.com/CodeCompose7/stack-site-builder/compare/v1.18.0...v1.19.0
338
362
  [1.18.0]: https://github.com/CodeCompose7/stack-site-builder/compare/v1.17.4...v1.18.0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stack-site-builder",
3
3
  "type": "module",
4
- "version": "1.19.1",
4
+ "version": "1.19.3",
5
5
  "license": "MIT",
6
6
  "description": "The engine behind the awesome-*-stack catalog sites: an Astro theme with the catalog/concepts/articles/slides/samples routes, components, styles and markdown pipeline. Sites provide content, taxonomy data and config.",
7
7
  "repository": {
@@ -29,7 +29,7 @@ const resolveHref = (href: string, external?: boolean) =>
29
29
  ---
30
30
 
31
31
  <section class="py-14 text-center">
32
- {h?.hero?.icon && <img src={withBase(h.hero.icon)} alt="" class="mx-auto h-20 w-20 rounded-[22%] shadow-md" />}
32
+ {h?.hero?.icon && <img src={withBase(h.hero.icon)} alt="" class="mx-auto h-20 w-20 rounded-[22%] object-contain" />}
33
33
  <h1 class="mt-5 text-4xl font-bold tracking-tight sm:text-5xl">{heroTitle}</h1>
34
34
  <p class="mx-auto mt-4 max-w-2xl text-xl text-[var(--aas-muted)]" set:html={heroSubtitle} />
35
35
  </section>
@@ -50,7 +50,7 @@ const resolveHref = (href: string, external?: boolean) =>
50
50
  <img
51
51
  src={withBase(c.icon)}
52
52
  alt=""
53
- class:list={['h-20 w-20 shrink-0', c.rounded ? 'rounded-[22%]' : 'rounded-xl']}
53
+ class:list={['h-20 w-20 shrink-0 object-contain', c.rounded ? 'rounded-[22%]' : 'rounded-xl']}
54
54
  loading="lazy"
55
55
  />
56
56
  )}
@@ -56,6 +56,19 @@
56
56
  });
57
57
  }
58
58
 
59
+ // Authored `style X fill:#…` lines carry light-mode colors, and Mermaid's
60
+ // HTML labels take their text color from the THEME variables — in dark mode
61
+ // that pairs light text with the hardcoded light fills, unreadable. So in
62
+ // dark mode we drop those fill styles and let the diagram render entirely
63
+ // from the theme palette; light mode keeps the authored colors.
64
+ function srcForTheme(src: string): string {
65
+ if (document.documentElement.dataset.theme !== 'dark') return src;
66
+ return src
67
+ .split('\n')
68
+ .filter((l) => !/^\s*style\s+\S+.*fill:#/.test(l))
69
+ .join('\n');
70
+ }
71
+
59
72
  async function renderAll() {
60
73
  const nodes = Array.from(document.querySelectorAll<HTMLElement>('pre.mermaid'));
61
74
  if (nodes.length === 0) return;
@@ -66,7 +79,7 @@
66
79
  // injecting it as HTML would turn `<…>` in labels into live DOM (the
67
80
  // server-side escaping exists precisely to prevent that). Mermaid reads
68
81
  // the element's innerHTML and decodes entities itself.
69
- n.textContent = n.dataset.src ?? '';
82
+ n.textContent = srcForTheme(n.dataset.src ?? '');
70
83
  }
71
84
  init();
72
85
  try {
@@ -47,7 +47,7 @@ const altBg = (i: number) => i % 2 === 1;
47
47
  ]}
48
48
  >
49
49
  <div class="mx-auto max-w-[75rem] px-5">
50
- {d.icon && <img src={withBase(d.icon)} alt="" class="mx-auto h-24 w-24 rounded-[22%] shadow-lg" />}
50
+ {d.icon && <img src={withBase(d.icon)} alt="" class="mx-auto h-24 w-24 rounded-[22%] object-contain" />}
51
51
  <h1 class="mt-6 text-4xl font-bold tracking-tight sm:text-5xl">{d.title}</h1>
52
52
  {d.subtitle && <p class="mt-3 text-xl text-[var(--aas-muted)]" set:html={d.subtitle} />}
53
53
  {
@@ -54,7 +54,7 @@ const sections = productTree.roots
54
54
  class="aas-lift flex items-center gap-6 rounded-3xl border border-[var(--aas-border)] bg-[var(--aas-panel)] p-6 no-underline"
55
55
  >
56
56
  {a.data.icon && (
57
- <img src={withBase(a.data.icon)} alt="" class="h-20 w-20 shrink-0 rounded-[22%]" loading="lazy" />
57
+ <img src={withBase(a.data.icon)} alt="" class="h-20 w-20 shrink-0 rounded-[22%] object-contain" loading="lazy" />
58
58
  )}
59
59
  <span class="min-w-0">
60
60
  <span class="block text-xl font-semibold text-[var(--aas-text)]">{a.data.title}</span>