Трек дизайна: токены-фундамент (F7Spacing/F7Radius) + карта Figma
- Снятие токенов из Figma роли design (ocVUCYCrfFUoqYYvlcLPBF): цвета сверены — совпадают с F7Colors; типографика Raleway 14/18/20/24 (база в F7Typography есть). - F7Spacing (4dp-сетка) + F7Radius — закрывают аудитный пробел «нет spacing-токенов». - docs/DESIGN-SOURCE.md: карта страниц/секций Figma, доступ по API, процесс попиксельной вёрстки, заметка про rate-limit (точечные node-запросы). Источник — Figma (боевой forbion не трогаю). Координация mail/044. designsystem компилируется.
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
Формат: `ГГГГ-ММ-ДД | версия | изменение | контракты | риск`
|
||||
|
||||
- 2026-07-08 | v0.5.114 (122) | Трек дизайна (старт): снятие дизайн-токенов из Figma роли design (файл ocVUCYCrfFUoqYYvlcLPBF, доступ по API-токену вне git). Цвета сверены — совпадают с F7Colors; типографика — Raleway 14/18/20/24; заведены F7Spacing (4dp-сетка) + F7Radius (аудит: не было spacing-токенов, ~1087 инлайновых .dp). docs/DESIGN-SOURCE.md — карта Figma + процесс попиксельной вёрстки. Источник — Figma, боевой forbion НЕ трогаю. Координация — mail/044 | дизайн-система (аддитивно, пока не используется) | нет: новые токены, поведение не меняется
|
||||
|
||||
- 2026-07-07 | v0.5.114 (122) | Этап 1 (version catalog): заведён gradle/libs.versions.toml, 15 module build.gradle мигрированы на libs.* (скриптом). Устранён дрейф версий: coroutines 1.8.1/1.10.1→1.10.1, coil 2.6.0/2.7.0→2.7.0, lifecycle 2.8.1/2.8.7→2.8.7, activity-compose 1.9.0/1.10.1→1.10.1, core-ktx 1.13.1/1.15.0→1.15.0. Firebase в core/push переведён на bom (был explicit 24.0.1). Compose BOM в каталоге вместо дубля в каждом модуле. Проверено сборкой | контракты не менялись; версии унифицированы вверх (minor-бампы) | низкий: сборочная гигиена, унификация версий
|
||||
- 2026-07-07 | v0.5.114 (122) | Этап 1 (статанализ): detekt 1.23.8 + formatting-ruleset (ktlint) на все наши модули (vendor исключён), совместим с Kotlin 2.3. config/detekt/detekt.yml + per-module detekt-baseline.xml (~403 текущих замечаний зафиксированы → зелёный, ловит только новые). Добавлен в CI verify-джобу. Нормальные сборки (assembleDebug/Release) не затрагивает (detekt только в check/CI) | процесс качества | нет: тулинг, кода приложения не трогает
|
||||
- 2026-07-07 | v0.5.114 (122) | Этап 1 (единый OkHttpClient, ч.2 — 401 централизован): добавлен UnauthorizedInterceptor (401→UnauthorizedException) в NetworkFactory (флаг throwOnUnauthorized, по умолч. true). Удалены 75 ручных проверок `if(code==401) throw` в 16 репозиториях. Login-верификация (AuthVerifier) исключена (throwOnUnauthorized=false: 401=«неверный пароль», не session-expired). Побочно: теперь 401 ловится единообразно ВЕЗДЕ, включая пути, что раньше проверку забывали. +3 теста (MockWebServer: 401 бросает, 200/403 проходят) — всего 18. Проверено сборкой | контракты не менялись; поведение 401 сохранено (interceptor бросает то же исключение) | средний: затрагивает обработку 401 во всех репозиториях; login-путь исключён явно, покрыто тестами
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package ru.forbion.f7cloud.core.designsystem
|
||||
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Токены отступов и радиусов (4dp-сетка). До этого отступы задавались числами по месту
|
||||
* (аудит: ~1087 инлайновых .dp без токенов) — единая шкала для попиксельной вёрстки по Figma.
|
||||
* Точные значения конкретных экранов сверяются с макетом; эти — базовая сетка.
|
||||
*/
|
||||
object F7Spacing {
|
||||
val none = 0.dp
|
||||
val xxs = 2.dp
|
||||
val xs = 4.dp
|
||||
val sm = 8.dp
|
||||
val md = 12.dp
|
||||
val lg = 16.dp
|
||||
val xl = 20.dp
|
||||
val xxl = 24.dp
|
||||
val xxxl = 32.dp
|
||||
|
||||
/** Горизонтальные поля экрана (мобильный контент). */
|
||||
val screenHorizontal = 16.dp
|
||||
}
|
||||
|
||||
object F7Radius {
|
||||
val none = 0.dp
|
||||
val sm = 6.dp
|
||||
val md = 10.dp
|
||||
val lg = 14.dp
|
||||
val pill = 999.dp
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
# Источник дизайна — Figma (попиксельная мобильная вёрстка)
|
||||
|
||||
Задача: мобильный клиент = мобильная версия F7 попиксельно. Источник истины — **Figma роли `design`**
|
||||
(не боевой forbion; glb устарел). Координация — mail/044 (через integrator-b). Приоритет:
|
||||
**Файлы → Почта → Конференции**, референс **360dp**, тема светлая.
|
||||
|
||||
## Доступ к Figma API
|
||||
|
||||
Токен — вне git: `/root/.f7cloud-keys/figma.env` (`FIGMA_TOKEN`, `FIGMA_FILE=ocVUCYCrfFUoqYYvlcLPBF`).
|
||||
```bash
|
||||
source /root/.f7cloud-keys/figma.env
|
||||
curl -H "X-Figma-Token: $FIGMA_TOKEN" "https://api.figma.com/v1/files/$FIGMA_FILE/nodes?ids=<ID>&depth=2"
|
||||
```
|
||||
⚠️ **Rate limit:** глубокие сканы всей страницы (`1:90` depth≥3) ловят **429**. Работать ТОЧЕЧНО —
|
||||
запрашивать конкретные node ID нужного экрана с малой глубиной. Рендер кадра в PNG:
|
||||
`GET /v1/images/$FIGMA_FILE?ids=<ID>&format=png&scale=2`.
|
||||
|
||||
## Карта файла (страницы)
|
||||
|
||||
| ID | Страница |
|
||||
|---|---|
|
||||
| `1:90` | 🟢 Дизайн облачного рабочего места — ОСНОВНОЙ дизайн (65 секций по модулям) |
|
||||
| `0:1` | Брендбук (токены: TYPOGRAPHY 1:116, цвета 97:8269) |
|
||||
| `2095:46379` | ⚫️ Пробная тёмная тема (на будущее) |
|
||||
|
||||
Мобильные экраны — кадры **360px** (полноэкранные ~360x800), разбросаны по секциям модулей и по
|
||||
верхнему уровню `1:90`. Секции: Файлы `17:4427`/`948:65419`, Почта `97:16912`/`1609:71537`,
|
||||
Конференции/Встречи `4:1166`, Конференция `1002:67493`. NB: ссылка владельца `1327:29454` —
|
||||
ДЕСКТОП (1440), не мобиль.
|
||||
|
||||
## Снятые токены (сверено с Figma)
|
||||
|
||||
**Цвета** — совпадают с текущим `F7Colors` (палитра снята точно ранее): Primary `#70B62B`,
|
||||
Background `#FBFBFB`, Surface `#FFFFFF`, SurfaceMuted `#F5F5F5`, TextPrimary `#151515`,
|
||||
TextSecondary `#808080`, Border `#E6E6E6`, PrimaryLight `#F1F8EA`.
|
||||
|
||||
**Типографика** — шрифт **Raleway** (medium 500 / semibold 600), шкала 14/18/20/24px
|
||||
(lh 20/22/24/26). В `F7Typography` есть база; точные размеры конкретных экранов сверяются поэкранно.
|
||||
|
||||
**Spacing/радиусы** — раньше НЕ было токенов (аудит: ~1087 инлайновых .dp). Заведены
|
||||
`F7Spacing` (4dp-сетка) + `F7Radius`. Точные значения экрана — с макета.
|
||||
|
||||
## Процесс попиксельной вёрстки (на экран)
|
||||
|
||||
1. Найти node ID мобильного экрана (360) в Figma, отрендерить PNG-эталон (scale=2).
|
||||
2. Извлечь измерения: размеры/паддинги/цвета/текст-стили дочерних узлов (точечный nodes-запрос).
|
||||
3. Свести к токенам (`F7Colors`/`F7Spacing`/`F7Typography`), реализовать в Compose.
|
||||
4. Верификация side-by-side: PNG Figma ↔ скриншот приложения (владелец — физ.телефон + BlueStacks;
|
||||
universal debug-APK со всеми ABI готов, дефолт-URL glb).
|
||||
Reference in New Issue
Block a user