Open Roles

About this block

Open RolesPRO

A studio jobs list with role meta, salary and apply arrows.

Careers40: Open Roles

A studio careers section with a header row (large heading, vertical divider, eyebrow badge, and an open-count label) above a bordered list of open roles, each row linking out to its href and showing the title, a department / location / type meta line separated by dot markers, a salary, and a hover-animated up-right arrow seal.

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/careers40?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/careers40.tsx.

Quick start

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

tsx
import { Careers40, careers40Demo } from "@/components/beste/block/careers40";

export default function CareersPage() {
  return <Careers40 {...careers40Demo} />;
}

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

tsx
import { Careers40 } from "@/components/beste/block/careers40";

export default function CareersPage() {
  return (
    <Careers40
      label="Careers"
      heading="Build the studio behind the work"
      openingsLabel="7 open roles"
      roles={[
        {
          title: "Senior Brand Designer",
          department: "Design",
          location: "New York, NY",
          type: "Full-time",
          salary: "$120k – $150k",
          href: "/jobs/senior-brand-designer",
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
labelstringEyebrow badge text next to the heading
headingstringLarge section heading
openingsLabelstringUppercase open-count label on the right of the header
rolesRole[][]Rows rendered in the open-roles list
classNamestringExtra classes for the outer <section>
ts
type Role = {
  title: string;
  department: string;
  location: string;
  type: string;
  salary: string;
  href: string;
};

Behavior notes

  • Each role row is a plain <a href={role.href}>; there is no click callback and no target/rel, so navigation is a full-page follow of the raw href.
  • The eyebrow label badge and the vertical divider are gated behind the lg breakpoint (hidden lg:flex / hidden ... lg:block), so they never appear on smaller screens even when label is set.
  • label and openingsLabel are each conditionally rendered: passing an empty or omitted value drops that element entirely rather than rendering blank space.
  • salary is hidden below the sm breakpoint (hidden ... sm:block), so the arrow seal is the only right-side content on narrow viewports.
  • Rows are keyed by array index, and the department / location / type dot separators are static decorative spans, not derived from data, so all three meta fields always render even if a value is empty.
  • Hover state is scoped per row via the group/careers40 class: the title shifts to text-primary and the arrow seal nudges up and right, but this is presentational only with no active/selected state tracked anywhere.
  • There is no internal state, no filtering, and no pagination; the list renders every entry in roles in order with no max-height or scroll container.

More Careers blocks

View all Careers
PRO

careers48

Join The Studio

Sticky employer-value intro beside a scrollable open-roles list.

PRO

careers57

Open Roles With Published Bands

A short roles list where the pay band sits on the row rather than behind an application, with a written empty state for when nothing is open and a speculative line underneath.

FREE

careers51

Filterable Open Roles List

A light editorial careers section with a monospace eyebrow over a hairline rule, a two-column heading, and a sticky culture photo with a gradient caption beside team filter pills and hairline job rows showing location, contract type, and a hover arrow.

PRO

careers44

Roles By Department

Department-tabbed open roles list using shadcn Tabs.

PRO

careers1

Job Listings List

Job listings section with role cards showing department, location, and employment type. Clean list layout with hover effects and apply buttons.

PRO

careers7

Culture Stats with Positions

Team culture stats bar followed by detailed job position cards. Combines social proof with open roles listing.