You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -164,7 +164,7 @@ CI pre-render (cross-platform Rust binary, zero shell deps):
164
164
|`syntect`| Syntax highlighting |
165
165
|`serde` + `serde_yaml`| Frontmatter parsing |
166
166
|`tower-http`| Static file serving, compression |
167
-
|`wasm-bindgen` + `web-sys`| Browser API access (localStorage, IntersectionObserver, Clipboard) — non-optional because `#[island]` macro does not cfg-gate the body |
167
+
|`wasm-bindgen` + `web-sys`| Browser API access (localStorage, Clipboard) — non-optional because `#[island]` macro does not cfg-gate the body. IntersectionObserver is now handled by inline script, not WASM.|
168
168
169
169
## 4. Feature Requirements
170
170
@@ -208,7 +208,7 @@ Stylized comparison of commitbee vs. the field on key features. Layered card des
208
208
209
209
#### FR-006: Install and Quick Start
210
210
211
-
Terminal-style code blocks with copy-to-clipboard buttons. Shows `cargo install commitbee`, `brew install sephyi/tap/commitbee`, and the zero-config first-run experience. Animated terminal showing the first-run flow.
211
+
Terminal-style code blocks with copy-to-clipboard buttons. Shows `cargo install commitbee`, `brew install sephyi/tap/commitbee`, and the zero-config first-run experience. Animated terminal showing the first-run flow. Copy buttons implemented on all install section terminal blocks using `.copy-btn` pattern with `data-code` attributes, activated by a `CodeBlockActivator` island on the landing page.
Syntax-highlighted code blocks via `syntect` (rendered at build time). Copy-to-clipboard button on each block. Language label displayed. Bee-themed syntax color scheme for both light and dark modes.
258
+
Syntax-highlighted code blocks via `syntect` (rendered at build time). Copy-to-clipboard button on each block. Language label displayed. Bee-themed syntax color scheme for both light and dark modes. Copy-to-clipboard implemented on both docs pages and landing page install section terminal blocks using `.copy-btn` with `data-code` attributes.
259
259
260
260
#### FR-015: Table of Contents
261
261
@@ -281,7 +281,18 @@ Inter for headings and body text. JetBrains Mono for code. Self-hosted fonts in
281
281
282
282
#### FR-023: Scroll Animations
283
283
284
-
`IntersectionObserver` via `ScrollObserver``#[island]` as the baseline implementation (works in all browsers). A single island instance observes all `.reveal` / `.reveal-left` / `.reveal-right` / `.reveal-scale` elements and adds `.visible` on intersection. CSS `animation-timeline: scroll()` as progressive enhancement for Chromium browsers. Motion style: fade-up and slide-in, smooth and organic. Respects `prefers-reduced-motion` — all animations disabled when set.
284
+
Scroll reveal is handled by an inline `<script>` in the HTML shell (`src/app.rs`), not a WASM island. The previous `ScrollObserver``#[island]` approach was replaced because it blocked SSR content — all `.reveal` elements remained invisible until WASM hydrated, defeating the purpose of pre-rendering.
285
+
286
+
The inline script implementation:
287
+
288
+
-**Above-fold elements** are revealed synchronously via `getBoundingClientRect()` viewport check (no transition delay, content visible on first paint)
289
+
-**Below-fold elements** are animated via `IntersectionObserver` as they scroll into view
290
+
-**SPA route changes** are handled by a `MutationObserver` that re-scans for new `.reveal` elements
291
+
-**No-JS fallback**: a `<noscript><style>` block makes all `.reveal` content visible without JavaScript
292
+
293
+
Supports `.reveal`, `.reveal-left`, `.reveal-right`, `.reveal-scale` classes, adding `.visible` on intersection. CSS `animation-timeline: scroll()` remains as progressive enhancement for Chromium browsers. Motion style: fade-up and slide-in, smooth and organic. Respects `prefers-reduced-motion` — all animations disabled when set.
294
+
295
+
`src/components/scroll_observer.rs` has been deleted. The file tree no longer includes it.
285
296
286
297
#### FR-024: Hexagonal Motifs
287
298
@@ -319,7 +330,7 @@ No API keys, credentials, or secrets in the codebase. The site is entirely stati
319
330
320
331
### SR-002: Content Security
321
332
322
-
Self-hosted fonts and assets only. No external script dependencies. No third-party analytics or tracking by default. Content-Security-Policy headers via `<meta>` tag in HTML shell.
333
+
Self-hosted fonts and assets only. No external script dependencies. No third-party analytics or tracking by default. Content-Security-Policy headers via `<meta>` tag in HTML shell. Only `favicon.svg` is referenced (no `apple-touch-icon` or `favicon.ico` links — those files do not exist in `public/images/`).
0 commit comments