UNPKG

linkfree-themes

Version:

CSS themes for a free and open source alternative to LinkTree

245 lines (212 loc) 4.05 kB
body { background-image: linear-gradient(to bottom right, #eb01a5, #d13531); width: 100%; height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center; overflow: hidden; background-size: cover; font-family: system-ui, sans-serif; font-weight: 200; } body:before { content: ""; position: absolute; z-index: -1; left: 0; top: 0; width: 100%; height: 5076px; background-size: 100%; animation: 20s infiniteScroll linear infinite; background-repeat: repeat; background-image: url(./images/circles-pattern.svg); } a { text-decoration: none; } #userPhoto, #userName, #description, .link { -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-fill-mode: both; animation-fill-mode: both; } #userPhoto { width: 96px; height: 96px; display: block; margin: 35px auto 30px; transition: all 0.15s; -webkit-animation-name: zoomIn; animation-name: zoomIn; } #userName, #description { color: white; font-size: 1rem; line-height: 1.25; display: block; width: 100%; text-align: center; margin: 0; text-decoration: none; -webkit-animation-name: fadeIn; animation-name: fadeIn; } #userName { font-weight: bold; } #links { display: flex; flex-direction: column; justify-content: center; align-items: stretch; gap: 15px; min-width: 250px; margin: 30px 0; } .link { display: block; background-color: #1d9e96; color: white; text-align: center; padding: 17px; text-decoration: none; font-size: 1rem; font-weight: bold; transition: all 0.15s; box-shadow: 0px 6px #06695f; border-radius: 35% 20%; } .link:hover { font-size: 2rem; box-shadow: none; border-radius: 20% 35%; } .link:nth-child(even) { -webkit-animation-name: fadeInLeft; animation-name: fadeInLeft; } .link:nth-child(odd) { -webkit-animation-name: fadeInRight; animation-name: fadeInRight; } ion-icon { vertical-align: text-bottom; width: 1.1875em; height: 1.1875em; } @-webkit-keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 1; } } @-webkit-keyframes zoomIn { 0% { opacity: 0; -webkit-transform: scale(0.3); transform: scale(0.3); } 50% { opacity: 1; } } @keyframes zoomIn { 0% { opacity: 0; -webkit-transform: scale(0.3); -ms-transform: scale(0.3); transform: scale(0.3); } 50% { opacity: 1; } } @-webkit-keyframes fadeInLeft { 0% { opacity: 0; -webkit-transform: translateX(-20px); transform: translateX(-20px); } 100% { opacity: 1; -webkit-transform: translateX(0); transform: translateX(0); } } @keyframes fadeInLeft { 0% { opacity: 0; -webkit-transform: translateX(-20px); -ms-transform: translateX(-20px); transform: translateX(-20px); } 100% { opacity: 1; -webkit-transform: translateX(0); -ms-transform: translateX(0); transform: translateX(0); } } @-webkit-keyframes fadeInRight { 0% { opacity: 0; -webkit-transform: translateX(20px); transform: translateX(20px); } 100% { opacity: 1; -webkit-transform: translateX(0); transform: translateX(0); } } @keyframes fadeInRight { 0% { opacity: 0; -webkit-transform: translateX(20px); -ms-transform: translateX(20px); transform: translateX(20px); } 100% { opacity: 1; -webkit-transform: translateX(0); -ms-transform: translateX(0); transform: translateX(0); } } @-webkit-keyframes infiniteScroll { 0% { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 100% { -webkit-transform: translate3d(0, -1692px, 0); transform: translate3d(0, -1692px, 0); } } @keyframes infiniteScroll { 0% { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 100% { -webkit-transform: translate3d(0, -1692px, 0); transform: translate3d(0, -1692px, 0); } }