Skip to main content

Features

Responsive grid of feature cards with optional icons, titles, and descriptions.

Use it to showcase product capabilities on a landing page.

Summary

The Features block renders a <section> containing a grid of cards. Each card can include an Iconify icon, a title, and a description. The grid adapts from one column on mobile to three columns on desktop.

Why Use This Block?

  • Responsive grid that adapts to screen width without custom breakpoint CSS.
  • Iconify integration — pass any Iconify icon identifier for visual variety.
  • Preset-aware — card styling, spacing, and typography adapt to the active preset.

Usage

Options

PropTypeDefaultDescription
itemsArray<{ icon?: string | IconifyIcon, title: string, description: string | ReactNode }>Feature card data. Required.
headingstring | undefinedundefinedOptional section heading above the grid.
surface'alt' | undefinedundefinedSet to 'alt' to use the alternate surface background.
classNamestring | undefinedundefinedAdditional class names merged with the base nova-features class.
styleCSSProperties | undefinedundefinedInline style overrides applied to the root element.

Troubleshooting

  • Icons not rendering — The icon field is optional per item. If set, pass a valid Iconify identifier (e.g., 'lucide:rocket'). The preset bundles only the icons it finds in your source at build time, so a static identifier like this just works; an identifier assembled dynamically at runtime must be added to the preset's iconSafelist option so it is included.
  • Grid layout — Items render in a 3-column grid on desktop. If fewer than 3 items are provided, the grid still uses 3 columns with empty space.