import Badge from '../Badge'
import Button from '../Button'
import Div from '../Div'
import Icon from '../Icon'
import Row from '../Row'
import { faThumbsUp, faEnvelope } from '@fortawesome/free-solid-svg-icons'
import { Sandbox } from '@startupjs/docs'
import './index.mdx.styl'

# Badge (Бейдж)

Бейджи - это небольшие дескрипторы состояния для элементов пользовательского интерфейса.

```js
import { Badge } from '@startupjs/ui'
```

## Простой пример

```jsx example
return (
  <Badge label='10'>
    <Icon icon={faEnvelope} size={40} />
  </Badge>
)
```

## Sizes

Бейджи бывают трех разных размеров: `s`, `m` и `l`. Размер `m` является наиболее часто используемым и определен по умолчанию. Остальные размеры следует использовать с осторожностью, чтобы не нарушить иерархию важности на странице.

```jsx example
return (
  <Row>
    <Badge label='16' size='s'>
      <Icon icon={faEnvelope} size={40} />
    </Badge>
    <Badge style={{ marginLeft: 16 }} label='20'>
      <Icon icon={faEnvelope} size={40} />
    </Badge>
    <Badge style={{ marginLeft: 16 }} label='24' size='l'>
      <Icon icon={faEnvelope} size={40} />
    </Badge>
  </Row>
)
```

## Variants

Бейджи бывают двух видов: `default` и `dot`. `default` является наиболее часто используемым и определен по умолчанию. `dot` превращает бейдж в маленькую точку, это можно использовать как уведомление о том, что что-то изменилось. При значении свойства `variant='dot'` свойство `size` будет игнорироваться.

```jsx example
return (
  <Row>
    <Badge label='10'>
      <Icon icon={faEnvelope} size={40}/>
    </Badge>
    <Badge style={{ marginLeft: 16 }} variant='dot'>
      <Icon icon={faEnvelope} size={40}/>
    </Badge>
  </Row>
)
```

## Colors

По умолчанию цвет является `primary`. Его можно изменить, передав имя цвета из списка цветов конфигурации в свойство `color`. Возможные значения свойства можно найти в песочнице внизу страницы.

```jsx example
return (
  <Badge color='error' label='10'>
    <Icon icon={faEnvelope} size={40}/>
  </Badge>
)
```

## Positions

Бейдж может находится в двух положениях: `top` и `bottom`. **Значение по умолчанию:** `top`.

```jsx example
return (
  <Row>
    <Badge label='10'>
      <Icon icon={faEnvelope} size={40}/>
    </Badge>
    <Badge style={{ marginLeft: 16 }} position='bottom' label='10'>
      <Icon icon={faEnvelope} size={40}/>
    </Badge>
  </Row>
)
```

## Icons

Иконка может быть добавлена с помощью свойства `icon`.

```jsx example
return (
  <Badge icon={faThumbsUp} label='10' color='success'>
    <Icon icon={faEnvelope} size={40}/>
  </Badge>
)
```

## Счетчик

Если свойство `label` содержит числовое значение, то можно использовать свойство `max` чтобы ограничить максимальное отображаемое число в лейбле.

```jsx example
return (
  <Badge label={1000} max={100}>
    <Icon icon={faEnvelope} size={40}/>
  </Badge>
)
```

## Sandbox

<Sandbox
  Component={Badge}
  extraParams={{
    icon: {
      showIconSelect: true
    }
  }}
  props={{ children: <Div styleName='child' /> }}
  noScroll
/>
