Skip to content

Commit 3fbfc62

Browse files
authored
adding miscellaneous polishing (#9)
1 parent ec4dcc3 commit 3fbfc62

8 files changed

Lines changed: 368 additions & 43 deletions

File tree

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,4 @@ CHANGELOG_PUBLISH_TOKEN=your_shared_secret_token
5656
AZURE_TENANT_ID=
5757
AZURE_CLIENT_ID=
5858
SMTP_SENDER=cs-tigertype@princeton.edu
59-
SMTP_OAUTH_CACHE= (optional; JSON blob of MSAL cache for headless servers)
59+
SMTP_OAUTH_CACHE= {"Account":{},"IdToken":{},"AccessToken":{},"RefreshToken":{},"AppMetadata":{}}

client/src/components/PlayerStatusBar.css

Lines changed: 150 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,91 @@
99
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
1010
max-height: 30vh;
1111
overflow-y: auto;
12+
overflow-x: hidden;
1213
scrollbar-width: thin;
1314
scrollbar-color: #F58025 #1e1e1e;
1415
border: 1px solid rgba(245, 128, 37, 0.1);
1516
}
17+
18+
.player-status-header {
19+
display: flex;
20+
align-items: center;
21+
justify-content: space-between;
22+
gap: 0.75rem;
23+
position: relative;
24+
min-height: 44px;
25+
}
26+
27+
.player-status-title {
28+
color: #aaa;
29+
font-size: 0.85rem;
30+
font-weight: 600;
31+
text-transform: uppercase;
32+
letter-spacing: 0.1em;
33+
}
34+
35+
.player-status-pill {
36+
display: flex;
37+
align-items: center;
38+
gap: 0.3rem;
39+
padding: 0.25rem 0.9rem;
40+
border-radius: 10px 0 0 10px;
41+
font-size: 0.75rem;
42+
font-weight: 600;
43+
letter-spacing: 0.02em;
44+
border: 1px solid rgba(245, 128, 37, 0.4);
45+
background-color: rgba(245, 128, 37, 0.12);
46+
color: var(--mode-text-color);
47+
overflow: hidden;
48+
transition: opacity 0.55s ease, transform 0.55s ease;
49+
will-change: transform, opacity;
50+
max-width: 250px;
51+
opacity: 1;
52+
transform: translateX(0);
53+
transform-origin: right center;
54+
margin-right: -1rem;
55+
border-right: none;
56+
}
57+
58+
.player-status-pill.ready {
59+
border-color: rgba(76, 175, 80, 0.4);
60+
background-color: rgba(76, 175, 80, 0.12);
61+
}
62+
63+
.player-status-pill-icon {
64+
font-size: 1rem;
65+
}
66+
67+
.player-status-pill.ready .player-status-pill-icon {
68+
color: #4caf50;
69+
}
70+
71+
.player-status-pill.pending {
72+
border-color: rgba(245, 128, 37, 0.4);
73+
background-color: rgba(245, 128, 37, 0.12);
74+
}
75+
76+
.player-status-pill.pending .player-status-pill-icon {
77+
color: #F58025;
78+
}
79+
80+
.player-status-pill.pill-hidden {
81+
opacity: 0;
82+
transform: translateX(120%) scaleX(0.95);
83+
pointer-events: none;
84+
}
85+
86+
.player-status-pill.pill-visible {
87+
opacity: 1;
88+
transform: translateX(0) scaleX(1);
89+
}
90+
91+
.player-status-pill-text {
92+
text-transform: uppercase;
93+
font-size: 0.7rem;
94+
letter-spacing: 0.08em;
95+
}
96+
1697
/* Title badges for each player */
1798
.player-titles {
1899
display: flex;
@@ -48,16 +129,6 @@
48129
border-radius: 3px;
49130
}
50131

