Concept · 07Per-group filters

Tabs inside a room group

Lets users apply intent quickly without leaving the group. Tab counts double as a summary of the rate mix — instant signal of how the inventory splits.

Hotel PDPRooms & Ratesimplied context · 764 px
Tabs inside group · filter rates

King Room

1 King Bed · Sleeps 2 · 7 rate options
from $214/night
Flexible · Bed & Breakfast· City view
Egencia Business rateFree cancellationIncludes breakfastIncludes wifiPay at hotel+1
$251
per night
Best Available Rate· City view
Egencia Business rateNegotiatedFree cancellationIncludes wifiPay online+1
$239
per night
Advance Purchase 21d· Standard view
Cancellation feeIncludes wifiPay online
$214
per night
Loyalty Saver· City view
Loyalty rateFree cancellationIncludes breakfastIncludes wifi+1
$228
per night
Non-refundable · Breakfast· Standard view
Cancellation feeIncludes breakfastIncludes wifiPay at hotel
$219
per night
Flex + Parking· City view
Free cancellationIncludes wifiIncludes parkingPay online+1
$244
per night
Advance Purchase 30d· Courtyard
Cancellation feeIncludes wifiPay online
$218
per night
Showing 7 of 7 rates
State breakdown · 3 states
State 01 / 03All
Tabs inside group · filter rates

King Room

1 King Bed · Sleeps 2 · 7 rate options
from $214/night
Flexible · Bed & Breakfast· City view
Egencia Business rateFree cancellationIncludes breakfastIncludes wifiPay at hotel+1
$251
per night
Best Available Rate· City view
Egencia Business rateNegotiatedFree cancellationIncludes wifiPay online+1
$239
per night
Advance Purchase 21d· Standard view
Cancellation feeIncludes wifiPay online
$214
per night
Loyalty Saver· City view
Loyalty rateFree cancellationIncludes breakfastIncludes wifi+1
$228
per night
Non-refundable · Breakfast· Standard view
Cancellation feeIncludes breakfastIncludes wifiPay at hotel
$219
per night
Flex + Parking· City view
Free cancellationIncludes wifiIncludes parkingPay online+1
$244
per night
Advance Purchase 30d· Courtyard
Cancellation feeIncludes wifiPay online
$218
per night
Showing 7 of 7 rates
State 02 / 03Refundable filter
Tabs inside group · filter rates

King Room

1 King Bed · Sleeps 2 · 7 rate options
from $214/night
Flexible · Bed & Breakfast· City view
Egencia Business rateFree cancellationIncludes breakfastIncludes wifiPay at hotel+1
$251
per night
Best Available Rate· City view
Egencia Business rateNegotiatedFree cancellationIncludes wifiPay online+1
$239
per night
Advance Purchase 21d· Standard view
Cancellation feeIncludes wifiPay online
$214
per night
Loyalty Saver· City view
Loyalty rateFree cancellationIncludes breakfastIncludes wifi+1
$228
per night
Non-refundable · Breakfast· Standard view
Cancellation feeIncludes breakfastIncludes wifiPay at hotel
$219
per night
Flex + Parking· City view
Free cancellationIncludes wifiIncludes parkingPay online+1
$244
per night
Advance Purchase 30d· Courtyard
Cancellation feeIncludes wifiPay online
$218
per night
Showing 7 of 7 rates
State 03 / 03Breakfast filter
Tabs inside group · filter rates

King Room

