
SEEK Interactive Style GuideããŒã ããŒãž
ãã ããã»ãšãã©ã®èšèšã·ã¹ãã ã«ã¯æ ¹æ¬çãªæ¬ é¥ããããŸãã ãã¶ã€ããŒãéçºè ã¯ãããªãçŸä»£çãªãã®ãå°å ¥ããŠãããŸã£ããç°ãªãç°å¢ã§åãç¶ããŸãã ãã®çµæãã³ãŒããšãã¶ã€ã³çŽ æãäžè²«ããç¶æ ã«ç¶æããããã«ãããªãã®åªåãããå¿ èŠããããŸããããããªããšããã¶ã€ããŒãšããã°ã©ããŒãæéãšãšãã«äœæ¥ããçŽ æãã©ãã©ãé¢ããŠãããŸãã
èšèšã·ã¹ãã ã䜿çšããŠããäŒæ¥ããæ¥çã®ããŒã«ã®éçºã«åæ»ãèŠããããšæããŠããããšã¯é©ãããšã§ã¯ãããŸããã ãããã®ããŒã«ã¯ãç§ãã¡ãåãç°å¢ã«ã¯é©å¿ããŠããŸãããããããããŒãè¡ã£ãŠããããšããã¶ã€ããŒãåãç°å¢ã«ç§»ããšããéèŠãªããžãã¹ã§ã¯ç¹ã«åœ¹ç«ã¡ãŸããã
æ¬åœã«ãããªã«æªãã®ïŒ ããŒã¯ã¯ãè¿ãå°æ¥ãããè¯ãæ¹åãžã®å€åãåŸ ã£ãŠãããšä¿¡ããŠããŸãã ãã®èšäºã§ã¯ãSEEKã§ã·ã¹ãã ãããè¿ã¥ããããšãã§ãããã¶ã€ããŒãéçºè ãææ°ã®æè¡ã§å¯èœãªéãäœæ¥ããæ¹æ³ã«ã€ããŠè©±ããŠããŸãã
èšèšã·ã¹ãã ã®äžçãžã®æ
SEEKã¯ã1幎以äžã«ããã£ãŠå¯Ÿè©±åã®ã¹ã¿ã€ã«ã¬ã€ãã«åãçµãã§ãããã€ã³ã¿ãŒãã§ã€ã¹èŠçŽ ã¯Reactã³ã³ããŒãã³ãã§è¡šããããã®æ°ã¯åžžã«å¢å ããŠããŸãã ãæ³åã®ãšãããããã«ããèŠèŠãã¶ã€ã³ã®ããžã§ã³ãæ ¹æ¬çã«å€ãããŸããã
ãã®çµæãäŒç€Ÿãäœæããç¹å®ã®ãããžã§ã¯ãã®å€èŠ³ã ãã§ãªãããã¶ã€ããŒã䜿çšããã¹ã¿ã€ã«ã¬ã€ãã®å 容ã決å®ããããã°ã©ã ã³ãŒãã«åºã¥ãããã¶ã€ã³ã·ã¹ãã ãèªç±ã«äœ¿çšã§ããŸããã
ä»æ¥ããã®ã¬ã€ãã¯ãã€ã³ã¿ã©ã¯ãã£ãã§å®æçã«æŽæ°ãããWebãµã€ããšããŠæäŸãããŠããŸãã ããããèšèšã·ã¹ãã ã®äœæ¥ã®æåã®æ®µéã§ãç§ãã¡ã¯PDFææžã®åœ¢åŒã§ã«ãŒã«ã圢åŒåããããšããŸããã 次ã«ã Sketchã®äžé£ã®ãœãŒã¹ãããªã¢ã«ãç»å Žããããã«å«ãŸããæšæºåãããæåãè²ãã¹ã¿ã€ã«ã¯ãæ°ãããããžã§ã¯ãã®åºçºç¹ãšããŠç°¡åã«äœ¿çšã§ããŸãã

SEEKåæã¹ã±ããããã
å°ãåŸã«ã InVisionã® Sketchçšãã©ã°ã€ã³ã®ã»ããã䜿çšããŠCraftãå®éšããŸããã ãç¹ã«ã©ã€ãã©ãªãã©ã°ã€ã³ã«ã€ããŠèšåããããšæããŸãã
ããã«ãããäŒç€Ÿã®ã·ã³ãã«ã®å ±éã©ã€ãã©ãªãäœæãããããããã¹ãŠã®ããŒã ããã³ãã¹ãŠã®ããã¥ã¡ã³ãã§äœ¿çšã§ããããã«ãªããŸããã

