Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Next Appointment Navbar Block for React

A booking navbar for salon software: links to the schedule, a next-appointment chip with a live countdown, and a New booking action.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

A booking navbar for React with Base UI, the bar across Tidebook, salon booking software. Dashboard, Availability, Bookings and Clients follow the wordmark, Bookings marked as the current page. A chip shows the next appointment as a live "in 42 min", filled in after the page loads, and opens a popover with the client, the service, Join and Reschedule. New booking is the one primary action. On a phone the chip folds down to a status dot and the links move into a sheet from the top, where New booking sits when the bar is too narrow for it. The popover and the sheet open over the page, so the block stays one bar high (56 pixels). The page's rails and top rule come from the Guides spine and the bar draws no bottom border: the next block's top rule is its bottom edge. It's built from Relative Time Text, Popover, Data List, Status, Shine Button, Button, Sheet and Guides, with your theme's tokens for every colour. For booking products whose header should show the next client without opening the calendar.

FAQ

What do Join and Reschedule do?

Join is a link. Point it at the visit. Reschedule writes a polite line ("Reschedule stays in this demo. Nothing was sent.") and does not submit anything: replace that handler with your reschedule flow. Join and New booking render the link they're given with render, with nativeButton={false}.

Why is the time different on the server and in the browser?

The server does not know the visitor's clock, so the first render prints "in 42 min." as plain text. After mount, the same spot becomes a relative time counted from that moment plus 42 minutes. The placeholder is the full phrase, in a reserved width, so swapping it does not move the chip.

How does it work with a keyboard and a screen reader?

The wordmark is a link home. The links sit in a nav landmark named Main. The chip is a button whose name is its own words, "Next appointment in 42 min." (the word "appointment" is visually hidden); below md all of it is visually hidden except the dot, and the name stays the same. The popover repeats the client, the service and the start in a description list. The popover is not modal. Tab can leave it, and Escape closes it.

How does it work on a phone?

Below md the links hide, the chip keeps the status dot and hides its words, and a menu button opens a sheet from the top with the four links. Below sm New booking leaves the bar and sits at the bottom of that sheet. Choosing a link closes the sheet. At 320 pixels the bar is the wordmark, the dot and the menu button.

What moves, and what happens with reduced motion?

Nothing moves on load. The relative time updates on its own schedule. The popover uses its own open transition, the sheet slides down from the top, and a band of light sweeps across New booking once on hover and keyboard focus. With reduced motion the sheet appears without sliding and the light fades in where it stands.

  • Pro

    Notification Bell Navbar

    Meters and progress

    An app navbar for a team inbox with a bell whose count follows what you do: the bell opens a panel with All and Unread tabs, rows you can mark read, mark unread or dismiss, and Mark all as read, and a drawer on phones.

  • Pro

    Create Menu Navbar

    App toolbars

    An app bar with a Shine Create button that opens a grouped menu with working key hints and a New from template submenu, and a bottom drawer with the same rows on phones.

  • Pro

    Account Menu Navbar

    Accounts and scopes

    An app bar with an account button behind a split divider that opens a menu: an identity header with plan badge and storage bar, a Switch account radio list, and Profile, Settings, Billing and Sign out.

  • Pro

    Usage Ring AI Product Navbar

    Meters and progress

    A one-bar navbar for a language-model API: five links, and a usage ring in the bar, one button that opens a popover with the tokens used, the limit, the reset and the plan, beside an Upgrade Shine Button.

  • Pro

    A one-bar marketing navbar for a product roadmap tool: a wordmark, a Product menu of four areas with icons and one-line descriptions, plain links with the current page marked, Sign in and a Shine Button, and a sheet with the same links on phones.

  • Pro

    A navbar for an add-on store with a Categories menu of six categories and their counts, and a search whose popup lists add-ons with an icon tile, drawn stars, an install count and a category.