Contents

Chapter 1

Starter Templates Pro: Overview

Four production-ready responsive starter templates for web developers. Each template is a complete, self-contained static website you can open in a browser, customise, and deploy in minutes.


What Is Starter Templates Pro?

Starter Templates Pro is a pack of four distinct website templates that share a common design-token layer (shared/tokens.css). The shared tokens define colors, spacing, typography, border radius, shadows, and motion โ€” so every template feels visually coherent, but each has a completely different layout suited to its purpose.

All templates are zero-dependency: no npm, no bundler, no framework. Just HTML, CSS, and vanilla JavaScript.

The Four Templates

1. Landing Page (templates/landing/)

A marketing landing page for a SaaS product. Best for: product launches, app signups, campaign pages.

Key sections: hero ยท logo strip ยท 6-card feature grid ยท 3-step how-it-works ยท testimonials ยท 3-tier pricing ยท FAQ accordion ยท email CTA

2. Admin Dashboard (templates/dashboard/)

A full app-shell layout with sidebar navigation. Best for: admin panels, internal tools, analytics dashboards.

Key sections: collapsible sidebar ยท sticky topbar ยท 4 stat cards ยท CSS bar chart ยท activity feed ยท projects data table

3. Portfolio (templates/portfolio/)

A personal portfolio for developers and designers. Best for: freelance sites, job applications, personal branding.

Key sections: hero with availability badge ยท filterable project grid ยท about + skills ยท contact cards

4. Documentation Site (templates/docs/)

A documentation site shell. Best for: open-source docs, product manuals, knowledge bases.

Key sections: topbar with search ยท collapsible sidebar TOC ยท article with code blocks + callouts ยท reference table ยท prev/next navigation

Features All Templates Share

  • Dark / light theme โ€” toggle persists to localStorage; inline script prevents flash of wrong theme
  • Mobile-first responsive โ€” works on 320 px phones through 1440 px desktops
  • Accessible โ€” semantic HTML5, ARIA attributes, keyboard navigation, visible :focus-visible ring
  • Reduced motion โ€” all animations disabled or instant when prefers-reduced-motion: reduce is set
  • Zero network requests โ€” no external fonts, icons, or scripts; fully offline-capable

File Structure

starter-templates-pro/
โ”œโ”€โ”€ shared/
โ”‚   โ””โ”€โ”€ tokens.css              โ† canonical design tokens
โ”œโ”€โ”€ templates/
โ”‚   โ”œโ”€โ”€ landing/
โ”‚   โ”‚   โ”œโ”€โ”€ index.html
โ”‚   โ”‚   โ”œโ”€โ”€ style.css
โ”‚   โ”‚   โ”œโ”€โ”€ script.js
โ”‚   โ”‚   โ””โ”€โ”€ README.md
โ”‚   โ”œโ”€โ”€ dashboard/
โ”‚   โ”‚   โ”œโ”€โ”€ index.html
โ”‚   โ”‚   โ”œโ”€โ”€ style.css
โ”‚   โ”‚   โ”œโ”€โ”€ script.js
โ”‚   โ”‚   โ””โ”€โ”€ README.md
โ”‚   โ”œโ”€โ”€ portfolio/
โ”‚   โ”‚   โ”œโ”€โ”€ index.html
โ”‚   โ”‚   โ”œโ”€โ”€ style.css
โ”‚   โ”‚   โ”œโ”€โ”€ script.js
โ”‚   โ”‚   โ””โ”€โ”€ README.md
โ”‚   โ””โ”€โ”€ docs/
โ”‚       โ”œโ”€โ”€ index.html
โ”‚       โ”œโ”€โ”€ style.css
โ”‚       โ”œโ”€โ”€ script.js
โ”‚       โ””โ”€โ”€ README.md
โ”œโ”€โ”€ guide/
โ”‚   โ”œโ”€โ”€ 01-overview.md          โ† this file
โ”‚   โ”œโ”€โ”€ 02-customization-guide.md
โ”‚   โ””โ”€โ”€ 03-template-catalog.md
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ manifest.json
โ””โ”€โ”€ LICENSE

Quick Start

bash
# No install step โ€” just open a template:
open templates/landing/index.html

# Or serve locally for relative-path assets:
python -m http.server 8000
# โ†’ http://localhost:8000/templates/landing/

*Continue to guide 02 for step-by-step customisation instructions.*

Chapter 2

Customization Guide

How to adapt Starter Templates Pro to your own brand, content, and deployment environment.


1. Changing the Color Palette

Every template uses the same CSS custom-property token structure. To re-skin a template, edit the :root block at the top of its style.css:

