# ZeenSmallBadge

Компонент ZeenSmallBadge для текста

# Примеры:

Размеры:

smallBadge

small-badge-radius

small-badge-padding-horizontal

small-badge-padding-vertical

small-badge-size

По умолчанию наследуется от main-smallest-text

Цвета:

small-badge-background

По умолчанию наследуется от main-color

small-badge-color

По умолчанию наследуется от main-light

default

Супер важная компания, которых мало на этой бренной земле

:maxLenght="21"
:radius="10"
:style="{
'--small-badge-color': '#076AA8',
'--small-badge-background':'#e0e0a0',
'--small-badge-size':'14px',
}"

Супер важная компания

# props

Название Тип Обязательный По умолчанию Описание
maxLenght Number - 57 Ограничение количества вводимых в text символов
text String - - Если используется maxLenght то текст вводится сюда
radius Number - - Радиус компонента

# Source Code - исходный код компонента

<template>
  <div
    class="small-badge"
    :style="{
      '--small-badge-radius': radius ? radius + 'px' : undefined,
    }"
  >
    <ZeenText class="small-badge__text">
      <slot>{{ textLength }}</slot>
    </ZeenText>
  </div>
</template>

<script>
import ZeenText from '../ZeenText/ZeenText'

export default {
  name: 'ZeenSmallBadge',
  components: {
    ZeenText,
  },
  props: {
    text: {
      type: String,
    },
    maxLenght: {
      type: Number,
      default: 57,
    },
    radius: {
      type: Number,
    },
  },
  computed: {
    styles() {
      const styles = {}
      if (this.background) {
        styles['--small-badge-background'] = this.background
      }
      if (this.radius) {
        styles['--small-badge-radius'] = this.radius + 'px'
      }

      return styles
    },
    textLength() {
      if (this.text?.length > this.maxLenght) {
        return this.text.slice(0, this.maxLenght)
      }
      return this.text
    },
  },
}
</script>

<style>
:root {
  /* Размеры */
  --small-badge-radius: 4px;
  --small-badge-padding-horizontal: 12px;
  --small-badge-padding-vertical: 6px;
  --small-badge-size: var(--main-smallest-text);

  /* Цвета */
  --small-badge-background: var(--main-color);
  --small-badge-color: var(--main-light);
}
</style>

<style lang="scss" scoped>
.small-badge {
  --text-base-size: var(--small-badge-size);
  --text-base-color: var(--small-badge-color);

  display: inline-flex;
  padding: var(--small-badge-padding-vertical) var(--small-badge-padding-horizontal);
  background: var(--small-badge-background);
  border-radius: var(--small-badge-radius);

  &__text {
    margin: 0;
    padding: 0;
    width: 100%;
    word-wrap: break-word;
  }
}
</style>