This project is a landing page for a coffee shop, designed with a mobile-first approach and strict adherence to responsiveness and semantic standards.
- Responsive Design:
- Strategy: Mobile First (using
min-width). - Breakpoints:
- Mobile: Fluid from
320px, adaptive from375px. - Tablet:
768px. - Desktop:
1440px.
- Mobile: Fluid from
- Strategy: Mobile First (using
- Validation:
- HTML must pass W3C Validator.
- CSS must pass W3C CSS Validator.
- Semantics: Strict HTML5 semantic structure.
- Code Style: Formatted with Prettier.
- Normalization:
modern-normalizemust be included.
- Images:
- Optimization required for both vector and raster graphics.
- Retina support (x1, x2) for all background and content images.
- Optimized loading (lazy loading where appropriate).
- Icons:
- SVG format required for logos and icons.
- SVG icons implemented via sprites.
- Favicon: Must be included.
The single-page application consists of the following sections:
- Content: Logo (SVG) and Site Navigation.
- Behavior: Navigation links are anchors jumping to respective sections.
- Headings: Main title (H1) “Savor the Essence of Specialty Coffee”.
- Content: Descriptive text.
- Background: Responsive background image.
- Actions: “Learn More” button linking to the Quality section.
- Headings: Section title “Our Journey: Passion for Quality Coffee”.
- Content: Description text (positioned to the right of the title).
- Actions: “Find location” link (with SVG icon) pointing to the Location section.
- Images: Content image displayed below the “Find location” link.
- Headings: Section title “Why CoffeeJoy Stands Out from the Rest”.
- Content:
- Description text below the title.
- List (
<ul>) of 3 advantages (Articles). - Each article includes: Content Image, Title, Description.
- Headings: Section title “Coffee Moments”.
- Content: Short description.
- Gallery: Photo list (
<ul>) implemented with Flexbox. - Images: Content images.
- Headings: Section title “Join Our Coffee Community”.
- Content: Short description and a content image.
- Form:
- Email input field with a label.
- HTML5 validation (required attribute).
- “Subscribe” button (
type="submit").
- Headings: Section title “What our visitors say”.
- Content: List (
<ul>) of reviews. - Card Structure:
- Rating stars (SVG icons).
- Review text.
- Author name.
- Headings: Section title “Location”.
- Content: Description text.
- Contacts: List (
<ul>) containing:- Email (clickable
mailto:). - Phone (clickable
tel:). - Address.
- All with SVG icons.
- Email (clickable
- Map:
- Embedded Google Map iframe (Address: 263 Newbury St, Boston, MA 02116, USA).
- "Get Directions" link pointing to Google Maps.
- Content:
- Icons: SVG format for social networks.
- Layout: Width matches layout, Height occupies full viewport (
100vh). - State: Hidden by default. Visible when
is-openclass is added.