|
8 | 8 |
|
9 | 9 | import React from 'react'; |
10 | 10 | import { |
| 11 | + ArrowsRightLeftIcon, |
11 | 12 | ChatBubbleLeftRightIcon, |
12 | 13 | CodeBracketSquareIcon, |
13 | 14 | ComputerDesktopIcon, |
14 | 15 | } from '@heroicons/react/24/outline'; |
15 | 16 |
|
| 17 | +import Logo from '@/components/bitcode/branding/Logo/Logo'; |
16 | 18 | import { BITCODE_PUBLIC_COPY } from '@/components/bitcode/layout/BitcodePublicCopy/bitcode-public-copy'; |
17 | 19 |
|
18 | 20 | const TITLE_HIGHLIGHTS = [ |
@@ -63,8 +65,53 @@ export function MarketingLandingTestnetSection() { |
63 | 65 | aria-label="Commercial product launch readiness" |
64 | 66 | className="relative w-full shrink-0" |
65 | 67 | > |
66 | | - <div className="rounded-none border border-emerald-300/16 bg-emerald-300/[0.045] px-4 py-4 backdrop-blur-sm phone:px-5 phone:py-5"> |
67 | | - <div className="flex flex-wrap items-center gap-2"> |
| 68 | + <div className="relative overflow-visible rounded-none border border-emerald-300/16 bg-emerald-300/[0.045] px-4 py-4 backdrop-blur-sm phone:px-5 phone:py-5"> |
| 69 | + {/* |
| 70 | + Absolute so the larger exchange mark never expands card layout. |
| 71 | + Bitcode (green) ⇄ Bitcoin (orange); arrows use product purple. |
| 72 | + */} |
| 73 | + <div |
| 74 | + className="pointer-events-none absolute right-2 top-2 z-10 inline-flex items-center gap-1.5 phone:right-3 phone:top-3" |
| 75 | + aria-hidden="true" |
| 76 | + title="Bitcode for Bitcoin exchange" |
| 77 | + > |
| 78 | + {/* |
| 79 | + Larger marks; gap scales only with size (gap-1.5 ≈ prior gap/size ratio), |
| 80 | + not extra whitespace between arrows and icons. |
| 81 | + */} |
| 82 | + <span className="inline-flex h-14 w-14 shrink-0 items-center justify-center [filter:drop-shadow(0_0_10px_rgba(103,254,183,0.75))_drop-shadow(0_0_22px_rgba(52,211,153,0.45))]"> |
| 83 | + <Logo |
| 84 | + height="h-14" |
| 85 | + width="w-14" |
| 86 | + fill="#65FEB7" |
| 87 | + className="opacity-95" |
| 88 | + /> |
| 89 | + </span> |
| 90 | + {/* Filter on wrapper so purple glow paints outside the stroke. */} |
| 91 | + <span className="inline-flex shrink-0 items-center justify-center [filter:drop-shadow(0_0_10px_rgba(232,121,249,0.8))_drop-shadow(0_0_22px_rgba(192,132,252,0.5))]"> |
| 92 | + <ArrowsRightLeftIcon |
| 93 | + className="h-8 w-8 text-fuchsia-300" |
| 94 | + strokeWidth={2} |
| 95 | + /> |
| 96 | + </span> |
| 97 | + {/* |
| 98 | + Glow on outer frame — drop-shadow on a masked node is often clipped; |
| 99 | + filter the wrapper so orange matches Bitcode’s green glow strength. |
| 100 | + */} |
| 101 | + <span className="inline-flex h-14 w-14 shrink-0 items-center justify-center [filter:drop-shadow(0_0_10px_rgba(251,146,60,0.8))_drop-shadow(0_0_22px_rgba(251,191,36,0.45))]"> |
| 102 | + <span |
| 103 | + className="inline-block h-14 w-14 origin-center scale-[1.28] bg-orange-300" |
| 104 | + style={{ |
| 105 | + maskImage: 'url(/bitcoin-logo.svg)', |
| 106 | + WebkitMaskImage: 'url(/bitcoin-logo.svg)', |
| 107 | + maskSize: 'contain', |
| 108 | + maskRepeat: 'no-repeat', |
| 109 | + maskPosition: 'center', |
| 110 | + }} |
| 111 | + /> |
| 112 | + </span> |
| 113 | + </div> |
| 114 | + <div className="flex flex-wrap items-center gap-2 pr-36 phone:pr-40"> |
68 | 115 | <span className="rounded-none border border-emerald-300/35 bg-emerald-300/12 px-2.5 py-1 text-[0.62rem] font-medium uppercase tracking-[0.18em] text-emerald-100"> |
69 | 116 | {copy.badge} |
70 | 117 | </span> |
|
0 commit comments