Salary Bands Table

Transparent salary bands with level, role, visual range bars, and equity details. Pay transparency table with responsive card fallback.

PRO

Careers35: Salary Bands Table

A pay-transparency section that renders an optional centered header (badge, <strong>-aware heading, description) above a list of engineering levels shown as a bordered desktop table and a stacked mobile card layout, each row pairing a level badge, role name, a $XXK – $YYK salary range with a proportional range bar scaled against the highest band, and an optional equity string, closed by an optional fine-print note.

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.

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

Base UI flavor

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

This installs the block to components/beste/block/careers35.tsx, plus the badge shadcn/ui primitive it uses for the header eyebrow and the per-row level tag.

Quick start

The installed file exports careers35Demo alongside the block: the exact props behind the preview above. Spread it to get a working salary bands table in one line.

tsx
import { Careers35, careers35Demo } from "@/components/beste/block/careers35";

export default function CareersPayPage() {
  return <Careers35 {...careers35Demo} />;
}

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

tsx
import { Careers35 } from "@/components/beste/block/careers35";

export default function CareersPayPage() {
  return (
    <Careers35
      badge={{ label: "Pay Transparency", variant: "secondary" }}
      heading="Open and <strong>transparent</strong> pay"
      description="Every offer falls within these published ranges."
      items={[
        { level: "L1", role: "Junior Engineer", salaryMin: 85000, salaryMax: 110000, equity: "0.01% – 0.03%" },
        { level: "L2", role: "Mid-Level Engineer", salaryMin: 110000, salaryMax: 145000 },
      ]}
      note="Ranges reflect base salary for US-based roles."
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Optional eyebrow badge above the heading
headingstringSection heading, supports inline <strong>
descriptionstringSub-copy shown under the heading
itemsSalaryBand[][]Rows rendered in the table and mobile cards
notestringFine-print line rendered below the table
classNamestringExtra classes for the outer <section>
ts
type SalaryBand = {
  level: string;
  role: string;
  salaryMin: number;
  salaryMax: number;
  equity?: string;
};

Behavior notes

More Careers blocks

View all Careers
PRO

careers21

Compensation & Total Rewards

Transparent compensation philosophy with salary, equity, bonus, and perks cards. Shows total rewards approach with highlighted details.

PRO

careers31

Role Comparison Table

Side-by-side role comparison grid showing team, skills, experience, and salary for different positions. Responsive table-to-card layout.

PRO

careers7

Culture Stats with Positions

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

PRO

careers14

Meet the Team Gallery

Team member photo grid with names and roles. Square portrait layout for showcasing leadership and team composition.

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

careers33

HR Job Posting Detail

Formal HR job posting with responsibilities, qualifications, benefits, and sidebar summary. Corporate-style position detail page with apply CTA.