ã¯ã©ããã©ã€ãã©ãªãã©ã°ã€ã³
ã©ã€ãã©ãªã®æºåã®æåã®æ®µéã§ãç¹ã«æ¢åã®ãããžã§ã¯ãã®çµ¶ãéãªãéçºãšãããžã§ã¯ãã§ã®æ°ãããã³ãã¬ãŒãã®åºçŸã®ç¶æ³ã§ããã®ã©ã€ãã©ãªãææ°ã®ç¶æ ã«ä¿ã€ããã«å¿ èŠãªèšå€§ãªäœæ¥ãæããã«ãªããŸããã
éçºè ã¯ãå€ãã®å Žåãã¶ã€ããŒãšäžç·ã«ã³ãŒããå€æŽããŸããããããã¯ããžã¥ã¢ã«ãã¶ã€ã³ã«é倧ãªåœ±é¿ãäžããŸããããéçãã¶ã€ã³ã©ã€ãã©ãªã¯ãããã®å€æŽåãšåããŸãŸã§ããã ææ°ã®ãã®ã«ããããã«ã誰ãããããæŽæ°ããå¿ èŠãããããšãèŠããŠããå¿ èŠããããŸããããããã¯éåžžã¯èµ·ãããŸããã§ããã
ããã§ãããã§ã¯ãéçºè ãããã¶ã€ããŒãžã®æ¹åã®å€åã®åºããã«ã€ããŠè©±ããŠããŸããã åãåé¡ã¯ãéã®ããã»ã¹ã®ç¹åŸŽã§ããã éçºè ã«ã¯ãã³ãŒãã§äœ¿çšã§ããä¿¡é Œæ§ã®ããé¢é£ããèšèšæ å ±ã®ä¿¡é Œã§ãããœãŒã¹ããããŸããã§ããã
Reactããreact-sketchappãžã®ãã¹
ãã®é ãæåã®Reactãããžã§ã¯ãã®äœæ¥ãéå§ããŸããã ã¬ã³ããªã³ã°ã¯ãµãŒããŒäžã§å®è¡ãããŸãããããã§ã¯ã webpackãšCSSã¢ãžã¥ãŒã«ã䜿çšããŸãã ïŒéäžã§éçºã«åå ããŸããïŒã ããããã¹ãŠããæçµçã«ã€ã³ã¿ã©ã¯ãã£ãã¹ã¿ã€ã«ã¬ã€ãã®äœæã«ã€ãªãããŸããã
Reactãã³ã³ããŒãã³ãæåã§ãããšããäºå®ã«ãããã€ã³ã¿ã©ã¯ãã£ããªãªãŒããŒã·ãããžã®ç§»è¡ã¯ã»ãŒé¿ããããŸããã åæã«ãäžçäžã®ä»ã®äŒæ¥ã§ãåæ§ã®ããã»ã¹ãè¡ãããŠããããšãããããŸããã
ã³ã³ããŒãã³ãã®ååã«å€§ããªã³ã¬ã¯ã·ã§ã³ãäœæãããšããã«ãæ°ãããããžã§ã¯ãã«åãçµãã§ããä»ã®ããŒã ã¯ããã«ãã¹ããã©ã¯ãã£ã¹ã掻çšããŸããã ãã ããã¹ã¿ã€ã«ã¬ã€ãã¯Reactã³ã³ããŒãã³ããšLESSã¹ã¿ã€ã«ã§æ§æãããŠããããããã¶ã€ããŒã«ãšã£ãŠã¯ç¹ã«åœ¹ç«ã¡ãŸããã§ããã ããã¯ç¹ã«é©ãããšã§ã¯ãããŸããã§ããããã§ããã ãæ©ãä¿®æ£ããããåªåããŸããã§ããã äºå®ãèšèšè ãšéçºè ã®éã®æè¡ã®ã®ã£ããã¯ãç§ãã¡ã®æ¥çã«é·ãéååšããŠããå€ãåé¡ã§ãããç§ãã¡ã¯ããã«æ°ä»ããªãããšã«æ £ããŠããŸãã
Airbnbãäœæããreact-sketchappãããžã§ã¯ãã«ã€ããŠåŠç¿ãããŸã§ããã¹ãŠãåããŸãŸã§ããã

