{"_id":"interlude-ui","_rev":"5-2ca7ff8b18f8265d11b092b8687c2d64","name":"interlude-ui","dist-tags":{"latest":"1.2.4"},"versions":{"1.1.0":{"name":"interlude-ui","version":"1.1.0","keywords":["font","interlude","cjk","korean","japanese","variable-font","webfont","hangul","pretendard","opentype"],"author":{"name":"avanturation"},"license":"OFL-1.1","_id":"interlude-ui@1.1.0","maintainers":[{"name":"avanturation","email":"truetype24@gmail.com"}],"homepage":"https://github.com/avanturation/interlude","bugs":{"url":"https://github.com/avanturation/interlude/issues"},"dist":{"shasum":"af3aa3b0434e67f2bcd6c4944d7756311c2f3044","tarball":"https://registry.npmjs.org/interlude-ui/-/interlude-ui-1.1.0.tgz","fileCount":2316,"integrity":"sha512-rV+Hl3Boj/XQMyi1sU+9gssEBDhK3gGLEXWN+x5B/0ENBrbIICLMzZxbUkO/GlWeA7X8uAPX1gWcM1g6Hj1wSw==","signatures":[{"sig":"MEUCIBrjAAC1k0nH+s+RcsYSJ+tMlRdQEJa6TCpXJlTcNsS1AiEAkiyvYFmCNlqJTTuVKHqRCUSybGEVw0Mb175G+9DfuT8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95327031},"exports":{".":"./dist/web/interlude.css","./css":"./dist/web/interlude.css","./font":{"types":"./packages/next/font.d.ts","import":"./packages/next/dist/font.mjs"},"./tailwind":"./dist/tailwind/interlude.css","./variable":"./dist/web/InterludeVariable.woff2","./font/sans":{"types":"./packages/next/sans.d.ts","import":"./packages/next/dist/sans.mjs"},"./font/display":{"types":"./packages/next/display.d.ts","import":"./packages/next/dist/display.mjs"},"./css/dynamic-subset":"./dist/web/dynamic-subset/interlude-variable-dynamic-subset.css"},"gitHead":"f6d317f3b6eb3b7e659f158d820b74374a92d7d1","scripts":{"dist":"make dist","build":"make all"},"_npmUser":{"name":"avanturation","email":"truetype24@gmail.com"},"repository":{"url":"git+https://github.com/avanturation/interlude.git","type":"git"},"_npmVersion":"11.6.2","description":"Interlude — Korean-first CJK variable font combining Inter and Pretendard JP","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/interlude-ui_1.1.0_1780507670991_0.6640123662277679","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"interlude-ui","version":"1.2.1","keywords":["font","interlude","cjk","korean","japanese","variable-font","webfont","hangul","pretendard","opentype"],"author":{"name":"avanturation"},"license":"OFL-1.1","_id":"interlude-ui@1.2.1","maintainers":[{"name":"avanturation","email":"truetype24@gmail.com"}],"homepage":"https://avanturation.com/interlude","bugs":{"url":"https://github.com/avanturation/interlude/issues"},"dist":{"shasum":"175cb30145946b8212cb8c20fe550601d3826c55","tarball":"https://registry.npmjs.org/interlude-ui/-/interlude-ui-1.2.1.tgz","fileCount":154,"integrity":"sha512-YOeyCkw1SO284rDY0Oeq7lt7SRnrZSt/yXGUNk7+TpV6XHe7QqoP1ePqiQGN1MVlD9Nmhxmyz+zsIcyiOyHPkg==","signatures":[{"sig":"MEUCIBCoY5y+iC9vMWENqo3xek48hEZcTI1om+4XatkfXUdnAiEA/ASSAnanIiXkqiwGTNMg9uRmSL5mSLSZENoYlv2hxv8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75107437},"exports":{".":"./dist/css/interlude.css","./css":"./dist/css/interlude.css","./font":{"types":"./packages/next/font.d.ts","import":"./packages/next/dist/font.mjs"},"./tailwind":"./dist/tailwind/interlude.css","./variable":"./dist/woff2/InterludeVariable.woff2","./font/sans":{"types":"./packages/next/sans.d.ts","import":"./packages/next/dist/sans.mjs"},"./font/display":{"types":"./packages/next/display.d.ts","import":"./packages/next/dist/display.mjs"},"./css/dynamic-subset":"./dist/dynamic-subset/interlude-variable-dynamic-subset.css"},"gitHead":"f4811c99967b901a313bb0010027adc1bee3086b","scripts":{"dist":"make dist","build":"make all"},"_npmUser":{"name":"avanturation","email":"truetype24@gmail.com"},"repository":{"url":"git+https://github.com/avanturation/interlude.git","type":"git"},"_npmVersion":"11.6.2","description":"Interface typeface balancing Latin–CJK harmony with screen density","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/interlude-ui_1.2.1_1781515151877_0.9294117835838807","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"interlude-ui","version":"1.2.2","keywords":["font","interlude","cjk","korean","japanese","variable-font","webfont","hangul","pretendard","opentype"],"author":{"name":"avanturation"},"license":"OFL-1.1","_id":"interlude-ui@1.2.2","maintainers":[{"name":"avanturation","email":"truetype24@gmail.com"}],"homepage":"https://avanturation.com/interlude","bugs":{"url":"https://github.com/avanturation/interlude/issues"},"dist":{"shasum":"28404b88c206b282a6d23efaa777439c73ca2f3e","tarball":"https://registry.npmjs.org/interlude-ui/-/interlude-ui-1.2.2.tgz","fileCount":222,"integrity":"sha512-XR3n0g+7+fXSw3+dozRan/FQeFyO3Pg+7E5WjVLxsXeatrSO3iaK7r5FKoBVUVjVEwa7ekvPIbHeSxwXiIYbow==","signatures":[{"sig":"MEUCIG58digFkTT4GGc01+XB5A69pchR/dDP2jSPpa6M+V8uAiEA+zFtg5t95mOvgwwITX2Tqb/CymJiT7JGDi5UkOki7J8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80969895},"exports":{".":"./dist/css/interlude.css","./css":"./dist/css/interlude.css","./font":{"types":"./packages/next/font.d.ts","import":"./packages/next/dist/font.mjs"},"./tailwind":"./dist/tailwind/interlude.css","./variable":"./dist/woff2/InterludeVariable.woff2","./font/sans":{"types":"./packages/next/sans.d.ts","import":"./packages/next/dist/sans.mjs"},"./font/display":{"types":"./packages/next/display.d.ts","import":"./packages/next/dist/display.mjs"},"./css/dynamic-subset":"./dist/dynamic-subset/interlude-variable-dynamic-subset.css"},"gitHead":"16041bdd90a7bbe5c8f207cb15b11e0e4528b7ac","scripts":{"dist":"make dist","build":"make all"},"_npmUser":{"name":"avanturation","email":"truetype24@gmail.com"},"repository":{"url":"git+https://github.com/avanturation/interlude.git","type":"git"},"_npmVersion":"11.6.2","description":"Interface typeface balancing Latin–CJK harmony with screen density","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/interlude-ui_1.2.2_1783408924812_0.3733100637580411","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"interlude-ui","version":"1.2.3","keywords":["font","interlude","cjk","korean","japanese","variable-font","webfont","hangul","pretendard","opentype"],"author":{"name":"avanturation"},"license":"OFL-1.1","_id":"interlude-ui@1.2.3","maintainers":[{"name":"avanturation","email":"truetype24@gmail.com"}],"homepage":"https://avanturation.com/interlude","bugs":{"url":"https://github.com/avanturation/interlude/issues"},"dist":{"shasum":"1db8762a2bd59045bddd22f5da8d25514ccbaebb","tarball":"https://registry.npmjs.org/interlude-ui/-/interlude-ui-1.2.3.tgz","fileCount":221,"integrity":"sha512-zlFMyyi7lxdmxZcdNs4RdluSFzdc3gy3tqeW7XrKMHdFPdQ1tSBkWYqMOykVkyd6HT6SicgsZBb/9NdRI5vJeA==","signatures":[{"sig":"MEQCIGnaCLU7Vz6YDypiiQaS+n/FQX/SIabhpijdtFrnUJwRAiAHS2kKxGtUCVYiliIDEVD4coPz4fVCrPlLL5XJB2vPEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74931786},"exports":{".":"./dist/css/interlude.css","./css":"./dist/css/interlude.css","./font":{"types":"./packages/next/font.d.ts","import":"./packages/next/dist/font.mjs"},"./tailwind":"./dist/tailwind/interlude.css","./variable":"./dist/woff2/InterludeVariable.woff2","./font/sans":{"types":"./packages/next/sans.d.ts","import":"./packages/next/dist/sans.mjs"},"./font/display":{"types":"./packages/next/display.d.ts","import":"./packages/next/dist/display.mjs"},"./css/dynamic-subset":"./dist/dynamic-subset/interlude-variable-dynamic-subset.css"},"gitHead":"ae566a44458bc8eaa2cfea34431bb109c17b6f7e","scripts":{"dist":"make dist","build":"make all"},"_npmUser":{"name":"avanturation","email":"truetype24@gmail.com"},"repository":{"url":"git+https://github.com/avanturation/interlude.git","type":"git"},"_npmVersion":"11.6.2","description":"Interface typeface balancing Latin–CJK harmony with screen density","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/interlude-ui_1.2.3_1787899948565_0.6266308053792262","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"interlude-ui","version":"1.2.4","description":"Interface typeface balancing Latin–CJK harmony with screen density","license":"OFL-1.1","author":{"name":"avanturation"},"repository":{"type":"git","url":"git+https://github.com/avanturation/interlude.git"},"homepage":"https://avanturation.com/interlude","keywords":["font","interlude","cjk","korean","japanese","variable-font","webfont","hangul","pretendard","opentype"],"exports":{".":"./dist/css/interlude.css","./css":"./dist/css/interlude.css","./css/dynamic-subset":"./dist/dynamic-subset/interlude-variable-dynamic-subset.css","./tailwind":"./dist/tailwind/interlude.css","./variable":"./dist/woff2/InterludeVariable.woff2","./font":{"types":"./packages/next/font.d.ts","import":"./packages/next/dist/font.mjs"},"./font/sans":{"types":"./packages/next/sans.d.ts","import":"./packages/next/dist/sans.mjs"},"./font/display":{"types":"./packages/next/display.d.ts","import":"./packages/next/dist/display.mjs"}},"scripts":{"build":"make all","dist":"make dist"},"gitHead":"ea785cfde33e9e28ba3b9bd2817d8caa1c8988c0","_id":"interlude-ui@1.2.4","bugs":{"url":"https://github.com/avanturation/interlude/issues"},"_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-tz1zvfvOoPwY+AFG3eiWCJkUHjRzR//vgMXiUHYNFW9iq1QBAMnzY3gEARKL0k788glYUv+gonQZuzDziOM9XA==","shasum":"dc5ec9ddf297538ebcda527fe374e110c265190b","tarball":"https://registry.npmjs.org/interlude-ui/-/interlude-ui-1.2.4.tgz","fileCount":221,"unpackedSize":74963146,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBC1aese27n0FhcrRFWexL902U9o+NkDtAYk5aiHaJojAiEA01aYTgK+qkWpksSKbHTkP+cebulCG2tZ21Iyuq2wOGE="}]},"_npmUser":{"name":"avanturation","email":"truetype24@gmail.com"},"directories":{},"maintainers":[{"name":"avanturation","email":"truetype24@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/interlude-ui_1.2.4_1788424897151_0.7610456043068712"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-03T17:27:50.816Z","modified":"2026-09-03T08:41:38.825Z","1.1.0":"2026-06-03T17:27:52.302Z","1.2.1":"2026-06-15T09:19:12.937Z","1.2.2":"2026-07-07T07:22:05.902Z","1.2.3":"2026-08-28T06:52:29.790Z","1.2.4":"2026-09-03T08:41:38.471Z"},"bugs":{"url":"https://github.com/avanturation/interlude/issues"},"author":{"name":"avanturation"},"license":"OFL-1.1","homepage":"https://avanturation.com/interlude","keywords":["font","interlude","cjk","korean","japanese","variable-font","webfont","hangul","pretendard","opentype"],"repository":{"type":"git","url":"git+https://github.com/avanturation/interlude.git"},"description":"Interface typeface balancing Latin–CJK harmony with screen density","maintainers":[{"name":"avanturation","email":"truetype24@gmail.com"}],"readme":"\n\n# Interlude\n\nInterlude는 라틴과 CJK가 같은 화면 안에서 따로 튀지 않도록, 문자 사이의 밀도와 리듬을 다시 맞춘 인터페이스 서체입니다.\n\n[Inter](https://rsms.me/inter)의 라틴 글리프와 [Pretendard](https://github.com/orioncactus/pretendard)의 CJK 글리프를 기반으로, 4px Grid 중심의 UI 환경에 맞게 폭과 밀도를 다시 조율했습니다. 라틴과 CJK가 함께 쓰일 때 생기는 크기감과 굵기 차이를 미세하게 조정해, 어느 한쪽이 튀지 않고 자연스럽게 읽히도록 맞췄습니다. 9가지 굵기와 wdth 축을 통한 Expanded & Condensed 너비 조절, Variable을 지원해 다양한 화면 밀도와 인터페이스 조건에 유연하게 대응합니다.\n\n[**최신 버전 다운로드하기**](https://github.com/avanturation/interlude/releases/latest)\n\n<br/>\n\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/avanturation/interlude/blob/main/docs/overview-dark.png\">\n  <source media=\"(prefers-color-scheme: light)\" srcset=\"https://github.com/avanturation/interlude/blob/main/docs/overview.png\">\n  <img alt=\"overview\" src=\"https://github.com/avanturation/interlude/blob/main/docs/overview.png\">\n</picture>\n\n<br/>\n\n## 기능 및 배경\n\n자세한 배경과 OpenType 기능, Inter 및 Pretendard와의 차이점은 [이곳](https://avanturation.com/interlude)에서 확인하실 수 있습니다.\n\n## Interlude 사용하기\n\n[**최신 버전 다운로드하기**](https://github.com/avanturation/interlude/releases/latest)\n\n### 웹 폰트로 사용하기\n\n#### Variable (권장)\n\n전체 글리프를 하나의 가변 폰트로 로드합니다.\n\n```html\n<link href=\"https://cdn.jsdelivr.net/npm/interlude-ui/dist/css/interlude.css\" rel=\"stylesheet\">\n```\n\n이 CSS는 세 가지 `font-family`를 정의합니다.\n\n- `Interlude Variable` — 가변 (opsz 14–32, wght 100–900, wdth 75–125)\n- `Interlude` — 정적 본문용 (opsz 14)\n- `Interlude Display` — 정적 제목용 (opsz 32)\n\n#### Dynamic Subset\n\n페이지에서 실제로 사용하는 글리프만 로드하며, CJK 폰트의 용량 문제를 해결합니다.\n\n```html\n <link href=\"https://cdn.jsdelivr.net/npm/interlude-ui/dist/dynamic-subset/interlude-variable-dynamic-subset.css\" rel=\"stylesheet\">\n```\n\n```css\nbody { font-family: \"Interlude Variable\", sans-serif; }\n```\n\n### Next.js에서 사용하기\n\n```bash\nnpm install interlude-ui\n```\n\n```tsx\n// app/layout.tsx\nimport { Interlude, InterludeDisplay } from \"interlude-ui/font\";\n\nexport default function RootLayout({ children }) {\n  return (\n    <html className={`${Interlude.variable} ${InterludeDisplay.variable}`}>\n      <body>{children}</body>\n    </html>\n  );\n}\n```\n\n```css\n/* globals.css */\nbody {\n  font-family: var(--font-interlude-ui), sans-serif;\n}\n\nh1, h2, h3 {\n  font-family: var(--font-interlude-ui-display), sans-serif;\n}\n```\n\n개별 import도 가능합니다:\n\n```tsx\nimport { Interlude } from \"interlude-ui/font/sans\";\nimport { InterludeDisplay } from \"interlude-ui/font/display\";\n```\n\n### Tailwind CSS v4에서 사용하기\n\n```css\n@import \"tailwindcss\";\n@import \"interlude-ui/tailwind\";\n```\n\n```html\n<div class=\"font-sans\">본문 Body</div>\n<h1 class=\"font-display font-opsz-display\">제목 Heading</h1>\n```\n\nDynamic Subset용 `@font-face`를 로드하고, `@theme`로 `--font-sans` / `--font-display` 토큰과 optical size 유틸리티(`font-opsz-text`, `font-opsz-display`)를 등록합니다.\n\n`@font-face` 규칙이 정상적으로 적용되도록, 이 import는 CSS 파일의 가장 위에 두는 것을 권장합니다.\n\n또한 Vite나 Next.js 같은 번들러는 폰트 경로를 자동으로 처리하지만, Tailwind standalone CLI 환경에서는 import된 폰트 URL이 제대로 재작성되지 않을 수 있습니다. 이런 경우, CDN의 CSS를 직접 불러와주세요.\n\n ```html\n<link href=\"https://cdn.jsdelivr.net/npm/interlude-ui/dist/dynamic-subset/interlude-variable-dynamic-subset.css\" rel=\"stylesheet\">\n ```\n\n## font-family\n\n권장하는 `font-family` 조합은 아래와 같습니다.\n\n```css\nfont-family: \"Interlude Variable\", \"Interlude\",\n  -apple-system, BlinkMacSystemFont, \"Apple SD Gothic Neo\",\n  \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif,\n  \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n```\n\n### Display 사용하기\n\nInterlude Variable은 하나의 파일에 Text `opsz=14` 와 Display `opsz=32` 를 모두 포함합니다.\n\n```css\n/* 본문 (기본, opsz=14) */\nbody {\n  font-family: \"Interlude Variable\", sans-serif;\n}\n\n/* 제목/Hero (opsz=32) */\nh1 {\n  font-family: \"Interlude Variable\", sans-serif;\n  font-variation-settings: 'opsz' 32;\n}\n```\n\nStatic 폰트에서는 별도 패밀리로 분리되어 있습니다:\n- `Interlude` — 본문용\n- `Interlude Display` — 제목용\n\n## Font Families\n\n- **Interlude** — UI, 본문에 최적화 (optical size 14)\n- **Interlude Display** — Display, Hero에 최적화 (optical size 32)\n\n### Variable Axes\n\n| Axis | Tag | Range | Default |\n|------|-----|-------|---------|\n| Optical Size | `opsz` | 14–32 | 14 |\n| Weight | `wght` | 100–900 | 400 |\n| Width | `wdth` | 75–125 | 100 |\n\n### 언어 커버리지\n\n- 라틴, 키릴, 그리스 문자 계열 (Inter 기반)\n- 11,172자 한글 음절 (Pretendard 기반)\n- 184자 히라가나 + 가타카나 (Pretendard 기반)\n- 7,138자 CJK 통합 한자 (Pretendard 기반)\n- CJK 기호·호환·반각/전각 문자 (Inter & Pretendard 혼합)\n\n## Build\n\nInter와 Pretendard의 릴리즈 바이너리를 다운로드한 후, Interlude 설계 원칙에 맞는 패치를 진행해 빌드합니다.\n\n```bash\ngit clone https://github.com/avanturation/interlude.git\npython3 -m pip install -r requirements.txt\nmake clean\nmake all\n```\n\n## Credits\n\n- [Inter](https://rsms.me/inter/) by @rsms\n- [Pretendard](https://github.com/orioncactus/pretendard) by @orioncactus\n\n### Contribute\n\nInterlude는 UI 디자이너로서 평소 가지고 있던 생각들을 조합해 서체 전용 툴 없이 OpenCode 만으로 제작되었습니다. 폰트에 대한 지식이 부족한 만큼, 오픈소스 커뮤니티의 많은 피드백과 기여가 필요합니다. Issues와 Pull Request를 통해 기여해주시면 감사하겠습니다.\n\n### License\n\n[SIL Open Font License 1.1](LICENSE.txt)\n","readmeFilename":"README.md"}