パーツ番号 04-11-03 ・ JavaScript使用
パスワード強度可視化バー
入力中のパスワードの強度をリアルタイムでバーの長さと色に反映する入力欄。WordPressの会員登録フォームで安全なパスワード設定を視覚的に促せます。
プレビュー
ソースコード
HTML
<div class="d04-11-03-wrap">
<input type="password" class="d04-11-03-input" placeholder="パスワードを入力" aria-label="パスワード">
<div class="d04-11-03-meter"><span class="d04-11-03-fill"></span></div>
<p class="d04-11-03-label">強度: <span class="d04-11-03-txt">-</span></p>
</div>CSS
.d04-11-03-wrap{width:min(270px,100%)}
.d04-11-03-input{width:100%;padding:12px 14px;font-size:14px;border:2px solid #d5d9e0;border-radius:8px;outline:none;background:#fff;transition:border-color .25s}
.d04-11-03-input:focus{border-color:#4a6cf7}
.d04-11-03-meter{height:6px;margin-top:10px;border-radius:3px;background:#e4e8ef;overflow:hidden}
.d04-11-03-fill{display:block;height:100%;width:0;border-radius:3px;background:#e5484d;transition:width .35s ease,background .35s ease}
.d04-11-03-label{margin:8px 0 0;font-size:12px;color:#8a93a3}
.d04-11-03-txt{font-weight:700;color:#333}JavaScript
(function(){
var input=document.querySelector('.d04-11-03-input');
var fill=document.querySelector('.d04-11-03-fill');
var txt=document.querySelector('.d04-11-03-txt');
if(!input||!fill||!txt)return;
var labels=['-','弱い','やや弱い','普通','強い'];
var colors=['#e5484d','#e5484d','#f5a623','#8bc34a','#22b573'];
input.addEventListener('input',function(){
var v=input.value,score=0;
if(v.length===0){
fill.style.width='0%';
txt.textContent='-';
txt.style.color='#333';
return;
}
if(v.length>=8)score++;
if(/[a-z]/.test(v)&&/[A-Z]/.test(v))score++;
if(/\d/.test(v))score++;
if(/[^A-Za-z0-9]/.test(v))score++;
if(score===0)score=1;
var widths=[0,25,50,75,100];
fill.style.width=widths[score]+'%';
fill.style.background=colors[score];
txt.textContent=labels[score];
txt.style.color=colors[score];
});
})();クラス名 .d04-11-03 は本ライブラリ内での識別用です。複数のパーツを同じページで使う場合は、重複しないよう名前を変更してください。