React-sketchapp
Airbnbã®åŸæ¥å¡ã§ãããžã§ã³ãŽãŒã«ã㯠ãreact-sketchappã«ã€ããŠæ¬¡ã®ããã«è¿°ã¹ãŠããŸãããSketchã§ã¯ãã·ã³ãã«ãšãªãŒããŒã©ã€ãã䜿çšããReactã§ã¯ãã³ã³ããŒãã³ããšããããã£ã䜿çšããŸãã ãããã®æŠå¿µã¯éåžžã«é¡äŒŒããŠãããããããããçµåããªãã®ã¯æãã«æãããã
ç§ãã¡ã¯ç®ãä¿¡ããŸããã§ããã ããã«ãããŸã-ã¹ã±ããã«çŽæ¥è¡ãæ¬åœã®Reactã³ãŒãã æçµçã«ãéçºè ãšãã¶ã€ããŒã®äž¡æ¹ãææ°ã®ææ°ããŒã¿ãåŒãåºãããšãã§ããèšèšã·ã¹ãã ãäœæã§ããããã«æãããŸããã
ãã®ã¢ãããŒãã§ã¯ãèšèšã«ãŒã«ã®åºç€ã¯ãå®çšŒåã§äœ¿çšãããã ãã§ãªããèšèšè ãäœæ¥ããç°å¢ã«ãå«ãŸããã³ãŒãã§ãã ã³ãŒããã€ãŸãèšèšã«ãŒã«ãé²åããã«ã€ããŠããããã®ã«ãŒã«ã¯èªåçã«ææ°ã®ç¶æ ã«ä¿ãããèšèšè ãã¢ã¯ã»ã¹ã§ããããã«ãªããŸããæåã§Sketchã«è»¢éããå¿ èŠã¯ãããŸããã
ãã¡ããããã®ãããã¯ãããå°ã詳ãã調ã¹ãŠã¿ããšãreact-sketchappã䜿çšããã«ã¯ããã€ãã®èŠä»¶ãæºããå¿ èŠãããããšãããããŸããã
- Reactã䜿çšããŠã³ã³ããŒãã³ããæ§ç¯ããå¿
èŠããããŸãïŒããã¯ããªãæçœã§ãïŒã 幞ããªããšã«ããã§ã«Reactã䜿çšããŠãããããããã¯åé¡ã§ã¯ãªãããã§ãã
- ã¹ã¿ã€ã«ã¯JavaScriptã§å®çŸ©ããå¿
èŠããããŸãã ç§ãã¡ã®å Žåãç§ãã¡ã®èšèšã·ã¹ãã ã¯CSSã¢ãžã¥ãŒã«ã䜿çšããŠæ§ç¯ãããŠããããããã§ã«æ£ããæ¹åã«ããããé²æ©ããŠããŸãã ç§ãã¡ã¯CSS-in-JSã®å€§ãã¡ã³ã§ããããšã³ã·ã¹ãã å
šäœã«ã¹ã¿ã€ã«ãæ£åšãããæºåãã§ããŠããŸããã§ãããå°ãªããšãæ¥ãã§ããã€ããã¯ãããŸããã§ããã
- ã³ã³ããŒãã³ãã¯ã react-primitivesã®ãããªãã®ã䜿çšããŠããã©ãŠã¶ãŒããªããã£ãã§ã¯ãªãããŠãããŒãµã«ããªããã£ãïŒViewãTextãStyleSheetïŒã䜿çšããå¿
èŠããããŸãã å
šäœçã«ãreact-sketchappã¯éåžžã®ReactãããReact Nativeã«è¿ãã£ãã ç¹°ãè¿ããŸãããããã¯éåžžã«ããŸãããããšãã§ããŸãããããã®ãããªç§»è¡ã«ã¯å€ãã®äœæ¥ãå¿
èŠã§ããããããããã®å®è£
ã®éçšã§ããã€ãã®åŠ¥åãå¿
èŠã«ãªããŸãã
ãããã£ãŠãreact-sketchappã¯å¿ã®åºããä»ã®äººã«æšå¥šã§ããçŽ æŽããããããžã§ã¯ãã§ãããæ®å¿µãªãããã®æè¡çèŠä»¶ã¯ãçæéãŸãã¯äžæçã«ã¯äœ¿çšã§ããªãããšãæå³ããŸãã
ã³ã³ããŒãã³ãã©ã€ãã©ãªã®ç§»è¡ã決å®ããå Žåã§ããå¥ã®è³ªåã«å¯ŸããçããèŠã€ããå¿ èŠããããŸãã ãã®è³ªåã¯ããŒãžã§ã³ç®¡çã«é¢ãããã®ã§ããã
èšèšææãšãŠãããŒãµã«ããŒãžã§ã³ç®¡çã·ã¹ãã
æ¢ã«ãåç¥ãããããŸããããèšèšããŒã«å ã§ããŒãžã§ã³ç®¡çã䜿çšã§ããããŒã«ããããŸãã ãã ããå€éšããŒãžã§ã³ç®¡çã·ã¹ãã ã䜿çšããŠããã¶ã€ããŒãäœæ¥ããçŽ æã確å®ã«åŠçã§ããããã«ããå¿ èŠããããŸããã ãããã®ãããªã¢ã«ãéåžžã®ã³ãŒããšããŠèªèããããããéåžžã®ã³ãŒããšåãå Žæã«é 眮ãããä»ã®ãã¹ãŠãšã¯é¢ä¿ã®ãªãå²ãåœãŠãããã¹ããŒã¹ã«é 眮ãããªãããã«ããŸãã ãã®ãããå®éšããããšã«ããŸããã
Kactusãšããã€ãã®ãã€ãã£ãNodeã¹ã¯ãªããã䜿çšããŠãSketchãã¡ã€ã«ãã¹ã¿ã€ã«ã¬ã€ããªããžããªã«ã³ãããããããšããŸããã

