From abf62a75254867332b193e4da00979ada5fbe8eb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 9 Nov 2025 09:20:38 +0000 Subject: [PATCH 1/3] Initial plan From 2ede70ffc29521b8834519f87add63a100849e25 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 9 Nov 2025 09:25:11 +0000 Subject: [PATCH 2/3] Redesign Key Features section with hierarchical layout and updated copy Co-authored-by: haoqi-shen <145812960+haoqi-shen@users.noreply.github.com> --- src/App.css | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++-- src/App.jsx | 35 +++++++----- 2 files changed, 172 insertions(+), 20 deletions(-) diff --git a/src/App.css b/src/App.css index c50bddc..877e13d 100644 --- a/src/App.css +++ b/src/App.css @@ -178,7 +178,18 @@ /* Features Section */ .features { padding: 100px 0; - background: #f9fafb; + background: linear-gradient(135deg, #f9fafb 0%, #ffffff 50%, #f9fafb 100%); + position: relative; +} + +.features::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 1px; + background: linear-gradient(90deg, transparent, #e5e7eb 50%, transparent); } .section-title { @@ -198,9 +209,91 @@ font-weight: 400; } +/* Hero Feature - Highlighted Main Feature */ +.hero-feature { + display: flex; + justify-content: center; + margin: 3rem 0 2.5rem; + animation: fadeInUp 0.6s ease-out; +} + +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.hero-feature-card { + max-width: 700px; + width: 100%; + padding: 3rem; + background: white; + border-radius: 12px; + text-align: center; + border: 2px solid #e5e7eb; + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); + transition: all 0.3s ease; + position: relative; + overflow: hidden; +} + +.hero-feature-card::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 4px; + background: linear-gradient(90deg, #111827, #4b5563, #111827); +} + +.hero-feature-card:hover { + transform: translateY(-4px); + box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12); + border-color: #d1d5db; +} + +.hero-feature-icon { + font-size: 4rem; + margin-bottom: 1.5rem; + display: inline-block; + animation: pulse 2s ease-in-out infinite; +} + +@keyframes pulse { + 0%, 100% { + transform: scale(1); + } + 50% { + transform: scale(1.05); + } +} + +.hero-feature-card h3 { + font-size: 1.75rem; + margin-bottom: 1rem; + color: #111827; + font-weight: 700; + letter-spacing: -0.02em; +} + +.hero-feature-card p { + color: #6b7280; + line-height: 1.7; + font-size: 1.1rem; + max-width: 600px; + margin: 0 auto; +} + +/* Supporting Features Grid */ .features-grid { display: grid; - grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; margin-top: 3rem; } @@ -208,18 +301,40 @@ .feature-card { padding: 2rem; background: white; - border-radius: 8px; - transition: box-shadow 0.2s; + border-radius: 10px; + transition: all 0.3s ease; border: 1px solid #e5e7eb; + animation: fadeInUp 0.6s ease-out; + animation-fill-mode: both; +} + +.feature-card:nth-child(1) { + animation-delay: 0.1s; +} + +.feature-card:nth-child(2) { + animation-delay: 0.2s; +} + +.feature-card:nth-child(3) { + animation-delay: 0.3s; } .feature-card:hover { - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); + transform: translateY(-6px); + box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1); + border-color: #d1d5db; } .feature-icon { font-size: 2.5rem; margin-bottom: 1.25rem; + display: inline-block; + transition: transform 0.3s ease; +} + +.feature-card:hover .feature-icon { + transform: scale(1.1) rotate(5deg); } .feature-card h3 { @@ -685,6 +800,22 @@ font-size: 1.2rem; } + .hero-feature-card { + padding: 2rem; + } + + .hero-feature-icon { + font-size: 3rem; + } + + .hero-feature-card h3 { + font-size: 1.5rem; + } + + .hero-feature-card p { + font-size: 1rem; + } + .about-content { grid-template-columns: 1fr; } @@ -726,4 +857,20 @@ .section-title { font-size: 2rem; } + + .hero-feature-card { + padding: 1.5rem; + } + + .hero-feature-icon { + font-size: 2.5rem; + } + + .hero-feature-card h3 { + font-size: 1.25rem; + } + + .hero-feature-card p { + font-size: 0.95rem; + } } diff --git a/src/App.jsx b/src/App.jsx index af228b4..1bead99 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -69,36 +69,41 @@ function App() {

Key Features

-
-
-
🧩
-

Stylometric DNA

+ + {/* Hero Feature - Hybrid ML Architecture */} +
+
+
🧠
+

Hybrid ML Architecture

- Analyzes linguistic patterns including sentence rhythm, lexical diversity, and syntactic depth. + Fuses neural networks with linguistic intelligence for real-time, interpretable results.

- +
+ + {/* Supporting Features Grid */} +
-
🧠
-

Hybrid ML Architecture

+
🧩
+

StyloMetric DNA

- Combines 1D-CNN pattern recognition with Random Forest explainability for transparent results. + Maps sentence rhythm and lexical depth to identify unique writing patterns.

-
🚀
-

97%+ Accuracy

+
🔍
+

Explainable AI

- <100ms latency with zero GPU requirements. Lightweight for browsers, powerful for enterprise. + Provides measurable metrics for every prediction, ensuring transparency.

-
🔍
-

Explainable Results

+
🚀
+

Real-Time Accuracy

- Every prediction backed by measurable linguistic signals. Complete transparency, no black boxes. + 97%+ verified precision, <100 ms latency, CPU-only runtime.

From 3d667bf66c80f1cd77cc008e378ba6be4e75041f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 9 Nov 2025 09:35:51 +0000 Subject: [PATCH 3/3] Implement Split Narrative layout pattern with alternating left-right sections Co-authored-by: haoqi-shen <145812960+haoqi-shen@users.noreply.github.com> --- src/App.css | 281 ++++++++++++++++++++++++++++++++-------------------- src/App.jsx | 99 ++++++++++++------ 2 files changed, 240 insertions(+), 140 deletions(-) diff --git a/src/App.css b/src/App.css index 877e13d..a6997fb 100644 --- a/src/App.css +++ b/src/App.css @@ -209,146 +209,176 @@ font-weight: 400; } -/* Hero Feature - Highlighted Main Feature */ -.hero-feature { +/* Split Narrative Layout - Alternating Left/Right */ +.split-narrative { + margin-top: 4rem; display: flex; - justify-content: center; - margin: 3rem 0 2.5rem; - animation: fadeInUp 0.6s ease-out; + flex-direction: column; + gap: 0; +} + +.narrative-row { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 4rem; + align-items: center; + padding: 4rem 0; + opacity: 0; + animation: fadeInLeft 0.8s ease-out forwards; +} + +.narrative-row:nth-child(1) { + animation-delay: 0.1s; +} + +.narrative-row:nth-child(2) { + animation-delay: 0.3s; +} + +.narrative-row:nth-child(3) { + animation-delay: 0.5s; } -@keyframes fadeInUp { +.narrative-row:nth-child(4) { + animation-delay: 0.7s; +} + +/* Reverse layout for alternating pattern */ +.narrative-row.reverse { + animation: fadeInRight 0.8s ease-out forwards; +} + +.narrative-row.reverse:nth-child(2) { + animation-delay: 0.3s; +} + +.narrative-row.reverse:nth-child(4) { + animation-delay: 0.7s; +} + +@keyframes fadeInLeft { from { opacity: 0; - transform: translateY(20px); + transform: translateX(-40px); } to { opacity: 1; - transform: translateY(0); + transform: translateX(0); } } -.hero-feature-card { - max-width: 700px; - width: 100%; - padding: 3rem; - background: white; - border-radius: 12px; - text-align: center; - border: 2px solid #e5e7eb; - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); - transition: all 0.3s ease; - position: relative; - overflow: hidden; -} - -.hero-feature-card::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - height: 4px; - background: linear-gradient(90deg, #111827, #4b5563, #111827); +@keyframes fadeInRight { + from { + opacity: 0; + transform: translateX(40px); + } + to { + opacity: 1; + transform: translateX(0); + } } -.hero-feature-card:hover { - transform: translateY(-4px); - box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12); - border-color: #d1d5db; +/* Content Section */ +.narrative-content { + padding: 2rem; } -.hero-feature-icon { - font-size: 4rem; +.narrative-icon { + font-size: 3.5rem; margin-bottom: 1.5rem; display: inline-block; - animation: pulse 2s ease-in-out infinite; + transition: transform 0.3s ease; } -@keyframes pulse { - 0%, 100% { - transform: scale(1); - } - 50% { - transform: scale(1.05); - } +.narrative-row:hover .narrative-icon { + transform: scale(1.1) rotate(5deg); } -.hero-feature-card h3 { - font-size: 1.75rem; +.narrative-content h3 { + font-size: 2rem; margin-bottom: 1rem; color: #111827; font-weight: 700; letter-spacing: -0.02em; + line-height: 1.2; } -.hero-feature-card p { +.narrative-content p { color: #6b7280; line-height: 1.7; font-size: 1.1rem; - max-width: 600px; - margin: 0 auto; -} - -/* Supporting Features Grid */ -.features-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 2rem; - margin-top: 3rem; + max-width: 500px; } -.feature-card { +/* Visual Section */ +.narrative-visual { + display: flex; + justify-content: center; + align-items: center; padding: 2rem; - background: white; - border-radius: 10px; - transition: all 0.3s ease; - border: 1px solid #e5e7eb; - animation: fadeInUp 0.6s ease-out; - animation-fill-mode: both; } -.feature-card:nth-child(1) { - animation-delay: 0.1s; +.visual-placeholder { + width: 100%; + max-width: 400px; + aspect-ratio: 1; + background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%); + border-radius: 20px; + display: flex; + align-items: center; + justify-content: center; + border: 2px solid #e5e7eb; + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06); + transition: all 0.4s ease; + position: relative; + overflow: hidden; } -.feature-card:nth-child(2) { - animation-delay: 0.2s; +.visual-placeholder::before { + content: ''; + position: absolute; + top: -50%; + left: -50%; + width: 200%; + height: 200%; + background: linear-gradient(45deg, transparent 30%, rgba(255, 255, 255, 0.3) 50%, transparent 70%); + animation: shimmer 3s infinite; } -.feature-card:nth-child(3) { - animation-delay: 0.3s; +@keyframes shimmer { + 0% { + transform: translateX(-100%) translateY(-100%); + } + 100% { + transform: translateX(100%) translateY(100%); + } } -.feature-card:hover { - transform: translateY(-6px); - box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1); +.narrative-row:hover .visual-placeholder { + transform: scale(1.05); + box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1); border-color: #d1d5db; } -.feature-icon { - font-size: 2.5rem; - margin-bottom: 1.25rem; - display: inline-block; - transition: transform 0.3s ease; +.visual-decoration { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + position: relative; + z-index: 1; } -.feature-card:hover .feature-icon { - transform: scale(1.1) rotate(5deg); +.decoration-icon { + font-size: 6rem; + opacity: 0.3; + transition: all 0.3s ease; } -.feature-card h3 { - font-size: 1.25rem; - margin-bottom: 0.75rem; - color: #111827; - font-weight: 600; - letter-spacing: -0.01em; -} - -.feature-card p { - color: #6b7280; - line-height: 1.6; - font-size: 0.95rem; +.narrative-row:hover .decoration-icon { + opacity: 0.5; + transform: scale(1.1); } /* About Section */ @@ -800,31 +830,56 @@ font-size: 1.2rem; } - .hero-feature-card { - padding: 2rem; + /* Split Narrative Mobile Layout */ + .narrative-row { + grid-template-columns: 1fr; + gap: 2rem; + padding: 3rem 0; } - .hero-feature-icon { - font-size: 3rem; + .narrative-row.reverse { + grid-template-columns: 1fr; + } + + .narrative-row.reverse .narrative-visual { + order: 1; } - .hero-feature-card h3 { + .narrative-row.reverse .narrative-content { + order: 2; + } + + .narrative-content { + padding: 1rem; + text-align: center; + } + + .narrative-content h3 { font-size: 1.5rem; } - .hero-feature-card p { + .narrative-content p { font-size: 1rem; + max-width: 100%; } - .about-content { - grid-template-columns: 1fr; + .narrative-icon { + font-size: 3rem; } - .demo-container { + .visual-placeholder { + max-width: 300px; + } + + .decoration-icon { + font-size: 4rem; + } + + .about-content { grid-template-columns: 1fr; } - .features-grid { + .demo-container { grid-template-columns: 1fr; } @@ -858,19 +913,27 @@ font-size: 2rem; } - .hero-feature-card { - padding: 1.5rem; + .narrative-row { + padding: 2rem 0; } - .hero-feature-icon { + .narrative-content h3 { + font-size: 1.25rem; + } + + .narrative-content p { + font-size: 0.95rem; + } + + .narrative-icon { font-size: 2.5rem; } - .hero-feature-card h3 { - font-size: 1.25rem; + .visual-placeholder { + max-width: 250px; } - .hero-feature-card p { - font-size: 0.95rem; + .decoration-icon { + font-size: 3rem; } } diff --git a/src/App.jsx b/src/App.jsx index 1bead99..42ffacb 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -70,41 +70,78 @@ function App() {

Key Features

- {/* Hero Feature - Hybrid ML Architecture */} -
-
-
🧠
-

Hybrid ML Architecture

-

- Fuses neural networks with linguistic intelligence for real-time, interpretable results. -

+ {/* Split Narrative Layout - Alternating Left/Right */} +
+ {/* Feature 1 - Left Content, Right Visual */} +
+
+
🧩
+

StyloMetric DNA

+

+ Maps sentence rhythm and lexical depth to identify unique writing patterns. +

+
+
+
+
+ 📊 +
+
+
-
- {/* Supporting Features Grid */} -
-
-
🧩
-

StyloMetric DNA

-

- Maps sentence rhythm and lexical depth to identify unique writing patterns. -

+ {/* Feature 2 - Right Content, Left Visual */} +
+
+
+
+ 🧠 +
+
+
+
+
🤖
+

Hybrid ML Architecture

+

+ Fuses neural networks with linguistic intelligence for real-time, interpretable results. +

+
- -
-
🔍
-

Explainable AI

-

- Provides measurable metrics for every prediction, ensuring transparency. -

+ + {/* Feature 3 - Left Content, Right Visual */} +
+
+
🔍
+

Explainable AI

+

+ Provides measurable metrics for every prediction, ensuring transparency. +

+
+
+
+
+ 📈 +
+
+
- -
-
🚀
-

Real-Time Accuracy

-

- 97%+ verified precision, <100 ms latency, CPU-only runtime. -

+ + {/* Feature 4 - Right Content, Left Visual */} +
+
+
+
+ +
+
+
+
+
🚀
+

Real-Time Accuracy

+

+ 97%+ verified precision, <100 ms latency, CPU-only runtime. +

+