FORMA Documentation · v1.0

Welcome to FORMA

Everything you need to install, customize, and export your resume templates. No build tools, no frameworks — just HTML, CSS, and a text editor.

Pure HTML & CSS Zero Dependencies 6 Templates ATS Optimized Print Ready CSS Variables

Overview

What is FORMA?

FORMA is a collection of six premium, ATS-optimized resume templates built entirely with semantic HTML and vanilla CSS. There are no JavaScript frameworks, no npm packages, no build pipelines. Every template is a single self-contained .html file (with linked external CSS and JS files) that you can open directly in your browser, edit in any text editor, and print to PDF with one click.

The design system is controlled through CSS custom properties (--variables) declared in a single :root block at the top of each template's stylesheet. Change your brand color, swap your font stack, or adjust spacing — and every element across the entire template updates automatically.

💡
New to HTML/CSS? You don't need to be a developer to use FORMA. The only things you'll ever need to edit are plain text (your name, job title, experience) and a handful of color values in the CSS file. This guide walks you through every step.

How it works

Each template follows a strict three-layer architecture: tokens (design variables), base styles (reset and shared utilities), and template-specific styles (the unique layout and visual identity). This means:

1

Edit your content

Open the HTML file and replace the placeholder text with your own name, experience, education, and skills. Every piece of content is clearly labeled with HTML comments.

2

Customize your theme

Open the template's CSS file (e.g. css/templates/executive.css) and edit the :root { } block at the top to set your colors and fonts.

3

Export to PDF

Open the template in Chrome or Edge, click the Save PDF button in the toolbar, or press Ctrl+P / Cmd+P. Your print-perfect A4 resume is ready.

Overview

File Structure

FORMA uses a clean, modular file architecture. Shared styles and scripts live in dedicated folders. Each template HTML file is lean — it only contains content markup and links to its CSS layers.

📌
Relative paths matter. Keep the css/ and js/ folders in the same directory as the HTML files. If you move a template to a subdirectory, update the <link> and <script> paths accordingly.

CSS load order

Every template HTML file loads its stylesheets in this exact order. The cascade is intentional — each layer can safely override the previous:

template-executive.html — <head>
<!-- 1. Design tokens: colors, fonts, spacing -->
<link rel="stylesheet" href="css/tokens.css">

<!-- 2. Reset + shared utilities + animations -->
<link rel="stylesheet" href="css/base.css">

<!-- 3. Preview toolbar (Back / Print / Save PDF) -->
<link rel="stylesheet" href="css/toolbar.css">

<!-- 4. Page background + paper shadow wrapper -->
<link rel="stylesheet" href="css/resume-shell.css">

<!-- 5. @media print rules for PDF export -->
<link rel="stylesheet" href="css/print.css">

<!-- 6. Template-specific styles (last = highest priority) -->
<link rel="stylesheet" href="css/templates/executive.css">

Overview

Requirements

FORMA has zero runtime dependencies. Everything runs in the browser. Here's all you need:

ToolMinimum VersionUsed ForRequired?
Google Chrome or Chromiumv90+Viewing templates, PDF export via print dialogRequired
Any modern browser (Firefox, Safari, Edge)LatestViewing and editing templatesOptional
Any text editor (VS Code, Sublime, Notepad)AnyEditing HTML and CSS contentRequired
Internet connectionLoading Google Fonts for previewRecommended
Node.js / npmNot required at allNot needed
🖨
Use Chrome for PDF export. Chrome's print-to-PDF engine handles @media print, @page, and -webkit-print-color-adjust: exact more faithfully than any other browser. For production-quality PDFs, always export from Chrome or Chromium.

Getting Started

Quick Start

From downloaded ZIP to finished resume in under 10 minutes.

1

Download & extract

After purchase, download the forma-templates.zip file and extract it to a folder on your computer. Keep the folder structure intact — the css/ and js/ directories must stay alongside the HTML files.

2

Choose your template

Open index.html in your browser to see the full gallery. Click Preview on any template card to open the live demo. Choose the one that best fits your industry and style.

3

Open in your text editor

Open the template HTML file (e.g. template-executive.html) in VS Code, Sublime Text, Notepad++, or any text editor. The content sections are clearly marked with HTML comments like <!-- Experience Section -->.

4

Replace placeholder content

