Graphical PDS migrator for AT Protocol
1/** 2 * The airport sign component, used on the landing page. 3 * Looks like a physical airport sign with a screen. 4 * @returns The airport sign component 5 * @component 6 */ 7export default function AirportSign() { 8 return ( 9 <div class="relative inline-block mb-8 sm:mb-12"> 10 {/* Left Pole */} 11 <div class="absolute left-4 sm:left-8 -top-16 sm:-top-24 w-3 sm:w-4 h-16 sm:h-24 bg-gradient-to-r from-slate-800 via-slate-600 to-slate-800 rounded-t-lg"> 12 </div> 13 {/* Right Pole */} 14 <div class="absolute right-4 sm:right-8 -top-16 sm:-top-24 w-3 sm:w-4 h-16 sm:h-24 bg-gradient-to-r from-slate-800 via-slate-600 to-slate-800 rounded-t-lg"> 15 </div> 16 {/* Display Board */} 17 <div class="relative bg-gradient-to-b from-slate-800 to-slate-900 p-0.5 sm:p-1 rounded-lg shadow-[0_2px_10px_rgba(0,0,0,0.3)]"> 18 {/* Metallic Frame */} 19 <div class="bg-gradient-to-b from-slate-600 via-slate-700 to-slate-800 p-1 sm:p-2 rounded-[6px]"> 20 {/* Inner Frame */} 21 <div class="bg-black px-2 sm:px-4 py-0.5 rounded-[4px] relative overflow-hidden"> 22 {/* Screen Background with Effects */} 23 <div class="absolute inset-0 bg-[#0a0a2f]"> 24 {/* Scan lines */} 25 <div class="absolute inset-0 bg-[linear-gradient(transparent_0%,_rgba(255,255,255,0.02)_50%,_transparent_100%)] bg-[length:100%_4px]"> 26 </div> 27 {/* Screen noise */} 28 <div class="absolute inset-0 opacity-[0.03] [background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIj48ZmlsdGVyIGlkPSJhIiB4PSIwIiB5PSIwIj48ZmVUdXJidWxlbmNlIHR5cGU9ImZyYWN0YWxOb2lzZSIgYmFzZUZyZXF1ZW5jeT0iLjc1IiBzdGl0Y2hUaWxlcz0ic3RpdGNoIi8+PC9maWx0ZXI+PHJlY3Qgd2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiIGZpbHRlcj0idXJsKCNhKSIgb3BhY2l0eT0iMC4wNSIvPjwvc3ZnPg==')]"> 29 </div> 30 </div> 31 32 {/* Display Board Text */} 33 <div className="relative flex justify-center items-center py-0.5 sm:py-2 pb-1 sm:pb-4 px-1 sm:px-4"> 34 <div className="relative text-center"> 35 <span className="font-mono text-[1.5em] sm:text-[2em] md:text-[3em] font-semibold tracking-[0.12em] leading-[0.9] text-white 36 [text-shadow:0_0_20px_rgba(255,255,255,0.2),0_0_40px_rgba(255,255,255,0.1)] 37 relative z-10"> 38 ATP INTERNECTIONAL AIRPORT 39 </span> 40 {/* Text glow effect */} 41 <div className="absolute inset-0 blur-[2px] opacity-50"> 42 <span className="font-mono text-[1.5em] sm:text-[2em] md:text-[3em] font-semibold tracking-[0.12em] leading-[0.9] text-white"> 43 ATP INTERNECTIONAL AIRPORT 44 </span> 45 </div> 46 </div> 47 </div> 48 49 {/* Screen reflection overlay */} 50 <div className="absolute inset-0 bg-gradient-to-b from-transparent via-transparent to-white/[0.03]"> 51 </div> 52 {/* Vignette effect */} 53 <div className="absolute inset-0 bg-[radial-gradient(circle_at_center,_transparent_0%,_rgba(0,0,0,0.2)_100%)]"> 54 </div> 55 </div> 56 </div> 57 </div> 58 59 {/* Under Construction Extension */} 60 <div className="absolute left-1/2 top-full -translate-x-1/2"> 61 <div className="bg-gradient-to-b from-slate-800 to-slate-900 pb-0.5 sm:pb-1 px-0.5 sm:px-1 rounded-b-lg rounded-t-none shadow-[0_2px_10px_rgba(0,0,0,0.3)] border-t-0"> 62 <div className="bg-gradient-to-b from-slate-600 via-slate-700 to-slate-800 pb-1 sm:pb-2 px-1 sm:px-2 rounded-b-[6px] rounded-t-none border-t-0"> 63 <div className="bg-black px-2 sm:px-4 pt-0 pb-0.5 rounded-b-[4px] rounded-t-none border-t-0"> 64 <span className="font-mono text-xs sm:text-sm font-medium tracking-wider text-yellow-400 [text-shadow:0_0_10px_rgba(255,255,0,0.3)] animate-pulse"> 65 UNDER CONSTRUCTION 66 </span> 67 </div> 68 </div> 69 </div> 70 </div> 71 </div> 72 ); 73}