Skip to content

About

Responsive, mobile-first website exploring Mexican gastronomy through recipes, regional cuisine and dedicated pages on tacos and nachos. Built with HTML, Sass and JavaScript using ITCSS, BEM and OOCSS, with a strong focus on accessibility, responsive images and web performance optimization.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

135 Commits

Folders and files

Repository files navigation

Saborea Mexico β€” Website exploring Mexican gastronomy

HTML5 Sass JavaScript Node.js npm Parcel Stylelint Netlify

πŸ—“οΈ Developed in April 2026

Saborea MΓ©xico is a responsive, multi-page website dedicated to Mexican gastronomy. It invites visitors to discover the country's culinary traditions through featured recipes, an overview of several Mexican regions, and in-depth pages on two iconic dishes: tacos and nachos, covering their history, ingredients, and preparation.

Beyond the content, the project is a hands-on exercise in modern front-end development: a mobile-first, accessible (W3C/WCAG) site built with Sass, PostHTML and Parcel, structured with ITCSS + BEM + OOCSS, and tuned for performance through image optimization, responsive images, lazy loading and PageSpeed Insights improvements.


βœ… Pages

  • Home Page: landing page presenting featured recipes and information about several regions of Mexico.
  • Recipes Page: a collection of 4 typical Mexican recipes.
  • Tacos Page: a dedicated page covering the history of tacos, their ingredients, and how to prepare them.
  • Nachos Page: a dedicated page covering the history of nachos, their ingredients, and how to prepare them.
  • Sources Page: documentation and links to the sources consulted throughout the project's development.

⚑ Features

Phase 1️⃣

  • Initial configurations.
  • Pages' structure and content.
  • Use of preprocessors and postprocessors.
  • Semantics and accessibility following W3C guidelines.

Phase 2️⃣

  • Appropiate image format selection.
  • Three phase (+ baseline) image optimization:
    • (0) Original images.
    • (1) Resizing.
    • (2) Sharp configuration.
    • (3) Format conversion.

    The tests were done with the Network DevTools with Slow 4G, Hard Reload and studying the transferred resource size and loading time.

(0) Original images:

ImagesDataOriginal

(1) Resized images:

ImagesDataWithResizing

(2) Images with sharp:

ImagesDataWithSharp

(3) Images with format conversion:

ImagesDataWithFormatConversion

(0 vs 1+2+3) Table with all optimizations:

TableWithOptimizations

  • Responsive image techniques:
    • Resolution switching (size) for images in /, /categoria, /det1 and /det2.
    • Resolution switching (dpi) for the header and footer icon.
    • Art direction for images in /, /det1 and /det2.

Images created for art direction:

ArtDirectionDesigns

Data from images with art direction applied:

ImagesDataWithArtDirection

Table with all optimizations + responsive image techniques:

TableWithOptimizationAndResponsiveImages

  • CSS element animations, clip-path usage and SVG addition.

Phase 3️⃣

  • Two phase (+ baseline) page load performance analysis:
    • (1) Original page (With Phase 2️⃣ optimizations).
    • (2) Lazy loading and asynchronous script loading.
    • (3) Google PageSpeed Insights test optimizations.

    The tests were done with the Network DevTools with Regular 3G, Disable cachΓ© and studying the full-page load time, total page size, transferred size transferred over the network, and number of resources loaded.

(1) Original Firefox Developer Tools:

FirefoxDeveloperToolsOriginal

(2) Firefox Developer Tools with lazy loading and async script loading:

FirefoxDeveloperToolsWithLazyLoadingAndAsyncScriptLoading

(2) Before applying Google PageSpeed Insights recommendations:

BefroeApplyingGooglePageSpeedInsightsRecommendations

(3) After applying Google PageSpeed Insights recommendations:

AfterApplyingGooglePageSpeedInsightsRecommendations

(1 vs 2 vs 3) Table with all optimizations:

TableWithOptimizationsResponsiveImagesLazyLoadingAsyncPageSpeed

More data, information and explanations available at https://github.com/marcturu/saboreamexico/tree/main/docs.


πŸ›  Installation & Setup

a0. Prerequisites

Make sure you have installed:

Check the version:

node -v

a1. Clone the repository

