TetraKits UI Giant Wordmark — Mono ← Library

Giant Wordmark — Mono

Aceternity big-text via 21st ecosystem: oversized TetraKits wordmark with gradient fade, link columns, zinc mono palette.

wordmark footergiant text footer21st dev aceternityblack wordmark reacttetrakits big text
Live preview

Dependencies

react framer-motion lucide-react
npm install framer-motion lucide-react
"use client";

import { motion } from "framer-motion";
import { Github, Linkedin, Twitter } from "lucide-react";

const columns = [
  { title: "Product", links: ["UI Library", "Free Tools", "Templates", "Pricing"] },
  { title: "Resources", links: ["Docs", "Blog", "Changelog", "GitHub"] },
  { title: "Company", links: ["About", "Careers", "Press", "Contact"] },
  { title: "Legal", links: ["Privacy", "Terms", "License", "Security"] },
];

export function WordmarkFooter() {
  return (
    <footer className="relative overflow-hidden bg-black px-6 pb-0 pt-16">
      <div className="mx-auto grid max-w-6xl gap-12 lg:grid-cols-7">
        <div className="lg:col-span-3">
          <p className="text-lg font-semibold text-white">TetraKits</p>
          <p className="mt-3 max-w-sm text-sm text-zinc-400">Free React UI components & browser tools for builders</p>
          <div className="mt-5 flex gap-3">
            {[Twitter, Github, Linkedin].map((Icon, i) => (
              <motion.a key={i} href="#" whileHover={{ y: -3, scale: 1.08 }} className="flex h-9 w-9 items-center justify-center rounded-lg border border-white/10 text-zinc-400 hover:text-white">
                <Icon className="h-4 w-4" />
              </motion.a>
            ))}
          </div>
        </div>
        <div className="grid grid-cols-2 gap-8 sm:grid-cols-4 lg:col-span-4">
          {columns.map((col) => (
            <div key={col.title}>
              <p className="text-xs font-semibold uppercase tracking-wider text-zinc-400">{col.title}</p>
              <ul className="mt-4 space-y-2">
                {col.links.map((l) => <li key={l}><a href="#" className="text-sm text-zinc-500 hover:text-white">{l}</a></li>)}
              </ul>
            </div>
          ))}
        </div>
      </div>
      <div className="relative mx-auto mt-16 max-w-6xl">
        <div className="pointer-events-none absolute inset-x-0 bottom-0 h-32 bg-gradient-to-t from-black to-transparent" />
        <motion.p initial={{ opacity: 0, y: 30 }} whileInView={{ opacity: 1, y: 0 }} viewport={{ once: true }} className="select-none text-center text-[clamp(3rem,13vw,10rem)] font-bold leading-none tracking-tighter text-zinc-800/90" aria-hidden>TetraKits</motion.p>
      </div>
      <p className="relative z-10 pb-6 text-center text-xs text-zinc-600">© 2026 TetraKits</p>
    </footer>
  );
}