Find and replace the sample name, role, company names, dates, and bullet points with your own information. See the Editing Content section for a complete field reference.

5

Customize colors & fonts (optional)

Open css/templates/[template-name].css and edit the :root { } block at the top. Change --t-primary to your brand color and --font-display to your preferred font. See CSS Variables.

6

Export to PDF

Open the template in Chrome. Click the Save PDF button in the toolbar at the top, or press Ctrl+P (Windows) / Cmd+P (Mac). In the print dialog, select Save as PDF and click Save.

Getting Started

Opening Templates

Because FORMA uses external CSS files, you should always open templates via a local server or directly as a file — both work fine for editing and PDF export.

Method 1: Open directly in browser

Double-click any .html file. It will open in your default browser. If fonts don't load, make sure you have an internet connection (Google Fonts are loaded via CDN). Everything else — CSS, JS — works from local file paths.

Method 2: VS Code Live Server (recommended)

Install the Live Server extension in VS Code. Right-click the HTML file and choose Open with Live Server. This gives you hot reload as you edit — changes appear instantly in the browser without refreshing manually.

Terminal — optional local server
# Python 3 (built-in, zero install)
cd path/to/forma-templates
python3 -m http.server 8080
# Open http://localhost:8080 in Chrome

# Or with Node (if you have it)
npx serve .
# Open http://localhost:3000 in Chrome
ℹ️
A local server is completely optional. FORMA works perfectly when opened directly as a file:// URL. The only difference is that Live Server lets you see edits without manually refreshing.

Getting Started

Editing Content

All resume content lives in the HTML file. Here's a complete map of every editable field and the HTML patterns used across all templates.

Personal information

HTML — Personal header fields
<!-- Your name appears in both the sidebar and the main header -->
<h1 class="sidebar__name">Alexandra Monroe</h1>
<p  class="sidebar__role">Senior Product Manager</p>

<!-- Avatar initials (2 letters) -->
<div class="sidebar__avatar">AM</div>

<!-- Contact fields inside <address> -->
<address>
  <div class="contact-item">
    <span class="contact-item__icon"></span>
    <div>
      <p class="contact-item__label">Email</p>
      <p class="contact-item__value">your@email.com</p>
    </div>
  </div>
</address>

Experience entries

HTML — Work experience block
<div class="exp-item">
  <div class="exp-header">
    <span class="exp-company">Company Name</span>
    <span class="exp-date">Jan 2020 – Present</span>
  </div>
  <p class="exp-role">Your Job Title</p>
  <ul class="exp-bullets">
    <li>Led a team of 8 engineers to deliver X, resulting in Y% improvement.</li>
    <li>Built and shipped Z that generated $X in revenue within 6 months.</li>
    <li>Managed cross-functional relationships with design, data science, and marketing.</li>
  </ul>
</div>
✍️
Writing strong bullets. Use the formula: Action verb + what you did + measurable result. Example: "Reduced API response time by 40% by migrating to a connection-pooled architecture." Quantified achievements consistently outperform vague descriptions in both ATS scoring and human review.

Skill bars

Skill bar percentages are set directly via inline style="width:85%" on the fill element. Change the percentage to reflect your actual proficiency level:

HTML — Skill bar
<div class="skill-bar">
  <div class="skill-bar__header">
    <span class="skill-bar__name">Python</span>
    <span class="skill-bar__pct">90%</span>
  </div>
  <div class="skill-bar__track">
    <!-- Change the width percentage here ↓ -->
    <div class="skill-bar__fill" style="width:90%"></div>
  </div>
</div>

Adding / removing sections

To add a new section, duplicate an existing <section class="resume-section"> block and update the id and aria-labelledby attributes. To remove a section, simply delete the entire <section> element — no other files need updating.

Customization

CSS Variables

Every visual property in FORMA is controlled by CSS custom properties. Edit the :root { } block at the top of the template CSS file — all components update automatically.

css/templates/executive.css — Theme Config
/* ══ THEME CONFIG ══════════════════════════════════════
   Edit this block to completely rebrand this template.
   All values cascade automatically — no search/replace.
══════════════════════════════════════════════════════ */

