-
Notifications
You must be signed in to change notification settings - Fork 155
Description
Motivation
The ChatBox application uses icon-only buttons throughout its interface (such as ⋮, ⚙️, 🧹, etc.). While icons provide a clean, minimal design, they can be confusing for new users who may not immediately understand what each button does. Without text labels or tooltips, users must rely on trial and error to discover functionality, which creates a poor first-time user experience.
Adding tooltips to icon buttons is a standard UX practice that improves discoverability and accessibility. Tooltips provide contextual help exactly when users need it - at the moment they hover over a button - without cluttering the interface. This is especially important for an AI chat application where users need to quickly understand available actions like regenerating responses, clearing messages, or accessing settings.
Current Behavior
Icon buttons throughout the application have no tooltips or hover hints. Users must click buttons to discover their functionality, which can be frustrating and may lead to accidental actions.
Reproduction Steps:
- Launch the ChatBox application
- Hover over any icon button (settings gear icon, three-dot menu, cleaning icon, etc.)
- Observe: No tooltip appears to explain what the button does
- User must click the button to discover its purpose
Affected Components:
- Main application toolbar icons
- Session list item action buttons
- Message block action buttons (refresh, more options, save)
- Sidebar menu icons (new chat, settings, version info)
Expected Behavior
When a user hovers over any icon button in the application, a descriptive tooltip should appear near the cursor explaining what the button does. The tooltip should use clear, concise language and appear/disappear smoothly as the user moves their mouse.
Acceptance Criteria:
- All icon buttons in App.tsx display tooltips on hover
- All icon buttons in Block.tsx (message actions) display tooltips on hover
- All icon buttons in SessionItem.tsx display tooltips on hover
- Tooltip text is descriptive and uses action-oriented language (e.g., "Open settings" not just "Settings")
- Tooltips appear near the hovered element and don't obstruct other UI elements
- Tooltips use Material-UI's Tooltip component for consistency
Verification
Manual Testing:
- Start the ChatBox application in development mode
- Navigate to the main chat interface
- Hover over the ChatBox logo icon and verify tooltip shows "ChatBox"
- Hover over the settings gear icon and verify tooltip shows "Open settings"
- Hover over the "+" icon and verify tooltip shows "Create new chat"
- Hover over the info icon and verify tooltip shows "Check for updates"
- In the message area, hover over the cleaning icon and verify tooltip shows "Clear all messages"
- In the message area, hover over the chat bubble icon and verify tooltip shows "Current conversation"
- Create a test message and hover over it to reveal action buttons
- Hover over the refresh icon and verify tooltip shows "Regenerate response"
- Hover over the three-dot menu icon and verify tooltip shows "More actions"
- While editing a message, hover over the checkmark and verify tooltip shows "Save changes"
- In the session list, hover over the chat bubble icon and verify tooltip shows "Chat session"
- In the session list, hover over the horizontal dots icon and verify tooltip shows "Session options"
Expected Results:
- All icon buttons display appropriate tooltips on hover
- Tooltips appear smoothly without lag
- Tooltip text is clear and describes the button's action
- Tooltips disappear when the mouse moves away
- No console errors or warnings
Summary of Tooltips Added:
- 6 tooltips in App.tsx (sidebar and message area)
- 3 tooltips in Block.tsx (message action buttons)
- 2 tooltips in SessionItem.tsx (session list items)
- Total: 11 tooltips across 3 components
All tooltips use Material-UI's <Tooltip> component for consistent styling and behavior with the existing design system.
Submission
Download https://cap.so/ to record your screen (use Studio mode). Export as an mp4, and drag and drop into an issue comment below.
Guide to submitting pull requests: https://hackmd.io/@timothy1ee/Hky8kV3hlx