From 10bb6c30ddc398cb4f9e0e9a4b743def641af365 Mon Sep 17 00:00:00 2001 From: erik Date: Thu, 26 Feb 2026 15:12:45 +0000 Subject: [PATCH] Add AC game UI replica styling for character stats window Co-Authored-By: Claude Opus 4.6 --- static/style.css | 204 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 203 insertions(+), 1 deletion(-) diff --git a/static/style.css b/static/style.css index b17b8d70..b9213485 100644 --- a/static/style.css +++ b/static/style.css @@ -525,7 +525,7 @@ body { margin-top: 4px; } -.chat-window, .stats-window, .inventory-window { +.chat-window, .stats-window, .inventory-window, .character-window { position: absolute; top: 10px; /* position window to start just right of the sidebar */ @@ -1590,3 +1590,205 @@ body.noselect, body.noselect * { to { opacity: 1; transform: translateY(0); } } +/* ============================================ + Character Window - AC Game UI Replica + ============================================ */ +.character-window { + width: 450px !important; + height: 650px !important; +} + +.ac-panel { + display: flex; + flex-direction: column; + height: 100%; + background: linear-gradient(135deg, #1a1410 0%, #2a2218 50%, #1a1410 100%); + color: #c8b89a; + font-size: 13px; + overflow-y: auto; +} + +.ac-header { + padding: 12px 15px; + border-bottom: 1px solid #8b7355; + text-align: center; +} +.ac-name { + font-size: 18px; + font-weight: bold; + color: #d4a843; + letter-spacing: 1px; +} +.ac-subtitle { + font-size: 12px; + color: #7a6e5e; + margin-top: 4px; +} + +.ac-section { + padding: 8px 15px; + border-bottom: 1px solid #3a3228; +} +.ac-section-title { + font-size: 11px; + text-transform: uppercase; + letter-spacing: 2px; + color: #8b7355; + margin-bottom: 6px; + padding-bottom: 3px; + border-bottom: 1px solid #3a3228; +} + +.ac-attributes { + display: flex; + flex-direction: column; + gap: 2px; +} +.ac-attr-row { + display: flex; + gap: 10px; +} +.ac-attr { + flex: 1; + display: flex; + justify-content: space-between; + padding: 3px 8px; + background: rgba(42, 34, 24, 0.6); + border: 1px solid #3a3228; + border-radius: 2px; +} +.ac-attr-label { + color: #7a6e5e; +} +.ac-attr-value { + color: #d4a843; + font-weight: bold; +} + +.ac-vitals { + display: flex; + flex-direction: column; + gap: 6px; +} +.ac-vital { + display: flex; + align-items: center; + gap: 8px; +} +.ac-vital-label { + width: 55px; + font-size: 12px; + color: #7a6e5e; +} +.ac-vital-bar { + flex: 1; + height: 16px; + border-radius: 2px; + overflow: hidden; + position: relative; +} +.ac-vital-fill { + height: 100%; + transition: width 0.5s ease; + border-radius: 2px; +} +.ac-health-bar { background: #4a1a1a; } +.ac-health-bar .ac-vital-fill { background: #cc3333; width: 0%; } +.ac-stamina-bar { background: #4a3a1a; } +.ac-stamina-bar .ac-vital-fill { background: #ccaa33; width: 0%; } +.ac-mana-bar { background: #1a2a4a; } +.ac-mana-bar .ac-vital-fill { background: #3366cc; width: 0%; } +.ac-vital-text { + width: 80px; + text-align: right; + font-size: 12px; + color: #c8b89a; +} + +.ac-skills-section { + flex: 1; + min-height: 0; + display: flex; + flex-direction: column; +} +.ac-skills { + overflow-y: auto; + max-height: 200px; + flex: 1; +} +.ac-skill-group { + margin-bottom: 4px; +} +.ac-skill-group-title { + font-size: 11px; + font-weight: bold; + text-transform: uppercase; + letter-spacing: 1px; + padding: 3px 8px; + margin-bottom: 1px; +} +.ac-skill-group-title.ac-specialized { color: #d4a843; } +.ac-skill-group-title.ac-trained { color: #c8b89a; } +.ac-skill-group-title.ac-untrained { color: #5a5248; } + +.ac-skill-row { + display: flex; + justify-content: space-between; + padding: 2px 12px; + border-bottom: 1px solid rgba(58, 50, 40, 0.4); +} +.ac-skill-row:hover { + background: rgba(139, 115, 85, 0.1); +} +.ac-skill-row.ac-specialized .ac-skill-name { color: #d4a843; } +.ac-skill-row.ac-specialized .ac-skill-value { color: #d4a843; font-weight: bold; } +.ac-skill-row.ac-trained .ac-skill-name { color: #c8b89a; } +.ac-skill-row.ac-trained .ac-skill-value { color: #c8b89a; } +.ac-skill-row.ac-untrained .ac-skill-name { color: #5a5248; } +.ac-skill-row.ac-untrained .ac-skill-value { color: #5a5248; } + +.ac-skill-name { font-size: 12px; } +.ac-skill-value { font-size: 12px; font-family: monospace; } +.ac-skill-placeholder { color: #5a5248; font-style: italic; padding: 8px; } + +.ac-allegiance { + display: flex; + flex-direction: column; + gap: 2px; +} +.ac-alleg-row { + display: flex; + justify-content: space-between; + padding: 2px 8px; +} +.ac-alleg-row span:first-child { color: #7a6e5e; } +.ac-alleg-row span:last-child { color: #c8b89a; } + +.ac-footer { + padding: 8px 15px; + border-top: 1px solid #8b7355; + background: rgba(26, 20, 16, 0.8); +} +.ac-footer-row { + display: flex; + justify-content: space-between; + padding: 2px 0; + font-size: 12px; +} +.ac-footer-row span:first-child { color: #7a6e5e; } +.ac-footer-row span:last-child { color: #d4a843; } + +.char-btn { + background: #2a2218; + color: #d4a843; + border: 1px solid #8b7355; + padding: 2px 6px; + border-radius: 3px; + cursor: pointer; + font-size: 11px; +} +.char-btn:hover { + background: #3a3228; + border-color: #d4a843; +} +