SPB Git forge
3commits 1branches 0releases
417.0 KBsize
maindefault branch
10 days agolast push
TypeScript 66.5% Python 30.9% JavaScript 1.4% CSS 0.7%
3.0 KB · 48 lines tsx
Raw Blame History
1import Link from 'next/link';2import { Wordmark } from '@/components/brand/logo';3import { AUTHOR, CONTACT_EMAIL, routes } from '@/lib/site';45const columns = [6  { title: 'Explore', links: [[routes.explore(), 'Live globe'], [routes.satellites(), 'Satellites'], [routes.constellations(), 'Constellations'], [routes.operators(), 'Operators'], [routes.countries(), 'Countries']] },7  { title: 'Activity', links: [[routes.launches(), 'Launches'], [routes.launchSites(), 'Launch sites'], [routes.debris(), 'Debris'], [routes.reentries(), 'Reentries'], [routes.events(), 'Events']] },8  { title: 'Data', links: [[routes.stats(), 'Statistics'], [routes.rankings(), 'Rankings'], [routes.sources(), 'Sources'], [routes.methodology(), 'Methodology'], [routes.status(), 'Status'], [routes.developers(), 'API']] },9  { title: 'SatelliteIndex', links: [[routes.about(), 'About'], [routes.privacy(), 'Privacy'], [routes.terms(), 'Terms'], [`mailto:${CONTACT_EMAIL}`, 'Contact']] },10] as const;1112export function SiteFooter() {13  return (14    <footer className="mt-16 border-t border-rule bg-plane/40">15      <div className="container-x mx-auto max-w-[1600px] py-10">16        <div className="grid gap-8 md:grid-cols-[1.4fr_repeat(4,1fr)]">17          <div>18            <Wordmark />19            <p className="mt-3 max-w-xs text-sm leading-relaxed text-ink-3">The world&rsquo;s orbital infrastructure, mapped and indexed. Canonical, source-attributed data on everything in Earth orbit.</p>20          </div>21          {columns.map((c) => (22            <div key={c.title}>23              <p className="eyebrow mb-3">{c.title}</p>24              <ul className="space-y-1.5">25                {c.links.map(([href, label]) => (26                  <li key={href}>27                    <Link href={href} className="inline-block py-1 text-sm text-ink-2 hover:text-ink">{label}</Link>28                  </li>29                ))}30              </ul>31            </div>32          ))}33        </div>34        <div className="mt-10 border-t border-rule pt-6 text-xs leading-relaxed text-ink-3">35          <p>SatelliteIndex aggregates public and licensed orbital, governmental, scientific, and operator data from multiple sources. Orbital data courtesy of CelesTrak. Derived classifications (constellation membership, orbit class, mission type) follow the published methodology.</p>36          <p className="mt-2">37            SatelliteIndex.io is an informational platform. Orbital positions, predictions, conjunction information, reentry predictions, and derived metrics may contain delays or uncertainty and must not be used as the sole source for safety-critical, navigation, mission-control, military, or operational decisions.38          </p>39          <p className="mt-3">40            © {new Date().getUTCFullYear()} {AUTHOR} · <a href={`mailto:${CONTACT_EMAIL}`} className="hover:text-ink">{CONTACT_EMAIL}</a> · Hosted on{' '}41            <a href="https://www.maclustr.io" className="hover:text-ink" rel="noopener">MacLustr</a>42          </p>43        </div>44      </div>45    </footer>46  );47}48