UI · 페이지
Ember House
코드 렌더 · 같은 결과
Sauna house · send a booking request in one view
Fictional urban Nordic sauna & cold-plunge house
Ember House는 가상 브랜드이고 가격·수치·이미지는 모두 샘플입니다. 레시피는 실제 콘텐츠가 없는 자리를 지어내지 않고 조건 규칙대로 바꿉니다.
실제 페이지를 스크롤하며 녹화한 화면입니다(32초, 소리 없음). 데스크톱 1440×900 · 모바일 390×844 에서 검수했습니다.
섹션 화면

Ritual 
Sessions 
Prices 
Visit
섹션 순서
위에서 아래 순서입니다. 내비게이션과 푸터는 모든 페이지에 들어 있어 뺐습니다.
- 01HeroH8 Availability & Booking
Session, day, time of day and guests pickers in real DOM, with the honest response time next to the button.
H8 Availability & Booking: a visitor who already knows the place starts the request in the first view.
- 02Ritual상품·서비스
Scroll-scrubbed sequence: cold stones → heat → water poured → steam.
Sells the experience of the visit in one motion.
- 03Sessions상품·서비스
Shared, private and sunrise sessions with a pinned image swap and "Choose this session" links.
Each option explained once, feeding straight back to the booking form.
- 04Cold interlude작업·결과
Cold-plunge frame opening to full bleed.
A dramatic pause that shows the second half of the ritual.
- 05Prices가격·요금
Price table plus what is always included.
Answers cost before asking for details.
- 06Visit문의·위치
Address, hours, getting there and a drawn walking map.
A local business must make the trip feel easy.
- 07FAQ자주 묻는 질문
How a request works, changes and cancelling, what to bring, first-timers and who can come.
Clears the hesitations of a first-time bather.
- 08Request행동 유도
Booking request form with a confirmation state ("Demo complete — nothing was sent.").
The only submit on the page, with no promise of a held slot.
조건별 변형
레시피는 만들기 전에 세 가지를 묻고, 답에 따라 아래 규칙으로 섹션을 바꿉니다.
| 이럴 때 | 이렇게 바꾼다 |
|---|---|
| No live availability integration | The hero is a booking REQUEST: no "available", seat counts, confirmed slots or countdown; time is chosen as time of day. |
| Live availability exists | Still ship this recipe as a request flow — real slots belong to a different recipe. |
| Phone / walk-in only | Replace the form submit with a tel: link under the same label; keep the pickers as a "plan your visit" summary. |
| No reviews | No proof section, rating, guest count or "loved by" line. |
| No public prices | Drop the price column, pricing table and totals; keep "Always included" and say "Price on request". |
| One option only | Remove the session picker and the sticky offers stage; keep one offer block. |
| Options with restricted days | Disable (not hide) the other days in the day picker and say which days beside the label. |
스타일
Stage — strong scale contrast, one cinematic image per screen, dark warm palette, one ember accent
쓰는 법
- 01복사
레시피 복사를 누르면 이 페이지의 전체 코드·토큰·이미지 주소가 든 레시피가 복사돼요.
- 02붙여 넣기
빈 폴더나 지금 프로젝트에서 Claude Code·Codex 를 열고 붙여 넣으세요.
- 03세 가지 답하기
에이전트가 서비스·주 행동·실제로 있는 자료(후기·가격·이미지 등)를 먼저 묻습니다. 있는 것만 답하세요.
- 04확인
답에 맞춰 섹션을 조정해 같은 구성·타이포·모션으로 만듭니다. 없는 후기·수치는 지어내지 않습니다.
레시피
- 길이
- 103,625자 · 약 26k 토큰
- 스택
- React 19 + Vite 7 + Tailwind CSS v4 + motion + Lenis (TypeScript)
- 글꼴
- Instrument Serif · Inter Tight
- 버전
- v1.1.2
- 예시
- 가상 브랜드 · 샘플 데이터
레시피 하나에 이 페이지를 다시 만드는 데 필요한 것이 모두 들어 있습니다. MCP 를 연결했다면 get_ui 로도 받을 수 있어요.
레시피 안 이미지는 duchamp.app 에서 바로 불러옵니다. 내 이미지가 있으면 바꾸라고 말하세요.
첫 화면만 필요하면 히어로 레시피가 따로 있어요. 히어로만 보기 →

