Showcase Hero With Video

We build brands the world keeps coming back to

An independent product and brand studio for teams that take the work seriously.

4.9

Client rating

Engagement

After our last brand and product refresh

First 90 days

+118%

Revenue influenced

$12M+

About

Polaris is an independent product and brand studio. We hold the whole arc — strategy, identity, interface, and motion — so the idea never gets diluted in the handoff, and your team spends its time on the work that matters most.

We take a handful of clients at a time. No accounts, no busywork, no decks nobody reads — just a small room of people who would rather make one unforgettable thing than ten forgettable ones.

About this block

Showcase Hero With VideoPRO

Large heading with dual CTAs and a rating card, a playable video with floating metric cards, and a labelled about block with large paragraphs.

About56: Showcase Hero With Video

Hero-scale about section: an oversized heading with dual CTAs and a desktop-only rating card, a clickable video thumbnail that opens a YouTube embed in a modal, a row of metric cards, and a labelled about block with rich paragraphs.

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://ui.beste.co/r/about56?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/about56.tsx, the button1 component it uses for the primary CTA, the badge6 component it uses for the about label, and its dependencies.

Quick start

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

tsx
import { About56, about56Demo } from "@/components/beste/block/about56";

export default function Page() {
  return <About56 {...about56Demo} />;
}

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

tsx
import { About56 } from "@/components/beste/block/about56";

export default function Page() {
  return (
    <About56
      heading="We build brands the world keeps coming back to"
      description="An independent product and brand studio for teams that take the work seriously."
      primaryCta={{ label: "Start a project", href: "/contact" }}
      secondaryCta={{ label: "Book a call", href: "/call" }}
      rating={{ value: "4.9", label: "Client rating" }}
      video={{
        thumbnail: "https://images.unsplash.com/photo-1558722141-dc9be8718862?w=2000&fit=crop",
        alt: "Studio team in a working session",
        videoUrl: "https://www.youtube.com/embed/ScMzIvxBSi4",
      }}
      metrics={[
        { title: "Engagement", subtitle: "After our last refresh", value: "+118%", badge: "First 90 days" },
        { title: "Revenue influenced", value: "$12M+" },
      ]}
      aboutLabel="About"
      paragraphs={["Polaris is an independent product and brand studio."]}
    />
  );
}

Props

PropTypeDefaultDescription
headingstringOversized page heading, plain text (no HTML)
descriptionstringSupporting paragraph under the heading
primaryCtaCtaLinkPrimary CTA rendered as a Button1
secondaryCtaCtaLinkSecondary CTA rendered as a plain outline-styled link
rating{ value: string; label: string }Rating card with a five-star row, shown desktop-only
video{ thumbnail: string; alt: string; videoUrl: string }Clickable thumbnail that opens videoUrl in a modal iframe
metricsMetric[][]Metric cards under the video
aboutLabelstringEyebrow text rendered in a Badge6 above the paragraphs
paragraphsstring[][]About copy paragraphs; each supports inline HTML
classNamestringExtra classes for the outer <section>
ts
type CtaLink = { label: string; href: string };
type Metric = { title: string; subtitle?: string; value: string; badge?: string };

Behavior notes

  • Clicking the video thumbnail sets isPlaying to true and renders a fixed, full-viewport modal with a YouTube iframe pointed at ${video.videoUrl}?autoplay=1; closing happens by clicking the backdrop or the X button (the inner panel calls stopPropagation so clicks inside it don't close the modal).
  • The rating card only renders on lg and above (hidden lg:flex); it is not shown at all on mobile or tablet widths.
  • secondaryCta is not rendered through Button1; it's a manually styled Link with an outline look, distinct from primaryCta's pill button.
  • Metric cards pin their large value to the bottom of the card (mt-auto) regardless of whether subtitle is present, so cards with and without a subtitle still align on the value baseline.
  • paragraphs entries render via dangerouslySetInnerHTML, so <strong> (or other inline HTML) inside a paragraph string is honored, as the demo does to bold "your team".

More About blocks

View all About
PRO

about11

Hero Banner with Avatars

Wide hero image with gradient overlay text, inline stats, and a stacked avatar strip of team members.

PRO

about43

Heading Hero About

An oversized about statement hero above three heterogeneous zones: portrait, values and a CTA with stats.

PRO

about31

Hero Overlay & Suite Cards

Dark-overlay hero image with heading, suite/room cards with temperature and capacity badges. For hotels and hospitality.

PRO

about54

Inset Card About

A cinematic wide image with an overlapping inset content card and a stat ribbon.

PRO

about35

About Media Reel

About section with eyebrow, stacked stats and a read-more CTA beside a media card with a watch-reel play button.

PRO

about14

Stats Bar with Story Card

Horizontal stats row at the top followed by a centered story card with heading, body text, and CTAs.