Back to Footers
Inspired by:Jolocky
Added on Oct 5, 2026
components/footers/acid-wordmark/acid-wordmark-footer.tsx
"use client"

import { LinkColumns } from "./components/link-columns"
import { SignupForm } from "./components/signup-form"
import { SocialLinks } from "./components/social-links"
import { Wordmark } from "./components/wordmark"
import { DEFAULT_COLUMNS, DEFAULT_SOCIAL_LINKS } from "./data/defaults"
import { classNames } from "./lib/class-names"
import { footerStyles } from "./styles"
import type { AcidWordmarkFooterProps } from "./types"

export function AcidWordmarkFooter({
  className,
  tagline = "Paid Different™",
  emailLabel = "Email address",
  emailPlaceholder = "you@studio.com",
  submitLabel = "Start for free",
  doneLabel = "You're in ✓",
  onSubscribe,
  socialLinks = DEFAULT_SOCIAL_LINKS,
  navLabel = "Footer",
  columns = DEFAULT_COLUMNS,
  wordmarkLabel = "jolocky",
}: AcidWordmarkFooterProps) {
  return (
    <footer className={classNames("aw-footer", className)}>
      <style>{footerStyles}</style>
      <div className="aw-top">
        <div className="aw-signup">
          <SignupForm
            tagline={tagline}
            emailLabel={emailLabel}
            emailPlaceholder={emailPlaceholder}
            submitLabel={submitLabel}
            doneLabel={doneLabel}
            onSubscribe={onSubscribe}
          />
          <SocialLinks links={socialLinks} />
        </div>
        <LinkColumns label={navLabel} columns={columns} />
      </div>

      <Wordmark label={wordmarkLabel} />
    </footer>
  )
}
Acid Wordmark
acid-wordmark
SVG Wordmark Architecture
Built from scratch by Jolocky, with our own layout, color and motion.
Signature Standard
Precision interaction engineering with zero external runtime bloat.
Open Source Registry
Production-ready multi-file tree built for modern Next.js and Tailwind CSS.

Engineering Breakdown

Acid Wordmark — A near black footer with a single acid lime accent, built around a custom wordmark drawn as inline SVG, with transparent counters and a lime dot over the j. The seven letters rise from below one after another each time the wordmark scrolls into view. Hovering a letter lifts it and turns it lime, and a click or tap sends a lift wave through the whole word. Above it sit a signup form that locks into a confirmed state, round social buttons that fill on hover, and link columns that sit open on tablet and desktop but fold into an accordion on mobile, where each section opens on its own.
Every interaction state, motion curve, and responsive edge-case has been extracted and reconstructed for seamless integration into modern React applications.
01
Zero — Primitive Dependency & Pure Standalone Pattern: pure React and scoped CSS. There is no UI primitive library, no icon package and nothing extra to install.
02
Custom SVG Wordmark: the word is drawn from rectangles, ellipses and polygons rather than set in a font, so it looks the same everywhere. The two o letters and the c are ellipses with a rotated cutout mask, which keeps their counters truly transparent.
03
Letter Rise: when 35% of the wordmark is on screen, each of the seven letters slides up from below 75ms after the previous one. When it leaves the screen the letters drop back with no delay, so the rise plays again next time.
04
Hover Lift: on devices that can hover, a letter moves up 6% and turns acid lime while the pointer is over it.
05
Click Wave: a click or tap lifts the letters one after another, 60ms apart, each dropping again after 340ms. Overlapping waves share one lift flag per letter, as in the original.
06
Independent Accordion: on mobile every column head toggles its own section, so several can stay open. The height animation is driven by grid rows, from 0fr to 1fr. Tablet and desktop keep every column open through CSS.
07
Three Layouts: mobile stacks everything in one column. Tablet puts the form on one row and the links in three columns. Desktop moves the signup to the left of the three link columns.
08
Signup Done State: a loose email check accepts anything shaped like name@site.tld. A valid address disables and dims the field and changes the button to a confirmation, and there is no reset.
09
Ready for a Real Request: pass an onSubscribe handler to send the email to your provider. Returning false or throwing focuses the field instead of confirming.
10
Reduced Motion: transitions are switched off and the letters are never pushed below the wordmark.
Last Updated
Oct 5, 2026
Tags & Specifications
Custom SVG WordmarkLetter RiseHover Lift WaveMobile AccordionSignup FormZero Primitive
Color Palette
#0d0d0c
#f2f1ea
#d4f53c
Technology Stack
Engineered using established and reliable modern web technologies for peak runtime performance and developer ergonomics.
React
Next.js
TypeScript
Scoped CSS
Inline SVG
Zero Primitive