Klarhimmel UI

Features, grid

Features, grid preview

Install

npx shadcn add @klarhimmel/features-grid

Usage

import { Theme } from '@/components/klarhimmel/theme/style';
import { BlockSurface } from '@/components/klarhimmel/blocks/surface';
import FeaturesGrid from '@/components/klarhimmel/blocks/features-grid';

export default function Section() {
  return (
    <Theme theme="brand">
      <BlockSurface>
        <FeaturesGrid props={{
          "eyebrow": "Features",
          "title": "Everything a small team needs, nothing it does not",
          "description": "A focused set of tools that stay out of the way and keep everyone looking at the same page.",
          "columns": "3",
          "items": [
            {
              "icon": "layers",
              "title": "Shared boards",
              "description": "See every project at a glance and move work forward without a meeting."
            },
            {
              "icon": "zap",
              "title": "Fast by default",
              "description": "Pages open instantly and search answers as you type, even on large workspaces."
            },
            {
              "icon": "shield",
              "title": "Private by design",
              "description": "Your data stays in your workspace. Roles and audit logs are built in."
            },
            {
              "icon": "users",
              "title": "Built for review",
              "description": "Comment on the work itself, request changes and approve with one click."
            },
            {
              "icon": "chart",
              "title": "Clear reporting",
              "description": "Weekly summaries show what shipped, what slipped and what is next."
            },
            {
              "icon": "settings",
              "title": "Fits your process",
              "description": "Rename stages, add fields and automate the handoffs you repeat every week."
            }
          ]
        }} />
      </BlockSurface>
    </Theme>
  );
}

Install

Import

import Block from '@/components/klarhimmel/blocks/features-grid';
Also called
  • features/grid
Category
What it does, as a grid, a list, tabs or alternating rows.

Notes

When to use it

A plain grid of equal feature cards, each with an optional icon, a title and a sentence. The default for a feature overview; `features-bento` suits uneven emphasis and `features-list` suits a few items with more text.

Writing for it

- Items take one to nine, each with a title (60) and a description (200). A multiple of the column count keeps the grid even. - The columns field is 2, 3 or 4 and defaults to 3. It is a ceiling: the grid never uses more columns than there are items. - Icon is optional per item. Use icons on all items or on none, since a mix leaves the cards unaligned.

Watch out for

Item titles are h3 headings, placed under the section title. Without a section title they sit directly under whatever block comes before, which can skip a heading level.

Usage

The block in a page, with its default content (long lists shortened). Every prop is in the table below.

section.tsx
import { Theme } from '@/components/klarhimmel/theme/style';
import { BlockSurface } from '@/components/klarhimmel/blocks/surface';
import FeaturesGrid from '@/components/klarhimmel/blocks/features-grid';

export default function Section() {
  return (
    <Theme theme="brand">
      <BlockSurface>
        <FeaturesGrid props={{
          "columns": "3",
          "eyebrow": "Features",
          "title": "Everything a small team needs, nothing it does not",
          "description": "A focused set of tools that stay out of the way and keep everyone looking at the same page.",
          "items": [
            {
              "icon": "layers",
              "title": "Shared boards",
              "description": "See every project at a glance and move work forward without a meeting."
            },
            {
              "icon": "zap",
              "title": "Fast by default",
              "description": "Pages open instantly and search answers as you type, even on large workspaces."
            },
            {
              "icon": "shield",
              "title": "Private by design",
              "description": "Your data stays in your workspace. Roles and audit logs are built in."
            }
          ]
        }} />
      </BlockSurface>
    </Theme>
  );
}

Props

The type, default and text limit of every prop. On a real page, over-limit text is kept and checkSections flags it (Installation, Check a page before you ship); this live preview shows the default until it fits. The panel above edits all props.

PropTypeDefaultDescription
eyebrowstring'Features'Text, up to 60 characters.
titlestring'Everything a small team needs, noth…'Text, up to 120 characters.
descriptionstring'A focused set of tools that stay ou…'Text, up to 300 characters.
columns'2' | '3' | '4''3'One of '2', '3', '4'. Optional; empty is not rendered.
items{ icon, title, description }[]6 itemsList of 1 to 9. Each item: icon ('zap' | 'shield' | 'layers' | 'globe' | 'sparkles' | 'clock' | 'code' | 'palette' | 'lock' | 'chart' | 'users' | 'mail' | 'heart' | 'rocket' | 'search' | 'settings' | 'check' | 'star' | 'book' | 'box' | 'cloud' | 'compass' | 'leaf' | 'gauge') (optional), title, description.
headingLevel'1' | '2'-One of '1', '2'. Optional; empty is not rendered.