Accordion With Live MediaFREE

Accordion on the left, swappable media surface on the right. Each row picks its own media kind: image, video, or live registry-component asset.

Feature1: Accordion With Live Media

Two-column feature section: a single-open shadcn Accordion of capability rows on the left, and a media surface on the right that swaps to show whichever row is currently expanded. Each row's media slot follows the Media Slot Standard, so it can hold a static image, a looping video, or a live registry-piece asset rendered inline.

Free block

This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.

Installation

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/feature1"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/feature1"

This installs the block to components/beste/block/feature1.tsx, the shadcn/ui accordion and badge components it depends on, and the ai43, automation1, automation2, automation8, and automation10 pieces it embeds as media-slot fillers (installed to components/beste/piece/{name}.tsx).

Quick start

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

tsx
import { Feature1, feature1Demo } from "@/components/beste/block/feature1";

export default function Page() {
  return <Feature1 {...feature1Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup mixing an image row and a live-asset row looks like this:

tsx
import { Automation1 } from "@/components/beste/piece/automation1";
import { Feature1 } from "@/components/beste/block/feature1";

export default function Page() {
  return (
    <Feature1
      badge={{ label: "Automations", variant: "secondary" }}
      heading="Pick a capability, see the surface"
      description="Open any row to expand its story."
      features={[
        {
          title: "See the finished layout",
          description: "A static preview of the dashboard your team ships to.",
          media: {
            type: "image",
            src: "https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1200&h=900&fit=crop",
            alt: "Analytics dashboard on a laptop",
          },
        },
        {
          title: "Trigger meets action, in one tile",
          description: "Two apps, two events, an arrow tells the story.",
          media: {
            type: "component",
            component: (
              <Automation1
                trigger={{ src: "https://oud.pics/sm/l/stripe.jpeg", alt: "Stripe", event: "Payment received" }}
                action={{ src: "https://oud.pics/sm/l/slack.svg", alt: "Slack", event: "Send #revenue alert" }}
              />
            ),
          },
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Badge above the heading
headingstringSection heading
descriptionstringSection intro text
featuresFeatureItem[][]Accordion rows; each pairs a title/description with a media slot
classNamestringExtra classes for the outer <section>
ts
type FeatureItem = {
  title: string;
  description: string;
  media: FeatureMedia;
};

type FeatureMedia =
  | { type: "image"; src: string; alt?: string }
  | { type: "video"; src: string; alt?: string }
  | {
      type: "component";
      component: React.ReactNode;
      background?: ComponentBackground;
    };

type ComponentBackground =
  | { type: "dots" }
  | { type: "none" }
  | { type: "image"; src: string; alt?: string }
  | { type: "video"; src: string; alt?: string };

Behavior notes

More Feature blocks

View all Feature
PRO

feature229

Accordion Image Sync

Interactive feature section with an eyebrow, big heading and description above a two-column layout: a single-collapsible accordion of feature items on the left and a sticky image on the right that swaps to the active item's image on click.

FREE

feature2

Alternating Rows With Mixed Media

Hero header with a CTA, then alternating image-left / image-right rows. Each row's media slot accepts an image, video, or live registry-component asset.

PRO

feature208

Expertise Accordion

Horizontal expanding accordion of services with vertical labels, expanding to reveal image, description and tag pills.

PRO

feature53

Accordion Feature Checklist

Expandable accordion sections with category headers and checkmark-style feature lists in a two-column grid. Perfect for organized feature overviews and pricing page inclusions.

FREE

feature194

Three Cards With Asset Media

Three feature cards that swap an icon for a real micro-asset: a bar chart, a before/after stat, and a terminal prompt. Demonstrates how registry-pieces drop into block media slots.

PRO

feature237

Product Accordion Feature

A product feature with an eyebrow kicker over a hairline rule, a two-column heading and paragraph, an image tile carrying a floating records panel, and an interactive accordion of capabilities.

Markdown version