aboutsummaryrefslogtreecommitdiff
path: root/src/app.css
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2026-09-08 09:12:25 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2026-09-08 09:12:25 +0200
commit7d85a18867ca0fe2310218c63cfc696c0f916171 (patch)
tree184510b861bcda9e105322b79395dd3af512f580 /src/app.css
parent4b2b964283075712de98743720ff3e31370ddc8e (diff)
Consolidate duplicated page CSS into app.css, share TestDb type
- Move .page-header/.back-link/.input-invalid/.save-status/.btn-done (plus hover/variant rules) into app.css as shared route scaffolding; delete per-page scoped copies - Unify drifted values: page-header padding 1rem -> 1.25rem (routine page), empty-state spacing 0.75/1.5rem -> 1/2rem (grocery detail), save-status margin -0.25rem applied on both pages, back-link margin 1.5rem -> 1rem (grocery detail); routine page's large Fait button is kept via a .btn-done-lg modifier - Export TestDb from test-helper and use it in the five db/service test files to shrink duplicated fixture scaffolding
Diffstat (limited to 'src/app.css')
-rw-r--r--src/app.css63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/app.css b/src/app.css
index 7b8464f..1c25c93 100644
--- a/src/app.css
+++ b/src/app.css
@@ -212,6 +212,8 @@ button {
background: var(--surface);
border-radius: 0.75rem;
box-shadow: 0 1px 2px var(--shadow);
+ margin-top: 1rem;
+ padding: 2rem;
}
/* Error */
@@ -398,3 +400,64 @@ button {
font-weight: 600;
white-space: nowrap;
}
+
+/* Shared route scaffolding */
+.page-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 1.25rem 0;
+}
+
+.back-link {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.375rem;
+ margin-top: 1rem;
+ color: var(--text-secondary);
+ text-decoration: none;
+ font-size: 0.875rem;
+ font-weight: 500;
+ transition: color 0.2s;
+}
+
+.back-link:hover {
+ color: var(--accent);
+}
+
+.input-invalid {
+ border-color: var(--danger);
+}
+
+.save-status {
+ font-size: 0.875rem;
+ color: var(--success);
+ font-weight: 500;
+ margin-top: -0.25rem;
+ visibility: hidden;
+ opacity: 0;
+ transition: opacity 0.2s ease;
+ min-height: 1.25rem;
+}
+
+.save-status.visible {
+ visibility: visible;
+ opacity: 1;
+}
+
+.btn-done {
+ flex-shrink: 0;
+ padding: 0.5rem 0.875rem;
+ border: none;
+ border-radius: 0.625rem;
+ background: var(--success);
+ color: var(--white);
+ font-size: 0.875rem;
+ font-weight: 500;
+ transition: all 0.2s ease;
+}
+
+.btn-done:hover {
+ filter: brightness(1.05);
+ transform: translateY(-1px);
+}