パーツ番号 08-10-10 ・ JavaScript使用
Enter送信でアニメーションするボタン
入力欄でEnterキーを押すと送信ボタンが跳ねて回転し、送信済みの合図として色が変わります。WordPressのコメント欄やチャット風フォームに使えます。
プレビュー
ソースコード
HTML
<form class="d08-10-10-form">
<input class="d08-10-10-input" type="text" placeholder="メッセージを入力してEnter">
<button class="d08-10-10-submit" type="submit" aria-label="送信">
<svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"><path fill="#fff" d="M3 11l18-8-8 18-2.5-7.5z"/></svg>
</button>
</form>CSS
.d08-10-10-form{display:flex;align-items:center;gap:8px;width:100%;max-width:260px;background:#f3f4f8;border-radius:99px;padding:6px 6px 6px 16px}
.d08-10-10-input{flex:1;border:none;background:none;outline:none;font-size:13px;min-width:0}
.d08-10-10-submit{flex:none;width:36px;height:36px;border-radius:50%;border:none;background:#9aa0ac;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}
.d08-10-10-submit.is-sent{background:#22c55e;animation:d08-10-10-pop .5s cubic-bezier(.2,1.5,.4,1)}
@keyframes d08-10-10-pop{0%{transform:scale(1) rotate(0)}45%{transform:scale(1.25) rotate(18deg)}100%{transform:scale(1) rotate(0)}}
.d08-10-10-input:focus-visible,.d08-10-10-submit:focus-visible{outline:2px solid #6a5cff;outline-offset:2px}JavaScript
(function(){
var form=document.querySelector('#item-08-10-10 .d08-10-10-form');if(!form)return;
var btn=form.querySelector('.d08-10-10-submit');
form.addEventListener('submit',function(e){
e.preventDefault();
btn.classList.remove('is-sent');void btn.offsetWidth;btn.classList.add('is-sent');
});
})();クラス名 .d08-10-10 は本ライブラリ内での識別用です。複数のパーツを同じページで使う場合は、重複しないよう名前を変更してください。