ã¹ã±ãããã¡ã€ã«ã®git diffã瀺ãKactus
æè¡çã«ã¯ãæãã§ãããã®ãéæã§ããŸããããæ®å¿µãªãããå¿ èŠãªã¯ãŒã¯ãããŒãèšå®ã§ããŸããã§ããã ããããä»ã®èª°ããæåããã§ãããããããã¯ç§ãã¡ã«ã¯åããŸããã§ããã ããã§ã®ãã€ã³ãã¯ãã³ãŒããšèšèšè³æã®åæããµããŒããããã®ã¢ãããŒãã§ãããéåžžã«éå±ãªã¿ã¹ã¯ã§ããããšãå€æãããã®ããã»ã¹ã¯ãšã©ãŒãçºçããããããã®çµæãæ€èšŒããã®ãå°é£ã ã£ããšããããšã§ãã
ãã ããã³ãŒããã¡ã€ã«ãšSketchãã¡ã€ã«ãåãããŒãžã§ã³ç®¡çã·ã¹ãã ã«å«ããããšãã§ãããšããäºå®ã«ãããçŽé¢ããŠããåé¡ãããæ確ã«ç解ããããšãã§ããŸããããåé¡èªäœã®è§£æ±ºã«ã¯åœ¹ç«ã¡ãŸããã§ããã ããã«ãããŒãžã§ã³ç®¡çã·ã¹ãã ã§ã¢ãããŒãã䜿çšããå Žåãã¹ã¿ã€ã«ã¬ã€ããšã³ãŒãã調æŽãã人ã¯ãå€ãã®è£å©çãªã¢ã¯ã·ã§ã³ãå®è¡ããå¿ èŠããããŸããã æéãšåŽåã®ã³ã¹ãã¯ãèããããå©çãšæ¯èŒã§ããŸããã§ãããããã®äŸ¡å€ã¯äŸç¶ãšããŠçåã§ããã ãã®çµæãã¹ã±ãããã¡ã€ã«ã®äœæ¥ã¯ããã«äžæ¢ãããŸããã å®éšã倱æãããšèªèããŸããã
ç§ãã¡ã¯æåãžã®åžæãã»ãšãã©å€±ããŸãããéçºè ãšãã¶ã€ããŒã1ã€ã®ã¯ãŒã¯ã¹ããŒã¹ã«æã¡èŸŒãããšã¯ã§ããŸããã§ããã
Html-sketchapp
å€æããããã«ãreact-sketchappãæ¢åã®æè¡ã¹ã¿ãã¯ã«çµ±åããããšã®åé¡ã ãã§ãªãã Brainlyã®Conrad Jvinelãããã«ã€ããŠæ¬¡ã®ããã«æžããŠããŸããããããã®å¶éãããã«å æã§ããªãã£ããããhtml-sketchappãäœæããŸãããã
Html-sketchappã¯ãŸã£ããç°ãªãã¢ãããŒããåããŸãã

HTML-sketchappã®çµæ
ãã®ãããžã§ã¯ãã®ååãããããããã«ãhtml-sketchappã䜿çšãããšãéåžžã®HTMLã³ã³ãã³ãããSketchãã¡ã€ã«ãçæã§ããŸãããreact-sketchappãšã¯ç°ãªãããã®ã³ã³ãã³ãã®æºåã«äœ¿çšãããã¯ãããžãŒã®éžæã«å¶éã¯ãããŸããã
html-sketchappãæ©èœããWebãããžã§ã¯ãã¯ã Preact ã Vue ã Angular ã Backbone ã jQueryã䜿çšããŠããŸãã¯RubyãŸãã¯PHPã䜿çšããŠäœæã§ããŸã ã
Reactã®äœ¿çšãçŠæ¢ãã人ã¯ããŸããããé©åãªããªããã£ãã䜿çšããŠãéçºè ãæãããã«ã¢ããªã±ãŒã·ã§ã³ã®ã¹ã¿ã€ã«ãèšå®ã§ããããã«ãªããŸããã
html-sketchappã䜿çšããŠåŠçã§ãããããžã§ã¯ãã®èŠä»¶ã¯éåžžã«åçŽã§ãããHTMLããŒãžãããå Žåã¯ãSketchã«ã€ã³ããŒãã§ããŸãã
ã¹ã±ãããã¡ã€ã«ã®çæ
äžèŠãããšãhtml-sketchappã®åäœã¯ä¿¡ããããªãããã«èŠããŸããããå éšã¡ã«ããºã ãèŠããšãå®éãããããã¹ãŠãããã»ã©è€éã§ã¯ãªãããšãããã«ããããŸããã
html-sketchappã®ä»çµã¿ãç解ããã«ã¯ããŸãSketchãã¡ã€ã«ã®åœ¢åŒãç解ããå¿ èŠããããŸãã ãããããäžéšã®äººã«ãšã£ãŠã¯ãSketchãã¡ã€ã«ãå®éã«ã¯éåžžã®Zipãã¡ã€ã«ã§ããããšã«é©ããããããŸããã

