ã»ãã¥ã¢ãªã³ã¯ // 0x00F4B00æå·å: AES-256-GCMãªãŒããŒã©ã€ã: åœ
ããŒã¿ã¹ããªãŒã // ãããã¡ãªã³ã° ã·ã¹ãã ã¡ã¢ãª // 0.0MB
VRAM // 0.0MB
ããŒã // ãªã³ã©ã€ã³
ã¬ã€ãã³ã· // 14ms
> èµ·åã·ãŒã±ã³ã¹ // ã«ãŒãã«ããŒã... OK
ã·ã¹ãã ãåæåããŠããŸã...
[000%]
ã¢ãžã¥ãŒã«åŒãã£ããããã
äž»èŠã¢ãžã¥ãŒã« / ã³ã³ããã¹ãèªèãã£ããããã / ããŒããã©ãªãªçµ±å
äžèšèŠçŽïŒ
React ContextããµãŒãã¹ã®æœè±¡åãçšããŠæ§ç¯ããããããŒããã©ãªãªïŒã¬ã©ã¹çšã®å
ç¢ã§ã¢ãžã¥ãŒã«åŒãã€æ¡åŒµå¯èœãªãã£ãããããã·ã¹ãã ãã¡ã³ããã³ã¹æ§ãã¢ã¯ã»ã·ããªãã£ãããã³é«åºŠãªUI/UXã«éç¹ã眮ããŠããŸãã
éçºæéïŒ2025幎6æ - 2025幎7æ
åèïŒ
- ãã¹ãã£ã³ã°/ã³ãŒãã®å©çšã«é¢ããå
責äºé
ïŒ
ãã£ãããããã¢ãžã¥ãŒã«ã®å®å
šãªãœãŒã¹ã³ãŒãã¯ãªã¯ãšã¹ãã«å¿ããŠæäŸå¯èœã§ããã»ãã¥ãªãã£ãšãã©ã€ãã·ãŒã®ãããã³ãŒãã¯å
¬éãããŠããŸããã
- 詳现æ
å ±ããã¢ã«é¢ãããåãåããïŒ
franzdomingo.dev ãéã㊠Franz Phillip G. Domingo ãŸã§ãé£çµ¡ãã ããã
- ããã²ãŒã·ã§ã³ã«é¢ããæ³šæïŒ
ãã£ãããããã¯ããŒããã©ãªãªãµã€ãäžã®ãããŒãã£ã³ã°ã¢ã¯ã·ã§ã³ãã¿ã³ïŒFABïŒããã¢ã¯ã»ã¹ã§ããŸãã
äž»ãªæ©èœ
- åå©çšå¯èœãªã³ã³ããŒãã³ãã«ããã¢ãžã¥ãŒã«åŒã¢ãŒããã¯ãã£
- React Contextã䜿çšããäžå€®éäžåã®ç¶æ
管ç
- API/ããžãã¹ããžãã¯ã®ããã®ãµãŒãã¹æœè±¡åã¬ã€ã€ãŒ
- å
ç¢ãªãŠãŒã¶ãŒäœéšã®ããã®ãšã©ãŒããŠã³ããªãšå詊è¡ããžãã¯
- ã¢ãã¡ãŒã·ã§ã³ä»ãã®ã¢ã¯ã»ã·ãã«ãªUIïŒShadcn UI, Radix UI, Framer MotionïŒ
- çŽ æ©ãã³ãã³ãå®è¡ã®ããã®ã¯ã€ãã¯ã¢ã¯ã·ã§ã³
- ãªã¢ã«ã¿ã€ã ãã£ãŒãããã¯ã®ããã®ã¿ã€ãã³ã°ã€ã³ãžã±ãŒã¿ãŒ
- ç°¡åã«ã¢ã¯ã»ã¹ã§ãããããŒãã£ã³ã°ã¢ã¯ã·ã§ã³ãã¿ã³ïŒFABïŒ
- æ°ãããããã€ããŒãããã³ãããæ©èœã«å¯Ÿå¿ããæ¡åŒµå¯èœãªèšèš
- é¢å¿ã®åé¢ïŒUIãç¶æ
ããã«ããŒãåããµãŒãã¹
- ããã©ãŒãã³ã¹æé©åïŒæå°éã®ã¯ã©ã€ã¢ã³ãåŽç¶æ
ãåçèªã¿èŸŒã¿ãç»åæé©å
ç§ã®è²¢ç®ïŒåœ¹å²ãšè²¬ä»»ïŒ
ã¢ãŒããã¯ãã£ïŒãšã³ãžãã¢ãªã³ã°ïŒ
- ã¡ã³ããã³ã¹æ§ãé«ãããããUIãç¶æ
ããã«ããŒããµãŒãã¹ãåé¢ããã¢ãžã¥ãŒã«åŒãã£ãããããã·ã¹ãã ãèšèšã»å®è£
ã
ç¶æ
管çïŒ
- React Contextãšã«ã¹ã¿ã ããã¯ã䜿çšããŠãäžå€®éäžåã®ãã£ããç¶æ
ãæ§ç¯ã
ãµãŒãã¹ã¬ã€ã€ãŒïŒ
- ãã£ããAPIãšããžãã¹ããžãã¯ã®æœè±¡åãéçºãã容æãªæ¡åŒµãšãã¹ããå¯èœã«ã
UI/UXïŒ
- Shadcn UI, Radix UI, Framer Motionã䜿çšããŠãã¢ãã¡ãŒã·ã§ã³ä»ãã®ã¢ã¯ã»ã·ãã«ãªã³ã³ããŒãã³ããäœæã
ãšã©ãŒãã³ããªã³ã°ïŒ
- ã·ãŒã ã¬ã¹ãªãŠãŒã¶ãŒäœéšã®ããããšã©ãŒããŠã³ããªãšå詊è¡ããžãã¯ãå®è£
ã
æ¡åŒµæ§ïŒ
- æ°æ©èœããããã€ããŒãã¯ã€ãã¯ã¢ã¯ã·ã§ã³ãç°¡åã«è¿œå ã§ããããã³ãŒãããŒã¹ãæ§é åã
çŽé¢ãã課é¡
-
ã³ã³ããã¹ã管çïŒ
ã°ããŒãã«ãªãã£ããç¶æ
ãè€æ°ã®ã³ã³ããŒãã³ãéã§ä¿¡é Œæ§ãé«ããæ¡åŒµå¯èœã§ããããšã確ä¿ããããšã
-
ãšã©ãŒãã³ããªã³ã°ïŒ
äºæž¬äžå¯èœãªAPIã¬ã¹ãã³ã¹ã«å¯ŸããŠãå
ç¢ãªãšã©ãŒããŠã³ããªãšå詊è¡ããžãã¯ãæ§ç¯ããããšã
-
ããã©ãŒãã³ã¹ïŒ
å€§èŠæš¡ãªãã£ãããã°ãåçãªUIæ©èœã®ã¬ã³ããªã³ã°ãæé©åããããšã
-
ã¢ã¯ã»ã·ããªãã£ïŒ
ãã¹ãŠã®ãã£ãããããã®ããåããããŒããŒããšã¹ã¯ãªãŒã³ãªãŒããŒã«å¯Ÿå¿ãããããšã
ãããžã§ã¯ãã¢ãŒããã¯ãã£
-
ã¢ãŒããã¯ãã£ã¹ã¿ã€ã«ïŒ
æç¢ºãªé¢å¿ã®åé¢ïŒUIãç¶æ
ããã«ããŒããµãŒãã¹ãåããŠãŒãã£ãªãã£ïŒãåããã¢ãžã¥ãŒã«åŒReactã
-
ã³ã³ããŒãã³ãæ§æïŒ
components/chatbot/: ã¡ã€ã³UIãFABãã¡ãã»ãŒãžã¬ã³ããªã³ã°ãã¯ã€ãã¯ã¢ã¯ã·ã§ã³ãã¿ã€ãã³ã°ã€ã³ãžã±ãŒã¿ãŒ
components/chatbot/components/: ã¬ã€ã¢ãŠããå
¥åãã¡ãã»ãŒãžãªã¹ããããããŒãé«åºŠãªUI
components/chatbot/helpers/: ã¯ã€ãã¯ã¢ã¯ã·ã§ã³ãããã·ã¥ã¿ã°ã³ãã³ãããªã³ã¯æœåºãåå®çŸ©
components/chatbot/services/: ãã£ãããµãŒãã¹ã®æœè±¡å
components/chatbot/types/: ãã£ããã³ã³ããã¹ããšã¡ãã»ãŒãžã®ããã®TypeScriptã€ã³ã¿ãŒãã§ãŒã¹
components/chatbot/utils/: ç¶æ
管çãåæãã¢ã¯ã»ã·ããªãã£ããšã©ãŒãã³ããªã³ã°ãªã©
-
ç¶æ
管çïŒ
ãã£ããã®ç¶æ
ãšæäœã®ããã®React Contextãšã«ã¹ã¿ã ããã¯ã
-
çµ±åãã¯ãããžãŒïŒ
ã¢ãã¡ãŒã·ã§ã³ã®ããã®Framer Motionãã¢ã¯ã»ã·ããªãã£ãšãã¶ã€ã³ã®ããã®Radix UIããã³Shadcn UIã
ãã¢ãã¬ãã¥ãŒ
-
ã¹ã¯ãªãŒã³ã·ã§ãã/ãããªïŒ
ãã£ãããããã®ã©ã€ããã¢ã¯ franz-domingo.vercel.app ã§å
¬éãããŠããŸãããããŒãã£ã³ã°ã¢ã¯ã·ã§ã³ãã¿ã³ïŒFABïŒãããã£ããããããéãããã¹ãŠã®æ©èœãã©ã€ãã§äœéšããŠãã ããã
-
ãã©ãããã©ãŒã 衚瀺ïŒ
Web (ã¬ã¹ãã³ã·ããã¢ãã€ã«ãã¡ãŒã¹ã)
-
宿Œãããæ©èœïŒ
- ãã£ããã¢ã¯ã»ã¹ã®ããã®ãããŒãã£ã³ã°ã¢ã¯ã·ã§ã³ãã¿ã³ïŒFABïŒ
- ã¢ãã¡ãŒã·ã§ã³ä»ãã®ã¢ã¯ã»ã·ãã«ãªãã£ããUI
- ã¯ã€ãã¯ã¢ã¯ã·ã§ã³ãã¿ã€ãã³ã°ã€ã³ãžã±ãŒã¿ãŒããšã©ãŒãã³ããªã³ã°
- ã¢ãžã¥ãŒã«åŒã¡ãã»ãŒãžã¬ã³ããªã³ã°ãšã³ã³ããã¹ãèªèæ©èœ
-
ãã¢æé ïŒ
franz-domingo.vercel.app ã«ã¢ã¯ã»ã¹ãããã£ãããããã®FABãã¯ãªãã¯ããŠèµ·åãããã£ããããããšå¯Ÿè©±ããŠãã ããã
詳现ãã³ãŒãããŒã¹ã®ç¢ºèªãå¿
èŠãªå Žåã¯ãäœæè
ã«çŽæ¥ãåãåãããã ããã
\n# ãã£ããããã (Portfolio: Glass)
ã³ã³ããã¹ãèªèåãã£ããããããšããŒããã©ãªãªçµ±å
ã©ã€ãã㢠(V1) ⢠[GITHUB: éå
¬éãœãŒã¹]
æŠèŠ
- 圹å²: ã¢ãŒããã¯ãã£ïŒãšã³ãžãã¢ãªã³ã°ãUI/UX
- ã¹ã¿ãã¯: React, TypeScript, Tailwind CSS, Framer Motion, Radix UI, Shadcn UI
- äž»èŠãªçµæ: å®ç§ãª100/100ã®ããã©ãŒãã³ã¹ã¹ã³ã¢ãç¶æãã€ã€ãã·ãŒã ã¬ã¹ã§ã¢ã¯ã»ã·ãã«ãªãã£ãããããçµ±åãå®çŸ
- èŠçŽ: Portfolio: Glassåãã®å
ç¢ã§ã¢ãžã¥ãŒã«åãããæ¡åŒµå¯èœãªãã£ãããããã·ã¹ãã ãReact ContextããµãŒãã¹æœè±¡åãæŽ»çšããä¿å®æ§ãšã¢ã¯ã»ã·ããªãã£ã«çŠç¹ãåœãŠãŠæ§ç¯ãããŸããã
課é¡
- 課é¡: ã¡ã€ã³ã®èª²é¡ã¯ãå®ç§ãªããã©ãŒãã³ã¹ã¹ã³ã¢ãçŸãããæãªãããšãªããããããªã¹ãã®ã°ã©ã¹ã¢ãŒãã£ãºã UIã«ã·ãŒã ã¬ã¹ã«çµ±åããããšã§ããã
- ã¿ãŒã²ããå±€: å¿åå
äŒæ¥ïŒTrend Microãªã©ïŒã®æè¡ãªã¯ã«ãŒã¿ãŒããšã³ãžãã¢ãªã³ã°ãªãŒããŒã
- å¶çŽ: ãã³ãã«ãµã€ãºãå°ããä¿ã¡ã100/100ã®Lighthouseã¹ã³ã¢ãç¶æãããã¹ãŠã®æäœãããŒããŒããšã¹ã¯ãªãŒã³ãªãŒããŒã§å¯Ÿå¿å¯èœã«ããããšã
ã¢ãããŒããšæ±ºå®äºé
- ã¢ãŒããã¯ãã£: é¢å¿ã®åé¢ãæç¢ºã«ããã¢ãžã¥ã©ãŒReactãReact Contextã䜿çšããäžå€®éæš©çãªç¶æ
管çã
- äž»èŠãªæ±ºå®äºé
:
- ãµãŒãã¹æœè±¡å: LLMãããã€ããŒã®ãã¹ããšæ¡åŒµã容æã«ããããã®APIæœè±¡åã¬ã€ã€ãŒã®éçºã
- ã¢ãžã¥ã©ãŒUI: ã¢ããªã·ãã¯ãªæ§é ãé¿ããããã®ã³ã³ããŒãã³ãã®åå²ã
- ãã¬ãŒããªã: ãã³ãã«ãµã€ãºãæå°éã«æãããããReduxãªã©ã®éãã©ã€ãã©ãªã®ä»£ããã«React ContextãéžæããŸããã
- ããŒã¿ãããŒ: ãŠãŒã¶ãŒå
¥åã¯UIã³ã³ããŒãã³ãããReact Contextã«æµããããããAPIãšéä¿¡ããŸãã
çµæãšåœ±é¿
- çµæ: èªã¿èŸŒã¿æéãé
ãããããšãªããããŒããã©ãªãªäœéšãè±ãã«ããã¢ã¯ã»ã·ãã«ãªãã£ãããããã
- æ¯èŒ: éçãªããŒããã©ãªãªã«åçãªäŒè©±åã€ã³ã¿ãŒãã§ãŒã¹ã远å ããäœéšãåäžãããŸããã
- 圱é¿: é«åºŠãªç¶æ
管çãšAPIçµ±åèœåã蚌æããŸããã
æè¡çãªè©³çް
- 泚ç®ãã¹ãç¹: ã¯ã€ãã¯ã¢ã¯ã·ã§ã³ãå
¥åã€ã³ãžã±ãŒã¿ãŒããããŒãã£ã³ã°ã¢ã¯ã·ã§ã³ãã¿ã³ïŒFABïŒã
- æ€èšŒ: Lighthouseã䜿çšããããŒã«ã«ãããã¡ã€ãªã³ã°ãã¹ãã
- æé©å: åçé
å»¶èªã¿èŸŒã¿ãšç»åã®æé©åã
æ¯ãè¿ã
- æ¹åç¹: APIãµãŒãã¹æœè±¡åãæ©æã«èšç»ããããå€ãã®LLMãããã€ããŒã«å¯Ÿå¿ãã¹ãã§ããã
- æåç¹: å€éšã®éãã©ã€ãã©ãªã«äŸåããã100/100ã®ã¹ã³ã¢ãç¶æãããŸãŸç¶æ
管çãæ§ç¯ã§ããããšã
- æèš: éçãµã€ãã§ã®è€éãªç¶æ
管çã«ã¯å³å¯ãªã¢ãŒããã¯ãã£èŠåŸãšARIAã©ãã«ã®æ³šæãå¿
èŠã§ãã
ãããžã§ã¯ãã¢ãŒããã¯ãã£
- éå±€æ§é : UIãç¶æ
ããµãŒãã¹ã¯ components/chatbot/ å
ã§å³å¯ã«åé¢ãããŠããŸãã
- ç¶æ
管ç: React Contextãšã«ã¹ã¿ã ããã¯ã
ãã¢ãã¬ãã¥ãŒ
ãã¹ãã£ã³ã°ã«é¢ããæ³šæ:
ã©ã€ããã¢ã¯V1ããŒããã©ãªãªãµã€ãã§å©çšå¯èœã§ãã