:root {

  /* ── Primary brand color ── */
  /* Used for: accent bars, dates, role labels, skill fills */
  --t-primary:   #c84b31;   /* ← Change this first */
  --t-accent2:   #e8743a;   /* ← Gradient end color */

  /* ── Background & surface ── */
  --t-primary:   #1a1a2e;   /* ← Sidebar background */
  --t-text:      #ffffff;   /* ← Sidebar text color */
  --t-text-dim:  rgba(255,255,255,.6);

  /* ── Typography ── */
  /* Override global font-display/body from tokens.css */
  --font-display: 'Playfair Display', serif;
  --font-body:    'DM Sans', sans-serif;
  --font-mono:    'DM Mono', monospace;

  /* ── Layout ── */
  --sidebar-width: 300px;     /* ← Widen/narrow the sidebar */
  --resume-width:  960px;     /* ← Max resume width */
}
🎨
Quick rebranding tip. The fastest way to match your personal brand is to change just two values: --t-primary (your accent color) and --font-display (your display font). These two variables have the most visible impact across the entire template.

Template-specific vs. global tokens

FORMA has two levels of CSS variables:

FilePrefixScopeWhat to edit here
css/tokens.css--color-, --font-, --space-Global — affects landing page + all templatesBrand-wide colors and spacing scale
css/templates/*.css--t-Per-template — overrides global tokens locallyEach template's unique color scheme and fonts

Template-level variables (--t-*) always take precedence. This lets you maintain global brand consistency while giving each template a distinct visual identity.

Customization

Typography & Fonts

Each template ships with a carefully chosen font pairing. Swapping fonts is a two-step process: update the Google Fonts link in the HTML <head>, then update the CSS variable.

Default font pairings per template

TemplateDisplay FontBody FontMono Font
ExecutivePlayfair DisplayDM SansDM Mono
CreativeFrauncesOutfitJetBrains Mono
MinimalCormorant GaramondKarlaIBM Plex Mono
NoirSyneInterFira Code
InfographicPlus Jakarta SansPlus Jakarta SansSpace Mono
AcademicEB GaramondLatoCourier Prime

Changing fonts

Step 1: Replace the Google Fonts URL in the template's <head>. You can build a new URL at fonts.google.com.

Step 2: Update the CSS font variables in the template's :root block:

CSS — Swapping font stack
/* In template HTML <head> — replace the fonts link: */
<link href="https://fonts.googleapis.com/css2?family=
  Libre+Baskerville:wght@400;700&amp;
  Source+Sans+3:wght@300;400;600&display=swap"
  rel="stylesheet">

/* Then in css/templates/executive.css :root block: */
:root {
  --font-display: 'Libre Baskerville', serif;
  --font-body:    'Source Sans 3', sans-serif;
}
⚠️
ATS warning. Avoid decorative or script fonts for body text. ATS systems parse the underlying HTML text regardless of font, but very light font weights (100–200) can reduce legibility for human reviewers. Stick to weights 300–700 for body copy.

Customization

Colors & Theming

FORMA's color system is intentionally minimal — a dominant primary color, a dark secondary, and neutral surfaces. This structure makes it easy to swap the entire palette in seconds.

Global color tokens

These live in css/tokens.css and apply globally:

--color-primary #c84b31 Main accent: links, highlights, bars
--color-secondary #1a1a2e Dark surfaces, sidebar backgrounds
--color-accent #c9a84c Gold accent (Academic template)
--color-paper #faf9f6 Page background (warm white)
--color-ink #0d0d0d Primary text, headings
--color-muted #6b6560 Secondary text, captions
--color-border #e2ddd6 Dividers, card borders
--color-blue #2563eb Blue accent (Infographic template)

Changing primary color — example

CSS — Rebrand to teal
/* In css/templates/executive.css */
:root {
  /* Default red palette → Teal rebrand */
  --t-primary:  #0d9488;  /* was #c84b31 */
  --t-accent2:  #14b8a6;  /* was #e8743a */
  --t-primary:  #0f172a;  /* sidebar bg: was #1a1a2e */
}

Customization

Layout & Spacing

FORMA uses a spacing scale built from CSS custom properties. All padding, gaps, and margins reference these tokens so adjusting one value reflows the entire layout proportionally.

Spacing scale

