Codeworks Notes

 2022-05-10

Webデザイン
CSS
UIデザイン
フロントエンド

パスワード登録フォームのデザイン

パスワードを登録するフォーム、アレについてです。

  • 1 回入力させて終わりにする
  • 確認用にもう 1 回入力させる

これでコンバージョン率が変わり、2 回も入れさせるサイトは面倒臭くて何割かの見込みユーザが離脱することに繋がります。フォームの思想として「パスワードの入力欄はそういうものだ」ということではないんですね。

そもそもなんで再入力させてるのか

パスワードの入力間違いを防ぐためです。
会員登録でパスワードを間違えて登録したらログインできない上に、管理側がサポートを求められたら不特定多数のユーザーが不注意を起こすたびに対応しなければなりません、という管理側目線の理由。

ユーザ目線で見れば「なんで 2 回も入れなきゃならんのだ面倒くせえ」となる。
なので登録しないで離脱する。サービスの根幹を揺るがす。

2 回入力しなくていい方法にする

なので、自分で間違って入力してないか確認できるようにする UI にすれば解決。

パスワードはマスクされている
目アイコンのクリックでパスワードが確認できる

作り方

前準備として以下のライブラリなどが必要です。
生ファイルを直接配置するなり CDN から読み込むなり好きにやってください。

  • jQuery
  • FontAwesome(目アイコンが使えればなんでも可)

JavaScript

jQuery のトリガーをつくります。

$(function() {
  $('.toggle-pass').on('click', function() {
    $(this).toggleClass('fa-eye fa-eye-slash');
    var input = $(this).prev('input');
    if (input.attr('type') == 'text') {
      input.attr('type','password');
    } else {
      input.attr('type','text');
    }
  });
});

HTML

目アイコンに紐付けします。
jQuery 、FontAwesome、 前項の js ファイルをあらかじめ読み込ませておきましょう。

<form method="post" action="">
	<label for="password">パスワード</label><br />
	<div class="input-wrap">
		<input id="password" name="password" type="password" aria-required="true" required>
		<i class="toggle-pass fa-solid fa-eye-slash"></i>
	</div>
	<input name="register" type="submit" value="登録する">
</form>

CSS

フォーム整形と目アイコンの位置合わせをします。

.input-wrap input[type="password"] {
  -webkit-appearance: none;
  border-radius: 10px;
  border: solid 1px #ccc;
  width: 160px;
  padding: 15px 20px;
  font-family: sans-serif;
}
.toggle-pass {
  position: absolute;
  top: 50%;
  right: 42px;
  transform: translateY(-50%);
}

トリガー役の目アイコンを踏むたびにパスワードフォームの input type が 'password' と 'text' を交互に切り替えるシンプルな仕組みです。

アイコンフォントを使う代わりに画像を使っても問題ありません。
やりやすい方法で適宜アレンジすると良いかと思います。