
Da un toque diferente a todos esos curriculum aburridos y marca la diferencia del resto de candidatos! con este proyecto de maquetación de un CV moderno en Angular realizado con Flexbox y Grid.
Tabla de Contenido
Demo
Clic en el siguiente icono
Repositorio
En el siguiente link encuentras el repositorio del proyecto
Requerimientos
- Creación de proyecto con estilos SCSS
- Conocimientos básicos en Flexbox y Grid
- Assets que se encuentran abajo
Assets del proyecto
En el siguiente link encuentras los recursos utilizados en este proyecto
Creación de componentes
ng g c components/lateral ng g c components/centro-superior ng g c components/centro-inferior
A continuación se aprecia la función de cada componente.

Instalación de dependecias
npm install --save ngx-stars
ngx-starts es la dependencia que facilita la creación de las estrellas de puntuación
Lo siguiente es colocar en el archivo index.html el cdn de font awesome
<script src="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"></script>
Modificación estilo styles.css

/* You can add global styles to this file, and also import other style files */ //Agrega fuente para todo el proyecto @font-face{ font-family: 'rubik'; src: url('assets/fonts/Rubik-VariableFont_wght.ttf'); } html, body { height: 100vh; margin: 0; font-family: 'rubik'; }
App.component.html
<div class="container"> <div class="lateral"> <app-lateral></app-lateral> </div> <div class="centro"> <div class="c-superior"> <app-centro-superior></app-centro-superior> </div> <div class="c-inferior"> <app-centro-inferior></app-centro-inferior> </div> </div> </div> <router-outlet></router-outlet>
.container{ display: flex; flex-wrap: wrap; padding: 10px; background-color: #FFF; justify-content: center; background: rgb(255,255,255); background: linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(199,201,221,1) 35%, rgba(220,223,230,1) 100%); } .lateral{ display: flex; flex-direction: column; flex-wrap: wrap; flex-basis: 25%; text-align: center; background-color: #1F497D; color: #FFF; border: 1px solid #000; border-right: 0; } .centro{ display: flex; flex-direction: column; flex-wrap: wrap; flex-basis: 50%; text-align: center; border: 1px solid #000; border-left: 0; background-color: #FFF; } @media(max-width: 2560px){ .lateral{ flex-basis: 10%; } .centro{ flex-basis: 30%; } } @media(max-width: 1920px){ .lateral{ flex-basis: 20%; } .centro{ flex-basis: 40%; } } @media(max-width: 1440px){ .lateral{ flex-basis: 25%; } .centro{ flex-basis: 50%; } } @media(max-width: 1024px){ .lateral{ flex-basis: 30%; } .centro{ flex-basis: 60%; } }
Componente lateral
<div class="titulo"> <h1>Victor Manuel Pedraza Moreno</h1> </div> <h2>Full Stack Developer</h2> <div> <img id="foto" src="assets/img/usuario.svg" alt="foto" width="150" height="200"> </div> <div class="datos"> <div> <i class="fas fa-phone-alt"></i> <i class="fas fa-envelope"></i> <i class="fas fa-thumbtack"></i> </div> <ul> <li> 310000000</li> <li> vmanuelpm97@gmail.com </li> <li> Medellín - Colombia </li> </ul> </div> <div class="redes"> <a href="https://www.linkedin.com/in/victor-manuel-pedraza-moreno-212445157/"> <img src="assets/img/linkedin.png" alt="linkedin" width="38" height="38"> </a> <a href="https://github.com/VManuelPM?tab=repositories"> <img src="assets/img/github.png" alt="github" width="38" height="38"> </a> <a href="https://amoelcodigo.com"> <img src="assets/img/www.png" alt="blog" width="38" height="38"> </a> <a href="https://www.youtube.com/channel/UCyXew4kir7vJT7QY2MpM3_Q"> <img src="assets/img/yotube.png" alt="youtube" width="38" height="38"> </a> </div> <section class="perfil"> <h2>Perfil</h2> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Quasi minus assumenda repellendus, veritatis sapiente fugiat hic labore doloribus rem amet natus, omnis quidem libero, repellat praesentium vel. Maxime, a est. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quasi minus assumenda repellendus, veritatis sapiente fugiat Lorem ipsum dolor sit amet consectetur adipisicing elit. Quasi minus assumenda repellendus, veritatis sapiente fugiat hic labore doloribus rem amet natus, omnis quidem libero, repellat praesentium vel. Maxime, a est. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quasi minus assumenda repellendus, veritatis sapiente fugiat hic labore doloribus rem amet natus, omnis quidem libero, repellat praesentium vel. Maxime, a est. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quasi minus assumenda repellendus, veritatis sapiente fugiat hic labore doloribus rem amet natus, omnis quidem libero, repellat praesentium vel. Maxime, a est. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quasi minus assumenda repellendus, veritatis sapiente fugiat hic labore doloribus rem amet natus, omnis quidem libero, repellat praesentium vel. Maxime, a est. </p> </section>
.titulo { display: flex; justify-content: center; } h1 { flex-basis: 80%; } #foto { background-color: white; } .datos { display: flex; justify-content: space-evenly; & div { display: flex; flex-direction: column; align-self: center; font-size: 22px; & i { margin-top: 15px; } } & ul { list-style: none; padding: 0; & li { margin-top: 15px; } } } .redes { display: flex; justify-content: space-evenly; margin-top: 10px; } .perfil { display: flex; flex-direction: column; align-items: center; & h2 { margin-bottom: 0; } & p { width: 90%; } }
Componente centro superior
<div class="banner">Historial de empleo</div> <div class="experiencia"> <div> <p> May, 2019-Present <span>(Medellín Colombia)</span> </p> </div> <div> <p> Empresa XYZ <span>Cargo</span> </p> <span>Cliente: El super cliente</span> <ul> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> </ul> <span>Cliente: El super cliente</span> <ul> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> </ul> <span>Cliente: El super cliente</span> <ul> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> </ul> </div> <div> <p> May, 2019-Present <span>(Medellín Colombia)</span> </p> </div> <div> <p> Empresa XYZ <span>Cargo</span> </p> <ul> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> </ul> </div> <div> <p> May, 2019-Present <span>(Medellín Colombia)</span> </p> </div> <div> <p> Empresa XYZ <span>Cargo</span> </p> <ul> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> <li>Desarrollador Front-End Angular</li> </ul> </div> </div>
@import '../../../assets/styles/shared.scss'; .experiencia{ display: grid; grid-template-rows: repeat(3 , auto); grid-template-columns: 0.5fr 1fr; align-items: center; & div p { font-weight: bold; & span{ display: block; color: #0e43f0; } } }
Componente centro inferior
<div class="wrap-inferior"> <div class="skills"> <div class="banner">Skills</div> <ul> <li>Angular <ngx-stars [readonly]="true" [size]="1.5" [initialStars]="5" color="#1F497D" ></ngx-stars></li> <li>Java <ngx-stars [readonly]="true" [size]="1.5" [initialStars]="4.5" color="#1F497D" ></ngx-stars></li> <li>Azure Devops <ngx-stars [readonly]="true" [size]="1.5" [initialStars]="4" color="#1F497D" ></ngx-stars></li> <li>AWS <ngx-stars [readonly]="true" [size]="1.5" [initialStars]="3" color="#1F497D" ></ngx-stars></li> <li>Javascript <ngx-stars [readonly]="true" [size]="1.5" [initialStars]="4" color="#1F497D" ></ngx-stars></li> </ul> </div> <div class="idiomas"> <div class="banner">Idiomas</div> <ul> <li>Inglés <ngx-stars [readonly]="true" [size]="1.5" [initialStars]="5" color="#1F497D" ></ngx-stars></li> <li>Español <ngx-stars [readonly]="true" [size]="1.5" [initialStars]="5" color="#1F497D" ></ngx-stars></li> </ul> </div> <div class="educacion"> <div class="banner">Educación</div> <ul> <li> Universidad de Programadores <span>Ingeniero de Sistemas</span> <span>19 de Febrero de 2019</span> </li> <li> Oracle Java <span>Certificación Java</span> <span>19 de Febrero de 2020</span> </li> </ul> </div> </div>
@import '../../../assets/styles/shared.scss'; .wrap-inferior{ display: grid; grid-template-rows: repeat(2, auto); grid-template-columns: repeat(2, 1fr); & .skills{ grid-row: 1 / 3; border-right: 2px solid white; } } .raiting{ height: 150px; background-color: white; } ul{ list-style: none; & li { display: flex; margin-bottom: 5px; } } .skills ul{ text-align: left; padding-left: 0; & li { flex-direction: column; align-items: center; font-weight: bold; } } .idiomas ul li { justify-content: space-between; padding-right: 10px; } .educacion ul li { flex-direction: column; align-items: flex-start; & span:first-child{ color: #0e43f0; font-weight: bold; } }