Snippets Effects

Bootstrap 5 Sticky Notes Board with Hover Effect

A board of tilted sticky notes in soft tinted colours that straighten and lift on hover, with a button to add more.

Bootstrap 5 No jQuery Aug 2020 2.3K views

<section class="wdw-stage">
  <div class="container" style="max-width:920px">
    <div class="d-flex flex-wrap justify-content-between align-items-end gap-3 mb-4">
      <div>
        <span class="wdw-eyebrow">Board</span>
        <h1 class="wdw-heading h2 mt-1 mb-0">Sticky notes</h1>
      </div>
      <button type="button" class="btn btn-primary rounded-pill" id="addNote">+ Add note</button>
    </div>
    <h2 class="visually-hidden">Your notes</h2>
    <div class="row g-4" id="noteBoard">
      <div class="col-12 col-sm-6 col-lg-4">
        <article class="note note--accent" style="--tilt:-1deg">
          <div class="d-flex justify-content-between align-items-start gap-2 mb-2">
            <h3 class="h6 fw-bold mb-0 note-title" contenteditable="true" spellcheck="false" role="textbox" aria-label="Note title">Ship v2.0</h3>
            <span class="badge rounded-pill note-tag">Work</span>
          </div>
          <p class="note-body mb-0" contenteditable="true" spellcheck="false" role="textbox" aria-multiline="true" aria-label="Note text">Final QA on the checkout flow before Friday's release.</p>
          <footer class="note-foot d-flex justify-content-between align-items-center small">
            <span>Oct 30</span>
            <button type="button" class="note-del" aria-label="Delete note Ship v2.0">×</button>
          </footer>
        </article>
      </div>
      <div class="col-12 col-sm-6 col-lg-4">
        <article class="note note--plain" style="--tilt:1deg">
          <div class="d-flex justify-content-between align-items-start gap-2 mb-2">
            <h3 class="h6 fw-bold mb-0 note-title" contenteditable="true" spellcheck="false" role="textbox" aria-label="Note title">Design review</h3>
            <span class="badge rounded-pill note-tag">Meeting</span>
          </div>
          <p class="note-body mb-0" contenteditable="true" spellcheck="false" role="textbox" aria-multiline="true" aria-label="Note text">Walk the team through the new onboarding screens.</p>
          <footer class="note-foot d-flex justify-content-between align-items-center small">
            <span>Nov 2</span>
            <button type="button" class="note-del" aria-label="Delete note Design review">×</button>
          </footer>
        </article>
      </div>
      <div class="col-12 col-sm-6 col-lg-4">
        <article class="note note--plain" style="--tilt:-1deg">
          <div class="d-flex justify-content-between align-items-start gap-2 mb-2">
            <h3 class="h6 fw-bold mb-0 note-title" contenteditable="true" spellcheck="false" role="textbox" aria-label="Note title">Fix login bug</h3>
            <span class="badge rounded-pill note-tag">Urgent</span>
          </div>
          <p class="note-body mb-0" contenteditable="true" spellcheck="false" role="textbox" aria-multiline="true" aria-label="Note text">Safari users get logged out after 10 minutes.</p>
          <footer class="note-foot d-flex justify-content-between align-items-center small">
            <span>Oct 31</span>
            <button type="button" class="note-del" aria-label="Delete note Fix login bug">×</button>
          </footer>
        </article>
      </div>
      <div class="col-12 col-sm-6 col-lg-4">
        <article class="note note--accent" style="--tilt:1deg">
          <div class="d-flex justify-content-between align-items-start gap-2 mb-2">
            <h3 class="h6 fw-bold mb-0 note-title" contenteditable="true" spellcheck="false" role="textbox" aria-label="Note title">Reading list</h3>
            <span class="badge rounded-pill note-tag">Personal</span>
          </div>
          <p class="note-body mb-0" contenteditable="true" spellcheck="false" role="textbox" aria-multiline="true" aria-label="Note text">Finish the typography book and share notes.</p>
          <footer class="note-foot d-flex justify-content-between align-items-center small">
            <span>Nov 8</span>
            <button type="button" class="note-del" aria-label="Delete note Reading list">×</button>
          </footer>
        </article>
      </div>
      <div class="col-12 col-sm-6 col-lg-4">
        <article class="note note--plain" style="--tilt:1deg">
          <div class="d-flex justify-content-between align-items-start gap-2 mb-2">
            <h3 class="h6 fw-bold mb-0 note-title" contenteditable="true" spellcheck="false" role="textbox" aria-label="Note title">Groceries</h3>
            <span class="badge rounded-pill note-tag">Home</span>
          </div>
          <p class="note-body mb-0" contenteditable="true" spellcheck="false" role="textbox" aria-multiline="true" aria-label="Note text">Oat milk, coffee beans, lemons and fresh basil.</p>
          <footer class="note-foot d-flex justify-content-between align-items-center small">
            <span>Today</span>
            <button type="button" class="note-del" aria-label="Delete note Groceries">×</button>
          </footer>
        </article>
      </div>
      <div class="col-12 col-sm-6 col-lg-4">
        <article class="note note--plain" style="--tilt:-1deg">
          <div class="d-flex justify-content-between align-items-start gap-2 mb-2">
            <h3 class="h6 fw-bold mb-0 note-title" contenteditable="true" spellcheck="false" role="textbox" aria-label="Note title">Team lunch</h3>
            <span class="badge rounded-pill note-tag">Social</span>
          </div>
          <p class="note-body mb-0" contenteditable="true" spellcheck="false" role="textbox" aria-multiline="true" aria-label="Note text">Book a table for eight on Thursday at 12:30.</p>
          <footer class="note-foot d-flex justify-content-between align-items-center small">
            <span>Nov 5</span>
            <button type="button" class="note-del" aria-label="Delete note Team lunch">×</button>
          </footer>
        </article>
      </div>
    </div>
  </div>
</section>

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