Spaces:
Sleeping
Sleeping
Mehdi commited on
Commit Β·
8fd63cd
1
Parent(s): fa431a7
ui: replace mode pills with large cards (icon, title, desc, check indicator)
Browse files- app.py +2 -2
- ui/index.html +65 -1
app.py
CHANGED
|
@@ -486,8 +486,8 @@ BRIDGE_JS = """() => {
|
|
| 486 |
// ββ Mode toggle ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 487 |
function setMode(m) {
|
| 488 |
S.mode = m;
|
| 489 |
-
$('mode-open-btn')?.classList.toggle('
|
| 490 |
-
$('mode-mcq-btn')?.classList.toggle('
|
| 491 |
S.currentQuestion = ''; S.mcqData = null;
|
| 492 |
$('empty-state')?.classList.remove('hidden');
|
| 493 |
$('question-area')?.classList.add('hidden');
|
|
|
|
| 486 |
// ββ Mode toggle ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 487 |
function setMode(m) {
|
| 488 |
S.mode = m;
|
| 489 |
+
$('mode-open-btn')?.classList.toggle('selected', m === 'open');
|
| 490 |
+
$('mode-mcq-btn')?.classList.toggle('selected', m === 'mcq');
|
| 491 |
S.currentQuestion = ''; S.mcqData = null;
|
| 492 |
$('empty-state')?.classList.remove('hidden');
|
| 493 |
$('question-area')?.classList.add('hidden');
|
ui/index.html
CHANGED
|
@@ -138,7 +138,51 @@
|
|
| 138 |
display: flex; align-items: center; flex-wrap: wrap; gap: 12px;
|
| 139 |
margin-bottom: 24px;
|
| 140 |
}
|
| 141 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 142 |
.diff-label { font-size: .75rem; color: var(--dim); font-weight: 500;
|
| 143 |
letter-spacing: .04em; margin-bottom: 4px; }
|
| 144 |
|
|
@@ -387,6 +431,26 @@
|
|
| 387 |
<!-- ββ Quiz card ββββββββββββββββββββββββββββββββββββββββββββββββββββββ -->
|
| 388 |
<div class="card hidden fade-in-up" id="quiz-card" style="animation-delay:.1s">
|
| 389 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 390 |
<!-- Controls row -->
|
| 391 |
<div class="controls-row">
|
| 392 |
<!-- Score ring -->
|
|
|
|
| 138 |
display: flex; align-items: center; flex-wrap: wrap; gap: 12px;
|
| 139 |
margin-bottom: 24px;
|
| 140 |
}
|
| 141 |
+
|
| 142 |
+
/* ββ Mode selector cards βββββββββββββββββββββββββββββββββββββββββββββββ */
|
| 143 |
+
.mode-selector {
|
| 144 |
+
display: flex; gap: 10px; width: 100%; margin-bottom: 20px;
|
| 145 |
+
}
|
| 146 |
+
.mode-card {
|
| 147 |
+
flex: 1; display: flex; align-items: center; gap: 12px;
|
| 148 |
+
padding: 14px 16px; border-radius: var(--r-sm);
|
| 149 |
+
border: 2px solid var(--border);
|
| 150 |
+
background: var(--surface);
|
| 151 |
+
cursor: pointer; transition: all .2s; text-align: left;
|
| 152 |
+
font-family: inherit;
|
| 153 |
+
}
|
| 154 |
+
.mode-card:hover { border-color: rgba(255,255,255,.2); background: var(--surface-2); }
|
| 155 |
+
.mode-card.selected {
|
| 156 |
+
border-color: var(--purple);
|
| 157 |
+
background: rgba(124,58,237,.12);
|
| 158 |
+
box-shadow: 0 0 0 1px rgba(124,58,237,.3), 0 4px 16px rgba(124,58,237,.2);
|
| 159 |
+
}
|
| 160 |
+
.mode-card-icon {
|
| 161 |
+
font-size: 1.5rem; flex-shrink: 0;
|
| 162 |
+
width: 40px; height: 40px;
|
| 163 |
+
border-radius: 10px; background: rgba(255,255,255,.06);
|
| 164 |
+
display: flex; align-items: center; justify-content: center;
|
| 165 |
+
transition: background .2s;
|
| 166 |
+
}
|
| 167 |
+
.mode-card.selected .mode-card-icon { background: rgba(124,58,237,.25); }
|
| 168 |
+
.mode-card-body { flex: 1; }
|
| 169 |
+
.mode-card-title {
|
| 170 |
+
font-size: .92rem; font-weight: 700; color: var(--muted);
|
| 171 |
+
margin-bottom: 2px; transition: color .2s;
|
| 172 |
+
}
|
| 173 |
+
.mode-card.selected .mode-card-title { color: var(--text); }
|
| 174 |
+
.mode-card-desc { font-size: .75rem; color: var(--dim); line-height: 1.3; }
|
| 175 |
+
.mode-card-check {
|
| 176 |
+
width: 20px; height: 20px; border-radius: 50%; flex-shrink: 0;
|
| 177 |
+
border: 2px solid var(--border);
|
| 178 |
+
display: flex; align-items: center; justify-content: center;
|
| 179 |
+
font-size: .7rem; color: transparent;
|
| 180 |
+
transition: all .2s;
|
| 181 |
+
}
|
| 182 |
+
.mode-card.selected .mode-card-check {
|
| 183 |
+
background: var(--purple); border-color: var(--purple); color: #fff;
|
| 184 |
+
}
|
| 185 |
+
|
| 186 |
.diff-label { font-size: .75rem; color: var(--dim); font-weight: 500;
|
| 187 |
letter-spacing: .04em; margin-bottom: 4px; }
|
| 188 |
|
|
|
|
| 431 |
<!-- ββ Quiz card ββββββββββββββββββββββββββββββββββββββββββββββββββββββ -->
|
| 432 |
<div class="card hidden fade-in-up" id="quiz-card" style="animation-delay:.1s">
|
| 433 |
|
| 434 |
+
<!-- Mode selector -->
|
| 435 |
+
<div class="mode-selector">
|
| 436 |
+
<button class="mode-card selected" id="mode-open-btn">
|
| 437 |
+
<div class="mode-card-icon">βοΈ</div>
|
| 438 |
+
<div class="mode-card-body">
|
| 439 |
+
<div class="mode-card-title">Open Question</div>
|
| 440 |
+
<div class="mode-card-desc">Write a free-form answer</div>
|
| 441 |
+
</div>
|
| 442 |
+
<div class="mode-card-check">β</div>
|
| 443 |
+
</button>
|
| 444 |
+
<button class="mode-card" id="mode-mcq-btn">
|
| 445 |
+
<div class="mode-card-icon">π―</div>
|
| 446 |
+
<div class="mode-card-body">
|
| 447 |
+
<div class="mode-card-title">Multiple Choice</div>
|
| 448 |
+
<div class="mode-card-desc">Pick the correct answer</div>
|
| 449 |
+
</div>
|
| 450 |
+
<div class="mode-card-check">β</div>
|
| 451 |
+
</button>
|
| 452 |
+
</div>
|
| 453 |
+
|
| 454 |
<!-- Controls row -->
|
| 455 |
<div class="controls-row">
|
| 456 |
<!-- Score ring -->
|