## Summary Create a `<pf-v6-page>` web component implementing the PatternFly v6 [Page](https://www.patternfly.org/components/page) component. Top-level application layout providing masthead, sidebar, and main content areas with responsive behavior. ## Prior Art | Source | Element | Status | |--------|---------|--------| | PFE v4 | -- | -- | | cem | `<pf-v6-page>` | Exists | | cockpit | `<pf-v6-page>` | Exists | | chickadee | -- | -- | ## Sub-components - `<pf-v6-page-sidebar>` - Collapsible sidebar container - `<pf-v6-page-section>` - Content section within the main area ## Requirements - MUST implement PFv6 visual designs - MUST provide end-user feature parity with `@patternfly/react-core` Page - MAY adjust element API to leverage web platform strengths - SHOULD maintain CSS custom property theming compatibility - SHOULD expose useful CSS shadow parts ## Element-specific considerations - `isManagedSidebar` prop: page controls sidebar open/close state - `isNavOpen` / `defaultNavOpen` for sidebar visibility - `mainContainerId` for skip-to-content link target (coordinate with `pf-v6-skip-to-content`) - Named slots: `masthead`, `sidebar`, `breadcrumb`, `notification-drawer`, default (main content) - `PageSection`: `variant` (default/light/dark/darker), `padding`, `isFilled`, `isWidthLimited` - `PageSidebar`: `isSidebarOpen`, `theme` (light/dark) - Breadcrumb and notification drawer slot integration - Main area `<main>` element should have `id` matching `mainContainerId` ## Checklist ### Implementation - [ ] API per `.claude/ADVICE.md` - [ ] CSS uses v6 tokens, logical properties, nesting - [ ] `@summary` and JSDoc on element class ### Demos - [ ] Demos match patternfly.org naming/structure - [ ] CSS custom properties match computed styles from patternfly.org (Chrome MCP) - [ ] Visual parity verified via Chrome MCP ### Tests - [ ] Public API covered (attributes, properties, events, slots) - [ ] `a11ySnapshot` assertions ### Reviews - [ ] `/review-api` passes - [ ] `/review-demos` passes - [ ] `/review-a11y` passes - [ ] `eslint` and `stylelint` pass ### Ship - [ ] Add changeset - [ ] PR targets `staging/pfv6` (NOT `main`)
Activity