SculptForge
ZBrush 스타일 조각으로 VFX·애니메이션·게임 제작
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Design system neutre (tokens, composants React, skill Claude) inspiré de Paperclip
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Design system neutre, inspiré de Paperclip : gris purs, couleur réservée aux statuts et aux données, peu de texte, gros chiffres, explications au survol. Un cœur neutre, une couche de marque interchangeable, un thème sombre de référence et un thème clair dérivé.
npm run dev (http://localhost:3010)AppShell · Sidebar · PageHeader · SectionTitle · GroupDivider · Tabs · Button · IconButton · ToggleGroup · ModeSwitch · FilterSelect · Badge · StatusDot · Card · ChartCard · KpiStat · KpiGrid · BarChart · LineChart (bande d'incertitude) · Treemap · List · ListRow · DataTable · Drawer · InfoTooltip · EmptyState
Props et pièges : skills/graphite-ui/reference/components.md. Aucun texte ni donnée métier : tout est générique.
Le dépôt est privé. Le paquet est publié sur GitHub Packages (registre npm privé de GitHub) sous le nom @lucgsn/graphite-ui, à chaque release (Actions → Release). Il n'y a plus d'installation depuis Git, et rien n'est publié sur le registre npm public, où le nom graphite-ui appartient à un autre paquet.
GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token (classic) (GitHub Packages n'accepte que ces jetons, pas les jetons « fine-grained »).
graphite-ui (lecture) ; expiration : 90 jours à 1 an (à renouveler avant l'échéance).read:packages. Rien d'autre (surtout pas repo ni write:packages).LucGsn/graphite-ui : le paquet hérite des droits du dépôt privé.Poser le jeton dans l'environnement du poste, hors de tout dépôt (ex. ~/.zshrc) :
export NPM_TOKEN=<votre-jeton>
Dans le projet qui consomme le paquet, créer (et versionner) un fichier .npmrc à la racine. Il ne contient aucun jeton, seulement la référence à la variable (.npmrc.example) :
@lucgsn:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${NPM_TOKEN}
Installer avec un alias, pour que les imports restent graphite-ui :
npm install graphite-ui@npm:@lucgsn/[email protected] recharts
package.json contient alors "graphite-ui": "npm:@lucgsn/[email protected]", et tous les extraits ci-dessous (transpilePackages, @import, @source, imports) s'appliquent tels quels. Sans alias (npm install @lucgsn/graphite-ui), remplacer graphite-ui par @lucgsn/graphite-ui partout, y compris dans @source "../node_modules/@lucgsn/graphite-ui/src".
recharts n'est nécessaire que pour BarChart et LineChart. NPM_TOKEN doit être défini à chaque npm install / npm ci ; sinon npm répond « Failed to replace env in config: ${NPM_TOKEN} ».
.npmrc ci-dessus est dans le dépôt du projet (il ne contient pas de jeton).NPM_TOKEN = le jeton, cochée pour Production, Preview et Development (sans Preview, les déploiements de branches échouent), type Sensitive..npmrc et la variable ; aucune autre commande n'est nécessaire.La vitrine de ce dépôt n'a pas besoin de NPM_TOKEN : elle importe ../src directement. Dans les GitHub Actions d'un projet consommateur : env: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} (secret du dépôt).
| Message ou symptôme | Cause probable |
|---|---|
401 Unauthorized | NPM_TOKEN absent, expiré, révoqué, ou non défini pour cet environnement Vercel (Preview). |
404 Not Found - @lucgsn/graphite-ui | Le compte du jeton n'a pas accès au dépôt, ou la ligne @lucgsn:registry=… manque dans le .npmrc. |
Failed to replace env in config | NPM_TOKEN n'est pas défini dans l'environnement qui lance npm. |
Un autre paquet graphite-ui s'installe (ou 404 npmjs) | Installation sans alias ni scope : utiliser graphite-ui@npm:@lucgsn/graphite-ui@<version>. |
No matching version | Cette version n'est pas publiée (la 0.2.0 ne l'a jamais été : voir le CHANGELOG). |
1. next.config.ts — le paquet est livré en TypeScript :
const config: NextConfig = { transpilePackages: ["graphite-ui"] };
2. app/globals.css :
@import "tailwindcss";
@import "graphite-ui/styles.css";
/* @import "graphite-ui/themes/omnes.css"; */ /* thème de marque d'exemple, facultatif */
@source "../node_modules/graphite-ui/src";
@source est relatif au fichier CSS : ajuster le nombre de ../ selon son emplacement.
3. app/layout.tsx — thème posé sur <html>, police Inter :
import { Inter } from "next/font/google";
const inter = Inter({ subsets: ["latin"], variable: "--font-inter" });
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="fr" data-theme="dark" className={inter.variable}>
<body>{children}</body>
</html>
);
}
data-theme="light" pour le clair ; data-brand="omnes" pour le thème de marque (combinables).
4. Utiliser les composants :
import { KpiGrid, KpiStat, Badge } from "graphite-ui";
export default function Page() {
return (
<KpiGrid>
<KpiStat
label="Taux d'activation"
value="44"
unit="%"
caption="vs 41 le mois dernier"
info="Part des comptes qui font une première action sous 7 jours."
badge={<Badge tone="success">Solide</Badge>}
/>
</KpiGrid>
);
}
Dans un composant serveur, ne pas passer de fonction à un composant client : pour les graphiques, unit="%" plutôt que formatValue. Détails : reference/components.md.
Mettre à jour : changer la version dans package.json (npm:@lucgsn/[email protected]), puis npm install. Les versions sont consignées dans le CHANGELOG.
Un questionnaire se décrit en JSON (contrat versionné, huit types de questions, affichage conditionnel) et s'affiche avec OnboardingShell : une question ou une section par écran, écrans personnalisés, enregistrement et reprise, récapitulatif, écran de fin. Le contrat et sa validation s'importent sans React : import { validateQuestionnaire } from "graphite-ui/questionnaire". Aucun appel à une IA dans le paquet : une IA peut générer le document, validateQuestionnaire dit s'il est conforme (voir le skill). Démonstration : /onboarding dans la vitrine.
Le dossier skills/graphite-ui/ contient SKILL.md, les tokens (tokens/), une référence des composants et trois pages d'exemple (examples/). Il est autonome.
node scripts/install-skill.mjs (installe dans ~/.claude/skills/graphite-ui) ou node scripts/install-skill.mjs --project (dans ./.claude/skills/ du projet courant).graphite-ui-skill-vX.Y.Z.zip). Pour le fabriquer à la main : zipper le dossier skills/graphite-ui (le dossier graphite-ui/ doit être à la racine de l'archive).npm install
npm run dev # vitrine
npm test # rendu des composants, contraste ≥ 4,5:1, aucune couleur en dur, skill à jour
npm run lint && npm run typecheck && npm run build
npm run tokens # régénère les CSS (et les copies du skill) depuis tokens/tokens.json
npm run shots # captures sombre/clair × 1440/375 dans docs/captures (après build)
npm run shots:onboarding # parcours d'onboarding : captures + contrôle axe (contraste compris)
tokens/tokens.json est la source unique : npm run tokens en génère src/styles/tokens.css, src/styles/themes/*.css et les copies du skill ; un test échoue si l'un d'eux est périmé.
X.Y.Z dans package.json, showcase/package.json et package-lock.json (les deux lignes version du lockfile), ajouter l'entrée du CHANGELOG, ouvrir une PR vers main, CI verte, fusionner.main), saisir X.Y.Z.package.json, publie @lucgsn/[email protected] sur GitHub Packages, crée le tag vX.Y.Z et la release avec le zip du skill (graphite-ui-skill-vX.Y.Z.zip). Une version déjà publiée n'est jamais republiée.NPM_TOKEN=<jeton read:packages> npm run verify:install.Importer le dépôt dans Vercel, Root Directory = showcase, framework Next.js. L'option « Include source files outside of the Root Directory » (activée par défaut) est nécessaire : la vitrine importe ../src.