AhaSlides Design
v0.52.0React · Vue · Lit

Components · Data Display

Descriptions

A read-only label/value grid summarising one entity's fields — N columns, bordered or plain, horizontal or vertical, with per-item span.

Examples

Bordered
Layout
Size
Columns
Descriptions · bordered · 2 columns · a spanning row · horizontal

API

PropTypeDefaultNotes
itemsJSON [{label,value,span?}]The items, as a JSON tree. Alternative to light-DOM children
desc-titlestringRenders an optional header row
columnnumber2 (vertical 3)Label/value pairs per row
borderedboolean attrfalseRuled table with cell borders + tinted label column
size'default' | 'small' | 'large'defaultCell padding scale
layout'horizontal' | 'vertical'horizontalLabel : value side-by-side, or label stacked over value
labelstring (on children)Each child's label attribute names its item
spannumber (items/children)1How many columns the item spans
(children)slotEach child's content is the item value (when not using items)

Install

# .npmrc — once: point the @ahaslides-product scope at GitHub Packages
@ahaslides-product:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}   # a GitHub token with read:packages

npm i @ahaslides-product/design
import '@ahaslides-product/design/tokens.css';   // once, at the app root
import '@ahaslides-product/design/aha-descriptions';   // registers <aha-descriptions>

Agent feed for this component (absolute, fetchable anywhere): descriptions.agent.json · descriptions.md · descriptions.llms.txt

When to use

When to use
  • Descriptions — read-only label/value facts about one entity (a plan, an account)
  • Form — the same fields need to be edited
  • Table — the same fields across many records
Labels are sentence case nouns — 'Billing cycle', not 'BILLING CYCLE'. Keep to the facts that matter; a long grid reads like a form nobody can fill in.
Surfaces
dashboard settings

Spec

Container border 1px #E3E3E3 · radius 8px · bg #FFFFFF · Title padding 12/16 · 15/22 SemiBold #1A1A1A · divider #F1F1F1 · Label cell SemiBold #4A4A4A · bordered → bg #F7F7F7 + tinted column · Value cell #1A1A1A · 14/22 · rows/cells ruled #F1F1F1 · Column N label/value pairs flow per row; an item spans several (default 2 · vertical 3) · Bordered ruled table — cell borders #F1F1F1 + tinted label column; plain = row dividers only · Size padding scale — default 12/16 · small 8/12 · large 16/20 · Layout horizontal (label : value) · vertical (label over value)