ãã®èšäºã¯ãGitHubã®CSSéçºè ã§ãã人æ°ã®ããããã³ããšã³ããã¬ãŒã ã¯ãŒã¯ã§ããTwitter Bootstrapã®äž»èŠãªã¡ã³ãããŒã®1人ã§ããMark Ottoã代衚ããŠæžãããŸãã ã
ããŸããŸãªã¢ããªã±ãŒã·ã§ã³ã®éçºããã»ã¹ãç¹ã«ã¹ã¿ã€ã«ã¬ã€ããšCSSéçºãžã®ã¢ãããŒãã«åžžã«èå³ããããŸããã CSSéçºã§æã æå³ã®ãªã詳现ã奜ãã®ã§ãGitHubã§CSSéçºããã»ã¹ã«ã€ããŠå°ãæžãããšã«ããŸããã
ç°¡åãªèª¬æ
CSSã³ãŒãã®çŸåšã®ç¶æ ã®æŠèŠã¯æ¬¡ã®ãšããã§ãã
- ããªããã»ããµãšããŠSCSSã䜿çšããŸãã
- æ¬çªç°å¢ã«ãªãªãŒã¹ããåã«ã³ã³ãã€ã«ãã100ãè¶ ããåå¥ã®ãœãŒã¹ã¹ã¿ã€ã«ã·ãŒãããããŸãã
- ã³ã³ãã€ã«æžã¿CSSã¯ãããŒãžã§ã³IE <10ã®ã»ã¬ã¯ã¿ãŒæ°ã®å¶éãåé¿ããããã«2ã€ã®ãã¡ã€ã«ã«åå²ãããŠããŸãã
- ãããã®2ã€ã®ãã¡ã€ã«ã®åèšéã¿ã¯90KBã§ãã
- CSSã¢ãŒããã¯ãã£ã®ç¹å®ã®ã¢ãããŒãã«ã¯åŸããŸããã
- ãã¯ã»ã«ã枬å®åäœãšããŠäœ¿çšããŸãããå Žåã«ãã£ãŠã¯emã䜿çšããŸãã
- Normalize.cssã䜿çšããç¬èªã®ç Žæ£ã¹ã¿ã€ã«ãããã¯ã¹ããŸãã
ããªããã»ããµ
äžèšã®ããã«ãSCSSã䜿çšããŸãã ãã®éžæã¯ãå°çãããã£ãšåã«è¡ããããã®ã§ãããã«å察ãããã®ã¯äœããããŸããïŒBootstrapã¯çŸåšLESSã§éçºãããŠããã«ããããããïŒ SCSSãã¡ã€ã«ã¯ããã¡ã€ã«ãã€ã³ã¯ã«ãŒãããããã«ã¹ããã±ããã®å©ããåããŠRuby on Railsã«ãã£ãŠã³ã³ãã€ã«ãããŸãã ããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãã
LESSãã¹ã¿ã€ã©ã¹ããŸãã¯...ã¯ã©ãã§ããïŒ GitHubããã€ãŠLESSã«åãæ¿ããäºå®ã¯ãªãã£ããšæããŸãããããã¯èšããŸããã ããã§ãã»ãšãã©ã®å ŽåãLESSã䜿çšããéçºã«åãæ¿ããŸããã æãããªå©ç¹ã¯ãããŸããã
ããªããã»ããµã䜿çšããŠããã®ã¯ãªãã§ããïŒ å éšãã¬ãŒã ã¯ãŒã¯ã«ã¯ãæ¯èŒçå°ããªå€æ°ã»ããïŒãã©ã³ããåè²ã®æ··åãªã©ïŒããã³ããã¯ã¹ã€ã³ïŒã»ãšãã©ã®å Žåããã³ããŒãã¬ãã£ãã¯ã¹ä»ãã®ããããã£çšïŒãå«ãŸããŠãããããã³ãŒãéçºãè¿ éãã€å®¹æã«ãªããŸãã
çŸæç¹ã§ã¯Autoprefixerã䜿çšããŠããŸããããå®éã«ã¯ããããã¹ãã§ãã ãã®å Žåãã»ãšãã©ãã¹ãŠã®ããã¯ã¹ã€ã³ã¯å¿ èŠãããŸããã ãããããã«å®çŸããããšãé¡ã£ãŠããŸãã
ãŸããçŸæç¹ã§ã¯ãœãŒã¹ãããã䜿çšããŠããŸãããããŸããªãå€æŽãããŸãã ïŒç¥ããªãã£ãå ŽåããœãŒã¹ãããã䜿çšãããšããã©ãŠã¶ã®ã€ã³ã¹ââãã¯ã¿ã§ãã©ã®ãœãŒã¹SCSSãã¡ã€ã«ããããã®ã¹ã¿ã€ã«ã»ãããã³ã³ãã€ã«ããã³å§çž®ãããCSSã®ä»£ããã«ã³ã³ãã€ã«ããããã確èªã§ããŸãã
ããã«å ããŠãSCSSæ©èœã¯ã»ãšãã©äœ¿çšããŸããã ç§ãã¡ã®å ŽåãSCSSæ©èœã¯ãå€æ°ãããã¯ã¹ã€ã³ãè²é¢æ°ïŒ æããæãããããªã©ïŒãæ°åŠé¢æ°ãããã³ç¶æ¿ã䜿çšããããšã«ãªããŸãã
建ç¯
çŸåšãCSSã¢ãŒããã¯ãã£ãžã®2ã€ã®äžè¬çãªã¢ãããŒãã¯BEMãšOOCSSã§ãã OOCSSã«åŸããŠããŸãããå šäœçãã€ã°ããŒãã«ãªã¢ãããŒãã¯ãããŸããã ãããã®2ã€ã®ã¢ãããŒãã®ç¹æ§ãçµã¿åããããããŸããªã¢ãããŒãã§æ°ããèŠçŽ ãéçºããããšããŸããã次ã®åºæ¬çãªç¹åŸŽããããŸãã
- ã»ã¬ã¯ã¿ãŒã®ä»ã®ãã¹ãŠïŒIDãã¿ã°ïŒãããã¯ã©ã¹ã®åªå é äœã
- äžèŠãªç¶æ¿ã®åé¿;
- ã¯ã©ã¹åã§ã®ïŒåäžã®ïŒãã€ãã³ã®äœ¿çšã
- ã¯ã©ã¹ã«ã§ããã ãçãååãä»ããããšããŸãããæ··ä¹±ãæ··ä¹±ã¯çããŸããã
ç§ã®å¥œã¿ã®CSSã¢ãŒããã¯ãã£ã«ã€ããŠã¯ãå¥ã®æçš¿ã§è©³ãã説æããŸãã ããŠãäžèšã®ããã¹ãã¯GitHubã®ã¢ãããŒãããŸãšãããã®ã§ããããã¡ããå®ç§ã§ã¯ãããŸãããããããå¿ èŠãšãããã®ã®è¯ãä»äºãããŸãã
æ§æãã§ãã¯ïŒãªã³ãã£ã³ã°ïŒ
æ°é±éåã«SCSS æ§æãã§ãã¯ã®äœ¿çšãéå§ããŸããã ã³ãŒãã¹ã¿ã€ã«ã«é¢ããç¬èªã®æ¡ä»¶ä»ãèŠåããããŸããããåéçºè ã®ã¹ã¿ã€ã«ãšãã©ãŒãããã¯ãããŠããŒã¯ã§ããã çŸåšããã¹ãŠã®CIãã«ãã«ã¯åºæ¬çãªSCSSãªã³ãã£ã³ã°ãå«ãŸããŠããã次ã®å Žåããã¡ã€ã«ã¯ãã«ãã«ãªãªãŒã¹ãããŸããã§ããã
- ã¯ã©ã¹ã¯CSSã«ãããŸããã app / viewsãã³ãã¬ãŒããã©ã«ããŒå ã®ã©ãã«ããããŸããã
- åãã»ã¬ã¯ã¿ãŒãæ°å䜿çšããŸãïŒã»ãšãã©åžžã«çµã¿åãããå¿ èŠãããããïŒã
- äžè¬çãªãã©ãŒãããèŠåïŒç¶æ¿ã®å¶éãèŠåéã®ã€ã³ãã³ãã ïŒã®åŸã«ã¹ããŒã¹ããªããªã©ïŒã«éåããŠããŸãã
å šäœãšããŠããããã®å°æ°ã®ã«ãŒã«ã«ãããã³ãŒãã¯ããªããããã«ä¿ãããŸãã ã³ã¡ã³ãã®ã¹ã¿ã€ã«ãäžè¬çãªã¢ãŒããã¯ãã£ã®äžäžèŽã¯å«ãŸããŠããŸããããããã¯ããã¥ã¡ã³ããéããŠã³ã³ââãã€ã«ãããã¹ãããŒã ã§ãã ããã¯ã誰ããäœããä¿®æ£ããŠè£è¶³ã§ãããã®ã§ãã
2ã€ã®CSSãã¡ã€ã«
GitHubã«ã¯ã2ã€ã®CSSãã¡ã€ã«githubãšgithub2ã®ã»ããããããŸã ã ãã¡ã€ã«ã¯ããã¡ã€ã«ããã4095åã®ã»ã¬ã¯ã¿ãŒãšããå¶éã®åé¡ã解決ããããã«ãæ°å¹Žåã«åå²ãããŸããã ãã®å¶éã¯ãIE 9以åã®ããŒãžã§ã³ã«é©çšãããŸãã GitHubã«ã¯IE9ã®ãµããŒããå¿ èŠã§ããCSSåé¢ã¢ãããŒãã¯é·ãéæå¹ã§ãã ä»æ¥ãGitHubã«ã¯ãããã®2ã€ã®ãã¡ã€ã«ã«çŽ7000ã®ã»ã¬ã¯ã¿ãŒãããããã§ãã ãããã®æ°å€ãä»ã®ãµã€ãã®ããŒã¿ãšæ¯èŒããŠãã ããã
- Bootstrap v3.2.0ã®ã»ã¬ã¯ã¿ãŒã¯1900匱ã§ãã
- Twitterã®ã»ã¬ã¯ã¿ãŒã¯8900æªæºã§ãã
- NY Times-çŽ2100人ã®ã»ã¬ã¯ã¿ãŒã
- SoundCloudïŒæ°ããŒãžã§ã³ïŒ-çŽ1100ã
ãããã®æ°å€ã¯cssstats.comã«ãã£ãŠçæãããŸãã ã ããã¯ãç§ãå«ãã»ãšãã©ã®éçºè ãèªåã®ãã¡ã€ã«ãèŠãªãåŽããããªãã®ã¹ã¿ã€ã«ãèŠãéåžžã«ã¯ãŒã«ãªå°ããªãŠãŒãã£ãªãã£ã§ãã ãŸããGitHubå ã§ã¯ãã£ãŒãã䜿çšããéåžžã¯èªåã®ããŒãºã«åãããŠäœ¿çšââããŸãã
ã¹ããã±ãããä»ããä»åšç©
GitHubã®CSSããã³JavaScriptã¯ãã¹ããã±ãããä»ããŠå«ãŸããŠããã requireãå«ãŸããŠããŸã ã app / assets / shylesheet s ãã©ã«ããŒå ã®åå²ããããµããã£ã¬ã¯ããªã䜿çšããŠCSSã³ãŒããéçºããŸã ã ããã¯æ¬¡ã®ãããªãã®ã§ãã
/* = require primer/basecoat/normalize = require primer/basecoat/base = require primer/basecoat/forms = require primer/basecoat/type = require primer/basecoat/utility = require_directory ./shared = require_directory ./_plugins = require_directory ./graphs = require primer-user-content/components/markdown = require primer-user-content/components/syntax-pygments = require primer/components/buttons = require primer/components/navigation = require primer/components/behavior = require primer/components/alerts = require primer/components/tooltips = require primer/components/counter = require primer-select-menu = require octicons = require_directory . */
äŸåé¢ä¿ãå«ãïŒPrimerã¯å éšãã¬ãŒã ã¯ãŒã¯ã§ãïŒããã®åŸããã©ã«ããŒã®ãã¹ãŠã®SCSSãã¡ã€ã«ããã¹ããã±ãããããããå«ããããšã決å®ããé åºã§å«ããŸãïŒã¢ã«ãã¡ãããé ã«æããŸãïŒã ã¹ã¿ã€ã«ãç°¡åã«ãã€ã³ãã§ããïŒ require_directoryãCommandã䜿çšããŠïŒã®ã¯ç°¡åã§ãããããã«ã¯æ¬ ç¹ããããŸãã
ã¹ã¿ã€ã«ãé©çšãããé åº ïŒããã³ãããã«å¿ããŠããã¡ã€ã«ãå«ãŸããé åºïŒã¯éèŠã§ãã å®éãããã¯ããã§ã¯ãããŸãããããã¹ãŠã®èšèšã·ã¹ãã ã«ã¯ã«ãŒã«ãšã¹ã¿ã€ã«ã®åºæ¬çãªéå±€ããããŸãã ã¹ããã±ããã¢ãããŒãã§ã¯ãç¹å®ã®åé¡ã«ééããããšããããŸãã ããã¯ã2ã€ã®CSSãã¡ã€ã«ã®ããããã«æ°ãããã¡ã€ã«ããã€ã§ãè¿œå ã§ããããã§ãã ãã¡ã€ã«ã®ååã«å¿ããŠãã³ã³ãã€ã«ãããCSSã®ããŸããŸãªå Žæã«è¡šç€ºãããŸãã
ããã«ãã¹ããã±ããã®äœ¿çšã¯ãSCSSãã¡ã€ã«ãã°ããŒãã«å€æ°ããã³ããã¯ã¹ã€ã³ã«çŽæ¥ãã€èªåçã«ã¢ã¯ã»ã¹ã§ããªãããšãæå³ããŸãã ããã«ãããå€æ°ãŸãã¯mixinã«ã¢ã¯ã»ã¹ãããã¹ãŠã®SCSSãã¡ã€ã«ã®å é ã«æ¯åïŒ @ importãä»ããŠïŒããããå«ããå¿ èŠããããŸãã
æ§èœ
GitHubå ã§ã¯ãå€ãã®ã°ã©ãã䜿çšããŠããµã€ããšAPIã®åäœã远跡ããŸãã ãŸããããã€ãã®èå³æ·±ãããã³ããšã³ãæ©èœã远跡ããŸãã ããšãã°ããã3ãæéã®2ã€ã®CSSãã¡ã€ã«ã®ãµã€ãºã瀺ãã°ã©ãã§ãã
ãŸãã blobããŒãžã®éå»3ãæéã®CSSãã¡ã€ã«å ã®ã»ã¬ã¯ã¿ãŒã®æ°ã®ã°ã©ãããããŸã ã æããã«ãã¿ã°ã»ã¬ã¯ã¿ãŒã®æ°ãæžããããã«ãŸã å€ãã®äœæ¥ããããŸãã
æŽæ°ãããCSSãã¡ã€ã«ãæ¯æ¥è¿œå ããæ¯æ¥æ°ååãè¿œå ããŠãããšããäºå®ã«ãããããªã倧ããªCSSãã¡ã€ã«ã®ãã£ãã·ã¥ã絶ããããã¯ããŠã³ããŠããŸãã ãã¡ã€ã«ãµã€ãºã®æé©åããã£ãã·ã¥ãšã©ãŒã®åæžã¯ã»ãšãã©è¡ããŸããã§ãããããã®æ¹åããã詳ãã調ã¹å§ããŠããŸãã éåžžã«ãŸãã«ããå€æŽãããªãã³ã¢ãã¡ã€ã«ãšãé »ç¹ã«å€æŽãããã»ã«ã³ããªãã¡ã€ã«ããããšéåžžã«äŸ¿å©ã§ãã
ãã®ãããã¯ãTwitterã§éããšã2ã€ã®ãã¡ã€ã«ïŒ ã³ã¢ãªã©ïŒããããŸãïŒçŸåšããããããããã©ããã¯ããããŸããïŒã ã³ã¢ãã¡ã€ã«ã«ã¯ãæåã®ãã€ãŒããŸã§ã®çµéæéãã§ããã ãçãããããã«å¿ èŠãªã¹ã¿ã€ã«ãå«ãŸããŠããŸããã ä»ã®ãã¹ãŠã¯moreãã¡ã€ã«ã«ãããŸããã è¿ éãªå€æŽã«å¯ŸããGitHubã®ææ ãç¥ã£ãŠããïŒããã«ç§»æ€ãããªãéããããã«ã¯äœã移æ€ãããŸããïŒ ããã§ã2ã€ã®ãã¡ã€ã«ãä»»æã«åé¢ãããŸããã
äžè¬ã«ãã»ã¬ã¯ã¿ãŒã®ããã©ãŒãã³ã¹ãæé©åããŠãããã»ã©æ°ã«ãªããŸãã ã éå°ãªæè³ãIDãèŠçŽ ãªã©ãæªãã¢ãããŒããèªèããŠããŸãããåæé©åã¯è©Šã¿ãŠããŸããã 1ã€ã®äŸå€ã¯diffããŒãžã§ããã diffããŒãžã®ã¬ã³ããªã³ã°ã«å¿ èŠãªããŒã¯ã¢ãããå€ãããããã [class ^ =â octiconâ]ã®ãããªå±æ§ã»ã¬ã¯ã¿ãŒã¯é¿ããŸããã é »ç¹ã«äœ¿çšãããšããããã®å±æ§ã»ã¬ã¯ã¿ãŒã¯ãã©ãŠã¶ãŒãã¯ã©ãã·ã¥ïŒããã³ã¯ã©ãã·ã¥ïŒãããå¯èœæ§ããããŸãã
ããã¥ã¡ã³ã
ããã«ã€ããŠèšãã°ãç§ãã¡ã¯èªåãã¡ã®ããã«éåžžã«è¯ãä»äºãããŠããŸãããæ¹åã«ãåãçµãã§ããŸãã äžè¬å ¬éãããŠããCSSã¹ã¿ã€ã«ã¬ã€ããããã CSSã®äžè¬çãªã¬ã€ãã©ã€ã³ã®ãã¹ãŠãšãã»ãšãã©ã®ã³ã³ããŒãã³ãã®äŸããããŸãã ã¹ã¿ã€ã«ã¬ã€ããžã§ãã¬ãŒã¿ãŒã§ããKSSäžã«æ§ç¯ãããŠããŸãã
å®å šã§ã¯ãããŸããããéçºè ã¯ã³ã³ããŒãã³ãããã°ããèŠã€ããŠäœ¿çšã§ããŸãã ããã¯ãŸããæ°ããéçºè ã«éçºããã»ã¹ãèŠããŠãéåžžã®éçºé床ãããéãããããã®çŽ æŽãããæ¹æ³ã§ãïŒç§ãçŽ2幎åã«åå ãããšãã®ããã«ïŒã
ãã©ã€ããŒ
以åã«ãããã»ã®ããããŸããããPrimer pã¯ãææ°ã§ã¯ãªã人ã«ãšã£ãŠã¯ããããªãã¯ããã³å éšã¢ããªã±ãŒã·ã§ã³å ã®äžè¬çãªã¹ã¿ã€ã«ãšã³ã³ããŒãã³ãã®å éšãã¬ãŒã ã¯ãŒã¯ã§ãã 以äžãå«ãŸããŸãã
- ããŒãã©ã€ãº
- ããã¯ã¹ãµã€ãº ãã¿ã€ãã°ã©ãã£ããªã³ã¯ãªã©ã®ã°ããŒãã«ã¹ã¿ã€ã«ã
- ããã²ãŒã·ã§ã³
- ãã©ãŒã ;
- ã¡ãã·ã¥;
- ããŒã¯ã¢ããã¹ã¿ã€ã«ã
- ç¹å¥ãªéžæã¡ãã¥ãŒã
GitHub.comãGistãããã³ããã€ãã®å éšã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããŠããŸãã
ã»ãšãã©ã®Primerã³ã³ããŒãã³ãã¯ãã¹ã¿ã€ã«ã¬ã€ãïŒããã²ãŒã·ã§ã³ãããŒã«ããããªã©ïŒã«ææžåãããŠããŸããããã«ãããããããæè¿Primerã®æŽæ°ãšæ¹åãéå§ãããããå€ãã®ã³ã³ããŒãã³ããå€æŽãããŠããŸãã
ãé¡ãããã人ã®ããã«ãç§ã¯ãã©ã€ããŒã®äžéšããããªãã¯ãã¡ã€ã³ã«æçš¿ããããšæããŸãããè¿ãå°æ¥ãã®æ¹åã«å€åãããã®ã¯ã»ãšãã©ãããŸããã ããã§ããç§ã¯åžæãæã£ãŠããŸãã
ã³ãŒããªã¢ã¯ã¿ãŒ
CSSãå«ãã¬ã¬ã·ãŒã³ãŒãã®ãŸãšããªéšåããããŸãã å³æ ŒãªããŒãžã§ã³ã«ãŒã«ãæã€ãããªãã¯ãªãŒãã³ãœãŒã¹ãããžã§ã¯ããšã¯ç°ãªãããããã®ãœãªã¥ãŒã·ã§ã³ãç§ãã¡ã«åã£ãŠããã°ãäžèŠãªã³ãŒããå®æçã«åãé€ããŸãã åé€ãããã®ãèŠã€ããã«ã¯ã次ã®2ã€ã®æ¹æ³ããããŸãã
- 䌌ãŠãããã®ã®ãå®éã«ã¯ç°ãªãHTMLã³ãŒããšCSSã³ãŒããæã€ãã®ãããã³ãã®åŸã®çµã¿åããã®æåæ€çŽ¢ã
- CSSã§ã¯ã©ã¹ãæ¢ãããã¥ãŒãã¡ã€ã«ã«ãããã©ããã確èªããã¹ã¯ãªãããå®è¡ããŸãã
äžè¬çãªãªãã¡ã¯ã¿ãªã³ã°ããã»ã¹ã¯ãããããGitHubã«åºæã®ãã®ã§ã¯ãããŸããã åé€ãããã®ãåé€ãããã®ãå ¬ã«è°è«ãããã®ãèŠã€ããCSSéçºããŒã ã«ç¥ãããŠãã§ããã ãæ©ããããã移æ€ããŸãã ããŒã ã¡ã³ããŒã¯èª°ã§ãã³ãŒããåé€ã§ããŸãã GitHubã«æ°ãããã®ãçŽæ¥è¿œå ããå€ãã®éçºè ãããŸãããåé€ã§ãããã®ãåæããå€ãã®ãªã¿ã¯ãããŸãã