Styling Update v0.1.5
This document describes the comprehensive styling update applied in v0.1.5 to create a more professional, modern design.
Overview
Previous design issues:
- Generic vaporwave pastel colors
- Hover effects on non-clickable elements
- Excessive animations
- Inconsistent spacing
New design:
- Professional blue-gray palette
- Hover effects only on interactive elements
- Subtle shadows and refined typography
- WCAG compliant contrast ratios
Color Palette Changes
Before (Vaporwave Pastel)
--primary-color: #7c5ce0; /* Purple */
--secondary-color: #00acc1; /* Cyan */
--bg-primary: #fafbff; /* Very light blue */
After (Professional Blue-Gray)
--primary-color: #2563eb; /* Blue */
--secondary-color: #0891b2; /* Teal */
--success-color: #059669; /* Green */
--danger-color: #dc2626; /* Red */
--warning-color: #ea580c; /* Orange */
--bg-primary: #ffffff; /* Pure white */
--bg-secondary: #f8fafc; /* Slate */
--bg-tertiary: #f1f5f9; /* Light slate */
Key Changes
1. Removed Inappropriate Hover Effects
Before:
.card:hover {
box-shadow: var(--shadow-lg);
transform: translateY(-4px); /* Cards "lifted" on hover */
border-color: var(--border-color-hover);
}
After:
.card {
/* No hover effects by default */
}
/* Only interactive cards get hover effects */
.card.card-interactive:hover {
border-color: var(--border-color-hover);
box-shadow: var(--shadow); /* Subtle shadow only */
}
Cards no longer lift on hover unless clickable.
2. Refined Typography
Changes:
- More consistent heading sizes
- Reduced font weights (600 instead of 700 for most headings)
- Added letter-spacing to headings (-0.01em for better readability)
- H6 now uppercase with letter-spacing for label-style headers
- Smaller, more professional font sizes overall
Before:
h1 {
font-size: 2.25rem;
font-weight: 700;
}
After:
h1 {
font-size: 2rem;
font-weight: 700;
letter-spacing: -0.01em;
}
3. Subtle Shadows
Before:
--shadow: 0 3px 6px 0 rgb(0 0 0 / 0.15), 0 2px 4px 0 rgb(0 0 0 / 0.12);
After:
--shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
More subtle, with negative spread values for softer edges.
4. Refined Button Styles
Changes:
- Smaller button sizes (padding reduced)
- Lighter font weight (500 instead of 600)
- Subtle lift on hover (1px instead of 2px)
- Added proper borders to all buttons
- Flex layout with gap for icon+text alignment
Before:
.btn {
padding: 0.625rem 1.25rem;
font-weight: 600;
}
.btn:hover:not(:disabled) {
transform: translateY(-2px);
box-shadow: var(--shadow-md);
}
After:
.btn {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.5rem 1rem;
font-weight: 500;
border: 1px solid transparent;
}
.btn:hover:not(:disabled) {
transform: translateY(-1px);
box-shadow: var(--shadow-sm);
}
5. Table Improvements
New features:
- Uppercase column headers with letter-spacing
- Smaller header font size (0.75rem)
- Better row padding
- Only table-hover gets hover effects (not all tables)
.table thead th {
padding: 0.75rem 1rem;
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--text-secondary);
}
.table-hover tbody tr:hover {
background-color: var(--bg-secondary);
}
6. Consistent Border Radius
Defined radius variables for consistency:
--radius-sm: 6px;
--radius: 8px;
--radius-lg: 12px;
--radius-xl: 16px;
Used consistently across all components.
7. List Group Cleanup
Removed:
- Hover effects from list group items (were inappropriate)
- Transform effects
- Excessive shadows
Result: List items are now static unless they contain interactive elements.
8. Form Improvements
Changes:
- Cleaner input styling
- Better focus states (using outline instead of just shadow)
- Smaller, more compact inputs
- Proper checkbox styling with rounded corners
.form-control:focus {
outline: none;
border-color: var(--border-color-focus);
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
.form-check-input {
width: 1.125rem;
height: 1.125rem;
border-radius: var(--radius-sm);
}
9. Badge Refinement
Changes:
- Smaller padding and font size
- Inline-flex for better alignment
- Removed unnecessary box shadows
.badge {
display: inline-flex;
align-items: center;
padding: 0.25rem 0.625rem;
font-size: 0.75rem;
font-weight: 500;
}
10. Alert Improvements
Changes:
- Flex layout for icon alignment
- Proper dismissible button positioning
- More subtle background colors
Dark Mode
Dark mode colors were updated to match the new professional palette:
@media (prefers-color-scheme: dark) {
:root {
--primary-color: #3b82f6; /* Brighter blue for dark bg */
--bg-primary: #0f172a; /* Slate-900 */
--bg-secondary: #1e293b; /* Slate-800 */
--text-primary: #f1f5f9; /* Slate-100 */
}
}
Navigation Sidebar
Changes:
- Removed transform animations on hover
- Refined spacing and padding
- Compact design
- Improved brand section typography
- Consistent version badge styling
What Didn't Change
The following were preserved:
- Sidebar layout (still vertical on desktop, horizontal on mobile)
- Responsive breakpoints
- Grid system
- Utility classes
- Overall component structure
Migration Notes
No breaking changes. All class names and HTML structure unchanged.
Testing checklist:
- Cards without hover effects
- Only interactive elements have animations
- Professional color palette
- Consistent typography
- Clean forms
- Working dark mode
- Responsive design
- Functional sidebar
Browser Support
The new styles use standard CSS features supported by:
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
CSS custom properties (variables) are used extensively, which requires these minimum versions.
Performance
Improved through:
- Fewer transitions and animations
- Simpler shadow calculations
- Reduced CSS specificity
Accessibility
WCAG 2.1 AA compliance:
- Text contrast ratios meet 4.5:1 minimum
- Clear focus states
- Interactive elements minimum 44x44px
- Information not conveyed by color alone
Before & After
Cards: Pastel purple header, large shadows, lifts on hover → white/slate, subtle shadows, static
Buttons: Chunky with large shadows → compact with subtle elevation
Typography: Large headings, heavy weights → balanced sizes, refined weights
Colors: Purple/cyan vaporwave → blue/slate professional
Future Considerations
Potential future enhancements:
- Custom accent color picker for users
- Additional theme presets (not just light/dark)
- Per-component color customization
- Animation preferences (reduced motion)
- Density options (compact/comfortable/spacious)
Files Changed
wwwroot/app.css- Main stylesheet (complete rewrite)Components/Layout/MainLayout.razor.css- Layout refinementsComponents/Layout/NavMenu.razor.css- Navigation styling updates
Version History
- v0.1.5 - Comprehensive styling update (this document)
- v0.1.4 - Duplicate prevention fixes
- v0.1.3 - Server ID matching improvements
- v0.1.2 - Desktop background workers
- v0.1.1 - Claude Code configuration support