Phase 10M.1: Word Companion Visual Polish

This commit is contained in:
Nick Beckley 2026-06-14 14:44:24 +01:00
parent 67116c3383
commit 4c5757fc63

View File

@ -1,12 +1,14 @@
:root {
--companion-ink: #1e252b;
--companion-muted: #66717b;
--companion-paper: #fbfaf7;
--companion-panel: #ffffff;
--companion-line: #d8ddd8;
--companion-accent: #2f6f63;
--companion-accent-dark: #22534a;
--companion-soft: #eef5f2;
--companion-ink: #2d241d;
--companion-muted: #7b7168;
--companion-paper: #f8f1e6;
--companion-panel: #fffaf2;
--companion-line: #e1d3bf;
--companion-accent: #6f4b2d;
--companion-accent-dark: #4a321f;
--companion-gold: #b68a46;
--companion-soft: #f3eadc;
--companion-soft-strong: #ead9c1;
}
* {
@ -21,17 +23,17 @@ body {
margin: 0;
min-width: 280px;
color: var(--companion-ink);
background: #f4f6f4;
background: var(--companion-paper);
font-family: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}
.word-companion-shell {
display: grid;
gap: 10px;
gap: 9px;
width: 100%;
max-width: 420px;
min-height: 100vh;
padding: 10px;
padding: 10px 11px;
}
.word-companion-header {
@ -40,7 +42,7 @@ body {
justify-content: space-between;
gap: 10px;
border-bottom: 1px solid var(--companion-line);
padding-bottom: 8px;
padding-bottom: 7px;
}
.word-companion-eyebrow {
@ -56,6 +58,7 @@ body {
margin: 0;
font-size: 1.12rem;
line-height: 1.1;
color: var(--companion-accent-dark);
}
.word-companion-status,
@ -87,29 +90,35 @@ body {
}
.word-companion-tabs {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 3px;
display: flex;
flex-wrap: wrap;
gap: 4px;
border: 1px solid var(--companion-line);
border-radius: 8px;
padding: 3px;
background: #ffffff;
border-radius: 9px;
padding: 4px;
background: #fff7eb;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
}
.word-companion-tabs button {
min-height: 30px;
flex: 1 1 70px;
min-width: 0;
min-height: 29px;
border: 0;
border-radius: 6px;
border-radius: 7px;
background: transparent;
color: var(--companion-muted);
font: inherit;
font-size: 0.78rem;
font-size: 0.76rem;
font-weight: 800;
line-height: 1;
padding: 0 7px;
}
.word-companion-tabs button.is-active {
background: var(--companion-accent);
color: #ffffff;
background: linear-gradient(180deg, #7b5432 0%, var(--companion-accent-dark) 100%);
color: #fff9ef;
box-shadow: 0 1px 3px rgba(74, 50, 31, 0.18);
}
.word-companion-tab-panel {
@ -119,11 +128,12 @@ body {
.word-companion-section {
display: grid;
gap: 7px;
gap: 8px;
border: 1px solid var(--companion-line);
border-radius: 8px;
padding: 10px;
background: var(--companion-panel);
box-shadow: 0 1px 2px rgba(74, 50, 31, 0.05);
}
.word-companion-section span,
@ -141,18 +151,18 @@ body {
.word-companion-section select {
width: 100%;
min-height: 32px;
min-height: 34px;
border: 1px solid var(--companion-line);
border-radius: 6px;
padding: 6px 8px;
background: #ffffff;
background: #fffdf8;
color: var(--companion-ink);
font: inherit;
}
.word-companion-connection {
grid-template-columns: 1fr 1fr;
gap: 8px;
grid-template-columns: 1fr;
gap: 9px;
}
.word-companion-connection .word-companion-message {
@ -168,25 +178,25 @@ body {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
gap: 7px;
}
.word-companion-header-actions {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 6px;
gap: 5px;
}
.word-companion-section-header button {
min-height: 30px;
min-height: 29px;
border: 1px solid var(--companion-accent);
border-radius: 6px;
padding: 5px 9px;
padding: 5px 8px;
background: var(--companion-accent);
color: #ffffff;
color: #fff9ef;
font: inherit;
font-size: 0.78rem;
font-size: 0.76rem;
font-weight: 700;
}
@ -200,24 +210,24 @@ body {
.word-companion-actions {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
gap: 7px;
}
.word-companion-actions button {
min-height: 34px;
min-height: 33px;
border: 1px solid var(--companion-accent);
border-radius: 6px;
padding: 6px 8px;
background: #ffffff;
background: #fffdf8;
color: var(--companion-accent-dark);
font: inherit;
font-size: 0.84rem;
font-size: 0.82rem;
font-weight: 800;
}
.word-companion-actions .word-companion-primary-action {
background: var(--companion-accent);
color: #ffffff;
background: linear-gradient(180deg, #7b5432 0%, var(--companion-accent-dark) 100%);
color: #fff9ef;
}
.word-companion-actions button:disabled {
@ -249,7 +259,7 @@ body {
.word-companion-section strong {
min-width: 0;
font-size: 0.98rem;
font-size: 0.96rem;
overflow-wrap: anywhere;
}
@ -261,18 +271,20 @@ body {
}
.word-companion-scene-card {
border: 1px solid rgba(47, 111, 99, 0.18);
border: 1px solid rgba(111, 75, 45, 0.2);
border-radius: 8px;
padding: 10px;
background: var(--companion-soft);
}
.word-companion-scene-summary {
gap: 9px;
gap: 8px;
}
.word-companion-title-row strong {
color: var(--companion-accent-dark);
font-size: 1rem;
line-height: 1.25;
}
.word-companion-badges {
@ -286,10 +298,10 @@ body {
align-items: center;
width: fit-content;
min-height: 24px;
border: 1px solid rgba(47, 111, 99, 0.24);
border: 1px solid rgba(111, 75, 45, 0.24);
border-radius: 999px;
padding: 3px 8px;
background: #ffffff;
background: #fffaf2;
color: var(--companion-accent-dark) !important;
font-size: 0.74rem !important;
font-weight: 800 !important;
@ -307,17 +319,19 @@ body {
.word-companion-metrics {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 7px;
}
.word-companion-metrics div {
border: 1px solid rgba(47, 111, 99, 0.16);
border: 1px solid rgba(111, 75, 45, 0.16);
border-radius: 6px;
padding: 7px;
background: #ffffff;
background: #fffdf8;
}
.word-companion-metrics strong {
font-size: 0.92rem;
color: var(--companion-accent-dark);
font-size: 0.91rem;
}
.word-companion-sync-meta {
@ -340,7 +354,7 @@ body {
.word-companion-scene-details,
.word-companion-link-groups {
display: grid;
gap: 8px;
gap: 7px;
}
.word-companion-resolve-diagnostics div,
@ -353,10 +367,18 @@ body {
.word-companion-resolve-diagnostics {
padding-top: 4px;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 6px;
}
.word-companion-resolve-diagnostics strong {
font-size: 0.86rem;
color: var(--companion-ink);
font-size: 0.8rem;
line-height: 1.25;
}
.word-companion-resolve-diagnostics span {
font-size: 0.68rem;
letter-spacing: 0.01em;
}
.word-companion-progress-sync {
@ -389,7 +411,7 @@ body {
margin: 0;
border: 1px solid var(--companion-line);
border-radius: 6px;
padding: 8px;
padding: 9px;
background: var(--companion-soft);
color: var(--companion-ink);
font-size: 0.9rem;
@ -399,7 +421,7 @@ body {
.word-companion-check-list {
display: grid;
gap: 5px;
gap: 4px;
}
.word-companion-check-item {
@ -407,11 +429,11 @@ body {
grid-template-columns: auto 1fr;
align-items: center;
gap: 7px;
min-height: 30px;
border: 1px solid rgba(47, 111, 99, 0.18);
min-height: 29px;
border: 1px solid rgba(111, 75, 45, 0.18);
border-radius: 6px;
padding: 5px 7px;
background: #ffffff;
background: #fffdf8;
color: var(--companion-ink);
font-size: 0.9rem;
}
@ -436,11 +458,12 @@ body {
}
.word-companion-create-link {
border-color: rgba(47, 111, 99, 0.38);
border-color: rgba(182, 138, 70, 0.45);
background: #fff8ec;
}
.word-companion-structure-preview {
border-color: rgba(47, 111, 99, 0.28);
border-color: rgba(182, 138, 70, 0.35);
}
.word-companion-preview-groups,
@ -452,7 +475,7 @@ body {
.word-companion-preview-group {
border-top: 1px solid var(--companion-line);
padding-top: 8px;
padding-top: 7px;
}
.word-companion-preview-group:first-child {
@ -461,10 +484,10 @@ body {
}
.word-companion-preview-item {
border: 1px solid rgba(47, 111, 99, 0.18);
border: 1px solid rgba(111, 75, 45, 0.16);
border-radius: 6px;
padding: 7px;
background: #ffffff;
background: #fffdf8;
}
.word-companion-preview-item span,
@ -541,7 +564,7 @@ body {
border: 1px solid var(--companion-line);
border-radius: 6px;
padding: 6px 8px;
background: #ffffff;
background: #fffdf8;
color: var(--companion-ink);
font: inherit;
}
@ -552,7 +575,7 @@ body {
border-radius: 6px;
padding: 5px 9px;
background: var(--companion-accent);
color: #ffffff;
color: #fff9ef;
font: inherit;
font-size: 0.82rem;
font-weight: 700;
@ -577,10 +600,10 @@ body {
align-items: center;
gap: 7px;
min-height: 32px;
border: 1px solid rgba(47, 111, 99, 0.18);
border: 1px solid rgba(111, 75, 45, 0.18);
border-radius: 6px;
padding: 5px 7px;
background: #ffffff;
background: #fffdf8;
color: var(--companion-ink);
font-size: 0.9rem;
}
@ -600,7 +623,7 @@ body {
.word-companion-outline {
display: grid;
gap: 8px;
gap: 7px;
padding-top: 4px;
}
@ -630,7 +653,7 @@ body {
.word-companion-summary {
display: grid;
gap: 8px;
border: 1px solid rgba(47, 111, 99, 0.18);
border: 1px solid rgba(111, 75, 45, 0.18);
border-radius: 8px;
padding: 12px;
background: var(--companion-soft);
@ -648,7 +671,8 @@ body {
}
.word-companion-collapsible {
gap: 10px;
gap: 8px;
background: #fff8ec;
}
.word-companion-collapsible:not([open]) > :not(summary) {
@ -675,5 +699,27 @@ body {
.word-companion-footer {
border-top: 1px solid var(--companion-line);
margin-top: auto;
padding-top: 12px;
padding-top: 7px;
font-size: 0.76rem;
}
@media (min-width: 390px) {
.word-companion-connection {
grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 340px) {
.word-companion-tabs button {
flex-basis: calc(50% - 4px);
}
.word-companion-metrics,
.word-companion-resolve-diagnostics {
grid-template-columns: 1fr;
}
.word-companion-actions {
grid-template-columns: 1fr;
}
}