[US-14.1 / OBT-246] Standardize borderless action buttons with bordered variants - #33
Conversation
Ghost buttons with text labels (Delete User, Deactivate/Activate, Make/Remove Admin, Clear Location) looked like plain text instead of actionable buttons. Add an outline-destructive Button variant and switch these actions to outline/outline-destructive so they render with a visible border, removing the ad-hoc red className overrides.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
Warning Review limit reached
Next review available in: 42 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: QUIET Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
[US-14.1 / OBT-246] Standardize borderless action buttons with bordered variants
Summary
Several text-labeled action buttons were rendered with
variant="ghost", which has no border. Combined with ad-hoc red color overrides (or no color treatment at all), these actions read as plain inline text rather than clickable buttons. This PR introduces a dedicatedoutline-destructiveButton variant and migrates the affected buttons to bordered variants: destructive actions now useoutline-destructive, and neutral toggle actions use the existingoutlinevariant. Icon-only table actions and navigation buttons keep theghostvariant, where the borderless look remains correct.Changes
outline-destructiveButton variant —src/components/ui/button.tsx: added a variant right afteroutlinewith a red border,bg-surfacebackground, red text, red-tinted hover, and full dark mode support (dark:border-red-800/40 dark:text-red-400 dark:hover:bg-red-950/30). This centralizes the destructive-outline styling that was previously duplicated as className overrides.src/components/pages/UserDetailPage.tsx: switched fromghostwith red className overrides tovariant="outline-destructive". The overrides (text-red-600 hover:text-red-700 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-950/30) were removed; onlyshrink-0remains in the className and the Trash2 icon is kept.src/components/pages/UserDetailPage.tsx: switched fromghosttovariant="outline"so these toggle actions render as visible bordered buttons.src/components/pages/ProjectDetailPage.tsx: switched fromghostwithclassName="text-red-600 dark:text-red-400"tovariant="outline-destructive", removing the ad-hoc className.Type of Change
Testing
npm run devand log in as a platform admin./app/users/:userId):bg-surfacebackground; hover shows a light red background. Trash2 icon still present.border-red-800/40,text-red-400, and ared-950/30hover background; outline buttons keep the areia border.