refactor(ui): standardize home chart controls
This commit is contained in:
parent
57b8be698d
commit
217b46e123
@ -922,6 +922,38 @@ body {
|
|||||||
color: var(--bl-success);
|
color: var(--bl-success);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.home-chart-segment {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 2px;
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
border-radius: 12px;
|
||||||
|
background: color-mix(in oklab, var(--card) 76%, transparent);
|
||||||
|
padding: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.home-chart-toggle {
|
||||||
|
min-height: 28px;
|
||||||
|
border-radius: 9px;
|
||||||
|
padding: 0 9px;
|
||||||
|
color: var(--muted-foreground);
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 680;
|
||||||
|
}
|
||||||
|
|
||||||
|
.home-chart-toggle[data-active='true'] {
|
||||||
|
background: var(--accent-soft);
|
||||||
|
color: var(--primary);
|
||||||
|
box-shadow: 0 6px 16px color-mix(in oklab, var(--primary) 12%, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.home-chart-toggle--pill {
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
border-radius: 999px;
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: 720;
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 760px) {
|
@media (max-width: 760px) {
|
||||||
.admin-console-header {
|
.admin-console-header {
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
|
|||||||
@ -375,25 +375,20 @@ function StockChart({
|
|||||||
}}>
|
}}>
|
||||||
{/* Period selector + chart type */}
|
{/* Period selector + chart type */}
|
||||||
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: 12, gap: 12 }}>
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: 12, gap: 12 }}>
|
||||||
<div style={{ display: 'flex', gap: 2 }}>
|
<div className="home-chart-segment" aria-label="Chart period">
|
||||||
{PERIODS.map(p => (
|
{PERIODS.map(p => (
|
||||||
<button
|
<Button
|
||||||
key={p}
|
key={p}
|
||||||
|
type="button"
|
||||||
|
variant="ghost"
|
||||||
|
size="sm"
|
||||||
onClick={() => setPeriod(p)}
|
onClick={() => setPeriod(p)}
|
||||||
style={{
|
className="home-chart-toggle"
|
||||||
padding: '4px 9px',
|
data-active={period === p}
|
||||||
border: 'none',
|
aria-pressed={period === p}
|
||||||
borderRadius: 6,
|
|
||||||
fontSize: 12,
|
|
||||||
fontWeight: period === p ? 700 : 500,
|
|
||||||
background: period === p ? 'var(--accent-soft)' : 'transparent',
|
|
||||||
color: period === p ? 'var(--primary)' : 'var(--muted-foreground)',
|
|
||||||
cursor: 'pointer',
|
|
||||||
transition: 'all 0.15s',
|
|
||||||
}}
|
|
||||||
>
|
>
|
||||||
{p}
|
{p}
|
||||||
</button>
|
</Button>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
<div style={{ display: 'flex', alignItems: 'center', gap: 12, color: 'var(--muted-foreground)', fontSize: 12 }}>
|
<div style={{ display: 'flex', alignItems: 'center', gap: 12, color: 'var(--muted-foreground)', fontSize: 12 }}>
|
||||||
@ -401,25 +396,19 @@ function StockChart({
|
|||||||
{INDICATORS.map(indicator => {
|
{INDICATORS.map(indicator => {
|
||||||
const active = enabledIndicators[indicator.key];
|
const active = enabledIndicators[indicator.key];
|
||||||
return (
|
return (
|
||||||
<button
|
<Button
|
||||||
key={indicator.key}
|
key={indicator.key}
|
||||||
|
type="button"
|
||||||
|
variant="ghost"
|
||||||
|
size="sm"
|
||||||
onClick={() => toggleIndicator(indicator.key)}
|
onClick={() => toggleIndicator(indicator.key)}
|
||||||
title={indicator.hint}
|
title={indicator.hint}
|
||||||
aria-pressed={active}
|
aria-pressed={active}
|
||||||
style={{
|
className="home-chart-toggle home-chart-toggle--pill"
|
||||||
padding: '5px 9px',
|
data-active={active}
|
||||||
borderRadius: 999,
|
|
||||||
border: active ? '1px solid var(--primary)' : '1px solid var(--border)',
|
|
||||||
background: active ? 'var(--accent-soft)' : 'var(--card)',
|
|
||||||
color: active ? 'var(--primary)' : 'var(--muted-foreground)',
|
|
||||||
fontSize: 11,
|
|
||||||
fontWeight: 700,
|
|
||||||
cursor: 'pointer',
|
|
||||||
boxShadow: active ? '0 2px 8px color-mix(in oklab, var(--primary) 18%, transparent 82%)' : 'none',
|
|
||||||
}}
|
|
||||||
>
|
>
|
||||||
{indicator.label}
|
{indicator.label}
|
||||||
</button>
|
</Button>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user