diff --git a/web/index.html b/web/index.html index 4580a87..45e7f03 100644 --- a/web/index.html +++ b/web/index.html @@ -7,11 +7,11 @@ Web Work Warehouse - - + - + @@ -159,9 +159,9 @@

Altro…

- io + io io - io + io
... !
@@ -421,6 +421,45 @@

Altro…

function scrollTriggers() { gsap.registerPlugin(ScrollTrigger); + gsap.to(".pic img:nth-child(1)", { + opacity: 0, + scrollTrigger: { + trigger: ".pic", + start: "100% 100%", + end: "100% 72.5%", // Changed to make space smaller + scrub: true, + markers: false + } + }); + + gsap.to(".pic img:nth-child(2)", { + opacity: 0, + scrollTrigger: { + trigger: ".pic", + start: "50% 75%", + end: "100% 0%", + scrub: true, + markers: false + } + }); + + + + gsap.to(".pic", { + "--bg-position-x": "-10%", + scrollTrigger: { + trigger: ".pic", + start: "top bottom", + end: "bottom top", + scrub: true + } + }); + + + + + + document.querySelectorAll('.aboutme .text p:nth-child(even)').forEach(img => { img.style.transform = "translateX(100vw)"; @@ -464,6 +503,17 @@

Altro…

} }); + gsap.to(".pic img", { + right: "-2.5%", + scrollTrigger: { + trigger: ".pic", + start: "top 60%", // Adjusted to start after the first animation + end: "bottom top", + scrub: true + } + }); + + document.querySelectorAll('.pic .big').forEach(img => { img.style.position = "relative"; diff --git a/web/style.css b/web/style.css index f510d9a..9ca29c8 100644 --- a/web/style.css +++ b/web/style.css @@ -1,10 +1,9 @@ * { - box-sizing: border-box; + box-sizing: border-box } :root { --h1: clamp(3.5rem, 5.5vw, 15rem); - --tile-h: auto; --offwhite-50: hsla(0, 37%, 92%, 0.50); --offwhite-25: hsla(0, 37%, 92%, 0.25); @@ -13,40 +12,34 @@ --broken-light: hsl(0, 0%, 68.6%); --broken-lighter: hsl(0, 0%, 50%); --dark-purple: hsl(287, 15%, 23%); - --clr-1: hsl(0, 80%, 20%); --clr-2: hsl(0, 77%, 25%); --clr-3: hsl(0, 70%, 30%); --clr-4: hsl(0, 52%, 50%); --clr-5: hsl(0, 19%, 60%); - --green-1: hsl(123, 52%, 70%); --green-2: hsl(123, 39%, 42%); - --about-extra-space: clamp(2rem, 25vw, 20rem); - --me-w: min(100vw, 800px); --me-h: calc(var(--me-w) * 0.752); - --shadow: drop-shadow(0px 2px 2px hsla(0, 0%, 0%, 0.5)); --contact-inner-radius: 1rem; - --contact-button-inset: -0.1rem; + --contact-button-inset: -0.1rem } ::selection { background-color: #2d2d2d; - color: var(--offwhite); + color: var(--offwhite) } -textarea::selection, -input::selection { +input::selection, +textarea::selection { color: #2d2d2d; - background-color: var(--offwhite-50); + background-color: var(--offwhite-50) } html { - /* overflow: hidden; */ - overflow-x: hidden; + overflow-x: hidden } body { @@ -59,13 +52,7 @@ body { color: var(--offwhite); line-height: 1.2; font-family: 'Space Mono', monospace; - /* perspective: 100px; - transform-style: preserve-3d; - height: 100%; - overflow-y: scroll; - display: block; */ - overflow-x: inherit; - + overflow-x: inherit } .megablob { @@ -74,23 +61,22 @@ body { width: 100lvw; height: 100lvh; inset: 0; - background-image: url('img/blob-bg.svg?v1'); + background-image: url(img/blob-bg.svg?v1); background-repeat: no-repeat; background-position: 50% 50%; - background-size: cover; - /* transform: translateZ(-3rem); */ + background-size: cover } -@media (orientation: landscape) and (max-height: 832px), -(min-width: 1140px) { +@media (orientation:landscape) and (max-height:832px), +(min-width:1140px) { .megablob { background-size: contain; - scale: 140%; + scale: 140% } } .overflow-hidden { - overflow: hidden !important; + overflow: hidden !important } h1, @@ -99,40 +85,37 @@ h3, h4 { color: var(--offwhite); max-width: 100vw; - max-width: calc(100vw - 12px * 2); + max-width: calc(100vw - 12px * 2) } h1 { - /* margin: 0rem clamp(1rem, 2vw, 3rem); */ line-height: .75; font-size: var(--h1); - font-weight: bold; - letter-spacing: -.2rem; + font-weight: 700; + letter-spacing: -.2rem } h2 { - letter-spacing: -.066rem; + letter-spacing: -.066rem } .titoletto { - letter-spacing: -.08rem; + letter-spacing: -.08rem } h2, h3, h4 { - line-height: 1; + line-height: 1 } #showcase { - /* max-width: 1200px; */ display: flex; flex-wrap: wrap; gap: 1rem; - justify-content: center; + justify-content: center } - .full-gradient { position: absolute; width: 100%; @@ -141,11 +124,11 @@ h4 { z-index: -5; overflow: hidden; opacity: .45; - mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); + mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)) } -.full-gradient::before, -.full-gradient::after { +.full-gradient::after, +.full-gradient::before { content: ""; position: absolute; top: 0; @@ -153,14 +136,14 @@ h4 { width: 100%; height: 100%; z-index: -5; - transition: opacity 4s linear; + transition: opacity 4s linear } .full-gradient::before { background: radial-gradient(at right bottom, var(--clr-3), var(--clr-4)); opacity: 1; z-index: -1; - animation: fadeInOut 12s linear infinite; + animation: fadeInOut 12s linear infinite } .full-gradient::after { @@ -168,63 +151,55 @@ h4 { opacity: 0; z-index: -2; animation: fadeInOut 12s linear infinite; - animation-delay: 6s; + animation-delay: 6s } @keyframes fadeInOut { 0%, - 50%, - 100% { - opacity: 1; + 100%, + 50% { + opacity: 1 } 25%, 75% { - opacity: 0; + opacity: 0 } } - - - -@media (width < 768px) and (orientation: portrait) { +@media (width < 768px) and (orientation:portrait) { .full-gradient { - - height: 200lvh; + height: 200lvh } } - .darken { - filter: brightness(0.7); - /* Adjust brightness level as needed */ + filter: brightness(.7) } .tile { background: #1e1e1e; border: 1px solid #333; border-radius: 8px; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5); + box-shadow: 0 2px 5px rgba(0, 0, 0, .5); overflow: hidden; flex: 1 1 calc(50% - 20px); display: flex; flex-direction: column; position: relative; font-family: 'Space Mono', monospace; - /* position: sticky; */ top: 1rem; - transition: filter 0.3s ease, border 0s; - height: var(--tile-h); + transition: filter .3s ease, border 0s; + height: var(--tile-h) } - .tile .image-wrapper { position: relative; width: 100%; z-index: 0; position: relative; - overflow: hidden; + overflow: hidden } .tile img { @@ -233,29 +208,29 @@ h4 { transition: filter .5s, transform .5s; display: block; min-height: 10rem; - object-fit: cover; + object-fit: cover } .tile .image-wrapper:hover img { filter: brightness(.5) blur(5px); - transform: scale(1.05); + transform: scale(1.05) } .tile .content { padding: 15px; z-index: 1; - position: relative; + position: relative } .tile h2 { margin: 0 0 10px 0; font-size: 1.5em; - color: #ffffff; + color: #fff } .tile p { margin: 0; - color: #cccccc; + color: #ccc } .open-btn { @@ -263,59 +238,58 @@ h4 { top: 50%; left: 50%; transform: translate(-50%, -50%); - background-color: hsl(0, 0%, 91%); + background-color: #e8e8e8; backdrop-filter: blur(20px); - color: hsl(0, 0%, 0%); + color: #000; border: none; padding: .7rem 1.4rem; font-size: 16px; cursor: pointer; opacity: 0; - outline: 2px solid hsl(0, 0%, 91%); - transition: opacity 0.3s, color .5s, background-color .5s, outline 500ms; + outline: 2px solid #e8e8e8; + transition: opacity .3s, color .5s, background-color .5s, outline .5s } .open-btn:hover { - background-color: hsla(0, 0%, 12%, 0.205); - outline: 2px solid white; + background-color: hsla(0, 0%, 12%, .205); + outline: 2px solid #fff } .image-wrapper:hover .open-btn { - opacity: 1; + opacity: 1 } -@media (max-width: 768px) { +@media (max-width:768px) { .tile { - flex: 1 1 100%; + flex: 1 1 100% } } .buttons { - font-size: clamp(2rem, 5.5vw, 15rem); + font-size: clamp(2rem, 5.5vw, 15rem) } span.line { - display: inline-block; + display: inline-block } p { - text-wrap: pretty; + text-wrap: pretty } .tile.more { transition: all 3s ease, border 0s; - border: 0px solid #333; - max-height: 0; + border: 0 solid #333; + max-height: 0 } #carica h3 { - color: inherit; + color: inherit } #carica { width: min-content; border-radius: 1rem; - /* outline: .2rem solid #0000; */ padding: 1.3rem 2rem .8rem; cursor: pointer; user-select: none; @@ -324,17 +298,16 @@ p { overflow: hidden; --perspective: 0; transform: translateZ(var(--perspective)) translateY(calc(-4 * var(--perspective) - 1rem)) scale(.5); - transform-style: inherit; + transform-style: inherit } #carica:hover { - background-color: hsla(0, 0%, 20%, 0.3); + background-color: hsla(0, 0%, 20%, .3) } #carica:active { - background-color: hsla(0, 0%, 40%, 0.3); - color: hsla(0, 0%, 93%, 0.928); - /* outline: .3rem solid hsla(0, 0%, 93%, 0.928); */ + background-color: hsla(0, 0%, 40%, .3); + color: hsla(0, 0%, 93%, .928) } .before-aboutme { @@ -346,7 +319,7 @@ p { background-color: transparent; pointer-events: none; position: relative; - z-index: -1; + z-index: -1 } .before-aboutme::before { @@ -354,12 +327,11 @@ p { position: absolute; inset: 0; width: 50%; - /* height: var(--about-extra-space); */ left: 0; - top: calc(var(--about-extra-space) / -2); + top: calc(var(--about-extra-space)/ -2); transform: skewY(-3deg); transform-origin: right; - background-color: #000; + background-color: #000 } .before-aboutme::after { @@ -367,12 +339,11 @@ p { position: absolute; inset: 0; width: 50%; - /* height: var(--about-extra-space); */ left: 50%; - top: calc(var(--about-extra-space) / -2); + top: calc(var(--about-extra-space)/ -2); transform: skewY(3deg); transform-origin: left; - background-color: #000; + background-color: #000 } .after-aboutme { @@ -381,7 +352,7 @@ p { background-color: transparent; pointer-events: none; z-index: 0; - height: var(--about-extra-space); + height: var(--about-extra-space) } .after-aboutme::before { @@ -391,10 +362,10 @@ p { width: 50%; height: calc(var(--about-extra-space) + var(--me-h)); left: 50%; - top: calc(var(--about-extra-space) / 2); + top: calc(var(--about-extra-space)/ 2); transform: skewY(-3deg); transform-origin: left; - background-color: #000; + background-color: #000 } .after-aboutme::after { @@ -404,20 +375,19 @@ p { width: 50%; height: calc(var(--about-extra-space) + var(--me-h)); left: 0; - top: calc(var(--about-extra-space) / 2); + top: calc(var(--about-extra-space)/ 2); transform: skewY(3deg); transform-origin: right; - background-color: #000; + background-color: #000 } .aboutme { transform: translateZ(.15rem); transform-style: inherit; - z-index: -2; width: 100%; margin: 0 auto 2.5rem; - position: relative; + position: relative } .aboutme::before { @@ -426,34 +396,30 @@ p { inset: 0; background: repeat; box-shadow: 0 0 8px 1px rgba(0, 0, 0, .7); - background-image: url("img/leaf-pattern.webp"); + background-image: url(img/leaf-pattern.webp); transform: translateZ(-1rem) scale(1.25); height: calc(100% + var(--about-extra-space) * 2); filter: brightness(.9) contrast(1.05); transition: filter .8s ease; - z-index: -2; - /* margin-top: calc(-1 * var(--about-extra-space)); */ + z-index: -2 } .aboutme:hover:before { - filter: brightness(.7) contrast(1.05); - + filter: brightness(.7) contrast(1.05) } .aboutme .text { - margin-top: calc(var(--about-extra-space) / 1.15); - padding-inline: .5rem; + margin-top: calc(var(--about-extra-space)/ 1.15); + padding-inline: .5rem } .aboutme p { margin-inline: auto; font-size: clamp(1rem, 5vw, 1.5rem); padding-inline: 1rem; - letter-spacing: -.05rem; + letter-spacing: -.05rem } - - .rhomboid { --width: 50svw; z-index: -2; @@ -464,10 +430,9 @@ p { top: 0; background-color: var(--broken-lighter); opacity: .2; - clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); + clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); rotate: y 90deg; - will-change: scroll-position; - /* animation: brokenLight 15s infinite; */ + will-change: scroll-position } .heading { @@ -475,43 +440,43 @@ p { width: auto; padding: .5rem 1.25rem; border-radius: 1rem; - filter: var(--shadow); + filter: var(--shadow) } .heading h2 { - margin-bottom: 1.5rem; + margin-bottom: 1.5rem } -@media (max-width: 768px) { +@media (max-width:768px) { .rhomboid { --multiplier: 1.5; height: 45svh; - clip-path: polygon(50% 0%, 100% 50%, -126.53% 77.80%, 0% 50%); - background-color: var(--broken-light); + clip-path: polygon(50% 0, 100% 50%, -126.53% 77.8%, 0 50%); + background-color: var(--broken-light) } .heading { display: flex; flex-direction: column-reverse; - gap: .15rem; + gap: .15rem } .heading h1, .heading h2 { - margin: 0; + margin: 0 } } @keyframes brokenLight { 0%, - 8%, + 100%, 20%, 35%, 55%, 70%, - 100% { - background-color: var(--offwhite); + 8% { + background-color: var(--offwhite) } 10%, @@ -519,7 +484,7 @@ p { 40%, 60%, 80% { - background-color: var(--broken-light); + background-color: var(--broken-light) } 75%, @@ -530,7 +495,7 @@ p { 85%, 87%, 89% { - background-color: var(--broken-light); + background-color: var(--broken-light) } 90%, @@ -538,7 +503,7 @@ p { 94%, 96%, 98% { - background-color: var(--offwhite); + background-color: var(--offwhite) } 30%, @@ -549,13 +514,13 @@ p { 50%, 52%, 54% { - background-color: var(--offwhite); + background-color: var(--offwhite) } 65%, 67%, 69% { - background-color: var(--offwhite); + background-color: var(--offwhite) } 45%, @@ -566,7 +531,7 @@ p { 97.7%, 97.9%, 98.4% { - background-color: var(--offwhite); + background-color: var(--offwhite) } 97.5%, @@ -574,19 +539,16 @@ p { 98%, 98.5%, 99% { - background-color: var(--broken-light); + background-color: var(--broken-light) } } .flickering-background { - animation: brokenLight 10s infinite; + animation: brokenLight 10s infinite } - - - .titoletto { - filter: var(--shadow); + filter: var(--shadow) } .pic { @@ -596,47 +558,36 @@ p { height: var(--me-h); width: 100%; max-height: 66svh; - + --bg-position-x: 0% } .pic::after { + background-position-x: var(--bg-position-x); content: ''; position: absolute; inset: 0; - background-image: radial-gradient(ellipse farthest-corner, transparent 0%, transparent 35%, #000 30%, #000 40%, transparent 90%), - radial-gradient(ellipse farthest-corner at 0px 0px, transparent 0%, transparent 20%, #000 15%, #000 20%, transparent 50%), - radial-gradient(ellipse farthest-corner at 8px 8px, transparent 0%, transparent 20%, #000 15%, #000 20%, transparent 50%), - radial-gradient(ellipse farthest-corner at 0px 8px, transparent 0%, transparent 20%, #000 15%, #000 20%, transparent 40%), - radial-gradient(ellipse farthest-corner at 8px 0px, transparent 0%, transparent 20%, #000 15%, #000 20%, transparent 50%), - linear-gradient(0deg, #be2000 0, #c02708 30%, #ba2407 50%, #760000 70%, rgba(0, 0, 0, 0) 100%); + background-image: radial-gradient(ellipse farthest-corner, transparent 0, transparent 35%, #000 30%, #000 40%, transparent 90%), radial-gradient(ellipse farthest-corner at 0 0, transparent 0, transparent 20%, #000 15%, #000 20%, transparent 50%), radial-gradient(ellipse farthest-corner at 8px 8px, transparent 0, transparent 20%, #000 15%, #000 20%, transparent 50%), radial-gradient(ellipse farthest-corner at 0 8px, transparent 0, transparent 20%, #000 15%, #000 20%, transparent 40%), radial-gradient(ellipse farthest-corner at 8px 0, transparent 0, transparent 20%, #000 15%, #000 20%, transparent 50%), linear-gradient(0deg, #be2000 0, #c02708 30%, #ba2407 50%, #760000 70%, rgba(0, 0, 0, 0) 100%); background-size: 8px 8px, 8px 8px, 8px 8px, 8px 8px, 8px 8px, 100% 100%; - mask-image: linear-gradient(to bottom, transparent 0%, transparent 5%, rgba(0, 0, 0, 1) 100%); + mask-image: linear-gradient(to bottom, transparent 0, transparent 5%, rgba(0, 0, 0, 1) 100%); mask-size: cover; - z-index: -4; + z-index: -4 } .big { - /* font-family: "Bangers"; */ - /* margin: 0 0 -1em 0; */ - text-shadow: -1px -1px yellow, 1px 1px #be2000, 2px 2px #c02708; + text-shadow: -1px -1px #ff0, 1px 1px #be2000, 2px 2px #c02708; transform: rotate(-10deg) skew(-10deg, 0); padding-bottom: 50px; - /* float: left; */ - /* width: 100%; */ margin-left: 10rem; font-size: var(--h1); - display: none; - + display: none } @media (width >=1050px) { .big { - display: block; + display: block } } - - .pic img { position: absolute; top: 0; @@ -645,104 +596,12 @@ p { width: 100%; object-fit: contain; object-position: 100%; + z-index: var(--index); + user-select: none; + pointer-events: none; + transition: opacity .5s cubic-bezier(.25, 1, .75, 1) } -.pic img:first-of-type { - animation: saturation both; - animation-timeline: view(calc(var(--index) / 3 * 100%) calc((var(--index) / 2 * 100%) - 50%)); -} - - -@keyframes saturation { - from { - filter: saturate(0%); - } - - to { - filter: saturate(100%); - } -} - -.pic img:not(:first-of-type) { - animation: autoShowAnimation both; - animation-timeline: view(); - -} - -@keyframes autoShowAnimation { - from { - opacity: 0; - } - - to { - opacity: 1; - } -} - -@media (orientation: portrait) { - .pic img:not(:first-of-type) { - animation-timeline: view(calc(var(--index) / 3 * 100%) calc((var(--index) / 2 * 100%) - 50%)); - } -} - -@supports not (animation-timeline: view(20% 0%)) { - .pic>img:nth-child(2) { - display: none; - } - - @property --mask-position { - syntax: ''; - inherits: false; - initial-value: 00%; - } - - .pic>img:nth-child(3) { - -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) var(--mask-position), rgba(0, 0, 0, 0)); - mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) var(--mask-position), rgba(0, 0, 0, 0)); - animation: maskAnimate 5s infinite alternate linear; - filter: grayscale(.8) contrast(1.4) brightness(.87); - } - - @keyframes maskAnimate { - 0% { - --mask-position: 10%; - } - - 100% { - --mask-position: 40%; - } - } - - - -} - - - -/* .magicpattern { - display: flex; - min-height: 45rem; - align-items: center; - justify-content: center; - background-image: var(--waves); - background-size: cover; - background-position: top center; - background-repeat: repeat; - z-index: 2; - position: relative; - - transform: translateZ(.01rem); -} - -footer { - display: flex; - justify-content: center; - align-items: center; - font-size: clamp(1.5rem, 6vw, 4rem); - position: relative; -} */ - - footer.magicpattern { display: flex; min-height: 45rem; @@ -752,9 +611,8 @@ footer.magicpattern { position: relative; transform: translateZ(.01rem); overflow: hidden; - width: 100%; - margin-top:-2rem; + margin-top: -2rem } .magicpattern svg { @@ -763,7 +621,7 @@ footer.magicpattern { left: 0; width: 100%; height: 100%; - z-index: -1; + z-index: -1 } footer { @@ -771,76 +629,57 @@ footer { justify-content: center; align-items: center; font-size: clamp(1.5rem, 6vw, 4rem); - position: relative; + position: relative } - - - -@media (prefers-reduced-motion: reduce) { +@media (prefers-reduced-motion:reduce) { .rhomboid { animation: none; - background-color: var(--broken-light); + background-color: var(--broken-light) } } - - - - - -/* BTN */ - .contact-button { background: var(--clr-1); - position: relative; + position: relative } @property --gradient-angle { syntax: ""; initial-value: 0deg; - inherits: false; + inherits: false } -.contact-button::before, -.contact-button::after { - +.contact-button::after, +.contact-button::before { content: ""; position: absolute; inset: var(--contact-button-inset); z-index: -1; - background: conic-gradient(from var(--gradient-angle), - var(--green-1), - var(--clr-4), - var(--clr-5), - var(--clr-4), - var(--green-1)); + background: conic-gradient(from var(--gradient-angle), var(--green-1), var(--clr-4), var(--clr-5), var(--clr-4), var(--green-1)); border-radius: var(--contact-inner-radius); - animation: rotation 3s linear infinite; + animation: rotation 3s linear infinite } .contact-button::after { - filter: blur(3.5rem); + filter: blur(3.5rem) } @keyframes rotation { 0% { - --gradient-angle: 0deg; + --gradient-angle: 0deg } 100% { - --gradient-angle: 360deg; + --gradient-angle: 360deg } } - - footer .contact-button { padding: 1rem 1.75rem 1.25rem; border: none; border-radius: calc(var(--contact-button-inset) + var(--contact-inner-radius)); - /* backdrop-filter: blur(3px); */ - background-color: hsla(0, 0%, 0%, 0.85); + background-color: hsla(0, 0%, 0%, .85); color: var(--offwhite); display: flex; flex-direction: row; @@ -850,143 +689,126 @@ footer .contact-button { justify-content: center; margin-inline: auto; width: 100%; - transition: letter-spacing 1s ease, width 1.5s ease, - background-color .33s ease, transform .25s ease-in-out, padding-bottom .5s, opacity .8s; - letter-spacing: -.05rem; + transition: letter-spacing 1s ease, width 1.5s ease, background-color .33s ease, transform .25s ease-in-out, padding-bottom .5s, opacity .8s; + letter-spacing: -.05rem } @media (width >=1100px) { footer .contact-button { padding: .15rem 1.25rem .25rem; - font-size: 3rem; + font-size: 3rem } } footer .contact-button:hover { - background-color: hsla(0, 0%, 0%, 0.7); - letter-spacing: .0rem; + background-color: hsla(0, 0%, 0%, .7); + letter-spacing: 0rem } footer .contact-button:active { transform: scale(100.001%); - /* padding-bottom: 1.5rem; */ - bottom: 1px; - + bottom: 1px } footer .contact-button.converged { - width: calc(100% - 1rem * 2); + width: calc(100% - 1rem * 2) } footer .contact-button>div { - width: max-content; + width: max-content } .contact-button .before { - margin-right: 6rem; + margin-right: 6rem } .contact-button .after { - margin: 2.5rem; + margin: 2.5rem } - - - - -.contact-button .before i, -.contact-button .after i { +.contact-button .after i, +.contact-button .before i { position: absolute; - font-size: 3rem; + font-size: 3rem } -@media (max-width: 500px) { - - +@media (max-width:500px) { footer .contact-button { justify-content: space-evenly; gap: 2rem; letter-spacing: normal; padding: 1.25rem 1.75rem 1.5rem; - --contact-button-inset: -0.15rem; + --contact-button-inset: -0.15rem } .contact-button .after, .contact-button .before { margin: 0; - display: block; - + display: block } - .contact-button .before i, - .contact-button .after i { - font-size: 1.6rem; + .contact-button .after i, + .contact-button .before i { + font-size: 1.6rem } - } -.contact-button .before, -.contact-button .after { +.contact-button .after, +.contact-button .before { display: flex; align-items: center; - gap: 0.5rem; + gap: .5rem; height: 1rem; width: 1rem; position: relative; z-index: 2; color: var(--clr-4); - - transform: translateY(0%); - transition: opacity 1.5s ease, transform 1s, color 1s; + transform: translateY(0); + transition: opacity 1.5s ease, transform 1s, color 1s } -.contact-button:hover .before, -.contact-button:hover .after { +.contact-button:hover .after, +.contact-button:hover .before { color: var(--clr-3); animation: up-down .5s linear infinite alternate; - transform: translateY(-12.5%); + transform: translateY(-12.5%) } .contact-button .before.converged { transform: translate(1000%, -75%); - opacity: 0; + opacity: 0 } .contact-button .after.converged { transform: translate(-1000%, 75%); - opacity: 0; + opacity: 0 } .hidden { transition: .5s; opacity: 0; - pointer-events: none; + pointer-events: none } -input[type="checkbox"] { - accent-color: var(--clr-4); +input[type=checkbox] { + accent-color: var(--clr-4) } - #contactstuff { position: fixed; top: 0; left: 0; height: 100lvh; width: 100%; - background-color: #000; z-index: 10; - display: flex; align-items: center; justify-content: center; - - background-image: url('img/blob-bg.svg?v1'); + background-image: url(img/blob-bg.svg?v1); background-size: cover; background-repeat: no-repeat; - background-position: 50% 50%; - + background-position: 50% 50% } #contactstuff .container { @@ -995,20 +817,19 @@ input[type="checkbox"] { display: flex; flex-direction: column; align-content: center; - align-items: center; + align-items: center } @media (500px < width <=1412px) { #contactstuff .container { - width: 50%; + width: 50% } - } @media (300px < width <=500px) { #contactstuff .container { width: 100%; - margin-inline: 2rem; + margin-inline: 2rem } } @@ -1023,82 +844,80 @@ body::before { opacity: 0; transition: .5s; pointer-events: none; - opacity: var(--before-opacity, 0); + opacity: var(--before-opacity, 0) } .cursor-pointer { - cursor: pointer; + cursor: pointer } .w-max { - width: max-content; + width: max-content } .w-min { - width: min-content; + width: min-content } -#contactstuff div[role="button"] { +#contactstuff div[role=button] { background-color: var(--offwhite-25); display: flex; flex-direction: row; justify-content: space-between; padding-right: 1rem; - padding-left: .5rem; + padding-left: .5rem } -#contactstuff div[role="button"]:hover { - background-color: var(--offwhite-50); +#contactstuff div[role=button]:hover { + background-color: var(--offwhite-50) } -#contactstuff div[role="button"]:active { - background-color: var(--broken-light); +#contactstuff div[role=button]:active { + background-color: var(--broken-light) } div.close { - color: rgba(var(--offwhite), 0.8); + color: rgba(var(--offwhite), .8); transition: color ease .1s; font-size: 1.5rem; width: 100%; display: grid; place-items: center; margin-top: 2.5rem; - transition: opacity ease 2s; + transition: opacity ease 2s } div.close:hover { - color: rgba(var(--offwhite), 0.9); + color: rgba(var(--offwhite), .9) } div.close:active { - color: rgba(var(--offwhite), 1); + color: rgba(var(--offwhite), 1) } div.close>i { - grid-area: 1 / 1; + grid-area: 1/1 } .☺ { color: bisque; - /* background-color: #000; */ - animation: hidesmile🙂 5s ease-in-out infinite alternate; + animation: hidesmile🙂 5s ease-in-out infinite alternate } .x { - animation: hidex 5s ease-in-out infinite alternate; - + animation: hidex 5s ease-in-out infinite alternate } @keyframes hidex { 0%, 50% { - opacity: 1; + opacity: 1 } - 60%, - 100% { - opacity: 0; + 100%, + 60% { + opacity: 0 } } @@ -1106,14 +925,12 @@ div.close>i { 0%, 50% { - color: hsla(0, 0%, 0%, 0); - /* background-color: #0000; */ + color: hsla(0, 0%, 0%, 0) } - 60%, - 100% { - color: hsla(33, 100%, 88%, 100%); - /* background-color: #000; */ + 100%, + 60% { + color: hsla(33, 100%, 88%, 100%) } } @@ -1122,135 +939,126 @@ div.close>i { padding: 2rem; background-color: var(--offwhite-25); backdrop-filter: blur(10px); - border-radius: var(--contact-inner-radius); + border-radius: var(--contact-inner-radius) } .form-control { border: none; - background-color: hsla(0, 0%, 13%, 0.6); - transition: background-color .2s; + background-color: hsla(0, 0%, 13%, .6); + transition: background-color .2s } .form-control:focus { - background-color: hsla(0, 0%, 13%, 0.7); + background-color: hsla(0, 0%, 13%, .7) } -button[type="submit"] { - background-color: hsla(0, 0%, 13%, 0.606); - - color: white; +button[type=submit] { + background-color: hsla(0, 0%, 13%, .606); + color: #fff; transition: background-color 50ms, background-position .5s; - background-position: 50% 0%; - background-size: 105%; + background-position: 50% 0; + background-size: 105% } -button[type="submit"]:hover { +button[type=submit]:hover { background-color: #001220; - color: white; - background-image: url('img/layered-waves.svg'); + color: #fff; + background-image: url(img/layered-waves.svg); background-repeat: no-repeat; - background-position: 50% 80%; + background-position: 50% 80% } -button[type="submit"]:active { +button[type=submit]:active { background-color: var(--clr-2); - color: white; + color: #fff } - .grow-wrap { - display: grid; + display: grid } .grow-wrap::after { content: attr(data-replicated-value) " "; white-space: pre-wrap; - visibility: hidden; - /* pointer-events: none; */ + visibility: hidden } .grow-wrap>textarea { - resize: none; + resize: none } -.grow-wrap>textarea, -.grow-wrap::after { - /* Identical styling required!! */ +.grow-wrap::after, +.grow-wrap>textarea { max-height: 10rem; min-height: calc(1.5em + (.75rem + 2px)); padding: .375rem .75rem; font-size: 1rem; font-weight: 400; line-height: 24px; - grid-area: 1 / 1 / 2 / 2; + grid-area: 1/1/2/2 } .layered-waves { - background-image: url('img/layered-waves.svg'); + background-image: url(img/layered-waves.svg); background-repeat: no-repeat; - background-size: cover; + background-size: cover } -[role="button"], .buttons, .contact-button, +[role=button], button { - user-select: none; + user-select: none } - - - - @keyframes fadeIn { from { - opacity: 0; + opacity: 0 } to { - opacity: 1; + opacity: 1 } } .fade-in { opacity: 0; animation: fadeIn 1.5s ease-in forwards; - animation-delay: calc(var(--delay, 0) * 1s); + animation-delay: calc(var(--delay, 0) * 1s) } - @keyframes slideInR { from { transform: translateX(min(50vw, 25rem)); - opacity: 0; + opacity: 0 } to { transform: translateX(0); - opacity: 1; + opacity: 1 } } .slideR { opacity: 0; animation: slideInR 1s ease-out forwards; - animation-delay: calc(var(--delay, 0) * 1s); + animation-delay: calc(var(--delay, 0) * 1s) } @keyframes slideInL { from { transform: translateX(max(-50vw, -25rem)); - opacity: 0; + opacity: 0 } to { transform: translateX(0); - opacity: 1; + opacity: 1 } } .slideL { opacity: 0; animation: slideInL 1s ease-out forwards; - animation-delay: calc(var(--delay, 0) * 1s); + animation-delay: calc(var(--delay, 0) * 1s) } \ No newline at end of file