Current section
Files
Jump to
Current section
Files
assets/portfolio_core.svg
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200" fill="none">
<defs>
<!-- Base hexagon paths -->
<path id="outerHex" d="M 100 8 L 180 54 L 180 146 L 100 192 L 20 146 L 20 54 Z"/>
<path id="middleHex" d="M 100 28 L 160 64 L 160 136 L 100 172 L 40 136 L 40 64 Z"/>
<path id="innerHex" d="M 100 48 L 140 74 L 140 126 L 100 152 L 60 126 L 60 74 Z"/>
<path id="coreHex" d="M 100 68 L 120 84 L 120 116 L 100 132 L 80 116 L 80 84 Z"/>
<!-- Gradients -->
<linearGradient id="outerFill" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#1a1a2e"/>
<stop offset="50%" stop-color="#16213e"/>
<stop offset="100%" stop-color="#0f3460"/>
</linearGradient>
<linearGradient id="outerStroke" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#00d9ff"/>
<stop offset="50%" stop-color="#0099cc"/>
<stop offset="100%" stop-color="#006699"/>
</linearGradient>
<linearGradient id="middleFill" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#1f4068"/>
<stop offset="100%" stop-color="#162447"/>
</linearGradient>
<linearGradient id="middleStroke" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#00ffcc"/>
<stop offset="100%" stop-color="#00cc99"/>
</linearGradient>
<linearGradient id="innerFill" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#2d4a6e"/>
<stop offset="100%" stop-color="#1a365d"/>
</linearGradient>
<linearGradient id="innerStroke" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#7c3aed"/>
<stop offset="100%" stop-color="#5b21b6"/>
</linearGradient>
<linearGradient id="coreFill" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#8b5cf6"/>
<stop offset="50%" stop-color="#7c3aed"/>
<stop offset="100%" stop-color="#6d28d9"/>
</linearGradient>
<linearGradient id="coreStroke" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#c4b5fd"/>
<stop offset="100%" stop-color="#a78bfa"/>
</linearGradient>
<radialGradient id="coreGlow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#a78bfa" stop-opacity="0.4"/>
<stop offset="100%" stop-color="#6d28d9" stop-opacity="0"/>
</radialGradient>
<linearGradient id="portLine" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#00d9ff" stop-opacity="0"/>
<stop offset="50%" stop-color="#00d9ff" stop-opacity="0.8"/>
<stop offset="100%" stop-color="#00d9ff" stop-opacity="0"/>
</linearGradient>
<!-- Filters -->
<filter id="dropShadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="4" stdDeviation="4" flood-color="#000" flood-opacity="0.4"/>
</filter>
<filter id="innerGlow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="3" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="coreGlowFilter" x="-100%" y="-100%" width="300%" height="300%">
<feDropShadow dx="0" dy="0" stdDeviation="6" flood-color="#8b5cf6" flood-opacity="0.6"/>
</filter>
<!-- Clip paths -->
<clipPath id="outerClip">
<use href="#outerHex"/>
</clipPath>
<!-- Pattern for circuit lines -->
<pattern id="circuitPattern" patternUnits="userSpaceOnUse" width="20" height="20">
<path d="M 0 10 L 10 10 L 10 0" fill="none" stroke="#00d9ff" stroke-width="0.5" opacity="0.2"/>
<circle cx="10" cy="10" r="1" fill="#00d9ff" opacity="0.3"/>
</pattern>
</defs>
<!-- Background glow -->
<circle cx="100" cy="100" r="90" fill="url(#coreGlow)"/>
<!-- Outer hexagon (Ports layer) -->
<g filter="url(#dropShadow)">
<use href="#outerHex" fill="url(#outerFill)" stroke="url(#outerStroke)" stroke-width="2.5"/>
</g>
<!-- Circuit pattern overlay -->
<g clip-path="url(#outerClip)" opacity="0.4">
<rect x="0" y="0" width="200" height="200" fill="url(#circuitPattern)"/>
</g>
<!-- Middle hexagon (Adapters layer) -->
<g filter="url(#innerGlow)">
<use href="#middleHex" fill="url(#middleFill)" stroke="url(#middleStroke)" stroke-width="2"/>
</g>
<!-- Inner hexagon (Domain layer) -->
<use href="#innerHex" fill="url(#innerFill)" stroke="url(#innerStroke)" stroke-width="1.5"/>
<!-- Core hexagon (Application core) -->
<g filter="url(#coreGlowFilter)">
<use href="#coreHex" fill="url(#coreFill)" stroke="url(#coreStroke)" stroke-width="2"/>
</g>
<!-- Port connection lines (radiating from core) -->
<g stroke="url(#portLine)" stroke-width="1.5" opacity="0.7">
<!-- Top -->
<line x1="100" y1="68" x2="100" y2="28"/>
<!-- Top-right -->
<line x1="120" y1="84" x2="160" y2="64"/>
<!-- Bottom-right -->
<line x1="120" y1="116" x2="160" y2="136"/>
<!-- Bottom -->
<line x1="100" y1="132" x2="100" y2="172"/>
<!-- Bottom-left -->
<line x1="80" y1="116" x2="40" y2="136"/>
<!-- Top-left -->
<line x1="80" y1="84" x2="40" y2="64"/>
</g>
<!-- Port nodes (outer ring) -->
<g fill="#00d9ff">
<circle cx="100" cy="28" r="4"/>
<circle cx="160" cy="64" r="4"/>
<circle cx="160" cy="136" r="4"/>
<circle cx="100" cy="172" r="4"/>
<circle cx="40" cy="136" r="4"/>
<circle cx="40" cy="64" r="4"/>
</g>
<!-- Port node outer rings -->
<g stroke="#00d9ff" stroke-width="1" fill="none" opacity="0.5">
<circle cx="100" cy="28" r="7"/>
<circle cx="160" cy="64" r="7"/>
<circle cx="160" cy="136" r="7"/>
<circle cx="100" cy="172" r="7"/>
<circle cx="40" cy="136" r="7"/>
<circle cx="40" cy="64" r="7"/>
</g>
<!-- Adapter nodes (middle ring) -->
<g fill="#00ffcc" opacity="0.8">
<circle cx="100" cy="48" r="3"/>
<circle cx="140" cy="74" r="3"/>
<circle cx="140" cy="126" r="3"/>
<circle cx="100" cy="152" r="3"/>
<circle cx="60" cy="126" r="3"/>
<circle cx="60" cy="74" r="3"/>
</g>
<!-- Core symbol - stylized "C" for Core -->
<g transform="translate(100, 100)">
<path d="M 8 -10 A 14 14 0 1 0 8 10"
stroke="#c4b5fd" stroke-width="3" fill="none" stroke-linecap="round"/>
<circle cx="0" cy="0" r="3" fill="#c4b5fd"/>
</g>
<!-- Decorative arcs -->
<g stroke="#00d9ff" stroke-width="0.8" fill="none" opacity="0.3">
<path d="M 30 80 Q 50 50 80 35"/>
<path d="M 170 80 Q 150 50 120 35"/>
<path d="M 30 120 Q 50 150 80 165"/>
<path d="M 170 120 Q 150 150 120 165"/>
</g>
</svg>