diff --git a/cv/styles/index.css b/cv/styles/index.css new file mode 100644 index 0000000..8ddcd86 --- /dev/null +++ b/cv/styles/index.css @@ -0,0 +1,679 @@ +/*===== GOOGLE FONTS =====*/ +@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap"); + +/*===== VARIABLES CSS =====*/ +:root { + --header-height: 3rem; + + /*========== Colors ==========*/ + --title-color: #0b0a0a; + --text-color: #403a3a; + --text-color-light: #707070; + --container-color: #fafafa; + --container-color-alt: #f0efef; + --body-color: #fcfcfc; + + /*========== Font and typography ==========*/ + --body-font: "Poppins", sans-serif; + --h1-font-size: 1.5rem; + --h2-font-size: 1.25rem; + --h3-font-size: 1rem; + --normal-font-size: 0.938rem; + --small-font-size: 0.875rem; + --smaller-font-size: 0.813rem; + + /*========== Font weight ==========*/ + --font-medium: 500; + --font-semi-bold: 600; + + /*========== Margenes ==========*/ + --mb-1: 0.5rem; + --mb-2: 1rem; + --mb-3: 1.5rem; + + /*========== z index ==========*/ + --z-tooltip: 10; + --z-fixed: 100; +} + +/*========== BASE ==========*/ + +/*========== Variables Dark theme ==========*/ +body.dark-theme { + --title-color: #f2f2f2; + --text-color: #bfbfbf; + --container-color: #212121; + --container-color-alt: #181616; + --body-color: #2b2b2b; +} +/*========== Button Dark/Light ==========*/ +.change-theme { + position: absolute; + right: 0; + top: 2.2rem; + display: flex; + color: var(--text-color); + font-size: 1.2rem; + cursor: pointer; +} +.change-theme:hover { + color: var(--title-color); +} +/*========== Font size variables to scale cv ==========*/ +body.scale-cv { + --h1-font-size: 0.938rem; + --h2-font-size: 0.938rem; + --h3-font-size: 0.875rem; + --normal-font-size: 0.813rem; + --small-font-size: 0.75rem; + --smaller-font-size: 0.688rem; +} +/*========== Generate PDF button ==========*/ +.generate-pdf { + display: none; + position: absolute; + top: 2.2rem; + left: 0; + font-size: 1.2rem; + color: var(--text-color); + cursor: pointer; +} +.generate-pdf:hover { + color: var(--title-color); +} +/*========== Classes modified to reduce size and print on A4 sheet ==========*/ +.scale-cv .change-theme, +.scale-cv .generate-pdf { + display: none; +} +.scale-cv .bd-container { + max-width: 595px; +} +.scale-cv .section { + padding: 1.5rem 0 0.8rem; +} +.scale-cv .section-title { + margin-bottom: 0.75rem; +} +.scale-cv .resume__left, +.scale-cv .resume__right { + padding: 0 1rem; +} +.scale-cv .home-img { + width: 90px; + height: 90px; +} +.scale-cv .home__container { + gap: 1.5rem; +} +.scale-cv .home__data { + gap: 0.25rem; +} +.scale-cv .home__address, +.scale-cv .social__container { + gap: 0.75rem; +} +.scale-cv .home__icon, +.scale-cv .social__icon, +.scale-cv .interests__icon { + font-size: 1rem; +} +.scale-cv .education__container, +.scale-cv .experience__company, +.scale-cv .certificate__container { + gap: 1rem; +} +.scale-cv .education__time, +.scale-cv .experience__time { + padding-right: 0.5rem; +} +.scale-cv .education__rounder, +.scale-cv .experience__rounder { + width: 11px; + height: 11px; + margin-top: 0.22rem; +} +.scale-cv .education__line, +.scale-cv .experience__line { + width: 1px; + height: 110%; + transform: translate(5px, 0); +} +.scale-cv .education__data, +.scale-cv .experience__data { + gap: 0.25rem; +} +.scale-cv .skills__name { + margin-bottom: var(--mb-1); +} +.scale-cv .interests__container { + column-gap: 2.5rem; +} +body { + margin: 0 0 var(--header-height); + padding: 0; + font-family: var(--body-font); + font-size: var(--normal-font-size); + background-color: var(--body-color); + color: var(--text-color); +} +h1, +h2, +h3, +ul, +p { + margin: 0; +} +h1, +h2, +h3 { + color: var(--title-color); + font-weight: var(--font-medium); +} +ul { + padding: 0; + list-style: none; +} +a { + text-decoration: none; +} +img { + max-width: 100%; + height: auto; +} +/*========== CLASS CSS ==========*/ +.section { + padding: 1.5rem 0; +} +.section-title { + font-size: var(--h2-font-size); + color: var(--title-color); + font-weight: var(--font-semi-bold); + text-transform: uppercase; + letter-spacing: 0.35rem; + text-align: center; + margin-bottom: var(--mb-3); +} +/*========== LAYOUT ==========*/ +.bd-container { + max-width: 968px; + width: calc(100% - 3rem); + margin-left: var(--mb-3); + margin-right: var(--mb-3); +} +.bd-grid { + display: grid; + gap: 1.5rem; +} +.l-header { + width: 100%; + position: fixed; + bottom: 0; + left: 0; + z-index: var(--z-fixed); + background-color: var(--body-color); + box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.1); + transition: 0.3s; +} +/*========== NAV ==========*/ +.nav { + height: var(--header-height); + display: flex; + justify-content: space-between; + align-items: center; +} +@media screen and (max-width: 968px) { + .nav__menu { + position: fixed; + bottom: -100%; + left: 0; + width: 100%; + padding: 2rem 0rem; + background-color: var(--body-color); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); + border-radius: 1rem 1rem 0 0; + z-index: var(--z-fixed); + transition: 0.3s; + } +} +.nav__logo, +.nav__toggle { + color: var(--title-color); + font-weight: var(--font-medium); +} +.nav__toggle { + font-size: 1.2rem; + cursor: pointer; +} +.nav__item { + text-align: center; +} +.nav__list { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 2rem; +} +.nav__link { + display: flex; + flex-direction: column; + font-size: var(--smaller-font-size); + color: var(--text-color-light); + font-weight: var(--font-medium); +} +.nav__link:hover { + color: var(--title-color); +} +.nav__icon { + font-size: 1.2rem; + margin-bottom: var(--mb-1); +} +/* Show menu */ +.show-menu { + bottom: var(--header-height); +} +/* Active menu link */ +.active-link { + color: var(--title-color); +} +/*========== HOME ==========*/ +.home { + position: relative; +} +.home__container { + gap: 3rem; +} +.home__data { + gap: 0.5rem; + text-align: center; +} +.home__img { + width: 120px; + height: 120px; + border-radius: 50%; + justify-self: center; + margin-bottom: var(--mb-1); +} +.home__title { + font-size: var(--h1-font-size); +} +.home__profession { + font-size: var(--normal-font-size); + margin-bottom: var(--mb-1); +} +.home__address { + gap: 1rem; +} +.home__information { + display: flex; + align-items: center; + font-size: var(--small-font-size); +} +.home__icon { + font-size: 1.2rem; + margin-right: 0.25rem; +} +.home__button-movil { + display: inline-block; + border: 2px solid var(--text-color); + color: var(--title-color); + padding: 1rem 2rem; + border-radius: 0.25rem; + transition: 0.3s; + font-weight: var(--font-medium); + margin-top: var(--mb-3); +} +.home__button-movil:hover { + background-color: var(--text-color); + color: var(--container-color); +} +.home__button-contact { + display: inline-block; + border: 2px solid var(--text-color); + color: var(--title-color); + padding: 1rem 1.6rem; + border-radius: 0.25rem; + transition: 0.3s; + font-weight: var(--font-medium); + margin-top: var(--mb-3); +} +.home__button-contact:hover { + background-color: var(--text-color); + color: var(--container-color); +} +.information__icon, +.back__icon { + font-size: 1.5rem; + color: var(--text-color); +} +.information__icon:hover, +.back__icon:hover { + color: var(--title-color); +} +.more__information, +.back__home { + font-size: var(--h3-font-size); + color: var(--text-color); + font-weight: var(--font-medium); + display: flex; + gap: 0.5rem; +} +.back__home { + margin-top: 1.5rem; +} +.more__information:hover, +.back__home:hover { + color: var(--title-color); +} + +/*========== SOCIAL ==========*/ +.social__container { + grid-template-columns: max-content; + gap: 1rem; +} +.social__link { + display: inline-flex; + align-items: center; + font-size: var(--small-font-size); + color: var(--text-color); +} +.social__link:hover { + color: var(--title-color); +} +.social__icon { + font-size: 1.2rem; + margin-right: 0.25rem; +} +/*========== PROFILE ==========*/ +.profile__description { + text-align: center; +} +/*========== EDUCATION AND EXPERIENCE ==========*/ +.education__content, +.experience__content { + display: flex; +} +.education__time, +.experience__time { + padding-right: 1rem; +} +.education__rounder, +.experience__rounder { + position: relative; + display: block; + width: 16px; + height: 16px; + background-color: var(--text-color-light); + border-radius: 50%; + margin-top: 0.25rem; +} +.education__line, +.experience__line { + display: block; + width: 2px; + height: 110%; + background-color: var(--text-color-light); + transform: translate(7px, 0); +} +.education__data, +.experience__data { + gap: 0.5rem; +} +.education__title, +.experience__title { + font-size: var(--h3-font-size); +} +.education__studies, +.experience__company { + font-size: var(--small-font-size); + color: var(--title-color); +} +.education__year { + font-size: var(--smaller-font-size); +} +/*========== SKILLS AND LANGUAGES ==========*/ +.skills__content, +.languages__content { + grid-template-columns: repeat(2, 1fr); + gap: 0; +} + +.skills__name, +.languages__name { + display: flex; + align-items: center; + margin-bottom: var(--mb-3); +} +.skills__circle, +.languages__circle { + display: inline-block; + width: 5px; + height: 5px; + background-color: var(--text-color); + border-radius: 50%; + margin-right: 0.75rem; +} +/*========== CERTIFICATES ==========*/ +.certificate__title { + font-size: var(--h3-font-size); + margin-bottom: var(--mb-1); +} +/*========== REFERENCES ==========*/ +.references__content { + gap: 0.25rem; +} +.references__subtitle { + color: var(--text-color-light); +} +.references__subtitle, +.references__contact { + font-size: var(--smaller-font-size); +} +.references__title { + font-size: var(--h3-font-size); +} +/*========== INTERESTS ==========*/ +.interests__container { + display: grid; /* Ensure the grid display is set */ + grid-template-columns: repeat(4, 1fr); /* Keep 4 columns with equal widths */ + gap: 1.5rem; /* Adjust gap if needed; this is value you can tweak */ + margin-top: var(--mb-2); +} + +.interests__content { + display: flex; + flex-direction: column; + align-items: center; + /* You can add a fixed width here if necessary to avoid wrapping, but typically it's better to avoid fixed widths */ +} + +.interests__icon { + font-size: 1.5rem; + color: var(--text-color-light); + margin-bottom: 0.25rem; +} +/*========== CONTACT ==========*/ +.contact__container { + display: flex; + justify-content: center; + flex-direction: column; +} +.contact__info { + display: flex; + flex-direction: row; + gap: 3rem; + align-items: center; + font-size: var(--h3-font-size); + color: var(--text-color); + font-weight: var(--font-medium); + display: flex; + gap: 2rem; +} +.contact__icon { + font-size: 1.5rem; + color: var(--text-color); +} +.contact__phone, +.contact__email { + font-size: var(--h3-font-size); + color: var(--text-color); + font-weight: var(--font-medium); + gap: 0.5rem; +} +.contact__form { + width: 100%; + max-width: 500px; + padding: 3rem; + background-color: #f1f1f1; + border-radius: 10px; +} +.contact__content { + display: flex; + flex-direction: row; +} +.contact__inputs { + display: grid; + gap: 1rem; +} + +.contact__input, +.contact__textarea { + width: 100%; + padding: 0.75rem; + border: none; + background-color: #e5e5e5; + border-radius: 5px; +} + +.contact__textarea { + resize: none; + height: 150px; + margin-top: 1rem; +} + +.contact__button { + display: block; + width: 100%; + padding: 0.75rem; + margin-top: 1.5rem; + border: none; + background-color: #222; + color: #fff; + font-size: 1.2rem; + border-radius: 5px; + cursor: pointer; + transition: all 0.3s ease; +} + +.contact__button:hover { + background-color: #555; +} +/* Scroll top */ +.scrolltop { + position: fixed; + right: 1rem; + bottom: -20%; + display: flex; + justify-content: center; + align-items: center; + padding: 0.3rem; + background-color: var(--container-color-alt); + border-radius: 0.4rem; + z-index: var(--z-tooltip); + transition: 0.4s; + visibility: hidden; +} +.scrolltop__icon { + font-size: 1.2rem; + color: var(--text-color); +} +.show-scroll { + visibility: visible; + bottom: 5rem; +} +/*========== CONFIRMATION MESSAGE ==========*/ +.confirmation { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 100vh; +} + +.confirmation h2 { + font-size: var(--h1-font-size); + color: var(--title-color); + margin-bottom: var(--mb-2); +} + +.confirmation p { + font-size: 1.5rem; + margin-bottom: 2rem; +} + +#countdown { + font-size: 2rem; + margin-bottom: 2rem; +} + +/*========== MEDIA QUERIES ==========*/ +/* For small devices, menu two columns */ +@media screen and (max-width: 320px) { + .nav__list { + grid-template-columns: repeat(2, 1fr); + gap: 1rem 0.5rem; + } +} +/* Classes modified for large screen size */ +@media screen and (min-width: 968px) { + body { + margin: 3rem 0; + } + .bd-container { + margin-left: auto; + margin-right: auto; + } + .home__button-contact { + margin-top: 0; + } + .l-header, + .scrolltop { + display: none; + } + .resume { + display: grid; + grid-template-columns: 0.5fr 1fr; + background-color: var(--container-color); + box-shadow: 0 0 8px rgba(13, 12, 12, 15); + } + .resume__left { + background-color: var(--container-color-alt); + } + .resume__left, + .resume__right { + padding: 0 1.5rem; + } + .generate-pdf { + display: inline-block; + } + .section-title, + .profile__description { + text-align: initial; + } + .home__container { + gap: 1.5rem; + } + .home__button-movil { + display: none; + } + .references__container { + grid-template-columns: repeat(2, 1fr); + } + .languages__content { + grid-template-columns: repeat(3, max-content); + column-gap: 3.5rem; + } + .interests__container { + grid-template-columns: repeat(4, max-content); + column-gap: 3.5rem; + } +}