Skip to main content
Clever Ops

Clinic Locations Strip

Multi-location clinic strip, suburb name, plain street address, a practical parking note, and an hours snippet in quiet mono per location, closed by one gentle closest-to-you hint.

Preview & code

Loading Clinic Locations Strip preview

Installation

pnpm dlx shadcn@latest add @cleverui/clinic-locations-strip

Requires the @cleverui registry in your components.json, a one-off, two-line setup.

Usage

tsx
import { ClinicLocationsStrip } from '@/components/blocks/clinic-locations-strip'
Exampletsx
'use client'

import { ClinicLocationsStrip } from '@/components/blocks/clinic-locations-strip'

export default function ClinicLocationsStripDemo() {
  return (
    <div className="py-8">
      <ClinicLocationsStrip
        heading="Our locations"
        locations={[
          {
            suburb: 'Northcote',
            address: '12 Gordon Street, Northcote VIC 3070',
            parking: 'Free 2-hour parking behind the building, off Bastings Street.',
            hours: 'Mon–Fri 8am–6pm / Sat 8am–12pm',
            phone: '(03) 9481 2200',
            mapHref: 'https://maps.example.com/northcote-clinic',
          },
          {
            suburb: 'Thornbury',
            address: '88 High Street, Thornbury VIC 3071',
            parking: 'Street parking on High Street and nearby side streets.',
            hours: 'Mon–Fri 8:30am–5:30pm',
            phone: '(03) 9480 1144',
            mapHref: 'https://maps.example.com/thornbury-clinic',
          },
          {
            suburb: 'Preston',
            address: '4/210 Plenty Road, Preston VIC 3072',
            parking: 'Undercover bays in the rear car park, enter via Gower Street.',
            hours: 'Mon–Thu 8am–7pm / Fri 8am–5pm',
            phone: '(03) 9471 0090',
            mapHref: 'https://maps.example.com/preston-clinic',
          },
        ]}
        hint="Not sure which clinic is closest? Call either one and we'll point you to it."
        directionsLabel="Get directions"
      />
    </div>
  )
}

API reference

ClinicLocationsStrip accepts the following props.

PropTypeDefaultDescription
headingstring'Our locations'
locations*ClinicLocation[]
hintstring"Not sure which clinic is closest? Call either one and we'll point you to it."one quiet static sentence, never geolocation, never a permission prompt
directionsLabelstring'Get directions'

…plus everything from React.HTMLAttributes<HTMLElement>: className, event handlers, aria attributes and the rest pass straight through.

Referenced types

Typestsx
export interface ClinicLocation {
  suburb: string
  address: string
  parking?: string
  /** preformatted snippet, e.g. 'Mon-Fri 8am-6pm / Sat 8am-12pm', never derived from Date */
  hours: string
  phone?: string
  mapHref?: string
}

Frequently asked questions

How do I install the Clinic Locations Strip component?

Register the @cleverui registry in your components.json ("@cleverui": "https://cleverops.com.au/r/{name}.json"), then run `npx shadcn@latest add @cleverui/clinic-locations-strip`. The shadcn CLI copies the source into your project, you own the code from that point. You can also copy the source directly from this page.

What dependencies does Clinic Locations Strip require?

Clinic Locations Strip uses motion and lucide-react on top of React and Tailwind CSS. You don't need to install them manually, the shadcn CLI resolves and installs npm dependencies automatically when you add the component.

Can I theme Clinic Locations Strip to match my brand?

Yes. The component is styled entirely with Tailwind utilities over standard design tokens (primary, background, muted, border), so it inherits your existing shadcn/ui theme automatically. Change your CSS variables and the component follows, no source edits needed for palette, radius, or fonts.

Want this built for you?

CleverUI is built by the Clever Ops web team. If you'd rather ship a hand-coded, fast, custom website than assemble one, we build them for Australian businesses every week.

Explore web development services