Изображение
Image показывает картинку с заглушкой на время загрузки, запасным видом при ошибке и ленивой загрузкой, а alt остаётся верным в любом состоянии.
<tk-aspect-ratio ratio="4/3"> <tk-image src="/photos/market.jpg" alt="A market stall of fresh fruit"></tk-image> </tk-aspect-ratio>
Анатомия
| Часть | Что это |
|---|---|
tk-image |
рамка; изображение её заполняет |
| изображение | нативный <img>, вписанный в рамку по fit |
| заглушка | видна, пока изображение грузится; по умолчанию |
| запасной вид | виден, если загрузка не удалась или src пуст; утопленный блок со значком изображения |
Состояния
<tk-aspect-ratio ratio="4/3" style="max-width: 240px"> <tk-image alt="Product photo"></tk-image> </tk-aspect-ratio>
| Состояние | Когда | Что видно |
|---|---|---|
| loading | src задан, но ещё не загружен |
заглушка |
| loaded | изображение загрузилось | изображение |
| error | загрузка не удалась или src пуст |
запасной вид |
- Изображение из кэша никогда не застревает в загрузке.
- Пустой
srcсразу показывает запасной вид. - Смена
srcзапускает загрузку заново, в том числе после ошибки.
Место под изображение
Изображение без заранее заданной высоты сдвигает страницу, когда загружается. Резервируйте место для любого изображения на первом экране или в списке:
<tk-aspect-ratio ratio="16/9"> <tk-image src="/photos/hero.jpg" alt="The team at the spring offsite" loading="eager"></tk-image> </tk-aspect-ratio> <tk-image src="/photos/chart.png" alt="Sales by month, rising since March" width="800" height="450"></tk-image>
- Оберните его в
Aspect ratio или - задайте
widthиheightравными размеру исходника в пикселях. Они резервируют место до загрузки. Это размер исходника, а не пропорция.
Без того и другого изображение после загрузки примет свои пропорции, и страница сдвинется.
Вписывание
cover(по умолчанию): заполняет рамку и обрезает лишнее. Подходит внутри Aspect ratio.contain: показывает изображение целиком, оставляя пустые поля.
--tk-image-position задаёт точку фокуса (по умолчанию center). --tk-image-radius
скругляет углы (по умолчанию углы прямые).
<tk-aspect-ratio ratio="1/1" style="max-width: 160px"> <tk-image alt="Store logo" fit="contain" style="--tk-image-radius: var(--radius-12)"></tk-image> </tk-aspect-ratio>
Ленивая загрузка
loading="lazy" (по умолчанию) загружает изображение, когда оно приближается к области
просмотра. Для главного изображения в начале страницы ставьте eager.
Ленивая загрузка работает, только если место зарезервировано. Изображения без высоты сжимаются к началу страницы, и браузер загружает их все сразу.
Когда использовать
- Для изображений в контенте: фото, миниатюры, медиакарточки, иллюстрации.
- Для человека или организации берите
Avatar . - Передавайте уже подготовленное изображение. Image не меняет размер, не пережимает и
не строит
srcset; это делает ваш фреймворк или CDN изображений.
Текст
- Значимое изображение: в
altнапишите, что изображение показывает в этом контексте. Без «изображение с». - Декоративное изображение, которое повторяет текст рядом или просто украшает: задайте
alt="". - Всегда задавайте одно или другое. Без
altизображение считается декоративным, а в консоль пишется предупреждение.
Можно / нельзя
| ✅ Можно | ❌ Нельзя |
|---|---|
alt или alt="" для украшения |
Изображение без alt |
Место через Aspect ratio или width и height |
Ленивая загрузка без заданной высоты |
eager для главного изображения наверху |
Ленивая загрузка самого крупного изображения страницы |
| Изображение, уже подогнанное под рамку | Ждать, что Image уменьшит или сожмёт его |
| Avatar для людей | Аватар, собранный из Image |
Связанные
Aspect ratio : резервирует место под изображение.Skeleton : заглушка загрузки.Avatar : человек или организация.
API
Атрибуты
| Атрибут | Тип | По умолчанию | Что делает |
|---|---|---|---|
src |
string | адрес изображения; пустой показывает запасной вид | |
alt |
string | доступное имя; "" — декоративное |
|
fit |
cover | contain |
cover |
обрезать, заполняя рамку, или вписать целиком |
loading |
lazy | eager |
lazy |
загружать у области просмотра или сразу |
width |
number | ширина исходника в пикселях, чтобы зарезервировать место | |
height |
number | высота исходника в пикселях; задаётся вместе с width |
Слоты
| Слот | Содержимое |
|---|---|
placeholder |
заменяет заглушку загрузки |
fallback |
заменяет значок запасного вида |
События
Нет.
CSS
| Свойство | По умолчанию | Что делает |
|---|---|---|
--tk-image-radius |
0 |
скругляет углы |
--tk-image-position |
center |
точка фокуса (object-position) |
Токены
| Элемент | Токены |
|---|---|
| блок запасного вида | surface/sunken |
| значок запасного вида | icon/secondary |
| заглушка | токены |
Доступность
Встроено:
altостаётся именем изображения во время загрузки, после неё и после ошибки.- Заглушка скрыта от скринридеров.
- Неудачная загрузка никогда не озвучивается как «битое изображение»: запасной вид — это
изображение с именем из
altили скрытый блок приalt="".
На вашей стороне:
- Задавайте
altкаждому изображению илиalt=""декоративному. - Своё содержимое
fallbackлежит внутри названного блока запасного вида; оставьте его декоративным.