Schema Documentation

Browse all PageHub component schemas with props, examples, and CSS variable references.

Media

Layout

Core

Button

Single button component with optional icon and link

2 required

ButtonList

Container for multiple Button child components with layout controls

Children1 required

CartBadge

Shopping cart icon button with live item count badge. Place in navbar/header. Fires toggle-cart action on click to open/close the CartDrawer.

CartDrawer

Shopping cart slide-out drawer. Place once at site root level. Toggles open/closed via pagehub:toggle-cart event (fired by CartBadge or toggle-cart action). Shows cart items with quantity controls, subtotal, and checkout button.

Children

CheckoutBanner

Post-checkout notification banner. Place at site root level. Hidden by default — auto-shows after Stripe checkout success or cancellation. Auto-dismisses after configurable delay.

Children

CookieConsent

Cookie consent banner: fixed bar that auto-shows on page load, persists accepted/rejected state in localStorage. Wraps child nodes (text, buttons) — no hardcoded content.

Children

Data

Data-aware container. Same layout as Container — one DOM element, no extra wrapper — but repeats its children per item from a connector (Stripe products, customer orders, nested item arrays). Children act as a template with {{item.*}} variables.

Children1 required

Grid

CSS grid layout canvas (renders as div with Tailwind grid utilities). Use for responsive columns, card grids, and bento-style layouts. Use Table + TableSection + TableRow + TableCell for semantic data tables.

Children1 required

Icon

Standalone decorative or semantic icon. Renders as <span> with inline SVG (react-icons) or media-library image inside. Use this for icons in feature lists, card heroes, inline flourishes, and any icon that is NOT inside a clickable Button/Link. For a clickable icon, use Button with icon.only: true. For an icon next to text in a link/button, use the Button or Link `icon` prop — do NOT add a separate Icon component alongside.

2 required

Link

Text-styled hyperlink. Always renders as <a>. Use this for inline text links, 'read more' patterns, nav links, and any clickable text that is NOT a button. For filled/outlined CTAs use Button instead.

2 required

List

Semantic ul/ol container. Add only ListItem children for feature bullets, pricing rows, or checklists. Prefer this over raw HTML lists in Text when you need consistent markers (check, bullet, dash, Material icon).

Children1 required

ListItem

Single row inside List. Body HTML in props.text; optional markerStyle/markerIcon overrides the parent list defaults.

1 required

Table

Scrollable wrapper around a semantic HTML table. Children must be TableSection nodes only (thead/tbody/tfoot), never raw rows.

Children1 required

TableCell

td or th cell. Body HTML in props.text; optional colSpan/rowSpan/scope.

1 required

TableRow

A single tr. Children are TableCell only.

Children1 required

TableSection

Maps to thead, tbody, or tfoot. Children are TableRow only.

Children1 required

Text

Rich text component with Tiptap editor support

3 required