mirror of
https://github.com/moku-project/Moku.git
synced 2026-06-13 09:19:56 -05:00
[V1] Redid Series Detail Download Layout
This commit is contained in:
Generated
+1
-1
@@ -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",
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user