// --------------- // COLORS // --------------- @primary: #1a1a1a; @secondary: #bda163; @light: #2a2a2a; @text: #fff; @gray: #ccc; @green: #428f3f; @red: #aa2a36; // --------------- // SIZES // --------------- @wh-icon: 3rem; @br: 5px; // --------------- // STYLE // --------------- body { background-color: @primary; color: @text; } #portfoli-container { h5 { color: @gray; } &:focus-visible { outline: none; } } h2 { color: @secondary; margin-bottom: 1rem; } /* #region Navbar */ .navbar { background-color: @light; .navbar-brand img { .hover-tilt(); display: inline-block; width: @wh-icon; height: @wh-icon; } .navbar-nav .navbar-item .nav-link { color: @text; } } /* #endregion */ /* #region Tech */ section#section-tech { .block { margin-bottom: 2rem; h4 { color: @gray; margin-bottom: 1rem; } .content { display: flex; flex-wrap: wrap; gap: 1rem; .item { background-color: transparent; border: 1px solid @text; padding: .4rem .8rem; border-radius: 25px; color: @text; .preAnimation(); &:hover { cursor: pointer; .postAnimation(); } } } } } /* #endregion */ /* #region About me */ section#section-about-me { #cv { background-color: @light; border-color: @text; color: @text; border-radius: @br; padding: .4rem 2rem; &:hover { background-color: @gray; color: @primary; font-weight: 600; } } } /* #endregion */ /* #region Projects */ section#section-projects { #box-projects { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; .project { border: 1px solid @text; border-radius: @br; padding: 1.5rem; display: flex; flex-direction: column; .preAnimation(); &:hover { .postAnimation(); } .header { margin-bottom: 1rem; .title { font-size: 1.25rem; font-weight: bold; margin-bottom: .5rem; } .box-dates { display: flex; gap: 1rem; .box-date { display: flex; align-items: center; gap: .25rem; @hw: .75rem; .circle { width: @hw; height: @hw; border-radius: 50%; &.air-date { background-color: @green; } &.last-update { background-color: @red; } } .date { font-size: 0.9rem; color: @gray; } } } } .content { display: flex; flex-direction: column; flex-grow: 1; a { color: @text; text-decoration: underline; } .description { flex-grow: 1; text-align: justify; margin-bottom: 1rem; p { margin: .5rem 0; line-height: 1.5; } } .interactive-link { display: flex; justify-content: flex-end; text-decoration: none !important; } } } } @media (max-width: 768px) { #box-projects { grid-template-columns: repeat(1, 1fr); } } } /* #endregion */ // --------------- // MIXIN // --------------- .hover-tilt(@angle: 10deg, @duration: 0.5s) { transition: transform @duration ease; &:hover { transform: rotate(@angle); } } .preAnimation() { transition: transform 0.2s ease, box-shadow 0.2s ease; } .postAnimation() { transform: translateY(-4px); box-shadow: 0 4px 12px rgba(255, 255, 255, 0.1); } // --------------- // ANIMATION // --------------- @keyframes wave { 0% { transform: translateY(0); } 30% { transform: translateY(-10px); } 60% { transform: translateY(0); } 100% { transform: translateY(0); } } .wave-effect { display: inline-block; cursor: pointer; span { display: inline-block; animation: none; } &:hover span { animation: wave 0.8s ease forwards; animation-delay: calc(var(--i) * 100ms); } } // --------------- // UIVERSE // --------------- /* #region Navbar */ ul { list-style: none; } @linkedin: #0274b3; @github: #24262a; @twitter: #3c9bf0; #social-networks { display: flex; align-items: center; margin: 0; padding: 0; .icon-content { margin: 0 10px; position: relative; .tooltip { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); margin-top: 10px; color: #fff; padding: 6px 10px; border-radius: 5px; opacity: 0; visibility: hidden; font-size: 12px; transition: all 0.3s ease; } &:hover .tooltip { opacity: 1; visibility: visible; } a { position: relative; overflow: hidden; display: flex; justify-content: center; align-items: center; width: 40px; height: 40px; border-radius: 50%; color: #4d4d4d; background-color: #fff; transition: all 0.3s ease-in-out; &:hover { box-shadow: 3px 2px 45px 0px rgb(0 0 0 / 12%); color: white; .filled { height: 100%; } } svg { position: relative; z-index: 1; width: 20px; height: 20px; } .filled { position: absolute; top: 0; left: 0; width: 100%; height: 0; background-color: #000; transition: all 0.3s ease-in-out; z-index: 0; } &[data-social="linkedin"] .filled { background-color: @linkedin; } &[data-social="github"] .filled { background-color: @github; } &[data-social="twitter"] .filled { background-color: @twitter; } } a[data-social="linkedin"]~.tooltip { background-color: @linkedin; } a[data-social="github"]~.tooltip { background-color: @github; } a[data-social="twitter"]~.tooltip { background-color: @twitter; } } } /* #endregion */