ã¢ãŒã«ã€ããã¡ã€ã«ãšããŠéãããã¹ã±ãããã¡ã€ã«
Sketchãã¡ã€ã«ãéåžžã®ã¢ãŒã«ã€ããšããŠè§£åãããšããããã¯äž»ã«JSONãã¡ã€ã«ã§æ§æãããŠããããšãããããŸãããã¡ãããJSONãã¡ã€ã«ã¯å®å šã«éåžžã®ããã¹ããšãã£ã¿ãŒã§éãããšãã§ããŸãã

ããã¹ããšãã£ã¿ãŒã§éããã¹ã±ãããã¡ã€ã«ã®JSONãã¡ã€ã«
ãããã®ãã¡ã€ã«ã®å 容ãèŠããšããã®ãã©ãŒãããã¯æ¯èŒçåçŽã§ãããäž»ã«ãã¹ããããã¯ã©ã¹ã®å°ããªãããã¯ã§æ§æãããŠããããšãããããŸãã
æäžäœã¬ãã«ã§ã¯ãhtml-sketchappã䜿çšãããšããããã®ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãããã°ã©ã ã§çæããJSONã«å€æã§ããŸãã ãããã圌ã¯ãããã®è¡åã«éãããããã«å ãžé²ãã§ããŸãã
ããããæã匷åãªhtml-sketchappæ©èœã¯nodeToSketchLayersã§ãã ãã©ãŠã¶èŠçŽ ãSketchã¬ã€ã€ãŒã®é åã«å€æããããšãã§ããŸãã ããã«ã¯ããã©ãŠã¶ã¹ã¿ã€ã«ãæœåºããããããSketchã®åçç©ã«å€æããããã®ãã¹ãŠã®ããžãã¯ãå«ãŸããŠãããããç§è·¡ã®å€§éšåãçºçããŸãã
ãœãŒã¹çŽ æãæºåããåŸã SymbolMasterã¯ã©ã¹ãæ©èœããŸã ããã®ã¯ã©ã¹ã¯ãã¹ãŠããŸãšããŠãSketchã·ã³ãã«ãåçã«çæããŸãã ã·ã³ãã«ã¯ãã¹ãŠã®Sketchã©ã€ãã©ãªã®åºç€ã§ããã€ãŸããHTMLãšSketchã®éã®ãã¹ãèŠã€ãããããã©ãŠã¶ãŒã«è¡šç€ºãããReactã³ã³ããŒãã³ããåŠçããªããããã¶ã€ããŒãå¿ èŠãšãããã®ã圢æã§ããŸãã
æ®å¿µãªãããããã¹ãã¹ã¿ã€ã«ã®ãšã³ã³ãŒãæ¹æ³ã«é¢ããçŸåšã®Sketch圢åŒã®å¶éã«ãããçæãããããã¥ã¡ã³ãã¯æå¹ãªSketchãã¡ã€ã«ã§ã¯ãããŸãããhtml-sketchappã§ã¯ããã®ãããªãã¡ã€ã«ã¯Almost SketchïŒalmost Sketch filesïŒãšåŒã°ããŸããç°¡æœ-asketchã ãã®ãããªãã¡ã€ã«ã¯ãé©åãªãã©ã°ã€ã³ã䜿çšããŠæåã§ã€ã³ããŒãããå¿ èŠããããŸã ã ãããã幞ããªããšã«ããã®ããã»ã¹ã¯ããã»ã©è€éã§ã¯ãããŸããã
æåã¯ãããããã¹ãŠããªã³ã¯ããã¿ã¹ã¯ã¯å§åçã§ããããæ¢åã®ã¹ã¿ã€ã«ã¬ã€ããSketchããã¥ã¡ã³ãã«å€æããããã»ã¹ã瀺ããã¢ãããžã§ã¯ããGitHubã«æ¢ã«ååšããŠããŸããã
ãããçºèŠãããšããã«ãç§ãã¡ã¯ããã«å®éšãå§ããŸããã ãã®çµæãç§ãã¡ã«è¡æãäžããçµæã¯é©ãã»ã©éãã£ãã
HTML-sketchappå®éš
æåã«ãhtml-sketchappã®æ©èœãç¬èªã«èª¿ã¹ãããšã«ããã¹ã¿ã€ã«ã¬ã€ãã®Webãµã€ãã®ããŒã ããŒãžãæäŸããŸããã
ããã¯ãå®æŒãããã€ãŒãã§ãã

html-sketchappã䜿çšããããŒãžåŠççµæ
次ã«ãButtonã³ã³ããŒãã³ãããæåã®æåãçæãå§ã ããã®ã³ã³ããŒãã³ãã®ããŸããŸãªããªãšãŒã·ã§ã³ãã¬ã³ããªã³ã°ããŸããã
ã³ã³ããŒãã³ããå«ãHTMLããŒãžã¯æ¬¡ã®ããã«ãªããŸãã

ã³ã³ããŒãã³ãã衚瀺ãããHTMLããŒãž
ãããŠããããç§ãã¡ãåŸããã®ã§ãã

