Skip to content

Listings

Listings Locations

A centered heading above area cards — three, then two a row — whose photos settle on hover.

Layout and motion from the Findit template — see it in context

Installation

$ npx shadcn@latest add https://framebrick.co/r/blocks/listings-locations.json

Usage

import { ListingsLocations } from "@/components/listings-locations";

<ListingsLocations
  locations={[
    { name: "Chicago", href: "/locations/chicago", count: "8 properties", image: { src: "/cities/chicago.jpg", alt: "Chicago skyline" } },
  ]}
/>

Props

PropTypeDefaultDescription
labelstringExplore citiesSmall muted line above the heading.
title / leadstring—Centered heading (h2) and lead.
locations{ name, href, count, image: { src, alt } }[]5 citiesOne link per card; five fill a 3 + 2 pattern from 1024px.
classNamestring—Classes for the <section>.
  • One column below 768px, two from 768px; from 1024px a six-column grid with cards spanning 2, 2, 2, 3, 3 (repeating).
  • Photos rest at 105% and settle to 100% while the card is hovered or focused (zoom-card with the photo pre-scaled, 400ms).

AI prompt

Paste into v0, Lovable, Bolt or Claude to rebuild this block in your own project.

Create a React + Tailwind CSS block called ListingsLocations (Next.js).
- <section className="py-(--section-y)">, container mx-auto max-w-(--container) px-(--gutter), column gap-12.
- Centered title (max-w-xl): a small muted label, an h2 (font-heading text-h2 semibold), a muted lead up to max-w-lg.
- Grid gap-x-5 gap-y-7.5: 1 column, 2 from 768px, 6 from 1024px where cards span 2, 2, 2, 3, 3 and repeat.
- Card: one link (group, flex column gap-2.5): a 300px photo in a rounded-xl frame, the photo at scale 1.05 that eases to 1 while the card is
  hovered or focused (400ms, cubic-bezier(0.12,0.23,0.5,1)); then the name (font-heading text-lg semibold) and a muted count.
- Only shadcn variables and block tokens; plain <img> with alt text.

Be the first to know

Get new templates and components first

One short email when we release a template or a free component. No spam — unsubscribe anytime.

We use your email only for Framebrick updates. Privacy policy