Xzero UI
Pro library

Feature bentoPro

A six cell feature bento where small, real product UI acts each feature out on hover.

$ pnpm dlx shadcn@4.23.0 add @xzero-ui-pro/feature-bento
Live · keyboard ready

Use this as the features section of a landing page. Edit the cells and illustration content in feature-bento-data.ts, or pass your own visual per cell.

When to use

When not to use

Installation

Register both Xzero UI namespaces in your project's components.json:

{
  "registries": {
    "@xzero-ui": "https://mcp.xzero.co.uk/r/{name}.json",
    "@xzero-ui-pro": "https://mcp.xzero.co.uk/r/pro/{name}.json"
  }
}
npx shadcn@4.23.0 add @xzero-ui-pro/feature-bento

Install xzero-foundation once, and import @/components/xzero/foundation.css in your app root. No Xzero token is used by this snapshot. For sample portraits, photos, fonts, or logos, download https://mcp.xzero.co.uk/install-assets.mjs and run node xzero-install-assets.mjs <receiving-project>.

Usage

import { FeatureBento } from "@/components/xzero/blocks/feature-bento/feature-bento";

export function Features() {
  return (
    <FeatureBento
      title="Everything your team needs"
      features={[
        { id: "sync", title: "Edit together", description: "See who is here and what they change.", visual: "sync", size: "wide" },
        { id: "search", title: "Find anything", description: "One menu for every page and person.", visual: "command", size: "tall" },
        { id: "insights", title: "Clear numbers", description: "Trends next to the work that moved them.", visual: "chart" },
        { id: "rules", title: "Automations", description: "Route, enrich, and notify on their own.", visual: "flow" },
        { id: "access", title: "Access", description: "Roles for every workspace.", visual: "permissions", size: "half" },
        { id: "versions", title: "History", description: "Rewind to any moment.", visual: "history", size: "half" },
      ]}
    />
  );
}

API reference

FeatureBento

A six cell feature grid in varied sizes. Each cell pairs a short title and sentence with a small piece of real product UI that acts the feature out.

PropTypeDefaultDescription
titlestring"Built for the way teams actually work"Section heading.
descriptionstring–One or two sentences under the heading. Pass an empty string to hide it.
featuresBentoFeature[]bentoFeaturesThe cells, in reading order. Six read best. Each has id, title, description, visual, and optional size and href.
features[].visual (required)"sync" | "command" | "chart" | "flow" | "permissions" | "history"–Which built-in illustration to draw: a live doc, a command menu, a bar chart, an automation, role switches, or a version scrubber.
features[].size"regular" | "wide" | "tall" | "half""regular"On wide screens: wide spans two thirds, tall spans two rows, half spans half a row, regular a third.
features[].hrefstring–Makes the title a link that covers the whole cell.
visualsPartial<Record<string, ReactNode>>–Replaces an illustration by feature id, for your own screenshot or component.
classNamestring–Extra class on the section.

Accessibility

Motion

Responsive behavior

Performance

Notes for AI

Guidance for AI tools

Blocks are complete, self-contained screens with sample data. Replace the sample data and connect the callbacks described above. Follow the declared prop types and do not invent props. Keep keyboard access, reduced motion support, and both light and dark themes intact when adapting it.

Full library index: https://ui.xzero.co.uk/llms.txt

Browse all components