/* global React, Icon, Btn, Reveal, useCountUp */
/* ──────────────────────────────────────────────────────────────
tech-hero.jsx — Nav, Hero A (light), Hero B (dark), Stats
────────────────────────────────────────────────────────────── */
const { useState: useStateH, useEffect: useEffectH } = React;
const NAV_ITEMS = [
{ label: 'Solutions', target: 'solutions' },
{ label: 'Platform', target: 'platform' },
{ label: 'Case Studies', target: 'cases' },
{ label: 'About', target: 'about' }];
function scrollToId(id) {
const el = document.getElementById(id);
if (el) window.scrollTo({ top: el.getBoundingClientRect().top + window.scrollY - 72, behavior: 'smooth' });
}
// ── Top navigation ───────────────────────────────────────────────
const Nav = ({ onGetStarted }) => {
const [scrolled, setScrolled] = useStateH(false);
const [open, setOpen] = useStateH(false);
useEffectH(() => {
const onScroll = () => setScrolled(window.scrollY > 8);
window.addEventListener('scroll', onScroll, { passive: true });
return () => window.removeEventListener('scroll', onScroll);
}, []);
return (
);
};
// ── Animated code-transform visual (Hero A) ──────────────────────
const TransformVisual = () => {
const legacy = ['IDENTIFICATION DIVISION.', 'PROGRAM-ID. LEDGER.', 'PERFORM CALC-INTEREST', ' UNTIL WS-DONE = "Y".', 'MOVE WS-BAL TO OUT-REC.'];
const modern = ['@Service', 'class LedgerService {', ' BigDecimal accrue(Account a) {', ' return a.balance()', ' .multiply(rate);', ' } }'];
return (
{/* Legacy panel */}
ledger.cob · COBOL
{legacy.map((l, i) =>
{l}
)}
{/* arrow chip */}
{/* Modern panel */}
LedgerService.java · generated
{modern.map((l, i) =>
{l}
)}
{/* floating stat chip */}
98.6%
conversion accuracy
);
};
// ── Hero A — light split ─────────────────────────────────────────
const HeroLight = ({ onGetStarted, onSeeDemo }) =>
Technamics AI Platform
AI-powered
optimization for
the software lifecycle.
Transform every stage of delivery with intelligent automation — from legacy modernization and QA to mobile builds and next-gen UX design.
Get started
Watch the platform
SOC 2 · enterprise governance
100+ countries
;
// ── Hero B — dark command ────────────────────────────────────────
const HeroDark = ({ onGetStarted, onSeeDemo }) =>
{/* animated grid */}
Agentic automation, live
Quiet machines.
Confident answers.
Transform your software lifecycle with intelligent automation — from legacy modernization to next-gen UX design.
Get started
Watch the platform
;
// compact live "agent console" for dark hero
const DarkConsole = () => {
const lines = [
{ t: 'agent', x: 'orchestrator › routing 4 workstreams' },
{ t: 'ok', x: 'modernize ▸ 12,480 LOC translated · COBOL→Java' },
{ t: 'ok', x: 'qa ▸ 318 tests healed · 0 flaky' },
{ t: 'run', x: 'mobile ▸ generating Swift + Kotlin…' },
{ t: 'ok', x: 'ux ▸ wireframe → React · WCAG AA passed' }];
const tone = { agent: 'var(--primary-300)', ok: '#4ade80', run: 'var(--warning)' };
return (
technamics — control plane
{lines.map((l, i) =>
{l.t === 'run' ? 'running' : l.t === 'ok' ? 'done' : 'route'}
{l.x}
)}
›
);
};
// ── Stats bar ────────────────────────────────────────────────────
const StatItem = ({ value, suffix = '', decimals = 0, label }) => {
const [ref, display] = useCountUp(value, { decimals });
return (
{display}{suffix}
{label}
);
};
const StatsBar = () =>
;
Object.assign(window, { Nav, HeroLight, HeroDark, StatsBar, scrollToId });