This commit is contained in:
Desktop
2025-11-14 07:24:20 +05:00
parent 74c8a57dc3
commit 628620406d
22 changed files with 303 additions and 293 deletions

View File

@@ -39,9 +39,9 @@ const CTASection: React.FC<CTASectionProps> = ({
return (
<section className="py-24 bg-gradient-to-b from-white via-slate-50 to-white">
<div className="max-w-5xl mx-auto px-6">
<div className="relative overflow-hidden rounded-3xl border-2 border-[#0693e3]/20 bg-gradient-to-br from-[#0693e3]/5 via-[#5d4ae3]/5 to-[#0bbf87]/5 p-10 md:p-14 shadow-xl">
<div className="absolute inset-0 bg-gradient-to-r from-[#0693e3]/10 via-transparent to-[#5d4ae3]/10" />
<div className="absolute -inset-1 bg-gradient-to-r from-[#0693e3]/20 via-[#5d4ae3]/20 to-[#0bbf87]/20 rounded-3xl blur-xl -z-10 opacity-50" />
<div className="relative overflow-hidden rounded-3xl border-2 border-[var(--igny8-blue)]/20 bg-gradient-to-br from-[var(--igny8-blue)]/5 via-[var(--igny8-purple)]/5 to-[var(--igny8-green)]/5 p-10 md:p-14 shadow-xl">
<div className="absolute inset-0 bg-gradient-to-r from-[var(--igny8-blue)]/10 via-transparent to-[var(--igny8-purple)]/10" />
<div className="absolute -inset-1 bg-gradient-to-r from-[var(--igny8-blue)]/20 via-[var(--igny8-purple)]/20 to-[var(--igny8-green)]/20 rounded-3xl blur-xl -z-10 opacity-50" />
<div className="relative flex flex-col gap-6">
<h3 className="text-3xl md:text-4xl font-semibold text-slate-900 leading-tight">
{title}
@@ -53,7 +53,7 @@ const CTASection: React.FC<CTASectionProps> = ({
{renderAnchor(
primaryCta.label,
primaryCta.href,
"inline-flex items-center justify-center rounded-full bg-gradient-to-r from-[#0693e3] to-[#0472b8] hover:from-[#0472b8] hover:to-[#0693e3] text-white px-6 py-3 text-sm md:text-base font-semibold transition shadow-lg shadow-[#0693e3]/30"
"inline-flex items-center justify-center rounded-full bg-gradient-to-r from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] hover:from-[var(--igny8-blue-dark)] hover:to-[var(--igny8-blue)] text-white px-6 py-3 text-sm md:text-base font-semibold transition shadow-lg shadow-[var(--igny8-blue)]/30"
)}
{secondaryCta && (
renderAnchor(

View File

@@ -14,10 +14,10 @@ interface FeatureGridProps {
const FeatureGrid: React.FC<FeatureGridProps> = ({ features }) => {
const iconColors = [
"from-[#0693e3] to-[#0472b8]", // Blue
"from-[#0bbf87] to-[#08966b]", // Green
"from-[#ff7a00] to-[#cc5f00]", // Amber
"from-[#5d4ae3] to-[#3a2f94]", // Purple
"from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]", // Blue
"from-[var(--igny8-green)] to-[var(--igny8-green-dark)]", // Green
"from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]", // Amber
"from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]", // Purple
];
return (

View File

@@ -41,11 +41,11 @@ const HeroSection: React.FC<HeroSectionProps> = ({
return (
<section className="relative overflow-hidden bg-gradient-to-br from-[#0d1b2a] via-[#142b3f] to-[#1a3a5a]">
<div className="absolute inset-0 bg-gradient-to-br from-[#0693e3]/10 via-transparent to-[#5d4ae3]/10" />
<div className="absolute inset-0 bg-gradient-to-br from-[var(--igny8-blue)]/10 via-transparent to-[var(--igny8-purple)]/10" />
<div className="absolute inset-0 bg-[radial-gradient(circle_at_30%_20%,rgba(6,147,227,0.15),transparent_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-[#0693e3] bg-[#0693e3]/10 px-4 py-2 rounded-full border border-[#0693e3]/20">
<span className="inline-flex items-center gap-2 text-xs font-semibold uppercase tracking-[0.28em] text-[var(--igny8-blue)] bg-[var(--igny8-blue)]/10 px-4 py-2 rounded-full border border-[var(--igny8-blue)]/20">
AI + SEO PLATFORM
</span>
<h1 className="text-4xl md:text-6xl font-semibold leading-tight text-white">
@@ -57,7 +57,7 @@ const HeroSection: React.FC<HeroSectionProps> = ({
<div className="flex flex-col sm:flex-row gap-4">
{renderCta(
primaryCta,
"inline-flex items-center justify-center rounded-full bg-gradient-to-r from-[#0693e3] to-[#0472b8] hover:from-[#0472b8] hover:to-[#0693e3] text-white px-6 py-3 text-sm md:text-base font-semibold transition shadow-lg shadow-[#0693e3]/30"
"inline-flex items-center justify-center rounded-full bg-gradient-to-r from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] hover:from-[var(--igny8-blue-dark)] hover:to-[var(--igny8-blue)] text-white px-6 py-3 text-sm md:text-base font-semibold transition shadow-lg shadow-[var(--igny8-blue)]/30"
)}
{secondaryCta && renderCta(
secondaryCta,
@@ -66,15 +66,15 @@ const HeroSection: React.FC<HeroSectionProps> = ({
</div>
</div>
<div className="flex-1 w-full">
<div className="relative rounded-3xl border-2 border-[#0693e3]/30 bg-gradient-to-br from-white/5 to-white/10 backdrop-blur-sm shadow-2xl shadow-[#0693e3]/20">
<div className="absolute -inset-1 bg-gradient-to-r from-[#0693e3]/20 via-[#5d4ae3]/20 to-[#0bbf87]/20 rounded-3xl blur-xl -z-10" />
<div className="relative rounded-3xl border-2 border-[var(--igny8-blue)]/30 bg-gradient-to-br from-white/5 to-white/10 backdrop-blur-sm shadow-2xl shadow-[var(--igny8-blue)]/20">
<div className="absolute -inset-1 bg-gradient-to-r from-[#0693e3]/20 via-[var(--igny8-purple)]/20 to-[var(--igny8-green)]/20 rounded-3xl blur-xl -z-10" />
<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-gradient-to-br from-[#0d1b2a]/95 to-[#142b3f]/95 backdrop-blur-lg border border-[#0693e3]/30 rounded-2xl px-6 py-4 flex flex-col gap-1 shadow-xl">
<span className="text-xs uppercase tracking-[0.2em] text-[#0693e3]">
<div className="absolute bottom-6 left-6 bg-gradient-to-br from-[#0d1b2a]/95 to-[#142b3f]/95 backdrop-blur-lg border border-[var(--igny8-blue)]/30 rounded-2xl px-6 py-4 flex flex-col gap-1 shadow-xl">
<span className="text-xs uppercase tracking-[0.2em] text-[var(--igny8-blue)]">
End-to-end automation
</span>
<span className="text-lg font-semibold text-white">

View File

@@ -11,9 +11,9 @@ interface MetricsBarProps {
const MetricsBar: React.FC<MetricsBarProps> = ({ metrics }) => {
const accentColors = [
"from-[#0693e3] to-[#0472b8]",
"from-[#0bbf87] to-[#08966b]",
"from-[#ff7a00] to-[#cc5f00]",
"from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
"from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
"from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
];
return (

View File

@@ -11,10 +11,10 @@ interface WorkflowStepsProps {
const WorkflowSteps: React.FC<WorkflowStepsProps> = ({ steps }) => {
const stepColors = [
"from-[#0693e3] to-[#0472b8]",
"from-[#0bbf87] to-[#08966b]",
"from-[#ff7a00] to-[#cc5f00]",
"from-[#5d4ae3] to-[#3a2f94]",
"from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
"from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
"from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
"from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
];
return (
@@ -25,12 +25,12 @@ const WorkflowSteps: React.FC<WorkflowStepsProps> = ({ steps }) => {
return (
<div
key={step.title}
className="rounded-3xl border-2 border-slate-200 bg-gradient-to-br from-white to-slate-50/50 p-6 flex flex-col gap-4 hover:border-[#0693e3]/50 transition-all shadow-sm hover:shadow-xl hover:-translate-y-1 group"
className="rounded-3xl border-2 border-slate-200 bg-gradient-to-br from-white to-slate-50/50 p-6 flex flex-col gap-4 hover:border-[var(--igny8-blue)]/50 transition-all shadow-sm hover:shadow-xl hover:-translate-y-1 group"
>
<div className={`h-12 w-12 rounded-2xl bg-gradient-to-br ${gradient} flex items-center justify-center font-semibold text-white text-xl shadow-lg`}>
{index + 1}
</div>
<h3 className="text-lg font-semibold text-slate-900 leading-snug group-hover:text-[#0693e3] transition">
<h3 className="text-lg font-semibold text-slate-900 leading-snug group-hover:text-[var(--igny8-blue)] transition">
{step.title}
</h3>
<p className="text-sm text-slate-600 leading-relaxed">

View File

@@ -19,7 +19,7 @@ const MarketingLayout: React.FC<MarketingLayoutProps> = ({ children }) => {
<header className="sticky top-0 z-[1100] backdrop-blur-xl bg-white/95 border-b border-slate-200 shadow-sm">
<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-[#0693e3] to-[#0472b8] flex items-center justify-center text-lg font-bold text-white shadow-lg shadow-[#0693e3]/30">
<span className="h-10 w-10 rounded-xl bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] flex items-center justify-center text-lg font-bold text-white shadow-lg shadow-[var(--igny8-blue)]/30">
IG
</span>
<div className="flex flex-col leading-tight">
@@ -37,7 +37,7 @@ const MarketingLayout: React.FC<MarketingLayoutProps> = ({ children }) => {
<Link
key={link.name}
to={link.path}
className={`transition hover:text-[#0693e3] ${isActive ? "text-[#0693e3] font-semibold" : "text-slate-700"}`}
className={`transition hover:text-[var(--igny8-blue)] ${isActive ? "text-[var(--igny8-blue)] font-semibold" : "text-slate-700"}`}
>
{link.name}
</Link>
@@ -54,7 +54,7 @@ const MarketingLayout: React.FC<MarketingLayoutProps> = ({ children }) => {
</a>
<a
href="https://app.igny8.com/signup"
className="inline-flex items-center justify-center rounded-full bg-gradient-to-r from-[#0693e3] to-[#0472b8] hover:from-[#0472b8] hover:to-[#0693e3] text-white px-5 py-2 text-sm font-semibold transition shadow-md shadow-[#0693e3]/30"
className="inline-flex items-center justify-center rounded-full bg-gradient-to-r from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] hover:from-[var(--igny8-blue-dark)] hover:to-[var(--igny8-blue)] text-white px-5 py-2 text-sm font-semibold transition shadow-md shadow-[var(--igny8-blue)]/30"
>
Start Free
</a>
@@ -93,7 +93,7 @@ const MarketingLayout: React.FC<MarketingLayoutProps> = ({ children }) => {
</a>
<a
href="https://app.igny8.com/signup"
className="inline-flex items-center justify-center rounded-full bg-gradient-to-r from-[#0693e3] to-[#0472b8] hover:from-[#0472b8] hover:to-[#0693e3] text-white px-5 py-2 text-sm font-semibold transition shadow-md shadow-[#0693e3]/30"
className="inline-flex items-center justify-center rounded-full bg-gradient-to-r from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] hover:from-[var(--igny8-blue-dark)] hover:to-[var(--igny8-blue)] text-white px-5 py-2 text-sm font-semibold transition shadow-md shadow-[var(--igny8-blue)]/30"
onClick={closeMobile}
>
Start Free
@@ -109,7 +109,7 @@ const MarketingLayout: React.FC<MarketingLayoutProps> = ({ children }) => {
<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-[#0693e3] to-[#0472b8] flex items-center justify-center text-lg font-bold text-white shadow-lg shadow-[#0693e3]/30">
<span className="h-10 w-10 rounded-xl bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] flex items-center justify-center text-lg font-bold text-white shadow-lg shadow-[var(--igny8-blue)]/30">
IG
</span>
<div className="flex flex-col leading-tight">
@@ -137,7 +137,7 @@ const MarketingLayout: React.FC<MarketingLayoutProps> = ({ children }) => {
<ul className="space-y-3 text-sm text-slate-300">
{group.links.map((link) => (
<li key={link.name}>
<Link to={link.path} className="hover:text-[#0693e3] transition">
<Link to={link.path} className="hover:text-[var(--igny8-blue)] transition">
{link.name}
</Link>
</li>

View File

@@ -43,7 +43,7 @@ const CaseStudies: React.FC = () => {
summary:
"Publisher running 6 niche brands used Igny8 to centralize research, briefs, and AI-assisted writing. Automation recipes ensured every keyword moved to published content with minimal handoff friction.",
image: "case-lumen.png",
iconColor: "from-[#0693e3] to-[#0472b8]",
iconColor: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
},
{
company: "Northbeam Digital",
@@ -56,7 +56,7 @@ const CaseStudies: React.FC = () => {
summary:
"Multi-client agency adopted Igny8 to standardize workflows, automate reporting, and launch custom Thinker playbooks. Teams now produce keyword research, content, and images for 20+ clients simultaneously.",
image: "case-northbeam.png",
iconColor: "from-[#0bbf87] to-[#08966b]",
iconColor: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
},
{
company: "Arcadia SaaS",
@@ -69,7 +69,7 @@ const CaseStudies: React.FC = () => {
summary:
"Arcadia used Igny8 to align SEO, product marketing, and design. Thinker libraries ensured every asset matched product messaging; automation pushed approved content directly into WordPress and HubSpot.",
image: "case-arcadia.png",
iconColor: "from-[#5d4ae3] to-[#3a2f94]",
iconColor: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
},
];
@@ -96,7 +96,7 @@ const CaseStudies: React.FC = () => {
<section className="max-w-7xl mx-auto px-6 pb-24 space-y-16">
{caseStudies.map((cs, idx) => {
const metricColors = [
{ border: "border-slate-200", bg: "from-white to-slate-50/50", text: "text-[#0693e3]" },
{ border: "border-slate-200", bg: "from-white to-slate-50/50", text: "text-[var(--igny8-blue)]" },
{ border: "border-slate-200", bg: "from-white to-slate-50/50", text: "text-[#0bbf87]" },
{ border: "border-slate-200", bg: "from-white to-slate-50/50", text: "text-[#ff7a00]" },
];
@@ -154,7 +154,7 @@ const CaseStudies: React.FC = () => {
<div className="max-w-7xl mx-auto px-6 grid grid-cols-1 lg:grid-cols-2 gap-8">
<div className="rounded-2xl border-2 border-slate-200 bg-white p-8 space-y-6 shadow-sm">
<div className="flex items-center gap-3">
<div className="size-12 rounded-xl bg-gradient-to-br from-[#0693e3] to-[#0472b8] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] flex items-center justify-center text-white shadow-lg">
<CheckCircleIcon className="h-6 w-6" />
</div>
<h4 className="text-2xl font-bold text-slate-900">
@@ -176,7 +176,7 @@ const CaseStudies: React.FC = () => {
</div>
<div className="rounded-2xl border-2 border-slate-200 bg-white p-8 space-y-6 shadow-sm">
<div className="flex items-center gap-3">
<div className="size-12 rounded-xl bg-gradient-to-br from-[#0bbf87] to-[#08966b] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-green)] to-[var(--igny8-green-dark)] flex items-center justify-center text-white shadow-lg">
<CheckCircleIcon className="h-6 w-6" />
</div>
<h4 className="text-2xl font-bold text-slate-900">
@@ -186,7 +186,7 @@ const CaseStudies: React.FC = () => {
<p className="text-base text-slate-700 leading-relaxed">
Igny8's 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>
<button className="inline-flex items-center justify-center gap-2 rounded-xl bg-gradient-to-r from-[#0693e3] to-[#0472b8] text-white px-6 py-3 text-sm font-semibold hover:shadow-lg transition">
<button className="inline-flex items-center justify-center gap-2 rounded-xl bg-gradient-to-r from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] text-white px-6 py-3 text-sm font-semibold hover:shadow-lg transition">
Join the CAB waitlist
<ArrowRightIcon className="h-4 w-4" />
</button>
@@ -216,7 +216,7 @@ const CaseStudies: React.FC = () => {
</Link>
<Link
to="/resources"
className="inline-flex items-center justify-center gap-2 rounded-xl bg-white text-[#0693e3] px-10 py-5 text-lg font-bold hover:bg-white/95 transition shadow-xl hover:shadow-2xl hover:-translate-y-0.5"
className="inline-flex items-center justify-center gap-2 rounded-xl bg-white text-[var(--igny8-blue)] px-10 py-5 text-lg font-bold hover:bg-white/95 transition shadow-xl hover:shadow-2xl hover:-translate-y-0.5"
>
<RocketLaunchIcon className="h-5 w-5" />
Download case study pack

View File

@@ -14,14 +14,14 @@ 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-2 border-[#0693e3]/30 bg-gradient-to-br from-[#0693e3]/10 via-white to-[#0bbf87]/5 p-10 space-y-6 shadow-lg">
<form className="rounded-3xl border-2 border-[var(--igny8-blue)]/30 bg-gradient-to-br from-[var(--igny8-blue)]/10 via-white to-[var(--igny8-green)]/5 p-10 space-y-6 shadow-lg">
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
<label className="flex flex-col gap-2 text-sm text-slate-600">
First name
<input
type="text"
placeholder="Alex"
className="rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[#0693e3] focus:ring-2 focus:ring-[#0693e3]/20"
className="rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[var(--igny8-blue)] focus:ring-2 focus:ring-[var(--igny8-blue)]/20"
/>
</label>
<label className="flex flex-col gap-2 text-sm text-slate-600">
@@ -29,7 +29,7 @@ const Contact: React.FC = () => {
<input
type="text"
placeholder="Rivera"
className="rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[#0693e3] focus:ring-2 focus:ring-[#0693e3]/20"
className="rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[var(--igny8-blue)] focus:ring-2 focus:ring-[var(--igny8-blue)]/20"
/>
</label>
</div>
@@ -39,7 +39,7 @@ const Contact: React.FC = () => {
<input
type="email"
placeholder="you@company.com"
className="rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[#0693e3] focus:ring-2 focus:ring-[#0693e3]/20"
className="rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[var(--igny8-blue)] focus:ring-2 focus:ring-[var(--igny8-blue)]/20"
/>
</label>
@@ -48,7 +48,7 @@ const Contact: React.FC = () => {
<input
type="text"
placeholder="Company name"
className="rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[#0693e3] focus:ring-2 focus:ring-[#0693e3]/20"
className="rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[var(--igny8-blue)] focus:ring-2 focus:ring-[var(--igny8-blue)]/20"
/>
</label>
@@ -57,7 +57,7 @@ const Contact: React.FC = () => {
<textarea
rows={4}
placeholder="Tell us about your current workflow, challenges, and goals."
className="rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[#0693e3] focus:ring-2 focus:ring-[#0693e3]/20 resize-none"
className="rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[var(--igny8-blue)] focus:ring-2 focus:ring-[var(--igny8-blue)]/20 resize-none"
/>
</label>

View File

@@ -40,13 +40,13 @@ const Home: React.FC = () => {
};
const workflowSteps = [
{ name: "Keywords", icon: ListBulletIcon, color: "from-[#0693e3] to-[#0472b8]" },
{ name: "Clusters", icon: UserGroupIcon, color: "from-[#5d4ae3] to-[#3a2f94]" },
{ name: "Ideas", icon: LightBulbIcon, color: "from-[#ff7a00] to-[#cc5f00]" },
{ name: "Tasks", icon: DocumentTextIcon, color: "from-[#0bbf87] to-[#08966b]" },
{ name: "Content", icon: SparklesIcon, color: "from-[#0693e3] to-[#0472b8]" },
{ name: "Images", icon: PhotoIcon, color: "from-[#5d4ae3] to-[#3a2f94]" },
{ name: "Publish", icon: BoltIcon, color: "from-[#0bbf87] to-[#08966b]" },
{ name: "Keywords", icon: ListBulletIcon, color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]" },
{ name: "Clusters", icon: UserGroupIcon, color: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]" },
{ name: "Ideas", icon: LightBulbIcon, color: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]" },
{ name: "Tasks", icon: DocumentTextIcon, color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]" },
{ name: "Content", icon: SparklesIcon, color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]" },
{ name: "Images", icon: PhotoIcon, color: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]" },
{ name: "Publish", icon: BoltIcon, color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]" },
];
const productModules = [
@@ -60,7 +60,7 @@ const Home: React.FC = () => {
"Priority scoring based on opportunity and competition",
],
icon: ChartBarIcon,
color: "from-[#0693e3] to-[#0472b8]",
color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
image: "planner-dashboard.png",
link: "/product#planner",
align: "left",
@@ -75,7 +75,7 @@ const Home: React.FC = () => {
"Collaborative editing and approval workflows",
],
icon: SparklesIcon,
color: "from-[#0bbf87] to-[#08966b]",
color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
image: "writer-dashboard.png",
link: "/product#writer",
align: "right",
@@ -90,7 +90,7 @@ const Home: React.FC = () => {
"Automated guideline enforcement across all content",
],
icon: BoltIcon,
color: "from-[#ff7a00] to-[#cc5f00]",
color: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
image: "thinker-dashboard.png",
link: "/product#thinker",
align: "left",
@@ -105,7 +105,7 @@ const Home: React.FC = () => {
"Real-time monitoring and error handling",
],
icon: PhotoIcon,
color: "from-[#5d4ae3] to-[#3a2f94]",
color: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
image: "automation-dashboard.png",
link: "/product#automation",
align: "right",
@@ -115,7 +115,7 @@ const Home: React.FC = () => {
return (
<div className="bg-white">
{/* HERO SECTION */}
<section className="relative overflow-hidden bg-gradient-to-br from-[#0693e3] via-[#5d4ae3] to-[#8b5cf6]">
<section className="relative overflow-hidden bg-gradient-to-br from-[var(--igny8-blue)] via-[var(--igny8-purple)] to-[#8b5cf6]">
{/* Radial glow behind headline */}
<div className="absolute inset-0 bg-[radial-gradient(circle_at_30%_50%,rgba(255,255,255,0.1),transparent_60%)]" />
<div className="absolute inset-0 bg-[radial-gradient(circle_at_70%_20%,rgba(109,74,227,0.2),transparent_50%)]" />
@@ -136,7 +136,7 @@ const Home: React.FC = () => {
<div className="flex flex-col sm:flex-row gap-4 mt-2">
{renderCta(
{ label: "Start Free", href: "https://app.igny8.com/signup" },
"inline-flex items-center justify-center rounded-xl bg-white text-[#0693e3] px-8 py-4 text-base font-semibold hover:bg-white/95 transition shadow-xl hover:shadow-2xl hover:-translate-y-0.5"
"inline-flex items-center justify-center rounded-xl bg-white text-[var(--igny8-blue)] px-8 py-4 text-base font-semibold hover:bg-white/95 transition shadow-xl hover:shadow-2xl hover:-translate-y-0.5"
)}
{renderCta(
{ label: "Book Demo", href: "/contact" },
@@ -149,7 +149,7 @@ const Home: React.FC = () => {
<div className="relative z-10">
<div className="relative scale-110 lg:scale-125">
{/* Soft glow behind screenshot */}
<div className="absolute -inset-8 bg-gradient-to-br from-white/30 via-[#0693e3]/20 to-[#5d4ae3]/20 rounded-3xl blur-3xl" />
<div className="absolute -inset-8 bg-gradient-to-br from-white/30 via-[var(--igny8-blue)]/20 to-[var(--igny8-purple)]/20 rounded-3xl blur-3xl" />
{/* Device frame effect */}
<div className="absolute -inset-4 bg-gradient-to-br from-white/20 to-white/5 rounded-3xl blur-2xl" />
<div className="relative rounded-2xl border-4 border-white/20 bg-white/10 backdrop-blur-sm shadow-2xl overflow-hidden">
@@ -167,7 +167,7 @@ const Home: React.FC = () => {
/>
</div>
{/* Soft shadow */}
<div className="absolute -bottom-8 -left-8 right-8 h-32 bg-gradient-to-t from-[#0693e3]/20 to-transparent blur-3xl -z-10" />
<div className="absolute -bottom-8 -left-8 right-8 h-32 bg-gradient-to-t from-[var(--igny8-blue)]/20 to-transparent blur-3xl -z-10" />
</div>
</div>
</div>
@@ -200,7 +200,7 @@ const Home: React.FC = () => {
</section>
{/* HOW IGNY8 WORKS (PIPELINE) */}
<section className="py-24 bg-gradient-to-b from-white via-[#0693e3]/3 to-[#5d4ae3]/3">
<section className="py-24 bg-gradient-to-b from-white via-[var(--igny8-blue)]/3 to-[var(--igny8-purple)]/3">
<div className="max-w-7xl mx-auto px-6">
<div className="text-center mb-16">
<h2 className="text-4xl md:text-5xl font-bold text-slate-900 mb-4">
@@ -214,7 +214,7 @@ const Home: React.FC = () => {
{/* Horizontal Timeline */}
<div className="relative">
{/* Enhanced connecting line with shadow */}
<div className="absolute top-14 left-0 right-0 h-1 bg-gradient-to-r from-[#0693e3] via-[#5d4ae3] via-[#ff7a00] via-[#0bbf87] to-[#0693e3] opacity-25 hidden md:block shadow-lg shadow-[#0693e3]/20" />
<div className="absolute top-14 left-0 right-0 h-1 bg-gradient-to-r from-[var(--igny8-blue)] via-[var(--igny8-purple)] via-[var(--igny8-amber)] via-[var(--igny8-green)] to-[var(--igny8-blue)] opacity-25 hidden md:block shadow-lg shadow-[var(--igny8-blue)]/20" />
<div className="grid grid-cols-2 md:grid-cols-7 gap-6 md:gap-4">
{workflowSteps.map((step, index) => {
@@ -241,9 +241,9 @@ const Home: React.FC = () => {
const isLeft = module.align === "left";
const backgroundTints = [
"bg-white",
"bg-gradient-to-b from-[#0693e3]/1 to-white",
"bg-gradient-to-b from-[#0bbf87]/1 to-white",
"bg-gradient-to-b from-[#5d4ae3]/1 to-white",
"bg-gradient-to-b from-[var(--igny8-blue)]/1 to-white",
"bg-gradient-to-b from-[var(--igny8-green)]/1 to-white",
"bg-gradient-to-b from-[var(--igny8-purple)]/1 to-white",
];
return (
@@ -322,7 +322,7 @@ const Home: React.FC = () => {
{/* Left: Content */}
<div className="z-10">
<div className="flex items-center gap-3 mb-6">
<div className="size-12 rounded-xl bg-gradient-to-br from-[#0693e3] to-[#5d4ae3] flex items-center justify-center text-white shadow-lg shadow-[#0693e3]/30">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-purple)] flex items-center justify-center text-white shadow-lg shadow-[var(--igny8-blue)]/30">
<BoltIcon className="h-6 w-6" />
</div>
<h2 className="text-4xl md:text-5xl font-bold text-white">
@@ -336,12 +336,12 @@ const Home: React.FC = () => {
{/* Automation Timeline with neon glows */}
<div className="space-y-6 mb-8">
{[
{ from: "Keywords", to: "Clusters", icon: "→", color: "from-[#0693e3] to-[#5d4ae3]", glow: "shadow-[#0693e3]/50" },
{ from: "Clusters", to: "Ideas", icon: "→", color: "from-[#5d4ae3] to-[#ff7a00]", glow: "shadow-[#5d4ae3]/50" },
{ from: "Ideas", to: "Tasks", icon: "→", color: "from-[#ff7a00] to-[#0bbf87]", glow: "shadow-[#ff7a00]/50" },
{ from: "Tasks", to: "Content", icon: "→", color: "from-[#0bbf87] to-[#0693e3]", glow: "shadow-[#0bbf87]/50" },
{ from: "Content", to: "Images", icon: "→", color: "from-[#0693e3] to-[#5d4ae3]", glow: "shadow-[#0693e3]/50" },
{ from: "Images", to: "Publish", icon: "→", color: "from-[#5d4ae3] to-[#0bbf87]", glow: "shadow-[#5d4ae3]/50" },
{ from: "Keywords", to: "Clusters", icon: "→", color: "from-[var(--igny8-blue)] to-[var(--igny8-purple)]", glow: "shadow-[var(--igny8-blue)]/50" },
{ from: "Clusters", to: "Ideas", icon: "→", color: "from-[var(--igny8-purple)] to-[var(--igny8-amber)]", glow: "shadow-[var(--igny8-purple)]/50" },
{ from: "Ideas", to: "Tasks", icon: "→", color: "from-[var(--igny8-amber)] to-[var(--igny8-green)]", glow: "shadow-[var(--igny8-amber)]/50" },
{ from: "Tasks", to: "Content", icon: "→", color: "from-[var(--igny8-green)] to-[var(--igny8-blue)]", glow: "shadow-[var(--igny8-green)]/50" },
{ from: "Content", to: "Images", icon: "→", color: "from-[var(--igny8-blue)] to-[var(--igny8-purple)]", glow: "shadow-[var(--igny8-blue)]/50" },
{ from: "Images", to: "Publish", icon: "→", color: "from-[var(--igny8-purple)] to-[var(--igny8-green)]", glow: "shadow-[var(--igny8-purple)]/50" },
].map((handoff, i) => (
<div key={i} className="flex items-center gap-4">
<div className={`relative w-12 h-12 rounded-xl bg-gradient-to-br ${handoff.color} flex items-center justify-center text-white font-bold shadow-lg ${handoff.glow} group`}>
@@ -387,7 +387,7 @@ const Home: React.FC = () => {
/>
</div>
{/* Glow effect */}
<div className="absolute -inset-4 bg-gradient-to-br from-[#0693e3]/20 to-[#5d4ae3]/20 rounded-2xl blur-2xl -z-10" />
<div className="absolute -inset-4 bg-gradient-to-br from-[var(--igny8-blue)]/20 to-[var(--igny8-purple)]/20 rounded-2xl blur-2xl -z-10" />
</div>
</div>
</div>
@@ -397,7 +397,7 @@ const Home: React.FC = () => {
<section className="py-24 bg-white">
<div className="max-w-7xl mx-auto px-6">
<div className="text-center mb-12">
<span className="inline-flex items-center rounded-full border border-[#0693e3]/20 bg-[#0693e3]/10 px-4 py-1 text-xs font-semibold uppercase tracking-[0.2em] text-[#0693e3] mb-4">
<span className="inline-flex items-center rounded-full border border-[var(--igny8-blue)]/20 bg-[var(--igny8-blue)]/10 px-4 py-1 text-xs font-semibold uppercase tracking-[0.2em] text-[var(--igny8-blue)] mb-4">
Loved by scaling teams
</span>
<h2 className="text-4xl md:text-5xl lg:text-6xl font-bold text-slate-900 mb-4">
@@ -408,14 +408,14 @@ const Home: React.FC = () => {
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
{testimonials.map((testimonial, index) => {
const gradientColors = [
"from-[#0693e3]/20 to-[#0472b8]/10",
"from-[#0bbf87]/20 to-[#08966b]/10",
"from-[#5d4ae3]/20 to-[#3a2f94]/10",
"from-[var(--igny8-blue)]/20 to-[var(--igny8-blue-dark)]/10",
"from-[var(--igny8-green)]/20 to-[var(--igny8-green-dark)]/10",
"from-[var(--igny8-purple)]/20 to-[var(--igny8-purple-dark)]/10",
];
const borderColors = [
"border-[#0693e3]/30",
"border-[#0bbf87]/30",
"border-[#5d4ae3]/30",
"border-[var(--igny8-blue)]/30",
"border-[var(--igny8-green)]/30",
"border-[var(--igny8-purple)]/30",
];
return (
@@ -453,7 +453,7 @@ const Home: React.FC = () => {
</section>
{/* FINAL CTA */}
<section className="relative overflow-hidden bg-gradient-to-br from-[#8b5cf6] via-[#5d4ae3] to-[#0693e3]">
<section className="relative overflow-hidden bg-gradient-to-br from-[#8b5cf6] via-[var(--igny8-purple)] to-[var(--igny8-blue)]">
{/* Dashboard overlay in background */}
<div className="absolute inset-0 opacity-10">
<div className="absolute inset-0 bg-[url('/marketing/images/hero-dashboard.png')] bg-cover bg-center scale-150 blur-3xl" />
@@ -474,7 +474,7 @@ const Home: React.FC = () => {
href="https://app.igny8.com/signup"
target="_blank"
rel="noreferrer"
className="inline-flex items-center justify-center gap-2 rounded-xl bg-white text-[#0693e3] px-10 py-5 text-lg font-bold hover:bg-white/95 transition shadow-xl hover:shadow-2xl hover:-translate-y-0.5"
className="inline-flex items-center justify-center gap-2 rounded-xl bg-white text-[var(--igny8-blue)] px-10 py-5 text-lg font-bold hover:bg-white/95 transition shadow-xl hover:shadow-2xl hover:-translate-y-0.5"
>
<RocketLaunchIcon className="h-5 w-5" />
Start Free

View File

@@ -43,7 +43,7 @@ const Partners: React.FC = () => {
"Access to automation templates and think tank sessions",
],
icon: CheckCircleIcon,
iconColor: "from-[#0693e3] to-[#0472b8]",
iconColor: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
},
{
title: "Technology Partner",
@@ -54,7 +54,7 @@ const Partners: React.FC = () => {
"Shared lead programs and launch promotion campaigns",
],
icon: CodeBracketIcon,
iconColor: "from-[#0bbf87] to-[#08966b]",
iconColor: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
},
{
title: "Affiliate & Advocate",
@@ -65,7 +65,7 @@ const Partners: React.FC = () => {
"Custom reporting dashboards to track referred accounts",
],
icon: RocketLaunchIcon,
iconColor: "from-[#ff7a00] to-[#cc5f00]",
iconColor: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
},
];
@@ -112,7 +112,7 @@ const Partners: React.FC = () => {
<p className="text-sm text-slate-600 font-medium">{tier.description}</p>
<ul className="space-y-4 text-sm text-slate-700 flex-1">
{tier.benefits.map((benefit, benefitIdx) => {
const dotColors = ["bg-[#0693e3]", "bg-[#0bbf87]", "bg-[#ff7a00]", "bg-[#5d4ae3]"];
const dotColors = ["bg-[var(--igny8-blue)]", "bg-[var(--igny8-green)]", "bg-[var(--igny8-amber)]", "bg-[var(--igny8-purple)]"];
return (
<li key={benefit} className="flex gap-3">
<span className={`mt-1.5 size-2 rounded-full ${dotColors[benefitIdx % dotColors.length]} shadow-sm flex-shrink-0`} />
@@ -133,7 +133,7 @@ const Partners: React.FC = () => {
{/* Left: API & Integrations */}
<div className="space-y-6">
<div className="flex items-center gap-3 mb-4">
<div className="size-12 rounded-xl bg-gradient-to-br from-[#0693e3] to-[#0472b8] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] flex items-center justify-center text-white shadow-lg">
<CodeBracketIcon className="h-6 w-6" />
</div>
<div>
@@ -158,7 +158,7 @@ const Partners: React.FC = () => {
{/* Right: Partner Resources */}
<div className="rounded-2xl border-2 border-slate-200 bg-white p-10 space-y-6 shadow-sm">
<div className="flex items-center gap-3">
<div className="size-12 rounded-xl bg-gradient-to-br from-[#0bbf87] to-[#08966b] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-green)] to-[var(--igny8-green-dark)] flex items-center justify-center text-white shadow-lg">
<WrenchScrewdriverIcon className="h-6 w-6" />
</div>
<h4 className="text-2xl font-bold text-slate-900">
@@ -167,9 +167,9 @@ const Partners: React.FC = () => {
</div>
<ul className="space-y-4 text-sm text-slate-700">
{[
{ text: "Sales playbooks, ROI calculators, and demo environments.", color: "bg-[#0693e3]" },
{ text: "Shared Slack channels with Igny8 product and marketing teams.", color: "bg-[#0bbf87]" },
{ text: "Quarterly partner labs to showcase launches and integrations.", color: "bg-[#ff7a00]" },
{ text: "Sales playbooks, ROI calculators, and demo environments.", color: "bg-[var(--igny8-blue)]" },
{ text: "Shared Slack channels with Igny8 product and marketing teams.", color: "bg-[var(--igny8-green)]" },
{ text: "Quarterly partner labs to showcase launches and integrations.", color: "bg-[var(--igny8-amber)]" },
].map((item, index) => (
<li key={item.text} className="flex gap-3">
<span className={`mt-1.5 size-2 rounded-full ${item.color} shadow-sm flex-shrink-0`} />

View File

@@ -45,7 +45,7 @@ const Pricing: React.FC = () => {
cadence: "per month",
description: "For small teams starting workflows.",
icon: SparklesIcon,
iconColor: "from-[#0693e3] to-[#0472b8]",
iconColor: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
features: [
"3 sites",
"5 users",
@@ -69,7 +69,7 @@ const Pricing: React.FC = () => {
cadence: "per month",
description: "For teams automating multiple workflows.",
icon: BoltIcon,
iconColor: "from-[#0bbf87] to-[#08966b]",
iconColor: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
features: [
"10 sites",
"10 users",
@@ -95,7 +95,7 @@ const Pricing: React.FC = () => {
cadence: "per month",
description: "For publishers and large orgs needing deeper control.",
icon: ChartBarIcon,
iconColor: "from-[#5d4ae3] to-[#3a2f94]",
iconColor: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
features: [
"25 sites",
"25 users",
@@ -239,7 +239,7 @@ const Pricing: React.FC = () => {
key={tier.name}
className={`relative rounded-3xl border-2 ${
tier.featured
? "border-[#0693e3]/60 bg-gradient-to-br from-[#0693e3]/10 via-[#5d4ae3]/5 to-[#0bbf87]/5 shadow-[0_0_70px_rgba(6,147,227,0.25)]"
? "border-[var(--igny8-blue)]/60 bg-gradient-to-br from-[#0693e3]/10 via-[#5d4ae3]/5 to-[#0bbf87]/5 shadow-[0_0_70px_rgba(6,147,227,0.25)]"
: "border-slate-200 bg-gradient-to-br from-white to-slate-50/50"
} p-10 flex flex-col gap-6 hover:shadow-xl transition-all group ${
tier.featured ? "lg:scale-105" : "hover:-translate-y-1"
@@ -258,8 +258,8 @@ const Pricing: React.FC = () => {
<span
className={`inline-flex items-center rounded-full border px-3 py-1 text-[10px] uppercase tracking-[0.25em] mb-2 ${
tier.featured
? "border-[#0693e3]/30 bg-gradient-to-r from-[#0693e3]/20 to-[#0472b8]/20 text-[#0472b8]"
: "border-slate-200 bg-gradient-to-r from-[#0693e3]/10 to-[#0bbf87]/10 text-[#0693e3]"
? "border-[var(--igny8-blue)]/30 bg-gradient-to-r from-[#0693e3]/20 to-[#0472b8]/20 text-[#0472b8]"
: "border-slate-200 bg-gradient-to-r from-[#0693e3]/10 to-[#0bbf87]/10 text-[var(--igny8-blue)]"
}`}
>
{tier.badge}
@@ -287,7 +287,7 @@ const Pricing: React.FC = () => {
{tier.features.map((feature, idx) => {
// Subtle check icons: light bg with dark check for starter/scale, colored for growth
const checkStyle = tier.featured
? "bg-[#0bbf87]/10 text-[#0bbf87]"
? "bg-[var(--igny8-green)]/10 text-[#0bbf87]"
: "bg-slate-100 text-slate-600";
return (
<li key={feature} className="flex gap-3 items-start">
@@ -304,8 +304,8 @@ const Pricing: React.FC = () => {
href="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-gradient-to-r from-[#0693e3] to-[#0472b8] text-white hover:from-[#0472b8] hover:to-[#0693e3] shadow-lg shadow-[#0693e3]/30"
: "border-2 border-slate-300 bg-white/50 backdrop-blur-sm text-slate-900 hover:border-[#0693e3] hover:bg-white"
? "bg-gradient-to-r from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] text-white hover:from-[#0472b8] hover:to-[#0693e3] shadow-lg shadow-[#0693e3]/30"
: "border-2 border-slate-300 bg-white/50 backdrop-blur-sm text-slate-900 hover:border-[var(--igny8-blue)] hover:bg-white"
}`}
>
Start free trial
@@ -329,7 +329,7 @@ const Pricing: React.FC = () => {
<tr>
<th className="px-6 py-4 text-left font-semibold text-slate-900">Capability</th>
<th className="px-6 py-4 text-center font-semibold text-slate-900">Starter</th>
<th className="px-6 py-4 text-center font-semibold text-[#0693e3] bg-gradient-to-br from-[#0693e3]/5 to-transparent">
<th className="px-6 py-4 text-center font-semibold text-[var(--igny8-blue)] bg-gradient-to-br from-[#0693e3]/5 to-transparent">
Growth
</th>
<th className="px-6 py-4 text-center font-semibold text-slate-900">Scale</th>
@@ -349,19 +349,19 @@ const Pricing: React.FC = () => {
<XMarkIcon className="h-5 w-5 text-slate-300 mx-auto" />
) : (
<span className="inline-flex items-center gap-1">
<span className="size-1.5 rounded-full bg-[#0693e3]"></span>
<span className="size-1.5 rounded-full bg-[var(--igny8-blue)]"></span>
{row.starter}
</span>
)}
</td>
<td className="px-6 py-5 text-center font-medium text-[#0693e3] bg-gradient-to-br from-[#0693e3]/5 to-transparent">
<td className="px-6 py-5 text-center font-medium text-[var(--igny8-blue)] bg-gradient-to-br from-[#0693e3]/5 to-transparent">
{row.growth === true ? (
<CheckIcon className="h-5 w-5 text-[#0bbf87] mx-auto" />
) : row.growth === false ? (
<XMarkIcon className="h-5 w-5 text-slate-300 mx-auto" />
) : (
<span className="inline-flex items-center gap-1">
<span className="size-1.5 rounded-full bg-[#0693e3]"></span>
<span className="size-1.5 rounded-full bg-[var(--igny8-blue)]"></span>
{row.growth}
</span>
)}
@@ -389,9 +389,9 @@ const Pricing: React.FC = () => {
{/* INFO BLOCKS SECTION */}
<section className="bg-gradient-to-b from-white via-slate-50/30 to-white">
<div className="max-w-6xl mx-auto px-6 py-24 grid grid-cols-1 md:grid-cols-2 gap-8">
<div className="rounded-3xl border-2 border-[#0693e3]/30 bg-gradient-to-br from-[#0693e3]/5 via-white to-[#0bbf87]/5 p-8 space-y-4 shadow-lg hover:shadow-xl transition-all">
<div className="rounded-3xl border-2 border-[var(--igny8-blue)]/30 bg-gradient-to-br from-[#0693e3]/5 via-white to-[#0bbf87]/5 p-8 space-y-4 shadow-lg hover:shadow-xl transition-all">
<div className="flex items-center gap-3 mb-4">
<div className="size-12 rounded-full bg-gradient-to-br from-[#0693e3] to-[#0472b8] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-full bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] flex items-center justify-center text-white shadow-lg">
<CreditCardIcon className="h-6 w-6" />
</div>
<h4 className="text-lg font-semibold text-slate-900">
@@ -407,7 +407,7 @@ const Pricing: React.FC = () => {
</div>
<div className="rounded-3xl border-2 border-[#0bbf87]/30 bg-gradient-to-br from-[#0bbf87]/5 via-white to-[#5d4ae3]/5 p-8 space-y-4 shadow-lg hover:shadow-xl transition-all">
<div className="flex items-center gap-3 mb-4">
<div className="size-12 rounded-full bg-gradient-to-br from-[#0bbf87] to-[#08966b] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-full bg-gradient-to-br from-[var(--igny8-green)] to-[var(--igny8-green-dark)] flex items-center justify-center text-white shadow-lg">
<ShieldCheckIcon className="h-6 w-6" />
</div>
<h4 className="text-lg font-semibold text-slate-900">
@@ -422,7 +422,7 @@ const Pricing: React.FC = () => {
</section>
{/* FINAL CTA */}
<section className="relative overflow-hidden bg-gradient-to-br from-[#0693e3] via-[#5d4ae3] to-[#8b5cf6]">
<section className="relative overflow-hidden bg-gradient-to-br from-[var(--igny8-blue)] via-[var(--igny8-purple)] to-[#8b5cf6]">
{/* Radial glow */}
<div className="absolute inset-0 bg-[radial-gradient(circle_at_50%_50%,rgba(255,255,255,0.1),transparent_70%)]" />
@@ -445,7 +445,7 @@ const Pricing: React.FC = () => {
href="https://app.igny8.com/signup"
target="_blank"
rel="noreferrer"
className="inline-flex items-center justify-center gap-2 rounded-xl bg-white text-[#0693e3] px-10 py-5 text-lg font-bold hover:bg-white/95 transition shadow-xl hover:shadow-2xl hover:-translate-y-0.5"
className="inline-flex items-center justify-center gap-2 rounded-xl bg-white text-[var(--igny8-blue)] px-10 py-5 text-lg font-bold hover:bg-white/95 transition shadow-xl hover:shadow-2xl hover:-translate-y-0.5"
>
<RocketLaunchIcon className="h-5 w-5" />
Start free trial

View File

@@ -40,12 +40,12 @@ const Product: React.FC = () => {
};
const workflowSteps = [
{ name: "Keywords", icon: ListBulletIcon, color: "from-[#0693e3] to-[#0472b8]" },
{ name: "Clusters", icon: UserGroupIcon, color: "from-[#5d4ae3] to-[#3a2f94]" },
{ name: "Ideas", icon: LightBulbIcon, color: "from-[#ff7a00] to-[#cc5f00]" },
{ name: "Tasks", icon: DocumentTextIcon, color: "from-[#0bbf87] to-[#08966b]" },
{ name: "Content", icon: SparklesIcon, color: "from-[#0693e3] to-[#0472b8]" },
{ name: "Publish", icon: BoltIcon, color: "from-[#0bbf87] to-[#08966b]" },
{ name: "Keywords", icon: ListBulletIcon, color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]" },
{ name: "Clusters", icon: UserGroupIcon, color: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]" },
{ name: "Ideas", icon: LightBulbIcon, color: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]" },
{ name: "Tasks", icon: DocumentTextIcon, color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]" },
{ name: "Content", icon: SparklesIcon, color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]" },
{ name: "Publish", icon: BoltIcon, color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]" },
];
const productModules = [
@@ -61,7 +61,7 @@ const Product: React.FC = () => {
"Alerts for emerging opportunities, competitive gaps, and seasonality shifts",
],
icon: ChartBarIcon,
color: "from-[#0693e3] to-[#0472b8]",
color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
image: "planner-dashboard.png",
link: "#planner",
},
@@ -77,7 +77,7 @@ const Product: React.FC = () => {
"Editorial workspace with comments, approvals, and WordPress publishing",
],
icon: SparklesIcon,
color: "from-[#0bbf87] to-[#08966b]",
color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
image: "writer-dashboard.png",
link: "#writer",
},
@@ -93,7 +93,7 @@ const Product: React.FC = () => {
"Version control for AI instructions and playbooks across teams",
],
icon: BoltIcon,
color: "from-[#ff7a00] to-[#cc5f00]",
color: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
image: "thinker-dashboard.png",
link: "#thinker",
},
@@ -109,7 +109,7 @@ const Product: React.FC = () => {
"Monitor every automation with audit logs and manual override controls",
],
icon: PhotoIcon,
color: "from-[#5d4ae3] to-[#3a2f94]",
color: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
image: "automation-dashboard.png",
link: "#automation",
},
@@ -134,11 +134,11 @@ const Product: React.FC = () => {
<div className="flex flex-col sm:flex-row gap-4 justify-center">
{renderCta(
{ label: "Start free", href: "https://app.igny8.com/signup" },
"inline-flex items-center justify-center rounded-xl bg-gradient-to-r from-[#0693e3] to-[#0472b8] text-white px-8 py-4 text-base font-semibold hover:shadow-lg hover:-translate-y-0.5 transition shadow-md"
"inline-flex items-center justify-center rounded-xl bg-gradient-to-r from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] text-white px-8 py-4 text-base font-semibold hover:shadow-lg hover:-translate-y-0.5 transition shadow-md"
)}
{renderCta(
{ label: "Book a demo", href: "/contact" },
"inline-flex items-center justify-center rounded-xl border-2 border-slate-300 bg-white text-slate-700 px-8 py-4 text-base font-semibold hover:border-[#0693e3] hover:text-[#0693e3] transition"
"inline-flex items-center justify-center rounded-xl border-2 border-slate-300 bg-white text-slate-700 px-8 py-4 text-base font-semibold hover:border-[var(--igny8-blue)] hover:text-[var(--igny8-blue)] transition"
)}
</div>
</div>
@@ -159,7 +159,7 @@ const Product: React.FC = () => {
{/* Horizontal Timeline */}
<div className="relative">
{/* Enhanced connecting line with shadow */}
<div className="absolute top-14 left-0 right-0 h-1 bg-gradient-to-r from-[#0693e3] via-[#5d4ae3] via-[#ff7a00] via-[#0bbf87] to-[#0693e3] opacity-25 hidden md:block shadow-lg shadow-[#0693e3]/20" />
<div className="absolute top-14 left-0 right-0 h-1 bg-gradient-to-r from-[var(--igny8-blue)] via-[var(--igny8-purple)] via-[var(--igny8-amber)] via-[var(--igny8-green)] to-[var(--igny8-blue)] opacity-25 hidden md:block shadow-lg shadow-[var(--igny8-blue)]/20" />
<div className="grid grid-cols-2 md:grid-cols-6 gap-6 md:gap-4">
{workflowSteps.map((step, index) => {
@@ -186,9 +186,9 @@ const Product: React.FC = () => {
const isLeft = index % 2 === 0;
const backgroundTints = [
"bg-white",
"bg-gradient-to-b from-[#0693e3]/1 to-white",
"bg-gradient-to-b from-[#0bbf87]/1 to-white",
"bg-gradient-to-b from-[#5d4ae3]/1 to-white",
"bg-gradient-to-b from-[var(--igny8-blue)]/1 to-white",
"bg-gradient-to-b from-[var(--igny8-green)]/1 to-white",
"bg-gradient-to-b from-[var(--igny8-purple)]/1 to-white",
];
return (
@@ -267,7 +267,7 @@ const Product: React.FC = () => {
{/* Left: Content */}
<div className="z-10">
<div className="flex items-center gap-3 mb-6">
<div className="size-12 rounded-xl bg-gradient-to-br from-[#0693e3] to-[#5d4ae3] flex items-center justify-center text-white shadow-lg shadow-[#0693e3]/30">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-purple)] flex items-center justify-center text-white shadow-lg shadow-[var(--igny8-blue)]/30">
<BoltIcon className="h-6 w-6" />
</div>
<h2 className="text-4xl md:text-5xl font-bold text-white">
@@ -281,12 +281,12 @@ const Product: React.FC = () => {
{/* Automation Timeline with neon glows */}
<div className="space-y-6">
{[
{ from: "Keywords", to: "Clusters", icon: "→", color: "from-[#0693e3] to-[#5d4ae3]", glow: "shadow-[#0693e3]/50" },
{ from: "Clusters", to: "Ideas", icon: "→", color: "from-[#5d4ae3] to-[#ff7a00]", glow: "shadow-[#5d4ae3]/50" },
{ from: "Ideas", to: "Tasks", icon: "→", color: "from-[#ff7a00] to-[#0bbf87]", glow: "shadow-[#ff7a00]/50" },
{ from: "Tasks", to: "Content", icon: "→", color: "from-[#0bbf87] to-[#0693e3]", glow: "shadow-[#0bbf87]/50" },
{ from: "Content", to: "Images", icon: "→", color: "from-[#0693e3] to-[#5d4ae3]", glow: "shadow-[#0693e3]/50" },
{ from: "Images", to: "Publish", icon: "→", color: "from-[#5d4ae3] to-[#0bbf87]", glow: "shadow-[#5d4ae3]/50" },
{ from: "Keywords", to: "Clusters", icon: "→", color: "from-[var(--igny8-blue)] to-[var(--igny8-purple)]", glow: "shadow-[var(--igny8-blue)]/50" },
{ from: "Clusters", to: "Ideas", icon: "→", color: "from-[var(--igny8-purple)] to-[var(--igny8-amber)]", glow: "shadow-[var(--igny8-purple)]/50" },
{ from: "Ideas", to: "Tasks", icon: "→", color: "from-[var(--igny8-amber)] to-[var(--igny8-green)]", glow: "shadow-[var(--igny8-amber)]/50" },
{ from: "Tasks", to: "Content", icon: "→", color: "from-[var(--igny8-green)] to-[var(--igny8-blue)]", glow: "shadow-[var(--igny8-green)]/50" },
{ from: "Content", to: "Images", icon: "→", color: "from-[var(--igny8-blue)] to-[var(--igny8-purple)]", glow: "shadow-[var(--igny8-blue)]/50" },
{ from: "Images", to: "Publish", icon: "→", color: "from-[var(--igny8-purple)] to-[var(--igny8-green)]", glow: "shadow-[var(--igny8-purple)]/50" },
].map((handoff, i) => (
<div key={i} className="flex items-center gap-4">
<div className={`relative w-12 h-12 rounded-xl bg-gradient-to-br ${handoff.color} flex items-center justify-center text-white font-bold shadow-lg ${handoff.glow} group`}>
@@ -320,7 +320,7 @@ const Product: React.FC = () => {
/>
</div>
{/* Glow effect */}
<div className="absolute -inset-4 bg-gradient-to-br from-[#0693e3]/20 to-[#5d4ae3]/20 rounded-2xl blur-2xl -z-10" />
<div className="absolute -inset-4 bg-gradient-to-br from-[var(--igny8-blue)]/20 to-[var(--igny8-purple)]/20 rounded-2xl blur-2xl -z-10" />
</div>
</div>
@@ -344,7 +344,7 @@ const Product: React.FC = () => {
<section className="py-24 bg-white">
<div className="max-w-7xl mx-auto px-6">
<div className="text-center mb-12">
<span className="inline-flex items-center rounded-full border border-[#0693e3]/20 bg-[#0693e3]/10 px-4 py-1 text-xs font-semibold uppercase tracking-[0.2em] text-[#0693e3] mb-4">
<span className="inline-flex items-center rounded-full border border-[var(--igny8-blue)]/20 bg-[var(--igny8-blue)]/10 px-4 py-1 text-xs font-semibold uppercase tracking-[0.2em] text-[var(--igny8-blue)] mb-4">
Loved by scaling teams
</span>
<h2 className="text-4xl md:text-5xl lg:text-6xl font-bold text-slate-900 mb-4">
@@ -355,14 +355,14 @@ const Product: React.FC = () => {
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
{testimonials.map((testimonial, index) => {
const gradientColors = [
"from-[#0693e3]/20 to-[#0472b8]/10",
"from-[#0bbf87]/20 to-[#08966b]/10",
"from-[#5d4ae3]/20 to-[#3a2f94]/10",
"from-[var(--igny8-blue)]/20 to-[var(--igny8-blue-dark)]/10",
"from-[var(--igny8-green)]/20 to-[var(--igny8-green-dark)]/10",
"from-[var(--igny8-purple)]/20 to-[var(--igny8-purple-dark)]/10",
];
const borderColors = [
"border-[#0693e3]/30",
"border-[#0bbf87]/30",
"border-[#5d4ae3]/30",
"border-[var(--igny8-blue)]/30",
"border-[var(--igny8-green)]/30",
"border-[var(--igny8-purple)]/30",
];
return (
@@ -400,7 +400,7 @@ const Product: React.FC = () => {
</section>
{/* FINAL CTA */}
<section className="relative overflow-hidden bg-gradient-to-br from-[#0693e3] via-[#5d4ae3] to-[#8b5cf6]">
<section className="relative overflow-hidden bg-gradient-to-br from-[var(--igny8-blue)] via-[var(--igny8-purple)] to-[#8b5cf6]">
{/* Dashboard overlay in background */}
<div className="absolute inset-0 opacity-10">
<div className="absolute inset-0 bg-[url('/marketing/images/hero-dashboard.png')] bg-cover bg-center scale-150 blur-3xl" />
@@ -421,7 +421,7 @@ const Product: React.FC = () => {
href="https://app.igny8.com/signup"
target="_blank"
rel="noreferrer"
className="inline-flex items-center justify-center gap-2 rounded-xl bg-white text-[#0693e3] px-10 py-5 text-lg font-bold hover:bg-white/95 transition shadow-xl hover:shadow-2xl hover:-translate-y-0.5"
className="inline-flex items-center justify-center gap-2 rounded-xl bg-white text-[var(--igny8-blue)] px-10 py-5 text-lg font-bold hover:bg-white/95 transition shadow-xl hover:shadow-2xl hover:-translate-y-0.5"
>
<RocketLaunchIcon className="h-5 w-5" />
Start free

View File

@@ -50,7 +50,7 @@ const Resources: React.FC = () => {
type: "Article",
tag: "Strategy",
icon: ChartBarIcon,
color: "from-[#0693e3] to-[#0472b8]",
color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
},
{
title: "The Complete Framework for AI Content Quality",
@@ -58,7 +58,7 @@ const Resources: React.FC = () => {
type: "Framework Guide",
tag: "Strategy",
icon: AcademicCapIcon,
color: "from-[#0bbf87] to-[#08966b]",
color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
},
{
title: "SERP-Guided Content Planning Playbook",
@@ -66,7 +66,7 @@ const Resources: React.FC = () => {
type: "PDF Guide",
tag: "Strategy",
icon: BookOpenIcon,
color: "from-[#ff7a00] to-[#cc5f00]",
color: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
},
];
@@ -77,7 +77,7 @@ const Resources: React.FC = () => {
type: "Template",
tags: ["Template", "System"],
icon: CalendarIcon,
color: "from-[#0693e3] to-[#0472b8]",
color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
},
{
title: "Airtable Keyword Cluster System",
@@ -85,7 +85,7 @@ const Resources: React.FC = () => {
type: "System",
tags: ["System", "Workflow"],
icon: ChartBarIcon,
color: "from-[#0bbf87] to-[#08966b]",
color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
},
{
title: "Content Calendar Kit (Excel)",
@@ -93,7 +93,7 @@ const Resources: React.FC = () => {
type: "Template",
tags: ["Template", "Workflow"],
icon: DocumentTextIcon,
color: "from-[#5d4ae3] to-[#3a2f94]",
color: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
},
{
title: "Cluster Mapping Board",
@@ -101,7 +101,7 @@ const Resources: React.FC = () => {
type: "Template",
tags: ["Template", "System"],
icon: SparklesIcon,
color: "from-[#ff7a00] to-[#cc5f00]",
color: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
},
];
@@ -113,7 +113,7 @@ const Resources: React.FC = () => {
type: "Workshop",
tag: "Live",
icon: BoltIcon,
color: "from-[#0693e3] to-[#0472b8]",
color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
},
{
title: "From Keywords to Conversions: Dashboard Deep-Dive",
@@ -122,7 +122,7 @@ const Resources: React.FC = () => {
type: "Workshop",
tag: "Live",
icon: ChartBarIcon,
color: "from-[#0bbf87] to-[#08966b]",
color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
},
{
title: "Automating Cluster Research at Scale",
@@ -130,7 +130,7 @@ const Resources: React.FC = () => {
type: "Replay",
tag: "Replay",
icon: PlayIcon,
color: "from-[#5d4ae3] to-[#3a2f94]",
color: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
},
{
title: "Editorial Control and AI Tone Systems",
@@ -138,7 +138,7 @@ const Resources: React.FC = () => {
type: "Replay",
tag: "Replay",
icon: BookOpenIcon,
color: "from-[#ff7a00] to-[#cc5f00]",
color: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
},
];
@@ -149,7 +149,7 @@ const Resources: React.FC = () => {
type: "Quick-Start",
tags: ["Checklist", "Execution"],
icon: RocketLaunchIcon,
color: "from-[#0693e3] to-[#0472b8]",
color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
},
{
title: "SEO Content Quality Checklist",
@@ -157,7 +157,7 @@ const Resources: React.FC = () => {
type: "Checklist",
tags: ["Checklist", "Execution"],
icon: ClipboardDocumentCheckIcon,
color: "from-[#0bbf87] to-[#08966b]",
color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
},
{
title: "Content Production SOPs Pack",
@@ -165,7 +165,7 @@ const Resources: React.FC = () => {
type: "SOP Pack",
tags: ["Execution", "Prompt Pack"],
icon: ListBulletIcon,
color: "from-[#5d4ae3] to-[#3a2f94]",
color: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
},
{
title: "AI Prompt Library for Content Teams",
@@ -173,7 +173,7 @@ const Resources: React.FC = () => {
type: "Prompt Pack",
tags: ["Prompt Pack", "Execution"],
icon: SparklesIcon,
color: "from-[#ff7a00] to-[#cc5f00]",
color: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
},
];
@@ -196,7 +196,7 @@ const Resources: React.FC = () => {
<div className="flex justify-center">
{renderCta(
{ label: "Explore All Resources", href: "#learn" },
"inline-flex items-center justify-center rounded-xl bg-gradient-to-r from-[#0693e3] to-[#0472b8] text-white px-8 py-4 text-base font-semibold hover:shadow-lg hover:-translate-y-0.5 transition shadow-md"
"inline-flex items-center justify-center rounded-xl bg-gradient-to-r from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] text-white px-8 py-4 text-base font-semibold hover:shadow-lg hover:-translate-y-0.5 transition shadow-md"
)}
</div>
</div>
@@ -235,7 +235,7 @@ const Resources: React.FC = () => {
<p className="text-sm text-slate-600 leading-relaxed flex-1">{resource.description}</p>
<a
href="#"
className="inline-flex items-center gap-2 text-sm font-semibold text-[#0693e3] hover:text-[#0472b8] group"
className="inline-flex items-center gap-2 text-sm font-semibold text-[var(--igny8-blue)] hover:text-[var(--igny8-blue-dark)] group"
>
{resource.type.includes("PDF") ? "Download" : "Read"} {resource.type.toLowerCase().includes("article") ? "article" : "guide"}
<ArrowRightIcon className="h-4 w-4 group-hover:translate-x-1 transition-transform" />
@@ -247,7 +247,7 @@ const Resources: React.FC = () => {
<div className="text-center mt-12">
<a
href="#"
className="inline-flex items-center gap-2 text-base font-semibold text-slate-700 hover:text-[#0693e3] transition"
className="inline-flex items-center gap-2 text-base font-semibold text-slate-700 hover:text-[var(--igny8-blue)] transition"
>
View All Guides
<ArrowRightIcon className="h-5 w-5" />
@@ -270,10 +270,10 @@ const Resources: React.FC = () => {
{buildSystemResources.map((resource, index) => {
const Icon = resource.icon;
const colors = [
"from-[#0693e3]/10 to-white",
"from-[#0bbf87]/10 to-white",
"from-[#5d4ae3]/10 to-white",
"from-[#ff7a00]/10 to-white",
"from-[var(--igny8-blue)]/10 to-white",
"from-[var(--igny8-green)]/10 to-white",
"from-[var(--igny8-purple)]/10 to-white",
"from-[var(--igny8-amber)]/10 to-white",
];
const borders = [
"border-[#0693e3]/30",
@@ -308,7 +308,7 @@ const Resources: React.FC = () => {
<p className="text-sm text-slate-600 leading-relaxed mb-4">{resource.description}</p>
<a
href="#"
className="inline-flex items-center gap-2 text-sm font-semibold text-[#0693e3] hover:text-[#0472b8] group"
className="inline-flex items-center gap-2 text-sm font-semibold text-[var(--igny8-blue)] hover:text-[var(--igny8-blue-dark)] group"
>
<ArrowDownTrayIcon className="h-4 w-4" />
Download {resource.type.toLowerCase()}
@@ -323,7 +323,7 @@ const Resources: React.FC = () => {
<div className="text-center mt-12">
<a
href="#"
className="inline-flex items-center gap-2 text-base font-semibold text-slate-700 hover:text-[#0693e3] transition"
className="inline-flex items-center gap-2 text-base font-semibold text-slate-700 hover:text-[var(--igny8-blue)] transition"
>
Explore Templates
<ArrowRightIcon className="h-5 w-5" />
@@ -347,10 +347,10 @@ const Resources: React.FC = () => {
{attendWatchResources.map((resource, index) => {
const Icon = resource.icon;
const colors = [
"from-[#0693e3]/10 to-white",
"from-[#0bbf87]/10 to-white",
"from-[#5d4ae3]/10 to-white",
"from-[#ff7a00]/10 to-white",
"from-[var(--igny8-blue)]/10 to-white",
"from-[var(--igny8-green)]/10 to-white",
"from-[var(--igny8-purple)]/10 to-white",
"from-[var(--igny8-amber)]/10 to-white",
];
const borders = [
"border-[#0693e3]/30",
@@ -391,8 +391,8 @@ const Resources: React.FC = () => {
<button
className={`inline-flex items-center justify-center gap-2 rounded-xl px-6 py-3 text-sm font-semibold transition ${
resource.tag === "Live"
? "bg-gradient-to-r from-[#0693e3] to-[#0472b8] text-white hover:shadow-lg"
: "border-2 border-slate-300 bg-white text-slate-700 hover:border-[#0693e3] hover:text-[#0693e3]"
? "bg-gradient-to-r from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] text-white hover:shadow-lg"
: "border-2 border-slate-300 bg-white text-slate-700 hover:border-[#0693e3] hover:text-[var(--igny8-blue)]"
}`}
>
{resource.tag === "Live" ? (
@@ -414,7 +414,7 @@ const Resources: React.FC = () => {
<div className="text-center mt-12">
<a
href="#"
className="inline-flex items-center gap-2 text-base font-semibold text-slate-700 hover:text-[#0693e3] transition"
className="inline-flex items-center gap-2 text-base font-semibold text-slate-700 hover:text-[var(--igny8-blue)] transition"
>
View Schedule
<ArrowRightIcon className="h-5 w-5" />
@@ -462,7 +462,7 @@ const Resources: React.FC = () => {
<p className="text-sm text-slate-600 leading-relaxed flex-1">{resource.description}</p>
<a
href="#"
className="inline-flex items-center gap-2 text-sm font-semibold text-[#0693e3] hover:text-[#0472b8] group"
className="inline-flex items-center gap-2 text-sm font-semibold text-[var(--igny8-blue)] hover:text-[var(--igny8-blue-dark)] group"
>
<ArrowDownTrayIcon className="h-4 w-4" />
Download Now
@@ -487,7 +487,7 @@ const Resources: React.FC = () => {
<div>
<a
href="#"
className="inline-flex items-center gap-2 rounded-xl bg-gradient-to-r from-[#0bbf87] to-[#08966b] text-white px-8 py-4 text-base font-semibold hover:shadow-lg hover:-translate-y-0.5 transition shadow-md"
className="inline-flex items-center gap-2 rounded-xl bg-gradient-to-r from-[var(--igny8-green)] to-[var(--igny8-green-dark)] text-white px-8 py-4 text-base font-semibold hover:shadow-lg hover:-translate-y-0.5 transition shadow-md"
>
Browse Toolkits
<ArrowRightIcon className="h-5 w-5" />
@@ -511,7 +511,7 @@ const Resources: React.FC = () => {
href="https://app.igny8.com/signup"
target="_blank"
rel="noreferrer"
className="inline-flex items-center justify-center gap-2 rounded-xl bg-white text-[#0693e3] px-10 py-5 text-lg font-bold hover:bg-white/95 transition shadow-xl hover:shadow-2xl hover:-translate-y-0.5"
className="inline-flex items-center justify-center gap-2 rounded-xl bg-white text-[var(--igny8-blue)] px-10 py-5 text-lg font-bold hover:bg-white/95 transition shadow-xl hover:shadow-2xl hover:-translate-y-0.5"
>
<RocketLaunchIcon className="h-5 w-5" />
Start for $1

View File

@@ -55,11 +55,11 @@ const Solutions: React.FC = () => {
"Keep editors in control with approvals and Thinker playbooks",
"Automate image generation and WordPress publishing by site",
],
color: "from-[#0693e3]/5 to-white",
borderColor: "border-[#0693e3]/20",
iconColor: "from-[#0693e3] to-[#0472b8]",
color: "from-[var(--igny8-blue)]/5 to-white",
borderColor: "border-[var(--igny8-blue)]/20",
iconColor: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
painColor: "bg-rose-500",
outcomeColor: "bg-[#0693e3]",
outcomeColor: "bg-[var(--igny8-blue)]",
},
{
name: "Agencies & Consultancies",
@@ -75,11 +75,11 @@ const Solutions: React.FC = () => {
"Real-time dashboards to prove impact and showcase velocity",
"Reusable Thinker libraries to standardize tone and strategy",
],
color: "from-[#0bbf87]/5 to-white",
borderColor: "border-[#0bbf87]/20",
iconColor: "from-[#0bbf87] to-[#08966b]",
color: "from-[var(--igny8-green)]/5 to-white",
borderColor: "border-[var(--igny8-green)]/20",
iconColor: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
painColor: "bg-rose-500",
outcomeColor: "bg-[#0bbf87]",
outcomeColor: "bg-[var(--igny8-green)]",
},
{
name: "In-house Marketing Teams",
@@ -95,11 +95,11 @@ const Solutions: React.FC = () => {
"Dashboards that unite SEO, writers, designers, and leadership",
"Insights to reallocate focus when campaigns spike or drop",
],
color: "from-[#5d4ae3]/5 to-white",
borderColor: "border-[#5d4ae3]/20",
iconColor: "from-[#5d4ae3] to-[#3a2f94]",
color: "from-[var(--igny8-purple)]/5 to-white",
borderColor: "border-[var(--igny8-purple)]/20",
iconColor: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
painColor: "bg-rose-500",
outcomeColor: "bg-[#5d4ae3]",
outcomeColor: "bg-[var(--igny8-purple)]",
},
];
@@ -108,37 +108,37 @@ const Solutions: React.FC = () => {
title: "Keyword Research",
description: "Discover high-opportunity keywords from a global database with real-time volumes and difficulty scores.",
icon: ChartBarIcon,
color: "from-[#0693e3] to-[#0472b8]",
color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
},
{
title: "Content Briefs",
description: "Generate comprehensive briefs with outlines, talking points, and internal link suggestions.",
icon: DocumentTextIcon,
color: "from-[#0bbf87] to-[#08966b]",
color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
},
{
title: "Content Writing",
description: "Create long-form articles aligned to your brand voice, compliance rules, and target SERP.",
icon: SparklesIcon,
color: "from-[#ff7a00] to-[#cc5f00]",
color: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
},
{
title: "Cluster Analysis",
description: "AI-powered semantic clustering to group related keywords and build topical authority maps.",
icon: UserGroupIcon,
color: "from-[#5d4ae3] to-[#3a2f94]",
color: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
},
{
title: "Image Generation",
description: "AI-generated featured and in-article images based on your content with brand consistency.",
icon: PhotoIcon,
color: "from-[#0693e3] to-[#5d4ae3]",
color: "from-[var(--igny8-blue)] to-[var(--igny8-purple)]",
},
{
title: "Workflow Automation",
description: "End-to-end automation from keywords to published content with intelligent handoffs.",
icon: BoltIcon,
color: "from-[#0bbf87] to-[#0693e3]",
color: "from-[var(--igny8-green)] to-[var(--igny8-blue)]",
},
];
@@ -161,11 +161,11 @@ const Solutions: React.FC = () => {
<div className="flex flex-col sm:flex-row gap-4 justify-center">
{renderCta(
{ label: "See use cases", href: "#use-cases" },
"inline-flex items-center justify-center rounded-xl bg-gradient-to-r from-[#0693e3] to-[#0472b8] text-white px-8 py-4 text-base font-semibold hover:shadow-lg hover:-translate-y-0.5 transition shadow-md"
"inline-flex items-center justify-center rounded-xl bg-gradient-to-r from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] text-white px-8 py-4 text-base font-semibold hover:shadow-lg hover:-translate-y-0.5 transition shadow-md"
)}
{renderCta(
{ label: "Talk to sales", href: "/contact" },
"inline-flex items-center justify-center rounded-xl border-2 border-slate-300 bg-white text-slate-700 px-8 py-4 text-base font-semibold hover:border-[#0693e3] hover:text-[#0693e3] transition"
"inline-flex items-center justify-center rounded-xl border-2 border-slate-300 bg-white text-slate-700 px-8 py-4 text-base font-semibold hover:border-[var(--igny8-blue)] hover:text-[var(--igny8-blue)] transition"
)}
</div>
</div>
@@ -215,8 +215,8 @@ const Solutions: React.FC = () => {
{/* Right: IGNY8 Outcomes */}
<div className="bg-white rounded-2xl border-2 border-slate-200 p-8 shadow-sm">
<div className="flex items-center gap-2 mb-6">
<CheckCircleIcon className={`h-5 w-5 ${persona.outcomeColor === 'bg-[#0693e3]' ? 'text-[#0693e3]' : persona.outcomeColor === 'bg-[#0bbf87]' ? 'text-[#0bbf87]' : 'text-[#5d4ae3]'}`} />
<h4 className={`text-sm uppercase tracking-[0.2em] font-semibold ${persona.outcomeColor === 'bg-[#0693e3]' ? 'text-[#0693e3]' : persona.outcomeColor === 'bg-[#0bbf87]' ? 'text-[#0bbf87]' : 'text-[#5d4ae3]'}`}>
<CheckCircleIcon className={`h-5 w-5 ${persona.outcomeColor === 'bg-[var(--igny8-blue)]' ? 'text-[var(--igny8-blue)]' : persona.outcomeColor === 'bg-[var(--igny8-green)]' ? 'text-[var(--igny8-green)]' : 'text-[var(--igny8-purple)]'}`} />
<h4 className={`text-sm uppercase tracking-[0.2em] font-semibold ${persona.outcomeColor === 'bg-[var(--igny8-blue)]' ? 'text-[var(--igny8-blue)]' : persona.outcomeColor === 'bg-[var(--igny8-green)]' ? 'text-[var(--igny8-green)]' : 'text-[var(--igny8-purple)]'}`}>
IGNY8 Outcomes
</h4>
</div>
@@ -244,24 +244,24 @@ const Solutions: React.FC = () => {
label: "organic lift",
description: "Average lift in organic traffic within 90 days",
icon: ArrowTrendingUpIcon,
color: "from-[#0693e3] to-[#0472b8]",
glow: "shadow-[#0693e3]/30",
color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
glow: "shadow-[var(--igny8-blue)]/30",
},
{
metric: "48%",
label: "reduction in time to publish",
description: "Faster time-to-publish from keyword discovery",
icon: ClockIcon,
color: "from-[#0bbf87] to-[#08966b]",
glow: "shadow-[#0bbf87]/30",
color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
glow: "shadow-[var(--igny8-green)]/30",
},
{
metric: "4 tools",
label: "replaced",
description: "Average number of point solutions replaced by Igny8",
icon: WrenchScrewdriverIcon,
color: "from-[#ff7a00] to-[#cc5f00]",
glow: "shadow-[#ff7a00]/30",
color: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
glow: "shadow-[var(--igny8-amber)]/30",
},
].map((stat, index) => {
const Icon = stat.icon;
@@ -344,7 +344,7 @@ const Solutions: React.FC = () => {
</section>
{/* FINAL CTA */}
<section className="relative overflow-hidden bg-gradient-to-br from-[#0693e3] via-[#5d4ae3] to-[#8b5cf6]">
<section className="relative overflow-hidden bg-gradient-to-br from-[var(--igny8-blue)] via-[var(--igny8-purple)] to-[#8b5cf6]">
{/* Radial glow */}
<div className="absolute inset-0 bg-[radial-gradient(circle_at_50%_50%,rgba(255,255,255,0.1),transparent_70%)]" />
@@ -360,7 +360,7 @@ const Solutions: React.FC = () => {
href="https://app.igny8.com/signup"
target="_blank"
rel="noreferrer"
className="inline-flex items-center justify-center gap-2 rounded-xl bg-white text-[#0693e3] px-10 py-5 text-lg font-bold hover:bg-white/95 transition shadow-xl hover:shadow-2xl hover:-translate-y-0.5"
className="inline-flex items-center justify-center gap-2 rounded-xl bg-white text-[var(--igny8-blue)] px-10 py-5 text-lg font-bold hover:bg-white/95 transition shadow-xl hover:shadow-2xl hover:-translate-y-0.5"
>
<RocketLaunchIcon className="h-5 w-5" />
Start free

View File

@@ -38,7 +38,7 @@ const Tour: React.FC = () => {
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-2 border-[#0693e3]/30 bg-gradient-to-br from-[#0693e3]/10 via-white to-[#0bbf87]/5 p-8 shadow-lg">
<div className="rounded-3xl border-2 border-[var(--igny8-blue)]/30 bg-gradient-to-br from-[var(--igny8-blue)]/10 via-white to-[var(--igny8-green)]/5 p-8 shadow-lg">
<div className="aspect-video rounded-2xl border-2 border-slate-200 bg-gradient-to-br from-slate-50 to-white flex items-center justify-center text-slate-500 text-sm shadow-inner">
Video walkthrough placeholder (embed demo or Loom)
</div>
@@ -48,9 +48,9 @@ const Tour: React.FC = () => {
<section className="max-w-6xl mx-auto px-6 pb-24 space-y-12">
{tourSteps.map((step, index) => {
const colors = [
{ border: "border-[#0693e3]/40", gradient: "from-[#0693e3]/10 to-white", dot: "bg-[#0693e3]" },
{ border: "border-[#0bbf87]/40", gradient: "from-[#0bbf87]/10 to-white", dot: "bg-[#0bbf87]" },
{ border: "border-[#ff7a00]/40", gradient: "from-[#ff7a00]/10 to-white", dot: "bg-[#ff7a00]" },
{ border: "border-[var(--igny8-blue)]/40", gradient: "from-[var(--igny8-blue)]/10 to-white", dot: "bg-[var(--igny8-blue)]" },
{ border: "border-[var(--igny8-green)]/40", gradient: "from-[var(--igny8-green)]/10 to-white", dot: "bg-[var(--igny8-green)]" },
{ border: "border-[var(--igny8-amber)]/40", gradient: "from-[var(--igny8-amber)]/10 to-white", dot: "bg-[var(--igny8-amber)]" },
{ border: "border-[#5d4ae3]/40", gradient: "from-[#5d4ae3]/10 to-white", dot: "bg-[#5d4ae3]" },
];
const colorScheme = colors[index % colors.length];
@@ -79,7 +79,7 @@ const Tour: React.FC = () => {
})}
</section>
<section className="bg-gradient-to-br from-[#0693e3]/10 via-slate-50/70 to-[#0bbf87]/10 border-y border-[#0693e3]/20">
<section className="bg-gradient-to-br from-[var(--igny8-blue)]/10 via-slate-50/70 to-[#0bbf87]/10 border-y border-[#0693e3]/20">
<div className="max-w-6xl mx-auto px-6 py-24 space-y-10">
<SectionHeading
eyebrow="Automation recipes"
@@ -88,12 +88,12 @@ const Tour: React.FC = () => {
/>
<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", color: "border-[#0693e3]/40", gradient: "from-[#0693e3]/10 to-white" },
{ name: "Ideas → Tasks", time: "Daily", highlight: "Staff writers automatically", color: "border-[#0bbf87]/40", gradient: "from-[#0bbf87]/10 to-white" },
{ name: "Tasks → Content", time: "Hourly", highlight: "Generate & queue drafts", color: "border-[#ff7a00]/40", gradient: "from-[#ff7a00]/10 to-white" },
{ name: "Keywords → Ideas", time: "Nightly", highlight: "Targets new opportunities", color: "border-[var(--igny8-blue)]/40", gradient: "from-[var(--igny8-blue)]/10 to-white" },
{ name: "Ideas → Tasks", time: "Daily", highlight: "Staff writers automatically", color: "border-[var(--igny8-green)]/40", gradient: "from-[var(--igny8-green)]/10 to-white" },
{ name: "Tasks → Content", time: "Hourly", highlight: "Generate & queue drafts", color: "border-[var(--igny8-amber)]/40", gradient: "from-[var(--igny8-amber)]/10 to-white" },
{ name: "Content → Images", time: "On approval", highlight: "Produce branded visuals", color: "border-[#5d4ae3]/40", gradient: "from-[#5d4ae3]/10 to-white" },
{ name: "Content → WordPress", time: "Manual launch", highlight: "One-click publish", color: "border-[#0693e3]/40", gradient: "from-[#0693e3]/10 to-white" },
{ name: "SERP Win/Loss Alerts", time: "Real-time", highlight: "Trigger optimizations", color: "border-[#0bbf87]/40", gradient: "from-[#0bbf87]/10 to-white" },
{ name: "Content → WordPress", time: "Manual launch", highlight: "One-click publish", color: "border-[var(--igny8-blue)]/40", gradient: "from-[var(--igny8-blue)]/10 to-white" },
{ name: "SERP Win/Loss Alerts", time: "Real-time", highlight: "Trigger optimizations", color: "border-[var(--igny8-green)]/40", gradient: "from-[var(--igny8-green)]/10 to-white" },
].map((recipe) => (
<div
key={recipe.name}

View File

@@ -29,9 +29,9 @@ 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-2 border-[#0693e3]/30 bg-gradient-to-br from-[#0693e3]/10 via-white to-[#0bbf87]/5 p-10 space-y-6 shadow-lg">
<div className="rounded-3xl border-2 border-[var(--igny8-blue)]/30 bg-gradient-to-br from-[var(--igny8-blue)]/10 via-white to-[var(--igny8-green)]/5 p-10 space-y-6 shadow-lg">
<h3 className="text-lg font-semibold text-slate-900 flex items-center gap-2">
<span className="size-2 rounded-full bg-[#0693e3]"></span>
<span className="size-2 rounded-full bg-[var(--igny8-blue)]"></span>
Join the waitlist
</h3>
<p className="text-sm text-slate-600">
@@ -41,17 +41,17 @@ const Waitlist: React.FC = () => {
<input
type="text"
placeholder="Name"
className="w-full rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[#0693e3] focus:ring-2 focus:ring-[#0693e3]/20"
className="w-full rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[var(--igny8-blue)] focus:ring-2 focus:ring-[var(--igny8-blue)]/20"
/>
<input
type="email"
placeholder="Work email"
className="w-full rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[#0693e3] focus:ring-2 focus:ring-[#0693e3]/20"
className="w-full rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[var(--igny8-blue)] focus:ring-2 focus:ring-[var(--igny8-blue)]/20"
/>
<textarea
rows={4}
placeholder="Tell us about your current workflow and why you're excited."
className="w-full rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[#0693e3] focus:ring-2 focus:ring-[#0693e3]/20 resize-none"
className="w-full rounded-xl border-2 border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-500 focus:outline-none focus:border-[var(--igny8-blue)] focus:ring-2 focus:ring-[var(--igny8-blue)]/20 resize-none"
/>
<button
type="submit"
@@ -70,7 +70,7 @@ const Waitlist: React.FC = () => {
</h4>
<ul className="space-y-3 text-sm text-slate-600">
{roadmapItems.map((item, idx) => {
const colors = ["bg-[#0693e3]", "bg-[#0bbf87]", "bg-[#ff7a00]"];
const colors = ["bg-[var(--igny8-blue)]", "bg-[#0bbf87]", "bg-[#ff7a00]"];
return (
<li key={item.title} className="flex gap-3">
<span className={`mt-1 size-1.5 rounded-full ${colors[idx % colors.length]} shadow-sm`} />

View File

@@ -123,7 +123,7 @@ export default function AutomationDashboard() {
nextRun: "4 hours",
coverage: 85,
icon: PaperPlaneIcon,
color: "from-[#5d4ae3] to-[#3a2f94]",
color: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
},
{
id: 2,
@@ -135,7 +135,7 @@ export default function AutomationDashboard() {
nextRun: "2 hours",
coverage: 92,
icon: FileTextIcon,
color: "from-[#0bbf87] to-[#08966b]",
color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
},
{
id: 3,
@@ -147,7 +147,7 @@ export default function AutomationDashboard() {
nextRun: "3 hours",
coverage: 78,
icon: ListIcon,
color: "from-[#0693e3] to-[#0472b8]",
color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
},
];
@@ -225,7 +225,7 @@ export default function AutomationDashboard() {
position: "top",
labels: { colors: "#6b7280" },
},
colors: ["#0693e3", "#0bbf87", "#5d4ae3"],
colors: ["var(--igny8-blue)", "var(--igny8-green)", "var(--igny8-purple)"],
grid: {
borderColor: "#e5e7eb",
},
@@ -319,7 +319,7 @@ export default function AutomationDashboard() {
</div>
<div className="flex items-center justify-between text-xs text-slate-600">
<span>Next Run:</span>
<span className="font-semibold text-[#0693e3]">{workflow.nextRun}</span>
<span className="font-semibold text-[var(--igny8-blue)]">{workflow.nextRun}</span>
</div>
</div>
<div className="mb-4">
@@ -334,7 +334,7 @@ export default function AutomationDashboard() {
<CloseIcon className="h-4 w-4" />
Pause
</button>
<button className="flex-1 inline-flex items-center justify-center gap-2 rounded-lg bg-gradient-to-r from-[#0693e3] to-[#0472b8] text-white px-4 py-2 text-sm font-semibold hover:shadow-lg transition">
<button className="flex-1 inline-flex items-center justify-center gap-2 rounded-lg bg-gradient-to-r from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] text-white px-4 py-2 text-sm font-semibold hover:shadow-lg transition">
<PaperPlaneIcon className="h-4 w-4" />
Run Now
</button>
@@ -360,14 +360,14 @@ export default function AutomationDashboard() {
<div className="flex items-center justify-between mb-3">
<div className={`inline-flex size-10 rounded-lg bg-gradient-to-br ${
isEnabled
? "from-[#0bbf87] to-[#08966b]"
? "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]"
: "from-slate-300 to-slate-400"
} items-center justify-center text-white shadow-md`}>
<Icon className="h-5 w-5" />
</div>
<div className={`size-5 rounded-full border-2 flex items-center justify-center ${
isEnabled
? "border-[#0bbf87] bg-[#0bbf87]"
? "border-[var(--igny8-green)] bg-[var(--igny8-green)]"
: "border-slate-300 bg-white"
}`}>
{isEnabled && <CheckCircleIcon className="h-3 w-3 text-white" />}
@@ -375,7 +375,7 @@ export default function AutomationDashboard() {
</div>
<h4 className="font-semibold text-slate-900 mb-1">{step.step}</h4>
<p className="text-xs text-slate-600">{step.description}</p>
<div className="mt-3 flex items-center gap-1 text-xs text-[#0693e3] opacity-0 group-hover:opacity-100 transition">
<div className="mt-3 flex items-center gap-1 text-xs text-[var(--igny8-blue)] opacity-0 group-hover:opacity-100 transition">
<span>Configure</span>
<ArrowRightIcon className="h-3 w-3" />
</div>
@@ -401,7 +401,7 @@ export default function AutomationDashboard() {
key={activity.id}
className="flex items-center gap-4 p-4 rounded-lg border border-slate-200 bg-white"
>
<div className="size-10 rounded-lg bg-gradient-to-br from-[#0693e3] to-[#0472b8] flex items-center justify-center text-white shadow-md">
<div className="size-10 rounded-lg bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] flex items-center justify-center text-white shadow-md">
<BoltIcon className="h-5 w-5" />
</div>
<div className="flex-1">
@@ -434,21 +434,21 @@ export default function AutomationDashboard() {
onClick={() => navigate("/planner/keyword-opportunities")}
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#0693e3] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[#0693e3] to-[#0472b8] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] flex items-center justify-center text-white shadow-lg">
<ListIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
<h4 className="font-semibold text-slate-900 mb-1">Run Planner Workflow</h4>
<p className="text-sm text-slate-600">Keywords Clusters Ideas</p>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[#0693e3] transition" />
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--igny8-blue)] transition" />
</button>
<button
onClick={() => navigate("/writer/tasks")}
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#0bbf87] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[#0bbf87] to-[#08966b] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-green)] to-[var(--igny8-green-dark)] flex items-center justify-center text-white shadow-lg">
<FileTextIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
@@ -462,7 +462,7 @@ export default function AutomationDashboard() {
onClick={() => navigate("/writer/published")}
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#5d4ae3] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[#5d4ae3] to-[#3a2f94] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)] flex items-center justify-center text-white shadow-lg">
<PaperPlaneIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">

View File

@@ -125,7 +125,7 @@ export default function Home() {
title: "Planner",
description: "Keyword research, clustering, and content planning",
icon: PieChartIcon,
color: "from-[#0693e3] to-[#0472b8]",
color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
path: "/planner",
count: insights?.totalClusters || 0,
status: "active",
@@ -135,7 +135,7 @@ export default function Home() {
title: "Writer",
description: "AI content generation, editing, and publishing",
icon: PencilIcon,
color: "from-[#0bbf87] to-[#08966b]",
color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
path: "/writer",
count: insights?.totalContent || 0,
status: "active",
@@ -145,7 +145,7 @@ export default function Home() {
title: "Thinker",
description: "Prompts, author profiles, and content strategies",
icon: BoltIcon,
color: "from-[#ff7a00] to-[#cc5f00]",
color: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
path: "/thinker",
count: 0,
status: "active",
@@ -155,7 +155,7 @@ export default function Home() {
title: "Automation",
description: "Workflow automation and scheduled tasks",
icon: PlugInIcon,
color: "from-[#5d4ae3] to-[#3a2f94]",
color: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
path: "/automation",
count: 0,
status: "active",
@@ -272,7 +272,7 @@ export default function Home() {
position: "top",
labels: { colors: "#6b7280" },
},
colors: ["#0693e3", "#0bbf87", "#5d4ae3"],
colors: ["var(--igny8-blue)", "var(--igny8-green)", "var(--igny8-purple)"],
grid: {
borderColor: "#e5e7eb",
},
@@ -421,7 +421,7 @@ export default function Home() {
<div className="text-2xl font-bold text-slate-900">{module.count}</div>
<div className="text-xs text-slate-500">{module.metric}</div>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[#0693e3] group-hover:translate-x-1 transition" />
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--igny8-blue)] group-hover:translate-x-1 transition" />
</div>
</Link>
);
@@ -510,23 +510,23 @@ export default function Home() {
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
<Link
to="/planner/keyword-opportunities"
className="flex items-center gap-4 p-4 rounded-lg border-2 border-slate-200 bg-white hover:border-[#0693e3] hover:shadow-md transition group"
className="flex items-center gap-4 p-4 rounded-lg border-2 border-slate-200 bg-white hover:border-[var(--igny8-blue)] hover:shadow-md transition group"
>
<div className="size-12 rounded-lg bg-gradient-to-br from-[#0693e3] to-[#0472b8] flex items-center justify-center text-white">
<div className="size-12 rounded-lg bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] flex items-center justify-center text-white">
<ListIcon className="h-6 w-6" />
</div>
<div className="flex-1">
<h4 className="font-semibold text-slate-900">Add Keywords</h4>
<p className="text-xs text-slate-600">Discover new opportunities</p>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[#0693e3] transition" />
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--igny8-blue)] transition" />
</Link>
<Link
to="/writer/tasks"
className="flex items-center gap-4 p-4 rounded-lg border-2 border-slate-200 bg-white hover:border-[#0bbf87] hover:shadow-md transition group"
>
<div className="size-12 rounded-lg bg-gradient-to-br from-[#0bbf87] to-[#08966b] flex items-center justify-center text-white">
<div className="size-12 rounded-lg bg-gradient-to-br from-[var(--igny8-green)] to-[var(--igny8-green-dark)] flex items-center justify-center text-white">
<FileTextIcon className="h-6 w-6" />
</div>
<div className="flex-1">
@@ -540,7 +540,7 @@ export default function Home() {
to="/automation"
className="flex items-center gap-4 p-4 rounded-lg border-2 border-slate-200 bg-white hover:border-[#5d4ae3] hover:shadow-md transition group"
>
<div className="size-12 rounded-lg bg-gradient-to-br from-[#5d4ae3] to-[#3a2f94] flex items-center justify-center text-white">
<div className="size-12 rounded-lg bg-gradient-to-br from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)] flex items-center justify-center text-white">
<PlugInIcon className="h-6 w-6" />
</div>
<div className="flex-1">
@@ -554,7 +554,7 @@ export default function Home() {
to="/thinker/prompts"
className="flex items-center gap-4 p-4 rounded-lg border-2 border-slate-200 bg-white hover:border-[#ff7a00] hover:shadow-md transition group"
>
<div className="size-12 rounded-lg bg-gradient-to-br from-[#ff7a00] to-[#cc5f00] flex items-center justify-center text-white">
<div className="size-12 rounded-lg bg-gradient-to-br from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)] flex items-center justify-center text-white">
<BoltIcon className="h-6 w-6" />
</div>
<div className="flex-1">

View File

@@ -192,7 +192,7 @@ export default function PlannerDashboard() {
title: "Keywords",
description: "Manage and discover keywords",
icon: ListIcon,
color: "from-[#0693e3] to-[#0472b8]",
color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
path: "/planner/keywords",
count: stats?.keywords.total || 0,
metric: `${stats?.keywords.mapped || 0} mapped`,
@@ -201,7 +201,7 @@ export default function PlannerDashboard() {
title: "Clusters",
description: "Keyword clusters and groups",
icon: GroupIcon,
color: "from-[#0bbf87] to-[#08966b]",
color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
path: "/planner/clusters",
count: stats?.clusters.total || 0,
metric: `${stats?.clusters.totalVolume.toLocaleString() || 0} volume`,
@@ -210,7 +210,7 @@ export default function PlannerDashboard() {
title: "Ideas",
description: "Content ideas and concepts",
icon: BoltIcon,
color: "from-[#ff7a00] to-[#cc5f00]",
color: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
path: "/planner/ideas",
count: stats?.ideas.total || 0,
metric: `${stats?.ideas.queued || 0} queued`,
@@ -219,7 +219,7 @@ export default function PlannerDashboard() {
title: "Keyword Opportunities",
description: "Discover new keyword opportunities",
icon: PieChartIcon,
color: "from-[#5d4ae3] to-[#3a2f94]",
color: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
path: "/planner/keyword-opportunities",
count: 0,
metric: "Discover new keywords",
@@ -275,7 +275,7 @@ export default function PlannerDashboard() {
position: "top",
labels: { colors: "#6b7280" },
},
colors: ["#0693e3", "#0bbf87", "#ff7a00"],
colors: ["var(--igny8-blue)", "var(--igny8-green)", "var(--igny8-amber)"],
grid: {
borderColor: "#e5e7eb",
},
@@ -522,7 +522,7 @@ export default function PlannerDashboard() {
<div className="text-2xl font-bold text-slate-900">{module.count}</div>
<div className="text-xs text-slate-500">{module.metric}</div>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[#0693e3] group-hover:translate-x-1 transition" />
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--igny8-blue)] group-hover:translate-x-1 transition" />
</div>
</Link>
);
@@ -636,23 +636,23 @@ export default function PlannerDashboard() {
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
<Link
to="/planner/keyword-opportunities"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#0693e3] hover:shadow-lg transition-all group"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[var(--igny8-blue)] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[#0693e3] to-[#0472b8] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] flex items-center justify-center text-white shadow-lg">
<ListIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
<h4 className="font-semibold text-slate-900 mb-1">Add Keywords</h4>
<p className="text-sm text-slate-600">Discover opportunities</p>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[#0693e3] transition" />
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--igny8-blue)] transition" />
</Link>
<Link
to="/planner/clusters"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#0bbf87] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[#0bbf87] to-[#08966b] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-green)] to-[var(--igny8-green-dark)] flex items-center justify-center text-white shadow-lg">
<GroupIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
@@ -666,7 +666,7 @@ export default function PlannerDashboard() {
to="/planner/ideas"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#ff7a00] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[#ff7a00] to-[#cc5f00] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)] flex items-center justify-center text-white shadow-lg">
<BoltIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
@@ -680,7 +680,7 @@ export default function PlannerDashboard() {
to="/automation"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#5d4ae3] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[#5d4ae3] to-[#3a2f94] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)] flex items-center justify-center text-white shadow-lg">
<PlugInIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
@@ -697,7 +697,7 @@ export default function PlannerDashboard() {
<ComponentCard title="How Planner Works" desc="Understanding the planning workflow">
<div className="space-y-4">
<div className="flex gap-4">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[#0693e3] to-[#0472b8] flex items-center justify-center text-white shadow-md">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] flex items-center justify-center text-white shadow-md">
<ListIcon className="h-5 w-5" />
</div>
<div>
@@ -708,7 +708,7 @@ export default function PlannerDashboard() {
</div>
</div>
<div className="flex gap-4">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[#0bbf87] to-[#08966b] flex items-center justify-center text-white shadow-md">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[var(--igny8-green)] to-[var(--igny8-green-dark)] flex items-center justify-center text-white shadow-md">
<GroupIcon className="h-5 w-5" />
</div>
<div>
@@ -719,7 +719,7 @@ export default function PlannerDashboard() {
</div>
</div>
<div className="flex gap-4">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[#ff7a00] to-[#cc5f00] flex items-center justify-center text-white shadow-md">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)] flex items-center justify-center text-white shadow-md">
<BoltIcon className="h-5 w-5" />
</div>
<div>

View File

@@ -67,7 +67,7 @@ export default function ThinkerDashboard() {
title: "Prompt Library",
description: "Centralized prompt templates and AI instructions",
icon: FileTextIcon,
color: "from-[#ff7a00] to-[#cc5f00]",
color: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
path: "/thinker/prompts",
count: stats?.totalPrompts || 0,
status: "active",
@@ -76,7 +76,7 @@ export default function ThinkerDashboard() {
title: "Author Profiles",
description: "Voice templates and writing style guides",
icon: UserIcon,
color: "from-[#0693e3] to-[#0472b8]",
color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
path: "/thinker/profiles",
count: stats?.activeProfiles || 0,
status: "active",
@@ -85,7 +85,7 @@ export default function ThinkerDashboard() {
title: "Content Strategies",
description: "Brand playbooks and content frameworks",
icon: ShootingStarIcon,
color: "from-[#5d4ae3] to-[#3a2f94]",
color: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
path: "/thinker/strategies",
count: stats?.strategies || 0,
status: "active",
@@ -94,7 +94,7 @@ export default function ThinkerDashboard() {
title: "Governance",
description: "Track AI usage, compliance, and version control",
icon: PieChartIcon,
color: "from-[#0bbf87] to-[#08966b]",
color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
path: "/thinker/governance",
count: 0,
status: "coming-soon",
@@ -131,7 +131,7 @@ export default function ThinkerDashboard() {
height: 300,
},
labels: ["Content Generation", "Content Planning", "Image Prompts", "Other"],
colors: ["#ff7a00", "#0693e3", "#5d4ae3", "#0bbf87"],
colors: ["var(--igny8-amber)", "var(--igny8-blue)", "var(--igny8-purple)", "var(--igny8-green)"],
legend: {
position: "bottom",
labels: { colors: "#6b7280" },
@@ -208,7 +208,7 @@ export default function ThinkerDashboard() {
{module.count > 0 && (
<div className="flex items-center justify-between">
<span className="text-2xl font-bold text-slate-900">{module.count}</span>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[#0693e3] group-hover:translate-x-1 transition" />
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--igny8-blue)] group-hover:translate-x-1 transition" />
</div>
)}
{module.status === "coming-soon" && (
@@ -237,13 +237,13 @@ export default function ThinkerDashboard() {
key={prompt.id}
className="flex items-center gap-4 p-4 rounded-lg border border-slate-200 bg-white hover:shadow-md transition"
>
<div className="size-10 rounded-lg bg-gradient-to-br from-[#ff7a00] to-[#cc5f00] flex items-center justify-center text-white shadow-md">
<div className="size-10 rounded-lg bg-gradient-to-br from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)] flex items-center justify-center text-white shadow-md">
<FileTextIcon className="h-5 w-5" />
</div>
<div className="flex-1">
<div className="flex items-center justify-between mb-1">
<h4 className="font-semibold text-slate-900">{prompt.name}</h4>
<span className="text-xs font-semibold text-[#0693e3]">{prompt.usage} uses</span>
<span className="text-xs font-semibold text-[var(--igny8-blue)]">{prompt.usage} uses</span>
</div>
<div className="flex items-center gap-3 text-xs text-slate-600">
<span>{prompt.category}</span>
@@ -262,9 +262,9 @@ export default function ThinkerDashboard() {
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<button
onClick={() => navigate("/thinker/prompts")}
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#ff7a00] hover:shadow-lg transition-all group"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[var(--igny8-amber)] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[#ff7a00] to-[#cc5f00] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)] flex items-center justify-center text-white shadow-lg">
<PlusIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
@@ -278,21 +278,21 @@ export default function ThinkerDashboard() {
onClick={() => navigate("/thinker/profiles")}
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#0693e3] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[#0693e3] to-[#0472b8] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] flex items-center justify-center text-white shadow-lg">
<PlusIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
<h4 className="font-semibold text-slate-900 mb-1">New Author Profile</h4>
<p className="text-sm text-slate-600">Define a writing voice and style</p>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[#0693e3] transition" />
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--igny8-blue)] transition" />
</button>
<button
onClick={() => navigate("/thinker/strategies")}
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#5d4ae3] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[#5d4ae3] to-[#3a2f94] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)] flex items-center justify-center text-white shadow-lg">
<PlusIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
@@ -309,7 +309,7 @@ export default function ThinkerDashboard() {
<ComponentCard title="How Thinker Works" desc="Understanding the strategic OS">
<div className="space-y-4">
<div className="flex gap-4">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[#ff7a00] to-[#cc5f00] flex items-center justify-center text-white shadow-md">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)] flex items-center justify-center text-white shadow-md">
<BoltIcon className="h-5 w-5" />
</div>
<div>
@@ -320,7 +320,7 @@ export default function ThinkerDashboard() {
</div>
</div>
<div className="flex gap-4">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[#0693e3] to-[#0472b8] flex items-center justify-center text-white shadow-md">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] flex items-center justify-center text-white shadow-md">
<CheckCircleIcon className="h-5 w-5" />
</div>
<div>
@@ -331,7 +331,7 @@ export default function ThinkerDashboard() {
</div>
</div>
<div className="flex gap-4">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[#0bbf87] to-[#08966b] flex items-center justify-center text-white shadow-md">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[var(--igny8-green)] to-[var(--igny8-green-dark)] flex items-center justify-center text-white shadow-md">
<ShootingStarIcon className="h-5 w-5" />
</div>
<div>

View File

@@ -207,7 +207,7 @@ export default function WriterDashboard() {
title: "Tasks",
description: "Content writing tasks and assignments",
icon: FileTextIcon,
color: "from-[#0693e3] to-[#0472b8]",
color: "from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)]",
path: "/writer/tasks",
count: stats?.tasks.total || 0,
metric: `${stats?.tasks.completed || 0} completed`,
@@ -216,7 +216,7 @@ export default function WriterDashboard() {
title: "Content",
description: "Generated content and drafts",
icon: PencilIcon,
color: "from-[#0bbf87] to-[#08966b]",
color: "from-[var(--igny8-green)] to-[var(--igny8-green-dark)]",
path: "/writer/content",
count: stats?.content.total || 0,
metric: `${stats?.content.published || 0} published`,
@@ -225,7 +225,7 @@ export default function WriterDashboard() {
title: "Images",
description: "Generated images and assets",
icon: BoxIcon,
color: "from-[#ff7a00] to-[#cc5f00]",
color: "from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)]",
path: "/writer/images",
count: stats?.images.generated || 0,
metric: `${stats?.images.pending || 0} pending`,
@@ -234,7 +234,7 @@ export default function WriterDashboard() {
title: "Published",
description: "Published content and posts",
icon: PaperPlaneIcon,
color: "from-[#5d4ae3] to-[#3a2f94]",
color: "from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)]",
path: "/writer/published",
count: stats?.content.published || 0,
metric: "View all published",
@@ -290,7 +290,7 @@ export default function WriterDashboard() {
position: "top",
labels: { colors: "#6b7280" },
},
colors: ["#0693e3", "#0bbf87", "#ff7a00"],
colors: ["var(--igny8-blue)", "var(--igny8-green)", "var(--igny8-amber)"],
grid: {
borderColor: "#e5e7eb",
},
@@ -530,7 +530,7 @@ export default function WriterDashboard() {
<div className="text-2xl font-bold text-slate-900">{module.count}</div>
<div className="text-xs text-slate-500">{module.metric}</div>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[#0693e3] group-hover:translate-x-1 transition" />
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--igny8-blue)] group-hover:translate-x-1 transition" />
</div>
</Link>
);
@@ -650,23 +650,23 @@ export default function WriterDashboard() {
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
<Link
to="/writer/tasks"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#0693e3] hover:shadow-lg transition-all group"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[var(--igny8-blue)] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[#0693e3] to-[#0472b8] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] flex items-center justify-center text-white shadow-lg">
<FileTextIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
<h4 className="font-semibold text-slate-900 mb-1">Create Task</h4>
<p className="text-sm text-slate-600">New writing task</p>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[#0693e3] transition" />
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--igny8-blue)] transition" />
</Link>
<Link
to="/writer/content"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#0bbf87] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[#0bbf87] to-[#08966b] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-green)] to-[var(--igny8-green-dark)] flex items-center justify-center text-white shadow-lg">
<PencilIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
@@ -680,7 +680,7 @@ export default function WriterDashboard() {
to="/writer/images"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#ff7a00] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[#ff7a00] to-[#cc5f00] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)] flex items-center justify-center text-white shadow-lg">
<BoxIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
@@ -694,7 +694,7 @@ export default function WriterDashboard() {
to="/writer/published"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#5d4ae3] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[#5d4ae3] to-[#3a2f94] flex items-center justify-center text-white shadow-lg">
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--igny8-purple)] to-[var(--igny8-purple-dark)] flex items-center justify-center text-white shadow-lg">
<PaperPlaneIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
@@ -711,7 +711,7 @@ export default function WriterDashboard() {
<ComponentCard title="How Writer Works" desc="Understanding the content creation workflow">
<div className="space-y-4">
<div className="flex gap-4">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[#0693e3] to-[#0472b8] flex items-center justify-center text-white shadow-md">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[var(--igny8-blue)] to-[var(--igny8-blue-dark)] flex items-center justify-center text-white shadow-md">
<FileTextIcon className="h-5 w-5" />
</div>
<div>
@@ -722,7 +722,7 @@ export default function WriterDashboard() {
</div>
</div>
<div className="flex gap-4">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[#0bbf87] to-[#08966b] flex items-center justify-center text-white shadow-md">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[var(--igny8-green)] to-[var(--igny8-green-dark)] flex items-center justify-center text-white shadow-md">
<PencilIcon className="h-5 w-5" />
</div>
<div>
@@ -733,7 +733,7 @@ export default function WriterDashboard() {
</div>
</div>
<div className="flex gap-4">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[#ff7a00] to-[#cc5f00] flex items-center justify-center text-white shadow-md">
<div className="flex-shrink-0 size-10 rounded-lg bg-gradient-to-br from-[var(--igny8-amber)] to-[var(--igny8-amber-dark)] flex items-center justify-center text-white shadow-md">
<BoxIcon className="h-5 w-5" />
</div>
<div>

View File

@@ -125,6 +125,16 @@
.igny8-gradient-purple { background: var(--igny8-gradient-purple); }
.igny8-gradient-panel { background: var(--igny8-gradient-panel); }
/* === Tailwind Gradient Utilities (for use with bg-gradient-to-*) === */
.igny8-from-blue { --tw-gradient-from: var(--igny8-blue); --tw-gradient-to: var(--igny8-blue-dark); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.igny8-to-blue-dark { --tw-gradient-to: var(--igny8-blue-dark); }
.igny8-from-green { --tw-gradient-from: var(--igny8-green); --tw-gradient-to: var(--igny8-green-dark); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.igny8-to-green-dark { --tw-gradient-to: var(--igny8-green-dark); }
.igny8-from-amber { --tw-gradient-from: var(--igny8-amber); --tw-gradient-to: var(--igny8-amber-dark); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.igny8-to-amber-dark { --tw-gradient-to: var(--igny8-amber-dark); }
.igny8-from-purple { --tw-gradient-from: var(--igny8-purple); --tw-gradient-to: var(--igny8-purple-dark); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.igny8-to-purple-dark { --tw-gradient-to: var(--igny8-purple-dark); }
/* === Border Radius === */
.igny8-rounded { border-radius: var(--igny8-radius); }
.igny8-rounded-xl { border-radius: calc(var(--igny8-radius) * 2); }