TokenValueTypical use
--space-10.25rem (4px)Micro gaps, icon padding
--space-20.5rem (8px)Tight spacing, tag gaps
--space-30.75rem (12px)List item gaps
--space-41rem (16px)Base spacing unit
--space-61.5rem (24px)Section inner padding
--space-82rem (32px)Between experience blocks
--space-102.5rem (40px)Section padding vertical
--space-123rem (48px)Sidebar top padding
--space-164rem (64px)Main content outer padding

Sidebar width

Templates with sidebars (Executive, Noir) use the --sidebar-width variable. Adjust it to make the sidebar wider or narrower:

CSS — Adjust sidebar width
:root {
  --sidebar-width: 260px;  /* narrower */
  --sidebar-width: 320px;  /* wider   */
}

Templates

Template Reference

Six distinct templates — each with its own visual identity, font stack, and CSS file. All share the same semantic HTML structure and print rules.

Executive

Executive

Dark navy sidebar with skill bars, achievement metrics grid, corporate color scheme. Ideal for senior corporate or PM roles.

Open preview ↗
Creative

Creative

Full-bleed gradient hero, dark tag strip, split two-column body. Best for designers, creatives, and product people with strong portfolios.

Open preview ↗
Minimal

Minimal

Pure white, typography-first, dot-rating skills, generous white space. Perfect for engineers, writers, and those who prefer restraint.

Open preview ↗
NOIR

Noir

Full dark theme with red glow accents, card-based experience blocks, tech tag cloud. Ideal for DevOps, backend engineers, and security professionals.

Open preview ↗
Infographic

Infographic

Blue/dark split header, timeline experience, progress bar skills, language circles. Excellent for data scientists, analysts, and researchers.

Open preview ↗
Academic

Academic

Warm gold accents, double-border header, publication list, citation metrics. Designed for faculty, postdocs, PhD candidates, and researchers.

Open preview ↗
💡
Choosing the right template. As a rule of thumb: use Executive or Infographic for corporate/tech roles, Creative for design/product, Minimal for engineering/writing, Noir for DevOps/security, and Academic for research/faculty positions.

Export

Print & PDF Export

FORMA is designed from the ground up for print-quality PDF output. Every template includes dedicated @media print rules and @page configuration in css/print.css.

How to export

1

Open in Chrome or Chromium

Other browsers work but Chrome produces the most faithful PDF output, especially for background colors, gradients, and custom fonts.

2

Click "Save PDF" in the toolbar

The toolbar at the top of every template has a Save PDF button that calls window.print() directly. Alternatively, press Ctrl+P (Windows/Linux) or Cmd+P (Mac).

3

Set destination to "Save as PDF"

In Chrome's print dialog, click More settings and ensure: Paper size: A4, Margins: None, and Background graphics: ✓ checked. Then click Save.

⚠️
Always check "Background graphics". This setting is off by default in Chrome's print dialog. Without it, sidebar backgrounds, skill bar fills, and colored accents will be stripped from your PDF. It must be enabled every time.

Print CSS internals

css/print.css
@media print {

  /* Hide the preview toolbar */
  .toolbar { display: none !important; }

  /* A4 page setup — no margins, full bleed */
  @page {
    size:   A4;
    margin: 0;
  }

  /* Remove outer page padding */
  html, body {
    width:   210mm;
    height:  297mm;
    padding: 0 !important;
    margin:  0 !important;
  }

  /* Preserve background colors and images */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust:         exact !important;
  }

  /* Prevent experience blocks from splitting across pages */
  .exp-item, .edu-item, .pub-item {
    break-inside:      avoid;
    page-break-inside: avoid;
  }
}

US Letter vs A4

Templates default to A4 (210mm × 297mm). To switch to US Letter (8.5in × 11in), update the @page rule in css/print.css:

css/print.css — US Letter
@page {
  size:   letter;   /* Change from 'A4' */
  margin: 0;
}

Export

ATS Optimization

All FORMA templates are built with ATS (Applicant Tracking System) compatibility as a first-class requirement — not an afterthought.

What FORMA does for ATS

