Compare commits

..

4 Commits

Author SHA1 Message Date
1a60e606de update min version 2026-03-02 13:18:06 -05:00
e045909acb somehow this works better 2026-02-10 13:10:12 -05:00
40411104d6 gaze pp 2026-02-10 01:06:57 -05:00
c6e9fccc9a marketing page 2026-02-09 19:53:50 -05:00
8 changed files with 170 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

BIN
public/look-away.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 KiB

View File

@@ -160,7 +160,7 @@ function AppLayout(props: { children: any }) {
<LeftBar />
<div
id="center-body"
class="bg-base relative h-screen w-screen overflow-x-hidden md:ml-62.5 md:w-[calc(100vw-500px)]"
class="bg-base relative h-screen w-screen overflow-x-hidden md:ml-[250px] md:w-[calc(100vw-500px)]"
>
<noscript>
<div class="bg-yellow text-crust border-text fixed top-0 z-150 border-b-2 p-4 text-center font-semibold md:w-[calc(100vw-500px)]">

View File

@@ -616,6 +616,7 @@ export function RightBar() {
"transition-timing-function": "cubic-bezier(0.4, 0, 0.2, 1)",
"box-shadow": "inset 6px 0 16px -6px rgba(0, 0, 0, 0.1)",
"padding-top": "env(safe-area-inset-top)",
width: "250px",
"padding-bottom": "env(safe-area-inset-bottom)",
"scrollbar-width": "none"
}}

View File

@@ -94,7 +94,7 @@ export default function DownloadsPage() {
<div class="flex flex-col items-center gap-3">
<span class="text-subtext0 font-mono text-sm">
platform: macOS (13.0+)
platform: macOS (14.6+)
</span>
<Button
variant="download"

View File

@@ -0,0 +1,57 @@
import { PageHead } from "~/components/PageHead";
import DownloadOnAppStoreDark from "~/components/icons/DownloadOnAppStoreDark";
import { useDarkMode } from "~/context/darkMode";
export default function GazeMarketing() {
const { isDark } = useDarkMode();
return (
<>
<PageHead
title="Gaze - Eye Health Reminder"
description="A macOS menu bar app that helps you remember to take breaks and rest your eyes. Download Gaze today."
/>
<div class="relative h-full">
<div class="fixed inset-0 z-0 overflow-hidden brightness-75">
<img
src="/look-away.png"
alt="background"
class="h-full w-full object-cover select-none"
style={{
"pointer-events": "none"
}}
/>
</div>
<div class="relative z-10 flex h-full flex-col items-center justify-center text-white backdrop-blur">
<div>
<img
src={
isDark()
? "/Gaze Exports/Gaze-iOS-Dark-1024x1024@1x.png"
: "/Gaze Exports/Gaze-iOS-Default-1024x1024@1x.png"
}
alt="Gaze App Icon"
height={128}
width={128}
class="object-cover object-center"
/>
</div>
<h1 class="py-4 text-center text-5xl font-bold">Gaze</h1>
<p class="text-text mb-8 text-xl">
Eye and posture health reminder for macOS
</p>
<div class="flex space-x-4">
<a
class="my-auto transition-all duration-200 ease-out active:scale-95"
href="https://apps.apple.com"
target="_blank"
rel="noopener noreferrer"
>
<DownloadOnAppStoreDark size={50} />
</a>
</div>
</div>
</div>
</>
);
}

View File

@@ -0,0 +1,110 @@
import { A } from "@solidjs/router";
import { PageHead } from "~/components/PageHead";
export default function PrivacyPolicy() {
return (
<>
<PageHead
title="Privacy Policy - Gaze"
description="Privacy policy for Gaze, a macOS eye health reminder app."
/>
<div class="min-h-screen px-[8vw] py-[10vh]">
<div class="py-4 text-xl">Gaze&apos;s Privacy Policy</div>
<div class="py-2">Last Updated: February 9, 2026</div>
<div class="py-2">
Welcome to Gaze (&apos;We&apos;, &apos;Us&apos;, &apos;Our&apos;).
Your privacy is important to us. This privacy policy will help you
understand our policies and procedures related to the collection, use,
and storage of personal information from our users.
</div>
<ol>
<div class="py-2">
<div class="pb-2 text-lg">
<span class="-ml-4 pr-2">1.</span> Personal Information
</div>
<div class="pl-4">
<div class="pb-2">
<div class="-ml-6">(a) Collection of Personal Data:</div> Gaze
is designed with privacy as a core principle. We currently do
not collect, store, or share any personal information from our
users. The app runs entirely on your device and does not require
any account creation or data transmission to external servers.
</div>
<div class="pb-2">
<div class="-ml-6">(b) Future Data Collection:</div> We may in
the future implement optional features such as analytics or
crash reporting. If we do, we will clearly inform users through
a privacy policy update and obtain explicit consent before
collecting any data.
</div>
<div class="pb-2">
<div class="-ml-6">(c) Data Removal:</div> Since we do not
collect any personal information, there is no data to remove. If
you have any concerns about our practices, please contact{" "}
<A href="/contact" class="text-blue hover-underline-animation">
here
</A>
.
</div>
</div>
</div>
<div class="py-2">
<div class="pb-2 text-lg">
<span class="-ml-4 pr-2">2.</span> Third-Party Access
</div>
<div class="pb-2 pl-4">
<div class="-ml-6">(a) No Third-Party Sharing:</div> We do not
share, sell, or transfer any personal information to third
parties. Currently, Gaze does not utilize any third-party services
that would collect user data. Any future third-party services we
may use will be transparently disclosed in our privacy policy.
</div>
</div>
<div class="py-2">
<div class="pb-2 text-lg">
<span class="-ml-4 pr-2">3.</span> Security
</div>
<div class="pb-2 pl-4">
<div class="-ml-6">(a) Data Protection:</div> Because Gaze does
not collect or store any personal information, there is minimal
data security risk. The app runs locally on your device using
standard macOS security practices. Any configuration data stored
locally on your device is encrypted using system-provided
mechanisms.
</div>
</div>
<div class="py-2">
<div class="pb-2 text-lg">
<span class="-ml-4 pr-2">4.</span> Changes to the Privacy Policy
</div>
<div class="pb-2 pl-4">
<div class="-ml-6">(a) Updates:</div> We may update this privacy
policy periodically, especially if we introduce new features that
involve data collection. Any changes to this privacy policy will
be posted on this page. We encourage users to review this policy
regularly to stay informed about how we protect their information.
</div>
</div>
<div class="py-2">
<div class="pb-2 text-lg">
<span class="-ml-4 pr-2">5.</span> Contact Us
</div>
<div class="pb-2 pl-4">
<div class="-ml-6">(a) Reaching Out:</div> If there are any
questions or comments regarding this privacy policy, you can
contact us{" "}
<A href="/contact" class="text-blue hover-underline-animation">
here
</A>
.
</div>
</div>
</ol>
</div>
</>
);
}