Outlined Mega Mark

Full-width mega outlined headline with theme-aware stroke colours; optional hover swaps the outline for an SVG gradient stroke (hollow fill).

UniqueUI CLI

npx uniqueui add outlined-mega-mark

shadcn CLI

npx shadcn@latest add https://uniqueui-platform.vercel.app/r/outlined-mega-mark.json -y

shadcn path expects @/lib/utils (run shadcn init first). Same source file is installed to components/ui/.

Preview

Usage

"use client";
import { OutlinedMegaMark } from "@/components/ui/outlined-mega-mark";

export default function LandingFooter() {
  return (
    <footer className="w-full">
      <OutlinedMegaMark
        fontSize="clamp(7rem, 26vw, 14rem)"
        letterSpacing="-0.02em"
        strokeWidth={1}
        lightStrokeColor="var(--color-neutral-400, #a3a3a3)"
        darkStrokeColor="var(--color-neutral-200, #e5e5e5)"
        gradientOnHover
        outlineGradient={{
          stops: ["#fde68a", "#f97316", "#ec4899"],
          x1: "0%",
          y1: "0%",
          x2: "100%",
          y2: "0%",
        }}
      >
        UniqueUI
      </OutlinedMegaMark>
    </footer>
  );
}

Props

PropTypeDescription
childrenstringPlain-text label rendered once (accessible); SVG mode duplicates visually inside stroke layers only.
fontSizestringAny valid CSS font-size (clamp, rem, px, etc.).
letterSpacingstringCSS letter-spacing for the headline.
lightStrokeColorstringOutline colour when the page is in light mode.
darkStrokeColorstringOutline colour when the page is in dark mode.
strokeWidthnumber | stringOutline width rendered as SVG/CSS stroke. Numeric values (and `"N"` / `"Npx"` strings) are clamped so the stroke never exceeds **1px**; thicker values are capped to a hairline. Other CSS units (`rem`, `em`) pass through and are not clamped.
fillOnHoverbooleanWhen true without gradientOnHover, hover fills glyphs with the active stroke colour.
gradientOnHoverbooleanWhen true (default), renders **two hollow SVG `<text>` strokes**: a diagonal **idle** stroke using your theme accent (`lightStrokeColor` / `darkStrokeColor`) everywhere, plus a **`linearGradient` stroke** visible only inside a radial **spotlight mask** driven by pointer position. Idle stroke is clipped under the hotspot so the two strokes never visually stack thicker than **1 device px** (`nonScalingStroke`, width capped via `strokeWidth`). When false, `-webkit-text-stroke` markup only.
outlineGradientOutlinedMegaMarkOutlineGradientVivid hover outline gradient. Shape: `{ stops: string[] /* 2+ CSS colours */, x1?, y1?, x2?, y2? }` — optional line for the SVG linearGradient (`userSpaceOnUse`). Exported from the component module. Overrides `outlineGradientStops`.
outlineGradientStopsreadonly string[]Shortcut for gradient `stops` only (horizontal default axis). Ignored when `outlineGradient` is set.
hoverGradientstringDeprecated: ignored. Use `outlineGradient` or `outlineGradientStops`.
containerClassNamestringOptional Tailwind classes for the outer wrapper.
classNamestringOptional Tailwind classes on the SVG (gradient mode) or inner paragraph (plain mode).