fix: Wood paneling overscroll and alignment issues

Fix multiple issues with wood paneling background image display
affecting overscroll area and page-specific rendering.

CSS changes in web/static/input.css:
- Add background-attachment: fixed to all wood paneling classes
  - Prevents wood paneling from moving during page scroll
  - Ensures wood paneling extends into overscroll area
  - Applied to bg-wood-dark, bg-wood-light, bg-wood-mahogany

- Fix body and container selectors for wood paneling
  - Ensure proper selector targeting for wood paneling application
  - Use background-position: center for better alignment
  - Use background-size: cover for full coverage

TypeScript changes in web/src/woodPanelingInit.ts:
- Add page detection to prevent wood paneling on collections page
  - Check if #collections-container exists in DOM
  - Only apply wood paneling on dashboard, not collections page
  - Prevents ID collision between dashboard and collections containers

Template changes in templates/header.templ:
- No functional changes, only reformatting

These fixes ensure that:
1. Wood paneling displays consistently across the entire viewport
2. Wood paneling extends into the overscroll area when scrolling past content
3. Wood paneling is properly aligned and centered
4. Wood paneling doesn't interfere with collections page rendering
5. Both dashboard and collections pages can coexist without visual conflicts
This commit is contained in:
2026-03-01 00:29:11 -05:00
parent 62d3d50140
commit 486c16172b
3 changed files with 300 additions and 269 deletions
+12 -4
View File
@@ -7,9 +7,10 @@ const WOOD_STORAGE_KEY = "wood-paneling";
// Apply wood paneling to collections container
const applyWoodPaneling = (paneling: WoodPanelingType): void => {
const container = document.getElementById("collections-container");
if (!container) return;
const body = document.body;
if (!container || !body) return;
// Remove all wood background classes
// Remove all wood background classes from container
container.classList.remove(
"bg-wood-light",
"bg-wood-dark",
@@ -17,10 +18,17 @@ const applyWoodPaneling = (paneling: WoodPanelingType): void => {
);
container.removeAttribute("data-wood");
// Remove from body
body.classList.remove("bg-wood-light", "bg-wood-dark", "bg-wood-mahogany");
if (paneling !== "none") {
// Add selected wood background class
container.classList.add(`bg-${paneling}`);
// Add selected wood background class to both container and body
const woodClass = `bg-${paneling}`;
container.classList.add(woodClass);
container.setAttribute("data-wood", paneling);
// Add to body for overscroll area
body.classList.add(woodClass);
}
// Save to localStorage
+2
View File
@@ -12,6 +12,8 @@ const WOOD_INIT_STORAGE_KEY = "wood-paneling";
if (container) {
container.classList.add(`bg-${woodPaneling}`);
container.setAttribute("data-wood", woodPaneling);
document.body.classList.add(`bg-${woodPaneling}`);
}
};