Wellness Spaces Panels

Wellness

Fourquietroomsforthebody.

Open to every guest at no charge. Bring nothing; robes, slippers and linen pestemals wait in your room.

  • A domed stone hammam with shafts of light falling through steam
    01

    Hammam

    A domed stone room with a heated marble platform and light falling through small round skylights.

    • Heated marble
    • Private sessions
    • 10:00 to 20:00
  • A long indoor pool under a white stone vault with arched openings
    02

    Vaulted pool

    A long, still pool under a whitewashed vault, kept at 29 degrees all year.

    • 16 metres
    • Warm all year
    • 7:00 to 22:00
  • A linen massage table in a plastered room beside a bright window
    03

    Treatment rooms

    Two rooms of lime plaster and linen, each with a deep window onto the olive grove.

    • Two rooms
    • Island oils
    • By booking
  • An infinity pool meeting the sea at dusk with two loungers
    04

    Sea pool

    The outdoor pool at the edge of the terrace, lit with lanterns once the sun has gone.

    • Salt water
    • Open late
    • Towels at the edge
About this block

Wellness Spaces PanelsPRO

A row of tall photographic panels for a hotel's wellness spaces: hovering, focusing or tapping a panel widens it while the others narrow, its photograph eases back to full size and a description with small detail pills unfolds under the serif name. On phones the panels stack with everything visible.

Hotel10: Wellness Spaces Panels

A row of tall numbered photo panels where the active one widens while the others narrow, its photograph eases back from a slight zoom, and a description with small detail pills unfolds under the serif name.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://beste.dev/r/hotel10?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://beste.dev/r-base/hotel10?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/hotel10.tsx plus the text1 word stagger behind the heading.

Quick start

The installed file exports hotel10Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.

tsx
import { Hotel10, hotel10Demo } from "@/components/beste/block/hotel10";

export default function Page() {
  return <Hotel10 {...hotel10Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Hotel10 } from "@/components/beste/block/hotel10";

export default function Page() {
  return (
    <Hotel10
      eyebrow="Wellness"
      heading="Four quiet rooms for the body."
      description="Open to every guest at no charge. Robes and slippers wait in your room."
      spaces={[
        {
          name: "Hammam",
          description: "A domed stone room with a heated marble platform.",
          details: ["Heated marble", "Private sessions", "10:00 to 20:00"],
          image: { src: "https://oud.pics/b/hotel/ostria-hammam.webp", alt: "A domed stone hammam with light falling through steam" },
        },
        {
          name: "Vaulted pool",
          description: "A long, still pool under a whitewashed vault, warm all year.",
          details: ["16 meters", "Warm all year", "7:00 to 22:00"],
          image: { src: "https://oud.pics/b/hotel/ostria-indoor-pool.webp", alt: "A long indoor pool under a white stone vault" },
        },
        {
          name: "Sea pool",
          description: "The outdoor pool at the edge of the terrace, lit with lanterns at night.",
          details: ["Salt water", "Open late"],
          image: { src: "https://oud.pics/b/hotel/ostria-pool-dusk.webp", alt: "An infinity pool meeting the sea at dusk" },
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstring–Uppercase line above the heading
headingstring–Serif <h2>, staggered word by word through Text1
descriptionstring–Paragraph to the right of the heading
spacesSpace[][]One panel per space
classNamestring–Extra classes for the outer <section>
ts
type Space = {
  name: string;
  description: string;
  details: string[];
  image: { src: string; alt: string };
};

Behavior notes

  • The first panel is active on load. Hovering, focusing (each panel is in the tab order) or clicking a panel makes it active.
  • From the large breakpoint the panels sit in a 38rem tall row: the active one grows to a flex ratio of 3.2 against 1 for the others over one second, its photo eases from 1.1 to full scale and its gradient deepens.
  • The description and detail pills of the active panel unfold through a grid row transition with a short delay, and fold away on inactive panels.
  • Below the large breakpoint the panels stack at 28rem tall, every photo sits at full scale and every description and pill row is always visible.
  • Each panel shows a two-digit number at the top, derived from its position in the array.
  • The row fades up once as it enters the viewport and photos blur in after they load. Reduced motion skips the entrance and blur, while the width and scale changes are CSS transitions.

More Hotel blocks

View all Hotel
PRO

hotel9

Spa Ritual Menu

PRO

hotel42

Included Amenities Glyph Grid

PRO

hotel28

Concierge Requests Hover List

Get Pro