CrazyGLCrazyGLHomeExploreGitHubBrowse heroesLoading hero…← Back to gallery@crazygl/keyboard-keys

Keyboard Keys

Phrase rendered as physical keyboard keys — each cap presses down on a stagger like someone typing it out for you.

ReactFont#keyboard#keys#typography

Usage

import KeyboardKeys from '@crazygl/hero-keyboard-keys';

export default function Page() {
  return (
    <KeyboardKeys
      phrase="TYPE TO BUILD"
      subheading="shortcuts for the modern web"
      stepMs={220}
      keySize={84}
    />
  );
}

Customise

  • Contentphrase, subheading.
  • TimingstepMs (interval between key presses).
  • StylekeyColor, keyTextColor, keyBorder, subColor, keySize, headingFontFamily, headingFontWeight.
  • BackdroptransparentBackground, bgColor.

Best for

  • Developer tools, CLIs, and keyboard-shortcut products
  • Docs and onboarding hero sections
  • Playful brand statements and "type to build" SaaS pages
01 · Install the package

One command, zero config.

npm install @crazygl/hero-keyboard-keys
02 · Render the component

Import once, drop it in.

The component takes the same props you see in the live customizer on the right — every default ships poster-quality.

hero.tsx
import KeyboardKeys from '@crazygl/hero-keyboard-keys';

export default function Landing() {
  return (
    <KeyboardKeys />
  );
}
03 · Use it in a page

SSR-safe by default.

The wrapper renders static HTML on the server and only initialises the canvas after hydration, so search engines see your copy.

page.tsx
// app/page.tsx — works in SSR-first frameworks (Next, Remix, Astro, etc.)
'use client';

import KeyboardKeys from '@crazygl/hero-keyboard-keys';

export default function Page() {
  return (
    <section>
      <KeyboardKeys
        heading="Say hi."
        subheading="Your new hero."
      />
      <article>
        <h2>Welcome</h2>
        <p>Your content keeps its own voice below the hero.</p>
      </article>
    </section>
  );
}
You might also like

Similar heroes

Gradient Text

Heading filled with a slowly drifting multi-stop linear gradient — three configurable colours, customizable angle, optional animation.

Drop Cap

Editorial paragraph with a single, oversized serif drop-cap that overhangs the leading margin — drop straight into a magazine layout.

Text Scrambler

Heading that scrambles into glyph soup and resolves left-to-right into the target phrase — a hacker-decode reveal that rotates through several phrases.

Blurry Text FX

Each word starts heavily blurred and resolves into focus on a stagger. Plays once on load or loops with a configurable hold.

Clip Type Stagger

Each character is clipped from below and rises into place on a stagger — like setting movable type one piece at a time. Plays once on load or loops with a configurable hold.

Hover Text Reveal

A row of phrases where hovering one expands a stagger-typed paragraph beside it — the kind of FAQ heading-list interaction premium SaaS sites use.
Live customizer

Keyboard Keys

Press interval (ms)220msKey faceKey textKey borderSubheadingKey size (px)84pxFontWeight700Transparent backgroundBackground
CrazyGL · crazygl.comProgrammable hero sections for real websites.