diff --git a/src/components/dms/EmojiReactionPicker.web.tsx b/src/components/dms/EmojiReactionPicker.web.tsx
index 0425a879a1..0f547a3bc7 100644
--- a/src/components/dms/EmojiReactionPicker.web.tsx
+++ b/src/components/dms/EmojiReactionPicker.web.tsx
@@ -1,15 +1,14 @@
import {useState} from 'react'
-import {View} from 'react-native'
+import {Pressable,View} from 'react-native'
import {type ChatBskyConvoDefs} from '@atproto/api'
import EmojiPicker from '@emoji-mart/react'
import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react'
+import * as DropdownMenu from '@radix-ui/react-dropdown-menu'
import {useSession} from '#/state/session'
import {type Emoji} from '#/view/com/composer/text-input/web/EmojiPicker.web'
-import {PressableWithHover} from '#/view/com/util/PressableWithHover'
-import {atoms as a} from '#/alf'
-import {useTheme} from '#/alf'
+import {atoms as a, flatten, useTheme} from '#/alf'
import {DotGrid_Stroke2_Corner0_Rounded as DotGridIcon} from '#/components/icons/DotGrid'
import * as Menu from '#/components/Menu'
import {type TriggerProps} from '#/components/Menu/types'
@@ -67,48 +66,62 @@ function MenuInner({
return expanded ? (
) : (
-
- {['👍', '😆', '❤️', '👀', '😢'].map(emoji => {
- const alreadyReacted = hasAlreadyReacted(
- message,
- currentAccount?.did,
- emoji,
- )
- return (
- handleEmojiSelect(emoji)}
- hoverStyle={{
- backgroundColor: alreadyReacted
- ? t.palette.negative_200
- : !limitReacted
- ? t.palette.primary_300
- : undefined,
- }}
- style={[
- a.rounded_xs,
- {height: 40, width: 40},
+
+
+ {['👍', '😆', '❤️', '👀', '😢'].map(emoji => {
+ const alreadyReacted = hasAlreadyReacted(
+ message,
+ currentAccount?.did,
+ emoji,
+ )
+ return (
+ handleEmojiSelect(emoji)}
+ style={flatten([
+ a.flex,
+ a.flex_col,
+ a.rounded_full,
+ a.justify_center,
+ a.align_center,
+ a.transition_transform,
+ {
+ width: 34,
+ height: 34,
+ },
+ alreadyReacted && {
+ backgroundColor: t.atoms.bg_contrast_100.backgroundColor,
+ },
+ ])}>
+
+ {emoji}
+
+
+ )
+ })}
+
+ setExpanded(true)}
+ style={flatten([
+ a.rounded_full,
+ {height: 34, width: 34},
a.justify_center,
a.align_center,
- alreadyReacted && {backgroundColor: t.palette.primary_100},
- ]}>
-
- {emoji}
-
-
- )
- })}
- setExpanded(true)}
- hoverStyle={{backgroundColor: t.palette.primary_100}}
- style={[
- a.rounded_xs,
- {height: 40, width: 40},
- a.justify_center,
- a.align_center,
- ]}>
-
-
-
+ ])}>
+
+
+
+
+
)
}
diff --git a/src/style.css b/src/style.css
index d5a0f9b433..833c7fc6b1 100644
--- a/src/style.css
+++ b/src/style.css
@@ -290,3 +290,37 @@ input[type='range'][orient='vertical']::-moz-range-thumb {
width: 16px;
margin-left: -6px;
}
+
+/*
+ * EmojiReactionPicker dropdown elements, within Radix components
+ */
+.EmojiReactionPicker__Pressable {
+ cursor: pointer;
+ border: 1px solid transparent;
+}
+.EmojiReactionPicker__Pressable:focus {
+ outline: none;
+ border-color: var(--text);
+}
+.EmojiReactionPicker__Pressable:hover {
+ outline: none;
+ transform: scale(1.1);
+ border-color: transparent;
+}
+.EmojiReactionPicker__Pressable:not(.__selected).__disabled {
+ transform: scale(1) !important;
+ border-color: transparent !important;
+}
+.EmojiReactionPicker__Pressable ~ button {
+ cursor: pointer;
+ border: 1px solid transparent;
+}
+.EmojiReactionPicker__Pressable ~ button:focus {
+ outline: none;
+ border-color: var(--text);
+}
+.EmojiReactionPicker__Pressable ~ button:hover {
+ outline: none;
+ background-color: var(--backgroundLight);
+ border-color: transparent;
+}