Organize 8-bit CSS with custom properties, pixel fonts, and responsive pixel art. Apply when creating or modifying retro-styled components and their CSS.
Organize CSS for 8-bit components using custom properties, pixel fonts, and responsive patterns.
All 8-bit components must import the retro stylesheet:
import "@/components/ui/8bit/styles/retro.css";
Use "Press Start 2P" for authentic 8-bit typography:
.retro {
font-family: "Press Start 2P", system-ui, -apple-system, sans-serif;
line-height: 1.5;
letter-spacing: 0.5px;
}
Apply via class or font variant:
<Button className="retro">START GAME</Button>
// or via font prop
<Button font="retro">START GAME</Button>
For sharp pixel art images:
.pixelated {
image-rendering: pixelated;
image-rendering: crisp-edges;
}
<Image src="/pixel-art.png" className="pixelated" />
Use semantic color names with dark mode variants:
<div className="border-foreground dark:border-ring" />
<div className="bg-foreground dark:bg-ring" />
Use consistent pixel values for retro feel:
{/* Standard pixel sizes */}
<div className="size-1.5" /> {/* Corner pixels */}
<div className="h-1.5 w-3" /> {/* Shadow segments */}
<div className="border-y-6" /> {/* Card borders */}
{/* Mobile considerations */}
<div className="h-[5px] md:h-1.5" />
Keep retro-specific styles in components/ui/8bit/styles/retro.css:
/* Import pixel font */
@import url("https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap");
/* Font class */
.retro {
font-family: "Press Start 2P", system-ui, -apple-system, sans-serif;
line-height: 1.5;
letter-spacing: 0.5px;
}
/* Image handling */
.pixelated {
image-rendering: pixelated;
image-rendering: crisp-edges;
}
Use Tailwind utilities for component-specific styling:
<div
className={cn(
"relative border-y-6 border-foreground dark:border-ring",
"rounded-none active:translate-y-1 transition-transform",
className
)}
/>
image-rendering: pixelated to spritesdark: prefixcomponents/ui/8bit/styles/retro.css - Global retro stylescomponents/ui/8bit/button.tsx - CSS class usage example