html-sketchappã䜿çšããããŒãžåŠççµæã
ãããå®çŸããããã«ãåã³ã³ããŒãã³ãã®ãã©ã«ããŒã«è¿œå ãããç¹å¥ãªJavaScriptãã¡ã€ã«ïŒäŸãã°ã
Button.sketch.js
ïŒãæãä»ããŸããã ãã®ãããªãã¡ã€ã«ã¯ããšã¯ã¹ããŒãããæåãå®çŸ©ããŸãã
åãã¡ã€ã«ã¯ãã·ã³ãã«ã®ååãšããã«å¯Ÿå¿ããReactèŠçŽ ãæå®ãããªããžã§ã¯ãããšã¯ã¹ããŒãããŸãã
import React from 'react'; import Button from './Button'; export const symbols = { 'Button/Pink': <Button color="pink">Button</Button>, 'Button/Blue': <Button color="blue">Button</Button>, 'Button/Transparent': <Button color="transparent">Button</Button>, };
次ã«ãã¹ã¿ã€ã«ã¬ã€ãWebãµã€ãã«ç¹å¥ãªé衚瀺ã«ãŒããäœæããæ«å°Ÿã
.sketch.js
ãã¡ã€ã«ãã€ã³ããŒããã察å¿ããReactèŠçŽ ãç»é¢ã«ã¬ã³ããªã³ã°ããŸããã ããããããšã§ãSketchã«å¿ èŠãªãã®ããã¹ãŠ1ããŒãžã«è¡šç€ºããŠãå€æããã»ã¹ãå€§å¹ ã«ç°¡çŽ åããæ©äŒãåŸãŸããã
åã·ã³ãã«ã®ã€ã³ã¹ã¿ã³ã¹ã¯ããã®ã·ã³ãã«ã®ååãæå®ãããããŒã¿å±æ§ã§
div
èŠçŽ ã«ã©ãããããŠãããããããŒãžäžã®ã·ã³ãã«ã®éžæãšåœåãç°¡åã«ãªããŸããã
<div data-sketch-symbol="Button/Pink"> ... </div>
ãã®ãã³ãã¬ãŒãã¯éåžžã«å¹æçã§ããããšãå€æããããã«ããã¹ãã¹ã¿ã€ã«ãšããã¥ã¡ã³ãã®è²ãå«ããããã«æ¡åŒµããŸããã

ããã¹ãã¹ã¿ã€ã«ã®èª¬æ

ããã¹ãã¹ã¿ã€ã«

è²ã®èª¬æ

WebããŒãžã®ãµã³ãã«è²

ã€ã³ããŒããããè²
ã¹ã¿ã€ã«ã¬ã€ãã¯ã¬ã¹ãã³ã·ãã§ãã£ãããããã©ãŠã¶ãŒãŠã£ã³ããŠã®ãµã€ãºãå€æŽããããŸããŸãªç»é¢ãµã€ãºã§ãã£ã©ã¯ã¿ãŒã®åçãæ®ãããã»ã¹ãèªååããŸãã ã

ãã©ãŠã¶ãŠã£ã³ããŠã®èšå®

ã¹ã±ããã®ããã¹ãã¹ã¿ã€ã«

