Kickresume UI

Command Palette

Search for a command to run...

Typography

Kickresume pairs the warm Henk-Work display face with the clean Graphik Web sans serif. Henk-Work gives marketing headlines, pull quotes, and large numbers their editorial character; Graphik keeps body copy and product UI clear and compact.

Loading…
import { Eyebrow } from "@/components/ui/eyebrow"

export default function TypographyDemo() {
  return (
    <article className="flex max-w-2xl flex-col font-sans">
      <header className="border-b border-border pb-8">
        <Eyebrow>Best AI Resume Builder</Eyebrow>
        <h1 className="max-w-xl font-serif text-[length:var(--kr-fs-h1)] leading-[56px] font-normal tracking-[var(--kr-tracking-display)] text-balance">
          Your success story begins with a resume.
        </h1>
        <p className="mt-4 max-w-xl leading-6 tracking-[var(--kr-tracking-body)] text-muted-foreground">
          Create a beautiful resume quickly with the help of artificial
          intelligence and our customizable templates.
        </p>
      </header>

      <section className="pt-8">
        <h2 className="font-serif text-[length:var(--kr-fs-h2)] leading-10 font-normal tracking-[var(--kr-tracking-h2)]">
          Make your experience count
        </h2>
        <p className="mt-3 leading-6 tracking-[var(--kr-tracking-body)]">
          Focus on the work that matters. A clear hierarchy helps recruiters
          scan your story while the details remain comfortable to read.
        </p>
        <blockquote className="my-8 font-serif text-2xl leading-8 tracking-[-0.04rem]">
          “A thoughtful resume turns experience into opportunity.”
        </blockquote>
        <h3 className="font-serif text-[length:var(--kr-fs-h3)] leading-8 font-normal tracking-[var(--kr-tracking-h2)]">
          A simple structure
        </h3>
        <ul className="mt-3 ml-5 list-disc leading-6 [&>li]:mt-2">
          <li>Lead with the result you created.</li>
          <li>Add just enough context to make it meaningful.</li>
          <li>Keep every sentence direct and easy to scan.</li>
        </ul>
      </section>
    </article>
  )
}

Font families

Use font-serif for Henk-Work and font-sans for Graphik Web. The theme maps both utilities to the self-hosted Kickresume font files.

Henk-Work Italic Bold

Display · 400 / 400 italic / 700

Graphik Web

Body and UI · 400 / 500 / 600 / 700

export default function TypographyFonts() {
  return (
    <div className="flex flex-col gap-8">
      <div>
        <p className="font-serif text-4xl leading-tight tracking-[-1px]">
          Henk-Work <em>Italic</em> <strong className="font-bold">Bold</strong>
        </p>
        <p className="mt-2 font-mono text-xs text-muted-foreground">
          Display · 400 / 400 italic / 700
        </p>
      </div>
      <div>
        <p className="font-sans text-3xl leading-tight font-medium">
          Graphik Web
        </p>
        <p className="mt-2 font-mono text-xs text-muted-foreground">
          Body and UI · 400 / 500 / 600 / 700
        </p>
      </div>
    </div>
  )
}

Heading scale

H1 through H3 use Henk-Work regular. H4 and H5 switch to Graphik Web medium so smaller headings stay crisp in product interfaces.

StyleFamilyWeightSize / line heightTracking
H1Henk-Work40048 / 56px-1.4px
H2Henk-Work40032 / 40px-1px
H3Henk-Work40028 / 32px-1px
H4Graphik Web50024 / 28px-0.4px
H5Graphik Web50018 / 24pxnormal

H1

Your success story begins with a resume.

export default function TypographyH1() {
  return (
    <h1 className="max-w-2xl font-serif text-[length:var(--kr-fs-h1)] leading-[56px] font-normal tracking-[var(--kr-tracking-display)] text-balance">
      Your success story begins with a resume.
    </h1>
  )
}

H2

Build a resume. Land a job.

export default function TypographyH2() {
  return (
    <h2 className="font-serif text-[length:var(--kr-fs-h2)] leading-10 font-normal tracking-[var(--kr-tracking-h2)]">
      Build a resume. Land a job.
    </h2>
  )
}

H3

A template for every story

export default function TypographyH3() {
  return (
    <h3 className="font-serif text-[length:var(--kr-fs-h3)] leading-8 font-normal tracking-[var(--kr-tracking-h2)]">
      A template for every story
    </h3>
  )
}

H4

Work experience

export default function TypographyH4() {
  return (
    <h4 className="font-sans text-[length:var(--kr-fs-h4)] leading-7 font-medium tracking-[-0.4px]">
      Work experience
    </h4>
  )
}

