fix: resolve 7 critical UI issues - charts, layouts, and mobile responsiveness
All checks were successful
Build and Push Docker Image to Gitea / build-and-push (push) Successful in 1m8s
All checks were successful
Build and Push Docker Image to Gitea / build-and-push (push) Successful in 1m8s
This commit fixes all reported UI issues across the dashboard: ## Issue 1: Chart Colors and Tooltips ✅ - Create chartColors utility with static hex colors for Recharts compatibility - Replace CSS variable colors (hsl(var(--))) with hex colors in all charts - Add custom tooltip styling with dark background and white text for readability - Fixes: ProcessStateChart, ProcessUptimeChart, GroupStatistics ## Issue 2: Process Card Heights ✅ - Add h-full and flex flex-col to ProcessCard component - Add auto-rows-fr to process grid layout - Ensures all cards have consistent heights regardless of content ## Issue 3: Batch Actions Button Labels ✅ - Simplify button labels from "Start Selected" to "Start" - Remove "Stop Selected" to "Stop", "Restart Selected" to "Restart" - Labels now always visible on all screen sizes ## Issue 4: Mobile Menu Background ✅ - Change mobile menu from semi-transparent (bg-background/95) to solid (bg-background) - Removes backdrop blur for better visibility ## Issue 5: Group Header Button Overflow ✅ - Add flex-wrap to button container in GroupCard - Stack buttons vertically on mobile (flex-col md:flex-row) - Buttons take full width on mobile, auto width on desktop ## Issue 6: Logs Search Input Overflow ✅ - Change LogSearch from max-w-md to w-full sm:flex-1 sm:max-w-md - Search input now full width on mobile, constrained on desktop ## Issue 7: Logs Action Button Overflow ✅ - Add flex-wrap to LogControls button container - Buttons wrap to new row when space is limited 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
53
lib/utils/chartColors.ts
Normal file
53
lib/utils/chartColors.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* Chart color utilities for Recharts compatibility
|
||||
*
|
||||
* Recharts doesn't properly parse CSS custom properties or OKLCH colors,
|
||||
* so we provide static hex colors that work reliably across themes.
|
||||
*/
|
||||
|
||||
export const chartColors = {
|
||||
primary: '#3b82f6', // Blue
|
||||
success: '#22c55e', // Green
|
||||
warning: '#eab308', // Yellow
|
||||
destructive: '#ef4444', // Red
|
||||
accent: '#06b6d4', // Cyan
|
||||
muted: '#9ca3af', // Gray
|
||||
running: '#22c55e', // Same as success
|
||||
stopped: '#6b7280', // Darker gray
|
||||
fatal: '#ef4444', // Same as destructive
|
||||
starting: '#eab308', // Same as warning
|
||||
backoff: '#f97316', // Orange
|
||||
stopping: '#fb923c', // Light orange
|
||||
exited: '#9ca3af', // Same as muted
|
||||
unknown: '#64748b', // Slate
|
||||
};
|
||||
|
||||
/**
|
||||
* Get color for process state
|
||||
*/
|
||||
export function getStateColor(state: string): string {
|
||||
const stateMap: Record<string, string> = {
|
||||
running: chartColors.running,
|
||||
stopped: chartColors.stopped,
|
||||
fatal: chartColors.fatal,
|
||||
starting: chartColors.starting,
|
||||
backoff: chartColors.backoff,
|
||||
stopping: chartColors.stopping,
|
||||
exited: chartColors.exited,
|
||||
unknown: chartColors.unknown,
|
||||
};
|
||||
|
||||
return stateMap[state.toLowerCase()] || chartColors.muted;
|
||||
}
|
||||
|
||||
/**
|
||||
* Color palette for multiple data series
|
||||
*/
|
||||
export const colorPalette = [
|
||||
chartColors.primary,
|
||||
chartColors.success,
|
||||
chartColors.warning,
|
||||
chartColors.accent,
|
||||
chartColors.destructive,
|
||||
chartColors.muted,
|
||||
];
|
||||
Reference in New Issue
Block a user