new theme for site

This commit is contained in:
Desktop
2025-11-13 19:55:27 +05:00
parent 3c100be1cf
commit 7ff05f616f
21 changed files with 225 additions and 228 deletions

View File

@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Igny8 · AI Growth Engine</title>
</head>
<body class="bg-[#050913]">
<body class="bg-white">
<div id="root"></div>
<script type="module" src="/src/marketing/index.tsx"></script>
</body>

View File

@@ -37,28 +37,27 @@ const CTASection: React.FC<CTASectionProps> = ({
};
return (
<section className="py-24">
<section className="py-24 bg-white">
<div className="max-w-5xl mx-auto px-6">
<div className="relative overflow-hidden rounded-3xl border border-white/10 bg-gradient-to-br from-brand-500/30 via-brand-600/20 to-transparent p-10 md:p-14">
<div className="absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.12),_transparent_60%)] pointer-events-none" />
<div className="relative overflow-hidden rounded-3xl border border-slate-200 bg-gradient-to-br from-brand-50 via-brand-100/50 to-white p-10 md:p-14">
<div className="relative flex flex-col gap-6">
<h3 className="text-3xl md:text-4xl font-semibold text-white leading-tight">
<h3 className="text-3xl md:text-4xl font-semibold text-slate-900 leading-tight">
{title}
</h3>
<p className="text-white/70 text-base md:text-lg max-w-2xl">
<p className="text-slate-600 text-base md:text-lg max-w-2xl">
{description}
</p>
<div className="flex flex-col sm:flex-row gap-4">
{renderAnchor(
primaryCta.label,
primaryCta.href,
"inline-flex items-center justify-center rounded-full bg-white text-slate-950 px-6 py-3 text-sm md:text-base font-semibold hover:bg-brand-100 transition"
"inline-flex items-center justify-center rounded-full bg-brand-500 hover:bg-brand-600 text-white px-6 py-3 text-sm md:text-base font-semibold transition"
)}
{secondaryCta && (
renderAnchor(
secondaryCta.label,
secondaryCta.href,
"inline-flex items-center justify-center rounded-full border border-white/40 px-6 py-3 text-sm md:text-base font-semibold text-white hover:border-white/60 transition"
"inline-flex items-center justify-center rounded-full border border-slate-300 px-6 py-3 text-sm md:text-base font-semibold text-slate-700 hover:text-slate-900 hover:border-slate-400 transition"
)
)}
</div>

View File

@@ -19,25 +19,24 @@ const FeatureGrid: React.FC<FeatureGridProps> = ({ features }) => {
{features.map((feature) => (
<div
key={feature.title}
className="relative rounded-3xl border border-white/10 bg-gradient-to-br from-white/8 via-transparent to-white/0 p-8 flex flex-col gap-4 group hover:border-brand-400/40 transition"
className="relative rounded-3xl border border-slate-200 bg-white p-8 flex flex-col gap-4 group hover:border-brand-400 transition shadow-sm hover:shadow-md"
>
<div className="size-12 rounded-2xl bg-brand-500/10 border border-brand-500/30 flex items-center justify-center text-brand-200">
<div className="size-12 rounded-2xl bg-brand-100 border border-brand-300 flex items-center justify-center text-brand-600">
{feature.icon}
</div>
<h3 className="text-xl font-semibold text-white">{feature.title}</h3>
<p className="text-sm text-white/60 leading-relaxed">
<h3 className="text-xl font-semibold text-slate-900">{feature.title}</h3>
<p className="text-sm text-slate-600 leading-relaxed">
{feature.description}
</p>
{feature.link && (
<a
href={feature.link.href}
className="inline-flex items-center gap-2 text-sm font-semibold text-brand-200 hover:text-brand-100"
className="inline-flex items-center gap-2 text-sm font-semibold text-brand-600 hover:text-brand-700"
>
{feature.link.label}
<ArrowUpRightIcon className="h-4 w-4" />
</a>
)}
<div className="absolute inset-0 rounded-3xl border border-white/0 group-hover:border-brand-500/30 transition" />
</div>
))}
</div>

View File

@@ -40,43 +40,42 @@ const HeroSection: React.FC<HeroSectionProps> = ({
};
return (
<section className="relative overflow-hidden">
<div className="absolute inset-0 bg-[radial-gradient(circle_at_top,_rgba(66,133,244,0.25),_rgba(9,14,26,0.9))]" />
<section className="relative overflow-hidden bg-white">
<div className="absolute inset-0 bg-gradient-to-br from-brand-50/50 via-white to-slate-50/50" />
<div className="relative max-w-6xl mx-auto px-6 py-24 md:py-32 flex flex-col lg:flex-row gap-16 items-center">
<div className="flex-1 flex flex-col gap-6">
<span className="inline-flex items-center gap-2 text-xs font-semibold uppercase tracking-[0.28em] text-brand-200">
<span className="inline-flex items-center gap-2 text-xs font-semibold uppercase tracking-[0.28em] text-brand-600">
AI + SEO PLATFORM
</span>
<h1 className="text-4xl md:text-6xl font-semibold leading-tight text-white">
<h1 className="text-4xl md:text-6xl font-semibold leading-tight text-slate-900">
{headline}
</h1>
<p className="text-lg md:text-xl text-white/70 leading-relaxed max-w-xl">
<p className="text-lg md:text-xl text-slate-600 leading-relaxed max-w-xl">
{subheadline}
</p>
<div className="flex flex-col sm:flex-row gap-4">
{renderCta(
primaryCta,
"inline-flex items-center justify-center rounded-full bg-brand-500 hover:bg-brand-400 px-6 py-3 text-sm md:text-base font-semibold transition"
"inline-flex items-center justify-center rounded-full bg-brand-500 hover:bg-brand-600 text-white px-6 py-3 text-sm md:text-base font-semibold transition"
)}
{secondaryCta && renderCta(
secondaryCta,
"inline-flex items-center justify-center rounded-full border border-white/20 px-6 py-3 text-sm md:text-base font-semibold text-white/80 hover:text-white hover:border-white/40 transition"
"inline-flex items-center justify-center rounded-full border border-slate-300 px-6 py-3 text-sm md:text-base font-semibold text-slate-700 hover:text-slate-900 hover:border-slate-400 transition"
)}
</div>
</div>
<div className="flex-1 w-full">
<div className="relative rounded-3xl border border-white/10 bg-white/5 shadow-[0_0_60px_rgba(88,166,255,0.1)]">
<div className="absolute inset-0 rounded-3xl bg-gradient-to-br from-white/10 via-transparent to-white/0 pointer-events-none" />
<div className="relative rounded-3xl border border-slate-200 bg-white shadow-xl">
<img
src={`/marketing/images/${image}`}
alt="Igny8 dashboard preview"
className="w-full h-full object-cover rounded-3xl"
/>
<div className="absolute bottom-6 left-6 bg-slate-950/70 backdrop-blur-lg border border-white/10 rounded-2xl px-6 py-4 flex flex-col gap-1">
<span className="text-xs uppercase tracking-[0.2em] text-white/50">
<div className="absolute bottom-6 left-6 bg-white/95 backdrop-blur-lg border border-slate-200 rounded-2xl px-6 py-4 flex flex-col gap-1 shadow-lg">
<span className="text-xs uppercase tracking-[0.2em] text-slate-500">
End-to-end automation
</span>
<span className="text-lg font-semibold text-white">
<span className="text-lg font-semibold text-slate-900">
Keywords Ideas Tasks Content Images
</span>
</div>

View File

@@ -2,7 +2,7 @@ import React from "react";
const LoadingPage: React.FC = () => {
return (
<div className="min-h-screen flex flex-col items-center justify-center bg-slate-950 text-white">
<div className="min-h-screen flex flex-col items-center justify-center bg-white text-slate-900">
<div className="flex items-center gap-3 text-lg font-semibold tracking-wide uppercase">
<span className="h-3 w-3 rounded-full bg-brand-500 animate-pulse" />
Loading experience

View File

@@ -11,9 +11,9 @@ const logos = [
const LogoCloud: React.FC = () => {
return (
<section className="py-16 bg-slate-950/70 border-y border-white/5">
<section className="py-16 bg-slate-50 border-y border-slate-200">
<div className="max-w-5xl mx-auto px-6 flex flex-col gap-6 items-center">
<span className="text-xs uppercase tracking-[0.28em] text-white/40">
<span className="text-xs uppercase tracking-[0.28em] text-slate-500">
Trusted by modern SEO + content teams
</span>
<div className="flex flex-wrap justify-center gap-8 md:gap-12">

View File

@@ -12,11 +12,11 @@ interface MetricsBarProps {
const MetricsBar: React.FC<MetricsBarProps> = ({ metrics }) => {
return (
<div className="max-w-5xl mx-auto -mt-12 sm:-mt-16 px-6">
<div className="grid grid-cols-1 sm:grid-cols-3 gap-4 rounded-2xl border border-white/10 bg-slate-950/70 backdrop-blur-2xl p-6">
<div className="grid grid-cols-1 sm:grid-cols-3 gap-4 rounded-2xl border border-slate-200 bg-white shadow-lg p-6">
{metrics.map((metric) => (
<div key={metric.label} className="text-center sm:text-left">
<div className="text-3xl font-semibold text-white">{metric.value}</div>
<div className="text-sm uppercase tracking-[0.2em] text-white/50 mt-2">
<div className="text-3xl font-semibold text-slate-900">{metric.value}</div>
<div className="text-sm uppercase tracking-[0.2em] text-slate-500 mt-2">
{metric.label}
</div>
</div>

View File

@@ -18,15 +18,15 @@ const SectionHeading: React.FC<SectionHeadingProps> = ({
className={`flex flex-col gap-4 ${align === "center" ? "items-center text-center" : "items-start text-left"}`}
>
{eyebrow && (
<span className="inline-flex items-center rounded-full border border-white/15 bg-white/5 px-4 py-1 text-xs font-semibold uppercase tracking-[0.2em] text-brand-200">
<span className="inline-flex items-center rounded-full border border-brand-200 bg-brand-50 px-4 py-1 text-xs font-semibold uppercase tracking-[0.2em] text-brand-600">
{eyebrow}
</span>
)}
<h2 className="text-3xl md:text-4xl font-semibold text-white leading-tight max-w-3xl">
<h2 className="text-3xl md:text-4xl font-semibold text-slate-900 leading-tight max-w-3xl">
{title}
</h2>
{description && (
<p className="text-white/60 max-w-2xl text-base md:text-lg leading-relaxed">
<p className="text-slate-600 max-w-2xl text-base md:text-lg leading-relaxed">
{description}
</p>
)}

View File

@@ -3,13 +3,13 @@ import { testimonials } from "../data/testimonials";
const TestimonialSlider: React.FC = () => {
return (
<section className="bg-slate-950">
<section className="bg-slate-50">
<div className="max-w-6xl mx-auto px-6 py-24 space-y-12">
<div className="flex flex-col items-center gap-4 text-center">
<span className="inline-flex items-center rounded-full border border-white/15 bg-white/5 px-4 py-1 text-xs font-semibold uppercase tracking-[0.2em] text-brand-200">
<span className="inline-flex items-center rounded-full border border-brand-200 bg-brand-50 px-4 py-1 text-xs font-semibold uppercase tracking-[0.2em] text-brand-600">
Loved by scaling teams
</span>
<h2 className="text-3xl md:text-4xl font-semibold text-white leading-tight max-w-2xl">
<h2 className="text-3xl md:text-4xl font-semibold text-slate-900 leading-tight max-w-2xl">
Teams ship more content, capture more demand, and see faster ROI with Igny8.
</h2>
</div>
@@ -17,14 +17,14 @@ const TestimonialSlider: React.FC = () => {
{testimonials.map((testimonial) => (
<div
key={testimonial.name}
className="rounded-3xl border border-white/10 bg-white/5 p-8 flex flex-col gap-6 relative overflow-hidden"
className="rounded-3xl border border-slate-200 bg-white p-8 flex flex-col gap-6 relative overflow-hidden shadow-sm hover:shadow-md transition"
>
<div className="absolute -top-16 left-1/2 -translate-x-1/2 h-32 w-[140%] rounded-[50%] bg-brand-500/10 blur-3xl pointer-events-none" />
<p className="text-base text-white/80 leading-relaxed">
{testimonial.quote}
<div className="absolute -top-16 left-1/2 -translate-x-1/2 h-32 w-[140%] rounded-[50%] bg-brand-100 blur-3xl pointer-events-none" />
<p className="text-base text-slate-700 leading-relaxed relative z-10">
"{testimonial.quote}"
</p>
<div className="flex flex-col text-sm text-white/60">
<span className="font-semibold text-white">{testimonial.name}</span>
<div className="flex flex-col text-sm text-slate-600 relative z-10">
<span className="font-semibold text-slate-900">{testimonial.name}</span>
<span>
{testimonial.title} · {testimonial.company}
</span>

View File

@@ -16,15 +16,15 @@ const WorkflowSteps: React.FC<WorkflowStepsProps> = ({ steps }) => {
{steps.map((step, index) => (
<div
key={step.title}
className="rounded-3xl border border-white/10 bg-white/5 p-6 flex flex-col gap-4 hover:border-brand-400/40 transition"
className="rounded-3xl border border-slate-200 bg-white p-6 flex flex-col gap-4 hover:border-brand-400 transition shadow-sm hover:shadow-md"
>
<div className="h-12 w-12 rounded-2xl bg-brand-500/10 border border-brand-500/30 flex items-center justify-center font-semibold text-brand-200 text-xl">
<div className="h-12 w-12 rounded-2xl bg-brand-100 border border-brand-300 flex items-center justify-center font-semibold text-brand-600 text-xl">
{index + 1}
</div>
<h3 className="text-lg font-semibold text-white leading-snug">
<h3 className="text-lg font-semibold text-slate-900 leading-snug">
{step.title}
</h3>
<p className="text-sm text-white/60 leading-relaxed">
<p className="text-sm text-slate-600 leading-relaxed">
{step.subtitle}
</p>
</div>

View File

@@ -15,18 +15,18 @@ const MarketingLayout: React.FC<MarketingLayoutProps> = ({ children }) => {
const closeMobile = () => setMobileOpen(false);
return (
<div className="min-h-screen flex flex-col bg-[#090E1A] text-white">
<header className="sticky top-0 z-[1100] backdrop-blur-xl bg-slate-950/70 border-b border-white/10">
<div className="min-h-screen flex flex-col bg-white text-slate-900">
<header className="sticky top-0 z-[1100] backdrop-blur-xl bg-white/95 border-b border-slate-200">
<div className="max-w-6xl mx-auto px-6 py-4 flex items-center justify-between">
<Link to="/" className="flex items-center gap-3" onClick={closeMobile}>
<span className="h-10 w-10 rounded-xl bg-gradient-to-br from-brand-400 to-brand-600 flex items-center justify-center text-lg font-bold">
<span className="h-10 w-10 rounded-xl bg-gradient-to-br from-brand-400 to-brand-600 flex items-center justify-center text-lg font-bold text-white">
IG
</span>
<div className="flex flex-col leading-tight">
<span className="font-semibold tracking-wide text-white uppercase">
<span className="font-semibold tracking-wide text-slate-900 uppercase">
Igny8
</span>
<span className="text-xs text-white/60">AI growth engine</span>
<span className="text-xs text-slate-600">AI growth engine</span>
</div>
</Link>
@@ -37,7 +37,7 @@ const MarketingLayout: React.FC<MarketingLayoutProps> = ({ children }) => {
<Link
key={link.name}
to={link.path}
className={`transition hover:text-brand-200 ${isActive ? "text-brand-200" : "text-white/70"}`}
className={`transition hover:text-brand-600 ${isActive ? "text-brand-600" : "text-slate-700"}`}
>
{link.name}
</Link>
@@ -48,20 +48,20 @@ const MarketingLayout: React.FC<MarketingLayoutProps> = ({ children }) => {
<div className="hidden lg:flex items-center gap-4">
<a
href="https://app.igny8.com/login"
className="text-sm font-medium text-white/70 hover:text-white transition"
className="text-sm font-medium text-slate-700 hover:text-slate-900 transition"
>
Log in
</a>
<a
href="https://app.igny8.com/signup"
className="inline-flex items-center justify-center rounded-full bg-brand-500 hover:bg-brand-400 px-5 py-2 text-sm font-semibold transition"
className="inline-flex items-center justify-center rounded-full bg-brand-500 hover:bg-brand-600 text-white px-5 py-2 text-sm font-semibold transition"
>
Start Free
</a>
</div>
<button
className="lg:hidden inline-flex items-center justify-center rounded-lg border border-white/10 p-2 text-white/80"
className="lg:hidden inline-flex items-center justify-center rounded-lg border border-slate-200 p-2 text-slate-700"
onClick={toggleMobile}
aria-label="Toggle navigation"
>
@@ -70,14 +70,14 @@ const MarketingLayout: React.FC<MarketingLayoutProps> = ({ children }) => {
</div>
{mobileOpen && (
<div className="lg:hidden border-t border-white/10 bg-slate-950/95 backdrop-blur-xl">
<div className="lg:hidden border-t border-slate-200 bg-white backdrop-blur-xl">
<nav className="px-6 py-4 flex flex-col gap-3">
{primaryNav.map((link) => (
<Link
key={link.name}
to={link.path}
onClick={closeMobile}
className="text-sm font-medium text-white/80 hover:text-white transition"
className="text-sm font-medium text-slate-700 hover:text-slate-900 transition"
>
{link.name}
</Link>
@@ -86,14 +86,14 @@ const MarketingLayout: React.FC<MarketingLayoutProps> = ({ children }) => {
<div className="px-6 pb-6 flex flex-col gap-3">
<a
href="https://app.igny8.com/login"
className="text-sm font-medium text-white/70 hover:text-white transition"
className="text-sm font-medium text-slate-700 hover:text-slate-900 transition"
onClick={closeMobile}
>
Log in
</a>
<a
href="https://app.igny8.com/signup"
className="inline-flex items-center justify-center rounded-full bg-brand-500 hover:bg-brand-400 px-5 py-2 text-sm font-semibold transition"
className="inline-flex items-center justify-center rounded-full bg-brand-500 hover:bg-brand-600 text-white px-5 py-2 text-sm font-semibold transition"
onClick={closeMobile}
>
Start Free
@@ -105,39 +105,39 @@ const MarketingLayout: React.FC<MarketingLayoutProps> = ({ children }) => {
<main className="flex-1">{children}</main>
<footer className="bg-slate-950 border-t border-white/10">
<footer className="bg-slate-50 border-t border-slate-200">
<div className="max-w-6xl mx-auto px-6 py-16 grid grid-cols-1 md:grid-cols-4 gap-12">
<div className="space-y-4">
<Link to="/" className="inline-flex items-center gap-3">
<span className="h-10 w-10 rounded-xl bg-gradient-to-br from-brand-400 to-brand-600 flex items-center justify-center text-lg font-bold">
<span className="h-10 w-10 rounded-xl bg-gradient-to-br from-brand-400 to-brand-600 flex items-center justify-center text-lg font-bold text-white">
IG
</span>
<div className="flex flex-col leading-tight">
<span className="font-semibold tracking-wide text-white uppercase">
<span className="font-semibold tracking-wide text-slate-900 uppercase">
Igny8
</span>
<span className="text-xs text-white/60">
<span className="text-xs text-slate-600">
AI + SEO automation suite
</span>
</div>
</Link>
<p className="text-sm text-white/60 max-w-xs">
<p className="text-sm text-slate-600 max-w-xs">
Automate keyword intelligence, clustering, content production, and image creation in one unified growth engine.
</p>
<div className="text-xs text-white/40">
<div className="text-xs text-slate-500">
© {new Date().getFullYear()} Igny8 Labs. All rights reserved.
</div>
</div>
{footerNavGroups.map((group) => (
<div key={group.title}>
<h4 className="text-sm font-semibold text-white uppercase tracking-wide mb-4">
<h4 className="text-sm font-semibold text-slate-900 uppercase tracking-wide mb-4">
{group.title}
</h4>
<ul className="space-y-3 text-sm text-white/60">
<ul className="space-y-3 text-sm text-slate-600">
{group.links.map((link) => (
<li key={link.name}>
<Link to={link.path} className="hover:text-white transition">
<Link to={link.path} className="hover:text-slate-900 transition">
{link.name}
</Link>
</li>
@@ -146,7 +146,7 @@ const MarketingLayout: React.FC<MarketingLayoutProps> = ({ children }) => {
</div>
))}
</div>
<div className="border-t border-white/10 py-6 px-6 text-center text-xs text-white/30">
<div className="border-t border-slate-200 py-6 px-6 text-center text-xs text-slate-500">
Built for marketers who automate growth with AI.
</div>
</footer>

View File

@@ -43,7 +43,7 @@ const caseStudies = [
const CaseStudies: React.FC = () => {
return (
<div className="bg-[#050913] text-white">
<div className="bg-white text-slate-900">
<section className="max-w-6xl mx-auto px-6 pt-24 pb-16">
<SectionHeading
eyebrow="Proof"
@@ -56,31 +56,31 @@ const CaseStudies: React.FC = () => {
{caseStudies.map((cs) => (
<div
key={cs.company}
className="rounded-3xl border border-white/10 bg-white/5 p-12 grid grid-cols-1 lg:grid-cols-2 gap-12"
className="rounded-3xl border border-slate-200 bg-white p-12 grid grid-cols-1 lg:grid-cols-2 gap-12"
>
<div className="space-y-6">
<span className="text-xs uppercase tracking-[0.3em] text-white/40">
<span className="text-xs uppercase tracking-[0.3em] text-slate-500">
{cs.company}
</span>
<h3 className="text-2xl font-semibold text-white">{cs.headline}</h3>
<p className="text-sm text-white/70 leading-relaxed">{cs.summary}</p>
<h3 className="text-2xl font-semibold text-slate-900">{cs.headline}</h3>
<p className="text-sm text-slate-600 leading-relaxed">{cs.summary}</p>
<div className="grid grid-cols-3 gap-4">
{cs.metrics.map((metric) => (
<div
key={metric.label}
className="rounded-2xl border border-white/10 bg-white/5 p-4 text-center space-y-2"
className="rounded-2xl border border-slate-200 bg-white p-4 text-center space-y-2"
>
<div className="text-xl font-semibold text-white">
<div className="text-xl font-semibold text-slate-900">
{metric.value}
</div>
<div className="text-xs uppercase tracking-[0.2em] text-white/40">
<div className="text-xs uppercase tracking-[0.2em] text-slate-500">
{metric.label}
</div>
</div>
))}
</div>
</div>
<div className="rounded-3xl border border-white/10 bg-slate-900 overflow-hidden">
<div className="rounded-3xl border border-slate-200 bg-slate-100 overflow-hidden">
<img
src={`/marketing/images/${cs.image}`}
alt={`${cs.company} case study`}
@@ -91,27 +91,27 @@ const CaseStudies: React.FC = () => {
))}
</section>
<section className="bg-slate-950/70 border-y border-white/5">
<section className="bg-slate-50/70 border-y border-slate-200">
<div className="max-w-6xl mx-auto px-6 py-24 grid grid-cols-1 md:grid-cols-2 gap-12">
<div className="space-y-4">
<h4 className="text-lg font-semibold text-white">Results you can expect</h4>
<ul className="space-y-3 text-sm text-white/70">
<h4 className="text-lg font-semibold text-slate-900">Results you can expect</h4>
<ul className="space-y-3 text-sm text-slate-600">
<li className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
30-60 day onboarding to deploy automation and Thinker governance.
</li>
<li className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
3-5× increase in content throughput without sacrificing editorial quality.
</li>
<li className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
Clear ROI dashboards tying automation to revenue outcomes.
</li>
</ul>
</div>
<div className="rounded-3xl border border-white/10 bg-white/5 p-10 space-y-4 text-sm text-white/70">
<h4 className="text-lg font-semibold text-white">Customer advisory board</h4>
<div className="rounded-3xl border border-slate-200 bg-white p-10 space-y-4 text-sm text-slate-600">
<h4 className="text-lg font-semibold text-slate-900">Customer advisory board</h4>
<p>
Igny8s roadmap is shaped by an active community of customer strategists, agency partners, and product marketers. Join and get early access to features, template libraries, and industry benchmarks.
</p>

View File

@@ -4,7 +4,7 @@ import CTASection from "../components/CTASection";
const Contact: React.FC = () => {
return (
<div className="bg-[#050913] text-white">
<div className="bg-white text-slate-900">
<section className="max-w-4xl mx-auto px-6 pt-24 pb-12">
<SectionHeading
eyebrow="Contact"
@@ -14,50 +14,50 @@ const Contact: React.FC = () => {
</section>
<section className="max-w-5xl mx-auto px-6 pb-24 grid grid-cols-1 lg:grid-cols-2 gap-12">
<form className="rounded-3xl border border-white/10 bg-white/5 p-10 space-y-6">
<form className="rounded-3xl border border-slate-200 bg-white p-10 space-y-6">
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
<label className="flex flex-col gap-2 text-sm text-white/70">
<label className="flex flex-col gap-2 text-sm text-slate-600">
First name
<input
type="text"
placeholder="Alex"
className="rounded-xl border border-white/15 bg-slate-950/60 px-4 py-3 text-sm text-white placeholder:text-white/40 focus:outline-none focus:border-brand-400"
className="rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-brand-400"
/>
</label>
<label className="flex flex-col gap-2 text-sm text-white/70">
<label className="flex flex-col gap-2 text-sm text-slate-600">
Last name
<input
type="text"
placeholder="Rivera"
className="rounded-xl border border-white/15 bg-slate-950/60 px-4 py-3 text-sm text-white placeholder:text-white/40 focus:outline-none focus:border-brand-400"
className="rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-brand-400"
/>
</label>
</div>
<label className="flex flex-col gap-2 text-sm text-white/70">
<label className="flex flex-col gap-2 text-sm text-slate-600">
Work email
<input
type="email"
placeholder="you@company.com"
className="rounded-xl border border-white/15 bg-slate-950/60 px-4 py-3 text-sm text-white placeholder:text-white/40 focus:outline-none focus:border-brand-400"
className="rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-brand-400"
/>
</label>
<label className="flex flex-col gap-2 text-sm text-white/70">
<label className="flex flex-col gap-2 text-sm text-slate-600">
Company
<input
type="text"
placeholder="Company name"
className="rounded-xl border border-white/15 bg-slate-950/60 px-4 py-3 text-sm text-white placeholder:text-white/40 focus:outline-none focus:border-brand-400"
className="rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-brand-400"
/>
</label>
<label className="flex flex-col gap-2 text-sm text-white/70">
<label className="flex flex-col gap-2 text-sm text-slate-600">
How can we help?
<textarea
rows={4}
placeholder="Tell us about your current workflow, challenges, and goals."
className="rounded-xl border border-white/15 bg-slate-950/60 px-4 py-3 text-sm text-white placeholder:text-white/40 focus:outline-none focus:border-brand-400 resize-none"
className="rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-brand-400 resize-none"
/>
</label>
@@ -70,9 +70,9 @@ const Contact: React.FC = () => {
</form>
<div className="space-y-8">
<div className="rounded-3xl border border-white/10 bg-white/5 p-8 space-y-4 text-sm text-white/70">
<h3 className="text-lg font-semibold text-white">Calendly placeholder</h3>
<div className="aspect-[4/3] rounded-2xl border border-white/10 bg-slate-900 flex items-center justify-center text-xs text-white/40">
<div className="rounded-3xl border border-slate-200 bg-white p-8 space-y-4 text-sm text-slate-600">
<h3 className="text-lg font-semibold text-slate-900">Calendly placeholder</h3>
<div className="aspect-[4/3] rounded-2xl border border-slate-200 bg-slate-100 flex items-center justify-center text-xs text-slate-500">
Embed Calendly iframe here
</div>
<p>
@@ -84,19 +84,19 @@ const Contact: React.FC = () => {
</p>
</div>
<div className="rounded-3xl border border-white/10 bg-white/5 p-8 space-y-4">
<h3 className="text-lg font-semibold text-white">Support perks</h3>
<ul className="space-y-3 text-sm text-white/70">
<div className="rounded-3xl border border-slate-200 bg-white p-8 space-y-4">
<h3 className="text-lg font-semibold text-slate-900">Support perks</h3>
<ul className="space-y-3 text-sm text-slate-600">
<li className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
24-hour response time on all Launch+ plans.
</li>
<li className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
Dedicated success architect for Scale and Enterprise.
</li>
<li className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
Migration services when replacing legacy content stacks.
</li>
</ul>

View File

@@ -17,7 +17,7 @@ import CTASection from "../components/CTASection";
const Home: React.FC = () => {
return (
<div className="bg-[#050913]">
<div className="bg-white">
<HeroSection
image="hero-dashboard.png"
headline="Scale SEO content from keyword discovery to AI-crafted outputs."
@@ -86,32 +86,32 @@ const Home: React.FC = () => {
description="Monitor velocity, quality, and automation coverage across every site. Use filters to dive into sectors, teams, and campaigns. Igny8 keeps leadership confident and operations aligned."
align="left"
/>
<ul className="space-y-4 text-sm text-white/70">
<ul className="space-y-4 text-sm text-slate-600">
<li className="flex gap-3">
<span className="mt-1 size-2 rounded-full bg-brand-300" />
<span className="mt-1 size-2 rounded-full bg-brand-500" />
Real-time metrics on keyword additions, clusters formed, briefs generated, and content shipped.
</li>
<li className="flex gap-3">
<span className="mt-1 size-2 rounded-full bg-brand-300" />
<span className="mt-1 size-2 rounded-full bg-brand-500" />
Drill into automation logs to understand every AI action, approvals, and handoffs.
</li>
<li className="flex gap-3">
<span className="mt-1 size-2 rounded-full bg-brand-300" />
<span className="mt-1 size-2 rounded-full bg-brand-500" />
Export-ready visuals for leadership updates and client reporting.
</li>
</ul>
</div>
<div className="relative">
<div className="rounded-3xl border border-white/10 bg-white/5 overflow-hidden">
<div className="rounded-3xl border border-slate-200 bg-white overflow-hidden shadow-lg">
<img
src="/marketing/images/workflow-overview.png"
alt="Workflow overview"
className="w-full h-full object-cover"
/>
</div>
<div className="absolute -bottom-8 -left-8 md:-left-12 bg-slate-950/80 border border-white/10 rounded-3xl p-6 w-64">
<h4 className="text-sm font-semibold text-white/80">Automation snapshot</h4>
<p className="text-xs text-white/60 mt-2">
<div className="absolute -bottom-8 -left-8 md:-left-12 bg-white border border-slate-200 rounded-3xl p-6 w-64 shadow-lg">
<h4 className="text-sm font-semibold text-slate-900">Automation snapshot</h4>
<p className="text-xs text-slate-600 mt-2">
87 keywords 63 briefs 48 articles 48 image sets generated this week.
</p>
</div>
@@ -140,10 +140,10 @@ const Home: React.FC = () => {
].map((item) => (
<div
key={item.title}
className="rounded-3xl border border-white/10 bg-white/5 p-8 space-y-4"
className="rounded-3xl border border-slate-200 bg-white p-8 space-y-4 shadow-sm hover:shadow-md transition"
>
<h3 className="text-lg font-semibold text-white">{item.title}</h3>
<p className="text-sm text-white/60 leading-relaxed">{item.description}</p>
<h3 className="text-lg font-semibold text-slate-900">{item.title}</h3>
<p className="text-sm text-slate-600 leading-relaxed">{item.description}</p>
</div>
))}
</section>

View File

@@ -31,7 +31,7 @@ const tiers = [
const Partners: React.FC = () => {
return (
<div className="bg-[#050913] text-white">
<div className="bg-white text-slate-900">
<section className="max-w-6xl mx-auto px-6 pt-24 pb-16">
<SectionHeading
eyebrow="Partners"
@@ -44,16 +44,16 @@ const Partners: React.FC = () => {
{tiers.map((tier) => (
<div
key={tier.title}
className="rounded-3xl border border-white/10 bg-white/5 p-8 flex flex-col gap-5"
className="rounded-3xl border border-slate-200 bg-white p-8 flex flex-col gap-5"
>
<span className="text-xs uppercase tracking-[0.3em] text-white/40">
<span className="text-xs uppercase tracking-[0.3em] text-slate-500">
Program
</span>
<h3 className="text-xl font-semibold text-white">{tier.title}</h3>
<ul className="space-y-3 text-sm text-white/70">
<h3 className="text-xl font-semibold text-slate-900">{tier.title}</h3>
<ul className="space-y-3 text-sm text-slate-600">
{tier.benefits.map((benefit) => (
<li key={benefit} className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
{benefit}
</li>
))}
@@ -62,7 +62,7 @@ const Partners: React.FC = () => {
))}
</section>
<section className="bg-slate-950/70 border-y border-white/5">
<section className="bg-slate-50/70 border-y border-slate-200">
<div className="max-w-6xl mx-auto px-6 py-24 grid grid-cols-1 lg:grid-cols-2 gap-12">
<div className="space-y-6">
<SectionHeading
@@ -71,23 +71,23 @@ const Partners: React.FC = () => {
description="Use Igny8 APIs and webhooks to power your own products, analytics, or client portals. Automate keyword ingestion, content creation, asset delivery, and reporting."
align="left"
/>
<div className="rounded-3xl border border-white/10 bg-white/5 p-6 text-sm text-white/60">
<div className="rounded-3xl border border-slate-200 bg-white p-6 text-sm text-slate-600">
API docs placeholder (download at `/marketing/images/api-docs.png`, 1100×720).
</div>
</div>
<div className="rounded-3xl border border-white/10 bg-white/5 p-10 space-y-6">
<h4 className="text-lg font-semibold text-white">Partner resources</h4>
<ul className="space-y-4 text-sm text-white/70">
<div className="rounded-3xl border border-slate-200 bg-white p-10 space-y-6">
<h4 className="text-lg font-semibold text-slate-900">Partner resources</h4>
<ul className="space-y-4 text-sm text-slate-600">
<li className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
Sales playbooks, ROI calculators, and demo environments.
</li>
<li className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
Shared Slack channels with Igny8 product and marketing teams.
</li>
<li className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
Quarterly partner labs to showcase launches and integrations.
</li>
</ul>

View File

@@ -83,14 +83,14 @@ const featureMatrix = [
const Pricing: React.FC = () => {
return (
<div className="bg-[#050913] text-white">
<div className="bg-white text-slate-900">
<section className="max-w-6xl mx-auto px-6 pt-24 pb-16 space-y-8">
<SectionHeading
eyebrow="Pricing"
title="Simple plans that scale with your automation ambitions."
description="Transparent pricing for the entire Igny8 platform. No seat-based penalties—every teammate can collaborate freely."
/>
<div className="rounded-3xl border border-white/10 bg-white/5 p-6 text-sm text-white/60 text-center">
<div className="rounded-3xl border border-slate-200 bg-white p-6 text-sm text-slate-600 text-center">
Looking to migrate from an existing AI content stack? Ask about our migration credit and onboarding accelerator.
</div>
</section>
@@ -99,29 +99,29 @@ const Pricing: React.FC = () => {
{tiers.map((tier) => (
<div
key={tier.name}
className={`relative rounded-3xl border ${tier.featured ? "border-brand-500/60 bg-brand-500/10 shadow-[0_0_70px_rgba(59,130,246,0.25)]" : "border-white/10 bg-white/5"} p-10 flex flex-col gap-6`}
className={`relative rounded-3xl border ${tier.featured ? "border-brand-500/60 bg-brand-500/10 shadow-[0_0_70px_rgba(59,130,246,0.25)]" : "border-slate-200 bg-white"} p-10 flex flex-col gap-6`}
>
{tier.badge && (
<span className="inline-flex items-center self-start rounded-full border border-white/15 bg-white/10 px-4 py-1 text-[11px] uppercase tracking-[0.25em] text-brand-100">
<span className="inline-flex items-center self-start rounded-full border border-slate-200 bg-brand-50 px-4 py-1 text-[11px] uppercase tracking-[0.25em] text-brand-700">
{tier.badge}
</span>
)}
<div>
<h3 className="text-2xl font-semibold text-white">{tier.name}</h3>
<p className="text-sm text-white/60 mt-2">{tier.description}</p>
<h3 className="text-2xl font-semibold text-slate-900">{tier.name}</h3>
<p className="text-sm text-slate-600 mt-2">{tier.description}</p>
</div>
<div className="text-4xl font-semibold text-white">
<div className="text-4xl font-semibold text-slate-900">
{tier.price}
{tier.cadence && (
<span className="text-sm font-normal text-white/50 ml-2">
<span className="text-sm font-normal text-slate-500 ml-2">
{tier.cadence}
</span>
)}
</div>
<ul className="space-y-3 text-sm text-white/70">
<ul className="space-y-3 text-sm text-slate-600">
{tier.features.map((feature) => (
<li key={feature} className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
{feature}
</li>
))}
@@ -131,8 +131,8 @@ const Pricing: React.FC = () => {
href={tier.name === "Enterprise" ? "/contact" : "https://app.igny8.com/signup"}
className={`inline-flex w-full items-center justify-center rounded-full px-6 py-3 text-sm font-semibold transition ${
tier.featured
? "bg-white text-slate-950 hover:bg-brand-100"
: "border border-white/30 text-white hover:border-white/60"
? "bg-white text-slate-900 hover:bg-brand-100"
: "border border-slate-300 text-slate-900 hover:border-white/60"
}`}
>
{tier.name === "Enterprise" ? "Contact sales" : "Start free trial"}
@@ -143,12 +143,12 @@ const Pricing: React.FC = () => {
</section>
<section className="max-w-6xl mx-auto px-6 pb-24 space-y-10">
<h3 className="text-xl font-semibold text-white">
<h3 className="text-xl font-semibold text-slate-900">
Compare plan capabilities
</h3>
<div className="overflow-hidden rounded-3xl border border-white/10 bg-white/5">
<table className="min-w-full text-sm text-white/70">
<thead className="bg-white/5 text-white/60 uppercase text-xs tracking-[0.3em]">
<div className="overflow-hidden rounded-3xl border border-slate-200 bg-white">
<table className="min-w-full text-sm text-slate-600">
<thead className="bg-white text-slate-600 uppercase text-xs tracking-[0.3em]">
<tr>
<th className="px-6 py-4 text-left">Capability</th>
<th className="px-6 py-4 text-center">Launch</th>
@@ -159,7 +159,7 @@ const Pricing: React.FC = () => {
<tbody>
{featureMatrix.map((row, index) => (
<tr key={row.feature} className={index % 2 === 0 ? "bg-white/3" : ""}>
<td className="px-6 py-5 text-white font-medium">{row.feature}</td>
<td className="px-6 py-5 text-slate-900 font-medium">{row.feature}</td>
<td className="px-6 py-5 text-center">
{row.launch === true ? "Included" : row.launch}
</td>
@@ -176,10 +176,10 @@ const Pricing: React.FC = () => {
</div>
</section>
<section className="bg-slate-950/70 border-y border-white/5">
<div className="max-w-6xl mx-auto px-6 py-24 grid grid-cols-1 md:grid-cols-2 gap-12 text-sm text-white/70">
<section className="bg-slate-50/70 border-y border-slate-200">
<div className="max-w-6xl mx-auto px-6 py-24 grid grid-cols-1 md:grid-cols-2 gap-12 text-sm text-slate-600">
<div className="space-y-4">
<h4 className="text-lg font-semibold text-white">
<h4 className="text-lg font-semibold text-slate-900">
Usage-based credits explained
</h4>
<p>
@@ -190,7 +190,7 @@ const Pricing: React.FC = () => {
</p>
</div>
<div className="space-y-4">
<h4 className="text-lg font-semibold text-white">
<h4 className="text-lg font-semibold text-slate-900">
Security & compliance
</h4>
<p>

View File

@@ -4,7 +4,7 @@ import CTASection from "../components/CTASection";
const Product: React.FC = () => {
return (
<div className="bg-[#050913] text-white">
<div className="bg-white text-slate-900">
<section className="max-w-6xl mx-auto px-6 pt-24 pb-16">
<div className="grid grid-cols-1 lg:grid-cols-2 gap-16 items-center">
<div className="space-y-6">
@@ -14,8 +14,8 @@ const Product: React.FC = () => {
description="Planner, Writer, Thinker, and Automation act as one cohesive system. Each module is powerful on its own—together they deliver a compounding growth engine."
align="left"
/>
<div className="rounded-3xl border border-white/10 bg-white/5 p-6 space-y-4 text-sm text-white/70">
<div className="flex items-center justify-between text-white">
<div className="rounded-3xl border border-slate-200 bg-white p-6 space-y-4 text-sm text-slate-600">
<div className="flex items-center justify-between text-slate-900">
<span className="font-semibold">Modules included</span>
<span>4 products · 12 automation recipes</span>
</div>
@@ -27,7 +27,7 @@ const Product: React.FC = () => {
"Automation → Run scheduled workflows that move keywords to ideas, tasks, content, and images automatically.",
].map((point) => (
<li key={point} className="flex gap-3">
<span className="mt-1 size-2 rounded-full bg-brand-300" />
<span className="mt-1 size-2 rounded-full bg-brand-500" />
{point}
</li>
))}
@@ -35,7 +35,7 @@ const Product: React.FC = () => {
</div>
</div>
<div className="relative">
<div className="rounded-3xl border border-white/10 bg-white/5 overflow-hidden">
<div className="rounded-3xl border border-slate-200 bg-white overflow-hidden">
<img
src="/marketing/images/planner-keywords.png"
alt="Planner module screenshot"
@@ -93,22 +93,22 @@ const Product: React.FC = () => {
].map((module) => (
<div
key={module.title}
className="rounded-3xl border border-white/10 bg-white/5 p-10 flex flex-col gap-6"
className="rounded-3xl border border-slate-200 bg-white p-10 flex flex-col gap-6"
>
<div className="flex items-center gap-3 text-sm uppercase tracking-[0.3em] text-white/40">
<span className="size-2 rounded-full bg-brand-300" />
<div className="flex items-center gap-3 text-sm uppercase tracking-[0.3em] text-slate-900/40">
<span className="size-2 rounded-full bg-brand-500" />
{module.title}
</div>
<h3 className="text-2xl font-semibold text-white">{module.title} platform</h3>
<ul className="space-y-3 text-sm text-white/65">
<h3 className="text-2xl font-semibold text-slate-900">{module.title} platform</h3>
<ul className="space-y-3 text-sm text-slate-900/65">
{module.copy.map((line) => (
<li key={line} className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-200" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
{line}
</li>
))}
</ul>
<div className="rounded-2xl border border-white/10 bg-slate-900 overflow-hidden">
<div className="rounded-2xl border border-slate-200 bg-slate-100 overflow-hidden">
<img
src={`/marketing/images/${module.image}`}
alt={`${module.title} module`}
@@ -121,7 +121,7 @@ const Product: React.FC = () => {
</section>
<section className="max-w-6xl mx-auto px-6 py-24">
<div className="rounded-3xl border border-white/10 bg-gradient-to-br from-white/5 via-transparent to-slate-950/60 p-10 md:p-16 flex flex-col lg:flex-row gap-16">
<div className="rounded-3xl border border-slate-200 bg-gradient-to-br from-brand-50 via-white to-slate-50 p-10 md:p-16 flex flex-col lg:flex-row gap-16">
<div className="flex-1 space-y-6">
<SectionHeading
eyebrow="Automation timeline"
@@ -129,7 +129,7 @@ const Product: React.FC = () => {
description="Igny8 timelines map dependencies across your workflow so you can see how AI is powering each deliverable. Pause or accelerate with confidence."
align="left"
/>
<div className="grid grid-cols-1 md:grid-cols-2 gap-6 text-sm text-white/70">
<div className="grid grid-cols-1 md:grid-cols-2 gap-6 text-sm text-slate-600">
{[
"Real-time status for every automation recipe with success rates and manual interventions logged.",
"Smart recommendations to rebalance workloads, add credits, or adjust prompts when performance shifts.",
@@ -137,14 +137,14 @@ const Product: React.FC = () => {
"Granular permissions so teams can automate while leadership maintains oversight.",
].map((item) => (
<div key={item} className="flex gap-3">
<span className="mt-1 size-2 rounded-full bg-brand-300" />
<span className="mt-1 size-2 rounded-full bg-brand-500" />
{item}
</div>
))}
</div>
</div>
<div className="flex-1">
<div className="rounded-3xl border border-white/10 bg-white/5 overflow-hidden">
<div className="rounded-3xl border border-slate-200 bg-white overflow-hidden">
<img
src="/marketing/images/automation-timeline.png"
alt="Automation timeline"

View File

@@ -38,7 +38,7 @@ const webinars = [
const Resources: React.FC = () => {
return (
<div className="bg-[#050913] text-white">
<div className="bg-white text-slate-900">
<section className="max-w-6xl mx-auto px-6 pt-24 pb-16 space-y-6">
<SectionHeading
eyebrow="Resources"
@@ -51,32 +51,32 @@ const Resources: React.FC = () => {
{articles.map((article) => (
<article
key={article.title}
className="rounded-3xl border border-white/10 bg-white/5 p-8 flex flex-col gap-6"
className="rounded-3xl border border-slate-200 bg-white p-8 flex flex-col gap-6"
>
<span className="text-xs uppercase tracking-[0.3em] text-white/40">
<span className="text-xs uppercase tracking-[0.3em] text-slate-500">
{article.date}
</span>
<h3 className="text-xl font-semibold text-white">{article.title}</h3>
<p className="text-sm text-white/70 leading-relaxed">{article.description}</p>
<div className="rounded-2xl border border-white/10 bg-slate-900 h-40 flex items-center justify-center text-xs text-white/40">
<h3 className="text-xl font-semibold text-slate-900">{article.title}</h3>
<p className="text-sm text-slate-600 leading-relaxed">{article.description}</p>
<div className="rounded-2xl border border-slate-200 bg-slate-100 h-40 flex items-center justify-center text-xs text-slate-500">
Article cover placeholder (800×600) /marketing/images/resource-hero.png
</div>
</article>
))}
</section>
<section className="bg-slate-950/70 border-y border-white/5">
<section className="bg-slate-50/70 border-y border-slate-200">
<div className="max-w-6xl mx-auto px-6 py-24 grid grid-cols-1 md:grid-cols-2 gap-8">
{webinars.map((webinar) => (
<div
key={webinar.title}
className="rounded-3xl border border-white/10 bg-white/5 p-8 flex flex-col gap-4"
className="rounded-3xl border border-slate-200 bg-white p-8 flex flex-col gap-4"
>
<span className="text-xs uppercase tracking-[0.3em] text-white/40">
<span className="text-xs uppercase tracking-[0.3em] text-slate-500">
{webinar.date}
</span>
<h3 className="text-lg font-semibold text-white">{webinar.title}</h3>
<p className="text-sm text-white/70">{webinar.description}</p>
<h3 className="text-lg font-semibold text-slate-900">{webinar.title}</h3>
<p className="text-sm text-slate-600">{webinar.description}</p>
<button className="inline-flex items-center justify-center rounded-full bg-brand-500 hover:bg-brand-400 px-5 py-2 text-sm font-semibold">
Save my seat
</button>
@@ -93,31 +93,31 @@ const Resources: React.FC = () => {
description="Dive into documentation, watch quickstart videos, or join live onboarding cohorts."
align="left"
/>
<ul className="space-y-3 text-sm text-white/70">
<ul className="space-y-3 text-sm text-slate-600">
<li className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
Help Center `/help`
</li>
<li className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
Documentation `/help#docs`
</li>
<li className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
API Reference `/partners#api`
</li>
</ul>
</div>
<div className="rounded-3xl border border-white/10 bg-white/5 p-10 space-y-6">
<h3 className="text-2xl font-semibold text-white">Join the Igny8 newsletter</h3>
<p className="text-sm text-white/60">
<div className="rounded-3xl border border-slate-200 bg-white p-10 space-y-6">
<h3 className="text-2xl font-semibold text-slate-900">Join the Igny8 newsletter</h3>
<p className="text-sm text-slate-600">
Monthly insights on AI, SEO, and automation. No fluffjust tactical guidance and event invites.
</p>
<form className="flex flex-col sm:flex-row gap-3">
<input
type="email"
placeholder="you@company.com"
className="flex-1 rounded-full border border-white/15 bg-slate-950/60 px-4 py-3 text-sm text-white placeholder:text-white/40 focus:outline-none focus:border-brand-400"
className="flex-1 rounded-full border border-slate-200 bg-slate-50/60 px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-brand-400"
/>
<button
type="submit"

View File

@@ -49,7 +49,7 @@ const personas = [
const Solutions: React.FC = () => {
return (
<div className="bg-[#050913] text-white">
<div className="bg-white text-slate-900">
<section className="max-w-6xl mx-auto px-6 pt-24 pb-16">
<SectionHeading
eyebrow="Solutions"
@@ -62,14 +62,14 @@ const Solutions: React.FC = () => {
{personas.map((persona) => (
<div
key={persona.name}
className="rounded-3xl border border-white/10 bg-white/5 p-10 md:p-16 grid grid-cols-1 lg:grid-cols-3 gap-12"
className="rounded-3xl border border-slate-200 bg-white p-10 md:p-16 grid grid-cols-1 lg:grid-cols-3 gap-12"
>
<div className="lg:col-span-1 space-y-4">
<span className="text-xs uppercase tracking-[0.3em] text-white/50">
<span className="text-xs uppercase tracking-[0.3em] text-slate-500">
Persona
</span>
<h3 className="text-2xl font-semibold">{persona.name}</h3>
<div className="rounded-2xl border border-white/10 bg-slate-900 overflow-hidden">
<div className="rounded-2xl border border-slate-200 bg-slate-100 overflow-hidden">
<img
src={`/marketing/images/${persona.image}`}
alt={`${persona.name} workflow`}
@@ -78,10 +78,10 @@ const Solutions: React.FC = () => {
</div>
</div>
<div className="space-y-6">
<h4 className="text-sm uppercase tracking-[0.3em] text-white/40">
<h4 className="text-sm uppercase tracking-[0.3em] text-slate-500">
Pain points
</h4>
<ul className="space-y-4 text-sm text-white/70">
<ul className="space-y-4 text-sm text-slate-600">
{persona.pains.map((pain) => (
<li key={pain} className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-rose-300" />
@@ -91,13 +91,13 @@ const Solutions: React.FC = () => {
</ul>
</div>
<div className="space-y-6">
<h4 className="text-sm uppercase tracking-[0.3em] text-white/40">
<h4 className="text-sm uppercase tracking-[0.3em] text-slate-500">
Outcomes with Igny8
</h4>
<ul className="space-y-4 text-sm text-white/70">
<ul className="space-y-4 text-sm text-slate-600">
{persona.outcomes.map((outcome) => (
<li key={outcome} className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
{outcome}
</li>
))}
@@ -107,7 +107,7 @@ const Solutions: React.FC = () => {
))}
</section>
<section className="bg-slate-950/70 border-y border-white/5">
<section className="bg-slate-50/70 border-y border-slate-200">
<div className="max-w-6xl mx-auto px-6 py-24 grid grid-cols-1 md:grid-cols-3 gap-8">
{[
{
@@ -125,10 +125,10 @@ const Solutions: React.FC = () => {
].map((item) => (
<div
key={item.metric}
className="rounded-3xl border border-white/10 bg-white/5 p-8 text-center space-y-4"
className="rounded-3xl border border-slate-200 bg-white p-8 text-center space-y-4"
>
<div className="text-4xl font-semibold">{item.metric}</div>
<p className="text-sm text-white/60">{item.label}</p>
<p className="text-sm text-slate-600">{item.label}</p>
</div>
))}
</div>

View File

@@ -31,15 +31,15 @@ const tourSteps = [
const Tour: React.FC = () => {
return (
<div className="bg-[#050913] text-white">
<div className="bg-white text-slate-900">
<section className="max-w-6xl mx-auto px-6 pt-24 pb-16 space-y-6">
<SectionHeading
eyebrow="Guided Tour"
title="Experience the entire Igny8 journey in minutes."
description="Walk through the workflow that moves market intelligence into production-ready content. Each step builds toward an automated growth flywheel."
/>
<div className="rounded-3xl border border-white/10 bg-white/5 p-8">
<div className="aspect-video rounded-2xl border border-white/10 bg-slate-900 flex items-center justify-center text-white/40 text-sm">
<div className="rounded-3xl border border-slate-200 bg-white p-8">
<div className="aspect-video rounded-2xl border border-slate-200 bg-slate-100 flex items-center justify-center text-slate-500 text-sm">
Video walkthrough placeholder (embed demo or Loom)
</div>
</div>
@@ -52,13 +52,13 @@ const Tour: React.FC = () => {
className="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center"
>
<div className={`space-y-4 ${index % 2 === 1 ? "lg:order-2" : ""}`}>
<span className="text-xs uppercase tracking-[0.3em] text-white/50">
<span className="text-xs uppercase tracking-[0.3em] text-slate-500">
Step {index + 1}
</span>
<h3 className="text-2xl font-semibold">{step.title}</h3>
<p className="text-sm text-white/70 leading-relaxed">{step.description}</p>
<p className="text-sm text-slate-600 leading-relaxed">{step.description}</p>
</div>
<div className={`rounded-3xl border border-white/10 bg-white/5 overflow-hidden ${index % 2 === 1 ? "lg:order-1" : ""}`}>
<div className={`rounded-3xl border border-slate-200 bg-white overflow-hidden ${index % 2 === 1 ? "lg:order-1" : ""}`}>
<img
src={`/marketing/images/${step.image}`}
alt={step.title}
@@ -69,14 +69,14 @@ const Tour: React.FC = () => {
))}
</section>
<section className="bg-slate-950/70 border-y border-white/5">
<section className="bg-slate-50/70 border-y border-slate-200">
<div className="max-w-6xl mx-auto px-6 py-24 space-y-10">
<SectionHeading
eyebrow="Automation recipes"
title="Pre-built workflows you can launch on day one."
description="Activate automation templates or customize them in minutes. Igny8 tracks dependencies, statuses, and handoffs."
/>
<div className="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-6 text-sm text-white/70">
<div className="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-6 text-sm text-slate-600">
{[
{ name: "Keywords → Ideas", time: "Nightly", highlight: "Targets new opportunities" },
{ name: "Ideas → Tasks", time: "Daily", highlight: "Staff writers automatically" },
@@ -87,10 +87,10 @@ const Tour: React.FC = () => {
].map((recipe) => (
<div
key={recipe.name}
className="rounded-3xl border border-white/10 bg-white/5 p-6 space-y-3"
className="rounded-3xl border border-slate-200 bg-white p-6 space-y-3"
>
<h4 className="text-base font-semibold text-white">{recipe.name}</h4>
<div className="text-xs uppercase tracking-[0.3em] text-white/40">
<h4 className="text-base font-semibold text-slate-900">{recipe.name}</h4>
<div className="text-xs uppercase tracking-[0.3em] text-slate-500">
{recipe.time}
</div>
<p>{recipe.highlight}</p>

View File

@@ -19,7 +19,7 @@ const roadmapItems = [
const Waitlist: React.FC = () => {
return (
<div className="bg-[#050913] text-white">
<div className="bg-white text-slate-900">
<section className="max-w-4xl mx-auto px-6 pt-24 pb-12">
<SectionHeading
eyebrow="Roadmap preview"
@@ -29,26 +29,26 @@ const Waitlist: React.FC = () => {
</section>
<section className="max-w-5xl mx-auto px-6 pb-24 grid grid-cols-1 lg:grid-cols-2 gap-12">
<div className="rounded-3xl border border-white/10 bg-white/5 p-10 space-y-6">
<h3 className="text-lg font-semibold text-white">Join the waitlist</h3>
<p className="text-sm text-white/70">
<div className="rounded-3xl border border-slate-200 bg-white p-10 space-y-6">
<h3 className="text-lg font-semibold text-slate-900">Join the waitlist</h3>
<p className="text-sm text-slate-600">
Share your details and well invite you to beta cohorts with onboarding resources and direct feedback loops to our product team.
</p>
<form className="space-y-4">
<input
type="text"
placeholder="Name"
className="w-full rounded-xl border border-white/15 bg-slate-950/60 px-4 py-3 text-sm text-white placeholder:text-white/40 focus:outline-none focus:border-brand-400"
className="w-full rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-brand-400"
/>
<input
type="email"
placeholder="Work email"
className="w-full rounded-xl border border-white/15 bg-slate-950/60 px-4 py-3 text-sm text-white placeholder:text-white/40 focus:outline-none focus:border-brand-400"
className="w-full rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-brand-400"
/>
<textarea
rows={4}
placeholder="Tell us about your current workflow and why you're excited."
className="w-full rounded-xl border border-white/15 bg-slate-950/60 px-4 py-3 text-sm text-white placeholder:text-white/40 focus:outline-none focus:border-brand-400 resize-none"
className="w-full rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-brand-400 resize-none"
/>
<button
type="submit"
@@ -60,22 +60,22 @@ const Waitlist: React.FC = () => {
</div>
<div className="space-y-6">
<div className="rounded-3xl border border-white/10 bg-white/5 p-8 space-y-4">
<h4 className="text-lg font-semibold text-white">Whats coming</h4>
<ul className="space-y-3 text-sm text-white/70">
<div className="rounded-3xl border border-slate-200 bg-white p-8 space-y-4">
<h4 className="text-lg font-semibold text-slate-900">What's coming</h4>
<ul className="space-y-3 text-sm text-slate-600">
{roadmapItems.map((item) => (
<li key={item.title} className="flex gap-3">
<span className="mt-1 size-1.5 rounded-full bg-brand-300" />
<span className="mt-1 size-1.5 rounded-full bg-brand-500" />
<div>
<div className="font-semibold text-white">{item.title}</div>
<div className="font-semibold text-slate-900">{item.title}</div>
<div>{item.description}</div>
</div>
</li>
))}
</ul>
</div>
<div className="rounded-3xl border border-white/10 bg-white/5 p-8 text-sm text-white/70 space-y-3">
<h4 className="text-lg font-semibold text-white">How the beta works</h4>
<div className="rounded-3xl border border-slate-200 bg-white p-8 text-sm text-slate-600 space-y-3">
<h4 className="text-lg font-semibold text-slate-900">How the beta works</h4>
<p>We onboard new features to the waitlist in weekly waves. Youll receive playbooks, sample workflows, and a feedback channel with our product team.</p>
<p>Participants also get extended credits to experiment with automation scenarios.</p>
</div>