Skip to documentation
BoobstrapDocs
Forms

Passwords and input masks

Add an accessible password reveal control and declarative phone, date, and product-key masks.

Forms guideCopy-ready referencev0.7.0 current
Forms

Passwords and input masks

Password reveal and input formatting are optional controllers. The underlying inputs remain usable before JavaScript initializes.

Password reveal

HTML · Complete password field
<div class="bs-form-group" data-bs-password>
  <label class="bs-label" for="password">Password</label>
  <div class="bs-input-wrap">
    <input
      class="bs-input bs-input-has-icon-end"
      id="password"
      name="password"
      type="password"
      autocomplete="current-password"
      data-bs-password-input
    />
    <button
      class="bs-input-action"
      type="button"
      data-bs-password-toggle
      data-bs-password-show-label="Show password"
      data-bs-password-hide-label="Hide password"
    >
      <span data-bs-password-label>Show password</span>
    </button>
  </div>
</div>
JavaScript · Initialize password fields
import "@boobstrap/boobstrap";
import { initPasswords } from "@boobstrap/boobstrap/js/password";

const passwordFields = initPasswords(document);

Phone mask

HTML · Phone mask
<div class="bs-form-group">
  <label class="bs-label" for="phone">Phone number</label>
  <input
    class="bs-input"
    id="phone"
    name="phone"
    type="tel"
    autocomplete="tel"
    data-bs-mask="(999) 999-9999"
    placeholder="(555) 555-0123"
  />
</div>

Date mask

HTML · Date mask
<label class="bs-label" for="reference-date">Reference date</label>
<input class="bs-input" id="reference-date" name="reference_date" inputmode="numeric" data-bs-mask="99/99/9999" placeholder="MM/DD/YYYY" />

Alphanumeric mask

HTML · Alphanumeric mask
<label class="bs-label" for="product-key">Product key</label>
<input class="bs-input" id="product-key" name="product_key" data-bs-mask="AAAA-9999-****" placeholder="ABCD-1234-E5F6" />
JavaScript · Initialize input masks
import "@boobstrap/boobstrap";
import { initInputMasks } from "@boobstrap/boobstrap/js/input-mask";

const masks = initInputMasks(document);
Mask tokens: 9 accepts a digit, A accepts a letter, and * accepts a letter or digit. A mask formats entry; it does not replace server-side validation.