import React, { useState } from 'react'; import { Layers, Activity, Settings, Zap, Cpu, MousePointer2, Anchor, ChevronUp, ChevronDown } from 'lucide-react'; /** * 工业草稿风格 v7.2.0 (视觉增强版) * 核心优化: * 1. 视觉聚焦:显著放大底部组件图标,提升细节可见度。 * 2. 极致简约:移除底部元数据标签,精简文字层次,聚焦核心名称。 * 3. 比例优化:维持 V 型交错布局,优化大尺寸图标下的物理连接感。 */ const styles = ` @keyframes scanline { 0% { transform: translateY(-100%); } 100% { transform: translateY(100%); } } @keyframes shimmer { 0% { transform: translateX(-100%); } 100% { transform: translateX(300%); } } .blueprint-grid { background-color: #ffffff; background-image: linear-gradient(rgba(0, 0, 0, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.05) 1px, transparent 1px); background-size: 30px 30px; } .blueprint-grid::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(0, 0, 0, 0.02) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.02) 1px, transparent 1px); background-size: 10px 10px; pointer-events: none; } .assembly-view { filter: drop-shadow(0 15px 30px rgba(0,0,0,0.1)) contrast(1.05); transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); } .assembly-view:hover { filter: drop-shadow(0 20px 40px rgba(0,0,0,0.15)) contrast(1.1); } .leader-line-svg { transition: all 0.4s ease; } .text-label-container { transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1); } .scan-effect { position: absolute; top: 0; left: 0; right: 0; height: 100%; background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.01), transparent); animation: scanline 15s linear infinite; pointer-events: none; } `; const SYSTEM_PARTS = [ { id: 'p1', name: '环境监控', code: 'ENV-X', img: 'https://images.unsplash.com/photo-1555680202-c86f0e12f086?auto=format&fit=crop&q=80&w=200', link: '#' }, { id: 'p2', name: '能源模组', code: 'BATT-V8', img: 'https://images.unsplash.com/photo-1619641259501-c88f28c6e355?auto=format&fit=crop&q=80&w=200', link: '#' }, { id: 'p3', name: '雷达阵列', code: 'LDR-07', img: 'https://images.unsplash.com/photo-1555680202-c86f0e12f086?auto=format&fit=crop&q=80&w=200', link: '#' }, { id: 'p4', name: '核心总成', code: 'CORE-MAX', img: 'https://images.unsplash.com/photo-1518770660439-4636190af475?auto=format&fit=crop&q=80&w=200', link: '#' }, { id: 'p5', name: '液压单元', code: 'HYD-02', img: 'https://images.unsplash.com/photo-1635350736475-c8cef4b21906?auto=format&fit=crop&q=80&w=200', link: '#' }, { id: 'p6', name: '散热单元', code: 'COOL-F2', img: 'https://images.unsplash.com/photo-1635350736475-c8cef4b21906?auto=format&fit=crop&q=80&w=200', link: '#' }, { id: 'p7', name: '存储阵列', code: 'DATA-2T', img: 'https://images.unsplash.com/photo-1544006659-f0b21f04cb1d?auto=format&fit=crop&q=80&w=200', link: '#' } ]; const ASSEMBLY_IMAGE = "https://images.unsplash.com/photo-1581092160562-40aa08e78837?auto=format&fit=crop&q=80&w=1600"; export default function App() { const [hoveredId, setHoveredId] = useState(null); return (
{/* 顶部标题栏 */}

Linear_Draft_Nav

V7.2.0 // ENHANCED_VISUAL_ALIGN

STATUS: NOMINAL
{/* 主画布区域 */}
{/* 中心工业总成图 */}
{/* 适配型角标 */}
Central Assembly System
{/* 底部组件导航集 */}
{SYSTEM_PARTS.map((part, index) => { const isHovered = hoveredId === part.id; const isUp = index % 2 === 0; // --- 物理常量:优化后的图标与交错位移 --- const ICON_SIZE = 80; // 放大图标容器 (原 64) const CENTER_AXIS_Y = 180; const OFFSET_Y = 40; const boxTop = isUp ? CENTER_AXIS_Y - OFFSET_Y : CENTER_AXIS_Y + OFFSET_Y; // --- 垂直引导线逻辑 --- const SVG_CENTER_X = 50; const SVG_CENTER_Y = 40; // 适配大尺寸图标的起始点 return (
setHoveredId(part.id)} onMouseLeave={() => setHoveredId(null)} className="group flex flex-col items-center cursor-pointer relative flex-1" style={{ minWidth: '0' }} > {/* 垂直引导线 */} {/* 图标节点 - 已放大图片尺寸 */}
{part.name} {isHovered && (
)}
{/* 标签容器 - 移除底部元数据 */}
{/* 接线端子 */}
{/* 顶部指示器 */}
{isUp ? :
}
CODE.0{index + 1}
{!isUp ? :
}
{/* 大字名称 */}
{part.name}
); })}
{/* 页脚 */}
); }