<div class="row">
  <div class="column medium-12 text-center">
      <h3>😔 user unfriendly</h3>
      <input type="text" value="1" min="1" max="25" inputmode="numeric" id="unfriedly"/>
  </div>
</div>



<div class="row friendly">
   <div class="column medium-12 text-center">
     <h3>🙂 be more friendly</h3>
  </div>

  <div class="column medium-12 text-center">
    <label for='mokka'>Mokka</label>
    <div class="stepper">
      <button class="sub">
        <i class="fa fa-minus" aria-hidden="true"></i>
        <span class="sr-only">minus</span>
      </button>
      <input type="text" value="1" min="1" max="25" inputmode="numeric" id="mokka"/>
      <button class="add">
        <i class="fa fa-plus" aria-hidden="true"></i>
        <span class="sr-only">minus</span>
      </button>
    </div>
    <button class="add-to-basket">
      <i class="fa fa-shopping-basket" aria-hidden="true"></i>
      <span class="sr-only">add to basket</span>
    </button>
  </div>
  <div class="column medium-12 text-center">
    <label for='lemon'>Lemon</label>
    <div class="stepper">
      <button class="sub">
        <i class="fa fa-minus" aria-hidden="true"></i>
        <span class="sr-only">minus</span>
      </button>
      <input type="text" value="1" min="1" max="25" inputmode="numeric" id="lemon" />
      <button class="add">
        <i class="fa fa-plus" aria-hidden="true"></i>
        <span class="sr-only">minus</span>
      </button>
    </div>
    <button class="add-to-basket">
      <i class="fa fa-shopping-basket" aria-hidden="true"></i>
      <span class="sr-only">add to basket</span>
    </button>
  </div>
  <div class="column medium-12 text-center">
    <label for='strawberry'>Strawberry</label>
    <div class="stepper">
      <button class="sub">
        <i class="fa fa-minus" aria-hidden="true"></i>
        <span class="sr-only">minus</span>
      </button>
      <input type="text" value="1" min="1" max="25" inputmode="numeric" id="strawberry" />
      <button class="add">
        <i class="fa fa-plus" aria-hidden="true"></i>
        <span class="sr-only">minus</span>
      </button>
    </div>
    <button class="add-to-basket">
      <i class="fa fa-shopping-basket" aria-hidden="true"></i>
      <span class="sr-only">add to basket</span>
    </button>
  </div>
</div>
// GENERAL
body {
  margin-top: 2rem;
  font-family: Bahnschrift, "DIN Alternate", "Franklin Gothic Medium",
    "Nimbus Sans Narrow", sans-serif-condensed, sans-serif;
}

.friendly {
  margin-block: 3rem;
}

// Counter STYLES
.stepper {
  display: inline-flex;
  margin-block: 0.5rem;
  &:hover {
    button {
      background: #777;
    }
    input {
      border-color: #777;
    }
  }
  //Buttons Style
  button {
    flex-shrink: 0;
    outline: none;
    background: dodgerblue;
    color: #fff;
    width: 40px;
    height: 40px;
    font-size: 11px;
    transition: background 0.4s;
    &:first-of-type {
      border-radius: 5px 0 0 5px;
    }
    &:last-of-type {
      border-radius: 0 5px 5px 0;
    }
  }
  //Display Style
  input {
    margin: 0;
    width: 100%;
    max-width: 160px;
    height: 40px;
    line-height: 40px;
    text-align: center;
    border: 2px solid dodgerblue;
    border-left: 0;
    border-right: 0;
    color: #666;
    font-weight: bold;
    font-size: 1.125rem;
    transition: border 0.4s;
  }
}

.column {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 1rem;
  justify-content: center;
  label {
    font-size: 1rem;
    flex-shrink: 0;
    display: block;
    min-width: 120px;
    flex-shrink: 0;
    text-align: right;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

input {
  text-align: center;
}

@media (max-width: 500px) {
  label {
    width: 100%;
    text-align: left !important;
  }
  .column {
    justify-content: flex-start;
  }
  .add-to-basket {
    //margin-left: auto;
    font-size: 2rem;
  }
}
View Compiled
var steppers = document.querySelectorAll(".stepper");

steppers.forEach(function (stepper) {
  var add = stepper.querySelector(".add");
  var sub = stepper.querySelector(".sub");
  var display = stepper.querySelector("input");
  var oldValue = display.value; // Added line: store the old value initially

  // Plus 1
  add.addEventListener("click", function () {
    var value = parseInt(display.value);
    oldValue = display.value = value + 1; // Modified line: keep the new value
  });

  // Minus 1
  sub.addEventListener("click", function () {
    var value = parseInt(display.value);
    if (value > 1) {
      oldValue = display.value = value - 1; // Modified line: keep the new value
    }
  });

  // Added code: clear the input on focus
  display.addEventListener("focus", function () {
    display.value = "";
  });

  // Added code: if the input is still empty when it loses focus, restore the old value
  display.addEventListener("blur", function () {
    if (display.value === "") {
      display.value = oldValue;
    } else {
      oldValue = display.value; // keep the newly inserted value
    }
  });
});


var addToBasketButtons = document.querySelectorAll('.add-to-basket');

addToBasketButtons.forEach(function(button) {
  button.addEventListener('click', function() {
    var stepperValue = this.previousElementSibling.querySelector('input').value;
    alert(`${stepperValue} item(s) added to basket`);
  });
});

External CSS

  1. https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css
  2. https://cdn.jsdelivr.net/foundation/6.1.1/foundation.min.css

External JavaScript

This Pen doesn't use any external JavaScript resources.