Skip to main content

Claude/ChatGPT Prompt to Build a Hotel Room Booking UI with Room Comparison

Hotel booking UI prompt: date/guest picker, room comparison table, add-on upsells, cancellation policy, and a clear price breakdown.

Fill in the placeholders

Edit the values, then copy your finished prompt.

Your Prompt
prompt.txt
You are a senior product designer and front-end engineer. Design a high-converting hotel room booking page; return real component markup and class names, not vague wireframe talk.

Context:
- Property type: boutique city hotel
- Stack: Next.js + Tailwind
- Add-ons to upsell: breakfast, airport transfer, spa credit
- Currency & taxes: USD, 12% city tax

Deliverables:
1. Sticky search bar: date-range picker, guest/room stepper, validation for sold-out dates.
2. Room-type cards with image carousel, occupancy, and a 'compare' toggle.
3. A room comparison table: size, bed, view, inclusions, refundable vs non-refundable, price per night.
4. Add-on selectors for breakfast, airport transfer, spa credit that update the live total.
5. Cancellation-policy block and a transparent total breakdown (room x nights, taxes, fees) in USD, 12% city tax.
6. Mobile layout notes and accessibility (focus order, ARIA on the carousel and table).

Output: component tree + annotated markup with classes for Next.js + Tailwind.

What this prompt does

This prompt frames the model as a senior product designer and front-end engineer tasked with designing a high-converting hotel room booking page that returns real component markup and class names, not vague wireframe talk. The booking page lives or dies on the comparison table, so the prompt is built to make refundable-versus-not and the real total visible side by side. Four variables shape it: [property_type] sets the context, [stack] decides the markup idiom, [addons] lists the upsells that feed the live total, and [currency] carries the currency and tax rule like "USD, 12% city tax."

The deliverables run from a sticky search bar with a date-range picker and guest stepper, through room-type cards with a compare toggle, into the comparison table covering size, bed, view, inclusions, refundable status, and price per night. Add-on selectors for [addons] update a live total, and a cancellation-policy block sits beside a transparent breakdown — room times nights, taxes, fees — in [currency]. By wiring add-ons and taxes into one live total early, the price never jumps at checkout, which is where bookings are lost. Because the prompt asks for real markup and class names for the chosen stack rather than wireframe talk, the comparison table, carousel, and add-on selectors arrive as concrete structure you can refine, and the accessibility requirements — focus order and ARIA on the carousel and table — are baked in instead of bolted on after the interactive parts are already built.

When to use it

  • Building a hotel or property booking page that needs a room comparison
  • Making refundable versus non-refundable and the real total visible together
  • Wiring [addons] upsells into a live, transparent total
  • Encoding tax rules through [currency] so the breakdown is honest
  • Producing real markup with class names for your [stack]
  • Specifying accessibility for the carousel and comparison table

Example output

You get a component tree plus annotated markup with class names for your stack: the sticky search bar with validation for sold-out dates, room-type cards with an image carousel and compare toggle, the comparison table, the add-on selectors that update the total, the cancellation-policy block, and the transparent breakdown in your currency. It also includes mobile layout notes and accessibility details such as focus order and ARIA on the carousel and table.

Pro tips

  • Wire [addons] and taxes into one live total early so the price never jumps at checkout — that jump is where bookings are lost.
  • Put the real tax rule in [currency], like "USD, 12% city tax," so the breakdown is accurate rather than a placeholder.
  • Lead with the comparison table; people abandon when they cannot see refundable-versus-not and the total side by side.
  • Set [property_type] so room types and inclusions fit the venue.
  • Ask for the carousel and table accessibility (focus order, ARIA) explicitly; retrofitting it later is painful.
  • If the markup is heavy, ask the model to extract the comparison table into its own component for your [stack].

Frequently Asked Questions

Does the prompt produce real markup or just a wireframe?
It returns a component tree plus annotated markup with class names for your chosen `[stack]`, explicitly avoiding vague wireframe talk. Set the `[stack]` variable so the markup and classes match the framework and styling approach your project uses.
How are taxes and fees handled in the total?
The prompt asks for a transparent breakdown showing room times nights, taxes, and fees in the `[currency]` you provide, such as USD with a 12% city tax. Wiring this into one live total early keeps the price from jumping at checkout.
Can add-ons update the price live?
Yes, the add-on selectors for the items in `[addons]` update the live total as the user toggles them. Listing your real upsells, like breakfast or airport transfer, ensures the selectors and pricing reflect what the property actually offers.
Why is the comparison table emphasized?
The comparison table is where hotel bookings are won or lost, because guests abandon when they cannot see refundable versus non-refundable options and the true total side by side. The prompt makes that table a central deliverable with clear inclusions and per-night pricing.
Does it cover accessibility?
Yes, deliverable six asks for accessibility notes including focus order and ARIA on the image carousel and the comparison table. Asking for these up front is far easier than retrofitting accessibility onto an interactive table and carousel later.
Engr Mejba Ahmed

Need this built for real?

Engr Mejba Ahmed

AI Developer · Software Engineer

I'm Mejba — I design and ship production AI systems, automations, and full-stack apps. If you want this turned into a working solution for your team, let's talk.

More in Services & Booking UI Prompts

Engr Mejba Ahmed

Engr Mejba Ahmed

AI assistant · trained on my work

👋

Hey there!

Quick Actions

WhatsApp Direct line to me

Chat on WhatsApp

+880 1723 741224 · Replies within the hour on working days

Popular Questions

Engr Mejba Ahmed is connected
Engr Mejba Ahmed is typing...
Engr Mejba Ahmed avatar

✉ Want me to follow up? Drop your email

Engr Mejba Ahmed avatar

📞 Connect Directly

Choose how you'd like to reach me

WhatsApp

+880 1723 741224

Email

mejba.13@gmail.com

✓ Details sent! I'll get back to you shortly.

Powered by OpenAI

335+

Blog Posts

25

AI Courses

63

Projects

Services & Expertise

Pricing & Process

Learning & Resources

Connect & Support