ã¹ã±ãããã¶ã€ã³èŠçŽ
ããã«ãããåäžã®ãã¡ã€ã«ãæäœããªããããŠã£ã³ããŠãµã€ãºãè¿œå ãåé€ãããã³ååå€æŽãã䟿å©ãªæ©äŒãåŸãããŸããã å¿ èŠãªãŠã£ã³ããŠãµã€ãºããšã«ã·ã³ãã«ãçæãããŸããã
話ããããšãã¹ãŠãéæã§ããåŸãSketchã§ã®ã¬ã¹ãã³ã·ããã¶ã€ã³ã®ãµããŒãã«é¢ããäžèŠè§£æ±ºäžå¯èœãªåé¡ã解決ãããšæããŸããã
ãããã¯ãã¹ãŠé©ãã»ã©ããŸãæ©èœããŸããããç¹ã«SketchãµããŒãã«é¢ããŠäœããä»äžããå¿ èŠããããŸãã ã ãšã©ãŒãçºçãããã©ãŠã¶ãµããŒããéåžžã©ã®ããã«æŽçããããæãåºããŸããã
å®éšããçç£ãŸã§
ããã»ã©å€§èŠæš¡ã§ã¯ãªãå®éšãšããŠå§ãŸã£ããã®ã¯ãããã«äžçš®ã®ãããã¬ãŒã ã¯ãŒã¯ã«å€ãããŸããã
html-sketchappãšãã®ãããžã§ã¯ãã«é¢é£ãããã¹ãŠã®éçºãã¹ã¿ã€ã«ã¬ã€ãã«çµ±åããã®ã«ãããã»ã©æéã¯ããããŸããã§ããã ã¹ã¿ã€ã«ã¬ã€ãã®æ°ããããŒãžã§ã³ã®æºåã¯ãæšæºãã«ãããã»ã¹ã®äžéšãšããŠå®è¡ãããããã«ãªããŸããã
ãã ãã察å¿ãããã«ãªã¯ãšã¹ããèŠããšãé«ã¬ãã«ã§åäžã®æŠå¿µçã«ã·ã³ãã«ãªã¿ã¹ã¯ãéæããããšããã«ããããããããã®çµ±åã§ã¯ãããžã§ã¯ãã«å€ãã®è£å©ã³ãŒããšäŸåé¢ä¿ãå«ããå¿ èŠãããããšãããããŸãã
Sketchçšã®ã©ã€ãã©ãªãçæããã«ã¯ã次ã®æé ã«åŸãå¿ èŠããããŸããã
- webpackã䜿çšããŠãã©ãŠã¶ãŒã¹ã¯ãªãããã³ã³ãã€ã«ããŸãã html-sketchappãšãèŠçŽ ãéžæããã³å€æããããã®ã³ãŒããå«ãŸããŠããã¯ãã§ãã
- 䜿çšå¯èœãªããŒãã§éçWebãµãŒããŒãå®è¡ããŸãã
- Puppeteerãèµ·åããŸãïŒããã¯ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®ãªã Chromiumãã©ãŠã¶ãŒã§ãïŒã
- æå®ãããURLã«ç§»åããŸãã
- ã³ã³ãã€ã«æžã¿ã¹ã¯ãªãããå®è¡äžã®Puppeteerã®ã€ã³ã¹ã¿ã³ã¹ã«åã蟌ã¿ãŸãã
- ã³ã³ãã€ã«ãããã¹ã¯ãªããã®é¢æ°ã䜿çšããŠãæå®ãããåç»é¢ãµã€ãºã䜿çšããŠèŠçŽ ã®ã¹ãããã·ã§ãããäœæããŸãã
- åä¿¡ããJSONãã¡ã€ã«ããã£ã¹ã¯ã«æžã蟌ã¿ãŸãã
- éçWebãµãŒããŒãåæ¢ããŸãã
- ãã©ãŠã¶ãåæ¢ããŸãã
ãŸãããã®ããã»ã¹ãèªååããããšèããŠããŸããã 1ã€ã®ããŒã ã§ããããã¹ãŠå®è¡ã§ããã®ã¯åœç¶ã®ããšã®ããã«æããŸããããããã¯ç®çã®URLãæž¡ãã ãã§ååã§ãã ãããçµæãšããŠåŸããããã®ã§ãã
Html-sketchapp-cli
ã¹ã¿ã€ã«ã¬ã€ããäœæããã·ã¹ãã ã«html-sketchappãçµ±åããŠãã1ãæããããªããã¡ã«ãè£å©æäœãèªååã§ããå°ããªã³ãã³ãã©ã€ã³ãŠãŒãã£ãªãã£ã§ããhtml-sketchapp-cliããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®ã«ããŽãªã«ç§»è¡ããŸããã
ã¬ã€ããäœæããããã«å¿ èŠãªã®ã¯ã1ã€ã®äŸåé¢ä¿ãšç°¡åãªæ§æãã¡ã€ã«ã ãã§ãã
module.exports = { serve: 'docs/dist', url: '/sketch-exports', outDir: 'dist/asketch', viewports: { 'Desktop': '1024x768', 'Mobile Plus': '414x736', 'Mobile': '320x568' } };
ããã«ã html-sketchapp-cliã䜿çšãããšã å€ãã®ã³ãŒããåé€ã§ããŸããã

Html-sketchapp-cliå®è£ çµæ
é£ç¶ããã»ã¹ãšããŠèšèš
ãããã®ããŒã«ã¯ãã¹ãŠãéåžžã®äœæ¥ã®äžéšã«ãªããŸããã éçºè ã«ããã¹ã¿ã€ã«ã®å€æŽã¯ãããã«ãã¶ã€ããŒã«å±ããŸãã
ã¹ã¿ã€ã«ã¬ã€ãã®ãã«ããæåãããã³ã«ãWebãµã€ããGitHubããŒãžã«èªåçã«å±éãïŒ gh-pagesã䜿çšïŒã npmã§ã³ã³ããŒãã³ãã©ã€ãã©ãªãå ¬éããïŒ semantic-releaseã䜿çšïŒã ãã§ãªããèªåçã«åããã»ãŒã¹ã±ããããçæããŸããã¡ã€ã«ããå ¬åŒSketchã©ã€ãã©ãªã«ã€ã³ããŒãããæºåãã§ããŸããã
ãã®Sketchã©ã€ãã©ãªã¯ãå ±æãã£ã¹ã¯ãä»ããŠãèšèšããŒã ã®ã¡ã³ããŒã«é åžãããŸãã ã€ãŸãããã¶ã€ããŒã¯åžžã«ã©ã€ãã©ãªã®ææ°ã®ã³ããŒãä¿æããŠãããã¹ã±ãããšãã£ã¿ãŒãéããŠããŠããçŸåšã®ãããžã§ã¯ããšãªã¢ã«ã¿ã€ã ã§åæããŸãã
ã¹ã±ããã©ã€ãã©ãªã®æ°ããçµã¿èŸŒã¿ãµããŒãã«ãã ãèšèšè ã¯SEEKã¹ã¿ã€ã«ã¬ã€ãã©ã€ãã©ãªã¡ãã¥ãŒãéããå¿ èŠãªã³ã³ããŒãã³ããéžæã§ããŸããåœåèŠåãšèŠèŠã¹ã¿ã€ã«ãéçºè ã®æåŸ ã«åã£ãŠããããšãããããŸãã

