Solutions Accordion

Solutions

Explore Our Solutions

Click on each solution to learn more about how we can help your business grow.

Automation

Automate repetitive tasks and workflows to save time and reduce errors. Our intelligent automation engine learns from your processes and suggests optimizations.

  • Visual workflow builder
  • AI-powered suggestions
  • Scheduled triggers
Analytics

Gain deep insights into your data with real-time dashboards, custom reports, and predictive analytics powered by machine learning.

  • Real-time dashboards
  • Custom reports
  • Predictive insights
Integrations

Connect with 200+ apps and services. Our pre-built connectors and flexible API make integration effortless.

  • 200+ pre-built connectors
  • RESTful API
  • Webhooks support
Security

Bank-grade security with end-to-end encryption, SSO, and compliance certifications including SOC 2 and GDPR.

  • End-to-end encryption
  • SSO & SAML
  • SOC 2 certified
About this block

Solutions AccordionFREE

Expandable accordion layout with icons, images, descriptions, and feature lists inside each panel. Perfect for detailed solution explanations with visual content.

UseCase7: Solutions Accordion

Single-open accordion where each row expands into a two-column panel with a screenshot on one side and a description plus feature checklist on the other. Only one panel is open at a time.

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/usecase7"

Base UI flavor

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

This installs the block to components/beste/block/usecase7.tsx and the badge shadcn/ui primitive it depends on.

Quick start

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

tsx
import { UseCase7, usecase7Demo } from "@/components/beste/block/usecase7";

export default function Page() {
  return <UseCase7 {...usecase7Demo} />;
}

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

tsx
import { Bot, LineChart } from "lucide-react";
import { UseCase7 } from "@/components/beste/block/usecase7";

export default function Page() {
  return (
    <UseCase7
      badge={{ label: "Solutions", variant: "secondary" }}
      heading="Explore Our Solutions"
      description="Click on each solution to learn more about how we can help."
      items={[
        {
          id: "automation",
          icon: <Bot className="size-5" />,
          title: "Process Automation",
          description: "Automate repetitive tasks and workflows to save time.",
          image: { src: "https://images.unsplash.com/photo-1518770660439-4636190af475", alt: "Automation" },
          features: [{ id: "a1", text: "Visual workflow builder" }],
        },
        {
          id: "analytics",
          icon: <LineChart className="size-5" />,
          title: "Advanced Analytics",
          description: "Real-time dashboards and predictive insights.",
          image: { src: "https://images.unsplash.com/photo-1551288049-bebda4e38f71", alt: "Analytics" },
          features: [{ id: "b1", text: "Custom reports" }],
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Pill shown above the heading; omitted when badge.label is falsy
headingstringSection heading
descriptionstringSection intro text
itemsUseCaseItem[]Accordion rows, one panel per item
classNamestringExtra classes for the outer <section>
ts
type UseCaseItem = {
  id: string;
  icon?: React.ReactNode;
  title: string;
  description: string;
  image?: { src: string; alt: string };
  features?: UseCaseFeature[];
};

type UseCaseFeature = { id: string; text: string };

Behavior notes

  • This is a hand-rolled accordion driven by a single useState<number | null> (expandedIndex), not the shadcn/ui Accordion primitive. The first item (index 0) is expanded by default, and clicking an open row's header collapses it back to null.
  • Expansion is implemented with a grid-rows-[0fr] to grid-rows-[1fr] transition plus an opacity fade (duration-300), not a height/max-height animation and not conditional mounting, so collapsed panel markup stays in the DOM at all times.
  • Because only one expandedIndex is tracked, opening any row always closes whichever other row was open; there is no multi-open mode. The chevron icon rotates 180 degrees on the expanded row.
  • Inside an expanded panel, image and content sit in a md:grid-cols-2 row; on mobile they stack with the image first when present.
  • The icon swatch and title carry group-hover/usecase7:* classes, but no ancestor in the row declares a group/usecase7 class, so those hover styles never actually apply; only the button's own hover:bg-foreground/[0.02] wash is visible on hover.

More Use Case blocks

View all Use Case
PRO

usecase1

Interactive Tab Showcase

Tab-based use case section with images, descriptions, and feature checklists that collapse to accordion on mobile. Perfect for showcasing how different teams or departments use your product.

FREE

usecase4

Industry Solutions Grid

Card grid showcasing industry-specific solutions with icons, images, descriptions, and feature tags. Perfect for highlighting how your platform serves different verticals.

FREE

usecase5

Feature Icon Grid

Centered icon grid with titles and descriptions, featuring hover animations on icon containers. Perfect for showcasing product features or capabilities in a clean layout.

PRO

usecase14

Segmented Control Tabs

Segmented control style tabs with split layout showing image, description, and bullet point features. Perfect for comparing solution approaches or product capabilities.

PRO

usecase37

Detailed Feature Cards

Two-column grid of feature cards with icons, extended descriptions, and bullet point highlights. Perfect for comprehensive product feature or capability explanations.

PRO

usecase22

Spotlight Feature Layout

Asymmetric layout with large featured card in center flanked by smaller feature cards on both sides. Perfect for highlighting a primary feature alongside supporting capabilities.