diff --git a/.gitignore b/.gitignore index 5517136..d80625d 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ # testing /coverage +/.artifacts/ /playwright-report/ /test-results/ /e2e/.auth/ diff --git a/AGENTS.md b/AGENTS.md index 1ecbd00..6b2c4ff 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -35,9 +35,11 @@ Read [docs/architecture.md](./docs/architecture.md) before product or architectu ## UI Direction -There is no active v3 design system in the repository. The previous design draft -has been removed. Before substantial UI work, define or confirm the current -visual direction instead of inheriting old visual rules. +The active v3 design system is defined in [docs/design.md](./docs/design.md). +It derives from SST and is the source of truth for Fulling's visual language, +tokens, typography, spacing, components, states, and responsive behavior. Read +it before substantial UI work. Existing UI that conflicts with it is migration +work, not design precedent. Avoid generic AI copywriting cliches such as "Elevate", "Seamless", and "Unleash". @@ -45,6 +47,7 @@ Avoid generic AI copywriting cliches such as "Elevate", "Seamless", and ## Key Files - [docs/architecture.md](./docs/architecture.md) — v3 system architecture and product model +- [docs/design.md](./docs/design.md) — active v3 design system and SST-derived style reference - `lib/auth/` — Better Auth and application session boundary - `lib/kubeconfig/` — User credential persistence - `lib/k8s/` — Validation and user-specific Kubernetes service diff --git a/app/(auth)/login/_components/github-login-button.tsx b/app/(auth)/login/_components/github-login-button.tsx index 473f522..ff90bf5 100644 --- a/app/(auth)/login/_components/github-login-button.tsx +++ b/app/(auth)/login/_components/github-login-button.tsx @@ -25,9 +25,9 @@ export function GitHubLoginButton() { } return ( -
- {error ?

{error}

: null} diff --git a/app/(auth)/login/page.tsx b/app/(auth)/login/page.tsx index c865040..86565c1 100644 --- a/app/(auth)/login/page.tsx +++ b/app/(auth)/login/page.tsx @@ -1,6 +1,6 @@ -import Link from 'next/link' import { redirect } from 'next/navigation' +import { FullingBrand } from '@/components/fulling-brand' import { getSession } from '@/lib/auth/session' import { GitHubLoginButton } from './_components/github-login-button' @@ -15,19 +15,21 @@ export default async function LoginPage({ searchParams }: LoginPageProps) { const { error } = await searchParams return ( -
-
-
- - Fulling - -

+
+
+ +
+
+
+

+ Workspace access +

+

Sign in to your workspace

-

Use your GitHub account to continue.

+

+ Use your GitHub account to continue to Fulling. +

{error === 'oauth' ? (

GitHub sign-in could not be completed. Please try again. @@ -36,9 +38,9 @@ export default async function LoginPage({ searchParams }: LoginPageProps) {

-
-
-
+
+ Dedicated AI workspaces +
) } diff --git a/app/(dashboard)/_components/dashboard-header.tsx b/app/(dashboard)/_components/dashboard-header.tsx index cfc9b48..7a1bbe6 100644 --- a/app/(dashboard)/_components/dashboard-header.tsx +++ b/app/(dashboard)/_components/dashboard-header.tsx @@ -5,6 +5,7 @@ import { LogOut, Settings2 } from 'lucide-react' import Link from 'next/link' import { useRouter } from 'next/navigation' +import { FullingBrand } from '@/components/fulling-brand' import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' import { Button } from '@/components/ui/button' import { signOut } from '@/lib/auth-client' @@ -29,20 +30,20 @@ export function DashboardHeader({ userName, userEmail, userImage }: DashboardHea } return ( -
-
- Fulling +
+
+
{userName.slice(0, 1).toUpperCase()} -

{userName}

{userEmail}

+

{userName}

{userEmail}

-

-
+

{status?.configured ? 'Replace kubeconfig' : 'Configure kubeconfig'}

-

+

Paste the complete replacement. Existing content is intentionally not prefilled.