ãã¶ã€ããŒã®è·å Ž
ãã®ã¡ã«ããºã ãå®è£ ãããããã³ãŒãã«å ããããå€æŽãSketchã«ç¶ç¶çã«æµã蟌ã¿ããããã®å€æŽãè¡ã人ãSketchãã€ã³ã¹ããŒã«ããŠããªãããšããããŸãã ã¹ã¿ã€ã«ã¬ã€ãã¯å®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ã«æ¥ç¶ãããŠãããããçµç¹å šäœã®äººã ã«ãã£ãŠã¹ã¿ã€ã«ã絶ããæ¹åãããŠãããããããã¹ãŠã®å€æŽãSketchã©ã€ãã©ãªã«ç¢ºå®ã«åæ ãããåžžã«ææ°ã®ç¶æ ã«ä¿ãããŸãã
æè¡çã«ã¯ãéçºè ãšãã¶ã€ããŒã¯ãŸã ç°ãªãç°å¢ã§äœæ¥ããŠããŸãããç§ãã¡ã¯ããããããã«è¿ã¥ããããã«äžçæžåœåãçµãã§ããŸãã
ãŸãšã
ã©ãã»ã©éèŠãªããšãè°è«ãããšããŠããç§ãã¡ã«ãšã£ãŠããã¯æ«å®çãªè§£æ±ºçã«ãããŸããã WebããŒãžããSketchã«ããŒã¿ã転éããããšã¯éåžžã«åŒ·åãªæ©èœã§ãã ããã¯ãçµ±äžãããéçºç°å¢ã«åãã倧ããªäžæ©ã§ãããç§ãã¡ãšWebéçºæ¥çå šäœãåé²ããå¿ èŠããããŸãã
éçºè ãšèšèšè ã®éã®å¢çç·ã¯ãŸããŸãææ§ã«ãªããããããŸããããå°æ¥ã®èšèšããŒã«ã¯ãã®å¢çç·ãå®å šã«æ¶å»ããã¯ãã§ãã ãã®å¯èœæ§ã掻çšããããã«ã¯ãã¿ãŒã²ããç°å¢ããŸã£ããæ£ç¢ºã«æš¡å£ããŠããªããããªèšèšããŒã«ãå¿ èŠã§ãã ãã®ç°å¢ã«åºã¥ããŠäœæãããããŒã«èªäœãå¿ èŠã§ãã
幞ããªããšã«ãäžçã®äººã ãçŸåšãæ®éçãªéçºããã³èšèšç°å¢ã®åé¡ã«åãçµãã§ããŸãã Compositor ã Interplay ã Alva ã Haiku ã Webflow ãããã³UXPinãªã©ã®ããŒã«ã¯ãèšèšããŒã«ãšåºç€ãšãªãWebãããžã§ã¯ãã³ãŒãã®éã®å£ãæç Žããããšãç®çãšããŠããŸãã ãã®ãããªããŒã«ãããã«ç»å ŽããŠããããã»ã©æéã¯ããããªããšèããŠããŸãã
ç¹ã«ãèšèšã·ã¹ãã ãçŸä»£ã®ãã¶ã€ããŒã«ãã£ãŠããŒã«ã®ã»ããã®äžéšã«ãªãã€ã€ããããšãèãããšãé¢é£æ§ã倱ããªãããã«ãããå€ãã®åŸæ¥ã®èšèšããŒã«ãåæ§ã®ã¢ãããŒããå®è£ ããæ¹æ³ãèŠããããããŸããã
ãã®éãæ¥çãåé²ãããååãå®è£ ããæ°ãããã¶ã€ã³ããŒã«ãç»å Žããã®ãåŸ ã€éãreact-sketchappãhtml-sketchappãªã©ã®ãããžã§ã¯ãã¯ããã¶ã€ã³ãšéçºã®æ°ããã¢ãããŒãã«åããŠæ¢ã«æºåãé²ããŠãããæ°ããèãæ¹ãéçºããŠããŸãã
æ£çŽãªãšãããä»ãæ°ããæ¹æ³ã§Webãã¶ã€ã³ãç解ãå§ããé©ãã¹ãè¯ãææã§ãã
芪æãªãèªè ïŒ ãããžã§ã¯ãã§react-sketchappãŸãã¯html-sketchappã䜿çšããŠããŸããïŒ