kasaframe 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +311 -0
- package/README.md +18 -5
- package/docs/AGENTS.md +2 -1
- package/package.json +1 -1
- package/packages/adapters/src/project.ts +2 -0
- package/packages/check/package.json +1 -0
- package/packages/check/src/check.ts +8 -2
- package/packages/check/src/rules/frames.ts +4 -5
- package/packages/cli/src/commands/doctor.ts +15 -2
- package/packages/cli/src/commands/fonts.ts +118 -0
- package/packages/cli/src/commands/make.ts +15 -5
- package/packages/cli/src/commands/render.ts +34 -7
- package/packages/cli/src/commands/update.ts +66 -0
- package/packages/cli/src/fonts.ts +405 -0
- package/packages/cli/src/kf.ts +5 -0
- package/packages/cli/src/mix.ts +66 -4
- package/packages/cli/src/segments.ts +1 -1
- package/packages/cli/src/sfx.ts +429 -0
- package/packages/cli/src/update.ts +250 -0
- package/packages/core/src/frame.ts +7 -4
- package/packages/core/src/index.ts +3 -1
- package/packages/core/src/project.ts +19 -0
- package/packages/core/src/sfx.ts +70 -0
- package/packages/director/src/assemble.ts +7 -4
- package/packages/director/src/index.ts +1 -1
- package/packages/director/src/pattern.ts +2 -0
- package/packages/director/src/scene.ts +14 -5
- package/packages/director/src/transitions.ts +21 -8
- package/packages/motion/src/enter.ts +7 -1
- package/packages/motion/src/impact.ts +5 -2
- package/packages/motion/src/moves/dress.ts +15 -2
- package/packages/motion/src/moves/menu.ts +11 -5
- package/packages/motion/src/transition.ts +3 -1
- package/packages/motion/src/transition3d/index.ts +3 -1
- package/packages/motion/src/transition3d/live.ts +5 -3
- package/packages/patterns/src/bars/rank.ts +6 -7
- package/packages/patterns/src/before-after/shrink.ts +3 -4
- package/packages/patterns/src/before-after/strike.ts +4 -5
- package/packages/patterns/src/code/terminal.ts +25 -16
- package/packages/patterns/src/end/lockup.ts +13 -10
- package/packages/patterns/src/end/slam.ts +7 -5
- package/packages/patterns/src/hook-number/counter.ts +15 -9
- package/packages/patterns/src/hook-number/slam.ts +6 -8
- package/packages/patterns/src/kit.ts +281 -58
- package/packages/patterns/src/limit/gauge.ts +16 -11
- package/packages/patterns/src/quote/karaoke.ts +17 -12
- package/packages/patterns/src/sfx.ts +80 -0
- package/packages/patterns/src/term-reveal/chips.ts +24 -10
- package/packages/patterns/src/term-reveal/expand.ts +17 -13
- package/packages/patterns/src/title/mask.ts +9 -8
- package/packages/patterns/src/title/slam.ts +1 -1
- package/packages/patterns/src/types.ts +1 -0
- package/packages/plan/src/asks.ts +1 -1
- package/packages/plan/src/brief.ts +5 -2
- package/packages/plan/src/themes.ts +8 -2
- package/packages/themes/kit/THEME-MAKE.md +2 -2
- package/packages/themes/kit/fonts/display.json +3517 -0
- package/packages/themes/kit/fonts/sans.json +5155 -0
- package/packages/themes/kit/fonts/serif.json +5229 -0
- package/packages/themes/kit/fonts.json +243 -79
- package/packages/themes/package.json +3 -1
- package/packages/themes/src/fontfile.ts +183 -0
- package/packages/themes/src/fonts.ts +296 -0
- package/packages/themes/src/index.ts +32 -2
- package/packages/themes/src/look.ts +34 -8
- package/packages/themes/src/slots.ts +32 -2
- package/packages/themes/src/types.ts +33 -0
- package/packages/themes/src/vary.ts +35 -34
- package/presets/kawaii-pastel.json +2 -2
- package/sfx/README.md +82 -0
- package/sfx/click/appear.wav +0 -0
- package/sfx/click/burst.wav +0 -0
- package/sfx/click/drop.wav +0 -0
- package/sfx/click/end.wav +0 -0
- package/sfx/click/hop.wav +0 -0
- package/sfx/click/land.wav +0 -0
- package/sfx/click/select.wav +0 -0
- package/sfx/click/stick.wav +0 -0
- package/sfx/click/tick.wav +0 -0
- package/sfx/click/type.wav +0 -0
- package/sfx/click/whoosh.wav +0 -0
- package/sfx/pop/appear.wav +0 -0
- package/sfx/pop/burst.wav +0 -0
- package/sfx/pop/drop.wav +0 -0
- package/sfx/pop/end.wav +0 -0
- package/sfx/pop/hop.wav +0 -0
- package/sfx/pop/land.wav +0 -0
- package/sfx/pop/select.wav +0 -0
- package/sfx/pop/stick.wav +0 -0
- package/sfx/pop/tick.wav +0 -0
- package/sfx/pop/type.wav +0 -0
- package/sfx/pop/whoosh.wav +0 -0
- package/sfx/tags.json +545 -0
- package/sfx/ui/appear.wav +0 -0
- package/sfx/ui/burst.wav +0 -0
- package/sfx/ui/drop.wav +0 -0
- package/sfx/ui/end.wav +0 -0
- package/sfx/ui/hop.wav +0 -0
- package/sfx/ui/land.wav +0 -0
- package/sfx/ui/select.wav +0 -0
- package/sfx/ui/stick.wav +0 -0
- package/sfx/ui/tick.wav +0 -0
- package/sfx/ui/type.wav +0 -0
- package/sfx/ui/whoosh.wav +0 -0
- package/skills/kasaframe/SKILL.md +1 -0
- package/themes/blueprint/sample/style.json +5 -5
- package/themes/blueprint/style.json +5 -5
- package/themes/blueprint/theme.json +3 -1
- package/themes/blueprint/variants/deep-rose-suit.json +1 -1
- package/themes/blueprint/variants/navy-coral-2.json +1 -1
- package/themes/blueprint/variants/navy-coral-suit.json +1 -1
- package/themes/blueprint/variants/navy-orange-2.json +1 -1
- package/themes/blueprint/variants/navy-orange-suit.json +1 -1
- package/themes/cartography/sample/style.json +2 -2
- package/themes/cartography/style.json +2 -2
- package/themes/cartography/theme.json +3 -1
- package/themes/cartography/variants/deep-plum.json +1 -1
- package/themes/cartography/variants/frost-teal.json +1 -1
- package/themes/cartography/variants/navy-green.json +1 -1
- package/themes/circuit-board/sample/style.json +2 -2
- package/themes/circuit-board/style.json +2 -2
- package/themes/circuit-board/theme.json +3 -1
- package/themes/circuit-board/variants/dusk-gold-pretendard.json +1 -1
- package/themes/circuit-board/variants/navy-gold-grain.json +1 -1
- package/themes/circuit-board/variants/wine-gold-pretendard.json +1 -1
- package/themes/clay-toy/sample/style.json +2 -2
- package/themes/clay-toy/style.json +2 -2
- package/themes/clay-toy/theme.json +3 -1
- package/themes/clay-toy/variants/blush-coral-grain.json +1 -1
- package/themes/clay-toy/variants/chalk-teal.json +1 -1
- package/themes/clay-toy/variants/frost-sky.json +1 -1
- package/themes/clay-toy/variants/frost-teal.json +1 -1
- package/themes/clay-toy/variants/lilac-plum-round.json +1 -1
- package/themes/clay-toy/variants/lilac-plum.json +1 -1
- package/themes/clay-toy/variants/sage-indigo.json +1 -1
- package/themes/conveyor-factory/sample/style.json +3 -3
- package/themes/conveyor-factory/style.json +3 -3
- package/themes/conveyor-factory/theme.json +3 -1
- package/themes/conveyor-factory/variants/cocoa-gold.json +1 -1
- package/themes/conveyor-factory/variants/navy-gold.json +1 -1
- package/themes/conveyor-factory/variants/slate-amber-2.json +1 -1
- package/themes/conveyor-factory/variants/slate-amber-suit.json +1 -1
- package/themes/conveyor-factory/variants/slate-gold-bold.json +1 -1
- package/themes/data-journal/theme.json +3 -1
- package/themes/data-journal/variants/deep-coral.json +1 -1
- package/themes/data-journal/variants/navy-lime.json +1 -1
- package/themes/data-journal/variants/wine-indigo.json +1 -1
- package/themes/debug-hud/sample/style.json +1 -1
- package/themes/debug-hud/style.json +1 -1
- package/themes/debug-hud/theme.json +2 -1
- package/themes/debug-hud/variants/cocoa-teal.json +2 -2
- package/themes/debug-hud/variants/deep-teal-scan.json +2 -2
- package/themes/debug-hud/variants/dusk-plum.json +2 -2
- package/themes/debug-hud/variants/forest-lime.json +2 -2
- package/themes/debug-hud/variants/slate-green.json +2 -2
- package/themes/debug-hud/variants/wine-gold.json +2 -2
- package/themes/depth-flight/sample/style.json +1 -1
- package/themes/depth-flight/style.json +1 -1
- package/themes/depth-flight/theme.json +3 -1
- package/themes/depth-flight/variants/cocoa-cyan.json +1 -1
- package/themes/depth-flight/variants/cocoa-violet.json +1 -1
- package/themes/depth-flight/variants/deep-sky.json +1 -1
- package/themes/depth-flight/variants/forest-blue.json +1 -1
- package/themes/depth-flight/variants/navy-sky-grain.json +1 -1
- package/themes/depth-flight/variants/navy-sky.json +1 -1
- package/themes/depth-flight/variants/night-teal.json +1 -1
- package/themes/depth-flight/variants/slate-indigo.json +1 -1
- package/themes/depth-flight/variants/slate-violet.json +1 -1
- package/themes/film-reel/sample/style.json +2 -2
- package/themes/film-reel/style.json +2 -2
- package/themes/film-reel/theme.json +3 -1
- package/themes/film-reel/variants/chalk-pink.json +1 -1
- package/themes/film-reel/variants/lilac-gold.json +1 -1
- package/themes/film-reel/variants/lilac-violet.json +1 -1
- package/themes/glass-light/sample/style.json +1 -1
- package/themes/glass-light/style.json +1 -1
- package/themes/glass-light/theme.json +3 -1
- package/themes/glass-light/variants/blush-pink.json +1 -1
- package/themes/glass-light/variants/blush-plum.json +1 -1
- package/themes/glass-light/variants/cream-violet.json +1 -1
- package/themes/glass-light/variants/frost-sky-suit.json +1 -1
- package/themes/glass-light/variants/frost-sky.json +1 -1
- package/themes/glass-light/variants/sage-green.json +1 -1
- package/themes/ink-wash/sample/style.json +3 -3
- package/themes/ink-wash/style.json +3 -3
- package/themes/ink-wash/theme.json +3 -1
- package/themes/iso-diorama/sample/style.json +1 -1
- package/themes/iso-diorama/style.json +1 -1
- package/themes/iso-diorama/theme.json +3 -1
- package/themes/iso-diorama/variants/chalk-plum.json +1 -1
- package/themes/iso-diorama/variants/cocoa-indigo.json +1 -1
- package/themes/iso-diorama/variants/dusk-blue.json +1 -1
- package/themes/iso-diorama/variants/dusk-coral.json +1 -1
- package/themes/iso-diorama/variants/dusk-jade.json +1 -1
- package/themes/iso-diorama/variants/forest-cyan.json +1 -1
- package/themes/iso-diorama/variants/frost-green.json +1 -1
- package/themes/iso-diorama/variants/frost-teal.json +1 -1
- package/themes/iso-diorama/variants/navy-amber.json +1 -1
- package/themes/isotype/sample/style.json +2 -2
- package/themes/isotype/style.json +2 -2
- package/themes/isotype/theme.json +2 -1
- package/themes/isotype/variants/blush-rose.json +1 -1
- package/themes/isotype/variants/chalk-coral.json +1 -1
- package/themes/isotype/variants/chalk-orange.json +1 -1
- package/themes/isotype/variants/frost-amber.json +1 -1
- package/themes/isotype/variants/frost-coral.json +1 -1
- package/themes/isotype/variants/frost-orange.json +1 -1
- package/themes/isotype/variants/sand-amber.json +1 -1
- package/themes/kawaii-sticker/effects.ts +15 -3
- package/themes/kawaii-sticker/sample/style.json +2 -2
- package/themes/kawaii-sticker/style.json +2 -2
- package/themes/kawaii-sticker/theme.json +4 -1
- package/themes/kawaii-sticker/variants/cream-gold.json +1 -1
- package/themes/kawaii-sticker/variants/dusk-green.json +1 -1
- package/themes/kawaii-sticker/variants/dusk-indigo.json +1 -1
- package/themes/kawaii-sticker/variants/dusk-sky.json +1 -1
- package/themes/kawaii-sticker/variants/dusk-teal.json +1 -1
- package/themes/kawaii-sticker/variants/frost-blue.json +1 -1
- package/themes/kawaii-sticker/variants/frost-plum.json +1 -1
- package/themes/kawaii-sticker/variants/lilac-violet.json +1 -1
- package/themes/kawaii-sticker/variants/navy-gold.json +1 -1
- package/themes/kawaii-sticker/variants/navy-plum.json +1 -1
- package/themes/lab-notebook/sample/style.json +3 -3
- package/themes/lab-notebook/style.json +3 -3
- package/themes/lab-notebook/theme.json +2 -1
- package/themes/lab-notebook/variants/blush-orange.json +1 -1
- package/themes/lab-notebook/variants/chalk-coral.json +1 -1
- package/themes/lab-notebook/variants/chalk-orange.json +1 -1
- package/themes/lab-notebook/variants/chalk-rose.json +1 -1
- package/themes/lab-notebook/variants/lilac-rose.json +1 -1
- package/themes/lab-notebook/variants/sage-rose.json +1 -1
- package/themes/lab-notebook/variants/sand-orange.json +1 -1
- package/themes/lab-notebook/variants/snow-orange.json +1 -1
- package/themes/lab-notebook/variants/snow-rose.json +1 -1
- package/themes/manga-panel/sample/style.json +3 -3
- package/themes/manga-panel/style.json +3 -3
- package/themes/manga-panel/theme.json +3 -1
- package/themes/manga-panel/variants/chalk-cyan-dots.json +1 -1
- package/themes/manga-panel/variants/chalk-rose.json +1 -1
- package/themes/manga-panel/variants/snow-cyan.json +1 -1
- package/themes/manga-panel/variants/snow-magenta-dots.json +1 -1
- package/themes/marble-run/sample/style.json +2 -2
- package/themes/marble-run/style.json +2 -2
- package/themes/marble-run/theme.json +3 -1
- package/themes/marble-run/variants/slate-orange.json +1 -1
- package/themes/neon-sign/sample/style.json +2 -2
- package/themes/neon-sign/style.json +2 -2
- package/themes/neon-sign/theme.json +2 -1
- package/themes/neon-sign/variants/dusk-plum.json +1 -1
- package/themes/neon-sign/variants/forest-magenta.json +1 -1
- package/themes/neon-sign/variants/night-pink.json +1 -1
- package/themes/neon-sign/variants/night-violet.json +1 -1
- package/themes/neon-sign/variants/slate-violet.json +1 -1
- package/themes/newspaper/sample/style.json +2 -2
- package/themes/newspaper/style.json +2 -2
- package/themes/newspaper/theme.json +2 -1
- package/themes/newspaper/variants/blush-amber.json +1 -1
- package/themes/newspaper/variants/chalk-magenta.json +1 -1
- package/themes/newspaper/variants/frost-sky.json +1 -1
- package/themes/newspaper/variants/lilac-green.json +1 -1
- package/themes/newspaper/variants/sage-lime.json +1 -1
- package/themes/og-measure/THEME.md +41 -6
- package/themes/og-measure/effects.ts +236 -115
- package/themes/og-measure/sample/assets/brand/og-logo.svg +11 -11
- package/themes/og-measure/sample/lib/data.ts +6 -0
- package/themes/og-measure/sample/scenes/end.ts +14 -10
- package/themes/og-measure/sample/scenes/gather.ts +4 -1
- package/themes/og-measure/sample/scenes/models.ts +5 -2
- package/themes/og-measure/sample/scenes/one.ts +9 -6
- package/themes/og-measure/sample/scenes/price.ts +8 -3
- package/themes/og-measure/sample/style.json +30 -35
- package/themes/og-measure/slots.ts +54 -30
- package/themes/og-measure/still.png +0 -0
- package/themes/og-measure/style.json +30 -35
- package/themes/og-measure/theme.json +72 -49
- package/themes/og-measure/variants/snow-blue.json +90 -0
- package/themes/orbit-system/sample/style.json +3 -3
- package/themes/orbit-system/style.json +3 -3
- package/themes/orbit-system/theme.json +3 -1
- package/themes/orbit-system/variants/cocoa-amber.json +1 -1
- package/themes/orbit-system/variants/cocoa-cyan.json +1 -1
- package/themes/orbit-system/variants/dusk-magenta.json +1 -1
- package/themes/orbit-system/variants/dusk-violet.json +1 -1
- package/themes/orbit-system/variants/forest-coral.json +1 -1
- package/themes/orbit-system/variants/wine-amber.json +1 -1
- package/themes/orbit-system/variants/wine-magenta.json +1 -1
- package/themes/origami-fold/sample/style.json +1 -1
- package/themes/origami-fold/style.json +1 -1
- package/themes/origami-fold/theme.json +3 -1
- package/themes/origami-fold/variants/deep-amber-sunflower.json +1 -1
- package/themes/origami-fold/variants/deep-orange.json +1 -1
- package/themes/origami-fold/variants/forest-coral.json +1 -1
- package/themes/origami-fold/variants/forest-pink.json +1 -1
- package/themes/origami-fold/variants/frost-amber-paper.json +1 -1
- package/themes/origami-fold/variants/sage-coral-sunflower.json +1 -1
- package/themes/origami-fold/variants/sage-coral.json +1 -1
- package/themes/origami-fold/variants/sage-pink-round.json +1 -1
- package/themes/origami-fold/variants/sage-pink.json +1 -1
- package/themes/paper-cutout/sample/style.json +2 -2
- package/themes/paper-cutout/style.json +2 -2
- package/themes/paper-cutout/theme.json +3 -1
- package/themes/paper-cutout/variants/blush-violet.json +1 -1
- package/themes/paper-cutout/variants/frost-lime.json +1 -1
- package/themes/paper-cutout/variants/lilac-gold.json +1 -1
- package/themes/paper-cutout/variants/sage-cyan.json +1 -1
- package/themes/paper-cutout/variants/sage-green.json +1 -1
- package/themes/paper-cutout/variants/sage-pink.json +1 -1
- package/themes/paper-cutout/variants/sand-blue.json +1 -1
- package/themes/pixel-quest/theme.json +2 -1
- package/themes/receipt/sample/style.json +2 -2
- package/themes/receipt/style.json +2 -2
- package/themes/riso-zine/sample/style.json +2 -2
- package/themes/riso-zine/style.json +2 -2
- package/themes/riso-zine/theme.json +3 -1
- package/themes/riso-zine/variants/chalk-lime.json +1 -1
- package/themes/riso-zine/variants/frost-green.json +1 -1
- package/themes/riso-zine/variants/lilac-plum.json +1 -1
- package/themes/riso-zine/variants/lilac-violet.json +1 -1
- package/themes/server-hall/sample/style.json +2 -2
- package/themes/server-hall/style.json +2 -2
- package/themes/server-hall/theme.json +3 -1
- package/themes/server-hall/variants/night-indigo.json +1 -1
- package/themes/server-hall/variants/wine-plum.json +1 -1
- package/themes/subway-map/sample/style.json +2 -2
- package/themes/subway-map/style.json +2 -2
- package/themes/subway-map/theme.json +3 -1
- package/themes/subway-map/variants/deep-green.json +1 -1
- package/themes/subway-map/variants/deep-teal.json +1 -1
- package/themes/subway-map/variants/frost-jade.json +1 -1
- package/themes/subway-map/variants/frost-teal.json +1 -1
- package/themes/subway-map/variants/slate-green.json +1 -1
- package/themes/subway-map/variants/snow-jade.json +1 -1
- package/themes/swiss-poster/sample/style.json +2 -2
- package/themes/swiss-poster/style.json +2 -2
- package/themes/swiss-poster/theme.json +3 -1
- package/themes/swiss-poster/variants/chalk-plum.json +1 -1
- package/themes/swiss-poster/variants/cocoa-cyan.json +1 -1
- package/themes/swiss-poster/variants/dusk-magenta.json +1 -1
- package/themes/swiss-poster/variants/frost-indigo.json +1 -1
- package/themes/swiss-poster/variants/slate-orange.json +1 -1
- package/themes/water-works/sample/style.json +1 -1
- package/themes/water-works/style.json +1 -1
- package/themes/water-works/theme.json +3 -1
- package/themes/water-works/variants/chalk-cyan.json +1 -1
- package/themes/water-works/variants/frost-indigo.json +1 -1
- package/themes/water-works/variants/sand-amber.json +1 -1
- package/themes/water-works/variants/sand-plum.json +1 -1
- package/themes/whiteboard/sample/style.json +2 -2
- package/themes/whiteboard/style.json +2 -2
- package/themes/whiteboard/theme.json +3 -1
- package/themes/whiteboard/variants/chalk-coral.json +1 -1
- package/themes/whiteboard/variants/cream-lime.json +1 -1
- package/themes/whiteboard/variants/frost-teal.json +1 -1
- package/themes/whiteboard/variants/lilac-indigo.json +1 -1
- package/themes/whiteboard/variants/sage-plum.json +1 -1
- package/themes/whiteboard/variants/snow-cyan.json +1 -1
- package/themes/whiteboard/variants/snow-green.json +1 -1
- package/themes/whiteboard/variants/snow-magenta.json +1 -1
- package/themes/og-measure/sample/assets/brand/og-logo-full.svg +0 -12
- package/themes/og-measure/variants/chalk-orange.json +0 -102
- package/themes/og-measure/variants/cocoa-amber.json +0 -138
- package/themes/og-measure/variants/cocoa-cyan.json +0 -138
- package/themes/og-measure/variants/cocoa-gold.json +0 -129
- package/themes/og-measure/variants/cream-lime.json +0 -137
- package/themes/og-measure/variants/deep-jade.json +0 -100
- package/themes/og-measure/variants/dusk-violet.json +0 -133
- package/themes/og-measure/variants/forest-cyan.json +0 -123
- package/themes/og-measure/variants/frost-amber.json +0 -129
- package/themes/og-measure/variants/frost-cyan.json +0 -133
- package/themes/og-measure/variants/lilac-plum.json +0 -127
- package/themes/og-measure/variants/lilac-violet.json +0 -139
- package/themes/og-measure/variants/sage-green.json +0 -137
- package/themes/og-measure/variants/wine-jade.json +0 -127
- package/themes/og-measure/variants/wine-plum.json +0 -127
package/NOTICE
CHANGED
|
@@ -146,3 +146,314 @@ MIT — Copyright (c) 2026 NikusonP
|
|
|
146
146
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
147
147
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
148
148
|
SOFTWARE.
|
|
149
|
+
|
|
150
|
+
----------------------------------------------------------------------
|
|
151
|
+
효과음 — sfx/<결>/<역할>.wav
|
|
152
|
+
Kenney(www.kenney.nl) 묶음 여섯에서 골라 다듬었다(몇은 두 소리를 꼭대기에 맞춰 겹침, 앞 무음·꼬리 자르기, 길이 상한, 페이드, 꼭대기 -1dBFS).
|
|
153
|
+
모두 CC0 1.0 — 묶음마다 받은 zip 의 License.txt 로 확인했다(tools/sfx/build.ts 가 다시 지을 때도 본다). 출처 표기 의무는 없다.
|
|
154
|
+
파일마다 원본 파일 이름은 sfx/tags.json·sfx/README.md.
|
|
155
|
+
Kenney UI SFX Set https://kenney.nl/assets/ui-audio
|
|
156
|
+
Kenney Interface Sounds 1.0 https://kenney.nl/assets/interface-sounds
|
|
157
|
+
Kenney Impact Sounds 1.0 https://kenney.nl/assets/impact-sounds
|
|
158
|
+
Kenney Digital Audio https://kenney.nl/assets/digital-audio
|
|
159
|
+
Kenney RPG Audio https://kenney.nl/assets/rpg-audio
|
|
160
|
+
Kenney Casino Audio 1.1 https://kenney.nl/assets/casino-audio
|
|
161
|
+
CC0 1.0 원문: https://creativecommons.org/publicdomain/zero/1.0/
|
|
162
|
+
|
|
163
|
+
----------------------------------------------------------------------
|
|
164
|
+
글꼴 짝 — packages/themes/kit/fonts.json · kit/fonts/<무리>.json (kf fonts notice --write 가 이 절을 짓는다)
|
|
165
|
+
글꼴 파일은 싣지 않는다 — 영상을 구울 때 판을 박은 주소(jsdelivr gh@커밋·npm@판)에서 받는다. 모두 상업 이용·영상·
|
|
166
|
+
웹 임베딩이 허용된 라이선스이고 출처 표기 의무가 없다. kf fonts check 가 라이선스 글이나 파일 name 13 에서 그 문구를 대 본다.
|
|
167
|
+
짝 305 · 글꼴 287 — 이름 · 라이선스 · 라이선스 글
|
|
168
|
+
|
|
169
|
+
Abril Fatface OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/abrilfatface/OFL.txt
|
|
170
|
+
Albert Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/albertsans/OFL.txt
|
|
171
|
+
Alegreya OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/alegreya/OFL.txt
|
|
172
|
+
Alegreya Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/alegreyasans/OFL.txt
|
|
173
|
+
Aleo OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/aleo/OFL.txt
|
|
174
|
+
Alfa Slab One OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/alfaslabone/OFL.txt
|
|
175
|
+
Anton OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/anton/OFL.txt
|
|
176
|
+
Antonio OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/antonio/OFL.txt
|
|
177
|
+
Architects Daughter OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/architectsdaughter/OFL.txt
|
|
178
|
+
Archivo OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/archivo/OFL.txt
|
|
179
|
+
Archivo Black OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/archivoblack/OFL.txt
|
|
180
|
+
Archivo Narrow OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/archivonarrow/OFL.txt
|
|
181
|
+
Arvo OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/arvo/OFL.txt
|
|
182
|
+
Asta Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/astasans/OFL.txt
|
|
183
|
+
Atkinson Hyperlegible Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/atkinsonhyperlegiblemono/OFL.txt
|
|
184
|
+
Audiowide OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/audiowide/OFL.txt
|
|
185
|
+
Azeret Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/azeretmono/OFL.txt
|
|
186
|
+
Bagel Fat One OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/bagelfatone/OFL.txt
|
|
187
|
+
Bangers OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/bangers/OFL.txt
|
|
188
|
+
Barlow OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/barlow/OFL.txt
|
|
189
|
+
Baskervville OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/baskervville/OFL.txt
|
|
190
|
+
Bebas Neue OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/bebasneue/OFL.txt
|
|
191
|
+
Bellefair OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/bellefair/OFL.txt
|
|
192
|
+
Besley OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/besley/OFL.txt
|
|
193
|
+
Big Shoulders Display OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/bigshouldersdisplay/OFL.txt
|
|
194
|
+
Bitter OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/bitter/OFL.txt
|
|
195
|
+
Black And White Picture OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/blackandwhitepicture/OFL.txt
|
|
196
|
+
Black Han Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/blackhansans/OFL.txt
|
|
197
|
+
Black Ops One OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/blackopsone/OFL.txt
|
|
198
|
+
BM EULJIRO OFL-1.1 https://www.woowahan.com/fonts/license
|
|
199
|
+
BM Euljiro 10 years later OFL-1.1 https://www.woowahan.com/fonts/license
|
|
200
|
+
BM HANNA Air OFL-1.1 https://www.woowahan.com/fonts/license
|
|
201
|
+
BM HANNA Pro OFL-1.1 https://www.woowahan.com/fonts/license
|
|
202
|
+
Bodoni Moda OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/bodonimoda/OFL.txt
|
|
203
|
+
Bricolage Grotesque OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/bricolagegrotesque/OFL.txt
|
|
204
|
+
Brygada 1918 OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/brygada1918/OFL.txt
|
|
205
|
+
Bungee OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/bungee/OFL.txt
|
|
206
|
+
Bungee Inline OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/bungeeinline/OFL.txt
|
|
207
|
+
Bungee Outline OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/bungeeoutline/OFL.txt
|
|
208
|
+
Cabin OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/cabin/OFL.txt
|
|
209
|
+
Cafe24 ClassicType OFL-1.1 https://fonts.cafe24.com/
|
|
210
|
+
Cafe24 Danjunghae OFL-1.1 https://fonts.cafe24.com/
|
|
211
|
+
Cafe24 Dongdong OFL-1.1 https://fonts.cafe24.com/
|
|
212
|
+
Cafe24 Ohsquare OFL-1.1 https://fonts.cafe24.com/
|
|
213
|
+
Cafe24 Oneprettynight OFL-1.1 https://fonts.cafe24.com/
|
|
214
|
+
Cafe24 Shiningstar OFL-1.1 https://fonts.cafe24.com/
|
|
215
|
+
Cafe24 Simplehae OFL-1.1 https://fonts.cafe24.com/
|
|
216
|
+
Cafe24 Ssukssuk OFL-1.1 https://fonts.cafe24.com/
|
|
217
|
+
Cafe24 Ssurround OFL-1.1 https://fonts.cafe24.com/
|
|
218
|
+
Cafe24 Ssurround Air OFL-1.1 https://fonts.cafe24.com/
|
|
219
|
+
Cafe24 Syongsyong OFL-1.1 https://fonts.cafe24.com/
|
|
220
|
+
Caveat OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/caveat/OFL.txt
|
|
221
|
+
Chakra Petch OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/chakrapetch/OFL.txt
|
|
222
|
+
Chango OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/chango/OFL.txt
|
|
223
|
+
Chewy Apache-2.0 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/apache/chewy/LICENSE.txt
|
|
224
|
+
Chivo OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/chivo/OFL.txt
|
|
225
|
+
Chivo Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/chivomono/OFL.txt
|
|
226
|
+
Cinzel OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/cinzel/OFL.txt
|
|
227
|
+
Coiny OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/coiny/OFL.txt
|
|
228
|
+
Comfortaa OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/comfortaa/OFL.txt
|
|
229
|
+
Comic Neue OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/comicneue/OFL.txt
|
|
230
|
+
Commissioner OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/commissioner/OFL.txt
|
|
231
|
+
Cormorant OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/cormorant/OFL.txt
|
|
232
|
+
Cormorant Garamond OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/cormorantgaramond/OFL.txt
|
|
233
|
+
Courier Prime OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/courierprime/OFL.txt
|
|
234
|
+
Covered By Your Grace OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/coveredbyyourgrace/OFL.txt
|
|
235
|
+
Crimson Pro OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/crimsonpro/OFL.txt
|
|
236
|
+
Cute Font OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/cutefont/OFL.txt
|
|
237
|
+
Cutive Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/cutivemono/OFL.txt
|
|
238
|
+
D2Coding OFL-1.1 https://raw.githubusercontent.com/naver/d2codingfont/b0dc372e28d7abdba7f3cba854855ceffbd490a8/OFL.txt
|
|
239
|
+
Diphylleia OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/diphylleia/OFL.txt
|
|
240
|
+
DM Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/dmmono/OFL.txt
|
|
241
|
+
DM Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/dmsans/OFL.txt
|
|
242
|
+
DM Serif Display OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/dmserifdisplay/OFL.txt
|
|
243
|
+
Do Hyeon OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/dohyeon/OFL.txt
|
|
244
|
+
Dokdo OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/dokdo/OFL.txt
|
|
245
|
+
Domine OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/domine/OFL.txt
|
|
246
|
+
Dongle OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/dongle/OFL.txt
|
|
247
|
+
Doto OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/doto/OFL.txt
|
|
248
|
+
DynaPuff OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/dynapuff/OFL.txt
|
|
249
|
+
East Sea Dokdo OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/eastseadokdo/OFL.txt
|
|
250
|
+
EB Garamond OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ebgaramond/OFL.txt
|
|
251
|
+
Epilogue OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/epilogue/OFL.txt
|
|
252
|
+
Exo 2 OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/exo2/OFL.txt
|
|
253
|
+
Figtree OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/figtree/OFL.txt
|
|
254
|
+
Fira Code OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/firacode/OFL.txt
|
|
255
|
+
Fira Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/firamono/OFL.txt
|
|
256
|
+
Fjalla One OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/fjallaone/OFL.txt
|
|
257
|
+
Forum OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/forum/OFL.txt
|
|
258
|
+
Fraunces OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/fraunces/OFL.txt
|
|
259
|
+
Fredoka OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/fredoka/OFL.txt
|
|
260
|
+
Freesentation OFL-1.1 https://cdn.jsdelivr.net/gh/Freesentation/freesentation@98f6b841fca55a23fbb0f9eb91acda0e16a676ea/OFL%20license.txt
|
|
261
|
+
Funnel Display OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/funneldisplay/OFL.txt
|
|
262
|
+
Gaegu OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/gaegu/OFL.txt
|
|
263
|
+
Galmuri11 OFL-1.1 https://cdn.jsdelivr.net/npm/galmuri@2.40.3/dist/LICENSE.txt
|
|
264
|
+
Galmuri11 Condensed OFL-1.1 https://cdn.jsdelivr.net/npm/galmuri@2.40.3/dist/LICENSE.txt
|
|
265
|
+
Galmuri14 OFL-1.1 https://cdn.jsdelivr.net/npm/galmuri@2.40.3/dist/LICENSE.txt
|
|
266
|
+
Galmuri7 OFL-1.1 https://cdn.jsdelivr.net/npm/galmuri@2.40.3/dist/LICENSE.txt
|
|
267
|
+
Galmuri9 OFL-1.1 https://cdn.jsdelivr.net/npm/galmuri@2.40.3/dist/LICENSE.txt
|
|
268
|
+
GalmuriMono11 OFL-1.1 https://cdn.jsdelivr.net/npm/galmuri@2.40.3/dist/LICENSE.txt
|
|
269
|
+
GalmuriMono7 OFL-1.1 https://cdn.jsdelivr.net/npm/galmuri@2.40.3/dist/LICENSE.txt
|
|
270
|
+
GalmuriMono9 OFL-1.1 https://cdn.jsdelivr.net/npm/galmuri@2.40.3/dist/LICENSE.txt
|
|
271
|
+
Gamja Flower OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/gamjaflower/OFL.txt
|
|
272
|
+
Gasoek One OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/gasoekone/OFL.txt
|
|
273
|
+
Geist OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/geist/OFL.txt
|
|
274
|
+
Geist OFL-1.1 https://cdn.jsdelivr.net/npm/geist@1.3.1/LICENSE.TXT
|
|
275
|
+
Geist Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/geistmono/OFL.txt
|
|
276
|
+
Geist Mono OFL-1.1 https://cdn.jsdelivr.net/npm/geist@1.3.1/LICENSE.TXT
|
|
277
|
+
Gelasio OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/gelasio/OFL.txt
|
|
278
|
+
Geologica OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/geologica/OFL.txt
|
|
279
|
+
Gilda Display OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/gildadisplay/OFL.txt
|
|
280
|
+
Gloock OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/gloock/OFL.txt
|
|
281
|
+
Gochi Hand OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/gochihand/OFL.txt
|
|
282
|
+
Golos Text OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/golostext/OFL.txt
|
|
283
|
+
goorm Sans OFL-1.1 https://cdn.jsdelivr.net/npm/goorm-sans@1.0.0/LICENSE.md
|
|
284
|
+
goorm Sans Code OFL-1.1 https://cdn.jsdelivr.net/npm/goorm-sans@1.0.0/LICENSE.md
|
|
285
|
+
Gothic A1 OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/gothica1/OFL.txt
|
|
286
|
+
Gowun Batang OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/gowunbatang/OFL.txt
|
|
287
|
+
Gowun Dodum OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/gowundodum/OFL.txt
|
|
288
|
+
Grandiflora One OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/grandifloraone/OFL.txt
|
|
289
|
+
Grandstander OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/grandstander/OFL.txt
|
|
290
|
+
Gugi OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/gugi/OFL.txt
|
|
291
|
+
Hahmlet OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/hahmlet/OFL.txt
|
|
292
|
+
Hanken Grotesk OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/hankengrotesk/OFL.txt
|
|
293
|
+
Hepta Slab OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/heptaslab/OFL.txt
|
|
294
|
+
Hi Melody OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/himelody/OFL.txt
|
|
295
|
+
Host Grotesk OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/hostgrotesk/OFL.txt
|
|
296
|
+
Hubot Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/hubotsans/OFL.txt
|
|
297
|
+
IBM Plex Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexmono/OFL.txt
|
|
298
|
+
IBM Plex Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexsans/OFL.txt
|
|
299
|
+
IBM Plex Sans KR OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexsanskr/OFL.txt
|
|
300
|
+
IBM Plex Serif OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexserif/OFL.txt
|
|
301
|
+
IM Fell English OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/imfellenglish/OFL.txt
|
|
302
|
+
Inconsolata OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/inconsolata/OFL.txt
|
|
303
|
+
Indie Flower OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/indieflower/OFL.txt
|
|
304
|
+
Instrument Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/instrumentsans/OFL.txt
|
|
305
|
+
Instrument Serif OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/instrumentserif/OFL.txt
|
|
306
|
+
Inter OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/inter/OFL.txt
|
|
307
|
+
Inter Tight OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/intertight/OFL.txt
|
|
308
|
+
Iropke Batang OFL-1.1 https://cdn.jsdelivr.net/gh/iropke/font-iropke-batang@v1.2/README.md
|
|
309
|
+
Italiana OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/italiana/OFL.txt
|
|
310
|
+
Jersey 10 OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/jersey10/OFL.txt
|
|
311
|
+
Jersey 15 OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/jersey15/OFL.txt
|
|
312
|
+
JetBrains Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/jetbrainsmono/OFL.txt
|
|
313
|
+
JetBrains Mono OFL-1.1 https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/LICENSE
|
|
314
|
+
Josefin Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/josefinsans/OFL.txt
|
|
315
|
+
Josefin Slab OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/josefinslab/OFL.txt
|
|
316
|
+
Jost OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/jost/OFL.txt
|
|
317
|
+
Jua OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/jua/OFL.txt
|
|
318
|
+
Kalam OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/kalam/OFL.txt
|
|
319
|
+
Kirang Haerang OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/kiranghaerang/OFL.txt
|
|
320
|
+
Kode Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/kodemono/OFL.txt
|
|
321
|
+
Kumbh Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/kumbhsans/OFL.txt
|
|
322
|
+
Lato OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/lato/OFL.txt
|
|
323
|
+
League Gothic OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/leaguegothic/OFL.txt
|
|
324
|
+
League Spartan OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/leaguespartan/OFL.txt
|
|
325
|
+
Lexend OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/lexend/OFL.txt
|
|
326
|
+
Libertinus Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/libertinusmono/OFL.txt
|
|
327
|
+
Libre Baskerville OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/librebaskerville/OFL.txt
|
|
328
|
+
Libre Bodoni OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/librebodoni/OFL.txt
|
|
329
|
+
Libre Caslon Text OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/librecaslontext/OFL.txt
|
|
330
|
+
Libre Franklin OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/librefranklin/OFL.txt
|
|
331
|
+
Lilita One OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/lilitaone/OFL.txt
|
|
332
|
+
LINE Seed Sans KR OFL-1.1 https://raw.githubusercontent.com/line/seed/0564884c67ebdb3b31e90e2106c2d061f953b6a0/OFL.txt
|
|
333
|
+
Literata OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/literata/OFL.txt
|
|
334
|
+
Lora OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/lora/OFL.txt
|
|
335
|
+
Luckiest Guy Apache-2.0 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/apache/luckiestguy/LICENSE.txt
|
|
336
|
+
Manrope OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/manrope/OFL.txt
|
|
337
|
+
Mansalva OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/mansalva/OFL.txt
|
|
338
|
+
Marcellus OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/marcellus/OFL.txt
|
|
339
|
+
Martian Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/martianmono/OFL.txt
|
|
340
|
+
MaruBuri OFL-1.1 https://help.naver.com/service/30016/contents/18088?osType=PC&lang=ko
|
|
341
|
+
Michroma OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/michroma/OFL.txt
|
|
342
|
+
Micro 5 OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/micro5/OFL.txt
|
|
343
|
+
Moirai One OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/moiraione/OFL.txt
|
|
344
|
+
Mona Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/monasans/OFL.txt
|
|
345
|
+
Monoton OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/monoton/OFL.txt
|
|
346
|
+
Montserrat OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/montserrat/OFL.txt
|
|
347
|
+
Nanum BaReunHiPi OFL-1.1 https://help.naver.com/service/30016/contents/18088?osType=PC&lang=ko
|
|
348
|
+
Nanum Brush Script OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/nanumbrushscript/OFL.txt
|
|
349
|
+
Nanum DaHaengCe OFL-1.1 https://help.naver.com/service/30016/contents/18088?osType=PC&lang=ko
|
|
350
|
+
Nanum GarMaesGeur OFL-1.1 https://help.naver.com/service/30016/contents/18088?osType=PC&lang=ko
|
|
351
|
+
Nanum GoDigANiGoGoDing OFL-1.1 https://help.naver.com/service/30016/contents/18088?osType=PC&lang=ko
|
|
352
|
+
Nanum Gothic OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/nanumgothic/OFL.txt
|
|
353
|
+
Nanum Gothic Coding OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/nanumgothiccoding/OFL.txt
|
|
354
|
+
Nanum JungHagSaeng OFL-1.1 https://help.naver.com/service/30016/contents/18088?osType=PC&lang=ko
|
|
355
|
+
Nanum KarGugSu OFL-1.1 https://help.naver.com/service/30016/contents/18088?osType=PC&lang=ko
|
|
356
|
+
Nanum Myeongjo OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/nanummyeongjo/OFL.txt
|
|
357
|
+
Nanum Pen Script OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/nanumpenscript/OFL.txt
|
|
358
|
+
NanumBarunGothic OFL-1.1 https://help.naver.com/service/30016/contents/18088?lang=ko&osType=PC
|
|
359
|
+
NanumSquare Neo OFL-1.1 https://help.naver.com/service/30016/contents/18088?lang=ko&osType=PC
|
|
360
|
+
NeoDunggeunmo OFL-1.1 https://cdn.jsdelivr.net/gh/Dalgona/neodgm@v1.601/LICENSE.txt
|
|
361
|
+
NeoDunggeunmo Code OFL-1.1 https://cdn.jsdelivr.net/gh/Dalgona/neodgm@v1.601/LICENSE.txt
|
|
362
|
+
Newsreader OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/newsreader/OFL.txt
|
|
363
|
+
Noticia Text OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/noticiatext/OFL.txt
|
|
364
|
+
Noto Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/notosans/OFL.txt
|
|
365
|
+
Noto Sans KR OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/notosanskr/OFL.txt
|
|
366
|
+
Noto Sans Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/notosansmono/OFL.txt
|
|
367
|
+
Noto Serif KR OFL-1.1 https://cdn.jsdelivr.net/gh/notofonts/noto-cjk@9b0f1436e455d902de067a2501422e5dc71ad16b/Serif/LICENSE
|
|
368
|
+
Nunito OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/nunito/OFL.txt
|
|
369
|
+
Nunito Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/nunitosans/OFL.txt
|
|
370
|
+
Old Standard TT OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/oldstandardtt/OFL.txt
|
|
371
|
+
Onest OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/onest/OFL.txt
|
|
372
|
+
Open Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/opensans/OFL.txt
|
|
373
|
+
Orbit OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/orbit/OFL.txt
|
|
374
|
+
Orbitron OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/orbitron/OFL.txt
|
|
375
|
+
Oswald OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/oswald/OFL.txt
|
|
376
|
+
Outfit OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/outfit/OFL.txt
|
|
377
|
+
Overpass OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/overpass/OFL.txt
|
|
378
|
+
Overpass Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/overpassmono/OFL.txt
|
|
379
|
+
Paperlogy OFL-1.1 https://cdn.jsdelivr.net/gh/Freesentation/paperlogy@8ef35f53b318c7ca914c52b1b382b9a8bad07a61/OFL%20license.txt
|
|
380
|
+
Patrick Hand OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/patrickhand/OFL.txt
|
|
381
|
+
Paytone One OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/paytoneone/OFL.txt
|
|
382
|
+
Permanent Marker Apache-2.0 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/apache/permanentmarker/LICENSE.txt
|
|
383
|
+
Petrona OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/petrona/OFL.txt
|
|
384
|
+
Pixelify Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/pixelifysans/OFL.txt
|
|
385
|
+
Playfair Display OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/playfairdisplay/OFL.txt
|
|
386
|
+
Playpen Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/playpensans/OFL.txt
|
|
387
|
+
Plus Jakarta Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/plusjakartasans/OFL.txt
|
|
388
|
+
Poor Story OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/poorstory/OFL.txt
|
|
389
|
+
Poppins OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/poppins/OFL.txt
|
|
390
|
+
Prata OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/prata/OFL.txt
|
|
391
|
+
Press Start 2P OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/pressstart2p/OFL.txt
|
|
392
|
+
Pretendard Variable OFL-1.1 https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/LICENSE
|
|
393
|
+
Pretendard Variable OFL-1.1 https://cdn.jsdelivr.net/npm/pretendard@1.3.9/dist/LICENSE.txt
|
|
394
|
+
PT Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ptmono/OFL.txt
|
|
395
|
+
PT Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ptsans/OFL.txt
|
|
396
|
+
PT Serif OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ptserif/OFL.txt
|
|
397
|
+
Public Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/publicsans/OFL.txt
|
|
398
|
+
Quicksand OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/quicksand/OFL.txt
|
|
399
|
+
Red Hat Display OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/redhatdisplay/OFL.txt
|
|
400
|
+
Red Hat Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/redhatmono/OFL.txt
|
|
401
|
+
Reenie Beanie OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/reeniebeanie/OFL.txt
|
|
402
|
+
RIDIBatang OFL-1.1 https://cdn.jsdelivr.net/gh/fonts-archive/RIDIBatang@f1628238e56fd41c12451dfc7d975527b61ebfc7/README.md
|
|
403
|
+
Righteous OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/righteous/OFL.txt
|
|
404
|
+
Roboto OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/roboto/OFL.txt
|
|
405
|
+
Roboto Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/robotomono/OFL.txt
|
|
406
|
+
Roboto Slab Apache-2.0 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/apache/robotoslab/LICENSE.txt
|
|
407
|
+
Rokkitt OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/rokkitt/OFL.txt
|
|
408
|
+
Rozha One OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/rozhaone/OFL.txt
|
|
409
|
+
Rubik Bubbles OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/rubikbubbles/OFL.txt
|
|
410
|
+
Russo One OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/russoone/OFL.txt
|
|
411
|
+
Rye OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/rye/OFL.txt
|
|
412
|
+
Sacramento OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/sacramento/OFL.txt
|
|
413
|
+
Saira OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/saira/OFL.txt
|
|
414
|
+
Schibsted Grotesk OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/schibstedgrotesk/OFL.txt
|
|
415
|
+
Schoolbell Apache-2.0 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/apache/schoolbell/LICENSE.txt
|
|
416
|
+
Sedgwick Ave OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/sedgwickave/OFL.txt
|
|
417
|
+
Share Tech Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/sharetechmono/OFL.txt
|
|
418
|
+
Short Stack OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/shortstack/OFL.txt
|
|
419
|
+
Shrikhand OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/shrikhand/OFL.txt
|
|
420
|
+
Silkscreen OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/silkscreen/OFL.txt
|
|
421
|
+
Single Day OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/singleday/OFL.txt
|
|
422
|
+
Sixtyfour OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/sixtyfour/OFL.txt
|
|
423
|
+
Sniglet OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/sniglet/OFL.txt
|
|
424
|
+
Sometype Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/sometypemono/OFL.txt
|
|
425
|
+
Song Myung OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/songmyung/OFL.txt
|
|
426
|
+
Sora OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/sora/OFL.txt
|
|
427
|
+
Source Code Pro OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/sourcecodepro/OFL.txt
|
|
428
|
+
Source Sans 3 OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/sourcesans3/OFL.txt
|
|
429
|
+
Source Serif 4 OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/sourceserif4/OFL.txt
|
|
430
|
+
Space Grotesk OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/spacegrotesk/OFL.txt
|
|
431
|
+
Space Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/spacemono/OFL.txt
|
|
432
|
+
Special Elite Apache-2.0 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/apache/specialelite/LICENSE.txt
|
|
433
|
+
Spectral OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/spectral/OFL.txt
|
|
434
|
+
Spline Sans Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/splinesansmono/OFL.txt
|
|
435
|
+
Spoqa Han Sans Neo OFL-1.1 https://cdn.jsdelivr.net/npm/spoqa-han-sans@3.3.0/LICENSE
|
|
436
|
+
Stylish OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/stylish/OFL.txt
|
|
437
|
+
SUIT Variable OFL-1.1 https://cdn.jsdelivr.net/gh/sun-typeface/SUIT@2.0.5/LICENSE
|
|
438
|
+
SUITE Variable OFL-1.1 https://cdn.jsdelivr.net/gh/sun-typeface/SUITE@v2.0.4/LICENSE
|
|
439
|
+
Sunflower OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/sunflower/OFL.txt
|
|
440
|
+
Syne OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/syne/OFL.txt
|
|
441
|
+
Tilt Neon OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/tiltneon/OFL.txt
|
|
442
|
+
Tiny5 OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/tiny5/OFL.txt
|
|
443
|
+
Titan One OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/titanone/OFL.txt
|
|
444
|
+
Ultra Apache-2.0 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/apache/ultra/LICENSE.txt
|
|
445
|
+
Unbounded OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/unbounded/OFL.txt
|
|
446
|
+
Urbanist OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/urbanist/OFL.txt
|
|
447
|
+
Varela Round OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/varelaround/OFL.txt
|
|
448
|
+
Victor Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/victormono/OFL.txt
|
|
449
|
+
Vollkorn OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/vollkorn/OFL.txt
|
|
450
|
+
VT323 OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/vt323/OFL.txt
|
|
451
|
+
Wanted Sans Variable OFL-1.1 https://cdn.jsdelivr.net/npm/wanted-sans@1.0.3/fonts/OFL.txt
|
|
452
|
+
Work Sans OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/worksans/OFL.txt
|
|
453
|
+
Workbench OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/workbench/OFL.txt
|
|
454
|
+
Xanh Mono OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/xanhmono/OFL.txt
|
|
455
|
+
Yellowtail Apache-2.0 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/apache/yellowtail/LICENSE.txt
|
|
456
|
+
Yeon Sung OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/yeonsung/OFL.txt
|
|
457
|
+
Yeseva One OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/yesevaone/OFL.txt
|
|
458
|
+
Young Serif OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/youngserif/OFL.txt
|
|
459
|
+
Zilla Slab OFL-1.1 https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/zillaslab/OFL.txt
|
package/README.md
CHANGED
|
@@ -9,9 +9,21 @@
|
|
|
9
9
|
```sh
|
|
10
10
|
npm i -g kasaframe
|
|
11
11
|
kf setup # Playwright 크롬 + librosa(곡 분석) 받기
|
|
12
|
-
kf doctor # ffmpeg·크롬·librosa·OG 키 점검 — 없는 것은 까는 명령을 알려 준다
|
|
12
|
+
kf doctor # 판·ffmpeg·크롬·librosa·OG 키 점검 — 없는 것은 까는 명령을 알려 준다
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
+
### 업데이트
|
|
16
|
+
|
|
17
|
+
kf 는 몇 시간에 한 번 뒤에서 새 판을 확인해 둔다(기다리지 않는다). 새 판을 알면 터미널에서는 명령 전에 「1) 지금 업데이트 2) 건너뛰기 3) 이 판은 다시 묻지 않기」를 묻고, 1 이면 깐 방식(npm·pnpm·bun·yarn)대로 올린 뒤 치던 명령을 새 판으로 이어 돈다. 터미널이 아니면(에이전트·파이프) 표준 오류에 `[kasaframe] 새 판 <최신> (지금 <지금>) — kf update` 한 줄만 찍는다.
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
kf update # 지금 확인하고 올리기
|
|
21
|
+
kf update --check # 보기만 (--json 이면 {current, latest, update, command})
|
|
22
|
+
kf update --yes # 묻지 않고 — 에이전트용
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
끄기: `KF_NO_UPDATE_CHECK=1` 또는 `CI`. 레지스트리는 npm 설정을 따르고, 권한이 없어 못 올리면 칠 명령을 보여 주고 지금 판으로 이어 간다(sudo 는 쓰지 않는다).
|
|
26
|
+
|
|
15
27
|
## 요구 사항
|
|
16
28
|
|
|
17
29
|
| 무엇 | 왜 | 깔기 |
|
|
@@ -55,7 +67,7 @@ kf skill install # ~/.claude/skills/kasaframe 에 스킬 링
|
|
|
55
67
|
|
|
56
68
|
## 목소리·곡
|
|
57
69
|
|
|
58
|
-
쇼츠·설명은 차분한 TTS 내레이션과 깊은 앰비언트 곡(`deep`)이 기본이다. 목소리가 장면 길이를 정하고, 렌더가 곡을 말 아래로 덕킹해 -14 LUFS 로 섞는다. 곡은 틀이 박은 분위기(`deep`)대로 매번 같고, 목소리는 만들기 전에 묻는다(로컬 Qwen3·ElevenLabs·자막만·그 밖 차례). 엔진·곡이 없으면 다른 것으로 넘어가지 않고 키 넣기·다른 엔진·빼기를 묻는다.
|
|
70
|
+
쇼츠·설명은 차분한 TTS 내레이션과 깊은 앰비언트 곡(`deep`)이 기본이다. 목소리가 장면 길이를 정하고, 렌더가 곡을 말 아래로 덕킹해 -14 LUFS 로 섞는다. 효과음도 기본으로 깐다 — 뜻 있는 자리(장면 바뀜·드롭·주인공 착지·짚개가 요점에 닿는 순간)에만 테마가 고른 결(`sfx/` 의 CC0 소리)을 둘레 곡과 비슷한 크기로, 그 순간 곡을 살짝 눌러 들리게(목소리가 있으면 더 낮게). 끄기는 `kf.json` 의 `sfx: false` 나 `kf render|make --sfx off`. 곡은 틀이 박은 분위기(`deep`)대로 매번 같고, 목소리는 만들기 전에 묻는다(로컬 Qwen3·ElevenLabs·자막만·그 밖 차례). 엔진·곡이 없으면 다른 것으로 넘어가지 않고 키 넣기·다른 엔진·빼기를 묻는다.
|
|
59
71
|
|
|
60
72
|
| 쓰는 것 | 키 | 상태 |
|
|
61
73
|
|---|---|---|
|
|
@@ -73,7 +85,7 @@ kf skill install # ~/.claude/skills/kasaframe 에 스킬 링
|
|
|
73
85
|
| `kf new` | 용도 틀에서 프로젝트 뼈대 — 곡 분석·박에 맞춘 장면 시간표·장면 파일 |
|
|
74
86
|
| `kf make` | 요청 한 줄로 끝까지 — 용도 판별·계획·장면·렌더·검사 |
|
|
75
87
|
| `kf preview` | 미리보기 — 곡이 기준 시계, 타임라인·박·드롭·프레임 이동 |
|
|
76
|
-
| `kf render` | MP4(또는 ProRes·PNG 묶음)로 굽기 — 탭 병렬,
|
|
88
|
+
| `kf render` | MP4(또는 ProRes·PNG 묶음)로 굽기 — 탭 병렬, 곡·목소리·효과음 얹기, 자막 |
|
|
77
89
|
| `kf check` | 검사 — 멈춤·빈 화면·글 깨짐·화면 밖 글·대비·섬광·박 경계·움직임 규칙 |
|
|
78
90
|
| `kf still` · `kf sheet` · `kf look` | 한 장 · 장면 모음 · 장면별 확인표 |
|
|
79
91
|
| `kf beats` | 곡을 재서 `beats.json` — 박·마디·프레이즈·구간·드롭·대역 에너지 |
|
|
@@ -81,9 +93,10 @@ kf skill install # ~/.claude/skills/kasaframe 에 스킬 링
|
|
|
81
93
|
| `kf narrate` | 내레이션 먼저 — 장면별 문장을 TTS 로 읽혀 장면 길이를 목소리에 맞추고(곡이 있으면 박에), 자막을 목소리 시각으로 |
|
|
82
94
|
| `kf music` | 곡 모음(분위기 태그) 보기·넣기, 음악 생성(Lyria · Eleven Music) |
|
|
83
95
|
| `kf transitions` | 전환 목록 — 이름·출처·라이선스 |
|
|
84
|
-
| `kf theme list [--variants]` · `kf theme sheet [--variants <세계\|all>]` · `kf theme vary <세계\|all>` · `kf theme suggest [--json]` | 테마 — 세계(`riso-zine` · `debug-hud` · `og-measure` …)와 겉모습만 바꾼 변주(`og-measure/
|
|
96
|
+
| `kf theme list [--variants]` · `kf theme sheet [--variants <세계\|all>]` · `kf theme vary <세계\|all>` · `kf theme suggest [--json]` | 테마 — 세계(`riso-zine` · `debug-hud` · `og-measure` …)와 겉모습만 바꾼 변주(`og-measure/snow-blue`), 같은 문장 한 장면을 테마마다 찍은 견본 격자, 변주 뽑기, 요청에 맞는 후보(kf make 의 테마 질문과 같은 고르기) |
|
|
85
97
|
| `kf app` | 작업실 — 요청 칸·실시간 미리보기·렌더·검사 보고를 브라우저로(:5150) |
|
|
86
|
-
| `kf doctor` · `kf setup` |
|
|
98
|
+
| `kf doctor` · `kf setup` | 판·바깥 도구 점검 · 깔기 |
|
|
99
|
+
| `kf update` | 새 판 확인·올리기(`--check` · `--json` · `--yes`) |
|
|
87
100
|
| `kf skill` | Claude Code 스킬 링크 |
|
|
88
101
|
|
|
89
102
|
`kf <명령> --help` 로 인자를 본다. 렌더·검사는 한 기계에서 하나씩 돈다(잠금 — 다른 렌더가 쥐고 있으면 기다린다).
|
package/docs/AGENTS.md
CHANGED
|
@@ -13,7 +13,7 @@ kf make "카사텀 홍보 영상 1분, 카와이 퓨처베이스" [--music 곡.m
|
|
|
13
13
|
- **그림 보기는 세션이 직접**: `kf look <폴더|mp4>` 가 장면 모음(`out/look-sheet.png`)과 장면별 확인표(`out/look.md` — 빈 화면·글 깨짐·대비·잘림·주인공 자리·할 일·테마)를 만들고 경로만 찍는다. 외부 모델을 부르지 않는다. **눈 없는 모델**(Claude Code 를 OG 로 딥시크 같은 모델에 붙였을 때 — OG `/v1/messages` 는 그림을 버려서 Read 해도 안 보인다)만 `kf look <폴더|mp4> --vision-model google/gemini-3.5-flash [--ask "<볼 것>"]` 로 그림 보는 모델이 장면마다 글로 보고한다(한 번 1센트 안팎, 묻지 않고 써도 된다). `kf make --finish` 도 기본은 그림 보는 모델 없이 끝에 장면 모음·확인표 경로를 찍는다.
|
|
14
14
|
- **곡**: 홍보·공개·뮤비는 곡이 끌고 간다. `--music` 을 안 주면 곡 모음(`KF_MUSIC_DIR`, 없으면 레포 `music/` — 곡마다 원본·라이선스·분위기 태그는 `music/tags.json`·`README.md`. npm 패키지에는 곡이 없다)에서 요청 낱말과 맞는 곡을 고른다. 곡 모음이 비었으면 `--music` 으로 준다.
|
|
15
15
|
- **목소리·곡(쇼츠·설명)**: 차분한 TTS 내레이션 + 깊은 앰비언트 곡(`deep`)이 기본이다. 곡은 분위기 태그가 맞는 곡 모음 곡을 묻지 않고 고르고(같은 틀이면 늘 같은 곡), 없으면 생성(Lyria·Eleven Music, 돈)·곡 넣기·없음을 묻는다. 목소리는 늘 맨 위 질문으로 묻는다 — 보기 차례 로컬 Qwen3(`KF_QWEN3_TTS_URL` 이 있을 때)·ElevenLabs(키가 없으면 넣는 법)·자막만·그 밖 엔진(`kf narrate --voices`). 로컬도 ElevenLabs 도 없거나 생성 키가 없으면 다른 엔진·「자막만」·「곡 없이」로 넘어가지 말고 맨 위 질문대로 사람에게 묻는다(키 넣기가 권장). 묻지 않으려면 `--voice <엔진>:<목소리>|none`·`--music <곡>|gen:lyria-3.5|none`. 그다음은 아래 「내레이션 먼저」.
|
|
16
|
-
- **용도·테마**: 용도는 확신이 낮을 때만 묻는다. 테마는 요청이 「리소 느낌으로」처럼 짚었거나 시리즈가 정했으면 그대로, 아니면 맨 위 질문으로 묻는다 — 테마는 「세계 × 변주」(세계 = 비유와 효과 코드, 변주 = 겉모습만 바꾼 판 `<세계>/<변주>`, 예 `og-measure/
|
|
16
|
+
- **용도·테마**: 용도는 확신이 낮을 때만 묻는다. 테마는 요청이 「리소 느낌으로」처럼 짚었거나 시리즈가 정했으면 그대로, 아니면 맨 위 질문으로 묻는다 — 테마는 「세계 × 변주」(세계 = 비유와 효과 코드, 변주 = 겉모습만 바꾼 판 `<세계>/<변주>`, 예 `og-measure/snow-blue`)라 수백 판이고, 보기는 「알아서」(= `auto`, 첫 후보)와 요청·용도·분위기 낱말에 맞는 넷뿐이다. 질문 글에 넷만 담은 견본 시트 경로가 붙는다 — 그 그림을 사람에게 보인다. 사람이 보기 밖으로 분위기 한 마디나 그림·주소를 주면 `kf make --answer <폴더> --theme-mood "<말>"`·`--theme-ref <경로|URL>` 로 넣는다(후보 넷·시트·MAKE.md 를 다시 고쳐 쓰고 종료 3 — 다시 묻는다). 답이 오기 전 뼈대는 첫 후보로 깔려 있다. 못 박으려면 `--purpose <용도>`·`--theme <id>`, 테마 없이 프리셋만이면 `--theme none`. **시리즈**(`kf series list` — 예 「OG 쇼츠」)를 짚으면 용도·테마보다 먼저 그 묶음(용도·테마·목소리·곡·자막·길이·끝 카드·생성 답)으로 묻지 않고 간다 — 같은 시리즈면 매번 같다. 잘 나온 프로젝트를 묶음으로: `kf series new <id> --from <폴더> --match "…"`. 같은 말이 같은 결과를 내는지는 `kf bench "<요청>" --runs 3`. 묻는 것은 용도 확신이 낮을 때뿐(종료 코드 3).
|
|
17
17
|
- **작업실**: `kf app` 이 떠 있으면 `kf make` 가 거기에 등록하고 주소를 찍는다 — 사람은 페이지에서 실시간 미리보기·지난 작업을 본다.
|
|
18
18
|
- **Claude Code 스킬**: `kf skill install` 하면 「영상 만들어」 같은 말에 kasaframe 으로 오는 스킬이 깔린다(`skills/kasaframe/SKILL.md`).
|
|
19
19
|
- **생성 능력**(`kf doctor` 「생성 능력」): 계획은 그림 컷·주인공 3D 장면(Blender 툰 샷, 없으면 three.js)·이음매 3D 전환(three)·캐릭터가 실제로 움직이는 컷(영상 모델 — 요청에 캐릭터와 몸짓이 있거나 뮤비일 때)·곡·내레이션을 기본으로 넣는다. **묻는 것은 돈이 들거나 없는 능력뿐**이고 나머지는 틀·테마가 정한 기본값으로 간다 — 같은 말이면 같은 결과. **없는 능력은 조용히 대체하지 않는다** — 「키·도구 넣는 법(권장) · 지금 되는 다른 엔진 · 빼기(자막만·곡 없이)」를 사람에게 묻고 고른 값을 플래그로 넣는다. 네가 대신 길을 고르지 않는다(`--yes` 로도 안 넘어간다). 키는 `kf setup key <이름>` 이 숨겨 받는다. 묻지 않고 가려면 `--yes`(권장 답 — 돈도 쓴다) · `--no-gen`(돈 안 드는 길) · `--allow image,video,…`(목록 능력만 권장, 나머지는 돈 안 드는 길) · `--image`·`--video`·`--blender`·`--voice`·`--music <값>`(그 질문에 미리 답). OG 모드는 뼈대 전에 터미널에서 묻고, 터미널이 아니면 보기를 찍고 종료 코드 3.
|
|
@@ -101,6 +101,7 @@ export default {
|
|
|
101
101
|
- DOM 은 `build` 에서 한 번 짓고, `(t) => …` 에서는 글·스타일만 바꾼다.
|
|
102
102
|
- 박자는 `ctx.beats`(`drop(0)`·`nearestBeat`·`phrase`·`inDrop`), 그림은 `ctx.asset("x.png")`, 글은 `ctx.safe` 안에.
|
|
103
103
|
- 움직임은 `@kasaframe/motion` 부품을 쓴다 — 손으로 짠 흔들림·펄스는 검사가 셀 수 없다. 부품 표와 Remotion 대응표: [`packages/motion/README.md`](../packages/motion/README.md).
|
|
104
|
+
- 효과음은 렌더가 깐다 — 부품(등장·드롭·전환·테마 효과·패턴)이 움직임 시작 자리를 저절로 남긴다. 손으로 지은 움직임만 `ctx.sfx("land", 1.2)`(역할: appear·stick·land·hop·whoosh·tick·select·type·drop·burst·end, 시각은 장면 초). 끄기는 `kf.json` `sfx: false`.
|
|
104
105
|
- React 장면: `export default { react: Component }`, `Component({ t, ctx })`.
|
|
105
106
|
|
|
106
107
|
하지 말 것:
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createBeats,
|
|
3
3
|
cssVars,
|
|
4
|
+
cueAt,
|
|
4
5
|
fontCss,
|
|
5
6
|
setBeats,
|
|
6
7
|
silentBeats,
|
|
@@ -169,6 +170,7 @@ export function mountProject(o: MountOptions): KfPage {
|
|
|
169
170
|
style: style as KfStyle,
|
|
170
171
|
safe: caps?.safe ?? kf.safeArea ?? ZERO,
|
|
171
172
|
asset: assetUrl,
|
|
173
|
+
sfx: (role, at, so) => cueAt(role, entry.from + at, { ...so, source: so?.source ?? `ctx:${role}`, scene: entry.id }),
|
|
172
174
|
};
|
|
173
175
|
let draw: SceneDraw;
|
|
174
176
|
if (mod.react) {
|
|
@@ -2,6 +2,8 @@ import { existsSync, readFileSync, statSync } from "node:fs";
|
|
|
2
2
|
import { basename, dirname, extname, join, resolve } from "node:path";
|
|
3
3
|
import { clockScript } from "@kasaframe/clock";
|
|
4
4
|
import { openProject, repoRoot } from "@kasaframe/cli";
|
|
5
|
+
import { freezeLimits } from "@kasaframe/core";
|
|
6
|
+
import { themeFreezeSec } from "@kasaframe/themes";
|
|
5
7
|
import { scanPage } from "./scan.ts";
|
|
6
8
|
import { serveStatic } from "./serve.ts";
|
|
7
9
|
import { probeVideo, videoText, videoThumbs } from "./video.ts";
|
|
@@ -41,6 +43,8 @@ interface Project {
|
|
|
41
43
|
kf: any | null;
|
|
42
44
|
beats: Beats | null;
|
|
43
45
|
rules: MotionRules;
|
|
46
|
+
/** 멈춤 경고·오류 기준(초) — 틀·style.json 값과 테마가 늘린 값(freezeLimits) */
|
|
47
|
+
freeze: { warn: number; error: number };
|
|
44
48
|
safe?: SafeArea;
|
|
45
49
|
text: TextPolicy;
|
|
46
50
|
allowText: string[];
|
|
@@ -75,12 +79,14 @@ function loadProject(dir: string | null, o: CheckOptions): Project {
|
|
|
75
79
|
// 틀의 motion 이 style.json 위에 덮인다(SPEC 계약 7).
|
|
76
80
|
const template = kf?.template ? readJson(join(repoRoot, "templates", kf.template, "template.json")) : null;
|
|
77
81
|
const rules: MotionRules = { ...(style?.motion ?? {}), ...(template?.motion ?? {}) };
|
|
82
|
+
// 테마는 멈춤 오류 기준을 늘리기만 한다 — 테마 없는 프로젝트·기준을 안 정한 테마는 틀·style.json 값 그대로
|
|
78
83
|
const scenes: number[] = Array.isArray(kf?.scenes) ? kf.scenes.map((s: any) => Number(s.from)).filter((t: number) => Number.isFinite(t)) : [];
|
|
79
84
|
return {
|
|
80
85
|
dir,
|
|
81
86
|
kf,
|
|
82
87
|
beats: beats && Array.isArray(beats.beats) ? beats : null,
|
|
83
88
|
rules,
|
|
89
|
+
freeze: freezeLimits(rules.maxFreezeSec, themeFreezeSec(kf?.theme)),
|
|
84
90
|
safe: kf?.safeArea,
|
|
85
91
|
text: { ...(template?.text ?? {}), ...(kf?.text ?? {}) },
|
|
86
92
|
allowText: kf?.check?.allowText ?? [],
|
|
@@ -184,7 +190,7 @@ async function checkPage(o: CheckOptions): Promise<Report> {
|
|
|
184
190
|
f.push(...contrast(r.contrast, { shotFps: o.shotFps ?? 2 }));
|
|
185
191
|
if (proj.text.minPx || proj.text.maxOnScreen) f.push(...textPolicy(r.texts, proj.text, { fps: meta.fps }));
|
|
186
192
|
if (projDir) f.push(...genAssets(projDir));
|
|
187
|
-
f.push(...freezes(r.thumbs, { errorSec: proj.
|
|
193
|
+
f.push(...freezes(r.thumbs, { errorSec: proj.freeze.error, warnSec: proj.freeze.warn }));
|
|
188
194
|
f.push(...blanks(r.thumbs, meta.duration));
|
|
189
195
|
f.push(...spikes(r.thumbs, { exclude: [...sceneSpans(proj.kf).map((s) => s.from), ...(proj.beats?.drops ?? []), ...r.markers.filter((m) => m.kind === "scene" || m.kind === "drop").map((m) => m.t)] }));
|
|
190
196
|
f.push(...flashes(r.thumbs, { maxPerSec: proj.rules.maxFlashPerSec, cuts: [...sceneSpans(proj.kf).map((s) => s.from), ...cuts(r.thumbs)] }));
|
|
@@ -236,7 +242,7 @@ async function checkVideo(o: CheckOptions): Promise<Report> {
|
|
|
236
242
|
|
|
237
243
|
log(`프레임 읽기: ${from.toFixed(2)}–${to.toFixed(2)}초 · ${info.width}×${info.height} · ${info.fps.toFixed(2)}fps`);
|
|
238
244
|
const thumbs = await videoThumbs(file, info, from, to);
|
|
239
|
-
f.push(...freezes(thumbs, { errorSec: proj.
|
|
245
|
+
f.push(...freezes(thumbs, { errorSec: proj.freeze.error, warnSec: proj.freeze.warn }));
|
|
240
246
|
f.push(...blanks(thumbs, info.duration));
|
|
241
247
|
f.push(...spikes(thumbs, { exclude: [...sceneSpans(proj.kf).map((s) => s.from), ...(proj.beats?.drops ?? [])] }));
|
|
242
248
|
f.push(...flashes(thumbs, { maxPerSec: proj.rules.maxFlashPerSec, cuts: [...sceneSpans(proj.kf).map((s) => s.from), ...cuts(thumbs)] }));
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { MAX_FREEZE_SEC } from "@kasaframe/core";
|
|
1
2
|
import { meanAbsDiff, type Thumb } from "../image.ts";
|
|
2
3
|
import type { Finding } from "../types.ts";
|
|
3
4
|
|
|
4
5
|
export interface FreezeOptions {
|
|
5
6
|
// 160×90 회색조 평균 절대차(0..255). 커서 깜빡임 한 번이면 넘는 정도.
|
|
6
7
|
threshold?: number;
|
|
7
|
-
// 틀·style.json 의 motion.maxFreezeSec(틀이 이긴다) — 고정 관찰
|
|
8
|
+
// 틀·style.json 의 motion.maxFreezeSec(틀이 이긴다)와 테마 값 중 큰 쪽(freezeLimits) — 고정 관찰 화면은 늘려 허용한다. 없으면 0.1초
|
|
8
9
|
errorSec?: number;
|
|
9
10
|
warnSec?: number;
|
|
10
11
|
}
|
|
@@ -24,9 +25,7 @@ export function diffs(thumbs: Thumb[]): number[] {
|
|
|
24
25
|
|
|
25
26
|
// 이웃 프레임끼리 비교하면 60fps 의 느린 움직임이 멈춤으로 보인다. 멈춤이 시작된 프레임(닻)과 비교해
|
|
26
27
|
// 닻에서 얼마나 멀어졌는지로 잰다 — 10fps 로 찍든 60fps 로 읽든 같은 답이 나온다.
|
|
27
|
-
// 공통 규칙: 단 0.1초도 쉬지 않는다 — 끝 카드·큰 숫자·로고도 예외
|
|
28
|
-
export const MAX_FREEZE_SEC = 0.1;
|
|
29
|
-
|
|
28
|
+
// 공통 규칙: 단 0.1초도 쉬지 않는다(MAX_FREEZE_SEC) — 끝 카드·큰 숫자·로고도 예외 없이. 테마가 늘린 만큼만 경고로 남긴다
|
|
30
29
|
export function freezes(thumbs: Thumb[], o: FreezeOptions = {}): Finding[] {
|
|
31
30
|
const thr = o.threshold ?? 0.35;
|
|
32
31
|
const errorSec = o.errorSec ?? MAX_FREEZE_SEC;
|
|
@@ -47,7 +46,7 @@ export function freezes(thumbs: Thumb[], o: FreezeOptions = {}): Finding[] {
|
|
|
47
46
|
severity,
|
|
48
47
|
from: thumbs[a].t,
|
|
49
48
|
to: thumbs[end].t,
|
|
50
|
-
message: `화면이 ${len.toFixed(2)}초 ${area > 0 ? `거의 멈췄다(바뀐 면적 ${(area * 100).toFixed(1)}%)` : "멈췄다"}${severity === "warn" ? ` — 경고 기준 ${warnSec}초 넘음` : ` — 기준 ${errorSec}초(틀·style.json maxFreezeSec)`} — 그 사이에 눈에 띄는 움직임 하나를 둔다`,
|
|
49
|
+
message: `화면이 ${len.toFixed(2)}초 ${area > 0 ? `거의 멈췄다(바뀐 면적 ${(area * 100).toFixed(1)}%)` : "멈췄다"}${severity === "warn" ? ` — 경고 기준 ${warnSec}초 넘음` : ` — 기준 ${errorSec}초(틀·style.json·테마 maxFreezeSec)`} — 그 사이에 눈에 띄는 움직임 하나를 둔다`,
|
|
51
50
|
detail: { seconds: Math.round(len * 100) / 100, changedArea: Math.round(area * 10000) / 10000 },
|
|
52
51
|
});
|
|
53
52
|
}
|
|
@@ -5,14 +5,27 @@ import { join } from "node:path";
|
|
|
5
5
|
import type { Command } from "../command.ts";
|
|
6
6
|
import { checks, pad, report } from "../deps.ts";
|
|
7
7
|
import { repoRoot } from "../serve.ts";
|
|
8
|
+
import { commandFor, isNewer, refresh } from "../update.ts";
|
|
9
|
+
|
|
10
|
+
async function versionLine(now: string): Promise<string> {
|
|
11
|
+
try {
|
|
12
|
+
const latest = await refresh(5000);
|
|
13
|
+
if (!isNewer(latest, now)) return `판: 지금 ${now} · 최신 ${latest} — 최신이다`;
|
|
14
|
+
const command = commandFor(latest);
|
|
15
|
+
return `판: 지금 ${now} · 최신 ${latest} · ${command ? `올리기 kf update (${command.join(" ")})` : "레포 체크아웃 — git pull"}`;
|
|
16
|
+
} catch (e) {
|
|
17
|
+
return `판: 지금 ${now} · 최신을 확인하지 못했다(${(e as Error).message}) — kf update --check`;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
8
20
|
|
|
9
21
|
const cmd: Command = {
|
|
10
|
-
summary: "바깥 도구 점검 — ffmpeg·크롬(Playwright)·python3+librosa·OG 키, 없으면 까는 명령",
|
|
22
|
+
summary: "바깥 도구 점검 — 판(지금·최신)·ffmpeg·크롬(Playwright)·python3+librosa·OG 키, 없으면 까는 명령",
|
|
11
23
|
usage: `kf doctor
|
|
12
24
|
없음 은 렌더가 안 되는 것, 선택 은 그 기능만 빠지는 것. 크롬·librosa 는 kf setup 이 깐다. 종료 코드: 없음 이 있으면 1`,
|
|
13
25
|
async run() {
|
|
14
26
|
const version = JSON.parse(readFileSync(join(repoRoot, "package.json"), "utf8")).version ?? "?";
|
|
15
|
-
console.log(`kasaframe ${version} · Node ${process.version} · ${platform()} ${arch()}
|
|
27
|
+
console.log(`kasaframe ${version} · Node ${process.version} · ${platform()} ${arch()}`);
|
|
28
|
+
console.log(`${await versionLine(version)}\n`);
|
|
16
29
|
const list = await checks();
|
|
17
30
|
report(list);
|
|
18
31
|
const missing = list.filter((c) => c.required && !c.ok);
|