style: Standardize all Edit pages with form compaction
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m10s

Apply consistent styling to all Edit pages:
- card-header p-2 + small typography
- card-body p-2 with g-2 spacing
- form-control-sm, form-select-sm, form-label-sm
- btn-sm for all buttons
- Consistent badge and delete button styling

Affected pages: Clients, Announcements, FAQs, Inquiries, Blog

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-07-09 22:14:04 +09:00
parent 16d74c1299
commit bc1373b6b8
4 changed files with 61 additions and 61 deletions
@@ -6,26 +6,26 @@
@await Html.PartialAsync("_AdminPageHeader", new TaxBaik.Web.Models.AdminPageHeaderModel("Content", "공지사항 수정", "기존 공지사항을 Tabler 표준 폼으로 수정합니다.", null, null))
<form method="post" class="card">
<div class="card-header d-flex flex-wrap align-items-center justify-content-between gap-2">
<div class="card-header p-2 d-flex flex-wrap align-items-center justify-content-between gap-2">
<div>
<div class="text-muted small text-uppercase mb-1">불러온 원본</div>
<div class="fw-semibold">@Model.Input.Title</div>
<div class="fw-semibold small">@Model.Input.Title</div>
<div class="text-muted small">유형: @Model.Input.DisplayType</div>
</div>
<span class="badge bg-secondary-lt text-secondary">원본 확인 후 수정</span>
<span class="badge bg-secondary-lt text-secondary small">원본 확인 후 수정</span>
</div>
<div class="card-body">
<div class="card-body p-2">
@await Html.PartialAsync("_ValidationSummary")
<input type="hidden" asp-for="Input.Id" />
<div class="row g-3">
<div class="row g-2">
<div class="col-lg-8">
<label asp-for="Input.Title" class="form-label"></label>
<input asp-for="Input.Title" class="form-control" />
<label asp-for="Input.Title" class="form-label form-label-sm"></label>
<input asp-for="Input.Title" class="form-control form-control-sm" />
<span asp-validation-for="Input.Title" class="text-danger small"></span>
</div>
<div class="col-lg-4">
<label asp-for="Input.DisplayType" class="form-label"></label>
<select asp-for="Input.DisplayType" class="form-select">
<label asp-for="Input.DisplayType" class="form-label form-label-sm"></label>
<select asp-for="Input.DisplayType" class="form-select form-select-sm">
<option value="info">info</option>
<option value="success">success</option>
<option value="warning">warning</option>
@@ -33,35 +33,35 @@
</select>
</div>
<div class="col-12">
<label asp-for="Input.Content" class="form-label"></label>
<textarea asp-for="Input.Content" class="form-control" rows="8"></textarea>
<label asp-for="Input.Content" class="form-label form-label-sm"></label>
<textarea asp-for="Input.Content" class="form-control form-control-sm" rows="8"></textarea>
<span asp-validation-for="Input.Content" class="text-danger small"></span>
</div>
<div class="col-md-4">
<label asp-for="Input.SortOrder" class="form-label"></label>
<input asp-for="Input.SortOrder" class="form-control" type="number" />
<label asp-for="Input.SortOrder" class="form-label form-label-sm"></label>
<input asp-for="Input.SortOrder" class="form-control form-control-sm" type="number" />
</div>
<div class="col-md-4">
<label asp-for="Input.StartsAt" class="form-label"></label>
<input asp-for="Input.StartsAt" class="form-control" type="datetime-local" />
<label asp-for="Input.StartsAt" class="form-label form-label-sm"></label>
<input asp-for="Input.StartsAt" class="form-control form-control-sm" type="datetime-local" />
</div>
<div class="col-md-4">
<label asp-for="Input.EndsAt" class="form-label"></label>
<input asp-for="Input.EndsAt" class="form-control" type="datetime-local" />
<label asp-for="Input.EndsAt" class="form-label form-label-sm"></label>
<input asp-for="Input.EndsAt" class="form-control form-control-sm" type="datetime-local" />
</div>
<div class="col-12">
<label class="form-check">
<input asp-for="Input.IsActive" class="form-check-input" type="checkbox" />
<span class="form-check-label">활성</span>
<span class="form-check-label form-label-sm">활성</span>
</label>
</div>
</div>
</div>
<div class="card-footer d-flex justify-content-between gap-2">
<div class="d-flex gap-2">
<button class="btn btn-outline-danger" type="submit" formaction="?handler=Delete" formmethod="post" onclick="return confirm('정말 삭제하시겠습니까?');">삭제</button>
<a class="btn btn-outline-secondary" href="/admin/announcements">취소</a>
<button class="btn btn-primary" type="submit">저장</button>
<button class="btn btn-outline-danger btn-sm" type="submit" formaction="?handler=Delete" formmethod="post" onclick="return confirm('정말 삭제하시겠습니까?');">삭제</button>
<a class="btn btn-outline-secondary btn-sm" href="/admin/announcements">취소</a>
<button class="btn btn-primary btn-sm" type="submit">저장</button>
</div>
</div>
</form>
+1 -1
View File
@@ -10,7 +10,7 @@
@await Html.PartialAsync("_AdminPageHeader", new TaxBaik.Web.Models.AdminPageHeaderModel("콘텐츠", "글 수정", "블로그 글을 수정합니다.", null, null))
<div class="card">
<div class="card-body">
<div class="card-body p-2">
@await Html.PartialAsync("_BlogEditor", new TaxBaik.Web.Pages.Shared.BlogEditorModel(
Model.Input.Title,
Model.Input.Content,
+17 -17
View File
@@ -6,25 +6,25 @@
@await Html.PartialAsync("_AdminPageHeader", new TaxBaik.Web.Models.AdminPageHeaderModel("Support", "FAQ 수정", "기존 FAQ를 Tabler 표준 폼으로 수정합니다.", null, null))
<form method="post" class="card">
<div class="card-header d-flex flex-wrap align-items-center justify-content-between gap-2">
<div class="card-header p-2 d-flex flex-wrap align-items-center justify-content-between gap-2">
<div>
<div class="text-muted small text-uppercase mb-1">불러온 원본</div>
<div class="fw-semibold">@Model.Input.Question</div>
<div class="fw-semibold small">@Model.Input.Question</div>
<div class="text-muted small">카테고리: @Model.Input.Category</div>
</div>
<span class="badge bg-secondary-lt text-secondary">원본 확인 후 수정</span>
<span class="badge bg-secondary-lt text-secondary small">원본 확인 후 수정</span>
</div>
<div class="card-body">
<div class="card-body p-2">
@await Html.PartialAsync("_ValidationSummary")
<input type="hidden" asp-for="Input.Id" />
<div class="row g-3">
<div class="row g-2">
<div class="col-lg-8">
<label asp-for="Input.Question" class="form-label"></label>
<input asp-for="Input.Question" class="form-control" />
<label asp-for="Input.Question" class="form-label form-label-sm"></label>
<input asp-for="Input.Question" class="form-control form-control-sm" />
</div>
<div class="col-lg-4">
<label asp-for="Input.Category" class="form-label"></label>
<input asp-for="Input.Category" class="form-control" list="faq-categories" />
<label asp-for="Input.Category" class="form-label form-label-sm"></label>
<input asp-for="Input.Category" class="form-control form-control-sm" list="faq-categories" />
<datalist id="faq-categories">
@foreach (var category in Model.Categories)
{
@@ -33,26 +33,26 @@
</datalist>
</div>
<div class="col-12">
<label asp-for="Input.Answer" class="form-label"></label>
<textarea asp-for="Input.Answer" class="form-control" rows="10"></textarea>
<label asp-for="Input.Answer" class="form-label form-label-sm"></label>
<textarea asp-for="Input.Answer" class="form-control form-control-sm" rows="10"></textarea>
</div>
<div class="col-md-4">
<label asp-for="Input.SortOrder" class="form-label"></label>
<input asp-for="Input.SortOrder" class="form-control" type="number" />
<label asp-for="Input.SortOrder" class="form-label form-label-sm"></label>
<input asp-for="Input.SortOrder" class="form-control form-control-sm" type="number" />
</div>
<div class="col-12">
<label class="form-check">
<input asp-for="Input.IsActive" class="form-check-input" type="checkbox" />
<span class="form-check-label">활성</span>
<span class="form-check-label form-label-sm">활성</span>
</label>
</div>
</div>
</div>
<div class="card-footer d-flex justify-content-between gap-2">
<button class="btn btn-outline-danger" type="submit" formaction="?handler=Delete" formmethod="post" onclick="return confirm('정말 삭제하시겠습니까?');">삭제</button>
<button class="btn btn-outline-danger btn-sm" type="submit" formaction="?handler=Delete" formmethod="post" onclick="return confirm('정말 삭제하시겠습니까?');">삭제</button>
<div class="d-flex gap-2">
<a class="btn btn-outline-secondary" href="/admin/faqs">취소</a>
<button class="btn btn-primary" type="submit">저장</button>
<a class="btn btn-outline-secondary btn-sm" href="/admin/faqs">취소</a>
<button class="btn btn-primary btn-sm" type="submit">저장</button>
</div>
</div>
</form>
@@ -6,53 +6,53 @@
@await Html.PartialAsync("_AdminPageHeader", new TaxBaik.Web.Models.AdminPageHeaderModel("Customer Requests", "문의 수정", "문의 내용을 수정하고 상태를 갱신합니다.", null, null))
<form method="post" class="card">
<div class="card-header d-flex flex-wrap align-items-center justify-content-between gap-2">
<div class="card-header p-2 d-flex flex-wrap align-items-center justify-content-between gap-2">
<div>
<div class="text-muted small text-uppercase mb-1">불러온 원본</div>
<div class="fw-semibold">@Model.Input.Name</div>
<div class="fw-semibold small">@Model.Input.Name</div>
<div class="text-muted small">@Model.Input.Phone / @Model.Input.ServiceType</div>
</div>
<span class="badge bg-secondary-lt text-secondary">원본 확인 후 수정</span>
<span class="badge bg-secondary-lt text-secondary small">원본 확인 후 수정</span>
</div>
<div class="card-body">
<div class="card-body p-2">
@await Html.PartialAsync("_ValidationSummary")
<input type="hidden" asp-for="Id" />
<div class="row g-3">
<div class="row g-2">
<div class="col-md-6">
<label asp-for="Input.Name" class="form-label"></label>
<input asp-for="Input.Name" class="form-control" />
<label asp-for="Input.Name" class="form-label form-label-sm"></label>
<input asp-for="Input.Name" class="form-control form-control-sm" />
</div>
<div class="col-md-6">
<label asp-for="Input.Phone" class="form-label"></label>
<input asp-for="Input.Phone" class="form-control" />
<label asp-for="Input.Phone" class="form-label form-label-sm"></label>
<input asp-for="Input.Phone" class="form-control form-control-sm" />
</div>
<div class="col-md-6">
<label asp-for="Input.Email" class="form-label"></label>
<input asp-for="Input.Email" class="form-control" />
<label asp-for="Input.Email" class="form-label form-label-sm"></label>
<input asp-for="Input.Email" class="form-control form-control-sm" />
</div>
<div class="col-md-6">
<label asp-for="Input.ServiceType" class="form-label"></label>
<input asp-for="Input.ServiceType" class="form-control" />
<label asp-for="Input.ServiceType" class="form-label form-label-sm"></label>
<input asp-for="Input.ServiceType" class="form-control form-control-sm" />
</div>
<div class="col-md-6">
<label asp-for="Input.Status" class="form-label"></label>
<input asp-for="Input.Status" class="form-control" />
<label asp-for="Input.Status" class="form-label form-label-sm"></label>
<input asp-for="Input.Status" class="form-control form-control-sm" />
</div>
<div class="col-12">
<label asp-for="Input.Message" class="form-label"></label>
<textarea asp-for="Input.Message" class="form-control" rows="8"></textarea>
<label asp-for="Input.Message" class="form-label form-label-sm"></label>
<textarea asp-for="Input.Message" class="form-control form-control-sm" rows="8"></textarea>
</div>
<div class="col-12">
<label asp-for="Input.AdminMemo" class="form-label"></label>
<textarea asp-for="Input.AdminMemo" class="form-control" rows="4"></textarea>
<label asp-for="Input.AdminMemo" class="form-label form-label-sm"></label>
<textarea asp-for="Input.AdminMemo" class="form-control form-control-sm" rows="4"></textarea>
</div>
</div>
</div>
<div class="card-footer d-flex justify-content-between gap-2">
<button class="btn btn-outline-danger" type="submit" formaction="?handler=Delete" formmethod="post" onclick="return confirm('정말 삭제하시겠습니까?');">삭제</button>
<button class="btn btn-outline-danger btn-sm" type="submit" formaction="?handler=Delete" formmethod="post" onclick="return confirm('정말 삭제하시겠습니까?');">삭제</button>
<div class="d-flex gap-2">
<a class="btn btn-outline-secondary" href="/admin/inquiries/@Model.Id">취소</a>
<button class="btn btn-primary" type="submit">저장</button>
<a class="btn btn-outline-secondary btn-sm" href="/admin/inquiries/@Model.Id">취소</a>
<button class="btn btn-primary btn-sm" type="submit">저장</button>
</div>
</div>
</form>