H5

Senior Product Designer
export default function TypographyH5() {
  return (
    <h5 className="font-sans text-[length:var(--kr-fs-h5)] leading-6 font-medium">
      Senior Product Designer
    </h5>
  )
}

Body and UI scale

Body and UI copy use Graphik Web. The default reading style is 16 / 24px; secondary copy steps down to 14px and metadata to 12px. Labels use medium weight rather than bold, and the theme maps b and strong to weight 500, so inline bold renders as Graphik Medium.

Loading…
const styles = [
  {
    name: "Body",
    meta: "16 / 400 / 24",
    className:
      "text-base leading-6 font-normal tracking-[var(--kr-tracking-body)]",
    text: "Long-form copy and comfortable reading text.",
  },
  {
    name: "Medium",
    meta: "14 / 400 / 20",
    className:
      "text-sm leading-5 font-normal tracking-[var(--kr-tracking-small)]",
    text: "Captions, secondary labels, and helper text.",
  },
  {
    name: "Small",
    meta: "12 / 400 / 16",
    className: "text-xs leading-4 font-normal text-muted-foreground",
    text: "Metadata, badges, and fine print.",
  },
  {
    name: "Label",
    meta: "16 / 500 / 24",
    className: "text-base leading-6 font-medium",
    text: "Section label and primary UI emphasis.",
  },
  {
    name: "Label small",
    meta: "14 / 500 / 20",
    className: "text-sm leading-5 font-medium",
    text: "Form labels and compact UI emphasis.",
  },
]

export default function TypographyBody() {
  return (
    <div className="flex w-full max-w-2xl flex-col gap-6 font-sans">
      {styles.map((style) => (
        <div key={style.name} className="grid gap-1 sm:grid-cols-[7rem_1fr]">
          <p className="font-mono text-xs text-muted-foreground">
            {style.name}
            <br />
            {style.meta}
          </p>
          <p className={style.className}>{style.text}</p>
        </div>
      ))}
    </div>
  )
}

Eyebrow and headline

The canonical marketing composition places a 16px medium eyebrow directly above a display heading. Use the Eyebrow component to keep the 8px separation consistent.

Resume Templates

Pick a resume template. Make it your own.

import { Eyebrow } from "@/components/ui/eyebrow"

export default function TypographyEyebrow() {
  return (
    <section className="max-w-xl text-center">
      <Eyebrow>Resume Templates</Eyebrow>
      <h2 className="font-serif text-[length:var(--kr-fs-h2)] leading-10 font-normal tracking-[var(--kr-tracking-h2)] text-balance">
        Pick a resume template. Make it your own.
      </h2>
    </section>
  )
}

Blockquote

Pull quotes use Henk-Work at 24 / 32px in the regular upright face, with no border or coral decoration — the display family alone sets the quote apart.

“Kickresume helped me show the story behind my experience.”
export default function TypographyBlockquote() {
  return (
    <blockquote className="max-w-xl font-serif text-2xl leading-8 tracking-[-0.04rem]">
      “Kickresume helped me show the story behind my experience.”
    </blockquote>
  )
}

Stat

Large statistics use Henk-Work at 36 / 40px, paired with a small Graphik label.

6,000,000+

resumes created

export default function TypographyStat() {
  return (
    <div className="text-center">
      <p className="font-serif text-[length:var(--kr-fs-stat)] leading-10 tracking-[-1px]">
        6,000,000+
      </p>
      <p className="mt-2 font-sans text-sm leading-5 text-muted-foreground">
        resumes created
      </p>
    </div>
  )
}

Standard inline links use the coral primary color. Reserve the premium gradient for upgrade and AI messaging.

Read our resume guide or discover AI-powered writing.

export default function TypographyLinks() {
  return (
    <p className="font-sans leading-6">
      Read our{" "}
      <a
        href="#"
        className="font-medium text-primary no-underline hover:underline"
      >
        resume guide
      </a>{" "}
      or discover{" "}
      <span className="text-premium-gradient font-semibold">
        AI-powered writing
      </span>
      .
    </p>
  )
}

Usage guidance

  • Marketing buttons, eyebrows, and section titles use Title Case. Body copy uses sentence case.
  • Use Graphik medium (font-medium) or plain b/strong for ordinary emphasis. In the source product, medium fills the role commonly assigned to bold UI text.
  • Graphik bold italic is reserved for the Premium and Free sticker badges.
  • Keep negative letter spacing on the large display styles and the small positive tracking on body and helper text.