Brainstorming artifact: 5 HTML mockups comparing approaches to fill the sparse right-hand space on /briefwechsel rows (reported by users as "feels empty"): 1. Rich Rows — dense metadata, no images 2. Thumbnail Rows — PDF preview on the left 3. Master-Detail Split — list + persistent preview panel 4. Gallery Cards — grid of letter cards, album style 5. Person Dashboard — insights live on /persons/[id], not here Picked: #2 (Thumbnail Rows) + #5 (Person Dashboard), followed up by final specs in separate commit. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
103 lines
6.4 KiB
CSS
103 lines
6.4 KiB
CSS
/* Shared CSS for briefwechsel-fill specs */
|
|
:root {
|
|
--brand-navy: #002850;
|
|
--brand-mint: #A6DAD8;
|
|
--brand-sand: #E4E2D7;
|
|
--bg: #ECEAE4;
|
|
--surface: #ffffff;
|
|
--line: #E4E2D7;
|
|
--line-2: #EFEDE6;
|
|
--muted: #F7F5F2;
|
|
--ink: #1A1A1A;
|
|
--ink-3: #666;
|
|
--primary: #002850;
|
|
--accent: #2F9E95;
|
|
}
|
|
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
|
|
body{font-family:'Montserrat',system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}
|
|
.font-serif{font-family:'Merriweather',Georgia,serif}
|
|
|
|
/* ── Spec meta header ─── */
|
|
.spec-meta{background:var(--brand-navy);color:#fff;padding:18px 28px;border-bottom:3px solid var(--brand-mint)}
|
|
.spec-meta-inner{max-width:1440px;margin:0 auto;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
|
|
.spec-meta h1{font-size:18px;font-weight:800;letter-spacing:.4px}
|
|
.spec-meta h1 span{opacity:.5;font-weight:400}
|
|
.spec-meta p{font-size:12px;color:rgba(255,255,255,.7);margin-top:4px;max-width:600px}
|
|
.spec-meta-right{font-size:11px;display:flex;gap:20px;flex-wrap:wrap}
|
|
.spec-meta-right div strong{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:rgba(255,255,255,.45);font-weight:800;margin-bottom:2px}
|
|
.spec-nav{background:#0a1e36;padding:10px 28px;border-bottom:1px solid rgba(255,255,255,.08)}
|
|
.spec-nav-inner{max-width:1440px;margin:0 auto;display:flex;gap:4px;font-size:11px;flex-wrap:wrap;align-items:center}
|
|
.spec-nav a{color:rgba(255,255,255,.55);text-decoration:none;padding:4px 10px;border-radius:3px;font-weight:600}
|
|
.spec-nav a:hover{color:#fff;background:rgba(255,255,255,.06)}
|
|
.spec-nav a.on{color:var(--brand-navy);background:var(--brand-mint)}
|
|
.spec-nav .lbl{color:rgba(255,255,255,.3);font-size:9px;text-transform:uppercase;letter-spacing:1px;margin-right:8px}
|
|
|
|
/* ── Real page chrome ─── */
|
|
.page-wrap{background:var(--bg);min-height:calc(100vh - 120px)}
|
|
.hdr{background:var(--brand-navy);color:#fff;padding:0 32px;height:64px;display:flex;align-items:center;gap:40px}
|
|
.hdr-logo{font-size:16px;font-weight:900;letter-spacing:1.5px}
|
|
.hdr-nav{display:flex;gap:28px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.8px}
|
|
.hdr-nav a{color:rgba(255,255,255,.7);text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}
|
|
.hdr-nav a.on{color:#fff;border-color:var(--brand-mint)}
|
|
.hdr-right{margin-left:auto;display:flex;gap:14px;align-items:center;font-size:11px;color:rgba(255,255,255,.65)}
|
|
.hdr-upload{border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:6px 12px;font-weight:700;letter-spacing:.5px}
|
|
.hdr-avatar{width:32px;height:32px;border-radius:50%;background:var(--brand-mint);color:var(--brand-navy);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px}
|
|
|
|
.page{max-width:1440px;margin:0 auto;padding:28px 32px}
|
|
|
|
.card{background:var(--surface);border:1px solid var(--line);border-radius:2px;box-shadow:0 1px 2px rgba(0,0,0,.02);padding:20px 24px;margin-bottom:24px}
|
|
.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:14px}
|
|
.fl{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:#888;margin-bottom:6px}
|
|
.fi{height:40px;border:1px solid #D1D5DB;border-radius:2px;background:#fff;padding:0 12px;font-size:13px;display:flex;align-items:center;font-family:'Merriweather',serif}
|
|
.fi.empty{color:#bbb;font-style:italic}
|
|
.filter-actions{display:flex;gap:8px;align-items:center}
|
|
.btn{height:34px;border:1px solid #D1D5DB;background:#F7F5F2;border-radius:2px;padding:0 12px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:#444;display:inline-flex;align-items:center;gap:6px}
|
|
.count{margin-left:auto;font-size:13px;color:#555}
|
|
.count b{color:var(--brand-navy)}
|
|
|
|
.hintbar{margin-top:14px;background:#e9f5f4;border:1px solid #c8e6e4;border-radius:2px;padding:10px 14px;font-size:12px;color:#1a3e3c;display:flex;align-items:center;gap:8px}
|
|
.hintbar b{color:var(--brand-navy)}
|
|
|
|
/* ── Year divider ─── */
|
|
.year-divider{display:flex;align-items:baseline;gap:12px;background:var(--muted);border-top:2px solid var(--line);border-bottom:1px solid var(--line);padding:8px 14px}
|
|
.year-divider .y{font-size:22px;font-weight:900;color:var(--brand-navy);letter-spacing:-.5px}
|
|
.year-divider .n{font-size:12px;font-weight:700;color:#888}
|
|
|
|
/* ── Status dots ─── */
|
|
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}
|
|
.dot.uploaded{background:var(--brand-mint)}
|
|
.dot.transcribed{background:var(--brand-mint)}
|
|
.dot.reviewed{background:rgba(0,40,80,.55)}
|
|
.dot.archived{background:var(--brand-navy)}
|
|
|
|
/* ── Direction indicator ─── */
|
|
.dir{width:16px;height:16px;flex-shrink:0;opacity:.6}
|
|
.dir-out{color:var(--primary)}
|
|
.dir-in{color:var(--accent)}
|
|
|
|
/* ── Concept intro banner ─── */
|
|
.concept-intro{background:#fff;border-left:4px solid var(--brand-mint);padding:14px 20px;margin-bottom:24px;font-size:13px;color:#333;border-radius:2px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
|
|
.concept-intro h2{font-size:14px;font-weight:800;color:var(--brand-navy);margin-bottom:4px}
|
|
.concept-intro .gain,.concept-intro .cost{display:inline-block;font-size:11px;margin-right:14px;margin-top:6px}
|
|
.concept-intro .gain{color:#166534}
|
|
.concept-intro .cost{color:#92400E}
|
|
|
|
/* ── Mock letter thumbnail ─── */
|
|
.thumb{background:linear-gradient(180deg,#fdfcf7 0%,#f6f3ea 100%);border:1px solid #d9d4c6;box-shadow:inset 0 0 0 1px #fff,0 1px 2px rgba(0,0,0,.05);position:relative;overflow:hidden;flex-shrink:0;border-radius:1px}
|
|
.thumb::before{content:'';position:absolute;top:0;left:0;right:0;height:28%;background:linear-gradient(135deg,rgba(166,218,216,.25) 0%,transparent 60%)}
|
|
.thumb-lines{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:20% 12% 20% 12%}
|
|
.thumb-lines i{display:block;height:1px;background:rgba(0,40,80,.2)}
|
|
.thumb-lines i:nth-child(odd){width:95%}
|
|
.thumb-lines i:nth-child(3n){width:70%}
|
|
.thumb-lines i:nth-child(5n){width:80%}
|
|
.thumb.handwritten .thumb-lines{padding:15% 10%;gap:4px}
|
|
.thumb.handwritten .thumb-lines i{height:1.2px;background:rgba(0,40,80,.35);transform:rotate(-.6deg)}
|
|
|
|
/* ── Tag chip ─── */
|
|
.tag{display:inline-flex;align-items:center;font-size:10px;font-weight:700;background:var(--brand-mint);color:var(--brand-navy);padding:2px 7px;border-radius:10px;letter-spacing:.3px}
|
|
.tag.muted{background:#EEE8DC;color:#666}
|
|
|
|
/* ── Links & generic ─── */
|
|
a{color:inherit}
|
|
.hide{display:none}
|