├── img
├── article-1.png
├── article-2.png
├── article-3.png
├── phd-cover.png
└── profile.png
├── robots.txt
├── assets
├── favicon
│ ├── favicon.ico
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── apple-touch-icon.png
│ ├── android-chrome-192x192.png
│ ├── android-chrome-512x512.png
│ └── site.webmanifest
├── MariaBrioPerez-CV.pdf
├── screenshots
│ ├── MariaBrioPortfolio-01.png
│ ├── MariaBrioPortfolio-02.png
│ ├── MariaBrioPortfolio-03.png
│ ├── MariaBrioPortfolio-04.png
│ └── MariaBrioPortfolio-05.png
└── mariabrioperez.vcf
├── .github
└── FUNDING.yml
├── sitemap.xml
├── LICENSE.txt
├── scss
├── _variables.scss
└── styles.scss
├── js
└── main.js
├── css
├── styles.css.map
├── swiper-bundle.min.css
└── styles.css
├── README.md
└── index.html
/img/article-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/img/article-1.png
--------------------------------------------------------------------------------
/img/article-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/img/article-2.png
--------------------------------------------------------------------------------
/img/article-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/img/article-3.png
--------------------------------------------------------------------------------
/img/phd-cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/img/phd-cover.png
--------------------------------------------------------------------------------
/img/profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/img/profile.png
--------------------------------------------------------------------------------
/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Allow: /
3 |
4 | # Sitemaps
5 | Sitemap: https://mariabrio.vercel.app/sitemap.xml
6 |
--------------------------------------------------------------------------------
/assets/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/assets/favicon/favicon.ico
--------------------------------------------------------------------------------
/assets/MariaBrioPerez-CV.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/assets/MariaBrioPerez-CV.pdf
--------------------------------------------------------------------------------
/assets/favicon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/assets/favicon/favicon-16x16.png
--------------------------------------------------------------------------------
/assets/favicon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/assets/favicon/favicon-32x32.png
--------------------------------------------------------------------------------
/assets/favicon/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/assets/favicon/apple-touch-icon.png
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: JuditKaramazov
4 | custom: https://www.buymeacoffee.com/juditkaramazov
--------------------------------------------------------------------------------
/assets/favicon/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/assets/favicon/android-chrome-192x192.png
--------------------------------------------------------------------------------
/assets/favicon/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/assets/favicon/android-chrome-512x512.png
--------------------------------------------------------------------------------
/assets/screenshots/MariaBrioPortfolio-01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/assets/screenshots/MariaBrioPortfolio-01.png
--------------------------------------------------------------------------------
/assets/screenshots/MariaBrioPortfolio-02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/assets/screenshots/MariaBrioPortfolio-02.png
--------------------------------------------------------------------------------
/assets/screenshots/MariaBrioPortfolio-03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/assets/screenshots/MariaBrioPortfolio-03.png
--------------------------------------------------------------------------------
/assets/screenshots/MariaBrioPortfolio-04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/assets/screenshots/MariaBrioPortfolio-04.png
--------------------------------------------------------------------------------
/assets/screenshots/MariaBrioPortfolio-05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JuditKaramazov/MariaBrioPortfolio/HEAD/assets/screenshots/MariaBrioPortfolio-05.png
--------------------------------------------------------------------------------
/assets/favicon/site.webmanifest:
--------------------------------------------------------------------------------
1 | {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
--------------------------------------------------------------------------------
/assets/mariabrioperez.vcf:
--------------------------------------------------------------------------------
1 | BEGIN:VCARD
2 | VERSION:4.0
3 | FN:Brio Perez, M.
4 | N:Brio Perez;Maria;
5 | TITLE:Chemical Engineer
6 | EMAIL:maria.brioperez@gmail.com
7 | TEL:+31651610284
8 | URL;TYPE=PORTFOLIO:https://mariabrio.vercel.app/
9 | X-SOCIALPROFILE;TYPE=LINKEDIN:https://www.linkedin.com/in/mariabrioperez/
10 | END:VCARD
--------------------------------------------------------------------------------
/sitemap.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | https://mariabrio.vercel.app/
5 | 2024-06-30T15:06:17+00:00
6 | 1.00
7 |
8 |
9 | https://mariabrio.vercel.app/public/MariaBrioPerez-CV.pdf
10 | 2024-06-30T15:06:17+00:00
11 | 0.80
12 |
13 |
14 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 Judit Lázaro
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
9 | of the Software, and to permit persons to whom the Software is furnished to do
10 | so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/scss/_variables.scss:
--------------------------------------------------------------------------------
1 | :root {
2 | --header-height: 3rem;
3 |
4 | /* Colors */
5 | --hue-color: 169;
6 | --first-color: hsl(var(--hue-color), 26%, 75%);
7 | --first-color-second: hsl(166, 30%, 56%);
8 | --first-color-alt: hsl(167, 43%, 64%);
9 | --first-color-lighter: hsl(167, 13%, 43%);
10 | --title-color: hsl(var(--hue-color), 8%, 15%);
11 | --text-color: hsl(var(--hue-color), 8%, 45%);
12 | --text-color-light: hsl(var(--hue-color), 8%, 65%);
13 | --input-color: hsl(var(--hue-color), 70%, 96%);
14 | --body-color: hsl(var(--hue-color), 60%, 99%);
15 | --container-color: #fff;
16 | --scroll-bar-color: hsl(var(--hue-color), 12%, 90%);
17 | --scroll-thumb-color: hsl(var(--hue-color), 12%, 80%);
18 |
19 | /* Font & typography */
20 | --body-font: "Poppins", sans-serif;
21 | --big-font-size: 2rem;
22 | --h1-font-size: 1.5rem;
23 | --h2-font-size: 1.25rem;
24 | --h3-font-size: 1.125rem;
25 | --normal-font-size: 0.938rem;
26 | --small-font-size: 0.813rem;
27 | --smaller-font-size: 0.75rem;
28 |
29 | /* Font weight */
30 | --font-lighter: 200;
31 | --font-medium: 500;
32 | --font-semi-bold: 600;
33 |
34 | /* Margins Bottom */
35 | --mb-0-25: 0.25rem;
36 | --mb-0-5: 0.5rem;
37 | --mb-0-75: 0.75rem;
38 | --mb-1: 1rem;
39 | --mb-1-5: 1.5rem;
40 | --mb-2: 2rem;
41 | --mb-2-5: 2.5rem;
42 | --mb-3: 3rem;
43 |
44 | /* z index */
45 | --z-tooltip: 99;
46 | --z-fixed: 999;
47 | --z-modal: 9999;
48 | }
49 |
50 | /* Font size (large devices) */
51 | @media screen and (min-width: 968px) {
52 | :root {
53 | --big-font-size: 3rem;
54 | --h1-font-size: 2.25rem;
55 | --h2-font-size: 1.5rem;
56 | --h3-font-size: 1.25rem;
57 | --normal-font-size: 1rem;
58 | --small-font-size: 0.875rem;
59 | --smaller-font-size: 0.813rem;
60 | }
61 | }
62 |
63 | /* Dark mode */
64 | body.dark-theme {
65 | --first-color-second: hsl(167, 24%, 42%);
66 | --first-color-lighter: hsl(210, 11%, 25%);
67 | --title-color: hsl(var(--hue-color), 8%, 95%);
68 | --text-color: hsl(var(--hue-color), 8%, 75%);
69 | --input-color: hsl(167, 25%, 39%);
70 | --body-color: hsl(210, 11%, 25%);
71 | --container-color: hsl(var(--hue-color), 29%, 16%);
72 | --scroll-bar-color: hsl(var(--hue-color), 12%, 48%);
73 | --scroll-thumb-color: hsl(var(--hue-color), 12%, 36%);
74 | }
75 |
--------------------------------------------------------------------------------
/js/main.js:
--------------------------------------------------------------------------------
1 | /* Menu (show/hidden) */
2 | const navMenu = document.getElementById("nav-menu"),
3 | navToggle = document.getElementById("nav-toggle"),
4 | navClose = document.getElementById("nav-close")
5 |
6 | /* Menu (show) */
7 | if (navToggle) {
8 | navToggle.addEventListener("click", () => {
9 | navMenu.classList.add("show-menu")
10 | })
11 | }
12 |
13 | /* Menu (hidden) */
14 | if (navClose) {
15 | navClose.addEventListener("click", () => {
16 | navMenu.classList.remove("show-menu")
17 | })
18 | }
19 |
20 | /* Mobile menu */
21 | const navLink = document.querySelectorAll(".nav-link")
22 |
23 | function linkAction() {
24 | const navMenu = document.getElementById("nav-menu")
25 | navMenu.classList.remove("show-menu")
26 | }
27 | navLink.forEach((n) => n.addEventListener("click", linkAction))
28 |
29 | /* Skills (accordion) */
30 | const skillsContent = document.getElementsByClassName("skills-container-content"),
31 | skillsHeader = document.querySelectorAll(".skills-container-header")
32 |
33 | function toggleSkills() {
34 | let itemClass = this.parentNode.className
35 |
36 | for (i = 0; i < skillsContent.length; i++) {
37 | skillsContent[i].className = "skills-container-content skills-close";
38 | }
39 | if (itemClass === "skills-container-content skills-close") {
40 | this.parentNode.className = "skills-container-content skills-open"
41 | }
42 | }
43 |
44 | skillsHeader.forEach((el) => {
45 | el.addEventListener("click", toggleSkills)
46 | })
47 |
48 | /* Experience tabs */
49 | const tabs = document.querySelectorAll("[data-target]"),
50 | tabContents = document.querySelectorAll("[data-content]")
51 |
52 | tabs.forEach((tab) => {
53 | tab.addEventListener("click", () => {
54 | const target = document.querySelector(tab.dataset.target)
55 |
56 | tabContents.forEach((tabContent) => {
57 | tabContent.classList.remove("experience-active")
58 | })
59 | target.classList.add("experience-active")
60 |
61 | tabs.forEach((tab) => {
62 | tab.classList.remove("experience-active")
63 | })
64 | tab.classList.add("experience-active")
65 | })
66 | })
67 |
68 | /* Articles swiper */
69 | const swiperArticles = new Swiper(".articles-container", {
70 | cssMode: true,
71 | loop: true,
72 | navigation: {
73 | nextEl: ".swiper-button-next",
74 | prevEl: ".swiper-button-prev",
75 | },
76 | pagination: {
77 | el: ".swiper-pagination",
78 | clickable: true,
79 | },
80 | })
81 |
82 | /* Scroll sections (active link) */
83 | const sections = document.querySelectorAll("section[id]")
84 |
85 | function scrollActive() {
86 | const scrollY = window.pageYOffset
87 |
88 | sections.forEach((current) => {
89 | const sectionHeight = current.offsetHeight
90 | const sectionTop = current.offsetTop - 50
91 | const sectionId = current.getAttribute("id")
92 |
93 | if (scrollY > sectionTop && scrollY <= sectionTop + sectionHeight) {
94 | document
95 | .querySelector(".nav-menu a[href*=" + sectionId + "]")
96 | .classList.add("active-link")
97 | } else {
98 | document
99 | .querySelector(".nav-menu a[href*=" + sectionId + "]")
100 | .classList.remove("active-link")
101 | }
102 | })
103 | }
104 | window.addEventListener("scroll", scrollActive)
105 |
106 | /* Background header */
107 | function scrollHeader() {
108 | const nav = document.getElementById("header")
109 |
110 | if (this.scrollY >= 80) nav.classList.add("scroll-header")
111 | else nav.classList.remove("scroll-header")
112 | }
113 | window.addEventListener("scroll", scrollHeader)
114 |
115 | /* Show scroll to top */
116 | function scrollUp() {
117 | const scrollUp = document.getElementById("scroll-up")
118 |
119 | if (this.scrollY >= 560) scrollUp.classList.add("show-scroll")
120 | else scrollUp.classList.remove("show-scroll")
121 | }
122 | window.addEventListener("scroll", scrollUp)
123 |
124 | /* Dark/Light mode */
125 | const themeButton = document.getElementById("theme-button")
126 | const darkTheme = "dark-theme"
127 | const iconTheme = "fa-sun"
128 |
129 | const selectedTheme = localStorage.getItem("selected-theme")
130 | const selectedIcon = localStorage.getItem("selected-icon")
131 |
132 | const getCurrentTheme = () =>
133 | document.body.classList.contains(darkTheme) ? "dark" : "light"
134 | const getCurrentIcon = () =>
135 | themeButton.classList.contains(iconTheme) ? "fa-moon" : "fa-sun"
136 |
137 | if (selectedTheme) {
138 | document.body.classList[selectedTheme === "dark" ? "add" : "remove"](darkTheme)
139 | themeButton.classList[selectedIcon === "fa-moon" ? "add" : "remove"](iconTheme)
140 | }
141 |
142 | themeButton.addEventListener("click", () => {
143 | document.body.classList.toggle(darkTheme)
144 | themeButton.classList.toggle(iconTheme)
145 |
146 | localStorage.setItem("selected-theme", getCurrentTheme())
147 | localStorage.setItem("selected-icon", getCurrentIcon())
148 | })
149 |
150 | /* Mail integration */
151 | document.addEventListener("DOMContentLoaded", function() {
152 | emailjs.init("A9PZASRNY-NxAYHQX")
153 | })
154 |
155 | document.getElementById('contact-form').addEventListener('submit', function(event) {
156 | event.preventDefault()
157 |
158 | emailjs.sendForm('service_btvk1js', 'template_zhvgvnk', this)
159 | .then(function(response) {
160 | console.log('Success!', response.status, response.text)
161 | alert('Email sent successfully!')
162 | document.getElementById('contact-form').reset()
163 | }, function(error) {
164 | console.log('Failed...', error)
165 | alert('Email sending failed.')
166 | })
167 | })
168 |
--------------------------------------------------------------------------------
/css/styles.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["styles.scss","_variables.scss","styles.css"],"names":[],"mappings":"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","file":"styles.css"}
--------------------------------------------------------------------------------
/css/swiper-bundle.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Swiper 6.5.8
3 | * Most modern mobile touch slider and framework with hardware accelerated transitions
4 | * https://swiperjs.com
5 | *
6 | * Copyright 2014-2021 Vladimir Kharlampidi
7 | *
8 | * Released under the MIT License
9 | *
10 | * Released on: April 23, 2021
11 | */
12 |
13 | @font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, 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') format('woff');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-container-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-container-multirow>.swiper-wrapper{flex-wrap:wrap}.swiper-container-multirow-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-container-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-container-pointer-events{touch-action:pan-y}.swiper-container-pointer-events.swiper-container-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-container-3d{perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-container-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;text-transform:none;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-container-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-container-rtl .swiper-button-prev:after{content:'next'}.swiper-button-next.swiper-button-white,.swiper-button-prev.swiper-button-white{--swiper-navigation-color:#ffffff}.swiper-button-next.swiper-button-black,.swiper-button-prev.swiper-button-black{--swiper-navigation-color:#000000}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:50%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{opacity:1;background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progressbar,.swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-container-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-white{--swiper-pagination-color:#ffffff}.swiper-pagination-black{--swiper-pagination-color:#000000}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;animation:swiper-preloader-spin 1s infinite linear;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-container-fade.swiper-container-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-container-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Maria Brió Pérez
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | A professional, minimalist portfolio
10 |
11 |
12 |
13 |
18 |
19 |
20 | 🐱 /JuditKaramazov
21 |
22 |
23 | 📍 Portfolio
24 |
25 |
26 | ☕ Blog
27 |
28 |
29 | ---
30 |
31 | Table of Contents
32 | -----------------
33 |
34 | * [🔧 Getting Started](#-getting-started)
35 | * [🚪 Introduction](#-introduction)
36 | * [💾 Content](#-content)
37 | * [🔮 Features](#-features)
38 | * [🌒 Day'n'Nite](#-daynnite)
39 | * [📬 EmailJS](#-emailjs)
40 | * [📜 Single page](#-single-page)
41 | * [🖼️ Swiper](#-swiper)
42 | * [💄 Style](#-style)
43 | * [🥳 Immense thanks to them awesome Sponsors](#-immense-thanks-to-them-awesome-sponsors)
44 | * [🏛 License & Copyright](#-license--copyright)
45 |
46 | ---
47 |
48 | # 🔧 Getting Started
49 |
50 | As surprising as it might sound after such a long time experimenting with different libraries and frameworks, this project is based upon the essential elements giving our work _real_ sense: [HTML](https://developer.mozilla.org/en-US/docs/Web/HTML), [Sass](https://sass-lang.com/) (also known as "CSS with superpowers". Woah!), and minimal usage of [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript). Back to the roots, guys.
51 |
52 | Undoubtedly (and before someone tries to kill me), CSS is among the core languages of the open web and is standardized across Web browsers, as we all know. When it comes to Sass, it's usually described as the most mature, stable, and powerful professional-grade CSS extension language in the world. Actively supported and developed by a consortium of several tech companies and hundreds of developers, there are an endless number of frameworks built with Sass, like [Bootstrap](https://getbootstrap.com/), for instance. Quite an interesting frontend toolkit, in my opinion.
53 |
54 | Independently of that, and just in case you are not familiar with Sass, I would highly recommend giving the [New Live Sass Compiler](https://marketplace.visualstudio.com/items?itemName=ritwickdey.live-sass) a try now that the old one is deprecated. Keep something in mind, though: there is no "best" here. If anything, the "best" option will always be the one that fits _your specific needs_ better, so feel free to give different tools until you find **the** one for your future project!
55 |
56 | ---
57 |
58 | # 🚪 Introduction
59 |
60 | Looking for a job should indeed be considered a job in itself. Regardless of how pessimistic the previous statement might sound, I've never experienced something as depressing, draining, and exhausting as trying to find _something_, whatever it is, wherever it is.
61 |
62 | Some months ago, during quite a casual conversation with a senior programmer who allowed me to express my doubts, insecurities, and fears regarding the sector itself, he highlighted the importance of having not only a well-structured curriculum (or LinkedIn page) but an even better organized, clean, and polished portfolio. "Recruiters do not have the time". "Only keywords matter". "Some positions are not truly open, in the end". Although I always kept this portfolio idea in mind (you can find my own one [here](https://karamazfolio.xyz/), in case you are curious), recruiters' minds and behaviors are still a mystery to me - and I am _not_ the only one feeling lost and vulnerable.
63 |
64 | Certificates. Trainings. Degrees. We have a huge vested interest in them, partly because it's education that's meant to take us into this future that we can't grasp. I am not denying the inherent truth of it, though; a solid education is a pretty easy thing to carry around, yet our approach to education requires a deep reform. Similarly, the lack of educational and professional opportunities should be discussed and addressed, but that's a story for another night. Today, we'll focus on the importance of portfolios, which may significantly define our success while trying to find an opportunity.
65 |
66 | 
67 |
68 | After admiring the above image, I would _definitely_ hire such a professional, for instance - no matter the barriers to job success we all face.
69 |
70 | ---
71 |
72 | # 💾 Content
73 |
74 | Some of you are _naturals_ here; don't dare try to fool me. Now, can you guess what's inside this "metaphorical floppy disk", aka [the beautiful portfolio I made for Maria Brió Pérez](https://mariabrio.vercel.app)? Fear not: we will keep it as simplified and accessible as usual.
75 |
76 | | Section | Description |
77 | |-------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
78 | | **About** | ℹ️ _Who is this person we have in front of us?_ As it's simply essential these days, the first sections translate into a **brief introduction** displaying a profile picture, some crucial information, and different contact and professional platforms: from her [LinkedIn](https://www.linkedin.com/in/mariabrioperez/) to her [Orcid](https://orcid.org/0000-0002-6328-9556) account, a site connecting research and researchers. You can even access her [doctoral thesis](https://research.utwente.nl/en/publications/a-journey-towards-responsive-and-circular-polymer-brushes-design-) or [download her CV](/assets/MariaBrioPerez-CV.pdf) from there! |
79 | | **Skills** | 🛠️ **Technical expertise**, **project management**, **software**, **languages**... you name it! Everything has been organized under the shape of an **accordion** in order to make information as accessible as readable. |
80 | | **Experience** | 💼 Education? Work? Here, you'll find **both options**, with the proper experience displayed as a visual timeline. You have no excuse now, recruiters! |
81 | | **Articles** | 📑 Undoubtedly, articles are an essential part of the doctoral process. Although Maria already _nailed_ her oral defense (_believe me: I watched it, and it was impeccable_), she also published **several research articles**, just like the ones you can find in [Orcid](https://orcid.org/0000-0002-6328-9556). Here, we're only displaying the most recent ones, but it seemed a great idea to integrate them as visually and interactively as possible. |
82 | | **Contact** | ☎️ Phone numbers, email addresses... and a **form**! A contact form that actually **works**! Is this... magic, maybe...? |
83 |
84 | ---
85 |
86 | # 🔮 Features
87 |
88 | Similarly to many other examples that have become extremely popular these days, I decided to organize this portfolio following the structure of a **landing page** - and believe me when I say that back in the day, landing pages triggered some of my worst nightmares as someone just getting started!
89 |
90 | Those, however, were extremely simple yet not functional at all. Beautiful? Yes. A blank page? Yes, again. That's definitely not the case occupying us today, though.
91 |
92 | ## 🌒 Day'n'Nite
93 |
94 | Just as it's mandatory these days, I incorporated a **theme switcher** to enhance the visual appeal for readers and nocturnal creatures of the interwebz, which will hopefully allow users to personalize their viewing experience based on their preferences.
95 |
96 | 
97 |
98 | ## 📬 EmailJS
99 |
100 | What makes [EmailJS](https://www.emailjs.com/) great is the fact that it keeps things simple. This beautiful tool helps to send emails using client-side technologies only. No server is required – just connect EmailJS to one of the supported email services, create an email template, and use one of their SDK libraries to trigger an email. Boom! That's it!
101 |
102 |
103 | 
104 |
105 | In case you are curious about the implementation itself, don't hesitate to inspect the [main.js file](/js/main.js):
106 |
107 | ```javascript
108 | /* Mail integration */
109 | document.addEventListener("DOMContentLoaded", function() {
110 | emailjs.init("YOUR_USER_ID")
111 | })
112 |
113 | document.getElementById('contact-form').addEventListener('submit', function(event) {
114 | event.preventDefault()
115 |
116 | emailjs.sendForm('YOUR_SERVICE_ID', 'YOUR_TEMPLATE_ID', this)
117 | .then(function(response) {
118 | console.log('Success!', response.status, response.text)
119 | alert('Email sent successfully!')
120 | document.getElementById('contact-form').reset()
121 | }, function(error) {
122 | console.log('Failed...', error)
123 | alert('Email sending failed.')
124 | })
125 | })
126 | ```
127 |
128 | > [!NOTE]
129 | > Needless to say, the [original documentation](https://www.emailjs.com/docs/) is worth your time, guys - but as you can see, integrating EmailJS into your project couldn't be easier!
130 |
131 | ## 📜 Single page
132 |
133 | Truth said, one of the factors allowing me to realize that I'm indeed _evolving into the Lola Flores of the coding sector_ is that now, I can tell when I should (or shouldn't) overcomplicate my life. As programmers, our main goal is solving problems - and not all issues require the same tools, not even intricate ones.
134 |
135 | In this case, the idea I had in mind was simple: a clean, minimalist, compact portfolio allowing users to get a clear insight into who Maria _is_ as a professional. That's why, independently of my toxic relationship with React, NextJS, or Astro, I chose my best warriors: the tools that started it all. My coding roots, so to speak.
136 |
137 | 
138 |
139 | ## 🖼️ Swiper
140 |
141 | Swiper is considered one of the most modern free and open-source mobile touch slider with hardware-accelerated transitions - websites, web apps, and mobile native/hybrid apps are no exception!
142 |
143 | In this case, I found it to be an extremely useful tool to display some of Maria's most recent works instead of listing them:
144 |
145 | 
146 |
147 | > [!NOTE]
148 | > If you don't want to include Swiper files in your project, remember that you may use it from CDN instead. For more information, here's the link to [Swiper's docs](https://swiperjs.com/get-started).
149 |
150 | ---
151 |
152 | # 💄 Style
153 |
154 | As stated in the previous sections, what inspired the creation of this project was, on the one hand, the **importance and weight that these websites gained in recent times**, as no one would dare doubt that a career portfolio can help illustrate our professional accomplishments, talents, abilities, and attitudes to prospective employers. However, that's definitely not the entire story.
155 |
156 | Job searching puts you in a dark place. Day in and day out, you find yourself going through postings and getting asked to do some online assessments, but you rarely get any calls for interviews. We all know the theory: "Take care of your physical, mental, and emotional needs". "Seek support". "Separate your identity from your job status". We all try, yet it feels we are somehow failing at staying focused, as this vicious cycle of constant silence and rejection doesn't truly allow us to see the light at the end of the tunnel.
157 |
158 | Although these thoughts never leave my mind, today I woke up thinking of the **incredibly talented professionals** I have around - and **Maria** was the first example that came to mind. In all honesty, I highly doubt any employer could find someone as devoted, rigorous, attentive, and capable as she is.
159 |
160 | After having my coffee, **I thought of her incredible curriculum**. Many articles and professional successes came to mind, too. For whatever reason, **I imagined a clean, simple, and minimalist platform allowing recruiters to find some useful keywords**, then **jumping into her CV** and finding the woman _I_ see. The professional that _I know_. A simple portfolio built on HTML, Sass, and JavaScript seemed to be the ideal way of expressing not only achievements but also attitudes and intentions. "Green, green... sounds 'sustainable' enough. How about green, then? And her articles... I would love people to _see_ them in the most direct way possible!" Immediately after my coffee, I started working. Why? Oh, my, my...
161 |
162 | This person, who happens to be the main protagonist of today's repository, is an **outstanding professional**, indeed. She's even better as a person, though - and if this little "gift" can bring a smile to her face, I can consider myself more than satisfied. She does not deserve less. If anything, she **deserves to be seen and valued**.
163 |
164 | ---
165 |
166 | # 🥳 Immense thanks to them awesome Sponsors
167 |
168 | Now that I irremediably entered the emotional zone, let's not forget that these words, projects, and general mayhem wouldn't exist without the presence, help, and patience of my amazing Sponsor,`@Entreprises LEMRHALI` - the one who gave me an opportunity when others didn't. Funnily enough, I just mentioned that my dear Doctor Maria deserves to be seen and valued, yet I am not quite good at paying attention to my own words and advice.
169 |
170 | As you surely know by now, that's only part of the process; eventually, we will all start seeing, understanding, and appreciating the real value inside of us - you included. Because you don't deserve less, either.
171 |
172 | For the past, present, and future moments, `thank you`. You are an extremely beautiful human being.
173 |
174 |
175 |
177 |
178 |
179 | ---
180 |
181 | # 🏛 License & Copyright
182 |
183 | God save our [MIT License](LICENSE.txt) and its infinite benevolence! It burns! That said, and only if you enjoyed the beautiful portfolio you found here, remember that you can make the Dinosaur of the Depths extremely happy if you...
184 |
185 |
186 | ---
187 |
188 |
191 |
192 |
193 |
194 |
--------------------------------------------------------------------------------
/css/styles.css:
--------------------------------------------------------------------------------
1 | @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap");
2 | :root {
3 | --header-height: 3rem;
4 | /* Colors */
5 | --hue-color: 169;
6 | --first-color: hsl(var(--hue-color), 26%, 75%);
7 | --first-color-second: hsl(166, 30%, 56%);
8 | --first-color-alt: hsl(167, 43%, 64%);
9 | --first-color-lighter: hsl(167, 13%, 43%);
10 | --title-color: hsl(var(--hue-color), 8%, 15%);
11 | --text-color: hsl(var(--hue-color), 8%, 45%);
12 | --text-color-light: hsl(var(--hue-color), 8%, 65%);
13 | --input-color: hsl(var(--hue-color), 70%, 96%);
14 | --body-color: hsl(var(--hue-color), 60%, 99%);
15 | --container-color: #fff;
16 | --scroll-bar-color: hsl(var(--hue-color), 12%, 90%);
17 | --scroll-thumb-color: hsl(var(--hue-color), 12%, 80%);
18 | /* Font & typography */
19 | --body-font: "Poppins", sans-serif;
20 | --big-font-size: 2rem;
21 | --h1-font-size: 1.5rem;
22 | --h2-font-size: 1.25rem;
23 | --h3-font-size: 1.125rem;
24 | --normal-font-size: 0.938rem;
25 | --small-font-size: 0.813rem;
26 | --smaller-font-size: 0.75rem;
27 | /* Font weight */
28 | --font-lighter: 200;
29 | --font-medium: 500;
30 | --font-semi-bold: 600;
31 | /* Margins Bottom */
32 | --mb-0-25: 0.25rem;
33 | --mb-0-5: 0.5rem;
34 | --mb-0-75: 0.75rem;
35 | --mb-1: 1rem;
36 | --mb-1-5: 1.5rem;
37 | --mb-2: 2rem;
38 | --mb-2-5: 2.5rem;
39 | --mb-3: 3rem;
40 | /* z index */
41 | --z-tooltip: 99;
42 | --z-fixed: 999;
43 | --z-modal: 9999;
44 | }
45 |
46 | /* Font size (large devices) */
47 | @media screen and (min-width: 968px) {
48 | :root {
49 | --big-font-size: 3rem;
50 | --h1-font-size: 2.25rem;
51 | --h2-font-size: 1.5rem;
52 | --h3-font-size: 1.25rem;
53 | --normal-font-size: 1rem;
54 | --small-font-size: 0.875rem;
55 | --smaller-font-size: 0.813rem;
56 | }
57 | }
58 | /* Dark mode */
59 | body.dark-theme {
60 | --first-color-second: hsl(167, 24%, 42%);
61 | --first-color-lighter: hsl(210, 11%, 25%);
62 | --title-color: hsl(var(--hue-color), 8%, 95%);
63 | --text-color: hsl(var(--hue-color), 8%, 75%);
64 | --input-color: hsl(167, 25%, 39%);
65 | --body-color: hsl(210, 11%, 25%);
66 | --container-color: hsl(var(--hue-color), 29%, 16%);
67 | --scroll-bar-color: hsl(var(--hue-color), 12%, 48%);
68 | --scroll-thumb-color: hsl(var(--hue-color), 12%, 36%);
69 | }
70 |
71 | /* Base */
72 | * {
73 | box-sizing: border-box;
74 | margin: 0;
75 | padding: 0;
76 | }
77 |
78 | html {
79 | scroll-behavior: smooth;
80 | }
81 |
82 | body {
83 | margin: 0 0 var(--header-height) 0;
84 | background-color: var(--body-color);
85 | color: var(--text-color);
86 | font-family: var(--body-font);
87 | font-size: var(--normal-font-size);
88 | }
89 |
90 | h1,
91 | h2,
92 | h3,
93 | h4 {
94 | color: var(--title-color);
95 | font-weight: var(--font-semi-bold);
96 | }
97 |
98 | ul {
99 | list-style: none;
100 | }
101 |
102 | a {
103 | text-decoration: none;
104 | }
105 |
106 | img {
107 | max-width: 100%;
108 | height: auto;
109 | }
110 |
111 | /* Dark/Light button */
112 | .nav-btns {
113 | display: flex;
114 | align-items: center;
115 | }
116 | .nav-btns .change-theme {
117 | margin-right: var(--mb-1);
118 | color: var(--title-color);
119 | font-size: 1.25rem;
120 | cursor: pointer;
121 | }
122 | .nav-btns .change-theme:hover {
123 | color: var(--first-color);
124 | }
125 |
126 | /* Reusable CSS classes */
127 | .section {
128 | padding: 2rem 0 4rem;
129 | }
130 | .section-title {
131 | font-size: var(--h1-font-size);
132 | }
133 | .section-subtitle {
134 | display: block;
135 | margin-bottom: var(--mb-3);
136 | font-size: var(--small-font-size);
137 | }
138 | .section-title, .section-subtitle {
139 | text-align: center;
140 | }
141 |
142 | /* Layout */
143 | .container {
144 | max-width: 768px;
145 | margin-left: var(--mb-1-5);
146 | margin-right: var(--mb-1-5);
147 | }
148 |
149 | .grid {
150 | display: grid;
151 | gap: 1.5rem;
152 | }
153 |
154 | /* Header */
155 | .header {
156 | position: fixed;
157 | width: 100%;
158 | bottom: 0;
159 | left: 0;
160 | background-color: var(--body-color);
161 | z-index: var(--z-fixed);
162 | }
163 | .header.scroll-header {
164 | box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.15);
165 | }
166 | .header .nav {
167 | display: flex;
168 | max-width: 968px;
169 | height: var(--header-height);
170 | align-items: center;
171 | justify-content: space-between;
172 | }
173 | .header .nav-menu .active-link {
174 | color: var(--first-color);
175 | }
176 | .header .nav-menu.show-menu {
177 | bottom: 0;
178 | }
179 | .header .nav-logo, .header .nav-toggle {
180 | color: var(--title-color);
181 | font-size: 1.5rem;
182 | font-weight: var(--font-medium);
183 | }
184 | .header .nav-logo:hover, .header .nav-toggle:hover {
185 | color: var(--first-color);
186 | }
187 | .header .nav-toggle {
188 | font-size: 1.2rem;
189 | cursor: pointer;
190 | }
191 | .header .nav-list {
192 | grid-template-columns: repeat(3, 1fr);
193 | gap: 2rem;
194 | }
195 | .header .nav-link {
196 | display: flex;
197 | flex-direction: column;
198 | align-items: center;
199 | color: var(--title-color);
200 | font-size: var(--small-font-size);
201 | font-weight: var(--font-medium);
202 | transition: 0.3s;
203 | }
204 | .header .nav-link-icon {
205 | font-size: 1.2rem;
206 | }
207 | .header .nav-link:hover {
208 | color: var(--first-color);
209 | }
210 | .header .nav-close {
211 | position: absolute;
212 | right: 1.5rem;
213 | bottom: 0.7rem;
214 | color: var(--first-color);
215 | font-size: 1.5rem;
216 | cursor: pointer;
217 | }
218 | .header .nav-close:hover {
219 | color: var(--first-color-alt);
220 | }
221 |
222 | /* Home */
223 | .home-container {
224 | gap: 1rem;
225 | }
226 | .home-container .home-content {
227 | grid-template-columns: 0.5fr 3fr;
228 | align-items: center;
229 | padding-top: 1.5rem;
230 | }
231 | .home-container .home-content .home-img .home-blob {
232 | width: 200px;
233 | fill: var(--first-color);
234 | }
235 | .home-container .home-content .home-img .home-blob-img {
236 | width: 170px;
237 | }
238 | .home-container .home-content .home-social {
239 | display: grid;
240 | grid-template-columns: max-content;
241 | row-gap: 1rem;
242 | }
243 | .home-container .home-content .home-social-icon {
244 | color: var(--first-color);
245 | font-size: 1.25rem;
246 | }
247 | .home-container .home-content .home-social-icon:hover {
248 | color: var(--first-color-alt);
249 | }
250 | .home-container .home-content .home-data {
251 | grid-column: 1/3;
252 | }
253 | .home-container .home-content .home-data-title {
254 | font-size: var(--big-font-size);
255 | }
256 | .home-container .home-content .home-data-subtitle {
257 | color: var(--text-color);
258 | margin-bottom: var(--mb-0-75);
259 | font-size: var(--h3-font-size);
260 | font-weight: var(--font-medium);
261 | }
262 | .home-container .home-content .home-data-description {
263 | margin-bottom: var(--mb-2);
264 | }
265 | .home-container .home-scroll {
266 | display: none;
267 | }
268 | .home-container .home-scroll-button {
269 | color: var(--first-color);
270 | transition: 0.3s;
271 | }
272 | .home-container .home-scroll-button:hover {
273 | transform: translateY(0.25rem);
274 | }
275 | .home-container .home-scroll-button-name {
276 | color: var(--title-color);
277 | margin-right: var(--mb-0-25);
278 | font-size: var(--small-font-size);
279 | font-weight: var(--font-medium);
280 | }
281 | .home-container .home-scroll-button-arrow {
282 | font-size: 1.25rem;
283 | }
284 |
285 | /* Buttons */
286 | .button {
287 | display: inline-block;
288 | background-color: var(--first-color);
289 | border-radius: 0.5rem;
290 | border: none;
291 | color: #fff;
292 | font-size: medium;
293 | font-weight: var(--font-medium);
294 | padding: 1rem;
295 | cursor: pointer;
296 | }
297 | .button:hover {
298 | background-color: var(--first-color-alt);
299 | }
300 | .button-icon {
301 | margin-left: var(--mb-0-5);
302 | font-size: 1.25rem;
303 | transition: 0.3s;
304 | }
305 |
306 | .button-flex {
307 | display: inline-flex;
308 | align-items: center;
309 | cursor: pointer;
310 | }
311 |
312 | .button-small {
313 | padding: 0.75rem 1rem;
314 | }
315 |
316 | .button-white {
317 | background-color: #fff;
318 | color: var(--first-color);
319 | }
320 | .button-white:hover {
321 | background-color: #fff;
322 | }
323 |
324 | .button-link {
325 | background-color: transparent;
326 | color: var(--first-color);
327 | padding: 0;
328 | }
329 | .button-link:hover {
330 | background-color: transparent;
331 | color: var(--first-color-alt);
332 | }
333 |
334 | /* About section */
335 | .about-container-img {
336 | display: flex;
337 | justify-content: center;
338 | }
339 | .about-container-imgAlt {
340 | width: 265px;
341 | border-radius: 0.5rem;
342 | }
343 | .about-container-data-description {
344 | margin-top: var(--mb-2);
345 | margin-bottom: var(--mb-2-5);
346 | text-align: center;
347 | }
348 | .about-container-data-info {
349 | display: flex;
350 | justify-content: space-evenly;
351 | margin-bottom: var(--mb-2-5);
352 | }
353 | .about-container-data-info div {
354 | text-align: center;
355 | }
356 | .about-container-data-info-title {
357 | color: var(--title-color);
358 | font-size: var(--h2-font-size);
359 | font-weight: var(--font-semi-bold);
360 | }
361 | .about-container-data-info-name {
362 | font-size: var(--smaller-font-size);
363 | }
364 | .about-container-data-info-title, .about-container-data-info-name {
365 | display: block;
366 | text-align: center;
367 | }
368 | .about-container .about-buttons {
369 | display: flex;
370 | justify-content: center;
371 | }
372 | .about-container .phd-link {
373 | margin-top: 25px;
374 | }
375 |
376 | /* Skills section */
377 | .skills-container {
378 | display: grid;
379 | grid-template-columns: 1fr;
380 | gap: 2rem;
381 | }
382 | .skills-container-header {
383 | display: flex;
384 | margin-bottom: var(--mb-2);
385 | align-items: center;
386 | cursor: pointer;
387 | }
388 | .skills-container-header .skills-title {
389 | font-size: var(--h3-font-size);
390 | }
391 | .skills-container-header .skills-subtitle {
392 | color: var(--text-color-light);
393 | font-size: var(--small-font-size);
394 | }
395 | .skills-container-header .skills-icon,
396 | .skills-container-header .skills-arrow {
397 | color: var(--first-color);
398 | font-size: 2rem;
399 | }
400 | .skills-container-header .skills-arrow {
401 | margin-left: auto;
402 | transition: 0.4s;
403 | }
404 | .skills-container-header .skills-icon {
405 | margin-right: var(--mb-0-75);
406 | }
407 | .skills-container .skills-open .skills-list {
408 | height: -moz-max-content;
409 | height: max-content;
410 | margin-bottom: var(--mb-2-5);
411 | }
412 | .skills-container .skills-open .skills-arrow {
413 | transform: rotate(-180deg);
414 | }
415 | .skills-container .skills-close .skills-list {
416 | height: 0;
417 | overflow: hidden;
418 | }
419 | .skills-container .skills-list {
420 | row-gap: 1.5rem;
421 | padding: 0 2rem;
422 | }
423 | .skills-container .skills-titles {
424 | display: flex;
425 | margin-bottom: var(--mb-0-5);
426 | justify-content: space-between;
427 | }
428 | .skills-container .skills-name {
429 | font-size: var(--normal-font-size);
430 | font-weight: var(--font-medium);
431 | }
432 | .skills-container .skills-bar,
433 | .skills-container .skills-percentage {
434 | height: 5px;
435 | border-radius: 0.25rem;
436 | }
437 | .skills-container .skills-bar {
438 | background-color: var(--first-color-lighter);
439 | }
440 | .skills-container .skills-percentage {
441 | display: block;
442 | background-color: var(--first-color);
443 | }
444 | .skills-container .skills-polymer {
445 | width: 100%;
446 | }
447 | .skills-container .skills-experimental {
448 | width: 100%;
449 | }
450 | .skills-container .skills-sustainable {
451 | width: 100%;
452 | }
453 | .skills-container .skills-matlab {
454 | width: 90%;
455 | }
456 | .skills-container .skills-latex {
457 | width: 90%;
458 | }
459 | .skills-container .skills-adobe {
460 | width: 90%;
461 | }
462 | .skills-container .skills-imagej {
463 | width: 90%;
464 | }
465 | .skills-container .skills-office {
466 | width: 100%;
467 | }
468 | .skills-container .skills-coordinating {
469 | width: 100%;
470 | }
471 | .skills-container .skills-lean {
472 | width: 100%;
473 | }
474 | .skills-container .skills-mentoring {
475 | width: 95%;
476 | }
477 | .skills-container .skills-spanish {
478 | width: 100%;
479 | }
480 | .skills-container .skills-catalan {
481 | width: 100%;
482 | }
483 | .skills-container .skills-english {
484 | width: 90%;
485 | }
486 | .skills-container .skills-dutch {
487 | width: 60%;
488 | }
489 | .skills-container .skills-japanese {
490 | width: 40%;
491 | }
492 |
493 | /* Experience section */
494 | .experience-tabs {
495 | display: flex;
496 | margin-bottom: var(--mb-2);
497 | justify-content: space-evenly;
498 | }
499 | .experience-tabs-button {
500 | font-size: var(--h3-font-size);
501 | font-weight: var(--font-medium);
502 | cursor: pointer;
503 | }
504 | .experience-tabs-button:hover {
505 | color: var(--first-color);
506 | }
507 | .experience-tabs-button .experience-icon {
508 | margin-right: var(--mb-0-25);
509 | font-size: 1.8rem;
510 | }
511 | .experience-tabs-button.experience-active {
512 | color: var(--first-color);
513 | }
514 |
515 | .experience [data-content] {
516 | display: none;
517 | }
518 |
519 | .experience-active[data-content] {
520 | display: block;
521 | }
522 |
523 | .experience-data {
524 | display: grid;
525 | grid-template-columns: 1fr max-content 1fr;
526 | }
527 | .experience-data-alt {
528 | text-align: center;
529 | }
530 | .experience-data .experience-title {
531 | font-size: var(--normal-font-size);
532 | font-weight: var(--font-medium);
533 | }
534 | .experience-data .experience-subtitle {
535 | display: inline-block;
536 | margin-bottom: var(--mb-1);
537 | font-size: var(--small-font-size);
538 | }
539 | .experience-data .experience-calendar {
540 | color: var(--text-color-light);
541 | font-size: var(--smaller-font-size);
542 | }
543 | .experience-data .experience-rounder {
544 | display: inline-block;
545 | width: 13px;
546 | height: 13px;
547 | background-color: var(--first-color);
548 | border-radius: 50%;
549 | }
550 | .experience-data .experience-line {
551 | display: block;
552 | width: 1px;
553 | height: 100%;
554 | background-color: var(--first-color);
555 | transform: translate(6px, -7px);
556 | }
557 |
558 | /* Articles section */
559 | .articles-container {
560 | overflow: initial;
561 | }
562 | .articles-container .articles-content {
563 | padding: 0 1.5rem;
564 | }
565 | .articles-container .articles-content .articles-img {
566 | width: 265px;
567 | border-radius: 0.5rem;
568 | justify-self: center;
569 | }
570 | .articles-container .articles-content .articles-title {
571 | margin-bottom: var(--mb-0-5);
572 | font-size: var(--h3-font-size);
573 | }
574 | .articles-container .articles-content .articles-description {
575 | margin-bottom: var(--mb-0-75);
576 | }
577 | .articles-container .articles-content .articles-button:hover .button-icon {
578 | transform: translateX(0.45rem);
579 | }
580 | .articles-container .swiper-button-prev::after,
581 | .articles-container .swiper-button-next::after {
582 | content: "";
583 | }
584 | .articles-container .swiper-articles-icon {
585 | color: var(--first-color);
586 | font-size: 2rem;
587 | }
588 | .articles-container .swiper-button-next {
589 | right: -0.5rem;
590 | }
591 | .articles-container .swiper-button-prev {
592 | left: -0.5rem;
593 | }
594 |
595 | .swiper-container-horizontal > .swiper-pagination-bullets {
596 | bottom: -2.5rem;
597 | }
598 |
599 | .swiper-pagination-bullet-active {
600 | background-color: var(--first-color);
601 | }
602 |
603 | .swiper-button-next,
604 | .swiper-button-prev,
605 | .swiper-pagination-bullet {
606 | outline: none;
607 | }
608 |
609 | /* Contact section */
610 | .contact-container {
611 | row-gap: 3rem;
612 | }
613 | .contact-container .contact-information {
614 | display: flex;
615 | margin-bottom: var(--mb-2);
616 | justify-content: center;
617 | text-align: center;
618 | }
619 | .contact-container .contact-information .contact-icon {
620 | margin-right: var(--mb-0-75);
621 | color: var(--first-color);
622 | font-size: 2rem;
623 | }
624 | .contact-container .contact-information .contact-title {
625 | font-size: var(--h3-font-size);
626 | font-weight: var(--font-medium);
627 | }
628 | .contact-container .contact-information .contact-subtitle {
629 | color: var(--text-color-light);
630 | font-size: var(--small-font-size);
631 | text-decoration: none;
632 | }
633 | .contact-container .contact-content {
634 | background-color: var(--input-color);
635 | border-radius: 0.5rem;
636 | padding: 0.75rem 1rem 0.25rem;
637 | }
638 | .contact-container .contact-content .contact-label {
639 | color: var(--title-color);
640 | font-size: var(--smaller-font-size);
641 | }
642 | .contact-container .contact-content .contact-input {
643 | width: 100%;
644 | background-color: var(--input-color);
645 | border: none;
646 | color: var(--text-color);
647 | font-family: var(--body-font);
648 | font-size: var(--normal-font-size);
649 | outline: none;
650 | padding: 0.25rem 0.5rem 0.5rem 0;
651 | }
652 |
653 | /* Footer */
654 | .footer {
655 | padding-top: 2rem;
656 | }
657 | .footer-bg {
658 | background-color: var(--first-color-second);
659 | padding: 2rem 0 3rem;
660 | }
661 | .footer-container {
662 | row-gap: 3.5rem;
663 | }
664 | .footer-container .footer-title {
665 | margin-bottom: var(--mb-0-25);
666 | font-size: var(--h1-font-size);
667 | }
668 | .footer-container .footer-subtitle {
669 | font-size: var(--small-font-size);
670 | }
671 | .footer-container .footer-links {
672 | display: flex;
673 | flex-direction: column;
674 | row-gap: 1.5rem;
675 | }
676 | .footer-container .footer-links .footer-link:hover {
677 | color: var(--first-color-lighter);
678 | }
679 | .footer-container .footer-social {
680 | margin-right: var(--mb-1-5);
681 | font-size: 1.25rem;
682 | }
683 | .footer-container .footer-social:hover {
684 | color: var(--first-color-lighter);
685 | }
686 | .footer .footer-copy {
687 | margin-top: var(--mb-3);
688 | color: #fff;
689 | font-size: var(--smaller-font-size);
690 | text-align: center;
691 | }
692 | .footer .footer-title,
693 | .footer .footer-subtitle,
694 | .footer .footer-link,
695 | .footer .footer-social {
696 | color: #fff;
697 | }
698 |
699 | /* Scroll-up */
700 | .scrollup {
701 | position: fixed;
702 | right: 2.5rem;
703 | bottom: -20%;
704 | background-color: var(--first-color);
705 | border-radius: 0.4rem;
706 | opacity: 0.8;
707 | padding: 0.3rem 0.5rem;
708 | transition: 0.4s;
709 | z-index: var(--z-tooltip);
710 | }
711 | .scrollup-icon {
712 | color: #fff;
713 | font-size: 1.5rem;
714 | }
715 | .scrollup:hover {
716 | background-color: var(--first-color-alt);
717 | }
718 |
719 | .show-scroll {
720 | bottom: 3.5rem;
721 | right: 2.5rem;
722 | }
723 |
724 | /* Scroll bar */
725 | ::-webkit-scrollbar {
726 | width: 0.6rem;
727 | background-color: var(--scroll-bar-color);
728 | border-radius: 0.5rem;
729 | }
730 |
731 | ::-webkit-scrollbar-thumb {
732 | background-color: var(--scroll-thumb-color);
733 | border-radius: 0.5rem;
734 | }
735 | ::-webkit-scrollbar-thumb:hover {
736 | background-color: var(--text-color-light);
737 | }
738 |
739 | /* MEDIA QUERIES */
740 | /* Small devices */
741 | @media screen and (max-width: 350px) {
742 | .container {
743 | margin-left: var(--mb-1-5);
744 | margin-right: var(--mb-1-5);
745 | }
746 | .container .nav-menu {
747 | padding: 2rem 0.25rem 4rem;
748 | }
749 | .container .nav-list {
750 | -moz-column-gap: 0;
751 | column-gap: 0;
752 | }
753 | .home-content {
754 | grid-template-columns: 0.25fr 3fr;
755 | }
756 | .home-content .home-blob {
757 | width: 180px;
758 | }
759 | .skills-title {
760 | font-size: var(--normal-font-size);
761 | }
762 | .experience-data {
763 | gap: 0.5rem;
764 | }
765 | }
766 | /* Nav-menu (medium devices) */
767 | @media screen and (max-width: 768px) {
768 | .nav-menu {
769 | position: fixed;
770 | width: 100%;
771 | bottom: -100%;
772 | left: 0;
773 | background-color: var(--body-color);
774 | border-radius: 1.5rem 1.5rem 0 0;
775 | box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.15);
776 | padding: 2rem 1.5rem 4rem;
777 | transition: 0.3s;
778 | }
779 | }
780 | /* Medium devices */
781 | @media screen and (min-width: 568px) {
782 | .home-content {
783 | grid-template-columns: max-content 1fr 1fr !important;
784 | }
785 | .home-content .home-data {
786 | grid-column: initial !important;
787 | margin-top: 25px;
788 | margin-left: 25px;
789 | }
790 | .home-content .home-img {
791 | order: 1;
792 | justify-self: center;
793 | }
794 | .about-container,
795 | .articles-content {
796 | grid-template-columns: repeat(2, 1fr);
797 | }
798 | .about-container-imgAlt,
799 | .articles-content-imgAlt {
800 | width: 225px;
801 | height: 185px;
802 | margin-top: 25px;
803 | align-self: center;
804 | }
805 | .articles-content {
806 | align-items: center;
807 | }
808 | .experience-sections {
809 | display: grid;
810 | grid-template-columns: 0.8fr;
811 | justify-content: center;
812 | }
813 | .contact-items {
814 | display: flex;
815 | justify-content: space-around;
816 | }
817 | .contact-items .contact-information {
818 | align-items: center;
819 | }
820 | .contact-form {
821 | grid-template-columns: 1fr;
822 | }
823 | .contact-form .contact-inputs {
824 | grid-template-columns: 1fr 1fr;
825 | }
826 | .contact-button {
827 | display: flex;
828 | align-items: center;
829 | justify-content: center;
830 | }
831 | .footer-container {
832 | grid-template-columns: repeat(3, 1fr);
833 | }
834 | .footer-container .footer-texts,
835 | .footer-container .footer-links,
836 | .footer-container .footer-socials {
837 | text-align: center;
838 | align-self: center;
839 | }
840 | .footer-container .footer-socials {
841 | display: flex;
842 | flex-direction: column;
843 | row-gap: 1rem;
844 | }
845 | }
846 | @media screen and (min-width: 768px) {
847 | .container {
848 | margin-left: auto;
849 | margin-right: auto;
850 | }
851 | body {
852 | margin: 0;
853 | }
854 | .header {
855 | top: 0;
856 | bottom: initial;
857 | padding: 1rem 2rem !important;
858 | }
859 | .section {
860 | padding: 8rem 0 2rem;
861 | }
862 | .header,
863 | .main,
864 | .footer-container {
865 | padding: 0 1rem;
866 | }
867 | .nav {
868 | -moz-column-gap: 1rem;
869 | column-gap: 1rem;
870 | }
871 | .nav .nav-list {
872 | display: flex;
873 | -moz-column-gap: 2rem;
874 | column-gap: 2rem;
875 | }
876 | .nav .nav-list .nav-link {
877 | font-size: var(--h3-font-size);
878 | font-weight: var(--font-lighter);
879 | }
880 | .nav .nav-link-icon,
881 | .nav .nav-close,
882 | .nav .nav-toggle {
883 | display: none;
884 | }
885 | .nav .change-theme {
886 | margin: 0;
887 | }
888 | .home-container {
889 | row-gap: 5rem;
890 | }
891 | .home-container .home-content {
892 | -moz-column-gap: 2rem;
893 | column-gap: 2rem;
894 | padding-top: 5rem;
895 | }
896 | .home-container .home-content .home-img .home-blob {
897 | width: 270px;
898 | fill: var(--first-color);
899 | }
900 | .home-container .home-content .home-img .home-blob-img {
901 | width: 170px;
902 | }
903 | .about-container {
904 | -moz-column-gap: 5rem;
905 | column-gap: 5rem;
906 | }
907 | .about-container-imgAlt {
908 | width: 350px;
909 | height: 250px;
910 | }
911 | .about-container-data-description {
912 | text-align: initial;
913 | }
914 | .about-container-data-info {
915 | justify-content: space-between;
916 | }
917 | .skills-container {
918 | grid-template-columns: 1fr 1fr;
919 | }
920 | .experience-sections {
921 | grid-template-columns: 0.5fr;
922 | }
923 | .experience-tabs {
924 | justify-content: center;
925 | }
926 | .experience-tabs-button {
927 | margin: 0 var(--mb-1-5);
928 | }
929 | .articles-img {
930 | width: 320px !important;
931 | }
932 | .articles-content {
933 | align-items: center;
934 | }
935 | }
936 | /* Large devices */
937 | @media screen and (min-width: 1024px) {
938 | .header,
939 | .main,
940 | .footer-container {
941 | padding: 0;
942 | }
943 | .home-img .home-blob {
944 | width: 320px !important;
945 | fill: var(--first-color);
946 | }
947 | .home-img .home-blob-img {
948 | width: 170px;
949 | }
950 | .home-social {
951 | transform: translateX(-5rem);
952 | }
953 | .articles-container {
954 | margin-bottom: 2.5rem;
955 | }
956 | .articles-content {
957 | -moz-column-gap: 5rem;
958 | column-gap: 5rem;
959 | }
960 | .swiper-articles-icon {
961 | font-size: 3rem !important;
962 | }
963 | .swiper-button-prev {
964 | left: -3.5rem !important;
965 | }
966 | .swiper-button-next {
967 | right: -3.5rem !important;
968 | }
969 | .swiper-container-horizontal > .swiper-pagination-bullets {
970 | bottom: -4.5rem;
971 | }
972 | .footer-container {
973 | display: flex;
974 | justify-content: space-between;
975 | }
976 | .footer-container .footer-socials {
977 | display: flex;
978 | flex-direction: row;
979 | -moz-column-gap: 1rem;
980 | column-gap: 1rem;
981 | }
982 | .footer-links {
983 | display: flex;
984 | flex-direction: row !important;
985 | align-items: center;
986 | }
987 | .footer-links .footer-link {
988 | margin-left: var(--mb-1);
989 | }
990 | }/*# sourceMappingURL=styles.css.map */
--------------------------------------------------------------------------------
/scss/styles.scss:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap');
2 | @import "variables";
3 |
4 | /* Base */
5 | * {
6 | box-sizing: border-box;
7 | margin: 0;
8 | padding: 0;
9 | }
10 |
11 | html {
12 | scroll-behavior: smooth;
13 | }
14 |
15 | body {
16 | margin: 0 0 var(--header-height) 0;
17 | background-color: var(--body-color);
18 | color: var(--text-color);
19 | font-family: var(--body-font);
20 | font-size: var(--normal-font-size);
21 | }
22 |
23 | h1,
24 | h2,
25 | h3,
26 | h4 {
27 | color: var(--title-color);
28 | font-weight: var(--font-semi-bold);
29 | }
30 |
31 | ul {
32 | list-style: none;
33 | }
34 |
35 | a {
36 | text-decoration: none;
37 | }
38 |
39 | img {
40 | max-width: 100%;
41 | height: auto;
42 | }
43 |
44 | /* Dark/Light button */
45 | .nav-btns {
46 | display: flex;
47 | align-items: center;
48 |
49 | .change-theme {
50 | margin-right: var(--mb-1);
51 | color: var(--title-color);
52 | font-size: 1.25rem;
53 | cursor: pointer;
54 |
55 | &:hover {
56 | color: var(--first-color);
57 | }
58 | }
59 | }
60 |
61 | /* Reusable CSS classes */
62 | .section {
63 | padding: 2rem 0 4rem;
64 |
65 | &-title {
66 | font-size: var(--h1-font-size);
67 | }
68 |
69 | &-subtitle {
70 | display: block;
71 | margin-bottom: var(--mb-3);
72 | font-size: var(--small-font-size);
73 | }
74 |
75 | &-title,
76 | &-subtitle {
77 | text-align: center;
78 | }
79 | }
80 |
81 | /* Layout */
82 | .container {
83 | max-width: 768px;
84 | margin-left: var(--mb-1-5);
85 | margin-right: var(--mb-1-5);
86 |
87 | }
88 |
89 | .grid {
90 | display: grid;
91 | gap: 1.5rem;
92 | }
93 |
94 | /* Header */
95 | .header {
96 | position: fixed;
97 | width: 100%;
98 | bottom: 0;
99 | left: 0;
100 | background-color: var(--body-color);
101 | z-index: var(--z-fixed);
102 |
103 | &.scroll-header {
104 | box-shadow: 0 -1px 4px rgba(0, 0, 0, .15);
105 | }
106 |
107 | .nav {
108 | display: flex;
109 | max-width: 968px;
110 | height: var(--header-height);
111 | align-items: center;
112 | justify-content: space-between;
113 |
114 | &-menu {
115 |
116 | .active-link {
117 | color: var(--first-color);
118 | }
119 |
120 | &.show-menu {
121 | bottom: 0;
122 | }
123 | }
124 |
125 | &-logo,
126 | &-toggle {
127 | color: var(--title-color);
128 | font-size: 1.5rem;
129 | font-weight: var(--font-medium);
130 |
131 | &:hover {
132 | color: var(--first-color);
133 | }
134 | }
135 |
136 | &-toggle {
137 | font-size: 1.2rem;
138 | cursor: pointer;
139 | }
140 |
141 | &-list {
142 | grid-template-columns: repeat(3, 1fr);
143 | gap: 2rem;
144 | }
145 |
146 | &-link {
147 | display: flex;
148 | flex-direction: column;
149 | align-items: center;
150 | color: var(--title-color);
151 | font-size: var(--small-font-size);
152 | font-weight: var(--font-medium);
153 | transition: 0.3s;
154 |
155 | &-icon {
156 | font-size: 1.2rem;
157 | }
158 |
159 | &:hover {
160 | color: var(--first-color);
161 | }
162 | }
163 |
164 | &-close {
165 | position: absolute;
166 | right: 1.5rem;
167 | bottom: .7rem;
168 | color: var(--first-color);
169 | font-size: 1.5rem;
170 | cursor: pointer;
171 |
172 | &:hover {
173 | color: var(--first-color-alt);
174 | }
175 | }
176 | }
177 | }
178 |
179 | /* Home */
180 | .home-container {
181 | gap: 1rem;
182 |
183 | .home-content {
184 | grid-template-columns: .5fr 3fr;
185 | align-items: center;
186 | padding-top: 1.5rem;
187 |
188 | .home-img {
189 |
190 | .home-blob {
191 | width: 200px;
192 | fill: var(--first-color);
193 |
194 | &-img {
195 | width: 170px;
196 | }
197 | }
198 |
199 | }
200 |
201 | .home-social {
202 | display: grid;
203 | grid-template-columns: max-content;
204 | row-gap: 1rem;
205 |
206 | &-icon {
207 | color: var(--first-color);
208 | font-size: 1.25rem;
209 |
210 | &:hover {
211 | color: var(--first-color-alt);
212 | }
213 | }
214 | }
215 |
216 | .home-data {
217 | grid-column: 1/3;
218 |
219 | &-title {
220 | font-size: var(--big-font-size);
221 | }
222 |
223 | &-subtitle {
224 | color: var(--text-color);
225 | margin-bottom: var(--mb-0-75);
226 | font-size: var(--h3-font-size);
227 | font-weight: var(--font-medium);
228 | }
229 |
230 | &-description {
231 | margin-bottom: var(--mb-2);
232 | }
233 | }
234 | }
235 |
236 | .home-scroll {
237 | display: none;
238 |
239 | &-button {
240 | color: var(--first-color);
241 | transition: 0.3s;
242 |
243 | &:hover {
244 | transform: translateY(.25rem);
245 | }
246 |
247 | &-name {
248 | color: var(--title-color);
249 | margin-right: var(--mb-0-25);
250 | font-size: var(--small-font-size);
251 | font-weight: var(--font-medium);
252 | }
253 |
254 | &-arrow {
255 | font-size: 1.25rem;
256 | }
257 | }
258 | }
259 | }
260 |
261 | /* Buttons */
262 | .button {
263 | display: inline-block;
264 | background-color: var(--first-color);
265 | border-radius: .5rem;
266 | border: none;
267 | color: #fff;
268 | font-size: medium;
269 | font-weight: var(--font-medium);
270 | padding: 1rem;
271 | cursor: pointer;
272 |
273 | &:hover {
274 | background-color: var(--first-color-alt);
275 | }
276 |
277 | &-icon {
278 | margin-left: var(--mb-0-5);
279 | font-size: 1.25rem;
280 | transition: 0.3s;
281 | }
282 | }
283 |
284 | .button-flex {
285 | display: inline-flex;
286 | align-items: center;
287 | cursor: pointer;
288 | }
289 |
290 | .button-small {
291 | padding: .75rem 1rem;
292 | }
293 |
294 | .button-white {
295 | background-color: #fff;
296 | color: var(--first-color);
297 |
298 | &:hover {
299 | background-color: #fff;
300 | }
301 | }
302 |
303 | .button-link {
304 | background-color: transparent;
305 | color: var(--first-color);
306 | padding: 0;
307 |
308 | &:hover {
309 | background-color: transparent;
310 | color: var(--first-color-alt);
311 | }
312 | }
313 |
314 | /* About section */
315 | .about-container {
316 | &-img {
317 | display: flex;
318 | justify-content: center;
319 | }
320 |
321 | &-imgAlt {
322 | width: 265px;
323 | border-radius: .5rem;
324 | }
325 |
326 | &-data-description {
327 | margin-top: var(--mb-2);
328 | margin-bottom: var(--mb-2-5);
329 | text-align: center;
330 | }
331 |
332 | &-data-info {
333 | display: flex;
334 | justify-content: space-evenly;
335 | margin-bottom: var(--mb-2-5);
336 |
337 | div {
338 | text-align: center;
339 | }
340 |
341 | &-title {
342 | color: var(--title-color);
343 | font-size: var(--h2-font-size);
344 | font-weight: var(--font-semi-bold);
345 | }
346 |
347 | &-name {
348 | font-size: var(--smaller-font-size);
349 | }
350 |
351 | &-title,
352 | &-name {
353 | display: block;
354 | text-align: center;
355 | }
356 | }
357 |
358 | .about-buttons {
359 | display: flex;
360 | justify-content: center;
361 | }
362 |
363 | .phd-link {
364 | margin-top: 25px;
365 | }
366 | }
367 |
368 | /* Skills section */
369 | .skills-container {
370 | display: grid;
371 | grid-template-columns: 1fr;
372 | gap: 2rem;
373 |
374 | &-header {
375 | display: flex;
376 | margin-bottom: var(--mb-2);
377 | align-items: center;
378 | cursor: pointer;
379 |
380 | .skills-title {
381 | font-size: var(--h3-font-size);
382 | }
383 |
384 | .skills-subtitle {
385 | color: var(--text-color-light);
386 | font-size: var(--small-font-size);
387 | }
388 |
389 | .skills-icon,
390 | .skills-arrow {
391 | color: var(--first-color);
392 | font-size: 2rem;
393 | }
394 |
395 | .skills-arrow {
396 | margin-left: auto;
397 | transition: 0.4s;
398 | }
399 |
400 | .skills-icon {
401 | margin-right: var(--mb-0-75);
402 | }
403 | }
404 |
405 | .skills-open {
406 | .skills-list {
407 | height: max-content;
408 | margin-bottom: var(--mb-2-5);
409 | }
410 |
411 | .skills-arrow {
412 | transform: rotate(-180deg);
413 | }
414 | }
415 |
416 | .skills-close .skills-list {
417 | height: 0;
418 | overflow: hidden;
419 | }
420 |
421 | .skills-list {
422 | row-gap: 1.5rem;
423 | padding: 0 2rem;
424 | }
425 |
426 | .skills-titles {
427 | display: flex;
428 | margin-bottom: var(--mb-0-5);
429 | justify-content: space-between;
430 | }
431 |
432 | .skills-name {
433 | font-size: var(--normal-font-size);
434 | font-weight: var(--font-medium);
435 | }
436 |
437 | .skills-bar,
438 | .skills-percentage {
439 | height: 5px;
440 | border-radius: .25rem;
441 | }
442 |
443 | .skills-bar {
444 | background-color: var(--first-color-lighter);
445 | }
446 |
447 | .skills-percentage {
448 | display: block;
449 | background-color: var(--first-color);
450 | }
451 |
452 | .skills-polymer { width: 100%; }
453 | .skills-experimental { width: 100%; }
454 | .skills-sustainable { width: 100%; }
455 | .skills-matlab { width: 90%; }
456 | .skills-latex { width: 90%; }
457 | .skills-adobe { width: 90%; }
458 | .skills-imagej { width: 90%; }
459 | .skills-office { width: 100%; }
460 | .skills-coordinating { width: 100%; }
461 | .skills-lean { width: 100%; }
462 | .skills-mentoring { width: 95%; }
463 | .skills-spanish { width: 100%; }
464 | .skills-catalan { width: 100%; }
465 | .skills-english { width: 90%; }
466 | .skills-dutch { width: 60%; }
467 | .skills-japanese { width: 40%; }
468 | }
469 |
470 | /* Experience section */
471 | .experience-tabs {
472 | display: flex;
473 | margin-bottom: var(--mb-2);
474 | justify-content: space-evenly;
475 |
476 | &-button {
477 | font-size: var(--h3-font-size);
478 | font-weight: var(--font-medium);
479 | cursor: pointer;
480 |
481 | &:hover {
482 | color: var(--first-color);
483 | }
484 |
485 | .experience-icon {
486 | margin-right: var(--mb-0-25);
487 | font-size: 1.8rem;
488 | }
489 | }
490 |
491 | &-button.experience-active {
492 | color: var(--first-color);
493 | }
494 | }
495 |
496 | .experience [data-content] {
497 | display: none;
498 | }
499 |
500 | .experience-active[data-content] {
501 | display: block;
502 | }
503 |
504 | .experience-data {
505 | display: grid;
506 | grid-template-columns: 1fr max-content 1fr;
507 |
508 | &-alt {
509 | text-align: center;
510 | }
511 |
512 | .experience-title {
513 | font-size: var(--normal-font-size);
514 | font-weight: var(--font-medium);
515 | }
516 |
517 | .experience-subtitle {
518 | display: inline-block;
519 | margin-bottom: var(--mb-1);
520 | font-size: var(--small-font-size);
521 | }
522 |
523 | .experience-calendar {
524 | color: var(--text-color-light);
525 | font-size: var(--smaller-font-size);
526 | }
527 |
528 | .experience-rounder {
529 | display: inline-block;
530 | width: 13px;
531 | height: 13px;
532 | background-color: var(--first-color);
533 | border-radius: 50%;
534 | }
535 |
536 | .experience-line {
537 | display: block;
538 | width: 1px;
539 | height: 100%;
540 | background-color: var(--first-color);
541 | transform: translate(6px, -7px);
542 | }
543 | }
544 |
545 | /* Articles section */
546 | .articles-container {
547 | overflow: initial;
548 |
549 | .articles-content {
550 | padding: 0 1.5rem;
551 |
552 | .articles-img {
553 | width: 265px;
554 | border-radius: .5rem;
555 | justify-self: center;
556 | }
557 |
558 | .articles-title {
559 | margin-bottom: var(--mb-0-5);
560 | font-size: var(--h3-font-size);
561 | }
562 |
563 | .articles-description {
564 | margin-bottom: var(--mb-0-75);
565 | }
566 |
567 | .articles-button:hover .button-icon {
568 | transform: translateX(.45rem);
569 | }
570 | }
571 |
572 | .swiper-button-prev::after,
573 | .swiper-button-next::after {
574 | content: '';
575 | }
576 |
577 | .swiper-articles-icon {
578 | color: var(--first-color);
579 | font-size: 2rem;
580 | }
581 |
582 | .swiper-button-next {
583 | right: -.5rem;
584 | }
585 |
586 | .swiper-button-prev {
587 | left: -.5rem;
588 | }
589 | }
590 |
591 | .swiper-container-horizontal>.swiper-pagination-bullets {
592 | bottom: -2.5rem;
593 | }
594 |
595 | .swiper-pagination-bullet-active {
596 | background-color: var(--first-color);
597 | }
598 |
599 | .swiper-button-next,
600 | .swiper-button-prev,
601 | .swiper-pagination-bullet {
602 | outline: none;
603 | }
604 |
605 | /* Contact section */
606 | .contact-container {
607 | row-gap: 3rem;
608 |
609 | .contact-information {
610 | display: flex;
611 | margin-bottom: var(--mb-2);
612 | justify-content: center;
613 | text-align: center;
614 |
615 | .contact-icon {
616 | margin-right: var(--mb-0-75);
617 | color: var(--first-color);
618 | font-size: 2rem;
619 | }
620 |
621 | .contact-title {
622 | font-size: var(--h3-font-size);
623 | font-weight: var(--font-medium);
624 | }
625 |
626 | .contact-subtitle {
627 | color: var(--text-color-light);
628 | font-size: var(--small-font-size);
629 | text-decoration: none;
630 | }
631 | }
632 |
633 | .contact-content {
634 | background-color: var(--input-color);
635 | border-radius: .5rem;
636 | padding: .75rem 1rem .25rem;
637 |
638 | .contact-label {
639 | color: var(--title-color);
640 | font-size: var(--smaller-font-size);
641 | }
642 |
643 | .contact-input {
644 | width: 100%;
645 | background-color: var(--input-color);
646 | border: none;
647 | color: var(--text-color);
648 | font-family: var(--body-font);
649 | font-size: var(--normal-font-size);
650 | outline: none;
651 | padding: .25rem .5rem .5rem 0;
652 | }
653 | }
654 | }
655 |
656 | /* Footer */
657 | .footer {
658 | padding-top: 2rem;
659 |
660 | &-bg {
661 | background-color: var(--first-color-second);
662 | padding: 2rem 0 3rem;
663 | }
664 |
665 | &-container {
666 | row-gap: 3.5rem;
667 |
668 | .footer-title {
669 | margin-bottom: var(--mb-0-25);
670 | font-size: var(--h1-font-size);
671 | }
672 |
673 | .footer-subtitle {
674 | font-size: var(--small-font-size);
675 | }
676 |
677 | .footer-links {
678 | display: flex;
679 | flex-direction: column;
680 | row-gap: 1.5rem;
681 |
682 | .footer-link:hover {
683 | color: var(--first-color-lighter);
684 | }
685 | }
686 |
687 | .footer-social {
688 | margin-right: var(--mb-1-5);
689 | font-size: 1.25rem;
690 |
691 | &:hover {
692 | color: var(--first-color-lighter);
693 | }
694 | }
695 | }
696 |
697 | .footer-copy {
698 | margin-top: var(--mb-3);
699 | color: #fff;
700 | font-size: var(--smaller-font-size);
701 | text-align: center;
702 | }
703 |
704 | .footer-title,
705 | .footer-subtitle,
706 | .footer-link,
707 | .footer-social {
708 | color: #fff;
709 | }
710 | }
711 |
712 |
713 | /* Scroll-up */
714 | .scrollup {
715 | position: fixed;
716 | right: 2.5rem;
717 | bottom: -20%;
718 | background-color: var(--first-color);
719 | border-radius: .4rem;
720 | opacity: .8;
721 | padding: .3rem .5rem;
722 | transition: .4s;
723 | z-index: var(--z-tooltip);
724 |
725 | &-icon {
726 | color: #fff;
727 | font-size: 1.5rem;
728 | }
729 |
730 | &:hover {
731 | background-color: var(--first-color-alt);
732 | }
733 | }
734 |
735 | .show-scroll {
736 | bottom: 3.5rem;
737 | right: 2.5rem;
738 | }
739 |
740 | /* Scroll bar */
741 | ::-webkit-scrollbar {
742 | width: .60rem;
743 | background-color: var(--scroll-bar-color);
744 | border-radius: .5rem;
745 | }
746 |
747 | ::-webkit-scrollbar-thumb {
748 | background-color: var(--scroll-thumb-color);
749 | border-radius: .5rem;
750 |
751 | &:hover {
752 | background-color: var(--text-color-light);
753 | }
754 | }
755 |
756 | /* MEDIA QUERIES */
757 | /* Small devices */
758 | @media screen and (max-width: 350px) {
759 | .container {
760 | margin-left: var(--mb-1-5);
761 | margin-right: var(--mb-1-5);
762 |
763 | .nav-menu {
764 | padding: 2rem .25rem 4rem;
765 | }
766 |
767 | .nav-list {
768 | column-gap: 0;
769 | }
770 | }
771 |
772 | .home-content {
773 | grid-template-columns: .25fr 3fr;
774 |
775 | .home-blob {
776 | width: 180px;
777 | }
778 | }
779 |
780 | .skills-title {
781 | font-size: var(--normal-font-size);
782 | }
783 |
784 | .experience-data {
785 | gap: .5rem;
786 | }
787 | }
788 |
789 | /* Nav-menu (medium devices) */
790 | @media screen and (max-width: 768px) {
791 | .nav-menu {
792 | position: fixed;
793 | width: 100%;
794 | bottom: -100%;
795 | left: 0;
796 | background-color: var(--body-color);
797 | border-radius: 1.5rem 1.5rem 0 0;
798 | box-shadow: 0 -1px 4px rgba(0, 0, 0, .15);
799 | padding: 2rem 1.5rem 4rem;
800 | transition: 0.3s;
801 | }
802 | }
803 |
804 | /* Medium devices */
805 | @media screen and (min-width: 568px) {
806 | .home-content {
807 | grid-template-columns: max-content 1fr 1fr !important;
808 |
809 | .home-data {
810 | grid-column: initial !important;
811 | margin-top: 25px;
812 | margin-left: 25px;
813 | }
814 |
815 | .home-img {
816 | order: 1;
817 | justify-self: center;
818 | }
819 | }
820 |
821 | .about-container,
822 | .articles-content {
823 | grid-template-columns: repeat(2, 1fr);
824 |
825 | &-imgAlt {
826 | width: 225px;
827 | height: 185px;
828 | margin-top: 25px;
829 | align-self: center;
830 | }
831 | }
832 |
833 | .articles-content {
834 | align-items: center;
835 | }
836 |
837 | .experience-sections {
838 | display: grid;
839 | grid-template-columns: .8fr;
840 | justify-content: center;
841 | }
842 |
843 | .contact-items {
844 | display: flex;
845 | justify-content: space-around;
846 |
847 | .contact-information {
848 | align-items: center;
849 | }
850 | }
851 |
852 | .contact-form {
853 | grid-template-columns: 1fr;
854 |
855 | .contact-inputs {
856 | grid-template-columns: 1fr 1fr;
857 | }
858 | }
859 |
860 | .contact-button {
861 | display: flex;
862 | align-items: center;
863 | justify-content: center;
864 | }
865 |
866 | .footer-container {
867 | grid-template-columns: repeat(3, 1fr);
868 |
869 | .footer-texts,
870 | .footer-links,
871 | .footer-socials {
872 | text-align: center;
873 | align-self: center;
874 | }
875 |
876 | .footer-socials {
877 | display: flex;
878 | flex-direction: column;
879 | row-gap: 1rem;
880 | }
881 | }
882 | }
883 |
884 | @media screen and (min-width: 768px) {
885 | .container {
886 | margin-left: auto;
887 | margin-right: auto;
888 | }
889 |
890 | body {
891 | margin: 0;
892 | }
893 |
894 | .header {
895 | top: 0;
896 | bottom: initial;
897 | padding: 1rem 2rem !important;
898 | }
899 |
900 | .section {
901 | padding: 8rem 0 2rem;
902 | }
903 |
904 | .header,
905 | .main,
906 | .footer-container {
907 | padding: 0 1rem;
908 | }
909 |
910 | .nav {
911 | column-gap: 1rem;
912 |
913 | .nav-list {
914 | display: flex;
915 | column-gap: 2rem;
916 |
917 | .nav-link {
918 | font-size: var(--h3-font-size);
919 | font-weight: var(--font-lighter);
920 | }
921 | }
922 |
923 | .nav-link-icon,
924 | .nav-close,
925 | .nav-toggle {
926 | display: none;
927 | }
928 |
929 | .change-theme {
930 | margin: 0;
931 | }
932 | }
933 |
934 | .home-container {
935 | row-gap: 5rem;
936 |
937 | .home-content {
938 | column-gap: 2rem;
939 | padding-top: 5rem;
940 |
941 | .home-img {
942 |
943 | .home-blob {
944 | width: 270px;
945 | fill: var(--first-color);
946 |
947 | &-img {
948 | width: 170px;
949 | }
950 | }
951 | }
952 | }
953 | }
954 |
955 | .about-container {
956 | column-gap: 5rem;
957 |
958 | &-imgAlt {
959 | width: 350px;
960 | height: 250px;
961 | }
962 |
963 | &-data-description {
964 | text-align: initial;
965 | }
966 |
967 | &-data-info {
968 | justify-content: space-between;
969 | }
970 | }
971 |
972 | .skills-container {
973 | grid-template-columns: 1fr 1fr;
974 | }
975 |
976 | .experience-sections {
977 | grid-template-columns: .5fr;
978 | }
979 |
980 | .experience-tabs {
981 | justify-content: center;
982 |
983 | &-button {
984 | margin: 0 var(--mb-1-5);
985 | }
986 | }
987 |
988 | .articles-img {
989 | width: 320px !important;
990 | }
991 |
992 | .articles-content {
993 | align-items: center;
994 | }
995 | }
996 |
997 | /* Large devices */
998 | @media screen and (min-width: 1024px) {
999 | .header,
1000 | .main,
1001 | .footer-container {
1002 | padding: 0;
1003 | }
1004 |
1005 | .home-img {
1006 |
1007 | .home-blob {
1008 | width: 320px !important;
1009 | fill: var(--first-color);
1010 |
1011 | &-img {
1012 | width: 170px;
1013 | }
1014 | }
1015 | }
1016 |
1017 | .home-social {
1018 | transform: translateX(-5rem);
1019 | }
1020 |
1021 | .articles-container {
1022 | margin-bottom: 2.5rem;
1023 | }
1024 |
1025 | .articles-content {
1026 | column-gap: 5rem;
1027 | }
1028 |
1029 | .swiper-articles-icon {
1030 | font-size: 3rem !important;
1031 | }
1032 |
1033 | .swiper-button-prev {
1034 | left: -3.5rem !important;
1035 | }
1036 |
1037 | .swiper-button-next {
1038 | right: -3.5rem !important;
1039 | }
1040 |
1041 | .swiper-container-horizontal > .swiper-pagination-bullets {
1042 | bottom: -4.5rem;
1043 | }
1044 |
1045 | .footer-container {
1046 | display: flex;
1047 | justify-content: space-between;
1048 |
1049 | .footer-socials {
1050 | display: flex;
1051 | flex-direction: row;
1052 | column-gap: 1rem;
1053 | }
1054 | }
1055 |
1056 | .footer-links {
1057 | display: flex;
1058 | flex-direction: row !important;
1059 | align-items: center;
1060 |
1061 | .footer-link {
1062 | margin-left: var(--mb-1);
1063 | }
1064 | }
1065 | }
1066 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | Maria Brió Pérez | Portfolio
19 |
20 |
21 |
22 |
23 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
92 |
93 |
95 |
96 |
100 |
101 |
102 |
106 |
107 |
108 |
109 |
110 |
111 |
Maria Brió Pérez
112 |
Chemical Engineer
113 |
High level experience in polymer chemistry and materials engineering.
114 |
115 | Contact Me
116 |
117 |
118 |
119 |
125 |
126 |
127 |
128 |
129 |
130 | About Me
131 | November, 1994
132 |
133 |
134 |
139 |
140 |
141 |
Multidisciplinary Chemical Engineer with expertise in
142 | the development of innovative and sustainable materials, including environmentally responsive
143 | materials and recyclable coatings for industrial and biomedical applications.
144 |
145 |
146 |
147 | 5+
148 | Years of experience
149 |
150 |
151 | 9+
152 | Published articles
153 |
154 |
155 | 5+
156 | Spoken languages
157 |
158 |
159 |
164 |
165 |
166 |
167 |
168 |
169 |
170 | Skills
171 | A brief overview
172 |
173 |
174 |
175 |
176 |
183 |
184 |
185 |
186 |
Polymer synthesis
187 | 100%
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
Experimental design and characterization
196 | 100%
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
Sustainable materials and biodegradable polymers
205 | 100%
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
223 |
224 |
225 |
226 |
Coordinating cross-disciplinary projects
227 | 100%
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
Lean management (Green Belt certification)
236 | 100%
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
Mentoring and guiding research projects
245 | 95%
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
263 |
264 |
265 |
266 |
Matlab
267 | 90%
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
LaTeX
276 | 90%
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
Adobe Illustrator
285 | 90%
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
ImageJ
294 | 90%
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
Microsoft Office
303 | 100%
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
321 |
322 |
323 |
324 |
Spanish
325 | Native
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 |
Catalan
334 | Native
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
English
343 | C1 proficiency
344 |
345 |
346 |
347 |
348 |
349 |
350 |
351 |
Dutch
352 | A2-B1 (ongoing)
353 |
354 |
355 |
356 |
357 |
358 |
359 |
360 |
Japanese
361 | A2 (N5)
362 |
363 |
364 |
365 |
366 |
367 |
368 |
369 |
370 |
371 |
372 |
373 |
374 | Experience
375 | Professional journey
376 |
377 |
378 |
379 |
380 |
381 | Education
382 |
383 |
384 |
385 | Work
386 |
387 |
388 |
389 |
390 |
391 |
392 |
393 |
MSc. Chemical Engineering, Molecular and Materials Engineering
394 |
University of Twente
395 |
396 |
397 | 2018 - 2019
398 |
399 |
400 |
401 |
402 |
403 |
404 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 |
BSc. Chemical Engineering
413 |
University of Barcelona
414 |
415 |
416 | 2012 - 2017
417 |
418 |
419 |
420 |
421 |
422 |
423 |
424 |
425 |
426 |
PhD candidate
427 |
University of Twente, Enschede
428 |
429 |
430 | 2020 - 2024
431 |
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
442 |
443 |
444 |
445 |
446 |
Research Fellowship
447 |
Kansai University, Osaka
448 |
449 |
450 | 2023
451 |
452 |
453 |
454 |
455 |
456 |
457 |
Research Trainee
458 |
Saxion University, Enschede
459 |
460 |
461 | 2019
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
Research Trainee
478 |
University of Twente, Enschede
479 |
480 |
481 | 2017 - 2018
482 |
483 |
484 |
485 |
486 |
487 |
488 |
Research Intern
489 |
LEITAT, Barcelona
490 |
491 |
492 | 2016
493 |
494 |
495 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 | Articles
507 | Most recent work
508 |
509 |
510 |
511 |
512 |
513 |
514 |
515 |
Creating Anti‐Biofouling Surfaces by Degradable Main‐chain Polyphosphoester Polymer Brushes
516 |
Advanced Functional Materials | 2024, April
517 |
518 | Read
519 |
520 |
521 |
522 |
523 |
524 |
525 |
526 |
On the Road to Circular Polymer Brushes: Challenges and Prospects
527 |
Langmuir | 2024, April
528 |
529 | Read
530 |
531 |
532 |
533 |
534 |
535 |
536 |
537 |
PNIPAM Brushes in Colloidal Photonic Crystals Enable Ex Situ Ethanol Vapor Sensing
538 |
ACS Applied Polymer Materials | 2024, January
539 |
540 | Read
541 |
542 |
543 |
544 |
545 |
546 |
547 |
548 |
549 |
550 |
551 |
552 |
553 |
554 |
555 |
556 |
614 |
615 |
616 |
617 |
651 |
652 |
653 |
654 |
655 |
656 |
657 |
658 |
659 |
660 |
661 |
662 |
663 |
664 |
--------------------------------------------------------------------------------