refactor(ui): standardize home chart controls
This commit is contained in:
parent
57b8be698d
commit
217b46e123
@ -922,6 +922,38 @@ body {
|
||||
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) {
|
||||
.admin-console-header {
|
||||
align-items: stretch;
|
||||
|
||||
@ -375,25 +375,20 @@ function StockChart({
|
||||
}}>
|
||||
{/* Period selector + chart type */}
|
||||
<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 => (
|
||||
<button
|
||||
<Button
|
||||
key={p}
|
||||
type="button"
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
onClick={() => setPeriod(p)}
|
||||
style={{
|
||||
padding: '4px 9px',
|
||||
border: 'none',
|
||||
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',
|
||||
}}
|
||||
className="home-chart-toggle"
|
||||
data-active={period === p}
|
||||
aria-pressed={period === p}
|
||||
>
|
||||
{p}
|
||||
</button>
|
||||
</Button>
|
||||
))}
|
||||
</div>
|
||||
<div style={{ display: 'flex', alignItems: 'center', gap: 12, color: 'var(--muted-foreground)', fontSize: 12 }}>
|
||||
@ -401,25 +396,19 @@ function StockChart({
|
||||
{INDICATORS.map(indicator => {
|
||||
const active = enabledIndicators[indicator.key];
|
||||
return (
|
||||
<button
|
||||
<Button
|
||||
key={indicator.key}
|
||||
type="button"
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
onClick={() => toggleIndicator(indicator.key)}
|
||||
title={indicator.hint}
|
||||
aria-pressed={active}
|
||||
style={{
|
||||
padding: '5px 9px',
|
||||
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',
|
||||
}}
|
||||
className="home-chart-toggle home-chart-toggle--pill"
|
||||
data-active={active}
|
||||
>
|
||||
{indicator.label}
|
||||
</button>
|
||||
</Button>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user