You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement Tooltip component using v2 design tokens
Goals & Requirements
Implement default variant of the Tooltip component
Support conditional rendering with showTitle and showHelpText props
Rename description prop to helpText for clarity
Maintain all existing functionality and props
shortCut variant of the Tooltip component needs more discussion
Design Details
exporttypeTooltipVariant='default'|'shortcut'interfaceBaseTooltipProps{// Common propschildren: ReactNodecontent: ReactNodedisabled?: booleanicon?: IconSourceplacement?: TooltipPositionoffset?: numbercontainer?: HTMLElementkeepInContainer?: booleanallowHover?: booleandelayShow?: numberdelayHide?: numberdefaultShow?: booleanonShow?: ()=>voidonHide?: ()=>void}interfaceDefaultTooltipPropsextendsBaseTooltipProps{variant?: TooltipVariant.defaultshowTitle?: booleanshowHelpText?: booleantitle?: ReactNodehelpText?: ReactNode}interfaceShortcutTooltipPropsextendsBaseTooltipProps{variant: TooltipVariant.shortcut// shortcut variant specific props can be added here}exporttypeTooltipProps=DefaultTooltipProps|ShortcutTooltipProps
Use Cases
// 0. Most basic tooltip<Tooltipcontent="Tooltip"><Button>Hover me</Button></Tooltip>// 1. Basic text tooltip with emoji and help text<Tooltipcontent={<HStackspacing={4}><Text>🏝️ 반차중 이라고요허허</Text></HStack>}showHelpTexthelpText="07-17 11:59 PM까지"><StatusBadge>반차중</StatusBadge></Tooltip>// 2. Complex tooltip with title and help text<Tooltipcontent={<VStackspacing={4}><Text>[Add] 배송조회 버튼 추가함</Text><Text>[Delete] 시작단계에 있던 '상담원 연결하기' 버튼 삭제</Text><Text>[Modify] 시작단계 메시지 포맷하게 수정</Text></VStack>}showTitletitle="배송 버튼 추가 /수정"showHelpTexthelpText="07-17 11:59 PM"><Button>History</Button></Tooltip>// 3. Shortcut tooltip// shortcut variant use case can be added here
Design Details엔 디자인 시스템 컴포넌트에 대한 링크를 달아놓기보다, 코드로 구현했을 때 어떤 인터페이스를 가져야할지에 대해 작성해주시면 좋을 거 같아요
Use cases에 대해선 content prop에 대한 기본적인 예제 외에도, 기존 인터페이스의 어떤 부분을 유지시킬지, 새로운 컴포넌트 스펙과 충돌하는 부분은 어떻게 마이그레이션할 지 등 자세한 실제 사용처 에제들을 보여주시면 좋을 거 같아요. 예컨대 툴팁의 content 속성은 그대로 유지해야할지? 아니면 컴포넌트 스펙과 맞게 text 속성으로 이름을 변경해야할지? 같은 고민이 있을 거 같습니다.
Summary
Tooltip
component using v2 design tokensGoals & Requirements
default
variant of theTooltip
componentshowTitle
andshowHelpText
propsdescription
prop tohelpText
for clarityshortCut
variant of theTooltip
component needs more discussionDesign Details
Use Cases
Migration Considerations
description
→helpText
Accessibility
Radix UI Base Accessibility
role="tooltip"
applicationaria-describedby
,aria-labelledby
) managementTest Plan
1. Core Functionality
2. Visual Testing
Alternatives
1. Radix UI Based Implementation (Selected)
2. Pure DOM Implementation
References
1. Accessibility Guidelines
2. Design System References
3. Internal References
The text was updated successfully, but these errors were encountered: