diff --git a/css/btn.css b/css/btn.css new file mode 100644 index 0000000..93ea066 --- /dev/null +++ b/css/btn.css @@ -0,0 +1,145 @@ +@import url("https://fonts.googleapis.com/css?family=Raleway:300"); + +:root { + --btn-border: 1px solid rgba(255, 255, 255, 0.2); + --btn-bg: transparent; + --btn-shadow: 1px 1px 25px 10px rgba(255, 255, 255, 0.5); + --btn-text-color: #f4f4f4; + + --shine-degree: 120deg; + --shine-color: rgba(255, 255, 255, 0.2); + --shine-effect: linear-gradient( + var(--shine-degree), + transparent, + var(--shine-color), + transparent + ); + --shine-transition: all 0.65s ease-in-out; +} + +.btn { + position: relative; + overflow: hidden; + font-size: 1.1rem; + padding: 1rem 3rem; + border-radius: 4px; + text-decoration: none; + border: var(--btn-border); + color: var(--btn-text-color); + background: var(--btn-bg); +} + +.btn:not(:last-child) { + margin-bottom: 3rem; +} + +.btn::before { + content: ""; + position: absolute; + top: 0; + width: 100%; + height: 100%; + background: var(--shine-effect); +} + +.btn-hover::before { + left: -100%; + transition: var(--shine-transition); +} + +.btn-hover:hover { + box-shadow: var(--btn-shadow); +} + +.btn-hover:hover::before { + left: 100%; +} + +.btn-anim::before { + animation: shine 5s ease-in-out infinite; +} + +@keyframes shine { + 0% { + left: -100%; + transition-property: left; + } + 45%, + 100% { + left: 100%; + transition-property: left; + } +} + +.btn-alt { + display: inline-flex; + align-items: center; + justify-content: center; + width: 250px; + height: 60px; + font-size: 1.1rem; + position: relative; + overflow: hidden; + border-radius: 4px; + text-decoration: none; + border: var(--btn-border); + color: var(--btn-text-color); + background: var(--btn-bg); +} + +.btn-alt:not(:last-child) { + margin-bottom: 3rem; +} + +.btn-alt::before, +.btn-alt::after { + content: ""; + display: block; + position: absolute; + height: 100%; + top: 0; +} + +.btn-alt::before { + background: rgba(255, 255, 255, 0.5); + width: 60px; + left: 0; + filter: blur(30px); + animation: shine-alt1 5s ease-in-out infinite; +} + +.btn-alt::after { + background: rgba(255, 255, 255, 0.2); + width: 30px; + left: 30px; + filter: blur(5px); + animation: shine-alt2 5s ease-in-out infinite; +} + +@keyframes shine-alt1 { + 0% { + opacity: 0.5; + transform: translateX(-100px) skewX(-15deg); + transition-property: opacity, transform; + } + 45%, + 100% { + opacity: 0.6; + transform: translateX(300px) skewX(-15deg); + transition-property: opacity, transform; + } +} + +@keyframes shine-alt2 { + 0% { + opacity: 0; + transform: translateX(-100px) skewX(-15deg); + transition-property: opacity, transform; + } + 45%, + 100% { + opacity: 1; + transform: translateX(300px) skewX(-15deg); + transition-property: opacity, transform; + } +}