Files
design-system/prompt-template.md
Тимур Городецкий 7623425d97 feat: initial design system v1.0.0 (tokens, mixins, guide)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 10:18:16 +05:00

81 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Промпт-шаблон: переверстка веб-части под дизайн-систему @tansu/design-system
Открой новый чат с Claude в папке нужного проекта. Приложи:
1. `tansu_v5_executive_premium.html` — визуальный эталон компонентов.
2. Код веб-части (`.tsx` и `.module.scss`).
Токены **не прикладывай** — они уже в проекте как пакет
`@tansu/design-system`. Затем вставь промпт ниже (замени `[…]`).
---
```
Ты — senior SPFx-разработчик. Перевёрстай стили веб-части под общую дизайн-систему.
## Дизайн-система (уже установлена как пакет)
Стили берём ТОЛЬКО из @tansu/design-system. В каждом .module.scss:
@import '~@tansu/design-system/styles/tokens';
Доступны: $navy-*, $gold-*, $gray-*, семантические цвета, $font-serif/$font-sans,
$fs-*, $r-*, $sh-*, $grad-*, $sp-1…$sp-8 и миксины:
page-header, card-hover-gold, btn-accent, input-focus-gold, hairline.
## Референс (приложен)
tansu_v5_executive_premium.html — эталонный вид всех компонентов.
ВНИМАНИЕ: тёмная верхняя навигация с табами в мокапе — ТОЛЬКО для просмотра,
НЕ часть дизайна. Не добавляй её в веб-часть (навигацию даёт сам SharePoint).
Веб-часть начинается с хлебных крошек и шапки (.ph).
## Контекст проекта
- SPFx 1.22.1, сборка на Heft (команда запуска: `heft start`, НЕ gulp).
- React 17, TypeScript strict, SCSS Modules.
- Это веб-часть [НАЗВАНИЕ].
## Задача
1. В каждом .module.scss добавь @import '~@tansu/design-system/styles/tokens'.
2. Замени ВСЕ хардкод-цвета на переменные из токенов (сырой hex запрещён).
3. Приведи компоненты к эталону из HTML:
- Шапка экрана → @include page-header + заголовок $font-serif.
- Кнопки → 5 уровней (Primary navy / Accent gold / Secondary / Ghost / Danger),
не больше одной Accent на экран.
- Инпуты → @include input-focus-gold.
- Карточки → @include card-hover-gold.
- Таблицы → uppercase-заголовки, hover строки $gold-50.
- Бейджи → со статус-точкой.
4. Иконки — @fluentui/react-icons, стиль Regular (outline).
5. Формат всех дат: дд.мм.гггг.
## Стиль кода (обязательно)
- React Function Components + hooks, без классов.
- interface Props явно; логика отделена от JSX; ранние return.
- Один компонент — один файл. Запросы к SharePoint — только в services/.
- Явно обрабатывай loading / error / empty.
## Ограничения
- НЕ меняй бизнес-логику, props, state, обработчики, запросы к SharePoint.
- НЕ переименовывай CSS-классы, на которые ссылается .tsx, без правки .tsx.
- Выводи полные файлы целиком, а не фрагменты.
## Код веб-части
[приложены файлы]
```
---
## Порядок работы
- **Одна веб-часть (или один экран) = одна сессия.** Не грузи весь проект сразу.
- После сессии: `heft start` → workbench → скриншот → при расхождении попроси
сравнить скриншот с нужной вкладкой HTML-референса и поправить.
## Чек-лист соответствия V5 (по каждой веб-части)
- [ ] НЕТ тёмной верхней навигации из мокапа
- [ ] Шапка: navy-градиент, золотая линия снизу, заголовок Lora
- [ ] Хлебные крошки с золотым разделителем
- [ ] Кнопки: не больше одной Accent на экран
- [ ] Инпуты: золотой focus-ring
- [ ] Таблицы: uppercase-заголовки, золотой hover
- [ ] Карточки: подъём на 2px + золотая рамка при hover
- [ ] Бейджи со статус-точкой
- [ ] Даты: дд.мм.гггг
- [ ] Иконки: Fluent UI Regular (outline)
- [ ] Нет сырого hex — только переменные токенов