diff --git a/README.kr.md b/README.kr.md new file mode 100644 index 0000000..5cafcf3 --- /dev/null +++ b/README.kr.md @@ -0,0 +1,212 @@ +
스타일을 보고, 화면을 조합하고, 구현으로 이어가세요.
+디자인 레퍼런스 아틀라스 · 프런트엔드 패턴 · 에이전트용 Code Mode MCP
+ 사이트 둘러보기 → · + MCP 설치 · + MCP · + 플러그인 가이드 · + 문제 제보 +
+ + + +## MCP 설치 + +Node.js 22 이상이 필요합니다. 저장소를 내려받으면 커밋된 JavaScript로 바로 조회할 수 있습니다. +MCP만 사용할 때는 `npm install`이나 빌드가 필요하지 않습니다. + +```bash +git clone https://github.com/lidge-jun/design-isms.git +``` + +MCP 클라이언트에 다음 stdio 서버를 추가하세요. `/absolute/path/design-isms`를 실제 **절대 경로**로 바꿉니다. +아래는 `mcpServers` 형식이며, 설정 파일 위치와 최상위 키는 호스트마다 다를 수 있습니다. + +```json +{ + "mcpServers": { + "design-isms": { + "command": "node", + "args": ["/absolute/path/design-isms/scripts/mcp/server.mjs"] + } + } +} +``` + +연결되면 `execute_code` 도구 하나가 보입니다. `return actions.find();`로 지원 연산을 확인하세요. +[API와 사용 예시](#code-mode-mcp) · [에이전트 스킬 설치](#코딩-에이전트에서-사용) · [사이트 열기](https://lidge-jun.github.io/design-isms/) + +
+
+**어떤 스타일인지 알아보는 순간부터, 어떻게 만들지 결정하는 순간까지.**
+Design -isms는 스타일별 시각 자료와 구현 가이드, 실제 조작할 수 있는 UI 패턴을 모은 레퍼런스입니다.
+브라우저에서 살펴보거나, 코딩 에이전트가 같은 데이터를 검색해 팔레트·서체·레이아웃·코드 예시를 가져올 수 있습니다.
+
+## 화면에서 확인하세요
+
+| 필요한 것 | 살펴볼 내용 |
+| --- | --- |
+| **디자인 방향** | Minimalism, Bauhaus, Brutalism 등 스타일의 이미지·역사·팔레트·실제 사이트 예시 |
+| **동작하는 UI** | 바텀시트, 드로어, 스크롤 리빌 등의 데모·HTML/CSS/JS·접근성 및 성능 체크 |
+| **화면 구성** | 제품 소개·기사 읽기·설정 작업 레시피와 교체 가능한 스타일·색상·서체·모션 |
+| **구현 근거** | 사용하기 좋은 상황, 피해야 할 상황, 구현 제약과 출처를 담은 한영 브리프 |
+
+### 재료를 고르고, 구현 가이드를 복사하세요
+
+메인 페이지의 **화면에 맞는 조합 찾기**에서 목적을 선택하세요. 허용된 대안으로 재료를 바꾸고,
+상세 레퍼런스를 확인한 뒤 **구현 가이드 복사**로 에이전트에게 전달할 수 있습니다.
+자동 복사가 막히면 전문을 직접 선택해 복사할 수 있습니다.
+
+
+
+레시피는 구현을 위한 설계 자료입니다. 완성된 페이지를 생성하거나 사용자 제품의 품질을 자동으로 보증하지는 않습니다.
+사이트 화면은 한국어와 영어로 전환할 수 있습니다. 위 이미지는 실제 사이트를 캡처했습니다.
+
+## 카탈로그
+
+| 카탈로그 | 항목 | 포함된 자료 |
+| --- | ---: | --- |
+| [Design ISMs](https://lidge-jun.github.io/design-isms/) | 49 | 시각 스타일과 AI Slop 진단, 목업 이미지, 팔레트, 개발 가이드 |
+| [UI Effects](https://lidge-jun.github.io/design-isms/effects.html) | 94 | 인터페이스 패턴 46종과 시각 효과 48종, 전용 데모와 코드 |
+| [Color Systems](https://lidge-jun.github.io/design-isms/color.html) | 25 | 역할별 색상, light/dark 변형, 대비 가이드 |
+| [Typography Pairings](https://lidge-jun.github.io/design-isms/typography.html) | 20 | 서체 조합, 타입 스케일, 라이브 스페시먼 |
+| [Layout Patterns](https://lidge-jun.github.io/design-isms/layout.html) | 25 | 반응형 와이어프레임과 구현 스니펫 |
+| [Motion Presets](https://lidge-jun.github.io/design-isms/motion.html) | 20 | easing·duration, 재생 제어, 모션 감소 대응 |
+
+Liquid Glass의 재질 비교와 Motion의 진행률·탭·목록 재정렬 같은 조작 예제도 확인할 수 있습니다.
+카탈로그의 목업·가이드 이미지는 AI 생성 자료이며 실제 서비스의 스크린샷과 구분됩니다.
+AI Slop은 진단용 항목으로, 스타일 추천과 관련 항목에는 노출되지 않습니다.
+
+## 빠른 시작
+
+### 웹에서 사용
+
+**[Design -isms 열기](https://lidge-jun.github.io/design-isms/)** — 설치나 계정 없이 탐색할 수 있습니다.
+스타일 이름을 모르면 **스타일 찾기**를, 만들 화면의 목적이 정해졌다면 **화면에 맞는 조합 찾기**를 사용하세요.
+
+### 코딩 에이전트에서 사용
+
+Claude Code에는 두 명령으로 설치합니다.
+
+```bash
+claude plugin marketplace add lidge-jun/design-isms
+claude plugin install design-isms@lidge-jun
+```
+
+```text
+내 포트폴리오에 맞는 디자인 스타일을 비교해줘.
+바텀시트의 구현 코드와 접근성 체크를 보여줘.
+```
+
+`style`과 `effect` 스킬이 저장소의 JSON을 읽습니다. 연결된 Design -isms MCP가 있으면 같은 자료를
+MCP로 조회할 수 있습니다. **플러그인 설치와 MCP 연결은 별도 설정**입니다.
+Codex·agy 설치, 스킬 호출과 문제 해결은 [플러그인 가이드](docs/PLUGIN.md)를 참고하세요.
+
+## Code Mode MCP
+
+공개 도구는 **`execute_code` 하나**입니다. 상주 설명은 2,000 UTF-8바이트 이하로 유지하고,
+세부 API는 필요할 때 `actions.find()`와 `actions.describe()`로 조회합니다.
+
+아래 코드를 `execute_code`의 `code` 인수로 전달하면 조합을 구현 브리프로 바꿉니다.
+
+```js
+const composition = design.compose({
+ recipeId: 'settings-workspace',
+ lang: 'ko'
+});
+return design.brief({ composition }).text;
+```
+
+| 연산 | 용도 |
+| --- | --- |
+| `design.search` / `design.get` | 카탈로그 검색과 상세·가이드·코드 조회 |
+| `design.recipes` / `design.compose` | 레시피 탐색과 허용된 대안 조합 |
+| `design.brief` | 검증한 조합을 Markdown으로 변환 |
+| `actions.find` / `actions.describe` | 연산 목록, 인수와 예시 확인 |
+
+작은 동기 함수가 일반 데이터를 반환하므로 `map`, `filter`, `reduce`로 가공할 수 있습니다.
+MCP의 기본 응답 한도는 JSON-RPC 포장을 포함한 8KiB입니다. 코드를 중간에서 자르지 않고,
+전체 반환이 불가능하면 `RESPONSE_TOO_LARGE`로 알려줍니다.
+
+로컬 stdio 전용이며 네트워크 포트를 열지 않습니다. 신뢰한 에이전트용으로, Worker/VM을 악성 코드용
+보안 샌드박스로 취급하면 안 됩니다. [API·페이지 이동·실행 제한](docs/PLUGIN.md#10-작은-연산을-조합하는-mcp--cli)을 확인하세요.
+
+## CLI와 셸 파이프
+
+`cd design-isms`로 저장소에 들어간 뒤 같은 연산을 줄 단위 JSON으로 사용할 수 있습니다. stdin 한 줄에 요청 하나, stdout 한 줄에 결과 하나입니다.
+
+```sh
+printf '%s\n' '{"op":"design.search","args":{"query":"바텀 시트","limit":3}}' |
+ node scripts/design-query.mjs
+```
+
+Find a style. Compose a screen. Build with a reference.
+A visual design atlas, frontend pattern library, and Code Mode MCP for coding agents.
+ Explore the atlas → · + Install MCP · + Agent skills · + API · + Report an issue +
-Catalog 드롭다운으로 이어지는 네 개의 자매 카탈로그가 백과사전을 완성합니다: `color.html`(역할 기반 팔레트 25종 — light/dark 변형과 WCAG AA 대비 검사), `typography.html`(폰트 페어링 20종 — 라이브 웹폰트 스페시멘과 타입 스케일), `layout.html`(반응형 섹션 패턴 25종 — 데스크탑/태블릿/모바일 3단 와이어프레임 비교와 코드 스니펫), `motion.html`(모션 레시피 20종 — easing 곡선 시각화, 라이브 데모, reduced-motion 대응). ISM 모달의 "관련 카탈로그" 섹션과 각 카탈로그 모달의 관련 ISM/Effects 링크가 서로를 잇습니다. + -[Live Site](https://lidge-jun.github.io/design-isms/) · [Repository](https://github.com/lidge-jun/design-isms) +## Install the MCP -## AI Agent Plugin - -이 저장소는 Claude Code · Codex · agy용 플러그인이기도 합니다. 사이트와 같은 데이터셋을 에이전트가 직접 질의해 팔레트·폰트·그리드 수치와 실행 가능한 UI 코드를 반환합니다. +Requires **Node.js 22+**. Clone the repository; the query runtime uses committed JavaScript and Node built-ins, so no `npm install` or build is needed for MCP use. ```bash -claude plugin marketplace add lidge-jun/design-isms -claude plugin install design-isms@lidge-jun +git clone https://github.com/lidge-jun/design-isms.git ``` -설치·스킬 사용법·문제 해결은 [docs/PLUGIN.md](docs/PLUGIN.md)를 참고하세요. +Add this stdio server to your MCP client. Replace `/absolute/path/design-isms` with the **absolute path** to your clone. +This example uses the `mcpServers` format; your host may use a different configuration file or top-level key. + +```json +{ + "mcpServers": { + "design-isms": { + "command": "node", + "args": ["/absolute/path/design-isms/scripts/mcp/server.mjs"] + } + } +} +``` -## What It Shows +Once connected, you should see one tool: **`execute_code`**. Run `return actions.find();` to discover its operations. +[API and examples](#code-mode-mcp) · [Agent skill installation](#agent-skills) · [Use the website](https://lidge-jun.github.io/design-isms/) -- 49 design -isms from Minimalism to the AI Slop anti-pattern diagnosis -- 147 AI-generated ISM mockup images -- 147 lightweight ISM WebP thumbnails for fast card/modal loading -- Original PNG lightbox only when the user clicks an image -- 10 real website examples per ism, initially collapsed to 3 -- Modal detail view with history, prompts, palette, keywords, related ISMs -- Development guide per ism: fitting components, build method, verification points -- Korean/English UI toggle -- Frontend UI Candidates page with 94 entries: 46 interface patterns and 48 visual effects -- 94 dedicated live demo types for the candidate cards and modals -- 94 guide images under `assets/images/effects/` -- 94 guide WebP previews under `assets/images/thumbs/effects/` -- Long-form effect documentation in `assets/data/effects-docs.json` -- 8 newly added ima2-generated ISM styles: Editorial Typography, Variable Typography, Monospace / Terminal UI, Pixel Art UI, De Stijl, Constructivism, Isometric 3D UI, and Pop Art -- Grok research prompts and ima2 prompt manifests for the ISM/effects expansion batch +
-## Implementation Principles
+Design -isms connects visual references to implementation decisions. Browse styles and interactive UI patterns,
+or let your coding agent query the same catalog for palettes, typography, layout guidance, and code examples.
-Catalog source-of-truth counts: 49 ISMs / 94 effects / 18 FAQ answers.
+## From reference to implementation
-- README, `AGENTS.md`, `structure/README.md`, and `devlog/` must stay aligned with the shipped behavior.
-- `src/*.ts` is the editable source; `assets/js/*.js` is generated output and still committed because GitHub Pages serves static files directly.
-- The site uses plain static scripts, not `script type="module"`. Keep script order explicit in HTML.
-- The shared top navigation is duplicated in static HTML across all seven public pages (`index.html`, `effects.html`, `faq.html`, `color.html`, `typography.html`, `layout.html`, `motion.html`); every page exposes the same six axes (Isms / Catalog / FAQ / GitHub / Lang / Count) in identical order, with the Catalog dropdown listing Effects / Color / Typography / Layout / Motion, validated by `npm run verify:nav`.
-- FAQ content lives in `assets/data/faq.json` (bilingual, source-linked, 18 answers) and renders through `src/faq.ts` → `assets/js/faq.js`; `faq.html` is a thin entry document with no inline styles or scripts.
-- Shared storage/history guards, loading dismissal, retryable fatal states, and broken-image fallbacks live in `src/app-runtime.ts` → `assets/js/app-runtime.js`; all three pages load it before their page renderer and share `assets/css/runtime-states.css`.
-- The visual shell uses the Annotated Specimen Atlas system: shared tokens live in `assets/css/theme-atlas.css`, loaded after `style.css` and before `nav.css` on every page.
-- The ISM modal on `index.html` uses `AppDialogA11y` (`src/app-dialog.ts`) for focus trap, Escape layering, scroll lock, and focus restore; `assets/js/app-dialog.js` must load before `assets/js/app.js`.
-- The ISM modal is implemented: history appears under the title, the main prompt is always visible, secondary prompts are collapsible, example sites show 3 first and expand to the rest, and related ISMs are computed from keyword overlap.
-- The effects page is a 94-entry catalog: 46 interface patterns plus 48 visual effects across 7 families (scroll, text motion, hero background, cursor, view transition, micro-interaction).
-- Every effects candidate must have a dedicated `demo.type` equal to its effect `id`, and that type must exist in `src/effects-demos.ts`. Do not reuse a generic seed demo for a new candidate.
-- Effects long-form writing lives in `assets/data/effects-docs.json` and renders through `src/effects-docs.ts`. Keep `assets/data/effects.json` compact for operational card/demo data.
-- Every effects guide image keeps the original PNG at `assets/images/effects/{effect-id}/guide.png` and uses a generated WebP preview at `assets/images/thumbs/effects/{effect-id}/guide.webp`.
-- New ISM images keep originals at `assets/images/{ism-id}/` and runtime previews under `assets/images/thumbs/{ism-id}/`.
-- `assets/data/image-pairs-manifest.json` locks all 331 PNG/WebP pairs (211 legacy + 30 effects expansion + 25 color + 20 typography + 25 layout + 20 motion) by path, dimensions, SHA-256, and an independent source-resize/preview pixel-relation limit; `npm run images:thumbs` updates it atomically and does not rely on mtimes.
-- The production image-quality gate audits the 211 immutable legacy slots in four complete contact sheets; catalog additions are admitted by live hash and validated by `verify-catalog` domain ledgers. `npm run verify:image-quality` checks the immutable baseline, per-slot rubric ledger, generation attempts, approved prompt changes, final sheets, and non-target byte stability.
-- `npm run verify` is non-emitting: edit TypeScript, run `npm run build`, then verify committed JS parity and all content/asset/release gates.
-- `npm run pages:stage` creates the only deployable tree at `.pages/`; Pages workflows upload that allowlisted tree, never the repository root.
-- Do not publish a separate reference/backlog page; generated visual styles belong in the ISMS catalog or the Effects catalog.
-- Any visual or image pipeline change must run `npm run verify`; image changes must also run `npm run images:thumbs` (sharp-based, `--force` / `--scope effects|isms|color|typography|layout|motion|all`) and pass `npm run images:audit`.
-- Effect guide regeneration is provenance-tracked: audit ledger `devlog/_fin/260715_production_upgrade/031_effect_guide_audit.csv`, manifest `devlog/_fin/260715_production_upgrade/032_effect_guide_manifest.jsonl`; sister-catalog guides use per-domain ledgers under `devlog/_fin/260717_design-encyclopedia-upgrade/`.
-
-## Project Structure
+| What you need | What you get |
+| --- | --- |
+| **A design direction** | Style mockups, history, palettes, and real website references, from Minimalism to Bauhaus and Brutalism |
+| **A working pattern** | Bottom sheets, drawers, scroll reveals, and more, with demos, HTML/CSS/JS, and accessibility guidance |
+| **A screen composition** | Product landing, editorial reading, and settings recipes with compatible style, color, type, and motion alternatives |
+| **An implementation brief** | Usage guidance, constraints, checks, and sources in English or Korean |
-```text
-701_design-isms/
-├── index.html
-├── effects.html
-├── assets/
-│ ├── css/
-│ │ ├── style.css
-│ │ ├── nav.css
-│ │ ├── effects.css
-│ │ ├── effects-docs.css
-│ │ ├── effects-demos.css
-│ │ └── effects-demos-candidates.css
-│ ├── data/
-│ │ ├── isms.json
-│ │ ├── effects.json
-│ │ ├── effects-docs.json
-│ │ ├── image-pairs-manifest.json
-│ │ └── research-prompts.json
-│ ├── images/{ism-id}/*.png
-│ ├── images/effects/{effect-id}/guide.png
-│ ├── images/thumbs/{ism-id}/*.webp
-│ ├── images/thumbs/effects/{effect-id}/guide.webp
-│ └── js/
-│ ├── effects-demos.js
-│ ├── effects-docs.js
-│ ├── app-runtime.js
-│ ├── app.js
-│ └── effects.js
-├── src/
-│ ├── app.ts
-│ ├── app-runtime.ts
-│ ├── effects-demos.ts
-│ ├── effects-docs.ts
-│ └── effects.ts
-├── scripts/generate-thumbnails.mjs
-├── scripts/verify-generated.mjs
-├── scripts/verify-content.mjs
-├── scripts/verify-assets.mjs
-├── scripts/stage-pages.mjs
-├── scripts/prepare-expansion-data.mjs
-├── structure/
-├── devlog/
-├── package.json
-└── tsconfig.json
-```
+### Choose the ingredients. Copy the brief.
-## Development
+Open the recipe chooser on the home page, select a screen purpose, and adjust the permitted alternatives.
+Inspect the linked references, then copy the implementation brief into your coding agent. If automatic copying is unavailable,
+the full text remains selectable.
-```bash
-npm install
-npm run typecheck
-npm run build
-npm run verify
-npm run pages:stage
-```
+
-The browser entry files are generated for GitHub Pages:
+Recipes provide design guidance; they do not generate a finished page or certify your product.
+The site supports English and Korean. These screenshots show the actual interface; mockups within catalog cards are AI-generated reference images.
-- Edit `src/app.ts`, then run `npm run build` for `assets/js/app.js`.
-- Edit `src/effects-demos.ts`, `src/effects-docs.ts`, or `src/effects.ts`, then run `npm run build` for `assets/js/effects-demos.js`, `assets/js/effects-docs.js`, and `assets/js/effects.js`.
+## Catalogs
-## Image Pipeline
+| Catalog | Entries | Includes |
+| --- | ---: | --- |
+| [Design ISMs](https://lidge-jun.github.io/design-isms/) | 49 | Visual styles and an AI Slop diagnostic, mockups, palettes, and implementation guides |
+| [UI Effects](https://lidge-jun.github.io/design-isms/effects.html) | 94 | 46 interface patterns and 48 visual effects, each with a dedicated demo |
+| [Color Systems](https://lidge-jun.github.io/design-isms/color.html) | 25 | Semantic palettes, light/dark variants, and contrast guidance |
+| [Typography Pairings](https://lidge-jun.github.io/design-isms/typography.html) | 20 | Font pairings, type scales, and live specimens |
+| [Layout Patterns](https://lidge-jun.github.io/design-isms/layout.html) | 25 | Responsive wireframes and implementation snippets |
+| [Motion Presets](https://lidge-jun.github.io/design-isms/motion.html) | 20 | Easing, duration, playback controls, and reduced-motion alternatives |
-```bash
-npm run images:thumbs
-```
+Try the Liquid Glass material comparison and interactive motion examples for progress, tabs, and list reordering.
+The AI Slop entry is diagnostic only; it is excluded from recommendations and related styles.
-The static pages use WebP thumbnails/previews for card and modal image loading. The original 1536x1024 PNG files are kept for click-to-zoom lightbox views and source preservation. The thumbnail command updates the 331-pair SHA manifest after every successful run.
+## Agent skills
-Expansion image batches are generated from deterministic manifests. The current ima2 command shape is:
+For Claude Code:
```bash
-ima2 ping
-ima2 gen --stdin -q high -s 1536x1024 -o