Skip to content

Commit bdf0957

Browse files
committed
fix: improve Sort By dropdown styling consistency
- Remove blue outline and inconsistent hover backgrounds - Add proper focus/active states styles to match the design system - Improve light/dark mode theme integration - Fix trigger background blending issues Fixes #1372
1 parent 7ba55b4 commit bdf0957

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

frontend/src/components/SortBy.tsx

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,21 @@ const SortBy = ({
1515
return (
1616
<div className="flex items-center gap-2">
1717
{/* Sort Attribute Dropdown */}
18-
<div className="inline-flex h-12 items-center rounded-lg bg-gray-200 dark:bg-[#323232]">
18+
<div className="inline-flex h-12 items-center rounded-lg border border-gray-300 bg-gray-100 pl-3 shadow-sm transition-all duration-200 hover:shadow-md dark:border-gray-600 dark:bg-[#323232]">
1919
<Select
2020
className=""
2121
labelPlacement="outside-left"
2222
size="md"
2323
label="Sort By :"
2424
classNames={{
25-
label:
26-
'font-small text-sm text-gray-600 hover:cursor-pointer dark:text-gray-300 pl-[1.4rem] w-auto',
27-
trigger: 'bg-gray-200 dark:bg-[#323232] pl-0 text-nowrap w-32',
28-
popoverContent: 'text-md min-w-36 dark:bg-[#323232] rounded-none p-0',
25+
label: 'font-medium text-sm text-gray-700 dark:text-gray-300 w-auto select-none pe-0',
26+
trigger:
27+
'bg-transparent data-[hover=true]:bg-transparent focus:outline-none focus:ring-0 border-none shadow-none text-nowrap w-32 min-h-8 h-8 text-sm font-medium text-gray-800 dark:text-gray-200 hover:text-gray-900 dark:hover:text-gray-100 transition-all duration-0',
28+
value: 'text-gray-800 dark:text-gray-200 font-medium',
29+
selectorIcon: 'text-gray-500 dark:text-gray-400 transition-transform duration-200',
30+
popoverContent:
31+
'bg-white dark:bg-[#2a2a2a] border border-gray-200 dark:border-gray-600 rounded-md shadow-lg min-w-36 p-1 focus:outline-none',
32+
listbox: 'p-0 focus:outline-none',
2933
}}
3034
selectedKeys={sortOptions
3135
.filter((item: { key: string; label: string }) => item.key === selectedSortOption)
@@ -38,7 +42,7 @@ const SortBy = ({
3842
<SelectItem
3943
key={option.key}
4044
classNames={{
41-
base: 'text-sm hover:bg-[#D1DBE6] dark:hover:bg-[#454545] rounded-none px-3 py-0.5',
45+
base: 'text-sm text-gray-700 dark:text-gray-300 hover:bg-transparent dark:hover:bg-transparent focus:bg-gray-100 dark:focus:bg-[#404040] focus:outline-none rounded-sm px-3 py-2 cursor-pointer transition-colors duration-150 data-[selected=true]:bg-blue-50 dark:data-[selected=true]:bg-blue-900/20 data-[selected=true]:text-blue-600 dark:data-[selected=true]:text-blue-400 data-[focus=true]:bg-gray-100 dark:data-[focus=true]:bg-[#404040]',
4246
}}
4347
>
4448
{option.label}
@@ -58,17 +62,17 @@ const SortBy = ({
5862
>
5963
<button
6064
onClick={() => onOrderChange(selectedOrder === 'asc' ? 'desc' : 'asc')}
61-
className="inline-flex h-9 w-9 items-center justify-center rounded-lg bg-gray-200 p-0 shadow-xs hover:bg-gray-300 dark:bg-[#323232] dark:text-gray-300 dark:hover:bg-[#454545]"
65+
className="inline-flex h-9 w-9 items-center justify-center rounded-lg border border-gray-300 bg-gray-100 p-0 shadow-sm transition-all duration-200 hover:bg-gray-200 hover:shadow-md focus:ring-2 focus:ring-gray-300 focus:ring-offset-1 focus:outline-none dark:border-gray-600 dark:bg-[#323232] dark:hover:bg-[#404040] dark:focus:ring-gray-500"
6266
>
6367
{selectedOrder === 'asc' ? (
6468
<FontAwesomeIcon
6569
icon={faArrowUpWideShort}
66-
className="h-4 w-4 text-gray-600 dark:text-gray-200"
70+
className="h-4 w-4 text-gray-600 dark:text-gray-300"
6771
/>
6872
) : (
6973
<FontAwesomeIcon
7074
icon={faArrowDownWideShort}
71-
className="h-4 w-4 text-gray-600 dark:text-gray-200"
75+
className="h-4 w-4 text-gray-600 dark:text-gray-300"
7276
/>
7377
)}
7478
</button>

0 commit comments

Comments
 (0)