The Useless Web
A playful, deliberately absurdist web portal that redirects users to random, whimsical, and intentionally useless websites. Built on irreverent humor and nostalgic web aesthetics, it celebrates the internet's capacity for joyful nonsense.
Colors
Typography
- display
- fontFamily: Josefin Slab · fontSize: 68px · fontWeight: 700 · lineHeight: 76px · letterSpacing: -0.02em
- headline-lg
- fontFamily: Josefin Slab · fontSize: 48px · fontWeight: 700 · lineHeight: 56px · letterSpacing: -0.015em
- headline-md
- fontFamily: Josefin Slab · fontSize: 32px · fontWeight: 700 · lineHeight: 40px · letterSpacing: -0.01em
- title-lg
- fontFamily: Josefin Slab · fontSize: 24px · fontWeight: 700 · lineHeight: 32px
- body-lg
- fontFamily: Josefin Slab · fontSize: 18px · fontWeight: 400 · lineHeight: 28px
- body-md
- fontFamily: Josefin Slab · fontSize: 16px · fontWeight: 400 · lineHeight: 24px
- label-md
- fontFamily: Josefin Slab · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.02em
- label-sm
- fontFamily: Josefin Slab · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.03em
Design guidance
Overview
The Useless Web is a deliberately absurdist digital experience that celebrates the internet's capacity for joyful nonsense and whimsical discovery. Built on a philosophy of "Playful Irreverence," the design system embraces nostalgic web aesthetics—serif typography, radial gradients, soft drop shadows—while maintaining a contemporary, accessible interface. The brand serves the bored, the curious, and those seeking serendipitous digital detours. The emotional response is one of delighted surprise: users expect a simple button, but receive a portal to the unexpected.
The voice is irreverent yet inviting, never condescending. Tone markers include: casual directness ("TAKE ME TO A USELESS WEBSITE"), self-aware humor ("because some websites, we just couldn't do without, and some we couldn't keep"), and gentle absurdism. Vocabulary favors playful understatement and ironic sincerity. Example sentence in brand voice: "Press the button. Something ridiculous awaits."
Colors
The color palette is anchored by a vivid hot pink primary (#be3077, deepening to #ff1493 on interaction), which serves as the unmistakable call-to-action accent on the hero button. This saturated magenta against the soft white background creates immediate visual hierarchy and playful energy—it's impossible to miss, and impossible to ignore. Secondary accent blue (#4db2ec, #3498db) provides a supporting interactive color for secondary CTAs and informational elements, creating a complementary contrast pair. Tertiary grays (#505050, #6c757d) ground the palette and serve as text, borders, and subtle UI elements. The surface stack is deliberately minimal and light: white (#ffffff) as the primary surface, with subtle off-whites (#f2f2f2, #f5f5f5) for depth. The radial gradient background (white
Typography
The type system is built entirely on Josefin Slab, a serif typeface that evokes early-2000s web design while maintaining contemporary readability. Display (68px, 700 weight) anchors the hero with maximum impact and nostalgic charm; headline-lg (48px) and headline-md (32px) establish clear hierarchy for section breaks. Body text (16–18px, 400 weight) remains generous and accessible, with 24–28px line-height for comfortable reading. All headings receive a consistent text-shadow (2px 2px 4px #999) that reinforces the playful, slightly retro aesthetic without sacrificing legibility. The label system (14px, 12px) uses increased letter-spacing (0.02–0.03em) to add formality to buttons and badges. When applying labels over busy backgrounds or ad regions, apply text-shadow: 0 2px 5px rgba(0, 0, 0,
Layout
The page uses a centered, fixed-width container (980px max-width) that respects the viewport while maintaining a contained, focused experience. The grid is 12 columns, with a gutter of 24px between sections. White-space is generous: lg spacing (40px) separates major sections (hero, footer), while md spacing (24px) divides content blocks and card groups. The hero occupies the full viewport height with centered text alignment, creating a meditative, focused entry point. Below the fold, content flows in a single column with consistent padding (md: 24px) on all sides. The radial gradient background (ellipse at center, #ffffff 0%, #f2f2f2 100%) creates a soft focal point that naturally draws the eye to the center button. Ads and secondary content are positioned below the primary CTA to maintain
Elevation & Depth
Depth is conveyed through subtle, consistent shadows rather than layering or glassmorphism. The base elevation uses a soft shadow (0 3px 8px rgba(0, 0, 0, 0.15)) applied to cards, dropdowns, and interactive elements, creating a gentle lift from the background. Hover states elevate to a larger shadow (0 8px 24px rgba(0, 0, 0, 0.12)) to signal interactivity and depth increase. The hero button uses the md shadow by default, escalating to lg on hover. Inset shadows (inset 0 0 0 1px rgba(255, 255, 255, 0.2)) are applied to select dropdowns and form elements to create a subtle border effect without
Shapes
The shape philosophy is "Soft-Technical Nostalgia"—rounded corners are present but restrained, honoring early-2000s web design without embracing full roundness. Border-radius follows a deliberate scale: sm (3px) for subtle softening on small elements like badges; DEFAULT (4px) for buttons and inputs, the most-used radius; md (5px) for slightly larger interactive surfaces; lg (8px) for cards and panels; xl (12px) for larger containers and modals; full (9999px) for pill-shaped elements like badges and toggle buttons. The primary CTA button uses DEFAULT (4px) radius, maintaining a slightly square
Components
Action Elements Buttons are the primary interactive element and must command attention. The primary button uses background {colors.primary} (#be3077), text color {colors.on-primary} (white), with padding 10px 24px and height 48px. Font size is deliberately large (45px) and serif (Josefin Slab, 400 weight) to match the hero's playful scale. On hover, background shifts to {colors.primary-container} (#ff1493) with a subtle scale(1.02) transform and 150ms ease-out transition. Secondary buttons use transparent background with a 2px border in {colors.secondary} (#4db2ec) and matching text color; on hover, the background fills with {colors.secondary-container} (#3498db). All buttons receive the md shadow (0 3px 8px rgba(0, 0, 0, 0.15)) to lift them from the page.
Containers & Surfaces Ca
Do's and Don'ts
**Do**
- Do use Josefin Slab serif typeface exclusively—it's the brand's visual signature and reinforces nostalgic playfulness.
- Do apply text-shadow: 2px 2px 4px rgba(153, 153, 153, 0.5) to all headings for consistent depth and retro charm.
- Do maintain the hot pink primary (#be3077, #ff1493) as the sole attention-grabbing accent—it must never be diluted or used on secondary elements.
- Do use the 980px container max-width to create a focused, centered experience that respects the viewport.
- Do apply consistent md shadow (0 3px 8px rgba(0, 0, 0, 0.15)) to all interactive elements for subtle elevation.
**Don't**
- Don't use sans-serif typefaces or system fonts—Josefin Slab is non-negotiable for brand consistency.
- Don't apply harsh shadows or blur effects; the aesthetic is clean nostalgia, not glassmorphism.
- Don't use the primary pink on non-interactive elements like backgrounds or borders—reserve it exclusively for CTAs and focus states.
- Don't exceed 8px border-radius on any element; the brand celebrates restrained, slightly squared-off shapes.
- Don't introduce new accent colors; the secondary blue (#4db2ec) and tertiary gray (#505050) are the only supporting colors.
Edit, then copy or download.