This component no longer exists. It was in ruixen-ui’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-12 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.
Wordmark Footer
ruixen-ui/wordmark-footerRemovedComponent
A Rauno-craft half-cut wordmark footer — giant brand text on a full-width dark surface with luminance gradient and hairline divider.
Live preview
live · rendered by the registry
Rendered by ruixen-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ruixen.com/r/wordmark-footer.jsonSource
1"use client";23import { useState, useRef, useEffect, useCallback } from "react";4import { motion } from "motion/react";56/**7 * Wordmark Footer — Rauno Freiberg craft, Ruixen UI edition.8 *9 * Centered giant wordmark on a full-width dark surface with a subtle10 * bottom clip. Move your cursor and the metallic shine follows —11 * a radial gradient spotlight tracks the pointer with lerped12 * smoothing at 60fps via direct DOM writes, zero re-renders.13 * A vertical mask handles the half-cut fade independently.14 * cursor: pointer. The light IS the interaction.15 */1617/* ── Types ── */1819interface WordmarkFooterProps {20 brandName?: string;21}2223/* ── Scoped CSS ── */2425const STYLE = `26.wf{27 --wf-bg:#161618;28 --wf-line:rgba(255,255,255,.07)29}30.dark .wf,[data-theme="dark"] .wf{31 --wf-bg:#111113;32 --wf-line:rgba(255,255,255,.08)33}34`.replace(/\n/g, "");3536/* ── Radial shine gradient — follows cursor ── */3738function makeShine(x: number, y: number): string {39 return `radial-gradient(ellipse 100% 100% at ${x.toFixed(1)}% ${y.toFixed(1)}%, rgba(255,255,255,.88) 0%, rgba(255,255,255,.62) 24%, rgba(255,255,255,.34) 50%, rgba(255,255,255,.16) 100%)`;40}4142/* ── Vertical mask — dims bottom for the half-cut, independent of shine ── */4344const VMASK =45 "linear-gradient(to bottom, black 0%, black 38%, rgba(0,0,0,.55) 76%, rgba(0,0,0,.30) 100%)";4647/* ── Main component ── */4849export function WordmarkFooter({50 brandName = "Ruixen UI",51}: WordmarkFooterProps) {52 const [inView, setInView] = useState(false);53 const sectionRef = useRef<HTMLElement>(null);54 const textRef = useRef<HTMLSpanElement>(null);5556 /* ── Cursor-tracking state — refs only, zero re-renders ── */5758 const hovering = useRef(false);59 const curX = useRef(50);60 const curY = useRef(30);61 const tgtX = useRef(50);62 const tgtY = useRef(30);63 const raf = useRef(0);6465 /* ── Per-frame lerp loop — direct DOM writes ── */6667 const paint = useCallback(() => {68 curX.current += (tgtX.current - curX.current) * 0.1;69 curY.current += (tgtY.current - curY.current) * 0.1;7071 const grad = makeShine(curX.current, curY.current);7273 if (textRef.current) {74 textRef.current.style.backgroundImage = grad;75 }7677 const dx = Math.abs(tgtX.current - curX.current);78 const dy = Math.abs(tgtY.current - curY.current);7980 if (hovering.current || dx > 0.05 || dy > 0.05) {81 raf.current = requestAnimationFrame(paint);82 }83 }, []);8485// … truncated
What it pulls in
npm packages
