SASSããLESSãžã®ç§»è¡ãæ€èšããŠããŸãããäž»ãªé害ã¯ãããã©ã«ãå€æ°ãæ©èœã®æ¬ åŠã§ãïŒhttp://sass-lang.com/documentation/file.SASS_REFERENCE.html#variable_defaults_ãåç §ïŒã
ãã®æ©èœã¯ãå€æ°ããŠãŒã¶ãŒã®äžçš®ã®ãAPIããšããŠæ©èœããã©ã€ãã©ãªãšããŠSASSã³ãŒããé åžããå Žåã«éåžžã«åœ¹ç«ã¡ãŸãã ãã®ãããªãŠãŒã¹ã±ãŒã¹ã§ã¯ããŠãŒã¶ãŒãããªããã°ãªããªãã®ã¯ãå€æŽãããããã©ã«ãããªãŒããŒã©ã€ãããããã«å€æ°ãäºåã«å«ãŸããŠããããšã確èªããããšã ãã§ãã ãªãŒããŒã©ã€ããå¿ èŠãªå€æ°ãå«ãå¯èœæ§ã®ããïŒããããïŒå€ãã®ãã¡ã€ã«ã®é åºããããå¿ èŠã¯ãããŸããã
ç§ã¯å®è£ ã®äœæ¥ãéå§ããŸãããããŸã ãã¹ããäœæããŠããŸãããããã®ãã«ãªã¯ãšã¹ãããã£ã¹ã«ãã·ã§ã³ã®éå§ç¹ãšããŠäœ¿çšã§ããããšãé¡ã£ãŠããŸãïŒ https ïŒ//github.com/less/less.js/pull/1705
次ã®æ§æãéžæããŸããã
?foo: value;
SASSã®æ¹æ³ãšã¯å¯Ÿç §çã«ïŒ
<strong i="13">@foo</strong>: value !default;
2ã€ã®çç±ãã-ããç°¡æœã§ãããïŒdefaultæ§æã¯ãå°æ¥ãå³åŽã®åŒã®è§£æã§æœåšçãªåé¡ãåŒãèµ·ããå¯èœæ§ããããŸãïŒãã ããããã«ã€ããŠã¯ééã£ãŠããå¯èœæ§ããããŸãïŒã
ç§ãæãã€ããå®è£ ã¯é©ãã»ã©åçŽã§ãã-ããŸãããã°ãç§ã¯éèŠãªãã®ãèŠéããŠããŸããã ãã£ãŒãããã¯ãããã ããã°å¹žãã§ãã
也æ¯ã
ãã£ã«
æŽæ°ïŒå°æ¥ã®èšªåè
ãæ··ä¹±ãããªãããã«ããã®æçš¿ã®ä»¥åã®ã³ã¡ã³ããåé€ããŸããïŒããã§ã¯ããå€æ°ããŸã å®çŸ©ãããŠããªãå Žåã«å€æ°ãå®çŸ©ããæ¹æ³ãã®è³ªåã«çããããšããŠããŠããXYåé¡ãã§ããã Sass-like !default
ã¯æ¬¡ã®ãšããã§ããLessã§ã¯ãå¿
èŠãªæ©èœïŒ "䜿çšåŸã®ïŒåïŒå®çŸ©"ïŒãLesså€æ°ã®åäœæ¹æ³ã«ãã£ãŠãã§ã«æäŸãããŠããããããã®ãããªãã®ã¯å¿
èŠãããŸããã
åãå€æ°ã2åå®çŸ©ãããšãæåŸã®å®£èšãåªå ãããã¹ã³ãŒãå šäœã§æå¹ã«ãªããŸãã ãããã£ãŠãå¥ã®ãªãã·ã§ã³ã¯ãå€æ°ãéåžžã©ããã«å®£èšããã©ã€ãã©ãªã®åŸã«å€æ°ãå«ããããã«ãŠãŒã¶ãŒã«äŸé Œããããšã§ãã
library.less
<strong i="7">@width</strong>: 0;
.mixin {
width: @width;
}
user.lessïŒ
<strong i="11">@import</strong> "library.less"; //first declaration of <strong i="12">@width</strong>
<strong i="13">@width</strong>: 1; //this will override <strong i="14">@width</strong> defined previously
.class {
.mixin();
}
ã³ã³ãã€ã«ïŒ
.mixin {
width: 1;
}
.class {
width: 1;
}
PRã«é¢ãããã£ãŒãããã¯ãããããšãããããŸãã ãããã®ãœãªã¥ãŒã·ã§ã³ã¯ãæ¶è²»ãããã®ã1ã€ãŸãã¯ããã€ãããã°ãå®è¡å¯èœã§ãã ããã§ã¯ããããã®ãœãªã¥ãŒã·ã§ã³ãç§ãã¡ã®å Žåã«æ©èœããªãçç±ã«ã€ããŠè©³ãã説æããŸãã
ã¯ã©ã¹éå±€ãšããŠå®è£ ãããã³ã³ããŒãã³ãã®å€§èŠæš¡ãªãã¬ãŒã ã¯ãŒã¯ãäœæããŸãã åã³ã³ããŒãã³ãã®å€æ°ã¯ãããŒã¹ããŒãã®ç¬èªã®ãã¡ã€ã«ã§å®£èšããŸãã 次ã«ããã®å€æ°ãå€æŽããããŒããããããã掟çããããŸãã ãŠãŒã¶ãŒã¯ããã«ããããããšã§ãããŒããããŒãºã«åãããŠèª¿æŽã§ããŸãã
ããã«ãå€æ°ã¯ä»ã®å€æ°ããã掟çãããããšããããããŸãã ããã¯æãæçœãªããŒã¹ã«ã©ãŒã§ãã ç§ãã¡ã¯ãããŒããšç¬èªã®ç¶æ¿åäœãçµã¿åãããç©æ¥µçãªå€æ°å€ã®äŒæã䜿çšããŠãã³ã³ããŒãã³ãã®å€§èŠæš¡ãªã¯ã©ã¹éå±€ã®åé¡ã®ä»£æ¿æ¡ã«ã€ããŠè°è«ããããšã«å€ãã®æéãè²»ãããŠããŸããã
ãããã®åé¡ã«å¯Ÿããæåã®è§£æ±ºçã¯ãå€æ°ããïŒdefaultãïŒSassçšèªã§ïŒãšããŠ_åžžã«_å®çŸ©ããããšã§ãã ããã«ããããŠãŒã¶ãŒã¯ããããã®å€ã䜿çšããŠããã«å€ãèšç®ããåã«ãæåã«ååŸããŠå€ãèšå®ããã ãã§æžã¿ãŸãã ããããã°ãã¿ã€ãã³ã°ã¯ãŠãŒã¶ãŒã«ãšã£ãŠéåžžã«ç°¡åã«ç®¡çã§ããŸãã ããã¯ãã¹ãŠã®ããŒãã®ãã¹ãŠã®å€æ°ã«åžžã«åœãŠã¯ãŸããããäžèšã§ææ¡ãããããªæ§æã®åé¡ã¯éåžžã«è² æ ã倧ããããšã©ãŒãçºçãããããªããŸãã
ä»åŸãLessã«ä»ã®æ©èœãæäŸããŠãããããšæããŸãã ç§ãã¡ã®ïŒç°åžžãªïŒïŒå€§èŠæš¡ãªãŠãŒã¹ã±ãŒã¹ã¯ãèšèª/æ©èœã»ãããã¹ã±ãŒã«ã¢ããããããã«äœãå¿ èŠããæ€èšŒããã®ã«åœ¹ç«ã€ãšæããŸãã
ãããããŒãžããããšãæ€èšãããããã宣èšçãªæ§è³ªãæã€ããã€ãã®ä»£æ¿æ¡ãæäŸããããšãé¡ã£ãŠããŸãã ã¹ã³ãŒãã®ããªãã¯ãå©çšããããšã¯ãå®éã«ã¯ããŸããããŸããã
ãææ°ããããããŸããããããããé¡ãããããŸãã
ã¹ãã¬ãŒãã¯ã©ã¹ã§ã¯ãªããããã¯ã¹ã€ã³ãå®çŸ©ããã»ããããããã§ãã 次ã«ãå€æ°ãã¡ã€ã³ã¹ã¿ã€ã«ã·ãŒããŸãã¯å¥ã®æŽŸçããŒãã®åŸåã§ãªãŒããŒã©ã€ãã§ããŸãã ããã«ãããã°ãªãããã€ã³ããŒãããåŸãã°ãªããã®ã¬ã¿ãŒå¹ ãªã©ããªãŒããŒã©ã€ãã§ããŸãã
æ確ã«ããããã«ãããã§ã¯å€æ°ã«ã€ããŠã®ã¿è©±ããŸãã ãŸããã¡ã€ã³ã®ã¹ã¿ã€ã«ã·ãŒãã¯ãããŸãããããŒãããšã«ã¯ã©ã¹ããšã«1ã€ãããŸãã :)
ãã¶ãç§ã¯ããªãã®ææ¡ã«åŸã£ãŠããŸããããäŸãšããŠãç§ãã¡ã®ããŒãå€æ°ãã¡ã€ã«ã®1ã€ã¯æ¬¡ã®ããã«ãªããŸãïŒ
$panel-base-color: $neutral-light-color !default;
$panel-header-color: $base-color !default;
$panel-frame-border-width: 1px !default;
$panel-header-font-size: round($font-size * 1.15) !default;
$panel-body-border-color: $neutral-dark-color !default;
$panel-light-header-color: #000 !default;
$panel-light-header-background-color: #fff !default;
$panel-light-tool-background-image: 'tools/tool-sprites-dark' !default;
$panel-light-body-border-color: $neutral-dark-color !default;
$panel-ignore-frame-padding: true !default;
ãã®ãã¡ã€ã«ã¯ã4ã€ã®æ·±ãã®åºæ¬ããŒãã®ãã§ãŒã³ãæã€ããŒãã®ããŸããŸãªPanelå€ãèšå®ããŸãã ãããã®åºæ¬ããŒãã«ã¯Panelã®ç¬èªã®å€æ°å€ããããŸããããããã¯æåã«ããŒããããããããªãŒããŒã©ã€ãããŸãã ãŠãŒã¶ãŒããŒãããã®ããŒããã掟çããç¬èªã®å€ãæäŸããªãéãã
ãã®ãã¿ãŒã³ã¯ç¹°ãè¿ãããŸã_ãããã_:)
ããŠãã¡ã€ã³ã®å°ãªãã·ãŒãã§@panel-base-color
ããªãŒããŒã©ã€ãããŠã¿ãŸãããïŒ LESSå€æ°ã¯ã°ããŒãã«ã§ãããããæåŸã«çºçããå€æ°ãåè
ã§ãã
<strong i="7">@import</strong> 'theme.less';
@panel-base-color: red;
ããã§ãããŒãã§äœ¿çšãããŠããå ŽæãäžæžããããŸãã ã€ã³ããŒããã§ãŒã³ã®äžæµã§ããããªãŒããŒã©ã€ããã人ãããªãå Žåã¯ãæåã«èšå®ãããŠãããã®ãããã©ã«ãã«ãªããŸãã
ãã¡ã€ã³ã¬ã¹ã·ãŒããã¯ãããŸãã:)ããªãã®å©ããšææ¡ã«æè¬ããŸãããããã«ã€ããŠã¯ç€Ÿå ã§å€ãã®è°è«ããããå°ãã®éç¶ãåŸåããããŸãã ããã§ææ¡ããããã«ãããã©ã«ãã®å€æ°èšå®ãå¿ èŠã§ãããšèããŠãããšèšãã°ååã§ãã ãã®æ©èœã¯Sassã«ååšããè€éãã軜æžããããŒããæ§æããéã®æè»æ§ããŠãŒã¶ãŒã«æäŸããã®ã«éåžžã«åœ¹ç«ã€ããšãããããŸããã
ããããã¹ãŠããã®ãã«ãªã¯ãšã¹ããŸãã¯åæ§ã®æŽŸçç©ãåãå ¥ããããããšãæå³ããã®ãã©ãããç§ã¯èå³ããããŸããïŒ ããã奜ãŸãããªãå Žåã¯ãæ§æã埮調æŽã§ããã°å¹žãã§ãã
ãã¡ã€ã³ã¬ã¹ã·ãŒããã¯ãããŸãã:)
äžèšã®åçã®ãã¡ã€ã³ã®å°ãªãã·ãŒãããããŠãŒã¶ãŒã®å°ãªãã·ãŒãã®ãããããã«çœ®ãæããã ãã§ãã ãããŸã§ã®ãšãããSASS !default
ïŒæ§æãäœã§ããïŒã¯ãLESSã«ã¯ååšããªãåé¡ã解決ããããã«èæ¡ãããããã§ãã
@dongryphon ããã¡ããééã£ãŠããå¯èœæ§ããããŸããã @SomMeriãš@Soviutã«ãã£ãŠææ¡ããããœãªã¥ãŒã·ã§ã³ã䜿çšã§ããªãçç±ããŸã ç解ããŠããŸããã
å¥ã®èšãæ¹ãããã°ãã€ã³ããŒãããŠãããã代ããã«ãã¹ãŠã®å€æ°ãåãã·ãŒãã«ããå Žåãæ³åããŠã¿ãŠãã ããã ããã¯äºå®äžãã€ã³ããŒããè¡ãããšã§ãã ãããã£ãŠããã®ãããªç¶æ³ã§ãåãååã®2ã€ã®å€æ°å®£èšãããå Žåãã·ãŒãã®æåŸã®å®£èšãåªå ãããŸãã
@base-color: green;
div {
background: @base-color;
}
@base-color: red;
æåŸã«ããŒã¹ã«ã©ãŒãå床宣èšããããããdivã§äœ¿çšãããããŒã¹ã«ã©ãŒã¯èµ€ã«ãªããŸãã 次ã®ããã«ã³ã³ãã€ã«ãããŸãã
div {
background: red;
}
ããã¯ä»¥åã«åºãŠãããã®ã§ãå®éã«ã¯å®è£ ãããŠãããšæããŸããããŒãã¹ãã©ããã§ãããæãã§ãã人ãããã«ãªã¯ãšã¹ãããããããã€ãã®è°è«ã®åŸã§ãããã¯ç¡æå³ãªæ©èœã§ããããšã«åæããŸããã
ãããã§ããå¯äžã®ããšã¯ããŠãŒã¶ãŒãã€ã³ããŒãããåã«å€æ°ãå®çŸ©ããããšã§ãã ãã®åŸããŠãŒã¶ãŒããªãŒããŒã©ã€ããå®çŸ©ãããšãããã©ã«ãããããã®ããã«æ©èœããŸããããã¯ãã€ã³ããŒãããããã¡ã€ã«ã§ãã䜿çšåŸã«å®çŸ©ãããå Žåã§ããcssãšåãæ¹æ³ã§æåŸã®å®çŸ©ãååŸããããã§ãã
ã©ã€ãã©ãªã®ãŠãŒã¶ãŒã«ãšã£ãŠãã€ã³ããŒãåŸã«å€æ°ããªãŒããŒã©ã€ãããïŒãŸãã¯ã€ã³ããŒãåŸã«å€æ°ãã¡ã€ã«ãã€ã³ããŒãããïŒãšèšãã®ã¯ããã»ã©è² æ ã§ã¯ãããŸããããæ§æãè¿œå ããã®ã¯å°ãªãã§ããããã¯ãå°ãªãããšã®å©ç¹ã®1ã€ã§ããã sassãšåãéãå®è¡ããŸãããã»ãšãã©ã®å Žåãæ§æã¯åçŽã§ãã
ããã¯JavaScriptããã°ã©ããŒãèãããããããªãããšãšã¯å察ã§ããããã®èåŸã«ããèãæ¹ã¯ãcssã«è¿ããšããããšã§ãã
æ¶è²»è ã«æ³šæãæ€èšããããæ±ããããšãäžå¯èœãŸãã¯æãŸãããªãçç±ã«ã€ããŠè©³ããæããŠãã ããã 匷åãªãŠãŒã¹ã±ãŒã¹ãæã€æ©èœãåãå ¥ããŸãããèšèªãšè€éãã®è¥å€§åãåé¿ããããã«å³å¯ã«ããå¿ èŠããããŸãã
ïŒ1109ïŒ1104ïŒ313ãåç §
æ確ã«ããããã«ãç§ãã¡ã¯äžæ°ã«ãããŒããšèšã£ãŠããã®ã§ã¯ãããŸããã ç§ãã¡ã¯åœŒã®ãã®æ©èœããã§ã«ååšããŠããå¯èœæ§ãããããšã瀺ããããšããŠããŸãã
less-docsã«ããã€ãã®æ å ±ãè¿œå ããŸãã
ãã§ã«å©çšå¯èœãªïŒãå°ãªãæ¹æ³ãã§ïŒæ©èœïŒhttp://lesscss.org/features/#variables-feature-default-variablesïŒãéããã
_syntax_ãéè€ããŠããéãSASSã¯äžããäžã«ãå®è¡ãããŸãããLESSã¯å®è¡ããã代ããã«CSSã®ããã«åäœããããããã®æ··ä¹±ãé »ç¹ã«çºçãããšæããŸãã LESSã¯CSS+ïŒè¿œå æ©èœãåããCSSïŒã®ãããªãã®ã§ãããSASSã¯ãCSSæ§æãåããPHPãã®ãããªãã®ã§ãã ïŒå¿ èŠã«å¿ããŠïŒãã®åºå¥ãããæ¹æ³ãããã®ã ãããã
æ¶è²»è ã«æ³šæãæ€èšããããæ±ããããšãäžå¯èœãŸãã¯æãŸãããªãçç±ã«ã€ããŠè©³ããæããŠãã ããã 匷åãªãŠãŒã¹ã±ãŒã¹ãæã€æ©èœãåãå ¥ããŸãããèšèªãšè€éãã®è¥å€§åãåé¿ããããã«å³å¯ã«ããå¿ èŠããããŸãã
ãªããªããå³æžé€šã®ãŠãŒã¶ãŒïŒããã³æ¶è²»è
ïŒã«ãå³æžé€šã®ã³ãŒããèªåã§ç·šéããªãããã«æããããã§ãã !default
æ©èœããªããšããããšã¯ãããã2ã€ã®ããšã®ãããããå®è¡ããå¿
èŠãããããšãæå³ããŸããã©ã¡ããåãããã«æªãimoã§ãã
sassã¢ãããŒãã¯ãã©ã€ãã©ãªã1ã€ã®ãã¡ã€ã«ãæäŸããã ãã§ããããŠãŒã¶ãŒãã«ã¹ã¿ãã€ãºã§ããããšãæå³ããŸãã
my-color: red;
<strong i="15">@import</strong> "./my-library.less";
ãã以å€ã®ïŒ
<strong i="19">@import</strong> "./my-library-variables.less";
my-color: red;
<strong i="20">@import</strong> "./my-library-rules.less";
ãã®åé¡ãåèããå¿ èŠããããšæããŸãã
@arcaniså®éããªãããªããããæãã®ãããããŸããïŒ
ã©ã€ãã©ãªã¯2ã€ã®ã¹ã¿ã€ã«ã·ãŒããæäŸããå¿ èŠããããŸãã1ã€ã¯ããã©ã«ãå€æ°çšã§ããã1ã€ã¯å®éã®ã«ãŒã«çšã§ãã
sassã¢ãããŒãã¯ãã©ã€ãã©ãªãåäžã®ãã¡ã€ã«ãæäŸããã ãã§ããããšãæå³ããŸã
Lessã§ã¯ãããã¯ãŸã£ããåãã©ã€ãã©ãªèšèšã§ãã
<strong i="11">@import</strong> "./my-library.less";
@my-color: red;
ãLazy-Loadingãã®ããšãèŠéããŠããã ãã ãšæããŸãïŒããã¥ã¡ã³ãã§ã¯ã no, thanks!
ãã!default
ãšãŸã£ããåãäŸã䜿çšãããŠããŸãïŒã
ç§ã¯ããªããåã«ãé 延èªã¿èŸŒã¿ãã®ããšãèŠéããŠãããšæããŸã
@ Seven-phases-max WTFããã®éãã§ãã ããããç§ã¯ããããç§ã®è¿ä¿¡å šäœãåé€ããå¿ èŠããããŸãïŒãããŠã¡ããã©ããŸããïŒã ããŒãã¹ãã©ãããã€ã³ããŒãããŠãç¹å®ã®å€æ°ããªãŒããŒã©ã€ãããã ãã§ãããŸããããšèšã£ãŠããŸããïŒ
ç§ã¯ããªããä¿¡ããŠããŸããã§ããããããŠããã確ãããããã«ç§èªèº«ã®ãã¹ããããŸããã ã©ãããŠãããéããã®ïŒ ããã¯ãã«ã¹ã¿ãã€ãºãå«ãBootstrapã«é¢ãããã¹ãŠã®èšäºã§ãvariables.lessãã¡ã€ã«ãã³ããŒããŠç¬èªã®å€ãèšå®ããããšãæšå¥šããŠããããã ãšæããŸãããã¡ãããã©ã€ãã©ãªã«å€æ°ãè¿œå ãããšåé¡ãçºçããŸãã ãããŠãã€ã³ããŒãçŽåŸã«ã»ã¬ã¯ã¿ãŒãåºåãããŠãããããªå°è±¡ãåãããšæããŸãã å€æ°ã¯åžžã«ãã®ããã«ãé 延èªã¿èŸŒã¿ãããŸãããïŒ
ããã¯ãLessã§ããèŠèœãšãããæãéèŠãªæ©èœã®1ã€ã§ããå¿ èŠããããŸãã ãã®æ©èœã«ã€ããŠèšåããŠããLessãŸãã¯Lessã©ã€ãã©ãªã«é¢ããããã°æçš¿ãèŠãããšããããŸããã ããã®ã¹ã¬ããã®ãã¹ãŠãšããã¥ã¡ã³ãããã£ãŠãããããå®éã®ã©ã€ãã©ãªã§äœãæå³ããã®ãã¯ããã«ã¯ããããŸããã§ããã 以åã«å®£èšãããå€æ°ãåŸã§èšå®ããããšã§ãªãŒããŒã©ã€ãã§ãããšèª°ããèšã£ãŠããã ãã ãšæããŸãããã以åã«ã€ã³ããŒããããããã¥ã¡ã³ãã®å€æ°ã®è©äŸ¡ã«åœ±é¿ããããšã¯ãããŸããã§ããã
ä»ãŸã§æã«å ¥ããªãã£ããªããŠä¿¡ããããŸããã ããã«ãããåºæ¬çã«ãå°ãªãããã¥ã¡ã³ãã®æ§é ã«é¢ãããã¹ãŠãå€æŽãããããã¥ã¡ã³ãã«ã¯åºåã瀺ããªãå°ããªèšåããããŸãã
Lessã§!default
æ©èœã®ãªã¯ãšã¹ããéåžžã«å€ãã®ã¯ããã®æ©èœãçŽæçã«ç解ããããããã¥ã¡ã³ãã®ç°¡åãªäŸããç解ããããã人ãã»ãšãã©ããªããããããããŸããïŒæããã«ç§ãå«ãïŒã
å°ãªããšãã@seven-phases-maxã«ã€ããŠããäžåºŠèª¬æããŠããã ãããããšãããããŸãã
ãããŒã ããã§ããããã®éãã§ãã ç§ãããã¥ã¡ã³ãã誀解ããŸãããç§ã®æªãã§ãïŒ
@Soviutããªãã¯ãšãã§ããªã倩æã§ãïŒ SASS/LESSã§å€æ°å®£èšããã®ããã«æ©èœããããšãç§ã¯ç¥ããŸããã§ããã ããããšãïŒ
ç§ã¯ãŸã é¡ãå¹³ææã¡ããŠããããããã¯ç§ãLessã§æžããä»ã®ãã¹ãŠã®ãã®ã§ã¯æãããªæ¯ãèãã§ã¯ãªãã£ãã ç§ã®åé¡ã¯ããããè¡ãæ¹æ³ãç解ããŠããªã人ã ã«ãã£ãŠæžããã貧匱ãªäŸã®èšäºãèŠããšããããšã ã£ããšæããŸãã
ãŸãã次ã®ç¹ã«æ³šæããŠãã ããïŒ @spikesagalããªãã®ã¹ããŒãã¡ã³ãã«é¢ããéãïŒãå€æ°å®£èšãSASS / LESSã§ãã®ããã«æ©èœããããšãç§ã¯ç¥ããŸããã§ããã-ç§ã®ç¥ãéããå€æ°ã®åäœã¯2ã€ã®èšèªéã§åãã§ã¯ãããŸããã SASSãšLESSã¯ç©äºãéåžžã«ç°ãªã£ãŠè©äŸ¡ããŸãã
ãããŠåœŒãã¯Sassã«ç§»åããããã«BS4ã§ãã®æ©èœã殺ããŠããŸã...ïŒ-1ïŒãã®ç§»åã«ã€ããŠã¯ãŸã ããªãæ²ããã§ãã
ããã§ãããã¯å§ãŸããŸããããå€ãã®ïŒdefaultå€æ°ã®ããã®æŠãïŒ[twbs / bootstrapïŒ17418]
ãããšãSCSSãœãŒã¹ããªãããã®æ¹æ³ã§å€æŽããŠLessæ©èœã匷å¶çµäºããããšã¯ã§ããŸããã ïŒæè¡çã«ã¯ãããã¯ãæ©èœãïŒããçš®ã®ãåæãããæ¯ãèããã®ãããªïŒã§ã¯ãªããé 延è©äŸ¡ã®åºæ¬çãªç¹æ§/çµæã§ãïŒã BSã®ããŒãžã§ã³ãå°ãªãïŒããã¯ãããã«è²¢ç®ããææã®ãã人ã®æ°ã®åé¡ã§ãïŒãå°ãªããšã1ã€ã®ã°ããŒãã«å€æ°ãããéãããã€ã§ããã®å€æ°ããªãŒããŒã©ã€ãã§ããŸãã
è¯ãã ããŒãã¹ãã©ããã®å ¬åŒv4-alphaã¯Sassã«ç§»åããŸããã ããã¯ãå°ãªããšãç§ã®ç解ã§ã¯ãå ¬åŒããã¥ã¡ã³ãã§ã¯æ®ºå®³ãå°ãªããªã£ãŠããŸã-ããã¯ãSassã«ã¯é 延èªã¿èŸŒã¿å€æ°ãªã©ããªãããããã®æ©èœã®ãµããŒãã殺害ããããšãæå³ããŸãã ãããã¯ïŒdefaultã®ã¿ããµããŒãããŸããããã¯ãããæå³ã§ã次ã®ããšãæå³ããŸãã ïŒdefaultãçç¥ããã ãã§å€æ°ãäœæã§ããŸããããªãé¢åã§ããã¡ã€ã«å ã®darnã»ã¬ã¯ã¿ãŒå šäœããªãŒããŒã©ã€ãããå¿ èŠããããŸãã察åŠããŠãã ãããã
ããã¯ãSassã«ã¯é 延èªã¿èŸŒã¿å€æ°ãªã©ããªãããããã®æ©èœã®ãµããŒããçµäºããããšãæå³ããŸãã
ãŸããããã¯ã圌ãã¯ããŒãã¹ãã©ããã§ããã殺ãããšããæå³ã ãã§ãïŒããã¯æããã«ãã®ã¹ã¬ããã®ç¯å²å€ã®ãã®ã§ã-BSã®LessããŒãžã§ã³ããªãéãã_this_ãªããžããªã®ããŒãã¹ãã©ããæ©èœãæ°ã«ããå¿ èŠã¯ãããŸãããïŒïŒã
ãã®è°è«ã¯ãããŒãã¹ãã©ããã§å€æ°ããªãŒããŒã©ã€ãããããšã«é¢ãããã®ã ã£ãã®ã§...
ç§ãã¡ã¯ããå°ãªãïŒsmileïŒã«åºå·ããŠããŸã
æåã«è¿°ã¹ããžã¬ã³ãã®ãŠãŒã¹ã±ãŒã¹ããããŸãã 次ã®ç°¡ç¥åãããäŸãèããŠã¿ãŸãããã
<strong i="8">@font_size__h1</strong> = 30px;
@font_size__h1
宣èšã䜿çšããå¥ã®LESSãã¡ã€ã«ãå«ããã©ã°ã€ã³ãæã£ãŠããŸãã ã ããç§ã¯ããã<strong i="12">@import</strong> (reference) "path/to/file.less";
ããŸãã åé¡ãããŸãããå©çšå¯èœã«ãªããŸããã@font_size__h1
ãå®çŸ©ãããŠããªãæ°ãããµã€ãã«æã¡èŸŒã¿ãŸãã ãã®æç¹ã§ãã @font_size__h1
ãå®çŸ©ãããŠããå Žåã¯ããã®å€ã䜿çšããŸããå®çŸ©ãããŠããªãå Žåã¯ãããã§å®çŸ©ããå€ã䜿çšããŸãããšèšããšããã§ããããç§ãèŠãéããé ç®3ã¯çŸåšäžå¯èœã§ãã
@theMikeD
ç§ãèŠãéããé ç®3ã¯çŸåšäžå¯èœã§ãã
ã¹ã¬ãããèªãã ããã«ã¯èŠããŸããïŒ
<strong i="10">@import</strong> "path/to/file.less";
<strong i="11">@import</strong> "here.less"; // if it's not defined <elsewhere>, then use the value I define <here>
<strong i="12">@import</strong> "elsewhere.less";
ãã¡ãããããã¯æ¬¡ã®ããã«æžããããšãã§ããŸãã
<strong i="16">@import</strong> "path/to/file.less"; // <- define default value there
@font-size-h1: foo; // if it's not defined here then use the value defined above
ããã¯åºæ¬çã«http://lesscss.org/features/#variables-feature-default-variablesãšåãäŸã§ãã
ãããç§ã¯ã¹ã¬ãããèªã¿ãŸããã ããªãã®äŸã«ã¯ç§ã®è³ªåãéã«ãªã£ãŠããã®ã§ãããªãã¯ç§ãäœãæ±ããŠããã®ãç解ããŠããªãããã§ãã
ãã¡ãããããã¯æ¬¡ã®ããã«æžããããšãã§ããŸãã
@import "path / to / file.less"; //<-ããã«ããã©ã«ãå€ãå®çŸ©ããŸã
@ font-size-h1ïŒfoo; //ããã§å®çŸ©ãããŠããªãå Žåã¯ãäžèšã§å®çŸ©ãããå€ã䜿çšããŸã
ããã¯ç§ãå¿
èŠãšããŠãããã®ã®å察ã§ãã ããã«ããã path/to/file.less
ã®@font-size-h1
ã®å€ããäœããã£ãŠãããŒã«ã«å€ã§äžæžããããŸãã å¿
èŠãªã®ã¯ã次ã®å Žåã«ã®ã¿äœ¿çšãããããŒã«ã«ãã¡ã€ã«ã®å€ã§ãã
aïŒ path/to/file.less
ãããŒããããŠããªãããŸãã¯
bïŒ'@ font_size__h1 is not set in
path / to/file.less`ã®å€
IOW @font-size-h1: foo;
ã®ããŒã«ã«å€ã¯åžžã«ããŒã«ã«ãã¡ã€ã«ã«ååšããŸããã path/to/file.less
ã«èšå®ãããŠããå Žåã¯ãªãŒããŒã©ã€ãããå¿
èŠããããŸã
ãããã«ãããç§ã¯æšå€è§£æ±ºçãèŠã€ããŸãããããã¯ãæåã«ããŒã«ã«å€ãå²ãåœãŠã次ã«@import
ã¹ããŒãã¡ã³ãããã¡ã€ã«ã®æåã§ã¯ãªãæåŸã«çœ®ãããšã§ãã èŠã€ãã£ãå Žåã¯ãããŒã«ã«å€ãäžæžãããŸãã
ãšã«ããããããšãã
ããªãã¯ç§ãäœãæ±ããŠããã®ãç解ããŠããªãããã§ã
ãã¥ãŒãæŽæ°ããããã«ãå€æ°ã®å°ãªãåºæ¬ããå§ããããšããå§ãããŸãã
ïŒããã¯ããã¹ãŠãåœä»€åã®C / PHPã®ãããªæ¹æ³ã§èããããšããŠããããã«èŠããã®ã«å¯ŸããLess / CSSã§ã¯å®å
šã«ã宣èšåã®éããŸãã§ããããã§ãïŒã
ããæ°å¹Žãæ»ã¬ã»ã©è©±ãããŠããŸãã!default
ã¯ããã€ãã£ãã®Lesså€æ°ã®ãªãŒããŒã©ã€ããšæ¯èŒããå Žåãäœãæ°ãããã®ãè¿œå ã§ããŸããã éç®ã ïŒç§ãã¡ã¯ä»¥åã«äœåºŠãããã«ããŸããïŒåœŒãLessã§!default
ã®ãŠãŒã¹ã±ãŒã¹ãèŠã€ãããšæããªããããã¯Lesså€æ°ã®ã»ãã³ãã£ã¯ã¹ã®åœŒã®èª€è§£ã«ä»ãªããŸããïŒã
å¿ èŠãªã®ã¯ã次ã®å Žåã«ã®ã¿äœ¿çšãããããŒã«ã«ãã¡ã€ã«ã®å€ã§ãã
aïŒpath/to/file.less
ãããŒããããŠããªãããŸãã¯
bïŒ@ font_size__h1
path/to/file.less
ã«èšå®ãããŠããªã
次ã«ãããã¯åã«å察ã§ãïŒ
@font-size-h1: foo;
<strong i="27">@import</strong> "path/to/file.less";
å€ç°ïŒ
...ç§ãèšã£ãããã«ãããã¯ç§ãçéžããå Žæã§ãã
ç§ãæžããèšäºãææ¡ãã@seven-phases-maxãããã«ãªã³ã¯ããŠããã®ãèŠãŸããã ðç§ãã¡ãä¿¡é ŒããŠãã ãããããªããæ±ããŠãããã®ã¯ãã§ã«ååšããŠããŸãïŒ ãã ããLessã®å€æ°è©äŸ¡ãç解ããŠããããã©ã®ããã«/ãªãååšããã®ããç解ããå¿ èŠããããŸãã
ããŒã¿ã°ãªããã§ããã³ã³ããŒãã³ãããããŸãã ãã®ã³ã³ããŒãã³ãã«ã¯ãã³ã³ããŒãã³ãããã±ãŒãžã§å®çŸ©ãããããã©ã«ãã®ã¹ã¿ã€ã«ãå¿ èŠã§ãã ãã ããå€éšããã®ç¹å®ã®å€æ°ããã§ã«å®çŸ©ãããŠããå Žåã¯ããã®å€æ°ãåªå ããå¿ èŠããããŸãã
app.less
/grid/grid.less
ã°ãªããã¯ã³ã³ããŒãã³ãã§ãããããããã«äœããè¿œå ããããšããŸãã¯grid.lessãã¡ã€ã«ã®åŸã«ã³ãŒããè¿œå ããããšãå¿ããŠãã ããã
ãã®åé¡ãã©ãã ãã«ããŒããŠãããããããŸããã Scssã¯ãæ£åœãªçç±ã§ãã®æ©èœãæäŸããŠããŸãã
@ geri777
ãã ããå€éšããã®ç¹å®ã®å€æ°ããã§ã«å®çŸ©ãããŠããå Žåã¯ããã®å€æ°ãåªå ããå¿ èŠããããŸãã
CSSã®ããã«è©äŸ¡ãå°ãªãã
.css {
--color: blue;
color: var(--color); // --color will be red
--color: red;
border-color: var(--color); // --color will still be red, red is the scope's final value
}
.less {
<strong i="10">@color</strong>: blue;
color: @color; // <strong i="11">@color</strong> will be red
<strong i="12">@color</strong>: red;
border-color: @color; // <strong i="13">@color</strong> will still be red, red is the scope's final value
}
````
Scss, instead, doesn't mimic CSS evaluation and instead evaluates more like, say, PHP.
```scss
.scss {
$color: blue;
color: $color; // $color will be blue
$color: red;
border-color: $color; // $color will be red
}
ãããã£ãŠãSass / SCSSã§ã¯ãã«ãŒãå€æ°ã®å€ããªãŒããŒã©ã€ãããããã«ã次ã®2ã€ã®ããšãå®è¡ããå¿ èŠããããŸãã
!default
ã®ã¿ã°ãä»ããå¿
èŠããããŸãã®ããã«ïŒ
// main.scss
<strong i="22">@import</strong> "overrides.scss";
<strong i="23">@import</strong> "library.scss";
// overrides.scss
$color: red;
// library.scss
$color: blue !default;
.scss {
color: $color;
}
Lessã§ã¯ãããŒãèšå®ãã¯ããã«ç°¡åã§ãã ããªãã¯ïŒéåžžïŒããªãã®ã©ã€ãã©ãªã«ã€ããŠäœãå€æŽããå¿ èŠã¯ãããŸãããããªãã¯ãã ããªãã®ãªãŒããŒã©ã€ããåŸã«çœ®ãå¿ èŠããããŸãã ããªãã¯ãã äžã€ã®ããšãããå¿ èŠããããŸãã
// main.less
<strong i="27">@import</strong> "library.less";
<strong i="28">@import</strong> "overrides.less";
// overrides.less
<strong i="29">@color</strong>: red;
// library.less
<strong i="30">@color</strong>: blue;
.less {
color: @color;
}
ãããã£ãŠãLessã¯åžžã«æçµå€ãåãå
¥ããããã !default
ã¯å¿
èŠãããŸããã
CSSã®ã«ã¹ã±ãŒãã®ããã«è©äŸ¡ãå°ãªãããããšãèããŠãã ããã ããã¯ããŸããããŸãã æçµå®£èšãåã¡ãŸãã
æãåèã«ãªãã³ã¡ã³ã
ç§ãæžããèšäºãææ¡ãã@seven-phases-maxãããã«ãªã³ã¯ããŠããã®ãèŠãŸããã ðç§ãã¡ãä¿¡é ŒããŠãã ãããããªããæ±ããŠãããã®ã¯ãã§ã«ååšããŠããŸãïŒ ãã ããLessã®å€æ°è©äŸ¡ãç解ããŠããããã©ã®ããã«/ãªãååšããã®ããç解ããå¿ èŠããããŸãã