diff --git a/src/pages/DesignSystem.tsx b/src/pages/DesignSystem.tsx new file mode 100644 index 0000000..cb24485 --- /dev/null +++ b/src/pages/DesignSystem.tsx @@ -0,0 +1,136 @@ +import React from 'react'; +import { ArrowRight, Activity, Lock } from 'lucide-react'; + +export default function DesignSystem() { + return ( +
+
+

Design System

+

v2.0 // PREMIUM_ALCHEMICAL

+
+ + {/* TYPOGRAPHY */} +
+
+

Typography

+
+
+
+

Heading 1

+ 6rem / Light / -0.03em +
+
+

Heading 2

+ 3.75rem / Light / -0.02em +
+
+

Heading 3

+ 2.25rem / Light / -0.02em +
+
+

Heading 4

+ 1.25rem / Medium +
+
+

+ Body Large. The friction isn't personal. It's structural. Map the invisible mechanics of your connections. +

+

+ Body Standard. Ingest raw relational data. Classify friction points against a deterministic 64-gate framework. +

+ Body / Inter / 1.6 Line Height +
+
+
+ + {/* COLORS */} +
+
+

Palette

+
+
+
+
+
+
Deep Slate
+
#0F172A
+
Background
+
+
+
+
+
+
Off White
+
#F8FAFC
+
Text / Accent
+
+
+
+
+
+
Emerald
+
Token: Safe
+
+
+
+
+
+
Purple
+
Token: Process
+
+
+
+
+ + {/* INTERACTION */} +
+
+

Interaction

+
+
+
+ + +
+
+

+ Card Element +

+

+ Glassmorphism card with 1px border and backdrop blur. High-end, precise feel. +

+
+ + Unit A + + + Unit B + +
+
+
+
+ + {/* GRID */} +
+
+

Grid System

+
+
+
+ {Array.from({ length: 12 }).map((_, i) => ( +
+ {i + 1} +
+ ))} +
+

12-Column Grid / 1rem (16px) Gap

+
+
+
+ ); +} diff --git a/src/pages/products/Manuals.tsx b/src/pages/products/Manuals.tsx index 3a757dc..c3646e9 100644 --- a/src/pages/products/Manuals.tsx +++ b/src/pages/products/Manuals.tsx @@ -44,31 +44,6 @@ export default function Landing() { const container = document.getElementById('landing-container'); if (!container) return; - let ticking = false; - - const handleScroll = () => { - if (!ticking) { - window.requestAnimationFrame(() => { - const scrollTop = container.scrollTop; - - setScrollY((prev) => { - // Optimization: Stop updating state once the hero section is fully hidden (opacity reaches 0 at 600px). - // This prevents unnecessary re-renders when scrolling through the rest of the page. - if (prev > 600 && scrollTop > 600) { - return prev; - } - return scrollTop; - }); - - ticking = false; - }); - ticking = true; - } - }; - - container.addEventListener('scroll', handleScroll, { passive: true }); - return () => container.removeEventListener('scroll', handleScroll); - }, []); const update = () => { const scrollTop = container.scrollTop; diff --git a/src/styles/design-system.css b/src/styles/design-system.css index 7d28bd3..104dcb6 100644 --- a/src/styles/design-system.css +++ b/src/styles/design-system.css @@ -162,4 +162,4 @@ code { h3 { font-size: 1.5rem; } -} \ No newline at end of file +}