[V1] Redid Series Detail Download Layout

This commit is contained in:
Youwes09
2026-02-24 22:02:53 -06:00
parent ac04c39ead
commit 28e9e3bcf8
3 changed files with 45 additions and 12 deletions
+1 -1
View File
@@ -1797,7 +1797,7 @@ dependencies = [
[[package]] [[package]]
name = "moku" name = "moku"
version = "0.2.0" version = "0.3.0"
dependencies = [ dependencies = [
"dirs 5.0.1", "dirs 5.0.1",
"nix", "nix",
+35 -5
View File
@@ -973,7 +973,7 @@
} }
/* ── Download dropdown extended: Next-N quick buttons + range picker ─────── */ /* ── Download dropdown extended: Next-N quick buttons + range picker ─────── */
.dlSectionLabel { .dlSectionLabel {
padding: 6px var(--sp-3) 2px; padding: 6px var(--sp-3) 4px;
font-family: var(--font-ui); font-family: var(--font-ui);
font-size: var(--text-2xs); font-size: var(--text-2xs);
color: var(--text-faint); color: var(--text-faint);
@@ -987,13 +987,14 @@
padding: 2px var(--sp-2) var(--sp-2); padding: 2px var(--sp-2) var(--sp-2);
} }
/* Clean pill-style buttons — label + count inline, no column stacking */
.dlNextBtn { .dlNextBtn {
flex: 1; flex: 1;
display: flex; display: flex;
flex-direction: column;
align-items: center; align-items: center;
gap: 2px; justify-content: center;
padding: 6px 4px; gap: 5px;
padding: 5px 6px;
border-radius: var(--radius-md); border-radius: var(--radius-md);
border: 1px solid var(--border-dim); border: 1px solid var(--border-dim);
background: var(--bg-overlay); background: var(--bg-overlay);
@@ -1003,17 +1004,25 @@
letter-spacing: var(--tracking-wide); letter-spacing: var(--tracking-wide);
cursor: pointer; cursor: pointer;
transition: background var(--t-fast), border-color var(--t-fast), color var(--t-fast); transition: background var(--t-fast), border-color var(--t-fast), color var(--t-fast);
white-space: nowrap;
} }
.dlNextBtn:hover:not(:disabled) { .dlNextBtn:hover:not(:disabled) {
background: var(--accent-muted); background: var(--accent-muted);
border-color: var(--accent-dim); border-color: var(--accent-dim);
color: var(--accent-fg); color: var(--accent-fg);
} }
.dlNextBtn:hover:not(:disabled) .dlNextSub {
color: var(--accent-fg);
opacity: 0.7;
}
.dlNextBtn:disabled { opacity: 0.3; cursor: default; } .dlNextBtn:disabled { opacity: 0.3; cursor: default; }
/* The "(n new)" count badge — sits inline as a dimmed suffix */
.dlNextSub { .dlNextSub {
font-size: var(--text-2xs); font-size: var(--text-2xs);
color: var(--text-faint); color: var(--text-faint);
font-variant-numeric: tabular-nums;
transition: color var(--t-fast), opacity var(--t-fast);
} }
.dlDivider { .dlDivider {
@@ -1022,13 +1031,34 @@
margin: var(--sp-1) var(--sp-2); margin: var(--sp-1) var(--sp-2);
} }
/* Range row: swaps in at the same height as dlItem — no layout shift */
.dlRangeRow { .dlRangeRow {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 4px; gap: 4px;
padding: 2px var(--sp-2) var(--sp-2); padding: 7px var(--sp-2) 7px var(--sp-2);
border-radius: var(--radius-md);
min-height: 0;
} }
.dlRangeBack {
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 20px;
height: 20px;
border-radius: var(--radius-sm);
border: 1px solid var(--border-dim);
background: none;
color: var(--text-faint);
font-size: 14px;
line-height: 1;
cursor: pointer;
transition: color var(--t-fast), border-color var(--t-fast), background var(--t-fast);
}
.dlRangeBack:hover { color: var(--text-muted); border-color: var(--border-strong); background: var(--bg-overlay); }
.dlRangeInput { .dlRangeInput {
flex: 1; flex: 1;
min-width: 0; min-width: 0;
+9 -6
View File
@@ -131,18 +131,21 @@ function DownloadDropdown({
</> </>
)} )}
<button className={s.dlItem} onClick={() => setShowRange((p) => !p)}> {!showRange ? (
<span>Custom range</span> <button className={s.dlItem} onClick={() => setShowRange(true)}>
<span className={s.dlItemSub}>Enter chapter numbers</span> <span>Custom range</span>
</button> <span className={s.dlItemSub}>Enter chapter numbers</span>
{showRange && ( </button>
) : (
<div className={s.dlRangeRow}> <div className={s.dlRangeRow}>
<button className={s.dlRangeBack} onClick={() => setShowRange(false)} title="Back"></button>
<input <input
className={s.dlRangeInput} className={s.dlRangeInput}
placeholder="From" placeholder="From"
value={rangeFrom} value={rangeFrom}
onChange={(e) => setRangeFrom(e.target.value)} onChange={(e) => setRangeFrom(e.target.value)}
onKeyDown={(e) => e.key === "Enter" && enqueueRange()} onKeyDown={(e) => e.key === "Enter" && enqueueRange()}
autoFocus
/> />
<span className={s.dlRangeSep}></span> <span className={s.dlRangeSep}></span>
<input <input
@@ -157,7 +160,7 @@ function DownloadDropdown({
disabled={!rangeFrom.trim() || !rangeTo.trim()} disabled={!rangeFrom.trim() || !rangeTo.trim()}
onClick={enqueueRange} onClick={enqueueRange}
> >
Queue Go
</button> </button>
</div> </div>
)} )}