|
23 | 23 | filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2)); |
24 | 24 | } |
25 | 25 |
|
26 | | -/* Trim filter positioned absolutely in top-right */ |
27 | | -.trim-filter { |
| 26 | +/* Filters container positioned absolutely in top-right */ |
| 27 | +.filters-container { |
28 | 28 | position: absolute; |
29 | 29 | top: 1.5rem; |
30 | 30 | right: 1.5rem; |
31 | | - width: 200px; |
| 31 | + display: flex; |
| 32 | + gap: 0.75rem; |
32 | 33 | z-index: 50; |
33 | 34 | } |
34 | 35 |
|
| 36 | +/* Year filter */ |
| 37 | +.year-filter { |
| 38 | + width: 150px; |
| 39 | +} |
| 40 | + |
| 41 | +/* Trim filter */ |
| 42 | +.trim-filter { |
| 43 | + width: 200px; |
| 44 | +} |
| 45 | + |
35 | 46 | .trim-filter__button { |
36 | 47 | width: 100%; |
37 | 48 | padding: 0.65rem 1rem; |
|
118 | 129 | opacity: 0.8; |
119 | 130 | } |
120 | 131 |
|
| 132 | +/* Year filter button */ |
| 133 | +.year-filter__button { |
| 134 | + width: 100%; |
| 135 | + padding: 0.65rem 1rem; |
| 136 | + border-radius: 6px; |
| 137 | + border: 2px solid rgba(102, 126, 234, 0.3); |
| 138 | + background: rgba(102, 126, 234, 0.1); |
| 139 | + color: white; |
| 140 | + font-size: 0.9rem; |
| 141 | + font-weight: 600; |
| 142 | + cursor: pointer; |
| 143 | + transition: all 0.2s ease; |
| 144 | + display: flex; |
| 145 | + justify-content: space-between; |
| 146 | + align-items: center; |
| 147 | + gap: 0.5rem; |
| 148 | +} |
| 149 | + |
| 150 | +.year-filter__button:hover, |
| 151 | +.year-filter__button:focus-visible { |
| 152 | + background: rgba(102, 126, 234, 0.2); |
| 153 | + border-color: rgba(102, 126, 234, 0.5); |
| 154 | + outline: none; |
| 155 | +} |
| 156 | + |
| 157 | +.year-filter__arrow { |
| 158 | + font-size: 0.7rem; |
| 159 | + transition: transform 0.2s ease; |
| 160 | + color: rgba(255, 255, 255, 0.7); |
| 161 | +} |
| 162 | + |
| 163 | +.year-filter__arrow.open { |
| 164 | + transform: rotate(180deg); |
| 165 | +} |
| 166 | + |
| 167 | +.year-filter__menu { |
| 168 | + position: absolute; |
| 169 | + top: calc(100% + 0.5rem); |
| 170 | + left: 0; |
| 171 | + right: 0; |
| 172 | + background: var(--bg-primary); |
| 173 | + border: 2px solid rgba(102, 126, 234, 0.3); |
| 174 | + border-radius: 6px; |
| 175 | + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); |
| 176 | + max-height: 300px; |
| 177 | + overflow-y: auto; |
| 178 | + z-index: 100; |
| 179 | + padding: 0.5rem 0; |
| 180 | +} |
| 181 | + |
| 182 | +.year-filter__menu-item { |
| 183 | + display: flex; |
| 184 | + align-items: center; |
| 185 | + gap: 0.75rem; |
| 186 | + padding: 0.6rem 1rem; |
| 187 | + cursor: pointer; |
| 188 | + transition: background 0.15s ease; |
| 189 | + font-size: 0.9rem; |
| 190 | + color: white; |
| 191 | +} |
| 192 | + |
| 193 | +.year-filter__menu-item:hover { |
| 194 | + background: rgba(102, 126, 234, 0.15); |
| 195 | +} |
| 196 | + |
| 197 | +.year-filter__menu-item input[type="checkbox"] { |
| 198 | + width: 16px; |
| 199 | + height: 16px; |
| 200 | + cursor: pointer; |
| 201 | + accent-color: var(--primary-color); |
| 202 | +} |
| 203 | + |
| 204 | +.year-filter__clear { |
| 205 | + background: none; |
| 206 | + border: none; |
| 207 | + color: var(--primary-color); |
| 208 | + font-weight: 600; |
| 209 | + font-size: 0.85rem; |
| 210 | + cursor: pointer; |
| 211 | + padding: 0; |
| 212 | + transition: opacity 0.15s ease; |
| 213 | +} |
| 214 | + |
| 215 | +.year-filter__clear:hover { |
| 216 | + opacity: 0.8; |
| 217 | +} |
| 218 | + |
121 | 219 | @media (max-width: 900px) { |
122 | 220 | .model-listings-view { |
123 | 221 | padding: 1.35rem; |
124 | 222 | } |
125 | 223 |
|
126 | | - .trim-filter { |
| 224 | + .filters-container { |
127 | 225 | top: 1.35rem; |
128 | 226 | right: 1.35rem; |
| 227 | + gap: 0.65rem; |
| 228 | + } |
| 229 | + |
| 230 | + .year-filter { |
| 231 | + width: 140px; |
| 232 | + } |
| 233 | + |
| 234 | + .trim-filter { |
129 | 235 | width: 180px; |
130 | 236 | } |
131 | 237 |
|
| 238 | + .year-filter__button, |
132 | 239 | .trim-filter__button { |
133 | 240 | padding: 0.6rem 0.9rem; |
134 | 241 | font-size: 0.875rem; |
135 | 242 | } |
136 | 243 |
|
| 244 | + .year-filter__menu-item, |
137 | 245 | .trim-filter__menu-item { |
138 | 246 | padding: 0.55rem 0.9rem; |
139 | 247 | font-size: 0.875rem; |
|
143 | 251 | @media (max-width: 768px) { |
144 | 252 | .model-listings-view { |
145 | 253 | padding: 1.25rem; |
146 | | - padding-top: 4.5rem; /* Make room for filter at top */ |
| 254 | + padding-top: 7.5rem; /* Make room for filters at top */ |
147 | 255 | margin-top: 1.5rem; |
148 | 256 | } |
149 | 257 |
|
150 | | - /* Mobile: position at top left */ |
151 | | - .trim-filter { |
| 258 | + /* Mobile: stack filters vertically at top left */ |
| 259 | + .filters-container { |
152 | 260 | top: 1.25rem; |
153 | 261 | right: auto; |
154 | 262 | left: 1.25rem; |
| 263 | + flex-direction: column; |
| 264 | + gap: 0.75rem; |
155 | 265 | width: calc(100% - 2.5rem); |
156 | 266 | max-width: 300px; |
157 | 267 | } |
158 | 268 |
|
| 269 | + .year-filter, |
| 270 | + .trim-filter { |
| 271 | + width: 100%; |
| 272 | + } |
| 273 | + |
| 274 | + .year-filter__button, |
159 | 275 | .trim-filter__button { |
160 | 276 | padding: 0.65rem 1rem; |
161 | 277 | font-size: 0.9rem; |
162 | 278 | } |
163 | 279 |
|
| 280 | + .year-filter__menu-item, |
164 | 281 | .trim-filter__menu-item { |
165 | 282 | padding: 0.6rem 1rem; |
166 | 283 | font-size: 0.9rem; |
|
170 | 287 | @media (max-width: 540px) { |
171 | 288 | .model-listings-view { |
172 | 289 | padding: 1rem; |
173 | | - padding-top: 4.25rem; |
| 290 | + padding-top: 7.25rem; |
174 | 291 | margin-top: 1.25rem; |
175 | 292 | } |
176 | 293 |
|
177 | | - .trim-filter { |
| 294 | + .filters-container { |
178 | 295 | top: 1rem; |
179 | 296 | left: 1rem; |
180 | 297 | right: 1rem; |
181 | 298 | width: calc(100% - 2rem); |
182 | 299 | max-width: none; |
| 300 | + gap: 0.65rem; |
| 301 | + } |
| 302 | + |
| 303 | + .year-filter, |
| 304 | + .trim-filter { |
| 305 | + width: 100%; |
183 | 306 | } |
184 | 307 |
|
| 308 | + .year-filter__button, |
185 | 309 | .trim-filter__button { |
186 | 310 | padding: 0.6rem 0.85rem; |
187 | 311 | font-size: 0.875rem; |
188 | 312 | } |
189 | 313 |
|
| 314 | + .year-filter__menu-item, |
190 | 315 | .trim-filter__menu-item { |
191 | 316 | padding: 0.55rem 0.85rem; |
192 | 317 | font-size: 0.875rem; |
|
0 commit comments