Bridge to Basic JavaScript
The static baseline is capstone/reference, also present as versions/09. Copy the whole folder into the next course; do not change the HTML/CSS course’s original files. The JavaScript course enhances an already useful page rather than re-teaching markup and layout.
Stable document interface
- Main content id: main; sections: events, visit, interest.
- Event wrapper: .event-grid; cards: .event-card.
- garden-morning → data-category="outdoors".
- repair-cafe → data-category="learning".
- story-circle → data-category="creative".
- Form id: interest-form. Control ids: visitor-name, visitor-email, event-category, visitor-message. Email hint id: email-hint.
- Form method: get; action: practice-result.html; controls intentionally have no name attributes.
Useful enhancements to teach next
Filtering can show selected categories while leaving all content available without scripting. Saved-event choices can store event ids locally while explaining storage limits. A synthetic-only form interaction can intercept submission and report an honest practice result. Fetch examples can introduce local fixtures and the need for HTTP. None of these features alone creates a real booking service.
Preserve meaningful controls and stable labels, maintain focus and source order, and keep the static baseline usable when an enhancement fails. New scripts must not silently collect real details or reinterpret the practice button as a real registration. The JavaScript course owns its behavior, tests, and changes to this contract.