Skip to main content

shade-imports

Import Shade from layer-specific subpaths (primitives, components, patterns, page-templates, utils), never the root barrel. Trigger when editing TSX/TS in Shade-consuming apps.

Informações da origem

Repositório
TryGhost/Ghost
Última atividade na origem
5 de agosto de 2026 às 14:15
Idioma detectado do SKILL.md
inglês
Estrelas
55.544
Forks
11.995

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
Shade imports
description
Import Shade from layer-specific subpaths (primitives, components, patterns, page-templates, utils), never the root barrel. Trigger when editing TSX/TS in Shade-consuming apps.
autoTrigger
[{"fileEdit":"apps/{shade,admin,admin-x-framework,activitypub}/**/*.{ts,tsx}"}]
# Shade imports Always import Shade from its **layer-specific subpath**. Never from the root barrel `@tryghost/shade`. ## Correct ```ts import {Stack, Inline, Box, Grid, Container, Text} from '@tryghost/shade/primitives'; import {Button, Input, Dialog} from '@tryghost/shade/components'; import {PageHeader, KpiCard, Filters} from '@tryghost/shade/patterns'; import {ListPage} from '@tryghost/shade/page-templates'; import {cn, formatNumber} from '@tryghost/shade/utils'; import {ShadeApp} from '@tryghost/shade/app'; ``` **Note:** `ListPage` is in `@tryghost/shade/page-templates`, not `/patterns`. Page templates are top-level page wrappers; patterns are the building blocks they compose. ## Incorrect ```ts // BAD — root barrel import {Button, Stack} from '@tryghost/shade'; // BAD — deep path into source import {Button} from '@tryghost/shade/src/components/ui/button'; ``` ## Inside Shade itself When editing files under `apps/shade/src/**`, use the `@/` alias for cross-file imports: ```ts import {cn} from '@/lib/utils'; import {inputSurface} from '@/components/ui/input-surface'; ``` ## Why Subpath imports make the layer (primitive/component/pattern) visible at the call site, which is the first piece of information a reader needs. The root barrel hides that and encourages cross-layer drift.
Ver no GitHub