// ============================================================
// 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 }) => (
);
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
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
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()}
{role} } size={11}/>
{status &&
{status}}
);
return (
{/* Brand top-left + skip top-right */}
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 });