[feat]: Create `<pf-v6-drawer>` element
還沒有人認領這個 Issue。
評估
- 難度
- 5/5
- 預估耗時
- 一週以上
- 新手友好度
- 45/100
- Issue 類型
- 功能
- 描述清晰度
- 基本清楚
- 活躍度
- 冷清
- 技術堆疊
- html, typescript
- 領域
- frontend
研究方向
Start with .claude/ADVICE.md, then review the existing elements in cem and cockpit for API and behavior guidance. Define the element, named slots, attributes, properties, events, demos, and tests described in the issue, including accessibility and focus management. Done means the v6 visual design and React Drawer feature parity are covered, reviews pass, and a changeset is added for staging/pfv6.
由索引模型根據 Issue 內容生成。
描述
Summary
Create `` to implement the PatternFly v6 Drawer component.
Slide-out panel overlay or inline panel for secondary content, details, or actions.
Prior Art
| Source | Element | Status |
|---|---|---|
| PFE v4 | -- | -- |
| cem | `` | Exists |
| cockpit | `` | Exists |
| chickadee | -- | -- |
Requirements
- MUST implement PFv6 visual designs
- MUST provide end-user feature parity with `@patternfly/react-core` Drawer
- 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
- React `isExpanded` / `defaultExpanded` - open/close state; map to `expanded` attribute; emit `toggle` event
- React `isInline` - panel is inline (pushes content) vs overlay (overlaps); map to `inline` attribute
- React `isStatic` - always visible, no toggle; map to `static` attribute
- React `position`: `right`, `left`, `bottom` - map to `position` attribute
- React `onExpand` - called after animation ends; emit `expanded` event
- React sub-components: `DrawerContent`, `DrawerContentBody`, `DrawerPanelContent`, `DrawerPanelBody`, `DrawerHead`, `DrawerActions`, `DrawerCloseButton` - use named slots
- Panel width/height as CSS custom property (default ~50%)
- Responsive: panel may become full-width on mobile
- Focus management: when drawer opens, focus should move into the panel; on close, return to trigger
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`)
- 主要語言
- TypeScript
- 星號
- 394
- 分支
- 107
- PR 合併指標
- 30 天內沒有已合併 PR
環境準備
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
patternfly/patternfly-elements 的其他 Issue
-
[bug] ssr-shims.js uses deprecated globalThis.litSsrCallConnectedCallback可能重新可做 @zeroedin 於 52 天前認領,目前沒有進行中的 PR。 未關閉bug
patternfly/patternfly-elements#3158 · 已指派 1 人 ·
-
chore: evaluate removing isolatedDeclarations from tsconfig可能重新可做 @bennypowers 於 142 天前認領,目前沒有進行中的 PR。 未關閉
patternfly/patternfly-elements#3136 · 1 則留言 · 已指派 1 人 ·
-
chore: update docs scaffolding for v6 elements可能重新可做 @zeroedin 於 142 天前認領,目前沒有進行中的 PR。 未關閉docs
patternfly/patternfly-elements#3131 · 已指派 1 人 ·
-
難度 4/5 3-5 天 新手友好度 55/100
patternfly/patternfly-elements#3122 ·
-
難度 5/5 一週以上 新手友好度 38/100
patternfly/patternfly-elements#3118 ·
查看 patternfly/patternfly-elements 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 78/100
melgarafael/DeskcommCRM#1812 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 84/100
prisma/prisma-cli#309 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 78/100
gregwebs/pi-quota-dispatcher#26 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 74/100
openwatersio/slackwater.xyz#124 ·
維護者通常 1 天內回覆
-
agent-reported area/browser area/docs documentation good first issue hacktoberfest help wanted P2
難度 1/5 1 小時以內 新手友好度 90/100
維護者通常 2 天內回覆