1. Context
• Company: Booki, a platform to search accommodations and activities by city.
• Team: Artdantech, Sarah (CTO), Loïc (UI designer).
• Deliverables: a responsive index.html page matching the mockup, completed CSS in css/style.css, correctly integrated images, compliance with the requirements summary, final delivery using the provided folder structure.
• Starting point: Figma mockup, starter code (index.html + css/style.css + images/), requirements summary. Do not copy Figma snippets blindly—build a clean, understandable integration.
2. Need
• Integrate the Booki UI (HTML + CSS only) from the provided mockup, desktop-first then responsive (tablet, mobile).
• Build the header, search form, filters, the “Accommodations in Marseille”, “Most popular”, “Activities in Marseille” sections, and the footer while respecting the grid, spacing, and styles defined.
• Ensure baseline accessibility (semantic structure, alt text, keyboard navigation) and W3C validity (HTML/CSS).
3. Client / Stakeholders
• End users searching accommodations/activities on desktop or mobile.
• Product/tech (Sarah) for technical compliance and file structure consistency.
• Design (Loïc) for visual fidelity and alignment with the mockup.
4. Goals
4.1 Functional
• Display the full homepage with all blocks: header, search, filters, accommodations, popular, activities, footer.
• Allow search input (static UI), display filters and their visual states (default/hover).
• Present accommodation and activity cards with the expected content (image, title, text, rating/icons if required).
4.2 Technical
• 100% HTML/CSS integration: no JS required; keep the provided folder structure (index.html, css/, images/).
• Layout using Flexbox (and Grid if needed), appropriate units (px for margins/paddings per spec), responsive with media queries (<=1024px, <768px).
• Raleway typography (Google Fonts), Font Awesome icons already imported; viewport meta and layout constraints (max width 1440px, min 320px).
5. Constraints / Challenges
• Avoid copying Figma code “as-is”: it can lead to incorrect measures/positioning. Start from the provided HTML/CSS and implement cleanly.
• Strict mockup compliance: alignment, spacing, hover borders, breakpoint-based background color changes.
• Accessibility: alt attributes, heading hierarchy, visible focus, sufficient contrast.
• Pass W3C validation; implement responsive in the intended order (desktop → tablet → mobile) without breaking structure.
6. Process / Methodology
6.1 Analysis
• Break down the mockup into areas: header (logo + nav), search bar (location icon, input, button), filters (icons + labels), “Accommodations” (6-card grid), “Most popular” (horizontal cards), “Activities” (4 columns), footer (3 columns).
• Define semantic HTML: header/nav, main/section/article, h1/h2, ul/li for card lists, figure/figcaption for images, footer.
• Identify reusable components (cards, filter tags, buttons) and their desktop/mobile variants.
6.2 Breakdown into GitHub issues
• Environment setup (VS Code, Live Server), check Google Fonts/Font Awesome imports + viewport meta.
• Desktop header (logo + nav + top hover border).
• Desktop search form (location icon, input, “Search” button).
• Filters (structure + styling + hover).
• First accommodation card (vertical), duplicate x6 + container layout.
• “Most popular” section (horizontal cards) + “Show more” link.
• “Activities” section (4 columns, fixed image heights, object-fit).
• Footer (3 columns).
• Responsive: tablet (<=1024px), mobile (<768px) with reordering/color changes/button text → magnifier icon.
• W3C validation + a11y + final polish (spacing, hover, focus).
6.3 Architecture & logic
• Structure: /index.html, /css/style.css, /images/* (unchanged).
• HTML layout: body > header + main (sections) + footer; single h1, h2 per section, lists for groups of cards.
• Cards: link wrapper > image (width:% + height:px + object-fit:cover) + content (title, text, icons). Border radius + shadow as per style.
• Search bar: 3 parts (location icon, input, CTA). On mobile, hide “Search” text and show the magnifier via CSS.
• Filters: horizontal group on desktop, stacked on mobile; each filter = icon + label with hover/active styles.
6.4 Technical choices (rationale)
• Flexbox for most layouts (alignment/spacing) to avoid fragile absolute positioning from Figma snippets.
• Units: px for margins/paddings (per spec) and %/fr/rem for widths/typography when appropriate; centered container with max-width: 1440px.
• HTML images + object-fit: cover to prevent distortion and keep consistent thumbnails.
• Ordered media queries: base (desktop) → tablet (<=1024px) → mobile (<768px) to keep CSS readable and prevent collisions.
6.5 Main flows
• Desktop header: logo + nav with blue top border on hover (bottom border on mobile).
• Desktop search: location icon + input + “Search” button. Mobile: replace text with magnifier icon via CSS.
• Filters: horizontal on desktop with hover background change, then responsive adaptation.
• Accommodations: build one reusable card, duplicate x6, apply responsive grid; add title/icon and “Show more”.
• Activities: 4 columns with consistent heights; create one card pattern and replicate for the other three.
• Footer: 3 equal columns (link lists), remove default ul padding if used.
6.6 Tests & quality
• Validate HTML/CSS with W3C validators; fix any errors.
• A11y: alt attributes, heading order, keyboard navigation, visible focus; quick audit (Lighthouse/aXe).
• Responsive: verify key widths (320, 360, 768, 1024, 1280, 1440 px); confirm background color inversions.
• UI checks: header hover borders, filter hover states, image integrity (object-fit), spacing consistency.
7. Analysis
• Using Flexbox, clean semantics, and progressive media queries delivers a faithful, robust responsive integration. Avoiding uncontrolled Figma snippets prevents absolute-positioning traps and rigid sizing issues, while complying with the requirement to use px for margins/paddings.
8. Technical decisions
• Semantic HTML5 and structured CSS3 (sections, components, lightweight utilities if needed).
• Raleway (Google Fonts) and Font Awesome already imported; strict preservation of link tags and viewport meta.
• Desktop-first approach with tablet and mobile media queries, max width 1440px and min width 320px.
9. Resolution logic
• Build the desktop version first (structure + base styles), factor a reusable card component, implement each section, then handle responsive behavior with the two breakpoints. Finish with W3C validation, accessibility checks, and a pixel-perfect pass against the mockup.
10. Stack used
• HTML5, CSS3 (Flexbox, object-fit, media queries).
• Tools: VS Code, Live Server, DevTools (layout/responsive), W3C Validators, Lighthouse/aXe (quick checks).
• Assets: provided images folder; fonts/icons via existing links; no JS dependencies required.
11. Final result
• Booki page matching the mockup: header, search, filters, “Accommodations in Marseille”, “Most popular”, “Activities in Marseille”, footer.
• Full responsiveness (desktop → tablet → mobile), including background color inversions and button text/icon variations.
• Quality: valid HTML/CSS, baseline accessibility met, file structure preserved, ready for delivery to Sarah (complete folder).

