bukatchuk ui

Элементы

Поле с приставкой

Поле с приставкой, суффиксом и кнопкой в одной рамке, например «https://» + адрес + «Копировать».

input-group с версии 0.1.0 со скриптом

Примеры

Ссылка на встречу с кнопкой копирования
<div class="field">
  <label class="field__label" for="ig-link">Ссылка для участников</label>
  <div class="input-group">
    <span class="input-group__addon" aria-hidden="true">https://</span>
    <input class="input-group__input" type="text" id="ig-link" name="link" value="meet.bukatchuk.ru/standup-4821" readonly>
    <button class="input-group__btn" type="button" data-ui-copy="#ig-link">Копировать</button>
  </div>
</div>
Приставка и суффикс

Латиница, цифры и дефис.

<div class="field">
  <label class="field__label" for="ig-room">Адрес комнаты</label>
  <div class="input-group">
    <span class="input-group__addon" aria-hidden="true">meet.bukatchuk.ru/</span>
    <input class="input-group__input" type="text" id="ig-room" name="room" value="design" autocomplete="off" aria-describedby="ig-room-h">
  </div>
  <p class="field__hint" id="ig-room-h">Латиница, цифры и дефис.</p>
</div>
<div class="field">
  <label class="field__label" for="ig-limit">Лимит записи</label>
  <div class="input-group">
    <input class="input-group__input" type="text" id="ig-limit" name="limit" inputmode="numeric" value="120">
    <span class="input-group__addon" aria-hidden="true">минут</span>
  </div>
</div>

Установка

bukatchuk-ui add input-group

Вместе с компонентом установятся: tokens, fonts, base, core, field.

Файлы

ФайлНазначение
input-group.cssстили
input-group.jsскрипт
example.htmlобразец разметки, в проект не копируется
input-group.jinja.htmlвставка для Jinja

Клавиши

КлавишаДействие
Tabперейти от поля к кнопке
Enter / Spaceнажать кнопку

Макрос для Jinja

{#- Поле с приставкой/суффиксом/кнопкой в одной рамке. copy=True делает поле только для чтения
    и добавляет кнопку «Копировать» (нужен скрипт input-group); button — подпись своей кнопки submit. -#}
{% macro input_group(name, label, value='', prefix=None, suffix=None, copy=False, button=None, type='text', hint=None, readonly=False, id=None) -%}
{%- set iid = id or ('ig-' ~ name) -%}
<div class="field">
  <label class="field__label" for="{{ iid }}">{{ label }}</label>
  <div class="input-group">
    {%- if prefix %}<span class="input-group__addon" aria-hidden="true">{{ prefix }}</span>{% endif %}
    <input class="input-group__input" type="{{ type }}" id="{{ iid }}" name="{{ name }}" value="{{ value }}"{% if copy or readonly %} readonly{% endif %}{% if hint %} aria-describedby="{{ iid }}-h"{% endif %}>
    {%- if suffix %}<span class="input-group__addon" aria-hidden="true">{{ suffix }}</span>{% endif %}
    {%- if copy %}
    <button class="input-group__btn" type="button" data-ui-copy="#{{ iid }}">Копировать</button>
    {%- elif button %}
    <button class="input-group__btn" type="submit">{{ button }}</button>
    {%- endif %}
  </div>
  {%- if hint %}
  <p class="field__hint" id="{{ iid }}-h">{{ hint }}</p>
  {%- endif %}
</div>
{%- endmacro %}