UI Fixes: Button Styling and Tab Navigation Improvements (#119)

* Fix server column alignment in installed scripts table

- Add text-left class to server column td element
- Add inline-block class to server name span element
- Ensures server column content aligns with header like other columns

* Fix UpdateableBadge overflow on smaller screens

- Add flex-wrap and gap classes to badge containers in ScriptCard and ScriptCardList
- Prevents badges from overflowing card boundaries on narrow screens
- Maintains proper spacing with gap-1/gap-2 for wrapped elements
- Improves responsive design for mobile and laptop screens

* Enhance action buttons with blueish theme and hover animations

- Update Edit, Update, Delete, Save, and Cancel buttons with color-coded themes
- Edit: Blue theme (bg-blue-50, text-blue-700)
- Update: Cyan theme (bg-cyan-50, text-cyan-700)
- Delete: Red theme (bg-red-50, text-red-700)
- Save: Green theme (bg-green-50, text-green-700)
- Cancel: Gray theme (bg-gray-50, text-gray-700)
- Add hover effects: scale-105, shadow-md, color transitions
- Apply consistent styling to both table and mobile card views
- Disabled buttons prevent scale animation and show proper cursor states

* Tone down button colors for better dark theme compatibility

- Replace bright flashbang colors with subtle dark theme variants
- Use 900-level colors with 20% opacity for backgrounds
- Use 300-level colors for text with 200-level on hover
- Use 700-level colors with 50% opacity for borders
- Maintain color coding but with much more subtle appearance
- Better contrast and readability against dark backgrounds
- No more flashbang effect! 😅

* Refactor button styling with semantic variants for uniform appearance

- Add semantic button variants: edit, update, delete, save, cancel
- Each variant has consistent dark theme colors and hover effects
- Remove custom className overrides from all button instances
- Centralize styling in Button component for maintainability
- All action buttons now use semantic variants instead of custom classes
- Much cleaner code and consistent styling across the application

* Remove rounded bottom border from active tab

- Add rounded-t-md rounded-b-none classes to active tab styling
- Creates flat bottom edge that connects seamlessly with content below
- Applied to all three tabs: Available Scripts, Downloaded Scripts, Installed Scripts
- Maintains rounded top corners for visual appeal while removing bottom rounding

* Apply flat bottom edge to tab hover states

- Add hover:rounded-t-md hover:rounded-b-none to inactive tab hover states
- Ensures consistent flat bottom edge on both active and hover states
- Creates uniform visual behavior across all tab interactions
- Maintains rounded top corners while removing bottom rounding on hover
This commit is contained in:
Michel Roegl-Brunner
2025-10-13 13:14:11 +02:00
committed by GitHub
parent 7a550bbd61
commit c12c96cfb9
6 changed files with 26 additions and 20 deletions

View File

@@ -816,9 +816,9 @@ export function InstalledScriptsTab() {
)
)}
</td>
<td className="px-6 py-4 whitespace-nowrap">
<td className="px-6 py-4 whitespace-nowrap text-left">
<span
className="text-sm px-3 py-1 rounded"
className="text-sm px-3 py-1 rounded inline-block"
style={{
backgroundColor: script.server_color ?? 'transparent',
color: script.server_color ? getContrastColor(script.server_color) : 'inherit'
@@ -842,14 +842,14 @@ export function InstalledScriptsTab() {
<Button
onClick={handleSaveEdit}
disabled={updateScriptMutation.isPending}
variant="default"
variant="save"
size="sm"
>
{updateScriptMutation.isPending ? 'Saving...' : 'Save'}
</Button>
<Button
onClick={handleCancelEdit}
variant="outline"
variant="cancel"
size="sm"
>
Cancel
@@ -859,7 +859,7 @@ export function InstalledScriptsTab() {
<>
<Button
onClick={() => handleEditScript(script)}
variant="default"
variant="edit"
size="sm"
>
Edit
@@ -867,7 +867,7 @@ export function InstalledScriptsTab() {
{script.container_id && (
<Button
onClick={() => handleUpdateScript(script)}
variant="link"
variant="update"
size="sm"
>
Update
@@ -875,7 +875,7 @@ export function InstalledScriptsTab() {
)}
<Button
onClick={() => handleDeleteScript(Number(script.id))}
variant="destructive"
variant="delete"
size="sm"
disabled={deleteScriptMutation.isPending}
>