twc-033 / A study by Syafril · not client work

Sanak: Sanak

A web menu book for a fictional Nusantara family restaurant: a sambal-orange cover, ten cream laminated pages in four chapters with coloured tabs on the top edge, about thirty dishes with codes, heat marks in words and a blank “Rp —” price column, a ribbon that marks one page, a link for every page and a print of the whole book. Open it in 3D and a page curls under your finger. No prices, no orders.

Actual desktop capture of the Sanak demonstration.

READ THE DESIGN

Why it is arranged this way.

The capture shows the implemented opening. Notes connect its composition to the working experience and its mobile behavior.

Actual website capture. Follow the numbered notes.
  1. 01

    A book, not a slideshow

    The closed sambal-orange cover with its contents beside it opens on laminated pages: two at a time from 1024px, one on a phone. Every page is in the HTML and has its own ?page= link; without JavaScript the book is a list.

  2. 02

    Chapters on the top edge

    Four laminated tabs stand on the top edge in the chapters’ colours; the open chapter is lifted and outlined (aria-current). A tab adds a step to the history, so Back returns to the chapter before.

  3. 03

    No price is invented

    Each dish has a code, a Rokkitt name, a dotted leader and “Rp —”, read aloud as “Price not filled in”. Heat is chillies with a word. The 3D curl, on request, bends the sheet over the real page underneath.

At a glance

Headline type
Rokkitt
Reading type
DM Sans
Try this interaction
Open the book, turn by tab or by hand, mark a page
Sambal-orange cover#dc6224
Kecap ink#1f1a17
Ribbon blue#24519a
Laminated page#fff8ec
Egg-yolk tab#f2c64b
Cream tab#ead8b6
A schematic of the implemented composition.

WHAT IS HERE / WHAT COMES NEXT

Know what you are choosing.

A menu read at the table, shared and printed.

Working in this demo

  • Cover, ten pages and back cover; spreads from 1024px, one page below; ?page= for every page
  • Turn by buttons, arrows while focused, chapter tabs, contents or a swipe; list view and print
  • Page curl after Open the book in 3D, with honest fallbacks for reduced motion, missing WebGL and a lost context
  • One ribbon kept locally; refused or damaged storage leaves no ribbon and says so

This tool includes a working workspace and its own component book. Its controls operate on local state.

Production integrations to discuss

  • A real restaurant’s dishes, prices, photographs, opening hours, ordering or delivery need a separately agreed implementation.

Exports are generated in your browser. No account, cloud storage or external service is connected.

A limit to plan around

Fictional design study. Sanak, its dishes and descriptions are illustrative; prices are left blank on purpose, nothing is ordered, and nothing is said about halal status, nutrition or availability. The 3D curl was checked in desktop and phone emulation (Chromium and WebKit), not on a real phone.

Delivery & customization

Page scope, brand assets, content, handover, hosting, costs and support are discussed in a consultation before work begins. The demo is a reference for that conversation.

Prepare a brief for this direction

The idea

The thick laminated menu book that lies on a family restaurant’s table, made readable on a screen. It keeps what makes it a book — a cover, chapters with tabs, a page number in the corner, a ribbon — and adds what paper cannot: an address for every page and a list view. The curl is the book’s own gesture, offered on request; the page underneath is always the real, readable page.

Visual language

A sambal-orange cover with a diagonal laminate gloss and a three-tier rantang mark, cream pages with rounded outer corners and a faint sheen, kecap-black ink, egg-yolk, blue and cream chapter tabs, a blue ribbon with a V-cut tail, dotted leaders to a blank price. Drawings are flat line art made for the study; there are no food photographs.

Typography

Rokkitt 700, a narrow geometric slab serif, sets the wordmark, chapter titles, dish names, codes, page numbers and the folio — the voice of a printed menu read across a table, narrow enough to keep a long dish name on one line. DM Sans carries descriptions, controls and notes. Zilla Slab 700 stays a recorded fallback that is not used.

Layout & composition

Two pages and a design book. The menu book shows the closed cover beside its contents, then two pages side by side from 1024px wide (a 1120px spread) and one page below that, under chapter tabs on the top edge; the book’s controls sit in the nameplate. Every page keeps one size, so a turn never moves the page around it. How to use is a column of numbered steps.

Motion & interaction

By default pages change at once, with no animation. After Open the book in 3D a page curls round a cylinder under the pointer or finger, with shade on the roll and a shadow beside it, and finishes or falls back within 0.45s; buttons, arrows and tabs play the same curl. Frames are drawn only while a sheet moves. With reduced motion 3D is not offered, and switching it on closes 3D.

Under the surface

A static bilingual Next.js demo. Every page is in the HTML; ?page= is read in the browser. The 3D curl is the installed Three.js, imported only on request: the sheet is a 64 × 48 grid bent on the CPU, its faces painted into canvas textures from the laid-out pages (word boxes, styles, borders, inline SVG), and the part still lying flat stays the DOM page, clipped at the fold. One ribbon is kept as { version: 1, ribbon } under collection-sanak-menu-v1, at most 256 bytes, validated with zod/mini.

Designed for everyone

Each page is an article with a heading; dishes are a list; the blank price is read as “Price not filled in”; heat has a word, never colour alone. Chapter tabs are a navigation with aria-current; the status line announces the pages and chapter; ←/→ work only while the book has focus. The canvas is hidden from assistive technology and holds no content of its own. List view shows every page for screen readers, find in page and zoom.

Inside the experience

  • A laminated book with chapter tabs
  • A link for every page (?page=)
  • One ribbon kept in this browser
  • Page curl in 3D, only on request
  • List view and a print of every page
  • Own component and state book
  • Local brand personalization

A good fit for

  • Family restaurants, home caterers and warung that already have a printed menu book and want one on the web that still feels held, shared page by page and printed again.

Across screens

Actual desktop capture of the Sanak demonstration.
Actual desktop capture of the Sanak demonstration.
Actual mobile capture of the Sanak demonstration.
Actual mobile capture of the Sanak demonstration.

A different perspective