diff --git a/src/components/SubtleHover.tsx b/src/components/SubtleHover.tsx
new file mode 100644
index 0000000000..bb5911baa6
--- /dev/null
+++ b/src/components/SubtleHover.tsx
@@ -0,0 +1,34 @@
+import {View} from 'react-native'
+
+import {atoms as a, useTheme, type ViewStyleProp} from '#/alf'
+
+export function SubtleHover({style, hover}: ViewStyleProp & {hover: boolean}) {
+ const t = useTheme()
+
+ let opacity: number
+ switch (t.name) {
+ case 'dark':
+ opacity = 0.4
+ break
+ case 'dim':
+ opacity = 0.45
+ break
+ case 'light':
+ opacity = 0.5
+ break
+ }
+
+ return (
+
+ )
+}
diff --git a/src/screens/Search/Explore.tsx b/src/screens/Search/Explore.tsx
index 79e27ec9a4..973d4a6ddf 100644
--- a/src/screens/Search/Explore.tsx
+++ b/src/screens/Search/Explore.tsx
@@ -52,6 +52,7 @@ import {StarterPack} from '#/components/icons/StarterPack'
import {UserCircle_Stroke2_Corner0_Rounded as Person} from '#/components/icons/UserCircle'
import {Loader} from '#/components/Loader'
import * as ProfileCard from '#/components/ProfileCard'
+import {SubtleHover} from '#/components/SubtleHover'
import {Text} from '#/components/Typography'
import * as ModuleHeader from './components/ModuleHeader'
import {
@@ -69,33 +70,26 @@ function LoadMore({item}: {item: ExploreScreenItems & {type: 'loadMore'}}) {
onPress={item.onLoadMore}
style={[a.relative, a.w_full]}>
{({hovered, pressed}) => (
-
-
+
+
- {item.message}
-
- {item.isLoadingMore ? (
-
- ) : (
-
- )}
-
+ {item.message}
+ {item.isLoadingMore ? (
+
+ ) : (
+
+ )}
+
+ >
)}
)
diff --git a/src/screens/Search/components/StarterPackCard.tsx b/src/screens/Search/components/StarterPackCard.tsx
index 1b9f948282..fcb0ef0680 100644
--- a/src/screens/Search/components/StarterPackCard.tsx
+++ b/src/screens/Search/components/StarterPackCard.tsx
@@ -19,6 +19,7 @@ import {PlusSmall_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus
import {Link} from '#/components/Link'
import {MediaInsetBorder} from '#/components/MediaInsetBorder'
import {useStarterPackLink} from '#/components/StarterPack/StarterPackCard'
+import {SubtleHover} from '#/components/SubtleHover'
import {Text} from '#/components/Typography'
import * as bsky from '#/types/bsky'
@@ -48,75 +49,80 @@ export function StarterPackCard({
.map(item => item.subject)
return (
-
-
-
-
-
-
+
+ {s => (
+ <>
+
-
+
+
-
-
-
- {view.record.name}
-
-
- {view.creator?.did === currentAccount?.did
- ? _(msg`By you`)
- : _(msg`By ${sanitizeHandle(view.creator.handle, '@')}`)}
-
-
-
-
- Open pack
-
-
-
-
+
+
+
+ {view.record.name}
+
+
+ {view.creator?.did === currentAccount?.did
+ ? _(msg`By you`)
+ : _(msg`By ${sanitizeHandle(view.creator.handle, '@')}`)}
+
+
+
+
+ Open pack
+
+
+
+
+ >
+ )}
+
)
}
diff --git a/src/screens/Search/modules/ExploreSuggestedAccounts.tsx b/src/screens/Search/modules/ExploreSuggestedAccounts.tsx
index ee179bbc6f..8d66dfbc18 100644
--- a/src/screens/Search/modules/ExploreSuggestedAccounts.tsx
+++ b/src/screens/Search/modules/ExploreSuggestedAccounts.tsx
@@ -17,6 +17,7 @@ import {atoms as a} from '#/alf'
import {Button} from '#/components/Button'
import * as ProfileCard from '#/components/ProfileCard'
import {boostInterests, Tabs} from '#/components/ProgressGuide/FollowDialog'
+import {SubtleHover} from '#/components/SubtleHover'
import {Text} from '#/components/Typography'
import type * as bsky from '#/types/bsky'
@@ -133,10 +134,7 @@ let Tab = ({
a.py_sm,
a.border,
active || hovered || pressed || focused
- ? [
- t.atoms.bg_contrast_25,
- {borderColor: t.atoms.bg_contrast_25.backgroundColor},
- ]
+ ? [t.atoms.bg_contrast_25, t.atoms.border_contrast_medium]
: [t.atoms.bg, t.atoms.border_contrast_low],
]}>
{s => (
-
-
-
-
-
- {
- logger.metric(
- 'suggestedUser:follow',
- {
- logContext: 'Explore',
- location: 'Card',
- recId,
- position,
- },
- {statsig: true},
- )
- }}
- />
-
-
-
-
+ <>
+
+
+
+
+
+
+ {
+ logger.metric(
+ 'suggestedUser:follow',
+ {
+ logContext: 'Explore',
+ location: 'Card',
+ recId,
+ position,
+ },
+ {statsig: true},
+ )
+ }}
+ />
+
+
+
+
+ >
)}
)
diff --git a/src/screens/Search/modules/ExploreTrendingTopics.tsx b/src/screens/Search/modules/ExploreTrendingTopics.tsx
index 75ca193510..d44201a185 100644
--- a/src/screens/Search/modules/ExploreTrendingTopics.tsx
+++ b/src/screens/Search/modules/ExploreTrendingTopics.tsx
@@ -17,6 +17,7 @@ import {type Props as SVGIconProps} from '#/components/icons/common'
import {Flame_Stroke2_Corner1_Rounded as FlameIcon} from '#/components/icons/Flame'
import {Trending3_Stroke2_Corner1_Rounded as TrendingIcon} from '#/components/icons/Trending'
import {Link} from '#/components/Link'
+import {SubtleHover} from '#/components/SubtleHover'
import {Text} from '#/components/Typography'
const TOPIC_COUNT = 5
@@ -92,15 +93,8 @@ export function TrendRow({
PressableComponent={Pressable}>
{({hovered, pressed}) => (
<>
-
+
+