Welcome to the Homepage Project! This project is a modern, highly customizable homepage template designed for personal, portfolio, or professional use. It features custom fonts, icon support, modular configuration, and a clean, responsive layout.
- Features
- Project Structure
- Getting Started
- Customization
- Usage Examples
- Best Practices
- Screenshots
- Troubleshooting
- Contributing
- License
- Custom Fonts: Uses the Onest font family by default, with options for Blogger Sans, Uni Sans, Rubik, Figtree, and Public Sans. Easily add your own fonts.
- Easy Customization: Modify
font.css
to change fonts or add your own. All styles are modular and easy to update. - Icon Support: Add and manage SVG icons via
icons.js
for use throughout your homepage. - Simple Configuration: Use
config.js
to adjust settings, links, and personalize your homepage content. - Modern Design: Clean, minimal, and beautiful layout for any device.
- Responsive Layout: Fully responsive, works on desktops, tablets, and mobile devices.
- Lightweight: No heavy frameworks, fast loading, and easy to maintain.
- Modular Structure: Easily extend or modify components and sections.
- Accessible: Semantic HTML and customizable for accessibility needs.
- Open Source: MIT licensed for personal or commercial use.
project homepage/
│
├── font.css # Font definitions and customizations
├── icons.js # Icon management and definitions
├── config.js # Configuration file for homepage settings
├── index.html # Main HTML file
├── fonts/ # Directory for font files (Onest, Blogger Sans, etc.)
│ ├── Onest/
│ ├── Blogger Sans/
│ ├── Uni Sans/
│ ├── Rubik/
│ └── Figtree/
└── README.md # Project documentation
git clone https://github.com/Abel-Ajish/homepage.git
cd "project homepage/homepage"
- Download the required font files and place them in the appropriate subfolders under
fonts/
. - Update
font.css
if you add new fonts or change file names.
- Edit
config.js
to set your homepage title, links, and other settings. - Update
font.css
to change the default font or add new font faces. - Add or modify icons in
icons.js
. - Edit
index.html
to change the layout, add sections, or update content.
- Open
index.html
in your browser to view your homepage. - For live reload and advanced development, use a local server (e.g., VS Code Live Server extension).
- Default Font: The
:root
CSS variable--font
infont.css
controls the default font. - Adding Fonts:
- Place your font files in a new folder under
fonts/
. - Add a new
@font-face
rule infont.css
:@font-face { font-family: 'Custom Font'; src: url('./fonts/CustomFont/CustomFont-Regular.ttf'); } :root { --font: 'Custom Font'; }
- Place your font files in a new folder under
- Switching Fonts: Change the
--font
variable to use any available font family. - Font Weights & Styles: Add additional
@font-face
rules for bold, italic, etc.
- Adding Icons:
- Add SVG markup as a string in
icons.js
:// icons.js export const githubIcon = '<svg>...</svg>'; export const twitterIcon = '<svg>...</svg>';
- Reference these icons in your HTML or JS as needed.
- Add SVG markup as a string in
- Organizing Icons: Group icons by category or usage for easier management.
- config.js is the central place for homepage settings:
- Homepage title
- Navigation links
- Social media links
- Theme preferences
- Example:
// config.js export const homepageTitle = 'Jane Doe | Portfolio'; export const links = [ { name: 'GitHub', url: 'https://github.com/Abel-Ajish', icon: 'githubIcon' }, { name: 'LinkedIn', url: 'https://linkedin.com/in/Abel-Ajish', icon: 'linkedinIcon' }, { name: 'Blog', url: '/blog/' } ]; export const theme = 'dark';
- index.html is the main entry point. Use semantic HTML5 elements (
<header>
,<nav>
,<main>
,<footer>
) for structure. - Adding Sections: Insert new sections for About, Projects, Contact, etc.
- Styling: Add or update CSS rules in a separate stylesheet or within
<style>
tags. - Accessibility: Use
aria-labels
, alt text, and proper heading structure.
// config.js
export const links = [
...existing code...
{ name: 'Resume', url: '/resume.pdf', icon: 'fileIcon' }
];
@font-face {
font-family: 'Lato';
src: url('./fonts/Lato/Lato-Regular.ttf');
}
:root {
--font: 'Lato';
}
// icons.js
export const fileIcon = '<svg>...</svg>';
<!-- index.html -->
<section id="about">
<h2>About Me</h2>
<p>Short bio goes here...</p>
</section>
- Keep font files optimized for web (WOFF/WOFF2 preferred for performance).
- Organize icons in
icons.js
for easy reuse. - Use semantic HTML for better SEO and accessibility.
- Test on multiple devices to ensure responsive design.
- Keep configuration modular for easy updates.
- Document your changes in the README for future reference.
- Fonts not loading?
- Ensure font files are in the correct
fonts/
subdirectories. - Check the
src
paths infont.css
. - Use browser dev tools to verify font requests.
- Ensure font files are in the correct
- Icons not displaying?
- Verify SVG markup in
icons.js
. - Make sure you are referencing the correct icon variable in your HTML or JS.
- Verify SVG markup in
- Layout issues?
- Use browser developer tools to inspect and debug CSS.
- Make sure your browser supports modern CSS features.
- Configuration not updating?
- Check for syntax errors in
config.js
. - Ensure you are saving and reloading the page after changes.
- Check for syntax errors in
Contributions are welcome! To contribute:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Commit your changes with clear messages.
- Open a pull request describing your changes.
This project is open source and available under the MIT License.
Tip: For best results, use modern browsers and ensure your fonts are properly placed in the
fonts/
directory. For live development, consider using a local server for hot reload and better performance.