css
:root {
  /* --- Your brand colors --- */
  --color-primary:       #2563eb;  /* Main action color: buttons, links, accents */
  --color-primary-dark:  #1d4ed8;  /* Hover / pressed state (slightly darker) */
  --color-primary-light: #dbeafe;  /* Backgrounds behind primary text, badge fills */
  --color-accent:        #f59e0b;  /* Secondary highlight: stars, prices, badges */
}

Then mirror the change in [data-theme="dark"]:

css
[data-theme="dark"] {
  --color-primary:       #3b82f6;  /* Slightly lighter for dark backgrounds */
  --color-primary-dark:  #2563eb;
  --color-primary-light: #1e3a5f;  /* Dark-safe tinted surface */
  --color-accent:        #fbbf24;
}

Tip: Use a contrast checker (e.g. WebAIM) to verify your chosen primary color passes WCAG AA (4.5:1) against both --color-bg (light) and the dark --color-bg (#0f172a).


2. Updating Fonts

All templates use the system font stack โ€” no external network requests by default:

css
--font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
             'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;

To use a custom font, download the WOFF2 files and add a @font-face rule:

css
@font-face {
  font-family: 'InterVariable';
  src: url('../fonts/Inter-Variable.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --font-sans:    'InterVariable', ui-sans-serif, system-ui, sans-serif;
  --font-heading: 'InterVariable', ui-sans-serif, system-ui, sans-serif;
}

Never link a Google Fonts โ€” that adds a render-blocking external request that breaks offline use.


3. Replacing Demo Content

All text content is in index.html. Each section is clearly commented โ€” search for the comment to find the section you want:

<!-- โ”€โ”€ HERO โ”€โ”€ -->
<!-- โ”€โ”€ FEATURES โ”€โ”€ -->
<!-- โ”€โ”€ PRICING โ”€โ”€ -->
<!-- โ”€โ”€ FAQ โ”€โ”€ -->

Landing: updating the pricing tiers

Find the .pricing-grid section and update the amount, period, feature list, and CTA button href:

html
<span class="amount">29</span>
<span class="period">/month</span>
...
<a href="https://buy.stripe.com/your-product-link" class="btn btn-primary btn-block">
  Get started
</a>

Dashboard: changing nav items

Duplicate a .nav-item list item and update the label and icon SVG:

html
<li>
  <a href="#your-page" class="nav-item">
    <!-- replace with your icon SVG -->
    <svg ...>...</svg>
    Your Page
  </a>
</li>

Set aria-current="page" on the active item and add is-active to its class list.

Portfolio: adding a project card

Copy an existing .project-card block and set data-category to one of your filter values:

html
<li class="project-card" data-category="web" data-reveal>
  <div class="project-preview project-preview--blue" aria-hidden="true">
    <!-- decorative content or replace with <img> -->
  </div>
  <div class="project-body">
    <h3 class="project-name">Your Project Name</h3>
    <p class="project-desc">What it does and why it matters.</p>
    ...
  </div>
</li>

To add a new filter category, add a button to .filter-bar:

html
<button class="filter-btn" data-filter="mobile" type="button">Mobile</button>

Docs: adding a new page

1. Duplicate templates/docs/index.html as a new file (e.g. projects.html)

2. Update the breadcrumb, article

, and article body content

3. Add a link in the sidebar TOC in all pages

4. Update the prev/next nav links at the bottom of adjacent pages


4. Wiring Up the Email Capture Form

The landing template's CTA form is rendered as a disabled control by default โ€” the and

<label class="consent-label">
  <input type="checkbox" name="consent" required>
  I agree to the <a href="/privacy">Privacy Policy</a>.
</label>

5. Adding Your Own Images

To add real screenshots or photos, replace the CSS placeholder graphics with tags:

html
<!-- Replace .hero-visual or .project-preview content: -->
<img src="assets/screenshot.png"
     alt="Dashboard showing sprint velocity and active projects"
     width="600" height="450"
     loading="lazy">

Best practices:


6. Deploying

Any static hosting provider works. The simplest options:

ProviderSteps
NetlifyDrag the template folder into netlify.com/drop
GitHub PagesPush the template folder to a repo, enable Pages under Settings
Vercelvercel --cwd templates/landing
Cloudflare PagesConnect repo, set output directory to templates/landing
S3 + CloudFrontUpload files, set index.html as the default document
Chapter 3
๐Ÿ”’ Available in full product

Template Catalog

You’ve reached the end of the free preview

Get the full Pro Template Pack and unlock everything.

All Chapters

Get the complete guide with every chapter unlocked, including code samples, diagrams, and best practices.

Full Tool Suite

Access all interactive tools with complete data, all workload profiles, and the full scenario library.

Source Files

Downloadable source code, configuration files, and working examples from every chapter.

Lifetime Updates

Free updates for life. Every new chapter, tool, and improvement included.

Buy Now — $24 →
๐Ÿ“ฆ Free sample included — download another copy for the full product.
Pro Template Pack v1.0.0 โ€” Free Preview