Введення даних /Форми введення даних
Навігація
- Макет ввідних форм
- Складені етикетки
- Вбудовані етикетки
- Плаваючі етикетки
- Структурні входи
- Інформація про форму введення
- Розкривний список введення
- Підтримувані введення даних
- Текстове поле зі змінним розміром
- Перевірка
- Класи станів введення
- Параметри застосунку Введення даних
- Методи застосунку Введення даних
- Події
- Змінні CSS
- Приклади
Введення даних /Форми введення даних
Макет ввідних форм
list View
:<div class="list">
<ul>
...
<li class="item-content item-input">
<div class="item-media">... icon/image here ...</div>
<div class="item-inner">
<div class="item-input-wrap">
<input type="text" name="name" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
...
</ul>
</div>
● item-input
- необхідний додатковий клас за змістом предмета. item-content
Необхідний для правильного розташування елементів введення
● ● item-label
-додатковий клас для назви елемента item-title
, необхідний для правильного відображення мітки
● item-input-wrap
-потрібна додаткова обгортка ввідних форм. Має бути прямим дочірнім елементом item-inner
● ● <span class="input-clear-button">
- кнопка, яка очищатиме введене значення після натискання. Необов'язкова
Складені етикетки
<div class="list">
<ul>
...
<li class="item-content item-input">
<div class="item-media">... icon/image here ...</div>
<div class="item-inner">
<div class="item-title item-label">Name</div>
<div class="item-input-wrap">
<input type="text" name="name" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
...
</ul>
</div>
● item-title item-label
- вхідна мітка.
Вбудовані мітки
inline-labels
до всього списку або клас вбудованих міток inline-label
до окремого елемента:<div class="list inline-labels">
<ul>
...
<li class="item-content item-input">
<div class="item-media">... icon/image here ...</div>
<div class="item-inner">
<div class="item-title item-label">Name</div>
<div class="item-input-wrap">
<input type="text" name="name" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
...
</ul>
</div>
<!-- або лише до одного елемента -->
<div class="list">
<ul>
...
<!-- додатковий клас "inline-label". -->
<li class="item-content item-input inline-label">
...
</li>
...
</ul>
</div>
Плаваючі етикетки
item-floating-label
замість item-label
.<div class="list">
<ul>
...
<li class="item-content item-input">
<div class="item-media">... icon/image here ...</div>
<div class="item-inner">
<!-- клас "item-floating-label" для назви елемента -->
<div class="item-title item-floating-label">Name</div>
<div class="item-input-wrap">
<input type="text" name="name" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
...
</ul>
</div>
Ввідні форми, виділені контуром
item-input-outline
до основного вхідного елемента списку:<div class="list">
<ul>
...
<!-- додатковий клас "item-input-outline".-->
<li class="item-content item-input item-input-outline">
<div class="item-inner">
<div class="item-title item-label">Name</div>
<div class="item-input-wrap">
<input type="text" name="name" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
...
</ul>
</div>
Інформація про форму введення
<div class="list">
<ul>
...
<!-- додатковий клас "item-input-with-info" для елемента -->
<li class="item-content item-input item-input-with-info">
<div class="item-media">... icon/image here ...</div>
<div class="item-inner">
<div class="item-title item-label">Name</div>
<div class="item-input-wrap">
<input type="text" name="name" />
<span class="input-clear-button"></span>
<!-- елемент з додатковою інформацією -->
<div class="item-input-info">Some information about input field</div>
</div>
</div>
</li>
...
</ul>
</div>
● item-input-with-info
- необхідний додатковий клас для вхідного елемента
● <div class="item-input-info">...</div>
- елемент з додатковою інформацією
Розкривний список введення
input-dropdown-wrap
. Він додасть невеликий спадний значок праворуч (▼):<div class="list">
<ul>
...
<li class="item-content item-input">
<div class="item-media">... icon/image here ...</div>
<div class="item-inner">
<div class="item-title item-label">Name</div>
<!-- additional "input-dropdown-wrap" class -->
<div class="item-input-wrap input-dropdown-wrap">
<select>
...
</select>
</div>
</div>
</li>
...
</ul>
</div>
Підтримувані форми введення даних
item-input-wrap
:All text inputs
text
(текст), password
,(пароль) email
(ел. пошта ), tel
, (телефон) url
, (url-адреса) date
, (дата) number
(номер), datetime-local
...
<div class="item-input-wrap">
<input type="text" />
</div>
...
...
<div class="item-input-wrap">
<input type="email" />
</div>
...
Select
...
<div class="item-input-wrap">
<select>...</select>
</div>
...
Textarea
...
<div class="item-input-wrap">
<textarea></textarea>
</div>
...
Range Slider
...
<div class="item-input-wrap">
<div class="range-slider">
<input type="range" min="0" max="100" step="0.1" />
</div>
</div>
...
Текстове поле зі змінним розміром
resizable
:<textarea class="resizable"></textarea>
Перевірка
validaty
. Якщо ввімкнено перевірку, з’являтимуться повідомлення про помилку перевірки, якщо введене значення має недійсне значення.
Щоб увімкнути перевірку, ми повинні додати атрибути: required
і validate
до вхідного елемента.
Якщо нам потрібна перевірка вхідних даних лише на подію розмиття blur
, тоді нам потрібно додати атрибут data-validate-on-blur="true"
.
Перевірка значення залежить від типу введення. Наприклад, тип введення = "електронна пошта" буде перевірено на відповідність шаблону електронної пошти тощо. Це типова поведінка браузера. Якщо ви хочете додати спеціальне правило для перевірки вхідного значення, це потрібно зробити за допомогою атрибута введення шаблону pattern
:
<!-- перевірка за замовчуванням, перевірка значення не порожня -->
<input type="text" placeholder="Your name" required validate />
<!-- перевірка електронної пошти за замовчуванням, значенням має бути електронна адреса -->
<input type="email" placeholder="Your e-mail" required validate />
<!-- перевірка URL-адреси за замовчуванням-->
<input type="url" placeholder="Your URL" required validate />
<!-- перевірка шаблону, значення має бути "яблуко" або "банан" -->
<input type="text" required validate pattern="apple|banana" placeholder="Type 'apple' or 'banana'" />
<!-- перевірка шаблону зі спеціальним повідомленням про помилку, значення має бути лише числом -->
<input type="text" placeholder="Enter number" required validate pattern="[0-9]*" data-error-message="Only numbers please!" />
<!-- цей вхід буде перевірено лише на розмиття-->
<input type="text" placeholder="Your name" required validate data-validate-on-blur="true" />
Класи станів введення
● input-with-value
- буде додано до вхідних даних, коли воно матиме значення
● input-focused
- буде додано до вхідних даних, коли буде сфокусовано
● input-invalid
- буде додано до вхідних даних, якщо його значення недійсне
Ті самі стани буде додано до батьківського елемента item-input
входу:
● item-input-with-value
- буде додано до вхідного елемента, коли його вхід матиме значення
● item-input-focused
- буде додано до елемента введення, коли його введення буде сфокусовано
● item-input-invalid
- буде додано до вхідного елемента, якщо його вхідне значення недійсне
Параметри застосунку введення даних
input
:Параметр | За замовчуванням | Опис | Тип |
---|---|---|---|
scrollIntoViewOnFocus | Якщо ввімкнути, введені дані прокручуватимуться у фокусі введення. За замовчуванням його ввімкнено лише для пристроїв Android, оскільки це допомагає вирішити проблему, коли екранна клавіатура може перекривати введення | boolean | |
scrollIntoViewCentered | false | Налаштовує поведінку попереднього параметра, щоб прокручувати введені дані в центрі зору при фокусі введення | boolean |
scrollIntoViewDuration | 0 | Тривалість за замовчуванням для прокручування введених даних у вікні перегляду | number |
scrollIntoViewAlways | false | Якщо ввімкнути, вхідні дані прокручуватимуться у вікні перегляду, незалежно від того, перебувають вони поза полем зору чи ні | boolean |
var app = new Techno4({
input: {
scrollIntoViewOnFocus: true,
scrollIntoViewCentered: true,
}
});
Методи застосунку введення даних
Метод | Аргументи | Опис |
---|---|---|
app.input.scrollIntoView | (inputEl, duration, centered, force) | Прокрутити введення в поле зору
● ● ● ● |
app.input.focus | (inputEl) | Буде додано додаткові необхідні стилі та класи при введенні, наприклад, коли воно сфокусовано
● |
app.input.blur | (inputEl) | Буде видалено додаткові необхідні стилі та класи під час введення, наприклад, коли він втрачає фокус
● |
app.input.resizeTextarea | (textareaEl) | Примусово змінювати розмір текстового поля залежно від його вмісту
● |
app.input.checkEmptyState | (inputEl) | Перерахувати необхідні додаткові стилі та класи для вхідного елемента залежно від того, має він значення чи ні
● |
app.input.validate | (inputEl) | Перевірка введених даних
● Метод повертає |
app.input.validateInputs | (containerEl) | Перевірити всі вхідні дані в переданому контейнері
Метод повертає |
Події введення даних
Подія | Об'єкт | Опис |
---|---|---|
textarea:resize | Textarea Element <textarea class="resizable"> | Подія буде ініційована після зміни розміру текстового поля. event.detail міститиме об’єкт із властивостями initialHeight , currentHeight і scrollHeight |
input:notempty | Input Element <input/textarea> | Подія буде ініційована, коли вхідне значення стане непорожнім |
input:empty | Input Element <input/textarea> | Подія буде ініційована, коли вхідне значення стане порожнім |
input:clear | Input Element <input/textarea> | Подія буде ініційована після того, як введене значення буде очищено, натиснувши кнопку очищення введення |
Змінні CSS
:root {
--t4-input-bg-color: transparent;
--t4-label-font-weight: 400;
--t4-label-line-height: 1.3;
--t4-input-padding-left: 0px;
--t4-input-padding-right: 0px;
--t4-input-error-text-color: #ff3b30;
--t4-input-error-font-size: 12px;
--t4-input-error-line-height: 1.4;
--t4-input-error-font-weight: 400;
--t4-input-info-font-size: 12px;
--t4-input-info-line-height: 1.4;
--t4-input-outline-height: 40px;
--t4-input-outline-border-radius: 4px;
--t4-input-outline-padding-horizontal: 12px;
--t4-textarea-height: 100px;
/*
--t4-input-outline-focused-border-color: var(--t4-theme-color);
--t4-input-outline-invalid-border-color: var(--t4-input-error-text-color);
*/
--t4-input-outline-border-color: #bbb;
}
:root .dark,
:root.dark {
--t4-input-outline-border-color: #444;
}
.ios {
--t4-input-height: 44px;
--t4-input-font-size: 17px;
--t4-input-placeholder-color: #a9a9a9;
--t4-textarea-padding-vertical: 11px;
/*
--t4-input-focused-border-color: var(--t4-list-item-border-color);
--t4-input-invalid-border-color: var(--t4-list-item-border-color);
--t4-input-invalid-text-color: var(--t4-input-error-text-color);
*/
--t4-label-font-size: 12px;
--t4-label-text-color: inherit;
/*
--t4-label-focused-text-color: var(--t4-label-text-color);
--t4-label-invalid-text-color: var(--t4-label-text-color);
*/
--t4-floating-label-scale: calc(17 / 12);
--t4-inline-label-font-size: 17px;
--t4-inline-label-line-height: 1.4;
--t4-inline-label-padding-top: 3px;
--t4-input-clear-button-size: 14px;
--t4-input-text-color: #000000;
--t4-input-info-text-color: rgba(0, 0, 0, 0.45);
--t4-input-clear-button-color: rgba(0, 0, 0, 0.45);
}
.ios .dark,
.ios.dark {
--t4-input-text-color: #fff;
--t4-input-info-text-color: rgba(255, 255, 255, 0.55);
--t4-input-clear-button-color: rgba(255, 255, 255, 0.5);
}
.md {
--t4-input-height: 36px;
--t4-input-font-size: 16px;
--t4-textarea-padding-vertical: 7px;
/*
--t4-input-focused-border-color: var(--t4-theme-color);
--t4-input-invalid-border-color: var(--t4-input-error-text-color);
--t4-input-invalid-text-color: var(--t4-input-text-color);
*/
--t4-label-font-size: 12px;
/*
--t4-label-focused-text-color: var(--t4-theme-color);
--t4-label-invalid-text-color: var(--t4-input-error-text-color );
*/
--t4-floating-label-scale: calc(16 / 12);
--t4-inline-label-font-size: 16px;
--t4-inline-label-line-height: 1.5;
--t4-inline-label-padding-top: 7px;
--t4-input-clear-button-size: 18px;
--t4-input-clear-button-color: #aaa;
--t4-input-text-color: #212121;
--t4-input-placeholder-color: rgba(0, 0, 0, 0.35);
--t4-label-text-color: rgba(0, 0, 0, 0.65);
--t4-input-info-text-color: rgba(0, 0, 0, 0.45);
}
.md .dark,
.md.dark {
--t4-input-text-color: rgba(255, 255, 255, 0.87);
--t4-input-placeholder-color: rgba(255, 255, 255, 0.35);
--t4-label-text-color: rgba(255, 255, 255, 0.54);
--t4-input-info-text-color: rgba(255, 255, 255, 0.45);
}
.aurora {
--t4-input-height: 32px;
--t4-input-font-size: 16px;
--t4-textarea-padding-vertical: 4px;
/*
--t4-input-focused-border-color: var(--t4-theme-color);
--t4-input-invalid-border-color: var(--t4-input-error-text-color);
--t4-input-invalid-text-color: var(--t4-input-text-color);
*/
--t4-label-font-size: 12px;
--t4-label-text-color: inherit;
/*
--t4-label-focused-text-color: var(--t4-theme-color);
--t4-label-invalid-text-color: var(--t4-input-error-text-color );
*/
--t4-floating-label-scale: calc(16 / 12);
--t4-inline-label-font-size: 16px;
--t4-inline-label-line-height: 1.5;
--t4-inline-label-padding-top: 4px;
--t4-input-clear-button-size: 14px;
--t4-input-outline-border-radius: 8px;
--t4-input-text-color: #000000;
--t4-input-placeholder-color: rgba(0, 0, 0, 0.32);
--t4-input-clear-button-color: rgba(0, 0, 0, 0.45);
--t4-input-info-text-color: rgba(0, 0, 0, 0.5);
}
.aurora .dark,
.aurora.dark {
--t4-input-text-color: #fff;
--t4-input-clear-button-color: rgba(255, 255, 255, 0.5);
--t4-input-placeholder-color: rgba(255, 255, 255, 0.35);
--t4-input-info-text-color: rgba(255, 255, 255, 0.45);
}
Приклади:
<template>
<div class="page">
<div class="navbar">
<div class="navbar-bg"></div>
<div class="navbar-inner">
<div class="title">Form Inputs</div>
</div>
</div>
<div class="page-content">
<div class="block-title">Full Layout / Inline Labels</div>
<div class="list inline-labels no-hairlines-md">
<ul>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Name</div>
<div class="item-input-wrap">
<input type="text" placeholder="Your name" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Password</div>
<div class="item-input-wrap">
<input type="password" placeholder="Your password" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">E-mail</div>
<div class="item-input-wrap">
<input type="email" placeholder="Your e-mail" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">URL</div>
<div class="item-input-wrap">
<input type="url" placeholder="URL" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Phone</div>
<div class="item-input-wrap">
<input type="tel" placeholder="Your phone number" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Gender</div>
<div class="item-input-wrap input-dropdown-wrap">
<select placeholder="Please choose...">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Birthday</div>
<div class="item-input-wrap">
<input type="date" value="2014-04-30" placeholder="Please choose..." />
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Date time</div>
<div class="item-input-wrap">
<input type="datetime-local" placeholder="Please choose..." />
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Range</div>
<div class="item-input-wrap">
<div class="range-slider range-slider-init" data-label="true">
<input type="range" value="50" min="0" max="100" step="1" />
</div>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Textarea</div>
<div class="item-input-wrap">
<textarea placeholder="Bio"></textarea>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Resizable</div>
<div class="item-input-wrap">
<textarea class="resizable" placeholder="Bio"></textarea>
</div>
</div>
</li>
</ul>
</div>
<div class="block-title">Full Layout / Stacked Labels</div>
<div class="list no-hairlines-md">
<ul>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Name</div>
<div class="item-input-wrap">
<input type="text" placeholder="Your name" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Password</div>
<div class="item-input-wrap">
<input type="password" placeholder="Your password" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">E-mail</div>
<div class="item-input-wrap">
<input type="email" placeholder="Your e-mail" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">URL</div>
<div class="item-input-wrap">
<input type="url" placeholder="URL" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Phone</div>
<div class="item-input-wrap">
<input type="tel" placeholder="Your phone number" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Gender</div>
<div class="item-input-wrap input-dropdown-wrap">
<select placeholder="Please choose...">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Birthday</div>
<div class="item-input-wrap">
<input type="date" value="2014-04-30" placeholder="Please choose..." />
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Date time</div>
<div class="item-input-wrap">
<input type="datetime-local" placeholder="Please choose..." />
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Range</div>
<div class="item-input-wrap">
<div class="range-slider range-slider-init" data-label="true">
<input type="range" value="50" min="0" max="100" step="1" />
</div>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Textarea</div>
<div class="item-input-wrap">
<textarea placeholder="Bio"></textarea>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Resizable</div>
<div class="item-input-wrap">
<textarea class="resizable" placeholder="Bio"></textarea>
</div>
</div>
</li>
</ul>
</div>
<div class="block-title">Floating Labels</div>
<div class="list no-hairlines-md">
<ul>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-floating-label">Name</div>
<div class="item-input-wrap">
<input type="text" placeholder="Your name" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-floating-label">Password</div>
<div class="item-input-wrap">
<input type="password" placeholder="Your password" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-floating-label">E-mail</div>
<div class="item-input-wrap">
<input type="email" placeholder="Your e-mail" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-floating-label">URL</div>
<div class="item-input-wrap">
<input type="url" placeholder="URL" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-floating-label">Phone</div>
<div class="item-input-wrap">
<input type="tel" placeholder="Your phone number" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-floating-label">Bio</div>
<div class="item-input-wrap">
<textarea class="resizable" placeholder="Bio"></textarea>
<span class="input-clear-button"></span>
</div>
</div>
</li>
</ul>
</div>
<div class="block-title">Floating Labels + Outline Inputs</div>
<div class="list no-hairlines-md">
<ul>
<li class="item-content item-input item-input-outline">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-floating-label">Name</div>
<div class="item-input-wrap">
<input type="text" placeholder="Your name" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input item-input-outline">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-floating-label">Password</div>
<div class="item-input-wrap">
<input type="password" placeholder="Your password" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input item-input-outline">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-floating-label">E-mail</div>
<div class="item-input-wrap">
<input type="email" placeholder="Your e-mail" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input item-input-outline">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-floating-label">URL</div>
<div class="item-input-wrap">
<input type="url" placeholder="URL" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input item-input-outline">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-floating-label">Phone</div>
<div class="item-input-wrap">
<input type="tel" placeholder="Your phone number" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input item-input-outline">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-floating-label">Bio</div>
<div class="item-input-wrap">
<textarea class="resizable" placeholder="Bio"></textarea>
<span class="input-clear-button"></span>
</div>
</div>
</li>
</ul>
</div>
<div class="block-title">Validation + Additional Info</div>
<div class="list no-hairlines-md">
<ul>
<li class="item-content item-input item-input-with-info">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Name</div>
<div class="item-input-wrap">
<input type="text" placeholder="Your name" required validate />
<span class="input-clear-button"></span>
<div class="item-input-info">Default "required" validation</div>
</div>
</div>
</li>
<li class="item-content item-input item-input-with-info">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Fruit</div>
<div class="item-input-wrap">
<input type="text" placeholder="Type 'apple' or 'banana'" required validate
pattern="apple|banana" />
<span class="input-clear-button"></span>
<div class="item-input-info">Pattern validation (<b>apple|banana</b>)</div>
</div>
</div>
</li>
<li class="item-content item-input item-input-with-info">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">E-mail</div>
<div class="item-input-wrap">
<input type="email" placeholder="Your e-mail" required validate />
<span class="input-clear-button"></span>
<div class="item-input-info">Default e-mail validation</div>
</div>
</div>
</li>
<li class="item-content item-input item-input-with-info">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">URL</div>
<div class="item-input-wrap">
<input type="url" placeholder="Your URL" required validate />
<span class="input-clear-button"></span>
<div class="item-input-info">Default URL validation</div>
</div>
</div>
</li>
<li class="item-content item-input item-input-with-info">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-title item-label">Number</div>
<div class="item-input-wrap">
<input type="text" placeholder="Enter number" required validate pattern="[0-9]*"
data-error-message="Only numbers please!" />
<span class="input-clear-button"></span>
<div class="item-input-info">With custom error message</div>
</div>
</div>
</li>
</ul>
</div>
<div class="block-title">Icon + Input</div>
<div class="list no-hairlines-md">
<ul>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-input-wrap">
<input type="text" placeholder="Your name" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-input-wrap">
<input type="password" placeholder="Your password" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-input-wrap">
<input type="email" placeholder="Your e-mail" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-media">
<i class="icon demo-list-icon"></i>
</div>
<div class="item-inner">
<div class="item-input-wrap">
<input type="url" placeholder="URL" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
</ul>
</div>
<div class="block-title">Label + Input</div>
<div class="list no-hairlines-md">
<ul>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">Name</div>
<div class="item-input-wrap">
<input type="text" placeholder="Your name" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">Password</div>
<div class="item-input-wrap">
<input type="password" placeholder="Your password" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">E-mail</div>
<div class="item-input-wrap">
<input type="email" placeholder="Your e-mail" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">URL</div>
<div class="item-input-wrap">
<input type="url" placeholder="URL" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
</ul>
</div>
<div class="block-title">Only Inputs</div>
<div class="list no-hairlines-md">
<ul>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-input-wrap">
<input type="text" placeholder="Your name" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-input-wrap">
<input type="password" placeholder="Your password" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-input-wrap">
<input type="email" placeholder="Your e-mail" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-input-wrap">
<input type="url" placeholder="URL" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
</ul>
</div>
<div class="block-title">Inputs + Additional Info</div>
<div class="list no-hairlines-md">
<ul>
<li class="item-content item-input item-input-with-info">
<div class="item-inner">
<div class="item-input-wrap">
<input type="text" placeholder="Your name" />
<span class="input-clear-button"></span>
<div class="item-input-info">Full name please</div>
</div>
</div>
</li>
<li class="item-content item-input item-input-with-info">
<div class="item-inner">
<div class="item-input-wrap">
<input type="password" placeholder="Your password" />
<span class="input-clear-button"></span>
<div class="item-input-info">8 characters minimum</div>
</div>
</div>
</li>
<li class="item-content item-input item-input-with-info">
<div class="item-inner">
<div class="item-input-wrap">
<input type="email" placeholder="Your e-mail" />
<span class="input-clear-button"></span>
<div class="item-input-info">Your work e-mail address</div>
</div>
</div>
</li>
<li class="item-content item-input item-input-with-info">
<div class="item-inner">
<div class="item-input-wrap">
<input type="url" placeholder="URL" />
<span class="input-clear-button"></span>
<div class="item-input-info">Your website URL</div>
</div>
</div>
</li>
</ul>
</div>
<div class="block-title">Only Inputs Inset</div>
<div class="list inset">
<ul>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-input-wrap">
<input type="text" placeholder="Your name" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-input-wrap">
<input type="password" placeholder="Your password" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-input-wrap">
<input type="email" placeholder="Your e-mail" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-input-wrap">
<input type="url" placeholder="URL" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</template>
<style>
.demo-list-icon,
.icon-t4 {
background: #ccc;
display: block;
position: relative;
}
.ios .demo-list-icon {
width: 29px;
height: 29px;
border-radius: 6px;
box-sizing: border-box;
}
.md .demo-list-icon {
width: 24px;
height: 24px;
border-radius: 4px;
}
.aurora .demo-list-icon {
width: 18px;
height: 18px;
border-radius: 4px;
}
</style>
Techno4 Framework
- Get Started
- Introduction
- Kitchen Sink
- Installation
- Package Structure
- App HTML Layout
- RTL Layout
- Initialize App
- Events
- Router Component
- Routes
- Store
- App/Core
- Accordion/Collapsible
- Action Sheet
- Area chart
- Autocomplete
- Badge
- Block/Content Block
- Breadcrumbs
- Button
- Calendar/Date Picker
- Cards
- Checkbox
- Chips
- Color Picker
- Contact List
- Data Table
- Dialog
- Floating action button
- Form
- Gauge
- Icons
- Inputs / Form Inputs
- Grid /Layout Grid
- Link
- List Button
- List View
- List Index
- Login Screen
- Menu List
- Messagebar
- Navbar
- Messages
- Notification
- Panel/Side Panels
- Photo Browser
- Picker
- Pie Chart
- Popover
- Popup
- Preloader
- Progressbar
- Pull to Refresh
- Radio
- Range Slider
- Searchbar