Skip to content

Commit ad18384

Browse files
animation tweaks
1 parent ede0c63 commit ad18384

File tree

2 files changed

+56
-7
lines changed

2 files changed

+56
-7
lines changed

src/components/PriceRangeChart.css

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,26 @@
8686
top: calc(100% + 4px);
8787
right: 0;
8888
min-width: 180px;
89-
background: var(--bg-secondary);
90-
border: 1px solid var(--border-color);
89+
background: var(--bg-primary);
90+
border: 1px solid rgba(255, 255, 255, 0.15);
9191
border-radius: 0.5rem;
92-
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
92+
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
9393
overflow: hidden;
9494
z-index: 100;
9595
}
9696

97+
@media (prefers-color-scheme: light) {
98+
.dot-size-menu {
99+
background: var(--bg-secondary);
100+
border-color: rgba(0, 0, 0, 0.15);
101+
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
102+
}
103+
}
104+
97105
.dot-size-menu-item {
98-
display: block;
106+
display: flex;
107+
align-items: center;
108+
gap: 0.5rem;
99109
width: 100%;
100110
padding: 0.65rem 0.875rem;
101111
border: none;
@@ -107,12 +117,41 @@
107117
transition: background 0.15s ease;
108118
}
109119

120+
.dot-size-menu-item__check {
121+
color: var(--primary-color);
122+
font-weight: bold;
123+
font-size: 1rem;
124+
line-height: 1;
125+
width: 1rem;
126+
flex-shrink: 0;
127+
animation: checkAppear 0.3s ease-out;
128+
}
129+
130+
.dot-size-menu-item__spacer {
131+
width: 1rem;
132+
flex-shrink: 0;
133+
}
134+
135+
@keyframes checkAppear {
136+
0% {
137+
opacity: 0;
138+
transform: scale(0.5);
139+
}
140+
50% {
141+
transform: scale(1.2);
142+
}
143+
100% {
144+
opacity: 1;
145+
transform: scale(1);
146+
}
147+
}
148+
110149
.dot-size-menu-item:hover {
111150
background: var(--hover-bg);
112151
}
113152

114153
.dot-size-menu-item.active {
115-
background: rgba(102, 126, 234, 0.1);
154+
background: rgba(102, 126, 234, 0.15);
116155
color: var(--primary-color);
117156
font-weight: 600;
118157
}

src/components/PriceRangeChart.jsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -923,19 +923,29 @@ export default function PriceRangeChart({
923923
className={`dot-size-menu-item${dotSizeMode === 'stock' ? ' active' : ''}`}
924924
onClick={() => {
925925
setDotSizeMode('stock');
926-
setDotSizeMenuOpen(false);
926+
setTimeout(() => setDotSizeMenuOpen(false), 300);
927927
}}
928928
>
929+
{dotSizeMode === 'stock' ? (
930+
<span className="dot-size-menu-item__check"></span>
931+
) : (
932+
<span className="dot-size-menu-item__spacer"></span>
933+
)}
929934
Stock Count
930935
</button>
931936
<button
932937
type="button"
933938
className={`dot-size-menu-item${dotSizeMode === 'days' ? ' active' : ''}`}
934939
onClick={() => {
935940
setDotSizeMode('days');
936-
setDotSizeMenuOpen(false);
941+
setTimeout(() => setDotSizeMenuOpen(false), 300);
937942
}}
938943
>
944+
{dotSizeMode === 'days' ? (
945+
<span className="dot-size-menu-item__check"></span>
946+
) : (
947+
<span className="dot-size-menu-item__spacer"></span>
948+
)}
939949
Avg Days on Market
940950
</button>
941951
</div>

0 commit comments

Comments
 (0)