svg
Chambal — A Modern Restaurant Experience, Built for Speed
Jan 2026 · frontend · ui-ux · performance

Chambal — A Modern Restaurant Experience, Built for Speed

Ashitha G Kanchan
Ashitha G Kanchan

The Brief

Chambal is a restaurant that blends traditional Indian flavors with a contemporary dining experience. They needed a website that matched their energy — warm, inviting, and effortlessly smooth. The goal was clear: a digital presence that makes you hungry before you even walk through the door.

Live: chambal.ashispace.in


My Role

End-to-end: UI/UX design in Figma, frontend development, performance optimization, and deployment.


Design Decisions

Color & Typography

I built the palette around warm earth tones — deep terracotta (#C45B28), rich cream (#FFF8F0), and charcoal (#2D2D2D) — to evoke the warmth of a kitchen without feeling heavy. For typography, I paired a modern serif (Playfair Display) for headings with a clean sans-serif (Inter) for body text. The contrast between the two creates visual hierarchy that guides the eye naturally from dish names to descriptions.

Layout Philosophy

The menu section uses CSS Grid with auto-fit and minmax() to create a naturally responsive layout. Instead of fixed breakpoints, the grid reflows based on available space — meaning it looks perfect on a 320px phone, a 768px tablet held at the counter, or a 1440px desktop. No media queries needed for the menu grid itself.

Visual Storytelling

Every section transitions with purpose. The hero features a full-bleed food photograph with a subtle CSS backdrop-filter: blur() overlay on the text region, ensuring readability without sacrificing the visual impact of the imagery.


Frontend Choices & Performance Impact

1. Intersection Observer for Lazy Loading

The food gallery contains 20+ high-resolution images. Loading them all on page load would be brutal on mobile connections. I implemented native lazy loading with loading="lazy" on every image below the fold, combined with a custom Intersection Observer that triggers a subtle fade-in animation only when images enter the viewport.

Impact: Initial page weight dropped from ~4.2MB to ~800KB. First Contentful Paint improved by 62%.

2. CSS Grid Over JavaScript Masonry

The menu layout could have used a JavaScript masonry library like Masonry.js (~25KB gzipped). Instead, I used CSS Grid with grid-template-rows: masonry (with a flexbox fallback for browsers that don’t support it yet). This eliminated a JavaScript dependency entirely.

Impact: Zero layout shift from JS-calculated positions. The menu renders in a single paint cycle.

3. Semantic HTML for SEO

Every dish is wrapped in an <article> element. The menu categories use <section> with proper <h2> headings. The navigation is a <nav> with an aria-label="Main navigation". The reservation form uses <fieldset> and <legend> for screen reader context.

Impact: The site scores 100 on Lighthouse Accessibility. Search engines can parse the menu structure as structured content, improving local SEO for “restaurant near me” queries.

4. Preloaded Critical Fonts

Both Playfair Display and Inter are loaded with <link rel="preload" as="font" crossorigin> in the document head, with font-display: swap to prevent Flash of Invisible Text (FOIT).

Impact: Text is visible within 100ms of page load, even on slow 3G connections. No layout shift from font swapping.

5. Responsive Images with srcset

Every food photograph uses the <img srcset> attribute with three resolution variants (400w, 800w, 1200w) and a sizes attribute that matches the CSS layout. The browser picks the smallest sufficient image for the user’s device.

Impact: Mobile users download images that are ~40% smaller than desktop variants, saving bandwidth and improving load times on cellular connections.

6. CSS Custom Properties for Theming

The entire color system runs through CSS custom properties (--primary, --surface, --text). This made it trivial to implement a warmer evening-mode color scheme triggered by a simple class toggle on <html>.

Impact: Theme switching happens in a single repaint — no JavaScript recalculation of styles, no FOUC.


The Stack

  • Design: Figma (wireframes, high-fidelity mockups, component library)
  • Frontend: HTML5, CSS3 (Grid, Custom Properties, Flexbox), Vanilla JavaScript
  • Fonts: Playfair Display + Inter (Google Fonts, preloaded)
  • Deployment: Netlify with automatic HTTPS and edge caching
  • Performance: Lighthouse 95+ across all metrics

What I Learned

Building Chambal taught me that restaurant websites are secretly performance-critical applications. People browse menus on their phones at the restaurant, often on spotty WiFi. Every kilobyte matters. Every millisecond of layout shift is a potential bounce.

The biggest lesson: the best frontend decision is often the one where you don’t add a library. CSS Grid replaced Masonry.js. Native lazy loading replaced lazysizes.js. The result was a faster, lighter, more maintainable codebase.

Have a project in mind? Let's talk.

I'm open to freelance projects, internships, and collaborations. Reach out through any of the links below.

svg