Quick Start
To create a new template:Create a JSON file
Create a new file in
/src/templates/ with a descriptive name (e.g., creative.json)Define the template structure
Add the required fields:
id, name, description, theme, layout, structure, and sectionVariantsTemplate JSON Schema
Here’s the TypeScript definition for a template configuration:/src/types/template.ts
Required Fields
Basic Information
Unique identifier for the template (lowercase, kebab-case recommended)
Display name shown in the UI
Brief description of the template’s style and use case
Theme Configuration
Thetheme object defines all visual styling:
/src/types/template.ts
Color Guidelines
Color Guidelines
- Use hex color codes (e.g.,
"#2563eb") - Ensure sufficient contrast between text and background (WCAG AA minimum)
primaryis typically used for headings and key highlightstextMutedshould be readable but less prominent than main textsidebarTextis only needed for two-column layouts with colored sidebars
Typography Guidelines
Typography Guidelines
- Include fallback fonts (e.g.,
"Inter, sans-serif") - Common base sizes:
"10pt"(compact),"11pt"(standard) - Line height between
1.4and1.6works well for most resumes - Consider using the same font for body and headings for consistency
Spacing Guidelines
Spacing Guidelines
- Use consistent units (rem or cm recommended)
- Typical section gaps:
"1.5rem"to"2.5rem" - Keep page padding generous enough for printing (minimum
"2rem"or"2cm") - Ensure spacing works well when printed on A4 or Letter paper
Layout Configuration
Choose between single-column and two-column layouts:For two-column layouts, the
columns field uses CSS grid syntax. A 35/65 split ("35% 1fr") or 30/70 split ("30% 70%") works well for most resumes.Section IDs
All sections must use these predefined IDs:/src/types.ts
structure.main or structure.sidebar.
Section Variants
Section variants control how each section is visually rendered:/src/types/template.ts
Variant Usage Recommendations
personal-info
personal-info
centered- Center-aligned name and contact info (common for single-column)default- Left-aligned layout (common for two-column)
summary
summary
default- Standard paragraph formatminimal- Reduced visual weight
experience
experience
default- Full-featured with company, position, dates, and descriptionminimal- Simplified layout with less spacingtimeline- Visual timeline representation
education
education
default- Standard layout with school, degree, and datesminimal- Compact format
skills
skills
bullet-list- Simple bulleted listtags- Tag/badge stylesidebar- Optimized for sidebar displaygrid- Multi-column grid layout
projects
projects
default- Full project cards with description and linkscompact- Condensed format
customSections
customSections
default- Standard section formatting
Complete Example Template
Here’s a complete example of a custom “Creative” template:/src/templates/creative.json
Best Practices
Design for Print
Test your template with actual printing. Ensure margins are adequate and colors print well in grayscale.
Maintain Readability
Use readable font sizes (minimum 10pt) and sufficient contrast ratios for accessibility.
Be Consistent
Use spacing and styling consistently throughout the template for a professional appearance.
Consider Content Length
Design layouts that work well with varying amounts of content in each section.
Testing Checklist
Troubleshooting
Template not appearing in the UI
Template not appearing in the UI
- Verify the JSON file is in
/src/templates/ - Check that the JSON syntax is valid (no trailing commas, proper quotes)
- Ensure the template ID matches the filename
- Restart the development server
Sections not rendering correctly
Sections not rendering correctly
- Verify all section IDs are spelled correctly
- Ensure each section appears exactly once in
structure - Check that all section IDs have a corresponding entry in
sectionVariants
Spacing issues
Spacing issues
- Use consistent units throughout (don’t mix rem, px, and cm)
- Test with different content lengths
- Check that
pagePaddingprovides enough margin for printing
Colors not displaying
Colors not displaying
- Ensure hex codes include the
#symbol - Verify color values are valid hex codes
- Check that there’s sufficient contrast for readability
Next Steps
Template Overview
Learn more about how the template system works
Resume Renderer
Understand how templates are rendered

