Overview
The template system provides multiple pre-designed CV layouts. Each template consists of:- Browser rendering component (for live preview)
- PDF rendering component (for export)
- Template configuration (metadata and capabilities)
Source Files
- Template Types:
components/templates/types.ts - Default Template: Built into
CVPreview.tsxandPDFDocument.tsx - Rhyhorn Template:
components/templates/rhyhorn/ - Nexus Template:
components/templates/nexus/
Template Configuration
Templates are defined with metadata and capabilities:Available Templates
Classic - Traditional CV layout with navy blue header and professional styling
Rhyhorn - Single-column with minimal header and lots of whitespace; clean and modern
Nexus - Two-column layout with a highlighted sidebar and structured right-column content
Template ID Type
Template Utilities
getTemplateById
Retrieve template configuration by ID:isValidTemplateId
Validate template ID:Default Template
The default template is built into the preview components.Features
- Single-column layout
- Navy blue decorative header bar
- Professional styling with Carlito font
- ATS-friendly structure
- No profile image support
Layout
Styling
Rhyhorn Template
Minimalist single-column template with clean design.File Structure
Usage
Component Structure
Features
- Profile image in header (circular)
- Minimal decorative elements
- Generous whitespace
- Clean typography hierarchy
- Section-based architecture
- Fully responsive
Layout
Section Components
Each section is a separate component:Nexus Template
Two-column layout with sidebar and main content area.File Structure
Usage
Features
- Two-column layout (35/65 split)
- Colored sidebar background
- Profile image in sidebar
- Skills and contact in sidebar
- Main content in right column
- Modern, structured design
Layout
Sidebar Sections
- Profile image
- Contact information
- Skills (technical & professional)
- Languages
Main Content Sections
- Name and job title
- Professional summary
- Work experience
- Education
- Projects
- Achievements
Creating a New Template
To add a new template:1. Define Template Config
2. Create Template Components
3. Register in Preview Components
4. Add to Template Selector
The template selector automatically picks up templates from the configuration.Template Best Practices
Visual Consistency
- Ensure HTML preview matches PDF output
- Use same fonts, colors, and spacing
- Test with various data lengths
Responsive Design
- Mobile-friendly layouts
- Scale appropriately for small screens
- Maintain readability at all sizes
ATS-Friendly
- Use semantic HTML structure
- Avoid complex layouts for ATS parsing
- Clear section headings
- Standard fonts
Performance
- Use React.memo for components
- Minimize re-renders with useMemo
- Lazy-load heavy components
- Optimize font loading
Accessibility
- Semantic HTML elements
- Proper heading hierarchy
- Sufficient color contrast
- Screen reader friendly
Template Switching
Templates can be switched dynamically:Related Components
- CVBuilder - Main component
- Preview Components - CVPreview and PDFDocument
- Form Components - Data input