fix(fonts): align all text sizes to handoff spec via Tailwind theme overrides

Глобальные правки через @theme в styles.css вместо 200+ точечных правок:

- text-sm: 14px -> 13px (handoff workhorse — body, buttons, tabs)
- text-2xs: undefined -> 11px (handoff IDs, mono meta — было невидимо)
- @utility text-cap: 10.5px Tektur uppercase 0.10em (handoff caps)

Codemod (30 sites): text-2xs + uppercase + tracking-[0.10em] -> text-cap.
Sidebar section labels consolidated с explicit text-[10.5px] на text-cap.

Покрывает 64 text-sm + 148 text-2xs автоматически. Table cells (12.5px)
и page/modal titles (17px/22px) остаются explicit text-[Npx] arbitrary
values по месту — нет slots в Tailwind scale.
This commit is contained in:
Zimin A.N.
2026-05-11 14:12:57 +03:00
parent 780de70fc5
commit 71432e9ae7
19 changed files with 56 additions and 31 deletions
@@ -253,7 +253,7 @@ function DictionariesPage() {
/>
</div>
<span className="text-2xs uppercase tracking-[0.10em] text-mute whitespace-nowrap font-mono">
<span className="text-cap text-mute whitespace-nowrap font-mono">
{filtered.length}/{data.length}
</span>
@@ -372,7 +372,7 @@ function DictionariesPage() {
<span className="text-sm uppercase tracking-[0.10em] text-accent font-mono font-medium">
{bundle}
</span>
<span className="text-2xs uppercase tracking-[0.10em] text-mute">
<span className="text-cap text-mute">
· {items.length} {t('dict.list.records.short')}
</span>
</h2>
@@ -482,7 +482,7 @@ const DictCard = ({ d, t }: { d: DictionaryDefinition; t: TFunc }) => {
)}
{hasFkRow && (
<div className="flex flex-wrap items-center gap-1.5 mt-2.5">
<span className="text-2xs font-display uppercase tracking-[0.10em] text-mute mr-1">
<span className="text-cap font-display text-mute mr-1">
{t('dict.list.fk.usedBy', { count: refBy.length })}
</span>
{refBy.slice(0, MAX_REFBY_CHIPS).map((dep) => (
@@ -509,7 +509,7 @@ const DictCard = ({ d, t }: { d: DictionaryDefinition; t: TFunc }) => {
v{d.schemaVersion}
</span>
{typeof d.recordCount === 'number' && (
<span className="text-2xs font-display uppercase tracking-[0.10em] text-mute/80 whitespace-nowrap">
<span className="text-cap font-display text-mute/80 whitespace-nowrap">
{t('dict.list.recordCount', { count: d.recordCount })}
</span>
)}