離脱率を下げるフォームUX。
バリデーションと入力補助のCSS実装テクニック

UI/UXCSS実装

お問い合わせフォームは、Webサイトにおける最重要コンバージョンポイントです。しかし、入力のしにくさやエラー表示のわかりにくさが原因で、最大70%のユーザーがフォームから離脱してしまうというデータもあります。
本記事では、CSSだけで実装できるフォームUXの改善テクニックを4つご紹介します。

1. フロートラベル(入力時にラベルが浮き上がる)

プレースホルダーをラベルとして表示し、入力開始時にラベルが上部に移動するパターン。フォーム欄が何のフィールドかを、入力中も確認できます。下のフィールドに何か入力してみてください。

CSS
.field {
    position: relative;
}
.field input {
    width: 100%;
    padding: 16px 12px 6px;
    border: 1px solid #EAEAEA;
    border-radius: 8px;
    font-size: 0.9rem;
    transition: border-color 0.2s;
}
.field input:focus { border-color: #E31010; }

.field label {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.85rem;
    color: #9A9794;
    pointer-events: none;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

/* フォーカス時 or 入力済み:ラベルが浮き上がる */
.field input:focus + label,
.field input:not(:placeholder-shown) + label {
    top: 8px;
    transform: translateY(0);
    font-size: 0.65rem;
    color: #E31010;
}
💡 ポイント::placeholder-shown 擬似クラスがこのテクニックの鍵です。placeholder=" "(スペース1つ)にすることで、未入力時にもラベルが表示されます。

2. リアルタイムバリデーション表示

CSSの :valid / :invalid 擬似クラスを使えば、JavaScriptなしで入力値のバリデーション状態を視覚化できます。メールアドレスを入力してみてください。

正しいメールアドレスを入力すると枠が緑色になります

CSS
/* 入力値が有効:緑の枠線 */
input:valid:not(:placeholder-shown) {
    border-color: #059669;
}

/* 入力値が無効(&フォーカスが外れた時):赤の枠線 */
input:invalid:not(:placeholder-shown):not(:focus) {
    border-color: #DC2626;
}

3. ステップインジケーター

長いフォームを複数ステップに分割した場合、現在どのステップにいるかを視覚的に示すUI。ユーザーに「あとどのくらいか」を伝え、離脱を防ぎます。

基本情報
2
詳細
3
確認
4
完了
CSS
.step__circle {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #EAEAEA;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: #fff;
    transition: all 0.3s;
}

.step.is-active .step__circle { background: #E31010; }
.step.is-done .step__circle { background: #059669; }

/* ステップ間の接続線 */
.step + .step::before {
    content: '';
    position: absolute;
    top: 16px;
    right: 50%;
    width: 100%;
    height: 2px;
    background: #EAEAEA;
}

4. パスワード強度メーター

パスワード入力時に「弱い」「普通」「強い」をバーの色と本数で視覚化するUI。ユーザーにセキュリティへの安心感を与えます。

CSS
.strength { display: flex; gap: 4px; }

.strength__bar {
    flex: 1;
    height: 4px;
    border-radius: 2px;
    background: #EAEAEA;
    transition: background 0.3s;
}

/* 弱い:1本目だけ赤 */
.strength.weak .strength__bar:nth-child(1) {
    background: #DC2626;
}
/* 普通:2本目まで黄 */
.strength.medium .strength__bar:nth-child(1),
.strength.medium .strength__bar:nth-child(2) {
    background: #F59E0B;
}
/* 強い:3本すべて緑 */
.strength.strong .strength__bar:nth-child(1),
.strength.strong .strength__bar:nth-child(2),
.strength.strong .strength__bar:nth-child(3) {
    background: #059669;
}

まとめ:フォームは「会話」である

フォームは、ユーザーとサイトとの「対話」の場です。入力のたびに適切なフィードバックを返すことで、ユーザーは安心して入力を続けられます。

💡 ツタワルの制作では:フォームのUX設計からA/Bテストまで、コンバージョン最大化のための施策を包括的にサポートしています。

Contact

伝わるまで、何度でも。

あなたのブランドの「言葉」と「形」を、一緒に見つけませんか?
些細なご相談でも、まずはお気軽にお話ししましょう。