refactor: redesign dashboard metrics with professional styling
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:
2026-06-28 10:07:33 +09:00
parent 114ab22197
commit d09726c46a
2 changed files with 173 additions and 74 deletions
+134 -36
View File
@@ -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;
}
}