Result
SVGを使うといろいろ作れて楽しいですね。
HTMLで書いた自作のSVGをurl()フィルターで参照しています。
css
.c-button--gooey {/*ボタンの基本スタイル*/
color: #06c8d9;
font-size: 1.3em;
text-transform: uppercase;
letter-spacing: 2px;
border: 4px solid #06c8d9;
border-radius: 0;
padding: 1.2em 3.4em;
position: relative;
transition: all 700ms ease;
}
.c-button--gooey .c-button__blobs {/*HTMLで書いたSVGを参照*/
height: 100%;
filter: url(#goo);
overflow: hidden;
position: absolute;
top: 0;
left: 0;
bottom: -3px;
right: -1px;
z-index: -1;
}
.c-button--gooey .c-button__blobs div {/*配置*/
background-color: #06c8d9;
width: 34%;
height: 100%;
border-radius: 100%;
position: absolute;
transform: scale(1.4) translateY(125%) translateZ(0);
transition: all 700ms ease;
}
.c-button--gooey .c-button__blobs div:nth-child(1) {/*エレメントの位置調整*/
left: -5%;
}
.c-button--gooey .c-button__blobs div:nth-child(2) {
left: 30%;
transition-delay: 60ms;
}
.c-button--gooey .c-button__blobs div:nth-child(3) {
left: 66%;
transition-delay: 25ms;
}
.c-button--gooey:hover {
color: #fff;
}
.c-button--gooey:hover .c-button__blobs div {/*ホバー時の挙動*/
transform: scale(1.4) translateY(0) translateZ(0);
}
html
<div class="row middle-on-small center-on-small">
<div class="column small-12 medium-6 large-4">
<a href="#!" class="c-button c-button--gooey">
ボタン
<div class="c-button__blobs">
<div></div>
<div></div>
<div></div>
</div>
</a>
</div>
</div>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" style="display: block; height: 0; width: 0;">
<defs>
<filter id="goo">
<feGaussianBlur in="SourceGraphic" stdDeviation="10" result="blur"></feGaussianBlur>
<feColorMatrix in="blur" mode="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 18 -7" result="goo"></feColorMatrix>
<feBlend in="SourceGraphic" in2="goo"></feBlend>
</filter>
</defs>
</svg>
