This guide walks you through customizing all the content in your NILVER T.I Portfolio, from personal information to project showcases.
Hero Section
The main introduction is located in index.html:66-82.
Update Your Name and Title
<!-- Current -->
< h2 class = "text-4xl md:text-6xl font-bold mb-6" >
Hola, soy < span class = "text-red-accent" > NILVER T.I </ span >
</ h2 >
< p class = "text-xl md:text-2xl text-gray-300 mb-8" >
Desarrollador de Tecnologías de la Información especializado en soluciones web modernas.
</ p >
<!-- Customized -->
< h2 class = "text-4xl md:text-6xl font-bold mb-6" >
Hi, I'm < span class = "text-red-accent" > Your Name </ span >
</ h2 >
< p class = "text-xl md:text-2xl text-gray-300 mb-8" >
Full-Stack Developer specializing in React and Node.js applications.
</ p >
< div class = "flex flex-col sm:flex-row sm:justify-start justify-center gap-4" >
< a href = "#projects"
class = "bg-red-accent hover:bg-red-700 text-white px-6 py-3 rounded-md font-medium transition hover:scale-105" >
Ver proyectos <!-- Change to: View Projects -->
</ a >
< a href = "#contact"
class = "border border-red-accent text-red-accent hover:bg-red-900 hover:bg-opacity-20 px-6 py-3 rounded-md font-medium transition hover:scale-105" >
Contactar <!-- Change to: Contact Me -->
</ a >
</ div >
Header Branding
Update the logo and site name in index.html:29:
<!-- Current -->
< h1 class = "text-2xl font-bold red-accent" > NILVER < span class = "text-white" > T.I </ span ></ h1 >
<!-- Customized -->
< h1 class = "text-2xl font-bold red-accent" > YOUR < span class = "text-white" > BRAND </ span ></ h1 >
The header appears at the top of every page and should reflect your personal or professional brand name.
The navigation menu appears in both desktop (index.html:30-40) and mobile (index.html:49-56) versions.
Desktop Navigation
< nav class = "hidden md:block" >
< ul class = "flex space-x-8" >
< li >< a href = "#home" class = "nav-link text-white hover:text-red-accent transition" > Inicio </ a ></ li >
< li >< a href = "#skills" class = "nav-link text-white hover:text-red-accent transition" > Habilidades </ a ></ li >
< li >< a href = "#projects" class = "nav-link text-white hover:text-red-accent transition" > Proyectos </ a ></ li >
< li >< a href = "#contact" class = "nav-link text-white hover:text-red-accent transition" > Contacto </ a ></ li >
</ ul >
</ nav >
Spanish (Current)
English
Add Section
< li >< a href = "#home" > Inicio </ a ></ li >
< li >< a href = "#skills" > Habilidades </ a ></ li >
< li >< a href = "#projects" > Proyectos </ a ></ li >
< li >< a href = "#contact" > Contacto </ a ></ li >
< li >< a href = "#home" > Home </ a ></ li >
< li >< a href = "#skills" > Skills </ a ></ li >
< li >< a href = "#projects" > Projects </ a ></ li >
< li >< a href = "#contact" > Contact </ a ></ li >
< li >< a href = "#home" > Home </ a ></ li >
< li >< a href = "#about" > About </ a ></ li > <!-- New! -->
< li >< a href = "#skills" > Skills </ a ></ li >
< li >< a href = "#projects" > Projects </ a ></ li >
< li >< a href = "#contact" > Contact </ a ></ li >
When adding new navigation items, you must also update the mobile menu (index.html:50-55) to maintain consistency across devices.
Skills Section
The skills section displays your technical abilities with circular progress indicators (index.html:107-246).
Understanding Skill Structure
Each skill has three components:
Percentage value - Displayed in the circle (e.g., 70%)
Title - Skill name (e.g., HTML5 & CSS3)
Description - Brief explanation
Skill Data Configuration
Here’s the current skill structure:
< div class = "skill-item text-center p-6 rounded-lg hover:bg-gray-900 transition cursor-pointer" >
< div class = "relative w-32 h-32 mx-auto mb-4" >
< svg width = "120" height = "120" viewBox = "0 0 120 120" class = "mx-auto" >
< circle cx = "60" cy = "60" r = "50" fill = "none" stroke = "#333" stroke-width = "8" />
< circle class = "skill-circle" cx = "60" cy = "60" r = "50"
style = "--dash-offset: 94.2;"
data-value = "70" /> <!-- 70% skill level -->
< text x = "60" y = "65" text-anchor = "middle" fill = "#fff" font-size = "20" > 70% </ text >
</ svg >
</ div >
< h3 class = "text-xl font-semibold mb-2" > HTML5 & CSS3 </ h3 >
< h3 class = "text-xl font-semibold mb-2" > HTML5 & CSS3 </ h3 >
< p class = "text-gray-400" > Maquetación web semántica y estilos avanzados </ p >
</ div >
Step 1: Calculate Dash Offset
The --dash-offset value determines the circle fill animation. Use this formula:
dash-offset = 314 - (314 × percentage / 100)
Examples:
- 70% → 314 - (314 × 0.70) = 94.2
- 80% → 314 - (314 × 0.80) = 62.8
- 90% → 314 - (314 × 0.90) = 31.4
- 50% → 314 - (314 × 0.50) = 157.0
Step 2: Update Skill Content
Modify the five existing skills (lines 122-191) or add new ones:
Skill 1: HTML/CSS
< div class = "skill-item text-center p-6 rounded-lg hover:bg-gray-900 transition cursor-pointer" >
< div class = "relative w-32 h-32 mx-auto mb-4" >
< svg width = "120" height = "120" viewBox = "0 0 120 120" class = "mx-auto" >
< circle cx = "60" cy = "60" r = "50" fill = "none" stroke = "#333" stroke-width = "8" />
< circle class = "skill-circle" cx = "60" cy = "60" r = "50"
style = "--dash-offset: 94.2;" data-value = "70" />
< text x = "60" y = "65" text-anchor = "middle" fill = "#fff" font-size = "20" > 70% </ text >
</ svg >
</ div >
< h3 class = "text-xl font-semibold mb-2" > HTML5 & CSS3 </ h3 >
< p class = "text-gray-400" > Maquetación web semántica y estilos avanzados </ p >
</ div >
Skill 2: JavaScript
< div class = "skill-item text-center p-6 rounded-lg hover:bg-gray-900 transition cursor-pointer" >
< div class = "relative w-32 h-32 mx-auto mb-4" >
< svg width = "120" height = "120" viewBox = "0 0 120 120" class = "mx-auto" >
< circle cx = "60" cy = "60" r = "50" fill = "none" stroke = "#333" stroke-width = "8" />
< circle class = "skill-circle" cx = "60" cy = "60" r = "50"
style = "--dash-offset: 62.8;" data-value = "80" />
< text x = "60" y = "65" text-anchor = "middle" fill = "#fff" font-size = "20" > 80% </ text >
</ svg >
</ div >
< h3 class = "text-xl font-semibold mb-2" > JavaScript </ h3 >
< p class = "text-gray-400" > Interactividad y lógica del lado del cliente </ p >
</ div >
Add New Skill
<!-- Add after the last skill -->
< div class = "skill-item text-center p-6 rounded-lg hover:bg-gray-900 transition cursor-pointer" >
< div class = "relative w-32 h-32 mx-auto mb-4" >
< svg width = "120" height = "120" viewBox = "0 0 120 120" class = "mx-auto" >
< circle cx = "60" cy = "60" r = "50" fill = "none" stroke = "#333" stroke-width = "8" />
< circle class = "skill-circle" cx = "60" cy = "60" r = "50"
style = "--dash-offset: 125.6;" data-value = "60" />
< text x = "60" y = "65" text-anchor = "middle" fill = "#fff" font-size = "20" > 60% </ text >
</ svg >
</ div >
< h3 class = "text-xl font-semibold mb-2" > Python </ h3 >
< p class = "text-gray-400" > Data science and backend development </ p >
</ div >
Step 3: Update Bar View (Optional)
If you modify circular skills, also update the bar view (index.html:194-244):
< div class = "skill-bar-item p-6 rounded-lg hover:bg-gray-900 transition cursor-pointer" >
< h3 class = "text-xl font-semibold mb-2" > HTML5 & CSS3 </ h3 >
< p class = "text-gray-400 mb-4" > Maquetación web semántica y estilos avanzados </ p >
< div class = "w-full bg-gray-800 rounded-full h-4" >
< div class = "bg-red-accent h-4 rounded-full" style = "width: 70%" ></ div > <!-- Match percentage -->
</ div >
< p class = "text-right mt-2 text-gray-400" > 70% </ p >
</ div >
The skills dynamically switch between circular and bar views via the toggle button (index.html:114-118). The bar view is automatically generated by JavaScript in js/main.js:128-143, so manual updates ensure consistency.
Projects Section
The portfolio currently showcases 5 projects (index.html:248-407). Each project follows this structure:
Project Card Template
< div class = "bg-gray-900 rounded-xl overflow-hidden shadow-md hover:shadow-red-700 transition relative" >
<!-- Project Image -->
< div class = "h-48 bg-slate-800 flex items-center justify-center" >
< img src = "img/redes.jpg" alt = "Redes Sociales" class = "h-full object-contain" />
</ div >
<!-- Project Info -->
< div class = "p-6" >
< h3 class = "text-xl font-semibold mb-2 text-white" > Gestor de Redes Sociales </ h3 >
< p class = "text-gray-400 mb-4" >
Web interactiva para administrar múltiples redes sociales desde un solo panel.
Ideal para creadores de contenido y pymes.
</ p >
<!-- View More Button -->
< button onclick = " toggleDetails ( this )"
class = "bg-red-accent hover:bg-red-600 text-white px-4 py-2 rounded-md text-sm transition" >
Ver más
</ button >
<!-- Hidden Details -->
< div class = "details-container max-h-0 overflow-hidden transition-all duration-500 ease-in-out" >
< div class = "mt-3 flex gap-2" >
< a href = "https://nilverti.netlify.app/" target = "_blank"
class = "block w-full bg-gray-800 text-white text-center py-2 rounded-md hover:bg-gray-700 transition" >
🌐 Ver Web
</ a >
< a href = "https://github.com/NilverTI/Redes-Sociales" target = "_blank"
class = "block w-full bg-gray-800 text-white text-center py-2 rounded-md hover:bg-gray-700 transition" >
💻 Ver Código
</ a >
</ div >
</ div >
</ div >
</ div >
Prepare your project image - Place it in the img/ folder (e.g., img/myproject.jpg)
Copy the project card template and insert it into the grid:
<!-- Add inside the projects grid after line 255 -->
< div class = "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-10" >
<!-- Existing projects... -->
<!-- NEW PROJECT -->
< div class = "bg-gray-900 rounded-xl overflow-hidden shadow-md hover:shadow-red-700 transition relative" >
< div class = "h-48 bg-slate-800 flex items-center justify-center" >
< img src = "img/myproject.jpg" alt = "My Project" class = "h-full object-contain" />
</ div >
< div class = "p-6" >
< h3 class = "text-xl font-semibold mb-2 text-white" > My Awesome Project </ h3 >
< p class = "text-gray-400 mb-4" >
A full-stack e-commerce platform built with React, Node.js, and MongoDB.
Features include user authentication, payment processing, and real-time inventory.
</ p >
< button onclick = " toggleDetails ( this )"
class = "bg-red-accent hover:bg-red-600 text-white px-4 py-2 rounded-md text-sm transition" >
Ver más
</ button >
< div class = "details-container max-h-0 overflow-hidden transition-all duration-500 ease-in-out" >
< div class = "mt-3 flex gap-2" >
< a href = "https://myproject.com" target = "_blank"
class = "block w-full bg-gray-800 text-white text-center py-2 rounded-md hover:bg-gray-700 transition" >
🌐 Ver Web
</ a >
< a href = "https://github.com/username/myproject" target = "_blank"
class = "block w-full bg-gray-800 text-white text-center py-2 rounded-md hover:bg-gray-700 transition" >
💻 Ver Código
</ a >
</ div >
</ div >
</ div >
</ div >
</ div >
Simply delete the entire <div class="bg-gray-900 rounded-xl...">...</div> block for unwanted projects.
Update these fields for each project:
Image : <img src="img/yourimage.jpg" alt="Description">
Title : <h3>Your Project Name</h3>
Description : <p class="text-gray-400">Your description...</p>
Live URL : <a href="https://yourproject.com">
Code URL : <a href="https://github.com/username/repo">
The “Ver más” button triggers toggleDetails() in js/main.js:156-169, which smoothly expands/collapses the project links. This functionality works automatically for all project cards.
Social media icons appear in the footer (index.html:469-490).
Current Social Links
< div class = "flex space-x-5 text-xl text-gray-400 w-full md:w-auto justify-center md:justify-end" >
< a href = "https://www.instagram.com/nilvert.i/" class = "hover:text-pink-500 transition" target = "_blank" title = "Instagram" >
< i class = "fab fa-instagram" ></ i >
</ a >
< a href = "https://github.com/NilverTI" class = "hover:text-white transition" target = "_blank" title = "GitHub" >
< i class = "fab fa-github" ></ i >
</ a >
< a href = "https://www.linkedin.com/in/nilverti/" class = "hover:text-blue-500 transition" target = "_blank" title = "LinkedIn" >
< i class = "fab fa-linkedin" ></ i >
</ a >
< a href = "https://tiktok.com/@nilvert.i" class = "hover:text-pink-400 transition" target = "_blank" title = "TikTok" >
< i class = "fab fa-tiktok" ></ i >
</ a >
< a href = "https://www.youtube.com/@nilvert.i" class = "hover:text-red-600 transition" target = "_blank" title = "YouTube" >
< i class = "fab fa-youtube" ></ i >
</ a >
</ div >
Replace the URLs with your own profiles:
<!-- Instagram -->
< a href = "https://www.instagram.com/yourusername/" class = "hover:text-pink-500 transition" target = "_blank" >
<!-- GitHub -->
< a href = "https://github.com/yourusername" class = "hover:text-white transition" target = "_blank" >
<!-- LinkedIn -->
< a href = "https://www.linkedin.com/in/yourprofile/" class = "hover:text-blue-500 transition" target = "_blank" >
<!-- Twitter/X -->
< a href = "https://twitter.com/yourusername" class = "hover:text-blue-400 transition" target = "_blank" title = "Twitter" >
< i class = "fab fa-twitter" ></ i >
</ a >
<!-- Discord -->
< a href = "https://discord.gg/yourserver" class = "hover:text-indigo-400 transition" target = "_blank" title = "Discord" >
< i class = "fab fa-discord" ></ i >
</ a >
<!-- Email -->
< a href = "mailto:[email protected] " class = "hover:text-yellow-400 transition" title = "Email" >
< i class = "fas fa-envelope" ></ i >
</ a >
Delete the entire <a> tag for platforms you don’t use.
The portfolio uses Font Awesome 6.5.0 (loaded in index.html:20-21). Browse available icons at fontawesome.com/icons and use the class name (e.g., fab fa-twitter).
The contact form is located in index.html:417-456.
< form id = "contactForm" class = "space-y-6" >
< div >
< label for = "name" class = "block text-gray-300 mb-2" > Nombre </ label > <!-- Change to: Name -->
< input type = "text" id = "name" name = "name" class = "form-input w-full px-4 py-2 rounded-md" required >
</ div >
< div >
< label for = "email" class = "block text-gray-300 mb-2" > Correo electrónico </ label > <!-- Change to: Email -->
< input type = "email" id = "email" name = "email" class = "form-input w-full px-4 py-2 rounded-md" required >
</ div >
< div >
< label for = "message" class = "block text-gray-300 mb-2" > Mensaje </ label > <!-- Change to: Message -->
< textarea id = "message" name = "message" rows = "5" class = "form-input w-full px-4 py-2 rounded-md" required ></ textarea >
</ div >
< button type = "submit" class = "bg-red-accent hover:bg-red-700 text-white px-6 py-3 rounded-md w-full" >
Enviar mensaje <!-- Change to: Send Message -->
</ button >
</ form >
The form currently only displays a success message (index.html:448-455) without actual email submission. To enable real form submission, integrate a backend service like Formspree , EmailJS , or a custom API endpoint.
Section Headings
All major sections have styled headings with the red accent:
<!-- Skills Section (Line 110) -->
< h2 class = "text-3xl md:text-4xl font-bold mb-16 text-center" >
Mis < span class = "red-accent" > Habilidades </ span >
</ h2 >
<!-- Projects Section (Line 251) -->
< h2 class = "text-3xl md:text-4xl font-bold mb-16 text-center" >
Mis < span class = "red-accent" > Proyectos </ span >
</ h2 >
<!-- Contact Section (Line 413) -->
< h2 class = "text-3xl md:text-4xl font-bold mb-16 text-center" >
Contáct < span class = "red-accent" > ame </ span >
</ h2 >
The <span class="red-accent"> wrapper creates the signature red highlight effect. Adjust which part of the heading is highlighted by moving the span tags.
Update the copyright notice in index.html:465-467:
<!-- Current -->
< p > © 2026 < span class = "text-white font-semibold" > NILVER T.I </ span > — Todos los derechos reservados. </ p >
<!-- Customized -->
< p > © 2026 < span class = "text-white font-semibold" > Your Name </ span > — All rights reserved. </ p >
Language Localization
The portfolio is currently in Spanish. To translate to English or another language:
Main Sections
Skills Section
Projects Section
Contact Form
Inicio → Home
Habilidades → Skills
Proyectos → Projects
Contacto → Contact
Ver proyectos → View Projects
Contactar → Contact Me
Mis Habilidades → My Skills
Cambiar a vista de barras → Switch to bar view
Cambiar a vista circular → Switch to circular view
Mis Proyectos → My Projects
Ver más → View More
Ver Web → View Website
Ver Código → View Code
Contáctame → Contact Me
Nombre → Name
Correo electrónico → Email
Mensaje → Message
Enviar mensaje → Send Message
¡Mensaje enviado! → Message Sent!
Gracias por contactarme → Thanks for contacting me
Remember to update the lang attribute in index.html:10 from lang="es" to lang="en" for proper SEO and accessibility.
Quick Reference Checklist
Next Steps
Styling Customization Customize colors, fonts, spacing, and visual design
Animation Customization Modify particles, SVG animations, and interactive effects