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:
@@ -18,51 +18,52 @@
|
||||
</MudButton>
|
||||
</section>
|
||||
|
||||
<MudGrid Class="admin-metric-grid">
|
||||
<MudItem xs="12" sm="6" md="3">
|
||||
<MudPaper Class="admin-metric-card accent-blue cursor-pointer" Elevation="0" @onclick='(() => Nav.NavigateTo("/taxbaik/admin/inquiries"))' Style="cursor: pointer; transition: transform 0.2s, box-shadow 0.2s;">
|
||||
<MudText Typo="Typo.caption">이번달 문의</MudText>
|
||||
<div class="d-flex align-center justify-space-between">
|
||||
<MudText Typo="Typo.h3">@summary.ThisMonthInquiries</MudText>
|
||||
<MudIcon Icon="@Icons.Material.Filled.Forum" Color="Color.Primary" Size="Size.Large" Style="opacity: 0.2;" />
|
||||
<!-- Metrics Grid - Pure HTML div instead of MudGrid to ensure proper layout -->
|
||||
<div class="admin-metric-grid">
|
||||
<div class="admin-metric-card accent-blue cursor-pointer" @onclick='(() => Nav.NavigateTo("/taxbaik/admin/inquiries"))' style="cursor: pointer;">
|
||||
<div style="display: flex; flex-direction: column; gap: 12px; height: 100%;">
|
||||
<span style="font-size: 0.75rem; color: #999; text-transform: uppercase; font-weight: 600;">이번달 문의</span>
|
||||
<div style="display: flex; justify-content: space-between; align-items: center; flex: 1;">
|
||||
<span style="font-size: 2rem; font-weight: 700; color: #1565c0;">@summary.ThisMonthInquiries</span>
|
||||
<span style="font-size: 2.5rem; opacity: 0.15; color: #1976d2;">💬</span>
|
||||
</div>
|
||||
<MudText Typo="Typo.body2">월간 상담 유입 (클릭 시 이동)</MudText>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
<span style="font-size: 0.9rem; color: #666;">월간 상담 유입 (클릭 시 이동)</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<MudItem xs="12" sm="6" md="3">
|
||||
<MudPaper Class="admin-metric-card accent-amber cursor-pointer" Elevation="0" @onclick='(() => Nav.NavigateTo("/taxbaik/admin/inquiries?status=new"))' Style="cursor: pointer; transition: transform 0.2s, box-shadow 0.2s;">
|
||||
<MudText Typo="Typo.caption">신규 문의</MudText>
|
||||
<div class="d-flex align-center justify-space-between">
|
||||
<MudText Typo="Typo.h3">@summary.NewInquiries</MudText>
|
||||
<MudIcon Icon="@Icons.Material.Filled.NotificationImportant" Color="Color.Warning" Size="Size.Large" Style="opacity: 0.2;" />
|
||||
<div class="admin-metric-card accent-amber cursor-pointer" @onclick='(() => Nav.NavigateTo("/taxbaik/admin/inquiries?status=new"))' style="cursor: pointer;">
|
||||
<div style="display: flex; flex-direction: column; gap: 12px; height: 100%;">
|
||||
<span style="font-size: 0.75rem; color: #999; text-transform: uppercase; font-weight: 600;">신규 문의</span>
|
||||
<div style="display: flex; justify-content: space-between; align-items: center; flex: 1;">
|
||||
<span style="font-size: 2rem; font-weight: 700; color: #e65100;">@summary.NewInquiries</span>
|
||||
<span style="font-size: 2.5rem; opacity: 0.15; color: #f57c00;">⚠️</span>
|
||||
</div>
|
||||
<MudText Typo="Typo.body2">처리 대기 (클릭 시 이동)</MudText>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
<span style="font-size: 0.9rem; color: #666;">처리 대기 (클릭 시 이동)</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<MudItem xs="12" sm="6" md="3">
|
||||
<MudPaper Class="admin-metric-card accent-slate cursor-pointer" Elevation="0" @onclick='(() => Nav.NavigateTo("/taxbaik/admin/blog"))' Style="cursor: pointer; transition: transform 0.2s, box-shadow 0.2s;">
|
||||
<MudText Typo="Typo.caption">전체 포스트</MudText>
|
||||
<div class="d-flex align-center justify-space-between">
|
||||
<MudText Typo="Typo.h3">@summary.TotalPosts</MudText>
|
||||
<MudIcon Icon="@Icons.Material.Filled.Article" Color="Color.Default" Size="Size.Large" Style="opacity: 0.2;" />
|
||||
<div class="admin-metric-card accent-slate cursor-pointer" @onclick='(() => Nav.NavigateTo("/taxbaik/admin/blog"))' style="cursor: pointer;">
|
||||
<div style="display: flex; flex-direction: column; gap: 12px; height: 100%;">
|
||||
<span style="font-size: 0.75rem; color: #999; text-transform: uppercase; font-weight: 600;">전체 포스트</span>
|
||||
<div style="display: flex; justify-content: space-between; align-items: center; flex: 1;">
|
||||
<span style="font-size: 2rem; font-weight: 700; color: #455a64;">@summary.TotalPosts</span>
|
||||
<span style="font-size: 2.5rem; opacity: 0.15; color: #607d8b;">📄</span>
|
||||
</div>
|
||||
<MudText Typo="Typo.body2">콘텐츠 자산 (클릭 시 이동)</MudText>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
<span style="font-size: 0.9rem; color: #666;">콘텐츠 자산 (클릭 시 이동)</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<MudItem xs="12" sm="6" md="3">
|
||||
<MudPaper Class="admin-metric-card accent-green cursor-pointer" Elevation="0" @onclick='(() => Nav.NavigateTo("/taxbaik/admin/blog"))' Style="cursor: pointer; transition: transform 0.2s, box-shadow 0.2s;">
|
||||
<MudText Typo="Typo.caption">발행된 포스트</MudText>
|
||||
<div class="d-flex align-center justify-space-between">
|
||||
<MudText Typo="Typo.h3">@summary.PublishedPosts</MudText>
|
||||
<MudIcon Icon="@Icons.Material.Filled.Public" Color="Color.Success" Size="Size.Large" Style="opacity: 0.2;" />
|
||||
<div class="admin-metric-card accent-green cursor-pointer" @onclick='(() => Nav.NavigateTo("/taxbaik/admin/blog"))' style="cursor: pointer;">
|
||||
<div style="display: flex; flex-direction: column; gap: 12px; height: 100%;">
|
||||
<span style="font-size: 0.75rem; color: #999; text-transform: uppercase; font-weight: 600;">발행된 포스트</span>
|
||||
<div style="display: flex; justify-content: space-between; align-items: center; flex: 1;">
|
||||
<span style="font-size: 2rem; font-weight: 700; color: #2e7d32;">@summary.PublishedPosts</span>
|
||||
<span style="font-size: 2.5rem; opacity: 0.15; color: #388e3c;">🌐</span>
|
||||
</div>
|
||||
<MudText Typo="Typo.body2">검색 노출 대상 (클릭 시 이동)</MudText>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
<span style="font-size: 0.9rem; color: #666;">검색 노출 대상 (클릭 시 이동)</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (upcomingFilings.Count > 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user