techfreakworm commited on
Commit
aac47cf
·
unverified ·
1 Parent(s): 2d0e666

fix(ui): kill .styler bands + label icons + deepen pill contrast

Browse files

User feedback on the mobile screenshot flagged three remaining issues:

1. Slate-blue horizontal bands above and below the Generate button.
Cause: Gradio wraps each Row/Form in a <div class="styler …">
whose default background is var(--border-color-primary) — which
we set to #1F1F1F (BORDER). On Samsung's cool-temperature display
that #1F1F1F reads as bluish-grey. Force .styler inside .ams-content
to background:transparent so the form rows blend into the panel.

2. Tiny 11x11 music-note / braces SVG icons next to OUTPUT and
METADATA labels. Gradio inlines these inside the <label> as a
decoration. The wireframe does not show them; they overlap the
label text at small sizes. Hide via
.ams-content .ams-out label svg { display:none } while keeping
the LARGE empty-state SVG (which lives in a separate .empty.svelte-…
container) visible.

3. Bluish perception on Vocal mode pills. The pill backgrounds were
SURFACE_STRONG (#000) unselected / SURFACE_RAISED (#1A1A1A) selected.
The selected #1A1A1A neutral grey can read cool-bluish on phones.
Switch both states to pitch black #000 with white border on
selected — eliminates any neutral grey that could be perceptually
tinted.

Also added defensive .ams-content > .row, > .row > .column, .form
background:transparent overrides so no nested Gradio wrapper can
re-introduce a slate fill.

Verified at 360 px via Playwright: no bands around Generate, panel
labels clean, pills pure black. Theme L1 tests still pass (3/3),
ruff clean.

Files changed (1) hide show
  1. theme.py +44 -5
theme.py CHANGED
@@ -398,7 +398,9 @@ main, .contain {{
398
  letter-spacing:0 !important;
399
  font-weight:500 !important;
400
  color:{INK} !important;
401
- background:{SURFACE_STRONG} !important;
 
 
402
  border:1px solid {BORDER} !important;
403
  border-radius:3px !important;
404
  padding:7px 12px !important;
@@ -409,11 +411,11 @@ main, .contain {{
409
  }}
410
  .ams-content .wrap > label:hover {{
411
  border-color:{BORDER_STRONG} !important;
412
- background:{HOVER_BG} !important;
413
  }}
414
  .ams-content .wrap > label:has(input[type="radio"]:checked) {{
415
  border-color:{PRIMARY} !important;
416
- background:{SURFACE_RAISED} !important;
417
  }}
418
  /* Custom radio dot */
419
  .ams-content .wrap > label input[type="radio"] {{
@@ -495,12 +497,49 @@ main, .contain {{
495
  padding:0 0 6px 0 !important;
496
  display:block !important;
497
  }}
498
- /* Empty-state svg glyphs (music note, JSON braces) center + muted */
499
- .ams-content .ams-out svg {{
 
 
 
 
 
 
 
 
 
 
 
 
500
  color:{INK_FAINT} !important;
501
  opacity:0.5 !important;
502
  }}
503
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
504
  /* Add explicit gap between form column and output column when stacked */
505
  @media (max-width: 768px) {{
506
  .ams-tab-pane > .row,
 
398
  letter-spacing:0 !important;
399
  font-weight:500 !important;
400
  color:{INK} !important;
401
+ /* Pure pitch-black background so cool-display tinting can't read
402
+ into a neutral grey as bluish. */
403
+ background:#000 !important;
404
  border:1px solid {BORDER} !important;
405
  border-radius:3px !important;
406
  padding:7px 12px !important;
 
411
  }}
412
  .ams-content .wrap > label:hover {{
413
  border-color:{BORDER_STRONG} !important;
414
+ background:#0F0F0F !important;
415
  }}
416
  .ams-content .wrap > label:has(input[type="radio"]:checked) {{
417
  border-color:{PRIMARY} !important;
418
+ background:#0F0F0F !important;
419
  }}
420
  /* Custom radio dot */
421
  .ams-content .wrap > label input[type="radio"] {{
 
497
  padding:0 0 6px 0 !important;
498
  display:block !important;
499
  }}
500
+ /* Hide Gradio's tiny inline icon SVG that sits inside the Output /
501
+ Metadata label (an 11x11 music-note / braces glyph). The wireframe
502
+ doesn't show these; they overlap the label text and create a
503
+ "broken" feel. Note that the LARGE empty-state SVG (centered in
504
+ the panel body) lives inside ``.empty.svelte-v95lt3`` and is
505
+ spared by this selector since it's not a direct label child. */
506
+ .ams-content .ams-out label svg,
507
+ .ams-content .ams-out > label > span:first-child:has(svg) {{
508
+ display:none !important;
509
+ }}
510
+ /* The large empty-state SVG centered in the panel body — keep, but
511
+ make it visually softer (muted faint ink, low opacity). */
512
+ .ams-content .ams-out .empty svg,
513
+ .ams-content .ams-out [class*="empty"] svg {{
514
  color:{INK_FAINT} !important;
515
  opacity:0.5 !important;
516
  }}
517
 
518
+ /* ============================================================
519
+ * Defeat Gradio's ``div.styler`` wrapper backgrounds.
520
+ * Gradio wraps every Row / Form in a <div class="styler svelte-..."
521
+ * which has background:var(--border-color-primary) = #1F1F1F by
522
+ * default. That produces visible slate-blue "bands" between the
523
+ * form rows (most obviously around the Generate button) on cool
524
+ * displays. Force it transparent everywhere inside our content.
525
+ * ============================================================ */
526
+ .ams-content .styler,
527
+ .ams-content [class*="styler"],
528
+ .ams-content .form > .styler {{
529
+ background:transparent !important;
530
+ border:none !important;
531
+ padding:0 !important;
532
+ }}
533
+
534
+ /* Defeat any residual Gradio block bg that might pull a slate value
535
+ despite our --neutral-* override (defensive, harmless if it's
536
+ already correct). */
537
+ .ams-content > .row,
538
+ .ams-content > .row > .column,
539
+ .ams-content .form {{
540
+ background:transparent !important;
541
+ }}
542
+
543
  /* Add explicit gap between form column and output column when stacked */
544
  @media (max-width: 768px) {{
545
  .ams-tab-pane > .row,