Компоненты → 3.2

Форм-контролы

Версия:··

Элементы ввода данных: текстовые поля, выпадающие списки, флажки, переключатели. Применяются в формах записи, фильтрах и настройках.

Текстовое поле

Базовый элемент ввода текста. Класс .bb-input. Высота 50px — как на сайте oclinica.ru.

Укажите имя как в паспорте

Default

border: 1px solid #ccc · border-radius: 4px · height: 50px

Укажите имя как в паспорте

Focus

border #7ecfca + box-shadow rgba(126,207,202,0.2)

Минимум 3 символа

Error

border #dc2626 + .bb-error + сообщение об ошибке

Email нельзя изменить

Disabled

opacity: 0.5 + cursor: not-allowed

Тип password

Многострочный текст

Поле для длинного ввода. Класс .bb-textarea. border: 1px solid #ccc · border-radius: 4px.

Default

min-height: 100px · resize: vertical

Focus

border #7ecfca + box-shadow

Выпадающий список

Выбор из предопределённых вариантов. Класс .bb-select. Высота 50px — как в entityform на сайте.

Default

height: 50px · кастомная стрелка SVG

Выбрано значение

Нативное поведение браузера

Флажок

Независимый выбор одного или нескольких вариантов. Класс .bb-checkbox.

Одиночный флажок

Согласие с условиями, подтверждение

Группа флажков

Выбор нескольких специализаций

Переключатель варианта

Выбор одного из взаимоисключающих вариантов. Класс .bb-radio.

Тип приёма

Один выбранный из нескольких

С отключённым вариантом

disabled скрывает недоступный выбор

Тумблер

Булевый переключатель «включено / выключено». Компонент Toggle.

Интерактивные примеры

Получать уведомления
Email-рассылка
Push-уведомления
Недоступная настройка

Состояния

Выкл (default)
Вкл (defaultChecked)
Disabled
Disabled + вкл

Контекст применения

Как форм-контролы выглядят на сайте oclinica.ru — в реальных entityform-блоках.

КонтролCSS классГде на сайтеCSS-блок на сайте
Input (text).bb-inputФорма записи ЛОР, форма хирургии, «Узнайте стоимость»#block-entityform-block-lor-form input[type=text]
Select.bb-selectВыбор врача в форме записи.field-name-field-lor-vrach .form-control.form-select
Checkbox.bb-checkboxСогласие на обработку данных в entityform.form-type-checkbox.checkbox label
Textarea.bb-textareaКомментарии (в ряде форм)Без специального CSS на сайте (Bootstrap)
Toggle.bb-toggle-trackНе используется на сайте (UI-компонент брендбука)
Макет — entityform «Узнайте стоимость операции» (oclinica.ru/lor)

Узнайте стоимость операции

Примеры кода

Скопируйте HTML или JSX для использования в проекте.

HTML — Input
<!-- HTML -->
<label class="bb-label">Имя пациента <span style="color:#dc2626">*</span></label>
<input class="bb-input" type="text" placeholder="Иван Иванов" />
<p class="bb-hint">Укажите имя как в паспорте</p>

<!-- Error-состояние -->
<input class="bb-input bb-error" type="text" value="ива" />
<p style="color:#dc2626;font-size:12px">Минимум 3 символа</p>

<!-- Password -->
<input class="bb-input" type="password" placeholder="Введите пароль" />
HTML — Textarea
<label class="bb-label">Комментарий к записи</label>
<textarea class="bb-textarea" rows="4" placeholder="Опишите симптомы..."></textarea>
HTML — Select
<label class="bb-label">Специализация</label>
<select class="bb-select">
  <option value="">Выберите специализацию</option>
  <option value="lor">ЛОР — ухо, горло, нос</option>
  <option value="aud">Аудиология</option>
</select>
HTML — Checkbox
<!-- Одиночный -->
<label style="display:flex;align-items:center;gap:8px">
  <input class="bb-checkbox" type="checkbox" />
  <span>Согласен с условиями</span>
