# Базовая "коробка"
Все управляющие элементы в системе должны использовать общую, или хотя-бы схожую, структуру для формирования единой механики построения и задания размеров. В таком случае стилизация, например select'а не будет отличатся от стилизации кнопки, или какого-либо более сложного элемента, потому что база у них будет идентичная.
И эта база - набор миксин и placeholder'ов: control-box
.
# API
# Mixns
control-box-type-line
- Установка размера шрифта, и интерлиньяжа для элемента.control-box-definition
- Определение всех переменных в рамках текущего блока.control-box-base
- Базовая "чистящая" стилизация корневого элемента коробки.control-box-border
- Простой микс, обьявляющий стандартный бордюр.control-box
- Полная стиизация блока с элементами. Де-факто - внутри набор наследований, и пользоваться миксом можно и даже нужно - лишнего кода не прибудет.
# Placeholders
%control-box-definition
- Идентичен соответствующему миксину.%control-box-base
- Идентичен соответствующему миксину.%control-box-border
- Идентичен соответствующему миксину.%control-box-wrapper
- Контейнер(блок) должен наследовать этот placeholder.%control-box-inner
- Конкретный управляющий элемент(input, например) должен наследовать этот placeholder.
# Переменные
--control-box-font-size
- Размер шрифта.--control-box-line-height
- Высота линии.--control-box-space-vertical
- Размер пространства от контента внутри блока до края блока по вертикали.--control-box-space-horizontal
- Размер пространства от контента внутри блока до края блока по горизотали.--control-box-border-width
- Ширина бордюра элемента.--control-box-padding-vertical
- Вычисленный вертикальный padding на основе--control-box-space-vertical
, учитывающий--control-box-border-width
.--control-box-padding-horizontal
- Вычисленный горизонтальный padding на основе--control-box-space-vertical
, учитывающий--control-box-border-width
.--control-box-height
- Вычисленная итоговая высота элемента. важно знать, например для кроссбраузерной стилизации встроенных управляющих элементов, таких как select.
# Примеры
Для создания блока из примеров достаточно написать следущее:
.d-control-box-example
+control-box()
И появится простой, легкий для изменений блок.