Overview
This portfolio is built with Astro and Tailwind CSS, making it highly customizable. You can easily modify colors, typography, animations, and content to match your personal brand.Customizing Colors
The color scheme is defined intailwind.config.mjs using Tailwind’s theme extension system.
Primary and Accent Colors
The portfolio uses a primary blue color palette and an accent cyan palette:tailwind.config.mjs
Changing the Color Scheme
To change to a different color scheme:Choose your base color
Select a primary color that represents your brand. You can use any hex color code.
Generate the palette
Use a palette generator to create shades from 50 to 950. Replace the
primary object in tailwind.config.mjs.Dark Mode Colors
Dark mode uses Tailwind’s class-based dark mode (darkMode: 'class'). The base colors are defined in the Layout component:
src/layouts/Layout.astro
- Update background: Change
#020617(slate-950) - Update text: Change
#f1f5f9(slate-100)
Customizing Typography
Font Family
The portfolio uses Inter font from Google Fonts. To change it:The font is preloaded for performance. Keep the
onload attribute to prevent render-blocking.Custom Animations
The portfolio includes several custom animations defined intailwind.config.mjs:
tailwind.config.mjs
Creating Custom Animations
To add your own animation:- Define the keyframes in the
keyframesobject - Reference it in the
animationobject - Use it in your components with
animate-{name}
Updating Content
Personal Information
Content is managed through the i18n translation system. Editsrc/i18n/utils.ts:
src/i18n/utils.ts
Updating CV Files
CV/Resume files are stored inpublic/cv/ with separate folders for each language:
public/cv/es/- Spanish CVpublic/cv/en/- English CV
Images and Assets
Static assets are stored in thepublic/ directory:
public/favicon.svg- Site faviconpublic/cv/- CV/Resume files
public/favicon.svg with your own SVG or add PNG versions:
src/layouts/Layout.astro
Customizing Components
Modifying Layout
The main layout is insrc/layouts/Layout.astro. This controls:
- HTML structure
- Meta tags and SEO
- Font loading
- Dark mode initialization
- Global styles
- Scroll animations
Component Structure
Components are located insrc/components/:
Hero.astro- Landing sectionAbout.astro- About/experience sectionProjects.astro- Projects/case studiesSkills.astro- Technical skillsContact.astro- Contact informationNavbar.astro- Navigation barFooter.astro- FooterThemeToggle.astro- Dark mode toggleLanguageSelector.astro- Language switcher
Customizing the Navbar
Navigation links are defined by translation keys. To add a new section:- Add translation keys in
src/i18n/utils.ts:
- Update the Navbar component to include the new link
- Create the corresponding section component
Scroll Animations
The portfolio uses the Intersection Observer API for scroll-reveal animations. Elements with the.reveal class fade in as they scroll into view.
Example Usage
src/layouts/Layout.astro
opacity- Initial transparencytranslateY- Initial vertical offset- Duration - Change
.7sto your preferred timing - Easing - Modify the
cubic-beziervalues
Next Steps
Internationalization
Learn how to add new languages and manage translations
Dark Mode
Customize dark mode colors and behavior
Deployment
Deploy your customized portfolio to production