A static, data-driven site for the SKLAD creative space in Prague. Content (members, benefits, FAQ) is stored in JSON and rendered into HTML/CSS/JS at build time.
- Requirements: Node.js 18+ and Python 3 (for a quick local server).
- Install dependencies:
npm install(none beyond core Node, but keeps scripts available). - Build the site:
npm run build→ generatesindex.html,styles/main.css, and copies JS modules toscripts/.
- After building, start a static server from the repo root:
python3 -m http.server 4173and openhttp://localhost:4173. - Edit content in
src/data/(members.json,benefits.json,faq.json), layout insrc/templates/andsrc/partials/, scripts insrc/js/, styles insrc/styles/. Re-runnpm run buildto regenerate outputs.
src/templates/layout.html– page shell with placeholders.src/partials/– shared sections (hero, about, community, callout, footer, lightbox, scripts).src/data/– structured content driving members/benefits/FAQ.src/js/– modular ES modules per feature (nav, carousel, lightbox, autoplay, etc.);main.jsorchestrates.src/styles/– layered CSS (tokens, layout, components, sections, lightbox, responsive, utilities).scripts/build.js– composes HTML from data/partials, concatenates CSS layers, copies JS toscripts/.assets/– images and media referenced by the site.
- The site must be opened via HTTP (not
file://) because ES modules are loaded withtype="module". - Videos default to muted/autoplay on scroll via IntersectionObserver; lightbox reuses existing media sources and un-mutes in the dialog.