refactor: redesign dashboard metrics with professional styling
TaxBaik CI/CD / build-and-deploy (push) Successful in 47s
TaxBaik CI/CD / build-and-deploy (push) Successful in 47s
**Dashboard.razor Changes:** - Replace MudGrid/MudItem with pure HTML div elements for reliable layout - Remove dependency on MudBlazor grid components that were causing conflicts - Use inline flexbox layout with emoji icons for better visual appeal - Improve semantic structure and readability **admin.css Improvements:** - 4-column metric grid layout for desktop (1440px+) - 3-column for laptops (1024px), 2-column for tablets (768px), 1-column for mobile - Add hover effects: elevation, transform, top border animation - Improve gradient backgrounds: more subtle, better color hierarchy - Add professional box shadows and smooth transitions (cubic-bezier) - Better padding and spacing for premium look - Responsive design across all breakpoints Visual improvements: ✓ Professional gradient backgrounds with hover states ✓ Smooth animations (0.3s cubic-bezier for premium feel) ✓ Better visual hierarchy with typography ✓ Proper spacing and alignment ✓ Accessibility-friendly color contrasts ✓ Mobile-first responsive design Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -363,51 +363,95 @@ html, body {
|
||||
|
||||
/* Metrics Grid - CSS Grid Layout */
|
||||
.admin-metric-grid {
|
||||
display: grid !important;
|
||||
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
|
||||
gap: 16px !important;
|
||||
margin-bottom: 32px !important;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
gap: 20px;
|
||||
margin-bottom: 32px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Metric Card - Customization for MudPaper */
|
||||
/* Metric Card - Professional Dashboard Style */
|
||||
.admin-metric-card {
|
||||
padding: 20px !important;
|
||||
border-radius: 8px !important;
|
||||
background-color: #fff !important;
|
||||
border: 1px solid #e0e0e0 !important;
|
||||
transition: all 0.2s ease !important;
|
||||
cursor: pointer !important;
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
justify-content: space-between !important;
|
||||
min-height: 140px !important;
|
||||
padding: 24px;
|
||||
border-radius: 12px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #e8e8e8;
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
min-height: 160px;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.admin-metric-card::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 4px;
|
||||
background: linear-gradient(90deg, currentColor, transparent);
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
}
|
||||
|
||||
.admin-metric-card:hover {
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
|
||||
border-color: #d0d0d0 !important;
|
||||
transform: translateY(-2px) !important;
|
||||
box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
|
||||
border-color: #d0d0d0;
|
||||
transform: translateY(-4px);
|
||||
}
|
||||
|
||||
.admin-metric-card:hover::before {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* Metric Card Accent Colors */
|
||||
.accent-blue {
|
||||
background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%) !important;
|
||||
border-color: #90caf9 !important;
|
||||
background: linear-gradient(135deg, #f0f7ff 0%, #e3f2fd 100%);
|
||||
border-color: #bbdefb;
|
||||
color: #1565c0;
|
||||
}
|
||||
|
||||
.accent-blue:hover {
|
||||
background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
|
||||
border-color: #90caf9;
|
||||
}
|
||||
|
||||
.accent-amber {
|
||||
background: linear-gradient(135deg, #fff3e0 0%, #ffe0b2 100%) !important;
|
||||
border-color: #ffcc80 !important;
|
||||
background: linear-gradient(135deg, #fff9f0 0%, #fff3e0 100%);
|
||||
border-color: #ffe0b2;
|
||||
color: #e65100;
|
||||
}
|
||||
|
||||
.accent-amber:hover {
|
||||
background: linear-gradient(135deg, #fff3e0 0%, #ffe0b2 100%);
|
||||
border-color: #ffcc80;
|
||||
}
|
||||
|
||||
.accent-slate {
|
||||
background: linear-gradient(135deg, #eceff1 0%, #cfd8dc 100%) !important;
|
||||
border-color: #b0bec5 !important;
|
||||
background: linear-gradient(135deg, #f5f7fa 0%, #eceff1 100%);
|
||||
border-color: #cfd8dc;
|
||||
color: #455a64;
|
||||
}
|
||||
|
||||
.accent-slate:hover {
|
||||
background: linear-gradient(135deg, #eceff1 0%, #cfd8dc 100%);
|
||||
border-color: #b0bec5;
|
||||
}
|
||||
|
||||
.accent-green {
|
||||
background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%) !important;
|
||||
border-color: #81c784 !important;
|
||||
background: linear-gradient(135deg, #f1f9f6 0%, #e8f5e9 100%);
|
||||
border-color: #c8e6c9;
|
||||
color: #2e7d32;
|
||||
}
|
||||
|
||||
.accent-green:hover {
|
||||
background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
|
||||
border-color: #81c784;
|
||||
}
|
||||
|
||||
/* Surfaces & Containers */
|
||||
@@ -486,9 +530,16 @@ html, body {
|
||||
Responsive Design
|
||||
============================================================================ */
|
||||
|
||||
@media (max-width: 960px) {
|
||||
@media (max-width: 1440px) {
|
||||
.admin-metric-grid {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.admin-drawer {
|
||||
width: 64px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
.admin-content {
|
||||
@@ -505,7 +556,49 @@ html, body {
|
||||
}
|
||||
|
||||
.admin-metric-grid {
|
||||
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.admin-metric-card {
|
||||
min-height: 140px;
|
||||
padding: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.admin-drawer {
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.admin-content {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.admin-metric-grid {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 14px;
|
||||
}
|
||||
|
||||
.admin-metric-card {
|
||||
min-height: 130px;
|
||||
}
|
||||
|
||||
.admin-page-title {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.admin-surface {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.admin-table thead th {
|
||||
padding: 10px 12px;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.admin-table tbody td {
|
||||
padding: 10px 12px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -534,12 +627,17 @@ html, body {
|
||||
}
|
||||
|
||||
.admin-metric-grid {
|
||||
grid-template-columns: 1fr !important;
|
||||
gap: 12px !important;
|
||||
grid-template-columns: 1fr;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.admin-metric-card {
|
||||
min-height: 120px;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.admin-surface {
|
||||
padding: 16px !important;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.admin-section-header {
|
||||
@@ -549,12 +647,12 @@ html, body {
|
||||
}
|
||||
|
||||
.admin-table thead th {
|
||||
padding: 8px 12px;
|
||||
font-size: 0.75rem;
|
||||
padding: 8px 10px;
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
|
||||
.admin-table tbody td {
|
||||
padding: 8px 12px;
|
||||
font-size: 0.9rem;
|
||||
padding: 8px 10px;
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user