Баг: offset первого чипа в покое = 0 (считается от начала контента, не от вьюпорта),
а формула ждала offset≥235px → «Все» и соседние были невидимы/крошечные через пол-экрана.
Фикс: recedeFactor = info.offset / shrinkPx + 1 — полный размер в покое и правее (offset≥0),
уменьшение/затухание ТОЛЬКО когда чип уезжает влево под кнопку (offset<0, зона ~32dp).
Отступ-зазор уменьшен 96→60dp (Радио) / 100→64dp (Чарты) — «Все» вплотную к кнопке.
Вместо простого затухания края — per-chip трансформация по позиции: чип масштабируется
0.42..1 + alpha по recedeFactor (offset элемента в LazyRow: правее 92dp — норма, к 46dp —
исчез). transformOrigin центр-лево → будто уходит в глубину под кнопку-категорию.
Отступ слева увеличен (взлётка под кнопкой 96/100dp). Радио и Чарты.
Кнопка-категории теперь ПОВЕРХ чипов (Box-оверлей), чипы идут во всю ширину с
отступом слева под кнопку. У левого края — затухание прозрачности (Modifier.
fadingStartEdge: graphicsLayer Offscreen + horizontalGradient BlendMode.DstIn), так
чипы при прокрутке влево красиво уплывают под кнопку и растворяются, а не обрезаются.
FilterChips/GenreSelector получили параметр contentPadding. Экраны Радио и Чарты.
- Кнопка-«категории» (круглая, акцентная рамка, иконка SlidersHorizontal) СЛЕВА от
чипа «Все» — на экранах Радио и Чарты. Открывает шторку со списком всех категорий
(Радио — жанры, Чарты — стили) + поиск, чтобы не листать чипы. CategoryPicker —
переиспользуемый компонент с поиском и отметкой выбранного.
- SearchBar: анимированная кнопка очистки (X, scale+fade появление, haptic) при
непустом запросе.
Подтягиваем обогащённые данные с бэкенда (Discogs): genre/styles/label/year
в чартах и детальной странице.
- ChartEntry/TrackStats + DTO: добавлены genre/styles/label/year
- RadiolaApi: getCharts(?genre=), новый getGenres()
- ChartsViewModel: состояние выбранного жанра + список жанров, перезагрузка
- ChartsScreen: ряд чипов-фильтров по жанру (Все + жанры),
жанр/стили чипами и «Лейбл · Год» на детальной
- убран демо-fallback (SAMPLE_CHARTS) — бэкенд живой
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>