# pretext-text-measurement

Помогает рассчитывать высоту строк и перенос многострочного текста без обращения к DOM и вызова перерисовок страницы.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 694 установки · ★ 88
- Автор: reason-machines
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/reason-machines/trending-skills/tree/HEAD/skills/pretext-text-measurement/SKILL.md
- Обновлён: 2026-10-09
- HTML: https://affpapa.org/nevibecode/skills/pretext-text-measurement

## Что делает

Скилл обучает ИИ-агента применять библиотеку `@chenglou/pretext` для быстрого расчёта габаритов текста в TypeScript и JavaScript. Вместо чтения свойств `offsetHeight` или вызовов `getBoundingClientRect`, провоцирующих принудительную перерисовку страницы, геометрия надписей вычисляется через предварительную подготовку срезов и чисто арифметический перенос строк.

Работа строится на разделении операций. Функция `prepare` нормализует пробелы и один раз замеряет фрагменты шрифта, а функция `layout` подбирает переносы по ширине контейнера на основе сохранённых ширин. Метод подходит для виртуализированных списков и отрисовки надписей в `canvas`.

Для работы кода требуется установить в проект зависимость `@chenglou/pretext` через пакетный менеджер.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill pretext-text-measurement -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/pretext-text-measurement/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/pretext-text-measurement/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill pretext-text-measurement -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/pretext-text-measurement/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill pretext-text-measurement -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/pretext-text-measurement/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install reason-machines/trending-skills pretext-text-measurement
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/pretext-text-measurement/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill pretext-text-measurement -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/reason-machines/trending-skills --path skills/pretext-text-measurement
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/pretext-text-measurement/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill pretext-text-measurement -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/reason-machines/trending-skills/tree/HEAD/skills/pretext-text-measurement/SKILL.md

## Когда брать
- Рассчитать высоту абзаца без обращения к DOM
- Разбить текст на строки для отрисовки в canvas
- Вычислить высоту элементов перед добавлением в виртуализированный список
- Сверстать обтекание текстом блока с картинкой

## Примеры запросов агенту
- Помоги рассчитать высоту текстового блока через библиотеку pretext без вызова reflow
- Напиши функцию разбиения строки на фрагменты для рисования в canvas с помощью pretext
- Покажи, как рассчитать высоту строк для виртуального списка через prepare и layout

## Похожие
- [pretext](https://affpapa.org/nevibecode/skills/pretext.md) — скилл · 317 установок
- [pixijs-scene-text](https://affpapa.org/nevibecode/skills/pixijs-scene-text.md) — скилл · 5800 установок
- [text-and-bitmaptext](https://affpapa.org/nevibecode/skills/text-and-bitmaptext.md) — скилл · 823 установки
- [site-specification](https://affpapa.org/nevibecode/skills/site-specification.md) — скилл · 2100 установок
- [editorial-tech](https://affpapa.org/nevibecode/skills/editorial-tech.md) — скилл · 1500 установок
- [agency-grid-layout-minimal](https://affpapa.org/nevibecode/skills/agency-grid-layout-minimal.md) — скилл · 1400 установок

Из того же набора: [reason-machines/trending-skills](https://affpapa.org/nevibecode/by/reason-machines/trending-skills.md) — 186 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
