ื˜ื•ืขื ื™ืื—ื“ืฉ

ื˜ืขื™ื ืช AI

ืกื˜ื˜ื•ืก ื—ืฉื™ื‘ื” ืœืฆ'ืื˜ AI: ื”ืžื™ืœื™ื ืžืชื—ืœืคื•ืช ื‘ื˜ืฉื˜ื•ืฉ ื•ื’ืœ ื‘ื”ื™ืจื•ืช ืจืš ืขื•ื‘ืจ ืขืœ ื”ืื•ืชื™ื•ืช.

ื”ืชืืžื”

gradientFrom
gradientTo
waveColor

ืžื‘ื•ืกืก ืขืœ AI Text Loading (MIT ืจื™ืฉื™ื•ืŸ) ยท ืชื ืื™ ืฉื™ืžื•ืฉ

ืžืืคื™ื™ื ื™ื

8 ืžืืคื™ื™ื ื™ื
ืžืืคื™ื™ืŸืกื•ื’ื‘ืจื™ืจืช ืžื—ื“ืœืชื™ืื•ืจ
textsstring[]"[\"Thinking...\", \"Processing...\", \"Analyzing...\", \"Computing...\", \"Almost...\"]"ืžื™ืœื™ื ืฉืžื—ืœื™ืคื•ืช ื–ื• ืืช ื–ื•.
intervalnumber1500ื›ืžื” ื–ืžืŸ ืžื™ืœื” ืื—ืช ื ืฉืืจืช, ื‘ืžื™ืœื™ืฉื ื™ื•ืช.
showElapsedbooleanfalseืœื”ืฆื™ื’ ืืช ืฉื ื™ื•ืช ื”ื”ืžืชื ื” ืœื™ื“ ื”ืžื™ืœื”.
labelstring"Loading"ื˜ืงืกื˜ ืงื‘ื•ืข ืœืงื•ืจืื™ ืžืกืš.
classNamestringโ€”ืžื—ืœืงื•ืช ืœืขื•ื˜ืฃ.
gradientFromstring"#ffffff"ืฆื‘ืข ื”ืื•ืช ื”ืจืืฉื•ื ื”. ื”ื˜ืงืกื˜ ืขื•ื‘ืจ ื‘ื”ื“ืจื’ื” ืœืฆื‘ืข ืกื•ืฃ ื”ืžืขื‘ืจ.
gradientTostring"#d4d4d8"ืฆื‘ืข ื”ืื•ืช ื”ืื—ืจื•ื ื”, ืกื•ืฃ ื”ืžืขื‘ืจ.
waveColorstring"#ffffff"ื”ืฆื‘ืข ืฉื”ืื•ืชื™ื•ืช ืขื•ื‘ืจื•ืช ื“ืจื›ื• ื›ืฉื”ื’ืœ ืขื•ื‘ืจ ืขืœื™ื”ืŸ.

ืชืœื•ื™ื•ืช

3 ื—ื‘ื™ืœื•ืช ื ื“ืจืฉื•ืช

npm install motion clsx tailwind-merge

ืจื›ื™ื‘ื™ื ื“ื•ืžื™ื

ืœื›ืœ ื”ืจื›ื™ื‘ื™ื