import { createSignal } from "solid-js";
import { PageHead } from "~/components/PageHead";
import DownloadOnAppStoreDark from "~/components/icons/DownloadOnAppStoreDark";
import Button from "~/components/ui/Button";
import { useDarkMode } from "~/context/darkMode";
import { downloadAsset } from "~/lib/download-asset";
const GAZE_APP_STORE_URL =
"https://apps.apple.com/us/app/gaze/id6757759498";
const GAZE_MIN_MACOS = "13.0";
const FEATURES = [
{
title: "Take regular breaks",
body: "Gentle, dismissable reminders nudge you to step away from the screen so you can rest and reset."
},
{
title: "Eye health reminders",
body: "Follow the 20-20-20 rule — every 20 minutes, look at something 20 feet away for 20 seconds."
},
{
title: "Posture reminders",
body: "Periodic check-ins help you catch slouching before it becomes a habit."
},
{
title: "Lives in your menu bar",
body: "A lightweight menu bar app — no dock icon, no intrusive overlays. Just a quiet, reliable companion."
}
] as const;
export default function GazeLanding() {
const { isDark } = useDarkMode();
const [loading, setLoading] = createSignal(false);
const handleDownload = () => {
if (loading()) return;
setLoading(true);
import("~/lib/api")
.then(({ api }) =>
downloadAsset({
api,
assetName: "gaze",
onError: (error) => {
console.error("Gaze download error:", error);
alert("Failed to initiate download. Please try again.");
}
})
)
.finally(() => setLoading(false));
};
return (
<>
Gaze runs quietly in your menu bar, surfacing a gentle, dismissable reminder when it's time to look away, stretch, or reset your posture. No accounts, no clunky dashboards — just a steady rhythm that helps you build better habits.
Requires macOS {GAZE_MIN_MACOS} or later.