Design consistency audit fixes: alerts, cards, dark mode, utilities
Alert sweep (113 alerts, 79 files):
All persistent static banners now carry alert-permanent so the
layout's 5-second auto-dismiss cannot swallow guidance, warnings,
or validation errors. Transient dismissible toasts left untouched.
CSS fixes (site.css):
.card.shadow-sm — strips rogue border from ~40 drifted cards
.card-header.bg-white — rebinds to var(--bs-body-bg) so card
headers follow dark/light theme correctly
Typography utilities — .text-2xs (.68rem), .text-xs (.73rem)
Token color classes — .text-ember, .text-ok, .text-bad,
.text-warn, .text-cool, .bg-paper-2
Layout utilities — .mw-xs/sm/md/lg replace inline max-width
Comment — documents text-ember vs text-primary intent
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
@{
|
||||
@{
|
||||
ViewData["Title"] = "Storage Migration";
|
||||
ViewData["PageIcon"] = "bi-cloud-upload";
|
||||
bool mediaExists = ViewBag.MediaExists;
|
||||
@@ -26,7 +26,7 @@
|
||||
<small class="text-muted">@ViewBag.MediaPath</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert alert-info mb-0">
|
||||
<div class="alert alert-info alert-permanent mb-0">
|
||||
<i class="bi bi-info-circle me-1"></i>
|
||||
These files will be uploaded to Azure Blob Storage. Files already present in Azure will be skipped automatically.
|
||||
</div>
|
||||
@@ -82,7 +82,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- Mobile card view — shown on screens < 992px -->
|
||||
<!-- Mobile card view — shown on screens < 992px -->
|
||||
<div class="mobile-card-view d-lg-none p-3">
|
||||
<div class="mobile-card-list">
|
||||
<div class="mobile-data-card">
|
||||
@@ -148,7 +148,7 @@
|
||||
</div>
|
||||
<div class="form-text text-warning">
|
||||
<i class="bi bi-exclamation-triangle me-1"></i>
|
||||
Leave unchecked on the first run. Files already in Azure are always skipped — re-running is safe.
|
||||
Leave unchecked on the first run. Files already in Azure are always skipped — re-running is safe.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -156,7 +156,7 @@
|
||||
<i class="bi bi-cloud-upload me-2"></i>Start Migration
|
||||
</button>
|
||||
<span class="ms-3 text-muted d-none" id="migrationSpinner">
|
||||
<span class="spinner-border spinner-border-sm me-1"></span>Migrating @localFileCount files, please wait…
|
||||
<span class="spinner-border spinner-border-sm me-1"></span>Migrating @localFileCount files, please wait…
|
||||
</span>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@using PowderCoating.Application.Interfaces
|
||||
@using PowderCoating.Application.Interfaces
|
||||
@model StorageMigrationResult
|
||||
|
||||
@{
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
@if (Model.HasErrors)
|
||||
{
|
||||
<div class="alert alert-danger mb-4">
|
||||
<div class="alert alert-danger alert-permanent mb-4">
|
||||
<h6 class="alert-heading"><i class="bi bi-exclamation-triangle me-1"></i>Errors (@Model.Errors.Count)</h6>
|
||||
<ul class="mb-0 small">
|
||||
@foreach (var error in Model.Errors)
|
||||
@@ -65,7 +65,7 @@
|
||||
|
||||
@if (Model.Total == 0)
|
||||
{
|
||||
<div class="alert alert-info">
|
||||
<div class="alert alert-info alert-permanent">
|
||||
<i class="bi bi-info-circle me-1"></i>No files were found in the local media directory.
|
||||
</div>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user