AI SDK Agents
Full Stack AI Patterns
Complex AI Agents
Workflow Patterns
Tools + Artifacts
54+ animated components and effects. Free, open source, and built to drop into any shadcn/ui project.
These words escape the pixel font and render in sans/mono
pnpm dlx shadcn@latest add https://cult-ui.com/r/pixel-paragraph-words-inverse.json
This component requires the Geist Pixel fonts. Follow these steps to configure them in your project.
Import the pixel font variants from geist/font/pixel and apply their CSS variable classes to <body>:
import { GeistSans } from "geist/font/sans"
import { GeistMono } from "geist/font/mono"
import {
GeistPixelSquare,
GeistPixelGrid,
GeistPixelCircle,
GeistPixelTriangle,
GeistPixelLine,
} from "geist/font/pixel"
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<body
className={`${GeistSans.variable} ${GeistMono.variable} ${GeistPixelSquare.variable} ${GeistPixelGrid.variable} ${GeistPixelCircle.variable} ${GeistPixelTriangle.variable} ${GeistPixelLine.variable}`}
>
{children}
</body>
</html>
)
}@theme {
--font-sans: var(--font-geist-sans);
--font-mono: var(--font-geist-mono);
--font-pixel-square: var(--font-geist-pixel-square);
--font-pixel-grid: var(--font-geist-pixel-grid);
--font-pixel-circle: var(--font-geist-pixel-circle);
--font-pixel-triangle: var(--font-geist-pixel-triangle);
--font-pixel-line: var(--font-geist-pixel-line);
}For Tailwind v3, use the extend key in tailwind.config.ts:
export default {
theme: {
extend: {
fontFamily: {
sans: ["var(--font-geist-sans)"],
mono: ["var(--font-geist-mono)"],
"pixel-square": ["var(--font-geist-pixel-square)"],
"pixel-grid": ["var(--font-geist-pixel-grid)"],
"pixel-circle": ["var(--font-geist-pixel-circle)"],
"pixel-triangle": ["var(--font-geist-pixel-triangle)"],
"pixel-line": ["var(--font-geist-pixel-line)"],
},
},
},
}import { PixelParagraphInverse } from "@/components/ui/pixel-paragraph-words-inverse"Base text in pixel, specific words escape to sans:
<PixelParagraphInverse
text="54+ animated components and effects. Free, open source, and built to drop into any shadcn/ui project."
plainWords={["animated", "shadcn/ui"]}
plainFont="sans"
pixelFont="square"
className="text-lg text-muted-foreground"
/>Use mono instead of sans for the escaped words:
<PixelParagraphInverse
text="Build beautiful interfaces with pixel-perfect typography."
plainWords={["beautiful", "pixel-perfect"]}
plainFont="mono"
className="text-lg text-muted-foreground"
/>Change the base pixel font:
<PixelParagraphInverse
text="Grid-based pixel typography with highlighted words."
plainWords={["highlighted"]}
pixelFont="grid"
plainFont="sans"
className="text-lg"
/>Apply custom classes to the escaped words:
<PixelParagraphInverse
text="Important words can be visually distinct from the base text."
plainWords={["Important", "visually distinct"]}
plainFont="sans"
plainWordClassName="text-foreground font-semibold"
className="text-lg text-muted-foreground"
/>Render as a <span> or <div> instead of <p>:
<PixelParagraphInverse
as="span"
text="Inline pixel text with plain escapes."
plainWords={["plain escapes"]}
className="text-sm"
/>| Prop | Type | Default | Description |
|---|---|---|---|
text | string | — | The paragraph text to render |
plainWords | string[] | [] | Words/phrases to render in plain (sans/mono) font. Matching is case-sensitive, longest-first |
as | "p" | "span" | "div" | "p" | The wrapper element to render |
pixelFont | "square" | "grid" | "circle" | "triangle" | "line" | "square" | The pixel font used for the base text |
plainFont | "sans" | "mono" | "sans" | The font for escaped words |
plainWordClassName | string | — | Extra className applied to each plain-word span |
className | string | — | Additional CSS classes applied to the wrapper element |
text string is split into alternating segments: pixel (base) and plain (escaped words)<span> elements with the chosen plain font class (font-sans or font-mono)plainWords contains both "ui" and "shadcn/ui", the longer phrase takes priority"React" will not match "react""use client" needed, no state or effects<p>, <span>, or <div> with full className support| Feature | Pixel Paragraph | Pixel Paragraph Inverse |
|---|---|---|
| Base text | Normal font (sans) | Pixel font |
| Highlighted words | Pixel font | Sans/mono font |
| Best for | Accenting key words in normal body text | Full pixel paragraphs with readable escapes |