51-
.player-status-bar::before {
52-
content: "Players";
53-
display: block;
54-
color: #aaa;
55-
font-size: 0.8rem;
56-
font-weight: 500;
57-
margin-bottom: 0.5rem;
58-
text-transform: uppercase;
59-
letter-spacing: 1px;
60-
}
61132
.player-card {
62133
width: 100%;
63134
display: flex;
@@ -152,13 +223,22 @@
152223
transition: all 0.2s;
153224
font-weight: 500;
154225
font-size: 0.85rem;
226+
display: inline-flex;
227+
align-items: center;
228+
justify-content: center;
229+
gap: 0.35rem;
230+
min-width: 110px;
155231
}
156232

157233
.ready-button:hover {
158234
background-color: #e67321;
159235
transform: translateY(-1px);
160236
}
161237

238+
.ready-button.ready-standby {
239+
background-color: #c6691b;
240+
}
241+
162242
.ready-button.ready-active,
163243
.ready-button:disabled {
164244
background-color: #4caf50;
@@ -167,16 +247,21 @@
167247
}
168248

169249
.ready-status {
170-
padding: 0.3rem 0.6rem;
250+
padding: 0.3rem 0.8rem;
171251
border-radius: 4px;
172-
font-size: 0.8rem;
252+
font-size: 0.85rem;
173253
color: #aaa;
174254
background-color: rgba(170, 170, 170, 0.1);
255+
display: inline-flex;
256+
align-items: center;
257+
justify-content: center;
258+
min-width: 110px;
259+
font-weight: 500;
175260
}
176261

177262
.ready-status.ready-active {
178263
color: #4caf50;
179-
font-weight: 600;
264+
font-weight: 500;
180265
background-color: rgba(76, 175, 80, 0.1);
181266
}
182267

@@ -185,13 +270,41 @@
185270
margin-top: 0.5rem;
186271
}
187272

273+
.progress-container.progress-has-error .progress-bar {
274+
border: 1px solid rgba(255, 99, 132, 0.5);
275+
box-shadow: 0 2px 8px rgba(255, 99, 132, 0.25);
276+
}
277+
188278
.progress-bar {
189279
height: 20px;
190-
background-color: #1e1e1e;
280+
background-color: #151515;
191281
border-radius: 10px;
192282
overflow: hidden;
193283
position: relative;
194-
box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.2);
284+
box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.25);
285+
border: 1px solid rgba(255, 255, 255, 0.05);
286+
}
287+
288+
.progress-error-indicator {
289+
position: absolute;
290+
top: -1.6rem;
291+
right: 0;
292+
display: flex;
293+
align-items: center;
294+
gap: 0.3rem;
295+
padding: 0.15rem 0.6rem;
296+
font-size: 0.7rem;
297+
font-weight: 600;
298+
border-radius: 999px;
299+
background-color: rgba(255, 99, 132, 0.2);
300+
color: #ffb3c2;
301+
backdrop-filter: blur(4px);
302+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
303+
animation: error-pill-in 0.3s ease;
304+
}
305+
306+
.progress-error-indicator .material-icons {
307+
font-size: 1.1rem;
195308
}
196309

197310
.progress-fill {
@@ -205,6 +318,12 @@
205318
animation: progress-bar-stripes 1s linear infinite;
206319
}
207320

321+
.progress-fill.has-error {
322+
background-color: #ff5f5f;
323+
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.12) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.12) 50%, rgba(255, 255, 255, 0.12) 75%, transparent 75%, transparent);
324+
animation: none;
325+
}
326+
208327
@keyframes progress-bar-stripes {
209328
from {
210329
background-position: 20px 0;
@@ -225,6 +344,21 @@
225344
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
226345
}
227346

347+
.progress-label-error {
348+
color: #ffd1d1;
349+
}
350+
351+
@keyframes error-pill-in {
352+
from {
353+
opacity: 0;
354+
transform: translateY(-4px);
355+
}
356+
to {
357+
opacity: 1;
358+
transform: translateY(0);
359+
}
360+
}
361+
228362
/* Avatar Modal Styles */
229363
.avatar-modal-overlay {
230364
position: fixed;
@@ -345,4 +479,4 @@
345479
background-color: #555;
346480
background-image: none;
347481
animation: none;
348-
}
482+
}

0 commit comments

Comments
 (0)