Magnetic Field Hero

Contactless position sensing

Read the field.

Halden designs magnetic encoders for robot joints, surgical arms and satellite gimbals. No contact, no wear, and a fresh reading every 12 microseconds.

About this block

Magnetic Field HeroPRO

A minimal hero over the magnetic-field background component: a Canvas 2D field of iron filings that turn along the curved lines between two drifting magnetic poles. The cursor takes over one pole, spring physics pull the filings toward it, and every click sends a radial shockwave through the grid. An oversized headline sits beside a short intro and two Turn Arrow block buttons. Every field setting passes through the field prop; the ink follows the theme, the field pulses on its own when idle, it pauses offscreen, and reduced motion gets one settled frame.

Hero211: Magnetic Field Hero

A full-height hero over the magnetic-field background, a Canvas 2D grid of iron filings that swing along the lines between two drifting poles while the cursor takes over one pole and clicks send shockwaves, with an oversized headline, an intro and two Turn Arrow block buttons rising in at the bottom.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/hero211?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/hero211?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/hero211.tsx plus the magnetic-field background and the button24 Turn Arrow button it uses.

Quick start

The installed file exports hero211Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.

tsx
import { Hero211, hero211Demo } from "@/components/beste/block/hero211";

export default function Page() {
  return <Hero211 {...hero211Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Hero211 } from "@/components/beste/block/hero211";

export default function Page() {
  return (
    <Hero211
      eyebrow="Contactless position sensing"
      heading="Read the field."
      description="Magnetic encoders for robot joints, surgical arms and satellite gimbals."
      buttons={[
        { label: "Order a sample kit", href: "/samples" },
        { label: "Browse datasheets", href: "/datasheets" },
      ]}
      field={{
        inkColor: "var(--foreground)",
        paperColor: "var(--background)",
        spacing: 24,
        secondPole: true,
        shockwave: 0.5,
        pulseInterval: 6.5,
      }}
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstring–Muted line above the headline
headingstring–Oversized headline, rendered as the page h1
descriptionstring–Intro in the right column from md
buttonsActionButton[][]Turn Arrow block buttons (Button24): the first dark, the rest light with a hairline border
fieldOmit<MagneticFieldProps, "className" | "children">–Forwards the MagneticField props from the magnetic-field component (colors, spacing, filing length and weight, contrast, stiffness, pole strength, second pole, shockwave, pulse interval, speed, interactive, paused)
classNamestring–Extra classes for the outer <section>
ts
type ActionButton = {
  label: string;
  href: string;
};

Behavior notes

  • The field fills the section behind the copy; its ink and paper default to var(--foreground) and var(--background), so it follows the theme when field is left out.
  • The cursor leads one pole and a click or tap sends a radial shockwave; left alone the field pulses on its own every pulseInterval seconds. The whole section shows a crosshair cursor.
  • A gradient from the background color covers the lower 60% of the section, so the headline stays readable over dense filings.
  • The field adapts its filing count to the device, pauses offscreen and draws one settled frame for reduced motion.
  • The eyebrow, headline and the intro column rise in on mount at 0.05s, 0.15s and 0.3s; reduced motion shows them in place.
  • The section is at least 640px or the viewport minus 78px tall, with the copy pushed to the bottom.

More Hero blocks

View all Hero
PRO

hero261

Mesh Gradient Hero

PRO

hero203

Particle Type Hero

PRO

hero209

ASCII Render Hero

Get Pro access