Snippets Buttons

Bootstrap 5 Neumorphic Signup / Login Form

A soft-UI sign up and log in board with a name field that appears only when signing up, plus a second panel with social sign-in, labelled quick tools and search. Inputs and buttons keep a visible edge so they stay readable in light and dark.

Bootstrap 5 No jQuery Feb 2020 2.5K views

<section class="wdw-stage">
  <div class="container" style="max-width:960px">
    <div class="text-center mb-4"><span class="wdw-eyebrow">Soft UI</span><h2 class="wdw-heading mt-1 mb-0">Soft sign up / log in</h2></div>
    <div class="wdw-neo-board p-4 p-md-5">
      <div class="row g-4 g-md-5 align-items-start">
        <div class="col-md-6">
          <form novalidate id="neoForm">
            <div class="wdw-neo-tabs d-flex gap-3 mb-4" role="group" aria-label="Mode">
              <button type="button" class="btn wdw-neo-btn flex-fill active" data-mode="up" aria-pressed="true">Sign up</button>
              <button type="button" class="btn wdw-neo-btn flex-fill" data-mode="in" aria-pressed="false">Log in</button>
            </div>
            <div class="wdw-neo-collapse" id="neoNameWrap"><div><div class="pb-4"><label class="visually-hidden" for="nName">Full name</label><input id="nName" type="text" class="form-control wdw-neo-in" placeholder="Full name" autocomplete="name"></div></div></div>
            <div class="mb-4"><label class="visually-hidden" for="nEmail">Email address</label><input id="nEmail" type="email" class="form-control wdw-neo-in" placeholder="Email address" autocomplete="email"></div>
            <div class="mb-4"><label class="visually-hidden" for="nPass">Password</label><input id="nPass" type="password" class="form-control wdw-neo-in" placeholder="Password" autocomplete="new-password"></div>
            <button class="btn wdw-neo-btn w-100 text-primary" type="submit" id="neoSubmit"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></svg><span>Create account</span></button>
          </form>
        </div>
        <div class="col-md-6">
          <div class="wdw-neo-panel p-4">
            <p class="fw-semibold text-body-emphasis mb-3">Or continue with</p>
            <div class="d-grid gap-3 mb-4">
              <button class="btn wdw-neo-btn" type="button"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.5 12h-8M20 12a8.5 8.5 0 1 1-2.6-6.1"/></svg>Google</button>
              <button class="btn wdw-neo-btn" type="button"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 .5a11.5 11.5 0 0 0-3.6 22.4c.6.1.8-.3.8-.6v-2c-3.2.7-3.9-1.5-3.9-1.5-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.8 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2a11 11 0 0 1 5.8 0c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6A11.5 11.5 0 0 0 12 .5z"/></svg>GitHub</button>
            </div>
            <p class="fw-semibold text-body-emphasis mb-3">Quick tools</p>
            <div class="d-flex gap-3 mb-4">
              <div class="text-center flex-fill"><button class="btn wdw-neo-btn wdw-neo-sq mb-1" type="button" aria-label="Back"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M19 12H5M11 6l-6 6 6 6"/></svg></button><div class="small wdw-muted" aria-hidden="true">Back</div></div>
              <div class="text-center flex-fill"><button class="btn wdw-neo-btn wdw-neo-sq mb-1" type="button" aria-label="Bookmark" aria-pressed="false" data-toggle-press><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 3h12v18l-6-4-6 4z"/></svg></button><div class="small wdw-muted" aria-hidden="true">Save</div></div>
              <div class="text-center flex-fill"><button class="btn wdw-neo-btn wdw-neo-sq mb-1" type="button" aria-label="Settings"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="3"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9L7 7M17 17l2.1 2.1M4.9 19.1L7 17M17 7l2.1-2.1"/></svg></button><div class="small wdw-muted" aria-hidden="true">Settings</div></div>
            </div>
            <form class="d-flex gap-3" role="search" onsubmit="return false">
              <label class="visually-hidden" for="nSearch">Search</label>
              <input id="nSearch" type="search" class="form-control wdw-neo-in" placeholder="Search…">
              <button class="btn wdw-neo-btn wdw-neo-sq flex-shrink-0" type="submit" aria-label="Search"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/></svg></button>
            </form>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>

Built on Bootstrap 5.3.8 with plain JavaScript — no jQuery. Supports light and dark mode via data-bs-theme.

Free to use in personal and commercial projects under the MIT license.