diff --git a/Components/Backgrounds/Aurora-Borealis-Background/index.html b/Components/Backgrounds/Aurora-Borealis-Background/index.html new file mode 100644 index 00000000..3d0456f3 --- /dev/null +++ b/Components/Backgrounds/Aurora-Borealis-Background/index.html @@ -0,0 +1,14 @@ + + + + + + Aurora Borealis Background + + + +
+
+
+ + diff --git a/Components/Backgrounds/Aurora-Borealis-Background/style.css b/Components/Backgrounds/Aurora-Borealis-Background/style.css new file mode 100644 index 00000000..fbdb4148 --- /dev/null +++ b/Components/Backgrounds/Aurora-Borealis-Background/style.css @@ -0,0 +1,59 @@ +body, html { + margin: 0; + padding: 0; + height: 100%; + overflow: hidden; + background: #000; +} + +.aurora-container { + width: 100%; + height: 100%; + position: relative; + overflow: hidden; +} + +.aurora { + width: 200%; + height: 200%; + position: absolute; + top: -50%; + left: -50%; + background: linear-gradient(45deg, transparent, rgba(0, 255, 0, 0.1), rgba(0, 255, 255, 0.2), rgba(0, 0, 255, 0.1), transparent); + animation: moveAurora 15s infinite linear, colorShift 10s infinite linear; + opacity: 0.7; +} + +/* Additional aurora layer for more depth */ +.aurora:before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient(135deg, transparent, rgba(255, 0, 255, 0.1), rgba(255, 255, 0, 0.2), rgba(255, 0, 0, 0.1), transparent); + animation: moveAurora 20s infinite linear reverse, colorShift 15s infinite linear; + opacity: 0.7; +} + +@keyframes moveAurora { + 0% { + transform: translateX(-10%) translateY(-10%) rotate(0deg); + } + 50% { + transform: translateX(10%) translateY(10%) rotate(180deg); + } + 100% { + transform: translateX(-10%) translateY(-10%) rotate(360deg); + } +} + +@keyframes colorShift { + 0% { + filter: hue-rotate(0deg); + } + 100% { + filter: hue-rotate(360deg); + } +} \ No newline at end of file diff --git a/Components/Backgrounds/Squares-Animation-Background/index.html b/Components/Backgrounds/Squares-Animation-Background/index.html new file mode 100644 index 00000000..dec77097 --- /dev/null +++ b/Components/Backgrounds/Squares-Animation-Background/index.html @@ -0,0 +1,20 @@ + + + + + + Square Animation Background + + + +
+
Squares Animation
+
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/Components/Backgrounds/Squares-Animation-Background/style.css b/Components/Backgrounds/Squares-Animation-Background/style.css new file mode 100644 index 00000000..eb92ba30 --- /dev/null +++ b/Components/Backgrounds/Squares-Animation-Background/style.css @@ -0,0 +1,93 @@ +@import url("https://fonts.googleapis.com/css?family=Montserrat:700"); + +*{ + box-sizing: border-box; + margin: 0; + padding: 0; +} + +.hero { + background-color: #975212; + position: relative; + height: 100vh; + overflow: hidden; + font-family: "Montserrat", sans-serif; +} + +.hero__title { + color: #f6fa17; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + font-size: 50px; + z-index: 1; +} + +.cube { + position: absolute; + top: 80vh; + left: 45vw; + width: 10px; + height: 10px; + border: solid 1px #d38b2d; + transform-origin: top left; + transform: scale(0) rotate(0deg) translate(-50%, -50%); + -webkit-animation: cube 12s ease-in forwards infinite; + animation: cube 12s ease-in forwards infinite; +} +.cube:nth-child(2n) { + border-color: #eec84a; +} +.cube:nth-child(2) { + -webkit-animation-delay: 2s; + animation-delay: 2s; + left: 25vw; + top: 40vh; +} +.cube:nth-child(3) { + -webkit-animation-delay: 4s; + animation-delay: 4s; + left: 75vw; + top: 50vh; +} +.cube:nth-child(4) { + -webkit-animation-delay: 6s; + animation-delay: 6s; + left: 90vw; + top: 10vh; +} +.cube:nth-child(5) { + -webkit-animation-delay: 8s; + animation-delay: 8s; + left: 10vw; + top: 85vh; +} +.cube:nth-child(6) { + -webkit-animation-delay: 10s; + animation-delay: 10s; + left: 50vw; + top: 10vh; +} + +@-webkit-keyframes cube { + from { + transform: scale(0) rotate(0deg) translate(-50%, -50%); + opacity: 1; + } + to { + transform: scale(20) rotate(960deg) translate(-50%, -50%); + opacity: 0; + } +} + +@keyframes cube { + from { + transform: scale(0) rotate(0deg) translate(-50%, -50%); + opacity: 1; + } + to { + transform: scale(20) rotate(960deg) translate(-50%, -50%); + opacity: 0; + } +} \ No newline at end of file diff --git a/Components/Buttons/Celebration-Button/index.html b/Components/Buttons/Celebration-Button/index.html new file mode 100644 index 00000000..62def39a --- /dev/null +++ b/Components/Buttons/Celebration-Button/index.html @@ -0,0 +1,16 @@ + + + + + + Celebration Button + + + +
+ + +
+ + + diff --git a/Components/Buttons/Celebration-Button/script.js b/Components/Buttons/Celebration-Button/script.js new file mode 100644 index 00000000..e9c02099 --- /dev/null +++ b/Components/Buttons/Celebration-Button/script.js @@ -0,0 +1,71 @@ +document.addEventListener('DOMContentLoaded', () => { + const button = document.getElementById('celebrateButton'); + const canvas = document.getElementById('confettiCanvas'); + const context = canvas.getContext('2d'); + const confettiElements = []; + let isCelebrating = false; + let animationFrameId; + + // Set canvas size + canvas.width = window.innerWidth; + canvas.height = window.innerHeight; + + class Confetti { + constructor(x, y) { + this.x = x; + this.y = y; + this.size = Math.random() * 10 + 5; + this.speed = 3.1; // Constant speed + this.angle = Math.random() * 360; + this.color = `hsl(${Math.random() * 360}, 100%, 50%)`; + } + + update() { + this.y += this.speed; + this.angle += this.speed; + if (this.y > canvas.height) { + this.y = -10; + this.x = Math.random() * canvas.width; + } + } + + draw() { + context.fillStyle = this.color; + context.beginPath(); + context.ellipse(this.x, this.y, this.size, this.size / 2, this.angle, 0, 2 * Math.PI); + context.fill(); + } + } + + function addConfetti() { + for (let i = 0; i < 100; i++) { + confettiElements.push(new Confetti(Math.random() * canvas.width, Math.random() * canvas.height)); + } + } + + function animate() { + context.clearRect(0, 0, canvas.width, canvas.height); + confettiElements.forEach(confetti => { + confetti.update(); + confetti.draw(); + }); + animationFrameId = requestAnimationFrame(animate); + } + + function toggleConfetti() { + if (isCelebrating) { + // Stop the confetti + cancelAnimationFrame(animationFrameId); + context.clearRect(0, 0, canvas.width, canvas.height); + confettiElements.length = 0; // Clear confetti elements + } else { + // Start the confetti + addConfetti(); + animate(); + } + isCelebrating = !isCelebrating; + } + + button.addEventListener('click', toggleConfetti); + }); + \ No newline at end of file diff --git a/Components/Buttons/Celebration-Button/style.css b/Components/Buttons/Celebration-Button/style.css new file mode 100644 index 00000000..b69cc196 --- /dev/null +++ b/Components/Buttons/Celebration-Button/style.css @@ -0,0 +1,40 @@ +body, html { + margin: 0; + padding: 0; + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + background-color: #f0f0f0; + + } + + .container { + position: static; + } + + .party-popper { + background-color: #ffcc00; + border: none; + border-radius: 50%; + width: 100px; + height: 100px; + font-size: 2rem; + cursor: pointer; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); + transition: transform 0.2s; + } + + .party-popper:hover { + transform: scale(1.1); + } + + #confettiCanvas { + position: absolute; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + pointer-events: none; + } + \ No newline at end of file diff --git a/Components/Buttons/Send-Message-Button/index.html b/Components/Buttons/Send-Message-Button/index.html new file mode 100644 index 00000000..c675f26f --- /dev/null +++ b/Components/Buttons/Send-Message-Button/index.html @@ -0,0 +1,58 @@ + + + + + + + Send Message Button + + + + + diff --git a/Components/Buttons/Send-Message-Button/styles.css b/Components/Buttons/Send-Message-Button/styles.css new file mode 100644 index 00000000..d2fda420 --- /dev/null +++ b/Components/Buttons/Send-Message-Button/styles.css @@ -0,0 +1,314 @@ +/* From Uiverse.io by marcelodolza */ +body { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + margin: 0; + background-color: #f0f0f0; +} +.button { + --primary: #ff5569; + --neutral-1: #f7f8f7; + --neutral-2: #e7e7e7; + --radius: 14px; + + cursor: pointer; + border-radius: var(--radius); + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3); + border: none; + box-shadow: 0 0.5px 0.5px 1px rgba(255, 255, 255, 0.2), + 0 10px 20px rgba(0, 0, 0, 0.2), 0 4px 5px 0px rgba(0, 0, 0, 0.05); + display: flex; + align-items: center; + justify-content: center; + position: relative; + transition: all 0.3s ease; + min-width: 200px; + padding: 20px; + height: 68px; + font-family: "Galano Grotesque", Poppins, Montserrat, sans-serif; + font-style: normal; + font-size: 18px; + font-weight: 600; + } + .button:hover { + transform: scale(1.02); + box-shadow: 0 0 1px 2px rgba(255, 255, 255, 0.3), + 0 15px 30px rgba(0, 0, 0, 0.3), 0 10px 3px -3px rgba(0, 0, 0, 0.04); + } + .button:active { + transform: scale(1); + box-shadow: 0 0 1px 2px rgba(255, 255, 255, 0.3), + 0 10px 3px -3px rgba(0, 0, 0, 0.2); + } + .button:after { + content: ""; + position: absolute; + inset: 0; + border-radius: var(--radius); + border: 2.5px solid transparent; + background: linear-gradient(var(--neutral-1), var(--neutral-2)) padding-box, + linear-gradient(to bottom, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.45)) + border-box; + z-index: 0; + transition: all 0.4s ease; + } + .button:hover::after { + transform: scale(1.05, 1.1); + box-shadow: inset 0 -1px 3px 0 rgba(255, 255, 255, 1); + } + .button::before { + content: ""; + inset: 7px 6px 6px 6px; + position: absolute; + background: linear-gradient(to top, var(--neutral-1), var(--neutral-2)); + border-radius: 30px; + filter: blur(0.5px); + z-index: 2; + } + .state p { + display: flex; + align-items: center; + justify-content: center; + } + .state .icon { + position: absolute; + left: 0; + top: 0; + bottom: 0; + margin: auto; + transform: scale(1.25); + transition: all 0.3s ease; + display: flex; + align-items: center; + justify-content: center; + } + .state .icon svg { + overflow: visible; + } + + /* Outline */ + .outline { + position: absolute; + border-radius: inherit; + overflow: hidden; + z-index: 1; + opacity: 0; + transition: opacity 0.4s ease; + inset: -2px -3.5px; + } + .outline::before { + content: ""; + position: absolute; + inset: -100%; + background: conic-gradient( + from 180deg, + transparent 60%, + white 80%, + transparent 100% + ); + animation: spin 2s linear infinite; + animation-play-state: paused; + } + @keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } + } + .button:hover .outline { + opacity: 1; + } + .button:hover .outline::before { + animation-play-state: running; + } + + /* Letters */ + .state p span { + display: block; + opacity: 0; + animation: slideDown 0.8s ease forwards calc(var(--i) * 0.03s); + } + .button:hover p span { + opacity: 1; + animation: wave 0.5s ease forwards calc(var(--i) * 0.02s); + } + .button:focus p span { + opacity: 1; + animation: disapear 0.6s ease forwards calc(var(--i) * 0.03s); + } + @keyframes wave { + 30% { + opacity: 1; + transform: translateY(4px) translateX(0) rotate(0); + } + 50% { + opacity: 1; + transform: translateY(-3px) translateX(0) rotate(0); + color: var(--primary); + } + 100% { + opacity: 1; + transform: translateY(0) translateX(0) rotate(0); + } + } + @keyframes slideDown { + 0% { + opacity: 0; + transform: translateY(-20px) translateX(5px) rotate(-90deg); + color: var(--primary); + filter: blur(5px); + } + 30% { + opacity: 1; + transform: translateY(4px) translateX(0) rotate(0); + filter: blur(0); + } + 50% { + opacity: 1; + transform: translateY(-3px) translateX(0) rotate(0); + } + 100% { + opacity: 1; + transform: translateY(0) translateX(0) rotate(0); + } + } + @keyframes disapear { + from { + opacity: 1; + } + to { + opacity: 0; + transform: translateX(5px) translateY(20px); + color: var(--primary); + filter: blur(5px); + } + } + + /* Plane */ + .state--default .icon svg { + animation: land 0.6s ease forwards; + } + .button:hover .state--default .icon { + transform: rotate(45deg) scale(1.25); + } + .button:focus .state--default svg { + animation: takeOff 0.8s linear forwards; + } + .button:focus .state--default .icon { + transform: rotate(0) scale(1.25); + } + @keyframes takeOff { + 0% { + opacity: 1; + } + 60% { + opacity: 1; + transform: translateX(70px) rotate(45deg) scale(2); + } + 100% { + opacity: 0; + transform: translateX(160px) rotate(45deg) scale(0); + } + } + @keyframes land { + 0% { + transform: translateX(-60px) translateY(30px) rotate(-50deg) scale(2); + opacity: 0; + filter: blur(3px); + } + 100% { + transform: translateX(0) translateY(0) rotate(0); + opacity: 1; + filter: blur(0); + } + } + + /* Contrail */ + .state--default .icon:before { + content: ""; + position: absolute; + top: 50%; + height: 2px; + width: 0; + left: -5px; + background: linear-gradient(to right, transparent, rgba(0, 0, 0, 0.5)); + } + .button:focus .state--default .icon:before { + animation: contrail 0.8s linear forwards; + } + @keyframes contrail { + 0% { + width: 0; + opacity: 1; + } + 8% { + width: 15px; + } + 60% { + opacity: 0.7; + width: 80px; + } + 100% { + opacity: 0; + width: 160px; + } + } + + /* States */ + .state { + padding-left: 29px; + z-index: 2; + display: flex; + position: relative; + } + .state--default span:nth-child(4) { + margin-right: 5px; + } + .state--sent { + display: none; + } + .state--sent svg { + transform: scale(1.25); + margin-right: 8px; + } + .button:focus .state--default { + position: absolute; + } + .button:focus .state--sent { + display: flex; + } + .button:focus .state--sent span { + opacity: 0; + animation: slideDown 0.8s ease forwards calc(var(--i) * 0.2s); + } + .button:focus .state--sent .icon svg { + opacity: 0; + animation: appear 1.2s ease forwards 0.8s; + } + @keyframes appear { + 0% { + opacity: 0; + transform: scale(4) rotate(-40deg); + color: var(--primary); + filter: blur(4px); + } + 30% { + opacity: 1; + transform: scale(0.6); + filter: blur(1px); + } + 50% { + opacity: 1; + transform: scale(1.2); + filter: blur(0); + } + 100% { + opacity: 1; + transform: scale(1); + } + } + \ No newline at end of file diff --git a/Components/Carousels/3D-Card-Carousel/images/bg.png b/Components/Carousels/3D-Card-Carousel/images/bg.png new file mode 100644 index 00000000..63c64c5b Binary files /dev/null and b/Components/Carousels/3D-Card-Carousel/images/bg.png differ diff --git a/Components/Carousels/3D-Card-Carousel/images/dragon_1.jpg b/Components/Carousels/3D-Card-Carousel/images/dragon_1.jpg new file mode 100644 index 00000000..73f5f280 Binary files /dev/null and b/Components/Carousels/3D-Card-Carousel/images/dragon_1.jpg differ diff --git a/Components/Carousels/3D-Card-Carousel/images/dragon_10.jpg b/Components/Carousels/3D-Card-Carousel/images/dragon_10.jpg new file mode 100644 index 00000000..2a006c43 Binary files /dev/null and b/Components/Carousels/3D-Card-Carousel/images/dragon_10.jpg differ diff --git a/Components/Carousels/3D-Card-Carousel/images/dragon_2.jpg b/Components/Carousels/3D-Card-Carousel/images/dragon_2.jpg new file mode 100644 index 00000000..d7d31cab Binary files /dev/null and b/Components/Carousels/3D-Card-Carousel/images/dragon_2.jpg differ diff --git a/Components/Carousels/3D-Card-Carousel/images/dragon_3.jpg b/Components/Carousels/3D-Card-Carousel/images/dragon_3.jpg new file mode 100644 index 00000000..dbc3e529 Binary files /dev/null and b/Components/Carousels/3D-Card-Carousel/images/dragon_3.jpg differ diff --git a/Components/Carousels/3D-Card-Carousel/images/dragon_4.jpg b/Components/Carousels/3D-Card-Carousel/images/dragon_4.jpg new file mode 100644 index 00000000..4562d719 Binary files /dev/null and b/Components/Carousels/3D-Card-Carousel/images/dragon_4.jpg differ diff --git a/Components/Carousels/3D-Card-Carousel/images/dragon_5.jpg b/Components/Carousels/3D-Card-Carousel/images/dragon_5.jpg new file mode 100644 index 00000000..335d543a Binary files /dev/null and b/Components/Carousels/3D-Card-Carousel/images/dragon_5.jpg differ diff --git a/Components/Carousels/3D-Card-Carousel/images/dragon_6.jpg b/Components/Carousels/3D-Card-Carousel/images/dragon_6.jpg new file mode 100644 index 00000000..02802226 Binary files /dev/null and b/Components/Carousels/3D-Card-Carousel/images/dragon_6.jpg differ diff --git a/Components/Carousels/3D-Card-Carousel/images/dragon_7.jpg b/Components/Carousels/3D-Card-Carousel/images/dragon_7.jpg new file mode 100644 index 00000000..eecdef9c Binary files /dev/null and b/Components/Carousels/3D-Card-Carousel/images/dragon_7.jpg differ diff --git a/Components/Carousels/3D-Card-Carousel/images/dragon_8.jpg b/Components/Carousels/3D-Card-Carousel/images/dragon_8.jpg new file mode 100644 index 00000000..edb8f5ab Binary files /dev/null and b/Components/Carousels/3D-Card-Carousel/images/dragon_8.jpg differ diff --git a/Components/Carousels/3D-Card-Carousel/images/dragon_9.jpg b/Components/Carousels/3D-Card-Carousel/images/dragon_9.jpg new file mode 100644 index 00000000..ed66836f Binary files /dev/null and b/Components/Carousels/3D-Card-Carousel/images/dragon_9.jpg differ diff --git a/Components/Carousels/3D-Card-Carousel/images/model.png b/Components/Carousels/3D-Card-Carousel/images/model.png new file mode 100644 index 00000000..bd617b19 Binary files /dev/null and b/Components/Carousels/3D-Card-Carousel/images/model.png differ diff --git a/Components/Carousels/3D-Card-Carousel/index.html b/Components/Carousels/3D-Card-Carousel/index.html new file mode 100644 index 00000000..b2302d09 --- /dev/null +++ b/Components/Carousels/3D-Card-Carousel/index.html @@ -0,0 +1,67 @@ + + + + + + 3D Card Carousel + + + + + + + + + \ No newline at end of file diff --git a/Components/Carousels/3D-Card-Carousel/styles.css b/Components/Carousels/3D-Card-Carousel/styles.css new file mode 100644 index 00000000..5bd222b9 --- /dev/null +++ b/Components/Carousels/3D-Card-Carousel/styles.css @@ -0,0 +1,133 @@ +@import url('https://fonts.cdnfonts.com/css/ica-rubrik-black'); +@import url('https://fonts.cdnfonts.com/css/poppins'); + +.banner{ + width: 100%; + height: 100vh; + text-align: center; + overflow: hidden; + position: relative; +} +.banner .slider{ + position: absolute; + width: 200px; + height: 250px; + top: 10%; + left: calc(50% - 100px); + transform-style: preserve-3d; + transform: perspective(1000px); + animation: autoRun 20s linear infinite; + z-index: 2; +} +@keyframes autoRun{ + from{ + transform: perspective(1000px) rotateX(-16deg) rotateY(0deg); + }to{ + transform: perspective(1000px) rotateX(-16deg) rotateY(360deg); + } +} + +.banner .slider .item{ + position: absolute; + inset: 0 0 0 0; + transform: + rotateY(calc( (var(--position) - 1) * (360 / var(--quantity)) * 1deg)) + translateZ(550px); +} +.banner .slider .item img{ + width: 100%; + height: 100%; + object-fit: cover; +} +.banner .content{ + position: absolute; + bottom: 0; + left: 50%; + transform: translateX(-50%); + width: min(1400px, 100vw); + height: max-content; + padding-bottom: 100px; + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + z-index: 1; +} +.banner .content h1{ + font-family: 'ICA Rubrik'; + font-size: 16em; + line-height: 1em; + color: #25283B; + position: relative; +} +.banner .content h1::after{ + position: absolute; + inset: 0 0 0 0; + content: attr(data-content); + z-index: 2; + -webkit-text-stroke: 2px #d2d2d2; + color: transparent; +} +.banner .content .author{ + font-family: Poppins; + text-align: right; + max-width: 200px; +} +.banner .content h2{ + font-size: 3em; +} +.banner .content .model{ + background-image: url(images/model.png); + width: 100%; + height: 75vh; + position: absolute; + bottom: 0; + left: 0; + background-size: auto 130%; + background-repeat: no-repeat; + background-position: top center; + z-index: 1; +} +@media screen and (max-width: 1023px) { + .banner .slider{ + width: 160px; + height: 200px; + left: calc(50% - 80px); + } + .banner .slider .item{ + transform: + rotateY(calc( (var(--position) - 1) * (360 / var(--quantity)) * 1deg)) + translateZ(300px); + } + .banner .content h1{ + text-align: center; + width: 100%; + text-shadow: 0 10px 20px #000; + font-size: 7em; + } + .banner .content .author{ + color: #fff; + padding: 20px; + text-shadow: 0 10px 20px #000; + z-index: 2; + max-width: unset; + width: 100%; + text-align: center; + padding: 0 30px; + } +} +@media screen and (max-width: 767px) { + .banner .slider{ + width: 100px; + height: 150px; + left: calc(50% - 50px); + } + .banner .slider .item{ + transform: + rotateY(calc( (var(--position) - 1) * (360 / var(--quantity)) * 1deg)) + translateZ(180px); + } + .banner .content h1{ + font-size: 5em; + } +} \ No newline at end of file diff --git a/Components/Forms/All-In-One-Form/index.html b/Components/Forms/All-In-One-Form/index.html new file mode 100644 index 00000000..23fcbe0a --- /dev/null +++ b/Components/Forms/All-In-One-Form/index.html @@ -0,0 +1,93 @@ + + + + + + All in One Form + + + + +
All In One Form
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+ + +
+
+ + +
+
+ +
+ +
+ + +
+
+ + +
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+ + + + + + + diff --git a/Components/Forms/All-In-One-Form/style.css b/Components/Forms/All-In-One-Form/style.css new file mode 100644 index 00000000..11df94cc --- /dev/null +++ b/Components/Forms/All-In-One-Form/style.css @@ -0,0 +1,44 @@ +body { + background: linear-gradient(45deg, #ff7e5f, #feb47b, #86e3ce, #ff6b6b, #feca57); + background-size: 400% 400%; + animation: gradientShift 10s ease infinite; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + margin: 0; + font-family: Arial, sans-serif; + min-height: 100vh; /* Ensure full viewport height */ +} +@keyframes gradientShift { + 0% {background-position: 0% 50%;} + 50% {background-position: 100% 50%;} + 100% {background-position: 0% 50%;} +} +.title-heading { + color: white; + margin-bottom: 10px; + margin-top: 10px; + font-size: 2.5rem; + font-weight: bold; + text-shadow: 2px 2px 8px rgba(71, 45, 167, 0.6); + text-align: center; +} +.all-in-one-form { + background: white; + padding: 30px; + border-radius: 10px; + box-shadow: 0 8px 25px rgba(71, 45, 167, 0.6); + width: 100%; + max-width: 600px; + margin-top: 2px; + margin-bottom: 20px; + transition: box-shadow 0.3s ease; +} +.all-in-one-form:hover { + box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3); +} +.all-in-one-form .form-control:focus { + border-color: #007bff; + box-shadow: 0 0 8px rgba(0, 123, 255, 0.5); +} \ No newline at end of file diff --git a/Components/Scrollbars/Modern-Minimalist-Scrollbar/index.html b/Components/Scrollbars/Modern-Minimalist-Scrollbar/index.html new file mode 100644 index 00000000..23bddaed --- /dev/null +++ b/Components/Scrollbars/Modern-Minimalist-Scrollbar/index.html @@ -0,0 +1,54 @@ + + + + + + + Custom Scrollbar Example + + + + + +
+
+
+

Modern Minimalist Scrollbar

+ Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. + Many different text. Many different text. Many different text. Many different text. Many different text. +
+
+
+ + + + + \ No newline at end of file diff --git a/Components/Scrollbars/Modern-Minimalist-Scrollbar/script.js b/Components/Scrollbars/Modern-Minimalist-Scrollbar/script.js new file mode 100644 index 00000000..b48315e2 --- /dev/null +++ b/Components/Scrollbars/Modern-Minimalist-Scrollbar/script.js @@ -0,0 +1,185 @@ +var ssb = { + aConts: [], + mouseY: 0, + N: 0, + asd: 0, /*active scrollbar element*/ + sc: 0, + sp: 0, + to: 0, + + // constructor + scrollbar: function (cont_id) { + var cont = document.getElementById(cont_id); + + // perform initialization + if (!ssb.init()) return false; + + var cont_clone = cont.cloneNode(false); + cont_clone.style.overflow = "hidden"; + cont.parentNode.appendChild(cont_clone); + cont_clone.appendChild(cont); + cont.style.position = 'absolute'; + cont.style.left = cont.style.top = '0px'; + cont.style.width = cont.style.height = '100%'; + + // adding new container into array + ssb.aConts[ssb.N++] = cont; + + cont.sg = false; + + //creating scrollbar child elements + cont.st = this.create_div('ssb_st', cont, cont_clone); + cont.sb = this.create_div('ssb_sb', cont, cont_clone); + cont.su = this.create_div('ssb_up', cont, cont_clone); + cont.sd = this.create_div('ssb_down', cont, cont_clone); + + // on mouse down processing + cont.sb.onmousedown = function (e) { + if (!this.cont.sg) { + if (!e) e = window.event; + + ssb.asd = this.cont; + this.cont.yZ = e.screenY; + this.cont.sZ = cont.scrollTop; + this.cont.sg = true; + + // new class name + this.className = 'ssb_sb ssb_sb_down'; + } + return false; + } + // on mouse down on free track area - move our scroll element too + cont.st.onmousedown = function (e) { + if (!e) e = window.event; + ssb.asd = this.cont; + + ssb.mouseY = e.clientY + document.body.scrollTop + document.documentElement.scrollTop; + for (var o = this.cont, y = 0; o != null; o = o.offsetParent) y += o.offsetTop; + this.cont.scrollTop = (ssb.mouseY - y - (this.cont.ratio * this.cont.offsetHeight / 2) - this.cont.sw) / this.cont.ratio; + this.cont.sb.onmousedown(e); + } + + // onmousedown events + cont.su.onmousedown = cont.su.ondblclick = function (e) { ssb.mousedown(this, -1); return false; } + cont.sd.onmousedown = cont.sd.ondblclick = function (e) { ssb.mousedown(this, 1); return false; } + + //onmouseout events + cont.su.onmouseout = cont.su.onmouseup = ssb.clear; + cont.sd.onmouseout = cont.sd.onmouseup = ssb.clear; + + // on mouse over - apply custom class name: ssb_sb_over + cont.sb.onmouseover = function (e) { + if (!this.cont.sg) this.className = 'ssb_sb ssb_sb_over'; + return false; + } + + // on mouse out - revert back our usual class name 'ssb_sb' + cont.sb.onmouseout = function (e) { + if (!this.cont.sg) this.className = 'ssb_sb'; + return false; + } + + // onscroll - change positions of scroll element + cont.ssb_onscroll = function () { + this.ratio = (this.offsetHeight - 2 * this.sw) / this.scrollHeight; + this.sb.style.top = Math.floor(this.sw + this.scrollTop * this.ratio) + 'px'; + } + + // scrollbar width + cont.sw = 12; + + // start scrolling + cont.ssb_onscroll(); + ssb.refresh(); + + // binding own onscroll event + cont.onscroll = cont.ssb_onscroll; + return cont; + }, + + // initialization + init: function () { + if (window.oper || (!window.addEventListener && !window.attachEvent)) { return false; } + + // temp inner function for event registration + function addEvent(o, e, f) { + if (window.addEventListener) { o.addEventListener(e, f, false); ssb.w3c = true; return true; } + if (window.attachEvent) return o.attachEvent('on' + e, f); + return false; + } + + // binding events + addEvent(window.document, 'mousemove', ssb.onmousemove); + addEvent(window.document, 'mouseup', ssb.onmouseup); + addEvent(window, 'resize', ssb.refresh); + return true; + }, + + // create and append div finc + create_div: function (c, cont, cont_clone) { + var o = document.createElement('div'); + o.cont = cont; + o.className = c; + cont_clone.appendChild(o); + return o; + }, + // do clear of controls + clear: function () { + clearTimeout(ssb.to); + ssb.sc = 0; + return false; + }, + // refresh scrollbar + refresh: function () { + for (var i = 0, N = ssb.N; i < N; i++) { + var o = ssb.aConts[i]; + o.ssb_onscroll(); + o.sb.style.width = o.st.style.width = o.su.style.width = o.su.style.height = o.sd.style.width = o.sd.style.height = o.sw + 'px'; + o.sb.style.height = Math.ceil(Math.max(o.sw * .5, o.ratio * o.offsetHeight) + 1) + 'px'; + } + }, + // arrow scrolling + arrow_scroll: function () { + if (ssb.sc != 0) { + ssb.asd.scrollTop += 6 * ssb.sc / ssb.asd.ratio; + ssb.to = setTimeout(ssb.arrow_scroll, ssb.sp); + ssb.sp = 32; + } + }, + + /* event binded functions : */ + // scroll on mouse down + mousedown: function (o, s) { + if (ssb.sc == 0) { + // new class name + o.cont.sb.className = 'ssb_sb ssb_sb_down'; + ssb.asd = o.cont; + ssb.sc = s; + ssb.sp = 400; + ssb.arrow_scroll(); + } + }, + // on mouseMove binded event + onmousemove: function (e) { + if (!e) e = window.event; + // get vertical mouse position + ssb.mouseY = e.screenY; + if (ssb.asd.sg) ssb.asd.scrollTop = ssb.asd.sZ + (ssb.mouseY - ssb.asd.yZ) / ssb.asd.ratio; + }, + // on mouseUp binded event + onmouseup: function (e) { + if (!e) e = window.event; + var tg = (e.target) ? e.target : e.srcElement; + if (ssb.asd && document.releaseCapture) ssb.asd.releaseCapture(); + + // new class name + if (ssb.asd) ssb.asd.sb.className = (tg.className.indexOf('scrollbar') > 0) ? 'ssb_sb ssb_sb_over' : 'ssb_sb'; + document.onselectstart = ''; + ssb.clear(); + ssb.asd.sg = false; + } +} + +window.onload = function () { + ssb.scrollbar('container'); // scrollbar initialization +} \ No newline at end of file diff --git a/Components/Scrollbars/Modern-Minimalist-Scrollbar/style.css b/Components/Scrollbars/Modern-Minimalist-Scrollbar/style.css new file mode 100644 index 00000000..00f7a223 --- /dev/null +++ b/Components/Scrollbars/Modern-Minimalist-Scrollbar/style.css @@ -0,0 +1,78 @@ +body { + background: #f5fffa; + margin: 0; + padding: 0; +} + +.wrapper { + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + background: #FFF; + border: 1px #000 solid; + margin: 20px auto; + padding: 15px; + position: relative; + width: 600px; + height: 600px; +} + +#container { + width: 580px; + height: 580px; + padding: 5px; + margin-top: 5px; + overflow: auto; + position: relative; +} + +.ssb_down { + background-color: #33ccaa; + bottom: 0; + cursor: pointer; + position: absolute; + right: 0; + border-radius: 10px; +} + +.ssb_sb { + background-color: #22aabb; + cursor: pointer; + position: absolute; + right: 0; + border-radius: 10px; +} + +.ssb_sb_down { + background-color: #1199aa; +} + +.ssb_sb_over { + background-color: #33bbcc; +} + +.ssb_st { + background-color: #dedede; + cursor: pointer; + height: 100%; + position: absolute; + right: 0; + top: 0; + border-radius: 10px; +} + +.ssb_up { + background-color: #33ccaa; + cursor: pointer; + position: absolute; + right: 0; + top: 0; + border-radius: 10px; +} + +.parent { + font-family: verdana; + height: 100%; + padding: 10px; + position: relative; +} \ No newline at end of file diff --git a/Components/Text-Animations/Neon-Spectrum-Text-Animation/index.html b/Components/Text-Animations/Neon-Spectrum-Text-Animation/index.html new file mode 100644 index 00000000..7ddd2d33 --- /dev/null +++ b/Components/Text-Animations/Neon-Spectrum-Text-Animation/index.html @@ -0,0 +1,20 @@ + + + + + + Neon Spectrum Text Animation + + + +

Neon Spectrum Text Animation

+ +
+

Beautiify

+
+ + + + + + diff --git a/Components/Text-Animations/Neon-Spectrum-Text-Animation/style.css b/Components/Text-Animations/Neon-Spectrum-Text-Animation/style.css new file mode 100644 index 00000000..2c21199e --- /dev/null +++ b/Components/Text-Animations/Neon-Spectrum-Text-Animation/style.css @@ -0,0 +1,45 @@ +body { + font-family: Arial, sans-serif; + background-color: #000; + color: #fff; + margin: 0; + padding: 0; +} + +.heading { + text-align: center; + font-size: 3em; + margin-top: 50px; + text-transform: uppercase; + letter-spacing: 2px; + text-shadow: 0 0 10px rgba(255, 255, 255, 0.8); /* White text shadow */ +} + +.text-container { + display: flex; + justify-content: center; + align-items: center; + height: 80vh; +} + +.animated-text { + font-size: 5em; + font-weight: bold; + text-transform: uppercase; + color: transparent; + background: linear-gradient(90deg, #ff00ff, #00ffff, #ff0000, #ffff00); /* Neon colors */ + background-size: 400%; + -webkit-background-clip: text; + background-clip: text; + position: relative; + animation: gradientAnimation 8s infinite linear; +} + +@keyframes gradientAnimation { + 0% { + background-position: -100% 0%; + } + 100% { + background-position: 100% 0%; + } +} diff --git a/Components/Transfer-Lists/Card-Based-Transfer-List/index.html b/Components/Transfer-Lists/Card-Based-Transfer-List/index.html new file mode 100644 index 00000000..226e06c8 --- /dev/null +++ b/Components/Transfer-Lists/Card-Based-Transfer-List/index.html @@ -0,0 +1,33 @@ + + + + + + + + + Card Based Transfer List + + + +
+

Card Based Transfer List

+
+
+

Available Projects

+
+ +
+
+
+

Assigned Projects

+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/Components/Transfer-Lists/Card-Based-Transfer-List/script.js b/Components/Transfer-Lists/Card-Based-Transfer-List/script.js new file mode 100644 index 00000000..910a0aee --- /dev/null +++ b/Components/Transfer-Lists/Card-Based-Transfer-List/script.js @@ -0,0 +1,70 @@ +document.addEventListener('DOMContentLoaded', () => { + const availableItems = document.getElementById('available-items'); + const selectedItems = document.getElementById('selected-items'); + const availableListContainer = document.getElementById('available-list-container'); + const selectedListContainer = document.getElementById('selected-list-container'); + + const projects = [ + 'Project Apollo', + 'Project Zeus', + 'Project Hera', + 'Project Athena', + 'Project Ares', + 'Project Poseidon', + 'Project Hades', + 'Project Artemis', + 'Project Demeter', + 'Project Dionysus' + ]; + + function createCard(text) { + const card = document.createElement('div'); + card.classList.add('card'); + card.textContent = text; + card.draggable = true; + card.addEventListener('dragstart', () => { + card.classList.add('dragging'); + }); + card.addEventListener('dragend', () => { + card.classList.remove('dragging'); + }); + return card; + } + + function populateList(container, items) { + container.innerHTML = ''; + items.forEach(item => { + const card = createCard(item); + container.appendChild(card); + }); + } + + function handleDrop(event) { + event.preventDefault(); + const draggedCard = document.querySelector('.dragging'); + const dropZone = event.currentTarget; + dropZone.classList.remove('drop-zone'); + if (dropZone !== draggedCard.parentElement) { + dropZone.appendChild(draggedCard); + } + } + + function handleDragOver(event) { + event.preventDefault(); + event.currentTarget.classList.add('drop-zone'); + } + + function handleDragLeave(event) { + event.currentTarget.classList.remove('drop-zone'); + } + + availableListContainer.addEventListener('dragover', handleDragOver); + availableListContainer.addEventListener('dragleave', handleDragLeave); + availableListContainer.addEventListener('drop', handleDrop); + + selectedListContainer.addEventListener('dragover', handleDragOver); + selectedListContainer.addEventListener('dragleave', handleDragLeave); + selectedListContainer.addEventListener('drop', handleDrop); + + populateList(availableItems, projects); +}); \ No newline at end of file diff --git a/Components/Transfer-Lists/Card-Based-Transfer-List/style.css b/Components/Transfer-Lists/Card-Based-Transfer-List/style.css new file mode 100644 index 00000000..12809bd7 --- /dev/null +++ b/Components/Transfer-Lists/Card-Based-Transfer-List/style.css @@ -0,0 +1,82 @@ +body { + font-family: 'Open Sans', sans-serif; + background: linear-gradient(to right, #ece9e6, #ffffff); + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + margin: 0; +} + +.container { + background: #f0f0f0; + border-radius: 15px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); + padding: 40px; + width: 90%; + max-width: 1200px; + text-align: center; +} + +h1 { + font-family: 'Lobster', cursive; + color: #333; + margin-bottom: 40px; + font-size: 3em; +} + +.lists { + display: flex; + justify-content: space-between; + align-items: center; +} + +.list-container { + flex: 1; + margin: 0 20px; + background: #fff; + border-radius: 10px; + padding: 20px; + box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1); +} + +.card-list { + display: flex; + flex-wrap: wrap; + gap: 20px; + justify-content: center; + padding: 20px; + border: 1px solid #ddd; + border-radius: 8px; + max-height: 400px; + overflow-y: auto; + background: #fff; +} + +.card { + background: #ffffff; + border: 1px solid #ddd; + border-radius: 12px; + padding: 20px; + width: 150px; + text-align: center; + cursor: pointer; + transition: background 0.3s, transform 0.3s; + font-size: 1.2em; + font-weight: 600; + box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); + user-select: none; + /* Prevent text selection during drag */ +} + +.card:hover { + background: #e0f7fa; +} + +.card.dragging { + opacity: 0.5; +} + +.card-list.drop-zone { + background: #e0f7fa; +} \ No newline at end of file diff --git a/assets/css_files/contact.css b/assets/css_files/contact.css index 530c0835..08c0f503 100644 --- a/assets/css_files/contact.css +++ b/assets/css_files/contact.css @@ -15,6 +15,7 @@ body { #section-wrapper { width: 100%; margin-top: 25px; + margin-bottom: 25px; } .box-wrapper { @@ -161,7 +162,7 @@ body { resize: none; } -.form-group { +.form-group1{ width: 46%; float: left; padding: 0px 30px; diff --git a/assets/html_files/about.html b/assets/html_files/about.html index 8d10b127..3f36fc04 100644 --- a/assets/html_files/about.html +++ b/assets/html_files/about.html @@ -122,45 +122,62 @@

Connect with Us: We are always open to connecting with like-minded in

Thank You for Visiting Beautiify!


- +

-
- -

- Created By - Rakesh Roshan ❤️ | © + +

- +
diff --git a/assets/html_files/backgrounds.html b/assets/html_files/backgrounds.html index 7402a973..9757d098 100644 --- a/assets/html_files/backgrounds.html +++ b/assets/html_files/backgrounds.html @@ -180,6 +180,19 @@

Animated Triangles Background

+
+

Aurora Borealis Background

+
+ + + +
+
+ + + +
+

Bubble Float Background

@@ -582,6 +595,19 @@

Snowball Background

+
+
+

Squares Animation Background

+
+ + + +
+
+ + + +

Swirl Animation Background

diff --git a/assets/html_files/buttons.html b/assets/html_files/buttons.html index 81488d0d..9de0e958 100644 --- a/assets/html_files/buttons.html +++ b/assets/html_files/buttons.html @@ -622,6 +622,19 @@

Swipe Right Button

+
+

Send Message Button

+
+ + + +
+
+ + + +
+

Swipe Right Button-2

@@ -713,6 +726,19 @@

Wiggle Button

+
+

Celebration Button

+
+ + + +
+
+ + + +
+
diff --git a/assets/html_files/contact.html b/assets/html_files/contact.html index 1710fd18..6ffb45c7 100644 --- a/assets/html_files/contact.html +++ b/assets/html_files/contact.html @@ -128,15 +128,15 @@

Send us a message :)

-
+
-
+
-
+
@@ -148,40 +148,56 @@

Send us a message :)

- +
+ +
+

Keep In Touch

+
+
+ + +
+
+ + + +
+
+ +
+
+ +
diff --git a/assets/html_files/contributor.html b/assets/html_files/contributor.html index 68f4c651..aa12940d 100644 --- a/assets/html_files/contributor.html +++ b/assets/html_files/contributor.html @@ -95,43 +95,57 @@

Our Valuable Contributors

- + + +
+

Keep In Touch

+
+
+ + +
+
+ + + +
+ +
+
+ + + + + + + + +
+
+ + +
diff --git a/assets/html_files/forms.html b/assets/html_files/forms.html index bd4f5eb8..3c271d63 100644 --- a/assets/html_files/forms.html +++ b/assets/html_files/forms.html @@ -623,6 +623,19 @@

Yeti Login Form

+
+

All In One Form

+
+ + + +
+
+ + + +
+
diff --git a/assets/html_files/scrollbars.html b/assets/html_files/scrollbars.html index 04334d52..7096fbf5 100644 --- a/assets/html_files/scrollbars.html +++ b/assets/html_files/scrollbars.html @@ -96,6 +96,19 @@

Hmmm, we are not getting any result.
Our bad - Please try another searc
+
+

Modern Minimalist Scrollbar

+
+ + + +
+
+ + + +
+

Elegant Custom Scrollbar

diff --git a/assets/html_files/text-animations.html b/assets/html_files/text-animations.html index db66ed8d..413109a5 100644 --- a/assets/html_files/text-animations.html +++ b/assets/html_files/text-animations.html @@ -414,6 +414,19 @@

Wave Text Animation

+
+

Neon Spectrum Text Animation

+
+ + + +
+
+ + + +
+
diff --git a/assets/html_files/transfer-lists.html b/assets/html_files/transfer-lists.html index 0a06e6c9..8c82766a 100644 --- a/assets/html_files/transfer-lists.html +++ b/assets/html_files/transfer-lists.html @@ -128,7 +128,21 @@

Neumorphism Transfer List

+
+

Card Based Transfer List

+
+ + + +
+
+ + + +
+
+ @@ -144,4 +158,4 @@

Neumorphism Transfer List

- + \ No newline at end of file diff --git a/index.html b/index.html index 58d13b05..0c362abb 100644 --- a/index.html +++ b/index.html @@ -316,41 +316,57 @@

Transfer Lists

- + +
+

Keep In Touch

+
+
+ + +
+
+ + + +
+ +
+
+ + + + + + + + +
+
+ + + @@ -364,4 +380,4 @@

Transfer Lists

- + \ No newline at end of file diff --git a/style.css b/style.css index c14c296c..88cc15b4 100644 --- a/style.css +++ b/style.css @@ -605,74 +605,188 @@ section { } /* Footer Css */ +/* Footer Css */ + +footer { + font-family: 'Montserrat', sans-serif; + background-color: rgb(85, 7, 111); + color:#ccc; + padding: 20px 0; + width: 100%; + box-sizing: border-box; +} -.footer { +.footer-container { display: flex; - justify-content: center; - align-items: flex-end; - min-height: 25vh; + flex-wrap: wrap; + justify-content: space-between; + align-items: flex-start; + margin: 0 auto; + max-width: 1300px; + padding: 0 20px; } -footer { - position: relative; +.company-info { + font-weight: 600; + flex: 1 1 30%; +} + +.quick-links { + font-weight: 600; + flex: 1 1 30%; +} + +.send-message { + flex: 1 1 30%; +} + +.company-name { + font-size: 24px; + margin-bottom: 10px; +} + +.company-info p { + line-height: 1.8; + text-align: center; +} + +.quick-links h2, +.send-message h2 { + font-size: 18px; + margin-bottom: 10px; +} + +.quick-links ul, +.send-message form { + list-style: none; + padding: 0; + margin: 0; +} + +.quick-links li, +.send-message button { + margin-bottom: 10px; +} + +.quick-links a, +.send-message button { + text-decoration: none; + color: #ccc; +} + +.send-message input[type="email"] { width: 100%; - box-shadow: 0px -2.5px 6px rgb(30, 30, 30); - min-height: 100px; padding: 10px; + border: 1px solid #ccc; + border-radius: 4px; +} + +.copyright { + margin-top: 30px; + text-align: center; + padding: 0 20px; + color: #ccc; +} + +.heading { + font-size: 24px; + margin-bottom: 20px; + background: #00F260; + background: -webkit-linear-gradient(to right, #f50414, #CCC); + background: linear-gradient(to right,#f50414, #CCC); + background-clip: text; + -webkit-text-fill-color: transparent; + text-align: center; +} + +.form-group { + margin-bottom: 15px; +} + +.group1 { display: flex; - justify-content: center; - align-items: center; - flex-direction: column; - margin-top: 40px; + flex-direction: row; + gap: 10px; } -footer .social-icon { - position: relative; +.send-message input, +.send-message textarea { + width: 100%; + padding: 10px; + border: 1px solid #ccc; + border-radius: 4px; + box-sizing: border-box; + font-size: 16px; +} + +.send-message textarea { + height: 50px; + color: #f7f26c; +} + +.send-message button { + height: 50px; + background: -webkit-linear-gradient(to right, #f50414, #CCC); + background: linear-gradient(to right,#f50414, #CCC); + color: white; + padding: 10px 20px; + border: none; + border-radius: 4px; + cursor: pointer; + font-size: 20px; + font-weight: bold; +} + +.footer-ul { + justify-items: start; + align-items: start; + text-align: center; +} + +.social { + font-size: 3.5rem; + text-decoration: none; + margin: 0 1rem; + transition: 0.3s ease-in-out; + cursor: pointer; display: flex; - justify-content: center; align-items: center; - flex-wrap: wrap; + justify-content: center; + gap: 2rem; } -footer .social-icon li { - list-style: none; +.social a i { + transition: transform 0.3s ease-in-out; +} + +/* Pop up effect */ + +.social a:hover i { + transform: translateY(-8px); } -footer .social-icon li a { - font-size: 2em; +.social a { color: var(--secondary); - margin: 0 10px; - display: inline-block; - transition: 0.5s; } -.footer-links { - transition: transform .2s; +.social a.user:hover { + color: #4af3b5; } -footer .social-icon li a:hover { - transform: translateY(-10px); - color: red; +.social a.message:hover { + color: #73408a; } -footer p { - color: var(--secondary); - text-align: center; - margin-top: 15px; - font-size: 1.1em; - display: inline-block; +.social a.phone:hover { + color: #00f7ff; } -footer p a { - background-color: rgba(239, 230, 230, 0.551); - color: var(--secondary); - text-align: center; - margin-top: 15px; - margin-bottom: 10px; - font-size: 1.1em; - display: inline-block; +.social a.github:hover { + color: #4af3b5; } + + #progress { position: fixed; bottom: 20px; @@ -993,6 +1107,26 @@ footer p a { .hamburger.active .bar:nth-child(3) { transform: translateY(-8px) rotate(-45deg); } + .social { + font-size: 2.5rem; + text-decoration: none; + transition: 0.3s ease-in-out; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + gap: 1.5rem; + } + .footer-container { + margin: 2px 3px; + } + .company-info, + .quick-links, + .send-message { + margin-top:8px; + text-align: center; + flex-basis: 100%; + } } @media (max-width: 400px) {