diff options
| author | David Skoland <davidskoland@gmail.com> | 2026-03-24 12:23:45 +0100 |
|---|---|---|
| committer | David Skoland <davidskoland@gmail.com> | 2026-03-24 12:23:45 +0100 |
| commit | 1a1ed4e1d0568a1610d5f5da3d541a59afe2b863 (patch) | |
| tree | 6df185dcb2994767619d2dc32e45e27e3496aff3 /webAO/styles/client.css | |
| parent | 4715e7ccde04a77ff04f1ac839c151eaebc4ad44 (diff) | |
Add reconnect UI, disconnect button, and visual cleanup
- Redesign disconnect overlay as a full-screen modal with dark backdrop
- Add working Reconnect button that properly re-establishes WebSocket connection
- Add Disconnect button in Settings for testing
- Separate disconnect and ban/kick codepaths (no reconnect on ban)
- Log disconnect notice in IC log using hrtext style
- Refactor area list rendering from client state (renderAreaList)
- Extract appendICNotice for reusable IC log notices
- Clean up charselect: hide during loading, simplify toolbar layout
- Freshen loading screen and charselect styling
- Remove loading progress text updates (just show "Loading...")
- Guard against undefined client.chars and client.serv
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'webAO/styles/client.css')
| -rw-r--r-- | webAO/styles/client.css | 94 |
1 files changed, 80 insertions, 14 deletions
diff --git a/webAO/styles/client.css b/webAO/styles/client.css index e3ee820..773e9aa 100644 --- a/webAO/styles/client.css +++ b/webAO/styles/client.css @@ -58,25 +58,75 @@ } } +#client_error_overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.6); + display: flex; + justify-content: center; + align-items: center; + z-index: 200; +} + #client_error { - position: absolute; display: flex; flex-direction: column; - padding: 10px; - top: 50%; - left: 50%; - margin-right: -50%; - transform: translate(-50%, -50%); + padding: 24px 36px; justify-content: center; align-items: center; - background: #a00; + background: rgba(0, 0, 0, 0.9); + border: 2px solid #c00; + border-radius: 8px; color: #fff; font-size: large; - z-index: 100; + min-width: 280px; + box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5); +} + +#client_error_icon { + font-size: 48px; + color: #f44; + margin-bottom: 4px; } #client_errortext { - animation: error_blink 3s ease-in-out infinite; + margin: 4px 0 8px; + text-align: center; +} + +#client_error_code { + color: #999; + font-size: 12px; + margin: 0 0 16px; +} + +#client_reconnect { + background: #c00; + color: #fff; + border: none; + border-radius: 4px; + padding: 10px 32px; + font-size: 16px; + cursor: pointer; + margin-bottom: 12px; + transition: background 0.2s; +} + +#client_reconnect:hover { + background: #e22; +} + +#client_error_help { + color: #aaa; + font-size: 12px; + margin: 0; +} + +#client_error_help a { + color: #6af; } #client_secondfactor { @@ -102,10 +152,12 @@ justify-content: center; text-align: center; align-items: center; + box-sizing: border-box; font-size: large; - overflow-y: scroll; + overflow-y: auto; z-index: 100; - background: #555; + background: #333; + border: 1px solid #000; } #client_loading { @@ -114,8 +166,7 @@ justify-content: center; text-align: center; align-items: center; - background: black; - color: lightgreen; + color: #fff; font-size: large; } @@ -142,7 +193,22 @@ display: block; text-align: center; margin: 0 auto; - background: #444; + padding: 10px; + background: #333; + color: #eee; +} + +#client_charselect_toolbar { + display: flex; + justify-content: center; + align-items: center; + gap: 6px; + margin-top: 5px; + margin-bottom: 10px; +} + +#client_charactersearch { + width: 150px; } #client_icwrapper { |