TechniqueHow FORMA implements it
Semantic HTMLUses <article>, <section>, <header>, <address>, <ul>, and <h1–h3> — the tags ATS engines are built to parse
No image-based textEvery word — name, role, bullets — is real HTML text, never embedded in a graphic or canvas element
No text boxesUnlike Word/InDesign, there are no absolute-positioned floating text frames that ATS parsers skip
Logical reading orderHTML source order matches visual reading order — ATS parsers read the HTML sequentially, so structure is preserved
Accessible labelsAll sections use aria-labelledby pointing to their heading, making the document structure unambiguous
Plain text bullet contentAchievement bullets are plain <li> text with no nested formatting that could confuse parsers
🤖
Test your resume. Before submitting, paste the text content of your PDF into Jobscan or Resume Worded to verify it parses correctly against the job description keywords.

What to avoid

Even with FORMA's ATS-safe structure, a few customizations can hurt ATS scores:

Avoid these modifications:
  • Placing key content inside SVG or Canvas elements
  • Converting the resume to a scanned image PDF
  • Using very decorative or icon fonts for actual text content
  • Removing semantic heading tags (h1h3) in favour of styled divs
  • Replacing <ul><li> bullet lists with CSS ::before-only decorative lists

Reference

CSS Variable Reference

Complete reference of every CSS custom property across the FORMA system, with their default values and usage locations.

tokens.css — Global tokens

VariableDefaultDescription
--color-primary#c84b31Main brand accent color
--color-primary-dk#b03d25Hover state of primary
--color-secondary#1a1a2eDark navy (sidebar bg)
--color-accent#c9a84cGold accent
--color-blue#2563ebBlue accent (Infographic)
--color-ink#0d0d0dPrimary text color
--color-paper#faf9f6Page background
--color-cream#f4f1eaLight section backgrounds
--color-muted#6b6560Secondary text
--color-border#e2ddd6Dividers and borders
--font-display'Playfair Display', serifHeadings and display text
--font-body'DM Sans', sans-serifBody text
--font-mono'DM Mono', monospaceLabels, code, metadata
--sidebar-width300pxWidth of sidebar (Executive, Noir)
--resume-width960pxMax-width of resume paper
--shadow-sm/md/lg/xlVariousBox shadow utility scale
--radius-sm/md/lg4px / 8px / 12pxBorder radius scale

Template-level overrides (--t-*)

Each template CSS file declares its own --t-* variables that override the global tokens within that template's scope:

VariableTypical purposeTemplates
--t-primaryTemplate's main accent colorAll
--t-accent2Gradient end / secondary accentExecutive, Creative, Noir
--t-darkDark background colorCreative
--t-bgPage/sidebar backgroundNoir
--t-surfaceCard surface colorNoir
--t-goldGold accentAcademic
--t-blueBlue accentInfographic
--t-mutedMuted text overrideAll
--t-borderBorder color overrideAll
--t-textOn-dark text colorExecutive, Noir

Reference

HTML Structure Guide

All six templates share the same semantic HTML skeleton. Understanding the structure makes it easy to add, remove, or reorder sections.

Outer shell

HTML — Resume outer shell
<body>

  <!-- Preview toolbar (hidden on print) -->
  <nav class="toolbar"></nav>

  <!-- Outer page background -->
  <div class="page-bg">
    <div class="resume-shadow-wrap">

      <!-- The "paper" — white card with shadow -->
      <article class="resume">

        <!-- Sidebar (where applicable) -->
        <aside class="sidebar"></aside>

        <!-- Main content -->
        <main class="main">

          <!-- Each section follows this pattern: -->
          <section
            class="resume-section"
            aria-labelledby="h-experience"
          >
            <h2 class="section-heading" id="h-experience">
              Professional Experience
            </h2>
            <!-- content -->
          </section>

        </main>
      </article>

    </div>
  </div>

  <script src="js/resume.js"></script>
</body>

Section heading pattern

Every resume section uses this exact pattern for ATS accessibility. The aria-labelledby on the <section> and the matching id on the <h2> must always be paired:

HTML — Section heading pattern
<!-- Always use this exact pattern for new sections -->
<section class="resume-section" aria-labelledby="h-skills">
  <h2 class="section-heading" id="h-skills">Skills</h2>
  <!-- your content here -->
</section>

Reference

Fonts Guide

FORMA loads all fonts from Google Fonts via CDN. Here are recommended alternative pairings organized by personality, ready to drop in as replacements.

Corporate / Professional

DisplayBodyCharacter
Playfair DisplayDM SansClassic, editorial — default Executive
Libre BaskervilleSource Sans 3Authoritative, clean
LoraNunito SansWarm, approachable professional
MerriweatherOpen SansTraditional, legible

