Skip to content

сделать кольцо фокуса прозрачным и снять подложки в inputtext - #143

Open
khaliulin wants to merge 2 commits into
mainfrom
style.inputtext
Open

сделать кольцо фокуса прозрачным и снять подложки в inputtext#143
khaliulin wants to merge 2 commits into
mainfrom
style.inputtext

Conversation

@khaliulin

Copy link
Copy Markdown
Contributor

Кольцо фокуса приведено к свежему экспорту из Figma, попутно снят костыль в невалидном состоянии и убраны подложки из примеров.

Кольцо фокуса

Сверка нашего tokens.json со свежим экспортом показала расхождение не в компоненте, а в семантическом слое — ровно два пункта в color.border:

Роль было стало
focus {colors.solid.green.200} = #d4fedc (непрозрачный) {colors.alpha.green.200} = rgba(68,232,88,0.2)
status.danger.focus отсутствовала {colors.alpha.red.200} = rgba(232,82,68,0.2)

Обе правки внесены в light и dark; примитивы colors.alpha.green/red.200 в базе уже были, слои не нарушены.

В tokens/components/inputtext.ts красное кольцо невалидного поля переведено с фонового костыля color.bg.status.danger.weak.active на появившуюся роль:

box-shadow: 0 0 0 ${dt('inputtext.root.focusRing.width')} ${dt('color.border.status.danger.focus')};

Проверено кликом в браузере на story States: обычное поле — мягкое полупрозрачное зелёное кольцо вокруг зелёной рамки, невалидное — полупрозрачное красное. Переменные: --p-color-border-focus = rgba(68,232,88,0.2), --p-color-border-status-danger-focus = rgba(232,82,68,0.2).

Внимание при ревью: color.border.focus — общая роль, на неё ссылаются 84 компонентных токена и напрямую пять файлов стилей (checkbox, radiobutton, slider, chip, toggleswitch). Прозрачное кольцо получил весь кит, а не только поле ввода. Это соответствует экспорту, но задевает больше одного компонента.

Подложки

bg-surface-ground p-4 снят во всех пяти примерах (clearable, labels, sizes, states, types), включая блоки docs.source. Вред был не только формальный: в тёмной теме плашка остаётся светлой, и подписи примеров — белый текст на светлом фоне — становились нечитаемыми.

check-stories-bg.mjs inputtext✓ подложек нет (было 5 FAIL).

Гейты

check-component.mjs inputtext — 0 FAIL, 1 WARN (extend.borderWidth не применён, был и до PR); check-dt-refs без мёртвых ссылок inputtext; prettier и tsc --noEmit чисто.

Что осталось за рамками этого PR

Приёмка нашла ещё три вещи, они не тронуты:

  1. Дробная высота поля во всех размерах — 39.5 / 43.5 / 51.5 / 63.5px. Причина: .p-inputtext { line-height: {fonts.lineHeight.250} } = 16px, но для <input> Chrome не опускает строку ниже метрики шрифта (21.5px), поэтому значение не применяется. Ступень fonts.lineHeight.300 (18px) дала бы ровно 40px на base — но это визуальное изменение, нужна сверка с макетом.
  2. Ошибка в консоли на story States: TypeError: Cannot set property invalid of [object Object] which has only a getter — story отдаёт invalid в props, а в компоненте это геттер (inputtext.component.ts:144).
  3. extend.borderWidth есть в базе, но рамку рисует Aura своим значением.

Вопросы к дизайну

  • Кегль одинаков во всех размерах: root.fontSize не задан, а sm, lg и extXlg все ссылаются на fonts.fontSize.300 = 16px; размеры отличаются только вертикальным паддингом. Так задумано или экспорт потерял ступени?
  • G9–G11 не выполнены: Figma MCP в сессии не подключался, сверка значений, типографики и покрытия состояний с редлайном не проводилась.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant