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 render in a pixel font while the rest stays in the normal typeface
pnpm dlx shadcn@latest add https://cult-ui.com/r/pixel-paragraph-words.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 { PixelParagraph } from "@/components/ui/pixel-paragraph-words"Highlight specific words in a pixel font:
<PixelParagraph
text="54+ animated components and effects. Free, open source, and built to drop into any shadcn/ui project."
pixelWords={["animated", "shadcn/ui"]}
font="square"
className="text-lg text-muted-foreground"
/>Choose any of the five pixel font variants:
<PixelParagraph
text="Triangle-based pixel typography with highlighted words."
pixelWords={["Triangle-based", "highlighted"]}
font="triangle"
className="text-lg"
/>Apply custom classes to the pixel words:
<PixelParagraph
text="Important words stand out from the base text."
pixelWords={["Important", "stand out"]}
font="grid"
pixelWordClassName="text-foreground font-semibold"
className="text-lg text-muted-foreground"
/>Render as a <span> or <div> instead of <p>:
<PixelParagraph
as="div"
text="Block-level pixel text with highlighted words."
pixelWords={["highlighted words"]}
className="text-sm"
/>| Prop | Type | Default | Description |
|---|---|---|---|
text | string | — | The paragraph text to render |
pixelWords | string[] | [] | Words/phrases to render in a pixel font. Matching is case-sensitive, longest-first |
as | "p" | "span" | "div" | "p" | The wrapper element to render |
font | "square" | "grid" | "circle" | "triangle" | "line" | "square" | The pixel font for highlighted words |
pixelWordClassName | string | — | Extra className applied to each pixel-word span |
className | string | — | Additional CSS classes applied to the wrapper element |
| Font Name | Tailwind Class | CSS Variable |
|---|---|---|
square | font-pixel-square | --font-geist-pixel-square |
grid | font-pixel-grid | --font-geist-pixel-grid |
circle | font-pixel-circle | --font-geist-pixel-circle |
triangle | font-pixel-triangle | --font-geist-pixel-triangle |
line | font-pixel-line | --font-geist-pixel-line |
text string is split into alternating segments: plain (normal font) and pixel (highlighted words)<span> elements in the inherited font<span> elements with the chosen pixel font class appliedpixelWords 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 |