Back to Component Explorer

Neo-Brutalist Blocks Loader

loaders

High-contrast neo-brutalist rhythmically bouncing solid black block bars on amber background.

#brutalist#blocks#bounce#retro#loader
Live Interactive Preview
BRUTAL_LOAD.SYS

Component Source Code

Select language in the dropdown
BrutalistBlocksLoader.tsx
1'use client';
2
3import React from 'react';
4
5export default function BrutalistBlocksLoader() {
6 return (
7 <div className="flex flex-col items-center justify-center p-6 select-none">
8 <div className="flex items-center gap-2 p-3 bg-amber-400 border-3 border-black shadow-[4px_4px_0px_#000]">
9 {[0, 1, 2, 3].map((i) => (
10 <div
11 key={i}
12 style={{
13 animationDelay: `${i * 0.15}s`
14 }}
15 className="h-6 w-3 bg-black animate-bounce"
16 />
17 ))}
18 </div>
19 <span className="mt-3 text-xs font-black text-slate-900 dark:text-white uppercase tracking-wider bg-black text-amber-300 dark:text-amber-400 px-2.5 py-0.5 border border-black shadow-[2px_2px_0px_#000]">
20 BRUTAL_LOAD.SYS
21 </span>
22 </div>
23 );
24}

Installation & Integration Guide

Step 1: Tailwind CSS v4 Setup
Tailwind Docs

If 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/loaders/BrutalistBlocksLoader.tsx and paste the copied code from the source viewer above.

Step 4: Usage Example

ExamplePage.tsx
1import NeoBrutalistBlocksLoader from '@/components/loaders/BrutalistBlocksLoader';
2
3export default function ExamplePage() {
4 return (
5 <main className="p-8 flex items-center justify-center min-h-screen">
6 <NeoBrutalistBlocksLoader />
7 </main>
8 );
9}