Описание компонента File Upload
Назначение компонента
Компонент File Upload
(загрузка файлов) предоставляет интуитивно понятный интерфейс для выбора и загрузки файлов. Основные функции:
- Загрузка файлов по клику
- Отображение информации о выбранном файле
- Индикатор прогресса загрузки
- Возможность удаления выбранного файла
Структура компонента
Компонент состоит из:
- Контейнера (
.sf-file-upload-container
) - Стандартного поля загрузки (
.sf-file-upload-standart
) - Блока отображения выбранного файла (
.sf-file-upload-show
) - Элементов управления (иконки, кнопка удаления)
- Индикатора прогресса (
.sf-progress-bar-container
)
Классы и их назначение
Класс | Назначение |
---|---|
.sf-file-upload-container |
Основной контейнер компонента |
.sf-file-upload-standart |
Стандартное поле для выбора файлов |
.sf-file-upload-show |
Блок отображения выбранного файла |
.sf-file-upload--icon |
Иконка загрузки |
.sf-file-upload--icon-delete |
Класс блока удаления файла |
.sf-file-upload--file-name |
Поле для отображения имени файла |
.sf-file-upload--file-size |
Поле для отображения размера файла |
.sf-file-upload-link--blue |
Стилизованная ссылка для загрузки |
.sf-progress-bar-container |
Контейнер индикатора прогресса |
.sf-progress-bar |
Сам индикатор прогресса |
Состояния компонента
1. Исходное состояние
- Отображается поле для выбора файлов
- Блок
.sf-file-upload-show
скрыт
2. После выбора файла
- Основное поле скрывается
- Показывается блок
.sf-file-upload-show
с информацией о файле - Отображается индикатор прогресса
Таблица CSS-переменных
Переменная | Описание |
---|---|
--sf-outline |
Цвет границы контейнера |
--sf-radius-1 , --sf-radius-3 |
Радиусы скругления элементов |
--sf-on-surface-variant |
Цвет текста |
--sf-primary |
Основной цвет (для иконок и ссылок) |
--sf-surface-2 |
Фон иконки загрузки |
--sf-space-1 , --sf-space-3 |
Отступы |
--sf-text--size-3 |
Размер текста |
--sf-text--height-1/2 |
Высота строки |
--sf-d0 |
Размер иконки |
<div class="sf-file-upload-container"> <label class="sf-file-upload-standart"> <input type="file" name="example"> <div class="sf-file-upload--icon"> <i class="sf-icon">cloud_upload</i> </div> <span> <span class="sf-file-upload-link--blue">Click to upload</span> or drag and drop </span> <span> SVG, PNG, JPG or GIF (max. 800x400px) </span> </label> <div class="sf-file-upload-show"> <div class="sf-file-upload-show-icon-block"> <div class="sf-file-upload--icon"> <i class="sf-icon">cloud_upload</i> </div> </div> <div class="sf-file-upload-show-content-block"> <div class="sf-file-upload-show-content-block-main"> <div class="sf-file-upload-show-content-block-main--name"> <span class="sf-file-upload--file-name"></span> <span class="sf-file-upload--file-size"></span> </div> <div class="sf-file-upload--icon-delete"> <i class="sf-icon">delete</i> </div> </div> <div class="sf-progress-bar-container"> <div class="sf-progress-bar" style="--width: 0"></div> <span class="sf-progress-bar-percent">50%</span> </div> </div> </div> </div>