@ callemall / material-uiå¯èœã§ããã°ãããã«å ¥åãæ®ããŠãã ããð
é·å¹Žã®åé¡ã«å¯ŸåŠããã®ã«åœ¹ç«ã€0.16.0
ã¹ã¿ã€ãªã³ã°ãœãªã¥ãŒã·ã§ã³ã決å®ããå¿
èŠããããŸãã ããã©ãŒãã³ã¹ã®åé¡ä»¥å€ã«ããã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã§ã¯äœ¿çšã§ããªãCSSã®åŒ·åãªæ©èœã®ããã€ãïŒç䌌ã¯ã©ã¹ãã¡ãã£ã¢ã¯ãšãªïŒmatchmediaãªãïŒïŒãèŠéããŠãããšããäºå®ãè£ãããã«ãããã¯ãå°éå
·ãããããšããã«ãããŸãã ïŒãªã©ã
ç§ãç解ããŠããããšãããäžè¬çãªã³ã³ã»ã³ãµã¹ã¯ãDOMã®å®éã®ã¹ã¿ã€ã«ã·ãŒãã«ã¹ã¿ã€ã«ãæžã蟌ãæ©èœãåããJSã¹ã¿ã€ã«ãœãªã¥ãŒã·ã§ã³ãå¿ èŠã§ãããšããããšã§ãã
ãããè¡ãç¶æãããŠãããœãªã¥ãŒã·ã§ã³ã®ããã€ãã次ã«ç€ºããŸãã
https://github.com/rofrischmann/react-look
https://github.com/Khan/aphrodite
https://github.com/jsstyles/react-jss
æ°ãããœãªã¥ãŒã·ã§ã³ïŒIMOïŒãå®è£ ããéã«èæ ®ããå¿ èŠã®ããããã€ãã®ãã€ã³ãã¯æ¬¡ã®ãšããã§ãã
react-look
倧ããã®ã©ã€ãã©ãªã䜿çšããŠããå Žåã¯ãæå°ã®ãã«ããµã€ãºã§ã¢ãžã¥ãŒã«ãã€ã³ããŒãããæ¹æ³ãè©ŠããŠã¿ãŠãã ãããããã«ããã€ãã®è³ªåïŒ
6ïŒ xxxxStyle
å°éå
·ãåé€ããããåé€ããããšãç®æããŠãã¹ã¿ã€ã«ãäžæžãããããã«ãŠãŒã¶ãŒã«xxxClassName
ãæž¡ããŠããããŸããïŒ ãããšããããã¯ç¡æã§ããïŒ
7ïŒCSSãä»ããã¹ã¿ã€ã«ã®ãªãŒããŒã©ã€ããèš±å¯ããã³ã³ããŒãã³ãã€ã³ã¿ãŒãã§ã€ã¹ãç°¡çŽ åããŸããïŒ ãããã£ãŠãIconMenuã§menuItemStyle
ããªãŒããŒã©ã€ãããå Žåã style = StyleSheet.create({ IconMenu: {MenuItem: { color:red }})
ã¿ã€ãã®ãªãŒããŒã©ã€ããäœæããŸããïŒ
@chrismcvç§ã®å人çãªæèŠã§ã¯ãææ¡ãããŠãããããã®è¶ ç¹å®ã®å°éå ·ãåé€ããã«ã¯ããœãªã¥ãŒã·ã§ã³ã掻çšããå¿ èŠããããŸãã[TextField] floatLabelFocusStyleå°éå ·ïŒ4043ãè¿œå
ç§ãã¡ããããç¥ãåã«ã人ã ã¯ãã¹ãŠã®å¯èœãªãã©ãŒã«ã¹/ã¢ã¯ãã£ã/ãããŒ/ã©ããªç¶æ ã§ããµãã³ã³ããŒãã³ãã¹ã¿ã€ã«ã®å°éå ·ãæ±ããããšããŠããŸãã
ãXXXXã®ã¹ã¿ã€ã«ãèšå®ããæ¹æ³ãããYYYYå
ã§XXXã®ã¹ã¿ã€ã«ãèšå®ã§ããªããããXXXã«somethingInsideToTheLeftButSlightlyMiddleFocusHoverActiveStyle
ãããããè¿œå ããŠãã ããããªã©ã®åé¡ããããããããŸãã
6.ã®@chrismcvã¯ãããäžè¬çãªxxxxStyle
å°éå
·ãšclassNamesã«ã€ããŠãã©ãæããŸããïŒ äžéšã®ã³ã³ããŒãã³ãã§ã¯ãäœããã®æ¹æ³ã§å°éã§ããå¿
èŠããããŸãïŒãã ãã幞ãã :hover
ãªã©ã䜿çšã§ããŸãïŒã
@chrismcv xxxxStyle
å°éå
·ã¯ã className
åãããã¹ã¿ã€ã«ã®ãªããžã§ã¯ãã§ã¯ãªãã style
ããããã£ã«é
眮ããå¿
èŠããããšæããŸãã
@nathanmarksäŒè©±ãããŒãã¹ãã©ããããŠããã ãããããšãããããŸãã ããã¯ééããªãã次ã®ãªãªãŒã¹ã§å¯ŸåŠããå¿ èŠã®ããäž»èŠãªåé¡ã®1ã€ã§ãð¯ã
ããã©ãŒãã³ã¹ã®åé¡ä»¥å€
ç§ã«ãšã£ãŠãããã¯ç§ãã¡ãéžæãããœãªã¥ãŒã·ã§ã³ã«é¢ããŠç§ãæ±ããŠããäž»ãªæžå¿µäºé
ã®1ã€ã§ãã
çŸåšã®ã¢ãããŒãã§ã¯å€ãã®CPUãµã€ã¯ã«ã倱ãããããšã¯å®¹æã«æ³åã§ããã®ã§ããã³ãããŒã¯ã¯ããŸããããŸããã CPUãµã€ã¯ã«ã¯ãã€ã³ã©ã€ã³ã¹ã¿ã€ã«ãªããžã§ã¯ãã®ã¡ã¢ãªå²ãåœãŠãšã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã§å€±ãããŸãã
@oliviertassinari
ç§ã¯çŸåšãããã€ãã®JSã¹ã¿ã€ã«ã®ãœãªã¥ãŒã·ã§ã³ã§éãã§ããŸãã èå³æ·±ãã§ãããããã°ãŸã ãåæãã§ããããšã¯æããã§ãã
ç§ãèããŠããã®ã¯ãåçã¹ã¿ã€ã«ã®ããããã£ä»¥å€ïŒããšãã°ãã³ã³ããŒãã³ãã«color
å°éå
·ãããå ŽåïŒãåºæ¬ã¹ã¿ã€ã«ãªããžã§ã¯ãã®äœææ¹æ³ãå€æŽããå¿
èŠããããã©ããã§ãã
JSã¹ã¿ã€ã«ã®ã©ã€ãã©ãªã®ããã«èŠããŸããæ倧ã®ããã©ãŒãã³ã¹ãåŸãã«ã¯ã StyleSheet.create()
ã¡ãœããã1å䜿çšãããã®ãªããžã§ã¯ãã«open={true}
ãªã©ã®å°éå
·/ç¶æ
çšã®ããŒïŒcss "classes"ïŒãå«ããå¿
èŠããããŸããããã€ãã®æ¡ä»¶ä»ãããããã£ã䜿çšããŠã¹ã¿ã€ã«ãªããžã§ã¯ããªãã©ã«ãåçã«æ§ç¯ããããããã¹ãŠã®åäžã¹ã¿ã€ã«ã®ãã¹ãŠã®ã¬ã³ããªã³ã°ã§ã¹ã¿ã€ã«ã·ãŒããã¡ã¯ããªã¡ãœããã«æž¡ãã®ã§ã¯ãããŸããã
ã¹ã¿ã€ã«ã·ãŒãã»ã¬ã¯ã¿ãŒã¯ãDOMã«äžåºŠã ãæžã蟌ãŸãããšããæå³ã§ãã£ãã·ã¥ãããŸããïŒäžéšã®ã©ã€ãã©ãªã§ã¯ã render()
ã«å¿
èŠãªå Žåã«ã®ã¿DOMã«æžã蟌ãŸããŸãïŒãããã€ãã®èšç®ã§ãªãœãŒã¹ã浪費ããŠããŸã+ãªããžã§ã¯ãã®äœæ+äžèšã®ããã«ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãäœæããå Žåã¯ãåã¬ã³ããªã³ã°ã§æ°ããã¹ã¿ã€ã«ãªããžã§ã¯ããäœæããŠããããç Žæ£ããŸãã
ããŒã...æšæ¥ïŒæ¥ææ¥ïŒããã«ã³ã¡ã³ããæ®ããŸããã åé€ãããŸãããïŒ
@rvbyronã¯ã£ããèŠããŠããŸãã ç§ã¯ç¢ºãã«ãããåé€ããŸããã§ããã
@rvbyronç§ãèŠããŠããŸãã äœãèµ·ãã£ãã®ãããããŸããã
@ rvbyron-ç§ã®ã¡ãŒã«ã«ããããã£ãã®ã§ãåŒçšããã圢ã§ããã«æ»ã£ãŠãã ããïŒ
ããŠãç§ã¯äžã€ã«ã¯ãå€ãã®ããšãèµ·ããããšãæãã§ããŸãã
AïŒã¯ããã©ã€ãã©ãªã¬ãã«ã§èŠçŽ ã®ã¹ã¿ã€ã«ãã©ã¡ãŒã¿ã䜿çšããããšã¯çµ¶å¯Ÿã«ãããŠãã ããã ãã¹ãŠã®ã³ã³ããŒãã³ãã¯ãclassNameã䜿çšããŠå®çŸ©ããå¿ èŠããããŸãã ã³ã³ããŒãã³ãã«ã¹ã¿ã€ã«ã䜿çšããããšãCSSãæäŸãããã¹ãŠã®æ©èœãç Žå£ãããŸãã
BïŒåã³ã³ããŒãã³ãã®ã«ãŒãèŠçŽ ã«classNamesãèªåçã«ã¢ã¿ããããããšäŸ¿å©ã§ãïŒããšãã°ãRaisedButtonã³ã³ããŒãã³ãã§ã¯ãã³ã³ããŒãã³ãã®ã«ãŒãèŠçŽ ã«className = "mui-raised-button"ãæé»çã«å«ãŸããŸãïŒã ã¹ã¿ã€ãªã³ã°ããã£ãšç°¡åã«ãªããŸãã ãããæ§æå¯èœã§ãã
CïŒmuiTheme.jsãã¡ã€ã«ããããŒããå®å šã«ååŸããŸãã ããŒãã®muiTheme.SCSSãã¡ã€ã«ã¯ãã³ã³ããŒãã³ãã§ç¹ã«èš±å¯ãããŠããããããã£ã ãã§ãªããããŒãã®äœæè ãéžæãããã¹ãŠã®ããããã£ãé©çšã§ãããšããç¹ã§ã¯ããã«åªããŠããŸãã ãã¡ãããããã«ã¯ããããBãå®è£ ãããŠã¢ã¯ãã£ãã§ããå¿ èŠããããŸãã
DïŒReact-lookã¯ãã¹ã¿ã€ã«ããããã£ãå«ãJSONãªããžã§ã¯ããclassNamesã«å€æãããããé©åãªåŠ¥åç¹ã®ããã§ãã ãªãŒããŒã©ã€ããç°¡åã«ãªããŸãã ãã ããäžèšã®Cã§è¿°ã¹ãããã«ãSCSSã§ããŒãããŒã¹ãäœæããããšæããŸãã ç§ã¯ã©ã®CSSã¢ã·ã¹ãããã±ãŒãžã䜿çšãããã«ã€ããŠããªããªãŒãã³ã§ãã ãã ããclassNameãã©ã¡ãŒã¿ãŒãããèŠçŽ ã®styleãã©ã¡ãŒã¿ãŒã䜿çšããããã®ã¯é¿ããããšæããŸãã
@chrismcvããããšãïŒ
ããæå³ã§ãJSã¹ã¿ã€ãªã³ã°ã¯éåžžã®CSSããã®ãã©ãã€ã ã·ããã§ããããã @ rvbyronãèšããªããã°ãªããªãããšãéèŠã ãšæããŸãã ã»ãšãã©ã®äººã¯æ¥åžžã®ä»äºã§JSã¹ã¿ã€ãªã³ã°ã䜿çšããŠããããå¥ã®èãæ¹ãå¿ èŠã§ã+éåžžJSã«ããŸãçç·ŽããŠããªããããžã§ã¯ãã«è²¢ç®ããå¯èœæ§ã®ãããã¶ã€ããŒã«ãšã£ãŠã¯å°é£ã§ãã
ããã§ãã¹ãŠã®è§åºŠãèæ ®ããããšãéèŠã§ãã
@oliviertassinari @chrismcv
react-look
ã«ã€ããŠç§ãæ°ä»ããã®ã¯ããã¹ãŠã®ã³ã³ããŒãã³ããlook
HoCã§ã©ããããå¿
èŠããããšããããšã§ãã ããã¯ããªã䟵襲çã§ããããã«æããã render()
é¢æ°ããã€ãžã£ãã¯ãã super.render()
ãconst
ã«æ ŒçŽãããã®ããã«ã¹ã¿ã€ã«è§£æ±ºæäœãå®è¡ããŸãã Khan / aphroditeãªã©ã®ä»ã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ã className={}
å
ã®Stylesheet.create()
ããã®styles.xxxx
åç
§ã®é¢æ°ã©ãããŒãå¿
èŠã§ãã
cssã®ããã ãã«render()
é¢æ°ãä¹ã£åãã®ã¯ãç§ã«ã¯éå°ã«èšèšãããŠããããã§ãã ãã®çš®ã®æ·±ãçµ±åãããã¹ã¿ã€ã«æ©èœã®ããã®Reactçµã¿èŸŒã¿ããŒã«/ãµããŒããååšããªãããšãæããŠãããŸããCSSãã«ããŒHoCããã¹ãŠã®ã³ã³ããŒãã³ãã®ã¬ã³ããªã³ã°ãå¶åŸ¡ãããšããèãã«ã€ããŠã¯ããããããŸããã
èãïŒ
ããã«ã¡ã¯ãããªã¢ã«-UIããŒã ïŒ
ãã°ããã®éããªãããã©ããŒããŠããŸãããããã®ãããã¯ãèŠãŠãã€ã³ã©ã€ã³ã¹ã¿ã€ã«ããCSSã«ç§»è¡ããã®ãè¯ãèãã§ããçç±ã«ã€ããŠãèããŠè²¢ç®ããããšæããŸããã ãã®ãªããžããªã§ã¯ãã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ãå/ãã¹ããããèŠçŽ ã®ã¹ã¿ã€ãªã³ã°ãã¡ãã£ã¢ã¯ãšãªãç䌌èŠçŽ ãªã©ãã«ããŒããå€ãã®ãã£ã¹ã«ãã·ã§ã³ãèªãã ã®ã§ããŸã 話ãåã£ãŠããªãä»ã®ããšã«çŠç¹ãåœãŠãŸããããããç§ã¯ãããé¢é£ããŠãããšæããŸãã ãããŠããã¯ã¹ã¿ã€ã«çµç¹ã§ãã ãããç§ãæå³ããããšã§ãïŒ
size={40}
ã¯ãå¹
ãé«ããè¡ã®é«ãã40px
ïŒã¹ã¿ã€ã«ã調æŽããå Žåãå°ãªããšã4ã€ã®ç°ãªãå ŽæïŒðïŒã確èªããå¿ èŠããããããåé¡ã®èª¿æ»ãå°é£ã«ãªããŸãã
ã¹ã¿ã€ã«ã«cssãä»å±ããŠããå Žåã¯ãã»ã¬ã¯ã¿ãŒã衚瀺ãããä¿®æ£ããå Žæãæ£ç¢ºã«ããããŸãã ã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã§ã¯ãç¹å®ã®ããããã£ãã©ãããæ¥ãŠããã®ããã©ãã§äœãå€æŽããå¿
èŠãããã®ãââãç解ããã®ã«æéãããããŸãã ãŸããéçºè
ãééã£ãå Žæã§å€æŽããå ŽåïŒããšãã°ã size
ãã©ã¡ãŒã¿ãŒã§ã¯ãªãstyles
é åã§ã size
ãã¹ã¿ã€ã«ã§ããããšãå®éã«ç€ºããã®ã¯ãªãããïŒã width=height=line-height=40px
ãããã¯å
šäœã®ããã©ãŒãã³ã¹ããŸãã¯width/height/line-height
åæžã蟌ã¿ã«ã€ãªããã size
ãã©ã¡ãŒã¿ãé©çšã§ããªããªããŸãã
ããã«ãã€ã³ã¹ãã¯ã¿ãŒã«è¡šç€ºãããã®ã¯element.style
ã ãã§ãããããç¹å®ã®ããããã£ãé©çšãããŠãã芪èŠçŽ ã調æ»ããããšãå°é£ã«ãªããŸãã
ã¹ã¿ã€ã«ã«ã»ã¬ã¯ã¿ãŒïŒã¯ã©ã¹åïŒãä»å±ããŠããå Žåãã€ã³ã©ã€ã³ã¹ã¿ã€ã«ãããã¹ã¿ã€ã«æ§é ããã现ããå¶åŸ¡ã§ããŸãã
æŽæ°:(ãã®ãããã¯ã«é¢ããïŒææ¡ã«ã€ããŠèšåããã®ãå¿ããŸããïŒ
/component
--component.js
--component.css (or sass that is converted to css when the page is rendering)
ãã®æ§é ã«ãããã³ã³ããŒãã³ããã¹ã³ãŒãå ã«ä¿æãããŸãããã¹ã¿ã€ã«ããã现ããå¶åŸ¡ã§ããŸãã ãŸããBEM classNameèŠåã¯ãäžèŠãªãã¹ããåé¿ããã®ã«åœ¹ç«ã¡ãŸãã
.mui-component {}
.mui-component__child {}
å šäœãšããŠãMaterial-UIã¹ã¿ã€ã«ã®å®è£ ã調æŽãããã³ç¶æã«åœ¹ç«ã¡ãŸãã
@chrismcv
ã¡ãŒã«ãèŠã€ããŠè§£èª¬ã«å ¥ããŠãããŠããããšãïŒ
ããŒãºã«æé©ãªã¹ã¿ã€ãªã³ã°ãã¯ããã¯ãã€ã³ããŒããããšãããåäœãã®æŠå¿µã«ã€ããŠã¯ã©ãã§ããããã ãStyleThemeããŸãã¯ãClassThemeãã®ã€ã³ããŒãã䜿çšããŠãåäœãéžæã§ããŸãã StyleThemeã¯ãmuiThemeãªããžã§ã¯ããããªã¢ã«ãåç §ã§ããŸã-uiã¯ä»æ¥æã£ãŠãããã³ã³ããŒãã³ãäžå¿ã®ã¹ã¿ã€ãªã³ã°éçºè ãæºè¶³ãããŸãã ãŸãã¯ãmuiTheme.jsãªããžã§ã¯ãïŒåæïŒããæ§ç¯ãããSCSSãã¡ã€ã«ã䜿çšããClassThemeã«ãããCSSäžå¿ã®éçºè ãæºè¶³ãããããšãã§ããŸãã ã€ãŸãããã¹ãŠã®ã³ã³ããŒãã³ããã¬ã³ããªã³ã°èŠçŽ ã®{... theme.ComponentName}ã«å¯Ÿå¿ããå¿ èŠããããŸãã
éåžžã«åçŽåãããäŸãæäŸããããã«ãRoundButtonã³ã³ããŒãã³ãã«ã¯æ¬¡ã®ãããªrenderã¡ãœããããããŸãã
render() {
return (<button {...theme.RoundButton} />);
}
StyleThemeåäœã®å Žåãtheme.RoundButtonã«ã¯æ¬¡ã®ãã®ãå«ãŸããŸãã
{
style: {
display: 'inline-block';
borderRadius: '20px';
width: '40px';
height: '40px';
}
}
ClassThemeåäœã®å Žåãtheme.RoundButtonã«ã¯æ¬¡ã®ãã®ãå«ãŸããŸãã
{
className: 'mui-round-button'
}
2ã€ã®çµã¿åããã¯ãClassStyleThemeåäœãtheme.RoundButtonãšããŠååŸã§ããŸãã
{
className: 'mui-round-button',
style: {
display: 'inline-block';
borderRadius: '20px';
width: '40px';
height: '40px';
}
}
mui-theme.scssãã¡ã€ã«ã¯muiTheme.jsãã¡ã€ã«ããçæãããJSãã¡ã€ã«ã«å«ãŸããæ£ç¢ºãªããããã£ãSCSSã«åæ ããŸãã JSåã®ãã£ã¡ã«ã±ãŒã¹ã¯ãããæšæºçãªã¯ã©ã¹åã«å€æãããŸãã
mui-round-button {
display: inline-block;
border-radius: 20px;
width: 40px;
height: 40px;
}
MUIã³ã³ããŒãã³ããžã®CSSã®ã«ã¹ã¿ãã€ãºã¯ãmui-theme.scssãã¡ã€ã«ãããŒããããåŸã«ããŒããããåäžã®ã¯ã©ã¹ã§ãããããmui-themeããããã£ããªãŒããŒã©ã€ããããŸãã
@oliviertassinari
scss
ïŒ+åå空é/ããã·ã¥çšã®cssã¢ãžã¥ãŒã«ïŒã®ãããªãã®ã䜿çšããããšã«ã¯å€ãã®å©ç¹ããããšæããŸãã ããã¯ããªãã100ïŒ
å察ããŠããããšã§ããïŒ ä»äºã§æ
£ããŠããã®ã§å°ãåèŠããããããããŸããããåãè¹ã«ããããã®äººãä¹ã£ãŠããŸãã
JSã¹ã¿ã€ãªã³ã°ã®ç¶æ³ã«é¢ããç§ã®äž»ãªåé¡ã¯ããã¹ãŠã®ãœãªã¥ãŒã·ã§ã³ããŸã é²è¡äžã®ããã«æããããšã§ãã å®éã®ããã©ãŒãã³ã¹è©äŸ¡ã¯ããã»ã©å€ããããŸãããç§ãã¡ãèŠãŠããã©ã€ãã©ãªã¯èšŒæãããŠããããJSã§ã¹ã¿ã€ã«ãé©åã«è¡ãæ¹æ³ãç解ããããã«å€ãã®æéãè²»ãã
ããã«é¢ããŠã¯ãããŸããŸãªæžå¿µããããšæããŸãã
ã¢ããªã±ãŒã·ã§ã³ãäœæããŠãããšãã¯ãã¹ãŠåé¡ãªãããã§ããã³ãŒãå€ã®äººã¯äœãå€æŽããå¿ èŠã¯ãããŸããã
ããããå³æžé€šã§ã¯ç©äºãç°ãªããäžèšã®ãã¹ãŠã®æžå¿µã«å ããŠã次ã®ããšããããŸãã
ç§ãã¡ãä»æã£ãŠãããã®ã¯ãã©ãããããããããã®èŠåã«é¢ããããããã¹ãŠã®æžå¿µãåŠçããŸãïŒ
somethingInsideToTheLeftButSlightlyMiddleFocusHoverActiveStyle
ã¹ã¿ã€ãªã³ã°ã®ã¢ãããŒããå€æŽããå Žåã¯ãããäžåºŠããçŽãå¿ èŠããããŸãã ãã®å Žåã¯ã移è¡ãéå§ããåã«ãå¿ ãããããã¹ãŠã«åçããå¿ èŠããããŸãã
ç§ã®è¬èãªæèŠã§ã¯ãCSSãšããã«ã³ã³ãã€ã«ããããã®ã¯å°æ¥ã®äžéšã§ã¯ãªããšæããŸãã ã€ã³ã©ã€ã³ã¹ã¿ã€ã«ãç§ãã¡ã®ç掻ããã£ãšæ¥œã«ããŠãããããšã«ç§ãã¡ã¯çåæããŠãããšæããŸãã æ£çŽãªãšãããã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã§èŠãããå¯äžã®å¶éã¯:hover
ã§ãïŒ
å°ãèšèšãè¡ãããšã§ããããã®åé¡ã解決ã§ããŸãã
ListItem
ãããã®ã§ããïŒ å解ããŠæ§æå¯èœã«ãããšã somethingInsideToTheLeftButSlightlyMiddleFocusHoverActiveStyle
ãããªæªç©ãè¿œå ããå¿
èŠããªããªããŸãã:hover
ã ãã§ãããã©ãŠã¶ãŒãŸãã¯reactãããã«ã€ããŠäœãããããŸã§ãç§ãã¡ã¯ããã§çããããšãã§ãããšæããŸããç§ã®ãã€ã³ãã¯ãçŸåšã®ã¹ã¿ã€ãªã³ã°ã¢ãããŒãã§ãã§ã«èšå€§ãªæ°ã®æžå¿µã«å¯ŸåŠããŠãããšããããšã§ãã ã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã®ãã¹ãŠã®ãã¿ãŒã³ã«åŸããªããããå¶éããããŸãã ã³ã³ããŒãã³ããå解ãå§ããŠãããæ§æããããããã°ãäœãå¿é
ããå¿
èŠã¯ãããŸããã MeuItem
ãåãç§ã¯ãããåãåºããŠæ§æå¯èœã«ããŸããããããããã«äœ¿ãããããçŽç²ãªã¬ã³ããªã³ã°ã䜿çšããŠããã©ãŒãã³ã¹ãã©ã®ããã«æ¹åã§ããããããããŸãã
ãããã£ãŠãã¢ãããŒããå€æŽããŠããããã¹ãŠã®åé¡ãå床解決ãã代ããã«ããã§ã«æã£ãŠãããã®ãæ¹åããããã«æéãè²»ãããŸãããã ã¡ãã£ã¢ã¯ãšãªããµããŒãããå¿
èŠã¯ãããŸãããä»ã®äººãç°¡åã«å¿çæ§ãå®è£
ã§ããããã«ã³ã³ããŒãã³ããå€æŽã§ããŸãã ãããã°ããã®ã¯é£ããã§ããïŒ ã³ã³ããŒãã³ããå解ãããšãã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã¯å°ãããªããèªã¿ããããªããŸãã ãããè°è«ã®äœå°ãããïŒ ã€ãŸããå¿
èŠãªã®ã¯ã Object.assign
ã«åå ããŠãããã®ã確èªããŠãã¹ã¿ã€ã«ãã©ãããæ¥ãŠãããã確èªããããã®ãã¬ãŒã¯ãã€ã³ãã ãã§ãã
ãã¡ãããããã¯ç§èªèº«ã®æèŠã§ããç§ã¯éåžžã«ãªãŒãã³ã«è°è«ããŠããŸãã
@alitaheri
ããªãã¯ããã€ãã®çŽ æŽããããã€ã³ããäžããŸãã ããããšãã ããçš®ã®ãã€ããªãããœãªã¥ãŒã·ã§ã³ãå¯èœãã©ããçåã«æããŸãã ã©ããªè§åºŠããšã£ãŠããããããã®åé¡ãããããã§ãð
æ¥é±ã¯äœæ¥ããæéããããŸãããã£ãããããŠãè³¢ãã¢ã€ãã¢ãæãã€ãããšãã§ãããã©ããèŠãŠã¿ãŸãããã
å€æŽã®éãæå°éã«æãããã§ã«è§£æ±ºæžã¿ã®åé¡ã解決ããå¿ èŠãããããšã«åæããŸãã ç§ã®é ã®äžã«ã¯2ã€ã®éèŠãªç®æšããããŸãã
ããã«ã€ããŠãã£ãšèããå¿ èŠããããŸãðãããããããã®2ã€ã®ãã€ã³ãã解決ã§ããã°ãç§ãã¡ã®ãœãªã¥ãŒã·ã§ã³ã«æºè¶³ããŸãã
å¥ã®ã©ã³ãã ãªã¡ã¢-ã©ã€ãã©ãªå šäœã§ã€ã³ã©ã€ã³/ jsstyle /ãã®ä»ã®ç¹å®ã®ã³ãŒãèŠåãšãã¶ã€ã³ãã¿ãŒã³ã匷å¶ããèªååãããæ¹æ³ãããã°çŽ æŽãããã§ãããã
ããã¯ããªãã100ïŒ å察ããŠããããšã§ããïŒ
@nathanmarksç§ã¯SCSSã®äœ¿çšã«100ïŒ
å察ããŠããããã§ã¯ãããŸããïŒ è¡ãæ¢ãŸãã§ãã
Reactã®äž»ãªå©ç¹ã®1ã€ã¯ããã©ãŠã¶ãŒã®ã¬ã³ããªã³ã°ã®ç¹ç°æ§ã§ããDOMãæœè±¡åããããšã§ãã
ç§ã®ç¥ãéããReact Core Teamã®é·æçãªç®æšã¯ãã¯ãã¹ãã©ãããã©ãŒã ã³ã³ããŒãã³ããäœæããããã®APIãæäŸããããšã§ãã å®éã圌ãã¯çŸåšãã®æ¹åã«
@alitaheriã«å®å šã«åæããŸãã ãããã®2ã€ã®ã¹ãããããå§ããããšãã§ããŸãã
getStyles
ãã¿ãŒã³ã䜿çšããŠãã ããã@oliviertassinariç§ã¯è¡ãæ¢ãŸãã®çµè«ã«åæããŸã-ããã¯æªæ¥ã§ã¯ãããŸããã ç§ã¯äž»ã«ãJSã¹ã¿ã€ã«ãç§ãã¡ã®ããã«æ©èœãããæ¹æ³ã«ã€ããŠã®äŒè©±ãåºæ¿ããããã«ãããæã¡åºããŸããã ãã®èŸºãã®äœäººãã®äººã ãåé¡ãåãå·»ãããã€ãã®è¯ãã¢ã€ãã¢ãæã£ãŠããããšãç§ã¯ç¥ã£ãŠããŸããðFBã圌ãã®å®éšãšäžç·ã«_å°ããª_å°ã_ã ã£ããããã®ã«ïŒ
ç§ãã¡ãçŸåšæ¡çšããŠããgetStyles()
ãã¿ãŒã³ã«ã¯ãããèªäœã«åé¡ããããšæããŸãã @alitaheriãšç§ã¯ä»æ¥ãJSã¹ã¿ã€ã«ã®ã»ããã¢ãããæ¹åããããã«äœããã¹ããïŒããŒããå«ãïŒïŒã«ã€ããŠããªãè¯ããã£ãããããŸããã ã¡ã¢ãæžãçããæ©äŒããããŸããããææ¥ãããã«æ
å ±ãè¿ä¿¡ããŸãã
æ¥é±ã¯äŒæäžã§ãããã¹ãŠã®ã¹ã¿ã€ã«ãJSããŒã¹ã«ä¿ã¡ãªãããçŸåšã®åé¡ã®è§£æ±ºçãè©Šãäºå®ã§ãã
Reactã¢ã ã¹ãã«ãã ã§åŠãã æèšã«é¢ãããã®æçš¿ïŒhttps://medium.com/@kitze/lessons-learned-at-react-amsterdam-51f2006c4a59#.o12h794orïŒãèªãã§ãã ããããã¬ãŒã³ããŒã·ã§ã³ã®1ã€ã¯ãReactã§ã®ã¹ã¿ã€ãªã³ã°ã®ãœãªã¥ãŒã·ã§ã³ã«é¢ãããã®ã§ãããhttp ïŒ//slides.com/kof/javascript-style-sheets#/ãã®ãã£ã¹ã«ãã·ã§ã³ã®ã¿ã€ã ãªãŒãªãã¬ãŒã³ããŒã·ã§ã³ã
ç§ãèãç¶ããæ瀺çã«è¿°ã¹ãããŠããªãïŒå°ãªããšãç§ãèŠããŠããïŒèŠä»¶ã®1ã€ã¯ãWebã®ã¿ãšWebããµããŒããããã€ãã£ãã«åå¿ããå¿ èŠãããããšã§ãã æå³ãWebã®ã¿ã§ããå ŽåïŒã€ãŸããReact Nativeã¯å¿ é ã§ã¯ãããŸããïŒããã©ãŠã¶ãŒããã§ã«å¹ççãã€å ç¢ã«ãµããŒããã人ã ãéåžžã«ç²ŸéããŠãããã®ã掻çšãããœãªã¥ãŒã·ã§ã³ã¯è¯ãããšã§ãã åå¿ãã€ãã£ãããµããŒãããããšãå¿ é ã§ããå Žåãããã¯ç°ãªãããŒãºãšèŠä»¶ã®ã»ãããéããŸãã ãã¯ãããžãŒã®éžæã劥åãªã©ãè©äŸ¡ããããšãã«ãèããŠèŠããŠããã¹ãããšã§ãã
@hburrows
ãã®ãã¬ãŒã³ããŒã·ã§ã³ãå ±æããŠãããŠããããšãïŒ
@alitaheri
ãã®ãã¬ãŒã³ããŒã·ã§ã³ã§èšåãããŠããlibãèŠãããšæããããããŸããïŒããããã¢ã§ãïŒã ããã¯ç§ãã¡ã«å€ãã®ä»äºãç¯çŽããããšãã§ããŸãã 以åã¯ãããèŠãŠããŸããããæ°ã«å
¥ããªãã£ãããšãããã€ããããŸããïŒããšãã°ããã¹ãŠã®ã³ã³ããŒãã³ããç¬èªã®HoCã§ã©ããããå¿
èŠããããªã©ïŒã ãã ããããã§çºçããŠãŸãã 圌ã¯ããã®ãããªå€æŽãå®è£
ãããšãHoCã䜿çšããã«äœ¿çšã§ããaphrodite
ãèŠãããŸãïŒã
ãŸãã¯ã mixout
æ©èœããjss
ç¬èªã®reactãã€ã³ãã£ã³ã°ããã€ã§ãäœæã§ããŸãã
libã®äœè ããããèšã£ãŠããŸãããããã¯ç§èªèº«ã®èããšäžèŽããŠããŸãðïŒ
ãã ãããã¹ãŠãã¹ã¿ã€ã«ã·ãŒãã§ããããšãçã«ããªã£ãŠããããã§ã¯ãªãããšãç解ããå¿ èŠããããŸãã æãåçãªå€æŽã«ã¯ãã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã䜿çšããå¿ èŠããããŸãã
@nathanmarkså®è£
ã¯ããªãå°ãããéåžžã«ç°¡åã«çµã¿åãããããšãã§ããŸãïŒgrinïŒ
https://github.com/jsstyles/react-jss/blob/master/src/index.js
ãã®ã©ã€ãã©ãªã¯ç§ãã¡ãå©ããããšãã§ãããšæããŸãïŒ+1ïŒ
@alitaheriãããããã ãïŒ
jss
ã«ã¹ã¿ã ãã€ã³ãã£ã³ã°ãããã€ãè©ŠããŠããŸããåãçµã¿ããåé¡/å¶éãããã€ããããŸãã ïŒãã ããã³ã¢ã©ã€ãã©ãªã§ã®äœæ¥ãå¿
èŠã«ãªãå ŽåããããŸãïŒ
Reactã³ãã¥ããã£ã«ã¯ãJavaScriptã¹ã¿ã€ãªã³ã°ãæåã®è§£æ±ºçã§ãããšããäžè¬çãªææ
ãããããã§ãã ãã®ææ
ã¯å€§äžå€«ã§ããç§ã¯ãããæã£ãŠãã人ãã¡ãšæèŠãåããªãããã§ã¯ãããŸããã ãã ããJavaScriptã¹ã¿ã€ãªã³ã°ã®å®è£
æ¹æ³ã¯ãã»ãšãã©ã®å ŽåãCSSéçºè
ã«é¢ä¿ãããŸããã å®è£
ã¯ãã¹ãŠããŸãã«ãé »ç¹ã«å¥œæstyle=/[element property]=
以äžclassName=
ããŠèªåã®ä»äºãããŠãããCSSã®éçºè
ãé²ãããšãã§ããŸãã
以åã®ã³ã¡ã³ãã§ç³ãäžããããã«ããã®2ã€ã¯ããŸãå ±åã§ãããšæããŸãã ã¹ã¿ã€ã«ããããã£ãé©çšããã«ã¯ãåã«åäœã¢ãããŒãããšãå¿ èŠããããŸãã ã©ã€ãã©ãªã¯ãèŠçŽ ãžã®ã¹ã¿ã€ã«ããããã£ã®çŽæ¥é©çšã«å¯Ÿå¿ããå¿ èŠããããŸãããŸãã¯ããããã®ã¹ã¿ã€ã«ããããã£ã§æ§æãããclassNameãäœæããéæ¥çãªã¢ãããŒããèš±å¯ããå¿ èŠããããŸãã éçºè ãåäœãéžæã§ããã©ã€ãã©ãªã¯ãçæ³çãªãœãªã¥ãŒã·ã§ã³ã®ããã§ãã
CSSéçºè ãåã«ã¢ãããŒããæšãŠãããªãçç±ã¯ãããããããŸãã ãcssã䜿çšããçç±ããæ€çŽ¢ããŠã人ã ããããæçã§ãããšèããçç±ã確èªããŠãã ããã ã¹ã¿ã€ã«ã®æœè±¡åãšåŒ·åãªã»ã¬ã¯ã¿ãŒèšèªããã®å©ç¹ã®1ã€ã§ããããšãããããŸãã CSSãŠãŒã¶ãŒã«å©çãããããä»æ¥ååšããèšå€§ãªéã®ã³ãŒããå¿ããªãã§ãã ããã
ç¹°ãè¿ãã«ãªããŸãããããã¯æ±ºããŠããã®CSS解説ãæå³ãããã®ã§ã¯ãããŸããã ã¹ã¿ã€ãªã³ã°ã«CSSã䜿ããããšãã人ãããŸãã ãã®ã³ã¡ã³ãã¯ãéçºè ãéžæã§ããããã«ãããã¢ãŒããã¯ãã£çã«ãã¥ãŒãã©ã«ãªã¹ã¿ã€ãªã³ã°ã¢ãããŒãã奚å±ããããšãç®çãšããŠããŸãã
@rvbyronçŸåšã®ã¢ãããŒããå€æŽãããäž»ãªçç±ã®1ã€ã¯ãcssã䜿çšããŠã³ã³ããŒãã³ããç°¡åã«ã«ã¹ã¿ãã€ãºã§ããããã«ããããšã§ãã jss
ãããªã©ã€ãã©ãªã䜿çšãããšãjsã¹ã¿ã€ã«ãå©çšããªããcssæ©èœã䜿çšã§ããããã«ãªããŸãã ãããŠããããã®ã¹ã¿ã€ã«ãcssã«å€ããã®ã§ãéã!important
ããã¯ãªãã§ãè¿œå ã®ã¯ã©ã¹åã§ç°¡åã«ãªãŒããŒã©ã€ãã§ããŸãã
@alitaherièããŠ
ç¹°ãè¿ãã«ãªããŸãããclassNameã¢ãããŒãã«ã€ããŠèãã®ã¯çŽ æŽãããããšã§ãã ããã念é ã«çœ®ããŠãã©ã®ããã«å®è£ ãããã«ã€ããŠããã€ã質åããããŸãã
@rvbyron
çæ³çã«ã¯ïŒ
ã«ã¹ã¿ãã€ãºå¯èœãªãã¬ãã£ãã¯ã¹ã éçºãšã¯ã¹ããªãšã³ã¹ãåäžãããããã®ããçš®ã®ããã·ã¥è¡šèšãšãã«ã¹ã¿ã ããŒãIDã䜿çšããŠåºå®æååã«èšå®ã§ããïŒããŒãèšå®ãå€æŽãããŠãå€æŽãããªãïŒããã·ã¥ãµãã£ãã¯ã¹ã åé·æ§ã®äœããããã¯ã·ã§ã³ãªãã·ã§ã³ããŸãã¯ã«ã¹ã¿ãã€ãºããã³ãŒã«ããã¯é¢æ°ãå«ãŸããŸãã ãããŠãã«ãŒãäžã®ã¯ã©ã¹ã¯éåžžããšã«ããåžžã«å¿ èŠã«ãªããšæããŸãã
èšèŒãããŠããèŠä»¶ãææ¡ã¯ãããããããšæããŸãã ããã§ããã®è°è«ã®ãã¹ãŠããã®æã¡åž°ãã¯ãããŸããïŒ æ¬¡ã®è¡åæ¹éã¯äœã§ããïŒ ãã®material-uiã«react-jssãå®è£ ããããã«è¡ãããŠããäœæ¥ã¯ãããŸããïŒ
@rvbyronãããç§ãã¡ã¯èå°è£ã§ããã€ãã®å€§ãŸããªã¢ã€ãã¢ãè©ŠããŠããŸãã ããå ·äœçãªã¢ã€ãã¢ãåŸããããããã®åé¡ãæŽæ°ããŸãã
ç§ã®è¬èãªæèŠã§ã¯ãCSSãšããã«ã³ã³ãã€ã«ããããã®ã¯å°æ¥ã®äžéšã§ã¯ãªããšæããŸãã ã€ã³ã©ã€ã³ã¹ã¿ã€ã«ãç§ãã¡ã®ç掻ããã£ãšæ¥œã«ããŠãããããšã«ç§ãã¡ã¯çåæããŠãããšæããŸãã æ£çŽãªãšãããã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã§ç§ãç®ã«ããå¯äžã®å¶éã¯ïŒhoverïŒã§ãã
åé¡ã¯ãïŒhoverãã¹ã¿ã€ã«ã®éåžžã«åºæ¬çã§éåžžã«éèŠãªéšåã§ãããšããããšã§ãã æªæ¥æŽŸã¯ããŠããããã€ãã£ãæ©èœãåå®è£ ããããã«ããŒããšåé¿çã«é Œããªããã°ãªããªããœãªã¥ãŒã·ã§ã³ãžã®ææå°æ©ãªã³ãããã¡ã³ããåé¿ããããšãè³¢æãããããŸããã
@wtgtybhertgeghgtwtg :hover
ãªã©ã®æ©èœããµããŒããããããã«ãå®éã®ã¹ã¿ã€ã«ã·ãŒãã䜿çšãããœãªã¥ãŒã·ã§ã³ã«åããŠåãçµãã§ããŸãã
äž»èŠãªãã€ã³ãã決å®ãããŠããããšãèãããšïŒclassNameãšã«ãŒãèŠçŽ classNamesãä»ããJSSã¹ã¿ã€ãªã³ã°ïŒãmaterial-ui v0.16.0ãªãªãŒã¹ã®ããŒãããããšã¿ã€ã ã©ã€ã³ã¯ãããŸããïŒ
@rvbyronçŽæãããã¿ã€ã ã©ã€ã³ã¯ãããŸãããã
@newogaããããšãããŒã«ïŒ ã¢ããããŒãã«æè¬ããŸãã ãã®ä»ã®åé¡ã«ã€ããŠã¯ãclassNameããŒã¹ã®ã·ã¹ãã ã«ç§»è¡ããã ãã§ãå€ãã®äººã«ãšã£ãŠèŠèŠçã«å€§ããªå€åã«ãªãå¯èœæ§ãããããšãä»ãå ããããšæããŸãããã®ãªãªãŒã¹ãããã ãã«éå®ããããšããå§ãããŸãã ããã«å ããŠä»ã®å€æŽãå®éã«ç§»è¡ã劚ããå¯èœæ§ããããŸãã ããããç§ã¯ããªãã®ããŒã ãæè¯ã®ãã©ã³ã¹ãéžã¶ããšãç¥ã£ãŠããŸãã
@newoga over here jssã¯ãmaterial-uiã®ã¹ã¿ã€ãªã³ã°ã·ã¹ãã ã®æªæ¥ãšããŠåŒã³åºãããŠããŸãã ããã¯ã16.0ã®ãªãªãŒã¹ãèŠè¶ããŠãä»ã®äººãä»ãããããžã§ã¯ãã«jssããªã³ããŒãã£ã³ã°ãå§ããããšãã§ããã»ã©å ·äœçãªèšç»ã§ããïŒ
@sorahnã¯ãŸã
@sorahnãã®åé¡ã¯ã解決ãéåžžã«é£ããåé¡ã«ã€ããŠã³ãã¥ããã£ãããã£ãŒãããã¯ãåŸãããã«èšèšãããŠããŸãã å ¬åŒã®æ±ºå®ã¯ãªãããŠããŸããã ä»ã®ãšããã誰ããèªåãšèªåã®ãããžã§ã¯ãã«æé©ã§ãããšè©äŸ¡ããã¹ã¿ã€ã«ã©ã€ãã©ãªãŸãã¯ã¢ãããŒãã®ã¿ãéžæããŠäœ¿çšããå¿ èŠããããŸãã
ã¡ãªã¿ã«ããã®ã¹ã¿ã€ãªã³ã°å€æŽã®ç®æšã¯ãå šå¡ãå¥ã®æšæºã«ç§»è¡ããããšã§ã¯ãªãã䜿çšããã¹ã¿ã€ãªã³ã°ã¢ãããŒãã«é¢ä¿ãªããMaterial-UIã³ã³ããŒãã³ãã®äœ¿çšãšã¹ã¿ã€ãªã³ã°ã容æã«ããããšã§ãã
tl; drãããïŒ ä»ã®èª°ããèšãããšã§ã¯ãªããããªãã«ãšã£ãŠæåã®ããšãããŠãã ãã:)
@nathanmarks @newogaæŽæ°ããŠããã ãããããšãããããŸãïŒ
ã¬ã¹ãã³ã·ããã¶ã€ã³ãšãã¹ãŠã®ã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã§ã®ãµãŒããŒåŽã¬ã³ããªã³ã°ã®å¶éã«çŽé¢ããŠããããã代æ¿æ¡ã調æ»ããŠããŸãã ïŒsïŒcss-modulesãcsxãªã©ã«ã€ããŠç¹ã«åŒ·ãæèŠã¯ãããŸããããç§ãã¡ã¯material-uiã倧奜ããªã®ã§ãçãããããããšããŠããããšããã¹ãŠãã©ããŒããã®ã¯çŽ æŽãããããšã§ã:)
ç§ã¯ã¡ãã£ã¢ã¯ãšãªã«ééãããã®ã¹ã¬ããïŒããã³ä»ã®ã¹ã¬ããïŒãèªã¿ãŸããã ç§ã¯ããã€ãã®æœåšçãªè§£æ±ºçãšèšäºã«é£ã³èŸŒã¿ãŸãã
ç§ã¯JSS + CSXãœãªã¥ãŒã·ã§ã³ãæ¬åœã«å¥œãã§ãïŒéçºè ã®_åã³_ã®èŠ³ç¹ããïŒã
JSSã®ã¡ãªãããšããã©ãŒãã³ã¹
@sorahnãšåæ§ã«ãç§ã¯material-uiæšæºãæ¡çšã§ããã°å¹žãã§ãããã®æ¹åã§
@rosskevinç§ãã¡ã話ããŠããããã«ããã«åãçµãã§ããŸã-ãããŸã§ã®ã©ã®ãœãªã¥ãŒã·ã§ã³ã§ãã«ããŒãããŠããªããããã§èæ ®ãã¹ãããšããããŸãã
ç§ãã¡ã®èŠä»¶ã¯ãèšèšäžã®å¶éãæèŠã®ããã«ãæ¢åã®ãœãªã¥ãŒã·ã§ã³ããµããŒãã§ãããããã¯ããã«åºããã®ã§ãã ããã¯äž»ã«ãæ¢åã®ãœãªã¥ãŒã·ã§ã³ããã³ã³ããŒãã³ãAPIã®æ¶è²»ãå®å šã«å¶åŸ¡ã§ããã¢ããªã念é ã«çœ®ããŠéçºãããŠããã®ã«å¯ŸããããŸããŸãªããŒã«ã䜿çšããŠã³ã³ããŒãã³ãã®ã¹ã¿ã€ã«ãèšå®ãããããŸããŸãªãŠãŒã¶ãŒãããã©ã€ãã©ãªãåå ã§ãã
@sorahnç°¡åãªè³ªå-ãµãŒããŒåŽã¬ã³ããªã³ã°ã®ãã³ããŒãã¬ãã£ãã¯ã¹ã«ã€ããŠäœãããŠããŸããïŒ ãµãŒããŒäžã®ãã¹ãŠã®ãã¬ãã£ãã¯ã¹ãã¬ã³ããªã³ã°ããŠããã ãã§ããïŒ ãããšãUAãééããŠããŸããïŒ
@nathanmarksãŠãŒã¶ãŒãšãŒãžã§ã³ãããã©ãŠã¶ã«éä¿¡ããŠããŸãããå人çã«ã¯ããã«äŸåããã®ã¯å¥œãã§ã¯ãããŸããã ãããããã¹ãŠããã©ã«ãã§é 眮ããmuiThemeãªããžã§ã¯ãã®å°éå ·ãä»ããŠãããããªãŒããŒã©ã€ãã§ããããã«ãããããŸãã¯ãã®éã§ãããã©ã«ãã§ã¯äœãè¡ããããªããã€ã³ã§ããããã«ããã®ã¯ã©ãã§ããããã
muiTheme: {
// other stuff...
stylePrefixes: ['webkit', 'moz', 'ms']
}
@sorahnãã¬ãã£ãã¯ã¹ã§ã¯ãªããã¬ãã£ãã¯ã¹ãä»ãããã all
ãæž¡ããããUAãæž¡ããããããªã©ã奜ããªããšãè¡ãããšãã§ããŸãã
@ nathanmarksjss @ 4.0.0ããªãªãŒã¹ããŸããã æãéèŠãªå€æŽ-決å®è«çIDã®çæãããã¯reacthttp ïŒ //jsstyles.github.io/examples/index.htmlã䜿çšããssrã®äŸã§ãã
ããã«$ .02ãæå ¥ããã ãã§ã...ã€ã³ã©ã€ã³ã¹ã¿ã€ã«ãšã¢ãããã£ãŒãã®ã¢ã€ãã¢ã¯æ¬åœã«æ°ã«å ¥ã£ãŠããŸãããã¹ã¿ã€ã«ãããŒãã¹ãã©ãã4ã®ãããªscssã®ã©ã€ãã©ãªåœ¢åŒã«åºã¥ããŠããæ¹ãç°¡åã ãšæããŠããŸãã
ç§ãéåžžè¡ãããšã¯ã_mixins.scssãã¡ã€ã«ãäœæããªããbootstrap.scssãã¡ã€ã«ãš_variables.scssãã¡ã€ã«ãæåéãã³ããŒããããšã§ã...ãã®ã³ããŒã./lib/styleã®äžã«çœ®ããããŒã«ã«ã®bootstrap.scssãã¡ã€ã«ãæŽæ°ããŠããŒã«ã«ãåç §ããŸãä»ã®ãã¹ãŠã®node_modulesã®ããŒãžã§ã³ãžã®ãã¹ã䜿çšããªãããå€æ°ãšããã¯ã¹ã€ã³...
次ã«ãã/ lib / styleãsassLoaderæ§æã®æ€çŽ¢ãã¹ã®äžéšã«ããããã«webpackæ§æãã»ããã¢ããããŸãã
ãã®ããã«ããŠãããŒãã¹ãã©ãããªã©ãããŒãããmain.scssãã¡ã€ã«ãäœæã§ããŸãããããããããžã§ã¯ãã®æ®ãã®éšåã§å€æ°ãããã¯ã¹ã€ã³ãåç §ã§ããŸããåºåããã«ã/ãã³ãã«ããå Žåãé©åãªã¹ã¿ã€ã«ã¯æ¬¡ã®ãšããã§ããå«ãŸããŠããŸãã
ããã®æ¬ ç¹ã¯ããããªã¢ã«UIããœãŒã¹ïŒãã«ãåã§ã¯ãªãïŒãšããŠäœ¿çšããscssããã³ãã«ã«å«ããããã®webpackã䜿çšããããšãèŠå®ããããšã§ãã ããã¯èšã£ãŠããæ¢åã®å€æ°ãã¯ã©ã¹ãã¹ã¿ã€ãªã³ã°ããã¯ã¹ã€ã³ã䜿çšããã®ãããããæãç°¡åãªæ¹æ³ã§ãããã
ç¹°ãè¿ãã«ãªããŸãããç§ã¯JSã¹ã¿ã€ãªã³ã°ã®ã¢ã€ãã¢ãæ¬åœã«å¥œãã§ãã¢ãããã£ãŒããæäŸãããã®ã奜ãã§ã...ã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã®ã¹ã¿ã€ãªã³ã°ã©ã€ãã©ãªãšåæ§ã®ïŒããŒããšåŒã¶äºå®ã§ãïŒäœæ¥ãè¡ã£ãŠããŸããããã¢ãããã£ãŒãã¯ãã§ã«ãã¹ãŠãè¡ã£ãŠããŸãèšç»ãããŠãããªã©ã
ã¹ã¿ã€ãªã³ã°ãœãªã¥ãŒã·ã§ã³ã¯å®æããŠããŸããïŒ
ããã«é¢ããæŽæ°ã¯ãããŸããïŒ
ã¯ãã next
ãã©ã³ãã¯jss
ãã®ãããžã§ã¯ãã«åºããããã°ããã§ãããèŠæ ããããããµã³ãã«ããŒãžã§ã¯ã³ã³ããŒãã³ãã®äœ¿çšæ¹æ³ãéåžžã«ç°¡åã«ããããåºã䜿çšãããŠããããã«èŠããã®ã§ãéåžžã«è奮ããŠããŸããã ããããç§ã¯ã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã«éåžžã«å€±æããŠãããçãããã€ã³ã©ã€ã³ã¹ã¿ã€ã«ããé¢ããŠããã®ãèŠãŠããããã§ãã ç§ãææãããããšã®1ã€ã¯ããããã®ã³ã³ããŒãã³ãã®å€åŽã®ã¬ã€ã¢ãŠãã«é¢ä¿ãããã®ã¯ãã¹ãŠåé€ãã芪ã³ã³ããŒãã³ãã®ã¹ã¿ã€ãªã³ã°ã«ãããåŠçãããå¿ èŠããããšããããšã§ãã æäžäœã¬ãã«ã®ã³ã³ããŒãã³ãã«ã¯ãåšå²ã®èŠçŽ ãæŒãã®ãããããªããŒãžã³ãããã£ã³ã°ããªãããã«ããå¿ èŠããããŸã...ç¹ã«ãã€ã³ã©ã€ã³ã¹ã¿ã€ã«ãããããã«ãªãŒããŒã©ã€ãããããšã¯ã»ãŒäžå¯èœã§ãããããæãäžããŠå®è¡æ¹æ³ãèŠã€ããå¿ èŠããããŸããããã æ®å¿µãªããããã®ãããžã§ã¯ãã¯äœ¿çšã§ããªããšæã£ãã®ã§ããã®ãããžã§ã¯ãã«ã€ããŠã¯ããŸãæãäžããŠããŸããã ç§ã¯ç¢ºãã«ã€ã³ã©ã€ã³å¯ŸCSSã¹ã¿ã€ãªã³ã°ã®å€ãã®è°è«ãèªã¿ãŸããã ãšã«ãããããªãã¯TextFieldã§ç§ã倱ããŸããã äžã«14pxãäžã«16pxã®ããŒãžã³ããããŸãã ããããªãŒããŒã©ã€ãããããã«åçŽãªã¹ã¿ã€ã«ãæžãããšã¯ããŸãæ°ã«ãªããŸããããã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã®ããã«ããã¯äžå¯èœã§ãããã³ã³ããŒãã³ããdivã§ã©ããããå Žåã®ããã«ããããéã«ããããã ãã«é«ã¬ãã«ã®ã³ã³ããŒãã³ããäœæããå¿ èŠãããã®ã¯å®å šã«ã¯ã¬ã€ãžãŒã§ãããŒãžã³ãå®è¡ããïŒ-14px 0 -16pxãŸãã¯èšç®ã§å°ã調æŽããŸãããäœããã®æ¹æ³ã§ãããä¿®æ£ããå¿ èŠã¯ãããŸããã ãã§ã«è¡ã£ãŠããããã«classNameãå°éå ·ãšããŠæž¡ãããšãèš±å¯ããŠãã³ãã¥ããã£ãæãæ¹æ³ã§ã¬ã€ã¢ãŠãã¹ã¿ã€ã«ãã³ã³ããŒãã³ãã«é©çšã§ããããã«ãããšãããã«å¥œãŸããŸãã ãšã«ãããããã¯ç§ã®$ .02ã§ãã
ããã«å ããŠããããã®ã¬ã€ã¢ãŠãã¿ã€ãã®ã³ã³ããŒãã³ããäœæããããã¬ã€ã¢ãŠãããããã£ãåŠçããããã®è¿œå ã®å°éå ·ãäœæãããããããšã¯ããã¡ã³ããŒã·ã§ã³ãããŒãã¹ãã©ããã®ãããªã°ãªããã·ã¹ãã ã䜿çšãããªã©ã®çæ³çãªå ŽåããããŸãã ããšãã°ããµã€ãºãã¬ã¿ãŒãå¹ ãåãªã©ã®å°éå ·ã䜿çšããŸãããã³ã³ããŒãã³ãã§è¡šç€ºããããã®ã®å€åŽãã¹ã¿ã€ãªã³ã°ããªãããšããå§ããŸãã
ç§ã¯å®å šã«@ jbsmith969ãšäžç·ã§ã
ã³ã³ããŒãã³ããdivã§ã©ããããŠããŒãžã³ãå®è¡ããå Žåã®ããã«ããããéã«ããããã«ãããé«ãã¬ãã«ã®ã³ã³ããŒãã³ããäœæããå¿ èŠãããã®ã¯ãç§ã«ãšã£ãŠå®å šã«ã¯ã¬ã€ãžãŒã§ãïŒ-14px 0 -16pxãŸãã¯ãèšç®ã§å°ã調æŽããŠãåžæã©ããã«ããŸã
@ jbsmith969äœã¬ãã«ã®ã³ã³ããŒãã³ãã«ã¬ã€ã¢ãŠãããžãã¯ãå«ããã¹ãã§ã¯ãªãããšã«åæããŸãã ãã ããã¢ããªã®ç¹ç°æ§ã®ããã«é«åºŠã«æœè±¡åãããã³ã³ããŒãã³ããäœæããããšã¯ããŸã£ããããããªããšã«èãããŸããã
IMHOãããã¯Reactãå¯èœã«ããæã匷åãªãã¿ãŒã³ã®1ã€ã§ãïŒåé¢ããããã£ã®ãããã§ïŒã
@oliviertassinari @ jbsmith969ãŸãã«ãããç§ãã¡ãããããšã§ãïŒ 2ã€ã®ãã©ã¡ãŒã¿ïŒãã£ãŒã«ãåãšè²ïŒã®ããã«æž¡ãCustomTextField
ã³ã³ããŒãã³ããäœæããŸãããããã¯ããããã®åšãã«ã»ãã®å°ãã®ããžãã¯ãå®è¡ãã material-ui/TextField
ãã¬ã³ããªã³ã°ããŸãã欲ããã§ãã
ããã¯ãã£ãšäžã®ã³ã³ããŒãã³ãã§ãïŒ
ãããã£ãŠãreactã䜿çšããŠãhtmlãååŸããŠjsã«å ¥ããŸããããã¯ãåé¡ãªãããã³ãã£ã§ãã ããããç§ãã¡ã®cssãåãããããç§ãã¡ã®htmlã«æŒã蟌ãã®ã§ããïŒ ããã¯ä»ã®èª°ããšããŸã座ããŸãããïŒ
ãµã¹ããé¢ããããšã®å©ç¹ã¯äœã§ãããïŒ
æãªããã®ç§ãåŒãã§ãã ããããããç§ãã¡ã®js / htmlãšcssãå¥ã ã«ä¿ã€ããšã®äœããããªã«æªãã®ã§ããïŒ
ç§ã¯åæ³çã«ããã§ããã€ãã®çããæ¢ããŠããŸã...
https://github.com/callemall/material-ui/issues/3614#issuecomment -249095805ã«é¢é£ããŠãã¹ã¿ã€ãªã³ã°ã¯åã«ã³ã³ããŒãã³ãã«ãªããŸãã
CSSã¯ã©ã¹ã¯æ°ããã³ã³ããŒãã³ãã ãšæããŸã:(äŸïŒ btn-danger
-boostrapã®ããã«ïŒ
const DangerButton = ({ hoverColor, style, ...others }) => {
return (
<MUI.FlatButton
hoverColor={hoverColor || Colors.pink100}
style={{ color: Colors.black, ...style }}
{...others}
/>
);
};
ãããã移è¡ã¯èŠçã§ãã
ïŒ @ jbsmith969ã®å ŽåãMUIã¯ãããªã¢ã«ãã¶ã€ã³ã®ä»æ§ã«åŸããŸããä»æ§ã«åŸããªãå Žåã¯ãäœããã®åé¿çã
@vizathrightç§ã¯ééããªãåãèããæã£ãŠããŸãã ãããããã®ãœãªã¥ãŒã·ã§ã³ã®å©ç¹ã¯äœã§ããïŒ
å°ãªããšãCSSãšåãããã«å®éã«æ©èœãããœãªã¥ãŒã·ã§ã³ãããã°ããããè©ŠããŠã¿ãããšãæ€èšããŸãã ããããçŸåšãèŠåãªãã«ãããè¡ãããšãã§ããïŒç§ãç¥ã£ãŠããïŒè§£æ±ºçããªãã®ã§ãç§ã¯å®éã«ã¯é ç¹ãèŠãŠããŸããã
ãªããã®ãªããžããªã¯ããœãªã¥ãŒã·ã§ã³ã®ã¢ã«ãã¡æ®µéã®ã¢ã€ãã¢ãšæããããã®ããä»ã®ç¹ã§ã¯éåžžã«æçšãªã³ãŒãããŒã¹ã«æ¡çšããããšããŠããã®ã§ããïŒ ç§ãã¡ã¯ãŸã ããã¯ãæã£ãŠãããšã¯æããŸããããããããã®ããã¯ã®é©åãªãã¹ããããã ãšã¯æããŸããã
@nathanmarks JSSã䜿çšããŠã³ã³ããŒãã³ãã®ã¹ã¿ã€ã«ããªãŒããŒã©ã€ãããæ¹æ³ã«ã€ããŠã¢ããã€ã¹ã§ããŸããïŒ next
ã®ææ°ã®ã³ãŒãã䜿çšããŠããŸã
ç·šéïŒããŠãããããŸã å®å šã«å®è£ ãããŠããªãããšãç解ããã ãã§ãã ç§ã®æªãïŒ ð¬
ãªããžã§ã¯ãããŒã®ãããã³ãŒããæé€ããè¯ãæ¹æ³ã¯ãŸã èŠã€ãããŸããã§ãããJSSã§ã¯ããªããžã§ã¯ãã䜿çšããŠã¹ã¿ã€ã«ãä¿åããå¿ èŠããããŸãã
next
ãã©ã³ãã®ã³ã³ããŒãã³ãã®ã©ã³ãã ãªäŸïŒãŸã å®äºããŠããŸããïŒïŒ https ïŒ
primary
accent
ã¯ã©ã¹ãš
åãçç±ã§ã以åã¯MUIãã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã管çããŠããæ¹æ³ã奜ãã§ã¯ãããŸããã§ããïŒã¹ã¿ã€ã«ãåå¥ã«å®çŸ©ãããŠããå Žåãlintã¯æªäœ¿çšã®å€æ°ããã£ããããŠããŸãããhttpsïŒ//github.com/callemall/material-ui/blob/ãåç §ããŠãã ããïŒ 60a202fdc9645aa00f20c52e5152f168a1b0031b / src / IconButton / IconButton.jsïŒL26ïŒã
ãµã¹ããé¢ããããšã®å©ç¹ã¯äœã§ãããïŒ
@gdauntonã€ã³ã©ã€ã³ã¹ã¿ã€ã«/ sassã¢ãããŒãã䜿çšããªãããšã«é¢ããŠããªãã
ãŠãŒã¶ãŒã®èŠ³ç¹ããã¯ã次ã®æ¹åãæäŸãããŸãã
ã³ã³ããªãã¥ãŒã¿ãŒ/ã¡ã³ãããŒã®èŠ³ç¹ããã次ã®æ¹åãæäŸãããŸãã
ãã®ã¬ããã¢ã«ãã¡ã¹ããŒãžã®ã¢ã€ãã¢ãšæããããã®ãæ¡çšããããšããŠããã®ã¯ãªãã§ãã
ã¢ã«ãã¡ã¹ããŒãžã®ã¢ã€ãã¢ã®æå³ã«ãã£ãŠç°ãªããŸãã
ãã®ã¢ãããŒãã䜿çšããã®ã¯ç§ãã¡ã ãã§ã¯ãããŸããã äŸïŒAirBnBãã«ãŒã³ã¢ã«ãããŒãReactNativeã
å°ãªããšãCSSãšåãããã«æ©èœããŸãã
CSSã¯ãã³ã³ããŒãã³ãã§ã¯ãªããããã¥ã¡ã³ãã®ã¹ã¿ã€ã«ãèšå®ããããã«æåããèšèšãããŸããã
ããã¯ç§ãã¡ã®æ¥çã®å€§ããªå€åã§ãã
ç§ã®èŠ³ç¹ããã¯ãããã¯ã¹ã¿ã€ãªã³ã°ã³ã³ããŒãã³ãã«ã²ã©ãã§ãã
Webä»æ§ã®èåŸã«ãã人ã
ã¯ãã®åé¡ãããç¥ã£ãŠãããããŒã«ã«ã¹ã³ãŒãã¹ã¿ã€ã«ã®_WebComponents_ã§å¯ŸåŠããããšããŠããŸãã
CSSã®æ¹åãšã³ã³ããŒãã³ãããŒã¹ã®ã¹ã¿ã€ã«ã®äœæãäžå¿ã«ReactããªãªãŒã¹ãããŠä»¥æ¥ãããããã¹ãŠã®æ°ãããããžã§ã¯ãã«æ°ã¥ããŸãããïŒ
ã¯ãã次ã®ãã©ã³ãã¯jssã䜿çšããŠããŸã
@nathanmarksãã®å€æŽã«è¿œãã€ãããã«ã©ãã«è¡ãã°ããã§ããïŒ
èŠã€ãããŸããïŒ https ïŒ
@bramickã¯ã0.15.0ããéå§ãããŠåäœããŠããããnext
ã«ã€ããŠã§
ããããŸãããããã§ç§ã¯äœãæ°ããããéããŠããŸã...誰ãïŒ
@bramick next
ã¯ãŸã å®å
šã«ææžåãããŠããŸããïŒãã ããææžåãµã€ãã¯ãããŸãïŒã ä»ã®ãšããããœãŒã¹ãèªãå¿
èŠããããããã¥ã¡ã³ããµã€ãã®ãœãŒã¹ã³ãŒããåç
§ããŠããããã©ã®ããã«æ©èœãããã確èªã§ããŸãã ããã®ããã€ãã¯ãŸã åãæšçãããããªãããšããã ç解ããŠãã ããã
@oliviertassinariãããŒïŒ 綿å¯ãªå¯Ÿå¿ã«æè¬ããŸãã
ç§ãå®å šã«åæãããšã¯èšããŸããããããªãã¯ç§ãæã£ãŠããããã€ãã®è³ªåãåæçã«ã¯ãªã¢ããŸããã
ç§ã¯åæããŸããç§ãã¡ã¯ç§ãã¡ã®ã¹ã¿ã€ã«ãã³ã³ããŒãã³ãããŒã¹ã§ããäžçã«åãã£ãŠåãã¹ãã§ãïŒãããŠããã§ãïŒããããŠcssã¯ãã®ããã«çŽ æŽããããã®ã§ã¯ãããŸããã ããããïŒç§ã®æèŠã§ã¯ïŒããã倧èŠæš¡ã«æ¡çšããåã«ã解決ãã¹ãããã€ãã®ããããŸã ãããŸãã
ç§ã¯èå³ããããŸããããããšæšæºã®cssã®éã«ããã©ãŒãã³ã¹ã®éãããããã©ããã確èªãã人ã¯ããŸããïŒ ç§ã¯cssããŸã javascriptã§åªäœã«ç«ã£ãŠããããã«æããŸãã ããŒãããåŸããã¹ã¿ã€ã«ãçæããŠæ¿å ¥ããå¿ èŠããããŸãã
@gdauntonã¯ã httpsïŒ//github.com/cssinjs/jss/blob/master/docs/performance.mdã§jssã®ããã©ãŒãã³ã¹ã«ã€ããŠèªãã§ã
ããã¯ãã¬ã³ããªã³ã°ãããããŒãžã«è¿œå ãããæšæºã®cssã§ãããã³ã³ããŒãã³ãå
ã§äœæãããŸãã next
ãã©ã³ãã䜿çšããŠããŸãããéåžžã«ããŸãæ©èœããŠããŸãã
@newogaããªããèšåããŠãããã®ãžã®ãªã³ã¯ãç§ã«éã£ãŠãããŸãããïŒ
@bramick OMGïŒ ãšãŠãç°¡åã§ãããïŒ ããšãã°ã next
Buttonã«ã€ããŠã¯ããã¡ããã芧ãã ããã
JSXãæåããåŸãJavaScriptãã¡ã€ã«å ã«CSSãé 眮ããããšã®é åã¯ç解ããŠããŸãããã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãŠã®CSSã§åãããšãè¡ãã®ãè¯ããã©ããã¯ããããŸããã JSSã«ã¯ãããšãã°è¶ è€éãªåçã¹ã¿ã€ã«ãæ±ãå Žåãªã©ãããã€ãã®åªãããŠãŒã¹ã±ãŒã¹ãããããšãç§ã¯ç¥ã£ãŠããŸãã
ç§ã®æ倧ã®æžå¿µã¯ãã¹ã¿ã€ã«æ
å ±ãã³ã³ããŒãã³ãå®çŸ©ãä¹±éã«ããããšã«ãªããšããããšã§ãã JavaScriptãªããžã§ã¯ãã§è¡šçŸãããCSSã¯ãã¯ããã«åé·ã§æŽçãå°é£ã§ãã ããšãã°ãåã®æçš¿ã§åç
§ããButton
ã³ã³ããŒãã³ãã§ã¯ãã³ãŒãã®ã»ãŒååãã¹ã¿ã€ã«æ
å ±ã§ãã é¢å¿ã®åé¢ã¯ãããããŸããã ã¹ã¿ã€ã«ã³ãŒããå¥ã®ãã¡ã€ã«ã«ç§»åã§ããããšã¯ç¥ã£ãŠããŸãããããããJavaScriptã§ããã䜿çšããŠãæå³ããããŸããã
éçºè ã«ãšã£ãŠæ倧ã®æ¬ ç¹ã¯ãCSSããããã£ãšãã®å€ã«é¢ãããã¹ãŠã®ã€ã³ããªã»ã³ã¹æ å ±ã倱ãããããšã§ãã å®éãCSSããªããã»ããµãæ£ãã䜿çšããã°ããã®åªããã³ãŒãæ§é ãšè¡šçŸåããã¹ãŠæ°ã«å ¥ã£ãŠããŸãã
ãããããå€ãã®äŸ¡å€ãããããã®ã§ããã°ããããžã§ã¯ãã«è€éããå ããŠãããŸããŸããã ãã®ãããè¿œå ã®CSSãªã³ã¿ãŒãããªããã»ããµãŒãããŒããŒãããã³åŠç¿ããå¿ èŠã®ããè¿œå ã®æ§æãæ°ã«ããããšã¯ãããŸããã§ããã ç§ãJSSã«ã€ããŠãªãŒãã³ã§ããç¶ããããšããŠããŸããããã¯æåã®å€èŠ³ã®åŸã§ãããç§ãçŽåŸãããªãã£ããšããããšã ãã§ãã
ç§ã®æ倧ã®æžå¿µã¯ãã¹ã¿ã€ã«æ å ±ãã³ã³ããŒãã³ãå®çŸ©ãä¹±éã«ããããšã«ãªããšããããšã§ãã
ããã¯å®å šã«ããªã次第ã§ãããã³ãŒããã©ã®ããã«ç·šæãããã«ãã£ãŠç°ãªããŸããããã€ãã®ã«ãŒã«ã«åºå·ããã°ãæªãããšã¯äœãèµ·ãããŸããïŒ2幎ã®çç£çµéšãã話ããŠããŸãïŒã
JavaScriptãªããžã§ã¯ãã§è¡šçŸãããCSSã¯ãã¯ããã«åé·ã§æŽçãå°é£ã§ãã
ã³ãŒãã®åå©çšã¬ãã«ãé«ããç¹°ãè¿ããå°ãªããããå®éã«ã¯åé·æ§ãäœããªããŸãã
éçºè ã«ãšã£ãŠæ倧ã®æ¬ ç¹ã¯ãCSSããããã£ãšãã®å€ã«é¢ãããã¹ãŠã®ã€ã³ããªã»ã³ã¹æ å ±ã倱ãããããšã§ãã
ããã§ã®ç®æšã¯ãmaterial-uiã®ãŠãŒã¶ãŒãã¹ã¿ã€ãªã³ã°ã«å¿ èŠãªãã®ãäœã§ã䜿çšã§ããããã«ããããšã ãšæããŸãã CSSã®èªåè£å®ã¯ãç§ãããè³ã«ããè°è«ã§ãã ã»ãšãã©ã®å ŽåãcssinjsãããŸã䜿çšããªãã£ã人ã ããæ¥ãŠããã以åã®äŸ¿å©ãã倱ãããšãæããŠããã ãã§ãã
ãããããå€ãã®äŸ¡å€ãããããã®ã§ããã°ããããžã§ã¯ãã«è€éããå ããŠãããŸããŸããã
éèŠãªã®ã¯ãè€éãã軜æžããã³ãŒãããŒã¹ãããäžè²«æ§ãããã䜿ãããããç解ãããããã®ã«ããããšã ãšæããŸããããã¹ãŠã®è€éãªã·ããªãªãåæã«ã«ããŒããŠããŸãã
ç§ã®æ倧ã®æžå¿µã¯ãã¹ã¿ã€ã«æ å ±ãã³ã³ããŒãã³ãå®çŸ©ãä¹±éã«ããããšã«ãªããšããããšã§ãã
ç§ãã¡ã®ãããžã§ã¯ãã§ã¯ãã³ã³ããŒãã³ãã®ã¹ã¿ã€ã«æ å ±ãåå¥ã®ãã¡ã€ã«ã«æœåºããwebpackã§ããŒãããŸããã äž»ãªå©ç¹ã¯ããã¹ãŠãé©åã«æŽçãããŠãããwebpackãã³ã³ããŒãã³ãããšã«ã³ãŒãããã³ãã«ã§ãããããjsã³ãŒããšã¹ã¿ã€ã«æ å ±ã®ã³ãŒãåå²ãå¯èœã«ãªãããšã§ãã
ãŸããããžãã¯ãåé¢ããŠã¹ã¿ã€ãªã³ã°ã«ãŒã«ãäœæãããšãé¢å¿ã®åé¢ãè¡ãããŸãã äžäŸãšããŠãããç¥ãããŠããcssããªããã»ããµã§ããã¯ã¹ã€ã³ã®ããã«ã¹ã¿ã€ãªã³ã°ãçæããã¹ã¿ã€ã«ãã¡ã¯ããªé¢æ°ãå°å
¥ããŸããã
ç§ã®ãã€ã³ãã¯ãç¬èªã®ç¹å®ã®ã¯ãŒã¯ãããŒãã¢ãã«åãããããžã§ã¯ããšããŒã ã®ããŒãºã«æé©ã«é©å¿ããããã®æè»æ§ã倧å¹
ã«åäžããããšã§ãã
ããã確èªããŠãã ããhttps://styled-components.com/
ãã¯ãããžãŒãå€æŽããã®ã¯ã²ãŒã ã®ããªãé ã段éã§ãããã¹ã¿ã€ã«ä»ãã³ã³ããŒãã³ããéåžžã«ææã§ããããšã«åæããŸãã SSRãã¡ãã£ã¢ã¯ãšãªãéåžžã«åªããæ§æãªã©ãåŠçããŸãã JSSãšæ¯èŒããŠãèªåãã¬ãã£ãã¯ã¹ãšããŒãèšå®ãåŠçããŸãã
ç§ã®ç¥ãéããå éšã§postcssã䜿çšããŠããŸããããšããžã±ãŒã¹ã®åŠçãšãã©ã°ã€ã³ãå€æ°å«ãŸããŠããå®å šãªcssããŒãµãŒã§ãããããå®è¡æã«èš±å®¹ã§ããããã©ãŒãã³ã¹ã¯åŸãããŸããã ãããJSSJSONã«ååŠçããããšã¯æ³åã§ããŸãããæ£çŽãªãšãããCSSèšèªã䜿çšããŠãJSå€æ°ãé¢æ°åŒã³åºããšæ··åããããšãšãJSãå®å šã«äœ¿çšããããšã«ã¯ããŸã䟡å€ããããŸããã
èšããŸã§ããªããstyled-componentsã®çŸåšã®ãã«ãã¯250kbã§ããã§ã«çž®å°ãããŠããŸãã å ¬å¹³ãæãããã«ãReactãšcoããã³ãã«ãããŠããããã§ãããããã§ããPostCSSããŒãµãŒã ãã§ã13kbïŒæå°åãããŠããªãã2kbãïŒã§ããããã§ã«JSSãŸãã¯Felaãšã»ãŒåããµã€ãºã§ãã
ïŒãã¬ãŒã³ããŒã·ã§ã³ïŒã³ã³ããŒãã³ãã®è¿ éã§ã·ã³ãã«ãªãããã¿ã€ãã³ã°ã«ã¯æé©ã§ãããä»ã®ãœãªã¥ãŒã·ã§ã³ã§ã¯æäŸã§ããªãã¡ãªãããæ©èœã¯èŠåœãããŸããã
åæããŸããç§ãéçºããã©ã€ãã©ãªã§è©ŠããŠã¿ãŸããããå ¬éããã«ã¯éãããŸããã 圌ãã¯ããã§é²æ©ãããšç¢ºä¿¡ããŠããŸãããããã§ã®JSSã®äœæ¥ã¯ã»ãŒå®äºããŠãããã»ãšãã©åãå©ç¹ãæäŸããŠããããã§ãã
ç§ã¯æè¿react-toolboxã䜿çšããŸããããåºæ¬çã«webpackã®sassLoader
äŸåããCSSã¢ãžã¥ãŒã«ãããŒãã«äœ¿çšããŠããŸãã ç§ã«ãšã£ãŠãããã¯æ¬åœã«ããŸããããŸããã å€åããã¯èª¿æ»ãã䟡å€ããããŸãã
ãããç§ã¯@mgcreaã®æèŠãäºçªç®ã«ããå¿ èŠãããreact-toolboxããŒãã®ãµããŒãã¯åçŽã«çŽ æŽãããã§ã-ã³ã³ããŒãã³ãã®å€èŠ³ãã«ã¹ã¿ãã€ãºããããšãããã³ããšã³ãã¹ããŒãªãŒã®æãéèŠãªåŽé¢ã§ãããããåãæ¿ããŸãã
å€ãè¯ãCSSã¹ã¿ã€ãªã³ã°ãMaterialUIã®ç¬¬äžçŽåžæ°ã«ãªãããšã誰ãæåŸ
ãã¹ãã§ã¯ãªããšæããŸãããããã react-toolbox
ãéå§ãããçç±ã§ãã
å°ãªããšãããã®ãããã¯ã«é¢ããå€ãã®åé¡ãæçš¿ãèªãã åŸã®ç§ã®å°è±¡ã§ãã ããŒã ãReactNativeã®äºææ§ãåäžãããããã«åªåããŠããããšããJSSã§è§£æ±ºããã®ãã¯ããã«ç°¡åãªãšããžã±ãŒã¹ã®ã¹ã¿ã€ãªã³ã°ã«é¢ããå€ãã®ã³ã¡ã³ãããŒããããšèŠããŠããŸãã
ãããããã®æ å ±ã¯å€ãã®è°è«ã®äžã§å€±ãããŠããŸãã ããã¯éåžžã«ç©è°ãéžããããã¯ã§ããããããããžã§ã¯ãã®ç®æšãšå²åŠïŒã³ã¢ã¡ã³ãããŒã«ãã£ãŠæžãããïŒã«é¢ããWikiããŒãžããããJavascriptã®ã¹ã¿ã€ãªã³ã°ããªãããã»ã©æ ¹ä»ããŠããã®ãã«ã€ããŠåŒ·ãæèŠãããã°ãä¿¡ããããªãã»ã©ã®äŸ¡å€ããããšæããŸãããã¬ãŒã ã¯ãŒã¯ã
Reactã®æãã¢ã¯ãã£ãã§æŽç·Žããããããªã¢ã«ã¹ã¿ã€ãªã³ã°ãã¬ãŒã ã¯ãŒã¯ã§ãããããMaterialUIãæ¬åœã«å¥œãã§ãã ãã ãããµãŒãããŒãã£ã®ã³ã³ããŒãã³ããšã®çµ±äžãããã¹ã¿ã€ã«ãç¶æãããå ŽåãJSSã¯ãã£ãšé çã®çš®ã«ãªããŸãã
ç§èªèº«ã¯ãreact-toolboxã®ãããªãã®ã§ã¯ãªããMaterial-UIãã¹ã¿ã€ãªã³ã°ãè¡ãæ¹æ³ã«æè¬ããŠããŸãããã®çç±ã¯ã次ã®ãšããã§ããç§ãã¡ã®ãããžã§ã¯ãã®1ã€ã§ã¯ããŠãŒã¶ãŒãåçãªããŒããéžæã§ããããã«ãªã£ãŠããŸãã
ãŠãŒã¶ãŒãäºåã«æ±ºå®ã§ããªãè²ã®ãã¢ãéžæããå¯èœæ§ãããããã䜿çšããããŒãã¹ããŒã ã¯ã©ããéåžžã«åçã§ããå¿
èŠããããŸãã ãš
react-toolboxetã alããããã¯ç§ãèŠãããšãã§ãããã®ããã®éçšã®ããã§ãã
@jropããããã®éåžžã«ç¹æ®ãªã±ãŒã¹ã§ã¯ãåçJSSãå¿ èŠã§ãããå€ãã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããã¯éèŠãªèŠä»¶ã§ã¯ãªãããããªã¢ã«ã®ã«ã¹ã¿ãã€ãºã®çŸåšã®è©±ïŒUIãã¹ãã«ã€ããŠãèšããŸããïŒ-uiã¯åã«åãå ¥ããããŸããã ç§ãã¡ã¯ãããã©ã«ãã®ãããªã¢ã«UIã®å€èŠ³ã䜿çšããã ãã§ã¯ãªããéåžžã«èŠèŠçã§èšèšãããã¢ããªãæ§ç¯ããŠããŸããããã¯ããã®åäœéšåãã»ãšãã©å¿ èŠã§ããããã§ãã
@DominikGuzeiã¯ãjssã䜿çšããŠnext
ãã©ã³ããã«ã¹ã¿ãã€ãºã§ããŸãã ããã¯ãçŸåšã®ãªãªãŒã¹ã§èŠããããã®ã§ã¯ãããŸããã
çãããããã§æ»ãã 銬ãåããŠãããããªæ°ãããŸãã next
ãã©ã³ãã¯ãããŒãã䜿çšããŠå¥ã®ïŒå€§å¹
ã«æ¹åãããïŒãã¹ãéžæãããªãŒããŒã©ã€ããèš±å¯ããŠããŸãã ã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã䜿çšããªããªããç§ãèŠæ±ããæè»æ§ãæäŸããŸãã ããã«ã«ã¹ã¿ãã€ãºæ§ãå¿
èŠãªå Žåã¯ã next
ã³ã³ããŒãã³ãã«å¯ŸããŠHOCã䜿çšããŠãç¬èªã®ã¹ã¿ã€ã«ã·ãŒããäœæã§ããŸãã
@nathanmarks ããã®æ±ºå®ãäžãããã®ã§ïŒç§ãç¥ãéããéåžžã«ããŸãæ©èœããŸãðïŒãèŠçŽãæžããŠãã®åé¡ãéããŠããã¯ããåé¡ãèŠã€ãã人ãä»åŸã®æ¹åæ§ãç解ã§ããããã«ããããšããå§ãããŸãã
ãããžã§ã¯ãã®ç®æšãšå²åŠïŒã³ã¢ã¡ã³ãããŒã«ãã£ãŠæžãããïŒã«ã€ããŠã®WikiããŒãžããããJavascriptã¹ã¿ã€ãªã³ã°ããã¬ãŒã ã¯ãŒã¯ã«æ·±ãæ ¹ä»ããŠããçç±ã«ã€ããŠã®åŒ·ãæèŠãããã°ã
@fgarciaä»é±åãã«ããªã§éå¬ãããå°å ã®ã€ãã³ãã§ãMaterial-UIã§äœ¿çšãããŠããã¹ã¿ã€ãªã³ã°ã¢ãããŒãã®é²åã«ã€ããŠãã¬ãŒã³ããŒã·ã§ã³ãè¡ããŸããã ã¹ã©ã€ããš_notes_ïŒããè¯ãã¹ã¿ã€ã«ãžã®æ ãã芧ã«ãªãããšããå§ãããŸãã ç§ã¯èª²é¡ãåé¡ã解決çã«çŠç¹ãåœãŠãŠããŸãã
åçããŒããéžæãããŠãŒã¶ãŒ
CSS-Modulesã®éçãªã¹ã¿ã€ã«çæã®åŽé¢ã¯ãããªãã®çµæããããããŸãã
å®è¡æã«ã¹ã¿ã€ã«ãæ¿å
¥ãããšãã³ã¹ãå¹çãäœäž
CircularProgress
ã¯ãCSSããŒãã¬ãŒã ã¢ãã¡ãŒã·ã§ã³ã®å®è£
æ¹æ³ã«ãªã³ã¯ãããåºå®ã®thickness
ããããŸãã åçã¹ã¿ã€ã«ã§ã¯ãthicknessããããã£ãè¿œå ããŠããŠãŒã¶ãŒãå€ãåçã«å€æŽã§ããããã«ããããšãã§ããŸãã â ïžèåŸ
ãããªãããã«ã@oliviertassinariããã¯èããŠçŽ æŽãããã§ãã ç§ã¯CSSã¢ãžã¥ãŒã«ã«é¢ããŠéæšæºçãªèŠæ¹ãããŠãããããããŸãããããããã倧éšããã䟡å€ããããšã¯æããŸããã ãã®ãããmaterial-uiãéããŠJSSã®ããšãèããŠè奮ããŸããã CSSã¢ãžã¥ãŒã«ãããJavaScriptã®å²åŠã«æ²¿ã£ãŠããããã§ãã
@oliviertassinariç¹å žã®æŠèŠãããããšãã ãããã®åŽé¢ãèŠããšãééããªãèå³æ·±ããã®ã§ãã çŸæç¹ã§ã®JSSãšãã®ãšã³ã·ã¹ãã ïŒpostcssïŒã®æ¬ ç¹ã¯ããã¹ãŠãæå 端ã§ãããåçŽãªcss-modules + SASSã®ããã«ç¢ºç«ãããããŒã«ãã§ãŒã³ãšãã¬ããžããŒã¹ã«äŸåã§ããªãããšã§ãã ããããããã¯ã€ãããŒã·ã§ã³ã«æ¯æã代åã§ããç¹å®ã®èŠä»¶ããããã©ããããã°ãææžåãããŠããªããã¹ã®ä»£åãæã£ãŠãæ§ããªããšæã£ãŠãããã©ããã«ãã£ãŠç°ãªããŸãã
JSSã¯ãcss-modulesããåã«äœæãããŠããŸãã CSSã¢ãžã¥ãŒã«ã¯ãæ§æãå€§å¹ ã«å€æŽããããšãªã倧å€æ°ã®ãŠãŒã¶ãŒã®åé¡ã解決ãããããæ¥éã«æ®åããŸããã
ããã¯èšã£ãŠããããªãã¯reactã䜿çšããŠããŸãããããäžçš®ã®ãæ°ããããã¯ãããžãŒã§ãã SASSãå¿ èŠãªå Žåã¯ãvanilajsãŸãã¯backbonejsãéžæããå¿ èŠããããŸãïŒ
@kof Reactã¯ãæ°åäžã®æ©ã§æ¶ããããšã¯ãããŸããïŒãéåžžã«ç°ãªãã¹ããŒãªãŒã§ãããããã£ãŠããæ°ããããããããŸããããéåžžã«å å®ã§ãïŒ
SASSã¯æã確ç«ãããcssããªããã»ããµã®1ã€ã§ããããããããããžã§ã¯ãã§äœ¿çšã§ããŸããéåžžã«å ç¢ã§ãããŒãã«ã«å€ãã®äŸ¡å€ããããããŸãã ã ããç§ã¯çµ¶å¯Ÿã«å¿ èŠãªå Žåã«ã®ã¿JSSã®ãããªãã®ãéžã³ãŸãïŒäŸãã°ïŒåçãªããŒãã®ããïŒããããã€ãã®éçºè ãããåçšãœãããŠã§ã¢ãããžã§ã¯ãã§é·å¹Žã®çµéš/ãã¬ãŒã ã¯ãŒã¯/ç¥èããŒã¹ãªã©ãæšãŠãããšã¯å«ãã§ãã ãããã£ãŠãJSSã§åçããŒãã®åŽé¢ã®ã¿ãæ§ç¯ããæ®ããsass / css-modulesã§æ§ç¯ããããšãæ€èšããŸãã
ç§ã¯ãã®èãæ¹ãç解ããŠããŸãããããã¯éå¹æã§ãããšèããŠãããã€ãããŒã·ã§ã³ãšæ¥çã®é床ãäœäžãããŠãããšéé£ããŠããŸãã
ãªãããªãã¯äž¡æ¹ããµããŒãããªãã®ã§ããïŒ JavaScriptã§æžãããã¹ã¿ã€ã«ãšcss-modulesã§æžãããã¹ã¿ã€ã«ïŒ ããšãã°ã httpsïŒ//github.com/callemall/material-ui/blob/next/src/Button/Button.jsãèŠããšãå°éå ·ããæž¡ãããã¯ã©ã¹åã䜿çšããã®ã¯éåžžã«ç°¡åã§ãïŒ https://github.com/javivelasco/react-css-themrïŒã䜿çšãã代ããã«ïŒ
const classes = this.context.styleManager.render(styleSheet);
ããã§ããã
JSSãCSSã®äœ¿çšã«é¢ããè°è«ãçµãããè¿ããŠããããã«ã¯èŠããŸããïŒãŸã ïŒïŒã ç§ã«ã¯ãçŸæç¹ã§ã¯50/50ã®ããã«èŠããŸãã
SASSã«é¢ããŠã¯ãreact-toolboxã¯çŸåšãå®å šãªpostCSSãœãªã¥ãŒã·ã§ã³ãåªå ããŠç§»è¡ããŠããŸããå人çã«ã¯ãpostCSSïŒsassLikeãã©ã°ã€ã³ã䜿çšïŒã®æ¹ãåªããŠããããã«ãéšéããªããŠããã匷åã ãšæããŸãã
ãã¹ãŠã®JSãç¹ã«Reactã®ã¹ã¿ã€ãªã³ã°ã¯ãæããã«ãŸã æ¥éãªé²åã®ç¶æ ã«ãããŸãã ã§ããããããªããäœãããã«ããŠããç§ã¯æèŠãåãããªãããã«ããŸã-çŸåšã®å¹ åºã䜿çšæ³ã«ããŸãé©åããŸãã
* styleããããããããšãããªãã©ãã§ã* classNameãããããè¿œå ããããšãæ€èšããŠãã ããã éç®ã
å®å šãªé瀺ïŒç§ã¯å¹žããªAphroditeãŠãŒã¶ãŒã§ãã
className
ãè¿œå ããã«style
ããããã£ããïŒãåªå
ãããããã !important
ããã¯ãå¿
èŠã§ãã
@ligazãã¡ããããã®éãã§ãã Aphroditeã¯ããã©ã«ãã§ãã¹ãŠã«!important
ãè¿œå ããã®ã§ããããããå¹
åºã䜿çšæ³ãã«ã€ããŠã®ç§ã®èãã¯ã²ã©ãæªãã§ããŸãã
@ligaz @estaub - next
ã¯ãã§ã«style
ãªãã§ã³ãŒãã£ã³ã°ãããŠãããã³ã³ããŒãã³ãã®ãŠãŒã¶ãŒã¯className
ïŒããã³è€éãªã³ã³ããŒãã³ãã®ããŸããŸãªéšåã«è€æ°ã®ã¯ã©ã¹åïŒãæäŸããããšã§ãªãŒããŒã©ã€ãã§ããŸãã
ã¡ã³ããã«ããnext
ãã©ã³ãã®ã¹ã¿ã€ãªã³ã°ãã©ãã€ã èšå®ã¯JSSã䜿çšããŠããŸãã å人ãŸãã¯ããŒãããšã«äœ¿çšããããšã¯åã³ã§ãããç°¡åã«äžæžãã§ããŸãã
ãã®éŠ¬ã¯æ»ãã§ããã ãããæã€ã®ããããŸãããã @oliviertassinari next
ã®æ瀺æã䜿çšããŠããã®åé¡ãéããŠããã¯ããããšããå§ãããŸãã
ããã«ã¡ã¯@ rosskevin-ããã次ã«ã©ã®ããã«æ©èœãããã«ã€ããŠã®äŸãæããŠããã ããŸããïŒ
çŸåšãæ°ãããããžã§ã¯ãã®ãã¬ãŒã ã¯ãŒã¯ãæ€èšããŠããŸãããããªã¢ã«UIã䜿çšãããã®ã§ããã次ã«èª¬æããå€æŽãå¿ èŠã§ãã ãã¹ããããžã§ã¯ãã«æ¬¡ã®ãã©ã³ããè¿œå ããåçŽãªã³ã³ããŒãã³ããè¿œå ããŸããããã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã§ãã£ã±ãã®ã€ã³ã¹ãã¯ã¿ãŒã衚瀺ãããŠããã®ã§ãäœãééã£ãããšãããŠãããšæããŸããïŒ
ãã以äžã®è©³çŽ°ã¯æ¬åœã«åœ¹ã«ç«ã¡ãŸãïŒ
ããããšã
@giuseppepaul next
ã¯ãã¬ã¢ã«ãã¡çã§ããããŸã å®æããŠããªããããnpmã§ã¯å
¬éãããŠããŸããã https://github.com/callemall/material-ui.git#nextã®ã¯ããŒã³ãäœæãã docs/site
ãå®è¡ããŠãã€ã³ã©ã€ã³ã¹ã¿ã€ã«ããããªãããšã確èªã§ããŸãã ãŸããé©åºŠãªéã®ãã¢ããããŸãã
ç§ã¯nextã®ãã©ã€ããŒãããŒãžã§ã³ãå ¬éããŠããïŒæŽæ°ãå¶åŸ¡ã§ããããã«ïŒããŸããªãæ¬çªã¢ããªã±ãŒã·ã§ã³ãšããŠäœ¿çšããŠããŸãã
ãã®éŠ¬ã¯æ»ãã§ããã ãããæã€ã®ããããŸãããã @oliviertassinari次ã®æ¹åæ§ã®å£°æã§ããã®åé¡ãéããŠããã¯ããããšããå§ãããŸãã
ãã®éŠ¬ã¯å®å
šã«æ»ãã§ããªãã ããããééããªãã¿ã€ããªå Žæã«ãããŸãð«ã
åæããŸãããã®åé¡ãéããŸãããã
ãã®è©±ã«å°œåããŠããã@nathanmarksã«å€§ãã«æè¬ã
ïŒ5718ã§ä»åŸã®éã®ãã«ã€ããŠãã£ãšæ
å ±ãéããŸããã
ããã«ã¡ã¯ã
IconButton
ã¯ãæ³¢åå¹æã®ããã®CSS3 transition
ããããã£ããããŸãã Card @nextã®ããã¥ã¡ã³ãã®è€éãªçžäºäœçšã§ãã¢ã€ã³ã³ãå転ãããšãã«é·ç§»ãè¿œå ããããã®å€æã«transition
ãè¿œå ããŸããã
ã¢ããªã§åãããšãè¡ããšãäžæ¹ã®é·ç§»ïŒãªããã«ãŸãã¯åŸ©åž°ïŒãä»æ¹ããªãŒããŒã©ã€ãããŸãïŒèŠçŽ ã2ã€ã®ããããã£ãæã€ããšã¯ã§ããŸãããããã§ãªãå Žåãäžæ¹ãä»æ¹ããªãŒããŒã©ã€ãããŸãïŒã
ãã ããã·ã§ããã³ã¢ã€ã³ã³ã«ã¯2ã€ã®transitions
ãæ£åžžã«é©çšãããŠããŸãã ã©ããããããã IconButton
ã«ãã£ãŠæäŸãããé·ç§»ãšã³ãŒãã§å®çŸ©ãããé·ç§»ãããŒãžããããã§ãã ã©ããã£ãŠãããéæããŸããïŒ
ä»ã®ããã€ãã®ãã®ã¯ç§ã«ã¯ãããã«ãããé¢é£ããããã¥ã¡ã³ããèŠã€ãããŸããã theme
ã¯ã breakpoints
ïŒããã§ã¯äœ¿çšãããŠããŸããïŒ transitions
ïŒããã§äœ¿çšãããŠããŸãïŒã®ããã«å€ãã®ã¡ãœãã/ããããã£ããããŸãã MuiThemeProvider.createDefaultContext()
ãè¿ããã®ã®theme
ããããã£ã«ã€ããŠã®ããã¥ã¡ã³ãã¯ãã§ã«ãããŸããïŒç¹ã«ã³ãŒãå
ã§åºã䜿çšãããŠãããšäŸ¿å©ã ãšæãããŸãã
this.context.styleManager.render(styleSheet)
ïŒ äœ ïŒ
ãŸãã jss-theme-reactor
ã䜿çšããŸããã react-jss
ãšæ¯èŒããŠãŸã ãã€ã³ããããããŸããã
@NitroBAYãã®ã¹ã¬ããã¯çµäºããŸããã æ£ãããã£ãã«ã§è³ªåããŠãã ããããã°ã«æ°ä»ããå ŽåããŸãã¯ããã¥ã¡ã³ããæ¹åãããå Žåã¯ãåé¡ãéããŠãã ããã ãã以å€ã®å Žåã¯ãgitter.imã®StackOverflowã䜿çšã§ããŸãã
æãåèã«ãªãã³ã¡ã³ã
ã¹ã¿ã€ãªã³ã°ãœãªã¥ãŒã·ã§ã³ã¯å®æããŠããŸããïŒ