Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/nicolasgrajaleshoyos/portafolio/llms.txt

Use this file to discover all available pages before exploring further.

Portfolio Moderno’s visual style is controlled almost entirely through tailwind.config.js. Custom color tokens, font families, and keyframe animations are all defined inside the theme.extend block, meaning they extend Tailwind’s defaults rather than replacing them. Any change to this file is picked up by Vite’s dev server immediately via HMR, and is compiled into the production build automatically.

Changing the Primary Color

The primary token — currently set to #06b6d4 (Tailwind’s Cyan 500) — is the site’s main brand color. It appears on links, skill and tag badges, hover effects, the typing cursor in the Hero section, and the main call-to-action button. Change both primary and its darker companion primary-hover together to keep hover states consistent:
tailwind.config.js
theme: {
  extend: {
    colors: {
      'primary': '#8b5cf6',       // change to your brand color
      'primary-hover': '#7c3aed', // darker shade for hover states
    }
  }
}
After saving, every component that uses bg-primary, text-primary, border-primary, or hover:bg-primary-hover will update simultaneously — no per-component edits required.

All Color Tokens

The full set of six custom tokens currently defined in tailwind.config.js is listed below.
TokenDefaultUsage
primary#06b6d4Links, badges, typing cursor, CTA button
primary-hover#0891b2Hover state on primary elements
dark#0f172aDark mode page background
dark-secondary#1e293bDark mode card and section background
medium#64748bMuted body text
light#f1f5f9Light-colored text on dark backgrounds
These tokens are used via standard Tailwind utility classes (e.g., bg-dark, text-medium, dark:bg-dark-secondary) across every component in src/components/.

Changing Fonts

Two font families are registered under theme.extend.fontFamily in tailwind.config.js:
tailwind.config.js
theme: {
  extend: {
    fontFamily: {
      sans: ['Inter', 'sans-serif'],       // body text — applied via font-sans
      heading: ['Poppins', 'sans-serif'],  // headings — applied via font-heading
    },
  }
}
font-sans is the default body font set on the <body> element in index.html. font-heading is applied to all section headings, card titles, and the navigation logo. Tailwind references these font names, but the fonts themselves must be loaded by the browser. Google Fonts are loaded by adding a <link> tag inside the <head> of index.html. Without this tag, the browser falls back to the system sans-serif font instead of rendering Inter or Poppins. To switch to different fonts:
1

Choose your fonts

Pick your desired font families from fonts.google.com. Note the exact font names as they appear in the Google Fonts URL (e.g., Nunito, Outfit, Space+Grotesk).
2

Update the font import in index.html

Open index.html and add or update a Google Fonts <link> tag inside the <head> element to load your chosen fonts. For example, to load Inter and Poppins (the current defaults):
index.html
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
  href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Poppins:wght@700;800;900&display=swap"
  rel="stylesheet"
/>
To switch to different fonts, replace the family names in the URL. For example, to use Outfit for body text and Space Grotesk for headings:
index.html
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
  href="https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&family=Space+Grotesk:wght@700;800&display=swap"
  rel="stylesheet"
/>
3

Update tailwind.config.js

Replace the font names in the fontFamily block to match the names you loaded:
tailwind.config.js
fontFamily: {
  sans: ['Outfit', 'sans-serif'],
  heading: ['Space Grotesk', 'sans-serif'],
},

Custom Animations

Five custom keyframe animations are defined in tailwind.config.js and used across components:
Animation classDurationWhere used
animate-float6s ease-in-out infiniteProfile photo in the About section
animate-blink1s steps(1) infiniteTyping cursor in the Hero section
animate-tilt10s linear infiniteDecorative tilt effect on Hero elements
animate-gradient-shift15s ease infiniteHero section gradient background
animate-fade-in-up0.8s ease-out forwardsInitial page load fade-in
To adjust the duration of any animation, edit the corresponding value in the animation block. For example, to slow the floating profile photo from 6 seconds to 10 seconds:
tailwind.config.js
animation: {
  'float': 'float 10s ease-in-out infinite', // changed from 6s
},
The keyframes block directly beneath animation defines the start and end positions for each effect. You can modify the keyframe values themselves — for instance, increasing the translateY value in the float keyframes to make the photo bob up and down over a larger distance:
tailwind.config.js
keyframes: {
  float: {
    '0%, 100%': { transform: 'translateY(0px)' },
    '50%': { transform: 'translateY(-20px)' }, // increased from -10px
  }
}
The dark and dark-secondary tokens are used extensively across every component as the dark mode page and card backgrounds. Changing either value will update the entire dark mode color scheme simultaneously — all sections, cards, navbars, and modals will reflect the new color at once. Test your replacement colors carefully in both light and dark modes before deploying.

Build docs developers (and LLMs) love