feat(photos): add square medium variant for sharp grid thumbnails
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# Spec Delta
|
||||
|
||||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: Отображение обложки альбома
|
||||
|
||||
Данные альбома SHALL включать URL обложки, когда обложка задана, чтобы клиенты могли
|
||||
показать её в списке, рейле и карточке; URL SHALL указывать на вариант, достаточный для
|
||||
крупного отображения, с откатом на миниатюру, пока крупный вариант не готов.
|
||||
|
||||
#### Scenario: Обложка задана
|
||||
|
||||
- **WHEN** клиент запрашивает список альбомов или альбом по id, и у альбома есть обложка
|
||||
- **THEN** ответ содержит URL обложки
|
||||
|
||||
#### Scenario: Обложка отсутствует
|
||||
|
||||
- **WHEN** у альбома нет обложки или фото обложки удалено
|
||||
- **THEN** ответ не содержит URL обложки, и клиент показывает плейсхолдер
|
||||
|
||||
#### Scenario: Крупный вариант ещё не готов
|
||||
|
||||
- **WHEN** у обложки готов только вариант-миниатюра
|
||||
- **THEN** ответ содержит URL миниатюры обложки
|
||||
@@ -0,0 +1,19 @@
|
||||
# Spec Delta
|
||||
|
||||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: Журнал объектов
|
||||
|
||||
Каждый физический объект SHALL иметь ровно одну запись в слое метаданных с ключом,
|
||||
MIME-типом, размером, габаритами и состоянием; фото SHALL ссылаться на объекты по
|
||||
ролям original, thumb, medium и preview.
|
||||
|
||||
#### Scenario: Привязка ролей
|
||||
|
||||
- **WHEN** фото загружено и обработано
|
||||
- **THEN** фото ссылается на объект-оригинал и, когда они готовы, на объекты thumb, medium и preview
|
||||
|
||||
#### Scenario: Оригинал без вариантов
|
||||
|
||||
- **WHEN** варианты ещё не сгенерированы
|
||||
- **THEN** фото доступно с оригиналом, а thumb, medium и preview отсутствуют
|
||||
@@ -0,0 +1,19 @@
|
||||
# Spec Delta
|
||||
|
||||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: Варианты изображений
|
||||
|
||||
Система SHALL генерировать четыре варианта: thumb (200×200, квадратный кроп), medium
|
||||
(800×800, квадратный кроп), preview (1200×1200, вписанный) и оригинал, в WebP, и извлекать
|
||||
EXIF (дата, координаты, размеры).
|
||||
|
||||
#### Scenario: Генерация вариантов
|
||||
|
||||
- **WHEN** фото загружено
|
||||
- **THEN** система асинхронно генерирует thumb, medium и preview и заполняет EXIF-поля
|
||||
|
||||
#### Scenario: Форма вариантов сетки
|
||||
|
||||
- **WHEN** генерируются thumb и medium
|
||||
- **THEN** они обрезаны до квадрата, а preview вписан с сохранением пропорций
|
||||
@@ -0,0 +1,23 @@
|
||||
# Spec Delta
|
||||
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Резкость миниатюр
|
||||
|
||||
Сетка фото и обзор альбомов SHALL подбирать вариант изображения под фактический размер
|
||||
плитки, чтобы миниатюры не отображались крупнее доступного разрешения.
|
||||
|
||||
#### Scenario: Крупные плитки
|
||||
|
||||
- **WHEN** пользователь увеличивает миниатюры до крупных плиток
|
||||
- **THEN** показывается вариант изображения, достаточный для их размера, без расплывания
|
||||
|
||||
#### Scenario: Мелкие плитки
|
||||
|
||||
- **WHEN** миниатюры показаны мелкими плитками
|
||||
- **THEN** показывается компактный вариант, чтобы не загружать крупное изображение
|
||||
|
||||
#### Scenario: Вариант ещё не готов
|
||||
|
||||
- **WHEN** для фото доступен только оригинал или только миниатюра
|
||||
- **THEN** показывается доступный вариант, и сетка отображается корректно
|
||||
Reference in New Issue
Block a user