Skip to content

Commit 4712b54

Browse files
fix(ui): fix Glass theme hover effects and backdrop click behavior
- Add hover:glass-tint-green CSS rule for dropdown item hover effects - Add data-[highlighted]:glass-tint-green CSS rule for keyboard navigation - Fix Settings modal backdrop click not closing in Glass themes - Add onClick={onClose} to content wrapper div - Add stopPropagation to modal panel to prevent bubbling - Update ThemeSelector and SoundSelector dropdown items with new hover classes Fixes #14
1 parent 32d2cf8 commit 4712b54

File tree

6 files changed

+44
-31
lines changed

6 files changed

+44
-31
lines changed

app/globals.css

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -493,11 +493,20 @@
493493
background: var(--glass-tint-amber);
494494
}
495495

496+
/* Hover Tint Variants (for dropdown items) */
497+
.hover\:glass-tint-green:hover {
498+
background: var(--glass-tint-green);
499+
}
500+
496501
/* Data State Tint Variants (for Radix UI Select) */
497502
.data-\[state\=checked\]\:glass-tint-green[data-state='checked'] {
498503
background: var(--glass-tint-green);
499504
}
500505

506+
.data-\[highlighted\]\:glass-tint-green[data-highlighted] {
507+
background: var(--glass-tint-green);
508+
}
509+
501510
.data-\[highlighted\]\:glass-tint-green\/50[data-highlighted] {
502511
background: rgba(16, 185, 129, 0.075);
503512
}

components/settings/SettingsPanel.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,12 @@ export const SettingsPanel = memo(function SettingsPanel({
119119

120120
{/* Glass Dialog Content - Flexbox centering wrapper */}
121121
<Dialog.Content asChild>
122-
<div className="fixed inset-0 flex items-center justify-center p-4">
122+
<div
123+
className="fixed inset-0 flex items-center justify-center p-4"
124+
onClick={onClose}
125+
>
123126
<motion.div
127+
onClick={(e) => e.stopPropagation()}
124128
data-testid="settings-panel"
125129
className="flex max-h-[85vh] w-[90vw] max-w-md flex-col overflow-hidden rounded-3xl glass glass-elevated glass-highlight focus:outline-none"
126130
initial={{ opacity: 0, scale: 0.95 }}

components/settings/SoundSelector.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ export const SoundSelector = React.memo(function SoundSelector({
204204
<div className="flex items-center justify-between rounded-xl px-2 py-1">
205205
<Select.Item
206206
value={preset}
207-
className="relative flex-1 cursor-pointer rounded-xl pl-8 pr-4 py-2 text-sm text-text-primary outline-none transition-colors data-[state=checked]:glass-tint-green data-[state=checked]:text-primary-green data-[highlighted]:glass-tint-green/50"
207+
className="relative flex-1 cursor-pointer rounded-xl pl-8 pr-4 py-2 text-sm text-text-primary outline-none transition-colors hover:glass-tint-green data-[state=checked]:glass-tint-green data-[state=checked]:text-primary-green data-[highlighted]:glass-tint-green"
208208
>
209209
<Select.ItemText>{tPresets(preset)}</Select.ItemText>
210210
<Select.ItemIndicator className="absolute left-2 inline-flex items-center">

components/settings/ThemeSelector.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ export const ThemeSelector = React.memo(function ThemeSelector() {
176176
<Select.Item
177177
key={item}
178178
value={item}
179-
className="relative flex cursor-pointer items-center rounded-xl py-2 pl-8 pr-4 text-sm text-text-primary outline-none transition-colors data-[state=checked]:glass-tint-green data-[state=checked]:text-primary-green data-[highlighted]:glass-tint-green/50"
179+
className="relative flex cursor-pointer items-center rounded-xl py-2 pl-8 pr-4 text-sm text-text-primary outline-none transition-colors hover:glass-tint-green data-[state=checked]:glass-tint-green data-[state=checked]:text-primary-green data-[highlighted]:glass-tint-green"
180180
>
181181
<Select.ItemText>
182182
<div className="flex items-center gap-2">

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"framer-motion": "^12.23.24",
3232
"lucide-react": "^0.555.0",
3333
"next": "^16.0.5",
34-
"next-intl": "^4.5.5",
34+
"next-intl": "^4.5.6",
3535
"next-themes": "^0.4.6",
3636
"react": "^19.2.0",
3737
"react-dom": "^19.2.0",
@@ -52,7 +52,7 @@
5252
"husky": "^9.1.7",
5353
"lint-staged": "^16.2.7",
5454
"postcss": "^8.5.6",
55-
"prettier": "^3.6.2",
55+
"prettier": "^3.7.1",
5656
"tailwindcss": "^4.1.17",
5757
"typescript": "^5.9.3"
5858
}

pnpm-lock.yaml

Lines changed: 26 additions & 26 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)