// ============================================================ // auth-style-c.jsx — Glass aurora auth (marketing-flavoured). // Vibrant gradient background, frosted card, soft floating // chrome. Onboarding becomes a kept-it-light, swipey wizard. // ============================================================ const cc = { bg: "#08081a", text: "#ffffff", subtext: "rgba(255,255,255,0.7)", muted: "rgba(255,255,255,0.5)", glass: "rgba(255,255,255,0.06)", glassStrong: "rgba(255,255,255,0.1)", glassBorder: "rgba(255,255,255,0.14)", brandA: "#7a78ff", brandB: "#b15bff", brandC: "#00e5b3", }; const fontC = "'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif"; const IcnC = ({ d, size = 16, sw = 1.6 }) => ( {d} ); const PC = { check: , eye: <>, arrow: , spark: , upload: <>, pen: <>, bell: <>, workflow: <>, }; const MarkC = ({ size = 22 }) => ( ); // Reusable aurora background — also used by onboarding const AuroraBg = () => ( <>
{/* Grain overlay */}
); // Frosted glass top nav (the pill from the marketing nav, smaller) const GlassTopNav = ({ right }) => (
Lattice
{["Product", "Pricing", "Docs"].map(l => ( ))}
{right}
); const CField = ({ label, value, placeholder, type, hint, optional, autofocus }) => (
{label && (
{label} {optional && optional}
)}
{value || placeholder} {type === "password" && }
{hint &&
{hint}
}
); const CSocial = ({ children, glyph }) => ( ); const CPrimary = ({ children, full = true }) => ( ); const CSecondary = ({ children, full = false }) => ( ); // Centered glass card shell — used by sign-in & sign-up const CCardShell = ({ children, eyebrow }) => (
} />
{eyebrow && (
BETA {eyebrow}
)} {children}
{/* Footer dots */}
PrivacyTermsSecurity All systems normal
); const CSignIn = () => (

Welcome back.

Sign in and pick up where you left off.

}>Google }>Microsoft }>Apple
or with email
Password Forgot?
••••••••••
Sign in
Don't have an account? Sign up for free
); const CSignUp = () => (

Start your workspace.

Free for 10 people. No card. 60 seconds to set up.

}>Google }>Microsoft
or with email
I agree to Lattice's Terms and{" "} Privacy Policy.
Create my workspace
Already on Lattice? Sign in
); const COnboarding = () => { // Glass invite-teammates step — a single big card on aurora bg. const ProgressDot = ({ state }) => (
); const EmailRow = ({ email, role, status, color }) => (
{email.slice(0, 2).toUpperCase()}
{email}
{role} } size={11}/>
{status && {status}}
); return (
{/* Brand top-left + skip top-right */}
Lattice
Step 3 of 4 · Skip
{/* Progress dots */}

Lattice gets better with your team.

Invite the people you actually work with. You can always add more later.

{/* Invite input + role */}
name@company.com, separate with commas…
Member } size={12}/>
{/* Already queued list */}
To be invited · 3
{/* Shareable link */}
Or share an invite link
lattice.app/join/mira-reyes-7f4ac…
{/* Footer buttons */}
Send invites & continue
); }; Object.assign(window, { CSignIn, CSignUp, COnboarding });