Это мини-фреймворк с набором CSS3 классов и сценария на нативном javaScript для создания простых,
адаптивных веб-интерфейсов. Он подойдёт для тех, кто не хочет тащить
в проект монстров
типа Bootstrap с их зависимостями. Если ты любишь адаптивную, выразительную вёрстку без верениц
классов и работающие из коробки
веб-компоненты типа табов или многоуровневого меню без
поиска и подключения дополнительных плагинов, TUI станет приемлемой отправной точкой. Расширяй
TUI если хочешь больше возможностей.
https://github.com/kroloburet/TUI.git
TUI.css
и TUI.js
как в примере ниже.
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <!-- TUI CSS --> <link href="TUI.css" rel="stylesheet"> <!-- TUI JS --> <script src="TUI.js" defer></script> <title>Document</title> </head> <body> <button type="button" onclick="TUI.Popup('myPop')">Click My</button> <div id="myPop" class="TUI_Popup"> <h3>Hello, World!</h3> </div> </body> </html>
TUI зависит только от Font Awesome. Как же без иконок в наше время ;)
Font Awesome импортирован в файле TUI.css
.
TUI.css
содержит классы для стилистического оформления и облегчения адаптивной
вёрстки веб-интерфейса (открой эту страницу в мобильном/планшете или измени ширину окна браузера, чтобы видеть как
TUI адаптирует
содержимое). Обрати внимание, что в начале файла стилей TUI заданы переменные, которые
определяют в интерфейсе пользователя цветовую схему, шрифт и прочее. Ты можешь переопределить их значения чтобы,
например, легко изменить цветовую схему элементов форм. Для этого скопируй секцию :root{...}
с переменными которые ты хочешь переопределить, вставь в начало основного CSS-файла подключив его в документ после
TUI.css
и задай свои значения переменным.
TUI.js
содержит модуль сценариев для работы с веб-компонентами такими как
всплывающие окна, подсказки, табы и другими. Подробнее о компонентах написано ниже в этом руководстве.
Сетка может иметь неограниченное количество строк TUI_row
, каждая из которых может содержать до
12-ти колонок TUI_col
. 12 колонок = 100% от ширины родительского блока, 3 колонки = 25% и так
далее. При ширине устройства >= 600px все колонки сетки трансформируются в строки.
<div class="TUI_row"> <div class="TUI_col-6"> Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. </div> <div class="TUI_col-6"> Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. </div> </div> <div class="TUI_row"> <div class="TUI_col-12"> Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. </div> </div>
Если хочешь скрыть некоторые элементы страницы при выводе её на печать — присвой таким элементам
class="TUI_noprint"
.
Чтобы пользователь видел, что ссылка ведёт на другой ресурс или откроется в новом окне или вкладке, в TUI
предусмотрены классы TUI_external
и TUI_blank
. Пример:
class="TUI_external", class="TUI_blank" или
target="_blank"
Присвой class="TUI_warn"
для элемента с текстом, чтобы он стал таким как этот. Это
подойдёт, к примеру, для аннотации к статье или другой важной информации, которая должна быть ненавязчиво подана
читателю.
У этого текста class="TUI_red"
поэтому он такой.
У этого текста class="TUI_yellow"
поэтому он такой.
У этого текста class="TUI_green"
поэтому он такой.
У этого текста class="TUI_blue"
поэтому он такой.
У этого текста class="TUI_gray"
поэтому он такой.
У этого блока class="TUI_align-l"
поэтому текст и другие блоки в нём будут
выровнены по левой стороне
У этого блока class="TUI_align-r"
поэтому текст и другие блоки в нём будут
выровнены по правой стороне
У этого блока class="TUI_align-c"
поэтому текст и другие блоки в нём будут
выровнены по центру
class="TUI_full"
class="TUI_notice-error"
class="TUI_notice-warning"
class="TUI_notice-success"
class="TUI_notice-info"
class="TUI_notice-process"
class="TUI_notice-error mini"
class="TUI_notice-warning mini"
class="TUI_notice-success mini"
class="TUI_notice-info mini"
class="TUI_notice-process mini"
<p class="TUI_notice-error">class="TUI_notice-error"</p> <p class="TUI_notice-warning">class="TUI_notice-warning"</p> <p class="TUI_notice-success">class="TUI_notice-success"</p> <p class="TUI_notice-info">class="TUI_notice-info"</p> <p class="TUI_notice-process">class="TUI_notice-process"</p> <p class="TUI_notice-error mini">class="TUI_notice-error mini"</p> <p class="TUI_notice-warning mini">class="TUI_notice-warning mini"</p> <p class="TUI_notice-success mini">class="TUI_notice-success mini"</p> <p class="TUI_notice-info mini">class="TUI_notice-info mini"</p> <p class="TUI_notice-process mini">class="TUI_notice-process mini"</p>
Таблицы могут быть большими и сложными, а данные в них довольно объёмными. Задай
class="TUI_table"
для таблицы, чтобы при малой ширине устройства её структура оставалась
целостной, а просматривать её можно было используя горизонтальную прокрутку. — Это наиболее
оптимальное решение для таблиц в данный момент.
Планета | Диаметр | Наклон оси | Спутники |
---|---|---|---|
Вывод: Мы — космическая пыль..) | |||
Меркурий | 4879,4 | ~0,01 | 0 |
Венера | 12104 | 177,36 | 2 |
Земля | 12742 | 23,439281 | 1 |
<table class="TUI_table"> <thead> <tr> <th>Планета</th> <th>Диаметр</th> <th>Наклон оси</th> <th>Спутники</th> </tr> </thead> <tfoot> <tr> <td colspan="4">Вывод: Мы — космическая пыль..)</td> </tr> </tfoot> <tbody> <tr> <td>Меркурий</td> <td>4879,4</td> <td>~0,01</td> <td>0</td> </tr> <tr> <td>Венера</td> <td>12104</td> <td>177,36</td> <td>2</td> </tr> <tr> <td>Земля</td> <td>12742</td> <td>23,439281</td> <td>1</td> </tr> </tbody> </table>
В TUI предусмотрена стилизация элементов формы. Следуй простым правилам разметки для форм TUI.
Кроме кнопок, все элементы формы должны быть обёрнуты
в теги label
с классом TUI,
а надписи для элементов могут располагаться снаружи или внутри label
. По умолчанию, элементы
ведут себя как блочные и занимают всю доступную ширину.
Inlineэлементы формы
Чтобы элемент формы вёл себя как строчный, добавь класс inline
его родительскому
label
. Следует заметить, что в таком случае имеет значение, где будет расположена надпись
элемента.
Для группировки элементов формы в HTML предусмотрен тег fieldset
, можешь использовать его.
Но иногда нужно расположить несколько элементов в одну строку так, чтобы они эффективно использовали всю
доступную ширину и при этом были адаптивны. Просто возьми
<div class="TUI_fieldset">
и помести в него всё, что нужно. Кстати,
TUI_fieldset
удобно использовать для мини форм если добавить этот класс прямо к тегу
form
. Надпись для группы следует размещать за её пределами.
<!-------------------------- Default view --> <!-- text input --> Default input type="text" <label class="TUI_input"> <input type="text"> </label> <!-- disabled input --> Default input disabled <label class="TUI_input"> <input type="text" disabled> </label> <!-- TUI_invalid input --> Default input class="TUI_invalid" <label class="TUI_input"> <input type="text" class="TUI_invalid"> </label> <!-- search input --> Default input type="search" with button <label class="TUI_search"> <input type="search"> <button>Поиск</button> </label> <!-- select --> Default select <label class="TUI_select"> <select> <option>Option1</option> <option>Option2</option> <option>Option3</option> </select> </label> <!-- textarea --> Default textarea <label class="TUI_textarea"> <textarea></textarea> </label> <!-- number input --> Default input type="number" <label class="TUI_number"> <input type="number" min="-10" max="10" value="0"> </label> <!-- file input --> Default input type="file" multiple <label class="TUI_file"> <input type="file" multiple> </label> <!-- range input --> Default input type="range" <label class="TUI_range"> <input type="range" min="0" max="10" step="1" value="0"> </label> <div class="TUI_row"> <div class="TUI_col-6"> <!-- checkbox --> Default checkbox <label class="TUI_checkbox"> <input type="checkbox" disabled checked> <span class="custom-checkbox"></span> Disabled checked </label> <label class="TUI_checkbox"> <input type="checkbox" checked> <span class="custom-checkbox"></span> Option one </label> <label class="TUI_checkbox"> <input type="checkbox"> <span class="custom-checkbox"></span> Option two </label> </div> <div class="TUI_col-6"> <!-- radio --> Default radio <label class="TUI_radio"> <input type="radio" disabled checked> <span class="custom-radio"></span> Disabled checked </label> <label class="TUI_radio"> <input type="radio" checked> <span class="custom-radio"></span> Option one </label> <label class="TUI_radio"> <input type="radio"> <span class="custom-radio"></span> Option two </label> </div> </div> <!-- buttons --> <button type="button">button</button> <input type="button" value="input button"> <a href="#" class="TUI_btn-link">link button</a> <input type="submit" value="disabled button" disabled> <!-------------------------- Inline view --> <!-- inline input --> <!-- Надписи полей внутри <label> --> <label class="TUI_input inline"> Name <input type="text"> </label> <label class="TUI_input inline"> Email <input type="email"> </label> <!-- Надписи полей снаружи <label> --> Name <label class="TUI_input inline"> <input type="text"> </label> Email <label class="TUI_input inline"> <input type="email"> </label> <!-- Элементы без надписей --> <!-- inline range input --> <label class="TUI_range inline"> <input type="range" min="0" max="10" step="1" value="0"> </label> <!-- inline file input --> <label class="TUI_file inline"> <input type="file" multiple> </label> <!-- inline number input --> <label class="TUI_number inline"> <input type="number" min="-10" max="10" value="0"> </label> <!-- inline select --> <label class="TUI_select inline"> <select> <option selected>Default select</option> <option>Option1</option> <option>Option2</option> <option>Option3</option> </select> </label> <!-- default button --> <button type="button">Default button</button> <!-- Чекбоксы и радио --> <!-- inline checkbox --> <label class="TUI_checkbox inline"> <input type="checkbox" checked> <span class="custom-checkbox"></span> Option inline one </label> <label class="TUI_checkbox inline"> <input type="checkbox"> <span class="custom-checkbox"></span> Option inline two </label> <!-- inline radio --> <label class="TUI_radio inline"> <input type="radio" checked> <span class="custom-radio"></span> Option inline one </label> <label class="TUI_radio inline"> <input type="radio"> <span class="custom-radio"></span> Option inline two </label> <!-------------------------- Fieldset group view --> Fieldset group <div class="TUI_fieldset"> <label class="TUI_select"> <select> <option>Option1</option> <option>Option2</option> <option>Option3</option> </select> </label> <label class="TUI_input"> <input type="text" placeholder="Example text"> </label> <button type="button">Add</button> <i class="fas fa-trash-alt fa-2x TUI_blue"></i> </div>
Далее следует описание с примерами и документацией компонентов TUI которые условно отнесены к хелперам
и
плагинам
. Это просто элементы или группы элементов страницы с которыми взаимодействуют методы
TUI.js
.
После загрузки страницы с подключенным TUI происходит инициализация плагинов. Например,
все списки <ul class="TUI_Menu">...</ul>
превратятся в меню, а
<dl class="TUI_Tab">...</dl>
станут табами. Хелперы же отрабатывают только если
их вызывает пользователь. Например, начнёт вводить в поле
<input oninput="TUI.Lim(this, 75)">
Добавленный класс TUI_disabled-node
к элементу запрещает методам TUI обрабатывать этот узел и все его
дочерние элементы. Если такие есть, TUI сбросит уведомления о них в консоль браузера. В сценарии
TUI.js
определено свойство const _disabledNodes = [`.TUI_disabled-node`]
.
В этот массив можно добавить дополнительные селекторы узлов которые нужно блокировать.
Блокировка может пригодиться когда на странице используется
WYSIWYG HTML-редактор в котором понадобилось сверстать
всплывающее окно TUI. Поскольку современные редакторы встраивают контент
сверстанный в них в текущий документ, подключенные в документ TUI.css
и TUI.js
также будут работать и в окне редактора. Всё бы хорошо, но методы хелперов и плагинов TUI меняют содержимое и
даже расположение в DOM элементов с которыми они взаимодействуют.
В результате есть вероятность изменения элементов сценариями TUI перед сохранением.
<div id="editor" class="TUI_disabled-node">
запретит TUI взаимодействовать с элементом куда будет
встроен редактор и всеми его дочерними элементами.
Элементы страницы, которые должны динамически меняться в зависимости от действий пользователя, в TUI обрабатываются
сценариями javascript из файла
TUI.js
. Эти сценарии (методы TUI) условно отнесены к хелперам. Изменение элемента хелпера
привязано
к событию на элементе триггере
. Ниже приведены хелперы TUI.
Полезный хелпер для показа/скрытия любых элементов с их содержимым.
TUI.Toggle('hidElem')
с переданным в неё id элемента который
должен переключаться, в данном случае — <div id="hidElem">
. Чтобы элемент был
скрыт по умолчанию добавь ему атрибут hidden
или style="display:none"
.<button type="button" onclick="TUI.Toggle('hidElem')">Подробнее</button> <div id="hidElem" hidden> <p>My hidden content. More... more content..)</p> <a onclick="TUI.Toggle('hidElem')">Скрыть подробности</a> </div>
Метод TUI.Toggle(id[, display])
переключает отображение элемента с id
. Метод
возвращает элемент с id
id
(строка, обязательный). ID элемента, который будет отображён или скрыт.display
(строка, опционально, по умолчанию "block"). Значение CSS-свойства "display" для
отображаемого элемента. При скрытии элемент получает display: none
Этот простой хелпер плавно прокручивает
страницу к заданному элементу. Конечно, это уже давно нативно
реализовано в HTML, но прокрутить
страницу можно только с помощью ссылки
href="#myElement"
. Бывает удобно использовать кнопку, любой другой элемент, а не только
ссылку, или вообще сделать это динамически.
<h2 id="h2Header">Заголовок</h2> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vitae, consectetur, labore voluptates natus commodi nemo asperiores cumque magnam iste unde quaerat officia praesentium aspernatur qui laborum in accusantium quae facilis illo eos animi minus est sequi totam optio enim quos nihil corporis numquam rem quod neque error tempore. Aspernatur, facere, nihil, inventore repudiandae eum recusandae accusamus soluta nemo est libero expedita perferendis incidunt possimus ut esse cumque consequatur aliquid similique totam praesentium impedit fuga deserunt dolorum numquam rerum omnis dolore quibusdam assumenda quas qui hic fugiat labore repellendus quos voluptatibus autem dolorem...</p> И ещё много-много всякого... <button type="button" onclick="TUI.GoTo('#h2Header')">Перейти к заголовку</button>
Метод TUI.GoTo(selectorId)
используй чтобы плавно прокрутить
страницу к желаемому
элементу. Например: чтобы
перейти к заголовку Подключение TUI
на этой странице, используется ссылка с onclick="TUI.GoTo('#GetStart')"
, а сам заголовок
имеет id="GetStart"
. Метод возвращает элемент с id
selectorId
(строка, опционально, по умолчанию null). CSS-селектор ID элемента к которому
нужно прокрутитьстраницу. Если аргумент не передан, метод попытается найти в текущем URI якорь (строка после
#включительно) и выполнить выше описанный сценарий.
Привет, Мир! Это пример всплывающей подсказки, которая появляется потому, что на элементе (триггере), над которым сейчас расположен курсор, есть событие с вызовом метода onmouseover="TUI.Hint(this)"в том, что:
<ol> <li> Подсказка по умолчанию. Триггер <mark onmouseover="TUI.Hint(this)">здесь</mark> <pre class="TUI_Hint"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores, aliquid consequuntur harum, quia voluptatem </pre> </li> <li> Чтобы скрыть <mark onmouseover="TUI.Hint(this,'click')">эту подсказку</mark> <pre class="TUI_Hint"> Чтобы скрыть эту подсказку кликни в любом месте. Это пригодится, например, если в подсказке будет <a href="#">ссылка</a> или другой подобный элемент взаимодействия </pre> нужно кликнуть </li> <li> <mark onmouseover="TUI.Hint(this,'dblclick')">Подсказка</mark> <pre class="TUI_Hint"> Ну, ты в курсе как её скрыть. Кликай дважды..) </pre> в этом примере скрывается при двойном клике </li> <li> А в <mark onmouseover="TUI.Hint(this)">этой</mark> <pre class="TUI_Hint"> <b>Случайная картинка</b> <img src="https://loremflickr.com/250/150" alt="random"> </pre> небольшой HTML-контент </li> <li> Если что-то нужно разъяснить <i class="fas fa-question-circle TUI_blue" onmouseover="TUI.Hint(this)"></i> <pre class="TUI_Hint"> А что здесь разъяснять? Всё предельно просто, если посмотреть в исходный код этих примеров в вкладке "Пример кода". </pre> </li> </ol>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores, aliquid consequuntur harum, quia voluptatem.
Чтобы скрыть эту подсказку кликни в любом месте. Это пригодится, например, если в подсказке будет ссылка или другой подобный элемент взаимодействия.нужно кликнуть
Ну, ты в курсе как её скрыть. Кликай дважды..)в этом примере скрывается при двойном клике
Случайная картинканебольшой HTML-контент
А что здесь разъяснять? Всё предельно просто, если посмотреть в исходный код этих примеров в вкладке "Пример кода".
Метод TUI.Hint(trigger[, hideEvent])
запускается по событию, установленному на триггере и
показывает\скрывает подсказку, которая должна быть обернута
в строчный элемент (span, pre). Элемент
с подсказкой должен быть расположен сразу после триггера. Этому элементу необходимо присвоить
class="TUI_Hint"
. Метод возвращает элемент подсказки
trigger
(объект, обязательный). Указатель на триггер — "this". Или передай ссылку
на элемент триггера если используешь метод динамически.
hideEvent
(строка, опционально, по умолчанию "mouseout") событие для скрытия подсказки. Это
событие следует передавать как строку без префикса on, например:
TUI.Hint(this, 'click')
. В данном случае, после появления подсказки, она будет скрыта
только после клика по ней или любому другому элементу на странице. По умолчанию подсказка скроется
когда с триггера будет убран курсор.
Список
стандартных HTML событийЭтот хелпер ограничивает количество символов при заполнении текстового поля и динамически показывает, сколько ещё можно вводить.
Default input Default textareaDefault input <label class="input"> <input type="text" placeholder="начни вводить символы" oninput="TUI.Lim(this, 75)"> </label> Default textarea <label class="TUI_textarea"> <textarea placeholder="начни вводить символы" oninput="TUI.Lim(this, 75)"></textarea> </label>
Метод TUI.Lim(trigger[, limit])
ограничит ввод символов в поле trigger
до
limit
и покажет пользователю сколько ещё можно ввести. Следует отметить, что метод
корректно обработает только текстовые поля input
и textarea
которые свёрстаны по
правилам разметки TUI, как показано в разделе Формы
. Метод возвращает элемент поля.
trigger
(объект, обязательный). Указатель на триггер — "this". Или передай ссылку
на элемент триггера если используешь метод динамически.
limit
(целое число, опционально, по умолчанию 50). Лимит символов.Один или несколько элементов страницы, которые должны динамически трансформироваться чтобы в результате работать как
отдельные единицы интерфейса (компоненты). Эти трансформации, и в последующем, логика работы таких единиц описаны в
файле TUI.js
в методах TUI, условно отнесенных к плагинам. Плагины отличаются от хелперов возможностью
более гибкого управления и трансформации элементов. Ниже приведены плагины TUI.
Уведомить пользователя о статусе выполнения какого-либо процесса из твоего сценария можно с помощью
TUI.Notice()
. Например, при отправке ajax запроса на сервер и получения ответа или в других
случаях, когда использование alert(), confirm()
излишне или некрасиво. Плагин использует
классы уведомлений, но может использовать и твои.
<button type="button" id="goFeed">Покормить Барсика</button> <script> let feedTheBarsik = () => { TUI.Notice({ text: `омномном...`, delay: 3000, callback: () => { TUI.Notice({ text: `Барсик покормлен..)`, delay: 2000, className: `TUI_notice-success` }); } }); } document.querySelector(`#goFeed`).addEventListener(`click`, feedTheBarsik); </script>
Метод TUI.Notice()
создаёт и показывает уведомление. Если уведомление ещё не создано
TUI.Notice()
создаст его, иначе просто применит переданную конфигурацию. Чтобы показать
уведомление, вызови метод и передай в него объект конфигурации. Например:
TUI.Notice({text: 'Успешно!', className: 'TUI_notice-success', delay: 2000})
.
Метод показывает и возвращает элемент уведомления.
TUI.Notice([userConf])
В данном случае, метод может принимать один необязательный аргумент —
литерал объекта с конфигурацией пользователя. Если конфигурация не передана, будет использована конфигурация
по умолчанию.
text
(строка, опционально, по умолчанию "обработка..."). Текст или HTML в уведомлении.className
(строка, опционально, по умолчанию "TUI_notice-process"). Класс/ы уведомления
описанные в классах уведомлений. Можно передавать
и свои классы.
delay
(число или null, опционально, по умолчанию null). Задержка в миллисекундах для показа
уведомления перед деактивацией. Если передан 0 или null, уведомление будет активировано пока не
вызовешь команду kill
или не передашь новую конфигурацию с delay
больше
нуля.
callback
(функция или null, опционально, по умолчанию null). Функция, которая будет вызвана
после деактивации уведомления. Обрати внимание, если delay
0 или null, функция не будет
выполнена, поскольку деактивация в такой конфигурации не предусмотрена.
TUI.Notice("kill"[, id])
. В данном случае, метод должен принимать первым аргументом команду
kill
, а вторым, необязательным, идентификатор уведомления. Поскольку идентификатор
присваивается плагином автоматически при активации и используется в служебных целях, будет достаточно
использовать только команду kill
.
kill
(строка, обязательный). Команда деактивации плагинаid
(строка, опционально).
Идентификатор активного уведомления который нужно деактивировать.
Любой элемент, которому присвоен class="TUI_Popup"
и уникальный ID, TUI трансформирует в
всплывающее окно. Этот элемент может содержать всё что угодно. Содержимое не будет скрыто от поисковых
роботов. Вызов всплывающего окна можно привязать к любому событию, на любом элементе (триггере).
<button type="button" onclick="TUI.Popup('pop1')">Кнопка</button> <a onclick="TUI.Popup('pop2')">Ссылка</a> <div id="pop1" class="TUI_Popup"> <h3>Привет!</h3> Окно активировано кнопкой. </div> <div id="pop2" class="TUI_Popup"> Окно активировано ссылкой. </div>
Метод TUI.Popup()
создаёт и показывает всплывающие окна. Сначала метод трансформирует все
элементы которым присвоен class="TUI_Popup"
в сплывающие окна, которые будут скрыты изначально.
Чтобы показать всплывающее окно, вызови метод с переданным ID элемента. Например:
TUI.Popup("myPop")
покажет всплывающее окно с id="myPop" class="TUI_Popup"
.
Вызов всплывающего окна может быть привязан к любому элементу (триггеру) или вызван динамически из сценария.
Метод возвращает элемент с переданным ID.
id
(строка, обязательный). ID элемента который должен быть показан как всплывающее окно.
Интерфейс переключения между блоками с контентом с помощью вкладок (табов) можно наблюдать прямо здесь.
HTML-структура списка определений dl
отлично подходит для этой задачи. По умолчанию, все
<dl class="TUI_Tab">...</dl>
TUI трансформирует в табы.
При ширине устройства >= 600px табы трансформируются в аккордеон
.
<dl class="TUI_Tab"> <dt>Tab 1</dt> <dd> <h2>Контент первого таба</h2> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </dd> <dt>Tab 2</dt> <dd> <h2>Контент второго таба</h2> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </dd> </dl>
Метод TUI.Tab()
динамически трансформирует список определений dl
в табы. TUI
по умолчанию трансформирует в табы все dl
списки которым присвоен class="TUI_Tab"
.
По умолчанию первая вкладка в табе будет активной. Если хочешь, чтобы по умолчанию была активна другая
вкладка, присвой class="TUI_Tab-show"
желаемому dt
.
TUI.Tab([userConf])
В данном случае, метод может принимать один необязательный аргумент —
литерал объекта с конфигурацией пользователя. Например: TUI.Tab({selector: ".myElement"})
. Если
методу не передать аргумент, он сработает только на <dl class="TUI_Tab">
. Метод
возвращает коллекцию обработанных элементов.
selector
(строка, опционально, по умолчанию ".TUI_Tab"). CSS-селектор/ры элемента/тов
dl
которые нужно трансформировать в табы.
TUI.Tab("kill"[, selector])
В данном случае, метод должен принимать первым аргументом команду
kill
, а вторым, необязательным, CSS-селектор/ры элемента/тов dl
на которых нужно
деактивировать плагин и трансформировать в первоначальный вид. Если методу передать только команду
kill
, он сработает только на <dl class="TUI_Tab">
.
Метод возвращает коллекцию обработанных элементов.
kill
(строка, обязательный). Команда деактивации плагинаselector
(строка, опционально, по умолчанию ".TUI_Tab"). CSS-селектор/ры элемента/тов
dl
на которых нужно деактивировать плагин.
К полю <input type="file">
добавь class="TUI_InputFile"
,
а к полю <input type="range">
добавь class="TUI_InputRange"
.
TUI добавит к этим полям информационные элементы и немного улучшит внешний вид.
TUI_InputFile on input type="file" <label class="TUI_file"> <input class="TUI_InputFile" type="file" multiple> </label> TUI_InputFile on inline input type="file" <label class="TUI_file inline"> <input class="TUI_InputFile" type="file" multiple> </label> TUI_InputRange on input type="range" <label class="TUI_range"> <input class="TUI_InputRange" type="range" min="0" max="10" step="1" value="0"> </label> TUI_InputRange on inline input type="range" <label class="TUI_range inline"> <input class="TUI_InputRange" type="range" min="0" max="10" step="1" value="0"> </label>
Методы TUI.InputFile()
и TUI.InputRange()
динамически добавят информационный
элемент к соответствующим полям — <input type="file">
и
<input type="range">
, а также улучшат их внешний вид. Оба метода принимают
одинаковые параметры, но обрабатывают только соответствующие им типы полей (file или range).
Следует отметить, что плагины корректно обработают поля которые свёрстаны по правилам разметки TUI, как
показано в разделе Формы
.
TUI.InputFile([userConf])
и TUI.InputRange([userConf])
. В данном случае, методы
могут принимать один необязательный аргумент — литерал объекта с конфигурацией пользователя.
Например: UI.InputFile({selector: ".myInput"})
. Если методу не передать аргумент, по умолчанию
он сработает только на <input type="file" class="TUI_InputFile">
.
Для TUI.InputRange()
— это <input type="range" class="TUI_InputRange">
.
Методы возвращают коллекцию обработанных элементов.
selector
(строка, опционально, по умолчанию ".TUI_InputFile" / ".TUI_InputRange").
CSS-селектор/ры элемента/тов соответствующих полей которые нужно трансформировать.
icon
Только для TUI.InputFile()
(строка, опционально, по умолчанию "<i class="fas fa-folder-open">"). Текст или HTML
для информационного элемента если файл не выбран.
TUI.InputFile("kill"[, selector])
и TUI.InputRange("kill"[, selector])
.
В данном случае, метод должен принимать первым аргументом команду kill
, а вторым,
необязательным, CSS-селектор/ры элемента/тов соответствующих полей, на которых нужно деактивировать плагин
и трансформировать в первоначальный вид. Если методу передать только команду kill
, он сработает
только на <input type="file" class="TUI_InputFile">
и
<input type="range" class="TUI_InputRange">
соответственно.
Метод возвращает коллекцию обработанных элементов.
kill
(строка, обязательный). Команда деактивации плагинаselector
(строка, опционально, по умолчанию ".TUI_InputFile" / ".TUI_InputRange").
CSS-селектор/ры элемента/тов соответствующих полей на которых нужно деактивировать плагин.
К полю <input type="number">
добавь class="TUI_InputNumber"
.
TUI добавит к этому полю кнопки изменения значения, проверку на нечисловые значения и немного
улучшит внешний вид. Обрати внимание, что надпись для поля следует размещать снаружи родительского label
.
<label class="TUI_number"> <input class="TUI_InputNumber" type="number" min="0" max="6"> </label> <label class="TUI_number inline"> <input class="TUI_InputNumber" type="number" min="-6" max="6" step="2"> </label>
Метод TUI.InputNumber()
динамически добавит кнопки изменения значения к полям
<input type="number">
, а также проверку на ввод нечисловых значений.
Этот плагин корректно обработает поля которые свёрстаны по правилам разметки TUI, как
показано в разделе Формы
.
TUI.InputNumber([userConf])
может принимать один необязательный аргумент — литерал объекта
с конфигурацией пользователя. Например: UI.InputNumber({selector: ".myInput"})
. Если методу не
передать аргумент, по умолчанию он сработает только на <input type="number" class="TUI_InputNumber">
. Метод возвращает коллекцию обработанных элементов.
selector
(строка, опционально, по умолчанию ".TUI_InputNumber").
CSS-селектор/ры элемента/тов полей которые нужно трансформировать.
incIcon
(строка, опционально, по умолчанию "+"). Текст или HTML для кнопки прибавления
к значению поля.
decIcon
(строка, опционально, по умолчанию "−"). Текст или HTML для кнопки убавления
от значения поля.
info
(строка, опционально, по умолчанию "Поставьте курсор в поле и крутите колёсико мыши
;)").
Текст-подсказка для поля. Например, если нужно подсказать пользователю допустимый диапазон ввода.
TUI.InputNumber("kill"[, selector])
. В данном случае, метод должен принимать первым аргументом
команду kill
, а вторым, необязательным, CSS-селектор/ры поля/лей, на которых нужно
деактивировать плагин и трансформировать в первоначальный вид. Если методу передать только команду
kill
, он сработает только на <input type="number" class="TUI_InputNumber">
.
Метод возвращает коллекцию обработанных элементов.
kill
(строка, обязательный). Команда деактивации плагинаselector
(строка, опционально, по умолчанию ".TUI_InputNumber"). CSS-селектор/ры
элемента/тов полей на которых нужно деактивировать плагин.
Просто добавь class="TUI_SelectSearch"
к списку <select>...</select>
,
а TUI прикрепит к нему поле поиска и обеспечит его работу. Используй стандартные атрибуты "size",
"multiple" и другие, чтобы управлять списком как обычно.
<label class="TUI_select"> <select class="TUI_SelectSearch" size="3"> <option>Aquaman</option> <option>Asterix</option> <option>Batman</option> <option>Black Panther</option> <option>Captain America</option> <option>Captain Marvel</option> <option>Doctor Strange</option> <option>Guardians of the Galaxy</option> <option>Hellboy</option> <option>Robin</option> <option>Superman</option> <option>Teenage Mutant Ninja Turtles</option> <option>Thor</option> </select> </label>
Метод TUI.SelectSearch()
динамически добавляет к списку select
текстовое поле
и выполняет регистронезависимый поиск среди пунктов этого списка. TUI по умолчанию трансформирует все
списки select
которым присвоен class="TUI_SelectSearch"
. Следует отметить, что
плагин корректно обработает списки которые свёрстаны по правилам разметки TUI, как показано в разделе
Формы
.
TUI.SelectSearch([userConf])
В данном случае, метод может принимать один необязательный
аргумент — литерал объекта с конфигурацией пользователя. Например:
TUI.SelectSearch({selector: ".myElement", placeholder: "Поиск"})
. Если методу не передать
аргумент, он сработает только на
<select class="TUI_SelectSearch">...</select>
. Метод возвращает коллекцию
обработанных элементов.
selector
(строка, опционально, по умолчанию ".TUI_SelectSearch"). CSS-селектор/ры
списка/ков select
которые нужно трансформировать.
placeholder
(строка, опционально, по умолчанию "Поиск по списку"). Значение одноимённого
атрибута для поля поиска.
TUI.SelectSearch("kill"[, selector])
В данном случае, метод должен принимать первым аргументом
команду kill
, а вторым, необязательным, CSS-селектор/ры списка/ков select
на
которых нужно деактивировать плагин и трансформировать в первоначальный вид. Если методу передать
только команду kill
, он сработает только на
<select class="TUI_SelectSearch">...</select>
. Метод возвращает коллекцию
обработанных элементов.
kill
(строка, обязательный). Команда деактивации плагинаselector
(строка, опционально, по умолчанию ".TUI_SelectSearch"). CSS-селектор/ры
списка/ков select
на которых нужно деактивировать плагин.
Обычный маркированный список <ul class="TUI_Menu">...</ul>
TUI
трансформирует в адаптивное меню. Если пункт меню не должен быть ссылкой, его следует поместить в тег
span
. Добавь class="TUI_Menu-mark"
родительскому li
пункта, чтобы
пометить его. А вообще, плагин сам пометит пункт первого уровня, если на любой глубине вложенности его
дочерних пунктов есть ссылка на текущую страницу.
<ul class="TUI_Menu"> <li class="TUI_Menu-mark"><a href="#">item1</a> </li> <li><span>item2</span> <ul> <li><a href="#">sub item1</a> </li> <li><a href="#">sub item2</a> </li> </ul> </li> <li><a href="#">item3</a> <ul> <li><span>sub item1</span> </li> <li><a href="#">sub item2</a> <ul> <li><a href="#">sub item1</a> </li> <li><a href="#">sub item2</a> </li> </ul> </li> <li><span>sub item3</span> </li> </ul> </li> </ul>
Метод TUI.Menu()
динамически трансформирует список ul
в меню. TUI по умолчанию
трансформирует в меню все ul
списки которым присвоен class="TUI_Menu"
.
Плагин выделяет корневой пункт если среди его вложенных пунктов есть ссылка на текущую страницу.
Если URI текущей страницы совпадает со значением href
ссылки на любом уровне вложенности,
плагин найдёт родительский li
самого верхнего уровня и добавит ему
class="TUI_Menu-mark"
. Ты тоже можешь использовать этот класс, чтобы выделить какой-либо
li
в структуре. Для мобильной версии, плагин добавит кнопку отображения/скрытия меню
и кнопки отображения/скрытия вложенных подуровней меню.
TUI.Menu([userConf])
В данном случае, метод может принимать один необязательный аргумент —
литерал объекта с конфигурацией пользователя. Например:
TUI.Menu({selector: ".myElement", icon: "…"})
. Если методу не передать аргумент, он
сработает только на <ul class="TUI_Menu">
. Метод возвращает коллекцию
обработанных элементов.
selector
(строка, опционально, по умолчанию ".TUI_Menu"). CSS-селектор/ры списка/ков
ul
которые нужно трансформировать в меню.
icon
(строка, опционально, по умолчанию "≡"). Текст или HTML на кнопках меню.TUI.Menu("kill"[, selector])
В данном случае, метод должен принимать первым аргументом команду
kill
, а вторым, необязательным, CSS-селектор/ры списка/ков ul
на которых нужно
деактивировать плагин и трансформировать в первоначальный вид. Если методу передать только команду
kill
, он сработает только на <ul class="TUI_Menu">
.
Метод возвращает коллекцию обработанных элементов.
kill
(строка, обязательный). Команда деактивации плагинаselector
(строка, опционально, по умолчанию ".TUI_Menu"). CSS-селектор/ры списка/ков
ul
на которых нужно деактивировать плагин.