@keke1933/vibe-dictionary-mcp 0.10.0 → 0.12.0

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.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +2557 -217
  3. package/package.json +13 -3
package/dist/index.js CHANGED
@@ -6633,6 +6633,702 @@ var BROADCAST_ADDITIONS = [
6633
6633
  }
6634
6634
  ];
6635
6635
 
6636
+ // ../../packages/catalog/src/additions/pixelart.ts
6637
+ var PIXELART_ADDITIONS = [
6638
+ /* 1. 스프라이트·캐릭터 (sprites) */
6639
+ {
6640
+ id: "px-sprite-walk-cycle",
6641
+ domain: "pixelart",
6642
+ category: "sprites",
6643
+ titleKo: "\uB2EC\uBE5B \uC544\uB798 \uD0D0\uD5D8\uAC00 \uAC77\uAE30",
6644
+ titleEn: "Moonlit Explorer Walk Cycle",
6645
+ vibeTag: "\uBC24\uD558\uB298 \uB2EC\uBE5B \uC544\uB798 4\uBC29\uD5A5 \uD53D\uC140 \uACA9\uC790 \uC704\uB85C \uB9DD\uD1A0\uB97C \uD384\uB7ED\uC774\uBA70 \uC131\uD07C\uC131\uD07C \uAC77\uB294",
6646
+ vibeKeywords: ["\uAC77\uAE30 \uC0AC\uC774\uD074", "Walk Cycle", "\uC2A4\uD504\uB77C\uC774\uD2B8 \uC560\uB2C8\uBA54\uC774\uC158", "\uB3C4\uD2B8 \uD0D0\uD5D8\uAC00", "\uB2EC\uBE5B \uAC77\uAE30", "\uD53D\uC140 \uCE90\uB9AD\uD130"],
6647
+ summary: "\uACE0\uC815\uB41C 48\xD748 \uC815\uC218 \uD53D\uC140 \uACA9\uC790\uC5D0\uC11C 6\uD504\uB808\uC784 \uAC77\uAE30 \uC8FC\uAE30\uC640 \uB2EC\uBE5B \uC870\uBA85\uC744 \uC7AC\uC0DD\xB7\uD0D0\uC0C9\uD558\uB294 \uC2A4\uD504\uB77C\uC774\uD2B8 \uAE30\uBC95",
6648
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uB2EC\uBE5B \uC544\uB798 \uAC77\uB294 \uD53D\uC140 \uC2A4\uD504\uB77C\uC774\uD2B8 \uC560\uB2C8\uBA54\uC774\uC158\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uACE0\uC815\uB41C 48\xD748 \uC815\uC218 \uD53D\uC140 \uACA9\uC790 \uC704\uC5D0\uC11C \uC811\uCD09\xB7\uB2E4\uC6B4\xB7\uD1B5\uACFC \uB4F1 6\uD504\uB808\uC784 \uAC77\uAE30 \uC8FC\uAE30\uC640 \uB2EC\uBE5B \uBC18\uC0AC\uAD11\uC744 \uD45C\uD604\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31\uC758 flex \uC911\uC559 \uC815\uB82C \uC601\uC5ED \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uB193\uACE0 \uBE44\uC728\uC744 \uC720\uC9C0\uD574 \uC918. SVG\uB294 12px \uBAA8\uC11C\uB9AC\xB7overflow hidden\xB7#090d16 \uBC24\uD558\uB298 \uBC14\uD0D5\uC744 \uAC00\uC9C0\uBA70 \uCD08\uC2B9\uB2EC\uACFC \uCE68\uC5FD\uC218 \uC2E4\uB8E8\uC5E3 \uC704\uB85C \uB9DD\uD1A0\uB97C \uB450\uB978 \uD0D0\uD5D8\uAC00\uAC00 \uAC78\uC5B4\uAC00. 0.15s \uAC04\uACA9\uC758 \uD504\uB808\uC784 \uC7AC\uC0DD\uACFC \uC2AC\uB77C\uC774\uB354 \uD0D0\uC0C9\uC744 \uC81C\uACF5\uD558\uACE0 \uBCF4\uD589 \uBC29\uD5A5 \uBC18\uC804 \uD1A0\uAE00\uC744 \uC9C0\uC6D0\uD574 \uC918. \uC678\uBD80 \uC774\uBBF8\uC9C0 \uD3F0\uD2B8 \uC5C6\uC774 \uC790\uCCB4 \uC815\uC218 \uC0AC\uAC01\uD615 \uD328\uC2A4\uB85C \uB80C\uB354\uB9C1\uD558\uACE0 \uBAA8\uC158 \uAC10\uC18C \uC0C1\uD0DC\uC5D0\uC11C\uB294 \uC2AC\uB77C\uC774\uB354 \uC218\uB3D9 \uD0D0\uC0C9\uC744 \uC720\uC9C0\uD574 \uC918."
6649
+ },
6650
+ {
6651
+ id: "px-flame-spirit-idle",
6652
+ domain: "pixelart",
6653
+ category: "sprites",
6654
+ titleKo: "\uC77C\uB801\uC774\uB294 \uBD88\uAF43 \uC815\uB839",
6655
+ titleEn: "Flickering Flame Spirit",
6656
+ vibeTag: "\uD575\uC2EC \uBC31\uC5F4\uBD80\uD130 \uC678\uACFD \uBD88\uB625\uAE4C\uC9C0 3\uB2E8\uACC4 \uC0C9 \uB760\uB85C \uC77C\uB801\uC774\uBA70 \uBD80\uC720\uD558\uB294",
6657
+ vibeKeywords: ["\uBD88\uAF43 \uC815\uB839", "Flame Spirit", "\uBD80\uC720 \uB300\uAE30\uBAA8\uC158", "\uBD88\uB625 \uD30C\uD2F0\uD074", "\uD53D\uC140 \uC774\uD399\uD2B8", "\uB3C4\uD2B8 \uBD88\uAF43"],
6658
+ summary: "\uC911\uC2EC \uBC31\uC5F4\xB7\uBAB8\uCCB4 \uC8FC\uD669\xB7\uC678\uACFD \uC2EC\uD64D \uB760\uC640 \uC0C1\uC2B9\uD558\uB294 \uC815\uC218 \uBD88\uB625\uC73C\uB85C \uB300\uAE30 \uD638\uD761\uC744 \uD45C\uD604\uD55C \uD53D\uC140 \uC815\uB839 \uC2A4\uD504\uB77C\uC774\uD2B8",
6659
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uBD80\uC720\uD558\uBA70 \uC77C\uB801\uC774\uB294 \uBD88\uAF43 \uC815\uB839 \uD53D\uC140 \uC2A4\uD504\uB77C\uC774\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uC911\uC2EC \uBC31\uC5F4\xB7\uBAB8\uCCB4 \uC8FC\uD669\xB7\uC678\uACFD \uC2EC\uD64D\uC758 3\uB2E8\uACC4 \uC0C9 \uB760\uC640 \uC0C1\uC2B9\uD558\uB294 \uC815\uC218 \uBD88\uB625 \uD30C\uD2F0\uD074\uB85C \uB300\uAE30 \uB8E8\uD504\uB97C \uB9CC\uB4DC\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31\uC758 flex \uC911\uC559 \uC815\uB82C \uC601\uC5ED \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uC0AC\uC6A9\uD574 \uC918. 48\xD748 \uD53D\uC140 \uBC14\uC6B4\uB4DC \uC548\uC5D0\uC11C 4\uD504\uB808\uC784 \uC77C\uB801\uC784 \uB8E8\uD504\uB97C 0.12s \uC8FC\uAE30\uB85C \uC21C\uD658\uD558\uACE0, \uBC14\uB78C \uC138\uAE30 \uC2AC\uB77C\uC774\uB354\uB85C \uBD88\uAF43 \uB05D \uD728\uACFC \uD30C\uD2F0\uD074 \uC18D\uB3C4\uB97C \uC870\uC808\uD560 \uC218 \uC788\uAC8C \uD574 \uC918. 12px \uBAA8\uC11C\uB9AC\uC640 \uB2E4\uD06C \uC2A4\uD14C\uC774\uC9C0\uB97C \uC720\uC9C0\uD558\uBA70 \uD750\uB9BC \uD544\uD130 \uC5C6\uC774 \uC120\uBA85\uD55C \uACC4\uB2E8\uC2DD \uD53D\uC140 \uC724\uACFD\uC744 \uBCF4\uC874\uD574 \uC918."
6660
+ },
6661
+ {
6662
+ id: "px-item-silhouette-set",
6663
+ domain: "pixelart",
6664
+ category: "sprites",
6665
+ titleKo: "\uC544\uC774\uD15C \uC2E4\uB8E8\uC5E3 \uC138\uD2B8",
6666
+ titleEn: "Item Silhouette Set",
6667
+ vibeTag: "\uC6D0\uC11D\xB7\uBB3C\uC57D\xB7\uC5F4\uC1E0\xB7\uC0C1\uC790\uC758 \uACE0\uC720\uD55C \uC724\uACFD\uACFC 1\uD53D\uC140 \uC678\uACFD\uC120\uC774 \uC989\uC2DC \uC2DD\uBCC4\uB418\uB294",
6668
+ vibeKeywords: ["\uC544\uC774\uD15C \uC2E4\uB8E8\uC5E3", "Item Silhouette", "\uB3C4\uD2B8 \uC544\uC774\uD15C", "1\uD53D\uC140 \uC678\uACFD\uC120", "RPG \uC544\uC774\uCF58", "\uD615\uD0DC \uC2DD\uBCC4"],
6669
+ summary: "24\xD724 \uC815\uC218 \uACA9\uC790\uC5D0\uC11C \uC6D0\uC11D\xB7\uBB3C\uC57D\xB7\uB9C8\uBC95 \uC5F4\uC1E0\xB7\uBCF4\uBB3C\uC0C1\uC790\uC758 \uACE0\uC720 \uC2E4\uB8E8\uC5E3\uACFC \uD314\uB808\uD2B8 \uBD84\uD574\uB97C \uAC80\uC99D\uD558\uB294 \uC544\uC774\uD15C \uC138\uD2B8",
6670
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uBA85\uD655\uD55C \uC2E4\uB8E8\uC5E3\uACFC 1px \uC678\uACFD\uC120\uC744 \uAC00\uC9C4 \uD310\uD0C0\uC9C0 RPG \uC544\uC774\uD15C 4\uC885 \uC138\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. 24\xD724 \uC815\uC218 \uACA9\uC790 \uC548\uC5D0\uC11C \uC6D0\uC11D\xB7\uD50C\uB77C\uC2A4\uD06C \uBB3C\uC57D\xB7\uB9C8\uBC95 \uC5F4\uC1E0\xB7\uBCF4\uBB3C\uC0C1\uC790\uAC00 \uD55C\uB208\uC5D0 \uC2DD\uBCC4\uB418\uB294 \uACE0\uC720 \uC724\uACFD\uC744 \uAC16\uCD94\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31\uC758 flex \uC911\uC559 \uC815\uB82C \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uC2E4\uB8E8\uC5E3 \uAC80\uC740 \uC74C\uC601 \uBAA8\uB4DC\uC640 \uC644\uC131 \uD314\uB808\uD2B8 \uBAA8\uB4DC\uB97C \uD1A0\uAE00 \uBC84\uD2BC\uC73C\uB85C \uC989\uC2DC \uC804\uD658\uD560 \uC218 \uC788\uAC8C \uD558\uACE0, 12px \uBAA8\uC11C\uB9AC\uC640 \uC804\uC2DC\uB300 \uBC1B\uCE68\uB300\uB97C \uB80C\uB354\uB9C1\uD574 \uC918. 1\uD53D\uC140 \uC678\uACFD\uC120 \uB300\uBE44\uB97C \uD1B5\uD574 \uBC1D\uC740 \uBC30\uACBD\uACFC \uC5B4\uB450\uC6B4 \uBC30\uACBD \uC591\uCABD\uC5D0\uC11C \uAC00\uB3C5\uC131\uC744 \uBCF4\uC7A5\uD574 \uC918."
6671
+ },
6672
+ {
6673
+ id: "px-character-portrait-angles",
6674
+ domain: "pixelart",
6675
+ category: "sprites",
6676
+ titleKo: "3\uBC29\uD5A5 \uCE90\uB9AD\uD130 \uD3EC\uD2B8\uB808\uC774\uD2B8",
6677
+ titleEn: "3-Directional Character Portrait",
6678
+ vibeTag: "\uC815\uBA74\xB7\uBC18\uCE21\uBA74\xB7\uCE21\uBA74\uC73C\uB85C \uC2DC\uC810\uC774 \uD68C\uC804\uD574\uB3C4 \uD53D\uC140 \uBA38\uB9AC\uCE7C\uACFC \uC774\uBAA9\uAD6C\uBE44 \uBE44\uB840\uAC00 \uC720\uC9C0\uB418\uB294",
6679
+ vibeKeywords: ["3\uBC29\uD5A5 \uCD08\uC0C1\uD654", "Character Portrait", "\uD53D\uC140 \uD3EC\uD2B8\uB808\uC774\uD2B8", "\uC815\uBA74 \uCE21\uBA74 \uC804\uD658", "\uB3C4\uD2B8 \uC5BC\uAD74", "\uB300\uD654\uCC3D \uCD08\uC0C1\uD654"],
6680
+ summary: "\uB300\uD654\uCC3D\uC5D0 \uC4F0\uC774\uB294 \uC815\uBA74\xB7\uBC18\uCE21\uBA74\xB7\uCE21\uBA74 3\uBC29\uD5A5 \uB450\uC0C1 \uD53D\uC140 \uC544\uD2B8\uB97C \uAC19\uC740 \uD314\uB808\uD2B8\uC640 \uD45C\uC815 \uC804\uD658\uC73C\uB85C \uBE44\uAD50\uD558\uB294 \uD3EC\uD2B8\uB808\uC774\uD2B8 \uAE30\uBC95",
6681
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uB300\uD654\uCC3D\uC6A9 3\uBC29\uD5A5 \uD53D\uC140 \uCE90\uB9AD\uD130 \uD3EC\uD2B8\uB808\uC774\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. 48\xD748 \uC815\uC218 \uD53D\uC140 \uD06C\uAE30\uC5D0\uC11C 0\uB3C4 \uC815\uBA74\xB745\uB3C4 \uBC18\uCE21\uBA74\xB790\uB3C4 \uCE21\uBA74\uC73C\uB85C \uC2DC\uC810\uC774 \uBC14\uB00C\uC5B4\uB3C4 \uD5E4\uC5B4 \uD074\uB7EC\uC2A4\uD130\uC640 \uD22C\uAD6C \uC7A5\uC2DD\uC758 \uBE44\uB840\uAC00 \uC720\uC9C0\uB418\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uC815\uBA74\xB7\uBC18\uCE21\uBA74\xB7\uCE21\uBA74 3\uAC1C \uBC84\uD2BC\uC73C\uB85C \uC2DC\uC810\uC744 \uC989\uC2DC \uC804\uD658\uD558\uACE0 \uBBF8\uC18C\uC640 \uACB0\uC758 \uD45C\uC815 \uD1A0\uAE00\uC744 \uC9C0\uC6D0\uD574 \uC918. 12px \uBAA8\uC11C\uB9AC\uC640 \uCD08\uC0C1\uD654 \uD14C\uB450\uB9AC\uB97C \uD3EC\uD568\uD558\uBA70 \uC11C\uBE0C\uD53D\uC140 \uBCF4\uAC04 \uC5C6\uC774 \uC815\uC218 \uD53D\uC140 \uD074\uB7EC\uC2A4\uD130\uB85C \uBA85\uC554\uC744 \uD45C\uD604\uD574 \uC918."
6682
+ },
6683
+ /* 2. 배경·풍경 (environments) */
6684
+ {
6685
+ id: "px-parallax-mountain-depth",
6686
+ domain: "pixelart",
6687
+ category: "environments",
6688
+ titleKo: "\uC0B0\uB9E5 \uD53D\uC140 \uD30C\uB784\uB799\uC2A4",
6689
+ titleEn: "Pixel Mountain Parallax",
6690
+ vibeTag: "\uC6D0\uACBD\uC758 \uB2EC\uACFC \uBCF4\uB78F\uBE5B \uC0B0\uBD80\uD130 \uADFC\uACBD\uC758 \uCE68\uC5FD\uC218\uB9BC\uAE4C\uC9C0 \uCE35\uBCC4 \uC815\uC218 \uC18D\uB3C4\uB85C \uAE4A\uC774\uAC10\uC744 \uD3BC\uCE58\uB294",
6691
+ vibeKeywords: ["\uD53D\uC140 \uD30C\uB784\uB799\uC2A4", "Pixel Parallax", "\uB3C4\uD2B8 \uC0B0\uB9E5", "\uB2E4\uCE35 \uBC30\uACBD", "\uC815\uC218 \uC2DC\uCC28 \uC2A4\uD06C\uB864", "\uC6D0\uACBD \uAE4A\uC774\uAC10"],
6692
+ summary: "\uB2EC\xB7\uC6D0\uACBD \uC0B0\uB9E5\xB7\uC911\uACBD \uB2A5\uC120\xB7\uADFC\uACBD \uBC14\uC704 4\uAC1C \uCE35\uC744 \uC815\uC218 \uD53D\uC140 \uC624\uD504\uC14B\uC73C\uB85C \uC2DC\uCC28 \uC774\uB3D9\uC2DC\uD0A4\uB294 \uD30C\uB784\uB799\uC2A4 \uD48D\uACBD \uAE30\uBC95",
6693
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uB2E4\uCE35 \uAE4A\uC774\uAC10\uC744 \uAC00\uC9C4 \uD53D\uC140 \uD30C\uB784\uB799\uC2A4 \uC0B0\uB9E5 \uBC30\uACBD\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uBC24\uD558\uB298 \uB2EC\uACFC \uBCC4, \uC6D0\uACBD \uBCF4\uB77C \uC0B0\uB9E5, \uC911\uACBD \uB2A5\uC120, \uADFC\uACBD \uBC14\uC704\uC640 \uC6B8\uD0C0\uB9AC\uC758 4\uAC1C \uCE35\uC774 \uAC01\uAC01 0.1\uBC30\xB70.3\uBC30\xB70.6\uBC30\xB71.0\uBC30\uC758 \uC18D\uB3C4\uB85C \uC2DC\uCC28 \uC774\uB3D9\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31\uC758 \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uC0AC\uC6A9\uD574 \uC918. \uCE74\uBA54\uB77C\uB294 \uC2AC\uB77C\uC774\uB354 \uC870\uC791\uC5D0 \uB530\uB77C 0\uC5D0\uC11C 100\uAE4C\uC9C0 \uC218\uD3C9 \uC774\uB3D9\uD558\uBA70 Math.round \uC815\uC218 \uC624\uD504\uC14B\uC73C\uB85C \uC11C\uBE0C\uD53D\uC140 \uD750\uB9BC\uC744 \uCC28\uB2E8\uD574 \uC918. 12px \uBAA8\uC11C\uB9AC\uC640 \uB2E4\uD06C \uD504\uB808\uC784\uC744 \uC720\uC9C0\uD558\uBA70 \uC790\uB3D9 \uD328\uB2DD \uC7AC\uC0DD \uBC84\uD2BC\uB3C4 \uC9C0\uC6D0\uD574 \uC918."
6694
+ },
6695
+ {
6696
+ id: "px-sunset-river-reflection",
6697
+ domain: "pixelart",
6698
+ category: "environments",
6699
+ titleKo: "\uC11D\uC591\uACFC \uAC15\uBB3C \uD53D\uC140 \uBC18\uC0AC",
6700
+ titleEn: "Sunset River Pixel Reflection",
6701
+ vibeTag: "\uB178\uC744 \uBC34\uB4DC \uC544\uB798 \uC218\uD3C9\uC120 \uD574\uAC00 \uBB3C\uACB0\uCE58\uB4EF \uC77C\uB801\uC774\uB294 \uD669\uAE08\uBE5B \uD53D\uC140 \uADA4\uC801\uC73C\uB85C \uBC18\uC0AC\uB418\uB294",
6702
+ vibeKeywords: ["\uC11D\uC591 \uBC18\uC0AC", "River Reflection", "\uB178\uC744 \uC218\uD3C9\uC120", "\uD53D\uC140 \uAC15\uBB3C", "\uC218\uBA74 \uC77C\uB801\uC784", "\uB3C4\uD2B8 \uB178\uC744"],
6703
+ summary: "\uB514\uB354\uB9C1 \uB178\uC744 \uD558\uB298\uACFC \uC218\uD3C9\uC120\uC758 \uD574, \uAD50\uCC28 \uC8FC\uC0AC\uC120 \uBB3C\uACB0\uB85C \uD669\uAE08\uBE5B \uBC18\uC0AC \uADA4\uC801\uC744 \uB9FA\uB294 \uD53D\uC140 \uAC15\uBB3C \uC5F0\uCD9C \uAE30\uBC95",
6704
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC11D\uC591\uC758 \uD0DC\uC591\uACFC \uAC15\uBB3C \uBC18\uC0AC\uB97C \uD45C\uD604\uD55C \uD53D\uC140 \uD48D\uACBD\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uBCF4\uB77C\uC5D0\uC11C \uD669\uAE08\uBE5B\uAE4C\uC9C0 5\uB2E8\uACC4 \uC0C9 \uB760\uB85C \uC774\uB8E8\uC5B4\uC9C4 \uB178\uC744 \uD558\uB298\uACFC, \uC218\uD3C9\uC120 \uD0DC\uC591\uC5D0\uC11C \uBED7\uC5B4 \uB098\uC624\uB294 \uAD50\uCC28 \uC8FC\uC0AC\uC120 \uC218\uBA74 \uBC18\uC0AC\uAC00 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. 0.1s \uC8FC\uAE30\uB85C \uBB3C\uACB0 \uBC18\uC0AC \uD53D\uC140\uC774 \uC88C\uC6B0\uB85C \uBC88\uAC08\uC544 \uBC18\uC9DD\uC774\uBA70, \uC2AC\uB77C\uC774\uB354\uB85C \uD0DC\uC591 \uACE0\uB3C4\uB97C \uB0AE\uCD94\uAC70\uB098 \uC62C\uB9AC\uBA74 \uBC18\uC0AC \uAE30\uB465\uC758 \uD3ED\uACFC \uD558\uB298 \uC0C9\uC870\uAC00 \uBCC0\uD558\uAC8C \uD574 \uC918. 12px \uBAA8\uC11C\uB9AC\uC640 \uC120\uBA85\uD55C \uB514\uB354 \uBC34\uB4DC\uB97C \uC720\uC9C0\uD574 \uC918."
6705
+ },
6706
+ {
6707
+ id: "px-rainy-neon-alley",
6708
+ domain: "pixelart",
6709
+ category: "environments",
6710
+ titleKo: "\uBE44 \uB0B4\uB9AC\uB294 \uB124\uC628 \uACE8\uBAA9",
6711
+ titleEn: "Rainy Neon Alley",
6712
+ vibeTag: "\uC5B4\uB450\uC6B4 \uBCBD\uB3CC \uAC74\uBB3C \uC0AC\uC774\uB85C \uB124\uC628 \uAC04\uD310\uC774 \uAE5C\uBE61\uC774\uACE0 \uC0AC\uC120 \uBE57\uC904\uAE30\uAC00 \uBB3C\uC6C5\uB369\uC774 \uD30C\uBB38\uC744 \uC77C\uC73C\uD0A4\uB294",
6713
+ vibeKeywords: ["\uB124\uC628 \uACE8\uBAA9", "Neon Alley", "\uD53D\uC140 \uBE44", "\uBE57\uC904\uAE30 \uBC18\uC0AC", "\uC0AC\uC774\uBC84 \uACE8\uBAA9", "\uB3C4\uD2B8 \uBB3C\uC6C5\uB369\uC774"],
6714
+ summary: "\uC0AC\uC120 \uC815\uC218 \uBE57\uC904\uAE30\xB7\uC9C0\uBA74 \uD30C\uBB38 \uACE0\uB9AC\uC640 \uC2DC\uC548\xB7\uB9C8\uC820\uD0C0 \uBC1C\uAD11 \uB124\uC628 \uAC04\uD310\uC758 \uAE5C\uBE61\uC784\uC744 \uACB0\uD569\uD55C \uC0AC\uC774\uBC84 \uB808\uD2B8\uB85C \uACE8\uBAA9 \uAE30\uBC95",
6715
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uBE44 \uB0B4\uB9AC\uB294 \uC0AC\uC774\uBC84\uD391\uD06C \uB124\uC628 \uACE8\uBAA9 \uD53D\uC140 \uD48D\uACBD\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uC5B4\uB450\uC6B4 \uBCBD\uB3CC \uAC74\uBB3C \uC2E4\uB8E8\uC5E3 \uC0AC\uC774\uB85C 65\uB3C4 \uAC01\uB3C4\uC758 \uC0AC\uC120 \uBE57\uC904\uAE30\uAC00 \uB0B4\uB9AC\uACE0 \uC9C0\uBA74 \uBB3C\uC6C5\uB369\uC774\uC5D0 \uD53D\uC140 \uD30C\uBB38 \uACE0\uB9AC\uAC00 \uBC88\uC9C0\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uC2DC\uC548\uACFC \uB9C8\uC820\uD0C0 \uB124\uC628 \uAC04\uD310\uC774 0.08s \uD0C0\uC774\uBC0D\uC73C\uB85C \uBD80\uB4DC\uB7FD\uAC8C \uAE5C\uBE61\uC774\uACE0, \uAC15\uC6B0\uB7C9 \uC2AC\uB77C\uC774\uB354\uB85C \uB9D1\uC74C\xB7\uAC00\uB791\uBE44\xB7\uD3ED\uC6B0\uB97C \uC870\uC808\uD560 \uC218 \uC788\uAC8C \uD574 \uC918. 12px \uBAA8\uC11C\uB9AC\uC640 \uC9C0\uBA74 \uB124\uC628 \uBC18\uC0AC\uAD11\uC744 \uBCF4\uC874\uD574 \uC918."
6716
+ },
6717
+ {
6718
+ id: "px-isometric-terrace-citadel",
6719
+ domain: "pixelart",
6720
+ category: "environments",
6721
+ titleKo: "\uC544\uC774\uC18C\uBA54\uD2B8\uB9AD \uD14C\uB77C\uC2A4 \uC131\uCC44",
6722
+ titleEn: "Isometric Terrace Citadel",
6723
+ vibeTag: "2:1 \uD22C\uC601\uBC95\uC758 \uC815\uC218 \uBE14\uB85D\uC73C\uB85C \uC313\uC544 \uC62C\uB9B0 \uC11D\uC870 \uD14C\uB77C\uC2A4 \uC815\uC6D0\uACFC \uACC4\uB2E8\uC774 \uC785\uCCB4\uAC10\uC744 \uBE5A\uB294",
6724
+ vibeKeywords: ["\uC544\uC774\uC18C\uBA54\uD2B8\uB9AD \uC131\uCC44", "Isometric Citadel", "2:1 \uD22C\uC601 \uBE14\uB85D", "\uD14C\uB77C\uC2A4 \uC815\uC6D0", "\uB3C4\uD2B8 \uAC74\uCD95", "\uCFFC\uD130\uBDF0 \uD53D\uC140"],
6725
+ summary: "2:1 \uC815\uC218 \uB514\uBA54\uD2B8\uB9AD \uAC01\uB3C4\uB85C \uC131\uCC44 \uBCBD\uCCB4\xB7\uC815\uC6D0 \uD14C\uB77C\uC2A4\xB7\uACC4\uB2E8\uC744 \uCE35\uBCC4 \uB2E8\uBA74\uC73C\uB85C \uC870\uC791\xB7\uC870\uB9DD\uD558\uB294 \uC544\uC774\uC18C\uBA54\uD2B8\uB9AD \uAE30\uBC95",
6726
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 2:1 \uD22C\uC601\uBC95\uC744 \uC801\uC6A9\uD55C \uC544\uC774\uC18C\uBA54\uD2B8\uB9AD \uC131\uCC44 \uD53D\uC140 \uC544\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uAC00\uB85C 2\uD53D\uC140\uB2F9 \uC138\uB85C 1\uD53D\uC140\uC758 \uC815\uC218 \uB514\uBA54\uD2B8\uB9AD \uAC01\uB3C4\uB85C \uAE30\uB2E8\xB7\uD14C\uB77C\uC2A4 \uC815\uC6D0\xB7\uD0D1\uB8E8\uC758 3\uAC1C \uCE35\uC744 \uC870\uD615\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uC0C1\uB2E8\uBA74 \uBC1D\uC740 \uD1A4, \uC88C\uCE21\uBA74 \uC911\uAC04 \uD1A4, \uC6B0\uCE21\uBA74 \uADF8\uB9BC\uC790 \uD1A4\uC758 3\uBA74 \uBA85\uC554 \uCCB4\uACC4\uB97C \uC720\uC9C0\uD558\uACE0, \uCE35\uBCC4 \uC2AC\uB77C\uC774\uC2A4 \uBC84\uD2BC\uC73C\uB85C \uAE30\uB2E8\uB9CC \uBCF4\uAE30\uC640 \uC804\uCCB4 \uBCF4\uAE30\uB97C \uC804\uD658\uD560 \uC218 \uC788\uAC8C \uD574 \uC918. 12px \uBAA8\uC11C\uB9AC\uC640 \uACC4\uB2E8 \uB514\uD14C\uC77C\uC744 \uBCF4\uC874\uD574 \uC918."
6727
+ },
6728
+ /* 3. 타일·패턴 (tiles) */
6729
+ {
6730
+ id: "px-autotile-terrain-bitmask",
6731
+ domain: "pixelart",
6732
+ category: "tiles",
6733
+ titleKo: "4\uBC29\uD5A5 \uC9C0\uD615 \uC624\uD1A0\uD0C0\uC77C",
6734
+ titleEn: "4-Directional Autotiling Bitmask",
6735
+ vibeTag: "\uC0C1\uD558\uC88C\uC6B0 \uC774\uC6C3 \uD0C0\uC77C \uC5F0\uACB0 \uC0C1\uD0DC\uB97C 4\uBE44\uD2B8\uB85C \uD310\uC815\uD574 \uAC00\uC7A5\uC790\uB9AC\uC640 \uBAA8\uC11C\uB9AC\uB97C \uC790\uB3D9 \uACB0\uD569\uD558\uB294",
6736
+ vibeKeywords: ["\uC624\uD1A0\uD0C0\uC77C", "Autotile", "\uC9C0\uD615 \uBE44\uD2B8\uB9C8\uC2A4\uD06C", "\uD0C0\uC77C\uC14B \uACB0\uD569", "\uB3C4\uD2B8 \uC9C0\uD615", "\uC5F0\uACB0 \uBAA8\uC11C\uB9AC"],
6737
+ summary: "\uD074\uB9AD\uC73C\uB85C \uC9C0\uD615\uC744 \uCC44\uC6B0\uAC70\uB098 \uC9C0\uC6B8 \uB54C \uC0C1\uD558\uC88C\uC6B0 4\uBE44\uD2B8 \uB9C8\uC2A4\uD06C\uB85C 16\uC885 \uD0C0\uC77C \uACBD\uACC4\uB97C \uC2E4\uC2DC\uAC04 \uACB0\uC815\uD558\uB294 \uC624\uD1A0\uD0C0\uC77C \uAE30\uBC95",
6738
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC0C1\uD558\uC88C\uC6B0 4\uBC29\uD5A5 \uBE44\uD2B8\uB9C8\uC2A4\uD06C\uB97C \uC801\uC6A9\uD55C \uC9C0\uD615 \uC624\uD1A0\uD0C0\uC77C \uC2DC\uC2A4\uD15C\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uAC01 \uC140 36\xD724px \uD06C\uAE30\uC758 5\xD74 \uACA9\uC790\uC5D0\uC11C \uC140\uC744 \uD074\uB9AD\uD574 \uD480\uBC2D\uC744 \uCE60\uD558\uAC70\uB098 \uC9C0\uC6B8 \uB54C 4\uBE44\uD2B8 \uC774\uC6C3 \uB9C8\uC2A4\uD06C \uACC4\uC0B0\uC73C\uB85C 16\uC885 \uD0C0\uC77C \uACBD\uACC4\uB97C \uC790\uB3D9 \uC120\uD0DD\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG \uB610\uB294 \uC778\uD130\uB799\uD2F0\uBE0C \uCE94\uBC84\uC2A4\uB97C \uBC30\uCE58\uD574 \uC918. \uC678\uACFD \uBAA8\uC11C\uB9AC\xB7\uC9C1\uC120 \uACBD\uACC4\xB7\uACE0\uB9BD \uC12C\uC744 \uC815\uD655\uD788 \uACC4\uC0B0\uD558\uACE0 \uCD08\uAE30\uD654 \uBC0F \uC12C \uD504\uB9AC\uC14B \uBC84\uD2BC\uC744 \uC81C\uACF5\uD574 \uC918. 12px \uBAA8\uC11C\uB9AC\uC640 44px \uC870\uC791 \uBC84\uD2BC\uC744 \uC720\uC9C0\uD574 \uC918."
6739
+ },
6740
+ {
6741
+ id: "px-dither-gradient-ramp",
6742
+ domain: "pixelart",
6743
+ category: "tiles",
6744
+ titleKo: "\uB514\uB354\uB9C1 \uBA85\uC554 \uB7A8\uD504",
6745
+ titleEn: "Dithered Gradient Ramp",
6746
+ vibeTag: "\uC81C\uD55C\uB41C 4\uC0C9 \uD314\uB808\uD2B8 \uC704\uB85C \uCCB4\uCEE4\uBCF4\uB4DC\uC640 \uBCA0\uC774\uC5B4 \uD328\uD134\uC774 \uB9E4\uB044\uB7EC\uC6B4 \uC785\uCCB4 \uBA85\uC554\uC744 \uAD6C\uD604\uD558\uB294",
6747
+ vibeKeywords: ["\uB514\uB354\uB9C1 \uB7A8\uD504", "Dither Ramp", "\uBCA0\uC774\uC5B4 \uB9E4\uD2B8\uB9AD\uC2A4", "\uCCB4\uCEE4\uBCF4\uB4DC \uBA85\uC554", "4\uC0C9 \uC81C\uD55C \uD314\uB808\uD2B8", "\uB3C4\uD2B8 \uADF8\uB77C\uB370\uC774\uC158"],
6748
+ summary: "\uD3EC\uC2A4\uD130\uB77C\uC774\uC988\uB41C 4\uB2E8\uACC4 \uD314\uB808\uD2B8 \uC0AC\uC774\uB97C 2\xD72\xB74\xD74 \uADDC\uCE59\uC801 \uB514\uB354 \uD328\uD134\uC73C\uB85C \uCC44\uC6CC \uACC4\uB2E8 \uD604\uC0C1 \uC5C6\uC774 \uACE1\uBA74\uC744 \uBB18\uC0AC\uD558\uB294 \uAE30\uBC95",
6749
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC81C\uD55C\uB41C 4\uB2E8\uACC4 \uD314\uB808\uD2B8\uC640 \uC815\uC218 \uB514\uB354\uB9C1\uC744 \uC801\uC6A9\uD55C \uAD6C\uCCB4 \uBA85\uC554 \uB7A8\uD504\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uC554\uBD80\xB7\uC911\uAC04\uD1A4\xB7\uBA85\uBD80\xB7\uD558\uC774\uB77C\uC774\uD2B8\uC758 4\uC0C9 \uC0AC\uC774\uB97C 2\xD72 \uCCB4\uCEE4\uBCF4\uB4DC \uBC0F 4\xD74 \uBCA0\uC774\uC5B4 \uB9E4\uD2B8\uB9AD\uC2A4 \uC810\uBB18\uB85C \uCC44\uC6CC \uC644\uB9CC\uD55C \uD1A4 \uC804\uD658\uC744 \uB9CC\uB4DC\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCCB4\uCEE4\uBCF4\uB4DC\xB7\uBCA0\uC774\uC5B4\xB7\uB2E8\uC0C9 \uACC4\uB2E8 3\uAC00\uC9C0 \uD328\uD134 \uD1A0\uAE00\uACFC \uAD11\uC6D0 \uAC01\uB3C4 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918. 12px \uBAA8\uC11C\uB9AC\uC640 \uC120\uBA85\uD55C \uB3C4\uD2B8 \uBA85\uC554\uC744 \uBCF4\uC874\uD574 \uC918."
6750
+ },
6751
+ {
6752
+ id: "px-seamless-pattern-repeat",
6753
+ domain: "pixelart",
6754
+ category: "tiles",
6755
+ titleKo: "\uD53D\uC140 \uBC18\uBCF5 \uD328\uD134 \uC2DC\uBC0D",
6756
+ titleEn: "Seamless Pixel Pattern Seaming",
6757
+ vibeTag: "\uC0C1\uD558\uC88C\uC6B0 \uB05D\uC120\uC774 \uD55C \uD53D\uC140 \uC624\uCC28 \uC5C6\uC774 \uB9DE\uBB3C\uB824 3\xD73 \uADF8\uB9AC\uB4DC\uB85C \uD655\uC7A5\uD574\uB3C4 \uC774\uC74C\uB9E4\uAC00 \uC0AC\uB77C\uC9C0\uB294",
6758
+ vibeKeywords: ["\uC2EC\uB9AC\uC2A4 \uD328\uD134", "Seamless Pattern", "\uC774\uC74C\uB9E4 \uC5C6\uB294 \uD0C0\uC77C", "\uD53D\uC140 \uBC18\uBCF5 \uBB38\uC591", "\uB3C4\uD2B8 \uD14D\uC2A4\uCC98", "\uD1A0\uB7EC\uC2A4 \uB7A9"],
6759
+ summary: "40\xD736 \uB17C\uB9AC \uD0C0\uC77C\uC758 \uB05D\uB2E8\uC744 3\xD73 \uBC18\uBCF5 \uD654\uBA74\uACFC \uAC00\uB85C \uC624\uD504\uC14B\uC73C\uB85C \uD655\uC778\uD558\uB294 \uC2EC\uB9AC\uC2A4 \uD328\uD134 \uAE30\uBC95",
6760
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC774\uC74C\uB9E4 \uC5C6\uC774 \uBB34\uD55C \uBC18\uBCF5\uB418\uB294 \uB358\uC804 \uC11D\uC870 \uC2EC\uB9AC\uC2A4 \uD53D\uC140 \uD328\uD134\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uAC00\uB85C 40px\xB7\uC138\uB85C 36px \uB17C\uB9AC \uD0C0\uC77C\uC744 \uAE30\uC900\uC73C\uB85C \uC88C\uCE21 2\uBC30 \uD655\uB300(80\xD772) \uB9C8\uC2A4\uD130 \uD0C0\uC77C\uACFC \uC6B0\uCE21 3\uC5F4\xD73\uD589(120\xD7108) \uBC18\uBCF5 \uD0C0\uC77C\uB9C1 \uC601\uC5ED\uC5D0\uC11C \uACBD\uACC4\uBA74 \uD53D\uC140\uC774 \uC644\uBCBD\uD788 \uC774\uC5B4\uC9C0\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uACBD\uACC4 \uD1A0\uAE00\uC744 \uCF1C\uBA74 \uB9C8\uC2A4\uD130 \uD0C0\uC77C\uC5D0 \uBD89\uC740 \uC810\uC120, \uBC18\uBCF5 \uD0C0\uC77C\uC5D0 \uCD08\uB85D\uC0C9 \uACBD\uACC4\uC120\uC744 \uD45C\uC2DC\uD574 \uC918. \uC218\uD3C9 \uC624\uD504\uC14B\uC740 0~40px\uC774\uACE0 40px\uC5D0\uC11C\uB294 \uD55C \uC8FC\uAE30\uB97C \uB3CC\uC544 0px\uACFC \uAC19\uC740 \uADF8\uB9BC\uC744 \uBCF4\uC5EC \uC918. 12px \uBAA8\uC11C\uB9AC\uB97C \uC720\uC9C0\uD574 \uC918."
6761
+ },
6762
+ {
6763
+ id: "px-palette-swap-texture",
6764
+ domain: "pixelart",
6765
+ category: "tiles",
6766
+ titleKo: "\uD314\uB808\uD2B8 \uAD50\uCCB4 \uD14D\uC2A4\uCC98",
6767
+ titleEn: "Indexed Palette Swap Texture",
6768
+ vibeTag: "\uB3D9\uC77C\uD55C 5\uB2E8\uACC4 \uC0C9\uC778 \uC88C\uD45C\uC5D0\uC11C \uB8E9\uC5C5 \uD14C\uC774\uBE14\uB9CC \uAD50\uCCB4\uD574 \uC232\xB7\uB9C8\uADF8\uB9C8\xB7\uBE59\uD558\xB7\uACF5\uD5C8 \uD45C\uBA74\uC73C\uB85C \uB3CC\uBCC0\uD558\uB294",
6769
+ vibeKeywords: ["\uD314\uB808\uD2B8 \uC2A4\uC651", "Palette Swap", "\uC0C9\uC778 \uC0C9\uC0C1\uD45C", "LUT \uBCC0\uD658", "\uB3C4\uD2B8 \uD14D\uC2A4\uCC98", "\uD45C\uBA74 \uC7AC\uC9C8 \uC804\uD658"],
6770
+ summary: "\uD615\uD0DC \uC9C0\uC624\uBA54\uD2B8\uB9AC \uC7AC\uBC30\uCE58 \uC5C6\uC774 5\uB2E8\uACC4 \uC778\uB371\uC2A4 \uB8E9\uC5C5 \uD14C\uC774\uBE14\uC744 \uAD50\uCCB4\uD574 \uC7AC\uC9C8\uACFC \uBD84\uC704\uAE30\uB97C \uC2E4\uC2DC\uAC04 \uC804\uD658\uACBD\uD558\uB294 \uD314\uB808\uD2B8 \uAE30\uBC95",
6771
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC0C9\uC778 \uC0C9\uC0C1\uD45C \uAD50\uCCB4\uB85C \uC9C8\uAC10\uC744 \uBC14\uAFB8\uB294 \uD53D\uC140 \uD14D\uC2A4\uCC98 \uAE30\uBC95\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uAE30\uC0AC \uBB38\uC7A5 \uBC29\uD328\uC758 \uACE0\uC815\uB41C \uC815\uC218 \uD53D\uC140 \uD615\uD0DC \uC704\uC5D0\uC11C 5\uB2E8\uACC4 \uC0C9\uC778 \uAC12\uC744 \uC720\uC9C0\uD55C \uCC44 \uB8E9\uC5C5 \uD14C\uC774\uBE14\uB9CC \uAD50\uCCB4\uD574 \uC232\xB7\uB9C8\uADF8\uB9C8\xB7\uBE59\uD558\xB7\uACF5\uD5C8\uC758 4\uC885 \uBD84\uC704\uAE30\uB85C \uBCC0\uD658\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. 4\uAC1C \uD314\uB808\uD2B8 \uD504\uB9AC\uC14B \uBC84\uD2BC\uC744 \uB204\uB974\uBA74 \uC9C0\uC624\uBA54\uD2B8\uB9AC \uC7AC\uBC30\uCE58 \uC5C6\uC774 \uC0C9\uC0C1 \uD14C\uC774\uBE14\uB9CC \uC989\uC2DC \uCE58\uD658\uB418\uAC8C \uD574 \uC918. 12px \uBAA8\uC11C\uB9AC\uB97C \uBCF4\uC874\uD574 \uC918."
6772
+ },
6773
+ /* 4. 게임 UI (game_ui) */
6774
+ {
6775
+ id: "px-hud-health-shield-bar",
6776
+ domain: "pixelart",
6777
+ category: "game_ui",
6778
+ titleKo: "\uD558\uD2B8\uC640 \uC2E4\uB4DC \uCCB4\uB825 HUD",
6779
+ titleEn: "Pixel Heart & Shield HUD",
6780
+ vibeTag: "\uBD84\uD560 \uD558\uD2B8\uC640 \uB9C8\uB984\uBAA8 \uC2E4\uB4DC\uAC00 \uD53C\uACA9 \uC2DC \uD754\uB4E4\uB9AC\uBA70 \uB370\uBBF8\uC9C0 \uC218\uCE58\uC640 \uC704\uD5D8 \uAE5C\uBE61\uC784\uC744 \uBFDC\uC5B4\uB0B4\uB294",
6781
+ vibeKeywords: ["\uCCB4\uB825 HUD", "Health HUD", "\uB3C4\uD2B8 \uD558\uD2B8", "\uC2E4\uB4DC \uBC14", "\uD53D\uC140 \uCCB4\uB825\uBC14", "\uD53C\uACA9 \uD53C\uB4DC\uBC31"],
6782
+ summary: "\uBC18\uCE78 \uB2E8\uC704 \uD558\uD2B8\xB7\uB2E4\uC774\uC544\uBAAC\uB4DC \uBCF4\uD638\uB9C9\xB7\uC804\uC6A9 \uC704\uCE58 \uD53C\uB4DC\uBC31 \uC218\uCE58\uC640 \uC800\uC0DD\uBA85 \uD384\uC2A4\uB97C \uC815\uC218 \uB3C4\uD2B8\uB85C \uD1B5\uD569\uD55C \uC561\uC158 RPG HUD \uAE30\uBC95",
6783
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uD558\uD2B8\uC640 \uC2E4\uB4DC\uB85C \uAD6C\uC131\uB41C \uC561\uC158 RPG \uD53D\uC140 HUD\uB97C \uB9CC\uB4E4\uC5B4 \uC918. 5\uAC1C \uBD84\uD560 \uD558\uD2B8\uC640 4\uAC1C \uB9C8\uB984\uBAA8 \uBCF4\uD638\uB9C9 \uC140\uC744 \uBC30\uCE58\uD558\uACE0, \uD53C\uACA9 \uC2DC \uC2E4\uB4DC\uAC00 \uBA3C\uC800 \uAE4E\uC778 \uB4A4 \uD558\uD2B8\uAC00 \uBC18 \uCE78 \uB2E8\uC704\uB85C \uC18C\uBAA8\uB418\uB294 \uCCB4\uACC4\uAC00 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uC640 \uC870\uC791 \uBC84\uD2BC\uC744 \uBC30\uCE58\uD574 \uC918. \uD53C\uACA9 -25\xB7\uAC15\uD0C0 -50\xB7\uCE58\uC720 +35\xB7\uC2E4\uB4DC \uCDA9\uC804 \uACB0\uACFC\uB97C \uC544\uC774\uCF58\uACFC \uACB9\uCE58\uC9C0 \uC54A\uB294 \uC0C1\uB2E8 \uC601\uC5ED\uC5D0 \uD45C\uC2DC\uD558\uACE0 \uB9C8\uC9C0\uB9C9 \uC785\uB825 0.9\uCD08 \uB4A4\uC5D0 \uC9C0\uC6CC \uC918. \uD754\uB4E4\uB9BC\uC740 \uD53C\uACA9\uACFC \uAC15\uD0C0\uC5D0\uB9CC \uC801\uC6A9\uD558\uACE0 \uBAA8\uC158 \uAC10\uC18C\uC5D0\uC11C\uB294 \uC0DD\uB7B5\uD574 \uC918. \uB0A8\uC740 \uCCB4\uB825\uC774 \uD558\uD2B8 \uBC18 \uCE78 \uAE30\uC900 3 \uC774\uD558\uB77C\uBA74 \uBD89\uC740 \uC704\uD5D8 \uD14C\uB450\uB9AC\uB97C \uD45C\uC2DC\uD558\uACE0 12px \uBAA8\uC11C\uB9AC\uB97C \uC720\uC9C0\uD574 \uC918."
6784
+ },
6785
+ {
6786
+ id: "px-inventory-grid-selector",
6787
+ domain: "pixelart",
6788
+ category: "game_ui",
6789
+ titleKo: "\uC778\uBCA4\uD1A0\uB9AC \uCE78 \uC120\uD0DD\uAE30",
6790
+ titleEn: "Inventory Grid Selector",
6791
+ vibeTag: "\uBAA8\uC11C\uB9AC \uBE0C\uB798\uD0B7 \uCEE4\uC11C\uAC00 \uCE78\uC744 \uC774\uB3D9\uD558\uACE0 \uC120\uD0DD \uC544\uC774\uD15C\uC758 \uD53D\uC140 \uBC30\uC9C0\uC640 \uB2A5\uB825\uCE58\uB97C \uC0C1\uC138 \uD328\uB110\uC5D0 \uB744\uC6B0\uB294",
6792
+ vibeKeywords: ["\uC778\uBCA4\uD1A0\uB9AC \uADF8\uB9AC\uB4DC", "Inventory Grid", "\uC544\uC774\uD15C \uC2AC\uB86F", "\uCEE4\uC11C \uC120\uD0DD \uBE0C\uB798\uD0B7", "RPG \uAC00\uBC29", "\uB3C4\uD2B8 \uC7A5\uBE44\uCC3D"],
6793
+ summary: "4\xD73 \uBCA0\uBCA8 \uADF8\uB9AC\uB4DC\uC5D0\uC11C \uD654\uC0B4\uD45C\xB7\uD074\uB9AD\uC73C\uB85C \uC6D0\uC11D\xB7\uBB3C\uC57D\xB7\uC5F4\uC1E0\xB7\uC0C1\uC790\uB97C \uC120\uD0DD\uD558\uACE0 \uC0C1\uC138 \uC2A4\uD0EF \uD328\uB110\uC744 \uD45C\uC2DC\uD558\uB294 \uC778\uBCA4\uD1A0\uB9AC \uAE30\uBC95",
6794
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uADF8\uB9AC\uB4DC \uD0D0\uC0C9\uACFC \uC0C1\uC138 \uC815\uBCF4\uCC3D\uC744 \uAC16\uCD98 \uD53D\uC140 \uC778\uBCA4\uD1A0\uB9AC \uC2DC\uC2A4\uD15C\uC744 \uB9CC\uB4E4\uC5B4 \uC918. 4\xD73 \uBCA0\uBCA8 \uC2AC\uB86F \uADF8\uB9AC\uB4DC \uC548\uC5D0 \uC6D0\uC11D\xB7\uBB3C\uC57D\xB7\uB8EC \uC5F4\uC1E0\xB7\uBCF4\uBB3C\uC0C1\uC790 4\uC885\uC758 16\xD716 \uB3C4\uD2B8 \uC544\uC774\uD15C\uC744 \uBC30\uCE58\uD558\uACE0, \uBAA8\uC11C\uB9AC \uBE0C\uB798\uD0B7 \uCEE4\uC11C\uB85C \uC120\uD0DD\uB41C \uC544\uC774\uD15C\uC758 \uC0C1\uC138 \uC774\uB984\uACFC \uC18D\uC131 \uD328\uB110\uC744 \uAC31\uC2E0\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uC640 \uC870\uC791 \uBC84\uD2BC\uC744 \uBC30\uCE58\uD574 \uC918. \uB9C8\uC6B0\uC2A4 \uD074\uB9AD \uBC0F \uD0A4\uBCF4\uB4DC \uBC29\uD5A5\uD0A4 \uC774\uB3D9\uC744 \uC9C0\uC6D0\uD558\uACE0 \uB2E4\uC74C \uC2AC\uB86F \uBC0F \uCCAB \uC2AC\uB86F \uC120\uD0DD \uBC84\uD2BC\uC744 \uC81C\uACF5\uD574 \uC918. 12px \uBAA8\uC11C\uB9AC\uB97C \uBCF4\uC874\uD574 \uC918."
6795
+ },
6796
+ {
6797
+ id: "px-rpg-dialog-typewriter",
6798
+ domain: "pixelart",
6799
+ category: "game_ui",
6800
+ titleKo: "\uD53D\uC140 RPG \uB300\uD654\uCC3D",
6801
+ titleEn: "Pixel RPG Dialog Box",
6802
+ vibeTag: "\uC11D\uC870 \uD504\uB808\uC784 \uC548\uC5D0\uC11C \uD654\uC790 \uCD08\uC0C1\uD654 \uC606\uC73C\uB85C \uB300\uC0AC\uAC00 \uD55C \uAE00\uC790\uC529 \uCD9C\uB825\uB418\uB294",
6803
+ vibeKeywords: ["RPG \uB300\uD654\uCC3D", "Dialog Box", "\uD0C0\uC774\uD504\uB77C\uC774\uD130 \uB300\uD654", "\uC11D\uC870 \uD504\uB808\uC784", "\uB3C4\uD2B8 \uD14D\uC2A4\uD2B8\uCC3D", "\uD654\uC790 \uD3EC\uD2B8\uB808\uC774\uD2B8"],
6804
+ summary: "\uCD08\uC0C1\uD654\uC640 \uB300\uC0AC\uB97C \uB098\uB780\uD788 \uBC30\uCE58\uD558\uACE0 \uAE00\uC790\uBCC4 \uCD9C\uB825 \uD6A8\uACFC\uB97C \uCF1C\uAC70\uB098 \uD604\uC7AC \uB300\uC0AC\uB97C \uB2E4\uC2DC \uC7AC\uC0DD\uD558\uB294 \uACE0\uC804 RPG \uB300\uD654\uCC3D \uAE30\uBC95",
6805
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uACE0\uC804 16\uBE44\uD2B8 \uC2A4\uD0C0\uC77C\uC758 \uD53D\uC140 RPG \uB300\uD654\uCC3D\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uCD5C\uB300 \uD3ED 264px\uC758 \uC11D\uC870 \uD504\uB808\uC784\uC5D0 12px \uB465\uADFC \uBAA8\uC11C\uB9AC\uC640 \uAE08\uBE5B \uB9AC\uBCB3\uC744 \uB450\uACE0, \uC67C\uCABD 54px \uC815\uC0AC\uAC01\uD615 \uCD08\uC0C1\uD654\uC758 \uC138\uB85C \uC911\uC559\uC5D0 \uC624\uB978\uCABD \uC774\uB984\uACFC \uB300\uC0AC \uBB36\uC74C\uC744 \uB9DE\uCD94\uACE0, \uD504\uB808\uC784 \uB192\uC774\uB294 \uB0B4\uC6A9\uACFC \uC548\uCABD \uC5EC\uBC31\uC5D0 \uB9DE\uCDB0 \uC918. \uCD08\uC0C1\uD654\uB294 \uBAA8\uC790\uC640 \uC218\uC5FC\uC774 \uD14C\uB450\uB9AC \uC548\uC5D0 \uB4E4\uC5B4\uC624\uAC8C \uD558\uACE0, \uB300\uC0AC\uB294 \uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uD3ED\uC5D0\uC11C \uC904\uC744 \uBC14\uAFD4 \uC918. \uCCAB \uB300\uC0AC\uB294 \uC989\uC2DC \uD45C\uC2DC\uD574 \uC918. \uB2E4\uC74C \uB300\uC0AC \uBC84\uD2BC\uC740 \uACE0\uC815 \uD654\uC0B4\uD45C\uC640 \uD568\uAED8 \uC138 \uB300\uC0AC\uB97C \uC21C\uD658\uC2DC\uCF1C \uC918. \uBCC4\uB3C4\uC758 \uD0C0\uC790 \uD6A8\uACFC \uBC84\uD2BC\uC73C\uB85C \uD6A8\uACFC\uB97C \uCF1C\uBA74 \uD604\uC7AC \uB300\uC0AC\uB97C \uCC98\uC74C\uBD80\uD130 60ms\uB9C8\uB2E4 \uD55C \uAE00\uC790\uC529 \uD45C\uC2DC\uD558\uACE0 \uCD9C\uB825 \uC911\uC5D0\uB9CC \uD654\uC790\uC758 \uC785 \uBAA8\uC591\uC744 \uBC14\uAFD4 \uC918. \uD604\uC7AC \uB300\uC0AC \uC7AC\uC0DD \uBC84\uD2BC\uC740 \uD6A8\uACFC\uAC00 \uCF1C\uC9C4 \uB3D9\uC548\uC5D0\uB9CC \uD65C\uC131\uD654\uD574 \uC918. \uBAA8\uC158 \uAC10\uC18C \uD658\uACBD\uC5D0\uC11C\uB294 \uC804\uCCB4 \uB300\uC0AC\uB97C \uC989\uC2DC \uD45C\uC2DC\uD574 \uC918."
6806
+ },
6807
+ {
6808
+ id: "px-minimap-radar",
6809
+ domain: "pixelart",
6810
+ category: "game_ui",
6811
+ titleKo: "\uC0C1\uD0DC \uBC18\uC751 \uD53D\uC140 \uBBF8\uB2C8\uB9F5",
6812
+ titleEn: "Interactive Pixel Minimap",
6813
+ vibeTag: "\uC2DC\uC57C \uC6D0\uBFD4\uC744 \uB530\uB77C \uBBF8\uAC1C\uCC99 \uC548\uAC1C\uAC00 \uAC77\uD788\uACE0 \uD50C\uB808\uC774\uC5B4\uC640 \uBCF4\uBB3C\uC0C1\uC790 \uC810\uC774 \uC2E4\uC2DC\uAC04 \uAC31\uC2E0\uB418\uB294",
6814
+ vibeKeywords: ["\uD53D\uC140 \uBBF8\uB2C8\uB9F5", "Pixel Minimap", "\uC804\uC7A5\uC758 \uC548\uAC1C", "\uB3C4\uD2B8 \uB808\uC774\uB354", "\uB358\uC804 \uC9C0\uB3C4", "\uC2DC\uC57C \uC6D0\uBFD4 \uD0D0\uC0C9"],
6815
+ summary: "24\xD724 \uC815\uC218 \uADF8\uB9AC\uB4DC\uC5D0\uC11C \uBC29\uD5A5\uD0A4 \uC774\uB3D9\uC5D0 \uBC18\uC751\uD574 \uC2DC\uC57C\uB97C \uBC1D\uD788\uACE0 \uC801\xB7\uBCF4\uBB3C \uBE14\uB9BD \uC704\uCE58\uB97C \uB3D9\uAE30\uD654\uD558\uB294 \uBBF8\uB2C8\uB9F5 \uAE30\uBC95",
6816
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC804\uC7A5\uC758 \uC548\uAC1C\uC640 \uC2DC\uC57C \uC6D0\uBFD4\uC744 \uC9C0\uC6D0\uD558\uB294 \uD53D\uC140 \uB358\uC804 \uBBF8\uB2C8\uB9F5\uC744 \uB9CC\uB4E4\uC5B4 \uC918. 24\xD724 \uC815\uC218 \uADF8\uB9AC\uB4DC \uC0C1\uC5D0\uC11C \uBCBD\uCCB4\uC640 \uD1B5\uB85C\uB97C \uD45C\uD604\uD558\uACE0 \uB178\uB780 \uD50C\uB808\uC774\uC5B4 \uC810\uC774 \uC774\uB3D9\uD560 \uB54C\uB9C8\uB2E4 \uBBF8\uAC1C\uCC99 \uC548\uAC1C\uAC00 \uAC77\uD788\uBA70 \uBCF4\uBB3C\uC0C1\uC790 \uC810\uC744 \uB4DC\uB7EC\uB0B4\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uC0C1\uD558\uC88C\uC6B0 \uC870\uC791 \uBC84\uD2BC\uC73C\uB85C \uD50C\uB808\uC774\uC5B4\uB97C \uC774\uB3D9\uC2DC\uD0A4\uACE0 \uC548\uAC1C \uD1A0\uAE00 \uBC0F \uB808\uC774\uB354 \uD551 \uD384\uC2A4 \uD6A8\uACFC\uB97C \uC9C0\uC6D0\uD574 \uC918. 12px \uBAA8\uC11C\uB9AC\uB97C \uBCF4\uC874\uD574 \uC918."
6817
+ },
6818
+ /* 5. 효과·애니메이션 (effects) */
6819
+ {
6820
+ id: "px-integer-grid-explosion",
6821
+ domain: "pixelart",
6822
+ category: "effects",
6823
+ titleKo: "\uC815\uC218 \uADF8\uB9AC\uB4DC \uD3ED\uBC1C",
6824
+ titleEn: "Integer Grid Explosion",
6825
+ vibeTag: "\uBC88\uCA4D\uC774\uB294 \uC12C\uAD11 \uD575\uC5D0\uC11C \uBD88\uAF43 \uD1B1\uB2C8\uC640 \uC5F0\uAE30 \uACE0\uB9AC\uB85C \uC0B0\uC0B0\uC774 \uBD80\uC11C\uC9C0\uBA70 \uD769\uB0A0\uB9AC\uB294 6\uD504\uB808\uC784 \uC544\uCF00\uC774\uB4DC",
6826
+ vibeKeywords: ["\uD53D\uC140 \uD3ED\uBC1C", "Grid Explosion", "6\uD504\uB808\uC784 \uD3ED\uBC1C", "\uB3C4\uD2B8 \uD654\uC5FC", "\uC544\uCF00\uC774\uB4DC \uD3ED\uBC1C", "\uC784\uD329\uD2B8 \uC5F0\uAE30"],
6827
+ summary: "32\xD732 \uC815\uC218 \uACA9\uC790\uC5D0\uC11C \uC12C\uAD11\uC810\xB7\uD654\uC5FC \uD33D\uCC3D\xB7\uC5F0\uAE30 \uD30C\uD3B8\xB7\uBD88\uB625 \uBE44\uC0B0\uC73C\uB85C \uC774\uC5B4\uC9C0\uB294 6\uD504\uB808\uC784 \uC544\uCF00\uC774\uB4DC \uD3ED\uBC1C \uC560\uB2C8\uBA54\uC774\uC158 \uAE30\uBC95",
6828
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC544\uCF00\uC774\uB4DC \uC2A4\uD0C0\uC77C\uC758 6\uD504\uB808\uC784 \uD53D\uC140 \uD3ED\uBC1C \uC560\uB2C8\uBA54\uC774\uC158\uC744 \uB9CC\uB4E4\uC5B4 \uC918. 32\xD732 \uC815\uC218 \uACA9\uC790\uC5D0\uC11C \uC911\uC2EC \uC12C\uAD11\uC810\xB7\uD654\uC5FC\uAD6C \uD33D\uCC3D\xB7\uC5F0\uAE30 \uB3C4\uB11B \uACE0\uB9AC\xB7\uBE44\uC0B0\uD558\uB294 1px \uBD88\uB625 \uD30C\uD3B8\uC73C\uB85C \uC774\uC5B4\uC9C0\uB294 \uD504\uB808\uC784 \uC2DC\uD000\uC2A4\uAC00 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. 0.08s \uD504\uB808\uC784 \uD0C0\uC774\uBC0D\uC73C\uB85C \uD3ED\uBC1C \uD2B8\uB9AC\uAC70 \uBC84\uD2BC\uACFC \uD504\uB808\uC784 \uC2A4\uD06C\uB7EC\uBC84 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918. 12px \uBAA8\uC11C\uB9AC\uC640 \uCDA9\uACA9 \uD654\uBA74 \uC9C4\uB3D9 \uD1A0\uAE00\uC744 \uC9C0\uC6D0\uD574 \uC918."
6829
+ },
6830
+ {
6831
+ id: "px-slash-afterimage-trail",
6832
+ domain: "pixelart",
6833
+ category: "effects",
6834
+ titleKo: "\uC794\uC0C1 \uC2AC\uB798\uC2DC \uADA4\uC801",
6835
+ titleEn: "Slash Afterimage Trail",
6836
+ vibeTag: "\uCE7C\uB0A0 \uD638\uC120 \uB4A4\uB85C 4\uB2E8\uACC4 \uC794\uC0C1 \uD53D\uC140\uC774 \uC0C9\uCC44\uC640 \uBD88\uD22C\uBA85\uB3C4\uB97C \uAC10\uC1C4\uD558\uBA70 \uC18D\uB3C4\uAC10\uC744 \uC0C8\uAE30\uB294",
6837
+ vibeKeywords: ["\uC2AC\uB798\uC2DC \uC794\uC0C1", "Slash Trail", "\uAC80\uAE30 \uADA4\uC801", "\uC2A4\uD15D \uC794\uC0C1", "\uB3C4\uD2B8 \uBCA0\uAE30", "\uC18D\uB3C4\uC120 \uC5F0\uCD9C"],
6838
+ summary: "\uAC80\uACA9 \uD638\uC120 \uADA4\uC801\uC5D0 \uC815\uC218 \uC2A4\uD15D \uC794\uC0C1 \uC2E4\uB8E8\uC5E3\uC744 \uBC30\uCE58\uD558\uACE0 \uAC10\uC1C4 \uC0C9\uC0C1 \uB760\uB85C \uACF5\uACA9 \uC18D\uB3C4\uAC10\uC744 \uADF9\uB300\uD654\uD558\uB294 \uC2AC\uB798\uC2DC \uAE30\uBC95",
6839
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uAC80\uACA9 \uADA4\uC801\uACFC \uC794\uC0C1 \uD6A8\uACFC\uB97C \uD53D\uC140 \uC544\uD2B8\uB85C \uD45C\uD604\uD574 \uC918. \uC911\uC2EC \uBC31\uC0C9 \uCE7C\uB0A0 \uD638\uC120 \uB4A4\uB85C \uC2DC\uC548\xB7\uCCAD\uB85D\xB7\uB0A8\uC0C9\uC73C\uB85C \uC774\uC5B4\uC9C0\uB294 4\uB2E8\uACC4 \uC794\uC0C1 \uD53D\uC140 \uB760\uAC00 \uBD88\uD22C\uBA85\uB3C4\uB97C \uB0AE\uCD94\uBA70 \uB4A4\uB530\uB974\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. 0.25s \uACF5\uACA9 \uD2B8\uB9AC\uAC70 \uBC84\uD2BC\uACFC \uC794\uC0C1 \uAC1C\uC218 \uC870\uC808 \uC2AC\uB77C\uC774\uB354, \uBCA0\uAE30 \uAC01\uB3C4 \uC804\uD658 \uBC84\uD2BC\uC744 \uC81C\uACF5\uD574 \uC918. 12px \uBAA8\uC11C\uB9AC\uC640 \uC815\uC218 \uC2A4\uD15D \uC794\uC0C1\uC744 \uC720\uC9C0\uD574 \uC918."
6840
+ },
6841
+ {
6842
+ id: "px-sparkle-gemstone-shine",
6843
+ domain: "pixelart",
6844
+ category: "effects",
6845
+ titleKo: "\uD750\uB974\uB294 \uBCF4\uC11D \uBC18\uC9DD\uC784",
6846
+ titleEn: "Sparkling Gemstone Glint",
6847
+ vibeTag: "\uBCF4\uC11D \uC548\uC5D0\uC11C \uB300\uAC01\uC120 \uAD11\uD0DD \uC704\uCE58\uB97C \uC870\uC808\uD558\uACE0 \uBCC4\uC744 \uB530\uB85C \uBC18\uC9DD\uC77C \uC218 \uC788\uB294",
6848
+ vibeKeywords: ["\uBCF4\uC11D \uBC18\uC9DD\uC784", "Gemstone Glint", "\uB3C4\uD2B8 \uBCF4\uC11D", "\uC2ED\uC790 \uBC18\uC9DD\uC784", "\uAD11\uD0DD \uC2A4\uC704\uD504", "\uB2E4\uBA74\uCCB4 \uBC18\uC0AC"],
6849
+ summary: "\uBCF4\uC11D \uC678\uACFD \uC548\uC5D0 \uAC07\uD78C \uB300\uAC01\uC120 \uAD11\uD0DD \uB760\uC640 \uBC84\uD2BC\uC73C\uB85C \uCF1C\uB294 \uC2ED\uC790 \uBC18\uC9DD\uC784\uC744 \uD569\uC131\uD558\uB294 \uAE30\uBC95",
6850
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uB2E4\uBA74\uCCB4 \uD53D\uC140 \uBCF4\uC11D\uC744 \uB9CC\uB4E4\uC5B4 \uC918. viewBox 0 0 264 144\uC778 SVG\uC5D0 \uC0C9\uC73C\uB85C \uB098\uB208 \uBCF4\uC11D \uBA74\uACFC \uB300\uAC01\uC120 \uAD11\uD0DD \uB760\uB97C \uADF8\uB824 \uC918. \uBCF4\uC11D \uC678\uACFD\uC744 \uD074\uB9AC\uD551 \uACBD\uACC4\uB85C \uC368\uC11C \uAD11\uD0DD\uC774 \uBA74 \uBC16\uC73C\uB85C \uB098\uAC00\uC9C0 \uC54A\uAC8C \uD574 \uC918. \uAD11\uD0DD \uC704\uCE58\uB294 0~40 \uC2AC\uB77C\uC774\uB354\uB85C \uC870\uC808\uD558\uACE0 \uCC98\uC74C\uC5D0\uB294 20\uC5D0 \uB46C. \uBC18\uC9DD\uC774\uAE30 \uBC84\uD2BC\uC740 \uAD11\uD0DD \uC704\uCE58\uC640 \uBCC4\uAC1C\uB85C \uBCF4\uC11D \uC704\uC5D0 4\uAC08\uB798 \uBCC4\uC744 0.5\uCD08 \uB3D9\uC548 \uD45C\uC2DC\uD574 \uC918. \uC0C9\uC0C1 \uC120\uD0DD\uC740 \uB8E8\uBE44\xB7\uC5D0\uBA54\uB784\uB4DC\xB7\uC0AC\uD30C\uC774\uC5B4\uB85C \uB098\uB204\uACE0 \uCC98\uC74C\uC5D0\uB294 \uB8E8\uBE44\uB97C \uC120\uD0DD\uD574 \uC918. SVG\uB294 \uCD5C\uB300 \uD3ED 264px, \uB465\uADFC \uBAA8\uC11C\uB9AC 12px\uB85C \uB9DE\uCDB0 \uC918."
6851
+ },
6852
+ {
6853
+ id: "px-mosaic-pixel-wipe-transition",
6854
+ domain: "pixelart",
6855
+ category: "effects",
6856
+ titleKo: "\uB2E8\uACC4\uBCC4 \uBAA8\uC790\uC774\uD06C \uC7A5\uBA74 \uC804\uD658",
6857
+ titleEn: "Step-by-Step Pixel Mosaic Transition",
6858
+ vibeTag: "\uD654\uBA74\uC774 \uAC70\uB300 \uBAA8\uC790\uC774\uD06C \uBE14\uB85D\uC73C\uB85C \uBB49\uAC1C\uC84C\uB2E4\uAC00 \uBC18\uB300\uD3B8 \uC131\uCC44 \uC7A5\uBA74\uC73C\uB85C \uD574\uC0C1\uB3C4\uB97C \uBCF5\uC6D0\uD558\uBA70 \uB098\uD0C0\uB098\uB294",
6859
+ vibeKeywords: ["\uBAA8\uC790\uC774\uD06C \uD2B8\uB79C\uC9C0\uC158", "Pixel Mosaic Wipe", "\uD574\uC0C1\uB3C4 \uC804\uD658", "\uB3C4\uD2B8 \uD654\uBA74\uC804\uD658", "\uBE14\uB85D \uC804\uD658", "\uD53D\uC140 \uBAA8\uC790\uC774\uD06C"],
6860
+ summary: "1px\uC5D0\uC11C 32px\uAE4C\uC9C0 \uBE14\uB85D \uD06C\uAE30\uB97C \uC815\uC218 \uC591\uC790\uD654\uD574 \uC7A5\uBA74\uC744 \uB36E\uACE0 \uB450 \uBC88\uC9F8 \uC7A5\uBA74\uC73C\uB85C \uBCF5\uC6D0\uD558\uB294 \uBAA8\uC790\uC774\uD06C \uC804\uD658 \uAE30\uBC95",
6861
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uBE14\uB85D \uD574\uC0C1\uB3C4\uB97C \uB2E8\uACC4\uBCC4\uB85C \uC591\uC790\uD654\uD558\uB294 \uD53D\uC140 \uBAA8\uC790\uC774\uD06C \uC7A5\uBA74 \uC804\uD658 \uD6A8\uACFC\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB9D1\uC740 \uC131\uCC44 \uC7A5\uBA74\uC5D0\uC11C 1px\uC5D0\uC11C 32px \uD06C\uAE30\uAE4C\uC9C0 \uAC70\uB300 \uC0AC\uAC01 \uBE14\uB85D\uC73C\uB85C \uBB49\uAC1C\uC9C4 \uB4A4, 10\uB2E8\uACC4 \uACFC\uC815\uC744 \uAC70\uCCD0 \uB2EC\uBC24 \uB3D9\uAD74 \uC7A5\uBA74\uC73C\uB85C \uD574\uC0C1\uB3C4\uB97C \uBCF5\uC6D0\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED100%\xB7\uCD5C\uC18C\uB192\uC774188px\xB7\uC0C1\uB2E844px/\uC88C\uC6B016px/\uD558\uB2E820px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED264px/\uCD5C\uB300100%\xB7\uB192\uC774auto\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. 0.5s \uC790\uB3D9 \uC804\uD658 \uC7AC\uC0DD \uBC84\uD2BC\uACFC \uB2E8\uACC4 \uC2AC\uB77C\uC774\uB354(0~10), \uC7A5\uBA74 A/B \uC218\uB3D9 \uD1A0\uAE00\uC744 \uC81C\uACF5\uD574 \uC918. 12px \uBAA8\uC11C\uB9AC\uB97C \uBCF4\uC874\uD574 \uC918."
6862
+ }
6863
+ ];
6864
+
6865
+ // ../../packages/catalog/src/additions/pixelart-expansion.ts
6866
+ var PIXELART_EXPANSION_ADDITIONS = [
6867
+ /* ============================================================================
6868
+ * 1. 스프라이트·캐릭터 (sprites) - 추가 6종
6869
+ * ============================================================================ */
6870
+ {
6871
+ id: "px-blacksmith-hammer-strike",
6872
+ domain: "pixelart",
6873
+ category: "sprites",
6874
+ titleKo: "\uB300\uC7A5\uC7A5\uC774 \uB9DD\uCE58 \uB2E8\uC870 \uD0C0\uACA9",
6875
+ titleEn: "Blacksmith Hammer Forge Strike",
6876
+ vibeTag: "\uC6A9\uAD11\uB85C \uBD88\uBE5B \uC544\uB798 \uB2EC\uAD88\uC9C4 \uAC15\uCCA0 \uC704\uB85C \uB9DD\uCE58\uB97C \uCE58\uCF1C\uB4E4\uC5C8\uB2E4\uAC00 \uB0B4\uB9AC\uCC0D\uC73C\uBA70 \uBD88\uAF43 \uD30C\uD3B8\uC744 \uD280\uAE30\uB294",
6877
+ vibeKeywords: ["\uB300\uC7A5\uC7A5\uC774 \uB2E8\uC870", "Blacksmith Forge", "\uB9DD\uCE58 \uD0C0\uACA9 \uD504\uB808\uC784", "\uC564\uBE4C \uC2A4\uD30C\uD06C", "\uD53D\uC140 \uB300\uC7A5\uAC04", "\uACF5\uACA9 \uC120\uB51C \uD6C4\uB51C"],
6878
+ summary: "48\xD748 \uC815\uC218 \uACA9\uC790\uC5D0\uC11C \uBC31\uC2A4\uC719\xB7\uBAA8\uB8E8 \uD0C0\uACA9\xB78\uAC1C \uBD88\uB625 \uBC18\uB3D9\xB7\uD68C\uC218\uC758 4\uD504\uB808\uC784 \uB2E8\uC870 \uB3D9\uC791\uC744 \uC81C\uC5B4\uD558\uB294 \uC2A4\uD504\uB77C\uC774\uD2B8 \uAE30\uBC95",
6879
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uB300\uC7A5\uC7A5\uC774 \uB9DD\uCE58 \uB2E8\uC870 \uD0C0\uACA9 \uD53D\uC140 \uC2A4\uD504\uB77C\uC774\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. 48\xD748 \uC815\uC218 \uD53D\uC140 \uACA9\uC790\uC5D0\uC11C 0\uBC88 \uBA38\uB9AC \uC704 \uBC31\uC2A4\uC719, 1\uBC88 \uBAA8\uB8E8 \uD0C0\uACA9 \uC784\uD329\uD2B8(+2px \uBAA8\uB8E8 \uC9C4\uB3D9), 2\uBC88 \uBC18\uB3D9\uACFC 8\uAC1C \uBD88\uB625 \uD30C\uD3B8 \uD655\uC0B0, 3\uBC88 \uD68C\uC218 \uC790\uC138\uC758 4\uD504\uB808\uC784 \uC8FC\uAE30\uB97C \uD45C\uD604\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31\uC758 \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30 \uC0C1\uD0DC\uB294 \uBD88\uB625\uC774 \uD280\uB294 2\uBC88 \uD504\uB808\uC784\uC73C\uB85C \uC2DC\uC791\uD558\uACE0, 0.14s \uAC04\uACA9\uC758 \uC790\uB3D9 \uC7AC\uC0DD/\uC77C\uC2DC\uC815\uC9C0 \uD1A0\uAE00\uACFC \uAC15\uCCA0 \uBC31\uC5F4\xB7\uB8EC \uCCAD\uC5F4 \uAE08\uC18D \uC0C9\uC0C1 \uC804\uD658 \uBC84\uD2BC, 0~3 \uD504\uB808\uC784 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918. \uBAA8\uC158 \uAC10\uC18C \uD658\uACBD\uC5D0\uC11C\uB294 \uC790\uB3D9 \uC7AC\uC0DD\uC744 \uBE44\uD65C\uC131\uD654\uD558\uACE0 \uC2AC\uB77C\uC774\uB354 \uC218\uB3D9 \uD0D0\uC0C9\uC744 \uC720\uC9C0\uD574 \uC918."
6880
+ },
6881
+ {
6882
+ id: "px-jump-arc-poses",
6883
+ domain: "pixelart",
6884
+ category: "sprites",
6885
+ titleKo: "\uC810\uD504 \uC608\uBE44\uB3D9\uC791\uACFC \uCCB4\uACF5 \uCC29\uC9C0",
6886
+ titleEn: "Jump Anticipation Apex Landing",
6887
+ vibeTag: "\uC6C5\uD06C\uB9B0 \uB3C4\uC57D \uC608\uBE44\uB3D9\uC791\uBD80\uD130 \uC815\uC810 \uCCB4\uACF5\uC758 \uB9DD\uD1A0 \uD384\uB7ED\uC784\uACFC \uCC29\uC9C0 \uBA3C\uC9C0\uAE4C\uC9C0 \uD3EC\uBB3C\uC120 5\uB2E8\uACC4\uB97C \uADF8\uB9AC\uB294",
6888
+ vibeKeywords: ["\uC810\uD504 \uCCB4\uACF5 \uD3EC\uC988", "Jump Arc Poses", "\uC608\uBE44\uB3D9\uC791 \uC2A4\uCFFC\uD2B8", "\uCCB4\uACF5 \uC815\uC810", "\uCC29\uC9C0 \uB354\uC2A4\uD2B8", "\uD50C\uB7AB\uD3EC\uBA38 \uC810\uD504"],
6889
+ summary: "\uD3EC\uBB3C\uC120 \uADA4\uC801 \uC704\uC5D0\uC11C \uB3C4\uC57D \uC900\uBE44\xB7\uC0C1\uC2B9\xB7\uC815\uC810 \uCCB4\uACF5\xB7\uD558\uAC15\xB7\uCC29\uC9C0 \uCDA9\uACA9\uD761\uC218\uC758 5\uB2E8\uACC4 \uD575\uC2EC \uD3EC\uC988\uC640 \uADF8\uB9BC\uC790 \uD06C\uAE30\uB97C \uC5F0\uB3D9\uD55C \uAE30\uBC95",
6890
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uD50C\uB7AB\uD3EC\uBA38 \uCE90\uB9AD\uD130\uC758 5\uB2E8\uACC4 \uC810\uD504 \uD3EC\uC988 \uD53D\uC140 \uC2A4\uD504\uB77C\uC774\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. 0\uBC88 \uB3C4\uC57D \uC608\uBE44 \uC6C5\uD06C\uB9BC, 1\uBC88 \uC218\uC9C1 \uC0C1\uC2B9 \uC2E0\uC7A5, 2\uBC88 \uC815\uC810 \uCCB4\uACF5(\uB192\uC774 34px \uB610\uB294 \uC800\uC911\uB825 46px), 3\uBC88 \uD558\uAC15 \uB099\uD558, 4\uBC88 \uCC29\uC9C0 \uCFE0\uC158\uACFC \uBA3C\uC9C0 \uD30C\uD3B8\uC758 5\uD504\uB808\uC784 \uD3EC\uC988 \uBC0F \uBC14\uB2E5 \uADF8\uB9BC\uC790 \uCD95\uC18C\xB7\uD655\uB300\uAC00 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30\uC5D0\uB294 2\uBC88 \uC815\uC810 \uCCB4\uACF5 \uD3EC\uC988\uB97C \uD45C\uC2DC\uD558\uACE0, 0.16s \uC8FC\uAE30\uC758 \uC7AC\uC0DD/\uC77C\uC2DC\uC815\uC9C0 \uD1A0\uAE00\uACFC \uC77C\uBC18 \uC911\uB825(34px)\xB7\uB2EC \uC800\uC911\uB825(46px) \uC804\uD658 \uBC84\uD2BC, 0~4 \uB2E8\uACC4 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
6891
+ },
6892
+ {
6893
+ id: "px-dragon-wing-stroke",
6894
+ domain: "pixelart",
6895
+ category: "sprites",
6896
+ titleKo: "\uB4DC\uB798\uACE4 \uB0A0\uAC1C\uC9D3 \uC0C1\uC2B9 \uAE30\uB958",
6897
+ titleEn: "Dragon Wing Stroke Updraft",
6898
+ vibeTag: "\uAC70\uB300\uD55C \uBC15\uC950\uD615 \uB0A0\uAC1C\uB9C9\uC774 \uC0C1\uD558\uB85C \uAD7D\uC774\uCE58\uBA70 \uBAB8\uD1B5 \uBC18\uC791\uC6A9 \uBC14\uC6B4\uC2A4\uC640 \uD654\uC5FC \uC228\uACB0\uC744 \uBFDC\uC5B4\uB0B4\uB294",
6899
+ vibeKeywords: ["\uB4DC\uB798\uACE4 \uB0A0\uAC1C\uC9D3", "Dragon Wingbeat", "\uC640\uC774\uBC88 \uBE44\uD589", "\uB0A0\uAC1C\uB9C9 \uD504\uB808\uC784", "\uBAAC\uC2A4\uD130 \uBCF4\uC2A4", "\uCCB4\uACF5 \uBC18\uC791\uC6A9"],
6900
+ summary: "\uB0A0\uAC1C\uB9C9\uC758 4\uD504\uB808\uC784 \uC0C1\uD558 \uC2A4\uD2B8\uB85C\uD06C\uC5D0 \uB9DE\uCDB0 \uB4DC\uB798\uACE4 \uBAB8\uD1B5\uACFC \uAF2C\uB9AC\uAC00 \uBC18\uC791\uC6A9\uC73C\uB85C \uC0C1\uD558 \uBC14\uC6B4\uC2A4\uD558\uB294 \uBE44\uD589 \uC2A4\uD504\uB77C\uC774\uD2B8 \uAE30\uBC95",
6901
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uD654\uC0B0 \uD611\uACE1 \uC704\uB97C \uCCB4\uACF5\uD558\uB294 \uB4DC\uB798\uACE4 \uB0A0\uAC1C\uC9D3 \uD53D\uC140 \uC2A4\uD504\uB77C\uC774\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. 0\uBC88 \uB0A0\uAC1C \uCD5C\uACE0\uC810 \uD3BC\uCE68, 1\uBC88 \uAC15\uD55C \uB0B4\uB9AC\uCE58\uAE30\uC640 \uC0C1\uC2B9 \uAE30\uB958\uC120, 2\uBC88 \uCD5C\uC800\uC810 \uAC10\uC2F8\uAE30, 3\uBC88 \uC811\uC5B4 \uC62C\uB9AC\uAE30\uC758 4\uD504\uB808\uC784 \uB3D9\uC548 \uBAB8\uD1B5\uC774 \uBC18\uC791\uC6A9\uC73C\uB85C \uC218\uC9C1 \uBC14\uC6B4\uC2A4\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30\uC5D0\uB294 0\uBC88 \uD3BC\uCE68 \uD504\uB808\uC784\uACFC \uD654\uC5FC \uAE30\uC6B4 \uCF1C\uC9D0 \uC0C1\uD0DC\uB85C \uC2DC\uC791\uD558\uACE0, 0.15s \uAC04\uACA9\uC758 \uB0A0\uAC1C\uC9D3 \uC7AC\uC0DD \uD1A0\uAE00\uACFC \uC785\uAC00 \uD654\uC5FC \uAE30\uC6B4 \uD1A0\uAE00, 0~3 \uD504\uB808\uC784 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
6902
+ },
6903
+ {
6904
+ id: "px-slime-squash-stretch",
6905
+ domain: "pixelart",
6906
+ category: "sprites",
6907
+ titleKo: "\uC2AC\uB77C\uC784 \uBD80\uD53C \uBCF4\uC874 \uC2A4\uCFFC\uC2DC \uC2A4\uD2B8\uB808\uCE58",
6908
+ titleEn: "Slime Volume Squash & Stretch",
6909
+ vibeTag: "\uB0A9\uC791\uD558\uAC8C \uB20C\uB9B0 60px \uD3ED\uBD80\uD130 \uC218\uC9C1\uC73C\uB85C \uC19F\uAD6C\uCE5C 48px \uB192\uC774\uAE4C\uC9C0 \uC824\uB9AC \uCF54\uC5B4\uC758 \uBD80\uD53C\uB97C \uC720\uC9C0\uD558\uBA70 \uD1B5\uD1B5 \uD280\uB294",
6910
+ vibeKeywords: ["\uC2AC\uB77C\uC784 \uC2A4\uCFFC\uC2DC", "Slime Squash", "\uBD80\uD53C \uBCF4\uC874 \uD0C4\uC131", "\uC824\uB9AC \uBAAC\uC2A4\uD130", "\uC2A4\uCFFC\uC2DC \uC564 \uC2A4\uD2B8\uB808\uCE58", "\uB3C4\uD2B8 \uC2AC\uB77C\uC784"],
6911
+ summary: "\uD3ED 60\xD7\uB192\uC774 18 \uC555\uCC29\uBD80\uD130 \uD3ED 24\xD7\uB192\uC774 48 \uC218\uC9C1 \uC2E0\uC7A5\uAE4C\uC9C0 \uD53D\uC140 \uBA74\uC801\uC744 \uBCF4\uC874\uD558\uBA70 \uBCC0\uD615\uB418\uB294 \uC824\uB9AC \uC2AC\uB77C\uC784 \uAE30\uBC95",
6912
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uBD80\uD53C \uBCF4\uC874 \uBC95\uCE59\uC744 \uB530\uB974\uB294 \uD53D\uC140 \uC2AC\uB77C\uC784 \uC2A4\uCFFC\uC2DC \uC564 \uC2A4\uD2B8\uB808\uCE58 \uB370\uBAA8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. -2\uB2E8\uACC4 \uCD5C\uB300 \uC555\uCC29(\uD3ED 60px\xB7\uB192\uC774 18px)\uBD80\uD130 0\uB2E8\uACC4 \uAE30\uBCF8\uD615(\uD3ED 40px\xB7\uB192\uC774 30px), +2\uB2E8\uACC4 \uCD5C\uB300 \uB3C4\uC57D \uC2E0\uC7A5(\uD3ED 24px\xB7\uB192\uC774 48px)\uAE4C\uC9C0 5\uB2E8\uACC4 \uBCC0\uD615\uC5D0\uC11C \uB0B4\uBD80 \uD575\uACFC \uD558\uC774\uB77C\uC774\uD2B8 \uBC29\uC6B8\uC774 \uD568\uAED8 \uBC18\uC751\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30 \uC0C1\uD0DC\uB294 \uBCC0\uD615 0\uB2E8\uACC4\uC774\uBA70, 0.13s \uC8FC\uAE30\uC758 \uD0C4\uC131 \uC810\uD504 \uC7AC\uC0DD \uD1A0\uAE00\uACFC \uC5D0\uBA54\uB784\uB4DC\xB7\uC544\uCF00\uC778 \uD37C\uD50C \uC18D\uC131 \uC804\uD658 \uBC84\uD2BC, -2~2 \uBCC0\uD615 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
6913
+ },
6914
+ {
6915
+ id: "px-modular-robot-loadout",
6916
+ domain: "pixelart",
6917
+ category: "sprites",
6918
+ titleKo: "\uBAA8\uB4C8\uD615 \uB85C\uBD07 \uD30C\uCE20 \uC870\uD569",
6919
+ titleEn: "Modular Robot Accessory Loadout",
6920
+ vibeTag: "\uACE0\uC815\uB41C \uBA54\uCE74\uB2C9 \uB3D9\uCCB4 \uD558\uB4DC\uD3EC\uC778\uD2B8 \uC704\uB85C \uB808\uC774\uB354 \uC548\uD14C\uB098\xB7\uC81C\uD2B8\uD329\xB7\uD50C\uB77C\uC988\uB9C8 \uC554\uC774 \uC624\uCC28 \uC5C6\uC774 \uD569\uCCB4\uB418\uB294",
6921
+ vibeKeywords: ["\uBAA8\uB4C8\uD615 \uB85C\uBD07", "Modular Robot", "\uD30C\uCE20 \uCEE4\uC2A4\uD130\uB9C8\uC774\uC9D5", "\uBA54\uCE74\uB2C9 \uB3C4\uD2B8", "\uD558\uB4DC\uD3EC\uC778\uD2B8 \uC7A5\uCC29", "\uC7A5\uBE44 \uB808\uC774\uC5B4\uB9C1"],
6922
+ summary: "48\xD748 \uB85C\uBD07 \uBCF8\uCCB4\uC758 \uBA38\uB9AC\xB7\uB4F1\xB7\uC624\uB978\uD314 \uD558\uB4DC\uD3EC\uC778\uD2B8 \uC88C\uD45C\uC5D0 \uC548\uD14C\uB098\xB7\uC81C\uD2B8\uD329\xB7\uD50C\uB77C\uC988\uB9C8 \uC554 \uD30C\uCE20\uC640 \uB3C4\uC0C9\uC744 \uC870\uD569\uD558\uB294 \uAE30\uBC95",
6923
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uBAA8\uB4C8\uD615 \uD53D\uC140 \uB85C\uBD07 \uD30C\uCE20 \uC870\uD569 \uC2DC\uC2A4\uD15C\uC744 \uB9CC\uB4E4\uC5B4 \uC918. 48\xD748 \uC815\uC218 \uACA9\uC790 \uB3D9\uCCB4\uC758 \uACE0\uC815 \uD558\uB4DC\uD3EC\uC778\uD2B8 \uC18C\uCF13 \uC704\uC5D0 \uBA38\uB9AC \uB808\uC774\uB354 \uC548\uD14C\uB098, \uB4F1 \uC81C\uD2B8\uD329 \uBD80\uC2A4\uD130, \uC624\uB978\uD314 \uD50C\uB77C\uC988\uB9C8 \uC2E4\uB4DC \uD30C\uCE20\uB97C \uB808\uC774\uC5B4\uB85C \uD0C8\uBD80\uCC29\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30\uC5D0\uB294 \uC548\uD14C\uB098\uC640 \uC81C\uD2B8\uD329\uC774 \uCF1C\uC9C4 \uD0C0\uC774\uD0C4 \uBE14\uB8E8 \uB3C4\uC0C9\uC73C\uB85C \uC2DC\uC791\uD558\uACE0, 3\uAC1C \uD30C\uCE20 \uAC1C\uBCC4 \uC7A5\uCC29 \uD1A0\uAE00 \uBC84\uD2BC\uACFC \uD0C0\uC774\uD0C4 \uBE14\uB8E8\xB7\uC778\uB354\uC2A4\uD2B8\uB9AC\uC5BC \uC610\uB85C\xB7\uC2A4\uD154\uC2A4 \uD06C\uB9BC\uC2A8 3\uC885 \uB3C4\uC0C9 \uD504\uB9AC\uC14B \uBC84\uD2BC\uC744 \uC81C\uACF5\uD574 \uC918."
6924
+ },
6925
+ {
6926
+ id: "px-directional-archer-draw",
6927
+ domain: "pixelart",
6928
+ category: "sprites",
6929
+ titleKo: "3\uAC01\uB3C4 \uAD81\uC218 \uC2DC\uC704 \uB2F9\uAE40\uACFC \uBC1C\uC0AC",
6930
+ titleEn: "Directional Archer Draw & Release",
6931
+ vibeTag: "\uC218\uD3C9\xB7\uC0C1\uD5A5 +45\uB3C4\xB7\uD558\uD5A5 -30\uB3C4 \uD45C\uC801 \uAC01\uB3C4\uC5D0 \uB9DE\uCDB0 \uD65C\uB300\uC640 \uC2DC\uC704 \uC7A5\uB825\xB7\uD654\uC0B4 \uADA4\uC801\uC774 \uC815\uAD50\uD558\uAC8C \uB9DE\uBB3C\uB9AC\uB294",
6932
+ vibeKeywords: ["\uAD81\uC218 \uD65C\uC2DC\uC704", "Archer Bow Draw", "\uBC29\uD5A5\uBCC4 \uC870\uC900", "\uC2DC\uC704 \uB2F9\uAE40 \uD504\uB808\uC784", "\uBC1C\uC0AC \uC774\uD399\uD2B8", "\uB3C4\uD2B8 \uB808\uC778\uC800"],
6933
+ summary: "\uC218\uD3C9 0\xB0\xB7\uC0C1\uD5A5 +45\xB0\xB7\uD558\uD5A5 -30\xB0 \uC870\uC900 \uAC01\uB3C4\uC640 \uAC70\uCD1D\xB7\uBC18\uB2F9\uAE40\xB7\uB9CC\uC791\xB7\uBC1C\uC0AC\uC758 4\uB2E8\uACC4\uB97C \uACB0\uD569\uD55C \uAD81\uC218 \uC2A4\uD504\uB77C\uC774\uD2B8 \uAE30\uBC95",
6934
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC870\uC900 \uAC01\uB3C4\uC640 \uD65C\uC2DC\uC704 \uC7A5\uB825\uC744 \uC81C\uC5B4\uD558\uB294 \uD53D\uC140 \uAD81\uC218 \uC2A4\uD504\uB77C\uC774\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uD558\uCCB4 \uC9C0\uC9C0\uBC1C\uC744 \uACE0\uC815\uD55C \uCC44 \uD65C\uB300\uC640 \uBA54\uAE34 \uD654\uC0B4\uC758 \uACC4\uB2E8\uC2DD \uC815\uC218 \uAE30\uD558\uB97C \uC0C1\uD5A5 +45\uB3C4\xB7\uC218\uD3C9 0\uB3C4\xB7\uD558\uD5A5 -30\uB3C4 \uD45C\uC801 \uBC29\uD5A5\uC73C\uB85C \uC870\uC900\uD558\uACE0, 0\uBC88 \uC900\uBE44\xB71\uBC88 \uBC18\uB2F9\uAE40\xB72\uBC88 \uB9CC\uC791 \uC870\uC900\xB73\uBC88 \uD654\uC0B4 \uBC1C\uC0AC \uADA4\uC801\uC758 4\uB2E8\uACC4\uB97C \uD45C\uD604\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30\uC5D0\uB294 \uC218\uD3C9 0\uB3C4 \uC870\uC900\uACFC 2\uBC88 \uB9CC\uC791 \uB2E8\uACC4\uB85C \uC2DC\uC791\uD558\uBA70, 3\uAC1C \uAC01\uB3C4 \uC120\uD0DD \uBC84\uD2BC(+45\xB0\xB70\xB0\xB7-30\xB0)\uACFC 0~3 \uC2DC\uC704 \uB2F9\uAE40 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
6935
+ },
6936
+ /* ============================================================================
6937
+ * 2. 배경·풍경 (environments) - 추가 6종
6938
+ * ============================================================================ */
6939
+ {
6940
+ id: "px-snow-village-accumulation",
6941
+ domain: "pixelart",
6942
+ category: "environments",
6943
+ titleKo: "\uC124\uC6D0 \uB9C8\uC744 \uAC15\uC124 \uBC00\uB3C4\uC640 \uC801\uC124",
6944
+ titleEn: "Snow Village Flurry & Accumulation",
6945
+ vibeTag: "\uB530\uB73B\uD55C \uCC3D\uAC00 \uB4F1\uBD88\uC774 \uCF1C\uC9C4 \uBAA9\uC870 \uC624\uB450\uB9C9 \uC9C0\uBD95\uACFC \uC804\uB098\uBB34 \uC704\uB85C \uD568\uBC15\uB208\uC774 \uC18C\uBCF5\uC774 \uC313\uC5EC\uAC00\uB294",
6946
+ vibeKeywords: ["\uC124\uC6D0 \uB9C8\uC744 \uC801\uC124", "Snow Village Accumulation", "\uAC15\uC124 \uBC00\uB3C4", "\uACA8\uC6B8 \uC624\uB450\uB9C9", "\uC9C0\uBD95 \uB208\uB354\uBBF8", "\uB3C4\uD2B8 \uC124\uACBD"],
6947
+ summary: "\uAC15\uC124 \uB2E8\uACC4(0~3)\uC5D0 \uB530\uB77C \uC5F0\uC18D \uC21C\uD658 \uB099\uD558\uD558\uB294 \uB208\uC1A1\uC774 \uC218(0~36\uAC1C)\uC640 \uC9C0\uBD95\xB7\uC18C\uB098\uBB34 \uC801\uC124 \uB450\uAED8(0~8px)\uAC00 \uC5F0\uB3D9\uB418\uB294 \uC124\uACBD \uAE30\uBC95",
6948
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uAC15\uC124 \uBC00\uB3C4\uC640 \uC9C0\uBD95 \uC801\uC124\uB7C9\uC774 \uC5F0\uB3D9\uB418\uB294 \uC124\uC6D0 \uB9C8\uC744 \uD53D\uC140 \uD48D\uACBD\uC744 \uB9CC\uB4E4\uC5B4 \uC918. 0\uB2E8\uACC4 \uB9D1\uC740 \uCD08\uACA8\uC6B8(0\uAC1C, \uD0C0\uC774\uBA38 \uC815\uC9C0)\uBD80\uD130 1\uB2E8\uACC4 \uAC00\uBCBC\uC6B4 \uB208\uBC1C(12\uAC1C, \uC801\uC124 2px), 2\uB2E8\uACC4 \uD568\uBC15\uB208(24\uAC1C, \uC801\uC124 5px), 3\uB2E8\uACC4 \uD3ED\uC124(36\uAC1C, \uC801\uC124 8px)\uAE4C\uC9C0 126px \uB192\uC774\uC5D0\uC11C \uB04A\uAE40 \uC5C6\uC774 \uC21C\uD658 \uB099\uD558\uD558\uB294 \uB208\uC1A1\uC774 \uD328\uC2A4\uC640 \uC9C0\uBD95\xB7\uC804\uB098\uBB34 \uC801\uC124 \uCE35\uC774 \uD568\uAED8 \uB450\uAEBC\uC6CC\uC9C0\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30\uC5D0\uB294 \uC801\uC124 2\uB2E8\uACC4\uC640 \uCC3D\uAC00 \uB4F1\uBD88 \uCF1C\uC9D0 \uC0C1\uD0DC\uB85C \uC2DC\uC791\uD558\uACE0, 0.12s \uC8FC\uAE30\uC758 \uAC15\uC124 \uC560\uB2C8\uBA54\uC774\uC158 \uD1A0\uAE00\uACFC \uC624\uB450\uB9C9 \uB4F1\uBD88 \uD1A0\uAE00, 0~3 \uC801\uC124 \uB2E8\uACC4 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
6949
+ },
6950
+ {
6951
+ id: "px-aurora-tundra-bands",
6952
+ domain: "pixelart",
6953
+ category: "environments",
6954
+ titleKo: "\uC624\uB85C\uB77C \uD230\uB4DC\uB77C \uD30C\uC7A5 \uC2DC\uD504\uD2B8",
6955
+ titleEn: "Aurora Tundra Band Shift",
6956
+ vibeTag: "\uC5BC\uC5B4\uBD99\uC740 \uBE59\uD558 \uD638\uC218 \uC704\uB85C \uC5D0\uBA54\uB784\uB4DC\uC640 \uBCF4\uB78F\uBE5B \uC624\uB85C\uB77C \uC218\uC9C1 \uCEE4\uD2BC\uC774 \uD30C\uB3D9\uCE58\uBA70 \uD22C\uC601\uB418\uB294",
6957
+ vibeKeywords: ["\uC624\uB85C\uB77C \uD230\uB4DC\uB77C", "Aurora Tundra", "\uC624\uB85C\uB77C \uCEE4\uD2BC", "\uBE59\uD558 \uD638\uC218 \uBC18\uC0AC", "\uADF9\uC57C \uD48D\uACBD", "\uC218\uC9C1 \uD30C\uC7A5 \uC2DC\uD504\uD2B8"],
6958
+ summary: "28\uAC1C \uC218\uC9C1 \uD53D\uC140 \uAE30\uB465\uC758 \uC0AC\uC778\uD30C \uC704\uC0C1 \uC774\uB3D9\uC73C\uB85C \uADF9\uC57C \uD558\uB298\uC758 \uC624\uB85C\uB77C \uCEE4\uD2BC\uACFC \uBE59\uD558 \uD638\uC218 \uBC18\uC0AC\uAD11\uC744 \uC5F0\uCD9C\uD558\uB294 \uAE30\uBC95",
6959
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC624\uB85C\uB77C \uCEE4\uD2BC\uC774 \uD30C\uB3D9\uCE58\uB294 \uADF9\uC9C0 \uD230\uB4DC\uB77C \uD53D\uC140 \uD48D\uACBD\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uBC24\uD558\uB298\uC744 \uAC00\uB85C\uC9C0\uB974\uB294 28\uAC1C \uC218\uC9C1 \uD53D\uC140 \uAE30\uB465\uC774 \uC704\uC0C1(0~11)\uC5D0 \uB530\uB77C \uACC4\uB2E8\uC2DD \uACE1\uC120\uC73C\uB85C \uBB3C\uACB0\uCE58\uACE0 \uD558\uB2E8 \uBE59\uD558 \uD638\uC218\uC5D0 \uBC18\uC0AC\uB418\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30 \uC704\uC0C1\uC740 3\uC73C\uB85C \uC2DC\uC791\uD558\uACE0, 0.14s \uAC04\uACA9\uC758 \uD30C\uB3D9 \uC7AC\uC0DD \uD1A0\uAE00\uACFC \uADF8\uB9B0\xB7\uBC14\uC774\uC62C\uB81B \uBC0F \uC2DC\uC548\xB7\uB9C8\uC820\uD0C0 \uC2A4\uD399\uD2B8\uB7FC \uC804\uD658 \uBC84\uD2BC, 0~11 \uC704\uC0C1 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
6960
+ },
6961
+ {
6962
+ id: "px-underwater-ruin-caustics",
6963
+ domain: "pixelart",
6964
+ category: "environments",
6965
+ titleKo: "\uD574\uC800 \uC720\uC801 \uC218\uBA74 \uCEE4\uC2A4\uD2F1\uC2A4",
6966
+ titleEn: "Underwater Ruin Caustic Light",
6967
+ vibeTag: "\uC77C\uB801\uC774\uB294 \uD574\uC218\uBA74 \uC544\uB798 \uACE0\uB300 \uC2E0\uC804 \uAE30\uB465\uACFC \uBAA8\uB798 \uBC14\uB2E5 \uC704\uB85C \uCCAD\uB85D\uBE5B \uBB3C\uACB0 \uAD11\uB9DD\uC774 \uAD50\uCC28\uD558\uB294",
6968
+ vibeKeywords: ["\uD574\uC800 \uC720\uC801 \uCEE4\uC2A4\uD2F1\uC2A4", "Underwater Caustics", "\uC218\uC911 \uC2E0\uC804", "\uBB3C\uACB0 \uAD74\uC808\uAD11", "\uD574\uC800 \uAE30\uD3EC", "\uB3C4\uD2B8 \uC2EC\uD574"],
6969
+ summary: "\uC218\uBA74 \uBB3C\uACB0\uC5D0\uC11C \uAD74\uC808\uB41C \uC0AC\uC120 \uCEE4\uC2A4\uD2F1\uC2A4 \uAD11\uB9DD\uC774 \uD574\uC800 \uC11D\uC870 \uAE30\uB465\uACFC \uBC14\uB2E5 \uC704\uB97C 4\uD504\uB808\uC784 \uC8FC\uAE30\uB85C \uD750\uB974\uB294 \uC218\uC911 \uBC30\uACBD \uAE30\uBC95",
6970
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC218\uBA74 \uAD74\uC808\uAD11(Caustics)\uC774 \uBE44\uCE58\uB294 \uD574\uC800 \uC720\uC801 \uD53D\uC140 \uD48D\uACBD\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uC218\uBA74 \uBB3C\uACB0\uC5D0\uC11C \uBED7\uC5B4 \uB098\uC628 \uC0AC\uC120 \uBE5B \uAE30\uB465\uACFC \uC11D\uC870 \uC2E0\uC804 \uAE30\uB465\xB7\uD574\uC800 \uBC14\uB2E5\uC758 \uBC1D\uC740 \uCEE4\uC2A4\uD2F1\uC2A4 \uD0C0\uC77C\uC774 0.15s \uC8FC\uAE30\uB85C \uC77C\uB801\uC774\uBA70 \uAE30\uD3EC\uAC00 \uC0C1\uC2B9\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30 \uAD11\uB9DD \uAC15\uB3C4\uB294 2\uB2E8\uACC4\uC640 \uBC1C\uAD11 \uC0B0\uD638 \uCF1C\uC9D0\uC73C\uB85C \uC2DC\uC791\uD558\uACE0, \uBB3C\uACB0 \uC7AC\uC0DD \uD1A0\uAE00\uACFC \uBC1C\uAD11 \uC0B0\uD638 \uD1A0\uAE00, 1~3 \uAD11\uB9DD \uAC15\uB3C4 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
6971
+ },
6972
+ {
6973
+ id: "px-windmill-wheat-breeze",
6974
+ domain: "pixelart",
6975
+ category: "environments",
6976
+ titleKo: "\uD48D\uCC28 \uC5B8\uB355\uACFC \uD669\uAE08 \uBC00\uBC2D \uBC14\uB78C\uACB0",
6977
+ titleEn: "Windmill Hill & Wheat Field Breeze",
6978
+ vibeTag: "\uBD89\uC740 \uBCBD\uB3CC \uD48D\uCC28 \uB0A0\uAC1C\uAC00 \uD68C\uC804\uD558\uACE0 \uC5B8\uB355 \uC544\uB798 \uD669\uAE08\uBE5B \uBC00 \uC774\uC0AD\uC774 \uBC14\uB78C\uC758 \uC138\uAE30\uB9CC\uD07C \uBB3C\uACB0\uCE58\uB294",
6979
+ vibeKeywords: ["\uD48D\uCC28 \uBC00\uBC2D \uBC14\uB78C", "Windmill Wheat Field", "\uD669\uAE08 \uBC00\uBC2D \uD30C\uB3D9", "\uD48D\uCC28 \uB0A0\uAC1C \uD68C\uC804", "\uBAA9\uAC00\uC801 \uC5B8\uB355", "\uB3C4\uD2B8 \uC790\uC5F0\uD48D\uACBD"],
6980
+ summary: "\uBC14\uB78C \uC138\uAE30(0~3)\uC5D0 \uB9DE\uCDB0 \uD48D\uCC28 4\uB0A0\uAC1C\uC758 4\uC704\uC0C1(8\uBC29\uC704) \uD68C\uC804 \uC18D\uB3C4\uC640 \uC804\uACBD 24\uC904\uAE30 \uD669\uAE08 \uBC00\uBC2D\uC758 \uAE30\uC6B8\uAE30 \uD30C\uB3D9\uC744 \uB3D9\uAE30\uD654\uD55C \uD48D\uACBD \uAE30\uBC95",
6981
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uBC14\uB78C\uACB0\uC5D0 \uBC18\uC751\uD558\uB294 \uD48D\uCC28 \uC5B8\uB355\uACFC \uD669\uAE08 \uBC00\uBC2D \uD53D\uC140 \uD48D\uACBD\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uBC14\uB78C \uC138\uAE30(0~3)\uAC00 0\uC774\uBA74 \uC815\uC9C0\uD558\uACE0 1~3\uC774\uBA74 \uC18D\uB3C4(0.20s\xB70.14s\xB70.09s)\uC5D0 \uB9DE\uCDB0 \uD48D\uCC28 \uB0A0\uAC1C\uAC00 4\uAC1C \uD68C\uC804 \uC704\uC0C1(8\uBC29\uC704 \uC815\uC218 \uAC01\uB3C4)\uC73C\uB85C \uB3CC\uBA70 \uC5B8\uB355 \uC544\uB798 24\uC904\uAE30 \uD669\uAE08 \uBC00 \uC774\uC0AD\uC774 \uBE44\uB840\uD574 \uD718\uC5B4\uC9C0\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30 \uBC14\uB78C \uC138\uAE30\uB294 2\uB2E8\uACC4(0.14s \uC8FC\uAE30)\uC640 \uC815\uC624 \uD558\uB298\uB85C \uC2DC\uC791\uD558\uACE0, \uBC14\uB78C \uC7AC\uC0DD \uD1A0\uAE00\uACFC \uC815\uC624\xB7\uD669\uD63C \uC2DC\uAC04\uB300 \uC804\uD658 \uBC84\uD2BC, 0~3 \uBC14\uB78C \uC138\uAE30 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
6982
+ },
6983
+ {
6984
+ id: "px-lava-channel-flow",
6985
+ domain: "pixelart",
6986
+ category: "environments",
6987
+ titleKo: "\uC6A9\uC554 \uC218\uB85C \uB0C9\uAC01\uAC01\uACFC \uC720\uC18D \uD750\uB984",
6988
+ titleEn: "Volcanic Lava Channel Flow",
6989
+ vibeTag: "\uAC80\uC740 \uD604\uBB34\uC554 \uD611\uACE1 \uC0AC\uC774\uB85C \uBC31\uC5F4 \uB9C8\uADF8\uB9C8\uAC00 \uD750\uB974\uACE0 \uC2DD\uC5B4\uAC00\uB294 \uC554\uAC01 \uD30C\uD3B8\uC774 \uD3ED\uD3EC \uC544\uB798\uB85C \uC3DF\uC544\uC9C0\uB294",
6990
+ vibeKeywords: ["\uC6A9\uC554 \uC218\uB85C \uD750\uB984", "Lava Channel Flow", "\uD654\uC0B0 \uB9C8\uADF8\uB9C8", "\uD604\uBB34\uC554 \uB0C9\uAC01\uAC01", "\uC6A9\uC554 \uD3ED\uD3EC", "\uB358\uC804 \uBC30\uACBD"],
6991
+ summary: "\uC911\uC2EC \uBC31\uC5F4\xB7\uC8FC\uD669\xB7\uC2EC\uD64D 3\uB2E8 \uC628\uB3C4 \uB760\uC640 \uAC80\uC740 \uB0C9\uAC01 \uC554\uAC01 \uD0C0\uC77C\uC774 \uC218\uB85C\uC640 \uB099\uD558 \uD3ED\uD3EC\uB97C \uB530\uB77C \uC774\uB3D9\uD558\uB294 \uD654\uC0B0 \uBC30\uACBD \uAE30\uBC95",
6992
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uD604\uBB34\uC554 \uD611\uACE1\uC744 \uD750\uB974\uB294 \uC6A9\uC554 \uC218\uB85C\uC640 \uB9C8\uADF8\uB9C8 \uD3ED\uD3EC \uD53D\uC140 \uD48D\uACBD\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uC218\uB85C \uC911\uC2EC\uC758 \uBC31\uC5F4 \uCF54\uC5B4\uBD80\uD130 \uAC00\uC7A5\uC790\uB9AC \uC801\uAC08\uC0C9\uAE4C\uC9C0 \uC628\uB3C4 \uB760\uB97C \uC774\uB8E8\uACE0, \uC218\uBA74 \uC704 \uAC80\uC740 \uB0C9\uAC01 \uC554\uAC01 \uD30C\uD3B8\uC774 \uC720\uC18D \uC704\uC0C1(0~5)\uC744 \uB530\uB77C \uD3ED\uD3EC \uC544\uB798\uB85C \uC774\uB3D9\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30 \uC704\uC0C1\uC740 2\uB85C \uC2DC\uC791\uD558\uACE0, 0.13s \uAC04\uACA9\uC758 \uC720\uB958 \uC7AC\uC0DD \uD1A0\uAE00\uACFC \uB0C9\uAC01 \uC554\uAC01 \uBC00\uB3C4 \uD1A0\uAE00, 0~5 \uC720\uC18D \uC704\uC0C1 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
6993
+ },
6994
+ {
6995
+ id: "px-forest-canopy-shafts",
6996
+ domain: "pixelart",
6997
+ category: "environments",
6998
+ titleKo: "\uACE0\uBAA9 \uC218\uAD00 \uD2C8\uC0C8 \uD587\uC0B4 \uAE30\uB465",
6999
+ titleEn: "Forest Canopy Sunbeam Shafts",
7000
+ vibeTag: "\uC6B8\uCC3D\uD55C \uACE0\uBAA9 \uC78E\uC0AC\uADC0 \uD2C8\uC744 \uB6AB\uACE0 \uB0B4\uB824\uC628 \uB300\uAC01\uC120 \uD587\uC0B4 \uAE30\uB465\uC774 \uC774\uB07C \uB080 \uC131\uC18C \uC81C\uB2E8\uC744 \uD658\uD558\uAC8C \uBE44\uCD94\uB294",
7001
+ vibeKeywords: ["\uC218\uAD00 \uD587\uC0B4 \uAE30\uB465", "Forest Canopy Shafts", "\uC232\uC18D \uAC13\uB808\uC774", "\uB098\uBB47\uC78E \uD22C\uAD11", "\uACE0\uB300 \uC232 \uC131\uC18C", "\uAF43\uAC00\uB8E8 \uD30C\uD2F0\uD074"],
7002
+ summary: "\uC218\uAD00 \uD2C8\uC0C8 \uAC1C\uC218\uC640 \uD0DC\uC591 \uAC01\uB3C4(-20\xB0~20\xB0)\uC5D0 \uB530\uB77C \uC0AC\uC120 \uBE5B \uAE30\uB465\uACFC \uC232 \uBC14\uB2E5\uC758 \uC870\uBA85 \uD0C0\uC77C \uC704\uCE58\uAC00 \uC5F0\uB3D9\uB418\uB294 \uC0BC\uB9BC \uAE30\uBC95",
7003
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uACE0\uBAA9 \uC218\uAD00 \uD2C8\uC0C8\uB85C \uC3DF\uC544\uC9C0\uB294 \uD587\uC0B4 \uAE30\uB465(Light Shafts) \uD53D\uC140 \uD48D\uACBD\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uD0DC\uC591 \uAC01\uB3C4 \uC2AC\uB77C\uC774\uB354(-20~20, 5\uB2E8\uC704)\uC5D0 \uB530\uB77C \uC0AC\uC120 \uBE5B \uAE30\uB465\uC758 \uAE30\uC6B8\uAE30\uC640 \uC232 \uBC14\uB2E5 \uC774\uB07C\uAC00 \uBC1D\uC544\uC9C0\uB294 \uC9C0\uC810\uC774 \uC815\uD655\uD788 \uC77C\uCE58\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30 \uAC01\uB3C4\uB294 0\uB3C4\uC640 3\uC904\uAE30 \uD22C\uAD11 \uBAA8\uB4DC\uB85C \uC2DC\uC791\uD558\uBA70, 3\uC904\uAE30\xB75\uC904\uAE30\xB7\uC131\uC18C \uC9D1\uC911 \uD504\uB9AC\uC14B \uBC84\uD2BC\uACFC \uAF43\uAC00\uB8E8 \uBC18\uC9DD\uC784 \uD1A0\uAE00, -20~20 \uD0DC\uC591 \uAC01\uB3C4 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
7004
+ },
7005
+ /* ============================================================================
7006
+ * 3. 타일·패턴 (tiles) - 추가 6종
7007
+ * ============================================================================ */
7008
+ {
7009
+ id: "px-dual-grid-shore-corners",
7010
+ domain: "pixelart",
7011
+ category: "tiles",
7012
+ titleKo: "\uB4C0\uC5BC \uADF8\uB9AC\uB4DC \uD574\uC548\uC120 \uBAA8\uC11C\uB9AC \uD0C0\uC77C",
7013
+ titleEn: "Dual-Grid Shoreline Corner Tiles",
7014
+ vibeTag: "\uB17C\uB9AC \uC9C0\uD615 \uACA9\uC790\uC5D0\uC11C \uBC18 \uCE78 \uC5B4\uAE0B\uB09C \uB4C0\uC5BC \uD0C0\uC77C\uC774 4\uAC1C \uAF2D\uC9D3\uC810 \uBE44\uD2B8\uB97C \uC77D\uC5B4 \uB9E4\uB044\uB7EC\uC6B4 \uD574\uC548 \uACE1\uC120\uC744 \uADF8\uB9AC\uB294",
7015
+ vibeKeywords: ["\uB4C0\uC5BC \uADF8\uB9AC\uB4DC \uD574\uC548", "Dual-grid Shoreline", "\uBC18\uCE78 \uC624\uD504\uC14B \uD0C0\uC77C", "\uD574\uC548\uC120 \uCF54\uB108", "4\uBE44\uD2B8 \uAF2D\uC9D3\uC810", "\uC624\uD1A0\uD0C0\uC77C \uB300\uC548"],
7016
+ summary: "4\xD74 \uB17C\uB9AC \uC815\uC810 \uACA9\uC790\uC640 \uBC18 \uCE78 \uC774\uB3D9\uD55C 3\xD73 \uB4C0\uC5BC \uD0C0\uC77C\uC744 \uACB9\uCCD0 \uB0B4\uBD80 \uC774\uC74C\uB9E4 \uC5C6\uB294 \uC794\uB514\uC640 \uBB3C \uACBD\uACC4 \uBAA8\uB798 \uD574\uC548\uC120\uC744 \uC644\uC131\uD558\uB294 \uAE30\uBC95",
7017
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uBC18 \uCE78 \uC624\uD504\uC14B \uB4C0\uC5BC \uADF8\uB9AC\uB4DC(Dual-Grid) \uD574\uC548\uC120 \uD0C0\uC77C \uC2DC\uC2A4\uD15C\uC744 \uB9CC\uB4E4\uC5B4 \uC918. 4\xD74 \uB17C\uB9AC \uC815\uC810(\uC794\uB514 \uB300\uC9C0 vs \uBC14\uB2E4)\uC744 \uAE30\uC900\uC73C\uB85C \uBC18 \uD0C0\uC77C \uC774\uB3D9\uD55C 3\xD73 \uB80C\uB354\uB9C1 \uACA9\uC790\uAC00 \uB124 \uAF2D\uC9D3\uC810\uC758 4\uBE44\uD2B8 \uC0C1\uD0DC(0~15)\uB97C \uC77D\uC5B4, \uC778\uC811\uD55C \uB300\uC9C0\uB07C\uB9AC\uB294 \uB178\uB780 \uC774\uC74C\uB9E4 \uC5C6\uC774 \uCD08\uB85D \uC794\uB514\uB85C \uC787\uACE0 \uBB3C\uACFC \uB9DE\uB2FF\uC740 \uACBD\uACC4\uC5D0\uB9CC \uBAA8\uB798 \uD574\uBCC0\uACFC \uD30C\uB3C4 \uAC70\uD488, \uB300\uAC01 \uD574\uD611(5\xB710\uBC88) \uC5F0\uACB0 \uB2E4\uB9AC\uB97C \uADF8\uB9AC\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uB9CC(Bay)\xB7\uB300\uAC01 \uD574\uD611(Saddle)\xB7\uD658\uCD08(Atoll) 3\uAC00\uC9C0 \uC9C0\uD615 \uD504\uB9AC\uC14B \uBC84\uD2BC\uACFC \uB4C0\uC5BC \uACA9\uC790\uC120 \uC624\uBC84\uB808\uC774 \uD1A0\uAE00, \uD30C\uB3C4 \uAC70\uD488 \uC804\uD658 \uBC84\uD2BC\uC744 \uC81C\uACF5\uD574 \uC918."
7018
+ },
7019
+ {
7020
+ id: "px-wang-edge-color-tiles",
7021
+ domain: "pixelart",
7022
+ category: "tiles",
7023
+ titleKo: "\uC655 \uD0C0\uC77C 2\uC0C9 \uBAA8\uC11C\uB9AC \uB9E4\uCE6D",
7024
+ titleEn: "2-Edge Wang Tile Color Matching",
7025
+ vibeTag: "\uD0C0\uC77C \uC0C1\uD558\uC88C\uC6B0 \uB124 \uBCC0\uC758 \uC0C9\uC0C1 \uCF54\uB4DC\uAC00 \uC774\uC6C3 \uD0C0\uC77C\uACFC \uD55C \uCE58\uC758 \uC5B4\uAE0B\uB0A8 \uC5C6\uC774 \uB9DE\uBB3C\uB824 \uC218\uB85C\uC640 \uD68C\uB85C\uB97C \uC787\uB294",
7026
+ vibeKeywords: ["\uC655 \uD0C0\uC77C \uB9E4\uCE6D", "Wang Edge Tiles", "\uBAA8\uC11C\uB9AC \uC0C9\uC0C1 \uB9E4\uCE6D", "\uBE44\uC8FC\uAE30 \uD0C0\uC77C\uB9C1", "\uB358\uC804 \uC218\uB85C \uC5F0\uACB0", "\uC5D0\uC9C0 \uBE44\uD2B8\uB9C8\uC2A4\uD06C"],
7027
+ summary: "3\xD73 \uD0C0\uC77C \uBCF4\uB4DC\uC5D0\uC11C \uBD81\xB7\uB3D9\xB7\uB0A8\xB7\uC11C 4\uBCC0\uC758 2\uC0C9 \uC5D0\uC9C0 \uCF54\uB4DC\uB97C \uC778\uC811 \uD0C0\uC77C\uACFC \uC77C\uCE58\uC2DC\uCF1C \uB04A\uAE40 \uC5C6\uB294 \uC218\uB85C \uD328\uD134\uC744 \uAD6C\uC131\uD558\uB294 \uAE30\uBC95",
7028
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 2\uC0C9 \uBAA8\uC11C\uB9AC \uB9E4\uCE6D \uADDC\uCE59\uC744 \uB530\uB974\uB294 \uC655 \uD0C0\uC77C(Wang Tiles) \uBCF4\uB4DC\uB97C \uB9CC\uB4E4\uC5B4 \uC918. 3\xD73 \uD0C0\uC77C \uACA9\uC790\uC5D0\uC11C \uAC01 \uD0C0\uC77C\uC758 \uBD81(1)\xB7\uB3D9(2)\xB7\uB0A8(4)\xB7\uC11C(8) \uBCC0\uC774 \uD669\uAE08 \uC218\uB85C(1) \uB610\uB294 \uCCAD\uC11D \uBCBD(0) \uC0C1\uD0DC\uB97C \uAC00\uC9C0\uBA70, \uC911\uC559 \uD0C0\uC77C\uC758 \uBCC0\uC744 \uBC14\uAFC0 \uB54C \uC778\uC811 \uD0C0\uC77C\uC758 \uACF5\uC720 \uBCC0\uC774 \uC989\uC2DC \uB3D9\uAE30\uD654\uB418\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uBD81\uCABD\xB7\uB3D9\uCABD\xB7\uB0A8\uC11C\uCABD \uBCC0 \uC804\uD658 \uBC84\uD2BC\uACFC 4\uBCC0 \uBCF4\uD0C0\uC774 \uAC00\uC774\uB4DC \uD1A0\uAE00, \uAE30\uBCF8 \uBC30\uCE58 \uBCF5\uC6D0 \uBC84\uD2BC\uC744 \uC81C\uACF5\uD574 \uC918."
7029
+ },
7030
+ {
7031
+ id: "px-seeded-brick-variants",
7032
+ domain: "pixelart",
7033
+ category: "tiles",
7034
+ titleKo: "\uC2DC\uB4DC \uD574\uC2DC \uBCBD\uB3CC \uBCC0\uC8FC \uD0C0\uC77C",
7035
+ titleEn: "Seeded Hash Brick Variants",
7036
+ vibeTag: "\uACB0\uC815\uB860\uC801 \uC88C\uD45C \uD574\uC2DC\uB85C \uADE0\uC5F4\xB7\uC774\uB07C\xB7\uC5B4\uB450\uC6B4 \uC74C\uAC01 \uBCBD\uB3CC\uC744 \uC790\uC5F0\uC2A4\uB7FD\uAC8C \uC11E\uC5B4 \uBC18\uBCF5 \uD0C0\uC77C\uC758 \uB2E8\uC870\uB85C\uC6C0\uC744 \uAE68\uB294",
7037
+ vibeKeywords: ["\uC2DC\uB4DC \uBCBD\uB3CC \uBCC0\uC8FC", "Seeded Brick Variants", "\uC88C\uD45C \uD574\uC2DC \uD0C0\uC77C", "\uB358\uC804 \uBCBD\uCCB4 \uBCC0\uC8FC", "\uC774\uB07C \uADE0\uC5F4 \uD0C0\uC77C", "\uBC18\uBCF5\uC131 \uC81C\uAC70"],
7038
+ summary: "8\xD75 \uC131\uBCBD \uACA9\uC790\uC5D0\uC11C \uC2DC\uB4DC\uBCC4 \uD63C\uD569 \uC815\uC218 \uD574\uC2DC\uB85C \uAE30\uBCF8 \uC11D\uC7AC\xB7\uADE0\uC5F4\xB7\uC774\uB07C\xB7\uC5B4\uB450\uC6B4 \uC74C\uAC01 \uBCC0\uC8FC \uBCBD\uB3CC\uC744 \uACB0\uC815\uB860\uC801\uC73C\uB85C \uBC30\uCE58\uD558\uB294 \uAE30\uBC95",
7039
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC2DC\uB4DC \uD574\uC2DC \uAE30\uBC18\uC758 \uBCBD\uB3CC \uBCC0\uC8FC \uD0C0\uC77C \uC2DC\uC2A4\uD15C\uC744 \uB9CC\uB4E4\uC5B4 \uC918. 8\xD75 \uC5C7\uAC08\uB9BC \uC131\uBCBD \uACA9\uC790\uC5D0\uC11C \uC2DC\uB4DC\uC640 \uC88C\uD45C\uB97C \uD63C\uD569\uD55C \uACB0\uC815\uB860\uC801 \uC815\uC218 \uD574\uC2DC\uB85C \uAE30\uBCF8 \uBCBD\uB3CC\xB7\uADE0\uC5F4 \uBCBD\uB3CC\xB7\uC774\uB07C \uBCBD\uB3CC\xB7\uC5B4\uB450\uC6B4 \uC74C\uAC01 \uBCBD\uB3CC\uC758 \uBD84\uD3EC\uB97C \uC2DC\uB4DC\uB9C8\uB2E4 \uB69C\uB837\uC774 \uBC14\uAFB8\uBA74\uC11C\uB3C4 \uAC19\uC740 \uC2DC\uB4DC\xB7\uBC00\uB3C4\uC5D0\uC11C\uB294 \uB3D9\uC77C\uD55C \uD328\uD134\uC744 \uC7AC\uD604\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uC2DC\uB4DC 1\xB72\xB73 \uC120\uD0DD \uBC84\uD2BC\uACFC \uC2DC\uB4DC \uD574\uC2DC/\uB2E8\uC77C \uBC18\uBCF5 \uBE44\uAD50 \uD1A0\uAE00, \uBCC0\uC8FC \uBC00\uB3C4 \uC2AC\uB77C\uC774\uB354(0~100%, 25\uB2E8\uC704, \uCD08\uAE30\uAC12 50%)\uB97C \uC81C\uACF5\uD574 \uC918."
7040
+ },
7041
+ {
7042
+ id: "px-nine-slice-pixel-frame",
7043
+ domain: "pixelart",
7044
+ category: "tiles",
7045
+ titleKo: "9\uC2AC\uB77C\uC774\uC2A4 \uD53D\uC140 \uD504\uB808\uC784 \uB9AC\uC0AC\uC774\uC988",
7046
+ titleEn: "9-Slice Pixel Frame Resize",
7047
+ vibeTag: "\uCC3D \uD06C\uAE30\uB97C \uAC00\uB85C\uC138\uB85C\uB85C \uB298\uC5EC\uB3C4 \uB124 \uBAA8\uC11C\uB9AC \uD669\uAE08 \uB9AC\uBCB3 \uC7A5\uC2DD\uC740 1:1 \uC815\uC218 \uBE44\uC728\uC744 \uADF8\uB300\uB85C \uC9C0\uD0A4\uB294",
7048
+ vibeKeywords: ["9\uC2AC\uB77C\uC774\uC2A4 \uD504\uB808\uC784", "9-slice Pixel Frame", "\uB098\uC778\uD328\uCE58 \uCC3D", "\uBAA8\uC11C\uB9AC \uBCF4\uC874 \uB9AC\uC0AC\uC774\uC988", "RPG \uC708\uB3C4\uC6B0 \uD14C\uB450\uB9AC", "\uAC00\uBCC0 \uD0C0\uC77C \uD504\uB808\uC784"],
7049
+ summary: "12\xD712px \uB124 \uBAA8\uC11C\uB9AC \uC7A5\uC2DD\uC740 \uACE0\uC815\uD558\uACE0 \uC0C1\uD558\uC88C\uC6B0 \uBCC0\uACFC \uC911\uC559 \uC601\uC5ED\uB9CC \uC815\uC218 \uB2E8\uC704\uB85C \uD655\uC7A5\uD558\uB294 9\uC2AC\uB77C\uC774\uC2A4 UI \uD0C0\uC77C \uAE30\uBC95",
7050
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uBAA8\uC11C\uB9AC \uC65C\uACE1 \uC5C6\uB294 9\uC2AC\uB77C\uC774\uC2A4(9-Slice) \uD53D\uC140 \uD504\uB808\uC784 \uB9AC\uC0AC\uC774\uC988 \uB370\uBAA8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. 12\xD712px \uD06C\uAE30\uC758 \uB124 \uBAA8\uC11C\uB9AC \uD669\uAE08 \uB9AC\uBCB3 \uBE14\uB85D\uC740 1:1 \uC6D0\uBCF8 \uBE44\uC728\uC744 \uC720\uC9C0\uD558\uACE0, \uAC00\uB85C \uD3ED(108px\xB7168px\xB7228px)\uACFC \uC138\uB85C \uB192\uC774(48px~108px, 12px \uB2E8\uC704) \uBCC0\uD654\uC5D0 \uB9DE\uCDB0 \uD14C\uB450\uB9AC \uBCC0\uACFC \uB0B4\uBD80\uB9CC \uD655\uC7A5\uB418\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30 \uD06C\uAE30\uB294 \uD3ED 168px\xB7\uB192\uC774 84px\uC640 9\uBD84\uD560 \uAC00\uC774\uB4DC \uCF1C\uC9D0\uC73C\uB85C \uC2DC\uC791\uD558\uACE0, 3\uAC1C \uD3ED \uD504\uB9AC\uC14B \uBC84\uD2BC, \uBD84\uD560\uC120 \uD1A0\uAE00, \uB192\uC774 \uC2AC\uB77C\uC774\uB354(48~108)\uB97C \uC81C\uACF5\uD574 \uC918."
7051
+ },
7052
+ {
7053
+ id: "px-conveyor-elbow-orientation",
7054
+ domain: "pixelart",
7055
+ category: "tiles",
7056
+ titleKo: "\uCEE8\uBCA0\uC774\uC5B4 \uBCA8\uD2B8 \uC5D8\uBCF4 \uBC29\uD5A5 \uC804\uD658",
7057
+ titleEn: "Conveyor Belt Elbow Orientation",
7058
+ vibeKeywords: ["\uCEE8\uBCA0\uC774\uC5B4 \uC5D8\uBCF4 \uD0C0\uC77C", "Conveyor Elbow Tile", "\uBCA8\uD2B8 \uBC29\uD5A5 \uC804\uD658", "\uACF5\uC7A5 \uD0C0\uC77C\uC14B", "\uD654\uBB3C \uC774\uC1A1 \uADA4\uB3C4", "\uB864\uB7EC \uC560\uB2C8\uBA54\uC774\uC158"],
7059
+ vibeTag: "\uCF54\uB108 \uC5D8\uBCF4 \uD134\uD14C\uC774\uBE14\uC758 \uD68C\uC804 \uBC29\uD5A5\uC5D0 \uB9DE\uCDB0 \uCEE8\uBCA0\uC774\uC5B4 \uB864\uB7EC \uD654\uC0B4\uD45C\uC640 \uC5D0\uB108\uC9C0 \uC0C1\uC790\uC758 \uC774\uC1A1 \uACBD\uB85C\uAC00 \uBC14\uB00C\uB294",
7060
+ summary: "\uC9C1\uC120 \uBCA8\uD2B8\uC640 \uCF54\uB108 \uC5D8\uBCF4 \uD0C0\uC77C\uC758 \uD68C\uC804 \uC0C1\uD0DC(\uC6B0\uD558\uD5A5\xB7\uD558\uC88C\uD5A5\xB7\uC9C1\uC120)\uC5D0 \uB530\uB77C \uB864\uB7EC \uC9C4\uD589 \uBC29\uD5A5\uACFC \uD654\uBB3C \uADA4\uC801\uC744 \uC81C\uC5B4\uD558\uB294 \uAE30\uBC95",
7061
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uACF5\uC7A5 \uCEE8\uBCA0\uC774\uC5B4 \uBCA8\uD2B8\uC640 \uCF54\uB108 \uC5D8\uBCF4 \uBC29\uD5A5 \uC804\uD658 \uD0C0\uC77C \uB370\uBAA8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uC911\uC559 \uC5D8\uBCF4 \uD0C0\uC77C\uC744 \uC6B0\uD558\uD5A5 \uCF54\uB108\xB7\uD558\uC88C\uD5A5 \uCF54\uB108\xB7\uC9C1\uC120 \uD1B5\uACFC\uB85C \uC804\uD658\uD558\uBA74 \uB864\uB7EC \uD654\uC0B4\uD45C\uC640 \uC5D0\uB108\uC9C0 \uD654\uBB3C \uC0C1\uC790\uC758 \uC774\uB3D9 \uACBD\uB85C(0~7 \uB2E8\uACC4)\uAC00 \uD574\uB2F9 \uCD9C\uAD6C\uB85C \uC989\uC2DC \uBC14\uB00C\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30 \uC0C1\uD0DC\uB294 \uC6B0\uD558\uD5A5 \uCF54\uB108\uC640 3\uBC88 \uC704\uCE58\uC774\uBA70, \uC5D8\uBCF4 \uD68C\uC804 \uBC84\uD2BC, \uC815\uBC29\uD5A5/\uC5ED\uBC29\uD5A5 \uD1A0\uAE00, 0.14s \uBCA8\uD2B8 \uAC00\uB3D9 \uD1A0\uAE00, 0~7 \uC704\uCE58 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
7062
+ },
7063
+ {
7064
+ id: "px-one-way-platform-collision",
7065
+ domain: "pixelart",
7066
+ category: "tiles",
7067
+ titleKo: "\uB2E8\uBC29\uD5A5 \uD50C\uB7AB\uD3FC \uC0C1\uB2E8 \uCDA9\uB3CC \uD310\uC815",
7068
+ titleEn: "One-Way Platform Top Collision Edge",
7069
+ vibeTag: "\uC544\uB798\uC5D0\uC11C \uC19F\uAD6C\uCE60 \uB54C\uB294 \uBC1C\uD310\uC744 \uADF8\uB300\uB85C \uD1B5\uACFC\uD558\uACE0 \uC704\uC5D0\uC11C \uB0B4\uB824\uC62C \uB54C\uB9CC \uC0C1\uB2E8 2px \uACBD\uACC4\uBA74\uC5D0 \uCC29\uC9C0\uD558\uB294",
7070
+ vibeKeywords: ["\uB2E8\uBC29\uD5A5 \uD50C\uB7AB\uD3FC \uD0C0\uC77C", "One-way Platform Tile", "\uC0C1\uB2E8 \uCDA9\uB3CC \uD310\uC815", "\uD328\uC2A4\uC2A4\uB8E8 \uBC1C\uD310", "\uD558\uB2E8 \uC810\uD504 \uB099\uD558", "\uD50C\uB7AB\uD3EC\uBA38 \uC9C0\uD615"],
7071
+ summary: "\uBAA9\uC7AC \uBC1C\uD310\uC758 \uC0C1\uB2E8 2px \uCDA9\uB3CC \uACBD\uACC4\uC120\uC744 \uC2DC\uAC01\uD654\uD574 \uC0C1\uD5A5 \uD1B5\uACFC\xB7\uC0C1\uB2E8 \uCC29\uC9C0\xB7\uD558\uB2E8 \uC810\uD504 \uB099\uD558\uC758 3\uAC00\uC9C0 \uD310\uC815\uC744 \uBE44\uAD50\uD558\uB294 \uAE30\uBC95",
7072
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uD50C\uB7AB\uD3EC\uBA38 \uAC8C\uC784\uC758 \uB2E8\uBC29\uD5A5(One-Way) \uD50C\uB7AB\uD3FC \uC0C1\uB2E8 \uCDA9\uB3CC \uD310\uC815 \uB370\uBAA8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uBC1C\uD310 \uC0C1\uB2E8 2px \uCDA9\uB3CC \uACBD\uACC4\uC120\uC744 \uAE30\uC900\uC73C\uB85C \uC544\uB798\uC11C \uC704\uB85C \uC810\uD504\uD560 \uB54C(\u0394y < 0)\uB294 \uD1B5\uACFC\uD558\uACE0, \uC704\uC5D0\uC11C \uB0B4\uB824\uC62C \uB54C(\u0394y >= 0)\uB294 \uC548\uCC29\uD558\uBA70, \uC544\uB798 \uD0A4 \uC810\uD504 \uC2DC \uD1B5\uACFC \uB099\uD558\uD558\uB294 3\uAC00\uC9C0 \uBAA8\uB4DC\uB97C \uBE44\uAD50\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30\uC5D0\uB294 \uC704\uC5D0\uC11C \uCC29\uC9C0 \uBAA8\uB4DC\uC640 3\uBC88 \uB2E8\uACC4, \uD310\uC815\uC120 \uD45C\uC2DC \uCF1C\uC9D0\uC73C\uB85C \uC2DC\uC791\uD558\uACE0, 3\uAC1C \uADA4\uC801 \uBAA8\uB4DC \uBC84\uD2BC\uACFC \uD310\uC815\uC120 \uD1A0\uAE00, 0~5 \uADA4\uC801 \uB2E8\uACC4 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
7073
+ },
7074
+ /* ============================================================================
7075
+ * 4. 게임 UI (game_ui) - 추가 6종
7076
+ * ============================================================================ */
7077
+ {
7078
+ id: "px-quest-tracker-states",
7079
+ domain: "pixelart",
7080
+ category: "game_ui",
7081
+ titleKo: "\uD018\uC2A4\uD2B8 \uD2B8\uB798\uCEE4 \uBAA9\uD45C \uC0C1\uD0DC\uCC3D",
7082
+ titleEn: "Quest Tracker Objective States",
7083
+ vibeTag: "\uC138\uBD80 \uBAA9\uD45C \uCCB4\uD06C\uBC15\uC2A4\uAC00 \uCC44\uC6CC\uC9C8 \uB54C\uB9C8\uB2E4 \uC9C4\uD589\uB960 \uAC8C\uC774\uC9C0\uAC00 \uC624\uB974\uACE0 \uBAA8\uB4E0 \uC870\uAC74 \uB2EC\uC131 \uC2DC \uD669\uAE08 \uBCF4\uBB3C\uC0C1\uC790\uAC00 \uC5F4\uB9AC\uB294",
7084
+ vibeKeywords: ["\uD018\uC2A4\uD2B8 \uD2B8\uB798\uCEE4", "Quest Tracker UI", "\uBAA9\uD45C \uB2EC\uC131 \uCCB4\uD06C", "\uC784\uBB34 \uC9C4\uD589\uB960 \uBC14", "RPG \uD018\uC2A4\uD2B8\uCC3D", "\uBCF4\uC0C1 \uD574\uAE08 \uD53C\uB4DC\uBC31"],
7085
+ summary: "\uACE0\uB300 \uC5F4\uC1E0\xB7\uBD09\uC778 \uC81C\uB2E8\xB7\uC218\uD638\uC790 \uACA9\uD30C 3\uAC1C \uBAA9\uD45C\uC758 \uC644\uB8CC \uCCB4\uD06C\uC5D0 \uB530\uB77C \uC9C4\uD589\uB960 \uAC8C\uC774\uC9C0\uC640 \uBCF4\uC0C1 \uC0C1\uC790 \uD574\uAE08\uC774 \uAC31\uC2E0\uB418\uB294 \uD018\uC2A4\uD2B8 UI \uAE30\uBC95",
7086
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uBAA9\uD45C \uC0C1\uD0DC\uB97C \uCD94\uC801\uD558\uB294 \uD53D\uC140 RPG \uD018\uC2A4\uD2B8 \uD2B8\uB798\uCEE4 HUD\uB97C \uB9CC\uB4E4\uC5B4 \uC918. 3\uAC1C\uC758 \uC138\uBD80 \uC784\uBB34 \uD589(1. \uACE0\uB300 \uC5F4\uC1E0\xB72. \uBD09\uC778 \uC81C\uB2E8\xB73. \uC218\uD638\uC790 \uACA9\uD30C)\uACFC \uC0C1\uB2E8 \uC9C4\uD589\uB960 \uBC14\uB97C \uBC30\uCE58\uD558\uACE0, 3\uAC1C \uBAA9\uD45C\uAC00 \uBAA8\uB450 \uC644\uB8CC(3/3)\uB418\uBA74 \uC644\uB8CC \uBC30\uC9C0\uC640 \uC6B0\uCE21 \uD669\uAE08 \uBCF4\uC0C1 \uC0C1\uC790\uAC00 \uC5F4\uB9AC\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30\uC5D0\uB294 1\uBC88\xB72\uBC88 \uBAA9\uD45C\uAC00 \uC644\uB8CC\uB41C 2/3 \uC0C1\uD0DC\uB85C \uC2DC\uC791\uD558\uBA70, 3\uAC1C \uBAA9\uD45C \uAC1C\uBCC4 \uC644\uB8CC \uD1A0\uAE00 \uBC84\uD2BC\uACFC \uCD94\uC801 \uAC15\uC870 \uD14C\uB450\uB9AC \uD1A0\uAE00, \uC0C1\uD0DC \uCD08\uAE30\uD654 \uBC84\uD2BC\uC744 \uC81C\uACF5\uD574 \uC918."
7087
+ },
7088
+ {
7089
+ id: "px-radial-spell-hotbar-cooldown",
7090
+ domain: "pixelart",
7091
+ category: "game_ui",
7092
+ titleKo: "\uC2A4\uD3A0 \uD56B\uBC14 \uBD80\uCC44\uAF34 \uCFE8\uB2E4\uC6B4 \uC2A4\uC715",
7093
+ titleEn: "Radial Spell Hotbar Cooldown Sweep",
7094
+ vibeTag: "4\uCE78 \uACE0\uC720 \uC18D\uC131 \uC2A4\uD0AC \uC544\uC774\uCF58 \uC704\uB85C \uC2DC\uACC4\uBC29\uD5A5 \uBD80\uCC44\uAF34 \uB9C8\uC2A4\uD06C\uAC00 \uAC77\uD788\uBA70 \uC2AC\uB86F\uBCC4 \uCFE8\uB2E4\uC6B4 \uBE44\uC728\uC774 \uC904\uC5B4\uB4DC\uB294",
7095
+ vibeKeywords: ["\uC2A4\uD3A0 \uCFE8\uB2E4\uC6B4 \uD56B\uBC14", "Spell Hotbar Cooldown", "\uBD80\uCC44\uAF34 \uCFE8\uD0C0\uC784", "\uC2A4\uD0AC \uC2AC\uB86F \uBC14", "\uC7AC\uC0AC\uC6A9 \uB300\uAE30\uC2DC\uAC04", "\uC561\uC158 RPG \uD56B\uBC14"],
7096
+ summary: "\uACE0\uC720 \uD53D\uC140 \uBB38\uC591\uC744 \uAC00\uC9C4 4\uCE78 \uC2A4\uD0AC \uC2AC\uB86F\uBCC4\uB85C \uB3C5\uB9BD\uB41C \uBD80\uCC44\uAF34 \uCFE8\uB2E4\uC6B4 \uB9C8\uC2A4\uD06C\uC640 \uC794\uC5EC \uBE44\uC728(%)\xB7\uC644\uB8CC \uD14C\uB450\uB9AC\uB97C \uD45C\uC2DC\uD558\uB294 \uAE30\uBC95",
7097
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC2AC\uB86F\uBCC4 \uB3C5\uB9BD \uBD80\uCC44\uAF34 \uCFE8\uB2E4\uC6B4 \uC2A4\uC715\uC774 \uC791\uB3D9\uD558\uB294 4\uCE78 \uD53D\uC140 \uC2A4\uD3A0 \uD56B\uBC14\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uACE0\uC720 \uD53D\uC140 \uC2A4\uD3A0 \uBB38\uC591(Q \uD654\uC5FC\uAD6C\xB7W \uBE59\uACB0\uCC3D\xB7E \uBE44\uC804\uC2E0\uC131\xB7R \uB099\uB8B0)\uC744 \uAC00\uC9C4 4\uAC1C \uC2AC\uB86F\uB9C8\uB2E4 \uB3C5\uB9BD\uB41C \uC794\uC5EC \uCFE8\uB2E4\uC6B4 \uBE44\uC728(0~100%, 10% \uB2E8\uC704)\uACFC \uC2DC\uACC4\uBC29\uD5A5 \uBD80\uCC44\uAF34 \uB9C8\uC2A4\uD06C\uB97C \uC720\uC9C0\uD574, \uC0C8 \uC2AC\uB86F\uC744 \uC2DC\uC804\uD558\uAC70\uB098 \uC7AC\uC2DC\uC804\uD558\uBA74 \uD574\uB2F9 \uC2AC\uB86F\uB9CC 100%\uB85C \uCD08\uAE30\uD654\uB418\uACE0 \uC774\uBBF8 \uC9C4\uD589 \uC911\uC778 \uB2E4\uB978 \uC2AC\uB86F\uC758 0.12s \uCE74\uC6B4\uD2B8\uB2E4\uC6B4\uC740 \uC9C0\uC5F0 \uC5C6\uC774 \uACC4\uC18D \uC904\uC5B4\uB4E4\uBA70 0%\uAC00 \uB418\uBA74 \uAE08\uBE5B READY \uD14C\uB450\uB9AC\uB97C \uCF1C\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30 \uC0C1\uD0DC\uB294 W \uC2AC\uB86F \uC120\uD0DD(Q 0%\xB7W 60%\xB7E 30%\xB7R 0%)\uC73C\uB85C \uC2DC\uC791\uD558\uBA70, 0.12s \uC8FC\uAE30\uB85C \uC120\uD0DD \uC2AC\uB86F\uC744 100%\uC5D0\uC11C 0%\uAE4C\uC9C0 \uAC10\uC18C\uC2DC\uD0A4\uB294 \uC2A4\uD0AC \uC2DC\uC804 \uBC84\uD2BC\uACFC \uC2AC\uB86F \uC804\uD658 \uBC84\uD2BC, \uC120\uD0DD \uC2AC\uB86F\uC758 \uC794\uC5EC \uBE44\uC728\uC744 \uC218\uB3D9 \uBBF8\uB9AC\uBCF4\uAE30\uD558\uB294 0~100% \uCFE8\uB2E4\uC6B4 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
7098
+ },
7099
+ {
7100
+ id: "px-turn-order-timeline",
7101
+ domain: "pixelart",
7102
+ category: "game_ui",
7103
+ titleKo: "\uD134\uC81C \uC804\uD22C \uC21C\uC11C \uD0C0\uC784\uB77C\uC778 \uBC14",
7104
+ titleEn: "Turn-Based Initiative Timeline",
7105
+ vibeTag: "\uC0C1\uB2E8 \uC774\uB2C8\uC154\uD2F0\uBE0C \uB808\uC77C \uC704\uC5D0\uC11C \uB300\uAE30 \uC720\uB2DB \uD1A0\uD070\uC774 \uC18D\uB3C4 \uBC84\uD504\uC5D0 \uB530\uB77C \uC21C\uBC88\uC744 \uC55E\uC9C0\uB974\uBA70 \uD134\uC744 \uAD50\uB300\uD558\uB294",
7106
+ vibeKeywords: ["\uD134 \uC21C\uC11C \uD0C0\uC784\uB77C\uC778", "Turn Order Timeline", "\uC774\uB2C8\uC154\uD2F0\uBE0C \uBC14", "\uD134\uC81C \uC804\uD22C UI", "\uC18D\uB3C4 \uBC84\uD504 \uC21C\uC11C", "\uC720\uB2DB \uD050 \uB808\uC77C"],
7107
+ summary: "\uD45C\uC2DC\uB41C \uB2E8\uC77C \uB300\uAE30\uC5F4\uC744 \uAE30\uC900\uC73C\uB85C \uB2E4\uC74C \uD134 \uC9C4\uD589 \uC2DC #2 \uC720\uB2DB\uC774 \uC989\uC2DC \uD589\uB3D9\uD558\uACE0 \uD604\uC7AC #1 \uC720\uB2DB\uC740 \uB300\uAE30\uC5F4 \uB05D(#4)\uC73C\uB85C \uC774\uB3D9\uD558\uBA70, \uAC00\uC18D \uBC84\uD504 \uC2DC \uB300\uAE30\uC5F4(#2~#4)\uB9CC \uC18D\uB3C4(SPD) \uC21C\uC73C\uB85C \uC7AC\uC815\uB82C\uD558\uB294 4\uC778 \uD0C0\uC784\uB77C\uC778 \uAE30\uBC95",
7108
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uD134\uC81C RPG\uC758 4\uC778 \uC774\uB2C8\uC154\uD2F0\uBE0C \uC21C\uC11C \uD0C0\uC784\uB77C\uC778 \uBC14\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB3C4\uC801(SPD 18)\xB7\uC6A9\uC0AC(SPD 16)\xB7\uB9C8\uBC95\uC0AC(SPD 14)\xB7\uBCF4\uC2A4(SPD 11) 4\uAC1C \uC720\uB2DB \uCE74\uB4DC\uB97C \uB2E8\uC77C \uD45C\uC2DC \uB300\uAE30\uC5F4\uB85C \uC0C1\uB2E8 \uD0C0\uC784\uB77C\uC778 \uB808\uC77C\uC5D0 \uBC30\uCE58\uD574, \uB2E4\uC74C \uD134 \uC9C4\uD589 \uC2DC \uD45C\uC2DC\uB41C \uB300\uAE30\uC5F4\uC744 \uADF8\uB300\uB85C \uD68C\uC804\uC2DC\uCF1C #2 \uC720\uB2DB\uC744 \uC0C8 #1 \uD65C\uC131 \uD134\uC73C\uB85C \uC62C\uB9AC\uACE0 \uAE30\uC874 #1 \uC720\uB2DB\uC740 \uAF2C\uB9AC(#4)\uB85C \uBCF4\uB0B4\uBA70, \uB9C8\uBC95\uC0AC \uAC00\uC18D \uBC84\uD504(SPD 14\u219422) \uD1A0\uAE00 \uC2DC\uC5D0\uB294 \uD604\uC7AC \uD589\uB3D9 \uC911\uC778 #1 \uC720\uB2DB\uC740 \uACE0\uC815\uD55C \uCC44 \uB300\uAE30 \uC720\uB2DB(#2~#4)\uB9CC SPD \uB0B4\uB9BC\uCC28\uC21C\uC73C\uB85C \uC7AC\uC815\uB82C\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uB2E4\uC74C \uD134 \uC9C4\uD589 \uBC84\uD2BC, \uB9C8\uBC95\uC0AC \uAC00\uC18D \uBC84\uD504 \uD1A0\uAE00, SPD \uC218\uCE58 \uD45C\uC2DC \uD1A0\uAE00, \uC21C\uC11C \uCD08\uAE30\uD654 \uBC84\uD2BC\uC744 \uC81C\uACF5\uD574 \uC918."
7109
+ },
7110
+ {
7111
+ id: "px-branching-dialogue-choices",
7112
+ domain: "pixelart",
7113
+ category: "game_ui",
7114
+ titleKo: "\uBD84\uAE30\uD615 \uC120\uD0DD\uC9C0 \uB300\uD654 \uACB0\uC815 \uD2B8\uB9AC",
7115
+ titleEn: "Branching Dialogue Choice Tree",
7116
+ vibeTag: "\uC6A9\uAE30\xB7\uAE30\uB9CC\xB7\uC678\uAD50 3\uAC00\uC9C0 \uC751\uB2F5 \uC120\uD0DD\uC9C0\uC5D0 \uB530\uB77C \uD638\uAC10\uB3C4 \uAC8C\uC774\uC9C0\uC640 \uD6C4\uC18D \uC2A4\uD1A0\uB9AC \uB8E8\uD2B8 \uD0DC\uADF8\uAC00 \uC989\uC2DC \uAC08\uB9AC\uB294",
7117
+ vibeKeywords: ["\uBD84\uAE30\uD615 \uB300\uD654 \uC120\uD0DD\uC9C0", "Branching Dialogue Choices", "\uC120\uD0DD\uC9C0 \uD2B8\uB9AC UI", "\uC131\uD5A5 \uBCC0\uD654 \uAC8C\uC774\uC9C0", "RPG \uBD84\uAE30 \uC751\uB2F5", "\uB300\uD654 \uACB0\uACFC \uBBF8\uB9AC\uBCF4\uAE30"],
7118
+ summary: "\uD0C0\uC774\uD504\uB77C\uC774\uD130 \uCD9C\uB825 \uC5C6\uC774 3\uAC1C \uBD84\uAE30 \uC120\uD0DD\uC9C0\uC640 \uD638\uAC10\uB3C4 \uC99D\uAC10(+15/-5/+25) \uAC8C\uC774\uC9C0, \uACB0\uC815 \uD655\uC815 \uBC0F \uB8E8\uD2B8 \uD0DC\uADF8\uB97C \uC81C\uC5B4\uD558\uB294 \uAE30\uBC95",
7119
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC120\uD0DD\uC5D0 \uB530\uB77C \uC2A4\uD1A0\uB9AC \uB8E8\uD2B8\uC640 \uD638\uAC10\uB3C4 \uC218\uCE58\uAC00 \uAC08\uB9AC\uB294 \uBD84\uAE30\uD615 \uD53D\uC140 \uB300\uD654 \uC120\uD0DD\uC9C0 UI\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uD0C0\uC790 \uD6A8\uACFC \uC5C6\uC774 \uBB38\uC9C0\uAE30 \uCE74\uC5D8\uC758 \uB300\uC0AC\uC640 3\uAC1C \uC751\uB2F5 \uC120\uD0DD\uC9C0(1. \uC815\uBA74 \uB3CC\uD30C \uC6A9\uAE30 +15, 2. \uC554\uD638 \uAC70\uB798 \uAE30\uB9CC -5, 3. \uB3D9\uB9F9 \uC81C\uC548 \uC678\uAD50 +25)\uB97C \uD328\uB110 \uD3ED \uC548\uC5D0 \uAE54\uB054\uD788 \uBC30\uCE58\uD558\uACE0 \uD638\uAC10\uB3C4 \uAC8C\uC774\uC9C0 \uBC0F \uBD84\uAE30 \uB8E8\uD2B8 \uD0DC\uADF8(\uB3CC\uD30C\xB7\uC7A0\uC785\xB7\uB3D9\uB9F9 \uB8E8\uD2B8)\uB97C \uC989\uC2DC \uBE44\uAD50\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30\uC5D0\uB294 1\uBC88 \uC815\uBA74 \uB3CC\uD30C \uC120\uD0DD\uC9C0\uAC00 \uC120\uD0DD\uB41C \uC0C1\uD0DC\uC774\uBA70, 3\uAC1C \uC120\uD0DD\uC9C0 \uBC84\uD2BC\uACFC \uC120\uD0DD \uD655\uC815/\uBCC0\uACBD \uD1A0\uAE00, \uBD84\uAE30 \uD0DC\uADF8 \uD45C\uC2DC \uD1A0\uAE00\uC744 \uC81C\uACF5\uD574 \uC918."
7120
+ },
7121
+ {
7122
+ id: "px-equipment-stat-comparison",
7123
+ domain: "pixelart",
7124
+ category: "game_ui",
7125
+ titleKo: "\uC7A5\uBE44 \uAD50\uCCB4 \uB2A5\uB825\uCE58 \uC99D\uAC10 \uBE44\uAD50\uCC3D",
7126
+ titleEn: "Equipment Stat Delta Comparison",
7127
+ vibeTag: "\uD604\uC7AC \uC7A5\uCC29 \uBB34\uAE30\uC640 \uD6C4\uBCF4 \uBB34\uAE30\uC758 \uACF5\uACA9\uB825\xB7\uC18D\uB3C4\xB7\uCE58\uBA85\uD0C0\uB97C \uB300\uC870\uD574 \uCD08\uB85D \uC0C1\uC2B9 \uD654\uC0B4\uD45C\uC640 \uBD89\uC740 \uD558\uB77D \uC218\uCE58\uB97C \uB744\uC6B0\uB294",
7128
+ vibeKeywords: ["\uC7A5\uBE44 \uB2A5\uB825\uCE58 \uBE44\uAD50", "Equipment Stat Comparison", "\uC2A4\uD0EF \uC99D\uAC10 \uD654\uC0B4\uD45C", "\uBB34\uAE30 \uAD50\uCCB4 \uD504\uB9AC\uBDF0", "RPG \uC7A5\uBE44 \uBE44\uAD50\uCC3D", "\uB378\uD0C0 \uC218\uCE58 \uD45C\uC2DC"],
7129
+ summary: "\uAE30\uC900 \uBB34\uAE30(\uAC15\uCCA0\uAC80 ATK 32\xB7SPD 28\xB7CRIT 15)\uC640 3\uC885 \uD6C4\uBCF4 \uBB34\uAE30\uC758 \uB2A5\uB825\uCE58 \uCC28\uC774\uB97C \uBD80\uD638 \uC788\uB294 \uC218\uCE58\uC640 \uC0C1\uC2B9(\u25B2)\xB7\uD558\uB77D(\u25BC)\xB7\uB3D9\uC77C(=)\uB85C \uD45C\uC2DC\uD558\uB294 \uAE30\uBC95",
7130
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC7A5\uCC29 \uBB34\uAE30\uC640 \uD6C4\uBCF4 \uBB34\uAE30\uC758 \uB2A5\uB825\uCE58 \uC99D\uAC10\uC744 \uBE44\uAD50\uD558\uB294 \uD53D\uC140 \uC7A5\uBE44 \uBE44\uAD50\uCC3D\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uAE30\uC900 \uC7A5\uBE44(\uAC15\uCCA0\uAC80: ATK 32\xB7SPD 28\xB7CRIT 15)\uC640 3\uC885 \uD6C4\uBCF4 \uBB34\uAE30(\uD0DC\uC591\uAC80 46/22/30\xB7\uADF8\uB9BC\uC790\uB2E8\uAC80 26/44/45\xB7\uAC70\uB300\uB300\uAC80 58/12/20)\uC758 \uC218\uCE58\uB97C \uBE44\uAD50\uD574 \uC0C1\uC2B9\uC740 \uCD08\uB85D\uC0C9 +\uC218\uCE58 \u25B2, \uD558\uB77D\uC740 \uBD89\uC740\uC0C9 -\uC218\uCE58 \u25BC, \uC7A5\uCC29 \uD6C4 \uB3D9\uC77C\uD574\uC9C4 \uC218\uCE58\uB294 \uD68C\uC0C9 0 =\uC73C\uB85C \uD45C\uC2DC\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30 \uD6C4\uBCF4\uB294 \uD0DC\uC591\uAC80\uC774\uBA70, 3\uAC1C \uD6C4\uBCF4 \uBB34\uAE30 \uC120\uD0DD \uBC84\uD2BC\uACFC \uC7A5\uCC29 \uC801\uC6A9/\uAE30\uC900 \uBCF5\uC6D0 \uD1A0\uAE00 \uBC84\uD2BC\uC744 \uC81C\uACF5\uD574 \uC918."
7131
+ },
7132
+ {
7133
+ id: "px-collectible-badge-grid",
7134
+ domain: "pixelart",
7135
+ category: "game_ui",
7136
+ titleKo: "\uC218\uC9D1\uD615 \uC5C5\uC801 \uBC30\uC9C0 \uD574\uAE08 \uB3C4\uAC10",
7137
+ titleEn: "Collectible Achievement Badge Grid",
7138
+ vibeTag: "\uC7A0\uAE34 \uC790\uBB3C\uC1E0 \uC2E4\uB8E8\uC5E3 \uC2AC\uB86F\uC774 \uD574\uAE08\uB418\uB294 \uC21C\uAC04 6\uC885 \uACE0\uC720 \uD53D\uC140 \uBB38\uC7A5 \uBC30\uC9C0\uC640 \uB3C4\uAC10 \uB2EC\uC131\uB960\uC774 \uAE08\uBE5B\uC73C\uB85C \uBE5B\uB098\uB294",
7139
+ vibeKeywords: ["\uC5C5\uC801 \uBC30\uC9C0 \uB3C4\uAC10", "Collectible Badge Grid", "\uD2B8\uB85C\uD53C \uCEEC\uB809\uC158 UI", "\uBC30\uC9C0 \uD574\uAE08 \uC0C1\uD0DC", "\uC218\uC9D1\uB960 \uAC8C\uC774\uC9C0", "\uB3C4\uD2B8 \uC5E0\uBE14\uB7FC"],
7140
+ summary: "3\xD72 \uB3C4\uAC10 \uADF8\uB9AC\uB4DC\uC5D0\uC11C \uC7A0\uAE34 \uD53D\uC140 \uC790\uBB3C\uC1E0 \uC2E4\uB8E8\uC5E3\uACFC 6\uC885 \uACE0\uC720 \uD53D\uC140 \uBB38\uC7A5(\uBD88\uAF43\xB7\uC0BC\uC9C0\uCC3D\xB7\uB0A0\uAC1C\xB7\uBC29\uD328\xB7\uBCC4\xB7\uC655\uAD00) \uBC0F \uC218\uC9D1\uB960(4/6~6/6)\uC744 \uAD00\uB9AC\uD558\uB294 \uAE30\uBC95",
7141
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 3\xD72 \uADF8\uB9AC\uB4DC \uAE30\uBC18\uC758 \uC218\uC9D1\uD615 \uD53D\uC140 \uC5C5\uC801 \uBC30\uC9C0 \uB3C4\uAC10 UI\uB97C \uB9CC\uB4E4\uC5B4 \uC918. 6\uAC1C \uC5C5\uC801 \uC2AC\uB86F\uC5D0\uC11C \uC7A0\uAE34 \uBC30\uC9C0\uB294 \uD53D\uC140 \uC790\uBB3C\uC1E0 \uC2E4\uB8E8\uC5E3(\uACE0\uB9AC\uC640 \uBAB8\uD1B5\xB7\uC5F4\uC1E0\uAD6C\uBA4D)\uC73C\uB85C, \uD574\uAE08\uB41C \uBC30\uC9C0\uB294 6\uC885 \uACE0\uC720 \uCEEC\uB7EC \uBB38\uC7A5(\uBD88\uAF43\xB7\uC0BC\uC9C0\uCC3D\xB7\uB0A0\uAC1C\xB7\uBC29\uD328\xB7\uBCC4\xB7\uC655\uAD00)\uACFC \uAE08\uBE5B \uD14C\uB450\uB9AC\uB85C \uADF8\uB9AC\uBA70 \uC0C1\uB2E8 \uC218\uC9D1 \uC9C4\uD589\uB960(\uCD08\uAE30 4/6)\uACFC \uC6B0\uCE21 \uC120\uD0DD \uBC30\uC9C0 \uC0C1\uC138 \uD328\uB110\uC744 \uC5F0\uB3D9\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uB2E4\uC74C \uBC30\uC9C0 \uC120\uD0DD \uBC84\uD2BC, \uC120\uD0DD \uBC30\uC9C0 \uD574\uAE08/\uC7A0\uAE08 \uD1A0\uAE00 \uBC84\uD2BC, \uC804\uCCB4 \uD574\uAE08(6/6) \uBC84\uD2BC, \uAE30\uBCF8 \uC0C1\uD0DC(4/6) \uBCF5\uC6D0 \uBC84\uD2BC\uC744 \uC81C\uACF5\uD574 \uC918."
7142
+ },
7143
+ /* ============================================================================
7144
+ * 5. 효과·애니메이션 (effects) - 추가 6종
7145
+ * ============================================================================ */
7146
+ {
7147
+ id: "px-teleport-dissolve-reform",
7148
+ domain: "pixelart",
7149
+ category: "effects",
7150
+ titleKo: "\uD154\uB808\uD3EC\uD2B8 \uD53D\uC140 \uBD84\uD574\uC640 \uC7AC\uAD6C\uC131",
7151
+ titleEn: "Teleport Pixel Dissolve & Reform",
7152
+ vibeTag: "\uACE0\uC815\uB41C \uD53D\uC140 \uB9C8\uC2A4\uD06C \uD328\uD134\uC744 \uB530\uB77C \uB9C8\uBC95\uC0AC\uAC00 \uCCAD\uB85D\uBE5B \uC218\uC9C1 \uAD11\uC120\uC73C\uB85C \uBD84\uD574\uB418\uC5B4 \uBC18\uB300\uD3B8 \uC6CC\uD504 \uD328\uB4DC\uC5D0 \uC7AC\uACB0\uD569\uD558\uB294",
7153
+ vibeKeywords: ["\uD154\uB808\uD3EC\uD2B8 \uD53D\uC140 \uBD84\uD574", "Teleport Pixel Dissolve", "\uC6CC\uD504 \uC7AC\uAD6C\uC131 \uC774\uD399\uD2B8", "\uC2A4\uCE94\uB77C\uC778 \uB9C8\uC2A4\uD06C", "\uC21C\uAC04\uC774\uB3D9 \uBE54", "\uB3C4\uD2B8 \uC18C\uD658 \uC5F0\uCD9C"],
7154
+ summary: "\uACB0\uC815\uB860\uC801 \uD53D\uC140 \uB9C8\uC2A4\uD06C\uC640 \uC218\uC9C1 \uBE54\uC744 \uC0AC\uC6A9\uD574 \uC88C\uCE21 \uD328\uB4DC \uBD84\uD574(0~3)\xB7\uAD11\uC120 \uC804\uC1A1(4, \uBCF8\uCCB4 \uC18C\uC2E4)\xB7\uC6B0\uCE21 \uD328\uB4DC \uC7AC\uAD6C\uC131(5~8)\uC744 \uC2DC\uC5F0\uD558\uB294 \uAE30\uBC95",
7155
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uACB0\uC815\uB860\uC801 \uD53D\uC140 \uB9C8\uC2A4\uD06C\uB85C \uBD84\uD574\uB418\uACE0 \uC7AC\uAD6C\uC131\uB418\uB294 \uD154\uB808\uD3EC\uD2B8 \uC774\uD399\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. 0~3\uB2E8\uACC4\uB294 \uC88C\uCE21 \uD328\uB4DC A(x=68)\uC5D0\uC11C\uB9CC \uCE90\uB9AD\uD130\uAC00 \uBD84\uD574\uB418\uACE0, 4\uB2E8\uACC4\uB294 \uC591\uCABD \uD328\uB4DC \uBAA8\uB450 \uCE90\uB9AD\uD130 \uBCF8\uCCB4 \uC5C6\uC774 \uC218\uC9C1 \uC804\uC1A1 \uAD11\uC120\uB9CC \uC5F0\uACB0\uB418\uBA70, 5~8\uB2E8\uACC4\uB294 \uC6B0\uCE21 \uD328\uB4DC B(x=196)\uC5D0\uC11C\uB9CC \uC7AC\uACB0\uD569\uB418\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30 \uB2E8\uACC4\uB294 \uBD84\uD574 \uC911\uC778 3\uBC88\uC73C\uB85C \uC2DC\uC791\uD558\uBA70, 0.1s \uAC04\uACA9\uC73C\uB85C 0\uC5D0\uC11C 8\uBC88\uAE4C\uC9C0 1\uD68C \uC9C4\uD589 \uD6C4 \uBA48\uCD94\uB294 \uC6CC\uD504 \uC2E4\uD589 \uBC84\uD2BC\uACFC \uD328\uB4DC A/B \uC989\uC2DC \uC804\uD658 \uBC84\uD2BC, 0~8 \uB2E8\uACC4 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
7156
+ },
7157
+ {
7158
+ id: "px-stepped-lightning-chain",
7159
+ domain: "pixelart",
7160
+ category: "effects",
7161
+ titleKo: "\uACC4\uB2E8\uC2DD \uC5F0\uC1C4 \uBC88\uAC1C \uC544\uD06C \uBC29\uC804",
7162
+ titleEn: "Stepped Chain Lightning Arc",
7163
+ vibeTag: "\uCF54\uC77C \uD0D1\uC5D0\uC11C \uBED7\uC5B4 \uB098\uC628 \uC9C1\uAC01\xB745\uB3C4 \uACC4\uB2E8\uC2DD \uC804\uB958\uAC00 3\uAC1C\uC758 \uB8EC \uD30C\uC77C\uB7F0\uC744 \uC5F0\uC1C4 \uD0C0\uACA9\uD558\uBA70 \uC2A4\uD30C\uD06C\uB97C \uD130\uB728\uB9AC\uB294",
7164
+ vibeKeywords: ["\uC5F0\uC1C4 \uBC88\uAC1C \uC544\uD06C", "Stepped Chain Lightning", "\uCCB4\uC778 \uB77C\uC774\uD2B8\uB2DD", "\uD53D\uC140 \uC804\uB958 \uBC29\uC804", "\uB8EC \uD30C\uC77C\uB7F0 \uD0C0\uACA9", "\uB3C4\uD2B8 \uBC88\uAC1C \uC774\uD399\uD2B8"],
7165
+ summary: "\uC9C1\uAC01\uACFC 45\uB3C4 \uC815\uC218 \uAEBE\uC784\uC120\uC73C\uB85C \uAD6C\uC131\uB41C \uBC31\uC0C9 \uCF54\uC5B4\xB7\uC2DC\uC548 \uAE00\uB85C\uC6B0 \uBC88\uAC1C\uAC00 1~3\uAC1C \uD0C0\uAE43 \uD30C\uC77C\uB7F0\uC744 \uC5F0\uC1C4 \uC5F0\uACB0\uD558\uB294 \uBC29\uC804 \uAE30\uBC95",
7166
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uACC4\uB2E8\uC2DD \uD53D\uC140 \uAEBE\uC784\uC120\uC73C\uB85C \uC774\uC5B4\uC9C0\uB294 \uC5F0\uC1C4 \uBC88\uAC1C(Chain Lightning) \uC774\uD399\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uC88C\uCE21 \uBC29\uC804 \uCF54\uC77C\uC5D0\uC11C \uCD5C\uB300 3\uAC1C\uC758 \uB8EC \uD30C\uC77C\uB7F0\uAE4C\uC9C0 \uC2DC\uC548 \uC678\uACFD\uAD11\uACFC \uBC31\uC0C9 \uC911\uC2EC \uC544\uD06C\uAC00 \uC5F0\uC1C4 \uB3C4\uC57D\uD558\uBA70 \uD0C0\uACA9 \uC9C0\uC810\uC5D0 \uC2ED\uC790 \uC2A4\uD30C\uD06C\uB97C \uD45C\uC2DC\uD558\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30\uC5D0\uB294 3\uAC1C \uD0C0\uAE43 \uC5F0\uC1C4 \uC0C1\uD0DC\uB85C \uC2DC\uC791\uD558\uACE0, 0.11s \uC8FC\uAE30\uB85C 4\uC885 \uC544\uD06C \uD30C\uD615\uC744 \uC21C\uD658\uD558\uB294 \uBC29\uC804 \uB8E8\uD504 \uD1A0\uAE00\uACFC \uD30C\uD615 \uC2A4\uD15D \uC804\uD658 \uBC84\uD2BC, 1~3 \uC5F0\uC1C4 \uD0C0\uAE43 \uC218 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
7167
+ },
7168
+ {
7169
+ id: "px-directional-crt-glitch",
7170
+ domain: "pixelart",
7171
+ category: "effects",
7172
+ titleKo: "\uBC29\uD5A5\uC131 CRT \uC8FC\uC0AC\uC120 \uC2AC\uB77C\uC774\uC2A4 \uAE00\uB9AC\uCE58",
7173
+ titleEn: "Directional CRT Scanline Glitch",
7174
+ vibeTag: "\uC0AC\uC774\uBC84 \uC5E0\uBE14\uB7FC\uC774 \uC8FC\uC0AC\uC120 \uC2AC\uB77C\uC774\uC2A4 \uB2E8\uC704\uB85C \uC5B4\uAE0B\uB098\uBA70 \uC801\uC0C9\xB7\uC2DC\uC548 \uC0C9\uC218\uCC28 \uACE0\uC2A4\uD2B8\uB97C \uD295\uACA8\uB0B4\uB294",
7175
+ vibeKeywords: ["CRT \uC2AC\uB77C\uC774\uC2A4 \uAE00\uB9AC\uCE58", "Directional CRT Glitch", "\uC8FC\uC0AC\uC120 \uC0C9\uC218\uCC28", "\uD53D\uC140 \uD654\uBA74 \uB178\uC774\uC988", "RGB \uC2A4\uD50C\uB9BF", "\uB514\uC9C0\uD138 \uC65C\uACE1 \uC774\uD399\uD2B8"],
7176
+ summary: "6\uAC1C \uD074\uB9AC\uD551 \uC8FC\uC0AC\uC120 \uC2AC\uB77C\uC774\uC2A4 \uB300\uC5ED\uBCC4\uB85C \uC815\uC218 \uC624\uD504\uC14B\uACFC \uC801\xB7\uCCAD \uCC44\uB110 \uBD84\uB9AC\uB97C \uC801\uC6A9\uD574 \uC218\uD3C9\xB7\uC218\uC9C1 \uBC29\uD5A5 \uAE00\uB9AC\uCE58\uB97C \uC81C\uC5B4\uD558\uB294 \uAE30\uBC95",
7177
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uBC29\uD5A5\uC131 CRT \uC8FC\uC0AC\uC120 \uC2AC\uB77C\uC774\uC2A4 \uAE00\uB9AC\uCE58 \uC774\uD399\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uC911\uC559 \uD53D\uC140 \uC5E0\uBE14\uB7FC\uC744 6\uAC1C \uC2AC\uB77C\uC774\uC2A4 \uB300\uC5ED\uC73C\uB85C \uB098\uB204\uACE0, \uAC15\uB3C4(0~4)\uC640 \uCD95 \uBC29\uD5A5(\uC218\uD3C9 \uC2AC\uB77C\uC774\uC2A4\xB7\uC218\uC9C1 \uC9C0\uD130)\uC5D0 \uB530\uB77C \uC801\uC0C9(#f43f5e)\xB7\uC2DC\uC548(#06b6d4) \uCC44\uB110 \uBD84\uB9AC\uC640 \uC815\uC218 \uC624\uD504\uC14B \uC65C\uACE1\uC744 \uC8FC\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30 \uAC15\uB3C4\uB294 2\uB2E8\uACC4\uC640 \uC218\uD3C9 \uBAA8\uB4DC\uB85C \uC2DC\uC791\uD558\uBA70, 0.12s \uC8FC\uAE30\uC758 \uAE00\uB9AC\uCE58 \uBC84\uC2A4\uD2B8 \uD1A0\uAE00\uACFC \uC218\uD3C9/\uC218\uC9C1 \uBC29\uD5A5 \uC804\uD658 \uBC84\uD2BC, 0~4 \uAC15\uB3C4 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
7178
+ },
7179
+ {
7180
+ id: "px-ground-shockwave-rings",
7181
+ domain: "pixelart",
7182
+ category: "effects",
7183
+ titleKo: "\uC9C0\uBA74 \uAC15\uD0C0 \uB3D9\uC2EC \uCDA9\uACA9\uD30C \uB9C1",
7184
+ titleEn: "Ground Slam Shockwave Rings",
7185
+ vibeTag: "\uAC70\uB300 \uC804\uD22C\uB9DD\uCE58\uAC00 \uB0B4\uB9AC\uAF42\uD78C \uC911\uC2EC\uC810\uC73C\uB85C\uBD80\uD130 \uACC4\uB2E8\uC2DD \uB3D9\uC2EC\uC6D0 \uD30C\uB3D9\uACFC \uBC14\uB2E5 \uC11D\uD310 \uC735\uAE30\uAC00 \uD37C\uC838 \uB098\uAC00\uB294",
7186
+ vibeKeywords: ["\uC9C0\uBA74 \uCDA9\uACA9\uD30C \uB9C1", "Ground Shockwave Rings", "\uBCF4\uC2A4 \uAD11\uC5ED \uAC15\uD0C0", "\uB3D9\uC2EC\uC6D0 \uD30C\uB3D9", "\uBC14\uB2E5 \uD0C0\uC77C \uC735\uAE30", "\uB3C4\uD2B8 \uC784\uD329\uD2B8 \uB9C1"],
7187
+ summary: "\uC911\uC2EC \uD0C0\uACA9\uC810\uC5D0\uC11C \uD655\uC0B0\uB418\uB294 2\uC911 \uD53D\uC140 \uB3D9\uC2EC \uB9C1\uACFC \uD30C\uB3D9 \uBC18\uACBD\uC5D0 \uB9DE\uCDB0 \uC19F\uC544\uC624\uB974\uB294 \uBC14\uB2E5 \uC11D\uD310 \uD30C\uD3B8\uC744 \uB3D9\uAE30\uD654\uD55C \uAE30\uBC95",
7188
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC9C0\uBA74 \uAC15\uD0C0 \uC2DC \uD37C\uC838 \uB098\uAC00\uB294 \uD53D\uC140 \uB3D9\uC2EC \uCDA9\uACA9\uD30C \uB9C1 \uC774\uD399\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uD0C0\uACA9 \uC911\uC2EC\uC5D0\uC11C 0~6 \uD504\uB808\uC784 \uB3D9\uC548 \uD669\uAE08\xB7\uC8FC\uD669 \uB3D9\uC2EC \uB9C1\uC774 \uC544\uC774\uC18C\uBA54\uD2B8\uB9AD \uBE44\uC728\uB85C \uD33D\uCC3D\uD558\uACE0, \uD30C\uB3D9\uC774 \uC9C0\uB098\uAC00\uB294 \uC704\uCE58\uC758 \uBC14\uB2E5 \uC11D\uD310 \uBE14\uB85D\uC774 \uC218\uC9C1\uC73C\uB85C \uC19F\uAD6C\uCE58\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30\uC5D0\uB294 \uCDA9\uACA9\uD30C\uAC00 \uD655\uC7A5 \uC911\uC778 3\uBC88 \uD504\uB808\uC784\uACFC \uD30C\uD3B8 \uC735\uAE30 \uCF1C\uC9D0\uC73C\uB85C \uC2DC\uC791\uD558\uACE0, 0.09s \uAC04\uACA9\uC73C\uB85C 6\uBC88 \uD504\uB808\uC784\uAE4C\uC9C0 1\uD68C \uC7AC\uC0DD\uD558\uB294 \uC9C0\uBA74 \uAC15\uD0C0 \uBC84\uD2BC\uACFC \uD30C\uD3B8 \uC735\uAE30 \uD1A0\uAE00, 0~6 \uD504\uB808\uC784 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
7189
+ },
7190
+ {
7191
+ id: "px-ice-freeze-thaw-spread",
7192
+ domain: "pixelart",
7193
+ category: "effects",
7194
+ titleKo: "\uBE59\uACB0 \uACB0\uC815 \uD655\uC0B0\uACFC \uD574\uB3D9 \uC804\uC774",
7195
+ titleEn: "Ice Crystal Freeze & Thaw Spread",
7196
+ vibeTag: "\uBD84\uC218\uB300 \uC911\uC2EC\uC5D0\uC11C \uD314\uAC01\uD615 \uC5BC\uC74C \uACB0\uC815 \uC804\uC120\uC774 \uD37C\uC838 \uB098\uAC00\uBA70 \uACE0\uB4DC\uB984 \uAE30\uB465\uC744 \uC138\uC6E0\uB2E4\uAC00 \uBB3C\uACB0\uB85C \uB179\uC544\uB0B4\uB9AC\uB294",
7197
+ vibeKeywords: ["\uBE59\uACB0 \uACB0\uC815 \uD655\uC0B0", "Ice Freeze Spread", "\uD504\uB85C\uC2A4\uD2B8 \uB178\uBC14", "\uD574\uB3D9 \uC0C1\uD0DC \uC804\uC774", "\uC5BC\uC74C \uAE30\uB465 \uC774\uD399\uD2B8", "\uB3C4\uD2B8 \uBE59\uACB0 \uB9C8\uBC95"],
7198
+ summary: "\uC911\uC559 \uC11D\uC870 \uBD84\uC218\uB300\uB97C \uC911\uC2EC\uC73C\uB85C 0\uB2E8\uACC4 \uC218\uBA74\uC5D0\uC11C \uCD5C\uB300 \uD655\uC0B0 \uBC18\uACBD 5\uB2E8\uACC4(\uBD84\uC218\uB300 \uC644\uC804 \uACB0\uBE59, \uAC70\uB9AC 6\uC778 \uB124 \uBAA8\uC11C\uB9AC \uC140\uC740 \uBC18\uACBD \uBC16 \uC720\uC9C0)\uAE4C\uC9C0 \uD314\uAC01\uD615 \uC11C\uB9AC \uD0C0\uC77C\uACFC \uC5BC\uC74C \uAE30\uB465\uC774 \uD655\uC0B0\xB7\uD574\uB3D9\uB418\uB294 \uAE30\uBC95",
7199
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC911\uC2EC\uC5D0\uC11C \uD655\uC0B0\uB418\uACE0 \uB2E4\uC2DC \uB179\uB294 \uD53D\uC140 \uBE59\uACB0\xB7\uD574\uB3D9 \uC804\uC774 \uC774\uD399\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. 9\xD75 \uACA9\uC790 \uC815\uC911\uC559\uC758 \uC11D\uC870 \uBD84\uC218\uB300(4,2)\uB97C \uC911\uC2EC\uC73C\uB85C 0\uB2E8\uACC4 \uC561\uCCB4 \uC218\uBA74\uBD80\uD130 \uCD5C\uB300 \uD655\uC0B0 \uBC18\uACBD 5\uB2E8\uACC4(\uBD84\uC218\uB300\uAC00 \uC644\uC804\uD788 \uC5BC\uC5B4\uBD99\uACE0 \uB9E8\uD574\uD2BC \uAC70\uB9AC 6\uC778 \uB124 \uBAA8\uC11C\uB9AC \uC140\uC740 \uBC18\uACBD 5 \uBC16\uC5D0 \uB0A8\uC74C)\uAE4C\uC9C0 \uB9E8\uD574\uD2BC \uAC70\uB9AC\uC5D0 \uB530\uB77C \uD314\uAC01\uD615 \uC11C\uB9AC \uD0C0\uC77C\uACFC \uC19F\uC544\uC624\uB978 \uC5BC\uC74C \uACB0\uC815 \uAE30\uB465\uC774 \uB2E8\uACC4\uBCC4\uB85C \uBC88\uC9C0\uAC70\uB098 \uB179\uC544\uB0B4\uB9AC\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30 \uC0C1\uD0DC\uB294 \uC911\uBC18\uAE4C\uC9C0 \uC5BC\uC5B4\uBD99\uC740 3\uB2E8\uACC4\uB85C \uC2DC\uC791\uD558\uBA70, 0.11s \uAC04\uACA9\uC73C\uB85C 5\uB2E8\uACC4\uAE4C\uC9C0 \uC5BC\uB9AC\uB294 \uBE59\uACB0 \uD655\uC0B0 \uBC84\uD2BC\uACFC 0\uB2E8\uACC4\uAE4C\uC9C0 \uB179\uC774\uB294 \uD574\uB3D9 \uBCF5\uC6D0 \uBC84\uD2BC, 0~5 \uBE59\uACB0 \uBC18\uACBD \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
7200
+ },
7201
+ {
7202
+ id: "px-pixel-portal-swirl",
7203
+ domain: "pixelart",
7204
+ category: "effects",
7205
+ titleKo: "\uC2DC\uAC04 \uC81C\uD55C \uD53D\uC140 \uCC28\uC6D0\uBB38 \uC18C\uC6A9\uB3CC\uC774",
7206
+ titleEn: "Time-Bounded Pixel Portal Swirl",
7207
+ vibeTag: "\uD751\uC694\uC11D \uC544\uCE58 \uC548\uCABD\uC5D0\uC11C 4\uAC08\uB798 \uB098\uC120 \uC640\uB958\uAC00 \uD68C\uC804\uD558\uACE0 \uAE30\uB465\uC758 8\uCE78 \uB8EC \uD0C0\uC774\uBA38\uAC00 \uBAA8\uB450 \uC18C\uC9C4\uB418\uBA74 \uCC28\uC6D0\uBB38\uC774 \uB2EB\uD788\uB294",
7208
+ vibeKeywords: ["\uD53D\uC140 \uCC28\uC6D0\uBB38 \uC18C\uC6A9\uB3CC\uC774", "Pixel Portal Swirl", "\uC2DC\uAC04 \uC81C\uD55C \uD3EC\uD0C8", "\uBCF4\uD14D\uC2A4 \uC640\uB958", "\uB8EC \uD0C0\uC774\uBA38 \uAC8C\uC774\uC9C0", "\uB3C4\uD2B8 \uC6CC\uD504\uAC8C\uC774\uD2B8"],
7209
+ summary: "\uC11D\uC870 \uC544\uCE58 \uAE30\uB465\uC758 8\uB2E8\uACC4 \uB8EC \uD0C0\uC774\uBA38\uAC00 \uC810\uB4F1\uB41C \uB3D9\uC548 4\uAC08\uB798 \uACC4\uB2E8\uC2DD \uB098\uC120 \uD314\uC774 \uD68C\uC804\uD558\uACE0 8\uB2E8\uACC4 \uB9CC\uB8CC \uC2DC \uB2EB\uD788\uB294 \uCC28\uC6D0\uBB38 \uAE30\uBC95",
7210
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC9C0\uC18D \uC2DC\uAC04\uC774 \uC81C\uD55C\uB41C \uD53D\uC140 \uCC28\uC6D0\uBB38(Portal) \uC18C\uC6A9\uB3CC\uC774 \uC774\uD399\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uD751\uC694\uC11D \uC544\uCE58 \uB0B4\uBD80\uC758 4\uAC08\uB798 \uACC4\uB2E8\uC2DD \uD53D\uC140 \uB098\uC120 \uD314\uC774 \uB2E8\uACC4\uB9C8\uB2E4 \uD68C\uC804\uD558\uB294 \uB3D9\uC548 \uC591\uCABD \uAE30\uB465\uC758 8\uCE78 \uB8EC \uD45C\uC2DC\uB4F1(8-step)\uC774 \uD558\uB098\uC529 \uC18C\uB4F1\uB418\uACE0, 8\uB2E8\uACC4\uC5D0 \uB3C4\uB2EC\uD558\uBA74 \uD2B9\uC774\uC810\uC73C\uB85C \uC218\uCD95\uD558\uBA70 \uB2EB\uD788\uB294 \uAC83\uC774 \uD575\uC2EC\uC774\uC57C. \uD3ED 100%\xB7\uCD5C\uC18C\uB192\uC774 188px\xB7\uC0C1\uB2E8 44px/\uC88C\uC6B0 16px/\uD558\uB2E8 16px \uC5EC\uBC31 \uC548\uC5D0 viewBox 0 0 264 144\xB7\uD3ED 264px\xB712px \uBAA8\uC11C\uB9AC\xB7shape-rendering crispEdges\uC778 SVG\uB97C \uBC30\uCE58\uD574 \uC918. \uCD08\uAE30\uC5D0\uB294 \uD65C\uC9DD \uC5F4\uB9B0 2\uB2E8\uACC4(\uB8EC 6\uAC1C \uC810\uB4F1)\uC640 \uACF5\uD5C8 \uBCF4\uB77C \uC0C9\uC0C1\uC73C\uB85C \uC2DC\uC791\uD558\uBA70, 0.12s \uAC04\uACA9\uC73C\uB85C 0\uC5D0\uC11C 8\uAE4C\uC9C0 \uC9C4\uD589 \uD6C4 \uC885\uB8CC\uB418\uB294 \uCC28\uC6D0\uBB38 \uAC1C\uBC29 \uBC84\uD2BC\uACFC \uACF5\uD5C8 \uBCF4\uB77C\xB7\uADE0\uC5F4 \uC5D0\uBA54\uB784\uB4DC \uC0C9\uC0C1 \uC804\uD658 \uBC84\uD2BC, 0~8 \uD0C0\uC784\uB77C\uC778 \uC2AC\uB77C\uC774\uB354\uB97C \uC81C\uACF5\uD574 \uC918."
7211
+ }
7212
+ ];
7213
+
7214
+ // ../../packages/catalog/src/additions/ai.ts
7215
+ var AI_ADDITIONS = [
7216
+ /* 1. 입력 제어 (ai_input) */
7217
+ {
7218
+ id: "ai-prompt-box",
7219
+ domain: "ai",
7220
+ category: "ai_input",
7221
+ vibeTag: "\uC785\uB825 \uAE38\uC774\uC5D0 \uB9DE\uCDB0 \uC790\uC5F0\uC2A4\uB7FD\uAC8C \uB298\uC5B4\uB098\uB294",
7222
+ vibeKeywords: ["\uD504\uB86C\uD504\uD2B8 \uC785\uB825\uCC3D", "\uC624\uD1A0\uB9AC\uC0AC\uC774\uC988 textarea", "\uBAA8\uB378 \uD1A0\uAE00", "\uD504\uB86C\uD504\uD2B8 \uC804\uC1A1", "\uC778\uD48B \uBC15\uC2A4"],
7223
+ titleKo: "\uC790\uB3D9 \uD655\uC7A5 \uD504\uB86C\uD504\uD2B8 \uC785\uB825\uCC3D",
7224
+ titleEn: "Auto-Expanding Prompt Box",
7225
+ summary: "\uD14D\uC2A4\uD2B8 \uAE38\uC774\uC5D0 \uB530\uB77C \uB192\uC774\uAC00 \uBD80\uB4DC\uB7FD\uAC8C \uB298\uC5B4\uB098\uACE0 Fast/Pro \uBAA8\uB378 \uC804\uD658\uACFC \uCCA8\uBD80\xB7\uC804\uC1A1 \uC0C1\uD0DC\uB97C \uC81C\uC5B4",
7226
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uD14D\uC2A4\uD2B8 \uAE38\uC774\uC5D0 \uB530\uB77C \uB192\uC774\uAC00 \uB298\uC5B4\uB098\uB294 \uC778\uD130\uB799\uD2F0\uBE0C \uD504\uB86C\uD504\uD2B8 \uC785\uB825\uCC3D\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px\uC758 \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 1px \uD14C\uB450\uB9AC(\uB77C\uC774\uD2B8 #e2e8f0, \uB2E4\uD06C #334155), 16px \uB465\uADFC \uBAA8\uC11C\uB9AC, \uBC30\uACBD(\uB77C\uC774\uD2B8 #ffffff, \uB2E4\uD06C #0f172a)\uC758 \uCE74\uB4DC \uD504\uB808\uC784\uC744 \uAD6C\uC131\uD574 \uC918. \uC0C1\uB2E8\uC5D0\uB294 textarea(\uCD5C\uC18C 48px, \uCD5C\uB300 120px \uB192\uC774, overflow-y auto, resize none, 14px \uAE00\uC790, \uD328\uB529 12px)\uB97C \uBC30\uCE58\uD558\uACE0, \uAE00\uC744 \uC785\uB825\uD558\uBA74 scrollHeight\uC5D0 \uB9DE\uCDB0 \uB192\uC774\uAC00 \uC2E4\uC2DC\uAC04 \uC870\uC808\uB418\uAC8C \uD574 \uC918. \uD558\uB2E8 \uD234\uBC14\uC5D0\uB294 \uC88C\uCE21\uC5D0 Fast\uC640 Pro \uBAA8\uB4DC\uB97C \uC804\uD658\uD558\uB294 2\uAC1C \uC138\uADF8\uBA3C\uD2B8 \uBC84\uD2BC(\uB192\uC774 28px, 11px \uAE00\uC790, 8px \uB465\uADFC \uBAA8\uC11C\uB9AC, \uD65C\uC131 \uC2DC #6366f1 \uBC30\uACBD \uBC0F \uD770\uC0C9 \uAE00\uC790)\uACFC \uD30C\uC77C \uCCA8\uBD80 \uBC84\uD2BC\uC744 \uB450\uACE0, \uC6B0\uCE21\uC5D0\uB294 \uD14D\uC2A4\uD2B8 \uC720\uBB34\uC5D0 \uB530\uB77C \uD65C\uC131\uD654\uB418\uB294 \uC804\uC1A1 \uBC84\uD2BC(32px \uC6D0\uD615, #6366f1 \uBC30\uACBD, \uD770\uC0C9 \uD654\uC0B4\uD45C \uC544\uC774\uCF58)\uC744 \uC81C\uACF5\uD574 \uC918. \uC5D4\uD130 \uD0A4\uB97C \uB204\uB974\uBA74 \uC804\uC1A1\uB418\uACE0 Shift+\uC5D4\uD130\uB294 \uC904\uBC14\uAFC8\uC744 \uC9C0\uC6D0\uD574 \uC918. \uC804\uC1A1 \uD6C4\uC5D0\uB294 \uD14D\uC2A4\uD2B8\uAC00 \uBE44\uC6CC\uC9C0\uACE0 \uB192\uC774\uAC00 48px\uB85C \uCD08\uAE30\uD654\uB418\uC5B4\uC57C \uD574. \uC678\uBD80 \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC5C6\uC774 \uC21C\uC218 React\uC640 Tailwind CSS\uB85C \uAD6C\uD604\uD574 \uC918."
7227
+ },
7228
+ {
7229
+ id: "ai-slash-command",
7230
+ domain: "ai",
7231
+ category: "ai_input",
7232
+ vibeTag: "\uC2AC\uB798\uC2DC \uC785\uB825\uC73C\uB85C \uC989\uC2DC \uBA85\uB839\uC5B4\uB97C \uD638\uCD9C\uD558\uB294",
7233
+ vibeKeywords: ["\uC2AC\uB798\uC2DC \uCEE4\uB9E8\uB4DC", "\uD504\uB86C\uD504\uD2B8 \uBA85\uB839\uC5B4", "\uCEE4\uB9E8\uB4DC \uD31D\uC624\uBC84", "\uB2E8\uCD95 \uBA85\uB839", "\uD0A4\uBCF4\uB4DC \uD314\uB808\uD2B8"],
7234
+ titleKo: "\uC2AC\uB798\uC2DC \uCEE4\uB9E8\uB4DC \uD314\uB808\uD2B8",
7235
+ titleEn: "Slash Command Palette",
7236
+ summary: "\uC785\uB825\uCC3D\uC5D0 \uC2AC\uB798\uC2DC\uB97C \uC785\uB825\uD558\uBA74 \uCD94\uCC9C \uBA85\uB839 \uD31D\uC624\uBC84\uAC00 \uC5F4\uB9AC\uACE0 \uBC29\uD5A5\uD0A4\uC640 \uC5D4\uD130\uB85C \uD14D\uC2A4\uD2B8\uB97C \uC790\uB3D9 \uC644\uC131",
7237
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC2AC\uB798\uC2DC(/) \uBB38\uC790\uB85C \uD2B8\uB9AC\uAC70\uB418\uB294 \uBA85\uB839\uC5B4 \uD31D\uC624\uBC84 \uC778\uD130\uB799\uC158\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108\uC5D0 \uB2E8\uC77C input \uB610\uB294 textarea\uB97C \uB450\uACE0, \uC0AC\uC6A9\uC790\uAC00 /\uB97C \uC785\uB825\uD558\uBA74 \uCEE4\uC11C \uC704\uCABD\uC73C\uB85C 220px \uB108\uBE44\uC758 \uD50C\uB85C\uD305 \uBA54\uB274\uAC00 150ms \uD398\uC774\uB4DC\uC778\uC73C\uB85C \uB098\uD0C0\uB098\uAC8C \uD574 \uC918. \uD31D\uC624\uBC84 \uBA54\uB274\uC5D0\uB294 \uC694\uC57D(/summarize), \uBC88\uC5ED(/translate), \uCF54\uB4DC \uC0DD\uC131(/code), \uB9AC\uD329\uD1A0\uB9C1(/refactor)\uC758 4\uAC1C \uCEE4\uB9E8\uB4DC \uD56D\uBAA9(\uB192\uC774 36px, \uD328\uB529 8px, 12px \uD3F0\uD2B8, \uC544\uC774\uCF58 \uD3EC\uD568)\uC744 \uB2F4\uC544 \uC918. \uD0A4\uBCF4\uB4DC \uC704/\uC544\uB798 \uBC29\uD5A5\uD0A4\uB85C \uD3EC\uCEE4\uC2A4 \uD56D\uBAA9\uC744 \uD0D0\uC0C9\uD560 \uC218 \uC788\uACE0, Enter \uD0A4\uB098 \uD074\uB9AD\uC73C\uB85C \uC120\uD0DD\uD558\uBA74 \uC785\uB825\uCC3D\uC758 /\uAC00 \uD574\uB2F9 \uBA85\uB839\uC5B4 \uD504\uB86C\uD504\uD2B8\uB85C \uCE58\uD658\uB418\uBA70 \uD31D\uC624\uBC84\uAC00 \uB2EB\uD788\uAC8C \uD574 \uC918. Escape \uD0A4\uB97C \uB204\uB974\uBA74 \uD31D\uC624\uBC84\uAC00 \uCDE8\uC18C\uB418\uACE0 \uD14C\uB9C8(\uB77C\uC774\uD2B8 #ffffff \uBC14\uD0D5/#e2e8f0 \uD14C\uB450\uB9AC, \uB2E4\uD06C #1e293b \uBC14\uD0D5/#475569 \uD14C\uB450\uB9AC)\uB97C \uC9C0\uC6D0\uD574 \uC918. \uC678\uBD80 \uC758\uC874\uC131 \uC5C6\uC774 React \uC0C1\uD0DC\uB85C \uAD6C\uD604\uD574 \uC918."
7238
+ },
7239
+ {
7240
+ id: "ai-context-pill",
7241
+ domain: "ai",
7242
+ category: "ai_input",
7243
+ vibeTag: "\uCCA8\uBD80\uB41C \uCEE8\uD14D\uC2A4\uD2B8\uC640 \uD1A0\uD070 \uC18C\uBAA8\uB7C9\uC744 \uD55C\uB208\uC5D0 \uBCF4\uC5EC\uC8FC\uB294",
7244
+ vibeKeywords: ["\uCEE8\uD14D\uC2A4\uD2B8 \uAC8C\uC774\uC9C0", "\uD1A0\uD070 \uBC14", "\uBB38\uC11C \uD0DC\uADF8 \uCE69", "\uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0", "\uD1A0\uD070 \uC0AC\uC6A9\uB7C9"],
7245
+ titleKo: "\uCEE8\uD14D\uC2A4\uD2B8 \uD1A0\uD070 \uAC8C\uC774\uC9C0",
7246
+ titleEn: "Context Token Gauge",
7247
+ summary: "\uCC38\uC870 \uBB38\uC11C \uCE69\uC744 \uD0DC\uADF8 \uD615\uD0DC\uB85C \uCD94\uAC00\xB7\uC0AD\uC81C\uD558\uBA70 \uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0\uC758 \uD1A0\uD070 \uD55C\uB3C4 \uB300\uBE44 \uC18C\uBAA8\uC728\uC744 \uAC8C\uC774\uC9C0\uB85C \uD45C\uC2DC",
7248
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uCCA8\uBD80 \uBB38\uC11C \uD0DC\uADF8 \uCE69\uACFC \uC2E4\uC2DC\uAC04 \uD1A0\uD070 \uAC8C\uC774\uC9C0\uB97C \uAC16\uCD98 \uCEE8\uD14D\uC2A4\uD2B8 \uAD00\uB9AC UI\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 12px \uBAA8\uC11C\uB9AC\uC640 1px \uD14C\uB450\uB9AC\uC758 \uCE74\uB4DC\uB97C \uAD6C\uC131\uD574 \uC918. \uC0C1\uB2E8\uC5D0\uB294 \uCCA8\uBD80\uB41C \uCEE8\uD14D\uC2A4\uD2B8 \uCE69(\uC608: API_Spec.pdf 1200\uD1A0\uD070, System_Prompt 400\uD1A0\uD070)\uB4E4\uC774 \uAC00\uB85C flex\uB85C \uB098\uC5F4\uB418\uBA70, \uAC01 \uCE69\uC740 24px \uB192\uC774, 11px \uAE00\uC790, X \uC0AD\uC81C \uBC84\uD2BC\uC744 \uAC16\uCDB0 \uD074\uB9AD \uC2DC \uC81C\uAC70\uB418\uAC8C \uD574 \uC918. [\uBB38\uC11C \uCD94\uAC00] \uBC84\uD2BC\uC744 \uD074\uB9AD\uD558\uBA74 \uC0C8\uB85C\uC6B4 \uC0D8\uD50C \uCE69(800\uD1A0\uD070)\uC774 \uCD94\uAC00\uB418\uC5B4\uC57C \uD574. \uD558\uB2E8\uC5D0\uB294 \uCD1D \uD55C\uB3C4 8000\uD1A0\uD070 \uC911 \uD604\uC7AC \uC0AC\uC6A9\uB41C \uD1A0\uD070 \uBE44\uC728\uC744 \uB098\uD0C0\uB0B4\uB294 8px \uB192\uC774\uC758 \uD504\uB85C\uADF8\uB808\uC2A4 \uBC14\uB97C \uB450\uACE0, 70% \uBBF8\uB9CC\uC740 #10b981 \uCD08\uB85D, 70% \uC774\uC0C1 90% \uBBF8\uB9CC\uC740 #f59e0b \uC8FC\uD669, 90% \uC774\uC0C1\uC740 #ef4444 \uBE68\uAC15\uC73C\uB85C \uAC8C\uC774\uC9C0 \uC0C9\uC0C1\uC774 \uBC14\uB00C\uAC8C \uD574 \uC918. \uCE69 \uCD94\uAC00\xB7\uC0AD\uC81C \uC2DC \uAC8C\uC774\uC9C0 \uB108\uBE44\uAC00 200ms \uD2B8\uB79C\uC9C0\uC158\uC73C\uB85C \uBD80\uB4DC\uB7FD\uAC8C \uBCC0\uD574\uC57C \uD574."
7249
+ },
7250
+ /* 2. 스트리밍 & 렌더링 (ai_streaming) */
7251
+ {
7252
+ id: "ai-streaming-text",
7253
+ domain: "ai",
7254
+ category: "ai_streaming",
7255
+ vibeTag: "\uD55C \uAE00\uC790\uC529 \uC2E4\uC2DC\uAC04\uC73C\uB85C \uD0C0\uC774\uD551\uB418\uBA70 \uC0DD\uC131\uB418\uB294",
7256
+ vibeKeywords: ["\uC2A4\uD2B8\uB9AC\uBC0D \uD14D\uC2A4\uD2B8", "\uD384\uC2A4 \uCEE4\uC11C", "\uD0C0\uC774\uD551 \uD6A8\uACFC", "\uC751\uB2F5 \uC911\uB2E8", "\uC2E4\uC2DC\uAC04 \uC0DD\uC131"],
7257
+ titleKo: "\uD384\uC2A4 \uCEE4\uC11C \uC2A4\uD2B8\uB9AC\uBC0D \uD14D\uC2A4\uD2B8",
7258
+ titleEn: "Pulsing Cursor Streaming Text",
7259
+ summary: "\uC751\uB2F5 \uC0DD\uC131 \uC2DC \uAE5C\uBE61\uC774\uB294 \uD384\uC2A4 \uCE90\uB7FF\uACFC \uD568\uAED8 \uAE00\uC790\uAC00 \uD758\uB7EC\uB098\uC624\uBA70 \uC989\uC2DC \uC911\uB2E8\uD560 \uC218 \uC788\uB294 \uCEE8\uD2B8\uB864\uC744 \uC81C\uACF5",
7260
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC2E4\uC2DC\uAC04 \uD14D\uC2A4\uD2B8 \uC2A4\uD2B8\uB9AC\uBC0D \uD0C0\uC774\uD551\uACFC \uAE5C\uBE61\uC774\uB294 \uD384\uC2A4 \uCE90\uB7FF \uD6A8\uACFC\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCE74\uB4DC \uC548\uC5D0\uC11C [\uC751\uB2F5 \uC0DD\uC131] \uBC84\uD2BC\uC744 \uB204\uB974\uBA74 \uBBF8\uB9AC \uC815\uC758\uB41C 150\uC790 \uBD84\uB7C9\uC758 AI \uB2F5\uBCC0\uC774 30ms \uAC04\uACA9\uC73C\uB85C \uD55C \uAE00\uC790\uC529 \uCD9C\uB825\uB418\uAC8C \uD574 \uC918. \uD14D\uC2A4\uD2B8 \uB9E8 \uB05D\uC5D0\uB294 2px \uB108\uBE44, 14px \uB192\uC774\uC758 #6366f1 \uC0C9\uC0C1 \uC218\uC9C1 \uBC14(\uC778\uB77C\uC778 \uCE90\uB7FF)\uAC00 0.8\uCD08 \uC8FC\uAE30\uB85C \uAE5C\uBE61\uC5EC\uC57C \uD574. \uC2A4\uD2B8\uB9AC\uBC0D \uC911\uC5D0\uB294 [\uC751\uB2F5 \uC0DD\uC131] \uBC84\uD2BC\uC774 [\uC751\uB2F5 \uC911\uC9C0] \uBC84\uD2BC(\uBE68\uAC04\uC0C9 \uD14C\uB450\uB9AC\uC640 12px \uD3F0\uD2B8)\uC73C\uB85C \uC804\uD658\uB418\uBA70, \uD074\uB9AD \uC2DC \uC989\uC2DC \uD0C0\uC774\uBA38\uAC00 \uBA48\uCD94\uACE0 \uCE90\uB7FF\uC774 \uC0AC\uB77C\uC838\uC57C \uD574. \uC644\uB8CC\uB418\uAC70\uB098 \uC911\uC9C0\uB41C \uD6C4\uC5D0\uB294 [\uB2E4\uC2DC \uC0DD\uC131] \uBC84\uD2BC\uC73C\uB85C \uCC98\uC74C\uBD80\uD130 \uC7AC\uC0DD\uD560 \uC218 \uC788\uAC8C \uD574 \uC918. \uB77C\uC774\uD2B8 \uBAA8\uB4DC(#1e293b \uAE00\uC790)\uC640 \uB2E4\uD06C \uBAA8\uB4DC(#f8fafc \uAE00\uC790) \uAC00\uB3C5\uC131\uC744 \uBCF4\uC7A5\uD558\uACE0 unmount \uC2DC \uD0C0\uC774\uBA38\uB97C \uC815\uB9AC\uD574 \uC918."
7261
+ },
7262
+ {
7263
+ id: "ai-code-runner",
7264
+ domain: "ai",
7265
+ category: "ai_streaming",
7266
+ vibeTag: "\uC2E0\uD0DD\uC2A4 \uD558\uC774\uB77C\uC774\uD305\uACFC \uACB0\uACFC \uBBF8\uB9AC\uBCF4\uAE30\uB97C \uC624\uAC00\uB294",
7267
+ vibeKeywords: ["\uC778\uD130\uB799\uD2F0\uBE0C \uCF54\uB4DC \uBE14\uB85D", "\uCF54\uB4DC \uD558\uC774\uB77C\uC774\uD2B8", "\uACB0\uACFC \uBBF8\uB9AC\uBCF4\uAE30", "\uC6D0\uD074\uB9AD \uBCF5\uC0AC", "\uC2E4\uD589 \uD0ED"],
7268
+ titleKo: "\uC778\uD130\uB799\uD2F0\uBE0C \uCF54\uB4DC \uBE14\uB85D",
7269
+ titleEn: "Interactive Code Block",
7270
+ summary: "\uC5B8\uC5B4 \uBC30\uC9C0\uC640 \uBCF5\uC0AC \uBC84\uD2BC\uC744 \uAC16\uCD98 \uCF54\uB4DC \uBE14\uB85D\uC5D0\uC11C \uD0ED \uC804\uD658\uC744 \uD1B5\uD574 \uB80C\uB354\uB9C1\uB41C \uCEF4\uD3EC\uB10C\uD2B8 \uACB0\uACFC\uB97C \uBC14\uB85C \uD655\uC778",
7271
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uCF54\uB4DC \uBDF0\uC640 \uBBF8\uB9AC\uBCF4\uAE30(Preview) \uBDF0\uB97C \uD0ED\uC73C\uB85C \uC804\uD658\uD560 \uC218 \uC788\uB294 \uC778\uD130\uB799\uD2F0\uBE0C \uCF54\uB4DC \uBE14\uB85D\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px\uC758 \uC5B4\uB450\uC6B4 \uCE74\uB4DC(#0f172a \uBC30\uACBD, 12px \uBAA8\uC11C\uB9AC, 1px #334155 \uD14C\uB450\uB9AC)\uB97C \uAD6C\uC131\uD574 \uC918. \uC0C1\uB2E8 \uD5E4\uB354(36px \uB192\uC774, \uD328\uB529 12px)\uC5D0\uB294 \uC88C\uCE21\uC5D0 [Code]\uC640 [Preview] 2\uAC1C\uC758 \uD0ED \uBC84\uD2BC(12px \uD3F0\uD2B8, \uC120\uD0DD \uC2DC #6366f1 \uD558\uB2E8 2px \uC778\uB514\uCF00\uC774\uD130)\uACFC TypeScript \uC5B8\uC5B4 \uBC30\uC9C0\uB97C \uB450\uACE0, \uC6B0\uCE21\uC5D0\uB294 [\uBCF5\uC0AC] \uBC84\uD2BC\uC744 \uBC30\uCE58\uD574 \uC918. \uBCF5\uC0AC \uD074\uB9AD \uC2DC 1.5\uCD08\uAC04 [\uBCF5\uC0AC\uB428 \u2713]\uC73C\uB85C \uB77C\uBCA8\uC774 \uC804\uD658\uB418\uC5B4\uC57C \uD574. Code \uD0ED\uC5D0\uC11C\uB294 \uBB38\uBC95 \uD558\uC774\uB77C\uC774\uD2B8 \uC2A4\uD0C0\uC77C\uC774 \uC801\uC6A9\uB41C \uC18C\uC2A4 \uCF54\uB4DC\uB97C \uD45C\uC2DC\uD558\uACE0, Preview \uD0ED\uC73C\uB85C \uC804\uD658\uD558\uBA74 \uD574\uB2F9 \uCF54\uB4DC\uAC00 \uB80C\uB354\uB9C1\uD55C \uC2E4\uC81C \uCE74\uC6B4\uD130 \uBC84\uD2BC UI\uAC00 \uC778\uD130\uB799\uD2F0\uBE0C\uD558\uAC8C \uB3D9\uC791\uD574\uC57C \uD574. \uD0ED \uC804\uD658\uC740 150ms \uD398\uC774\uB4DC \uD6A8\uACFC\uB85C \uBD80\uB4DC\uB7FD\uAC8C \uC5F0\uACB0\uD574 \uC918."
7272
+ },
7273
+ {
7274
+ id: "ai-message-branch",
7275
+ domain: "ai",
7276
+ category: "ai_streaming",
7277
+ vibeTag: "\uB2E4\uC2DC \uC0DD\uC131\uD55C \uB2F5\uBCC0\uB4E4\uC744 \uC790\uC720\uB86D\uAC8C \uB118\uACA8\uBCF4\uB294",
7278
+ vibeKeywords: ["\uBC84\uC804 \uBD84\uAE30", "\uC7AC\uC0DD\uC131 \uD788\uC2A4\uD1A0\uB9AC", "\uC751\uB2F5 \uC2A4\uC704\uCC98", "\uBE0C\uB79C\uCE58 \uB124\uBE44\uAC8C\uC774\uC158", "\uBC84\uC804 \uBE44\uAD50"],
7279
+ titleKo: "\uC751\uB2F5 \uBC84\uC804 \uBD84\uAE30 \uC2A4\uC704\uCC98",
7280
+ titleEn: "Response Branch Switcher",
7281
+ summary: "\uB3D9\uC77C \uD504\uB86C\uD504\uD2B8\uC5D0\uC11C \uC7AC\uC0DD\uC131\uB41C \uC5EC\uB7EC \uB2F5\uBCC0 \uBC84\uC804\uC744 \uC774\uC804/\uB2E4\uC74C \uBC84\uD2BC\uC73C\uB85C \uD0D0\uC0C9\uD558\uBA70 \uBD84\uAE30 \uC774\uB825\uC744 \uAD00\uB9AC",
7282
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC5EC\uB7EC \uBC88 \uC7AC\uC0DD\uC131\uB41C AI \uC751\uB2F5 \uBC84\uC804\uC744 \uB118\uACA8\uBCFC \uC218 \uC788\uB294 \uBD84\uAE30 \uC2A4\uC704\uCC98 UI\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 \uB9D0\uD48D\uC120 \uCE74\uB4DC(12px \uBAA8\uC11C\uB9AC, \uD328\uB529 16px, 1px \uD14C\uB450\uB9AC)\uB97C \uB450\uACE0, \uD558\uB2E8\uC5D0 < 1 / 3 > \uD615\uD0DC\uC758 \uBC84\uC804 \uB124\uBE44\uAC8C\uC774\uC158 \uCEE8\uD2B8\uB864(\uB192\uC774 28px, 11px \uAE00\uC790)\uC744 \uBC30\uCE58\uD574 \uC918. \uC88C\uC6B0 \uD654\uC0B4\uD45C \uBC84\uD2BC\uC744 \uD074\uB9AD\uD558\uBA74 \uBC84\uC804 \uC778\uB371\uC2A4\uAC00 \uBC14\uB00C\uBA74\uC11C \uC774\uC804/\uB2E4\uC74C \uC751\uB2F5 \uD14D\uC2A4\uD2B8(\uC608: \uBC84\uC804 1 \uAC04\uACB0\uD615, \uBC84\uC804 2 \uC0C1\uC138\uD615, \uBC84\uC804 3 \uD45C \uD615\uC2DD)\uB85C 200ms \uC2AC\uB77C\uC774\uB4DC \uC804\uD658\uB418\uC5B4\uC57C \uD574. \uC6B0\uCE21 \uC0C1\uB2E8\uC5D0\uB294 [\uC0C8 \uBC84\uC804 \uC0DD\uC131] \uBC84\uD2BC\uC744 \uB450\uC5B4 \uD074\uB9AD \uC2DC 4\uBC88\uC9F8 \uBC84\uC804\uC774 \uBC30\uC5F4\uC5D0 \uCD94\uAC00\uB418\uACE0 \uC989\uC2DC \uD574\uB2F9 \uBC84\uC804\uC73C\uB85C \uC774\uB3D9\uD558\uAC8C \uD574 \uC918. \uCCAB \uBC84\uC804\uC77C \uB54C\uB294 \uC774\uC804 \uBC84\uD2BC\uC774 \uBE44\uD65C\uC131\uD654\uB418\uACE0 \uB9C8\uC9C0\uB9C9 \uBC84\uC804\uC77C \uB54C\uB294 \uB2E4\uC74C \uBC84\uD2BC\uC774 \uBE44\uD65C\uC131\uD654\uB418\uC5B4\uC57C \uD574."
7283
+ },
7284
+ /* 3. 추론 & 사고과정 (ai_reasoning) */
7285
+ {
7286
+ id: "ai-thinking-accordion",
7287
+ domain: "ai",
7288
+ category: "ai_reasoning",
7289
+ vibeTag: "AI\uC758 \uCD94\uB860 \uB2E8\uACC4\uB97C \uD22C\uBA85\uD558\uAC8C \uD3BC\uCCD0\uBCF4\uB294",
7290
+ vibeKeywords: ["\uC0AC\uACE0 \uACFC\uC815 \uC544\uCF54\uB514\uC5B8", "\uCD94\uB860 \uD1A0\uAE00", "Thinking Log", "CoT \uB2E8\uACC4", "\uACBD\uACFC \uC2DC\uAC04"],
7291
+ titleKo: "\uC0AC\uACE0 \uACFC\uC815 \uC544\uCF54\uB514\uC5B8",
7292
+ titleEn: "Thinking Process Accordion",
7293
+ summary: "\uACBD\uACFC \uC2DC\uAC04 \uBC30\uC9C0\uC640 \uD568\uAED8 AI\uC758 \uB0B4\uBD80 \uCD94\uB860(Chain-of-Thought) \uB85C\uADF8\uB97C \uC811\uACE0 \uD3BC\uCE58\uBA70 \uC810\uAC80",
7294
+ promptSnippet: '\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 AI\uC758 \uCD94\uB860 \uACFC\uC815(Chain-of-Thought)\uC744 \uC811\uACE0 \uD3BC\uCE60 \uC218 \uC788\uB294 \uC544\uCF54\uB514\uC5B8 UI\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 12px \uBAA8\uC11C\uB9AC\uC640 1px \uD14C\uB450\uB9AC\uC758 \uCE74\uB4DC\uB97C \uAD6C\uC131\uD574 \uC918. \uC0C1\uB2E8 \uBC14(\uB192\uC774 40px, \uD328\uB529 12px)\uC5D0\uB294 \uC804\uAD6C \uC544\uC774\uCF58, "\uC0AC\uACE0 \uACFC\uC815 (4\uCD08 \uC18C\uC694)" \uD14D\uC2A4\uD2B8, \uD384\uC2A4 \uC560\uB2C8\uBA54\uC774\uC158 \uB3C4\uD2B8, \uC6B0\uCE21 \uD68C\uC804 \uD654\uC0B4\uD45C\uB97C \uBC30\uCE58\uD574 \uC918. \uC0C1\uB2E8 \uBC14\uB97C \uD074\uB9AD\uD558\uBA74 200ms \uD2B8\uB79C\uC9C0\uC158\uC73C\uB85C \uBCF8\uBB38 \uC601\uC5ED\uC774 \uD3BC\uCCD0\uC9C0\uAC70\uB098 \uB2EB\uD600\uC57C \uD574. \uD3BC\uCCD0\uC9C4 \uBCF8\uBB38(\uD328\uB529 12px, 12px \uD3F0\uD2B8, \uD750\uB9B0 \uD68C\uC0C9 \uD14D\uC2A4\uD2B8)\uC5D0\uB294 3\uB2E8\uACC4 \uC0AC\uACE0 \uD750\uB984("1. \uC9C8\uBB38 \uC758\uB3C4 \uBD84\uC11D \uC644\uB8CC", "2. \uAD00\uB828 \uBB38\uC11C 3\uAC74 \uC778\uB371\uC2F1", "3. \uCD5C\uC885 \uB2F5\uBCC0 \uC694\uC57D \uC791\uC131")\uC774 \uD0C0\uC784\uB77C\uC778 \uD615\uD0DC\uB85C \uCCB4\uD06C \uC544\uC774\uCF58\uACFC \uD568\uAED8 \uD45C\uC2DC\uB418\uC5B4\uC57C \uD574. \uB77C\uC774\uD2B8\uC640 \uB2E4\uD06C \uBAA8\uB4DC\uC5D0 \uB9DE\uCDB0 \uBC30\uACBD(#f8fafc vs #1e293b)\uACFC \uD14C\uB450\uB9AC\uAC00 \uC790\uC5F0\uC2A4\uB7FD\uAC8C \uC804\uD658\uB418\uB3C4\uB85D \uD574 \uC918.'
7295
+ },
7296
+ {
7297
+ id: "ai-source-citation",
7298
+ domain: "ai",
7299
+ category: "ai_reasoning",
7300
+ vibeTag: "\uB2F5\uBCC0 \uC18D \uC778\uC6A9 \uBC88\uD638\uC5D0 \uB9C8\uC6B0\uC2A4\uB97C \uC62C\uB9AC\uBA74 \uADFC\uAC70\uB97C \uBCF4\uC5EC\uC8FC\uB294",
7301
+ vibeKeywords: ["\uCD9C\uCC98 \uC778\uC6A9 \uCE69", "\uC778\uB77C\uC778 \uB808\uD37C\uB7F0\uC2A4", "\uCD9C\uCC98 \uBBF8\uB9AC\uBCF4\uAE30", "\uCC38\uACE0 \uBB38\uD5CC \uD31D\uC624\uBC84", "\uADFC\uAC70 \uCE74\uB4DC"],
7302
+ titleKo: "\uC778\uB77C\uC778 \uCD9C\uCC98 \uC778\uC6A9 \uD31D\uC624\uBC84",
7303
+ titleEn: "Inline Source Citation Popover",
7304
+ summary: "\uD14D\uC2A4\uD2B8 \uC18D \uC778\uC6A9 \uBC30\uC9C0\uC5D0 \uB9C8\uC6B0\uC2A4\uB97C \uC62C\uB9AC\uBA74 \uC6D0\uBB38 \uC0AC\uC774\uD2B8\uC758 \uD30C\uBE44\uCF58, \uC81C\uBAA9, \uBC1C\uCDCC \uC2A4\uB2C8\uD3AB \uCE74\uB4DC\uB97C \uD31D\uC624\uBC84\uB85C \uB178\uCD9C",
7305
+ promptSnippet: '\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uD14D\uC2A4\uD2B8 \uC778\uB77C\uC778 \uCD9C\uCC98 \uBC88\uD638 \uBC43\uC9C0\uC640 \uD638\uBC84 \uD31D\uC624\uBC84 \uCE74\uB4DC\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 AI \uB2F5\uBCC0 \uBB38\uC7A5\uC744 \uD45C\uC2DC\uD558\uACE0, \uBB38\uC7A5 \uB05D\uC5D0 [1], [2] \uD615\uD0DC\uC758 \uC791\uC740 \uC778\uC6A9 \uCE69(\uB192\uC774 18px, \uD328\uB529 \uC88C\uC6B0 6px, 11px \uAE00\uC790, \uB465\uADFC \uBAA8\uC11C\uB9AC 9999px, #6366f1 \uD14D\uC2A4\uD2B8)\uC744 \uBC30\uCE58\uD574 \uC918. \uC778\uC6A9 \uCE69\uC5D0 \uB9C8\uC6B0\uC2A4\uB97C \uC62C\uB9AC\uAC70\uB098 \uD3EC\uCEE4\uC2A4\uD558\uBA74 \uCE69 \uC0C1\uB2E8\uC73C\uB85C 240px \uB108\uBE44\uC758 \uCD9C\uCC98 \uBBF8\uB9AC\uBCF4\uAE30 \uCE74\uB4DC(12px \uBAA8\uC11C\uB9AC, \uD328\uB529 10px, 1px \uD14C\uB450\uB9AC, \uADF8\uB9BC\uC790)\uAC00 150ms \uD398\uC774\uB4DC\uC778\uC73C\uB85C \uB098\uD0C0\uB098\uAC8C \uD574 \uC918. \uD31D\uC624\uBC84 \uCE74\uB4DC \uB0B4\uBD80\uC5D0\uB294 \uBB38\uC11C \uC544\uC774\uCF58, \uCD9C\uCC98 \uC6F9\uD398\uC774\uC9C0 \uC81C\uBAA9("React 19 \uB9C8\uC774\uADF8\uB808\uC774\uC158 \uAC00\uC774\uB4DC"), \uB3C4\uBA54\uC778 URL("react.dev"), \uD575\uC2EC \uBC1C\uCDCC\uBB38 2\uC904\uC774 \uD3EC\uD568\uB418\uC5B4\uC57C \uD574. \uB9C8\uC6B0\uC2A4\uAC00 \uBC97\uC5B4\uB098\uBA74 \uD31D\uC624\uBC84\uAC00 \uBD80\uB4DC\uB7FD\uAC8C \uC0AC\uB77C\uC9C0\uB3C4\uB85D \uD574 \uC918.'
7306
+ },
7307
+ /* 4. 에이전트 & 도구 (ai_agent) */
7308
+ {
7309
+ id: "ai-tool-call-card",
7310
+ domain: "ai",
7311
+ category: "ai_agent",
7312
+ vibeTag: "\uB3C4\uAD6C \uD638\uCD9C \uC778\uC790\uC640 \uC2E4\uD589 \uACB0\uACFC\uB97C \uC2DC\uAC01\uD654\uD558\uB294",
7313
+ vibeKeywords: ["\uB3C4\uAD6C \uC2E4\uD589 \uCE74\uB4DC", "Tool Call", "\uD568\uC218 \uD638\uCD9C", "\uC2E4\uD589 \uC0C1\uD0DC \uBC30\uC9C0", "\uD30C\uB77C\uBBF8\uD130 \uC811\uAE30"],
7314
+ titleKo: "\uC5D0\uC774\uC804\uD2B8 \uB3C4\uAD6C \uC2E4\uD589 \uCE74\uB4DC",
7315
+ titleEn: "Agent Tool Execution Card",
7316
+ summary: "\uAC80\uC0C9\xB7\uACC4\uC0B0 \uB4F1 \uC5D0\uC774\uC804\uD2B8\uAC00 \uD638\uCD9C\uD55C \uB3C4\uAD6C \uC774\uB984, \uC804\uB2EC \uC778\uC790, \uC2E4\uD589 \uC9C4\uD589 \uC2A4\uD53C\uB108 \uBC0F \uACB0\uACFC\uB97C \uB2E8\uACC4\uBCC4 \uCE74\uB4DC\uB85C \uD45C\uC2DC",
7317
+ promptSnippet: '\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 AI \uC5D0\uC774\uC804\uD2B8\uC758 \uB3C4\uAD6C \uC2E4\uD589(Tool Call) \uC0C1\uD0DC\uC640 \uC785\uCD9C\uB825\uC744 \uBCF4\uC5EC\uC8FC\uB294 \uCE74\uB4DC\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 12px \uBAA8\uC11C\uB9AC\uC640 1px \uD14C\uB450\uB9AC\uC758 \uBC15\uC2A4\uB97C \uAD6C\uC131\uD574 \uC918. \uCE74\uB4DC \uD5E4\uB354\uC5D0\uB294 \uB80C\uCE58 \uC544\uC774\uCF58, \uB3C4\uAD6C \uC774\uB984("search_docs"), \uC2E4\uD589 \uC0C1\uD0DC \uBC30\uC9C0(\uC2E4\uD589 \uC911\uC5D0\uB294 \uD30C\uB780 \uC2A4\uD53C\uB108\uC640 "\uC2E4\uD589 \uC911...", \uC644\uB8CC \uC2DC \uCD08\uB85D \uCCB4\uD06C\uC640 "\uC131\uACF5 (120ms)")\uB97C \uD45C\uC2DC\uD574 \uC918. [\uB3C4\uAD6C \uC7AC\uC2E4\uD589] \uBC84\uD2BC\uC744 \uB204\uB974\uBA74 1.2\uCD08\uAC04 \uC2E4\uD589 \uC911 \uC0C1\uD0DC\uB85C \uC804\uD658\uB41C \uD6C4 \uC644\uB8CC \uC0C1\uD0DC\uB85C \uBCF5\uADC0\uD574\uC57C \uD574. \uBCF8\uBB38\uC5D0\uB294 \uC804\uB2EC\uB41C \uC778\uC790 JSON(query: "vibe coding")\uACFC \uBC18\uD658\uB41C \uACB0\uACFC \uC694\uC57D\uC774 \uC544\uCF54\uB514\uC5B8 \uD615\uD0DC\uB85C \uD3EC\uD568\uB418\uC5B4 \uD074\uB9AD \uC2DC \uC811\uAC70\uB098 \uD3BC\uCE60 \uC218 \uC788\uAC8C \uD574 \uC918. \uBAA8\uB178\uC2A4\uD398\uC774\uC2A4 \uAE00\uAF34\uACFC \uB77C\uC774\uD2B8/\uB2E4\uD06C \uD14C\uB9C8 \uBC30\uACBD\uC744 \uC9C0\uC6D0\uD574 \uC918.'
7318
+ },
7319
+ {
7320
+ id: "ai-human-in-the-loop",
7321
+ domain: "ai",
7322
+ category: "ai_agent",
7323
+ vibeTag: "\uC704\uD5D8\uD55C \uC791\uC5C5\uC744 \uC2E4\uD589\uD558\uAE30 \uC804 \uC0AC\uB78C\uC758 \uD655\uC778\uC744 \uAD6C\uD558\uB294",
7324
+ vibeKeywords: ["\uC2B9\uC778 \uAC00\uB4DC\uB808\uC77C", "Human-in-the-loop", "\uC791\uC5C5 \uC2B9\uC778 \uBAA8\uB2EC", "\uC704\uD5D8 \uBA85\uB839 \uCC28\uB2E8", "\uC2E4\uD589 \uD5C8\uC6A9"],
7325
+ titleKo: "\uC5D0\uC774\uC804\uD2B8 \uC2B9\uC778 \uAC00\uB4DC\uB808\uC77C",
7326
+ titleEn: "Agent Approval Guardrail",
7327
+ summary: "\uC911\uC694\uD55C \uD30C\uC77C \uC218\uC815\uC774\uB098 \uC678\uBD80 \uC804\uC1A1 \uC804 \uC704\uD5D8\uB3C4 \uBC30\uC9C0\uC640 \uC601\uD5A5\uB3C4\uB97C \uC548\uB0B4\uD558\uACE0 \uC0AC\uC6A9\uC790\uC758 \uBA85\uC2DC\uC801 \uC2B9\uC778\xB7\uAC70\uC808\uC744 \uC218\uC2E0",
7328
+ promptSnippet: '\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC5D0\uC774\uC804\uD2B8\uC758 \uC7A0\uC7AC\uC801 \uC704\uD5D8 \uC791\uC5C5\uC5D0 \uB300\uD55C Human-in-the-loop \uC2B9\uC778 \uCE74\uB4DC \uC778\uD130\uB799\uC158\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 \uC8FC\uD669\uC0C9 \uACBD\uACE0 \uD14C\uB450\uB9AC(1px #f59e0b)\uC640 12px \uBAA8\uC11C\uB9AC\uC758 \uCE74\uB4DC\uB97C \uBC30\uCE58\uD574 \uC918. \uC0C1\uB2E8\uC5D0\uB294 \uACBD\uACE0 \uC0BC\uAC01\uD615 \uC544\uC774\uCF58, "\uD30C\uC77C \uC0AD\uC81C \uC2B9\uC778 \uC694\uCCAD", \uC704\uD5D8\uB3C4 [High] \uBE68\uAC04 \uBC30\uC9C0\uB97C \uB450\uACE0, \uC911\uC559\uC5D0\uB294 \uC2E4\uD589 \uC608\uC815 \uBA85\uB839("rm -rf ./temp_cache")\uACFC \uC601\uD5A5\uBC1B\uB294 \uD30C\uC77C 3\uAC74\uC758 \uBAA9\uB85D\uC744 \uC548\uB0B4\uD574 \uC918. \uD558\uB2E8\uC5D0\uB294 [\uAC70\uC808\uD558\uAE30] \uBC84\uD2BC(\uD68C\uC0C9 \uBCF4\uB354, 32px \uB192\uC774)\uACFC [\uC2B9\uC778\uD558\uC5EC \uC2E4\uD589] \uBC84\uD2BC(\uC8FC\uD669/\uBE68\uAC15 \uBC30\uACBD, \uD770\uC0C9 \uD14D\uC2A4\uD2B8, 32px \uB192\uC774)\uC744 \uC81C\uACF5\uD574 \uC918. \uC2B9\uC778 \uD074\uB9AD \uC2DC \uCD08\uB85D\uC0C9 "\uC2B9\uC778 \uC644\uB8CC\uB428" \uC0C1\uD0DC\uB85C \uCE74\uB4DC \uB0B4\uC6A9\uC774 \uC804\uD658\uB418\uACE0, \uAC70\uC808 \uD074\uB9AD \uC2DC \uD68C\uC0C9 "\uC791\uC5C5\uC774 \uCDE8\uC18C\uB418\uC5C8\uC2B5\uB2C8\uB2E4"\uB85C \uBCC0\uACBD\uB418\uBA70 \uBCF5\uC6D0 \uBC84\uD2BC\uC744 \uC81C\uACF5\uD574 \uC918.'
7329
+ }
7330
+ ];
7331
+
6636
7332
  // ../../packages/catalog/src/techniques.ts
6637
7333
  var UI_CATEGORIES = [
6638
7334
  { id: "all", label: "\uC804\uCCB4" },
@@ -6667,6 +7363,14 @@ var STYLE_CATEGORIES = [
6667
7363
  { id: "retro", label: "\uB808\uD2B8\uB85C\xB7\uD53D\uC140\xB7CRT" },
6668
7364
  { id: "scifi", label: "SF\xB7\uB3C4\uBA74\xB7\uD31D\uC544\uD2B8" }
6669
7365
  ];
7366
+ var PIXELART_CATEGORIES = [
7367
+ { id: "all", label: "\uC804\uCCB4" },
7368
+ { id: "sprites", label: "\uC2A4\uD504\uB77C\uC774\uD2B8\xB7\uCE90\uB9AD\uD130" },
7369
+ { id: "environments", label: "\uBC30\uACBD\xB7\uD48D\uACBD" },
7370
+ { id: "tiles", label: "\uD0C0\uC77C\xB7\uD328\uD134" },
7371
+ { id: "game_ui", label: "\uAC8C\uC784 UI" },
7372
+ { id: "effects", label: "\uD6A8\uACFC\xB7\uC560\uB2C8\uBA54\uC774\uC158" }
7373
+ ];
6670
7374
  var VIDEO_CATEGORIES = [
6671
7375
  { id: "all", label: "\uC804\uCCB4" },
6672
7376
  { id: "promo", label: "\uB7F0\uCE6D\xB7\uC1FC\uB9B4\xB7\uD64D\uBCF4" },
@@ -6674,19 +7378,30 @@ var VIDEO_CATEGORIES = [
6674
7378
  { id: "infographic", label: "\uB370\uC774\uD130\xB7\uCC28\uD2B8 \uBAA8\uC158" },
6675
7379
  { id: "broadcast", label: "\uBC29\uC1A1\xB7\uD2B8\uB79C\uC9C0\uC158\xB7\uC790\uB9C9" }
6676
7380
  ];
7381
+ var AI_CATEGORIES = [
7382
+ { id: "all", label: "\uC804\uCCB4" },
7383
+ { id: "ai_input", label: "\uC785\uB825\xB7\uD504\uB86C\uD504\uD2B8" },
7384
+ { id: "ai_streaming", label: "\uC2A4\uD2B8\uB9AC\uBC0D\xB7\uB80C\uB354\uB9C1" },
7385
+ { id: "ai_reasoning", label: "\uCD94\uB860\xB7\uC0AC\uACE0\uACFC\uC815" },
7386
+ { id: "ai_agent", label: "\uC5D0\uC774\uC804\uD2B8\xB7\uB3C4\uAD6C" }
7387
+ ];
6677
7388
  var DOMAIN_LABELS = {
6678
7389
  ui: "UI",
6679
7390
  motion: "\uADF8\uB798\uD53D",
6680
7391
  layout: "\uB808\uC774\uC544\uC6C3",
6681
7392
  style: "\uC2A4\uD0C0\uC77C",
6682
- video: "\uBAA8\uC158 \uC601\uC0C1"
7393
+ pixelart: "\uD53D\uC140\uC544\uD2B8",
7394
+ video: "\uBAA8\uC158 \uC601\uC0C1",
7395
+ ai: "AI \uB124\uC774\uD2F0\uBE0C"
6683
7396
  };
6684
7397
  var DOMAIN_CATEGORIES = {
6685
7398
  ui: UI_CATEGORIES,
6686
7399
  motion: MOTION_CATEGORIES,
6687
7400
  layout: LAYOUT_CATEGORIES,
6688
7401
  style: STYLE_CATEGORIES,
6689
- video: VIDEO_CATEGORIES
7402
+ pixelart: PIXELART_CATEGORIES,
7403
+ video: VIDEO_CATEGORIES,
7404
+ ai: AI_CATEGORIES
6690
7405
  };
6691
7406
  var CATEGORY_LABEL_MAP = Object.fromEntries(
6692
7407
  [
@@ -6694,10 +7409,13 @@ var CATEGORY_LABEL_MAP = Object.fromEntries(
6694
7409
  ...MOTION_CATEGORIES,
6695
7410
  ...LAYOUT_CATEGORIES,
6696
7411
  ...STYLE_CATEGORIES,
6697
- ...VIDEO_CATEGORIES
7412
+ ...PIXELART_CATEGORIES,
7413
+ ...VIDEO_CATEGORIES,
7414
+ ...AI_CATEGORIES
6698
7415
  ].map((c) => [c.id, c.label])
6699
7416
  );
6700
7417
  var TECHNIQUES = [
7418
+ ...AI_ADDITIONS,
6701
7419
  ...STARTER_PACK_ADDITIONS,
6702
7420
  ...SIGNATURE_ADDITIONS,
6703
7421
  ...UI_COLLECTION_ADDITIONS,
@@ -6711,6 +7429,8 @@ var TECHNIQUES = [
6711
7429
  ...PATTERN_ADDITIONS,
6712
7430
  ...TACTILE_ADDITIONS,
6713
7431
  ...RETRO_ADDITIONS,
7432
+ ...PIXELART_ADDITIONS,
7433
+ ...PIXELART_EXPANSION_ADDITIONS,
6714
7434
  ...SCIFI_ADDITIONS,
6715
7435
  ...PROMO_ADDITIONS,
6716
7436
  ...KINETIC_AD_ADDITIONS,
@@ -6738,7 +7458,7 @@ var TECHNIQUES = [
6738
7458
  ];
6739
7459
 
6740
7460
  // ../../packages/catalog/src/translations/classification.en.ts
6741
- var DOMAIN_LABELS_EN = { ui: "UI", motion: "Graphics", layout: "Layout", style: "Style", video: "Motion video" };
7461
+ var DOMAIN_LABELS_EN = { ui: "UI", motion: "Graphics", layout: "Layout", style: "Style", pixelart: "Pixel Art", video: "Motion video", ai: "AI Native" };
6742
7462
 
6743
7463
  // ../../packages/catalog/src/translations/additions/base.ts
6744
7464
  var text = (summary, vibeTag, keywords, promptSnippet) => ({ summary, vibeTag, vibeKeywords: keywords.split("|"), promptSnippet });
@@ -10487,6 +11207,334 @@ var EN_RETRO_TECHNIQUES = {
10487
11207
  }
10488
11208
  };
10489
11209
 
11210
+ // ../../packages/catalog/src/translations/additions/pixelart.ts
11211
+ var PIXELART_TRANSLATIONS = {
11212
+ /* 1. Sprites */
11213
+ "px-sprite-walk-cycle": {
11214
+ summary: "A 6-frame walk cycle sprite technique on a fixed 48x48 integer pixel grid with moonlit rim lighting and scrubber controls",
11215
+ vibeTag: "Walking with purposeful strides on a 4-directional pixel grid under night moonlight with billowing cloak",
11216
+ vibeKeywords: ["Walk cycle", "Sprite animation", "Pixel adventurer", "Moonlit walk", "Pixel character", "Dot walk"],
11217
+ promptSnippet: "Create a pixel art sprite walk cycle animation under moonlight in the designated container. The core requirement is a 6-frame cycle covering contact, down and pass positions with moonlit specular highlights on a fixed 48x48 integer pixel grid. In a flex center area with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, place an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. The SVG has 12px rounded corners, overflow hidden, and a #090d16 night sky background where an adventurer with cloak walks past a crescent moon and pine trees. Provide 0.15s interval playback, a frame scrubber slider, and a walking direction flip toggle. Render with native integer rectangle paths without external images or fonts, and maintain manual slider scrubbing under reduced motion."
11218
+ },
11219
+ "px-flame-spirit-idle": {
11220
+ summary: "A floating flame elemental sprite featuring 3 concentric color bands and ascending integer ember sparks",
11221
+ vibeTag: "Floating and flickering with 3 concentric color bands from incandescent core to trailing embers",
11222
+ vibeKeywords: ["Flame spirit", "Floating idle motion", "Ember particles", "Pixel effect", "Dot flame", "Fire wisp"],
11223
+ promptSnippet: "Create a hovering, flickering flame spirit pixel sprite in the designated container. The core requirement is an organic idle loop built from 3 concentric color bands (incandescent core, orange body, deep crimson rim) and rising integer ember particles. In a flex center container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, place an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Inside a 48x48 bounding box, loop a 4-frame flicker cycle at 0.12s intervals and provide a wind sway slider to adjust flame tip deflection and particle velocity. Preserve 12px rounded corners, a dark stage, and crisp stepped pixel contours without blur filters."
11224
+ },
11225
+ "px-item-silhouette-set": {
11226
+ summary: "A 4-item fantasy RPG icon set on a 24x24 integer grid verifying distinct silhouettes, 1px contour contrast and palette breakdown",
11227
+ vibeTag: "Instantly recognizable outer profiles with 1px dark contour for crystal ore, potion, key and chest",
11228
+ vibeKeywords: ["Item silhouette", "Dot item", "1px dark contour", "RPG icons", "Shape identification", "Pixel gear"],
11229
+ promptSnippet: "Create a set of 4 fantasy RPG item sprites with distinct silhouettes and 1px outer contours in the designated container. The core requirement is ensuring crystal ore, elixir flask, magic key and treasure chest each possess immediately recognizable profiles inside a 24x24 integer grid. In a flex center area with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, render an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Provide toggle buttons to instantly switch between dark silhouette shadow mode and full palette mode, along with 12px rounded corners and pedestal display mounts. Ensure 1px dark contour contrast for readability on both light and dark backgrounds."
11230
+ },
11231
+ "px-character-portrait-angles": {
11232
+ summary: "A 3-directional character bust portrait on a 48x48 grid comparing front, 3/4 angle and profile perspectives with consistent proportions",
11233
+ vibeTag: "Maintaining pixel hair clusters and facial proportions across front, 3/4 and profile yaw turns",
11234
+ vibeKeywords: ["3-directional portrait", "Character portrait", "Pixel bust", "Angle switcher", "Dot face", "Dialog portrait"],
11235
+ promptSnippet: "Create a 3-directional pixel character bust portrait for RPG dialog boxes in the designated container. The core requirement is maintaining hair cluster and helmet proportions as the viewpoint turns between 0-degree front, 45-degree three-quarter, and 90-degree profile views on a 48x48 integer pixel grid. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, render an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Support 3 buttons to switch viewpoints and toggles for neutral, smile and determined expressions. Preserve 12px rounded corners and ornamental portrait borders while shading with integer pixel clusters without subpixel interpolation."
11236
+ },
11237
+ /* 2. Environments */
11238
+ "px-parallax-mountain-depth": {
11239
+ summary: "A multi-plane pixel mountain parallax scene shifting moon, far peaks, mid ridge and foreground rocks at integer layer speeds",
11240
+ vibeTag: "Unfolding panoramic depth with integer speed ratios from distant moon and purple peaks to foreground pine ridge",
11241
+ vibeKeywords: ["Pixel parallax", "Dot mountain", "Multi-layer depth", "Integer parallax scroll", "Scenic depth", "Parallax landscape"],
11242
+ promptSnippet: "Create a multi-layer pixel parallax mountain landscape with depth in the designated container. The core requirement is shifting 4 discrete layers (night sky moon and stars, distant purple peaks, mid pine ridge, foreground rocks and fence) at differential speeds of 0.1, 0.3, 0.6, and 1.0. Inside a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, place an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Support horizontal camera panning from 0 to 100 via slider, rounding layer coordinates with Math.round to prevent subpixel antialiasing blur. Maintain 12px rounded corners, a dark frame, and an auto-glide toggle button."
11243
+ },
11244
+ "px-sunset-river-reflection": {
11245
+ summary: "A sunset river landscape with 5 dithered sky bands, horizon sun disk and alternating scanline water ripple reflections",
11246
+ vibeTag: "Glinting golden pixel reflection columns rippling across river waters beneath sunset gradient bands",
11247
+ vibeKeywords: ["Sunset reflection", "River reflection", "Dusk horizon", "Pixel river", "Water shimmer", "Dot sunset"],
11248
+ promptSnippet: "Create a pixel art sunset landscape with river reflection in the designated container. The core requirement is a sunset sky composed of 5 gradient color bands from dusk violet to gold, paired with alternating horizontal scanline wavelets reflecting the horizon sun disk. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, place an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Alternate ripple sparkle pixels at 0.1s intervals, and provide a sun elevation slider to adjust the reflection column width and atmospheric hues. Preserve 12px rounded corners and crisp dithering bands."
11249
+ },
11250
+ "px-rainy-neon-alley": {
11251
+ summary: "A cyberpunk alley scene combining 65-degree diagonal rain streaks, expanding puddle rings and flickering cyan/magenta neon signs",
11252
+ vibeTag: "Neon signs flickering between dark brick facades as diagonal pixel rain streaks trigger expanding puddle ripples",
11253
+ vibeKeywords: ["Neon alley", "Pixel rain", "Rain streak reflection", "Cyberpunk alley", "Dot puddle", "Alley neon"],
11254
+ promptSnippet: "Create a rainy cyberpunk neon alley pixel art landscape in the designated container. The core requirement is rendering 65-degree angled diagonal integer rain streaks between dark brick silhouettes, generating expanding pixel ripple rings upon puddle impact. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, place an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Neon signs in cyan and magenta flicker gently at 0.08s intervals, with a rain intensity slider to select clear, drizzle or downpour. Maintain 12px rounded corners and asphalt neon reflections."
11255
+ },
11256
+ "px-isometric-terrace-citadel": {
11257
+ summary: "A 2:1 dimetric isometric pixel citadel featuring tiered stone courtyards, garden terraces, stairs and directional 3-tone lighting",
11258
+ vibeTag: "3D depth sculpted with 2:1 dimetric blocks, garden terraces and staircases",
11259
+ vibeKeywords: ["Isometric citadel", "2:1 dimetric blocks", "Terrace garden", "Dot architecture", "Axonometric pixel", "Quarter view citadel"],
11260
+ promptSnippet: "Create an isometric citadel pixel art scene using a 2:1 dimetric projection in the designated container. The core requirement is building 3 tiered elevation levels (foundation courtyard, terrace garden, tower keep) with 2 horizontal pixels per 1 vertical pixel. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, place an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Maintain a 3-tone directional lighting model with bright top faces, midtone left walls, and shaded right walls, with level slice controls to toggle tier visibility. Preserve 12px rounded corners and masonry details."
11261
+ },
11262
+ /* 3. Tiles & Patterns */
11263
+ "px-autotile-terrain-bitmask": {
11264
+ summary: "A 4-directional 4-bit neighbor autotiling grid calculating and applying 16 terrain border configurations in real time",
11265
+ vibeTag: "Evaluating 4-way neighbor connections with 4-bit bitmasks to merge edges and corners automatically",
11266
+ vibeKeywords: ["Autotile", "Terrain bitmask", "Tileset autojoin", "Dot terrain", "Tile corners", "Neighbor bitmask"],
11267
+ promptSnippet: "Create a 4-directional autotiling terrain system with 4-bit neighbor bitmask logic in the designated container. The core requirement is updating a 5x4 tile grid of 36x24px cells where clicking cells paints or erases grass, calculating adjacent neighbor bits to select from 16 border tile shapes in real time. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, render an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Accurately evaluate outer corners, straight edges, and isolated islands with clear and island preset buttons. Preserve 12px rounded corners and 44px touch targets."
11268
+ },
11269
+ "px-dither-gradient-ramp": {
11270
+ summary: "An ordered Bayer matrix and checkerboard dithering ramp achieving smooth shading across 4 fixed palette colors without banding",
11271
+ vibeTag: "Checkerboard and Bayer patterns rendering smooth curved shading over a strict 4-color palette",
11272
+ vibeKeywords: ["Dither ramp", "Bayer matrix", "Checkerboard shading", "4-color palette", "Dot gradient", "Ordered dithering"],
11273
+ promptSnippet: "Create an illuminated pixel sphere and gradient ramp using a restricted 4-color palette and ordered dithering in the designated container. The core requirement is transitioning between shadow, midtone, light and highlight using 2x2 checkerboard and 4x4 Bayer matrix dot patterns to avoid banding. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, place an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Provide toggles for 3 pattern modes (checkerboard, Bayer, posterized flat steps) and a light angle slider. Preserve 12px rounded corners and crisp tonal gradations."
11274
+ },
11275
+ "px-seamless-pattern-repeat": {
11276
+ summary: "A 40x36 logical brick tile shown in a 3x3 preview with a horizontal offset for checking seams",
11277
+ vibeTag: "Edge pixels aligning with 1-pixel precision so boundary seams disappear across a 3x3 repetition grid",
11278
+ vibeKeywords: ["Seamless pattern", "Seamless tile", "Pixel wallpaper", "Dot texture", "Toroidal wrap", "Pattern seaming"],
11279
+ promptSnippet: "Create an infinitely repeating seamless dungeon stone pixel pattern in the designated container. The core requirement is aligning edge pixels based on a 40x36px logical tile between a 2x scaled (80x72px) master tile on the left and a 3x3 repeating preview grid (120x108px) on the right with zero seam artifacts. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, render an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. With seam highlighting enabled, draw a red dashed outline on the master tile and green borders around the repeated tiles. The horizontal offset ranges from 0 to 40px. At 40px the pattern completes one cycle and looks the same as at 0px. Preserve 12px rounded corners."
11280
+ },
11281
+ "px-palette-swap-texture": {
11282
+ summary: "An indexed color palette swap technique remapping 5 tone indices across 4 distinct thematic lookups without altering geometry",
11283
+ vibeTag: "Transforming heraldic shield surfaces into forest, magma, frost and void themes by swapping 5-color lookups",
11284
+ vibeKeywords: ["Palette swap", "Indexed color", "LUT lookup", "Dot texture swap", "Surface material switch", "Palette remap"],
11285
+ promptSnippet: "Create a pixel art palette swapping texture system that transforms surfaces by remapping indexed colors in the designated container. The core requirement is maintaining a knight heraldic shield on fixed integer coordinates while remapping its 5 color indices across 4 curated lookup tables (Forest, Magma, Frost, Void). In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, render an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Clicking preset buttons replaces the color table instantly without reallocating vector geometry. Preserve 12px rounded corners."
11286
+ },
11287
+ /* 4. Game UI */
11288
+ "px-hud-health-shield-bar": {
11289
+ summary: "An action RPG health HUD combining half-heart increments, diamond shield pips, dedicated-slot feedback numbers and low-health alarms",
11290
+ vibeTag: "Segmented hearts and diamond shields shuddering under impact with floating damage numbers and danger flash alarms",
11291
+ vibeKeywords: ["Health HUD", "Dot hearts", "Shield bar", "Pixel health bar", "Damage feedback", "RPG status bar"],
11292
+ promptSnippet: "Create an action RPG pixel HUD with hearts and shields in the designated container. The core requirement is laying out 5 segmented hearts and 4 diamond shield pips where damage depletes shields first before consuming hearts in half-unit increments. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, place an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges alongside action buttons. Show feedback for 25 damage, 50 damage, 35 heal and shield recharge in a dedicated area above the icons. Clear it 0.9 seconds after the last action. Shake only for damage and omit shaking when reduced motion is enabled. Show a red warning border when 3 or fewer half-heart units remain. Keep the 12px rounded corners."
11293
+ },
11294
+ "px-inventory-grid-selector": {
11295
+ summary: "A 4x3 RPG backpack grid selector with beveled slots, animated corner brackets, 16x16 item icons and live stat summary panels",
11296
+ vibeTag: "Corner bracket cursors navigating slots to display pixel icons, rarity frames and stats in the inspect panel",
11297
+ vibeKeywords: ["Inventory grid", "Item slots", "Cursor selection bracket", "RPG backpack", "Dot inventory", "Equipment grid"],
11298
+ promptSnippet: "Create a pixel art inventory grid system with slot navigation and an inspect detail card in the designated container. The core requirement is laying out a 4x3 beveled slot grid holding 16x16 item icons (ore, potion, rune key, chest) with a corner bracket cursor updating the stats inspect card upon selection. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, place an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Support mouse clicks and keyboard arrow key navigation with next slot and first slot select buttons. Preserve 12px rounded corners."
11299
+ },
11300
+ "px-rpg-dialog-typewriter": {
11301
+ summary: "A retro RPG dialog box with an aligned speaker portrait and dialogue, an optional typewriter effect and a control for replaying the current line",
11302
+ vibeTag: "Dialogue appearing character by character beside a speaker portrait in a stone frame",
11303
+ vibeKeywords: ["RPG dialog", "Dialog box", "Typewriter dialog", "Stone frame", "Dot text box", "Speaker portrait"],
11304
+ promptSnippet: "Create a retro 16-bit pixel RPG dialog box in the designated container. Use a stone frame up to 264px wide with 12px rounded corners and gold rivets. Vertically center the speaker label and dialogue as a group beside the 54px square portrait. Size the frame to its contents and padding. Fit the hat and beard inside the portrait border, and wrap dialogue to the available width. Show the first line immediately. Add a Next line button with a static arrow that cycles through three lines. Turning on the separate Typewriter effect control starts the current line over and reveals one character every 60ms. Move the speaker\u2019s mouth only while text appears. Enable Replay line only while the effect is on. Show the full line immediately when reduced motion is enabled."
11305
+ },
11306
+ "px-minimap-radar": {
11307
+ summary: "A 24x24 dungeon minimap with directional movement, field-of-view fog-of-war reveals, player cone markers and radar pulses",
11308
+ vibeTag: "Clearing fog of war along field-of-view cones to reveal corridors, player coordinates and treasure blips in real time",
11309
+ vibeKeywords: ["Pixel minimap", "Fog of war", "Dot radar", "Dungeon map", "Field of view", "Minimap radar"],
11310
+ promptSnippet: "Create a pixel dungeon minimap with fog of war and field-of-view cones in the designated container. The core requirement is mapping walls and corridors on a 24x24 integer grid where moving the yellow player blip clears unexplored fog and reveals gold treasure chest dots. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, place an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Provide directional navigation buttons, a fog-of-war toggle, and an expanding sonar radar ping effect. Preserve 12px rounded corners."
11311
+ },
11312
+ /* 5. Effects */
11313
+ "px-integer-grid-explosion": {
11314
+ summary: "A 6-frame arcade impact explosion on a 32x32 integer grid progressing from flash dot to fireball teeth, smoke rings and ash embers",
11315
+ vibeTag: "Shattering from an incandescent spark into jagged fireballs, smoke rings and dispersing embers across 6 arcade frames",
11316
+ vibeKeywords: ["Pixel explosion", "Grid explosion", "6-frame explosion", "Dot fireball", "Arcade explosion", "Impact smoke"],
11317
+ promptSnippet: "Create an arcade-style 6-frame pixel explosion animation in the designated container. The core requirement is an integer keyframe sequence on a 32x32 grid advancing from a central spark dot to an expanding fireball, smoke donut ring, and dispersing 1px ember sparks. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, place an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Provide an explosion trigger button at 0.08s frame timing, a frame scrubber slider, and an impact screen shake toggle. Preserve 12px rounded corners."
11318
+ },
11319
+ "px-slash-afterimage-trail": {
11320
+ summary: "A dynamic katana slash arc with 4 stepped afterimage ghost silhouettes decaying in opacity and hue to convey striking velocity",
11321
+ vibeTag: "4 stepped afterimage ghosts decaying in opacity and cyan-to-navy hues along blade slash arcs",
11322
+ vibeKeywords: ["Slash trail", "Afterimage trail", "Sword arc", "Stepped afterimage", "Dot slash", "Speed trail"],
11323
+ promptSnippet: "Create a sword slash arc and afterimage effect in pixel art in the designated container. The core requirement is trailing a central white cutting edge with 4 stepped afterimage pixel bands that decay in opacity from cyan and azure to deep navy. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, place an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Provide a 0.25s slash trigger button, a slider for afterimage count, and slash angle buttons. Preserve 12px rounded corners and discrete stepped ghost contours."
11324
+ },
11325
+ "px-sparkle-gemstone-shine": {
11326
+ summary: "A faceted gemstone with a diagonal highlight clipped to its outline and a separate sparkle action",
11327
+ vibeTag: "Moving a diagonal highlight inside the gemstone and triggering a separate four-point sparkle",
11328
+ vibeKeywords: ["Gemstone glint", "Faceted jewel", "Dot gemstone", "Cross star sparkle", "Shine sweep", "Facet reflection"],
11329
+ promptSnippet: "Create a faceted pixel gemstone in the designated container. Draw its colored faces and a diagonal highlight in an SVG with viewBox 0 0 264 144. Clip the highlight to the gemstone outline. Provide a shine-position slider from 0 to 40 with an initial value of 20. The Sparkle button shows a four-point star above the gemstone for 0.5 seconds independently of the shine position. Offer ruby, emerald and sapphire color choices, with ruby selected initially. Give the SVG a maximum width of 264px and 12px rounded corners."
11330
+ },
11331
+ "px-mosaic-pixel-wipe-transition": {
11332
+ summary: "A 10-step pixel mosaic transition scaling block sizes from 1px to 32px to obscure Scene A and reconstruct Scene B in reverse",
11333
+ vibeTag: "Pixelating the scene into giant mosaic blocks before sharpening back into a detailed moonlit cavern",
11334
+ vibeKeywords: ["Mosaic transition", "Pixel mosaic wipe", "Resolution wipe", "Dot scene transition", "Block dissolve", "Pixelation transition"],
11335
+ promptSnippet: "Create a pixel mosaic transition effect that quantizes resolution step by step in the designated container. The core requirement is dissolving a sunlit meadow scene into giant blocks scaling from 1px to 32px before reconstructing a moonlit cavern scene over a 10-step sequence. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 20px padding, place an SVG with viewBox 0 0 264 144, width 264px (max 100%), height auto, and shape-rendering crispEdges. Provide a 0.5s auto-transition button, a step scrubber slider from 0 to 10, and a manual Scene A/B swap toggle. Preserve 12px rounded corners."
11336
+ }
11337
+ };
11338
+
11339
+ // ../../packages/catalog/src/translations/additions/pixelart-expansion.ts
11340
+ var PIXELART_EXPANSION_TRANSLATIONS = {
11341
+ /* ============================================================================
11342
+ * 1. Sprites (6 additions)
11343
+ * ============================================================================ */
11344
+ "px-blacksmith-hammer-strike": {
11345
+ summary: "A 4-frame blacksmith forge sprite on a 48x48 integer grid covering overhead windup, anvil impact, 8-spark rebound, and recovery",
11346
+ vibeTag: "Raising a heavy smithing hammer above a glowing forge and striking heated steel to scatter integer spark particles",
11347
+ vibeKeywords: ["Blacksmith forge", "Hammer strike frames", "Anvil sparks", "Pixel smithy", "Attack windup recovery", "Forge animation"],
11348
+ promptSnippet: "Create a blacksmith hammer forge strike pixel sprite in the designated container. The core requirement is a 4-frame cycle on a 48x48 integer pixel grid covering frame 0 overhead windup, frame 1 anvil impact (+2px anvil shake), frame 2 rebound with 8 spark particles, and frame 3 recovery. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start initially at spark rebound frame 2, and provide a 0.14s play/pause toggle, a steel orange vs rune cyan heat toggle, and a 0 to 3 frame scrubber slider. Disable automatic playback and preserve manual slider scrubbing under reduced motion."
11349
+ },
11350
+ "px-jump-arc-poses": {
11351
+ summary: "A 5-phase platformer jump sequence linking crouch anticipation, launch stretch, apex hang-time, descent, landing dust, and shadow scale",
11352
+ vibeTag: "Tracing a 5-step parabolic jump arc from crouch anticipation to billowing apex hang-time and landing dust puffs",
11353
+ vibeKeywords: ["Jump arc poses", "Anticipation crouch", "Apex hang-time", "Landing dust", "Platformer jump", "Parabolic sprite"],
11354
+ promptSnippet: "Create a 5-phase platformer character jump pose pixel sprite in the designated container. The core requirement is coordinating frame 0 anticipation crouch, frame 1 upward launch stretch, frame 2 apex hang-time (height 34px or low-gravity 46px), frame 3 descent fall, and frame 4 landing cushion with dust puffs and ground shadow scaling. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start initially at apex frame 2, and provide a 0.16s play/pause toggle, a normal gravity (34px) vs lunar low-gravity (46px) button, and a 0 to 4 phase slider."
11355
+ },
11356
+ "px-dragon-wing-stroke": {
11357
+ summary: "A hovering wyvern sprite where 4-frame membrane wing strokes drive counter-reactive vertical body bounce and ember breath",
11358
+ vibeTag: "Sweeping articulated dragon wing membranes up and down with counter-reactive torso bounce and fiery breath aura",
11359
+ vibeKeywords: ["Dragon wingbeat", "Wyvern flight loop", "Wing membrane frames", "Boss monster sprite", "Hover counter-bounce", "Pixel dragon"],
11360
+ promptSnippet: "Create a hovering dragon wing stroke pixel sprite over a volcanic canyon in the designated container. The core requirement is a 4-frame cycle (frame 0 upstroke peak, frame 1 power downstroke with updraft lines, frame 2 lowest tuck, frame 3 recovery fold) where the body counter-bounces vertically. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start initially at frame 0 with flame aura enabled, and provide a 0.15s wingbeat play/pause toggle, a flame breath aura toggle, and a 0 to 3 frame slider."
11361
+ },
11362
+ "px-slime-squash-stretch": {
11363
+ summary: "A volume-preserving jelly slime monster deforming between 60x18 squash and 24x48 vertical stretch while shifting its inner nucleus",
11364
+ vibeTag: "Bouncing with conserved pixel volume from a flattened 60px wide puddle to an elongated 48px tall leap",
11365
+ vibeKeywords: ["Slime squash", "Volume preservation", "Jelly monster bounce", "Squash and stretch", "Dot slime", "Elastic deformation"],
11366
+ promptSnippet: "Create a volume-preserving pixel slime squash and stretch demo in the designated container. The core requirement is preserving approximate area across 5 deformation steps from step -2 extreme squash (width 60px, height 18px) through step 0 neutral rest (width 40px, height 30px) to step +2 extreme stretch (width 24px, height 48px) while shifting the inner core and specular highlights. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at deformation step 0, and provide a 0.13s elastic bounce toggle, an Emerald vs Arcane Purple element toggle, and a -2 to 2 deformation slider."
11367
+ },
11368
+ "px-modular-robot-loadout": {
11369
+ summary: "A 48x48 modular mech sprite attaching radar antenna, jetpack booster, and plasma shield accessories onto fixed hardpoint sockets",
11370
+ vibeTag: "Locking radar antenna, jetpack thrusters, and plasma shield modules onto fixed pixel mech hardpoints",
11371
+ vibeKeywords: ["Modular robot", "Part customization", "Pixel mech loadout", "Hardpoint attachment", "Equipment layering", "Sprite paperdoll"],
11372
+ promptSnippet: "Create a modular pixel robot accessory loadout system in the designated container. The core requirement is attaching a head radar antenna, back jetpack booster, and right-arm plasma shield onto fixed hardpoint sockets on a 48x48 integer pixel mech chassis without misalignment. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start with the antenna and jetpack enabled in Titan Blue paint, and provide 3 individual module toggle buttons plus 3 chassis paint preset buttons (Titan Blue, Industrial Yellow, Stealth Crimson)."
11373
+ },
11374
+ "px-directional-archer-draw": {
11375
+ summary: "A directional ranger sprite combining 0-degree, +45-degree upward, and -30-degree downward stepped bow aim with 4 draw and release steps",
11376
+ vibeTag: "Aligning stepped pixel bow geometry, nocked arrows, and release trajectories across +45-degree, 0-degree, and -30-degree targets",
11377
+ vibeKeywords: ["Archer bow draw", "Directional aiming", "Bowstring tension frames", "Arrow release streak", "Pixel ranger", "Aim angle sprite"],
11378
+ promptSnippet: "Create a directional pixel archer sprite controlling aim angle and bowstring tension in the designated container. The core requirement is pivoting the stepped integer bow, nocked arrow, and release trajectory toward +45-degree upward, 0-degree level, and -30-degree downward targets while keeping the feet planted, paired with 4 draw steps (0 ready, 1 half draw, 2 full draw, 3 arrow release streak). In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at 0-degree aim and step 2 full draw, and provide 3 angle buttons (+45\xB0, 0\xB0, -30\xB0) plus a 0 to 3 draw slider."
11379
+ },
11380
+ /* ============================================================================
11381
+ * 2. Environments (6 additions)
11382
+ * ============================================================================ */
11383
+ "px-snow-village-accumulation": {
11384
+ summary: "A winter village scene linking continuously wrapping snowfall flurries (0 to 36 flakes) with stepped snowdrift thickness (0 to 8px)",
11385
+ vibeTag: "Blanketing warm-lit timber cottage roofs and pine branches in thickening pixel snowdrifts as snowfall intensifies",
11386
+ vibeKeywords: ["Snow village accumulation", "Snowfall density", "Winter cottages", "Roof snowdrifts", "Pixel winter scene", "Flurry simulation"],
11387
+ promptSnippet: "Create a snow village pixel landscape where snowfall density and roof accumulation are linked in the designated container. The core requirement is scaling both continuously wrapping falling snowflakes (over a 126px vertical loop) and stepped snowdrift thickness (0px to 8px) on roofs and pines across level 0 clear frost (0 flakes, timer paused), level 1 light flurry (12 flakes, 2px snow), level 2 heavy snow (24 flakes, 5px snow), and level 3 blizzard (36 flakes, 8px snow). In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at accumulation level 2 with warm cottage lights on, and provide a 0.12s snowfall toggle, a window lantern toggle, and a 0 to 3 accumulation slider."
11388
+ },
11389
+ "px-aurora-tundra-bands": {
11390
+ summary: "An arctic tundra nightscape shifting 28 vertical pixel aurora curtain columns in a sinusoidal wave with frozen lake reflections",
11391
+ vibeTag: "Rippling emerald and violet vertical pixel aurora curtains across polar night skies and frozen glacier waters",
11392
+ vibeKeywords: ["Aurora tundra", "Northern lights curtain", "Glacier lake reflection", "Polar night scene", "Vertical band shift", "Pixel aurora"],
11393
+ promptSnippet: "Create an arctic tundra pixel landscape with rippling aurora curtains in the designated container. The core requirement is shifting 28 vertical pixel columns in a stepped sinusoidal wave across phases 0 to 11 while mirroring the glow on the frozen lake below. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at phase 3, and provide a 0.14s wave play/pause toggle, a Green-Violet vs Cyan-Magenta spectrum button, and a 0 to 11 phase slider."
11394
+ },
11395
+ "px-underwater-ruin-caustics": {
11396
+ summary: "A sunken temple environment casting animated diagonal water-surface caustic light bands and rising bubble chains across stone columns",
11397
+ vibeTag: "Intersecting cyan caustic light shafts from rippling ocean waves across sunken temple pillars and seabed ruins",
11398
+ vibeKeywords: ["Underwater caustics", "Sunken temple ruins", "Refracted water light", "Rising pixel bubbles", "Deep sea scene", "Ocean light shafts"],
11399
+ promptSnippet: "Create an underwater ruin pixel landscape illuminated by surface caustic light in the designated container. The core requirement is animating diagonal caustic light bands refracted from surface waves across stone temple pillars and the seabed at 0.15s intervals alongside rising bubble chains. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at caustic intensity 2 with glowing coral enabled, and provide a wave play/pause toggle, a bioluminescent coral toggle, and a 1 to 3 intensity slider."
11400
+ },
11401
+ "px-windmill-wheat-breeze": {
11402
+ summary: "A pastoral hill scene synchronizing 4-phase (8-position) windmill sail rotation speed and 24 golden wheat stalk bending waves to breeze strength",
11403
+ vibeTag: "Turning latticed windmill sails and rippling golden wheat stalks in harmony with the pastoral breeze",
11404
+ vibeKeywords: ["Windmill wheat field", "Golden wheat wave", "Rotating windmill sails", "Pastoral hill scene", "Wind sway environment", "Pixel countryside"],
11405
+ promptSnippet: "Create a windmill hill and golden wheat field pixel landscape responding to wind in the designated container. The core requirement is rotating the 4-blade windmill through 4 rotational phases (8 quantized sail positions) at wind-scaled intervals (0.20s, 0.14s, 0.09s for levels 1 to 3, stopping at 0) while bending 24 foreground wheat stalks proportionally. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at breeze level 2 (0.14s cadence) under a noon sky, and provide a wind play/pause toggle, a Noon vs Dusk sky toggle, and a 0 to 3 breeze strength slider."
11406
+ },
11407
+ "px-lava-channel-flow": {
11408
+ summary: "A volcanic cavern scene moving incandescent magma chevrons and dark cooling basalt crust tiles along a channel and lava waterfall",
11409
+ vibeTag: "Streaming incandescent magma and dark cooling crust plates down a basalt cavern channel and waterfall",
11410
+ vibeKeywords: ["Lava channel flow", "Volcanic magma river", "Cooling basalt crust", "Lava waterfall", "Cavern environment", "Pixel magma"],
11411
+ promptSnippet: "Create a volcanic lava channel and magma waterfall pixel landscape in the designated container. The core requirement is grading the channel from an incandescent yellow-white core to crimson edges while advancing dark cooling crust tiles down the channel and waterfall across flow phases 0 to 5. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at flow phase 2, and provide a 0.13s magma flow play/pause toggle, a cooling crust density toggle, and a 0 to 5 flow phase slider."
11412
+ },
11413
+ "px-forest-canopy-shafts": {
11414
+ summary: "An ancient woodland scene tilting diagonal dithered sunbeam shafts (-20 to 20 degrees) and matching illuminated moss patches on the floor",
11415
+ vibeTag: "Piercing dense oak canopy gaps with angled golden sunbeam shafts that light up mossy forest shrine stones",
11416
+ vibeKeywords: ["Forest canopy shafts", "Woodland god rays", "Canopy light gaps", "Mossy forest shrine", "Pollen mote shimmer", "Pixel sunbeams"],
11417
+ promptSnippet: "Create an ancient forest pixel landscape with sunbeam light shafts piercing the canopy in the designated container. The core requirement is tilting the diagonal light shafts via a sun angle slider (-20 to 20 in steps of 5) while shifting the illuminated moss patches on the forest floor to match. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at 0-degree angle and 3-shaft mode, and provide 3-shaft, 5-shaft, and shrine-focus preset buttons, a pollen shimmer toggle, and a -20 to 20 sun angle slider."
11418
+ },
11419
+ /* ============================================================================
11420
+ * 3. Tiles & Patterns (6 additions)
11421
+ * ============================================================================ */
11422
+ "px-dual-grid-shore-corners": {
11423
+ summary: "A half-tile offset 3x3 dual-grid shoreline over a 4x4 vertex grid joining seamless interior grass and drawing sand only on water boundaries",
11424
+ vibeTag: "Offsetting the render grid by half a tile to resolve smooth coastal corners from 4 terrain vertex bits",
11425
+ vibeKeywords: ["Dual-grid shoreline", "Half-tile offset grid", "Shoreline corner tiles", "4-bit vertex mask", "Autotile alternative", "Pixel coast tiles"],
11426
+ promptSnippet: "Create a half-tile offset Dual-Grid shoreline tile system in the designated container. The core requirement is overlaying a 3x3 rendered dual grid shifted by half a tile over a 4x4 logical terrain vertex grid (grass land vs water), reading each tile\u2019s 4 corner bits (0 to 15) to join adjacent land quadrants with seamless green grass while drawing yellow sand beaches, sea foam, and diagonal saddle bridges (masks 5 and 10) only along water boundaries. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Provide Bay, Saddle, and Atoll terrain preset buttons, a dual-grid guide overlay toggle, and a wave foam step button."
11427
+ },
11428
+ "px-wang-edge-color-tiles": {
11429
+ summary: "A 3x3 2-edge Wang tile board matching North, East, South, and West edge color codes across neighboring dungeon canal tiles",
11430
+ vibeTag: "Matching North, East, South, and West 2-color edge codes across adjacent tiles for seamless dungeon canals",
11431
+ vibeKeywords: ["Wang edge tiles", "Edge color matching", "Aperiodic tiling", "Dungeon canal tiles", "Edge bitmask", "Seamless tile joints"],
11432
+ promptSnippet: "Create a 2-edge color matching Wang Tiles board in the designated container. The core requirement is a 3x3 tile grid where each tile\u2019s North (1), East (2), South (4), and West (8) edges carry a gold canal (1) or blue stone (0) code, and toggling edges on the center tile immediately updates neighboring shared edges to stay matched. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Provide North, East, and South/West edge toggle buttons, a 4-edge bowtie guide toggle, and a reset layout button."
11433
+ },
11434
+ "px-seeded-brick-variants": {
11435
+ summary: "An 8x5 staggered castle wall tilemap using mixed deterministic seed-and-coordinate hashing to scatter cracked, mossy, and recessed dark bricks",
11436
+ vibeTag: "Breaking grid repetition with deterministic coordinate hashes that scatter cracked, mossy, and recessed dark bricks",
11437
+ vibeKeywords: ["Seeded brick variants", "Coordinate hash tiles", "Dungeon wall variation", "Mossy cracked bricks", "Anti-repetition tiles", "Procedural tilemap"],
11438
+ promptSnippet: "Create a seeded hash brick variant tile system in the designated container. The core requirement is using a mixed deterministic integer coordinate-and-seed hash across an 8x5 staggered castle wall grid so Seeds #1, #2, and #3 visibly redistribute plain, cracked, mossy, and recessed dark bricks while identical seed and density values reproduce identical patterns. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Provide Seed 1, 2, and 3 buttons, a seeded vs uniform comparison toggle, and a variant density slider (0 to 100% in steps of 25, initial 50%)."
11439
+ },
11440
+ "px-nine-slice-pixel-frame": {
11441
+ summary: "A 9-slice RPG window frame preserving unstretched 12x12px corner rivets while tiling top, bottom, left, and right border segments",
11442
+ vibeTag: "Resizing RPG dialog frames across width and height while keeping 12x12px gold-riveted corners at crisp 1:1 scale",
11443
+ vibeKeywords: ["9-slice pixel frame", "Nine-patch window", "Corner-preserving resize", "RPG window border", "Scalable tile frame", "UI slice guide"],
11444
+ promptSnippet: "Create a distortion-free 9-Slice pixel frame resize demo in the designated container. The core requirement is keeping the four 12x12px gold-riveted corner blocks at 1:1 integer scale while expanding only the edges and center across widths (108px, 168px, 228px) and heights (48px to 108px in 12px steps). In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at width 168px, height 84px with 9-slice guides on, and provide 3 width preset buttons, a slice guide toggle, and a height slider (48 to 108)."
11445
+ },
11446
+ "px-conveyor-elbow-orientation": {
11447
+ summary: "An industrial conveyor tile system rotating the central elbow turntable to reroute roller chevrons and traveling cargo crates",
11448
+ vibeTag: "Rotating the corner elbow turntable tile to redirect conveyor roller arrows and energy crate cargo paths",
11449
+ vibeKeywords: ["Conveyor elbow tile", "Belt direction switch", "Factory tileset", "Cargo routing track", "Roller animation", "Turntable tile"],
11450
+ promptSnippet: "Create a factory conveyor belt and corner elbow orientation tile demo in the designated container. The core requirement is switching the central elbow tile between right-down corner, down-left corner, and straight pass-through so roller chevrons and the traveling energy crate (steps 0 to 7) immediately follow the selected exit. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at right-down corner and step 3, and provide an elbow rotate button, a forward/reverse toggle, a 0.14s belt run toggle, and a 0 to 7 position slider."
11451
+ },
11452
+ "px-one-way-platform-collision": {
11453
+ summary: "A platformer scaffold tile visualizing its 2px top-only collision edge across upward pass-through, top landing, and down-jump drop modes",
11454
+ vibeTag: "Passing freely upward through wooden scaffold tiles before locking cleanly onto the 2px top collision lip on descent",
11455
+ vibeKeywords: ["One-way platform tile", "Top collision edge", "Pass-through scaffold", "Down-jump drop", "Platformer terrain", "Hitbox raycast"],
11456
+ promptSnippet: "Create a platformer One-Way platform top collision edge demo in the designated container. The core requirement is visualizing the 2px top collision lip to compare upward pass-through (\u0394y < 0), top-surface landing (\u0394y >= 0), and down-jump drop-through across steps 0 to 5. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start in top-landing mode at step 3 with the collision line overlay enabled, and provide 3 trajectory mode buttons, a collision line toggle, and a 0 to 5 trajectory step slider."
11457
+ },
11458
+ /* ============================================================================
11459
+ * 4. Game UI (6 additions)
11460
+ * ============================================================================ */
11461
+ "px-quest-tracker-states": {
11462
+ summary: "A pinned RPG quest tracker HUD updating Relic Key, Altar Seal, and Boss Clear objective checkboxes, progress gauge, and chest unlock",
11463
+ vibeTag: "Checking off quest objectives to fill the progress gauge and pop open the golden reward chest at 3/3 completion",
11464
+ vibeKeywords: ["Quest tracker UI", "Objective checklist", "Mission progress bar", "RPG quest log", "Reward unlock feedback", "HUD tracker"],
11465
+ promptSnippet: "Create a pixel RPG quest tracker HUD that monitors objective states in the designated container. The core requirement is displaying 3 objective rows (1. Relic Key, 2. Altar Seal, 3. Boss Clear) and a top progress bar, unlocking the golden reward chest and COMPLETE banner when all 3 objectives reach 3/3. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at 2/3 with objectives 1 and 2 completed, and provide 3 objective toggle buttons, a pin highlight toggle, and a reset button."
11466
+ },
11467
+ "px-radial-spell-hotbar-cooldown": {
11468
+ summary: "A 4-slot action RPG spell hotbar with distinct pixel spell glyphs, independent per-slot radial cooldown sweeps, percentage readouts, and ready borders",
11469
+ vibeTag: "Sweeping a dark clockwise radial mask across 4 distinct pixel spell icons with per-slot cooldown percentages and ready frames",
11470
+ vibeKeywords: ["Spell hotbar cooldown", "Radial cooldown sweep", "Skill slot bar", "Cooldown timer overlay", "Action RPG hotbar", "Pixel skill icons"],
11471
+ promptSnippet: "Create a 4-slot pixel spell hotbar with independent per-slot radial cooldown sweeps in the designated container. The core requirement is giving Q, W, E, and R distinct pixel spell glyphs (Fireball, Frost Lance, Arcane Nova, Thunder Strike) and independent cooldown states (0 to 100% in 10% steps) on a shared 0.12s cadence so casting or recasting resets only the selected slot to 100% without delaying or migrating already running slots, overlaying a dark clockwise sector mask and percentage readout, and illuminating a gold READY border at 0%. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start with slot W selected (Q 0%, W 60%, E 30%, R 0%), and provide a cast button that ticks the selected slot from 100% to 0% every 0.12s, a slot cycle button, and a 0 to 100% cooldown slider for manual percentage preview of the selected slot."
11472
+ },
11473
+ "px-turn-order-timeline": {
11474
+ summary: "A 4-unit tactical RPG initiative timeline using one displayed queue where Next Turn rotates the active unit to the tail and haste buffs reprioritize the waiting units (#2 to #4) by speed (SPD)",
11475
+ vibeTag: "Advancing unit portrait tokens along an initiative rail and overtaking waiting slots when speed buffs activate",
11476
+ vibeKeywords: ["Turn order timeline", "Initiative bar", "Turn-based combat UI", "Speed buff reorder", "Unit queue rail", "Tactical RPG HUD"],
11477
+ promptSnippet: "Create a 4-unit turn-based RPG initiative timeline bar in the designated container. The core requirement is maintaining one displayed queue of 4 unit cards (Rogue SPD 18, Hero SPD 16, Mage SPD 14, Boss SPD 11) along the top rail as the single source of truth: clicking Next Turn rotates that displayed queue so slot #2 becomes the new active #1 unit and the previous #1 unit moves to the tail (#4), while toggling Mage Haste (SPD 14 to 22) keeps the current #1 unit anchored and reprioritizes the waiting units (#2 to #4) by descending SPD. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Provide a Next Turn button, a Mage haste buff toggle, an SPD readout toggle, and a reset order button."
11478
+ },
11479
+ "px-branching-dialogue-choices": {
11480
+ summary: "A branching dialogue decision tree UI comparing 3 response choices (+15/-5/+25 affinity), confirmation state, and compact route tags",
11481
+ vibeTag: "Selecting between Bold Charge, Bribe Cipher, and Forge Pact dialogue branches to preview affinity shifts and route tags",
11482
+ vibeKeywords: ["Branching dialogue choices", "Decision tree UI", "Affinity meter shift", "RPG dialogue branches", "Outcome preview", "Choice confirmation"],
11483
+ promptSnippet: "Create a branching pixel dialogue choice UI where selections shift story paths and affinity stats in the designated container. Distinct from typewriter text, the core requirement is comparing Gate Warden Kael\u2019s prompt and 3 instant response choices (1. Bold Charge +15, 2. Bribe Cipher -5, 3. Forge Pact +25) alongside a live affinity gauge and compact route tags (BREACH ROUTE, STEALTH ROUTE, ALLIANCE ROUTE) that fit cleanly inside the dialogue panel. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start with choice 1 Bold Charge selected, and provide 3 choice buttons, a confirm/change decision toggle, and an outcome route tag toggle."
11484
+ },
11485
+ "px-equipment-stat-comparison": {
11486
+ summary: "An RPG equipment inspect panel comparing Iron Sword baseline stats (32/28/15) against 3 candidates with signed deltas and gain/loss arrows",
11487
+ vibeTag: "Contrasting equipped and candidate weapons with crisp green upward gain arrows and red downward stat deltas",
11488
+ vibeKeywords: ["Equipment stat comparison", "Stat delta arrows", "Weapon swap preview", "RPG loadout compare", "Delta readout UI", "Pixel stat bars"],
11489
+ promptSnippet: "Create a pixel equipment stat comparison window contrasting equipped and candidate weapons in the designated container. The core requirement is comparing the baseline weapon (Iron Sword: ATK 32, SPD 28, CRIT 15) against 3 candidates (Sunblade 46/22/30, Shadow Dagger 26/44/45, Titan Greatsword 58/12/20) with green signed +delta \u25B2 indicators for gains, red -delta \u25BC for losses, and gray 0 = when equipped. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start with Sunblade selected, and provide 3 candidate buttons plus an equip/restore baseline toggle."
11490
+ },
11491
+ "px-collectible-badge-grid": {
11492
+ summary: "A 3x2 achievement badge codex grid rendering pixel padlock silhouettes on locked slots and 6 distinct pixel crests on unlocked slots",
11493
+ vibeTag: "Unlocking padlocked silhouette slots into 6 distinct golden-framed pixel crest badges as the codex completion bar fills",
11494
+ vibeKeywords: ["Collectible badge grid", "Trophy collection UI", "Badge unlock states", "Completion progress bar", "Pixel crest emblems", "Achievement codex"],
11495
+ promptSnippet: "Create a 3x2 grid collectible pixel achievement badge codex UI in the designated container. The core requirement is rendering locked slots with a pixel padlock silhouette (shackle, body, and keyhole) and unlocked slots with 6 distinct pixel badge glyphs (Flame, Trident, Wing, Shield, Star, Crown) and gold borders while syncing the top progress bar (initially 4/6) and right inspect panel. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Provide a Next Badge button, a toggle lock/unlock button for the selected badge, an Unlock All (6/6) button, and a Reset Default (4/6) button."
11496
+ },
11497
+ /* ============================================================================
11498
+ * 5. Effects & Animation (6 additions)
11499
+ * ============================================================================ */
11500
+ "px-teleport-dissolve-reform": {
11501
+ summary: "A deterministic warp effect dissolving the character on Pad A (0 to 3), beaming across with no body at 4, and reforming on Pad B (5 to 8)",
11502
+ vibeTag: "Dissolving a pixel mage into cyan vertical scanline beams through a stable mask on Pad A and reforming on Pad B",
11503
+ vibeKeywords: ["Teleport pixel dissolve", "Warp reform effect", "Scanline mask transition", "Teleportation beam", "Pixel summon vfx", "Stable dither mask"],
11504
+ promptSnippet: "Create a teleport pixel dissolve and reform effect using a deterministic mask in the designated container. The core requirement is dissolving the character on left Pad A (x=68) across phases 0 to 3, showing only the vertical transfer beam with no character body on either pad at phase 4, and reforming on right Pad B (x=196) across phases 5 to 8 without random jitter. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at phase 3, and provide a Warp button that advances once from 0 to 8 at 0.1s intervals, a Pad A/B instant swap button, and a 0 to 8 phase slider."
11505
+ },
11506
+ "px-stepped-lightning-chain": {
11507
+ summary: "An orthogonal and 45-degree stepped pixel lightning discharge chaining from a Tesla coil across 1 to 3 rune pylons with impact sparks",
11508
+ vibeTag: "Jumping orthogonal and 45-degree stepped cyan-white lightning arcs across 3 rune pylons with contact spark crosses",
11509
+ vibeKeywords: ["Stepped chain lightning", "Chain lightning arc", "Pixel electric discharge", "Rune pylon strike", "Dot lightning vfx", "Stepped bolt path"],
11510
+ promptSnippet: "Create a stepped pixel Chain Lightning effect in the designated container. The core requirement is chaining orthogonal and 45-degree stepped lightning bolts with a cyan outer glow and white core from a left coil across up to 3 rune pylons with cross impact sparks. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start with 3 chained targets, and provide a 0.11s discharge loop toggle cycling 4 arc path variants, a waveform step button, and a 1 to 3 target bounce slider."
11511
+ },
11512
+ "px-directional-crt-glitch": {
11513
+ summary: "A scanline slice CRT glitch effect offsetting 6 clipped emblem bands and separating red and cyan channels along horizontal or vertical axes",
11514
+ vibeTag: "Shearing a pixel cyber emblem across 6 scanline slice bands with red and cyan chromatic aberration offsets",
11515
+ vibeKeywords: ["Directional CRT glitch", "Scanline chromatic split", "Pixel screen noise", "RGB channel split", "Digital slice distortion", "Glitch vfx"],
11516
+ promptSnippet: "Create a directional CRT scanline slice glitch effect in the designated container. The core requirement is splitting a central pixel emblem into 6 clipped slice bands and applying integer pixel offsets plus red (#f43f5e) and cyan (#06b6d4) channel separation across intensity levels 0 to 4 and horizontal or vertical axes. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at intensity 2 in horizontal mode, and provide a 0.12s glitch burst toggle, a horizontal/vertical axis button, and a 0 to 4 intensity slider."
11517
+ },
11518
+ "px-ground-shockwave-rings": {
11519
+ summary: "An isometric ground slam impact propagating dual concentric pixel shockwave rings and lifting floor stone tiles along the wave crest",
11520
+ vibeTag: "Propagating stepped concentric shockwave rings and heaving floor cobblestones outward from a warhammer slam",
11521
+ vibeKeywords: ["Ground shockwave rings", "Boss slam impact", "Concentric pixel wave", "Heaving floor tiles", "Dot impact ring", "Arena shockwave"],
11522
+ promptSnippet: "Create a pixel concentric ground shockwave ring effect triggered by a heavy slam in the designated container. The core requirement is expanding gold and orange isometric rings from the impact center across frames 0 to 6 while lifting floor cobblestone blocks vertically as the wave crest passes. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at mid-expansion frame 3 with tile heave enabled, and provide a Slam button that plays once to frame 6 at 0.09s intervals, a rock heave toggle, and a 0 to 6 frame slider."
11523
+ },
11524
+ "px-ice-freeze-thaw-spread": {
11525
+ summary: "A bidirectional frost transition spreading octagonal ice tiles and crystal columns from a central stone fountain across Manhattan radius 0 to maximum spread radius 5",
11526
+ vibeTag: "Spreading octagonal frost crystal frontiers and rising ice columns outward from a courtyard stone fountain before thawing to water",
11527
+ vibeKeywords: ["Ice freeze spread", "Frost nova transition", "Freeze and thaw vfx", "Ice crystal spires", "Pixel frost magic", "Octagonal frost ring"],
11528
+ promptSnippet: "Create a pixel ice freeze and thaw spread transition effect in the designated container. The core requirement is expanding or receding octagonal frost tiles and rising ice crystal columns around a central stone fountain at cell (4,2) on a 9x5 grid from Manhattan radius 0 liquid water up to maximum spread radius 5 (where the central fountain fully freezes while the four corner cells at Manhattan distance 6 remain outside radius 5). In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at half-frozen radius 3, and provide a Freeze button advancing to radius 5 at 0.11s intervals, a Thaw button receding to radius 0, and a 0 to 5 frost radius slider."
11529
+ },
11530
+ "px-pixel-portal-swirl": {
11531
+ summary: "A time-bounded pixel dimensional portal rotating 4 stepped spiral arms while an 8-rune archway indicator counts down to collapse",
11532
+ vibeTag: "Swirling a 4-arm stepped pixel vortex inside an obsidian arch until the 8 archway runes extinguish and seal the rift",
11533
+ vibeKeywords: ["Pixel portal swirl", "Time-bounded vortex", "Spiral portal vfx", "Rune timer gauge", "Dimensional rift", "Dot warp gate"],
11534
+ promptSnippet: "Create a time-bounded pixel dimensional portal swirl effect in the designated container. The core requirement is rotating 4 stepped pixel spiral arms inside an obsidian archway while an 8-rune indicator along the archway pillars extinguishes one rune per step (8 - step lit) and collapses into a sealed rift at step 8. In a container with 100% width, min-height 188px, and top 44px, left/right 16px, bottom 16px padding, place an SVG with viewBox 0 0 264 144, width 264px, 12px rounded corners, and shape-rendering crispEdges. Start at active step 2 (6 lit runes) in Void Purple, and provide an Open Portal button advancing from 0 to 8 at 0.12s intervals before stopping, a Void Purple vs Rift Emerald palette toggle, and a 0 to 8 timeline slider."
11535
+ }
11536
+ };
11537
+
10490
11538
  // ../../packages/catalog/src/translations/additions/scifi.ts
10491
11539
  var EN_SCIFI_TECHNIQUES = {
10492
11540
  "st-mobius-half-twist-ribbon": {
@@ -10842,6 +11890,70 @@ var EN_VFX_TECHNIQUES = {
10842
11890
  }
10843
11891
  };
10844
11892
 
11893
+ // ../../packages/catalog/src/translations/additions/ai.ts
11894
+ var EN_AI_TECHNIQUES = {
11895
+ "ai-prompt-box": {
11896
+ vibeTag: "Expands smoothly to fit your input length",
11897
+ vibeKeywords: ["prompt box", "autoresize textarea", "model toggle", "prompt submit", "input card"],
11898
+ summary: "Textarea expands smoothly with text length while managing Fast/Pro model switching, file attach, and submission states.",
11899
+ promptSnippet: "Build an interactive prompt input box that expands with text length in the specified area. Inside a container of width 100% and min-height 180px, create a card frame with 1px border (light #e2e8f0, dark #334155), 16px rounded corners, and background (light #ffffff, dark #0f172a). Place a textarea at the top (min-height 48px, max-height 120px, overflow-y auto, resize none, font size 14px, padding 12px) that dynamically adjusts its height based on scrollHeight as the user types. In the bottom toolbar, provide a 2-segment button group on the left to toggle between Fast and Pro modes (height 28px, font size 11px, 8px rounded corners, active state with #6366f1 background and white text) along with an attachment button. On the right, include a circular submit button (diameter 32px, #6366f1 background, white arrow icon) that activates when text is present. Pressing Enter submits the prompt while Shift+Enter inserts a new line. Submitting clears the input and resets height to 48px. Implement with pure React and Tailwind CSS without external libraries."
11900
+ },
11901
+ "ai-slash-command": {
11902
+ vibeTag: "Invokes quick commands on typing a slash",
11903
+ vibeKeywords: ["slash command", "prompt commands", "command popover", "shortcut menu", "keyboard palette"],
11904
+ summary: "Typing a slash opens a floating command palette with keyboard navigation and instant autocomplete.",
11905
+ promptSnippet: "Create a slash command popover interaction triggered by the slash (/) character in the specified area. In a container of width 100% and min-height 180px, provide a single input or textarea. When the user types /, display a 220px wide floating menu above the input with a 150ms fade-in transition. The popover menu displays 4 command options: Summarize (/summarize), Translate (/translate), Generate Code (/code), and Refactor (/refactor), each with height 36px, padding 8px, font size 12px, and an icon. Allow users to navigate the focused item using Up/Down arrow keys, and select an option via Enter key or click to replace / with the command prompt and dismiss the popover. Pressing Escape cancels the popover. Support light (#ffffff background / #e2e8f0 border) and dark (#1e293b background / #475569 border) themes using pure React state without external dependencies."
11906
+ },
11907
+ "ai-context-pill": {
11908
+ vibeTag: "Visualizes attached context and token consumption at a glance",
11909
+ vibeKeywords: ["context gauge", "token bar", "document tag pills", "context window", "token usage"],
11910
+ summary: "Manage referenced document tags and track context window token capacity with a color-coded progress gauge.",
11911
+ promptSnippet: "Create a context management UI featuring attached document tag pills and a real-time token gauge in the specified area. Inside a container of width 100% and min-height 180px, build a card with 12px rounded corners and 1px border. At the top, list attached context chips (e.g., API_Spec.pdf at 1200 tokens, System_Prompt at 400 tokens) in a horizontal flex layout, where each chip has height 24px, font size 11px, and an X button to remove on click. Clicking an [Add Document] button appends a new sample chip (800 tokens). At the bottom, display an 8px tall progress bar showing token consumption relative to the total limit of 8000 tokens. The gauge color changes dynamically: #10b981 green below 70%, #f59e0b amber between 70% and 90%, and #ef4444 red at or above 90%. Adjust gauge width smoothly with a 200ms transition upon adding or removing chips."
11912
+ },
11913
+ "ai-streaming-text": {
11914
+ vibeTag: "Generates text character-by-character in real time",
11915
+ vibeKeywords: ["streaming text", "pulsing cursor", "typing effect", "stop response", "realtime generation"],
11916
+ summary: "Simulate live response streaming with a blinking pulse caret and an immediate stop button.",
11917
+ promptSnippet: "Create a real-time text streaming typing effect with a blinking pulse caret in the specified area. Inside a card of width 100% and min-height 180px, clicking [Generate Response] streams a predefined 150 character AI answer character-by-character at 30ms intervals. At the trailing edge of the text, render an inline caret consisting of a 2px wide, 14px tall vertical bar colored #6366f1 that pulses every 0.8 seconds. While streaming, the button switches to [Stop Generating] with a red border and font size 12px, which immediately clears the timer and hides the caret upon click. Once complete or stopped, allow the user to replay from the start via [Regenerate]. Ensure contrast in light (#1e293b text) and dark (#f8fafc text) modes, and clean up the timer on unmount."
11918
+ },
11919
+ "ai-code-runner": {
11920
+ vibeTag: "Toggles seamlessly between syntax highlighting and live preview",
11921
+ vibeKeywords: ["interactive code block", "code highlight", "result preview", "one-click copy", "execution tab"],
11922
+ summary: "Tabbed code container with language badge, copy confirmation, and interactive component preview.",
11923
+ promptSnippet: "Build an interactive code block that toggles between code view and live preview in the specified area. Inside a dark card of width 100% and min-height 180px (#0f172a background, 12px corners, 1px #334155 border), construct a top header (height 36px, padding 12px). The header features [Code] and [Preview] tab buttons on the left (font size 12px, active tab with a #6366f1 bottom 2px indicator) and a TypeScript badge, with a [Copy] button on the right. Clicking copy temporarily displays [Copied \u2713] for 1.5 seconds. The Code tab renders syntax-highlighted source code, while switching to Preview displays the live interactive counter button rendered by that code. Smoothly transition between tabs using a 150ms fade effect."
11924
+ },
11925
+ "ai-message-branch": {
11926
+ vibeTag: "Navigate freely across regenerated response branches",
11927
+ vibeKeywords: ["branch switcher", "regenerate history", "response switcher", "branch navigation", "version comparison"],
11928
+ summary: "Explore multiple regenerated AI response variations using previous and next pagination buttons.",
11929
+ promptSnippet: "Create a response branch switcher UI allowing users to flip through multiple regenerated AI response versions in the specified area. Inside a container of width 100% and min-height 180px, place a message card (12px corners, padding 16px, 1px border) with a version navigation control formatted as < 1 / 3 > at the bottom (height 28px, font size 11px). Clicking the left or right arrow updates the version index and transitions between response texts (e.g., version 1 concise, version 2 detailed, version 3 tabular) with a 200ms slide animation. Provide a [Generate New Version] button in the top right that appends a 4th version to the array and jumps to it immediately. Disable the previous button on the first version and the next button on the last version."
11930
+ },
11931
+ "ai-thinking-accordion": {
11932
+ vibeTag: "Transparently unfolds the step-by-step AI reasoning",
11933
+ vibeKeywords: ["thinking accordion", "reasoning toggle", "thinking log", "chain of thought", "elapsed time"],
11934
+ summary: "Inspect the AI internal Chain-of-Thought log with an elapsed time badge and collapsible accordion.",
11935
+ promptSnippet: 'Create an accordion UI to inspect the AI Chain-of-Thought reasoning steps in the specified area. Inside a container of width 100% and min-height 180px, build a card with 12px rounded corners and 1px border. The top bar (height 40px, padding 12px) contains a lightbulb icon, "Thinking Process (4s elapsed)" label, a pulsing dot animation, and a rotating arrow on the right. Clicking the bar toggles the body open or closed with a 200ms transition. The expanded body (padding 12px, font size 12px, muted text) reveals a 3-step reasoning timeline ("1. Query intent analyzed", "2. 3 relevant docs indexed", "3. Final answer synthesized") with checkmark icons. Ensure natural background (#f8fafc vs #1e293b) and border adaptation across light and dark modes.'
11936
+ },
11937
+ "ai-source-citation": {
11938
+ vibeTag: "Reveals verifiable source cards upon hovering reference chips",
11939
+ vibeKeywords: ["source citation chips", "inline reference", "source preview", "citation popover", "evidence card"],
11940
+ summary: "Hovering inline citation badges displays a popover card with site favicon, title, and key excerpt.",
11941
+ promptSnippet: 'Create an inline citation badge and hover preview card interaction in the specified area. Inside a container of width 100% and min-height 180px, render an AI answer sentence ending with small citation chips like [1] and [2] (height 18px, horizontal padding 6px, font size 11px, border-radius 9999px, #6366f1 text). Hovering or focusing a citation chip triggers a 240px wide preview popover card (12px corners, padding 10px, 1px border, shadow) above the chip with a 150ms fade-in transition. The popover card includes a document icon, web page title ("React 19 Migration Guide"), domain URL ("react.dev"), and a 2-line snippet excerpt. The popover gracefully disappears when the cursor leaves.'
11942
+ },
11943
+ "ai-tool-call-card": {
11944
+ vibeTag: "Visualizes tool invocation arguments and execution output",
11945
+ vibeKeywords: ["tool execution card", "tool call", "function calling", "execution status badge", "parameter fold"],
11946
+ summary: "Displays tool invocation name, parameters, execution spinner, and returned output in an expandable card.",
11947
+ promptSnippet: 'Build a tool execution card displaying agent tool invocation status and parameters in the specified area. Inside a container of width 100% and min-height 180px, construct a box with 12px corners and 1px border. The card header shows a wrench icon, tool name ("search_docs"), and a status badge (blue spinner with "Running..." during execution, green check with "Success (120ms)" on completion). Clicking a [Re-run Tool] button sets the status to running for 1.2 seconds before returning to completed. The body features a collapsible accordion containing input arguments JSON (query: "vibe coding") and returned output summary. Support monospace typography and light/dark theme backgrounds.'
11948
+ },
11949
+ "ai-human-in-the-loop": {
11950
+ vibeTag: "Requests human confirmation before executing critical operations",
11951
+ vibeKeywords: ["approval guardrail", "human in the loop", "action approval modal", "safety confirmation", "execution consent"],
11952
+ summary: "Prompts users with risk severity badges and impact summaries for explicit approval or rejection before critical actions.",
11953
+ promptSnippet: 'Create a Human-in-the-loop approval card interaction for critical agent operations in the specified area. Inside a container of width 100% and min-height 180px, position a card with an amber warning border (1px #f59e0b) and 12px rounded corners. The top section displays a warning triangle icon, "File Deletion Approval Required" title, and a red [High] risk badge. The center outlines the command to execute ("rm -rf ./temp_cache") and lists 3 affected files. The bottom bar provides a [Reject] button (gray border, height 32px) and an [Approve & Execute] button (amber/red background, white text, height 32px). Clicking approve transitions the card into a green "Operation Approved" state, while clicking reject updates it to a gray "Operation Cancelled" state with an option to restore.'
11954
+ }
11955
+ };
11956
+
10845
11957
  // ../../packages/catalog/src/translations/additions/patterns.ts
10846
11958
  var EN_PATTERN_TECHNIQUES = {
10847
11959
  "zoom-lightbox-gallery": {
@@ -10878,6 +11990,7 @@ var EN_PATTERN_TECHNIQUES = {
10878
11990
 
10879
11991
  // ../../packages/catalog/src/translations/en.ts
10880
11992
  var ENGLISH_TECHNIQUES = {
11993
+ ...EN_AI_TECHNIQUES,
10881
11994
  ...EN_STARTER_PACK_TECHNIQUES,
10882
11995
  ...EN_SIGNATURE_TECHNIQUES,
10883
11996
  ...EN_UI_COLLECTION,
@@ -10908,6 +12021,8 @@ var ENGLISH_TECHNIQUES = {
10908
12021
  ...EN_PHYSICS_TECHNIQUES,
10909
12022
  ...EN_PROMO_TECHNIQUES,
10910
12023
  ...EN_RETRO_TECHNIQUES,
12024
+ ...PIXELART_TRANSLATIONS,
12025
+ ...PIXELART_EXPANSION_TRANSLATIONS,
10911
12026
  ...EN_SCIFI_TECHNIQUES,
10912
12027
  ...EN_SCROLL_TECHNIQUES,
10913
12028
  ...EN_SHADER_TECHNIQUES,
@@ -17682,206 +18797,824 @@ var RETRO_SEARCH_METADATA = {
17682
18797
  "st-cyanotype-contact-photogram": { targets: ["image", "shape"], triggers: ["static"], useCases: { ko: ["\uCCAD\uC0C9 \uCF54\uD305\uBA74\uACFC \uD770 \uC5F4\uC1E0\xB7\uC605\uC740 \uC720\uB9AC \uD754\uC801\uC73C\uB85C \uC2DC\uC544\uB178\uD0C0\uC785 \uC811\uCD09 \uC74C\uD654 \uD45C\uD604\uD558\uAE30"], en: ["Express a cyanotype contact negative with a blue-coated surface, white key and pale glass trace"] }, aliases: { ko: ["\uC2DC\uC544\uB178\uD0C0\uC785 \uD3EC\uD1A0\uADF8\uB7A8", "\uCCAD\uC0C9 \uC811\uCD09 \uC778\uD654", "\uCE74\uBA54\uB77C \uC5C6\uB294 \uC74C\uD654"], en: ["cyanotype photogram", "blue contact print", "camera-free negative"] } }
17683
18798
  };
17684
18799
 
17685
- // ../../packages/catalog/src/search-metadata/additions/scifi.ts
17686
- var SCIFI_SEARCH_METADATA = {
17687
- "st-mobius-half-twist-ribbon": {
17688
- targets: ["shape", "image"],
17689
- triggers: ["static"],
17690
- aliases: { ko: ["\uBAFC\uBE44\uC6B0\uC2A4 \uB760", "\uBC18\uD68C\uC804 \uACE1\uBA74"], en: ["M\xF6bius band", "half-twisted strip"] },
17691
- useCases: { ko: ["\uBC18\uD68C\uC804 \uC811\uD569\uACFC \uD558\uB098\uC758 \uACBD\uACC4\uB97C \uACE0\uC815 \uBCA1\uD130 \uB9AC\uBCF8\uC73C\uB85C \uD45C\uD604\uD558\uAE30"], en: ["Illustrate a half-twist seam and single boundary with a static vector ribbon"] }
18800
+ // ../../packages/catalog/src/search-metadata/additions/pixelart.ts
18801
+ var PIXELART_SEARCH_METADATA = {
18802
+ /* 1. Sprites */
18803
+ "px-sprite-walk-cycle": {
18804
+ targets: ["shape", "scene", "input"],
18805
+ triggers: ["input", "auto"],
18806
+ useCases: {
18807
+ ko: ["48\xD748 \uC815\uC218 \uD53D\uC140 \uACA9\uC790\uC5D0\uC11C \uB2EC\uBE5B \uC544\uB798 6\uD504\uB808\uC784 \uD0D0\uD5D8\uAC00 \uAC77\uAE30 \uB8E8\uD504 \uC7AC\uC0DD \uBC0F \uD504\uB808\uC784 \uD0D0\uC0C9\uD558\uAE30"],
18808
+ en: ["Play and scrub a 6-frame explorer walk cycle with moonlit rim lighting on a 48x48 integer pixel grid"]
18809
+ },
18810
+ aliases: {
18811
+ ko: ["\uAC77\uAE30 \uC560\uB2C8\uBA54\uC774\uC158", "\uB3C4\uD2B8 \uAC77\uAE30", "\uC2A4\uD504\uB77C\uC774\uD2B8 \uC6CC\uD06C"],
18812
+ en: ["walk animation", "dot walk cycle", "sprite walking loop"]
18813
+ }
17692
18814
  },
17693
- "st-koch-fractal-outline": {
17694
- targets: ["shape", "image"],
17695
- triggers: ["static"],
17696
- aliases: { ko: ["\uCF54\uD750 \uB208\uC1A1\uC774 \uC724\uACFD", "\uC0BC\uAC01 \uC790\uAE30\uC720\uC0AC \uACE1\uC120"], en: ["Koch snowflake boundary", "recursive triangular outline"] },
17697
- useCases: { ko: ["\uC138 \uBC88\uC758 \uC120\uBD84 \uBD84\uD560\uB85C \uC790\uAE30\uC720\uC0AC \uC724\uACFD\uACFC \uC721\uBC29 \uB300\uCE6D\uC744 \uC815\uC801\uC73C\uB85C \uD45C\uD604\uD558\uAE30"], en: ["Show self-similar contours and sixfold symmetry using three static subdivision passes"] }
18815
+ "px-flame-spirit-idle": {
18816
+ targets: ["shape", "scene", "input"],
18817
+ triggers: ["input", "auto"],
18818
+ useCases: {
18819
+ ko: ["3\uB2E8\uACC4 \uC0C9 \uB760\uC640 \uC0C1\uC2B9\uD558\uB294 \uBD88\uB625 \uD30C\uD2F0\uD074\uB85C \uBD80\uC720\uD558\uB294 \uD53D\uC140 \uBD88\uAF43 \uC815\uB839 \uB8E8\uD504 \uC5F0\uCD9C\uD558\uAE30"],
18820
+ en: ["Create a floating pixel flame spirit loop with 3 concentric color bands and ascending ember sparks"]
18821
+ },
18822
+ aliases: {
18823
+ ko: ["\uBD88\uAF43 \uC815\uB839", "\uD654\uC5FC \uB300\uAE30\uBAA8\uC158", "\uB3C4\uD2B8 \uD30C\uD2F0\uD074 \uC815\uB839"],
18824
+ en: ["flame elemental", "fire spirit idle", "pixel ember wisp"]
18825
+ }
17698
18826
  },
17699
- "st-tetrahedral-ball-stick": {
17700
- targets: ["shape", "image"],
17701
- triggers: ["static"],
17702
- aliases: { ko: ["\uBA54\uD14C\uC778 \uBCFC\uC564\uC2A4\uD2F1", "\uC815\uC0AC\uBA74\uCCB4 \uC6D0\uC790 \uBAA8\uD615"], en: ["methane ball-and-stick", "tetrahedral atomic model"] },
17703
- useCases: { ko: ["\uD0C4\uC18C\uC640 \uB124 \uC218\uC18C\uC758 \uC774\uC0C1\uC801\uC778 \uC815\uC0AC\uBA74\uCCB4 \uBC30\uCE58\uB97C \uAD6C\uC640 \uB9C9\uB300\uB85C \uC815\uC801\uC73C\uB85C \uC2DC\uAC01\uD654\uD558\uAE30"], en: ["Visualize an ideal tetrahedral arrangement of carbon and four hydrogens using static spheres and sticks"] }
18827
+ "px-item-silhouette-set": {
18828
+ targets: ["image", "shape", "input"],
18829
+ triggers: ["input"],
18830
+ useCases: {
18831
+ ko: ["24\xD724 \uC815\uC218 \uACA9\uC790\uC5D0\uC11C \uC6D0\uC11D\xB7\uBB3C\uC57D\xB7\uC5F4\uC1E0\xB7\uC0C1\uC790\uC758 1px \uC678\uACFD\uC120 \uC2E4\uB8E8\uC5E3 \uC2DD\uBCC4\uC131\uACFC \uD314\uB808\uD2B8 \uAC80\uC99D\uD558\uAE30"],
18832
+ en: ["Verify silhouette readability and palette breakdown for crystal ore, potion, key and chest on a 24x24 grid"]
18833
+ },
18834
+ aliases: {
18835
+ ko: ["\uC544\uC774\uD15C \uC2E4\uB8E8\uC5E3", "\uB3C4\uD2B8 \uC544\uC774\uD15C \uC138\uD2B8", "1\uD53D\uC140 \uC678\uACFD\uC120 \uC544\uC774\uCF58"],
18836
+ en: ["item silhouette set", "pixel RPG icons", "1px contour icons"]
18837
+ }
17704
18838
  },
17705
- "st-third-angle-multiview": {
17706
- targets: ["image", "shape"],
17707
- triggers: ["static"],
17708
- aliases: { ko: ["\uC81C3\uAC01\uBC95 \uC0BC\uBA74\uB3C4", "\uC815\uB82C\uB41C \uC815\uD22C\uC0C1 \uB3C4\uBA74"], en: ["third-angle multiview", "aligned orthographic views"] },
17709
- useCases: { ko: ["\uAC19\uC740 \uACC4\uB2E8 \uBD80\uD488\uC758 \uC0C1\uBA74\xB7\uC815\uBA74\xB7\uC6B0\uCE21\uBA74 \uCE58\uC218 \uAD00\uACC4\uB97C \uC815\uC801\uC778 \uD22C\uC0C1\uC120\uC73C\uB85C \uBCF4\uC5EC \uC8FC\uAE30"], en: ["Show dimensional relationships between top, front and right views of one stepped part using static projection guides"] }
18839
+ "px-character-portrait-angles": {
18840
+ targets: ["image", "shape", "input"],
18841
+ triggers: ["input"],
18842
+ useCases: {
18843
+ ko: ["\uC815\uBA74\xB7\uBC18\uCE21\uBA74\xB7\uCE21\uBA74 3\uBC29\uD5A5 \uD53D\uC140 \uCD08\uC0C1\uD654\uC758 \uC774\uBAA9\uAD6C\uBE44 \uBE44\uB840\uC640 \uD45C\uC815 \uBCC0\uD654 \uBE44\uAD50\uD558\uAE30"],
18844
+ en: ["Compare facial proportions and expression changes across front, 3/4 and profile pixel portraits"]
18845
+ },
18846
+ aliases: {
18847
+ ko: ["3\uBC29\uD5A5 \uCD08\uC0C1\uD654", "\uB300\uD654\uCC3D \uD3EC\uD2B8\uB808\uC774\uD2B8", "\uD53D\uC140 \uB450\uC0C1"],
18848
+ en: ["3-way portrait", "dialog bust angles", "character face angles"]
18849
+ }
17710
18850
  },
17711
- "st-penrose-impossible-tribar": {
17712
- targets: ["shape", "image"],
17713
- triggers: ["static"],
17714
- aliases: { ko: ["\uD39C\uB85C\uC988 \uC0BC\uAC01\uD615", "\uBD88\uAC00\uB2A5 \uD2B8\uB77C\uC774\uBC14"], en: ["Penrose triangle", "impossible tribar"] },
17715
- useCases: { ko: ["\uC138 \uBCF4\uC758 \uBAA8\uC21C\uB41C \uC55E\uB4A4 \uC5F0\uACB0\uC744 \uC815\uC801\uC778 \uBCA1\uD130 \uCC29\uC2DC\uB85C \uBCF4\uC5EC \uC8FC\uAE30"], en: ["Show contradictory depth joins between three beams as a static vector illusion"] }
18851
+ /* 2. Environments */
18852
+ "px-parallax-mountain-depth": {
18853
+ targets: ["background", "scene", "input"],
18854
+ triggers: ["input", "pointer-move"],
18855
+ useCases: {
18856
+ ko: ["\uB2EC\xB7\uC6D0\uACBD \uC0B0\uB9E5\xB7\uC911\uACBD \uB2A5\uC120\xB7\uADFC\uACBD \uBC14\uC704 4\uAC1C \uCE35\uC758 \uC815\uC218 \uC2DC\uCC28 \uC2A4\uD06C\uB864\uB85C \uAE4A\uC774\uAC10 \uAD6C\uD604\uD558\uAE30"],
18857
+ en: ["Implement atmospheric depth with 4 integer parallax layers across moon, peaks, ridge and foreground rocks"]
18858
+ },
18859
+ aliases: {
18860
+ ko: ["\uD53D\uC140 \uD30C\uB784\uB799\uC2A4", "\uC0B0\uB9E5 \uC2DC\uCC28 \uC2A4\uD06C\uB864", "\uB3C4\uD2B8 \uB2E4\uCE35 \uBC30\uACBD"],
18861
+ en: ["pixel parallax scenery", "mountain parallax scroll", "layered dot landscape"]
18862
+ }
17716
18863
  },
17717
- "st-hidden-line-isometric": {
17718
- targets: ["image", "shape"],
17719
- triggers: ["static"],
17720
- aliases: { ko: ["\uC228\uC740 \uAD6C\uBA4D \uD30C\uC120 \uB3C4\uBA74", "\uC740\uC120 \uC81C\uB3C4"], en: ["hidden-edge drafting", "dashed concealed-hole drawing"] },
17721
- useCases: { ko: ["\uBD88\uD22C\uBA85 \uBE14\uB85D\uC758 \uBCF4\uC774\uB294 \uAD6C\uBA4D \uC785\uAD6C\uC640 \uC228\uC740 \uBCBD\uC744 \uC2E4\uC120\xB7\uD30C\uC120\uC73C\uB85C \uAD6C\uBCC4\uD558\uAE30"], en: ["Distinguish a visible hole mouth from concealed walls in an opaque block using solid and dashed lines"] }
18864
+ "px-sunset-river-reflection": {
18865
+ targets: ["background", "scene", "input"],
18866
+ triggers: ["input"],
18867
+ useCases: {
18868
+ ko: ["\uB514\uB354\uB9C1 \uB178\uC744 \uD558\uB298\uACFC \uC218\uD3C9\uC120 \uD0DC\uC591, \uAD50\uCC28 \uC8FC\uC0AC\uC120 \uAC15\uBB3C \uBC18\uC0AC \uADA4\uC801 \uD45C\uD604\uD558\uAE30"],
18869
+ en: ["Render a dithered sunset sky, horizon sun disk, and scanline river ripple reflection trail"]
18870
+ },
18871
+ aliases: {
18872
+ ko: ["\uC11D\uC591 \uAC15\uBB3C \uBC18\uC0AC", "\uB178\uC744 \uC218\uBA74 \uC77C\uB801\uC784", "\uD53D\uC140 \uC77C\uBAB0"],
18873
+ en: ["sunset water reflection", "river glow scanline", "pixel sunset horizon"]
18874
+ }
17722
18875
  },
17723
- "st-pcb-copper-traces": {
17724
- targets: ["image", "scene"],
17725
- triggers: ["static"],
17726
- aliases: { ko: ["\uC778\uC1C4\uD68C\uB85C \uAD6C\uB9AC \uD2B8\uB799", "PCB \uBC30\uC120 \uD328\uD134"], en: ["printed-circuit copper tracks", "PCB routing pattern"] },
17727
- useCases: { ko: ["\uCE69 \uD540\uC5D0\uC11C \uBE44\uC544\uB85C \uC774\uC5B4\uC9C0\uB294 \uAD6C\uB9AC \uD2B8\uB799\uACFC \uAE30\uD310\uC744 \uC815\uC801\uC778 \uC7A5\uBE44 \uC774\uBBF8\uC9C0\uB85C \uD45C\uD604\uD558\uAE30"], en: ["Illustrate a static equipment board with copper tracks connecting chip pins to vias"] }
18876
+ "px-rainy-neon-alley": {
18877
+ targets: ["scene", "background", "input"],
18878
+ triggers: ["input", "auto"],
18879
+ useCases: {
18880
+ ko: ["\uC0AC\uC120 \uBE57\uC904\uAE30\uC640 \uBB3C\uC6C5\uB369\uC774 \uD30C\uBB38, \uC2DC\uC548\xB7\uB9C8\uC820\uD0C0 \uBC1C\uAD11 \uB124\uC628 \uAC04\uD310\uC758 \uC0AC\uC774\uBC84 \uACE8\uBAA9 \uC5F0\uCD9C\uD558\uAE30"],
18881
+ en: ["Direct a cyberpunk alley with diagonal rain streaks, puddle ripples, and glowing neon signs"]
18882
+ },
18883
+ aliases: {
18884
+ ko: ["\uB124\uC628 \uACE8\uBAA9", "\uD53D\uC140 \uBE44 \uC5F0\uCD9C", "\uC0AC\uC774\uBC84\uD391\uD06C \uACE8\uBAA9"],
18885
+ en: ["neon alley", "pixel rain puddle", "cyberpunk backstreet"]
18886
+ }
17728
18887
  },
17729
- "st-opart-pinched-checker": {
17730
- targets: ["image", "background"],
17731
- triggers: ["static"],
17732
- aliases: { ko: ["\uC911\uC559 \uC555\uCD95 \uCCB4\uD06C \uD328\uD134", "\uD540\uCE58 \uCCB4\uCEE4 \uCC29\uC2DC"], en: ["center-compressed checker pattern", "pinched checker illusion"] },
17733
- useCases: { ko: ["\uCCB4\uD06C \uC5F4 \uD3ED\uC744 \uC911\uC559\uC73C\uB85C \uC881\uD600 \uC811\uD788\uB294 \uD3C9\uBA74 \uAC19\uC740 \uC815\uC801 \uAE30\uD558 \uCC29\uC2DC \uB9CC\uB4E4\uAE30"], en: ["Suggest a folding plane with a static geometric illusion of checker columns narrowing toward the center"] }
18888
+ "px-isometric-terrace-citadel": {
18889
+ targets: ["scene", "shape", "input"],
18890
+ triggers: ["input"],
18891
+ useCases: {
18892
+ ko: ["2:1 \uD22C\uC601 \uB514\uBA54\uD2B8\uB9AD \uAC01\uB3C4\uB85C \uAE30\uB2E8\xB7\uC815\uC6D0 \uD14C\uB77C\uC2A4\xB7\uD0D1\uB8E8\uC758 \uCE35\uBCC4 \uC785\uCCB4 \uAD6C\uC870 \uC870\uB9DD\uD558\uAE30"],
18893
+ en: ["View 3 tiered elevations of foundation, terrace garden and tower keep in 2:1 dimetric isometric projection"]
18894
+ },
18895
+ aliases: {
18896
+ ko: ["\uC544\uC774\uC18C\uBA54\uD2B8\uB9AD \uC131\uCC44", "2:1 \uD22C\uC601 \uD53D\uC140", "\uD14C\uB77C\uC2A4 \uC815\uC6D0 \uCFFC\uD130\uBDF0"],
18897
+ en: ["isometric citadel", "2:1 dimetric pixel", "quarter view castle terrace"]
18898
+ }
17734
18899
  },
17735
- "st-xray-device-shell": {
17736
- targets: ["image", "scene"],
17737
- triggers: ["static"],
17738
- aliases: { ko: ["\uBC18\uD22C\uBA85 \uC6D0\uD1B5 \uC7A5\uBE44", "\uB0B4\uBD80 \uCF54\uC77C \uD22C\uC2DC"], en: ["see-through cylindrical device", "transparent-shell coil illustration"] },
17739
- useCases: { ko: ["\uC605\uC740 \uC6D0\uD1B5 \uC678\uD53C\uC640 \uB0B4\uBD80 \uCD95\xB7\uCF54\uC77C\uC744 \uACB9\uCE5C \uC815\uC801 \uC7A5\uBE44 \uD22C\uC2DC \uC774\uBBF8\uC9C0 \uB9CC\uB4E4\uAE30"], en: ["Create a static see-through device illustration layering a faint cylindrical shell with its internal shaft and coils"] }
18900
+ /* 3. Tiles & Patterns */
18901
+ "px-autotile-terrain-bitmask": {
18902
+ targets: ["list", "shape", "input"],
18903
+ triggers: ["input"],
18904
+ useCases: {
18905
+ ko: ["5\xD74 \uACA9\uC790\uC5D0\uC11C \uC140\uC744 \uD074\uB9AD\uD574 \uD480\uBC2D\uC744 \uCE60\uD560 \uB54C \uC0C1\uD558\uC88C\uC6B0 4\uBE44\uD2B8 \uB9C8\uC2A4\uD06C\uB85C 16\uC885 \uD0C0\uC77C \uC5F0\uACB0\uD558\uAE30"],
18906
+ en: ["Paint terrain on a 5x4 grid and resolve 16 border tile shapes with 4-way neighbor bitmasks"]
18907
+ },
18908
+ aliases: {
18909
+ ko: ["\uC624\uD1A0\uD0C0\uC77C \uBE44\uD2B8\uB9C8\uC2A4\uD06C", "4\uBC29\uD5A5 \uC9C0\uD615 \uC5F0\uACB0", "\uD0C0\uC77C\uC14B \uBAA8\uC11C\uB9AC \uACB0\uD569"],
18910
+ en: ["autotile bitmask", "4-way terrain connection", "tileset auto border"]
18911
+ }
17740
18912
  },
17741
- "st-holographic-contour-terrain": {
17742
- targets: ["scene", "image"],
17743
- triggers: ["static"],
17744
- aliases: { ko: ["\uCE35\uCE35\uC774 \uC313\uC778 \uC9C0\uD615 \uB4F1\uACE0\uC120", "\uD22C\uC0AC\uB300 \uB4F1\uACE0\uC120 \uC9C0\uD615"], en: ["layered contour terrain", "projected contour relief"] },
17745
- useCases: { ko: ["\uB9C8\uB984\uBAA8 \uBC1B\uCE68 \uC704\uB85C \uC904\uC5B4\uB4DC\uB294 \uB4F1\uACE0\uC120\uC744 \uC313\uC544 \uC815\uC801\uC778 SF \uC9C0\uD615 \uD22C\uC0AC\uB97C \uD45C\uD604\uD558\uAE30"], en: ["Suggest a static sci-fi terrain projection by stacking shrinking contours above a diamond platform"] }
17746
- }
17747
- };
17748
-
17749
- // ../../packages/catalog/src/search-metadata/additions/scroll.ts
17750
- var SCROLL_SEARCH_METADATA = {
17751
- "ly-sticky-group-headers": { "targets": ["list"], "triggers": ["input"], "useCases": { "ko": ["\uC0C9\uC0C1 \uACAC\uBCF8\uC744 \uADF8\uB8F9\uBCC4\uB85C \uD0D0\uC0C9\uD558\uBA74\uC11C \uD604\uC7AC \uADF8\uB8F9 \uC81C\uBAA9 \uC720\uC9C0"], "en": ["Browse grouped color swatches while retaining the current section heading"] }, "aliases": { "ko": ["\uC2A4\uD2F0\uD0A4 \uADF8\uB8F9 \uC81C\uBAA9", "\uBC00\uC5B4\uB0B4\uB294 \uBAA9\uB85D \uD5E4\uB354"], "en": ["sticky section headers", "push-off group headers"] } },
17752
- "ly-frozen-table-axes": { "targets": ["list", "panel"], "triggers": ["input"], "useCases": { "ko": ["\uAC00\uB85C\xB7\uC138\uB85C\uB85C \uD45C\uB97C \uD0D0\uC0C9\uD558\uBA74\uC11C \uC5F4 \uC81C\uBAA9\uACFC \uCCAB \uC5F4 \uC774\uB984 \uC720\uC9C0"], "en": ["Explore a table on both axes while retaining column headers and first-column row names"] }, "aliases": { "ko": ["\uC591\uCD95 \uC2A4\uD2F0\uD0A4 \uD45C", "\uD5E4\uB354\uC640 \uCCAB \uC5F4 \uACE0\uC815"], "en": ["frozen table header and column", "two-axis sticky table"] } },
17753
- "ly-scroll-edge-shadows": { "targets": ["list"], "triggers": ["input"], "useCases": { "ko": ["\uBB38\uC11C \uBAA9\uB85D\uC5D0\uC11C \uC544\uC9C1 \uB0A8\uC740 \uC704\uC544\uB798 \uCF58\uD150\uCE20 \uBC29\uD5A5\uC744 CSS \uADF8\uB9BC\uC790\uB85C \uD45C\uC2DC"], "en": ["Use CSS shadows to indicate remaining content above or below a document list"] }, "aliases": { "ko": ["\uC2A4\uD06C\uB864 \uAC00\uC7A5\uC790\uB9AC \uADF8\uB9BC\uC790", "\uB85C\uCEEC \uBC30\uACBD \uADF8\uB9BC\uC790"], "en": ["scroll edge shadows", "local background scroll shadows"] } },
17754
- "ly-independent-scroll-panes": { "targets": ["list", "panel"], "triggers": ["input"], "useCases": { "ko": ["\uB450 \uBAA9\uB85D\uC758 \uC77D\uB358 \uC704\uCE58\uB97C \uAC01\uAC01 \uC720\uC9C0\uD558\uBA70 \uB098\uB780\uD788 \uD0D0\uC0C9"], "en": ["Browse two lists side by side while each retains its own reading position"] }, "aliases": { "ko": ["\uB3C5\uB9BD \uC2A4\uD06C\uB864 \uD328\uB110", "\uBD84\uD560 \uC2A4\uD06C\uB864 \uBAA9\uB85D"], "en": ["independent scroll panes", "split scroll regions"] } },
17755
- "ly-nested-axis-collections": { "targets": ["list", "image", "panel"], "triggers": ["input"], "useCases": { "ko": ["\uC138\uB85C \uCEEC\uB809\uC158\uACFC \uAC01 \uAC00\uB85C \uC791\uD488 \uC120\uBC18\uC744 \uB3C5\uB9BD\uC801\uC73C\uB85C \uD0D0\uC0C9"], "en": ["Browse vertical collections and each horizontal artwork shelf independently"] }, "aliases": { "ko": ["\uC911\uCCA9 \uCD95 \uC2A4\uD06C\uB864", "\uAC00\uB85C \uC791\uD488 \uC120\uBC18"], "en": ["nested-axis scroll shelves", "horizontal collection shelves"] } },
17756
- "ly-reading-scroll-progress": { "targets": ["text", "panel"], "triggers": ["input"], "useCases": { "ko": ["\uC2E4\uC81C \uBB38\uC11C \uC2A4\uD06C\uB864 \uBC94\uC704 \uC548\uC5D0\uC11C \uD604\uC7AC \uC704\uCE58\uB97C \uC9C4\uD589\uC120\uC73C\uB85C \uD45C\uC2DC"], "en": ["Show the current position within a real document scroll range"] }, "aliases": { "ko": ["\uBB38\uC11C \uC2A4\uD06C\uB864 \uC9C4\uD589\uC120", "\uC77D\uAE30 \uC704\uCE58 \uC9C4\uD589 \uD45C\uC2DC"], "en": ["document scroll progress", "reading position bar"] } },
17757
- "ly-proportional-scroll-sync": { "targets": ["text", "panel"], "triggers": ["input"], "useCases": { "ko": ["\uAE38\uC774\uAC00 \uB2E4\uB978 \uB450 \uBB38\uC11C\uC758 \uC2E4\uC81C \uC2A4\uD06C\uB864 \uBC94\uC704\uB97C \uBE44\uC728\uB85C \uC5F0\uACB0"], "en": ["Link the actual scroll ranges of two differently sized documents by proportion"] }, "aliases": { "ko": ["\uBE44\uB840 \uB3D9\uAE30 \uC2A4\uD06C\uB864", "\uC5F0\uACB0\uB41C \uBB38\uC11C \uC2A4\uD06C\uB864"], "en": ["proportional document scroll sync", "linked scroll ranges"] } },
17758
- "ly-prepend-scroll-anchor": { "targets": ["list"], "triggers": ["click", "input"], "useCases": { "ko": ["\uC55E\uC120 \uB85C\uCEEC \uAE30\uB85D\uC744 \uC0BD\uC785\uD574\uB3C4 \uD604\uC7AC \uD589\uC758 \uD654\uBA74 \uC704\uCE58 \uC720\uC9C0"], "en": ["Preserve visible row positions while prepending earlier local records"] }, "aliases": { "ko": ["\uAE30\uB85D \uD504\uB9AC\uD39C\uB4DC \uC704\uCE58 \uBCF4\uC815", "\uC2A4\uD06C\uB864 \uC575\uCEE4 \uBCF4\uC874"], "en": ["scroll-preserving prepend", "history prepend anchoring"] } },
17759
- "ly-fixed-row-virtual-scroll": { "targets": ["list"], "triggers": ["input"], "useCases": { "ko": ["\uACE0\uC815 \uB192\uC774 \uAE34 \uBAA9\uB85D\uC758 \uC804\uCCB4 \uC2A4\uD06C\uB864 \uAE38\uC774\uB97C \uC720\uC9C0\uD558\uBA74\uC11C \uC8FC\uBCC0 \uD589\uB9CC \uB80C\uB354\uB9C1"], "en": ["Render nearby fixed-height rows while preserving the full long-list scroll extent"] }, "aliases": { "ko": ["\uACE0\uC815 \uD589 \uC708\uB3C4\uC789", "\uACE0\uC815 \uB192\uC774 \uAC00\uC0C1 \uBAA9\uB85D"], "en": ["fixed-row windowing", "fixed-height virtual list"] } },
17760
- "ly-stable-scrollbar-gutter": { "targets": ["list", "input"], "triggers": ["input"], "useCases": { "ko": ["\uC9E7\uC740 \uD30C\uC77C \uBAA9\uB85D\uACFC \uAE34 \uBAA9\uB85D\uC744 \uC804\uD658\uD574\uB3C4 \uC2A4\uD06C\uB864\uBC14 \uC591\uCABD \uC5EC\uBC31\uACFC \uBCF8\uBB38 \uC815\uB82C \uC720\uC9C0"], "en": ["Keep symmetric scrollbar gutters and content alignment when switching between short and long file lists"] }, "aliases": { "ko": ["\uC591\uCABD \uACE0\uC815 \uC2A4\uD06C\uB864\uBC14 \uAC70\uD130", "\uC2A4\uD06C\uB864\uBC14 \uACF5\uAC04 \uC608\uC57D"], "en": ["stable both-edge scrollbar gutter", "reserved scrollbar space"] } }
17761
- };
17762
-
17763
- // ../../packages/catalog/src/search-metadata/additions/shader.ts
17764
- var SHADER_SEARCH_METADATA = {
17765
- "mg-voronoi-cell-field": { targets: ["background"], triggers: ["input"], useCases: { ko: ["\uC2AC\uB77C\uC774\uB354\uB85C \uAE30\uC900\uC810\uC744 \uC62E\uACA8 \uCD5C\uADFC\uC811 \uC140\uC758 \uACBD\uACC4 \uC7AC\uD3B8\uC744 \uBCF4\uC5EC \uC8FC\uAE30"], en: ["Move a site with a slider to demonstrate nearest-site cell repartitioning"] }, aliases: { ko: ["\uCD5C\uADFC\uC811\uC810 \uBD84\uD560", "\uBCF4\uB85C\uB178\uC774 \uB2E4\uC774\uC5B4\uADF8\uB7A8"], en: ["nearest-site partition", "Voronoi diagram"] } },
17766
- "mg-occluder-projected-shadow": { targets: ["scene", "background"], triggers: ["input"], useCases: { ko: ["\uC2AC\uB77C\uC774\uB354\uB85C \uAC00\uB9BC\uB9C9\uC744 \uC62E\uACA8 \uC810\uAD11\uC6D0\uC5D0 \uB9DE\uB294 \uADF8\uB9BC\uC790 \uBC29\uD5A5\uC744 \uBCF4\uC5EC \uC8FC\uAE30"], en: ["Move an occluder with a slider to show the projected shadow direction from a fixed point light"] }, aliases: { ko: ["\uC810\uAD11\uC6D0 \uD22C\uC601 \uADF8\uB9BC\uC790", "\uAC00\uB9BC\uB9C9 \uCC28\uD3D0"], en: ["point-light projected shadow", "occluder shadow projection"] } },
17767
- "mg-binary-dither-gradient": { "targets": ["background"], "triggers": ["static"], "useCases": { "ko": ["\uACE0\uC815 \uB178\uC774\uC988\uB97C \uC784\uACC4 \uCC98\uB9AC\uD574 \uC810 \uBC00\uB3C4\uB9CC\uC73C\uB85C \uBA85\uC554 \uADF8\uB77C\uB370\uC774\uC158 \uD45C\uD604"], "en": ["Express a tonal gradient through dot density by thresholding fixed noise"] }, "aliases": { "ko": ["\uC774\uC9C4 \uC810 \uBC00\uB3C4 \uADF8\uB77C\uB370\uC774\uC158", "\uB178\uC774\uC988 \uC784\uACC4 \uB514\uB354\uB9C1"], "en": ["binary dot-density gradient", "noise threshold dithering"] } },
17768
- "mg-moire-ring-interference": { "targets": ["background"], "triggers": ["input"], "useCases": { "ko": ["\uC2AC\uB77C\uC774\uB354\uB85C \uC6D0\uBB34\uB2AC \uC911\uC2EC \uD3B8\uCC28\uB97C \uBC14\uAFD4 \uBAA8\uC544\uB808 \uAC04\uC12D \uB760 \uD45C\uD604"], "en": ["Vary ring-center offset with a slider to show moire interference bands"] }, "aliases": { "ko": ["\uC6D0\uD615 \uBAA8\uC544\uB808", "\uC6D0\uBB34\uB2AC \uC911\uCCA9 \uAC04\uC12D"], "en": ["circular moire", "overlapping ring interference"] } },
17769
- "mg-rising-light-particles": { "targets": ["background"], "triggers": ["auto"], "useCases": { "ko": ["\uC11C\uB85C \uB2E4\uB978 \uC704\uC0C1\uC758 \uBE5B \uC785\uC790\uAC00 \uC704\uB85C \uB5A0\uC624\uB974\uB294 \uBC18\uBCF5 \uBC30\uACBD \uD45C\uD604"], "en": ["Create a looping background of rising lights with different phases"] }, "aliases": { "ko": ["\uB5A0\uC624\uB974\uB294 \uBC1C\uAD11 \uC785\uC790", "\uC0C1\uC2B9 \uBE5B \uC810"], "en": ["floating luminous particles", "ascending light dots"] } },
17770
- "mg-point-lit-noise-surface": { "targets": ["background", "scene"], "triggers": ["input"], "useCases": { "ko": ["\uACE0\uC815 \uB178\uC774\uC988 \uD45C\uBA74 \uC704\uC758 \uC810\uAD11\uC6D0 \uC704\uCE58\uB97C \uC2AC\uB77C\uC774\uB354\uB85C \uBC14\uAFD4 \uBC18\uC9DD\uC784 \uC774\uB3D9 \uD45C\uD604"], "en": ["Move a point light over a fixed noise surface with a slider to shift specular highlights"] }, "aliases": { "ko": ["\uC2A4\uD399\uD058\uB7EC \uC694\uCCA0 \uC870\uBA85", "\uB178\uC774\uC988 \uB192\uC774 \uB9F5 \uC870\uBA85"], "en": ["specular bump lighting", "noise height-map lighting"] } },
17771
- "mg-turbulence-line-displacement": { "targets": ["background"], "triggers": ["input"], "useCases": { "ko": ["\uC2AC\uB77C\uC774\uB354\uB85C \uACE0\uC815 \uB178\uC774\uC988\uC758 \uAD74\uC808 \uC138\uAE30\uB97C \uBC14\uAFD4 \uC9C1\uC120\uACFC \uBB3C\uACB0 \uC0AC\uC774 \uD45C\uD604"], "en": ["Adjust fixed-noise displacement with a slider to move between straight lines and waves"] }, "aliases": { "ko": ["\uB178\uC774\uC988 \uB514\uC2A4\uD50C\uB808\uC774\uC2A4\uBA3C\uD2B8", "\uD130\uBDF8\uB7F0\uC2A4 \uC120 \uC65C\uACE1"], "en": ["noise displacement", "turbulence line distortion"] } },
17772
- "mg-theme-blend-lights": { "targets": ["scene", "background"], "triggers": ["click"], "useCases": { "ko": ["\uD1A0\uAE00\uB85C \uD14C\uB9C8\uBCC4 \uC2E4\uC81C \uACF1\uD558\uAE30\xB7\uC2A4\uD06C\uB9B0 \uD63C\uC0C9\uACFC \uAE30\uBCF8 \uB36E\uC5B4\uADF8\uB9AC\uAE30\uB97C \uBE44\uAD50"], "en": ["Toggle actual multiply or screen blending for each theme against normal overpainting"] }, "aliases": { "ko": ["\uD14C\uB9C8\uBCC4 \uC0C9 \uD63C\uD569", "\uACF1\uD558\uAE30 \uC2A4\uD06C\uB9B0 \uD63C\uC0C9"], "en": ["theme-adaptive color blending", "multiply screen lights"] } },
17773
- "mg-diagonal-meteor-shower": { "targets": ["background"], "triggers": ["auto"], "useCases": { "ko": ["\uACE0\uC815 \uBCC4\uBE5B \uC704\uB85C \uC11C\uB85C \uB2E4\uB978 \uC8FC\uAE30\uC758 \uB300\uAC01\uC120 \uC720\uC131\uACFC \uAF2C\uB9AC \uBC18\uBCF5 \uD45C\uD604"], "en": ["Loop diagonal meteors and their trails over fixed stars with different cycle lengths"] }, "aliases": { "ko": ["\uBCC4\uB625\uBCC4 \uBC30\uACBD", "\uB300\uAC01\uC120 \uC720\uC131 \uAF2C\uB9AC"], "en": ["shooting-star background", "diagonal meteor trails"] } },
17774
- "mg-faded-line-grid": { "targets": ["background"], "triggers": ["static"], "useCases": { "ko": ["\uC911\uC559 \uC120 \uACA9\uC790\uB97C \uAC00\uC7A5\uC790\uB9AC\uB85C \uD398\uC774\uB4DC\uD574 \uC815\uC801\uC778 \uBC30\uACBD \uD45C\uD604"], "en": ["Create a static background with a central line grid fading toward the edges"] }, "aliases": { "ko": ["\uB77C\uB514\uC5BC \uD398\uC774\uB4DC \uACA9\uC790", "\uB9C8\uC2A4\uD06C \uC120 \uADF8\uB9AC\uB4DC"], "en": ["radial fade grid", "masked line grid"] } }
17775
- };
17776
-
17777
- // ../../packages/catalog/src/search-metadata/additions/tactile.ts
17778
- var TACTILE_SEARCH_METADATA = {
17779
- "st-stockinette-knit-surface": {
17780
- "targets": [
17781
- "panel",
17782
- "background"
17783
- ],
17784
- "triggers": [
17785
- "static"
17786
- ],
17787
- "useCases": {
17788
- "ko": [
17789
- "\uC815\uC801\uC778 \uC7AC\uC9C8 \uBA74\uC5D0\uC11C \uB465\uADFC \uC2E4\uC758 \uC138\uB85C \uB2C8\uD2B8 \uCF54\uC640 \uAE4A\uC740 \uD2C8\uC744 \uBCF4\uC5EC \uC904 \uB54C"
17790
- ],
17791
- "en": [
17792
- "Show rounded vertical knit stitches and deep yarn gaps on a static material surface"
17793
- ]
18913
+ "px-dither-gradient-ramp": {
18914
+ targets: ["shape", "background", "input"],
18915
+ triggers: ["input"],
18916
+ useCases: {
18917
+ ko: ["4\uC0C9 \uC81C\uD55C \uD314\uB808\uD2B8 \uC704\uB85C 2\xD72 \uCCB4\uCEE4\uBCF4\uB4DC\uC640 4\xD74 \uBCA0\uC774\uC5B4 \uB9E4\uD2B8\uB9AD\uC2A4\uB97C \uC801\uC6A9\uD574 \uACE1\uBA74 \uBA85\uC554 \uD45C\uD604\uD558\uAE30"],
18918
+ en: ["Shade a 3D pixel sphere with 2x2 checkerboard and 4x4 Bayer dithering over 4 fixed palette colors"]
17794
18919
  },
17795
- "aliases": {
17796
- "ko": [
17797
- "\uBA54\uB9AC\uC57C\uC2A4 \uD3B8\uC9C1",
17798
- "\uC2A4\uD1A1\uD0A4\uB124\uD2B8 \uD45C\uBA74"
17799
- ],
17800
- "en": [
17801
- "jersey knit surface",
17802
- "stockinette texture"
17803
- ]
18920
+ aliases: {
18921
+ ko: ["\uB514\uB354\uB9C1 \uB7A8\uD504", "\uBCA0\uC774\uC5B4 \uB9E4\uD2B8\uB9AD\uC2A4 \uBA85\uC554", "\uCCB4\uCEE4\uBCF4\uB4DC \uADF8\uB77C\uB370\uC774\uC158"],
18922
+ en: ["dither gradient ramp", "Bayer ordered dither", "checkerboard tonal ramp"]
17804
18923
  }
17805
18924
  },
17806
- "st-compressed-wool-felt": {
17807
- "targets": [
17808
- "panel",
17809
- "background"
17810
- ],
17811
- "triggers": [
17812
- "static"
17813
- ],
17814
- "useCases": {
17815
- "ko": [
17816
- "\uC9C1\uC870 \uACA9\uC790 \uC5C6\uC774 \uC9E7\uC740 \uC591\uBAA8 \uC12C\uC720\uAC00 \uC5BD\uD78C \uC870\uBC00\uD55C \uC815\uC801 \uC7AC\uC9C8\uC744 \uBCF4\uC5EC \uC904 \uB54C"
17817
- ],
17818
- "en": [
17819
- "Show a static dense wool surface formed by short tangled fibres without a woven grid"
17820
- ]
18925
+ "px-seamless-pattern-repeat": {
18926
+ targets: ["background", "shape", "input"],
18927
+ triggers: ["input"],
18928
+ useCases: {
18929
+ ko: ["40\xD736 \uB17C\uB9AC \uD0C0\uC77C\uC744 3\xD73\uC73C\uB85C \uBC18\uBCF5\uD574 \uB05D\uB2E8 \uD53D\uC140\uC774 \uC774\uC5B4\uC9C0\uB294\uC9C0 \uD655\uC778\uD558\uAE30"],
18930
+ en: ["Verify edge alignment by repeating a 40x36 logical tile in a 3x3 preview"]
17821
18931
  },
17822
- "aliases": {
17823
- "ko": [
17824
- "\uC555\uCD95 \uD3A0\uD2B8",
17825
- "\uC591\uBAA8 \uBD80\uC9C1\uD3EC"
17826
- ],
17827
- "en": [
17828
- "compressed felt texture",
17829
- "nonwoven wool surface"
17830
- ]
18932
+ aliases: {
18933
+ ko: ["\uC2EC\uB9AC\uC2A4 \uD53D\uC140 \uD328\uD134", "\uC774\uC74C\uB9E4 \uC5C6\uB294 \uD0C0\uC77C", "\uB358\uC804 \uC11D\uC870 \uD328\uD134"],
18934
+ en: ["seamless pixel pattern", "seamless tile texture", "dungeon stone wallpaper"]
17831
18935
  }
17832
18936
  },
17833
- "st-white-marble-veining": {
17834
- "targets": [
17835
- "panel",
17836
- "background"
17837
- ],
17838
- "triggers": [
17839
- "static"
17840
- ],
17841
- "useCases": {
17842
- "ko": [
17843
- "\uC6B0\uC733\uBE5B \uC11D\uC7AC\uC758 \uC815\uC801 \uBA74 \uC548\uC5D0 \uC774\uC5B4\uC9C0\uB294 \uD68C\uC0C9 \uC11D\uB9E5\uACFC \uBD84\uAE30\uB97C \uBCF4\uC5EC \uC904 \uB54C"
17844
- ],
17845
- "en": [
17846
- "Show continuous branching grey veins within a static milky stone surface"
17847
- ]
18937
+ "px-palette-swap-texture": {
18938
+ targets: ["shape", "image", "input"],
18939
+ triggers: ["input"],
18940
+ useCases: {
18941
+ ko: ["5\uB2E8\uACC4 \uC0C9\uC778 \uC88C\uD45C\uB97C \uC720\uC9C0\uD55C \uCC44 \uB8E9\uC5C5 \uD14C\uC774\uBE14\uB9CC \uAD50\uCCB4\uD574 \uBC29\uD328 \uD45C\uBA74 \uBD84\uC704\uAE30 \uC2E4\uC2DC\uAC04 \uC804\uD658\uD558\uAE30"],
18942
+ en: ["Remap 5 index color coordinates across 4 thematic lookup tables to transform shield surfaces"]
17848
18943
  },
17849
- "aliases": {
17850
- "ko": [
17851
- "\uBC31\uC0C9 \uC11D\uC7AC \uBCA0\uC774\uB2DD",
17852
- "\uB300\uB9AC\uC11D \uC11D\uB9E5"
17853
- ],
17854
- "en": [
17855
- "marble vein texture",
17856
- "white stone veining"
17857
- ]
18944
+ aliases: {
18945
+ ko: ["\uD314\uB808\uD2B8 \uC2A4\uC651", "\uC0C9\uC778 \uB8E9\uC5C5 \uC804\uD658", "\uB3C4\uD2B8 \uC7AC\uC9C8 \uAD50\uCCB4"],
18946
+ en: ["palette swap texture", "indexed color LUT", "dot texture palette shift"]
17858
18947
  }
17859
18948
  },
17860
- "st-crackle-ceramic-glaze": {
17861
- "targets": [
17862
- "panel",
17863
- "background"
17864
- ],
17865
- "triggers": [
17866
- "static"
17867
- ],
17868
- "useCases": {
17869
- "ko": [
17870
- "\uB9E4\uB044\uB7EC\uC6B4 \uCCAD\uB85D \uC720\uC57D\uACFC \uAC00\uB294 \uBE59\uB82C\uC744 \uC815\uC801\uC778 \uB3C4\uC790\uAE30 \uC811\uC2DC\uC5D0\uC11C \uBCF4\uC5EC \uC904 \uB54C"
17871
- ],
17872
- "en": [
17873
- "Show smooth teal glaze and fine crackle on a static ceramic dish"
17874
- ]
18949
+ /* 4. Game UI */
18950
+ "px-hud-health-shield-bar": {
18951
+ targets: ["panel", "text", "input"],
18952
+ triggers: ["input"],
18953
+ useCases: {
18954
+ ko: ["\uBD84\uD560 \uD558\uD2B8\uC640 \uB9C8\uB984\uBAA8 \uC2E4\uB4DC\uB97C \uAC00\uB9AC\uC9C0 \uC54A\uB294 \uC0C1\uB2E8 \uD53C\uACA9 \uBB38\uAD6C\uB85C \uC561\uC158 RPG \uC0C1\uD0DC\uCC3D \uAD6C\uC131\uD558\uAE30"],
18955
+ en: ["Construct an action RPG status bar with split hearts, diamond shields, separate damage feedback and a low-health warning"]
17875
18956
  },
17876
- "aliases": {
17877
- "ko": [
17878
- "\uBE59\uB82C \uB3C4\uC790\uAE30",
17879
- "\uCCAD\uC790 \uC720\uC57D \uADE0\uC5F4"
17880
- ],
17881
- "en": [
17882
- "crazed ceramic glaze",
17883
- "celadon crackle"
17884
- ]
18957
+ aliases: {
18958
+ ko: ["\uCCB4\uB825 HUD", "\uB3C4\uD2B8 \uD558\uD2B8 \uC2E4\uB4DC", "\uD53D\uC140 RPG \uCCB4\uB825\uBC14"],
18959
+ en: ["health HUD", "pixel heart shield bar", "RPG health status bar"]
18960
+ }
18961
+ },
18962
+ "px-inventory-grid-selector": {
18963
+ targets: ["list", "panel", "input"],
18964
+ triggers: ["input"],
18965
+ useCases: {
18966
+ ko: ["4\xD73 \uBCA0\uBCA8 \uC2AC\uB86F \uADF8\uB9AC\uB4DC\uC5D0\uC11C \uC544\uC774\uD15C\uC744 \uC120\uD0DD\uD558\uACE0 \uC0C1\uC138 \uB2A5\uB825\uCE58\uC640 \uD76C\uADC0\uB3C4 \uD504\uB808\uC784 \uD45C\uC2DC\uD558\uAE30"],
18967
+ en: ["Navigate a 4x3 beveled slot grid to inspect 16x16 item icons, stats and rarity frames"]
18968
+ },
18969
+ aliases: {
18970
+ ko: ["\uC778\uBCA4\uD1A0\uB9AC \uADF8\uB9AC\uB4DC", "\uC544\uC774\uD15C \uCE78 \uC120\uD0DD\uAE30", "RPG \uAC00\uBC29 \uC2AC\uB86F"],
18971
+ en: ["inventory grid selector", "item slot backpack", "RPG inventory window"]
18972
+ }
18973
+ },
18974
+ "px-rpg-dialog-typewriter": {
18975
+ targets: ["text", "panel", "input"],
18976
+ triggers: ["input"],
18977
+ useCases: {
18978
+ ko: ["\uC11D\uC870 \uD504\uB808\uC784 \uC548\uC758 \uCD08\uC0C1\uD654 \uC606\uC5D0 RPG \uB300\uC0AC\uB97C \uBC30\uCE58\uD558\uACE0 \uD0C0\uC790 \uD6A8\uACFC \uCF1C\uAE30"],
18979
+ en: ["Show RPG dialogue beside a portrait in a stone frame with an optional typewriter effect"]
18980
+ },
18981
+ aliases: {
18982
+ ko: ["RPG \uB300\uD654\uCC3D", "\uD0C0\uC774\uD504\uB77C\uC774\uD130 \uB300\uD654\uC0C1\uC790", "\uD654\uC790 \uD3EC\uD2B8\uB808\uC774\uD2B8 \uB300\uC0AC\uCC3D"],
18983
+ en: ["RPG dialog box", "typewriter dialog window", "speaker portrait text box"]
18984
+ }
18985
+ },
18986
+ "px-minimap-radar": {
18987
+ targets: ["panel", "scene", "input"],
18988
+ triggers: ["input"],
18989
+ useCases: {
18990
+ ko: ["24\xD724 \uC815\uC218 \uADF8\uB9AC\uB4DC\uC5D0\uC11C \uD50C\uB808\uC774\uC5B4 \uC774\uB3D9\uC5D0 \uBC18\uC751\uD574 \uC2DC\uC57C \uC548\uAC1C\uB97C \uBC1D\uD788\uACE0 \uBCF4\uBB3C \uC704\uCE58 \uB3D9\uAE30\uD654\uD558\uAE30"],
18991
+ en: ["Clear fog of war along field-of-view cones and synchronize treasure blips on a 24x24 dungeon minimap"]
18992
+ },
18993
+ aliases: {
18994
+ ko: ["\uD53D\uC140 \uBBF8\uB2C8\uB9F5", "\uB358\uC804 \uB808\uC774\uB354 \uC9C0\uB3C4", "\uC804\uC7A5\uC758 \uC548\uAC1C \uD0D0\uC0C9"],
18995
+ en: ["pixel minimap", "dungeon radar map", "fog of war minimap"]
18996
+ }
18997
+ },
18998
+ /* 5. Effects */
18999
+ "px-integer-grid-explosion": {
19000
+ targets: ["shape", "scene", "input"],
19001
+ triggers: ["input"],
19002
+ useCases: {
19003
+ ko: ["32\xD732 \uC815\uC218 \uACA9\uC790\uC5D0\uC11C \uC12C\uAD11\xB7\uD654\uC5FC\uAD6C\xB7\uC5F0\uAE30 \uACE0\uB9AC\xB7\uBD88\uB625 \uD30C\uD3B8\uC73C\uB85C \uC774\uC5B4\uC9C0\uB294 6\uD504\uB808\uC784 \uC544\uCF00\uC774\uB4DC \uD3ED\uBC1C \uC2DC\uC5F0\uD558\uAE30"],
19004
+ en: ["Demonstrate a 6-frame arcade explosion advancing from spark dot to fireball, smoke ring and ash embers on a 32x32 grid"]
19005
+ },
19006
+ aliases: {
19007
+ ko: ["\uC815\uC218 \uADF8\uB9AC\uB4DC \uD3ED\uBC1C", "6\uD504\uB808\uC784 \uD53D\uC140 \uD3ED\uBC1C", "\uC544\uCF00\uC774\uB4DC \uD654\uC5FC \uC774\uD399\uD2B8"],
19008
+ en: ["integer grid explosion", "6-frame pixel explosion", "arcade fireball effect"]
19009
+ }
19010
+ },
19011
+ "px-slash-afterimage-trail": {
19012
+ targets: ["shape", "scene", "input"],
19013
+ triggers: ["input"],
19014
+ useCases: {
19015
+ ko: ["\uBC31\uC0C9 \uCE7C\uB0A0 \uD638\uC120 \uB4A4\uB85C 4\uB2E8\uACC4 \uC794\uC0C1 \uD53D\uC140 \uB760\uAC00 \uBD88\uD22C\uBA85\uB3C4\uB97C \uAC10\uC1C4\uD558\uBA70 \uC18D\uB3C4\uAC10\uC744 \uD45C\uD604\uD558\uAE30"],
19016
+ en: ["Render a swift sword slash arc with 4 stepped afterimage ghost silhouettes decaying in opacity and hue"]
19017
+ },
19018
+ aliases: {
19019
+ ko: ["\uC2AC\uB798\uC2DC \uC794\uC0C1", "\uAC80\uACA9 \uADA4\uC801", "\uC2A4\uD15D \uC794\uC0C1 \uC774\uD399\uD2B8"],
19020
+ en: ["slash afterimage trail", "sword arc trail", "stepped ghost slash"]
19021
+ }
19022
+ },
19023
+ "px-sparkle-gemstone-shine": {
19024
+ targets: ["shape", "image", "input"],
19025
+ triggers: ["input"],
19026
+ useCases: {
19027
+ ko: ["\uB2E4\uBA74\uCCB4 \uBCF4\uC11D \uC548\uC5D0\uC11C \uAD11\uD0DD \uC704\uCE58\uB97C \uC870\uC808\uD558\uACE0 4\uAC08\uB798 \uBCC4\uC744 \uB530\uB85C \uBC18\uC9DD\uC774\uAE30"],
19028
+ en: ["Move a clipped diagonal highlight inside a gemstone and trigger a separate four-point sparkle"]
19029
+ },
19030
+ aliases: {
19031
+ ko: ["\uBCF4\uC11D \uBC18\uC9DD\uC784", "\uB2E4\uBA74\uCCB4 \uBCF4\uC11D \uAD11\uD0DD", "\uC2ED\uC790 \uB3C4\uD2B8 \uBC18\uC9DD\uC784"],
19032
+ en: ["gemstone sparkle glint", "faceted jewel shimmer", "cross star pixel glint"]
19033
+ }
19034
+ },
19035
+ "px-mosaic-pixel-wipe-transition": {
19036
+ targets: ["scene", "image", "input"],
19037
+ triggers: ["input"],
19038
+ useCases: {
19039
+ ko: ["1px\uC5D0\uC11C 32px\uAE4C\uC9C0 \uBE14\uB85D \uD06C\uAE30\uB97C \uC591\uC790\uD654\uD574 \uCCAB \uC7A5\uBA74\uC744 \uB36E\uACE0 \uB450 \uBC88\uC9F8 \uC7A5\uBA74\uC73C\uB85C \uBCF5\uC6D0\uD558\uAE30"],
19040
+ en: ["Quantize block resolution from 1px to 32px over 10 steps to transition between two contrasting pixel scenes"]
19041
+ },
19042
+ aliases: {
19043
+ ko: ["\uBAA8\uC790\uC774\uD06C \uC7A5\uBA74 \uC804\uD658", "\uD53D\uC140 \uBAA8\uC790\uC774\uD06C \uC640\uC774\uD504", "\uD574\uC0C1\uB3C4 \uC804\uD658 \uD2B8\uB79C\uC9C0\uC158"],
19044
+ en: ["mosaic scene transition", "pixel mosaic wipe", "resolution dissolve wipe"]
19045
+ }
19046
+ }
19047
+ };
19048
+
19049
+ // ../../packages/catalog/src/search-metadata/additions/pixelart-expansion.ts
19050
+ var PIXELART_EXPANSION_SEARCH_METADATA = {
19051
+ /* 1. Sprites (6) */
19052
+ "px-blacksmith-hammer-strike": {
19053
+ targets: ["shape", "scene", "input"],
19054
+ triggers: ["input", "auto"],
19055
+ useCases: {
19056
+ ko: ["\uBAA8\uB8E8 \uC704\uC5D0\uC11C \uBC31\uC2A4\uC719\xB7\uD0C0\uACA9\xB7\uBC18\uB3D9\xB7\uBCF5\uADC0 4\uB2E8\uACC4 \uB300\uC7A5\uC7A5\uC774 \uD574\uBA38 \uD0C0\uACA9 \uD3EC\uC988\uC640 \uBD88\uAF43 \uD30C\uD3B8\uC744 \uC7AC\uC0DD\uD558\uACE0 \uB2E8\uC870 \uC5F4\uAE30 \uC0C9\uC0C1\uC744 \uC804\uD658\uD558\uAE30"],
19057
+ en: ["Play and scrub a 4-stage blacksmith hammer strike over an anvil with spark shards and toggle forge heat colors"]
19058
+ },
19059
+ aliases: {
19060
+ ko: ["\uB300\uC7A5\uC7A5\uC774 \uD0C0\uACA9", "\uBAA8\uB8E8 \uB9DD\uCE58\uC9C8", "\uBB34\uAE30 \uB2E8\uC870 \uC560\uB2C8\uBA54\uC774\uC158"],
19061
+ en: ["blacksmith anvil strike", "forging hammer animation", "weapon smithing loop"]
19062
+ }
19063
+ },
19064
+ "px-jump-arc-poses": {
19065
+ targets: ["shape", "scene", "input"],
19066
+ triggers: ["input", "auto"],
19067
+ useCases: {
19068
+ ko: ["\uB3C4\uC57D \uC6C5\uD06C\uB9BC\uBD80\uD130 \uCCB4\uACF5 \uC815\uC810\xB7\uCC29\uC9C0 \uCDA9\uACA9\uAE4C\uC9C0 5\uB2E8\uACC4 \uD3EC\uBB3C\uC120 \uC810\uD504 \uC790\uC138\uC640 \uC911\uB825 \uADA4\uC801\uC744 \uBE44\uAD50\uD558\uAE30"],
19069
+ en: ["Compare 5 parabolic jump poses from anticipation crouch to apex hang and landing dust with gravity arc switching"]
19070
+ },
19071
+ aliases: {
19072
+ ko: ["\uC810\uD504 \uD3EC\uBB3C\uC120", "\uB3C4\uC57D \uCC29\uC9C0 \uD504\uB808\uC784", "\uD50C\uB7AB\uD3EC\uBA38 \uC810\uD504 \uBAA8\uC158"],
19073
+ en: ["platformer jump arc", "crouch apex landing poses", "jump trajectory animation"]
19074
+ }
19075
+ },
19076
+ "px-dragon-wing-stroke": {
19077
+ targets: ["shape", "scene", "input"],
19078
+ triggers: ["input", "auto"],
19079
+ useCases: {
19080
+ ko: ["4\uB2E8\uACC4 \uB0A0\uAC1C \uD37C\uB355\uC784\uACFC \uBAB8\uCCB4 \uC218\uC9C1 \uBC18\uB3D9\uC73C\uB85C \uBD80\uC720\uD558\uB294 \uC0C8\uB07C \uB4DC\uB798\uACE4\uC758 \uCCB4\uACF5 \uB8E8\uD504\uC640 \uD654\uC5FC \uC624\uB77C \uC5F0\uCD9C\uD558\uAE30"],
19081
+ en: ["Animate a hovering dragon whelp with 4-frame wing strokes, vertical body counter-bob and flame aura particles"]
19082
+ },
19083
+ aliases: {
19084
+ ko: ["\uB4DC\uB798\uACE4 \uB0A0\uAC1C\uC9D3", "\uBE44\uD589 \uBAAC\uC2A4\uD130 \uD638\uBC84\uB9C1", "\uC6A9 \uD37C\uB355\uC784 \uB8E8\uD504"],
19085
+ en: ["dragon wing flap", "flying monster hover", "wyvern wingbeat cycle"]
19086
+ }
19087
+ },
19088
+ "px-slime-squash-stretch": {
19089
+ targets: ["shape", "scene", "input"],
19090
+ triggers: ["input", "auto"],
19091
+ useCases: {
19092
+ ko: ["\uD53D\uC140 \uBA74\uC801\uC744 \uBCF4\uC874\uD558\uBA70 \uB0A9\uC791 \uC555\uCD95\uACFC \uC218\uC9C1 \uC2E0\uC7A5\uC744 \uC624\uAC00\uB294 \uC2AC\uB77C\uC784 \uC824\uB9AC \uD0C4\uC131 \uBCC0\uD615\uACFC \uCF54\uC5B4 \uBD80\uC720 \uC81C\uC5B4\uD558\uAE30"],
19093
+ en: ["Control volume-preserving slime squash and stretch deformation from flat compression to vertical stretch with floating core"]
19094
+ },
19095
+ aliases: {
19096
+ ko: ["\uC2AC\uB77C\uC784 \uD0C4\uC131", "\uC2A4\uCFFC\uC2DC \uC564 \uC2A4\uD2B8\uB808\uCE58", "\uC824\uB9AC \uBAAC\uC2A4\uD130 \uC810\uD504"],
19097
+ en: ["jelly slime bounce", "pixel squash and stretch", "elastic blob deformation"]
19098
+ }
19099
+ },
19100
+ "px-modular-robot-loadout": {
19101
+ targets: ["shape", "image", "input"],
19102
+ triggers: ["click", "input"],
19103
+ useCases: {
19104
+ ko: ["\uAE30\uC900 \uC100\uC2DC \uC704\uC5D0\uC11C \uB808\uC774\uB354 \uC548\uD14C\uB098\xB7\uC81C\uD2B8\uD329\xB7\uD50C\uB77C\uC988\uB9C8 \uC554 \uD30C\uCE20\uC640 3\uC885 \uB3C4\uC0C9 \uC2A4\uD0A8\uC744 \uC870\uD569\uD574 \uB85C\uBD07 \uC2A4\uD504\uB77C\uC774\uD2B8 \uAD6C\uC131\uD558\uAE30"],
19105
+ en: ["Assemble a modular robot sprite by toggling radar antenna, jetpack thruster, plasma arm and 3 paint schemes on anchored sockets"]
19106
+ },
19107
+ aliases: {
19108
+ ko: ["\uBAA8\uB4C8\uD615 \uB85C\uBD07", "\uD30C\uCE20 \uC7A5\uCC29 \uCEE4\uC2A4\uD140", "\uBA54\uCE74 \uC2A4\uD0A8 \uAD50\uCCB4"],
19109
+ en: ["modular mech builder", "paperdoll robot parts", "sprite equipment sockets"]
19110
+ }
19111
+ },
19112
+ "px-directional-archer-draw": {
19113
+ targets: ["shape", "scene", "input"],
19114
+ triggers: ["click", "input"],
19115
+ useCases: {
19116
+ ko: ["\uC218\uD3C9\xB7\uC0C1\uD5A5\xB7\uD558\uD5A5 3\uAC00\uC9C0 \uC870\uC900 \uAC01\uB3C4\uC640 \uC2DC\uC704 \uB2F9\uAE40\xB7\uBC1C\uC0AC 4\uB2E8\uACC4\uB97C \uC870\uD569\uD574 \uAD81\uC218 \uC870\uC900 \uC790\uC138 \uD655\uC778\uD558\uAE30"],
19117
+ en: ["Inspect archer aiming postures across horizontal, upward and downward angles combined with 4 bowstring draw and release steps"]
19118
+ },
19119
+ aliases: {
19120
+ ko: ["\uAD81\uC218 \uC870\uC900 \uBC1C\uC0AC", "\uBC29\uD5A5\uBCC4 \uD65C\uC2DC\uC704 \uB2F9\uAE40", "\uB2E4\uBC29\uD5A5 \uC0AC\uACA9 \uD3EC\uC988"],
19121
+ en: ["directional bow aim", "archer draw release frames", "multi-angle ranged attack"]
19122
+ }
19123
+ },
19124
+ /* 2. Environments (6) */
19125
+ "px-snow-village-accumulation": {
19126
+ targets: ["background", "scene", "input"],
19127
+ triggers: ["input", "auto"],
19128
+ useCases: {
19129
+ ko: ["\uAC15\uC124 \uBC00\uB3C4 4\uB2E8\uACC4\uC5D0 \uB530\uB77C \uB099\uD558 \uB208\uC1A1\uC774\uC640 \uC624\uB450\uB9C9 \uC9C0\uBD95 \uC801\uC124 \uCEA1 \uB450\uAED8\xB7\uCC3D\uBB38 \uB09C\uB85C \uBD88\uBE5B\uC744 \uC81C\uC5B4\uD558\uAE30"],
19130
+ en: ["Control falling snowflake count, cabin roof snow cap thickness and warm window lights across 4 snowfall accumulation levels"]
19131
+ },
19132
+ aliases: {
19133
+ ko: ["\uB208 \uB0B4\uB9AC\uB294 \uB9C8\uC744", "\uC9C0\uBD95 \uB208 \uC313\uC784", "\uACA8\uC6B8 \uBC30\uACBD \uC801\uC124"],
19134
+ en: ["snowfall accumulation scene", "winter cabin snow drift", "pixel snow village"]
19135
+ }
19136
+ },
19137
+ "px-aurora-tundra-bands": {
19138
+ targets: ["background", "scene", "input"],
19139
+ triggers: ["input", "auto"],
19140
+ useCases: {
19141
+ ko: ["\uD230\uB4DC\uB77C \uBE59\uD558 \uC704\uC5D0\uC11C 28\uAC1C \uC218\uC9C1 \uAE30\uB465\uC758 \uC704\uC0C1\uCC28\uB85C \uBB3C\uACB0\uCE58\uB294 \uC624\uB85C\uB77C \uCEE4\uD2BC\uACFC \uC218\uBA74 \uBC18\uC0AC\uB97C \uC5F0\uCD9C\uD558\uAE30"],
19142
+ en: ["Render rippling aurora borealis curtains with 28 vertical column phase shifts and ice reflections over a tundra horizon"]
19143
+ },
19144
+ aliases: {
19145
+ ko: ["\uC624\uB85C\uB77C \uBC24\uD558\uB298", "\uADF9\uAD11 \uD30C\uB3D9 \uBC30\uACBD", "\uD230\uB4DC\uB77C \uBE59\uD558 \uC57C\uACBD"],
19146
+ en: ["northern lights pixel art", "aurora curtain wave", "arctic night sky scene"]
19147
+ }
19148
+ },
19149
+ "px-underwater-ruin-caustics": {
19150
+ targets: ["background", "scene", "input"],
19151
+ triggers: ["input", "auto"],
19152
+ useCases: {
19153
+ ko: ["\uC218\uC911 \uC2E0\uC804 \uAE30\uB465 \uC704\uB85C \uD754\uB4E4\uB9AC\uB294 \uAD74\uC808 \uBE5B\uBB34\uB2AC\uC640 \uC0C1\uC2B9 \uAE30\uD3EC\xB7\uBC1C\uAD11 \uC0B0\uD638\uCD08 \uBC1D\uAE30\uB97C \uC870\uC808\uD558\uAE30"],
19154
+ en: ["Adjust rippling underwater caustic light bands, rising bubble columns and glowing coral brightness across sunken temple pillars"]
19155
+ },
19156
+ aliases: {
19157
+ ko: ["\uC218\uC911 \uC720\uC801 \uBE5B\uBB34\uB2AC", "\uBB3C\uC18D \uCEE4\uC2A4\uD2F1 \uAD74\uC808", "\uC2EC\uD574 \uC2E0\uC804 \uBC30\uACBD"],
19158
+ en: ["underwater caustic rays", "sunken temple ruins", "submerged light refraction"]
19159
+ }
19160
+ },
19161
+ "px-windmill-wheat-breeze": {
19162
+ targets: ["background", "scene", "input"],
19163
+ triggers: ["input", "auto"],
19164
+ useCases: {
19165
+ ko: ["\uBC14\uB78C \uC138\uAE30 \uB2E8\uACC4\uC5D0 \uB9DE\uCDB0 \uD48D\uCC28 \uB0A0\uAC1C \uD68C\uC804\uACFC \uD669\uAE08 \uBC00\uBC2D \uC904\uAE30\uC758 \uC704\uC0C1 \uBB3C\uACB0\xB7\uB178\uC744 \uD558\uB298\uC744 \uB3D9\uAE30\uD654\uD558\uAE30"],
19166
+ en: ["Synchronize windmill blade rotation and golden wheat stalk wave sway across wind strength levels and noon or dusk skies"]
19167
+ },
19168
+ aliases: {
19169
+ ko: ["\uD48D\uCC28\uC640 \uBC00\uBC2D", "\uBC14\uB78C\uC5D0 \uD754\uB4E4\uB9AC\uB294 \uB4E4\uD310", "\uC804\uC6D0 \uD48D\uACBD \uB8E8\uD504"],
19170
+ en: ["windmill wheat field", "breeze grass wave", "pastoral pixel landscape"]
19171
+ }
19172
+ },
19173
+ "px-lava-channel-flow": {
19174
+ targets: ["background", "scene", "input"],
19175
+ triggers: ["input", "auto"],
19176
+ useCases: {
19177
+ ko: ["\uD604\uBB34\uC554 \uD611\uACE1 \uC218\uB85C\uB97C \uB530\uB77C \uD750\uB974\uB294 \uB9C8\uADF8\uB9C8 \uB760\uC640 \uC2DD\uC740 \uC554\uC11D \uC870\uAC01\xB7\uADE0\uC5F4 \uBC1C\uAD11 \uBC0F \uD654\uC0B0\uC7AC \uD30C\uD2F0\uD074 \uC81C\uC5B4\uD558\uAE30"],
19178
+ en: ["Animate flowing magma bands, drifting cooled crust plates, glowing rock fissures and rising ash sparks in a basalt gorge"]
19179
+ },
19180
+ aliases: {
19181
+ ko: ["\uC6A9\uC554 \uC218\uB85C \uD750\uB984", "\uD654\uC0B0 \uB9C8\uADF8\uB9C8 \uBC30\uACBD", "\uC6A9\uC554 \uB3D9\uAD74 \uD0C0\uC77C"],
19182
+ en: ["flowing lava river", "volcanic magma channel", "molten rock gorge scene"]
19183
+ }
19184
+ },
19185
+ "px-forest-canopy-shafts": {
19186
+ targets: ["background", "scene", "input"],
19187
+ triggers: ["click", "input"],
19188
+ useCases: {
19189
+ ko: ["\uC232 \uC218\uAD00 \uD2C8\uC0C8\uC758 \uBE5B\uC904\uAE30 \uAC1C\uC218\uC640 \uD0DC\uC591 \uAE30\uC6B8\uAE30 \uAC01\uB3C4\uB97C \uC870\uC808\uD574 \uC774\uB07C \uC81C\uB2E8 \uBC14\uB2E5\uC758 \uC870\uBA85 \uC601\uC5ED\uACFC \uAF43\uAC00\uB8E8\uB97C \uC5F0\uCD9C\uD558\uAE30"],
19190
+ en: ["Control forest canopy sunbeam count and tilt angle to illuminate a mossy forest shrine floor with floating pollen motes"]
19191
+ },
19192
+ aliases: {
19193
+ ko: ["\uC232\uC18D \uBE5B\uB0B4\uB9BC", "\uB098\uBB47\uC78E \uD2C8\uC0C8 \uD587\uC0B4", "\uC0B0\uB9BC \uACE0\uB4DC\uB808\uC774 \uC870\uBA85"],
19194
+ en: ["forest god rays", "canopy sunbeams", "woodland light shafts"]
19195
+ }
19196
+ },
19197
+ /* 3. Tiles (6) */
19198
+ "px-dual-grid-shore-corners": {
19199
+ targets: ["shape", "scene", "input"],
19200
+ triggers: ["click", "input"],
19201
+ useCases: {
19202
+ ko: ["4\xD74 \uB17C\uB9AC \uC9C0\uD615 \uACA9\uC790\uC640 \uBC18 \uD0C0\uC77C \uC5B4\uAE0B\uB09C 3\xD73 \uB80C\uB354 \uD0C0\uC77C\uC758 4\uBE44\uD2B8 \uCF54\uB108 \uB9C8\uC2A4\uD06C\uB85C \uD574\uC548\uC120 \uBAA8\uC11C\uB9AC\uB97C \uB9E4\uB044\uB7FD\uAC8C \uC5F0\uACB0\uD558\uAE30"],
19203
+ en: ["Connect shoreline corners cleanly using 4-bit corner masks on a 3x3 render grid offset half a tile from a 4x4 terrain grid"]
19204
+ },
19205
+ aliases: {
19206
+ ko: ["\uB4C0\uC5BC \uADF8\uB9AC\uB4DC \uD574\uC548\uC120", "\uC624\uD504\uC14B \uC624\uD1A0\uD0C0\uC77C", "\uBAA8\uC11C\uB9AC \uD574\uBCC0 \uD0C0\uC77C\uB9F5"],
19207
+ en: ["dual grid autotiling", "offset corner tileset", "4-bit shoreline mask"]
19208
+ }
19209
+ },
19210
+ "px-wang-edge-color-tiles": {
19211
+ targets: ["shape", "scene", "input"],
19212
+ triggers: ["click", "input"],
19213
+ useCases: {
19214
+ ko: ["\uD0C0\uC77C\uC758 \uBD81\xB7\uB3D9\xB7\uB0A8\xB7\uC11C \uBCC0 \uC0C9\uC0C1\uC744 \uC804\uD658\uD574 \uC778\uC811 \uD0C0\uC77C\uACFC \uB9DE\uB2FF\uB294 \uB3C4\uB85C\xB7\uC218\uB85C \uACBD\uACC4\uB97C \uB04A\uAE40 \uC5C6\uC774 \uB9E4\uCE6D\uD558\uAE30"],
19215
+ en: ["Switch North, East, South and West edge colors to match road and canal boundaries seamlessly across neighboring Wang tiles"]
19216
+ },
19217
+ aliases: {
19218
+ ko: ["\uC655 \uD0C0\uC77C \uBCC0 \uB9E4\uCE6D", "\uC5E3\uC9C0 \uCEEC\uB7EC \uD0C0\uC77C\uB9F5", "\uB3C4\uB85C \uC218\uB85C \uC5F0\uACB0 \uD0C0\uC77C"],
19219
+ en: ["Wang edge matching", "2-edge color tileset", "seamless road canal tiles"]
19220
+ }
19221
+ },
19222
+ "px-seeded-brick-variants": {
19223
+ targets: ["background", "shape", "input"],
19224
+ triggers: ["click", "input"],
19225
+ useCases: {
19226
+ ko: ["\uACB0\uC815\uB860\uC801 \uD574\uC2DC \uC2DC\uB4DC\uC640 \uBCC0\uD615 \uBC00\uB3C4\uB85C \uADE0\uC5F4\xB7\uC774\uB07C\xB7\uC74C\uC601 \uBCBD\uB3CC\uC744 \uC11E\uC5B4 \uD0C0\uC77C \uBCBD\uBA74\uC758 \uBC18\uBCF5 \uBB34\uB2AC\uB97C \uC81C\uAC70\uD558\uAE30"],
19227
+ en: ["Break up repetitive brick wall patterns by mixing cracked, mossy and recessed bricks via deterministic seed hash and density"]
19228
+ },
19229
+ aliases: {
19230
+ ko: ["\uC2DC\uB4DC \uBCBD\uB3CC \uBCC0\uD615", "\uD0C0\uC77C \uBC18\uBCF5 \uC81C\uAC70", "\uB358\uC804 \uC131\uBCBD \uBD88\uADDC\uCE59 \uD0C0\uC77C"],
19231
+ en: ["seeded tile variation", "brick wall pattern breaker", "deterministic dungeon bricks"]
19232
+ }
19233
+ },
19234
+ "px-nine-slice-pixel-frame": {
19235
+ targets: ["panel", "card", "input"],
19236
+ triggers: ["click", "input"],
19237
+ useCases: {
19238
+ ko: ["\uBAA8\uC11C\uB9AC \uC7A5\uC2DD \uD53D\uC140\uC744 1:1\uB85C \uACE0\uC815\uD55C \uCC44 \uAC00\uB85C\xB7\uC138\uB85C \uD328\uB110 \uD06C\uAE30\uB97C \uC815\uC218 \uBC30\uC728\uB85C \uB9AC\uC0AC\uC774\uC988\uD558\uACE0 9\uBD84\uD560 \uAC00\uC774\uB4DC\uB97C \uD655\uC778\uD558\uAE30"],
19239
+ en: ["Resize a pixel dialog frame across integer widths and heights while keeping 12x12 corner ornaments unscaled with 9-slice guides"]
19240
+ },
19241
+ aliases: {
19242
+ ko: ["9\uC2AC\uB77C\uC774\uC2A4 \uD53D\uC140 \uD14C\uB450\uB9AC", "\uBAA8\uC11C\uB9AC \uBCF4\uC874 \uB9AC\uC0AC\uC774\uC988", "\uB3C4\uD2B8 UI \uD504\uB808\uC784 \uD655\uC7A5"],
19243
+ en: ["9-slice pixel border", "nine-patch UI frame", "corner-preserving dialog box"]
19244
+ }
19245
+ },
19246
+ "px-conveyor-elbow-orientation": {
19247
+ targets: ["shape", "scene", "input"],
19248
+ triggers: ["click", "input", "auto"],
19249
+ useCases: {
19250
+ ko: ["90\uB3C4 \uC5D8\uBCF4 \uD0C0\uC77C\uC758 \uAEBE\uC784 \uBC29\uD5A5\uACFC \uBCA8\uD2B8 \uC5ED\uD68C\uC804\uC744 \uC804\uD658\uD574 \uD654\uBB3C \uC0C1\uC790\uC758 \uC774\uC1A1 \uACBD\uB85C\uB97C \uC2DC\uBBAC\uB808\uC774\uC158\uD558\uAE30"],
19251
+ en: ["Switch 90-degree conveyor elbow orientation and belt flow direction to route cargo crates along an L-shaped factory track"]
19252
+ },
19253
+ aliases: {
19254
+ ko: ["\uCEE8\uBCA0\uC774\uC5B4 \uC5D8\uBCF4 \uD68C\uC804", "\uACF5\uC7A5 \uBCA8\uD2B8 \uBC29\uD5A5 \uC804\uD658", "\uBB3C\uB958 \uD0C0\uC77C \uC560\uB2C8\uBA54\uC774\uC158"],
19255
+ en: ["conveyor belt corner", "factory track routing", "elbow tile orientation"]
19256
+ }
19257
+ },
19258
+ "px-one-way-platform-collision": {
19259
+ targets: ["shape", "scene", "input"],
19260
+ triggers: ["click", "input"],
19261
+ useCases: {
19262
+ ko: ["\uD558\uB2E8 \uC810\uD504 \uD1B5\uACFC\xB7\uC0C1\uB2E8 \uCC29\uC9C0\xB7\uD558\uD5A5 \uD1B5\uACFC \uC785\uB825 3\uAC00\uC9C0 \uBAA8\uB4DC\uC5D0\uC11C \uB2E8\uBC29\uD5A5 \uBC1C\uD310\uC758 \uCDA9\uB3CC \uD310\uC815 \uC870\uAC74\uC744 \uBE44\uAD50\uD558\uAE30"],
19263
+ en: ["Compare one-way platform collision checks across upward jump-through, top surface landing and downward drop-through modes"]
19264
+ },
19265
+ aliases: {
19266
+ ko: ["\uB2E8\uBC29\uD5A5 \uBC1C\uD310 \uCDA9\uB3CC", "\uC810\uD504 \uD1B5\uACFC \uD50C\uB7AB\uD3FC", "\uD558\uD5A5 \uC810\uD504 \uD310\uC815"],
19267
+ en: ["jump-through platform", "one-way collider ledge", "drop-through floor physics"]
19268
+ }
19269
+ },
19270
+ /* 4. Game UI (6) */
19271
+ "px-quest-tracker-states": {
19272
+ targets: ["panel", "list", "input"],
19273
+ triggers: ["click", "input"],
19274
+ useCases: {
19275
+ ko: ["3\uAC1C \uC138\uBD80 \uBAA9\uD45C\uC758 \uCCB4\uD06C \uC0C1\uD0DC\uB97C \uD1A0\uAE00\uD574 \uC9C4\uD589\uB3C4 \uAC8C\uC774\uC9C0\uC640 \uC644\uB8CC \uBC30\uB108\xB7\uBCF4\uC0C1 \uC0C1\uC790 \uD65C\uC131\uD654\uB97C \uC804\uD658\uD558\uAE30"],
19276
+ en: ["Toggle 3 quest objective checkboxes to update the progress bar and unlock the quest completion banner and reward chest"]
19277
+ },
19278
+ aliases: {
19279
+ ko: ["\uD018\uC2A4\uD2B8 \uD2B8\uB798\uCEE4 HUD", "\uBAA9\uD45C \uB2EC\uC131 \uCCB4\uD06C\uB9AC\uC2A4\uD2B8", "\uC784\uBB34 \uC644\uB8CC \uC54C\uB9BC\uCC3D"],
19280
+ en: ["quest log tracker", "mission objective checklist", "RPG quest completion HUD"]
19281
+ }
19282
+ },
19283
+ "px-radial-spell-hotbar-cooldown": {
19284
+ targets: ["button", "panel", "input"],
19285
+ triggers: ["click", "input", "auto"],
19286
+ useCases: {
19287
+ ko: ["4\uAC1C \uC2A4\uD0AC \uC2AC\uB86F\uC758 \uBD80\uCC44\uAF34 \uCFE8\uD0C0\uC784 \uB9C8\uC2A4\uD06C \uAC01\uB3C4\uC640 \uC794\uC5EC \uC2DC\uAC04 \uC22B\uC790\uB97C \uC870\uC808\uD558\uACE0 \uC7AC\uC0AC\uC6A9 \uC644\uB8CC \uC810\uBA78\uC744 \uD655\uC778\uD558\uAE30"],
19288
+ en: ["Control radial cooldown wedge masks and remaining second readouts across 4 spell hotbar slots with ready flash feedback"]
19289
+ },
19290
+ aliases: {
19291
+ ko: ["\uC2A4\uD0AC \uCFE8\uD0C0\uC784 \uD56B\uBC14", "\uC6D0\uD615 \uCFE8\uB2E4\uC6B4 \uB9C8\uC2A4\uD06C", "\uC561\uC158\uBC14 \uC7AC\uC0AC\uC6A9 \uB300\uAE30\uC2DC\uAC04"],
19292
+ en: ["radial cooldown sweep", "spell action bar HUD", "clock-wipe skill timer"]
19293
+ }
19294
+ },
19295
+ "px-turn-order-timeline": {
19296
+ targets: ["panel", "list", "input"],
19297
+ triggers: ["click", "input"],
19298
+ useCases: {
19299
+ ko: ["\uD134 \uC9C4\uD589\uACFC \uAC00\uC18D \uBC84\uD504 \uD1A0\uAE00\uC5D0 \uB530\uB77C \uD0C0\uC784\uB77C\uC778 \uC704 \uCD08\uC0C1\uD654 \uD1A0\uD070\uC758 \uD589\uB3D9 \uC21C\uC11C\uB97C \uC2E4\uC2DC\uAC04 \uC7AC\uC815\uB82C\uD558\uAE30"],
19300
+ en: ["Advance combat turns and toggle a haste speed buff to reorder unit portrait tokens along a tactical turn timeline"]
19301
+ },
19302
+ aliases: {
19303
+ ko: ["\uD134 \uC21C\uC11C \uD0C0\uC784\uB77C\uC778", "\uC804\uD22C \uC774\uB2C8\uC154\uD2F0\uBE0C \uBC14", "\uC18D\uB3C4 \uBC84\uD504 \uC21C\uC11C \uBCC0\uACBD"],
19304
+ en: ["turn order initiative bar", "ATB combat timeline", "tactical speed queue HUD"]
19305
+ }
19306
+ },
19307
+ "px-branching-dialogue-choices": {
19308
+ targets: ["panel", "button", "input"],
19309
+ triggers: ["click", "input"],
19310
+ useCases: {
19311
+ ko: ["\uC6A9\uAE30\xB7\uAE30\uB9CC\xB7\uC678\uAD50 3\uAC00\uC9C0 \uB300\uD654 \uC120\uD0DD\uC9C0\uB97C \uBE44\uAD50\uD574 NPC \uD45C\uC815\xB7\uD638\uAC10\uB3C4 \uC218\uCE58\xB7\uC2A4\uD1A0\uB9AC \uBD84\uAE30 \uD0DC\uADF8 \uBCC0\uD654\uB97C \uBBF8\uB9AC\uBCF4\uAE30"],
19312
+ en: ["Compare Valor, Cunning and Diplomacy dialogue choices to preview NPC expression shifts, affinity deltas and story branch tags"]
19313
+ },
19314
+ aliases: {
19315
+ ko: ["\uBD84\uAE30\uD615 \uB300\uD654 \uC120\uD0DD\uC9C0", "\uD638\uAC10\uB3C4 \uB300\uD654\uCC3D", "\uC131\uD5A5 \uC120\uD0DD UI"],
19316
+ en: ["branching dialogue menu", "RPG choice consequence preview", "NPC affinity response UI"]
19317
+ }
19318
+ },
19319
+ "px-equipment-stat-comparison": {
19320
+ targets: ["panel", "card", "input"],
19321
+ triggers: ["click", "input"],
19322
+ useCases: {
19323
+ ko: ["\uD6C4\uBCF4 \uBB34\uAE30 3\uC885\uC744 \uC120\uD0DD\uD574 \uD604\uC7AC \uC7A5\uBE44 \uB300\uBE44 \uACF5\uACA9\uB825\xB7\uC18D\uB3C4\xB7\uCE58\uBA85\uD0C0 \uC99D\uAC10 \uD654\uC0B4\uD45C\uC640 \uC2A4\uD0EF \uB9C9\uB300\uB97C \uBE44\uAD50\uD558\uACE0 \uC7A5\uCC29 \uAD50\uCCB4\uD558\uAE30"],
19324
+ en: ["Select among 3 candidate weapons to compare ATK, SPD and CRIT stat bars with signed delta indicators and swap equipped gear"]
19325
+ },
19326
+ aliases: {
19327
+ ko: ["\uC7A5\uBE44 \uC2A4\uD0EF \uBE44\uAD50\uCC3D", "\uBB34\uAE30 \uAD50\uCCB4 \uB2A5\uB825\uCE58 \uC99D\uAC10", "RPG \uC778\uBCA4\uD1A0\uB9AC \uBE44\uAD50"],
19328
+ en: ["equipment stat diff panel", "weapon comparison tooltip", "RPG gear delta bars"]
19329
+ }
19330
+ },
19331
+ "px-collectible-badge-grid": {
19332
+ targets: ["panel", "card", "input"],
19333
+ triggers: ["click", "input"],
19334
+ useCases: {
19335
+ ko: ["3\xD72 \uBC30\uC9C0 \uB3C4\uAC10 \uC2AC\uB86F\uC744 \uC120\uD0DD\uD558\uACE0 \uC7A0\uAE08\xB7\uD574\uAE08 \uC0C1\uD0DC\uB97C \uC804\uD658\uD574 \uC2E4\uB8E8\uC5E3 \uB9C8\uC2A4\uD0B9\uACFC \uC0C1\uC138 \uC124\uBA85\xB7\uC218\uC9D1\uB960\uC744 \uD655\uC778\uD558\uAE30"],
19336
+ en: ["Select 3x2 badge codex slots and toggle lock or unlock states to inspect silhouette masks, lore details and collection progress"]
19337
+ },
19338
+ aliases: {
19339
+ ko: ["\uBC30\uC9C0 \uC218\uC9D1 \uB3C4\uAC10", "\uC5C5\uC801 \uD574\uAE08 \uADF8\uB9AC\uB4DC", "\uCEEC\uB809\uC158 \uB2EC\uC131\uB960 UI"],
19340
+ en: ["collectible badge codex", "achievement unlock grid", "trophy collection menu"]
19341
+ }
19342
+ },
19343
+ /* 5. Effects (6) */
19344
+ "px-teleport-dissolve-reform": {
19345
+ targets: ["shape", "scene", "input"],
19346
+ triggers: ["click", "input", "auto"],
19347
+ useCases: {
19348
+ ko: ["\uACE0\uC815 \uBCA0\uC774\uC5B4 \uC784\uACC4\uAC12 \uB9C8\uC2A4\uD06C\uB85C \uCE90\uB9AD\uD130\uAC00 \uC67C\uD3B8 \uD328\uB4DC\uC5D0\uC11C \uBD84\uD574\uB418\uC5B4 \uC624\uB978\uD3B8 \uD328\uB4DC\uC5D0\uC11C \uC7AC\uACB0\uD569\uD558\uB294 \uC21C\uAC04\uC774\uB3D9 \uC5F0\uCD9C\uD558\uAE30"],
19349
+ en: ["Dissolve a character on Pad A and reform on Pad B using a stable Bayer threshold mask and cyan warp beam column"]
19350
+ },
19351
+ aliases: {
19352
+ ko: ["\uD154\uB808\uD3EC\uD2B8 \uBD84\uD574 \uC7AC\uACB0\uD569", "\uC21C\uAC04\uC774\uB3D9 \uB514\uC878\uBE0C \uB9C8\uC2A4\uD06C", "\uD53D\uC140 \uC6CC\uD504 \uC774\uD399\uD2B8"],
19353
+ en: ["teleport dissolve shader", "Bayer matrix materialization", "pixel warp beam effect"]
19354
+ }
19355
+ },
19356
+ "px-stepped-lightning-chain": {
19357
+ targets: ["shape", "scene", "input"],
19358
+ triggers: ["click", "input", "auto"],
19359
+ useCases: {
19360
+ ko: ["\uD0C0\uAC9F \uD06C\uB9AC\uC2A4\uD0C8 \uAC1C\uC218\uC640 \uBC29\uC804 \uD30C\uD615 \uB2E8\uACC4\uC5D0 \uB9DE\uCDB0 \uC9C1\uAD50 \uACC4\uB2E8\uD615 \uC5F0\uC1C4 \uBC88\uAC1C \uC544\uD06C\uC640 \uD53C\uACA9 \uC810\uBA78\uC744 \uC81C\uC5B4\uD558\uAE30"],
19361
+ en: ["Control stepped orthogonal chain lightning arcs and impact rings jumping from a caster staff across 1 to 3 crystal targets"]
19362
+ },
19363
+ aliases: {
19364
+ ko: ["\uC5F0\uC1C4 \uBC88\uAC1C \uC774\uD399\uD2B8", "\uCCB4\uC778 \uB77C\uC774\uD2B8\uB2DD \uB3C4\uD2B8", "\uACC4\uB2E8\uD615 \uC804\uACA9 \uC544\uD06C"],
19365
+ en: ["chain lightning arc", "stepped pixel thunderbolt", "electric shock jump VFX"]
19366
+ }
19367
+ },
19368
+ "px-directional-crt-glitch": {
19369
+ targets: ["image", "panel", "input"],
19370
+ triggers: ["click", "input", "auto"],
19371
+ useCases: {
19372
+ ko: ["\uC218\uD3C9\xB7\uC218\uC9C1 \uCD95\uACFC \uC65C\uACE1 \uAC15\uB3C4\uB97C \uC870\uC808\uD574 \uD640\uB85C\uADF8\uB7A8 \uC2AC\uB77C\uC774\uC2A4 \uBC00\uB9BC\uACFC RGB \uC0C9\uC218\uCC28 \uBD84\uB9AC\xB7\uC8FC\uC0AC\uC120 \uB178\uC774\uC988\uB97C \uC5F0\uCD9C\uD558\uAE30"],
19373
+ en: ["Adjust horizontal or vertical glitch axis and distortion intensity for slice tear offsets, RGB channel split and scanlines"]
19374
+ },
19375
+ aliases: {
19376
+ ko: ["CRT \uAE00\uB9AC\uCE58 \uC65C\uACE1", "\uC0C9\uC218\uCC28 \uC2AC\uB77C\uC774\uC2A4 \uD2F0\uC5B4\uB9C1", "\uD640\uB85C\uADF8\uB7A8 \uB178\uC774\uC988 \uD6A8\uACFC"],
19377
+ en: ["directional CRT glitch", "chromatic aberration tear", "hologram scanline distortion"]
19378
+ }
19379
+ },
19380
+ "px-ground-shockwave-rings": {
19381
+ targets: ["shape", "scene", "input"],
19382
+ triggers: ["click", "input", "auto"],
19383
+ useCases: {
19384
+ ko: ["\uC9C0\uBA74\uC744 \uAC15\uD0C0\uD55C \uC9C0\uC810\uC5D0\uC11C \uD37C\uC838 \uB098\uAC00\uB294 \uB3D9\uC2EC \uD0C0\uC6D0 \uCDA9\uACA9\uD30C \uB9C1\uACFC \uC21C\uCC28\uC801\uC73C\uB85C \uC19F\uAD6C\uCE58\uB294 \uC554\uC11D \uD30C\uD3B8\uC744 \uC7AC\uC0DD\uD558\uAE30"],
19385
+ en: ["Trigger expanding concentric ground shockwave rings and sequentially heaving rock pillars from an impact epicenter"]
19386
+ },
19387
+ aliases: {
19388
+ ko: ["\uC9C0\uBA74 \uCDA9\uACA9\uD30C \uB9C1", "\uB300\uC9C0 \uAC15\uD0C0 \uD30C\uB3D9", "\uBC14\uC704 \uC735\uAE30 \uC774\uD399\uD2B8"],
19389
+ en: ["ground slam shockwave", "seismic ring expansion", "earth shatter rock heave"]
19390
+ }
19391
+ },
19392
+ "px-ice-freeze-thaw-spread": {
19393
+ targets: ["shape", "scene", "input"],
19394
+ triggers: ["click", "input", "auto"],
19395
+ useCases: {
19396
+ ko: ["\uB9E8\uD574\uD2BC \uAC70\uB9AC \uBC18\uACBD\uC5D0 \uB530\uB77C \uC911\uC559 \uD06C\uB9AC\uC2A4\uD0C8\uC5D0\uC11C \uD37C\uC838 \uB098\uAC00\uB294 \uC11C\uB9AC \uD0C0\uC77C \uACB0\uBE59\uACFC \uD574\uBE59 \uBCF5\uC6D0 \uC560\uB2C8\uBA54\uC774\uC158 \uC81C\uC5B4\uD558\uAE30"],
19397
+ en: ["Spread and recede hexagonal frost tiles and ice spikes outward from a central crystal using Manhattan distance rings"]
19398
+ },
19399
+ aliases: {
19400
+ ko: ["\uC5BC\uC74C \uACB0\uBE59 \uD574\uBE59 \uD655\uC0B0", "\uC11C\uB9AC \uD0C0\uC77C \uC804\uD30C", "\uBE59\uACB0 \uB9C8\uBC95 \uBC94\uC704 \uD6A8\uACFC"],
19401
+ en: ["ice freeze spread VFX", "frost tile propagation", "radial glacial thaw"]
19402
+ }
19403
+ },
19404
+ "px-pixel-portal-swirl": {
19405
+ targets: ["shape", "scene", "input"],
19406
+ triggers: ["click", "input", "auto"],
19407
+ useCases: {
19408
+ ko: ["\uADE0\uC5F4 \uC810\uD654\uBD80\uD130 \uC18C\uC6A9\uB3CC\uC774 \uD655\uC7A5\xB7\uC720\uC9C0\xB7\uBD95\uAD34\uAE4C\uC9C0 \uC2DC\uAC04 \uC81C\uD55C\uC774 \uC788\uB294 \uCC28\uC6D0 \uD3EC\uD138 \uC0DD\uC560\uC8FC\uAE30\uC640 \uADA4\uB3C4 \uC785\uC790\uB97C \uC81C\uC5B4\uD558\uAE30"],
19409
+ en: ["Scrub or play a time-bounded pixel portal lifecycle from rift ignition and vortex spin to collapse with orbiting particles"]
19410
+ },
19411
+ aliases: {
19412
+ ko: ["\uD53D\uC140 \uD3EC\uD138 \uC18C\uC6A9\uB3CC\uC774", "\uCC28\uC6D0\uBB38 \uAC1C\uBC29 \uBD95\uAD34", "\uBCF4\uD14D\uC2A4 \uC2A4\uC6D4 \uC774\uD399\uD2B8"],
19413
+ en: ["pixel vortex portal", "dimensional rift lifecycle", "swirling gate VFX"]
19414
+ }
19415
+ }
19416
+ };
19417
+
19418
+ // ../../packages/catalog/src/search-metadata/additions/scifi.ts
19419
+ var SCIFI_SEARCH_METADATA = {
19420
+ "st-mobius-half-twist-ribbon": {
19421
+ targets: ["shape", "image"],
19422
+ triggers: ["static"],
19423
+ aliases: { ko: ["\uBAFC\uBE44\uC6B0\uC2A4 \uB760", "\uBC18\uD68C\uC804 \uACE1\uBA74"], en: ["M\xF6bius band", "half-twisted strip"] },
19424
+ useCases: { ko: ["\uBC18\uD68C\uC804 \uC811\uD569\uACFC \uD558\uB098\uC758 \uACBD\uACC4\uB97C \uACE0\uC815 \uBCA1\uD130 \uB9AC\uBCF8\uC73C\uB85C \uD45C\uD604\uD558\uAE30"], en: ["Illustrate a half-twist seam and single boundary with a static vector ribbon"] }
19425
+ },
19426
+ "st-koch-fractal-outline": {
19427
+ targets: ["shape", "image"],
19428
+ triggers: ["static"],
19429
+ aliases: { ko: ["\uCF54\uD750 \uB208\uC1A1\uC774 \uC724\uACFD", "\uC0BC\uAC01 \uC790\uAE30\uC720\uC0AC \uACE1\uC120"], en: ["Koch snowflake boundary", "recursive triangular outline"] },
19430
+ useCases: { ko: ["\uC138 \uBC88\uC758 \uC120\uBD84 \uBD84\uD560\uB85C \uC790\uAE30\uC720\uC0AC \uC724\uACFD\uACFC \uC721\uBC29 \uB300\uCE6D\uC744 \uC815\uC801\uC73C\uB85C \uD45C\uD604\uD558\uAE30"], en: ["Show self-similar contours and sixfold symmetry using three static subdivision passes"] }
19431
+ },
19432
+ "st-tetrahedral-ball-stick": {
19433
+ targets: ["shape", "image"],
19434
+ triggers: ["static"],
19435
+ aliases: { ko: ["\uBA54\uD14C\uC778 \uBCFC\uC564\uC2A4\uD2F1", "\uC815\uC0AC\uBA74\uCCB4 \uC6D0\uC790 \uBAA8\uD615"], en: ["methane ball-and-stick", "tetrahedral atomic model"] },
19436
+ useCases: { ko: ["\uD0C4\uC18C\uC640 \uB124 \uC218\uC18C\uC758 \uC774\uC0C1\uC801\uC778 \uC815\uC0AC\uBA74\uCCB4 \uBC30\uCE58\uB97C \uAD6C\uC640 \uB9C9\uB300\uB85C \uC815\uC801\uC73C\uB85C \uC2DC\uAC01\uD654\uD558\uAE30"], en: ["Visualize an ideal tetrahedral arrangement of carbon and four hydrogens using static spheres and sticks"] }
19437
+ },
19438
+ "st-third-angle-multiview": {
19439
+ targets: ["image", "shape"],
19440
+ triggers: ["static"],
19441
+ aliases: { ko: ["\uC81C3\uAC01\uBC95 \uC0BC\uBA74\uB3C4", "\uC815\uB82C\uB41C \uC815\uD22C\uC0C1 \uB3C4\uBA74"], en: ["third-angle multiview", "aligned orthographic views"] },
19442
+ useCases: { ko: ["\uAC19\uC740 \uACC4\uB2E8 \uBD80\uD488\uC758 \uC0C1\uBA74\xB7\uC815\uBA74\xB7\uC6B0\uCE21\uBA74 \uCE58\uC218 \uAD00\uACC4\uB97C \uC815\uC801\uC778 \uD22C\uC0C1\uC120\uC73C\uB85C \uBCF4\uC5EC \uC8FC\uAE30"], en: ["Show dimensional relationships between top, front and right views of one stepped part using static projection guides"] }
19443
+ },
19444
+ "st-penrose-impossible-tribar": {
19445
+ targets: ["shape", "image"],
19446
+ triggers: ["static"],
19447
+ aliases: { ko: ["\uD39C\uB85C\uC988 \uC0BC\uAC01\uD615", "\uBD88\uAC00\uB2A5 \uD2B8\uB77C\uC774\uBC14"], en: ["Penrose triangle", "impossible tribar"] },
19448
+ useCases: { ko: ["\uC138 \uBCF4\uC758 \uBAA8\uC21C\uB41C \uC55E\uB4A4 \uC5F0\uACB0\uC744 \uC815\uC801\uC778 \uBCA1\uD130 \uCC29\uC2DC\uB85C \uBCF4\uC5EC \uC8FC\uAE30"], en: ["Show contradictory depth joins between three beams as a static vector illusion"] }
19449
+ },
19450
+ "st-hidden-line-isometric": {
19451
+ targets: ["image", "shape"],
19452
+ triggers: ["static"],
19453
+ aliases: { ko: ["\uC228\uC740 \uAD6C\uBA4D \uD30C\uC120 \uB3C4\uBA74", "\uC740\uC120 \uC81C\uB3C4"], en: ["hidden-edge drafting", "dashed concealed-hole drawing"] },
19454
+ useCases: { ko: ["\uBD88\uD22C\uBA85 \uBE14\uB85D\uC758 \uBCF4\uC774\uB294 \uAD6C\uBA4D \uC785\uAD6C\uC640 \uC228\uC740 \uBCBD\uC744 \uC2E4\uC120\xB7\uD30C\uC120\uC73C\uB85C \uAD6C\uBCC4\uD558\uAE30"], en: ["Distinguish a visible hole mouth from concealed walls in an opaque block using solid and dashed lines"] }
19455
+ },
19456
+ "st-pcb-copper-traces": {
19457
+ targets: ["image", "scene"],
19458
+ triggers: ["static"],
19459
+ aliases: { ko: ["\uC778\uC1C4\uD68C\uB85C \uAD6C\uB9AC \uD2B8\uB799", "PCB \uBC30\uC120 \uD328\uD134"], en: ["printed-circuit copper tracks", "PCB routing pattern"] },
19460
+ useCases: { ko: ["\uCE69 \uD540\uC5D0\uC11C \uBE44\uC544\uB85C \uC774\uC5B4\uC9C0\uB294 \uAD6C\uB9AC \uD2B8\uB799\uACFC \uAE30\uD310\uC744 \uC815\uC801\uC778 \uC7A5\uBE44 \uC774\uBBF8\uC9C0\uB85C \uD45C\uD604\uD558\uAE30"], en: ["Illustrate a static equipment board with copper tracks connecting chip pins to vias"] }
19461
+ },
19462
+ "st-opart-pinched-checker": {
19463
+ targets: ["image", "background"],
19464
+ triggers: ["static"],
19465
+ aliases: { ko: ["\uC911\uC559 \uC555\uCD95 \uCCB4\uD06C \uD328\uD134", "\uD540\uCE58 \uCCB4\uCEE4 \uCC29\uC2DC"], en: ["center-compressed checker pattern", "pinched checker illusion"] },
19466
+ useCases: { ko: ["\uCCB4\uD06C \uC5F4 \uD3ED\uC744 \uC911\uC559\uC73C\uB85C \uC881\uD600 \uC811\uD788\uB294 \uD3C9\uBA74 \uAC19\uC740 \uC815\uC801 \uAE30\uD558 \uCC29\uC2DC \uB9CC\uB4E4\uAE30"], en: ["Suggest a folding plane with a static geometric illusion of checker columns narrowing toward the center"] }
19467
+ },
19468
+ "st-xray-device-shell": {
19469
+ targets: ["image", "scene"],
19470
+ triggers: ["static"],
19471
+ aliases: { ko: ["\uBC18\uD22C\uBA85 \uC6D0\uD1B5 \uC7A5\uBE44", "\uB0B4\uBD80 \uCF54\uC77C \uD22C\uC2DC"], en: ["see-through cylindrical device", "transparent-shell coil illustration"] },
19472
+ useCases: { ko: ["\uC605\uC740 \uC6D0\uD1B5 \uC678\uD53C\uC640 \uB0B4\uBD80 \uCD95\xB7\uCF54\uC77C\uC744 \uACB9\uCE5C \uC815\uC801 \uC7A5\uBE44 \uD22C\uC2DC \uC774\uBBF8\uC9C0 \uB9CC\uB4E4\uAE30"], en: ["Create a static see-through device illustration layering a faint cylindrical shell with its internal shaft and coils"] }
19473
+ },
19474
+ "st-holographic-contour-terrain": {
19475
+ targets: ["scene", "image"],
19476
+ triggers: ["static"],
19477
+ aliases: { ko: ["\uCE35\uCE35\uC774 \uC313\uC778 \uC9C0\uD615 \uB4F1\uACE0\uC120", "\uD22C\uC0AC\uB300 \uB4F1\uACE0\uC120 \uC9C0\uD615"], en: ["layered contour terrain", "projected contour relief"] },
19478
+ useCases: { ko: ["\uB9C8\uB984\uBAA8 \uBC1B\uCE68 \uC704\uB85C \uC904\uC5B4\uB4DC\uB294 \uB4F1\uACE0\uC120\uC744 \uC313\uC544 \uC815\uC801\uC778 SF \uC9C0\uD615 \uD22C\uC0AC\uB97C \uD45C\uD604\uD558\uAE30"], en: ["Suggest a static sci-fi terrain projection by stacking shrinking contours above a diamond platform"] }
19479
+ }
19480
+ };
19481
+
19482
+ // ../../packages/catalog/src/search-metadata/additions/scroll.ts
19483
+ var SCROLL_SEARCH_METADATA = {
19484
+ "ly-sticky-group-headers": { "targets": ["list"], "triggers": ["input"], "useCases": { "ko": ["\uC0C9\uC0C1 \uACAC\uBCF8\uC744 \uADF8\uB8F9\uBCC4\uB85C \uD0D0\uC0C9\uD558\uBA74\uC11C \uD604\uC7AC \uADF8\uB8F9 \uC81C\uBAA9 \uC720\uC9C0"], "en": ["Browse grouped color swatches while retaining the current section heading"] }, "aliases": { "ko": ["\uC2A4\uD2F0\uD0A4 \uADF8\uB8F9 \uC81C\uBAA9", "\uBC00\uC5B4\uB0B4\uB294 \uBAA9\uB85D \uD5E4\uB354"], "en": ["sticky section headers", "push-off group headers"] } },
19485
+ "ly-frozen-table-axes": { "targets": ["list", "panel"], "triggers": ["input"], "useCases": { "ko": ["\uAC00\uB85C\xB7\uC138\uB85C\uB85C \uD45C\uB97C \uD0D0\uC0C9\uD558\uBA74\uC11C \uC5F4 \uC81C\uBAA9\uACFC \uCCAB \uC5F4 \uC774\uB984 \uC720\uC9C0"], "en": ["Explore a table on both axes while retaining column headers and first-column row names"] }, "aliases": { "ko": ["\uC591\uCD95 \uC2A4\uD2F0\uD0A4 \uD45C", "\uD5E4\uB354\uC640 \uCCAB \uC5F4 \uACE0\uC815"], "en": ["frozen table header and column", "two-axis sticky table"] } },
19486
+ "ly-scroll-edge-shadows": { "targets": ["list"], "triggers": ["input"], "useCases": { "ko": ["\uBB38\uC11C \uBAA9\uB85D\uC5D0\uC11C \uC544\uC9C1 \uB0A8\uC740 \uC704\uC544\uB798 \uCF58\uD150\uCE20 \uBC29\uD5A5\uC744 CSS \uADF8\uB9BC\uC790\uB85C \uD45C\uC2DC"], "en": ["Use CSS shadows to indicate remaining content above or below a document list"] }, "aliases": { "ko": ["\uC2A4\uD06C\uB864 \uAC00\uC7A5\uC790\uB9AC \uADF8\uB9BC\uC790", "\uB85C\uCEEC \uBC30\uACBD \uADF8\uB9BC\uC790"], "en": ["scroll edge shadows", "local background scroll shadows"] } },
19487
+ "ly-independent-scroll-panes": { "targets": ["list", "panel"], "triggers": ["input"], "useCases": { "ko": ["\uB450 \uBAA9\uB85D\uC758 \uC77D\uB358 \uC704\uCE58\uB97C \uAC01\uAC01 \uC720\uC9C0\uD558\uBA70 \uB098\uB780\uD788 \uD0D0\uC0C9"], "en": ["Browse two lists side by side while each retains its own reading position"] }, "aliases": { "ko": ["\uB3C5\uB9BD \uC2A4\uD06C\uB864 \uD328\uB110", "\uBD84\uD560 \uC2A4\uD06C\uB864 \uBAA9\uB85D"], "en": ["independent scroll panes", "split scroll regions"] } },
19488
+ "ly-nested-axis-collections": { "targets": ["list", "image", "panel"], "triggers": ["input"], "useCases": { "ko": ["\uC138\uB85C \uCEEC\uB809\uC158\uACFC \uAC01 \uAC00\uB85C \uC791\uD488 \uC120\uBC18\uC744 \uB3C5\uB9BD\uC801\uC73C\uB85C \uD0D0\uC0C9"], "en": ["Browse vertical collections and each horizontal artwork shelf independently"] }, "aliases": { "ko": ["\uC911\uCCA9 \uCD95 \uC2A4\uD06C\uB864", "\uAC00\uB85C \uC791\uD488 \uC120\uBC18"], "en": ["nested-axis scroll shelves", "horizontal collection shelves"] } },
19489
+ "ly-reading-scroll-progress": { "targets": ["text", "panel"], "triggers": ["input"], "useCases": { "ko": ["\uC2E4\uC81C \uBB38\uC11C \uC2A4\uD06C\uB864 \uBC94\uC704 \uC548\uC5D0\uC11C \uD604\uC7AC \uC704\uCE58\uB97C \uC9C4\uD589\uC120\uC73C\uB85C \uD45C\uC2DC"], "en": ["Show the current position within a real document scroll range"] }, "aliases": { "ko": ["\uBB38\uC11C \uC2A4\uD06C\uB864 \uC9C4\uD589\uC120", "\uC77D\uAE30 \uC704\uCE58 \uC9C4\uD589 \uD45C\uC2DC"], "en": ["document scroll progress", "reading position bar"] } },
19490
+ "ly-proportional-scroll-sync": { "targets": ["text", "panel"], "triggers": ["input"], "useCases": { "ko": ["\uAE38\uC774\uAC00 \uB2E4\uB978 \uB450 \uBB38\uC11C\uC758 \uC2E4\uC81C \uC2A4\uD06C\uB864 \uBC94\uC704\uB97C \uBE44\uC728\uB85C \uC5F0\uACB0"], "en": ["Link the actual scroll ranges of two differently sized documents by proportion"] }, "aliases": { "ko": ["\uBE44\uB840 \uB3D9\uAE30 \uC2A4\uD06C\uB864", "\uC5F0\uACB0\uB41C \uBB38\uC11C \uC2A4\uD06C\uB864"], "en": ["proportional document scroll sync", "linked scroll ranges"] } },
19491
+ "ly-prepend-scroll-anchor": { "targets": ["list"], "triggers": ["click", "input"], "useCases": { "ko": ["\uC55E\uC120 \uB85C\uCEEC \uAE30\uB85D\uC744 \uC0BD\uC785\uD574\uB3C4 \uD604\uC7AC \uD589\uC758 \uD654\uBA74 \uC704\uCE58 \uC720\uC9C0"], "en": ["Preserve visible row positions while prepending earlier local records"] }, "aliases": { "ko": ["\uAE30\uB85D \uD504\uB9AC\uD39C\uB4DC \uC704\uCE58 \uBCF4\uC815", "\uC2A4\uD06C\uB864 \uC575\uCEE4 \uBCF4\uC874"], "en": ["scroll-preserving prepend", "history prepend anchoring"] } },
19492
+ "ly-fixed-row-virtual-scroll": { "targets": ["list"], "triggers": ["input"], "useCases": { "ko": ["\uACE0\uC815 \uB192\uC774 \uAE34 \uBAA9\uB85D\uC758 \uC804\uCCB4 \uC2A4\uD06C\uB864 \uAE38\uC774\uB97C \uC720\uC9C0\uD558\uBA74\uC11C \uC8FC\uBCC0 \uD589\uB9CC \uB80C\uB354\uB9C1"], "en": ["Render nearby fixed-height rows while preserving the full long-list scroll extent"] }, "aliases": { "ko": ["\uACE0\uC815 \uD589 \uC708\uB3C4\uC789", "\uACE0\uC815 \uB192\uC774 \uAC00\uC0C1 \uBAA9\uB85D"], "en": ["fixed-row windowing", "fixed-height virtual list"] } },
19493
+ "ly-stable-scrollbar-gutter": { "targets": ["list", "input"], "triggers": ["input"], "useCases": { "ko": ["\uC9E7\uC740 \uD30C\uC77C \uBAA9\uB85D\uACFC \uAE34 \uBAA9\uB85D\uC744 \uC804\uD658\uD574\uB3C4 \uC2A4\uD06C\uB864\uBC14 \uC591\uCABD \uC5EC\uBC31\uACFC \uBCF8\uBB38 \uC815\uB82C \uC720\uC9C0"], "en": ["Keep symmetric scrollbar gutters and content alignment when switching between short and long file lists"] }, "aliases": { "ko": ["\uC591\uCABD \uACE0\uC815 \uC2A4\uD06C\uB864\uBC14 \uAC70\uD130", "\uC2A4\uD06C\uB864\uBC14 \uACF5\uAC04 \uC608\uC57D"], "en": ["stable both-edge scrollbar gutter", "reserved scrollbar space"] } }
19494
+ };
19495
+
19496
+ // ../../packages/catalog/src/search-metadata/additions/shader.ts
19497
+ var SHADER_SEARCH_METADATA = {
19498
+ "mg-voronoi-cell-field": { targets: ["background"], triggers: ["input"], useCases: { ko: ["\uC2AC\uB77C\uC774\uB354\uB85C \uAE30\uC900\uC810\uC744 \uC62E\uACA8 \uCD5C\uADFC\uC811 \uC140\uC758 \uACBD\uACC4 \uC7AC\uD3B8\uC744 \uBCF4\uC5EC \uC8FC\uAE30"], en: ["Move a site with a slider to demonstrate nearest-site cell repartitioning"] }, aliases: { ko: ["\uCD5C\uADFC\uC811\uC810 \uBD84\uD560", "\uBCF4\uB85C\uB178\uC774 \uB2E4\uC774\uC5B4\uADF8\uB7A8"], en: ["nearest-site partition", "Voronoi diagram"] } },
19499
+ "mg-occluder-projected-shadow": { targets: ["scene", "background"], triggers: ["input"], useCases: { ko: ["\uC2AC\uB77C\uC774\uB354\uB85C \uAC00\uB9BC\uB9C9\uC744 \uC62E\uACA8 \uC810\uAD11\uC6D0\uC5D0 \uB9DE\uB294 \uADF8\uB9BC\uC790 \uBC29\uD5A5\uC744 \uBCF4\uC5EC \uC8FC\uAE30"], en: ["Move an occluder with a slider to show the projected shadow direction from a fixed point light"] }, aliases: { ko: ["\uC810\uAD11\uC6D0 \uD22C\uC601 \uADF8\uB9BC\uC790", "\uAC00\uB9BC\uB9C9 \uCC28\uD3D0"], en: ["point-light projected shadow", "occluder shadow projection"] } },
19500
+ "mg-binary-dither-gradient": { "targets": ["background"], "triggers": ["static"], "useCases": { "ko": ["\uACE0\uC815 \uB178\uC774\uC988\uB97C \uC784\uACC4 \uCC98\uB9AC\uD574 \uC810 \uBC00\uB3C4\uB9CC\uC73C\uB85C \uBA85\uC554 \uADF8\uB77C\uB370\uC774\uC158 \uD45C\uD604"], "en": ["Express a tonal gradient through dot density by thresholding fixed noise"] }, "aliases": { "ko": ["\uC774\uC9C4 \uC810 \uBC00\uB3C4 \uADF8\uB77C\uB370\uC774\uC158", "\uB178\uC774\uC988 \uC784\uACC4 \uB514\uB354\uB9C1"], "en": ["binary dot-density gradient", "noise threshold dithering"] } },
19501
+ "mg-moire-ring-interference": { "targets": ["background"], "triggers": ["input"], "useCases": { "ko": ["\uC2AC\uB77C\uC774\uB354\uB85C \uC6D0\uBB34\uB2AC \uC911\uC2EC \uD3B8\uCC28\uB97C \uBC14\uAFD4 \uBAA8\uC544\uB808 \uAC04\uC12D \uB760 \uD45C\uD604"], "en": ["Vary ring-center offset with a slider to show moire interference bands"] }, "aliases": { "ko": ["\uC6D0\uD615 \uBAA8\uC544\uB808", "\uC6D0\uBB34\uB2AC \uC911\uCCA9 \uAC04\uC12D"], "en": ["circular moire", "overlapping ring interference"] } },
19502
+ "mg-rising-light-particles": { "targets": ["background"], "triggers": ["auto"], "useCases": { "ko": ["\uC11C\uB85C \uB2E4\uB978 \uC704\uC0C1\uC758 \uBE5B \uC785\uC790\uAC00 \uC704\uB85C \uB5A0\uC624\uB974\uB294 \uBC18\uBCF5 \uBC30\uACBD \uD45C\uD604"], "en": ["Create a looping background of rising lights with different phases"] }, "aliases": { "ko": ["\uB5A0\uC624\uB974\uB294 \uBC1C\uAD11 \uC785\uC790", "\uC0C1\uC2B9 \uBE5B \uC810"], "en": ["floating luminous particles", "ascending light dots"] } },
19503
+ "mg-point-lit-noise-surface": { "targets": ["background", "scene"], "triggers": ["input"], "useCases": { "ko": ["\uACE0\uC815 \uB178\uC774\uC988 \uD45C\uBA74 \uC704\uC758 \uC810\uAD11\uC6D0 \uC704\uCE58\uB97C \uC2AC\uB77C\uC774\uB354\uB85C \uBC14\uAFD4 \uBC18\uC9DD\uC784 \uC774\uB3D9 \uD45C\uD604"], "en": ["Move a point light over a fixed noise surface with a slider to shift specular highlights"] }, "aliases": { "ko": ["\uC2A4\uD399\uD058\uB7EC \uC694\uCCA0 \uC870\uBA85", "\uB178\uC774\uC988 \uB192\uC774 \uB9F5 \uC870\uBA85"], "en": ["specular bump lighting", "noise height-map lighting"] } },
19504
+ "mg-turbulence-line-displacement": { "targets": ["background"], "triggers": ["input"], "useCases": { "ko": ["\uC2AC\uB77C\uC774\uB354\uB85C \uACE0\uC815 \uB178\uC774\uC988\uC758 \uAD74\uC808 \uC138\uAE30\uB97C \uBC14\uAFD4 \uC9C1\uC120\uACFC \uBB3C\uACB0 \uC0AC\uC774 \uD45C\uD604"], "en": ["Adjust fixed-noise displacement with a slider to move between straight lines and waves"] }, "aliases": { "ko": ["\uB178\uC774\uC988 \uB514\uC2A4\uD50C\uB808\uC774\uC2A4\uBA3C\uD2B8", "\uD130\uBDF8\uB7F0\uC2A4 \uC120 \uC65C\uACE1"], "en": ["noise displacement", "turbulence line distortion"] } },
19505
+ "mg-theme-blend-lights": { "targets": ["scene", "background"], "triggers": ["click"], "useCases": { "ko": ["\uD1A0\uAE00\uB85C \uD14C\uB9C8\uBCC4 \uC2E4\uC81C \uACF1\uD558\uAE30\xB7\uC2A4\uD06C\uB9B0 \uD63C\uC0C9\uACFC \uAE30\uBCF8 \uB36E\uC5B4\uADF8\uB9AC\uAE30\uB97C \uBE44\uAD50"], "en": ["Toggle actual multiply or screen blending for each theme against normal overpainting"] }, "aliases": { "ko": ["\uD14C\uB9C8\uBCC4 \uC0C9 \uD63C\uD569", "\uACF1\uD558\uAE30 \uC2A4\uD06C\uB9B0 \uD63C\uC0C9"], "en": ["theme-adaptive color blending", "multiply screen lights"] } },
19506
+ "mg-diagonal-meteor-shower": { "targets": ["background"], "triggers": ["auto"], "useCases": { "ko": ["\uACE0\uC815 \uBCC4\uBE5B \uC704\uB85C \uC11C\uB85C \uB2E4\uB978 \uC8FC\uAE30\uC758 \uB300\uAC01\uC120 \uC720\uC131\uACFC \uAF2C\uB9AC \uBC18\uBCF5 \uD45C\uD604"], "en": ["Loop diagonal meteors and their trails over fixed stars with different cycle lengths"] }, "aliases": { "ko": ["\uBCC4\uB625\uBCC4 \uBC30\uACBD", "\uB300\uAC01\uC120 \uC720\uC131 \uAF2C\uB9AC"], "en": ["shooting-star background", "diagonal meteor trails"] } },
19507
+ "mg-faded-line-grid": { "targets": ["background"], "triggers": ["static"], "useCases": { "ko": ["\uC911\uC559 \uC120 \uACA9\uC790\uB97C \uAC00\uC7A5\uC790\uB9AC\uB85C \uD398\uC774\uB4DC\uD574 \uC815\uC801\uC778 \uBC30\uACBD \uD45C\uD604"], "en": ["Create a static background with a central line grid fading toward the edges"] }, "aliases": { "ko": ["\uB77C\uB514\uC5BC \uD398\uC774\uB4DC \uACA9\uC790", "\uB9C8\uC2A4\uD06C \uC120 \uADF8\uB9AC\uB4DC"], "en": ["radial fade grid", "masked line grid"] } }
19508
+ };
19509
+
19510
+ // ../../packages/catalog/src/search-metadata/additions/tactile.ts
19511
+ var TACTILE_SEARCH_METADATA = {
19512
+ "st-stockinette-knit-surface": {
19513
+ "targets": [
19514
+ "panel",
19515
+ "background"
19516
+ ],
19517
+ "triggers": [
19518
+ "static"
19519
+ ],
19520
+ "useCases": {
19521
+ "ko": [
19522
+ "\uC815\uC801\uC778 \uC7AC\uC9C8 \uBA74\uC5D0\uC11C \uB465\uADFC \uC2E4\uC758 \uC138\uB85C \uB2C8\uD2B8 \uCF54\uC640 \uAE4A\uC740 \uD2C8\uC744 \uBCF4\uC5EC \uC904 \uB54C"
19523
+ ],
19524
+ "en": [
19525
+ "Show rounded vertical knit stitches and deep yarn gaps on a static material surface"
19526
+ ]
19527
+ },
19528
+ "aliases": {
19529
+ "ko": [
19530
+ "\uBA54\uB9AC\uC57C\uC2A4 \uD3B8\uC9C1",
19531
+ "\uC2A4\uD1A1\uD0A4\uB124\uD2B8 \uD45C\uBA74"
19532
+ ],
19533
+ "en": [
19534
+ "jersey knit surface",
19535
+ "stockinette texture"
19536
+ ]
19537
+ }
19538
+ },
19539
+ "st-compressed-wool-felt": {
19540
+ "targets": [
19541
+ "panel",
19542
+ "background"
19543
+ ],
19544
+ "triggers": [
19545
+ "static"
19546
+ ],
19547
+ "useCases": {
19548
+ "ko": [
19549
+ "\uC9C1\uC870 \uACA9\uC790 \uC5C6\uC774 \uC9E7\uC740 \uC591\uBAA8 \uC12C\uC720\uAC00 \uC5BD\uD78C \uC870\uBC00\uD55C \uC815\uC801 \uC7AC\uC9C8\uC744 \uBCF4\uC5EC \uC904 \uB54C"
19550
+ ],
19551
+ "en": [
19552
+ "Show a static dense wool surface formed by short tangled fibres without a woven grid"
19553
+ ]
19554
+ },
19555
+ "aliases": {
19556
+ "ko": [
19557
+ "\uC555\uCD95 \uD3A0\uD2B8",
19558
+ "\uC591\uBAA8 \uBD80\uC9C1\uD3EC"
19559
+ ],
19560
+ "en": [
19561
+ "compressed felt texture",
19562
+ "nonwoven wool surface"
19563
+ ]
19564
+ }
19565
+ },
19566
+ "st-white-marble-veining": {
19567
+ "targets": [
19568
+ "panel",
19569
+ "background"
19570
+ ],
19571
+ "triggers": [
19572
+ "static"
19573
+ ],
19574
+ "useCases": {
19575
+ "ko": [
19576
+ "\uC6B0\uC733\uBE5B \uC11D\uC7AC\uC758 \uC815\uC801 \uBA74 \uC548\uC5D0 \uC774\uC5B4\uC9C0\uB294 \uD68C\uC0C9 \uC11D\uB9E5\uACFC \uBD84\uAE30\uB97C \uBCF4\uC5EC \uC904 \uB54C"
19577
+ ],
19578
+ "en": [
19579
+ "Show continuous branching grey veins within a static milky stone surface"
19580
+ ]
19581
+ },
19582
+ "aliases": {
19583
+ "ko": [
19584
+ "\uBC31\uC0C9 \uC11D\uC7AC \uBCA0\uC774\uB2DD",
19585
+ "\uB300\uB9AC\uC11D \uC11D\uB9E5"
19586
+ ],
19587
+ "en": [
19588
+ "marble vein texture",
19589
+ "white stone veining"
19590
+ ]
19591
+ }
19592
+ },
19593
+ "st-crackle-ceramic-glaze": {
19594
+ "targets": [
19595
+ "panel",
19596
+ "background"
19597
+ ],
19598
+ "triggers": [
19599
+ "static"
19600
+ ],
19601
+ "useCases": {
19602
+ "ko": [
19603
+ "\uB9E4\uB044\uB7EC\uC6B4 \uCCAD\uB85D \uC720\uC57D\uACFC \uAC00\uB294 \uBE59\uB82C\uC744 \uC815\uC801\uC778 \uB3C4\uC790\uAE30 \uC811\uC2DC\uC5D0\uC11C \uBCF4\uC5EC \uC904 \uB54C"
19604
+ ],
19605
+ "en": [
19606
+ "Show smooth teal glaze and fine crackle on a static ceramic dish"
19607
+ ]
19608
+ },
19609
+ "aliases": {
19610
+ "ko": [
19611
+ "\uBE59\uB82C \uB3C4\uC790\uAE30",
19612
+ "\uCCAD\uC790 \uC720\uC57D \uADE0\uC5F4"
19613
+ ],
19614
+ "en": [
19615
+ "crazed ceramic glaze",
19616
+ "celadon crackle"
19617
+ ]
17885
19618
  }
17886
19619
  },
17887
19620
  "st-corrugated-cardboard": {
@@ -18144,35 +19877,159 @@ var VFX_SEARCH_METADATA = {
18144
19877
  useCases: { ko: ["\uBC94\uC704 \uC785\uB825\uC73C\uB85C \uBC1D\uC740 \uB3C4\uD615\uB9CC \uCD94\uCD9C\uD55C \uBE14\uB8F8 \uBC18\uACBD\uACFC \uD569\uC131 \uAC15\uB3C4 \uC870\uC808"], en: ["Adjust the radius and additive weight of extracted-highlight bloom with a range input"] },
18145
19878
  aliases: { ko: ["\uBC1D\uC740 \uD53D\uC140 \uBE14\uB8F8", "\uD558\uC774\uB77C\uC774\uD2B8 \uBC1C\uAD11"], en: ["threshold bloom", "highlight glow"] }
18146
19879
  },
18147
- "mg-optical-lens-flare": {
18148
- targets: ["scene", "shape"],
18149
- triggers: ["input"],
18150
- useCases: { ko: ["\uBC94\uC704 \uC785\uB825\uC73C\uB85C \uAD11\uC6D0 \uC704\uCE58\uB97C \uBC14\uAFB8\uBA70 \uBC18\uB300\uD3B8 \uCD95\uC758 \uB80C\uC988 \uACE0\uC2A4\uD2B8 \uBC30\uCE58 \uD655\uC778"], en: ["Move a light source with a range input and inspect lens ghosts on the opposite optical axis"] },
18151
- aliases: { ko: ["\uB80C\uC988 \uACE0\uC2A4\uD2B8", "\uAD11\uD559 \uD50C\uB808\uC5B4"], en: ["lens ghosting", "optical flare"] }
19880
+ "mg-optical-lens-flare": {
19881
+ targets: ["scene", "shape"],
19882
+ triggers: ["input"],
19883
+ useCases: { ko: ["\uBC94\uC704 \uC785\uB825\uC73C\uB85C \uAD11\uC6D0 \uC704\uCE58\uB97C \uBC14\uAFB8\uBA70 \uBC18\uB300\uD3B8 \uCD95\uC758 \uB80C\uC988 \uACE0\uC2A4\uD2B8 \uBC30\uCE58 \uD655\uC778"], en: ["Move a light source with a range input and inspect lens ghosts on the opposite optical axis"] },
19884
+ aliases: { ko: ["\uB80C\uC988 \uACE0\uC2A4\uD2B8", "\uAD11\uD559 \uD50C\uB808\uC5B4"], en: ["lens ghosting", "optical flare"] }
19885
+ },
19886
+ "mg-luma-gradient-wipe": {
19887
+ targets: ["scene", "image"],
19888
+ triggers: ["input"],
19889
+ useCases: { ko: ["\uBC94\uC704 \uC785\uB825\uC73C\uB85C \uACE0\uC815 \uBC1D\uAE30 \uC9C0\uB3C4\uC758 \uC5B4\uB450\uC6B4 \uC601\uC5ED\uBD80\uD130 \uB450 \uD48D\uACBD \uAD50\uCCB4"], en: ["Replace two landscapes from dark luminance-map regions first using a range input"] },
19890
+ aliases: { ko: ["\uBC1D\uAE30 \uB9E4\uD2B8 \uC640\uC774\uD504", "\uADF8\uB808\uC774\uC2A4\uCF00\uC77C \uC640\uC774\uD504"], en: ["luminance matte wipe", "grayscale gradient wipe"] }
19891
+ },
19892
+ "mg-block-dissolve-transition": {
19893
+ targets: ["scene", "image"],
19894
+ triggers: ["input"],
19895
+ useCases: { ko: ["\uBC94\uC704 \uC785\uB825\uC73C\uB85C \uACE0\uC815 \uC21C\uC11C\uC758 \uC815\uC0AC\uAC01 \uBE14\uB85D\uC744 \uC9C0\uC6CC \uB2E4\uC74C \uADF8\uB798\uD53D \uB178\uCD9C"], en: ["Reveal the next graphic by removing square blocks in a fixed order with a range input"] },
19896
+ aliases: { ko: ["\uC815\uC0AC\uAC01 \uBE14\uB85D \uC640\uC774\uD504", "\uBAA8\uC790\uC774\uD06C \uB514\uC878\uBE0C"], en: ["square block wipe", "mosaic dissolve"] }
19897
+ },
19898
+ "mg-clockwise-radial-wipe": {
19899
+ targets: ["scene", "image"],
19900
+ triggers: ["input"],
19901
+ useCases: { ko: ["\uBC94\uC704 \uC785\uB825\uC73C\uB85C \uC911\uC559 \uBD80\uCC44\uAF34\uC744 \uC2DC\uACC4 \uBC29\uD5A5\uC73C\uB85C \uB3CC\uB824 \uB0AE \uB3C4\uC2DC\uC5D0\uC11C \uBC24 \uB3C4\uC2DC\uB85C \uC804\uD658"], en: ["Turn a central sector clockwise with a range input to transition a city from day to night"] },
19902
+ aliases: { ko: ["\uC2DC\uACC4 \uC640\uC774\uD504", "\uC2DC\uACC4 \uBC29\uD5A5 \uBD80\uCC44\uAF34 \uC804\uD658"], en: ["clock wipe", "clockwise sector wipe"] }
19903
+ },
19904
+ "mg-venetian-blinds-transition": {
19905
+ targets: ["scene", "image"],
19906
+ triggers: ["input"],
19907
+ useCases: { ko: ["\uBC94\uC704 \uC785\uB825\uC73C\uB85C \uC0AC\uB9C9\uC758 \uC218\uD3C9 \uB760 \uB192\uC774\uB97C \uD568\uAED8 \uC904\uC5EC \uC0B0\uC545 \uD48D\uACBD \uB178\uCD9C"], en: ["Reveal mountains by shrinking the desert\u2019s horizontal strips together with a range input"] },
19908
+ aliases: { ko: ["\uC218\uD3C9 \uBE14\uB77C\uC778\uB4DC \uC640\uC774\uD504", "\uC218\uD3C9 \uB760 \uC804\uD658"], en: ["horizontal blinds wipe", "horizontal slat transition"] }
19909
+ }
19910
+ };
19911
+
19912
+ // ../../packages/catalog/src/search-metadata/additions/ai.ts
19913
+ var AI_SEARCH_METADATA = {
19914
+ "ai-prompt-box": {
19915
+ targets: ["input", "button", "card"],
19916
+ triggers: ["input", "click"],
19917
+ useCases: {
19918
+ ko: ["\uD14D\uC2A4\uD2B8 \uAE38\uC774\uC5D0 \uB530\uB77C \uD655\uC7A5\uB418\uB294 \uD504\uB86C\uD504\uD2B8 \uC785\uB825\uCC3D\uACFC \uBAA8\uB378 \uC804\uD658"],
19919
+ en: ["Auto-expanding prompt textarea with model toggle and submission"]
19920
+ },
19921
+ aliases: {
19922
+ ko: ["\uC624\uD1A0\uB9AC\uC0AC\uC774\uC988 \uC785\uB825\uCC3D", "\uD504\uB86C\uD504\uD2B8 \uC778\uD48B", "\uCC57\uBD07 \uC785\uB825\uCC3D"],
19923
+ en: ["autoresize prompt input", "chat prompt box"]
19924
+ }
19925
+ },
19926
+ "ai-slash-command": {
19927
+ targets: ["input", "panel", "list"],
19928
+ triggers: ["input", "click"],
19929
+ useCases: {
19930
+ ko: ["\uC2AC\uB798\uC2DC(/) \uBB38\uC790\uB85C \uBA85\uB839\uC5B4 \uBA54\uB274\uB97C \uC5F4\uACE0 \uBC29\uD5A5\uD0A4\uC640 \uC5D4\uD130\uB85C \uC790\uB3D9 \uC644\uC131"],
19931
+ en: ["Trigger slash command popover menu with keyboard navigation and autocomplete"]
19932
+ },
19933
+ aliases: {
19934
+ ko: ["\uC2AC\uB798\uC2DC \uBA54\uB274", "\uCEE4\uB9E8\uB4DC \uD314\uB808\uD2B8", "\uD504\uB86C\uD504\uD2B8 \uB2E8\uCD95\uD0A4"],
19935
+ en: ["slash command palette", "command popover"]
19936
+ }
19937
+ },
19938
+ "ai-context-pill": {
19939
+ targets: ["card", "panel", "chart"],
19940
+ triggers: ["click"],
19941
+ useCases: {
19942
+ ko: ["\uCC38\uC870 \uBB38\uC11C \uD0DC\uADF8 \uCE69\uC744 \uCD94\uAC00/\uC81C\uAC70\uD558\uACE0 \uD1A0\uD070 \uC18C\uBAA8\uC728 \uAC8C\uC774\uC9C0\uB97C \uD655\uC778"],
19943
+ en: ["Manage context document chips and visualize token window utilization"]
19944
+ },
19945
+ aliases: {
19946
+ ko: ["\uD1A0\uD070 \uC0AC\uC6A9\uB7C9 \uAC8C\uC774\uC9C0", "\uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0 \uBC14", "\uBB38\uC11C \uD0DC\uADF8 \uCE69"],
19947
+ en: ["token usage gauge", "context window bar"]
19948
+ }
19949
+ },
19950
+ "ai-streaming-text": {
19951
+ targets: ["text", "button", "card"],
19952
+ triggers: ["click", "auto"],
19953
+ useCases: {
19954
+ ko: ["\uAE5C\uBE61\uC774\uB294 \uD384\uC2A4 \uCE90\uB7FF\uACFC \uD568\uAED8 \uC2E4\uC2DC\uAC04 \uD0C0\uC774\uD551 \uC2A4\uD2B8\uB9AC\uBC0D \uBC0F \uC911\uB2E8 \uC81C\uC5B4"],
19955
+ en: ["Stream text character-by-character with pulsing caret and stop control"]
19956
+ },
19957
+ aliases: {
19958
+ ko: ["\uC2E4\uC2DC\uAC04 \uD0C0\uC774\uD551 \uD6A8\uACFC", "\uC2A4\uD2B8\uB9AC\uBC0D \uD14D\uC2A4\uD2B8", "\uC751\uB2F5 \uC911\uC9C0 \uBC84\uD2BC"],
19959
+ en: ["realtime typing stream", "streaming response"]
19960
+ }
19961
+ },
19962
+ "ai-code-runner": {
19963
+ targets: ["panel", "button", "card"],
19964
+ triggers: ["click"],
19965
+ useCases: {
19966
+ ko: ["\uCF54\uB4DC \uBE14\uB85D\uC758 \uAD6C\uBB38 \uAC15\uC870\uC640 \uD0ED \uC804\uD658\uC744 \uD1B5\uD55C \uC2E4\uC2DC\uAC04 \uCEF4\uD3EC\uB10C\uD2B8 \uBBF8\uB9AC\uBCF4\uAE30"],
19967
+ en: ["Syntax-highlighted code block with one-click copy and live component preview tab"]
19968
+ },
19969
+ aliases: {
19970
+ ko: ["\uC778\uD130\uB799\uD2F0\uBE0C \uCF54\uB4DC \uBE14\uB85D", "\uCF54\uB4DC \uBBF8\uB9AC\uBCF4\uAE30 \uD0ED", "\uCEF4\uD3EC\uB10C\uD2B8 \uB7EC\uB108"],
19971
+ en: ["interactive code block", "code preview tab"]
19972
+ }
19973
+ },
19974
+ "ai-message-branch": {
19975
+ targets: ["card", "navigation", "text"],
19976
+ triggers: ["click"],
19977
+ useCases: {
19978
+ ko: ["\uC7AC\uC0DD\uC131\uB41C \uC751\uB2F5 \uBC84\uC804\uB4E4\uC744 \uC774\uC804/\uB2E4\uC74C \uBD84\uAE30 \uB124\uBE44\uAC8C\uC774\uC158\uC73C\uB85C \uD0D0\uC0C9"],
19979
+ en: ["Navigate between regenerated response variations with branch switcher buttons"]
19980
+ },
19981
+ aliases: {
19982
+ ko: ["\uC751\uB2F5 \uBC84\uC804 \uC2A4\uC704\uCC98", "\uBE0C\uB79C\uCE58 \uB124\uBE44\uAC8C\uC774\uC158", "\uB2F5\uBCC0 \uC7AC\uC0DD\uC131 \uC774\uB825"],
19983
+ en: ["response branch switcher", "version history pagination"]
19984
+ }
18152
19985
  },
18153
- "mg-luma-gradient-wipe": {
18154
- targets: ["scene", "image"],
18155
- triggers: ["input"],
18156
- useCases: { ko: ["\uBC94\uC704 \uC785\uB825\uC73C\uB85C \uACE0\uC815 \uBC1D\uAE30 \uC9C0\uB3C4\uC758 \uC5B4\uB450\uC6B4 \uC601\uC5ED\uBD80\uD130 \uB450 \uD48D\uACBD \uAD50\uCCB4"], en: ["Replace two landscapes from dark luminance-map regions first using a range input"] },
18157
- aliases: { ko: ["\uBC1D\uAE30 \uB9E4\uD2B8 \uC640\uC774\uD504", "\uADF8\uB808\uC774\uC2A4\uCF00\uC77C \uC640\uC774\uD504"], en: ["luminance matte wipe", "grayscale gradient wipe"] }
19986
+ "ai-thinking-accordion": {
19987
+ targets: ["card", "panel", "list"],
19988
+ triggers: ["click"],
19989
+ useCases: {
19990
+ ko: ["AI\uC758 \uCD94\uB860 \uB2E8\uACC4\uC640 \uACBD\uACFC \uC2DC\uAC04\uC744 \uC811\uC774\uC2DD \uC544\uCF54\uB514\uC5B8\uC73C\uB85C \uAC80\uD1A0"],
19991
+ en: ["Inspect AI reasoning steps and elapsed time in a collapsible accordion"]
19992
+ },
19993
+ aliases: {
19994
+ ko: ["\uC0AC\uACE0 \uACFC\uC815 \uC544\uCF54\uB514\uC5B8", "\uCD94\uB860 \uB85C\uADF8 \uD1A0\uAE00", "Thinking \uC544\uCF54\uB514\uC5B8"],
19995
+ en: ["thinking process accordion", "chain-of-thought log"]
19996
+ }
18158
19997
  },
18159
- "mg-block-dissolve-transition": {
18160
- targets: ["scene", "image"],
18161
- triggers: ["input"],
18162
- useCases: { ko: ["\uBC94\uC704 \uC785\uB825\uC73C\uB85C \uACE0\uC815 \uC21C\uC11C\uC758 \uC815\uC0AC\uAC01 \uBE14\uB85D\uC744 \uC9C0\uC6CC \uB2E4\uC74C \uADF8\uB798\uD53D \uB178\uCD9C"], en: ["Reveal the next graphic by removing square blocks in a fixed order with a range input"] },
18163
- aliases: { ko: ["\uC815\uC0AC\uAC01 \uBE14\uB85D \uC640\uC774\uD504", "\uBAA8\uC790\uC774\uD06C \uB514\uC878\uBE0C"], en: ["square block wipe", "mosaic dissolve"] }
19998
+ "ai-source-citation": {
19999
+ targets: ["text", "card", "button"],
20000
+ triggers: ["hover", "pointer-move"],
20001
+ useCases: {
20002
+ ko: ["\uD14D\uC2A4\uD2B8 \uB0B4 \uC778\uB77C\uC778 \uCD9C\uCC98 \uBC88\uD638 \uD638\uBC84 \uC2DC \uC6D0\uBB38 \uC694\uC57D \uD31D\uC624\uBC84 \uB178\uCD9C"],
20003
+ en: ["Hover inline citation numbers to preview source website and excerpt popover"]
20004
+ },
20005
+ aliases: {
20006
+ ko: ["\uC778\uB77C\uC778 \uCD9C\uCC98 \uD31D\uC624\uBC84", "\uCC38\uACE0\uBB38\uD5CC \uCE69", "\uCD9C\uCC98 \uBBF8\uB9AC\uBCF4\uAE30"],
20007
+ en: ["inline source citation", "reference popover card"]
20008
+ }
18164
20009
  },
18165
- "mg-clockwise-radial-wipe": {
18166
- targets: ["scene", "image"],
18167
- triggers: ["input"],
18168
- useCases: { ko: ["\uBC94\uC704 \uC785\uB825\uC73C\uB85C \uC911\uC559 \uBD80\uCC44\uAF34\uC744 \uC2DC\uACC4 \uBC29\uD5A5\uC73C\uB85C \uB3CC\uB824 \uB0AE \uB3C4\uC2DC\uC5D0\uC11C \uBC24 \uB3C4\uC2DC\uB85C \uC804\uD658"], en: ["Turn a central sector clockwise with a range input to transition a city from day to night"] },
18169
- aliases: { ko: ["\uC2DC\uACC4 \uC640\uC774\uD504", "\uC2DC\uACC4 \uBC29\uD5A5 \uBD80\uCC44\uAF34 \uC804\uD658"], en: ["clock wipe", "clockwise sector wipe"] }
20010
+ "ai-tool-call-card": {
20011
+ targets: ["card", "panel", "list"],
20012
+ triggers: ["click"],
20013
+ useCases: {
20014
+ ko: ["\uC5D0\uC774\uC804\uD2B8 \uB3C4\uAD6C \uD638\uCD9C\uC758 \uC778\uC790\uC640 \uC2E4\uD589 \uC0C1\uD0DC, \uACB0\uACFC \uC694\uC57D\uC744 \uD655\uC778"],
20015
+ en: ["Inspect agent tool execution status, parameters, and output results"]
20016
+ },
20017
+ aliases: {
20018
+ ko: ["\uB3C4\uAD6C \uC2E4\uD589 \uC0C1\uD0DC \uCE74\uB4DC", "Tool Call \uCE74\uB4DC", "\uD568\uC218 \uD638\uCD9C \uCE74\uB4DC"],
20019
+ en: ["agent tool call card", "function execution card"]
20020
+ }
18170
20021
  },
18171
- "mg-venetian-blinds-transition": {
18172
- targets: ["scene", "image"],
18173
- triggers: ["input"],
18174
- useCases: { ko: ["\uBC94\uC704 \uC785\uB825\uC73C\uB85C \uC0AC\uB9C9\uC758 \uC218\uD3C9 \uB760 \uB192\uC774\uB97C \uD568\uAED8 \uC904\uC5EC \uC0B0\uC545 \uD48D\uACBD \uB178\uCD9C"], en: ["Reveal mountains by shrinking the desert\u2019s horizontal strips together with a range input"] },
18175
- aliases: { ko: ["\uC218\uD3C9 \uBE14\uB77C\uC778\uB4DC \uC640\uC774\uD504", "\uC218\uD3C9 \uB760 \uC804\uD658"], en: ["horizontal blinds wipe", "horizontal slat transition"] }
20022
+ "ai-human-in-the-loop": {
20023
+ targets: ["card", "button", "panel"],
20024
+ triggers: ["click"],
20025
+ useCases: {
20026
+ ko: ["\uC704\uD5D8 \uC791\uC5C5 \uC2E4\uD589 \uC804 \uC601\uD5A5\uB3C4 \uC694\uC57D\uACFC \uC0AC\uC6A9\uC790\uC758 \uC2B9\uC778/\uAC70\uC808 \uC561\uC158\uC744 \uC218\uC2E0"],
20027
+ en: ["Prompt human confirmation with risk severity badge before executing critical actions"]
20028
+ },
20029
+ aliases: {
20030
+ ko: ["\uC2B9\uC778 \uAC00\uB4DC\uB808\uC77C \uBAA8\uB2EC", "Human-in-the-loop \uCE74\uB4DC", "\uC704\uD5D8 \uBA85\uB839 \uC2B9\uC778"],
20031
+ en: ["human-in-the-loop approval", "action confirmation card"]
20032
+ }
18176
20033
  }
18177
20034
  };
18178
20035
 
@@ -18180,6 +20037,7 @@ var VFX_SEARCH_METADATA = {
18180
20037
  var TARGETS = ["button", "card", "text", "list", "background", "shape", "scene", "navigation", "panel", "input", "chart", "logo", "image"];
18181
20038
  var TRIGGERS = ["pointer-move", "hover", "click", "hold", "drag", "input", "auto", "static"];
18182
20039
  var SEARCH_METADATA = {
20040
+ ...AI_SEARCH_METADATA,
18183
20041
  ...STARTER_PACK_SEARCH_METADATA,
18184
20042
  ...SIGNATURE_SEARCH_METADATA,
18185
20043
  ...UI_COLLECTION_SEARCH,
@@ -18210,6 +20068,8 @@ var SEARCH_METADATA = {
18210
20068
  ...PHYSICS_SEARCH_METADATA,
18211
20069
  ...PROMO_SEARCH_METADATA,
18212
20070
  ...RETRO_SEARCH_METADATA,
20071
+ ...PIXELART_SEARCH_METADATA,
20072
+ ...PIXELART_EXPANSION_SEARCH_METADATA,
18213
20073
  ...SCIFI_SEARCH_METADATA,
18214
20074
  ...SCROLL_SEARCH_METADATA,
18215
20075
  ...SHADER_SEARCH_METADATA,
@@ -27823,6 +29683,475 @@ var AUTOMATION_KNOWLEDGE = [
27823
29683
  }
27824
29684
  ];
27825
29685
 
29686
+ // ../../packages/catalog/src/domain-knowledge/ai.ts
29687
+ var AI_KNOWLEDGE = [
29688
+ {
29689
+ id: "ai-prompt-context-and-token-budget",
29690
+ aliases: {
29691
+ ko: ["\uD504\uB86C\uD504\uD2B8 \uC5D4\uC9C0\uB2C8\uC5B4\uB9C1", "\uD1A0\uD070 \uC608\uC0B0", "\uD1A0\uD070\uC608\uC0B0", "\uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0", "\uC2DC\uC2A4\uD15C \uD504\uB86C\uD504\uD2B8", "\uD1A0\uD070 \uCD08\uACFC \uBC29\uC9C0"],
29692
+ en: ["prompt engineering", "token budget", "context window management", "system prompt design", "token overflow prevention"]
29693
+ },
29694
+ useCases: {
29695
+ ko: [
29696
+ "LLM \uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0 \uD55C\uB3C4 \uC548\uC5D0\uC11C \uC2DC\uC2A4\uD15C \uD504\uB86C\uD504\uD2B8, \uB300\uD654 \uD788\uC2A4\uD1A0\uB9AC, RAG \uBB38\uC11C\uC758 \uC6B0\uC120\uC21C\uC704\uB97C \uBC30\uBD84\uD560 \uB54C",
29697
+ "\uD1A0\uD070 \uCD08\uACFC\uB85C \uC778\uD55C API \uD638\uCD9C \uC5D0\uB7EC\uB098 \uACFC\uB3C4\uD55C \uACFC\uAE08\uC744 \uBC29\uC9C0\uD558\uAE30 \uC704\uD55C \uD1A0\uD070 \uBAA8\uB2C8\uD130\uB9C1 UI\uB97C \uAD6C\uC131\uD560 \uB54C",
29698
+ "\uC0AC\uC6A9\uC790 \uC785\uB825 \uAE38\uC774\uC5D0 \uB9DE\uCDB0 \uC2E4\uC2DC\uAC04\uC73C\uB85C \uD1A0\uD070\uC744 \uACC4\uC0B0\uD558\uACE0 \uC704\uD5D8 \uC784\uACC4\uCE58\uB97C \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uACBD\uACE0\uD560 \uB54C",
29699
+ "\uC5EC\uB7EC \uBB38\uC11C\uB97C \uCCA8\uBD80\uD588\uC744 \uB54C \uC6B0\uC120\uC21C\uC704\uC5D0 \uB530\uB77C \uCEE8\uD14D\uC2A4\uD2B8\uB97C \uB3D9\uC801\uC73C\uB85C \uC555\uCD95\uD558\uAC70\uB098 \uC694\uC57D\uD560 \uB54C"
29700
+ ],
29701
+ en: [
29702
+ "Allocating context window space between system instructions, conversation history, and retrieved docs",
29703
+ "Preventing token limit errors and unexpected billing surges with token monitoring controls",
29704
+ "Calculating real-time tokens as the user types and providing warning thresholds",
29705
+ "Dynamically truncating or summarizing attachments when total context exceeds budget"
29706
+ ]
29707
+ },
29708
+ keywords: {
29709
+ ko: ["\uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0", "\uD1A0\uD070 \uD55C\uB3C4", "\uD1A0\uD070 \uC608\uC0B0", "\uD504\uB86C\uD504\uD2B8 \uCD5C\uC801\uD654", "\uC2DC\uC2A4\uD15C \uD504\uB86C\uD504\uD2B8", "\uD1A0\uD070 \uACC4\uC0B0", "\uBE44\uC6A9 \uCD5C\uC801\uD654"],
29710
+ en: ["context window", "token limit", "token budget", "prompt optimization", "system prompt", "token estimation", "cost control"]
29711
+ },
29712
+ text: {
29713
+ ko: {
29714
+ domain: "AI \uC5D0\uC774\uC804\uD2B8 & LLM \uC11C\uBE44\uC2A4",
29715
+ title: "\uD504\uB86C\uD504\uD2B8 \uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0 \uAD00\uB9AC\uC640 \uD1A0\uD070 \uC608\uC0B0 \uC81C\uC5B4",
29716
+ summary: "\uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0 \uB0B4 \uD1A0\uD070 \uC18C\uBAA8\uB7C9\uC744 \uC2E4\uC2DC\uAC04 \uCD94\uC801\uD558\uACE0, \uC785\uB825\xB7\uCC38\uC870 \uBB38\uC11C\xB7\uD788\uC2A4\uD1A0\uB9AC\uC758 \uC6B0\uC120\uC21C\uC704\uB97C \uC81C\uC5B4\uD574 \uBE44\uC6A9\uACFC \uC131\uB2A5\uC744 \uCD5C\uC801\uD654\uD569\uB2C8\uB2E4.",
29717
+ overview: "LLM \uAE30\uBC18 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\uC5D0\uC11C\uB294 \uBAA8\uB378\uBCC4 \uCD5C\uB300 \uD1A0\uD070 \uC218(Context Window)\uAC00 \uC815\uD574\uC838 \uC788\uC73C\uBA70, \uC785\uB825\uACFC \uCD9C\uB825 \uD1A0\uD070\uC5D0 \uB530\uB77C \uC9C1\uC811\uC801\uC778 \uBE44\uC6A9\uACFC \uC751\uB2F5 \uC9C0\uC5F0\uC774 \uBC1C\uC0DD\uD569\uB2C8\uB2E4. \uC2DC\uC2A4\uD15C \uD504\uB86C\uD504\uD2B8, \uCCA8\uBD80 \uBB38\uC11C, \uC774\uC804 \uB300\uD654 \uAE30\uB85D\uC774 \uC313\uC5EC \uD55C\uB3C4\uB97C \uCD08\uACFC\uD558\uBA74 API \uD638\uCD9C\uC774 \uC2E4\uD328\uD558\uAC70\uB098 \uC55E\uC120 \uB9E5\uB77D\uC774 \uC720\uC2E4\uB429\uB2C8\uB2E4. \uB530\uB77C\uC11C \uAC01 \uC694\uC18C\uC758 \uD1A0\uD070 \uC810\uC720\uC728\uC744 \uC2E4\uC2DC\uAC04\uC73C\uB85C \uC2DC\uAC01\uD654\uD558\uACE0, \uC911\uC694\uB3C4\uC5D0 \uB530\uB77C \uC624\uB798\uB41C \uB300\uD654\uB97C \uC694\uC57D\uD558\uAC70\uB098 \uCCA8\uBD80 \uBB38\uC11C\uB97C \uC120\uD0DD\uC801\uC73C\uB85C \uC798\uB77C\uB0B4\uB294 \uD1A0\uD070 \uAD00\uB9AC \uC815\uCC45\uC744 \uC218\uB9BD\uD574\uC57C \uD569\uB2C8\uB2E4.",
29718
+ concepts: [
29719
+ { name: "\uD1A0\uD070 \uC608\uC0B0 \uBC30\uBD84(Token Budgeting)", description: "\uC804\uCCB4 \uCEE8\uD14D\uC2A4\uD2B8 \uC6A9\uB7C9 \uC911 \uC2DC\uC2A4\uD15C \uD504\uB86C\uD504\uD2B8 \uACE0\uC815\uBD84, \uAC80\uC0C9 \uBB38\uC11C \uAC00\uBCC0\uBD84, \uB300\uD654 \uD788\uC2A4\uD1A0\uB9AC \uC2AC\uB77C\uC774\uB529 \uC708\uB3C4\uC6B0\uBD84\uC758 \uCD5C\uB300 \uD560\uB2F9\uB7C9\uC744 \uC0AC\uC804\uC5D0 \uADDC\uC815\uD569\uB2C8\uB2E4." },
29720
+ { name: "\uC2E4\uC2DC\uAC04 \uD1A0\uD070 \uCE74\uC6B4\uD305(Tokenizer Feedback)", description: "\uD074\uB77C\uC774\uC5B8\uD2B8 \uC0AC\uC774\uB4DC BPE \uD1A0\uD06C\uB098\uC774\uC800\uB97C \uC0AC\uC6A9\uD574 \uC0AC\uC6A9\uC790\uAC00 \uC785\uB825\uD558\uB294 \uB3C4\uC911 \uC2E4\uC2DC\uAC04\uC73C\uB85C \uD1A0\uD070 \uC218\uC640 \uC608\uC0C1 \uBE44\uC6A9\uC744 \uACC4\uC0B0\uD574 \uC2DC\uAC01\uC801 \uD53C\uB4DC\uBC31\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4." },
29721
+ { name: "\uCEE8\uD14D\uC2A4\uD2B8 \uC555\uCD95 \uBC0F \uC2AC\uB77C\uC774\uB529 \uC708\uB3C4\uC6B0(Sliding Window & Compression)", description: "\uB300\uD654\uAC00 \uAE38\uC5B4\uC9C0\uBA74 \uCD08\uAE30 \uBA54\uC2DC\uC9C0\uB97C \uC694\uC57D\uBCF8\uC73C\uB85C \uB300\uCCB4\uD558\uACE0 \uCD5C\uADFC \uD134\uB9CC \uC6D0\uBB38\uC73C\uB85C \uC720\uC9C0\uD574 \uD55C\uB3C4 \uCD08\uACFC\uB97C \uBC29\uC9C0\uD569\uB2C8\uB2E4." }
29722
+ ],
29723
+ workflow: [
29724
+ { name: "\uC601\uC5ED\uBCC4 \uD1A0\uD070 \uD55C\uB3C4 \uD560\uB2F9\uD558\uAE30", description: "\uBAA8\uB378 \uD55C\uB3C4(\uC608: 8k/128k)\uC5D0 \uB9DE\uCDB0 \uC2DC\uC2A4\uD15C \uC9C0\uC2DC 15%, RAG \uAC80\uC0C9 45%, \uB300\uD654 \uD788\uC2A4\uD1A0\uB9AC 30%, \uCD9C\uB825 \uC5EC\uC720 10%\uC758 \uC608\uC0B0 \uBE44\uC728\uC744 \uC124\uC815\uD569\uB2C8\uB2E4." },
29725
+ { name: "\uC2E4\uC2DC\uAC04 \uC785\uB825 \uBC0F \uCCA8\uBD80 \uD30C\uC77C \uD1A0\uD070 \uC0B0\uCD9C\uD558\uAE30", description: "\uC0AC\uC6A9\uC790\uAC00 \uD14D\uC2A4\uD2B8\uB97C \uC785\uB825\uD558\uAC70\uB098 \uBB38\uC11C\uB97C \uB4DC\uB86D\uD560 \uB54C \uD1A0\uD070 \uC218\uB97C \uACC4\uC0B0\uD574 \uD504\uB85C\uADF8\uB808\uC2A4 \uAC8C\uC774\uC9C0\uC5D0 \uBC18\uC601\uD569\uB2C8\uB2E4." },
29726
+ { name: "\uC784\uACC4\uCE58 \uB3C4\uB2EC \uC2DC \uC790\uB3D9 \uC555\uCD95 \uBC0F \uACBD\uACE0 \uCC98\uB9AC\uD558\uAE30", description: "80% \uB3C4\uB2EC \uC2DC \uACBD\uACE0 \uC0C9\uC0C1 \uC804\uD658, 95% \uB3C4\uB2EC \uC2DC \uC624\uB798\uB41C \uD134 \uC694\uC57D \uC2E4\uD589 \uB610\uB294 \uC804\uC1A1 \uC81C\uD55C\uC744 \uC801\uC6A9\uD569\uB2C8\uB2E4." }
29727
+ ],
29728
+ pitfalls: [
29729
+ { name: "\uAE00\uC790 \uC218(Length)\uC640 \uD1A0\uD070 \uC218(Token Count)\uB97C \uB3D9\uC77C\uC2DC\uD558\uAE30", description: "\uD55C\uAE00\uC774\uB098 \uCF54\uB4DC, \uD2B9\uC218\uBB38\uC790\uB294 \uBB38\uC790\uB2F9 2~3\uD1A0\uD070 \uC774\uC0C1\uC744 \uC18C\uBAA8\uD558\uBBC0\uB85C \uB2E8\uC21C \uAE00\uC790 \uC218\uAC00 \uC544\uB2CC \uC2E4\uC81C \uD1A0\uD06C\uB098\uC774\uC800 \uBC14\uC774\uD2B8 \uAE30\uC900\uC73C\uB85C \uACC4\uC0B0\uD574\uC57C \uD569\uB2C8\uB2E4." },
29730
+ { name: "\uCD9C\uB825 \uD1A0\uD070(Max Completion Tokens) \uC5EC\uC720\uBD84\uC744 \uB0A8\uACA8\uB450\uC9C0 \uC54A\uAE30", description: "\uCEE8\uD14D\uC2A4\uD2B8\uB97C \uAF49 \uCC44\uC6CC \uBCF4\uB0B4\uBA74 \uBAA8\uB378\uC774 \uB2F5\uBCC0\uC744 \uD55C\uB450 \uBB38\uC7A5 \uB9CC\uC5D0 \uC798\uB77C\uBC84\uB9AC\uB294 Truncation \uD604\uC0C1\uC774 \uBC1C\uC0DD\uD569\uB2C8\uB2E4." }
29731
+ ],
29732
+ questions: [
29733
+ "\uC0AC\uC6A9\uC790\uAC00 \uC5EC\uB7EC \uB300\uC6A9\uB7C9 \uD30C\uC77C\uC744 \uCCA8\uBD80\uD588\uC744 \uB54C, \uC5B4\uB5A4 \uAE30\uC900\uC73C\uB85C \uC6B0\uC120\uC21C\uC704\uB97C \uB9E4\uACA8 \uCEE8\uD14D\uC2A4\uD2B8\uC5D0 \uD3EC\uD568\uD560 \uAC83\uC778\uAC00\uC694?",
29734
+ "\uD1A0\uD070 \uD55C\uB3C4 \uCD08\uACFC \uC2DC \uC774\uC804 \uB300\uD654\uB97C \uC644\uC804 \uC0AD\uC81C\uD560 \uAC83\uC778\uAC00\uC694, \uC544\uB2C8\uBA74 AI \uC694\uC57D\uBCF8\uC73C\uB85C \uCD95\uC57D\uD560 \uAC83\uC778\uAC00\uC694?",
29735
+ "\uC2E4\uC2DC\uAC04 \uD1A0\uD070 \uCD94\uC815\uCE58\uC640 \uC2E4\uC81C API \uACFC\uAE08 \uD1A0\uD070 \uC218 \uAC04\uC758 \uC624\uCC28\uB97C UI\uC5D0\uC11C \uC5B4\uB5BB\uAC8C \uACE0\uC9C0\uD560 \uAC83\uC778\uAC00\uC694?"
29736
+ ],
29737
+ example: "\uC608\uC2DC: \uBB38\uC11C \uBD84\uC11D \uCC57\uBD07\uC5D0\uC11C \uC0AC\uC6A9\uC790\uAC00 4\uAC1C\uC758 PDF\uB97C \uCCA8\uBD80\uD558\uBA74 \uAC01 \uD30C\uC77C\uBCC4 \uD1A0\uD070 \uCE69\uC744 \uD45C\uC2DC\uD558\uACE0, \uCD1D 8,000\uD1A0\uD070 \uC911 6,500\uD1A0\uD070 \uC0AC\uC6A9 \uC2DC \uC8FC\uD669\uC0C9 \uAC8C\uC774\uC9C0\uC640 \uD568\uAED8 [\uBB38\uC11C \uC555\uCD95] \uBC84\uD2BC\uC744 \uB744\uC6CC \uD575\uC2EC \uBC1C\uCDCC\uBB38\uB9CC \uB0A8\uAE30\uB3C4\uB85D \uC720\uB3C4\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
29738
+ relatedDesigns: [
29739
+ { id: "ai-prompt-box", reason: "\uBAA8\uB378 \uC2A4\uC704\uCC98\uC640 \uB192\uC774 \uC790\uB3D9 \uC870\uC808\uC744 \uAC16\uCD98 \uC785\uB825\uCC3D\uC73C\uB85C \uD504\uB86C\uD504\uD2B8 \uC804\uC1A1 \uC778\uD130\uB799\uC158\uC744 \uAD6C\uC131\uD569\uB2C8\uB2E4." },
29740
+ { id: "ai-context-pill", reason: "\uCCA8\uBD80\uB41C \uCEE8\uD14D\uC2A4\uD2B8 \uD0DC\uADF8 \uCE69\uACFC \uC2E4\uC2DC\uAC04 \uD1A0\uD070 \uC0AC\uC6A9\uB7C9 \uD504\uB85C\uADF8\uB808\uC2A4 \uBC14\uB97C \uC2DC\uAC01\uD654\uD569\uB2C8\uB2E4." }
29741
+ ],
29742
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uCCA8\uBD80 \uBB38\uC11C \uD0DC\uADF8 \uCE69\uACFC \uC2E4\uC2DC\uAC04 \uD1A0\uD070 \uC18C\uBAA8\uC728 \uAC8C\uC774\uC9C0\uB97C \uAC16\uCD98 \uD504\uB86C\uD504\uD2B8 \uC785\uB825 \uCE74\uB4DC\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 12px \uBAA8\uC11C\uB9AC\uC640 1px \uD14C\uB450\uB9AC\uC758 \uCE74\uB4DC\uB97C \uAD6C\uC131\uD558\uACE0, \uC0C1\uB2E8\uC5D0\uB294 \uCCA8\uBD80 \uBB38\uC11C \uCE69 \uBAA9\uB85D(X \uC0AD\uC81C \uBC84\uD2BC \uD3EC\uD568), \uD558\uB2E8\uC5D0\uB294 \uCD1D 8000\uD1A0\uD070 \uB300\uBE44 \uC0AC\uC6A9\uB7C9\uC744 \uB098\uD0C0\uB0B4\uB294 \uD504\uB85C\uADF8\uB808\uC2A4 \uBC14\uB97C \uBC30\uCE58\uD574 \uC918."
29743
+ },
29744
+ en: {
29745
+ domain: "AI Agents & LLM Services",
29746
+ title: "Prompt Context Window Management and Token Budget Control",
29747
+ summary: "Track token usage against context window limits in real-time, optimizing allocation across instructions, retrieval, and chat history.",
29748
+ overview: "LLM applications operate within fixed context window ceilings, where input and output tokens directly dictate financial costs and latency. Without deliberate budgeting, accumulated chat histories and file attachments trigger API overflow errors or silent context truncation. Teams must implement explicit token allocations, real-time client-side counting, and automated summarization rules.",
29749
+ concepts: [
29750
+ { name: "Token Budget Allocation", description: "Predefining ceiling ratios for system directives, retrieved documents, and conversational turns within the total window." },
29751
+ { name: "Real-time Tokenizer Feedback", description: "Using client-side tokenizers to compute token load and cost projections as the user types." },
29752
+ { name: "Context Compression & Sliding Window", description: "Collapsing older messages into summaries while preserving recent turns verbatim to maintain coherency without overflow." }
29753
+ ],
29754
+ workflow: [
29755
+ { name: "Define Budget Allocation Quotas", description: "Establish proportional quotas (e.g., 15% instructions, 45% retrieval, 30% history, 10% completion headroom)." },
29756
+ { name: "Calculate Real-time Input & Attachment Tokens", description: "Compute token metrics on text change and file drop, updating visual gauges dynamically." },
29757
+ { name: "Enforce Threshold Warnings & Auto-summaries", description: "Shift gauge alerts at 80% and trigger automated conversation summarization at 95% capacity." }
29758
+ ],
29759
+ pitfalls: [
29760
+ { name: "Equating Character Count with Token Usage", description: "Multilingual text and code consume substantially more tokens per character than English prose; compute using authentic tokenizers." },
29761
+ { name: "Neglecting Output Completion Headroom", description: "Maxing out input context leaves no capacity for model completions, truncating responses mid-sentence." }
29762
+ ],
29763
+ questions: [
29764
+ "How will the system prioritize among multiple large document attachments when context limits are reached?",
29765
+ "Will overflow conditions discard older messages entirely or condense them via background LLM summarization?",
29766
+ "How should discrepancies between client-side estimates and provider billing be communicated?"
29767
+ ],
29768
+ example: "Example: In a document analysis assistant, attached files are tagged with token pills. When utilization hits 6,500 of 8,000 tokens, the gauge shifts to amber and offers a one-click summarization option.",
29769
+ relatedDesigns: [
29770
+ { id: "ai-prompt-box", reason: "Provides an auto-expanding prompt input with model switching controls." },
29771
+ { id: "ai-context-pill", reason: "Visualizes attached document tags and real-time token capacity bars." }
29772
+ ],
29773
+ promptSnippet: "Create a prompt input card with document tag pills and a real-time token gauge in the specified area. Inside a container of width 100% and min-height 180px, build a card with 12px corners and 1px border. Feature removable context tags at the top and a progress bar showing token usage out of 8000 tokens at the bottom."
29774
+ }
29775
+ },
29776
+ sources: [
29777
+ { title: "OpenAI Prompt Engineering Guide", url: "https://platform.openai.com/docs/guides/prompt-engineering" },
29778
+ { title: "Anthropic Context Window Guidance", url: "https://docs.anthropic.com/en/docs/build-with-claude/context-window" }
29779
+ ]
29780
+ },
29781
+ {
29782
+ id: "ai-streaming-response-and-reconnection",
29783
+ aliases: {
29784
+ ko: ["SSE \uC2A4\uD2B8\uB9AC\uBC0D", "\uC2A4\uD2B8\uB9AC\uBC0D \uD14D\uC2A4\uD2B8", "\uC751\uB2F5 \uC911\uB2E8", "\uC6F9\uC18C\uCF13 \uCCAD\uD06C", "\uC2A4\uD2B8\uB9AC\uBC0D \uC5D0\uB7EC \uBCF5\uAD6C"],
29785
+ en: ["SSE streaming", "text streaming", "streaming abort", "chunked transfer", "streaming reconnect"]
29786
+ },
29787
+ useCases: {
29788
+ ko: [
29789
+ "LLM\uC758 \uAE34 \uC0DD\uC131 \uC2DC\uAC04\uC744 \uBCF4\uC644\uD558\uAE30 \uC704\uD574 \uCCAB \uD1A0\uD070 \uC9C0\uC5F0 \uC2DC\uAC04(TTFT)\uC744 \uCD5C\uC18C\uD654\uD558\uACE0 \uD55C \uAE00\uC790\uC529 \uC2E4\uC2DC\uAC04 \uB80C\uB354\uB9C1\uD560 \uB54C",
29790
+ "\uC0DD\uC131 \uC911 \uC0AC\uC6A9\uC790\uAC00 [\uC0DD\uC131 \uC911\uC9C0(Stop)]\uB97C \uB20C\uB7EC \uBD88\uD544\uC694\uD55C \uD1A0\uD070 \uB0AD\uBE44\uC640 \uB300\uAE30\uB97C \uC989\uC2DC \uCC28\uB2E8\uD560 \uB54C",
29791
+ "\uB124\uD2B8\uC6CC\uD06C \uBD88\uC548\uC815\uC73C\uB85C \uCCAD\uD06C \uC804\uC1A1\uC774 \uB04A\uACBC\uC744 \uB54C \uBD80\uBD84 \uC0DD\uC131\uB41C \uD14D\uC2A4\uD2B8\uB97C \uC720\uC9C0\uD558\uACE0 \uC7AC\uC5F0\uACB0\uC744 \uC2DC\uB3C4\uD560 \uB54C",
29792
+ "\uC2A4\uD2B8\uB9AC\uBC0D \uB3C4\uC911 \uB9C8\uD06C\uB2E4\uC6B4 \uD0DC\uADF8(\uCF54\uB4DC \uBE14\uB85D, \uD45C \uB4F1)\uAC00 \uBBF8\uC644\uC131\uC778 \uC0C1\uD0DC\uC5D0\uC11C\uB3C4 \uB808\uC774\uC544\uC6C3 \uAE68\uC9D0 \uC5C6\uC774 \uB80C\uB354\uB9C1\uD560 \uB54C"
29793
+ ],
29794
+ en: [
29795
+ "Minimizing time-to-first-token (TTFT) by rendering text chunks in real-time as tokens arrive",
29796
+ "Empowering users to abort generations immediately to halt token burn and clear the UI",
29797
+ "Recovering from network drops by retaining partial text buffers and retrying connection",
29798
+ "Streaming incomplete markdown tokens without breaking code blocks or table layouts"
29799
+ ]
29800
+ },
29801
+ keywords: {
29802
+ ko: ["SSE", "Server-Sent Events", "\uC2A4\uD2B8\uB9AC\uBC0D", "TTFT", "\uC911\uB2E8 \uBC84\uD2BC", "AbortController", "\uCCAD\uD06C \uB80C\uB354\uB9C1", "\uB9C8\uD06C\uB2E4\uC6B4 \uD30C\uC11C"],
29803
+ en: ["SSE", "Server-Sent Events", "streaming", "TTFT", "stop generation", "AbortController", "chunk rendering", "markdown stream"]
29804
+ },
29805
+ text: {
29806
+ ko: {
29807
+ domain: "AI \uC5D0\uC774\uC804\uD2B8 & LLM \uC11C\uBE44\uC2A4",
29808
+ title: "SSE \uC2A4\uD2B8\uB9AC\uBC0D \uC751\uB2F5 \uB80C\uB354\uB9C1\uACFC \uC5F0\uACB0 \uBCF5\uAD6C \uBC0F \uC870\uAE30 \uC911\uB2E8",
29809
+ summary: "\uC11C\uBC84-\uC13C\uD2B8 \uC774\uBCA4\uD2B8(SSE)\uB85C \uCCAB \uD1A0\uD070 \uC9C0\uC5F0\uC744 \uB2E8\uCD95\uD558\uACE0, AbortController \uAE30\uBC18 \uC0DD\uC131 \uC911\uB2E8\uACFC \uB04A\uAE40 \uBCF5\uAD6C\uB97C \uC81C\uACF5\uD569\uB2C8\uB2E4.",
29810
+ overview: "\uC0DD\uC131\uD615 AI \uBAA8\uB378\uC740 \uC804\uCCB4 \uB2F5\uBCC0\uC744 \uC644\uC131\uD558\uAE30\uAE4C\uC9C0 \uC218 \uCD08\uC5D0\uC11C \uC218\uC2ED \uCD08\uAC00 \uC18C\uC694\uB418\uBBC0\uB85C, HTTP \uB2E8\uC77C \uC751\uB2F5 \uB300\uC2E0 Server-Sent Events(SSE)\uB098 \uC6F9\uC18C\uCF13\uC744 \uD1B5\uD55C \uCCAD\uD06C \uC2A4\uD2B8\uB9AC\uBC0D\uC774 \uD544\uC218\uC801\uC785\uB2C8\uB2E4. \uC0AC\uC6A9\uC790\uB294 \uCCAB \uAE00\uC790\uAC00 \uBE60\uB974\uAC8C \uCC0D\uD788\uB294 \uAC83\uC744 \uBCF4\uBA70 \uCCB4\uAC10 \uB300\uAE30 \uC2DC\uAC04\uC744 \uC904\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB610\uD55C \uC6D0\uCE58 \uC54A\uB294 \uBC29\uD5A5\uC73C\uB85C \uB2F5\uBCC0\uC774 \uC0DD\uC131\uB420 \uB54C \uC989\uAC01 \uC911\uB2E8(Abort)\uD560 \uC218 \uC788\uC5B4\uC57C \uD558\uBA70, \uC77C\uC2DC\uC801 \uB124\uD2B8\uC6CC\uD06C \uB2E8\uC808 \uC2DC\uC5D0\uB3C4 \uC774\uBBF8 \uB3C4\uCC29\uD55C \uB0B4\uC6A9\uC744 \uBCF4\uC874\uD558\uACE0 \uC7AC\uC804\uC1A1\uC744 \uC694\uCCAD\uD560 \uC218 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4.",
29811
+ concepts: [
29812
+ { name: "\uCCAB \uD1A0\uD070 \uC2DC\uAC04(Time-to-First-Token, TTFT)", description: "\uC804\uCCB4 \uC0DD\uC131 \uC644\uB8CC\uAC00 \uC544\uB2CC \uCD5C\uCD08 \uCCAD\uD06C\uAC00 \uD074\uB77C\uC774\uC5B8\uD2B8\uC5D0 \uB3C4\uCC29\uD574 \uD654\uBA74\uC5D0 \uB80C\uB354\uB9C1\uB418\uAE30\uAE4C\uC9C0\uC758 \uC18C\uC694 \uC2DC\uAC04\uC73C\uB85C, UX \uB9CC\uC871\uB3C4\uC758 \uD575\uC2EC \uCC99\uB3C4\uC785\uB2C8\uB2E4." },
29813
+ { name: "\uC870\uAE30 \uC911\uB2E8 \uC2E0\uD638(AbortController Signal)", description: "\uC0AC\uC6A9\uC790\uAC00 \uC911\uC9C0 \uBC84\uD2BC\uC744 \uB204\uB974\uBA74 fetch API\uC758 signal\uC744 \uC911\uB2E8\uD574 \uC11C\uBC84\uC758 \uBD88\uD544\uC694\uD55C GPU \uC5F0\uC0B0\uACFC \uD1A0\uD070 \uACFC\uAE08\uC744 \uC989\uC2DC \uCC28\uB2E8\uD569\uB2C8\uB2E4." },
29814
+ { name: "\uBD88\uC644\uC804 \uB9C8\uD06C\uB2E4\uC6B4 \uBC84\uD37C\uB9C1(Fault-Tolerant Markdown Parsing)", description: "\uCF54\uB4DC \uBE14\uB85D\uC758 \uB2EB\uB294 \uBC31\uD2F1(```)\uC774\uB098 \uBCFC\uB4DC \uD0DC\uADF8(**)\uAC00 \uC544\uC9C1 \uC2A4\uD2B8\uB9AC\uBC0D\uB418\uC9C0 \uC54A\uC558\uC744 \uB54C\uB3C4 \uD30C\uC11C\uAC00 \uD06C\uB798\uC2DC \uC5C6\uC774 \uC810\uC9C4\uC801\uC73C\uB85C \uB80C\uB354\uB9C1\uD558\uB3C4\uB85D \uCC98\uB9AC\uD569\uB2C8\uB2E4." }
29815
+ ],
29816
+ workflow: [
29817
+ { name: "SSE \uC5F0\uACB0 \uC218\uB9BD \uBC0F \uC0C1\uD0DC \uCD08\uAE30\uD654\uD558\uAE30", description: "\uC694\uCCAD \uC2DC AbortController\uB97C \uB4F1\uB85D\uD558\uACE0, UI\uC5D0 \uD384\uC2A4 \uCEE4\uC11C\uC640 [\uC751\uB2F5 \uC911\uB2E8] \uBC84\uD2BC\uC744 \uD65C\uC131\uD654\uD569\uB2C8\uB2E4." },
29818
+ { name: "\uCCAD\uD06C \uC218\uC2E0 \uBC0F \uC810\uC9C4\uC801 \uD14D\uC2A4\uD2B8 \uCD94\uAC00\uD558\uAE30", description: "\uB3C4\uCC29\uD558\uB294 \uD14D\uC2A4\uD2B8 \uCCAD\uD06C\uB97C \uB204\uC801 \uBC84\uD37C\uC5D0 \uCD94\uAC00\uD558\uACE0, \uB80C\uB354\uB7EC\uB97C \uD1B5\uD574 \uBD80\uB4DC\uB7EC\uC6B4 \uD0C0\uC774\uD551 \uBAA8\uC158\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4." },
29819
+ { name: "\uC644\uB8CC \uC2E0\uD638 \uC218\uC2E0 \uB610\uB294 \uC911\uB2E8 \uC774\uBCA4\uD2B8 \uCC98\uB9AC\uD558\uAE30", description: "[DONE] \uD1A0\uD070 \uC218\uC2E0 \uC2DC \uCEE4\uC11C\uB97C \uC228\uAE30\uACE0 [\uB2E4\uC2DC \uC0DD\uC131]\uC73C\uB85C \uC804\uD658\uD558\uBA70, \uC0AC\uC6A9\uC790 \uC911\uB2E8 \uC2DC \uC5F0\uACB0\uC744 \uB2EB\uACE0 \uBD80\uBD84 \uBC84\uD37C\uB97C \uD655\uC815\uD569\uB2C8\uB2E4." }
29820
+ ],
29821
+ pitfalls: [
29822
+ { name: "\uCCAD\uD06C\uB9C8\uB2E4 \uBB34\uAC70\uC6B4 \uC804\uCCB4 \uB9AC\uB80C\uB354\uB9C1 \uBC1C\uC0DD\uC2DC\uD0A4\uAE30", description: "\uB9E4 \uD1A0\uD070\uB9C8\uB2E4 \uBCF5\uC7A1\uD55C \uCEF4\uD3EC\uB10C\uD2B8 \uD2B8\uB9AC\uB97C \uB2E4\uC2DC \uADF8\uB9AC\uBA74 \uBE0C\uB77C\uC6B0\uC800 \uBA54\uC778 \uC2A4\uB808\uB4DC\uAC00 \uC815\uC9C0\uD558\uBBC0\uB85C \uAC00\uBCBC\uC6B4 \uD14D\uC2A4\uD2B8 \uB178\uB4DC \uC5C5\uB370\uC774\uD2B8\uB098 requestAnimationFrame \uBC30\uCE6D\uC744 \uC801\uC6A9\uD574\uC57C \uD569\uB2C8\uB2E4." },
29823
+ { name: "\uD074\uB77C\uC774\uC5B8\uD2B8 \uC911\uB2E8 \uC2DC \uC11C\uBC84 \uC138\uC158\uC744 \uBC29\uCE58\uD558\uAE30", description: "\uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C\uB9CC \uC911\uB2E8\uD558\uACE0 \uBC31\uC5D4\uB4DC LLM \uD638\uCD9C\uC744 \uCDE8\uC18C\uD558\uC9C0 \uC54A\uC73C\uBA74 \uBC31\uC5D4\uB4DC\uC5D0\uC11C \uBC31\uADF8\uB77C\uC6B4\uB4DC \uD1A0\uD070 \uBE44\uC6A9\uC774 \uACC4\uC18D \uBC1C\uC0DD\uD569\uB2C8\uB2E4." }
29824
+ ],
29825
+ questions: [
29826
+ "\uC2A4\uD2B8\uB9AC\uBC0D \uB3C4\uC911 \uC77C\uC2DC\uC801 \uB124\uD2B8\uC6CC\uD06C \uC624\uB958\uAC00 \uB098\uBA74 \uC5B4\uB514\uC11C\uBD80\uD130 \uC7AC\uC5F0\uACB0\uC744 \uC2DC\uB3C4\uD560 \uAC83\uC778\uAC00\uC694?",
29827
+ "\uC911\uB2E8(Abort)\uB41C \uBD88\uC644\uC804\uD55C \uC751\uB2F5\uB3C4 \uB300\uD654 \uAE30\uB85D\uC5D0 \uC800\uC7A5\uD574 \uB2E4\uC74C \uD504\uB86C\uD504\uD2B8\uC758 \uCEE8\uD14D\uC2A4\uD2B8\uB85C \uB118\uAE38 \uAC83\uC778\uAC00\uC694?",
29828
+ "\uCF54\uB4DC \uBE14\uB85D \uB0B4\uBD80\uAC00 \uC2A4\uD2B8\uB9AC\uBC0D\uB418\uB294 \uB3C4\uC911 \uC0AC\uC6A9\uC790\uAC00 [\uCF54\uB4DC \uBCF5\uC0AC]\uB97C \uB204\uB974\uBA74 \uC5B4\uB5BB\uAC8C \uB3D9\uC791\uD574\uC57C \uD558\uB098\uC694?"
29829
+ ],
29830
+ example: "\uC608\uC2DC: \uCF54\uB4DC \uC0DD\uC131 AI\uC5D0\uC11C \uC0AC\uC6A9\uC790\uAC00 \uD504\uB86C\uD504\uD2B8\uB97C \uBCF4\uB0B4\uBA74 30ms \uAC04\uACA9\uC73C\uB85C \uCF54\uB4DC\uAC00 \uC2A4\uD2B8\uB9AC\uBC0D\uB418\uBA70, \uC6D0\uCE58 \uC54A\uB294 \uB77C\uC774\uBE0C\uB7EC\uB9AC\uB85C \uC791\uC131\uB418\uAE30 \uC2DC\uC791\uD560 \uB54C [\uC751\uB2F5 \uC911\uB2E8] \uBC84\uD2BC\uC744 \uB20C\uB7EC 150\uC790 \uC2DC\uC810\uC5D0 \uC989\uC2DC \uBA48\uCD94\uACE0 \uD504\uB86C\uD504\uD2B8\uB97C \uC218\uC815\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
29831
+ relatedDesigns: [
29832
+ { id: "ai-streaming-text", reason: "\uC2E4\uC2DC\uAC04 \uD0C0\uC774\uD551 \uD6A8\uACFC\uC640 \uD384\uC2A4 \uCEE4\uC11C, \uC751\uB2F5 \uC911\uC9C0 \uBC84\uD2BC\uC758 \uC2DC\uAC01\uC801 \uC778\uD130\uB799\uC158\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4." },
29833
+ { id: "ai-code-runner", reason: "\uC2A4\uD2B8\uB9AC\uBC0D\uB41C \uCF54\uB4DC\uC758 \uC2E0\uD0DD\uC2A4 \uD558\uC774\uB77C\uC774\uD305\uACFC \uBBF8\uB9AC\uBCF4\uAE30 \uD0ED \uC804\uD658\uC744 \uC9C0\uC6D0\uD569\uB2C8\uB2E4." }
29834
+ ],
29835
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uAE5C\uBE61\uC774\uB294 \uD384\uC2A4 \uCEE4\uC11C\uC640 [\uC751\uB2F5 \uC911\uC9C0] \uC81C\uC5B4\uAC00 \uD3EC\uD568\uB41C \uC2E4\uC2DC\uAC04 \uC2A4\uD2B8\uB9AC\uBC0D \uD14D\uC2A4\uD2B8 \uCEF4\uD3EC\uB10C\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108\uC5D0\uC11C 30ms \uAC04\uACA9\uC73C\uB85C \uAE00\uC790\uAC00 \uCD9C\uB825\uB418\uBA70 \uD074\uB9AD \uC2DC \uC989\uC2DC \uD0C0\uC774\uBA38\uB97C \uC815\uC9C0\uD558\uB294 \uC911\uC9C0 \uBC84\uD2BC\uC744 \uC81C\uACF5\uD574 \uC918."
29836
+ },
29837
+ en: {
29838
+ domain: "AI Agents & LLM Services",
29839
+ title: "SSE Streaming Response Rendering, Connection Recovery, and Early Abort",
29840
+ summary: "Stream tokens via SSE to slash TTFT, supporting AbortController-driven stops and resilient partial rendering.",
29841
+ overview: "Because LLM completions can span several seconds, chunked streaming over Server-Sent Events (SSE) or WebSockets is indispensable for minimizing perceived latency. Real-time token streaming creates responsive feedback while enabling users to abort suboptimal answers early. The architecture must handle incomplete markdown tokens and gracefully recover from dropped sockets.",
29842
+ concepts: [
29843
+ { name: "Time-to-First-Token (TTFT)", description: "The elapsed time until the initial text chunk renders in the browser, representing the primary benchmark of perceived system responsiveness." },
29844
+ { name: "AbortController Signal", description: "Transmitting cancellation signals to terminate the upstream LLM invocation and arrest downstream GPU billing." },
29845
+ { name: "Fault-tolerant Markdown Streaming", description: "Parsing incomplete markdown chunks (such as unclosed code fences) incrementally without crashing the DOM renderer." }
29846
+ ],
29847
+ workflow: [
29848
+ { name: "Establish SSE Stream & Abort Handles", description: "Initiate HTTP streaming with an attached AbortSignal, activating the stop button and typing cursor." },
29849
+ { name: "Accumulate Chunks & Batch Render", description: "Buffer incoming tokens and apply requestAnimationFrame updates for smooth typographic expansion." },
29850
+ { name: "Handle Completion or Abort Interrupts", description: "Finalize output on [DONE] signals, or cleanly sever the connection upon user abort while preserving partial buffers." }
29851
+ ],
29852
+ pitfalls: [
29853
+ { name: "Triggering Full Tree Re-renders Per Token", description: "Re-evaluating entire virtual DOM trees for every arriving token stalls the browser UI thread; batch DOM mutations." },
29854
+ { name: "Orphaning Upstream Server Generation on Abort", description: "Halting the client socket without signaling the backend API allows costly LLM compute to run to completion." }
29855
+ ],
29856
+ questions: [
29857
+ "How will dropped socket connections resume without duplicate token generation?",
29858
+ "Should truncated or aborted turns be committed into persistent session history?",
29859
+ "What state should one-click copy buttons present while a code block is actively streaming?"
29860
+ ],
29861
+ example: "Example: In an AI coding assistant, code blocks stream at 30ms intervals with a pulsing caret. When the developer spots an obsolete dependency, clicking Stop immediately halts generation at 150 characters.",
29862
+ relatedDesigns: [
29863
+ { id: "ai-streaming-text", reason: "Implements a pulsing cursor streaming effect with start and stop controls." },
29864
+ { id: "ai-code-runner", reason: "Renders streaming code with syntax highlighting and a live preview tab." }
29865
+ ],
29866
+ promptSnippet: "Create a streaming text component with a pulsing caret and stop button in the specified area. Inside a container of width 100% and min-height 180px, stream text at 30ms intervals and provide a button to immediately halt the stream on click."
29867
+ }
29868
+ },
29869
+ sources: [
29870
+ { title: "MDN Server-Sent Events Guide", url: "https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events" },
29871
+ { title: "W3C Fetch AbortController Standard", url: "https://fetch.spec.whatwg.org/#abortcontroller-interface" }
29872
+ ]
29873
+ },
29874
+ {
29875
+ id: "ai-tool-calling-and-human-approval",
29876
+ aliases: {
29877
+ ko: ["\uD568\uC218 \uD638\uCD9C", "Function Calling", "\uC5D0\uC774\uC804\uD2B8 \uB3C4\uAD6C", "\uD734\uBA3C\uC778\uB354\uB8E8\uD504", "\uC704\uD5D8 \uBA85\uB839 \uC2B9\uC778", "\uB3C4\uAD6C \uC2E4\uD589 \uAC00\uB4DC\uB808\uC77C"],
29878
+ en: ["tool calling", "function calling", "agent tools", "human-in-the-loop", "action approval", "guardrail validation"]
29879
+ },
29880
+ useCases: {
29881
+ ko: [
29882
+ "AI \uC5D0\uC774\uC804\uD2B8\uAC00 \uC678\uBD80 \uAC80\uC0C9, \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC870\uD68C, API \uD638\uCD9C\uC744 \uC9C1\uC811 \uC218\uD589\uD560 \uC218 \uC788\uB3C4\uB85D \uB3C4\uAD6C\uB97C \uC5F0\uACB0\uD560 \uB54C",
29883
+ "\uD30C\uC77C \uC0AD\uC81C, \uACB0\uC81C \uC2E4\uD589, \uC774\uBA54\uC77C \uBC1C\uC1A1 \uB4F1 \uBE44\uAC00\uC5ED\uC801 \uC704\uD5D8 \uC791\uC5C5 \uC804 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC2B9\uC778\uC744 \uC694\uCCAD\uD560 \uB54C",
29884
+ "\uB3C4\uAD6C \uC2E4\uD589 \uC778\uC790(JSON Arguments)\uC640 \uBC18\uD658 \uACB0\uACFC\uB97C \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC2DC\uAC01\uC801\uC73C\uB85C \uD22C\uBA85\uD558\uAC8C \uACF5\uAC1C\uD560 \uB54C",
29885
+ "\uB3C4\uAD6C \uC2E4\uD589 \uC2E4\uD328\uB098 \uD0C0\uC784\uC544\uC6C3 \uC2DC \uC5D0\uC774\uC804\uD2B8\uAC00 \uC2A4\uC2A4\uB85C \uB300\uCCB4 \uB3C4\uAD6C\uB97C \uCC3E\uAC70\uB098 \uC7AC\uC2DC\uB3C4\uD558\uB3C4\uB85D \uAD6C\uC131\uD560 \uB54C"
29886
+ ],
29887
+ en: [
29888
+ "Equipping AI agents with tools for external search, database queries, and API integrations",
29889
+ "Requiring explicit human approval before irreversible actions like file deletions or payment execution",
29890
+ "Transparently displaying structured JSON tool arguments and return payloads in the interface",
29891
+ "Enabling fallback tools or automated retries when a tool invocation times out or errors"
29892
+ ]
29893
+ },
29894
+ keywords: {
29895
+ ko: ["\uB3C4\uAD6C \uD638\uCD9C", "Function Calling", "\uC5D0\uC774\uC804\uD2B8", "Human-in-the-loop", "\uC2B9\uC778 \uBAA8\uB2EC", "\uAC00\uB4DC\uB808\uC77C", "JSON \uC778\uC790", "\uAD8C\uD55C \uAD00\uB9AC"],
29896
+ en: ["tool call", "function calling", "agent", "human in the loop", "approval card", "guardrail", "json arguments", "permissions"]
29897
+ },
29898
+ text: {
29899
+ ko: {
29900
+ domain: "AI \uC5D0\uC774\uC804\uD2B8 & LLM \uC11C\uBE44\uC2A4",
29901
+ title: "Function Calling \uB3C4\uAD6C \uC624\uCF00\uC2A4\uD2B8\uB808\uC774\uC158\uACFC \uC704\uD5D8 \uC791\uC5C5 \uC778\uAC04 \uC2B9\uC778(Human-in-the-Loop)",
29902
+ summary: "\uB3C4\uAD6C \uD638\uCD9C \uC785\uCD9C\uB825\uC744 \uC2DC\uAC01\uD654\uD558\uACE0, \uBE44\uAC00\uC5ED\uC801\uC778 \uBA85\uB839 \uC2E4\uD589 \uC804 \uC778\uAC04 \uC2B9\uC778(Human-in-the-Loop) \uAC00\uB4DC\uB808\uC77C\uC744 \uC801\uC6A9\uD569\uB2C8\uB2E4.",
29903
+ overview: "\uCD5C\uC2E0 \uC790\uC728 \uC5D0\uC774\uC804\uD2B8\uB294 \uC0AC\uC6A9\uC790\uC758 \uC758\uB3C4\uB97C \uBD84\uC11D\uD574 \uC6F9 \uAC80\uC0C9, \uACC4\uC0B0\uAE30, \uD130\uBBF8\uB110 \uC2E4\uD589, DB \uC218\uC815 \uB4F1\uC758 \uB3C4\uAD6C\uB97C \uC5F0\uACC4 \uD638\uCD9C\uD569\uB2C8\uB2E4. \uADF8\uB7EC\uB098 \uBAA8\uB378\uC774 \uC798\uBABB\uB41C \uC778\uC790\uB97C \uB123\uAC70\uB098 \uD30C\uC77C \uC2DC\uC2A4\uD15C \uC0AD\uC81C, \uACB0\uC81C \uB4F1 \uBE44\uAC00\uC5ED\uC801 \uBD80\uC791\uC6A9\uC774 \uC788\uB294 \uBA85\uB839\uC744 \uC790\uC758\uC801\uC73C\uB85C \uC2E4\uD589\uD558\uBA74 \uCE58\uBA85\uC801\uC778 \uD53C\uD574\uB97C \uCD08\uB798\uD569\uB2C8\uB2E4. \uB530\uB77C\uC11C \uB3C4\uAD6C \uD638\uCD9C\uC758 \uC9C4\uD589 \uC0C1\uD0DC\uB97C \uBA85\uD655\uD788 \uBCF4\uC5EC\uC8FC\uACE0, \uACE0\uC704\uD5D8 \uC791\uC5C5\uC740 Human-in-the-loop \uB2E8\uACC4\uB85C \uACA9\uB9AC\uD574 \uC0AC\uC6A9\uC790\uC758 \uBA85\uC2DC\uC801 [\uC2B9\uC778] \uC5C6\uC774\uB294 \uC2E4\uD589\uB418\uC9C0 \uC54A\uB3C4\uB85D \uAC15\uC81C\uD574\uC57C \uD569\uB2C8\uB2E4.",
29904
+ concepts: [
29905
+ { name: "\uB3C4\uAD6C \uC2A4\uD0A4\uB9C8 \uBC0F \uC778\uC790 \uD30C\uC2F1(Tool Schema & JSON Arguments)", description: "\uBAA8\uB378\uC774 \uD638\uCD9C\uD560 \uD568\uC218\uC758 \uC774\uB984, \uC124\uBA85, \uB9E4\uAC1C\uBCC0\uC218 \uC2A4\uD0A4\uB9C8\uB97C \uC815\uC758\uD558\uACE0 \uBC18\uD658\uB41C JSON \uC778\uC790\uC758 \uC720\uD6A8\uC131\uC744 \uB7F0\uD0C0\uC784\uC5D0\uC11C \uAC80\uC99D\uD569\uB2C8\uB2E4." },
29906
+ { name: "\uC704\uD5D8\uB3C4 \uC218\uC900 \uBD84\uB958(Risk Severity Tiering)", description: "\uB2E8\uC21C \uC870\uD68C(Low), \uB370\uC774\uD130 \uBCC0\uACBD(Medium), \uC0AD\uC81C/\uACB0\uC81C/\uC678\uBD80 \uC804\uC1A1(High)\uC73C\uB85C \uC791\uC5C5\uC744 \uBD84\uB958\uD574 High \uB4F1\uAE09\uC5D0\uB9CC \uC2B9\uC778 \uC778\uD130\uB799\uC158\uC744 \uD544\uC218\uB85C \uC694\uAD6C\uD569\uB2C8\uB2E4." },
29907
+ { name: "\uD734\uBA3C \uC778 \uB354 \uB8E8\uD504(Human-in-the-Loop, HITL)", description: "\uC5D0\uC774\uC804\uD2B8 \uC2E4\uD589 \uB8E8\uD504\uB97C \uC77C\uC2DC \uC911\uC9C0\uD558\uACE0 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uBA85\uB839 \uD30C\uB77C\uBBF8\uD130\uC640 \uC608\uC0C1 \uC601\uD5A5\uC744 \uC81C\uC2DC\uD55C \uB4A4 [\uC2B9\uC778/\uAC70\uC808] \uC785\uB825\uC744 \uAE30\uB2E4\uB9BD\uB2C8\uB2E4." }
29908
+ ],
29909
+ workflow: [
29910
+ { name: "\uBAA8\uB378\uC758 Tool Call \uC694\uCCAD \uC218\uC2E0 \uBC0F \uAC80\uC99D\uD558\uAE30", description: "\uBAA8\uB378\uC774 \uC0DD\uC131\uD55C function_call \uB370\uC774\uD130\uB97C \uD30C\uC2F1\uD574 \uB3C4\uAD6C \uBA85\uC138 \uBC0F \uC778\uC790 \uC720\uD6A8\uC131\uC744 \uD655\uC778\uD569\uB2C8\uB2E4." },
29911
+ { name: "\uC791\uC5C5 \uC704\uD5D8\uB3C4 \uD3C9\uAC00 \uBC0F \uC2B9\uC778 \uCE74\uB4DC \uB80C\uB354\uB9C1\uD558\uAE30", description: "\uACE0\uC704\uD5D8 \uC791\uC5C5\uC77C \uACBD\uC6B0 \uC989\uC2DC \uC2E4\uD589\uD558\uC9C0 \uC54A\uACE0 \uC2B9\uC778 \uB300\uAE30 \uC0C1\uD0DC\uB85C \uC804\uD658\uD574 \uACBD\uACE0 \uCE74\uB4DC\uC640 \uBC84\uD2BC\uC744 \uB178\uCD9C\uD569\uB2C8\uB2E4." },
29912
+ { name: "\uC0AC\uC6A9\uC790 \uC2B9\uC778 \uC2DC \uC2E4\uD589 \uBC0F \uACB0\uACFC \uBC18\uD658\uD558\uAE30", description: "\uC0AC\uC6A9\uC790\uAC00 \uC2B9\uC778\uD558\uBA74 \uC2E4\uC81C \uD568\uC218\uB97C \uD638\uCD9C\uD574 \uACB0\uACFC\uB97C \uC5D0\uC774\uC804\uD2B8 \uCEE8\uD14D\uC2A4\uD2B8\uC5D0 \uC8FC\uC785\uD558\uACE0, \uAC70\uC808 \uC2DC \uCDE8\uC18C \uBA54\uC2DC\uC9C0\uB97C \uC804\uB2EC\uD569\uB2C8\uB2E4." }
29913
+ ],
29914
+ pitfalls: [
29915
+ { name: "\uC2B9\uC778 \uBAA8\uB2EC \uC5C6\uC774 \uC178(Shell)\uC774\uB098 \uD30C\uC77C \uC4F0\uAE30 \uAD8C\uD55C \uD5C8\uC6A9\uD558\uAE30", description: "\uD504\uB86C\uD504\uD2B8 \uC778\uC81D\uC158 \uACF5\uACA9\uC5D0 \uB178\uCD9C\uB420 \uACBD\uC6B0 \uC2DC\uC2A4\uD15C \uD30C\uC77C\uC774 \uC0AD\uC81C\uB418\uAC70\uB098 \uC545\uC131 \uC2A4\uD06C\uB9BD\uD2B8\uAC00 \uC2E4\uD589\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4." },
29916
+ { name: "\uB3C4\uAD6C \uC2E4\uD589 \uC2E4\uD328 \uC2DC \uBB34\uD55C \uC7AC\uC2DC\uB3C4 \uB8E8\uD504\uC5D0 \uBE60\uC9C0\uAE30", description: "\uC5D0\uB7EC \uC751\uB2F5\uC744 \uBC1B\uC740 \uBAA8\uB378\uC774 \uB3D9\uC77C\uD55C \uC2E4\uD328 \uBA85\uB839\uC744 \uBC18\uBCF5 \uD638\uCD9C\uD574 \uD06C\uB808\uB527\uC744 \uACE0\uAC08\uC2DC\uD0A4\uB294 \uBB38\uC81C\uB97C \uBC29\uC9C0\uD558\uAE30 \uC704\uD574 \uCD5C\uB300 \uC7AC\uC2DC\uB3C4 \uD69F\uC218\uB97C \uC81C\uD55C\uD574\uC57C \uD569\uB2C8\uB2E4." }
29917
+ ],
29918
+ questions: [
29919
+ "\uC5B4\uB5A4 \uC791\uC5C5(\uC608: \uD30C\uC77C \uC0AD\uC81C, \uC678\uBD80 API \uBC1C\uC1A1)\uC744 \uBC18\uB4DC\uC2DC \uC0AC\uC6A9\uC790\uC758 \uC2B9\uC778\uC744 \uAC70\uCCD0\uC57C \uD558\uB294 \uACE0\uC704\uD5D8\uAD70\uC73C\uB85C \uC9C0\uC815\uD560 \uAC83\uC778\uAC00\uC694?",
29920
+ "\uC0AC\uC6A9\uC790\uAC00 \uC2B9\uC778\uC744 \uAC70\uC808\uD588\uC744 \uB54C, \uC5D0\uC774\uC804\uD2B8\uAC00 \uB2E4\uB978 \uB300\uC548\uC744 \uC81C\uC2DC\uD558\uB3C4\uB85D \uD504\uB86C\uD504\uD2B8\uB97C \uC5B4\uB5BB\uAC8C \uC720\uB3C4\uD560 \uAC83\uC778\uAC00\uC694?",
29921
+ "\uBC31\uADF8\uB77C\uC6B4\uB4DC\uC5D0\uC11C \uC2E4\uD589\uB418\uB294 \uAE34 \uB3C4\uAD6C(\uC608: \uC6F9 \uD06C\uB864\uB9C1)\uC758 \uC9C4\uD589\uB960\uC744 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC5B4\uB5BB\uAC8C \uBCF4\uACE0\uD560 \uAC83\uC778\uAC00\uC694?"
29922
+ ],
29923
+ example: '\uC608\uC2DC: \uCF54\uB529 \uC5D0\uC774\uC804\uD2B8\uAC00 \uCE90\uC2DC \uB514\uB809\uD130\uB9AC \uC815\uB9AC \uBA85\uB839("rm -rf ./temp_cache")\uC744 \uB0B4\uB838\uC744 \uB54C, \uBE68\uAC04\uC0C9 [High] \uC704\uD5D8\uB3C4 \uBC30\uC9C0\uC640 \uC601\uD5A5\uBC1B\uB294 \uD30C\uC77C \uBAA9\uB85D\uC744 \uB2F4\uC740 \uC2B9\uC778 \uCE74\uB4DC\uB97C \uB744\uC6CC \uC0AC\uC6A9\uC790\uAC00 [\uC2B9\uC778\uD558\uC5EC \uC2E4\uD589]\uC744 \uD074\uB9AD\uD560 \uB54C\uB9CC \uC2E4\uC81C \uBA85\uB839\uC774 \uC2E4\uD589\uB418\uB3C4\uB85D \uC81C\uC5B4\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.',
29924
+ relatedDesigns: [
29925
+ { id: "ai-tool-call-card", reason: "\uC5D0\uC774\uC804\uD2B8\uAC00 \uD638\uCD9C\uD55C \uB3C4\uAD6C\uBA85, \uD30C\uB77C\uBBF8\uD130 JSON, \uC2E4\uD589 \uC0C1\uD0DC \uC2A4\uD53C\uB108\uB97C \uB2E8\uACC4\uBCC4\uB85C \uC2DC\uAC01\uD654\uD569\uB2C8\uB2E4." },
29926
+ { id: "ai-human-in-the-loop", reason: "\uACE0\uC704\uD5D8 \uBA85\uB839 \uC2E4\uD589 \uC804 \uC601\uD5A5\uB3C4 \uC694\uC57D\uACFC \uC2B9\uC778/\uAC70\uC808 \uC561\uC158\uC744 \uC81C\uC5B4\uD558\uB294 \uAC00\uB4DC\uB808\uC77C UI\uB97C \uC81C\uACF5\uD569\uB2C8\uB2E4." }
29927
+ ],
29928
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uACE0\uC704\uD5D8 \uC791\uC5C5 \uC804 \uC0AC\uC6A9\uC790 \uC2B9\uC778\uC744 \uC694\uAD6C\uD558\uB294 Human-in-the-loop \uAC00\uB4DC\uB808\uC77C \uCE74\uB4DC\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 \uACBD\uACE0 \uC544\uC774\uCF58, \uC704\uD5D8\uB3C4 [High] \uBC30\uC9C0, \uC2E4\uD589 \uC608\uC815 \uBA85\uB839 \uBC0F \uC601\uD5A5 \uD30C\uC77C \uBAA9\uB85D, \uADF8\uB9AC\uACE0 [\uC2B9\uC778\uD558\uC5EC \uC2E4\uD589]\uACFC [\uAC70\uC808\uD558\uAE30] \uBC84\uD2BC\uC744 \uBC30\uCE58\uD574 \uC918."
29929
+ },
29930
+ en: {
29931
+ domain: "AI Agents & LLM Services",
29932
+ title: "Function Calling Tool Orchestration and Human-in-the-Loop Approval",
29933
+ summary: "Visualize agent tool invocations while gating irreversible actions behind human-in-the-loop approval guardrails.",
29934
+ overview: "Autonomous agents leverage function calling to interact with search engines, databases, and system utilities. However, unconstrained tool access creates severe vulnerabilities when models emit erroneous arguments or execute destructive system operations. Robust architectures classify action risk levels and isolate high-severity operations behind interactive human checkpoints.",
29935
+ concepts: [
29936
+ { name: "Tool Schema & Parameter Validation", description: "Defining JSON schemas for available tools and validating model-generated arguments before execution." },
29937
+ { name: "Risk Severity Tiering", description: "Categorizing tools into read-only (Low), mutation (Medium), and destructive/financial (High) tiers." },
29938
+ { name: "Human-in-the-Loop (HITL)", description: "Suspending agent execution loops to solicit explicit approval or cancellation from the user for high-risk operations." }
29939
+ ],
29940
+ workflow: [
29941
+ { name: "Parse Tool Call Directives", description: "Inspect model output for tool invocations and validate argument integrity against schemas." },
29942
+ { name: "Evaluate Risk & Trigger Approval UI", description: "If flagged as high risk, intercept execution and render an interactive approval modal detailing projected impacts." },
29943
+ { name: "Execute on Approval or Inject Refusal", description: "On human approval, run the function and stream results; on rejection, feed a structured cancellation notice back to the agent." }
29944
+ ],
29945
+ pitfalls: [
29946
+ { name: "Permitting Unrestricted Shell Access Without Approvals", description: "Prompt injection vectors can compromise system hosts via automated script execution; enforce strict human verification." },
29947
+ { name: "Unbounded Tool Retry Spirals", description: "Failing invocations can trap agents in repetitive error loops, rapidly draining API allowances without human intervention." }
29948
+ ],
29949
+ questions: [
29950
+ "Which specific operations (e.g., file deletes, webhook calls) strictly mandate human sign-off?",
29951
+ "How should the agent recover when a user explicitly rejects a proposed tool invocation?",
29952
+ "What visual telemetry should communicate progress for long-running asynchronous tools?"
29953
+ ],
29954
+ example: 'Example: An autonomous coding agent proposing "rm -rf ./temp_cache" triggers an amber warning card with a red [High] badge. The command remains dormant until the user explicitly clicks [Approve & Execute].',
29955
+ relatedDesigns: [
29956
+ { id: "ai-tool-call-card", reason: "Displays tool names, JSON arguments, and execution spinner indicators." },
29957
+ { id: "ai-human-in-the-loop", reason: "Implements human approval guardrails with risk badges and confirmation buttons." }
29958
+ ],
29959
+ promptSnippet: "Create a Human-in-the-loop approval guardrail card in the specified area. Inside a container of width 100% and min-height 180px, render a warning card displaying a [High] risk badge, command details, and dual [Approve & Execute] and [Reject] buttons."
29960
+ }
29961
+ },
29962
+ sources: [
29963
+ { title: "OpenAI Function Calling Guide", url: "https://platform.openai.com/docs/guides/function-calling" },
29964
+ { title: "Anthropic Tool Use Documentation", url: "https://docs.anthropic.com/en/docs/build-with-claude/tool-use" }
29965
+ ]
29966
+ },
29967
+ {
29968
+ id: "ai-rag-retrieval-and-source-attribution",
29969
+ aliases: {
29970
+ ko: ["RAG", "\uAC80\uC0C9 \uC99D\uAC15 \uC0DD\uC131", "\uCD9C\uCC98 \uC778\uC6A9", "\uD560\uB8E8\uC2DC\uB124\uC774\uC158 \uBC29\uC9C0", "\uADFC\uAC70 \uC81C\uC2DC", "\uBB38\uC11C \uC784\uBCA0\uB529"],
29971
+ en: ["RAG", "retrieval-augmented generation", "source attribution", "citation chips", "hallucination reduction", "document embeddings"]
29972
+ },
29973
+ useCases: {
29974
+ ko: [
29975
+ "\uAE30\uC5C5 \uC0AC\uB0B4 \uBB38\uC11C\uB098 \uCD5C\uC2E0 \uC9C0\uC2DD\uC744 \uAC80\uC0C9\uD574 AI \uB2F5\uBCC0\uC758 \uADFC\uAC70\uB85C \uD65C\uC6A9\uD558\uACE0 \uC2E0\uB8B0\uB3C4\uB97C \uB192\uC774\uACE0\uC790 \uD560 \uB54C",
29976
+ "\uC0DD\uC131\uB41C \uB2F5\uBCC0 \uBB38\uC7A5\uB9C8\uB2E4 \uC778\uB77C\uC778 \uCD9C\uCC98 \uBC88\uD638([1], [2])\uB97C \uB2EC\uC544 \uD638\uBC84 \uC2DC \uC6D0\uBB38 \uC2A4\uB2C8\uD3AB\uC744 \uAC80\uC99D\uD558\uAC8C \uD560 \uB54C",
29977
+ "AI\uAC00 \uC9C0\uC5B4\uB0B8 \uAC70\uC9D3 \uC815\uBCF4(\uD560\uB8E8\uC2DC\uB124\uC774\uC158)\uB97C \uC904\uC774\uAE30 \uC704\uD574 \uB2F5\uBCC0 \uC791\uC131 \uC804 \uCD94\uB860(Thinking) \uB2E8\uACC4\uB97C \uB178\uCD9C\uD560 \uB54C",
29978
+ "\uAC80\uC0C9\uB41C \uBB38\uC11C \uCCAD\uD06C(Chunk) \uC911 \uC2E4\uC81C \uB2F5\uBCC0\uC5D0 \uAE30\uC5EC\uD55C \uD575\uC2EC \uBB38\uB2E8\uC744 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uD22C\uBA85\uD558\uAC8C \uBCF4\uC5EC\uC904 \uB54C"
29979
+ ],
29980
+ en: [
29981
+ "Grounding AI completions in proprietary documents or fresh knowledge bases to build trust",
29982
+ "Attaching inline citation badges ([1], [2]) that reveal source snippets and URLs on hover",
29983
+ "Mitigating model hallucinations by exposing step-by-step thinking processes to users",
29984
+ "Displaying the exact document chunks that informed the generated answer"
29985
+ ]
29986
+ },
29987
+ keywords: {
29988
+ ko: ["RAG", "\uAC80\uC0C9 \uC99D\uAC15", "\uCD9C\uCC98 \uC778\uC6A9", "\uD560\uB8E8\uC2DC\uB124\uC774\uC158", "\uCD94\uB860 \uACFC\uC815", "CoT", "\uC2E0\uB8B0\uB3C4", "\uC784\uBCA0\uB529"],
29989
+ en: ["RAG", "retrieval augmented generation", "citations", "hallucination", "thinking process", "chain of thought", "attribution"]
29990
+ },
29991
+ text: {
29992
+ ko: {
29993
+ domain: "AI \uC5D0\uC774\uC804\uD2B8 & LLM \uC11C\uBE44\uC2A4",
29994
+ title: "RAG \uAC80\uC0C9 \uC99D\uAC15\uACFC \uC778\uB77C\uC778 \uCD9C\uCC98 \uC778\uC6A9 \uBC0F \uD560\uB8E8\uC2DC\uB124\uC774\uC158 \uAC00\uB4DC\uB808\uC77C",
29995
+ summary: "\uAC80\uC0C9 \uC99D\uAC15(RAG) \uC9C0\uC2DD\uC744 \uBC14\uD0D5\uC73C\uB85C \uBB38\uC7A5\uBCC4 \uC778\uB77C\uC778 \uCD9C\uCC98 \uC778\uC6A9\uACFC \uC0AC\uACE0 \uACFC\uC815(Thinking)\uC744 \uC81C\uACF5\uD574 \uD560\uB8E8\uC2DC\uB124\uC774\uC158\uC744 \uC5B5\uC81C\uD569\uB2C8\uB2E4.",
29996
+ overview: "LLM\uC758 \uAC00\uC7A5 \uD070 \uD55C\uACC4\uB294 \uD559\uC2B5 \uC2DC\uC810 \uC774\uD6C4\uC758 \uCD5C\uC2E0 \uC815\uBCF4\uB97C \uC54C\uC9C0 \uBABB\uD558\uACE0 \uADF8\uB7F4\uB4EF\uD55C \uAC70\uC9D3\uB9D0\uC744 \uC9C0\uC5B4\uB0B4\uB294 \uD560\uB8E8\uC2DC\uB124\uC774\uC158(Hallucination)\uC785\uB2C8\uB2E4. \uC774\uB97C \uADF9\uBCF5\uD558\uAE30 \uC704\uD574 \uC0AC\uC6A9\uC790 \uC9C8\uBB38\uACFC \uAD00\uB828\uB41C \uBB38\uC11C\uB97C \uBCA1\uD130 DB\uC5D0\uC11C \uAC80\uC0C9\uD574 \uCEE8\uD14D\uC2A4\uD2B8\uB85C \uC81C\uACF5\uD558\uB294 RAG \uAE30\uBC95\uC774 \uB110\uB9AC \uC0AC\uC6A9\uB429\uB2C8\uB2E4. \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uB192\uC740 \uC2E0\uB8B0\uB97C \uC8FC\uB824\uBA74 \uB2F5\uBCC0 \uBB38\uC7A5\uB9C8\uB2E4 \uCD9C\uCC98 \uBC88\uD638 \uCE69\uC744 \uB2EC\uC544 \uB9C8\uC6B0\uC2A4 \uD638\uBC84 \uC2DC \uC6D0\uBB38 \uC81C\uBAA9\uACFC \uBC1C\uCDCC\uBB38\uC744 \uD655\uC778\uD558\uAC8C \uD558\uACE0, \uBCF5\uC7A1\uD55C \uB2F5\uBCC0\uC740 AI\uC758 \uC0AC\uACE0 \uACFC\uC815(Thinking)\uC744 \uD3BC\uCCD0\uBCFC \uC218 \uC788\uAC8C \uD574\uC57C \uD569\uB2C8\uB2E4.",
29997
+ concepts: [
29998
+ { name: "\uAC80\uC0C9 \uC99D\uAC15 \uC0DD\uC131(RAG, Retrieval-Augmented Generation)", description: "\uC678\uBD80 \uC9C0\uC2DD \uBCA0\uC774\uC2A4\uC5D0\uC11C \uAD00\uB828 \uD14D\uC2A4\uD2B8 \uCCAD\uD06C\uB97C \uAC80\uC0C9\uD574 LLM\uC758 \uD504\uB86C\uD504\uD2B8 \uCEE8\uD14D\uC2A4\uD2B8\uC5D0 \uC8FC\uC785\uD568\uC73C\uB85C\uC368 \uC815\uD655\uD55C \uADFC\uAC70 \uAE30\uBC18 \uB2F5\uBCC0\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4." },
29999
+ { name: "\uC778\uB77C\uC778 \uCD9C\uCC98 \uC778\uC6A9(Inline Attribution)", description: "\uC0DD\uC131\uB41C \uD14D\uC2A4\uD2B8 \uBCF8\uBB38 \uB0B4\uC5D0 [1], [2] \uAC19\uC740 \uAC01\uC8FC \uD615\uD0DC\uC758 \uCE69\uC744 \uBC30\uCE58\uD558\uACE0, \uC0C1\uD638\uC791\uC6A9 \uC2DC \uC6D0\uBB38 \uB9C1\uD06C\uC640 \uBC1C\uCDCC\uBB38\uC744 \uD31D\uC624\uBC84\uB85C \uC81C\uACF5\uD569\uB2C8\uB2E4." },
30000
+ { name: "\uC0AC\uACE0 \uACFC\uC815 \uD22C\uBA85\uC131(Chain-of-Thought Transparency)", description: "\uBAA8\uB378\uC774 \uCD5C\uC885 \uB2F5\uBCC0\uC744 \uB0B4\uB193\uAE30 \uC804 \uAC70\uCE5C \uBD84\uC11D\xB7\uAC80\uC0C9\xB7\uAC80\uC99D \uB2E8\uACC4\uB97C \uC544\uCF54\uB514\uC5B8 \uD615\uD0DC\uB85C \uB178\uCD9C\uD574 \uB2F5\uBCC0\uC758 \uB17C\uB9AC\uC801 \uD0C0\uB2F9\uC131\uC744 \uC0AC\uC6A9\uC790\uAC00 \uC9C1\uC811 \uAC80\uD1A0\uD558\uAC8C \uD569\uB2C8\uB2E4." }
30001
+ ],
30002
+ workflow: [
30003
+ { name: "\uC9C8\uBB38 \uC784\uBCA0\uB529 \uBC0F \uAD00\uB828 \uCCAD\uD06C \uAC80\uC0C9\uD558\uAE30", description: "\uC0AC\uC6A9\uC790 \uC9C8\uBB38\uACFC \uC720\uC0AC\uD55C \uBB38\uC11C \uCCAD\uD06C \uC0C1\uC704 3~5\uAC1C\uB97C \uBCA1\uD130 DB\uC5D0\uC11C \uC870\uD68C\uD574 \uBA54\uD0C0\uB370\uC774\uD130(URL, \uC81C\uBAA9)\uC640 \uD568\uAED8 \uC900\uBE44\uD569\uB2C8\uB2E4." },
30004
+ { name: "\uADFC\uAC70 \uAE30\uBC18 \uB2F5\uBCC0 \uBC0F \uC778\uC6A9 \uD0DC\uADF8 \uC0DD\uC131\uD558\uAE30", description: "\uC2DC\uC2A4\uD15C \uD504\uB86C\uD504\uD2B8\uC5D0 \uC81C\uACF5\uB41C \uBB38\uC11C\uB9CC\uC744 \uAE30\uBC18\uC73C\uB85C \uB2F5\uBCC0\uD558\uACE0 \uC778\uC6A9 \uBC88\uD638\uB97C \uBD99\uC774\uB3C4\uB85D \uC9C0\uC2DC\uD569\uB2C8\uB2E4." },
30005
+ { name: "\uC778\uB77C\uC778 \uCE69 \uBC0F \uD638\uBC84 \uD31D\uC624\uBC84 \uCE74\uB4DC \uBC14\uC778\uB529\uD558\uAE30", description: "\uB80C\uB354\uB9C1 \uC2DC [1] \uD0DC\uADF8\uB97C \uAC10\uC9C0\uD574 \uCD9C\uCC98 \uD31D\uC624\uBC84 \uCEF4\uD3EC\uB10C\uD2B8\uB85C \uCE58\uD658\uD558\uACE0 \uC6D0\uBB38 \uD30C\uBE44\uCF58 \uBC0F \uBC1C\uCDCC\uBB38\uC744 \uC5F0\uACB0\uD569\uB2C8\uB2E4." }
30006
+ ],
30007
+ pitfalls: [
30008
+ { name: "\uAC80\uC0C9\uB41C \uCCAD\uD06C\uAC00 \uC9C8\uBB38\uACFC \uBB34\uAD00\uD55C\uB370\uB3C4 \uC5B5\uC9C0\uB85C \uB2F5\uBCC0\uC5D0 \uB07C\uC6CC \uB9DE\uCD94\uAE30", description: '\uC720\uC0AC\uB3C4 \uC810\uC218\uAC00 \uB0AE\uC740 \uAC80\uC0C9 \uACB0\uACFC\uB294 \uACFC\uAC10\uD788 \uBC84\uB9AC\uACE0 "\uC81C\uACF5\uB41C \uBB38\uC11C\uC5D0\uC11C \uAD00\uB828 \uC815\uBCF4\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4"\uB77C\uACE0 \uC194\uC9C1\uD788 \uB2F5\uBCC0\uD558\uB3C4\uB85D \uAC00\uB4DC\uB808\uC77C\uC744 \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.' },
30009
+ { name: "\uD074\uB9AD\uD574\uB3C4 \uC774\uB3D9\uD560 \uC218 \uC5C6\uB294 \uAC00\uC9DC \uCD9C\uCC98 URL \uB9C1\uD06C \uB0A8\uAE30\uAE30", description: "\uCD9C\uCC98 \uCE69\uC5D0 \uC2E4\uC81C \uC720\uD6A8\uD55C URL\uC774\uB098 \uBB38\uC11C \uBBF8\uB9AC\uBCF4\uAE30\uAC00 \uC5F0\uACB0\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC73C\uBA74 \uC11C\uBE44\uC2A4 \uC2E0\uB8B0\uB3C4\uAC00 \uAE09\uACA9\uD788 \uD558\uB77D\uD569\uB2C8\uB2E4." }
30010
+ ],
30011
+ questions: [
30012
+ "\uC0AC\uC6A9\uC790\uAC00 \uC778\uC6A9 \uCE69\uC744 \uD074\uB9AD\uD588\uC744 \uB54C \uC678\uBD80 \uC6F9\uD398\uC774\uC9C0\uB85C \uC774\uB3D9\uD558\uB098\uC694, \uC544\uB2C8\uBA74 \uC11C\uBE44\uC2A4 \uB0B4 \uBB38\uC11C \uBDF0\uC5B4\uB85C \uC5F0\uACB0\uD558\uB098\uC694?",
30013
+ "\uAC80\uC0C9\uB41C \uBB38\uC11C \uB0B4\uC6A9\uACFC LLM \uC790\uCCB4 \uC9C0\uC2DD\uC774 \uC0C1\uCDA9\uD560 \uB54C \uC5B4\uB5A4 \uC815\uBCF4\uB97C \uC6B0\uC120\uD558\uC5EC \uB2F5\uBCC0\uD560 \uAC83\uC778\uAC00\uC694?",
30014
+ "AI \uC0AC\uACE0 \uACFC\uC815(Thinking Process)\uC744 \uAE30\uBCF8\uC801\uC73C\uB85C \uD3BC\uCCD0\uB458 \uAC83\uC778\uAC00\uC694, \uC811\uC5B4\uB450\uACE0 \uC0AC\uC6A9\uC790\uAC00 \uC6D0\uD560 \uB54C\uB9CC \uBCF4\uAC8C \uD560 \uAC83\uC778\uAC00\uC694?"
30015
+ ],
30016
+ example: '\uC608\uC2DC: \uAE30\uC220 \uBB38\uC11C Q&A\uC5D0\uC11C React 19 \uBCC0\uACBD\uC810\uC744 \uC9C8\uBB38\uD558\uBA74, \uBCF8\uBB38 \uB05D\uC5D0 [1], [2] \uCE69\uC744 \uD45C\uC2DC\uD558\uACE0 [1]\uC5D0 \uB9C8\uC6B0\uC2A4\uB97C \uC62C\uB838\uC744 \uB54C "React 19 \uB9C8\uC774\uADF8\uB808\uC774\uC158 \uAC00\uC774\uB4DC" \uC81C\uBAA9\uACFC react.dev URL \uBC0F \uD575\uC2EC \uBC1C\uCDCC\uBB38\uC744 \uB2F4\uC740 \uCE74\uB4DC\uAC00 \uBD80\uB4DC\uB7FD\uAC8C \uB098\uD0C0\uB0A9\uB2C8\uB2E4.',
30017
+ relatedDesigns: [
30018
+ { id: "ai-source-citation", reason: "\uD14D\uC2A4\uD2B8 \uC18D \uC778\uB77C\uC778 \uCD9C\uCC98 \uBC88\uD638\uC640 \uB9C8\uC6B0\uC2A4 \uD638\uBC84 \uC2DC \uB098\uD0C0\uB098\uB294 \uC6D0\uBB38 \uC694\uC57D \uD31D\uC624\uBC84\uB97C \uAD6C\uD604\uD569\uB2C8\uB2E4." },
30019
+ { id: "ai-thinking-accordion", reason: "AI\uC758 \uCD94\uB860 \uACFC\uC815\uACFC \uACBD\uACFC \uC2DC\uAC04, \uB2E8\uACC4\uBCC4 \uCCB4\uD06C\uB9AC\uC2A4\uD2B8\uB97C \uB2F4\uC740 \uC811\uC774\uC2DD \uC544\uCF54\uB514\uC5B8\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4." }
30020
+ ],
30021
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC778\uB77C\uC778 \uCD9C\uCC98 \uC778\uC6A9 \uCE69\uACFC \uD638\uBC84 \uBBF8\uB9AC\uBCF4\uAE30 \uCE74\uB4DC\uB97C \uAC16\uCD98 AI \uB2F5\uBCC0 UI\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 \uB2F5\uBCC0 \uD14D\uC2A4\uD2B8\uC640 [1] \uC778\uC6A9 \uCE69\uC744 \uBC30\uCE58\uD558\uACE0, \uD638\uBC84 \uC2DC 240px \uB108\uBE44\uC758 \uCD9C\uCC98 \uCE74\uB4DC(\uC81C\uBAA9, URL, 2\uC904 \uBC1C\uCDCC\uBB38)\uAC00 150ms \uD398\uC774\uB4DC\uC778\uC73C\uB85C \uB098\uD0C0\uB098\uAC8C \uD574 \uC918."
30022
+ },
30023
+ en: {
30024
+ domain: "AI Agents & LLM Services",
30025
+ title: "RAG Retrieval Augmentation, Inline Source Attribution, and Hallucination Guardrails",
30026
+ summary: "Ground AI answers in retrieved documents with inline citation badges and collapsible thinking timelines to suppress hallucinations.",
30027
+ overview: "A primary hurdle in generative AI adoption is hallucination\u2014the confident assertion of fabricated claims. Retrieval-Augmented Generation (RAG) resolves this by fetching relevant document chunks from vector databases to anchor responses in verified truth. To cultivate user trust, answers should furnish inline reference badges that reveal underlying sources on hover alongside transparent reasoning logs.",
30028
+ concepts: [
30029
+ { name: "Retrieval-Augmented Generation (RAG)", description: "Injecting queried knowledge base chunks into the prompt context to ensure strictly factual, evidence-backed answers." },
30030
+ { name: "Inline Attribution Badges", description: "Embedding interactive reference markers ([1], [2]) directly within prose to anchor assertions to verifiable documents." },
30031
+ { name: "Chain-of-Thought Transparency", description: "Exposing intermediate reasoning and search steps inside an accordion so users can evaluate logical integrity." }
30032
+ ],
30033
+ workflow: [
30034
+ { name: "Query Vector Stores for Context Chunks", description: "Retrieve top matching document snippets with associated metadata (title, URL, timestamps)." },
30035
+ { name: "Synthesize Answers with Citation Footnotes", description: "Instruct the model to reference source indices corresponding to cited propositions." },
30036
+ { name: "Bind Interactive Citation Popovers", description: "Map citation tokens to rich hover cards displaying site favicons, page titles, and snippet excerpts." }
30037
+ ],
30038
+ pitfalls: [
30039
+ { name: "Forcing Responses When Retrieval Confidence Is Poor", description: "Failing to implement similarity score floors prompts models to hallucinate answers instead of reporting missing data." },
30040
+ { name: "Dangling Citations Without Navigable Sources", description: "Displaying dead reference numbers with unverified links severely damages platform credibility." }
30041
+ ],
30042
+ questions: [
30043
+ "Should citation clicks navigate externally or open an internal split-pane viewer?",
30044
+ "How will conflicting facts between enterprise documents and model priors be arbitrated?",
30045
+ "Should the thinking process accordion mount open by default or remain collapsed?"
30046
+ ],
30047
+ example: 'Example: In a technical documentation assistant, answers append [1] markers. Hovering marker [1] reveals a 240px card with title "React 19 Migration Guide", domain "react.dev", and excerpt text.',
30048
+ relatedDesigns: [
30049
+ { id: "ai-source-citation", reason: "Provides inline citation chips with hoverable source preview cards." },
30050
+ { id: "ai-thinking-accordion", reason: "Renders collapsible reasoning logs with elapsed time badges." }
30051
+ ],
30052
+ promptSnippet: "Create an AI answer layout with inline citation chips and hover preview cards in the specified area. Inside a container of width 100% and min-height 180px, render text with a [1] badge that triggers a 240px source preview popover on hover."
30053
+ }
30054
+ },
30055
+ sources: [
30056
+ { title: "Lewis et al., Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks", url: "https://arxiv.org/abs/2005.11401" },
30057
+ { title: "Pinecone RAG Architecture Guide", url: "https://www.pinecone.io/learn/retrieval-augmented-generation/" }
30058
+ ]
30059
+ },
30060
+ {
30061
+ id: "ai-agent-state-memory-and-branching",
30062
+ aliases: {
30063
+ ko: ["\uB300\uD654 \uC138\uC158 \uC0C1\uD0DC", "\uC751\uB2F5 \uBC84\uC804 \uBD84\uAE30", "\uB300\uD654 \uBE0C\uB79C\uCE58", "\uC5D0\uC774\uC804\uD2B8 \uBA54\uBAA8\uB9AC", "\uC2AC\uB798\uC2DC \uBA85\uB839\uC5B4", "\uB300\uD654 \uB864\uBC31"],
30064
+ en: ["conversation state", "response branching", "message history branches", "agent memory", "slash commands", "session rollback"]
30065
+ },
30066
+ useCases: {
30067
+ ko: [
30068
+ "\uB3D9\uC77C\uD55C \uC9C8\uBB38\uC5D0 \uB300\uD574 \uC5EC\uB7EC \uBC88 \uB2E4\uC2DC \uC0DD\uC131(Regenerate)\uD55C \uB2F5\uBCC0\uB4E4\uC744 \uBC84\uB9AC\uC9C0 \uC54A\uACE0 \uBC84\uC804\uBCC4\uB85C \uD0D0\uC0C9\uD560 \uB54C",
30069
+ "\uB300\uD654 \uB3C4\uC911 \uD2B9\uC815 \uC2DC\uC810\uC73C\uB85C \uB3CC\uC544\uAC00 \uC0C8\uB85C\uC6B4 \uB300\uD654 \uC904\uAE30\uB97C \uBED7\uC5B4\uB098\uAC00\uB294 \uBD84\uAE30(Forking/Branching)\uB97C \uAD6C\uD604\uD560 \uB54C",
30070
+ "\uC2AC\uB798\uC2DC(/) \uBA85\uB839\uC5B4\uB85C \uC0AC\uC804\uC5D0 \uC815\uC758\uB41C \uD504\uB86C\uD504\uD2B8 \uD15C\uD50C\uB9BF\uC744 \uBE60\uB974\uAC8C \uBD88\uB7EC\uC640 \uC138\uC158\uC5D0 \uC801\uC6A9\uD560 \uB54C",
30071
+ "\uC138\uC158\uC774 \uAE38\uC5B4\uC9C8 \uB54C \uC0AC\uC6A9\uC790\uC758 \uD575\uC2EC \uC120\uD638\uB3C4\uC640 \uACFC\uAC70 \uC791\uC5C5 \uB9E5\uB77D\uC744 \uC7A5\uAE30 \uBA54\uBAA8\uB9AC\uB85C \uC694\uC57D \uBCF4\uAD00\uD560 \uB54C"
30072
+ ],
30073
+ en: [
30074
+ "Retaining multiple regenerated answer versions rather than discarding past responses",
30075
+ "Branching conversation threads from earlier turns to explore alternative paths",
30076
+ "Invoking preset prompt templates via slash commands directly into active sessions",
30077
+ "Summarizing user preferences and ongoing task state into persistent agent memory"
30078
+ ]
30079
+ },
30080
+ keywords: {
30081
+ ko: ["\uC138\uC158 \uC0C1\uD0DC", "\uC751\uB2F5 \uBD84\uAE30", "\uBC84\uC804 \uC2A4\uC704\uCC98", "\uC2AC\uB798\uC2DC \uCEE4\uB9E8\uB4DC", "\uC7A5\uAE30 \uBA54\uBAA8\uB9AC", "\uB864\uBC31", "\uC7AC\uC0DD\uC131 \uD788\uC2A4\uD1A0\uB9AC"],
30082
+ en: ["session state", "response branching", "version switcher", "slash commands", "long-term memory", "rollback", "regeneration history"]
30083
+ },
30084
+ text: {
30085
+ ko: {
30086
+ domain: "AI \uC5D0\uC774\uC804\uD2B8 & LLM \uC11C\uBE44\uC2A4",
30087
+ title: "\uC5D0\uC774\uC804\uD2B8 \uB300\uD654 \uC138\uC158 \uC0C1\uD0DC \uAD00\uB9AC\uC640 \uC751\uB2F5 \uBC84\uC804 \uBD84\uAE30 \uBC0F \uB864\uBC31",
30088
+ summary: "\uBA40\uD2F0\uD134 \uC138\uC158 \uC0C1\uD0DC\uB97C \uBCF4\uC874\uD558\uACE0, \uC7AC\uC0DD\uC131\uB41C \uC5EC\uB7EC \uC751\uB2F5 \uBC84\uC804 \uAC04\uC758 \uD0D0\uC0C9\uACFC \uC2AC\uB798\uC2DC \uCEE4\uB9E8\uB4DC \uD15C\uD50C\uB9BF\uC744 \uC9C0\uC6D0\uD569\uB2C8\uB2E4.",
30089
+ overview: "\uB300\uD654\uD615 AI \uC11C\uBE44\uC2A4\uC5D0\uC11C \uC0AC\uC6A9\uC790\uB294 \uB9C8\uC74C\uC5D0 \uB4E4\uC9C0 \uC54A\uB294 \uB2F5\uBCC0\uC744 \uB2E4\uC2DC \uC0DD\uC131(Retry)\uD558\uAC70\uB098, \uC774\uC804 \uD134\uC73C\uB85C \uB3CC\uC544\uAC00 \uB2E4\uB978 \uC9C8\uBB38\uC744 \uB358\uC9C0\uB294 \uC77C\uC774 \uD754\uD569\uB2C8\uB2E4. \uC774\uC804 \uB2F5\uBCC0\uC744 \uB36E\uC5B4\uC368\uBC84\uB9AC\uBA74 \uACFC\uAC70\uC758 \uC720\uC6A9\uD55C \uC815\uBCF4\uB97C \uC601\uAD6C\uD788 \uC783\uAC8C \uB429\uB2C8\uB2E4. \uB610\uD55C \uBC18\uBCF5\uC801\uC778 \uC791\uC5C5\uC744 \uB2E8\uCD95\uD558\uAE30 \uC704\uD574 \uC2AC\uB798\uC2DC(/) \uCEE4\uB9E8\uB4DC\uB85C \uC790\uC8FC \uC4F0\uB294 \uD15C\uD50C\uB9BF\uC744 \uD638\uCD9C\uD560 \uC218 \uC788\uC5B4\uC57C \uD558\uBA70, \uC7A5\uAE30 \uC138\uC158\uC5D0\uC11C\uB3C4 \uC0AC\uC6A9\uC790\uC758 \uC120\uD638 \uC2A4\uD0C0\uC77C\uACFC \uC791\uC5C5 \uC0C1\uD0DC\uB97C \uBA54\uBAA8\uB9AC\uB85C \uC720\uC9C0\uD574\uC57C \uD569\uB2C8\uB2E4.",
30090
+ concepts: [
30091
+ { name: "\uD2B8\uB9AC \uAE30\uBC18 \uB300\uD654 \uC0C1\uD0DC(Tree-structured Conversation State)", description: "\uB2E8\uC21C \uC120\uD615 \uBC30\uC5F4\uC774 \uC544\uB2CC \uBD80\uBAA8-\uC790\uC2DD \uB178\uB4DC\uB85C \uBA54\uC2DC\uC9C0\uB97C \uC800\uC7A5\uD574 \uD55C \uC9C8\uBB38\uC5D0\uC11C \uC5EC\uB7EC \uB2F5\uBCC0 \uBE0C\uB79C\uCE58\uAC00 \uBD84\uAE30\uD560 \uC218 \uC788\uB3C4\uB85D \uB370\uC774\uD130 \uAD6C\uC870\uB97C \uC124\uACC4\uD569\uB2C8\uB2E4." },
30092
+ { name: "\uBC84\uC804 \uB124\uBE44\uAC8C\uC774\uC158(Version Pagination)", description: "\uB3D9\uC77C \uB178\uB4DC\uC5D0\uC11C \uBD84\uAE30\uB41C \uC5EC\uB7EC \uB2F5\uBCC0 \uBC84\uC804\uC744 < 1 / 3 > \uD615\uD0DC\uC758 \uCEE8\uD2B8\uB864\uB85C \uB118\uACA8\uBCF4\uBA70 \uD65C\uC131 \uBE0C\uB79C\uCE58\uB97C \uC804\uD658\uD569\uB2C8\uB2E4." },
30093
+ { name: "\uC2AC\uB798\uC2DC \uCEE4\uB9E8\uB4DC \uD15C\uD50C\uB9BF(Slash Command Prompt Ingestion)", description: "\uC785\uB825\uCC3D\uC5D0\uC11C / \uD0A4\uB85C \uD2B8\uB9AC\uAC70\uB418\uB294 \uCEE4\uB9E8\uB4DC \uD314\uB808\uD2B8\uB97C \uD1B5\uD574 \uC77C\uAD00\uB41C \uACE0\uD488\uC9C8 \uC2DC\uC2A4\uD15C \uC9C0\uC2DC \uD504\uB86C\uD504\uD2B8\uB97C \uC8FC\uC785\uD569\uB2C8\uB2E4." }
30094
+ ],
30095
+ workflow: [
30096
+ { name: "\uC7AC\uC0DD\uC131 \uC694\uCCAD \uC2DC \uC2E0\uADDC \uB178\uB4DC \uCD94\uAC00\uD558\uAE30", description: "\uAE30\uC874 \uB2F5\uBCC0\uC744 \uB36E\uC5B4\uC4F0\uC9C0 \uC54A\uACE0 \uBD80\uBAA8 \uC9C8\uBB38 \uB178\uB4DC\uC758 \uC790\uC2DD \uBC30\uC5F4\uC5D0 \uC0C8\uB85C\uC6B4 \uB2F5\uBCC0 \uBC84\uC804\uC744 \uCD94\uAC00\uD569\uB2C8\uB2E4." },
30097
+ { name: "\uBC84\uC804 \uC2A4\uC704\uCC98 \uCEE8\uD2B8\uB864 \uB80C\uB354\uB9C1\uD558\uAE30", description: "\uB2F5\uBCC0 \uCE74\uB4DC \uD558\uB2E8\uC5D0 \uC774\uC804/\uB2E4\uC74C \uD654\uC0B4\uD45C\uC640 \uD604\uC7AC \uBC84\uC804 \uC778\uB371\uC2A4\uB97C \uD45C\uC2DC\uD574 \uC2AC\uB77C\uC774\uB4DC \uC804\uD658\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4." },
30098
+ { name: "\uC2AC\uB798\uC2DC \uCEE4\uB9E8\uB4DC\uB85C \uD504\uB86C\uD504\uD2B8 \uC790\uB3D9 \uC644\uC131\uD558\uAE30", description: "\uC0AC\uC6A9\uC790\uAC00 /\uB97C \uC785\uB825\uD558\uBA74 \uCD94\uCC9C \uBA85\uB839 \uD31D\uC624\uBC84\uB97C \uC5F4\uACE0 \uC120\uD0DD \uC2DC \uD574\uB2F9 \uD15C\uD50C\uB9BF\uC73C\uB85C \uCE58\uD658\uD569\uB2C8\uB2E4." }
30099
+ ],
30100
+ pitfalls: [
30101
+ { name: "\uC0C8 \uBC84\uC804 \uC0DD\uC131 \uC2DC \uC774\uC804 \uBC84\uC804\uC744 \uD30C\uAD34\uC801\uC73C\uB85C \uB36E\uC5B4\uC4F0\uAE30", description: "\uC0AC\uC6A9\uC790\uAC00 \uC774\uC804 \uBC84\uC804\uC758 \uCF54\uB4DC\uAC00 \uB354 \uB9C8\uC74C\uC5D0 \uB4E4\uC5C8\uC744 \uB54C \uB418\uB3CC\uC544\uAC08 \uC218 \uC5C6\uC73C\uBA74 \uD070 \uBD88\uB9CC\uC744 \uC57C\uAE30\uD569\uB2C8\uB2E4." },
30102
+ { name: "\uAE4A\uC740 \uBD84\uAE30 \uD2B8\uB9AC\uB85C \uC778\uD55C \uC138\uC158 \uC0C1\uD0DC \uBCF5\uC7A1\uB3C4 \uD3ED\uC99D", description: "\uBB34\uC81C\uD55C \uBD84\uAE30 \uC2DC \uD074\uB77C\uC774\uC5B8\uD2B8 \uBA54\uBAA8\uB9AC\uC640 DB \uAD00\uACC4\uAC00 \uBCF5\uC7A1\uD574\uC9C0\uBBC0\uB85C \uB178\uB4DC \uAE4A\uC774 \uC81C\uD55C\uC774\uB098 \uBA85\uC2DC\uC801 \uAC00\uC9C0\uCE58\uAE30(Prune) \uC815\uCC45\uC744 \uB450\uC5B4\uC57C \uD569\uB2C8\uB2E4." }
30103
+ ],
30104
+ questions: [
30105
+ "\uC0AC\uC6A9\uC790\uAC00 \uD2B9\uC815 \uC774\uC804 \uBC84\uC804\uC73C\uB85C \uC804\uD658\uD588\uC744 \uB54C, \uADF8 \uC774\uD6C4\uC5D0 \uC774\uC5B4\uC9C0\uB294 \uD6C4\uC18D \uB300\uD654\uB4E4\uB3C4 \uD574\uB2F9 \uBC84\uC804\uC5D0 \uB9DE\uCDB0 \uB3D9\uAE30\uD654\uB418\uB098\uC694?",
30106
+ "\uC2AC\uB798\uC2DC \uBA85\uB839\uC5B4 \uBAA9\uB85D\uC744 \uC0AC\uC6A9\uC790\uAC00 \uC9C1\uC811 \uCEE4\uC2A4\uD140\uC73C\uB85C \uCD94\uAC00\uD558\uACE0 \uD3B8\uC9D1\uD560 \uC218 \uC788\uB098\uC694?",
30107
+ "\uBE0C\uB77C\uC6B0\uC800\uB97C \uC0C8\uB85C\uACE0\uCE68\uD558\uAC70\uB098 \uC138\uC158\uC744 \uB098\uAC14\uB2E4 \uC640\uB3C4 \uC0DD\uC131\uB41C \uBAA8\uB4E0 \uBC84\uC804 \uD788\uC2A4\uD1A0\uB9AC\uAC00 \uC720\uC9C0\uB418\uB098\uC694?"
30108
+ ],
30109
+ example: "\uC608\uC2DC: \uB3D9\uC77C\uD55C \uCF54\uB4DC \uB9AC\uD329\uD1A0\uB9C1 \uC694\uCCAD\uC5D0 \uB300\uD574 \uAC04\uACB0\uD615, \uC0C1\uC138\uD615, \uD45C \uD615\uC2DD\uC758 3\uAC00\uC9C0 \uBC84\uC804\uC744 \uC0DD\uC131\uD55C \uB4A4, \uB2F5\uBCC0 \uCE74\uB4DC \uD558\uB2E8\uC758 < 1 / 3 > \uBC84\uD2BC\uC73C\uB85C \uC790\uC720\uB86D\uAC8C \uB118\uACA8\uBCF4\uBA70 \uAC00\uC7A5 \uC801\uD569\uD55C \uBC84\uC804\uC744 \uCC44\uD0DD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
30110
+ relatedDesigns: [
30111
+ { id: "ai-message-branch", reason: "\uC7AC\uC0DD\uC131\uB41C \uB2F5\uBCC0 \uBC84\uC804\uB4E4\uC744 \uC774\uC804/\uB2E4\uC74C \uD654\uC0B4\uD45C\uB85C \uB118\uACA8\uBCF4\uB294 \uBE0C\uB79C\uCE58 \uC2A4\uC704\uCC98\uB97C \uC81C\uACF5\uD569\uB2C8\uB2E4." },
30112
+ { id: "ai-slash-command", reason: "\uC2AC\uB798\uC2DC(/) \uBB38\uC790\uB85C \uC790\uC8FC \uC4F0\uB294 \uD504\uB86C\uD504\uD2B8 \uD15C\uD50C\uB9BF\uC744 \uBE60\uB974\uAC8C \uBD88\uB7EC\uC624\uB294 \uCEE4\uB9E8\uB4DC \uD314\uB808\uD2B8\uB97C \uAD6C\uC131\uD569\uB2C8\uB2E4." }
30113
+ ],
30114
+ promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 < 1 / 3 > \uD615\uD0DC\uC758 \uBC84\uC804 \uB124\uBE44\uAC8C\uC774\uC158\uC744 \uAC16\uCD98 AI \uC751\uB2F5 \uBC84\uC804 \uBD84\uAE30 \uCE74\uB4DC\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 \uB2F5\uBCC0 \uB0B4\uC6A9\uACFC \uC774\uC804/\uB2E4\uC74C \uBC84\uD2BC\uC744 \uBC30\uCE58\uD558\uACE0, \uC0C8 \uBC84\uC804 \uC0DD\uC131 \uD074\uB9AD \uC2DC \uC2E0\uADDC \uBC84\uC804\uC774 \uBC30\uC5F4\uC5D0 \uCD94\uAC00\uB418\uBA70 \uC989\uC2DC \uC774\uB3D9\uD558\uAC8C \uD574 \uC918."
30115
+ },
30116
+ en: {
30117
+ domain: "AI Agents & LLM Services",
30118
+ title: "Agent Conversation Session State, Response Branching, and Rollback",
30119
+ summary: "Manage multi-turn conversation states with non-destructive response version branching and slash command palettes.",
30120
+ overview: "Users routinely regenerate AI answers or backstep to fork alternative lines of inquiry. Overwriting previous responses discards viable solutions permanently. Structuring session histories as trees preserves parallel branches, navigated via version switchers, while slash command palettes facilitate rapid ingestion of standard prompt templates.",
30121
+ concepts: [
30122
+ { name: "Tree-structured Session State", description: "Representing conversations as parent-child nodes rather than flat lists to support multiple branching response variants." },
30123
+ { name: "Response Version Pagination", description: "Navigating parallel response alternatives using < 1 / 3 > controls to switch the active branch." },
30124
+ { name: "Slash Command Palette Ingestion", description: 'Surfacing command popovers on "/" keypress to insert structured prompt templates seamlessly.' }
30125
+ ],
30126
+ workflow: [
30127
+ { name: "Append New Node on Regeneration", description: "Record newly generated responses as sibling nodes beneath the parent prompt rather than mutating existing records." },
30128
+ { name: "Render Branch Pagination Controls", description: "Display previous/next selectors and version tallies at the base of message bubbles to toggle states." },
30129
+ { name: "Trigger Slash Palette Autocompletion", description: 'Open a floating command selector when "/" is typed, substituting prompts upon selection.' }
30130
+ ],
30131
+ pitfalls: [
30132
+ { name: "Destructively Overwriting Prior Generations", description: "Eliminating earlier generations frustrates users seeking snippets from previous completions; retain versions in memory." },
30133
+ { name: "Unbounded Tree Memory Growth", description: "Unchecked branching inflates client memory and serialization complexity; establish pragmatic pruning boundaries." }
30134
+ ],
30135
+ questions: [
30136
+ "Does navigating to an earlier sibling version automatically switch the downstream conversational context?",
30137
+ "Can users configure custom personal slash command macros?",
30138
+ "Does session persistence retain full branch histories across page reloads?"
30139
+ ],
30140
+ example: "Example: A developer requests three refactoring variants (concise, detailed, tabular) and navigates among them using < 1 / 3 > controls before deciding which variant to keep.",
30141
+ relatedDesigns: [
30142
+ { id: "ai-message-branch", reason: "Enables navigating across multiple response generations with version pagination." },
30143
+ { id: "ai-slash-command", reason: "Provides a slash command menu to autocomplete common prompt instructions." }
30144
+ ],
30145
+ promptSnippet: "Create a response branch switcher card with < 1 / 3 > version navigation in the specified area. Inside a container of width 100% and min-height 180px, render message content and pagination controls to switch between regenerated responses."
30146
+ }
30147
+ },
30148
+ sources: [
30149
+ { title: "LangChain Chat History & Memory Concepts", url: "https://python.langchain.com/docs/concepts/chat_history/" },
30150
+ { title: "Vercel AI SDK Core Concepts", url: "https://sdk.vercel.ai/docs/concepts" }
30151
+ ]
30152
+ }
30153
+ ];
30154
+
27826
30155
  // ../../packages/catalog/src/domain-knowledge.ts
27827
30156
  var DOMAIN_KNOWLEDGE = [
27828
30157
  ...EDUCATION_KNOWLEDGE,
@@ -27844,7 +30173,8 @@ var DOMAIN_KNOWLEDGE = [
27844
30173
  ...LOGISTICS_KNOWLEDGE,
27845
30174
  ...FINTECH_KNOWLEDGE,
27846
30175
  ...HEALTHCARE_KNOWLEDGE,
27847
- ...AUTOMATION_KNOWLEDGE
30176
+ ...AUTOMATION_KNOWLEDGE,
30177
+ ...AI_KNOWLEDGE
27848
30178
  ];
27849
30179
 
27850
30180
  // ../../packages/catalog/src/domain-knowledge/search-vocabulary.ts
@@ -28225,7 +30555,7 @@ function searchTechniques(options = {}) {
28225
30555
  // package.json
28226
30556
  var package_default = {
28227
30557
  name: "@keke1933/vibe-dictionary-mcp",
28228
- version: "0.10.0",
30558
+ version: "0.12.0",
28229
30559
  license: "MIT",
28230
30560
  author: "leejh96",
28231
30561
  description: "Read-only local MCP for searching Vibe Dictionary techniques and retrieving implementation prompts",
@@ -28237,7 +30567,13 @@ var package_default = {
28237
30567
  },
28238
30568
  homepage: "https://leejh96.github.io/vibe-dictionary/",
28239
30569
  bugs: "https://github.com/leejh96/vibe-dictionary/issues",
28240
- keywords: ["mcp", "model-context-protocol", "ui", "prompts", "vibe-coding"],
30570
+ keywords: [
30571
+ "mcp",
30572
+ "model-context-protocol",
30573
+ "ui",
30574
+ "prompts",
30575
+ "vibe-coding"
30576
+ ],
28241
30577
  publishConfig: {
28242
30578
  access: "public",
28243
30579
  registry: "https://registry.npmjs.org/"
@@ -28245,7 +30581,11 @@ var package_default = {
28245
30581
  bin: {
28246
30582
  "vibe-dictionary-mcp": "dist/index.js"
28247
30583
  },
28248
- files: ["dist/index.js", "README.md", "LICENSE"],
30584
+ files: [
30585
+ "dist/index.js",
30586
+ "README.md",
30587
+ "LICENSE"
30588
+ ],
28249
30589
  engines: {
28250
30590
  node: ">=22.12.0"
28251
30591
  },
@@ -28267,7 +30607,7 @@ var package_default = {
28267
30607
 
28268
30608
  // src/server.ts
28269
30609
  var localeSchema = z.enum(["ko", "en"]).default("ko").describe("Output language; search matches both languages regardless of locale.");
28270
- var domainSchema = z.enum(["ui", "motion", "layout", "style", "video"]);
30610
+ var domainSchema = z.enum(["ui", "motion", "layout", "style", "pixelart", "video", "ai"]);
28271
30611
  var categoryIds = [...new Set(Object.values(DOMAIN_CATEGORIES).flatMap((categories) => categories.map(({ id }) => id)))].filter((id) => id !== "all");
28272
30612
  var categorySchema = z.enum(categoryIds);
28273
30613
  var targetSchema = z.enum(TARGETS);
@@ -28315,8 +30655,8 @@ function result(output) {
28315
30655
  function createServer() {
28316
30656
  const server = new McpServer({ name: package_default.name, version: package_default.version }, {
28317
30657
  instructions: [
28318
- "Find UI, graphics, layout, style and video techniques. Search for a few candidates, compare summaries, useCases and matchedOn fields, then get_technique by exact ID only for the selected prompts.",
28319
- 'Before choosing designs for an education, community, commerce, booking, subscription, collaboration, customer-support, auth/account, notification, CMS/publishing, file/media, marketplace, event/check-in, recruiting/ATS, analytics, security/RBAC, logistics, fintech/wallet, healthcare or form/workflow-automation service, use search_domain_knowledge with a short domain or workflow phrase such as "LMS", "\uD68C\uC6D0 \uC804\uC6A9", "\uBD80\uBD84 \uD658\uBD88", "\uD0C0\uC784\uC2AC\uB86F", "\uC815\uAE30 \uACB0\uC81C", "\uCE78\uBC18", "\uD5EC\uD504\uB370\uC2A4\uD06C", "RBAC", "\uD569\uD3EC\uC7A5" or "\uBCF5\uC2DD \uC6D0\uC7A5". Compare summaries, useCases and matchedOn fields, then call get_domain_knowledge by a returned ID for concepts, workflows, pitfalls, open decisions, sources, related technique IDs and a reference prompt. Search supports bilingual aliases and ranked keyword matching, not semantic AI. If no entry fits, retry fewer terms or a synonym, or browse with an empty query. Workflows and examples are design references, not established policies. Do not assume answers to the open questions. Related designs do not implement the domain rules.',
30658
+ "Find UI, graphics, layout, style, pixel art, video and AI native techniques. Search for a few candidates, compare summaries, useCases and matchedOn fields, then get_technique by exact ID only for the selected prompts.",
30659
+ 'Before choosing designs for an education, community, commerce, booking, subscription, collaboration, customer-support, auth/account, notification, CMS/publishing, file/media, marketplace, event/check-in, recruiting/ATS, analytics, security/RBAC, logistics, fintech/wallet, healthcare, form/workflow-automation or AI agent service, use search_domain_knowledge with a short domain or workflow phrase such as "LMS", "\uD68C\uC6D0 \uC804\uC6A9", "\uBD80\uBD84 \uD658\uBD88", "\uD0C0\uC784\uC2AC\uB86F", "\uC815\uAE30 \uACB0\uC81C", "\uCE78\uBC18", "\uD5EC\uD504\uB370\uC2A4\uD06C", "RBAC", "\uD569\uD3EC\uC7A5", "\uBCF5\uC2DD \uC6D0\uC7A5" or "\uD1A0\uD070 \uC608\uC0B0". Compare summaries, useCases and matchedOn fields, then call get_domain_knowledge by a returned ID for concepts, workflows, pitfalls, open decisions, sources, related technique IDs and a reference prompt. Search supports bilingual aliases and ranked keyword matching, not semantic AI. If no entry fits, retry fewer terms or a synonym, or browse with an empty query. Workflows and examples are design references, not established policies. Do not assume answers to the open questions. Related designs do not implement the domain rules.',
28320
30660
  "The calling assistant interprets the user request and generates short Korean or English search phrases for one effect at a time. The MCP performs bilingual weighted keyword/alias matching and runs no AI model. Extract concrete effects and targets; omit uncertain filters. For broad requests such as a clean or premium webpage, use the stated purpose and preferences; do not equate an adjective with one fixed style. Ask for clarification when missing context prevents a meaningful choice.",
28321
30661
  "For requests combining techniques, search distinct needs such as style, layout and interaction separately. Retrieve the selected prompts, then decide where each technique applies and compare their visual treatment, inputs and timing for conflicts. The tools do not compose techniques or check compatibility; the calling assistant makes those judgments.",
28322
30662
  "Use target/trigger filters only for required demo inputs. Compare summaries and useCases against the original request. If candidates are missing or unsuitable, retry a synonym, the other language or fewer modifiers, and remove only filters that are not required. Reset offset to zero when changing the query or filters. Do not select an unrelated result merely because it ranks first; clarify if useful candidates still cannot be found. Scores are not probabilities. locale selects output language independently of search language. These read-only tools return reference data only."