SB Sommar – Project Documentation

SB Sommar – Requirements: Pages and Navigation

Site structure: page inventory, the homepage pre-camp section, navigation, footer, hero CTAs, accordions, anchor IDs.

Part of the requirements index. Section IDs (02-§N.M) are stable and cited from code; they do not encode the file path.


2. Site Pages

The following pages must exist:

ID Page URL Audience
02-§2.1 Homepage / Prospective families, participants
02-§2.2 Weekly schedule /schema.html Participants
02-§2.4 Today view /idag.html Participants
02-§2.4a Display view /live.html Shared screens
02-§2.5 Add activity /lagg-till.html Participants
02-§2.6 Archive /arkiv.html Prospective families, returning participants
02-§2.7 RSS feed /schema.rss Anyone subscribing to the schedule
02-§2.11 Edit activity /redigera.html Participants who submitted the event
02-§2.12 iCal feed /schema.ics Anyone subscribing to the schedule
02-§2.13 Calendar tips /kalender.html Participants wanting to sync the schedule
02-§2.14 Admin activation /admin.html Administrators

The homepage, schedule pages, add-activity form, and archive share the same header and navigation. None require login.

The Today view (/idag.html) uses the standard site layout with header and navigation. The Display view (/live.html) has no header or navigation — it is a minimal, full-screen display intended for shared screens around the camp. Both show today’s activities; they differ only in presentation context.



3. Homepage — Pre-Camp Requirements

The homepage is for families who know nothing about the camp.

It must answer, in order:

It must also include a frequently asked questions section.

The homepage must feel complete and trustworthy even when no camp is currently active. When a camp is active or upcoming, the schedule and add-activity links are prominent. The upcoming-camps list renders each camp as a compact one-liner (icon, name, location, and dates on a single line) with no visual separators between items.

The registration section must link to the external booking site, where families complete the full sign-up form. The specific URL lives in the build code, not in this requirement.

The pricing and rules sections must document the cancellation refund tiers and the organiser’s right to refuse participation, matching the terms that bind participants at the point of registration.

Tone: Warm, calm, and clear. Written in Swedish. Not corporate. Not promotional. The goal is that a parent visiting for the first time leaves thinking: “I understand what this is. I know how it works. I feel comfortable taking the next step.”



11. Activity Order and Overlaps



17. Simplicity

The site must:

The purpose of the schedule is coordination, not administration.



A shared footer must appear at the bottom of every page. Its content is maintained in a single Markdown file so non-technical contributors can update it without touching any template or layout code.



24. Unified Navigation

The site must have exactly one navigation component, appearing at the top of every page. There must be no secondary or duplicate navigation menus elsewhere on any page.

24.1 Structure

The navigation must contain links to all main pages:

The link for the current page must be visually marked as active.

On desktop, the page links use the short labels listed above and are displayed in uppercase via CSS (text-transform: uppercase).

On mobile, the hamburger menu uses longer, more descriptive labels:

The navigation must also include anchor links to the main sections of the index page.

24.4 Mobile behaviour

24.5 Desktop behaviour



35. Location Accordions on Index Page

The Lokaler section on the index page must display each location from local.yaml as an individual accordion item. The section heading and introductory text remain visible; only the individual locations are collapsible.

35.1 Section heading

35.2 Location accordions

35.3 Build integration



61. Mobile Navigation Improvements

Motivation

The mobile hamburger menu has usability problems on long pages: it scrolls out of view so users cannot access navigation without scrolling back to the top, and its visual design (same cream background as the page) makes it hard to distinguish from surrounding content. These issues were identified through manual testing on mobile devices.

61.1 Sticky navigation requirements

61.2 Hamburger button design requirements

61.3 Mobile menu panel design requirements

61.4 Menu transition requirements

61.5 Accessibility requirements



70. Main Landmark Element

Every HTML page must contain a <main> landmark element so that screen readers can let users skip past navigation directly to the page content. This addresses the PageSpeed Accessibility audit flag for missing <main> landmark.

70.1 Structural rules

70.2 Constraints



71. Hero Action Buttons

When a camp is active and within its editing period, three quick-access action buttons must appear directly below the hero image on the index page. The buttons provide fast navigation to the most-used pages during an active camp.

71.1 User requirements

71.2 Visibility rules

71.3 Styling

71.4 Constraints



72. Close Past-Day Accordions on Schedule Page

On the schedule page (schema.html), day accordions for dates that have already passed should be collapsed by default, so that the visitor sees current and future days open and past days closed.

72.1 User requirements

72.2 Implementation rules

72.3 Constraints



74. Sticky Navigation Positioning

74.1 Site requirements



75. Consistent Navigation and Page Title Labels

Navigation labels follow the principle: short where space is limited, descriptive where there is room.

75.1 User requirements

75.2 Site requirements



79. Section Anchor ID Consistency

Section anchor IDs on the index page must match their navigation labels. The id field in sections.yaml is the single source of truth for both the <section id="…"> attribute and the href="#…" in navigation links.

79.1 Anchor IDs