feat: add game config panel UI (template, Stimulus controller, CSS)

Config panel with toggle for watched films, hint type checkboxes,
and multi-select for award types above the start game button.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
thibaud-leclere
2026-04-01 23:08:09 +02:00
parent ba715d69a0
commit b637b725d8
3 changed files with 237 additions and 1 deletions

View File

@@ -732,6 +732,140 @@ body {
font-size: 16px;
}
/* ── Game config panel ── */
.config-panel {
width: 100%;
max-width: 360px;
margin-bottom: 24px;
}
.config-section {
padding: 12px 0;
}
.config-section + .config-section {
border-top: 1px solid var(--border);
}
.config-section-title {
font-size: 11px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--text-muted);
margin-bottom: 10px;
}
.config-section-subtitle {
font-size: 11px;
font-weight: 600;
color: var(--text-muted);
margin: 10px 0 6px;
}
/* Toggle switch */
.config-toggle {
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
}
.config-toggle-label {
font-size: 14px;
font-weight: 500;
color: var(--text);
}
.toggle-switch {
appearance: none;
width: 40px;
height: 22px;
background: var(--border);
border-radius: 100px;
position: relative;
cursor: pointer;
transition: background 0.2s;
}
.toggle-switch::before {
content: '';
position: absolute;
top: 2px;
left: 2px;
width: 18px;
height: 18px;
background: white;
border-radius: 50%;
transition: transform 0.2s;
}
.toggle-switch:checked {
background: var(--orange);
}
.toggle-switch:checked::before {
transform: translateX(18px);
}
/* Hint type checkboxes */
.config-hint-types {
display: flex;
gap: 16px;
}
.config-checkbox {
display: flex;
align-items: center;
gap: 6px;
font-size: 13px;
color: var(--text);
cursor: pointer;
}
.config-checkbox input[type="checkbox"] {
accent-color: var(--orange);
}
/* Award type list */
.config-award-types {
margin-top: 4px;
}
.config-award-list {
border: 1px solid var(--border);
border-radius: var(--radius-sm);
max-height: 150px;
overflow-y: auto;
padding: 6px 0;
}
.config-award-list .config-checkbox {
padding: 4px 12px;
}
.config-award-list .config-checkbox:first-child {
padding-bottom: 6px;
margin-bottom: 2px;
border-bottom: 1px solid var(--border);
}
/* Flash messages */
.flash-error {
margin-top: 16px;
padding: 10px 16px;
background: #fef2f2;
color: #991b1b;
border: 1px solid #fecaca;
border-radius: var(--radius-sm);
font-size: 13px;
}
.start-loader {
display: none;
width: 48px;