diff --git a/apps/web/app/(auth)/login/page.tsx b/apps/web/app/(auth)/login/page.tsx index df052a3d..70b53606 100644 --- a/apps/web/app/(auth)/login/page.tsx +++ b/apps/web/app/(auth)/login/page.tsx @@ -1,12 +1,5 @@ -import { LoginPage } from "@repo/ui/pages/login"; +import { LoginPage } from "@repo/ui/pages/login" export default function Page() { - return ( - - ); + return } diff --git a/apps/web/app/onboarding/page.tsx b/apps/web/app/onboarding/page.tsx index 147bbfb6..ec0e7d6c 100644 --- a/apps/web/app/onboarding/page.tsx +++ b/apps/web/app/onboarding/page.tsx @@ -25,7 +25,7 @@ import { AnimatedGradientBackground } from "./setup/page" function UserSupermemory({ name }: { name: string }) { return ( - {name}'s + {name}'s supermemory @@ -166,7 +166,7 @@ export default function OnboardingPage() { const showUserSupermemory = isWelcomeFlow && currentStep === "username" return ( - + {isWelcomeFlow && ( } {isWelcomeFlow && ( - + setSelectedCard(card.title)} @@ -110,7 +110,12 @@ export function IntegrationsStep() { {card.title} - + {card.description} @@ -126,7 +131,12 @@ export function IntegrationsStep() { > {card.title} - + {card.description} diff --git a/apps/web/app/onboarding/setup/relatable-question.tsx b/apps/web/app/onboarding/setup/relatable-question.tsx index 693822aa..a4f2dc99 100644 --- a/apps/web/app/onboarding/setup/relatable-question.tsx +++ b/apps/web/app/onboarding/setup/relatable-question.tsx @@ -65,10 +65,10 @@ export function RelatableQuestion() { {option.emoji} - + {option.text} @@ -104,12 +110,20 @@ export function RelatableQuestion() { {selectedOptions.length === 0 ? "Skip for now →" diff --git a/apps/web/app/onboarding/welcome/continue-step.tsx b/apps/web/app/onboarding/welcome/continue-step.tsx index b4a4ef6c..0f47dcbd 100644 --- a/apps/web/app/onboarding/welcome/continue-step.tsx +++ b/apps/web/app/onboarding/welcome/continue-step.tsx @@ -33,6 +33,10 @@ export function ContinueStep() { Continue → diff --git a/apps/web/app/onboarding/welcome/features-step.tsx b/apps/web/app/onboarding/welcome/features-step.tsx index 9a854672..01506cfd 100644 --- a/apps/web/app/onboarding/welcome/features-step.tsx +++ b/apps/web/app/onboarding/welcome/features-step.tsx @@ -15,16 +15,16 @@ export function FeaturesStep() { initial={{ opacity: 0, y: 40 }} animate={{ opacity: 1, y: 0 }} transition={{ duration: 0.6, ease: "easeOut", delay: 0.3 }} - className="text-center max-w-[22rem] space-y-6" + className="text-center max-w-88 space-y-6" layout > - + What I can do for you - + - + - - Remember every context - + Remember every context - I keep track of what you've saved and shared with your supermemory. + I keep track of what you've saved and shared with your + supermemory. - + - - Find when you need it - + Find when you need it - I surface the right memories inside your supermemory, superfast. + I surface the right memories inside your supermemory, + superfast. - + - - Grow with your supermemory - + Grow with your supermemory I learn and personalize over time, so every interaction feels natural. @@ -89,6 +85,9 @@ export function FeaturesStep() { > Add memories → diff --git a/apps/web/app/onboarding/welcome/input-step.tsx b/apps/web/app/onboarding/welcome/input-step.tsx index cac747bf..72177d21 100644 --- a/apps/web/app/onboarding/welcome/input-step.tsx +++ b/apps/web/app/onboarding/welcome/input-step.tsx @@ -43,7 +43,7 @@ export function InputStep({ }} layout > - + What should I call you? @@ -67,16 +67,19 @@ export function InputStep({ }} /> diff --git a/apps/web/app/onboarding/welcome/memories-step.tsx b/apps/web/app/onboarding/welcome/memories-step.tsx index 260b61d2..11de1506 100644 --- a/apps/web/app/onboarding/welcome/memories-step.tsx +++ b/apps/web/app/onboarding/welcome/memories-step.tsx @@ -108,8 +108,7 @@ export function MemoriesStep({ onSubmit }: MemoriesStepProps) { initial={{ opacity: 0, y: 40 }} animate={{ opacity: 1, y: 0 }} transition={{ duration: 0.6, ease: "easeOut", delay: 0.3 }} - className="text-center w-full" - layout + className="text-center w-full " > Let's add your memories @@ -139,13 +138,13 @@ export function MemoriesStep({ onSubmit }: MemoriesStepProps) { className={`w-full px-4 py-2 bg-[#070E1B] border rounded-xl text-white placeholder-onboarding focus:outline-none transition-colors h-[40px] ${ errors.twitter ? "border-[#52596633] bg-[#290F0A]" - : "border-[#525966]/20" + : "border-onboarding/20" }`} /> {errors.twitter && ( - - + + {errors.twitter} @@ -178,18 +177,18 @@ export function MemoriesStep({ onSubmit }: MemoriesStepProps) { className={`w-full px-4 py-2 bg-[#070E1B] border rounded-xl text-white placeholder-onboarding focus:outline-none transition-colors h-[40px] ${ errors.linkedin ? "border-[#52596633] bg-[#290F0A]" - : "border-[#525966]/20" + : "border-onboarding/20" }`} /> {errors.linkedin && ( - + {errors.linkedin} @@ -210,11 +209,11 @@ export function MemoriesStep({ onSubmit }: MemoriesStepProps) { > Other links - Upto 3 + Upto 3 {otherLinks.map((link, index) => ( updateOtherLink(index, e.target.value)} - className="flex-1 px-4 py-2 bg-[#070E1B] border border-[#525966]/20 rounded-xl text-white placeholder-onboarding focus:outline-none focus:border-[#4A4A4A] transition-colors h-[40px]" + className="flex-1 px-4 py-2 bg-[#070E1B] border border-onboarding/20 rounded-xl text-white placeholder-onboarding focus:outline-none focus:border-[#4A4A4A] transition-colors h-[40px]" /> {index === otherLinks.length - 1 && otherLinks.length < 3 && ( { + e.preventDefault() + e.stopPropagation() + addOtherLink() + }} className="size-8 m-1 absolute right-0 top-0 bg-black border border-[#161F2C] rounded-lg flex items-center justify-center text-white hover:bg-[#161F2C] transition-colors text-xl" > + @@ -254,7 +257,7 @@ export function MemoriesStep({ onSubmit }: MemoriesStepProps) { value={description} onChange={(e) => setDescription(e.target.value)} rows={2} - className="w-full px-4 py-2 bg-[#070E1B] border border-[#525966]/20 rounded-xl text-white placeholder-onboarding focus:outline-none focus:border-[#4A4A4A] transition-colors min-h-[4rem]" + className="w-full px-4 py-2 bg-[#070E1B] border border-onboarding/20 rounded-xl text-white placeholder-onboarding focus:outline-none focus:border-[#4A4A4A] transition-colors min-h-16" /> @@ -266,10 +269,10 @@ export function MemoriesStep({ onSubmit }: MemoriesStepProps) { }} transition={{ duration: 1, ease: "easeOut", delay: 1 }} initial={{ opacity: 0, y: 10 }} - className="mt-[24px]" + className="mt-[24px] pb-8" > - Welcome to + Welcome to... ) } diff --git a/apps/web/components/chrome-extension-detail-view.tsx b/apps/web/components/chrome-extension-detail-view.tsx index 5b417095..b45e6677 100644 --- a/apps/web/components/chrome-extension-detail-view.tsx +++ b/apps/web/components/chrome-extension-detail-view.tsx @@ -51,13 +51,13 @@ export function ChromeExtensionDetailView({ - + Import your X bookmarks via the Chrome Extension @@ -66,7 +66,7 @@ export function ChromeExtensionDetailView({ need, right when you need it. - + {steps.map((step) => ( Memory API ↗ diff --git a/apps/web/components/mcp-detail-view.tsx b/apps/web/components/mcp-detail-view.tsx index 1a58dad9..499419fd 100644 --- a/apps/web/components/mcp-detail-view.tsx +++ b/apps/web/components/mcp-detail-view.tsx @@ -80,11 +80,11 @@ export function MCPDetailView({ onBack }: MCPDetailViewProps) { - + Connect your AI to supermemory MCP - + - + Auto-fetch the right context from anything you've saved @@ -113,22 +113,22 @@ export function MCPDetailView({ onBack }: MCPDetailViewProps) { dmSansClassName(), )} > - + - One-time setup, seamless integration across your workflow + One-time setup, seamless integration across your workflow @@ -506,7 +506,7 @@ export function MCPDetailView({ onBack }: MCPDetailViewProps) { diff --git a/packages/ui/components/text-separator.tsx b/packages/ui/components/text-separator.tsx index 1c4bd80d..bd448233 100644 --- a/packages/ui/components/text-separator.tsx +++ b/packages/ui/components/text-separator.tsx @@ -14,7 +14,7 @@ export function TextSeparator({ className={cn("flex gap-4 items-center justify-center", className)} {...props} > - + {text} diff --git a/packages/ui/pages/login.tsx b/packages/ui/pages/login.tsx index ccc59a1f..9aa35dd4 100644 --- a/packages/ui/pages/login.tsx +++ b/packages/ui/pages/login.tsx @@ -14,7 +14,7 @@ import { InitialHeader } from "../../../apps/web/components/initial-header"; import { useRouter, useSearchParams } from "next/navigation"; import { useState, useEffect } from "react"; import { motion } from "framer-motion"; -import { dmSansClassName } from "../../../apps/web/utils/fonts" +import { dmSansClassName } from "../../../apps/web/utils/fonts"; import { cn } from "@lib/utils"; import { Logo } from "@ui/assets/Logo"; @@ -22,7 +22,7 @@ function AnimatedGradientBackground() { return ( + - + Never forget anything, anywhere @@ -236,7 +236,7 @@ export function LoginPage() { - + {process.env.NEXT_PUBLIC_HOST_ID === "supermemory" || !process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENABLED ? ( - + +
{name}'s
supermemory
+
{card.description}
{option.text}
- Remember every context -
Remember every context
- I keep track of what you've saved and shared with your supermemory. + I keep track of what you've saved and shared with your + supermemory.
- Find when you need it -
Find when you need it
- I surface the right memories inside your supermemory, superfast. + I surface the right memories inside your supermemory, + superfast.
- Grow with your supermemory -
Grow with your supermemory
I learn and personalize over time, so every interaction feels natural. @@ -89,6 +85,9 @@ export function FeaturesStep() { > Add memories → diff --git a/apps/web/app/onboarding/welcome/input-step.tsx b/apps/web/app/onboarding/welcome/input-step.tsx index cac747bf..72177d21 100644 --- a/apps/web/app/onboarding/welcome/input-step.tsx +++ b/apps/web/app/onboarding/welcome/input-step.tsx @@ -43,7 +43,7 @@ export function InputStep({ }} layout > - + What should I call you? @@ -67,16 +67,19 @@ export function InputStep({ }} /> diff --git a/apps/web/app/onboarding/welcome/memories-step.tsx b/apps/web/app/onboarding/welcome/memories-step.tsx index 260b61d2..11de1506 100644 --- a/apps/web/app/onboarding/welcome/memories-step.tsx +++ b/apps/web/app/onboarding/welcome/memories-step.tsx @@ -108,8 +108,7 @@ export function MemoriesStep({ onSubmit }: MemoriesStepProps) { initial={{ opacity: 0, y: 40 }} animate={{ opacity: 1, y: 0 }} transition={{ duration: 0.6, ease: "easeOut", delay: 0.3 }} - className="text-center w-full" - layout + className="text-center w-full " > Let's add your memories @@ -139,13 +138,13 @@ export function MemoriesStep({ onSubmit }: MemoriesStepProps) { className={`w-full px-4 py-2 bg-[#070E1B] border rounded-xl text-white placeholder-onboarding focus:outline-none transition-colors h-[40px] ${ errors.twitter ? "border-[#52596633] bg-[#290F0A]" - : "border-[#525966]/20" + : "border-onboarding/20" }`} /> {errors.twitter && ( - - + + {errors.twitter} @@ -178,18 +177,18 @@ export function MemoriesStep({ onSubmit }: MemoriesStepProps) { className={`w-full px-4 py-2 bg-[#070E1B] border rounded-xl text-white placeholder-onboarding focus:outline-none transition-colors h-[40px] ${ errors.linkedin ? "border-[#52596633] bg-[#290F0A]" - : "border-[#525966]/20" + : "border-onboarding/20" }`} /> {errors.linkedin && ( - + {errors.linkedin} @@ -210,11 +209,11 @@ export function MemoriesStep({ onSubmit }: MemoriesStepProps) { > Other links - Upto 3 + Upto 3 {otherLinks.map((link, index) => ( updateOtherLink(index, e.target.value)} - className="flex-1 px-4 py-2 bg-[#070E1B] border border-[#525966]/20 rounded-xl text-white placeholder-onboarding focus:outline-none focus:border-[#4A4A4A] transition-colors h-[40px]" + className="flex-1 px-4 py-2 bg-[#070E1B] border border-onboarding/20 rounded-xl text-white placeholder-onboarding focus:outline-none focus:border-[#4A4A4A] transition-colors h-[40px]" /> {index === otherLinks.length - 1 && otherLinks.length < 3 && ( { + e.preventDefault() + e.stopPropagation() + addOtherLink() + }} className="size-8 m-1 absolute right-0 top-0 bg-black border border-[#161F2C] rounded-lg flex items-center justify-center text-white hover:bg-[#161F2C] transition-colors text-xl" > + @@ -254,7 +257,7 @@ export function MemoriesStep({ onSubmit }: MemoriesStepProps) { value={description} onChange={(e) => setDescription(e.target.value)} rows={2} - className="w-full px-4 py-2 bg-[#070E1B] border border-[#525966]/20 rounded-xl text-white placeholder-onboarding focus:outline-none focus:border-[#4A4A4A] transition-colors min-h-[4rem]" + className="w-full px-4 py-2 bg-[#070E1B] border border-onboarding/20 rounded-xl text-white placeholder-onboarding focus:outline-none focus:border-[#4A4A4A] transition-colors min-h-16" /> @@ -266,10 +269,10 @@ export function MemoriesStep({ onSubmit }: MemoriesStepProps) { }} transition={{ duration: 1, ease: "easeOut", delay: 1 }} initial={{ opacity: 0, y: 10 }} - className="mt-[24px]" + className="mt-[24px] pb-8" > - Welcome to + Welcome to... ) } diff --git a/apps/web/components/chrome-extension-detail-view.tsx b/apps/web/components/chrome-extension-detail-view.tsx index 5b417095..b45e6677 100644 --- a/apps/web/components/chrome-extension-detail-view.tsx +++ b/apps/web/components/chrome-extension-detail-view.tsx @@ -51,13 +51,13 @@ export function ChromeExtensionDetailView({ - + Import your X bookmarks via the Chrome Extension @@ -66,7 +66,7 @@ export function ChromeExtensionDetailView({ need, right when you need it. - + {steps.map((step) => ( Memory API ↗ diff --git a/apps/web/components/mcp-detail-view.tsx b/apps/web/components/mcp-detail-view.tsx index 1a58dad9..499419fd 100644 --- a/apps/web/components/mcp-detail-view.tsx +++ b/apps/web/components/mcp-detail-view.tsx @@ -80,11 +80,11 @@ export function MCPDetailView({ onBack }: MCPDetailViewProps) { - + Connect your AI to supermemory MCP - + - + Auto-fetch the right context from anything you've saved @@ -113,22 +113,22 @@ export function MCPDetailView({ onBack }: MCPDetailViewProps) { dmSansClassName(), )} > - + - One-time setup, seamless integration across your workflow + One-time setup, seamless integration across your workflow @@ -506,7 +506,7 @@ export function MCPDetailView({ onBack }: MCPDetailViewProps) { diff --git a/packages/ui/components/text-separator.tsx b/packages/ui/components/text-separator.tsx index 1c4bd80d..bd448233 100644 --- a/packages/ui/components/text-separator.tsx +++ b/packages/ui/components/text-separator.tsx @@ -14,7 +14,7 @@ export function TextSeparator({ className={cn("flex gap-4 items-center justify-center", className)} {...props} > - + {text} diff --git a/packages/ui/pages/login.tsx b/packages/ui/pages/login.tsx index ccc59a1f..9aa35dd4 100644 --- a/packages/ui/pages/login.tsx +++ b/packages/ui/pages/login.tsx @@ -14,7 +14,7 @@ import { InitialHeader } from "../../../apps/web/components/initial-header"; import { useRouter, useSearchParams } from "next/navigation"; import { useState, useEffect } from "react"; import { motion } from "framer-motion"; -import { dmSansClassName } from "../../../apps/web/utils/fonts" +import { dmSansClassName } from "../../../apps/web/utils/fonts"; import { cn } from "@lib/utils"; import { Logo } from "@ui/assets/Logo"; @@ -22,7 +22,7 @@ function AnimatedGradientBackground() { return ( + - + Never forget anything, anywhere @@ -236,7 +236,7 @@ export function LoginPage() { - + {process.env.NEXT_PUBLIC_HOST_ID === "supermemory" || !process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENABLED ? ( - + +
{errors.twitter}
{errors.linkedin}
@@ -66,7 +66,7 @@ export function ChromeExtensionDetailView({ need, right when you need it.
Auto-fetch the right context from anything you've saved
- One-time setup, seamless integration across your workflow + One-time setup, seamless integration across your workflow