The system
Every part, with the fixture still in it
21 sections and 11 primitives on 85 tokens, in both modes.
Three things are configurable in src/site.ts and both states of each are below: the room figure (plan or photographs), the menu index (services or courses), and booking (request or provider handoff).
tokens
src/theme.css
Surfaces and ink
- --background
- --card
- --surface-sunken
- --surface-raised
- --field
- --muted
- --secondary
- --primary
- --accent
- --selection
- --positive
- --warning
- --critical
- --info
The drawing’s own tokens
- --plan-ink
- --plan-field
- --plan-mark
- --plan-route
- --plan-label
Type ladder · 1.414
- --text-caption46 covers · 4 sections · books to 8
- --text-caption + --tracking-labelSunday table
- --text-smallTwo courses off the card, or the set lunch.
- --text-bodySorrel comes in Thursday. It goes on until it doesn’t.
- --text-leadThe card changes weekly. The room does not.
- --text-d1 · 1.500remLarge plates
- --text-d2 · 2.121remSunday Table
- --text-d3 · 3.000remThe room
- --text-d4 · 4.243rem46 covers
Radius and hairline
- --radius 0.125rem
- --radius-inner 0.0625rem
- --border-strong
ui
src/components/ui/*
button · variants
button · pressed and pending
button · disabled
badge · eyebrow and tag
Kelham Island
badge · diet and item marks
badge · status marks
field · rest and valid
Goes in the book as written.
field · invalid, read-only, disabled
Enter an email address we can reply to.
field · group, checkbox, textarea
field · read-only values and headings
Section heading
Eyebrow, heading and lede as one stack
One sentence, and it never gets split from the heading by a wrapping action.
item · the two-line unit, with every state
Grilled Whitby cod, brown butter and sea beets
Day-boat cod, brown butter, sea beets, capers£26No gluten
Sorrel and new potatonew this week
Jersey Royals, sorrel, cream£9.80VegetarianNo gluten
Monkfish on the boneoff tonight
Mussels, cider, sea aster£28.50No gluten
Whole turbot for the table
Priced on the day, to share between twoMarketNo gluten
Salted almonds
Marcona almonds, rosemary£5.20VeganNo glutenContains nuts
The first name is 46 characters, which is what the 46ch measure is set against.
logo · the brand mark at three sizes
The plan’s own shell, reduced. The only bespoke vector in the theme besides the drawing.
plate · the titled card, in the sheet's grammar
The thick–thin head rule and the mono title row are the plan sheet's own conventions, promoted to a card.
Body rows divide with hairlines, never boxes.
plan · the signature, in every state it ships in
markAll · every section
The dining room seats 46 covers across 4 sections: Counter 8, Window 12, Room 18, Snug 8. The floor measures 32 by 20 metres, 574 square metres.
service · dinner only
The dining room seats 46 covers across 4 sections: Counter 8, Window 12, Room 18, Snug 8. The floor measures 32 by 20 metres, 574 square metres. Dinner uses Window, Room, Snug; the rest of the room is closed.
party · 9, over the cap
The dining room seats 46 covers across 4 sections: Counter 8, Window 12, Room 18, Snug 8. The floor measures 32 by 20 metres, 574 square metres. No single table seats 9. Parties over 8 go in the snug, by enquiry.
access · step-free route and the step
The dining room seats 46 covers across 4 sections: Counter 8, Window 12, Room 18, Snug 8. The floor measures 32 by 20 metres, 574 square metres. Level entrance, Ball Street. Step up to the window platform, a rise of 120 millimetres. Accessible WC, level. Level from the door to the accessible WC. Ramp on request; ask when you book.
highlight · the snug
The dining room seats 46 covers across 4 sections: Counter 8, Window 12, Room 18, Snug 8. The floor measures 32 by 20 metres, 574 square metres. The snug takes 16 seated or 26 standing for private hire, on a £900 minimum spend.
labels · none
The dining room seats 46 covers across 4 sections: Counter 8, Window 12, Room 18, Snug 8. The floor measures 32 by 20 metres, 574 square metres.
room-figure · variant axis 1, both states
roomFigure: plan
The dining room seats 46 covers across 4 sections: Counter 8, Window 12, Room 18, Snug 8. The floor measures 32 by 20 metres, 574 square metres. Dinner uses Window, Room, Snug; the rest of the room is closed.
roomFigure: photographs

CounterClosed
8 covers · 2 tables · walk in

WindowOpen for dinner
12 covers · 4 tables · books to 4

RoomOpen for dinner
18 covers · 4 tables · books to 8

SnugOpen for dinner
8 covers · 1 table · walk in
The dining room seats 46 covers across 4 sections: Counter 8, Window 12, Room 18, Snug 8. The floor measures 32 by 20 metres, 574 square metres. Dinner uses Window, Room, Snug; the rest of the room is closed.
Keyboard
Every control here is a native element. Tab reaches each one in source order, arrow keys move inside a select, space toggles a checkbox, and the focus ring is a 2px --ring outline offset by 2, applied instantly rather than transitioned. The drawing is marked aria-hidden and followed by a visually-hidden paragraph built from the same data, so it is read rather than skipped.
site-header
src/components/site-header.tsx
hero
src/components/hero.tsx
Kelham Island
46 covers on a cutlery works floor
The plan shows tonight: which sections are open, and what fits.
- Tonight
- Dinner · 17:30–21:30 · last seating 21:00
- Room
- 46 covers · 4 sections · books to 8 online
- Counter 8
- Window 12
- Room 18
- Snug 8
A request, not a confirmation. Parties over 8 go in the snug, by enquiry.

service-tonight
src/components/service-tonight.tsx
Dinner
What the kitchen is sending tonight
The full card. Last seating is nine; the bar stays on until the room empties.
Sorrel and new potatonew this week
Jersey Royals, sorrel, cream£9.80VegetarianNo gluten
Rabbit and bacon puddingnew this week
Suet crust, cider, thyme£25
Gordal olives
Fennel seed, orange peel£4.80VeganNo gluten
Pork scratchings
Malt vinegar salt£4.50No gluten
Whipped cod roe
Smoked roe, potato crisps£7.20No gluten
Devils on horseback
Agen prune, bacon, bay£6.40

- Last seating
- 21:00
- On the card
- 35 dishes
- Sections
- Snacks, Small plates, Large plates, Sweet
Monkfish on the bone is off tonight. It comes back when the boat lands it.
house-note
src/components/house-note.tsx
The house
One room, one kitchen, no investors
Rivelin is the first floor of a former cutlery works, on Ball Street. The floor is 574 square metres and we have left most of it empty. 11 tables, a counter, and a stair down to the cellar where the wine lives.
Sorrel comes in Thursday. It goes on until it doesn’t. The card is rewritten every week around what the growers and the day boats send, so a dish you liked in April may be gone by June, and the set menus are priced off the same card at 15% less than the dishes come to separately.
The chef owns the place. There are no investors to answer to and there is no second site, which is why the phone is answered by someone who was here last night.
room-summary
src/components/room-summary.tsx
The room
Four sections, one floor, no stairs
46 covers in total, and you can see which of them you are getting before you ask for one.
Counter
Stools at the bar. Breakfast, and a glass before dinner.
8 covers · 2 tables · walk in
Window
One step up, under the Ball Street windows.
12 covers · 4 tables · books to 4
Room
The main floor, level with the door.
18 covers · 4 tables · books to 8
Snug
The end room, behind the partition. Yours for the evening.
8 covers · 1 table · walk in
Level entrance from Ball Street. Accessible WC, level.
One 120mm step up to the window platform. Everything else is on the level.
16 seated or 26 standing, on a £900 minimum spend.
Anything over 8 people is an enquiry, not a form.
booking-seam
src/components/booking-seam.tsx
Book
Ask for a table, we write back
- No deposit and no card
- A request, not a confirmation
- Parties over 8 by phone
service-index
src/components/service-index.tsx
The card
41 dishes, indexed by service
Start with when you can come. The card follows from there.

01
Counter
- Days
- Tuesday to Friday
- Hours
- 08:00–11:30
- On the card
- 6 dishes
- Seats
- 8 covers
Pastry, eggs and coffee at the bar. Walk in; the stools are not bookable.
02
Lunch
- Days
- Wednesday to Saturday
- Hours
- 12:00–14:30
- On the card
- 28 dishes
- Seats
- 30 covers
Two courses off the card, or the set lunch. The kitchen stops at half two.
03
Dinner
- Days
- Tuesday to Saturday
- Hours
- 17:30–21:30
- On the card
- 35 dishes
- Seats
- 38 covers
The full card. Last seating is nine; the bar stays on until the room empties.
04
Sunday Table
- Days
- Sunday
- Hours
- 12:00–17:00
- On the card
- 25 dishes
- Seats
- 46 covers
One sitting, one price, the whole room. It runs until the last table leaves.
The card
41 dishes, indexed by course
Start with the course. Every dish says which services send it.

01
Counter
- On the card
- 6 dishes
- Served at
- Counter
Mornings, Tuesday to Friday.
02
Snacks
- On the card
- 7 dishes
- Served at
- Dinner, Sunday Table
With a glass, standing up.
03
Small plates
- On the card
- 10 dishes
- Served at
- Lunch, Dinner
Two or three between two.
04
Large plates
- On the card
- 10 dishes
- Served at
- Lunch, Dinner, Sunday Table
One each, or the fish for the table.
05
Sweet
- On the card
- 8 dishes
- Served at
- Lunch, Dinner, Sunday Table
Cheese is on the wine list.
card-full
src/components/card-full.tsx
The card
Counter
6 dishes
Mornings, Tuesday to Friday.
Cardamom bun
Butter, cardamom, pearl sugar£3.80Vegetarian
Bacon on a milk roll
Dry-cured back bacon, brown sauce£6.20
Eggs on toast
Two eggs, sourdough, chilli butter£7.50Vegetarian
Porridge
Pinhead oats, cream, burnt honey£5.50VegetarianNo gluten
Anchovy toast
Cantabrian anchovy, cultured butter£6.90
Seeded soda bread
Buttermilk, linseed, pumpkin seed£4.20Vegetarian
Snacks
7 dishes
With a glass, standing up.
Gordal olives
Fennel seed, orange peel£4.80VeganNo gluten
Pork scratchings
Malt vinegar salt£4.50No gluten
Whipped cod roe
Smoked roe, potato crisps£7.20No gluten
Devils on horseback
Agen prune, bacon, bay£6.40
Sheep's curd on rye
Curd, rye crisp, wild garlic oil£6.90Vegetarian
Salted almonds
Marcona almonds, rosemary£5.20VeganNo glutenContains nuts
Potted shrimp
Brown shrimp, mace butter, toast£8.50
Small plates
10 dishes
Two or three between two.
Grilled leeks
Hazelnut, aged sheep's cheese£10.50VegetarianContains nuts
Sorrel and new potatonew this week
Jersey Royals, sorrel, cream£9.80VegetarianNo gluten
Cured trout
Beetroot, horseradish, dill£12.50No gluten
Crab on toast
Hand-picked white crab, lemon£14
Charred hispi
Anchovy cream, breadcrumb£9.50
Broad beans and pecorino
Podded beans, mint, olive oil£9.20VegetarianNo gluten
Ox tongue
Salsa verde, pickled walnut£11.50Contains nuts
Chicory and blue cheese
Red chicory, Sheffield blue, walnut£9.90VegetarianContains nuts
Cuttlefish
Its own ink, parsley, garlic£13No gluten
Roast carrots
Carrot-top salsa, yoghurt£9VegetarianNo gluten
Large plates
10 dishes
One each, or the fish for the table.
Grilled Whitby cod, brown butter and sea beets
Day-boat cod, brown butter, sea beets, capers£26No gluten
Hogget shoulder
Wet garlic, sprouting broccoli£29No gluten
Whole turbot for the table
Priced on the day, to share between twoMarketNo gluten
Aged Longhorn rump
Dripping chips, watercress£32No gluten
Onion and cheddar pie
Suet pastry, Hafod cheddar, greens£19Vegetarian
Guinea fowl
Barley, morels, tarragon£26.50
Monkfish on the boneoff tonight
Mussels, cider, sea aster£28.50No gluten
Pork chop
Gooseberry, mustard greens£24No gluten
Cauliflower steak
Almond milk, capers, raisin£18VeganNo glutenContains nuts
Rabbit and bacon puddingnew this week
Suet crust, cider, thyme£25
Sweet
8 dishes
Cheese is on the wine list.
Burnt cream
Jersey cream, vanilla£7.80VegetarianNo gluten
Rhubarb and custard
Forced rhubarb, thick custard£8.20VegetarianNo gluten
Chocolate and olive oil
Dark chocolate, sea salt, oil£8.80Vegetarian
Bakewell tart
Almond frangipane, raspberry£8VegetarianContains nuts
Buttermilk pudding
Poached gooseberry, elderflower£7.90VegetarianNo gluten
Treacle tart
Golden syrup, brown bread, cream£7.60Vegetarian
Poached pear
Perry, bay leaf, crème fraîche£7.40VegetarianNo gluten
Salted caramel ice cream
Made here, one scoop£4.50VegetarianNo gluten

- Sorrel and new potato is new. Jersey Royals, sorrel, cream.
- Rabbit and bacon pudding is new. Suet crust, cider, thyme.
- Monkfish on the bone is off tonight. It comes back when the boat lands it.
- Whole turbot for the table is priced on the day. Ask what it weighs.
- VegetarianVegetarian
- VeganVegan
- No glutenNo gluten
- Contains nutsContains nuts
Tell us about an allergy when you book. The kitchen is small and everything is made in it.
41 dishes across 5 sections, on a measure set against the longest name on it: 46 characters, one line from lg up and two below it.
set-menus
src/components/set-menus.tsx
Set menus
Three menus, priced off the card
Each one is the dishes below, less 15%, rounded to the nearest fifty pence.
Set lunch
£31a head
Wednesday to Saturday, 12:00 to 14:30
- Sorrel and new potatoJersey Royals, sorrel, cream
- Onion and cheddar pieSuet pastry, Hafod cheddar, greens
- Treacle tartGolden syrup, brown bread, cream
Three courses off the card. Swap any course for a fiver.
Sunday Table
£37.50a head
Sunday, one sitting from 12:00
- Sheep's curd on ryeCurd, rye crisp, wild garlic oil
- Hogget shoulderWet garlic, sprouting broccoli
- Rhubarb and custardForced rhubarb, thick custard
Served in the middle of the table. Bring nine and take the snug.
Snug menu
£52a head
Any service, six people or more
- Whipped cod roeSmoked roe, potato crisps
- Crab on toastHand-picked white crab, lemon
- Aged Longhorn rumpDripping chips, watercress
- Burnt creamJersey cream, vanilla
Four courses, one price. Wine pairing is arranged with the enquiry.
wine-list
src/components/wine-list.tsx
The glass list
Nine wines, poured by the glass
Everything here is also a bottle, and the cellar list is a longer conversation at the table.
Sparkling
glass / bottle
- Pét-nat, Les CapriadesChenin, Loire£9 / £46
White
glass / bottle
- Aligoté, Domaine ChevrotAligoté, Burgundy£7.80 / £39
- Vinho Verde, AphrosLoureiro, Minho£7 / £34
- Riesling, Weingut WeiserRiesling, Mosel£8.80 / £44
Orange
glass / bottle
- Ribolla Gialla, SkerkRibolla, Carso£11 / £56
Red
glass / bottle
- Gamay, Domaine DupeubleGamay, Beaujolais£7.20 / £36
- Frappato, Arianna OcchipintiFrappato, Sicily£10.50 / £54
- Mencía, EnvínateMencía, Ribeira Sacra£9.80 / £49
- Trousseau, Domaine de la BordeTrousseau, Jura£12.50 / £64
9 open at a time, changed when a bottle finishes rather than on a schedule.
suppliers-note
src/components/suppliers-note.tsx
Sourcing
Where it comes from
Vegetables come from two growers in the Rivelin valley and one market garden at Whirlow. Fish is landed at Whitby and driven over on Tuesday and Friday. Meat is bought whole from a farm at Hathersage and broken down here. The bread is made in the morning, downstairs.
room-plan
src/components/room-plan.tsx
The room
46 covers, 11 tables, one floor
Drawn from the same file that sets the card, at one plan unit to 10 centimetres.
The dining room seats 46 covers across 4 sections: Counter 8, Window 12, Room 18, Snug 8. The floor measures 32 by 20 metres, 574 square metres. Level entrance, Ball Street. Step up to the window platform, a rise of 120 millimetres. Accessible WC, level. Level from the door to the accessible WC. Ramp on request; ask when you book. The snug takes 16 seated or 26 standing for private hire, on a £900 minimum spend.
Capacity
Counter
C1·4 C2·4
8 covers
Window
W1·2 W2·2 W3·4 W4·4
12 covers
Room
R1·2 R2·4 R3·4 R4·8
18 covers
Snug
S1·8
8 covers
The whole room
46 covers
Reading the plan
- Solid outline
- Bookable online. A dashed outline is walk-in or by phone.
- Filled
- The snug, which is the section you can take on its own.
- Dashed route
- The step-free way in, from the door to the accessible WC.
- Double line
- The one step in the room, a 120mm rise onto the window platform.
- Scale
- 32 × 20 m · 574 m²
private-hire
src/components/private-hire.tsx
Private hire
Take the snug for the evening
It seats 8 in normal service and 16 when we re-set it for one party.
- Seated
- 16
- Standing
- 26
- Minimum spend
- £900
The partition closes and the snug becomes its own room, with its own service. Anything over 8 people is an enquiry rather than a form, because a party that size needs a conversation about the kitchen before it needs a confirmation.

Snug menu
£52a head
Any service, six people or more
- Whipped cod roeSmoked roe, potato crisps
- Crab on toastHand-picked white crab, lemon
- Aged Longhorn rumpDripping chips, watercress
- Burnt creamJersey cream, vanilla
Four courses, one price. Wine pairing is arranged with the enquiry.
access-statement
src/components/access-statement.tsx
Access
Level in, level to the table
- Level entrance, Ball Street, with no step from the pavement.
- One step in the room: a 120mm rise onto the window platform. Every other section is on the entrance level.
- Accessible WC, level, reached without that step.
- Level from the door to the accessible WC. Ramp on request; ask when you book.
- The cellar stair is staff only; nothing you need is down there.
- If you need something we have not thought of, ring 0114 496 0231 and ask for the manager.
booking-request
src/components/booking-request.tsx
Book
Tell us when, and how many
The plan changes as you change the number. If nothing fits, it says so.
The dining room seats 46 covers across 4 sections: Counter 8, Window 12, Room 18, Snug 8. The floor measures 32 by 20 metres, 574 square metres. Tables seating 2 or more: W1 (2), W2 (2), W3 (4), W4 (4), R1 (2), R2 (4), R3 (4), R4 (8).
Marked: W1 (2), W2 (2), W3 (4), W4 (4), R1 (2), R2 (4), R3 (4), R4 (8). We seat you on the day from whatever is free.
- Service
- Dinner 17:30–21:30
- Last seating
- 21:00
- Or ring
- 0114 496 0231
booking-handoff
src/components/booking-handoff.tsx
Book
Tables are held on OpenTable
Everything up to 8 books there. Above that, ring us.
- Counter
- Tuesday to Friday · 08:00–11:30
- Lunch
- Wednesday to Saturday · 12:00–14:30
- Dinner
- Tuesday to Saturday · 17:30–21:30 · last seating 21:00
- Sunday Table
- Sunday · 12:00–17:00
Point this at your client’s own page in src/site.ts. The demo links to the provider’s front door, because a reservation URL we invented would be a claim we cannot make.
More than 8
No single table seats more, so a bigger party is the snug set as one table: 16 seated. That is a conversation, not a form.
0114 496 0231The dining room seats 46 covers across 4 sections: Counter 8, Window 12, Room 18, Snug 8. The floor measures 32 by 20 metres, 574 square metres. Tables seating 8 or more: R4 (8).
Marked: every table that takes 8 on its own. The counter is dashed because you cannot book a stool, there or anywhere else.
booking-notes
src/components/booking-notes.tsx
Before you send
What people ask us first
- We are more than 8
- Then no single table holds you, and the answer is the snug set as one party: 16 seated or 26 standing. Send it as an enquiry and we will write back the same evening.
- Someone is using a wheelchair
- The entrance is level and the main floor is level with it. Accessible WC, level. The one step in the room is the 120mm rise onto the window platform, so we will not seat you up there unless you ask.
- There is an allergy
- Put it in the note and we will read it before service. The kitchen is one room and we will tell you honestly what we cannot keep separate in it.
- When are you shut
- Monday, every week. Plus Christmas Day and New Year's Day, which the form will refuse if you pick them.
- None of this fits
- Ring 0114 496 0231 and speak to whoever is on the floor. Someone is here from mid-morning.
week-grid
src/components/week-grid.tsx
Opening
The week, drawn against the clock
Four services across six days. Find your day, then find the hour.
08:00
10:00
12:00
14:00
16:00
18:00
20:00
MondayMon
Closed
TuesdayTue
WednesdayWed
ThursdayThu
FridayFri
SaturdaySat
SundaySun
Scroll the grid sideways for the rest of the week, or read it as a list below.
Reading the week
- Counter
- Tue Wed Thu Fri · 08:00–11:30
- Lunch
- Wed Thu Fri Sat · 12:00–14:30
- Dinner
- Tue Wed Thu Fri Sat · 17:30–21:30 · last 21:00
- Sunday Table
- Sun · 12:00–17:00
Struck-through columns are days the kitchen is shut: Monday. Dated exceptions are below, and the booking form refuses them.
dated-exceptions
src/components/dated-exceptions.tsx
Exceptions
Four dates that break the pattern
The booking form knows about these, so it will not let you ask for a table on one.
2026-08-31
August bank holiday
Monday · usual pattern replaced
Sunday Table 12:00–17:00
Open on a Monday, once. Sunday Table hours, one sitting from noon.
2026-12-24
Christmas Eve
Thursday · usual pattern replaced
Lunch 12:00–14:30
Lunch only. Last seating 14:00 and the bar closes at four.
2026-12-25
Christmas Day
Friday · closed
Usual Friday service
Closed. The kitchen goes home.
2027-01-01
New Year's Day
Friday · closed
Usual Friday service
Closed. Back on the second, for dinner.
getting-here
src/components/getting-here.tsx
Getting here
Ball Street, above the works yard
Six minutes from the tram, and level from the pavement to the table.
Sheffield S3 8DB
Shalesmoor, blue and yellow lines
Six minutes on foot, level the whole way along Ball Street.
Sheffield station
Twenty-five minutes on foot, or the 7 bus to Corporation Street.
Kelham Island car park, Alma Street
Pay and display until six, free after. We have no spaces of our own.
Stands outside the door
Four Sheffield stands on the pavement, under the light.
Step-free route
The dining room seats 46 covers across 4 sections: Counter 8, Window 12, Room 18, Snug 8. The floor measures 32 by 20 metres, 574 square metres. Level entrance, Ball Street. Step up to the window platform, a rise of 120 millimetres. Accessible WC, level. Level from the door to the accessible WC. Ramp on request; ask when you book. The dashed line is the step-free route from the door to the accessible WC.
- Level entrance, Ball Street, no step from the pavement.
- One 120mm step, onto the window platform only.
- Accessible WC, level.
- Level from the door to the accessible WC. Ramp on request; ask when you book.
site-footer
src/components/site-footer.tsx
Every figure on this page comes from src/fixtures/rivelin.ts: 46 covers is a sum over the tables, 41 dishes is the card’s length, and the online cap of 8 is the largest bookable table. Replace that one file and the whole site follows.