Linenwallpaper
repo: ~/Projects/linenwallpaper · 88 commits · 0 in last 24h, 0 in last 7d ·
Search the build
88 commits indexed
bf73c4e
2026-07-06
Square product-card images (aspect-ratio 1/1)
06536ba
2026-07-03
corner-nav: move login to its own hamburger in upper-left (panel slides from left)
7eb0e7f
2026-06-23
Update grid density slider to desktop-only (3-12 columns)
b222993
2026-06-22
auto-save: 2026-06-22T21:48:03 (1 files) — public/index.html
20149d6
2026-06-22
fix: improve sort dropdown positioning with overflow handling
2e98843
2026-06-22
fix: prevent sort dropdown cutoff on left edge
769b483
2026-06-22
feat: add pill-style sort control styling to match grid slider
9e649c5
2026-06-22
fix: improve grid density slider CSS to prevent overlap with sort controls
b4da2f9
2026-06-22
enhance: smart product name hiding on 6-column grids
2914d00
2026-06-22
upgrade: mobile-optimized grid density slider with touch buttons
b9d5fe0
2026-06-22
feat: add grid density slider (DW standard) — adjustable columns 2–6, persistent localStorage
1f0e5ee
2026-06-19
Mount new-arrivals promo strip (Tier B): require ../_shared/_universal-promo-banner before express.static — text-only rotating 'New · <product> →' banner from /api/products?sort=newest. Local only; deploy gated.
f7a60cb
2026-06-18
fix: safeImg allow same-origin /img/ proxy urls (vendor-neutral image proxy 2026-06-03) — product cards were falling back to hero-bg (images all wrong)
c5c2b32
2026-06-11
linenwallpaper: rails fire again — wire sliders + grid filter to aesthetic-OR-tags matcher (prod-safe try-require + inline fallback)
8fad5a5
2026-06-09
step2 vendor-leak fix: dual-key /sample resolver + handle_display hrefs
bf0eeda
2026-06-09
snapshot before step2 codemod
beae4ee
2026-06-03
Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle
1e9e65b
2026-06-03
a11y: add aria-label to contact/sample form inputs (zero visual; screen-reader association)
bae076f
2026-06-01
admin: add dw-theme-nav 20-theme navigator (upper-right, admin-only)
a2a5414
2026-06-01
fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch
e89c124
2026-06-01
dw-header: hide ANY pre-existing <header> (not just ns-header); title-case bare-slug names
55c35a8
2026-06-01
FIX: dw-header was injected inside a doc-comment (never ran); re-inject before the real </body>
89a8729
2026-06-01
hero: rotate curated room-setting pool (hero-pool.json), guard >=1400px, no swatch blur
decc743
2026-06-01
header name → domain name 'linenwallpaper' (remove odd brand name)
1c3f847
2026-06-01
hero: huge 2520px clean hero from dw_unified (graphic-designer vetted; no header/text/watermark)
59e3191
2026-06-01
hero/ideas: single big full-bleed hero (remove 2x2 four-square grid + hero-4grid.js/json + inert CSS), collapse Ideas to one rail
eea55af
2026-06-01
disable hero-4grid overlay so the unique high-res room/pattern hero shows full-bleed
6c5b25e
2026-06-01
fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch
c82faec
2026-06-01
homepage: collapse duplicated 'Ideas' rail-eyebrows into one section eyebrow
4aa7da0
2026-06-01
Unique hero image (backsync from prod, fleet hero dedup 2026-06-01)
170ef24
2026-06-01
Re-add Big Red embed (revert conflicted; re-injected)
3a95f83
2026-06-01
fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local pilot branch
832ff37
2026-06-01
hero: activate self-contained 2x2 hero-4grid (fleet sweep, local)
afad948
2026-06-01
Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)
b3f1755
2026-06-01
301 redirect legacy /(history|vocabulary|sourcing|care|trade|index).html -> clean URLs before express.static
a31c934
2026-06-01
/api/facets drill-down: count each dimension over the active filtered set (q/aesthetic/vendor) via shared filterProducts(); /api/products reuses helper
8c441a9
2026-06-01
noopener,noreferrer on sister-site window.open popup
63a4065
2026-05-30
fix: remove served .bak file, patch 404 guard regex, add *.bak-* to .gitignore
4bf5032
2026-05-29
feat(fleet): theme1/theme2 query-param-gated toggle on catalog page
5561263
2026-05-28
scrub vendor name leaks from products.json source (54 products: title/vendor/tags cleaned per sku-redact denylist)
6e64434
2026-05-26
frontend: cleanSku() strips vendor names from displayed sku (.ven/list/detail) + defer renderRailSections call (fix ReferenceError) — click-through verified
b01c3cb
2026-05-26
sku-redact: wire shared vendor-id display scrubber
a0b0344
2026-05-26
linenwallpaper: editorial rail/facet labels — linen-flavored display map (Linen Weaves, Modern Linen, Classic Linen, Natural Flax) over real aesthetic buckets; behavior unchanged
228f637
2026-05-26
linenwallpaper: commit config-rails fix — aspirational weave/fine/bouclé (0 hydrate) → real aesthetic buckets textured/contemporary/beige/traditional (4 rails fire)
48365f9
2026-05-26
homepage: add retrowalls-canonical rail-sections (id=rails + renderRailSections)
822b5f3
2026-05-25
remove p.vendor render from Ideas rail card — replace with Designer Wallcoverings (customer-facing redaction)
ded12ab
2026-05-25
add clean-URL routes for nav links — /history /vocabulary /sourcing /care /trade
e13d761
2026-05-25
add 404-guard for .bak/.pre-* files — defense-in-depth against accidental serve
bda38a4
2026-05-25
fix /api/facets total — reflect filtered (niche) list count, not raw PRODUCTS
5ac690b
2026-05-25
wire api-vendor-redact middleware FIRST in app.use chain — strips vendor field + vendors facet + ?vendor= from all /api/* responses
fb65b1e
2026-05-25
retag aesthetic from PG: 230 rows updated
11b7cad
2026-05-20
add: pre-stage Meta Pixel snippet (placeholder; flip via _dw-batch set-fb-pixel.sh)
7caf54e
2026-05-20
fix: /about → history.html alias (was 404)
ae2afdd
2026-05-19
make server.js self-contained — gate _shared/admin-catalog behind MICROSITE_ADMIN_ENABLED env flag (kamatera deploy unblock)
dd434eb
2026-05-19
wire state.sort into loadGridPage /api/products URL (fleet sort fanout)
782a1de
2026-05-19
Phase 2b: harden .card .pat against long-token title clipping (overflow-wrap)
c8fd59e
2026-05-19
Phase 2: mobile-ready + tap-to-reveal
ef56740
2026-05-19
stage2: wire microsite catalog + admin CRUD + grid/list view
6b04d01
2026-05-18
Untrack 19 stale backup files from git and broaden .gitignore to catch .bak.* and .pre-* (they were served publicly from public/)
290b077
2026-05-18
Remove dead pass-12 leftovers from server.js (unused PRODUCTS_ORIG, pointless global, stale comment)
5ac29df
2026-05-14
hero-4grid: relocate json from data/ to public/ for Express static
b27fd57
2026-05-14
4-grid hero: drop-in script + crop CSS + initial 4 newest products
1d0045a
2026-05-14
favicon: Mag-7-inspired SVG glyph
ae19bc2
2026-05-13
fix env wiring — add __dirname-anchored dotenv + dotenv dep so ADMIN_PASS / GEORGE_AUTH actually load
5393593
2026-05-13
corner-nav: title-case the brand name even when .ns-name source is lowercase
17ec367
2026-05-13
corner-nav: title-case brand display (e.g. corkwallcovering → Cork Wallcovering)
2b565d0
2026-05-13
corner-nav: fix injection — script tag was landing inside HTML comment, now anchored to real </body>
9a28840
2026-05-13
fix: contact modal CSS+HTML (was rendering inline as raw emoji/links)
1bac6c5
2026-05-13
embed Big Red customer chat (lower-left, retail mode, vendor-redacted)
4e217dc
2026-05-13
chip-click → product details modal; vendor redacted in card overlay
a1af580
2026-05-13
add universal corner-nav.js (UR 4-icon: bag/account/search/menu)
c47d641
2026-05-13
remove stray contact modal markup that was rendering inline on the page
1ccc818
2026-05-13
snapshot: 1 file(s) changed, +1 new
6bac45f
2026-05-11
fleet-grid refine: chip_uniform_aspect (linenwallpaper)
5d525ef
2026-05-11
snapshot before fleet-grid refine
a483e2a
2026-05-10
sort-skill UI: add Light→Dark / Dark→Light / Color Wheel options
f16a1d4
2026-05-10
sort-skill canonical: add light-dark/dark-light/wheel + helpers
b827970
2026-05-10
apply R1+R2+R4 hero standing rules — strip Loma Studio, lowercase serif wordmark below photo, add data-hero-mode huge default + four-square hydration
6b7d7bb
2026-05-07
graphic-loop pass 13: real footer brand + Facebook link + OG/Twitter meta tags
9a42e59
2026-05-07
graphic-loop pass 12: niche keyword filter (no off-niche products like 'solid' on patterned sites)
d4ec01a
2026-05-07
graphic-loop pass 11: add Ideas rails (New this week + Curated picks) above main grid
9ed2b53
2026-05-07
graphic-loop pass 10: center-mark to top + readable text-shadow + tighter letter-spacing (no mix-blend-mode)
c331bdd
2026-05-07
graphic-loop pass 9: real site name + 20-image hero rotation + 2400px hero res
6d596d2
2026-05-07
graphic-loop pass 8 fix: divergent template — swap heading font to Libre Baskerville
1ecfc66
2026-05-07
graphic-loop pass 8: theme-aware font Libre Baskerville (panel-approved comprehensive 16-bucket assignment)
93f743a
2026-05-06
graphic-loop pass 2: fix .corner-mark contrast + soften hero overlay (qwen3:14b consensus across fleet)
0e19d74
2026-05-06
Rebrand: LINEN WALLPAPER → Loma Studio (Loewe template)
e257a68
2026-05-06
initial scaffold (gitify-all 2026-05-06)
Skills used
/products 4 /vendor 3 /index 2 /sample 2 /tags 2 /body 2 /facets 2 /list 2 /handle 1 /text 1 /watermark 1 /ideas 1 /json 1 /pattern 1 /aesthetic 1 /theme2 1 /detail 1 /facet 1 /fine 1 /boucl 1 /contemporary 1 /beige 1 /traditional 1 /sliders 1 /div 1 /history 1 /vocabulary 1 /sourcing 1 /care 1 /trade 1
Creative ideas + design notes
Commits with substantial prose (≥120 chars) — the rationale behind each move.
7eb0e7f · 2026-06-23 · Update grid density slider to desktop-only (3-12 columns)
- Hidden entirely on mobile (< 769px)
- Desktop only: full 3-12 column slider
- Smart name hiding: product titles hide at 6+ columns
- localStorage persistence of user preference
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2e98843 · 2026-06-22 · fix: prevent sort dropdown cutoff on left edge
- Add position: relative and z-index: 100
- Add min-width: 120px for adequate button sizing
- Add overflow: visible to prevent parent clipping
- Fixes dropdown menu visibility when sort control is near left side of page
63a4065 · 2026-05-30 · fix: remove served .bak file, patch 404 guard regex, add *.bak-* to .gitignore
public/index.html.bak-20260526152130 was being served by express.static (HTTP 200)
because the 404-guard regex only blocked .bak followed by . or EOL, not .bak-TIMESTAMP
suffixes. Removed the file, fixed the guard to match .bak- patterns, and added
*.bak-* to .gitignore so timestamped backups can never slip in again.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4bf5032 · 2026-05-29 · feat(fleet): theme1/theme2 query-param-gated toggle on catalog page
Default: theme1, toggle hidden. Opt-in via ?theme=2 or localStorage
('wallco-page-theme' key shared across the fleet). Same gate pattern
as dw-domain-fleet productPage.
48365f9 · 2026-05-26 · homepage: add retrowalls-canonical rail-sections (id=rails + renderRailSections)
Fleet rails sweep A3 — adds the canonical DW rail-sections pattern from
retrowalls (per LEDGER 2026-05-26 correction note). Renders rails from
/api/sliders ABOVE the flat grid on the unfiltered '/' home view; hides
itself when state.q or state.facet !== 'all'. Clicking 'View all -> on a
rail title calls state.facet=aes + resetGrid + scrollIntoView('#shop')
which is the canonical jumpToFacet behavior. Patch is 3 pieces:
(1) <div id='rails' style='display:none'></div> before <div id='grid'>
(2) .rail-section/.rail-head/.rail-all/.grid.rail-grid CSS
(3) async renderRailSections() fn + startup call right after loadGridPage().
Coexists cleanly with the existing 2-rail Ideas block above (which renders
'New this week' + 'Curated picks' from /api/products and survives in any
filter state).
fb65b1e · 2026-05-25 · retag aesthetic from PG: 230 rows updated
before: all=236
after: all=6, beige=13, contemporary=9, textured=198, traditional=10
Backfills correct multi-bucket aesthetic tagging from dw_unified.microsite_products
(DTD verdict B, 2026-05-25 fleet retag run).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0e19d74 · 2026-05-06 · Rebrand: LINEN WALLPAPER → Loma Studio (Loewe template)
First proof-of-concept of the per-site brand-identity rollout from the
dw-fashion-templates skill. Linen had 94% product overlap with cork — worst
duplicate-content offender. New brand identity makes it visually + textually
distinct from any sister site.
Changes:
- Title/meta/JSON-LD: 'LINEN WALLPAPER' → 'Loma Studio'
- Tagline: 'Quiet texture' → 'Soft as linen. Made slowly.'
- Palette: dark gold theme → soft cream/sienna (Loewe tokens)
- Headline font: Playfair Display → Cormorant Garamond
- Removed: cross-network 'DW Universe' link, mini-constellation viewer,
'designer wallcoverings family vertical' footer text, parentOrganization
schema. Steve's directive: no DW visible except About Us.
- Footer text rewritten as standalone Loma Studio voice
- Verified live: 7 'Loma Studio' mentions, 0 legacy DW touchpoints
File tree
22 files tracked. Click any to browse the source at HEAD.
rendered in 1ms