Skip to main content
Neubrutal

Menu

Data Display

Table, List, Progress, ProgressStatus, and Alert.

Table

src/components/Table/Table.astro

Zero client JS. Any cell value can be a plain string, or an object to render it as a color-coded pill.

Prop Type Default
columns { key, label }[] — (required)
rows Record<string, string | { text, tone }>[] — (required)
caption string
class string

tone accepts yellow \| pink \| blue \| green \| orange \| lavender.

<Table
  caption="Team members"
  columns={[
    { key: "name", label: "Name" },
    { key: "status", label: "Status" },
  ]}
  rows={[
    { name: "Ava Stone", status: { text: "Active", tone: "green" } },
    { name: "Theo Brandt", status: { text: "Suspended", tone: "pink" } },
  ]}
/>

Rows alternate through three subtle accent tints automatically — no prop needed.

List

src/components/List/List.astro

Prop Type Default
items { text, description? }[] — (required)
variant bullet | check | cross | number bullet
class string
<List
  variant="check"
  items={[{ text: "Typed props on every component" }, { text: "Zero client JS unless you opt in" }]}
/>

variant="number" renders an <ol>; every other variant renders a <ul>.

Progress

src/components/Progress/Progress.astro — a bare progress bar.

Prop Type Default
value number (0–100) — (required)
label string (accessible label only, not displayed) "Progress"
<Progress value={45} label="Downloading packages" />

ProgressStatus

src/components/Progress/ProgressStatus.astro — a progress bar with a visible label and percentage.

Prop Type Default
value number (0–100) — (required)
label string (displayed) "Progress"
<ProgressStatus value={80} label="Building theme" />

Alert

src/components/Alerts/Alert.astro

Prop Type Default
variant info | success | warning | error info
message string — (required)
class string
<Alert variant="success" message="Install complete — run npm run dev to preview the theme." />

Documentation