Шаг 1. Стилизация компонента счётчика

Продолжаем работать с компонентом DemoCounter.vue. На этом этапе нужно оформить его стилями.

Начнём с определения класса counter, который будет присвоен блоку-контейнеру.

<template>
    <div class="counter">
        <button> - </button>

        <span> Current value: 0 </span>

        <button> + </button>
    </div>
</template>

Далее опишем CSS-правила для этого класса и поместим их в блок <style> компонента.

<style scoped>
.counter {
  display: flex;
  align-items: center;
}
</style>

Наконец, добавим стили для кнопок внутри блока .counter. Воспользуемся синтаксисом SCSS, указав это в атрибуте lang тега <style>.

<style lang="scss" scoped>
<style lang="scss" scoped>
.counter {
  display: flex;
  align-items: center;

  button {
    margin: 0 10px;
    font-size: 1.5rem;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    border: none;
    background: #dd0000;
    color: white;
    cursor: pointer;

    &:hover {
      background: #ff0000;
    }
  }
}
</style>

Шаг 2. Вид компонента счётчика со стилями

На данный момент компонент счётчика должен иметь следующий вид:

<template>
    <div class="counter">
        <button @click="decrement"> - </button>

        <span> Current value: {{ count }} </span>

        <button @click="increment"> + </button>
    </div>
</template>

<script setup>
  import { ref } from 'vue'

  const count = ref(0)

  const decrement = () => {
    count.value = count.value - 1
  }

  const increment = () => {
    count.value = count.value + 1
  }
</script>

<style lang="scss" scoped>
.counter {
  display: flex;
  align-items: center;

  button {
    margin: 0 10px;
    font-size: 1.5rem;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    border: none;
    background: #dd0000;
    color: white;
    cursor: pointer;

    &:hover {
      background: #ff0000;
    }
  }
}
</style>

Запустите проект командой npm run dev в директории demo и проверьте результат.