Back to Component Explorer
Retro Brutal Button
buttonsBold neo-brutalist button with guaranteed hard drop-shadow and tactile click displacement.
#button#retro#brutalist#bold
Live Interactive Preview
Component Source Code
Select language in the dropdownRetroButton.tsx
1'use client';23import React, { useState } from 'react';4import { ArrowUpRight, Copy } from 'lucide-react';56export default function RetroButton() {7 const [clicked, setClicked] = useState(false);89 return (10 <button11 onClick={() => {12 setClicked(true);13 setTimeout(() => setClicked(false), 200);14 }}15 style={{16 boxShadow: clicked ? '0px 0px 0px 0px #0f172a' : '5px 5px 0px 0px #0f172a',17 transform: clicked ? 'translate(4px, 4px)' : 'translate(0px, 0px)',18 transition: 'all 0.15s ease'19 }}20 onMouseEnter={(e) => {21 if (!clicked) {22 e.currentTarget.style.transform = 'translate(-2px, -2px)';23 e.currentTarget.style.boxShadow = '7px 7px 0px 0px #0f172a';24 }25 }}26 onMouseLeave={(e) => {27 if (!clicked) {28 e.currentTarget.style.transform = 'translate(0px, 0px)';29 e.currentTarget.style.boxShadow = '5px 5px 0px 0px #0f172a';30 }31 }}32 className="flex items-center gap-2 rounded-none border-2 border-slate-900 bg-amber-400 px-6 py-3 text-sm font-black uppercase tracking-wider text-slate-950 cursor-pointer select-none"33 >34 <Copy className="h-4 w-4" />35 <span>Retro Brutal</span>36 <ArrowUpRight className="h-4 w-4" />37 </button>38 );39}Installation & Integration Guide
Step 1: Tailwind CSS v4 Setup
Tailwind DocsIf you do not have Tailwind installed yet, run this installation command:
Terminal
npm install tailwindcss @tailwindcss/postcss postcss
Then add the Tailwind directive to your main stylesheet (globals.css):
@import "tailwindcss";
Step 2: Install Icon Dependencies
npm install lucide-react react-icons
Step 3: Add Component File
Create a new file in your project at src/components/buttons/RetroButton.tsx and paste the copied code from the source viewer above.
Step 4: Usage Example
ExamplePage.tsx
1import RetroBrutalButton from '@/components/buttons/RetroButton';23export default function ExamplePage() {4 return (5 <main className="p-8 flex items-center justify-center min-h-screen">6 <RetroBrutalButton />7 </main>8 );9}