diff --git a/src/components/search/search-trigger.tsx b/src/components/search/search-trigger.tsx
index 02af3dfc..c577f526 100644
--- a/src/components/search/search-trigger.tsx
+++ b/src/components/search/search-trigger.tsx
@@ -1,21 +1,14 @@
"use client";
import { Search } from "lucide-react";
-import { useSyncExternalStore } from "react";
import { useSearch } from "@/components/search/search-provider";
-const emptySubscribe = () => () => {};
-
-function readIsMac(): boolean {
- if (typeof navigator === "undefined") return false;
- const p = navigator.platform || navigator.userAgent;
- return /Mac|iPhone|iPad|iPod/i.test(p);
-}
-
type Props = {
/**
- * - `desktop`: inline pill-ish button next to "GitHub" / theme toggle
- * in the desktop nav. Hidden below md.
+ * - `desktop`: wide input-style pill shown in the desktop nav. Reads
+ * visually as a real search field (light surface, rounded, full
+ * width within its container) so users discover the feature without
+ * needing the keyboard shortcut.
* - `mobile`: 44×44 icon-only square sized to the same min-tap target
* as the hamburger. Hidden at md+.
*/
@@ -24,11 +17,6 @@ type Props = {
export function SearchTrigger({ variant }: Props) {
const { open } = useSearch();
- // Read once on the client. SSR snapshot is `false` so we render the
- // Ctrl variant; the client snapshot replaces it on hydration if the
- // platform actually is macOS. Avoids the set-state-in-effect lint
- // and stays consistent with how ThemeToggle reads the DOM.
- const isMac = useSyncExternalStore(emptySubscribe, readIsMac, () => false);
if (variant === "mobile") {
return (
@@ -36,26 +24,28 @@ export function SearchTrigger({ variant }: Props) {
type="button"
onClick={open}
aria-label="Open search"
- className="md:hidden inline-flex items-center justify-center min-h-[44px] min-w-[44px] rounded text-ink-muted hover:text-ink transition-colors"
+ className="md:hidden inline-flex items-center justify-center min-h-[44px] min-w-[44px] rounded-md text-ink-muted hover:text-ink transition-colors"
>