</label>

<!-- Группа -->
<div style="display:flex;flex-direction:column;gap:10px">
  <label style="display:flex;align-items:center;gap:8px">
    <input class="bb-checkbox" type="checkbox" checked /> ЛОР
  </label>
  <label style="display:flex;align-items:center;gap:8px">
    <input class="bb-checkbox" type="checkbox" /> Аудиология
  </label>
</div>
HTML — Radio
<div style="display:flex;flex-direction:column;gap:10px" role="radiogroup">
  <label style="display:flex;align-items:center;gap:8px">
    <input class="bb-radio" type="radio" name="visit" value="first" checked />
    Первичный приём
  </label>
  <label style="display:flex;align-items:center;gap:8px">
    <input class="bb-radio" type="radio" name="visit" value="repeat" />
    Повторный приём
  </label>
  <label style="display:flex;align-items:center;gap:8px">
    <input class="bb-radio" type="radio" name="visit" value="online" />
    Онлайн-консультация
  </label>
</div>
JSX (React) — Toggle
import { Toggle } from "@/components/ui/Toggle";

// Базовый тумблер
<Toggle />

// С меткой
<Toggle label="Получать уведомления" />

// По умолчанию включён
<Toggle defaultChecked label="Email-рассылка" />

// Заблокирован
<Toggle disabled label="Настройка недоступна" />
CSS с сайта (perm.oclinica.ru)
/* ── Реальный CSS с perm.oclinica.ru ─────────────────────────── */

/* Базовые стили (Bootstrap override) */
input[type=text],
input[type=email] {
  padding: 0;
  height: 30px;
  border: 1px solid #ccc;
}

/* Entityform-блоки: форма записи на приём / узнать стоимость */
#block-entityform-block-lor-form input[type=text],
#block-entityform-block-lor-form-2 input[type=text],
#block-entityform-block-surgery-form input[type=text] {
  height: 50px;
  padding: 10px;
}

/* Select в entityform */
.field-name-field-lor-vrach .form-control.form-select {
  height: 50px;
  padding: 10px 16px;
  font-size: .9em;
  font-weight: bold;
  font-family: 'Fira Sans';
  color: #949290;
}

/* Webform (отдельный вид форм) — скруглений нет */
.webform-client-form input[type=text].form-text {
  border-radius: 0;
}
LLMLLM-спецификация

Элементы ввода

ЭлементCSS классТегВысотаОписание
Input.bb-input<input>50pxТекстовое поле, email, password · как на сайте
Textarea.bb-textarea<textarea>≥100pxМногострочный ввод, resize:vertical
Select.bb-select<select>50pxВыбор из списка, кастомная стрелка · как на сайте
Checkbox.bb-checkbox<input type=checkbox>16×16pxНезависимый выбор
Radio.bb-radio<input type=radio>16×16pxВыбор одного из группы
Toggle.bb-toggle-trackReact-компонент24pxБулев переключатель

Состояния полей (Input / Textarea / Select)

СостояниеСтиль
defaultborder: 1px solid #ccc · border-radius: 4px
focusborder: #7ecfca + box-shadow: 0 0 0 3px rgba(126,207,202,0.2)
errorborder: #dc2626 (+ класс .bb-error)
disabledopacity: 0.5 + cursor: not-allowed + bg: #f8f9fa

Параметры Toggle

ПараметрТипПо умолч.Описание
defaultCheckedbooleanfalseНачальное состояние
disabledbooleanfalseБлокирует взаимодействие
labelstringТекстовая метка справа от тумблера
onChange(checked: boolean) => voidКолбэк при изменении

Правила применения

Метка (label) всегда над полем, font-weight: 500
Обязательные поля помечены * красным (#dc2626)
Hint-текст серым под полем (font-size: 12px)
Ошибка — красный текст вместо hint
Checkbox-группы — вертикальный список с gap: 10px
Toggle — для булевых настроек включить/выключить
Не использовать placeholder вместо label
Не скрывать признак обязательности поля