{"id":112487,"date":"2026-07-10T14:38:09","date_gmt":"2026-07-10T11:08:09","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/"},"modified":"2026-07-10T14:38:09","modified_gmt":"2026-07-10T11:08:09","slug":"%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/","title":{"rendered":"\u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 \u0635\u0641\u062d\u0647 \u0641\u0631\u0648\u062f \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0633\u06cc\u0646\u0645\u0627\u06cc\u06cc \u0628\u0627 GSAP\u060c Canvas API \u0648 Next.js \u0633\u0627\u062e\u062a\u0645"},"content":{"rendered":"<p><strong>\u063a\u0648\u0627\u0635\u06cc \u0639\u0645\u06cc\u0642 \u062f\u0631 \u0633\u0627\u062e\u062a Digital Rain: \u067e\u06cc\u062c \u0644\u0646\u062f\u06cc\u0646\u06af \u0633\u06cc\u0646\u0645\u0627\u06cc\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc<\/strong><\/p>\n<p>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0641\u0631\u0622\u06cc\u0646\u062f \u0633\u0627\u062e\u062a \u00ab\u0628\u0627\u0631\u0627\u0646 \u062f\u06cc\u062c\u06cc\u062a\u0627\u0644\u00bb \u0631\u0627 \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc\u200c\u062f\u0647\u062f\u061b \u06cc\u06a9 \u0642\u0627\u0644\u0628 \u067e\u06cc\u062c \u0644\u0646\u062f\u06cc\u0646\u06af \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0645\u062a\u0645\u0627\u06cc\u0632 \u0628\u0627 \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0628\u0627\u0631\u0627\u0646 \u0646\u0645\u0627\u062f\u0647\u0627\u06cc \u0631\u06cc\u0627\u0636\u06cc\u060c UI \u0634\u06cc\u0634\u0647 \u0645\u0627\u06cc\u0639 (Glassmorphism) \u0648 \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u0627\u0633\u06a9\u0631\u0648\u0644 GSAP. \u0647\u062f\u0641\u060c \u0641\u0631\u0627\u0631 \u0627\u0632 \u0627\u0644\u06af\u0648\u06cc \u062a\u06a9\u0631\u0627\u0631\u06cc \u00ab\u0642\u0647\u0631\u0645\u0627\u0646-\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627-\u0642\u06cc\u0645\u062a\u00bb \u0648 \u062e\u0644\u0642 \u062a\u062c\u0631\u0628\u0647\u200c\u0627\u06cc \u0628\u0635\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062d\u0633 \u0627\u0633\u062a\u0627\u0631\u062a\u0627\u067e \u0628\u0627 \u0628\u0648\u062f\u062c\u0647 \u0628\u0627\u0644\u0627 \u0631\u0627 \u0627\u0644\u0642\u0627 \u06a9\u0646\u062f.<\/p>\n<p><strong>\u062a\u06a9\u0646\u0648\u0644\u0648\u0698\u06cc\u200c\u0647\u0627:<\/strong> Next.js 15\u060c Tailwind CSS\u060c GSAP (ScrollTrigger) \u0648 Canvas API \u0628\u0631\u0627\u06cc \u0645\u0648\u062a\u0648\u0631 \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0633\u0641\u0627\u0631\u0634\u06cc.<\/p>\n<p><strong>\u0645\u0648\u062a\u0648\u0631 \u0628\u0627\u0631\u0627\u0646 \u062f\u06cc\u062c\u06cc\u062a\u0627\u0644:<\/strong> \u0628\u0631\u062e\u0644\u0627\u0641 \u0645\u0627\u062a\u0631\u06cc\u06a9\u0633 \u06a9\u0644\u0627\u0633\u06cc\u06a9\u060c \u0627\u0632 \u0646\u0645\u0627\u062f\u0647\u0627\u06cc \u0631\u06cc\u0627\u0636\u06cc (\u2211\u060c \u03c0\u060c \u222b\u060c \u221e&#8230;) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u062d\u0644\u0642\u0647 \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u062f\u0631 Canvas \u0628\u0627 <code>fillRect<\/code> \u0634\u0628\u0647\u200c\u0634\u0641\u0627\u0641 \u0631\u062f \u067e\u0627\u0647\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0646\u0648\u0622\u0648\u0631\u06cc \u06a9\u0644\u06cc\u062f\u06cc\u060c <strong>\u0648\u0627\u06a9\u0646\u0634 \u0633\u0637\u062d \u0645\u0627\u06cc\u0639<\/strong> \u0627\u0633\u062a: \u0646\u0645\u0627\u062f\u0647\u0627\u06cc \u0646\u0632\u062f\u06cc\u06a9 \u0645\u0648\u0633 \u0628\u0627 \u0645\u062d\u0627\u0633\u0628\u0647 \u0641\u0627\u0635\u0644\u0647 \u0627\u0642\u0644\u06cc\u062f\u0633\u06cc\u060c \u062f\u0631\u062e\u0634\u0634 \u0648 \u0634\u0641\u0627\u0641\u06cc\u062a \u0628\u0627\u0644\u0627 \u0645\u06cc\u200c\u06cc\u0627\u0628\u0646\u062f \u06a9\u0647 \u062d\u0633 \u062a\u0639\u0627\u0645\u0644 \u0641\u06cc\u0632\u06cc\u06a9\u06cc \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p><strong>\u0634\u06cc\u0634\u0647 \u0645\u0627\u06cc\u0639 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647:<\/strong> \u0628\u0627 <code>backdrop-filter: blur(20px)<\/code>\u060c \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647 \u0628\u0633\u06cc\u0627\u0631 \u062a\u06cc\u0631\u0647 (<code>rgba(255,255,255,0.05)<\/code>)\u060c \u062d\u0627\u0634\u06cc\u0647 \u062f\u0631\u0648\u0646\u06cc \u062f\u0631\u062e\u0634\u0627\u0646 \u0648 \u0633\u0627\u06cc\u0647 \u0639\u0645\u06cc\u0642\u060c \u062c\u0644\u0648\u0647\u200c\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc \u0648 \u067e\u0631\u0645\u06cc\u0648\u0645 \u062e\u0644\u0642 \u0634\u062f\u0647\u060c \u0646\u0647 \u0634\u06cc\u0634\u0647\u200c\u0645\u0648\u0631\u0641\u06cc\u0633\u0645 \u0645\u0639\u0645\u0648\u0644\u06cc \u0627\u0631\u0632\u0627\u0646.<\/p>\n<p><strong>\u0627\u0646\u06cc\u0645\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc GSAP:<\/strong> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>stagger: 0.15<\/code> \u0628\u0631\u0627\u06cc \u0638\u0647\u0648\u0631 \u062a\u0631\u062a\u06cc\u0628\u06cc \u06a9\u0627\u0631\u062a\u200c\u0647\u0627\u060c \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 <code>ScrollTrigger<\/code>\u060c \u062a\u062c\u0631\u0628\u0647 \u0627\u0633\u06a9\u0631\u0648\u0644 \u0631\u0648\u0627\u0646 \u0648 \u0633\u06cc\u0646\u0645\u0627\u06cc\u06cc \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p><strong>\u0645\u0639\u0645\u0627\u0631\u06cc \u0642\u0627\u0628\u0644 \u062a\u0648\u0633\u0639\u0647:<\/strong> \u062a\u0645\u0627\u0645 \u0645\u062a\u0648\u0646\u060c \u0631\u0646\u06af\u200c\u0647\u0627 \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0642\u06cc\u0645\u062a\u200c\u06af\u0630\u0627\u0631\u06cc \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 <code>config.ts<\/code> \u0645\u062a\u0645\u0631\u06a9\u0632 \u0634\u062f\u0647\u200c\u0627\u0646\u062f \u062a\u0627 \u0633\u0641\u0627\u0631\u0634\u06cc\u200c\u0633\u0627\u0632\u06cc \u062f\u0631 \u062f\u0642\u06cc\u0642\u0647\u200c\u0647\u0627 \u0627\u0645\u06a9\u0627\u0646\u200c\u067e\u0630\u06cc\u0631 \u0628\u0627\u0634\u062f.<\/p>\n<p><strong>\u0646\u062a\u06cc\u062c\u0647:<\/strong> \u06cc\u06a9 \u0642\u0627\u0644\u0628 \u06a9\u0627\u0645\u0644 (\u0642\u0647\u0631\u0645\u0627\u0646\u060c \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u060c \u0642\u06cc\u0645\u062a\u060c FAQ\u060c CTA) \u0628\u0627 TypeScript \u0648 \u0645\u0633\u062a\u0646\u062f\u0627\u062a\u060c \u062f\u0631 \u06af\u0627\u0645\u0631\u0648\u062f \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a..demo: <code>og-ai-next.vercel.app<\/code><\/p>\n<div data-article-id=\"4112593\" id=\"article-body\">\n<p>\u063a\u0648\u0627\u0635\u06cc \u0639\u0645\u06cc\u0642 \u062f\u0631 \u0633\u0627\u062e\u062a Digital Rain &#8211; \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0635\u0641\u062d\u0647 \u0641\u0631\u0648\u062f \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0633\u06cc\u0646\u0645\u0627\u06cc\u06cc \u0628\u0627 \u0646\u0645\u0627\u062f\u0647\u0627\u06cc \u0631\u06cc\u0627\u0636\u06cc \u062f\u0631 \u062d\u0627\u0644 \u0633\u0642\u0648\u0637\u060c \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0634\u06cc\u0634\u0647 \u0645\u0627\u06cc\u0639\u060c \u0648 \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc \u0627\u0633\u06a9\u0631\u0648\u0644 GSAP \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Next.js 15 \u0648 Tailwind CSS.<\/p>\n<p>\u0628\u06cc\u0634\u062a\u0631 \u0635\u0641\u062d\u0627\u062a \u0641\u0631\u0648\u062f \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u06cc\u06a9\u0633\u0627\u0646 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u0646\u062f.<\/p>\n<p>\u0628\u062e\u0634 \u0642\u0647\u0631\u0645\u0627\u0646. \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0634\u0628\u06a9\u0647 \u062c\u062f\u0648\u0644 \u0642\u06cc\u0645\u062a. \u067e\u0627\u0648\u0631\u0642\u06cc.<\/p>\n<p>\u0645\u0646 \u0645\u06cc\u200c\u062e\u0648\u0627\u0633\u062a\u0645 \u0686\u06cc\u0632\u06cc \u0645\u062a\u0641\u0627\u0648\u062a \u0628\u0633\u0627\u0632\u0645 &#8211; \u0686\u06cc\u0632\u06cc \u06a9\u0647 \u0628\u0627\u0632\u062f\u06cc\u062f\u06a9\u0646\u0646\u062f\u06af\u0627\u0646 \u0631\u0627 \u0648\u0627\u062f\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0627\u0632 \u067e\u06cc\u0645\u0627\u06cc\u0634 \u062f\u0633\u062a \u0628\u0631\u062f\u0627\u0631\u0646\u062f \u0648 \u0628\u06af\u0648\u06cc\u0646\u062f <em>&#8220;\u0648\u0627\u06cc\u060c \u0627\u06cc\u0646 \u0686\u06cc\u0633\u062a\u061f&#8221;<\/em><\/p>\n<p>\u0646\u062a\u06cc\u062c\u0647 \u0627\u06cc\u0646 \u0627\u0633\u062a <strong>\u0628\u0627\u0631\u0627\u0646 \u062f\u06cc\u062c\u06cc\u062a\u0627\u0644<\/strong> &#8211; \u0635\u0641\u062d\u0647 \u0641\u0631\u0648\u062f \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0633\u06cc\u0646\u0645\u0627\u06cc\u06cc \u0628\u0627 \u0646\u0645\u0627\u062f\u0647\u0627\u06cc \u0631\u06cc\u0627\u0636\u06cc \u062f\u0631 \u062d\u0627\u0644 \u0633\u0642\u0648\u0637\u060c \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0634\u06cc\u0634\u0647 \u0645\u0627\u06cc\u0639\u060c \u0648 \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0647\u0627\u06cc \u0627\u0633\u06a9\u0631\u0648\u0644 \u0645\u062c\u0647\u0632 \u0628\u0647 GSAP.<\/p>\n<p>\u0627\u06cc\u0646 \u062f\u0642\u06cc\u0642\u0627\u064b \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u0622\u0646 \u0627\u0633\u062a.<\/p>\n<hr\/>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/#%F0%9F%8E%AC_%DA%86%D8%B4%D9%85_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2\" >\ud83c\udfac \u0686\u0634\u0645 \u0627\u0646\u062f\u0627\u0632<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/#%F0%9F%9B%A0_Tech_Stack\" >\ud83d\udee0 Tech Stack<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/#%F0%9F%8C%A7_%D8%B3%D8%A7%D8%AE%D8%AA_%D8%A7%D9%86%DB%8C%D9%85%DB%8C%D8%B4%D9%86_%D8%A8%D8%A7%D8%B1%D8%A7%D9%86_%D8%AF%DB%8C%D8%AC%DB%8C%D8%AA%D8%A7%D9%84\" >\ud83c\udf27 \u0633\u0627\u062e\u062a \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0628\u0627\u0631\u0627\u0646 \u062f\u06cc\u062c\u06cc\u062a\u0627\u0644<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/#%D9%85%D8%B1%D8%AD%D9%84%D9%87_1_%E2%80%93_%D8%A8%D9%88%D9%85_%D8%B1%D8%A7_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0645\u0631\u062d\u0644\u0647 1 &#8211; \u0628\u0648\u0645 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/#%D9%85%D8%B1%D8%AD%D9%84%D9%87_2_%E2%80%93_%D9%85%D8%AC%D9%85%D9%88%D8%B9%D9%87_%D9%86%D9%85%D8%A7%D8%AF%D9%87%D8%A7_%D8%B1%D8%A7_%D8%AA%D8%B9%D8%B1%DB%8C%D9%81_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0645\u0631\u062d\u0644\u0647 2 &#8211; \u0645\u062c\u0645\u0648\u0639\u0647 \u0646\u0645\u0627\u062f\u0647\u0627 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/#%D9%85%D8%B1%D8%AD%D9%84%D9%87_3_%E2%80%93_%D8%B3%D8%AA%D9%88%D9%86_%D9%87%D8%A7%DB%8C_%D8%A8%D8%A7%D8%B1%D8%A7%D9%86_%D8%B1%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0645\u0631\u062d\u0644\u0647 3 &#8211; \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc \u0628\u0627\u0631\u0627\u0646 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/#%D9%85%D8%B1%D8%AD%D9%84%D9%87_4_%E2%80%93_%D9%88%D8%A7%DA%A9%D9%86%D8%B4_%D8%B3%D8%B7%D8%AD_%D9%85%D8%A7%DB%8C%D8%B9_%D8%B1%D8%A7_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0645\u0631\u062d\u0644\u0647 4 &#8211; \u0648\u0627\u06a9\u0646\u0634 \u0633\u0637\u062d \u0645\u0627\u06cc\u0639 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/#%E2%9C%A8_%D8%B3%D8%A7%D8%AE%D8%AA_%D8%B1%D8%A7%D8%A8%D8%B7_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%DB%8C_%D8%B4%DB%8C%D8%B4%D9%87_%D9%85%D8%A7%DB%8C%D8%B9\" >\u2728 \u0633\u0627\u062e\u062a \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0634\u06cc\u0634\u0647 \u0645\u0627\u06cc\u0639<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/#%E2%9A%A1_%D8%A7%D9%86%DB%8C%D9%85%DB%8C%D8%B4%D9%86_%D9%87%D8%A7%DB%8C_%D8%A7%D8%B3%DA%A9%D8%B1%D9%88%D9%84_GSAP\" >\u26a1 \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0647\u0627\u06cc \u0627\u0633\u06a9\u0631\u0648\u0644 GSAP<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/#%F0%9F%A7%8A_%D8%B3%D8%A7%D8%AE%D8%AA%D8%A7%D8%B1_%D8%A8%D8%AE%D8%B4_%D9%82%D9%87%D8%B1%D9%85%D8%A7%D9%86\" >\ud83e\uddca \u0633\u0627\u062e\u062a\u0627\u0631 \u0628\u062e\u0634 \u0642\u0647\u0631\u0645\u0627\u0646<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/#%E2%9A%99%EF%B8%8F_%DB%8C%DA%A9_%D9%81%D8%A7%DB%8C%D9%84_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%A8%D8%B1%D8%A7%DB%8C_%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%D9%87%D9%85%D9%87_%D8%A2%D9%86%D9%87%D8%A7\" >\u2699\ufe0f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0647\u0645\u0647 \u0622\u0646\u0647\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/#%F0%9F%93%A6_%D8%A2%D9%86%DA%86%D9%87_%DA%A9%D9%87_%D9%82%D8%A7%D9%84%D8%A8_%D9%86%D9%87%D8%A7%DB%8C%DB%8C_%D8%B4%D8%A7%D9%85%D9%84_%D9%85%DB%8C_%D8%B4%D9%88%D8%AF\" >\ud83d\udce6 \u0622\u0646\u0686\u0647 \u06a9\u0647 \u0642\u0627\u0644\u0628 \u0646\u0647\u0627\u06cc\u06cc \u0634\u0627\u0645\u0644 \u0645\u06cc \u0634\u0648\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/#%F0%9F%8E%AF_%D9%86%D8%AA%DB%8C%D8%AC%D9%87\" >\ud83c\udfaf \u0646\u062a\u06cc\u062c\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%b5%d9%81%d8%ad%d9%87-%d9%81%d8%b1%d9%88%d8%af-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%b3%db%8c%d9%86%d9%85%d8%a7%db%8c%db%8c-%d8%a8\/#%F0%9F%92%AD_%D8%A2%D9%86%DA%86%D9%87_%DB%8C%D8%A7%D8%AF_%DA%AF%D8%B1%D9%81%D8%AA%D9%85\" >\ud83d\udcad \u0622\u0646\u0686\u0647 \u06cc\u0627\u062f \u06af\u0631\u0641\u062a\u0645<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%8E%AC_%DA%86%D8%B4%D9%85_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2\"><\/span>\n<p>  \ud83c\udfac \u0686\u0634\u0645 \u0627\u0646\u062f\u0627\u0632<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06cc\u0646 \u0645\u0641\u0647\u0648\u0645 \u0627\u0632 \u0645\u0627\u062a\u0631\u06cc\u06a9\u0633 &#8211; \u0622\u0646 \u0627\u0641\u06a9\u062a \u0646\u0645\u0627\u062f\u06cc\u0646 \u06a9\u062f \u0633\u0628\u0632 \u062f\u0631 \u062d\u0627\u0644 \u0633\u0642\u0648\u0637 &#8211; \u0646\u0627\u0634\u06cc \u0634\u062f. \u0627\u0645\u0627 \u0628\u0647 \u062c\u0627\u06cc \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631\u0647\u0627\u06cc \u062a\u0635\u0627\u062f\u0641\u06cc\u060c \u0645\u06cc\u200c\u062e\u0648\u0627\u0633\u062a\u0645 \u0646\u0645\u0627\u062f\u0647\u0627\u06cc \u0631\u06cc\u0627\u0636\u06cc \u0633\u0642\u0648\u0637 \u06a9\u0646\u0646\u062f \u0648 \u0628\u0647 \u06cc\u06a9 \u0633\u0637\u062d \u0645\u0627\u06cc\u0639 \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u0648\u0627\u06a9\u0646\u0634 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f.<\/p>\n<p>\u0647\u062f\u0641 \u0633\u0627\u062f\u0647 \u0628\u0648\u062f: \u06a9\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u062d\u0635\u0648\u0644 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0634\u0645\u0627 \u0627\u0632 \u0647\u0645\u0627\u0646 \u0631\u0648\u0632 \u0627\u0648\u0644 \u0627\u062d\u0633\u0627\u0633 \u06cc\u06a9 \u0627\u0633\u062a\u0627\u0631\u062a\u0627\u067e \u0628\u0627 \u0628\u0648\u062f\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<p><strong>\u062f\u0645\u0648 \u0632\u0646\u062f\u0647:<\/strong> https:\/\/og-ai-next.vercel.app\/<\/p>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%9B%A0_Tech_Stack\"><\/span>\n<p>  \ud83d\udee0 Tech Stack<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>\n<strong>Next.js 15<\/strong> &#8211; \u0631\u0648\u062a\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u060c TypeScript<\/li>\n<li>\n<strong>Tailwind CSS<\/strong> &#8211; \u06cc\u06a9 \u0638\u0627\u0647\u0631 \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0648 \u0634\u06a9\u0644 \u0634\u06cc\u0634\u0647 \u0627\u06cc<\/li>\n<li>\n<strong>GSAP<\/strong> &#8211; \u0627\u0633\u06a9\u0631\u0648\u0644 \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0647\u0627 \u0648 \u0631\u06cc\u0632 \u062a\u0639\u0627\u0645\u0644\u0627\u062a<\/li>\n<li>\n<strong>Canvas API<\/strong> &#8211; \u0645\u0648\u062a\u0648\u0631 \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0628\u0627\u0631\u0627\u0646 \u062f\u06cc\u062c\u06cc\u062a\u0627\u0644 \u0633\u0641\u0627\u0631\u0634\u06cc<\/li>\n<li>\n<strong>\u0641\u06cc\u0644\u062a\u0631\u0647\u0627\u06cc SVG<\/strong> &#8211; \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u0633\u0637\u062d \u0645\u0627\u06cc\u0639<\/li>\n<\/ul>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%8C%A7_%D8%B3%D8%A7%D8%AE%D8%AA_%D8%A7%D9%86%DB%8C%D9%85%DB%8C%D8%B4%D9%86_%D8%A8%D8%A7%D8%B1%D8%A7%D9%86_%D8%AF%DB%8C%D8%AC%DB%8C%D8%AA%D8%A7%D9%84\"><\/span>\n<p>  \ud83c\udf27 \u0633\u0627\u062e\u062a \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0628\u0627\u0631\u0627\u0646 \u062f\u06cc\u062c\u06cc\u062a\u0627\u0644<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0642\u0644\u0628 \u0642\u0627\u0644\u0628 \u0645\u0648\u062a\u0648\u0631 \u0633\u0641\u0627\u0631\u0634\u06cc \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0628\u0627\u0631\u0627\u0646 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0622\u0646 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%AD%D9%84%D9%87_1_%E2%80%93_%D8%A8%D9%88%D9%85_%D8%B1%D8%A7_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0645\u0631\u062d\u0644\u0647 1 &#8211; \u0628\u0648\u0645 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">canvas<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">document<\/span><span class=\"p\">.<\/span><span class=\"nf\">createElement<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">canvas<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">ctx<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">canvas<\/span><span class=\"p\">.<\/span><span class=\"nf\">getContext<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">2d<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n\n<span class=\"nx\">canvas<\/span><span class=\"p\">.<\/span><span class=\"nx\">width<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">window<\/span><span class=\"p\">.<\/span><span class=\"nx\">innerWidth<\/span><span class=\"p\">;<\/span>\n<span class=\"nx\">canvas<\/span><span class=\"p\">.<\/span><span class=\"nx\">height<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">window<\/span><span class=\"p\">.<\/span><span class=\"nx\">innerHeight<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%AD%D9%84%D9%87_2_%E2%80%93_%D9%85%D8%AC%D9%85%D9%88%D8%B9%D9%87_%D9%86%D9%85%D8%A7%D8%AF%D9%87%D8%A7_%D8%B1%D8%A7_%D8%AA%D8%B9%D8%B1%DB%8C%D9%81_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0645\u0631\u062d\u0644\u0647 2 &#8211; \u0645\u062c\u0645\u0648\u0639\u0647 \u0646\u0645\u0627\u062f\u0647\u0627 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0647 \u062c\u0627\u06cc \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631\u0647\u0627\u06cc \u062a\u0635\u0627\u062f\u0641\u06cc\u060c \u0627\u0632 \u0646\u0645\u0627\u062f\u0647\u0627\u06cc \u0631\u06cc\u0627\u0636\u06cc \u0628\u0631\u0627\u06cc \u0627\u062d\u0633\u0627\u0633 \u0628\u0631\u062a\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">symbols<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\n  <span class=\"dl\">'<\/span><span class=\"s1\">\u2211<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\u03c0<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\u2206<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\u222b<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\u221a<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\u03a9<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\u03bb<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\u03c6<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n  <span class=\"dl\">'<\/span><span class=\"s1\">\u221e<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\u03b8<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\u03b1<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\u03b2<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\u03b3<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\u03b4<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\u03b5<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\u03b6<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n  <span class=\"dl\">'<\/span><span class=\"s1\">0<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">1<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">2<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">3<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">4<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">5<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">6<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">7<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">8<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">9<\/span><span class=\"dl\">'<\/span>\n<span class=\"p\">];<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%AD%D9%84%D9%87_3_%E2%80%93_%D8%B3%D8%AA%D9%88%D9%86_%D9%87%D8%A7%DB%8C_%D8%A8%D8%A7%D8%B1%D8%A7%D9%86_%D8%B1%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0645\u0631\u062d\u0644\u0647 3 &#8211; \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc \u0628\u0627\u0631\u0627\u0646 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">fontSize<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">14<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">columns<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">Math<\/span><span class=\"p\">.<\/span><span class=\"nf\">floor<\/span><span class=\"p\">(<\/span><span class=\"nx\">canvas<\/span><span class=\"p\">.<\/span><span class=\"nx\">width<\/span> <span class=\"o\">\/<\/span> <span class=\"nx\">fontSize<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">drops<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span><span class=\"p\">[]<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Array<\/span><span class=\"p\">(<\/span><span class=\"nx\">columns<\/span><span class=\"p\">).<\/span><span class=\"nf\">fill<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">drawRain<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"c1\">\/\/ Fade effect \u2014 creates trail<\/span>\n  <span class=\"nx\">ctx<\/span><span class=\"p\">.<\/span><span class=\"nx\">fillStyle<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">rgba(0, 0, 0, 0.05)<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n  <span class=\"nx\">ctx<\/span><span class=\"p\">.<\/span><span class=\"nf\">fillRect<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"nx\">canvas<\/span><span class=\"p\">.<\/span><span class=\"nx\">width<\/span><span class=\"p\">,<\/span> <span class=\"nx\">canvas<\/span><span class=\"p\">.<\/span><span class=\"nx\">height<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"c1\">\/\/ Draw symbols<\/span>\n  <span class=\"nx\">ctx<\/span><span class=\"p\">.<\/span><span class=\"nx\">fillStyle<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">#14b575<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ brand green<\/span>\n  <span class=\"nx\">ctx<\/span><span class=\"p\">.<\/span><span class=\"nx\">font<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">`<\/span><span class=\"p\">${<\/span><span class=\"nx\">fontSize<\/span><span class=\"p\">}<\/span><span class=\"s2\">px monospace`<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"nx\">drops<\/span><span class=\"p\">.<\/span><span class=\"nf\">forEach<\/span><span class=\"p\">((<\/span><span class=\"nx\">drop<\/span><span class=\"p\">,<\/span> <span class=\"nx\">i<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">symbol<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">symbols<\/span><span class=\"p\">[<\/span><span class=\"nb\">Math<\/span><span class=\"p\">.<\/span><span class=\"nf\">floor<\/span><span class=\"p\">(<\/span><span class=\"nb\">Math<\/span><span class=\"p\">.<\/span><span class=\"nf\">random<\/span><span class=\"p\">()<\/span> <span class=\"o\">*<\/span> <span class=\"nx\">symbols<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"p\">)];<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">x<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">i<\/span> <span class=\"o\">*<\/span> <span class=\"nx\">fontSize<\/span><span class=\"p\">;<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">y<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">drop<\/span> <span class=\"o\">*<\/span> <span class=\"nx\">fontSize<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"nx\">ctx<\/span><span class=\"p\">.<\/span><span class=\"nx\">fillStyle<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">`rgba(20, 181, 117, <\/span><span class=\"p\">${<\/span><span class=\"nb\">Math<\/span><span class=\"p\">.<\/span><span class=\"nf\">random<\/span><span class=\"p\">()<\/span> <span class=\"o\">*<\/span> <span class=\"mf\">0.8<\/span> <span class=\"o\">+<\/span> <span class=\"mf\">0.2<\/span><span class=\"p\">}<\/span><span class=\"s2\">)`<\/span><span class=\"p\">;<\/span>\n    <span class=\"nx\">ctx<\/span><span class=\"p\">.<\/span><span class=\"nf\">fillText<\/span><span class=\"p\">(<\/span><span class=\"nx\">symbol<\/span><span class=\"p\">,<\/span> <span class=\"nx\">x<\/span><span class=\"p\">,<\/span> <span class=\"nx\">y<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"c1\">\/\/ Reset drop randomly<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">y<\/span> <span class=\"o\">&gt;<\/span> <span class=\"nx\">canvas<\/span><span class=\"p\">.<\/span><span class=\"nx\">height<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">Math<\/span><span class=\"p\">.<\/span><span class=\"nf\">random<\/span><span class=\"p\">()<\/span> <span class=\"o\">&gt;<\/span> <span class=\"mf\">0.975<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">drops<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n    <span class=\"nx\">drops<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"o\">++<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">});<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ Animate at 30fps<\/span>\n<span class=\"nf\">setInterval<\/span><span class=\"p\">(<\/span><span class=\"nx\">drawRain<\/span><span class=\"p\">,<\/span> <span class=\"mi\">33<\/span><span class=\"p\">);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%AD%D9%84%D9%87_4_%E2%80%93_%D9%88%D8%A7%DA%A9%D9%86%D8%B4_%D8%B3%D8%B7%D8%AD_%D9%85%D8%A7%DB%8C%D8%B9_%D8%B1%D8%A7_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0645\u0631\u062d\u0644\u0647 4 &#8211; \u0648\u0627\u06a9\u0646\u0634 \u0633\u0637\u062d \u0645\u0627\u06cc\u0639 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06cc\u0646 \u0628\u062e\u0634\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0622\u0646 \u0627\u062d\u0633\u0627\u0633 \u062a\u0639\u0627\u0645\u0644 \u0645\u06cc \u062f\u0647\u062f. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u0627\u0648\u0633 \u062d\u0631\u06a9\u062a \u0645\u06cc \u06a9\u0646\u062f\u060c \u0646\u0645\u0627\u062f\u0647\u0627\u06cc \u0646\u0632\u062f\u06cc\u06a9 \u0648\u0627\u06a9\u0646\u0634 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">let<\/span> <span class=\"nx\">mouseX<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">let<\/span> <span class=\"nx\">mouseY<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nb\">window<\/span><span class=\"p\">.<\/span><span class=\"nf\">addEventListener<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">mousemove<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">mouseX<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">e<\/span><span class=\"p\">.<\/span><span class=\"nx\">clientX<\/span><span class=\"p\">;<\/span>\n  <span class=\"nx\">mouseY<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">e<\/span><span class=\"p\">.<\/span><span class=\"nx\">clientY<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">});<\/span>\n\n<span class=\"c1\">\/\/ In drawRain function \u2014 add proximity effect<\/span>\n<span class=\"nx\">drops<\/span><span class=\"p\">.<\/span><span class=\"nf\">forEach<\/span><span class=\"p\">((<\/span><span class=\"nx\">drop<\/span><span class=\"p\">,<\/span> <span class=\"nx\">i<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">x<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">i<\/span> <span class=\"o\">*<\/span> <span class=\"nx\">fontSize<\/span><span class=\"p\">;<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">y<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">drop<\/span> <span class=\"o\">*<\/span> <span class=\"nx\">fontSize<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">distance<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">Math<\/span><span class=\"p\">.<\/span><span class=\"nf\">sqrt<\/span><span class=\"p\">(<\/span>\n    <span class=\"nb\">Math<\/span><span class=\"p\">.<\/span><span class=\"nf\">pow<\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span> <span class=\"o\">-<\/span> <span class=\"nx\">mouseX<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"p\">)<\/span> <span class=\"o\">+<\/span> <span class=\"nb\">Math<\/span><span class=\"p\">.<\/span><span class=\"nf\">pow<\/span><span class=\"p\">(<\/span><span class=\"nx\">y<\/span> <span class=\"o\">-<\/span> <span class=\"nx\">mouseY<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"p\">)<\/span>\n  <span class=\"p\">);<\/span>\n\n  <span class=\"c1\">\/\/ Symbols near cursor glow brighter<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">opacity<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">distance<\/span> <span class=\"o\">&lt;<\/span> <span class=\"mi\">100<\/span> \n    <span class=\"p\">?<\/span> <span class=\"mf\">1.0<\/span> \n    <span class=\"p\">:<\/span> <span class=\"nb\">Math<\/span><span class=\"p\">.<\/span><span class=\"nf\">random<\/span><span class=\"p\">()<\/span> <span class=\"o\">*<\/span> <span class=\"mf\">0.8<\/span> <span class=\"o\">+<\/span> <span class=\"mf\">0.2<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"nx\">ctx<\/span><span class=\"p\">.<\/span><span class=\"nx\">fillStyle<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">`rgba(20, 181, 117, <\/span><span class=\"p\">${<\/span><span class=\"nx\">opacity<\/span><span class=\"p\">}<\/span><span class=\"s2\">)`<\/span><span class=\"p\">;<\/span>\n  <span class=\"nx\">ctx<\/span><span class=\"p\">.<\/span><span class=\"nf\">fillText<\/span><span class=\"p\">(<\/span><span class=\"nx\">symbol<\/span><span class=\"p\">,<\/span> <span class=\"nx\">x<\/span><span class=\"p\">,<\/span> <span class=\"nx\">y<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%E2%9C%A8_%D8%B3%D8%A7%D8%AE%D8%AA_%D8%B1%D8%A7%D8%A8%D8%B7_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%DB%8C_%D8%B4%DB%8C%D8%B4%D9%87_%D9%85%D8%A7%DB%8C%D8%B9\"><\/span>\n<p>  \u2728 \u0633\u0627\u062e\u062a \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0634\u06cc\u0634\u0647 \u0645\u0627\u06cc\u0639<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Glassmorphism \u062f\u0631 \u0647\u0645\u0647 \u062c\u0627 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u060c \u0627\u0645\u0627 \u0627\u06a9\u062b\u0631 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0647\u0627 \u0627\u0631\u0632\u0627\u0646 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u0638\u0627\u0647\u0631\u06cc \u0639\u0627\u0644\u06cc \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight css\"><code><span class=\"nc\">.glass-card<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">background<\/span><span class=\"p\">:<\/span> <span class=\"n\">rgba<\/span><span class=\"p\">(<\/span><span class=\"m\">255<\/span><span class=\"p\">,<\/span> <span class=\"m\">255<\/span><span class=\"p\">,<\/span> <span class=\"m\">255<\/span><span class=\"p\">,<\/span> <span class=\"m\">0.05<\/span><span class=\"p\">);<\/span>\n  <span class=\"py\">backdrop-filter<\/span><span class=\"p\">:<\/span> <span class=\"n\">blur<\/span><span class=\"p\">(<\/span><span class=\"m\">20px<\/span><span class=\"p\">);<\/span>\n  <span class=\"nl\">-webkit-backdrop-filter<\/span><span class=\"p\">:<\/span> <span class=\"n\">blur<\/span><span class=\"p\">(<\/span><span class=\"m\">20px<\/span><span class=\"p\">);<\/span>\n  <span class=\"nl\">border<\/span><span class=\"p\">:<\/span> <span class=\"m\">1px<\/span> <span class=\"nb\">solid<\/span> <span class=\"n\">rgba<\/span><span class=\"p\">(<\/span><span class=\"m\">255<\/span><span class=\"p\">,<\/span> <span class=\"m\">255<\/span><span class=\"p\">,<\/span> <span class=\"m\">255<\/span><span class=\"p\">,<\/span> <span class=\"m\">0.1<\/span><span class=\"p\">);<\/span>\n  <span class=\"nl\">box-shadow<\/span><span class=\"p\">:<\/span> \n    <span class=\"m\">0<\/span> <span class=\"m\">8px<\/span> <span class=\"m\">32px<\/span> <span class=\"n\">rgba<\/span><span class=\"p\">(<\/span><span class=\"m\">0<\/span><span class=\"p\">,<\/span> <span class=\"m\">0<\/span><span class=\"p\">,<\/span> <span class=\"m\">0<\/span><span class=\"p\">,<\/span> <span class=\"m\">0.3<\/span><span class=\"p\">),<\/span>\n    <span class=\"nb\">inset<\/span> <span class=\"m\">0<\/span> <span class=\"m\">1px<\/span> <span class=\"m\">0<\/span> <span class=\"n\">rgba<\/span><span class=\"p\">(<\/span><span class=\"m\">255<\/span><span class=\"p\">,<\/span> <span class=\"m\">255<\/span><span class=\"p\">,<\/span> <span class=\"m\">255<\/span><span class=\"p\">,<\/span> <span class=\"m\">0.1<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0641\u0627\u0648\u062a\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0628\u0627 \u0634\u06cc\u0634\u0647\u200c\u0645\u0648\u0631\u0641\u06cc\u0633\u0645 \u0627\u0631\u0632\u0627\u0646:<\/p>\n<ul>\n<li>\n<strong>\u062a\u06cc\u0631\u06af\u06cc \u067e\u0633 \u0632\u0645\u06cc\u0646\u0647 \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0645<\/strong> (0.05 \u0646\u0647 0.3)<\/li>\n<li>\n<strong>\u062a\u0627\u0631\u06cc \u0628\u0627\u0644\u0627\u062a\u0631<\/strong> (20 \u067e\u06cc\u06a9\u0633\u0644 \u0646\u0647 10 \u067e\u06cc\u06a9\u0633\u0644)<\/li>\n<li>\n<strong>\u062f\u0631\u062e\u0634\u0634 \u062d\u0627\u0634\u06cc\u0647 \u0628\u0627\u0644\u0627\u06cc\u06cc \u062f\u0627\u062e\u0644\u06cc<\/strong> (\u0633\u0627\u06cc\u0647 \u062f\u0631\u0648\u0646\u06cc)<\/li>\n<li>\n<strong>\u067e\u0633 \u0632\u0645\u06cc\u0646\u0647 \u062a\u06cc\u0631\u0647 \u067e\u0627\u06cc\u0647<\/strong> \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062a\u0627\u0631\u06cc \u062f\u0631 \u0648\u0627\u0642\u0639 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f<\/li>\n<\/ul>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%E2%9A%A1_%D8%A7%D9%86%DB%8C%D9%85%DB%8C%D8%B4%D9%86_%D9%87%D8%A7%DB%8C_%D8%A7%D8%B3%DA%A9%D8%B1%D9%88%D9%84_GSAP\"><\/span>\n<p>  \u26a1 \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0647\u0627\u06cc \u0627\u0633\u06a9\u0631\u0648\u0644 GSAP<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>GSAP \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0647\u0627\u06cc \u0627\u0633\u06a9\u0631\u0648\u0644 \u0631\u0627 \u0631\u0648\u0627\u0646 \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0645\u06cc \u06a9\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u0644\u06af\u0648\u06cc \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u0646 \u0628\u0631\u0627\u06cc \u0647\u0631 \u0628\u062e\u0634 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">gsap<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">gsap<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">ScrollTrigger<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">gsap\/ScrollTrigger<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nx\">gsap<\/span><span class=\"p\">.<\/span><span class=\"nf\">registerPlugin<\/span><span class=\"p\">(<\/span><span class=\"nx\">ScrollTrigger<\/span><span class=\"p\">);<\/span>\n\n<span class=\"c1\">\/\/ Fade up animation on scroll<\/span>\n<span class=\"nx\">gsap<\/span><span class=\"p\">.<\/span><span class=\"nf\">fromTo<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">.feature-card<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> \n  <span class=\"p\">{<\/span> \n    <span class=\"na\">opacity<\/span><span class=\"p\">:<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> \n    <span class=\"na\">y<\/span><span class=\"p\">:<\/span> <span class=\"mi\">60<\/span> \n  <span class=\"p\">},<\/span>\n  <span class=\"p\">{<\/span>\n    <span class=\"na\">opacity<\/span><span class=\"p\">:<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">y<\/span><span class=\"p\">:<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">duration<\/span><span class=\"p\">:<\/span> <span class=\"mf\">0.8<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">stagger<\/span><span class=\"p\">:<\/span> <span class=\"mf\">0.15<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">ease<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">power3.out<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">scrollTrigger<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n      <span class=\"na\">trigger<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.features-section<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">start<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">top 80%<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">end<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">bottom 20%<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0631\u0627 <code>stagger: 0.15<\/code> \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627\u0639\u062b \u0645\u06cc \u0634\u0648\u062f \u0686\u0646\u062f\u06cc\u0646 \u06a9\u0627\u0631\u062a \u0628\u0647 \u062c\u0627\u06cc \u0647\u0645\u0647 \u062f\u0631 \u06cc\u06a9 \u0632\u0645\u0627\u0646 \u0645\u062a\u062d\u0631\u06a9 \u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u062c\u0632\u0626\u06cc\u0627\u062a \u06a9\u0648\u0686\u06a9 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u06a9\u0644 \u0686\u06cc\u0632 \u0628\u0633\u06cc\u0627\u0631 \u0635\u06cc\u0642\u0644\u06cc\u200c\u062a\u0631 \u0628\u0647 \u0646\u0638\u0631 \u0628\u0631\u0633\u062f.<\/p>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%A7%8A_%D8%B3%D8%A7%D8%AE%D8%AA%D8%A7%D8%B1_%D8%A8%D8%AE%D8%B4_%D9%82%D9%87%D8%B1%D9%85%D8%A7%D9%86\"><\/span>\n<p>  \ud83e\uddca \u0633\u0627\u062e\u062a\u0627\u0631 \u0628\u062e\u0634 \u0642\u0647\u0631\u0645\u0627\u0646<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"k\">export<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">Hero<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nt\">section<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"relative min-h-screen flex items-center\"<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"si\">{<\/span><span class=\"cm\">\/* Canvas background *\/<\/span><span class=\"si\">}<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">canvas<\/span> \n        <span class=\"na\">ref<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">canvasRef<\/span><span class=\"si\">}<\/span>\n        <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"absolute inset-0 w-full h-full opacity-40\"<\/span>\n      <span class=\"p\">\/&gt;<\/span>\n\n      <span class=\"si\">{<\/span><span class=\"cm\">\/* Gradient overlay *\/<\/span><span class=\"si\">}<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"err\">\"<\/span><span class=\"na\">absolute<\/span> <span class=\"na\">inset-0<\/span> <span class=\"na\">bg-gradient-to-b<\/span> \n        <span class=\"na\">from-transparent<\/span> <span class=\"na\">via-black<\/span><span class=\"err\">\/<\/span><span class=\"na\">20<\/span> <span class=\"na\">to-black<\/span><span class=\"err\">\/<\/span><span class=\"na\">80<\/span><span class=\"err\">\"<\/span> \n      <span class=\"p\">\/&gt;<\/span>\n\n      <span class=\"si\">{<\/span><span class=\"cm\">\/* Content *\/<\/span><span class=\"si\">}<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"relative z-10 max-w-6xl mx-auto px-6\"<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"glass-card p-8 rounded-2xl max-w-2xl\"<\/span><span class=\"p\">&gt;<\/span>\n          <span class=\"p\">&lt;<\/span><span class=\"nt\">h1<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"text-5xl font-bold text-white mb-4\"<\/span><span class=\"p\">&gt;<\/span>\n            Build Smarter Workflows with AI\n          <span class=\"p\"\/><span class=\"nt\">h1<\/span><span class=\"p\">&gt;<\/span>\n          <span class=\"p\">&lt;<\/span><span class=\"nt\">p<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"text-slate-300 text-lg mb-8\"<\/span><span class=\"p\">&gt;<\/span>\n            OG-AI helps teams automate repetitive tasks\n          <span class=\"p\"\/><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span>\n          <span class=\"p\">&lt;<\/span><span class=\"nt\">button<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"err\">\"<\/span><span class=\"na\">bg-brand-500<\/span> <span class=\"na\">text-black<\/span> \n            <span class=\"na\">px-8<\/span> <span class=\"na\">py-4<\/span> <span class=\"na\">rounded-xl<\/span> <span class=\"na\">font-semibold<\/span><span class=\"err\">\"<\/span><span class=\"p\">&gt;<\/span>\n            Get Started\n          <span class=\"p\"\/><span class=\"nt\">button<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\"\/><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\"\/><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\"\/><span class=\"nt\">section<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%E2%9A%99%EF%B8%8F_%DB%8C%DA%A9_%D9%81%D8%A7%DB%8C%D9%84_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%A8%D8%B1%D8%A7%DB%8C_%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%D9%87%D9%85%D9%87_%D8%A2%D9%86%D9%87%D8%A7\"><\/span>\n<p>  \u2699\ufe0f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0647\u0645\u0647 \u0622\u0646\u0647\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0647\u062a\u0631\u06cc\u0646 \u062a\u0635\u0645\u06cc\u0645\u06cc \u06a9\u0647 \u06af\u0631\u0641\u062a\u0645 \u0627\u06cc\u0646 \u0628\u0648\u062f \u06a9\u0647 \u062a\u0645\u0627\u0645 \u0633\u0641\u0627\u0631\u0634\u06cc \u0633\u0627\u0632\u06cc \u0647\u0627 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648\u0627\u062d\u062f \u0642\u0631\u0627\u0631 \u062f\u0647\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ src\/config.ts<\/span>\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">config<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">brand<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Your AI Product<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">tagline<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Build Smarter Workflows with AI<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">color<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">#14b575<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"na\">hero<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">title<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Build Smarter Workflows with AI<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">subtitle<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Automate tasks, generate content, unlock insights<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">cta<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Get Started Free<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"na\">nav<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">links<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Features<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">How It Works<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Pricing<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Testimonials<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">FAQ<\/span><span class=\"dl\">\"<\/span><span class=\"p\">],<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"na\">pricing<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">monthly<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\n      <span class=\"p\">{<\/span> <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Starter<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"na\">price<\/span><span class=\"p\">:<\/span> <span class=\"mi\">9<\/span><span class=\"p\">,<\/span> <span class=\"na\">features<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">100 generations<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">API access<\/span><span class=\"dl\">\"<\/span><span class=\"p\">]<\/span> <span class=\"p\">},<\/span>\n      <span class=\"p\">{<\/span> <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Pro<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"na\">price<\/span><span class=\"p\">:<\/span> <span class=\"mi\">29<\/span><span class=\"p\">,<\/span> <span class=\"na\">features<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Unlimited<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Priority support<\/span><span class=\"dl\">\"<\/span><span class=\"p\">]<\/span> <span class=\"p\">},<\/span>\n    <span class=\"p\">]<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u062f\u0648\u0646 \u062d\u0641\u0627\u0631\u06cc \u0642\u0637\u0639\u0627\u062a \u0641\u0642\u0637 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0622\u067e\u062f\u06cc\u062a \u06a9\u0646\u06cc\u062f \u0648 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%93%A6_%D8%A2%D9%86%DA%86%D9%87_%DA%A9%D9%87_%D9%82%D8%A7%D9%84%D8%A8_%D9%86%D9%87%D8%A7%DB%8C%DB%8C_%D8%B4%D8%A7%D9%85%D9%84_%D9%85%DB%8C_%D8%B4%D9%88%D8%AF\"><\/span>\n<p>  \ud83d\udce6 \u0622\u0646\u0686\u0647 \u06a9\u0647 \u0642\u0627\u0644\u0628 \u0646\u0647\u0627\u06cc\u06cc \u0634\u0627\u0645\u0644 \u0645\u06cc \u0634\u0648\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>\u0645\u0648\u062a\u0648\u0631 \u0633\u0641\u0627\u0631\u0634\u06cc \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0628\u0627\u0631\u0627\u0646 \u062f\u06cc\u062c\u06cc\u062a\u0627\u0644 (Canvas API)<\/li>\n<li>\u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0647\u0627\u06cc \u0627\u0633\u06a9\u0631\u0648\u0644 GSAP \u062f\u0631 \u0633\u0631\u0627\u0633\u0631<\/li>\n<li>\u0627\u062c\u0632\u0627\u06cc \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0634\u06cc\u0634\u0647 \u0627\u06cc \u0645\u0627\u06cc\u0639<\/li>\n<li>\u0642\u0647\u0631\u0645\u0627\u0646\u060c \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u060c \u0646\u062d\u0648\u0647 \u06a9\u0627\u0631\u06a9\u0631\u062f\u060c \u0642\u06cc\u0645\u062a\u200c\u06af\u0630\u0627\u0631\u06cc\u060c \u062a\u0648\u0635\u06cc\u0641\u0627\u062a\u060c \u067e\u0631\u0633\u0634\u200c\u0647\u0627\u06cc \u0645\u062a\u062f\u0627\u0648\u0644\u060c \u0628\u062e\u0634\u200c\u0647\u0627\u06cc CTA<\/li>\n<li>\u0647\u0631 \u062f\u0648 \u0646\u0633\u062e\u0647 Next.js 15 \u0648 React<\/li>\n<li>TypeScript \u062f\u0631 \u0633\u0631\u0627\u0633\u0631<\/li>\n<li>\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc Tailwind CSS<\/li>\n<li>\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u06a9\u0627\u0645\u0644<\/li>\n<\/ul>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%8E%AF_%D9%86%D8%AA%DB%8C%D8%AC%D9%87\"><\/span>\n<p>  \ud83c\udfaf \u0646\u062a\u06cc\u062c\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0646\u0633\u062e\u0647 \u06cc \u0646\u0645\u0627\u06cc\u0634\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u062f \u0635\u062d\u0628\u062a \u0645\u06cc \u06a9\u0646\u062f: <strong>https:\/\/og-ai-next.vercel.app\/<\/strong><\/p>\n<p>\u0627\u06af\u0631 \u062f\u0631 \u062d\u0627\u0644 \u0633\u0627\u062e\u062a\u0646 \u06cc\u06a9 \u0645\u062d\u0635\u0648\u0644 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0647\u0633\u062a\u06cc\u062f \u0648 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0635\u0641\u062d\u0647 \u0641\u0631\u0648\u062f \u0634\u0645\u0627 \u0627\u0632 \u0647\u0645\u0627\u0646 \u0631\u0648\u0632 \u0627\u0648\u0644 \u0645\u0627\u0646\u0646\u062f \u06cc\u06a9 \u0627\u0633\u062a\u0627\u0631\u062a\u200c\u0622\u067e \u0628\u0627 \u0628\u0648\u062f\u062c\u0647 \u0645\u0627\u0644\u06cc \u0628\u0627\u0634\u062f &#8211; \u0645\u0646 \u0627\u06cc\u0646 \u0631\u0627 \u0628\u0647 \u0642\u0627\u0644\u0628\u06cc \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062f\u0645 \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0638\u0631\u0641 \u0686\u0646\u062f \u0633\u0627\u0639\u062a \u0622\u0646 \u0631\u0627 \u0628\u06af\u06cc\u0631\u06cc\u062f \u0648 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p><strong>\u062f\u0631\u06cc\u0627\u0641\u062a \u0642\u0627\u0644\u0628:<\/strong> https:\/\/pixelanas.gumroad.com\/l\/digital-rain<\/p>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%92%AD_%D8%A2%D9%86%DA%86%D9%87_%DB%8C%D8%A7%D8%AF_%DA%AF%D8%B1%D9%81%D8%AA%D9%85\"><\/span>\n<p>  \ud83d\udcad \u0622\u0646\u0686\u0647 \u06cc\u0627\u062f \u06af\u0631\u0641\u062a\u0645<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0633\u0627\u062e\u062a\u0646 \u0627\u06cc\u0646 \u0628\u0647 \u0645\u0646 \u0622\u0645\u0648\u062e\u062a \u06a9\u0647 \u062a\u0641\u0627\u0648\u062a \u0628\u06cc\u0646 \u06cc\u06a9 \u0635\u0641\u062d\u0647 \u0641\u0631\u0648\u062f \u062e\u0648\u0628 \u0648 \u06cc\u06a9 \u0635\u0641\u062d\u0647 \u0633\u06cc\u0646\u0645\u0627\u06cc\u06cc \u0627\u06cc\u0646 \u0627\u0633\u062a:<\/p>\n<ol>\n<li>\n<strong>\u06cc\u06a9 \u062a\u0635\u0648\u06cc\u0631 \u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u0634\u062f\u0646\u06cc<\/strong> &#8211; \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0628\u0627\u0631\u0627\u0646 \u0642\u0644\u0627\u0628 \u0627\u0633\u062a<\/li>\n<li>\n<strong>\u062e\u0648\u06cc\u0634\u062a\u0646 \u062f\u0627\u0631\u06cc<\/strong> &#8211; \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0632\u0646\u062f\u0647 \u06a9\u0631\u062f\u0646 \u0646\u062f\u0627\u0631\u062f<\/li>\n<li>\n<strong>\u0627\u0628\u062a\u062f\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f<\/strong> &#8211; Canvas + requestAnimationFrame \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0647\u0627\u06cc CSS \u0631\u0627 \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u0647 \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0634\u06a9\u0633\u062a \u0645\u06cc \u062f\u0647\u062f<\/li>\n<li>\n<strong>\u0627\u062d\u0633\u0627\u0633\u0627\u062a \u0628\u0631 \u0627\u0637\u0644\u0627\u0639\u0627\u062a<\/strong> &#8211; \u0645\u0631\u062f\u0645 \u0627\u062d\u0633\u0627\u0633\u0627\u062a \u0631\u0627 \u0645\u06cc \u062e\u0631\u0646\u062f\u060c \u0646\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627<\/li>\n<\/ol>\n<p>\u0627\u06af\u0631 \u062f\u0631 \u0645\u0648\u0631\u062f \u0647\u0631 \u0642\u0633\u0645\u062a \u0627\u0632 \u0627\u062c\u0631\u0627 \u0633\u0648\u0627\u0644\u06cc \u062f\u0627\u0631\u06cc\u062f\u060c \u062f\u0631 \u0646\u0638\u0631\u0627\u062a \u0645\u0637\u0631\u062d \u06a9\u0646\u06cc\u062f. \u062e\u0648\u0634\u062d\u0627\u0644\u0645 \u06a9\u0647 \u062f\u0631 \u0647\u0631 \u0628\u062e\u0634 \u0639\u0645\u06cc\u0642 \u062a\u0631 \u0645\u06cc \u0631\u0648\u06cc\u0645.<\/p>\n<hr\/>\n<p>\ud83d\udd17 \u0646\u0633\u062e\u0647 \u0646\u0645\u0627\u06cc\u0634\u06cc \u2192 https:\/\/og-ai-next.vercel.app\/<br \/>\ud83d\uded2 \u0622\u0646 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f \u2192 https:\/\/pixelanas.gumroad.com\/l\/digitalrain<\/p>\n<p><em>\u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 Anas \u2014 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 \u062a\u0645\u0627\u0645 \u067e\u0634\u062a\u0647 \u0645\u062a\u062e\u0635\u0635 \u062f\u0631 Next.js\u060c \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0647\u0627 \u0648 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0645\u0645\u062a\u0627\u0632. \u0645\u0631\u0627 \u062f\u0631 X \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f: @pixelanas<\/em><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u063a\u0648\u0627\u0635\u06cc \u0639\u0645\u06cc\u0642 \u062f\u0631 \u0633\u0627\u062e\u062a Digital Rain: \u067e\u06cc\u062c \u0644\u0646\u062f\u06cc\u0646\u06af \u0633\u06cc\u0646\u0645\u0627\u06cc\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0641\u0631\u0622\u06cc\u0646\u062f \u0633\u0627\u062e\u062a \u00ab\u0628\u0627\u0631\u0627\u0646 \u062f\u06cc\u062c\u06cc\u062a\u0627\u0644\u00bb \u0631\u0627 \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc\u200c\u062f\u0647\u062f\u061b \u06cc\u06a9 \u0642\u0627\u0644\u0628 \u067e\u06cc\u062c \u0644\u0646\u062f\u06cc\u0646\u06af \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0645\u062a\u0645\u0627\u06cc\u0632 \u0628\u0627 \u0627\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0628\u0627\u0631\u0627\u0646 \u0646\u0645\u0627\u062f\u0647\u0627\u06cc \u0631\u06cc\u0627\u0636\u06cc\u060c UI \u0634\u06cc\u0634\u0647 \u0645\u0627\u06cc\u0639 (Glassmorphism) \u0648 \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u0627\u0633\u06a9\u0631\u0648\u0644 GSAP. \u0647\u062f\u0641\u060c \u0641\u0631\u0627\u0631 \u0627\u0632 \u0627\u0644\u06af\u0648\u06cc \u062a\u06a9\u0631\u0627\u0631\u06cc \u00ab\u0642\u0647\u0631\u0645\u0627\u0646-\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627-\u0642\u06cc\u0645\u062a\u00bb \u0648 \u062e\u0644\u0642 \u062a\u062c\u0631\u0628\u0647\u200c\u0627\u06cc \u0628\u0635\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062d\u0633 \u0627\u0633\u062a\u0627\u0631\u062a\u0627\u067e \u0628\u0627 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":112488,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media2.dev.to\/dynamic\/image\/width=1200,height=627,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl7ylg6t9rfnwf6zswy6k.jpg","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-112487","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/112487","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=112487"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/112487\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/112488"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=112487"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=112487"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=112487"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}