# Articles Index Page

## Essence

Page-content template for listing all public notes/articles.

`Articles Index Page` turns approved article snapshots into a latest-first reading list.

## Hook

Use inside `Page Template` for `/notes/`.

## Internal Rules

- Is page content only; it does not render Header or Page Template.
- Its outer page padding consumes `--spacing-content-top/right/bottom/left`.
- Receives already-filtered public articles.
- Expects articles sorted newest first before rendering.
- Groups article cards by month and year, newest month first.
- Uses `Article Card` for each article.
- Design System preview must use multiple months and enough cards to show multiple rows.
- Renders an empty state when no articles exist.
- Does not fetch or crawl Wiki Articles source material.

## Use When

- Rendering the public all-notes/all-articles page.
- Previewing the article index pattern in the Design System.

## Do Not Use When

- Rendering a homepage section.
- Rendering a full article body.
- Rendering private, draft, review, transcript, or source-note content.

## Props

| Prop | Values | Purpose |
| --- | --- | --- |
| `title` | string | Page title. |
| `description` | string | Introductory text. |
| `articles` | Article Card data[] | Latest-first article previews. |
| `emptyTitle` | string | Empty state heading. |
| `emptyDescription` | string | Empty state body. |

## Accessibility Notes

- Uses a page-level heading.
- Article cards keep each article preview keyboard reachable.
- Empty state should be explicit instead of rendering a blank page.

## Related Components And Patterns

- `Article Card`: one preview item.
- `Page Template`: outer page shell.
- Wiki Articles snapshot contract: source of approved public article metadata.

## Code Paths

- `packages/design-system/src/components/ArticlesIndexPage.astro`
- `apps/portfolio-site/src/pages/notes/index.astro`
