import-on-visibility — скилл для Claude Code: ленивая загрузка
Скилл учит агента откладывать загрузку компонентов и картинок до момента, когда пользователь доскроллит до них. Пригодится, если первый экран грузится слишком долго.
npx skills add PatternsDev/skills --skill import-on-visibility -a claude-codeЧто делает import-on-visibility
Скилл описывает приём import on visibility: модуль или изображение подгружается только тогда, когда попадает в область просмотра. Определить это можно через IntersectionObserver, либо взять готовую библиотеку вроде react-lazyload или react-loadable-visibility. Пока модуль едет, пользователь видит запасной компонент — так понятно, что страница не зависла, а просто ждёт загрузки.
Внутри — инструкции для агента, а не готовый код. Он подскажет, где поставить наблюдатель, как подключить библиотеку и что показать вместо ещё не загруженного блока. Файлы скилла лежат в SKILL.md и подхватываются для **/*.js и **/*.ts.
Главное ограничение — не тащить этот приём на первый экран. Для контента, который обязан отрисоваться сразу, отложенная загрузка даёт сдвиг вёрстки и медленный LCP. Лёгкие компоненты тоже не стоит оборачивать: накладные расходы окажутся больше выигрыша. И если текст важен для SEO, он должен быть в начальном HTML.
Какие задачи решает
- отложить загрузку блоков ниже первого экрана
- ускорить первую отрисовку страницы с тяжёлыми виджетами
- подключить
IntersectionObserverдля отслеживания видимости - показать заглушку, пока модуль грузится
- вынести картинки из начального запроса
Примеры запросов агенту
- Сделай ленивую загрузку галереи ниже первого экрана через IntersectionObserver
- Почему у меня сдвигается вёрстка при ленивой загрузке hero-блока?
- Подключи react-loadable-visibility для тяжёлого графика в футере
Как установить import-on-visibility
1Через Skills CLI (Vercel)
npx skills add PatternsDev/skills --skill import-on-visibility -a claude-code2Вручную: положить файлы
~/.claude/skills/import-on-visibility/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/import-on-visibility/
1Через Skills CLI (Vercel)
npx skills add PatternsDev/skills --skill import-on-visibility -a codex2Вручную: положить файлы
.agents/skills/import-on-visibility/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add PatternsDev/skills --skill import-on-visibility -a cursor2Вручную: положить файлы
.cursor/skills/import-on-visibility/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install PatternsDev/skills import-on-visibility2Вручную: положить файлы
.github/skills/import-on-visibility/SKILL.md1Через Skills CLI (Vercel)
npx skills add PatternsDev/skills --skill import-on-visibility -a gemini-cli2Командой платформы
gemini skills install https://github.com/PatternsDev/skills --path javascript/import-on-visibilityВручную: положить файлы
.devin/skills/import-on-visibility/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add PatternsDev/skills --skill import-on-visibility -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора44
Похожие
Рядом в теме «Фронтенд и UI»
Всё по теме «Фронтенд и UI» →Вопросы о import-on-visibility
Как установить import-on-visibility в Claude?
Выполните npx skills add PatternsDev/skills --skill import-on-visibility -a claude-code. После этого скилл окажется в ~/.claude/skills/import-on-visibility/SKILL.md.
Что делает import-on-visibility?
Учит агента откладывать импорт компонентов и изображений до того, как они попадут в область просмотра. В основе — IntersectionObserver или библиотеки вроде react-lazyload.
Когда этот приём применять не стоит?
Для контента на первом экране: отложенная загрузка даёт сдвиг вёрстки и медленный LCP. Лёгкие компоненты тоже не выигрывают — накладные расходы выше экономии.
Исходный текст
SKILL.md · MIT
--- name: import-on-visibility description: Teaches visibility-based lazy loading using Intersection Observer. Use when you have below-the-fold components or images that don't need to load until the user scrolls to them. paths: - "**/*.js" - "**/*.ts" license: MIT metadata: author: patterns.dev version: "1.1" related_skills: - "module-pattern" - "singleton-pattern" --- # Import On Visibility Besides user interaction, we often have components that aren't visible on the initial page. A good example of this is lazy loading images that aren't directly visible in the viewport, but only get loaded once the user scrolls down. As we're not requesting all images instantly, we can reduce the initial loading time. We can do the same with components! In order to know whether components are currently in our viewport, we can use the [`IntersectionObserver` API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API), or use libraries such as `react-lazyload` or `react-loadable-visibility` to quickly add import on visibility to our application. ## When to Use - Use this for components that aren't visible on the initial page (e.g., below-the-fold content) - This is helpful for lazy loading images, widgets, or heavy components as the user scrolls ## When NOT to Use - For above-the-fold content that must render immediately — deferring it causes visible layout shifts and slow LCP - When the component is lightweight enough that lazy loading adds more overhead than it saves - When the content is critical for SEO and needs to be present in the initial HTML ## Instructions - Use the `IntersectionObserver` API to detect when components enter the viewport - Use libraries like `react-lazyload` or `react-loadable-visibility` for quick implementation - Provide a loading fallback component while the module is being loaded ## Details Whenever a component is rendered to the screen, `react-loadable-visibility` detects that the element should be visible on the screen. Only then, it will start importing the module while the user sees a loading component being rendered. This fallback component lets the user know that our application hasn't frozen: they simply need to wait a short while for the module to be loaded, parsed, compiled, and executed! ## Source - [patterns.dev/vanilla/import-on-visibility](https://patterns.dev/vanilla/import-on-visibility)
© patterns.dev · MIT · PatternsDev/skills