- name
- ui-foundations
- description
- Use when defining or reviewing massCode UI foundation rules such as typography, renderer styling consistency, TailwindCSS v4 usage, and when raw markup starts competing with established UI text patterns.
# UI Foundations
## Overview
UI в massCode должен оставаться визуально консистентным. Этот skill отвечает за базовые styling decisions: как относиться к typography, когда использовать established text patterns и как не скатываться в разрозненный renderer styling.
## Core Rules
- Базовая styling system в renderer строится на TailwindCSS v4.
- Новые UI-экраны и состояния должны продолжать существующий visual language, а не вводить локальные правила “для одного места”.
- Для стандартного app UI предпочитай семантические токены вроде `bg-background`, `text-muted-foreground`, `border-border`, `border-destructive/*` вместо raw palette-классов вроде `bg-white`, `text-black`, `text-green-500`, `bg-slate-900`.
- Typography по умолчанию строится через `UiText`.
- Не заменяй `UiText` на произвольный набор `text-*`, `font-*`, `text-muted-foreground`, если подходящий variant уже существует.
- Если `UiText` почти подходит, лучше добавить точечные классы поверх него, чем уходить в raw typography markup.
## Typography
- `UiText` — базовый источник правды для текстовых размеров и muted-state.
- `caption` и `xs` — подписи, helper text, secondary labels.
- `sm` и `base` — основной интерфейсный текст.
- `lg` и `xl` — усиленные title/value cases, когда это действительно нужно по hierarchy.
- `font-mono` — только для code-like content, IDs, counts with alignment needs, readonly generated output и подобных случаев.
- Для uppercase labels используй существующий pattern через `UiText` или согласованный tracking/uppercase стиль, а не случайную смесь utility classes в каждом месте.
## Spacing And Layout Rhythm
- Корневые screen/container wrappers обычно живут в ритме `space-y-4` или `space-y-6`.
- Внутри компактных секций чаще всего `space-y-2` или `space-y-3`.
- Grid gaps по умолчанию: `gap-2`, `gap-3`, `gap-4` в зависимости от плотности.
- Не придумывай локальный spacing-scale для одного экрана, если существующие интервалы уже покрывают задачу.
- Повторяющиеся content blocks должны иметь одинаковый padding и vertical rhythm.
## Radius And Shadows
- `rounded-md` — controls, inline boxes, compact containers.
- `rounded-lg` — card-like blocks, dialogs, overlays, dashboard sections.
- `rounded-xl` — preview-heavy surfaces и крупные visual blocks.
- `rounded-full` — pills, badges, circular handles.
- `shadow-xs` — inputs, buttons, small controls.
- `shadow-md` и `shadow-lg` — overlays, popovers, previews, где elevation реально нужна.
- Не вводи произвольные `rounded-[...]` и `shadow-[...]`, если стандартные токены уже подходят.
## Exceptions
- Raw colors допустимы, если цвет является частью самих данных или preview:
color pickers, contrast previews, code/image export backgrounds, diagram or visualizer nodes.
- Если цвет вычисляется из контента или нужен для корректного контраста на пользовательском фоне, raw class или inline style допустимы.
- Исключения не должны становиться поводом тащить raw palette в обычный application chrome.
## When To Prefer This Skill
- Нужно понять, как оформлять текст и подписи в новом UI.
- Есть соблазн писать raw Tailwind typography вместо существующего text pattern.
- В экране начинают появляться локальные styling rules, которые расходятся с остальным renderer UI.
- Нужно принять решение на уровне визуальной базы, а не конкретного button/input/dialog.
## Common Mistakes
- Размазывать локальные визуальные исключения по фичам.
- Тащить raw palette в обычный app UI без реальной причины.
- Писать текст напрямую через произвольные utility classes там, где подходит `UiText`.
- Делать новый экран со своим spacing rhythm вместо существующего scale.
- Случайно смешивать small-control radii и preview-surface radii в одном и том же UI слое.
- Считать Tailwind поводом делать каждый экран визуально “с нуля”.
Ver no GitHub