Index: vue/src/assets/images/devops/DevSupport/github.png =================================================================== diff -u -r2da326000f667ac06d8c755dcb63a9f73ced68f2 -r0cdbf94fca658c52870bc7791663b6860ddfa490 --- vue/src/assets/images/devops/DevSupport/github.png (.../github.png) (revision 2da326000f667ac06d8c755dcb63a9f73ced68f2) +++ vue/src/assets/images/devops/DevSupport/github.png (.../github.png) (revision 0cdbf94fca658c52870bc7791663b6860ddfa490) @@ -3213,3 +3213,160 @@ white-space: normal; word-break: keep-all; } + +/*-------------------------------------------------------------- +# 버튼 에니메이션 +--------------------------------------------------------------*/ +.more { + display: inline-block; + border: 1px solid rgba(255, 255, 255, 0.3); + letter-spacing: 0; + z-index: 1; + position: relative; + margin-top: 10px; + color: #fff; + font-size: 13px; +} + +.animated-button1 { + display: inline-block; + -webkit-transform: translate(0%, 0%); + transform: translate(0%, 0%); + overflow: hidden; + color: #fff; + font-size: 12px; + text-decoration: none; +} + +.animated-button1::before { + content: ''; + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + background-color: #8593ad; + opacity: 0; + -webkit-transition: 0.2s opacity ease-in-out; + transition: 0.2s opacity ease-in-out; +} + +.animated-button1 span { + position: absolute; +} + +@keyframes animateTop { + 0% { + -webkit-transform: translateX(100%); + transform: translateX(100%); + } + + 100% { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } +} + +.animated-button1 span:nth-child(1) { + top: 0px; + left: 0px; + width: 100%; + height: 1px; + background: -webkit-gradient( + linear, + right top, + left top, + from(rgba(43, 8, 8, 0)), + to(#fff) + ); + background: linear-gradient(to left, rgba(43, 8, 8, 0), #fff); + -webkit-animation: 2s animateTop linear infinite; + animation: 2s animateTop linear infinite; +} + +@keyframes animateRight { + 0% { + -webkit-transform: translateY(100%); + transform: translateY(100%); + } + + 100% { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + } +} + +.animated-button1 span:nth-child(2) { + top: 0px; + right: 0px; + height: 100%; + width: 1px; + background: -webkit-gradient( + linear, + left bottom, + left top, + from(rgba(43, 8, 8, 0)), + to(#fff) + ); + background: linear-gradient(to top, rgba(43, 8, 8, 0), #fff); + -webkit-animation: 2s animateRight linear -1s infinite; + animation: 2s animateRight linear -1s infinite; +} + +@keyframes animateBottom { + 0% { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } + + 100% { + -webkit-transform: translateX(100%); + transform: translateX(100%); + } +} + +.animated-button1 span:nth-child(3) { + bottom: 0px; + left: 0px; + width: 100%; + height: 1px; + background: -webkit-gradient( + linear, + left top, + right top, + from(rgba(43, 8, 8, 0)), + to(#fff) + ); + background: linear-gradient(to right, rgba(43, 8, 8, 0), #fff); + -webkit-animation: 2s animateBottom linear infinite; + animation: 2s animateBottom linear infinite; +} + +@keyframes animateLeft { + 0% { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + } + + 100% { + -webkit-transform: translateY(100%); + transform: translateY(100%); + } +} + +.animated-button1 span:nth-child(4) { + top: 0px; + left: 0px; + height: 100%; + width: 1px; + background: -webkit-gradient( + linear, + left top, + left bottom, + from(rgba(43, 8, 8, 0)), + to(#fff) + ); + background: linear-gradient(to bottom, rgba(43, 8, 8, 0), #fff); + -webkit-animation: 2s animateLeft linear -1s infinite; + animation: 2s animateLeft linear -1s infinite; +}