1 King Bed · Sleeps 2 · 7 rate options
from $214/night
Flexible · Bed & Breakfast· City view
Egencia Business rateFree cancellationIncludes breakfastIncludes wifiPay at hotel+1
$251
per night
Best Available Rate· City view
Egencia Business rateNegotiatedFree cancellationIncludes wifiPay online+1
$239
per night
Advance Purchase 21d· Standard view
Cancellation feeIncludes wifiPay online
$214
per night
Loyalty Saver· City view
Loyalty rateFree cancellationIncludes breakfastIncludes wifi+1
$228
per night
Non-refundable · Breakfast· Standard view
Cancellation feeIncludes breakfastIncludes wifiPay at hotel
$219
per night
Flex + Parking· City view
Free cancellationIncludes wifiIncludes parkingPay online+1
$244
per night
Advance Purchase 30d· Courtyard
Cancellation feeIncludes wifiPay online
$218
per night
Showing 7 of 7 rates
Design review · breakdown
What this is
A segmented control inside each room group filters the rate list (All, Refundable, Non-refundable, Breakfast). Counts on each tab signal how the inventory splits.
Why it works
Lets users apply intent quickly without leaving the group. Tab counts double as a summary of the rate mix — useful signal even before filtering.
Best use case
Users with strong constraints (must be refundable, must include breakfast) and properties with mixed-attribute inventory.
Tradeoffs / risks
Adds an extra UI layer per room type. 'Showing N of M' message is essential — without it, hidden rates feel unsafe. Per-group filter state is a lot to manage if there are many groups.
UX notes · scannability · normalization · booking confidence · provider transparency
Normalization sits silently behind the tabs; users get rate-shape transparency via the counts. Booking confidence supported by clarity that nothing was excluded silently.
Hand off · Claude Code prompt

Paste this into Claude Code to regenerate this concept as a standalone interactive wireframe component.

You are building one self-contained, fully interactive wireframe-style React
component that demonstrates a single hotel "Room Normalizer" concept.

# Concept
- Number: 7 of 14
- Section: normalizer
- Name: Tabs inside a room group
- Tagline: Per-group filters
- One-line summary: Segmented control inside each group filters rates: All · Refundable · Non-refundable · Breakfast.

# Framing
Lets users apply intent quickly without leaving the group. Tab counts double as a summary of the rate mix — instant signal of how the inventory splits.

# What this is
A segmented control inside each room group filters the rate list (All, Refundable, Non-refundable, Breakfast). Counts on each tab signal how the inventory splits.

# Why it works
Lets users apply intent quickly without leaving the group. Tab counts double as a summary of the rate mix — useful signal even before filtering.

# Best use case
Users with strong constraints (must be refundable, must include breakfast) and properties with mixed-attribute inventory.

# Tradeoffs / risks
Adds an extra UI layer per room type. 'Showing N of M' message is essential — without it, hidden rates feel unsafe. Per-group filter state is a lot to manage if there are many groups.

# UX notes (scannability · normalization · booking confidence · provider transparency)
Normalization sits silently behind the tabs; users get rate-shape transparency via the counts. Booking confidence supported by clarity that nothing was excluded silently.

# Visual + interaction requirements
- Wireframe fidelity: monochrome, system UI, no brand color. Use Tailwind
  utility classes only. No images. Use simple borders, muted backgrounds,
  and mono labels for meta text (uppercase, tracking-widest, text-[10px]).
- Canvas width: 764px, centered. Internal content respects that frame.
- Context: this lives inside a hotel PDP "Rooms & Rates" section. Assume
  3 normalized room types (King, Queen, Double Queen) with 5–8 bookable
  rates each. Invent realistic mock data inline — rate label, bed, meals
  (room only / breakfast included), cancellation (free until N / non-refundable),
  payment (pay now / pay at hotel), price per night.
- Fully interactive: every control the concept implies must work in-browser
  with React state only — no backend, no router. Examples: accordions expand,
  tabs filter, sort headers sort, "Show N more" reveals rows, builder toggles
  recompute price live, sticky CTAs update with selection.
- Accessibility: real <button> elements, keyboard focus rings, aria-expanded
  on disclosure controls, aria-pressed on toggles.

# Deliverable
- A single default-exported React component file using TypeScript + Tailwind.
- No external UI library. Inline any small primitives you need.
- Include the mock data inline at the top of the file.
- File should run as-is when dropped into a Vite + React + Tailwind project.

Build only this concept. Do not generate the other 13.