Creative / Design

DisplayBodyCharacter
FrauncesOutfitExpressive, contemporary — default Creative
DM Serif DisplayDM SansRefined, editorial
Abril FatfaceRalewayBold personality
SpectralJostLiterary, considered

Technical / Engineering

DisplayBodyCharacter
SyneInterSharp, modern — default Noir
Plus Jakarta SansPlus Jakarta SansGeometric, versatile
Be Vietnam ProBe Vietnam ProClean, international
ManropeManropeBalanced, technical

Support

Frequently Asked Questions

Can I use FORMA without internet?

Yes, with one exception. The CSS, JS, and HTML all work offline. Google Fonts, however, require an internet connection to load. To use offline, download the font files from Google Fonts and update the @font-face declarations in the stylesheet to reference local files instead of the CDN URL.

My PDF is missing sidebar background colors. Why?

Chrome's print dialog has a Background graphics checkbox that defaults to off. Click More settings in the print dialog and enable it. This is required any time a template has colored sidebars, gradient headers, or filled elements.

Can I add a photo to my resume?

Yes. The avatar circle in sidebar templates can be replaced with a real photo. Replace the initials <div> with an <img> element and remove the gradient background:

HTML — Replace initials with photo
<!-- Replace this: -->
<div class="sidebar__avatar">AM</div>

<!-- With this: -->
<img
  src="your-photo.jpg"
  alt="Alexandra Monroe"
  class="sidebar__avatar"
  style="object-fit:cover;background:none"
>
⚠️
Note on photos and ATS. Many ATS systems are designed to ignore embedded photos to prevent bias. Whether to include a photo depends entirely on the country and industry you're applying in. In the US, photos are generally discouraged; in Germany and many European countries, they're expected.

How do I add a second page?

FORMA templates are designed to be single-page. If your content overflows, first check for ways to tighten the copy. If a second page is truly needed, reduce font sizes slightly (edit the --text-* tokens) or reduce section padding. The HTML will naturally flow to a second page when printed.

Can I host this as a live website?

Yes — just upload the entire folder to any static hosting service (GitHub Pages, Netlify, Vercel, Cloudflare Pages). All external links, CSS, and JS work with standard relative paths. No server-side configuration needed.

Does the Extended License cover white-labeling?

Yes. The Extended License grants permission to rebrand, modify, and incorporate FORMA templates into commercial products, SaaS platforms, or tools distributed to end users. The Regular License covers personal use only. See the License section for the full terms.

Are there Figma or design source files?

Figma source files are included with the Extended License ($149). They contain all six templates as responsive Figma frames with Auto Layout and shared style variables matching the CSS token system.

Support

License

UseStarter ($19)Bundle ($49)Extended ($149)
Personal resume use✓ Yes✓ Yes✓ Yes
Unlimited personal resumes✓ Yes✓ Yes✓ Yes
Modify HTML and CSS✓ Yes✓ Yes✓ Yes
Use for clients (freelance)1 clientUp to 5✓ Unlimited
Include in SaaS product✗ No✗ No✓ Yes
Redistribute to end users✗ No✗ No✓ Yes
White-label / rebrand✗ No✗ No✓ Yes
Resell as-is (without modification)✗ No✗ No✗ No
📄
For any use case not covered above, contact us at license@forma-templates.com. We're happy to issue custom licenses for enterprise or educational institutions.

Support

Changelog

v1.0.0 — March 2026 Latest

  • Initial release — 6 templates: Executive, Creative, Minimal, Noir, Infographic, Academic
  • Full external CSS architecture with shared tokens.css, base.css, toolbar.css, resume-shell.css, print.css
  • Per-template CSS files in css/templates/ with :root theme config block
  • Shared js/resume.js (print handler, scroll reveal, scroll hint) and js/landing.js
  • Fully semantic HTML5 with ARIA labels on all sections
  • @media print + @page { size: A4; margin: 0 } baked into print.css
  • Mobile-responsive scroll wrapper for preview on small screens
  • Landing page (index.html) with filterable template gallery, pricing, and testimonials
  • This documentation page (docs.html)

Future versions will include additional templates, Figma source file updates, and additional font pairings. All purchases include lifetime updates.