git clone https://github.com/marcturu/saboreamexico.git
cd saboreamexico

a2. Install dependencies

npm install

a3. Run locally

npm run start

The app will be available at http://localhost:1234, with live reload enabled.

b1. Try the website

You can try the deployed version directly in the browser:

ℹ️ Deployment details: The project is deployed on Netlify from the main branch.

  • Build command: npm run build
  • Publish directory: dist

🧩 Methodology

  • ITCSS β€” style architecture (settings, tools, generic, elements, objects, components, utilities)
  • BEM β€” CSS class naming convention
  • OOCSS β€” reusable object classes (o-container, o-section)
  • Responsive, mobile-first design

🧰 Built With

Core

Technology Purpose
Parcel v2 Bundler β€” development server, production build, asset pipeline
Sass/SCSS CSS preprocessor β€” variables, nesting, functions, mixins, partials (@parcel/transformer-sass)
PostHTML HTML partials via posthtml-include
Stylelint SCSS linting with custom BEM and SCSS rules (stylelint-config-prettier-scss, stylelint-config-recommended-scss, stylelint-scss), configured in .stylelintrc

Optimization (production build)

Technology Purpose
lightningcss CSS minification and optimization (@parcel/optimizer-css)
htmlnano HTML minification (@parcel/optimizer-htmlnano)
SWC JavaScript minification (@parcel/optimizer-swc)
sharp Image transformation and WebP conversion (@parcel/transformer-image)

Dependencies

Dependency Purpose
AOS Scroll animations "aos": "^2.3.4"
Font Awesome Icons "@fortawesome/fontawesome-free": "^7.2.0"

πŸ“œ Commands

Command Description
npm run start Starts the development server at http://localhost:1234 with live reload
npm run build Compiles and optimizes the files for production into dist/
npm run clean Removes the dist/ folder and caches
npm run stylelint Validates the SCSS files against the configured rules

πŸ“‚ Project Structure

docs/
screenshots/
src/
β”œβ”€β”€ index.html
β”œβ”€β”€ categoria.html
β”œβ”€β”€ det1.html
β”œβ”€β”€ det2.html
β”œβ”€β”€ links.html
β”œβ”€β”€ views/                  # PostHTML partials
β”‚   β”œβ”€β”€ partials/
β”‚   β”œβ”€β”€ home/
β”‚   β”œβ”€β”€ categoria/
β”‚   β”œβ”€β”€ det1/
β”‚   β”œβ”€β”€ det2/
β”‚   └── links/
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ fonts/              # Self-hosted fonts (Unbounded, DM Sans)
β”‚   β”œβ”€β”€ images/
β”‚   β”œβ”€β”€ scripts/
β”‚   β”‚   β”œβ”€β”€ app.js
β”‚   β”‚   └── modules/        # JS modules (aos and header)
β”‚   └── styles/
β”‚       β”œβ”€β”€ main.scss
β”‚       β”œβ”€β”€ _dependencies.scss
β”‚       β”œβ”€β”€ settings/       # Variables, fonts
β”‚       β”œβ”€β”€ tools/          # Functions, mixins
β”‚       β”œβ”€β”€ generic/        # Reset
β”‚       β”œβ”€β”€ elements/       # Base styles
β”‚       β”œβ”€β”€ objects/        # OOCSS objects
β”‚       β”œβ”€β”€ components/     # BEM components
β”‚       └── utilities/      # Utility classes

πŸ“· Screenshots

Home Page (Desktop):

DesktopHome

Recipes Page (Desktop):

DesktopRecipes

Tacos Page (Desktop):

DesktopTacos

Nachos Page (Desktop):

DesktopNachos

Links Page (Desktop):

DesktopLinks

Home Page (Mobile):

MobileHome

Recipes Page (Mobile):

MobileRecipes

Tacos Page (Mobile):

MobileTacos

Nachos Page (Mobile):

MobileNachos

Links Page (Mobile):

MobileLinks

About

Responsive, mobile-first website exploring Mexican gastronomy through recipes, regional cuisine and dedicated pages on tacos and nachos. Built with HTML, Sass and JavaScript using ITCSS, BEM and OOCSS, with a strong focus on accessibility, responsive images and web performance optimization.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages