Mehdi commited on
Commit
8fd63cd
Β·
1 Parent(s): fa431a7

ui: replace mode pills with large cards (icon, title, desc, check indicator)

Browse files
Files changed (2) hide show
  1. app.py +2 -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('active', m === 'open');
490
- $('mode-mcq-btn')?.classList.toggle('active', m === 'mcq');
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
- .controls-row .toggle-group:last-of-type { margin-right: auto; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 -->