Getting here
Paros is an easy island to reach. Whichever way you choose, the last twenty minutes are ours.
Two decks, a slow coffee and the best view of the islands arriving. Easy with luggage and children.
Leaves near the airport and makes fewer stops. Ask for a window seat on the left side.
Forty minutes over the Cyclades in a propeller plane, then a short drive across the island.
Send us your boat or flight and someone from the house will be waiting with the car.
Arrange a pickupA getting-here section for an island hotel: three columns split by drawn rules for the ferry, the fast boat and the flight, each with a line glyph that draws itself in, the journey time in large serif and a route line that runs out from port to port with its stops, closed by a pickup line with a drawn car and a link.
Three columns split by drawn rules, one per way of arriving, each with a line glyph that traces itself in, the journey time in large serif and a route line that runs out from port to port, closed by a pickup line with a drawn car.
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.
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
npx shadcn add "https://beste.dev/r/hotel47?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://beste.dev/r-base/hotel47?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/hotel47.tsx plus the text1 word stagger it uses for the heading.
The installed file exports hotel47Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.
import { Hotel47, hotel47Demo } from "@/components/beste/block/hotel47";
export default function Page() {
return <Hotel47 {...hotel47Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Hotel47 } from "@/components/beste/block/hotel47";
export default function Page() {
return (
<Hotel47
eyebrow="Getting here"
heading="Three ways across the water"
description="Whichever way you choose, the last twenty minutes are ours."
ways={[
{ glyph: "ferry", title: "The big ferry", time: "4 h", stops: ["Piraeus", "Syros", "Parikia"], note: "Two decks and the best view of the islands arriving." },
{ glyph: "speedboat", title: "The fast boat", time: "3 h", stops: ["Rafina", "Mykonos", "Parikia"], note: "Leaves near the airport and makes fewer stops." },
{ glyph: "plane", title: "A small plane", time: "40 min", stops: ["Athens", "Paros"], note: "A propeller plane, then a short drive across the island." },
]}
pickup={{ text: "Send us your boat or flight and someone will be waiting with the car.", link: { label: "Arrange a pickup", href: "/contact" } }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
eyebrow | string | – | Small line above the heading |
heading | string | – | Section heading, through Text1 |
description | string | – | Paragraph to the right of the heading on desktop |
ways | Way[] | [] | One column per way of arriving |
pickup | Pickup | – | Closing line with the car glyph and an optional link |
className | string | – | Extra classes for the outer <section> |
type GlyphName = "ferry" | "speedboat" | "plane" | "car";
type Way = {
glyph: GlyphName;
title: string;
time: string;
stops: string[];
note: string;
};
type Pickup = {
text: string;
link?: { label: string; href: string };
};pathLength once in view; the pickup line always uses the car glyph in the primary color.pickup.link is not set, and its arrow nudges diagonally on hover only when motion is allowed.