title: Components
shell: standard

components:
  - type: breadcrumb
    items:
      - label: Home
        href: ../index.html
      - label: Components

  - type: header
    title: Components
    eyebrow: Reference
    subtitle: 30 primitives organized by purpose. Each shows the YAML you write and the output.

  - type: card_grid
    cards:
      - title: Content
        badge:
          label: "8"
          color: default
        description: "header, meta, markdown, code, image, callout, blockquote, kbd"
        links:
          - label: Open →
            href: content.html

      - title: Grids
        badge:
          label: "6"
          color: default
        description: "card_grid, stat_grid, selectable_grid, before_after, avatar_group, definition_list"
        links:
          - label: Open →
            href: grids.html

      - title: Charts
        badge:
          label: new
          color: teal
        description: "pie, bar (vertical/horizontal), timeseries — inline SVG, themed, stackable"
        links:
          - label: Open →
            href: charts.html

      - title: Interactive
        badge:
          label: "3"
          color: default
        description: "table, tabs, accordion"
        links:
          - label: Open →
            href: interactive.html

      - title: Layout
        badge:
          label: "6"
          color: default
        description: "section, columns, divider, timeline, steps, progress_bar, empty_state"
        links:
          - label: Open →
            href: layout.html

      - title: Indicators
        badge:
          label: new
          color: teal
        description: "badge, tag, status, progress_bar, kbd, divider"
        links:
          - label: Open →
            href: indicators.html

      - title: Navigation
        badge:
          label: new
          color: teal
        description: "breadcrumb, button_group"
        links:
          - label: Open →
            href: navigation.html

  - type: section
    eyebrow: Every component shares a pattern
    heading: type + props
    components:
      - type: markdown
        body: |
          Every component in a page's `components:` list has a `type:` field (snake_case name)
          and its own property fields. Nothing else. Consistent shape makes LLM generation
          trivial — the model just picks the type and fills the props.

      - type: code
        language: yaml
        code: |
          components:
            - type: header              # required: the component type
              title: My Page            # component-specific props
              subtitle: optional
              eyebrow: optional

            - type: card_grid
              cards: [...]

            - type: markdown
              body: |
                free-form prose

  - type: callout
    variant: info
    title: Next up
    body: Start with content primitives — headers, markdown, code blocks, callouts, images. The building blocks every page uses.
    links:
      - label: Content components
        href: content.html
        variant: primary
      - label: See examples
        href: ../about.html
        variant: secondary
