Comfy-Org / Comfy-Org/ComfyUI_frontend
Consider promoting EssentialNodeCard to a design system component
- Dominant language
- TypeScript
- Stars
- 2k
- Forks
- 699
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 490
Description
## Background
During review of PR #12744 (Essentials tab redesign), a question was raised about whether `EssentialNodeCard.vue` is special enough to warrant being a dedicated application-level component, or whether it should instead live in the design system as a reusable component.
## Context
`EssentialNodeCard.vue` renders a square card tile with an icon, a multi-line text ticker label, drag-to-canvas behavior, and a hover preview. The card is currently tightly coupled to the Essentials node library tab.
**File:** `src/components/sidebar/tabs/nodeLibrary/EssentialNodeCard.vue`
**PR:** https://github.com/Comfy-Org/ComfyUI_frontend/pull/12744
**Review comment:** https://github.com/Comfy-Org/ComfyUI_frontend/pull/12744#discussion_r3397625856
## Question to resolve
- Is the card layout/pattern (icon + multiline ticker label, square aspect ratio, grab cursor) generic enough to belong in the design system (e.g., `packages/design-system`)?
- If promoted, what props/slots interface should the design system component expose so it remains decoupled from ComfyUI-specific concerns (node defs, drag-to-canvas, etc.)?
- If kept as an app-level component, should it at least be moved to a more shared location (e.g., `src/components/common/`) so other panels can reuse it?
## Requested by
@DrJKL
Contributor guide
Assessment
This issue has not been assessed yet.