рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб:
foo {
-webkit-filter: grayscale(100%);
}
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде sass 3.2.10:
foo {
-webkit-filter: grayscale(100%); }
рд▓реЗрдХрд┐рди рд▓рд┐рдмрд╛рд╕ рдорд╛рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд (4dd61de67aa0284cd8da1e8f13e2f6b63b990041 рд╡рд░реНрддрдорд╛рди рдореЗрдВ):
/private/tmp/test/grayscale.scss:2: error: argument `$color` of `grayscale($color)` must be a color
Backtrace:
/private/tmp/test/grayscale.scss:2, in function `grayscale`
/private/tmp/test/grayscale.scss:2
рдпрд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдШрд░реНрд╖ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
рд╣рд╛рдВ, рдореИрдВрдиреЗ рднреА рдпрд╣реА рдорд╛рд░рд╛ рд╣реИред
рдпрд╣ рднреА рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рд░ рд░рд╣рд╛ рд╣реИред
: +1:
рдЗрд╕ рдкрд░ рдХреЛрдИ рдЦрдмрд░?
рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ @extend
рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛!
рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рднреА рд░рд╣рд╛ред
: +1:
рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ darken()
рдФрд░ saturate()
рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрд╕рдкрд╛рд╕ рдХреЛрдИ рдХрд╛рдо рд╣реИ?
рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдорд┐рд▓рд╛, рдЖрдк рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдмреАрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдбреНрд░реЙрдк-рдЗрди рд╕рдорд╛рдзрд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
<strong i="6">@function</strong> grayscale($value) {
<strong i="7">@return</strong> #{ "grayscale(" + $value + ")" };
}
рдЖрдк рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЙрдкрд╕рд░реНрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
<strong i="11">@mixin</strong> filter($properties) {
// Your vendor prefixing stuff here, I am using Bourbon:
<strong i="12">@include</strong> prefixer(filter, $properties, webkit moz spec);
}
рдлрд┐рд░, рдЖрдк рдмрд╕ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
<strong i="16">@include</strong> filter(grayscale(100%));
рдЗрд╕реЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдбрд╛рд▓ рд░рд╣реЗ рд╣реИрдВ:
https://developer.mozilla.org/en-US/docs/Web/CSS/filter
@kennethormandy рдХреНрдпрд╛ рдЖрдкрдХреЛ SASS рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдо рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд▓реЗрддрд╛ рд╣реИ?
<strong i="7">@function</strong> darken($color, $amount) {
<strong i="8">@return</strong> #{ "darken(" + $color + "," + $amount ")" };
}
.selector {
border: 1px solid darken(#f0f1f4, 3);
}
рдЖрдЙрдЯрдкреБрдЯ:
border: 1px solid darken(#f0f1f4,3"");
... рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ darken
рдЖрдЙрдЯрдкреБрдЯ рднреА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдирдпрд╛ рд░рдВрдЧ рдореВрд▓реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд╛рд╣, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ @restlessdesign , рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ darken()
рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛редdarken()
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рддреЛ рдмрд╕ рд▓рд┐рдЦреЗрдВ:
.selector {
border: 1px solid darken(#f0f1f4, 3);
}
рдФрд░ рдЖрдкрдХреЛ рдорд┐рд▓реЗрдЧрд╛
.selector {
border:1px solid #e7e9ee;
}
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕реАрдПрд╕рдПрд╕ рдлрдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╕рд╛рд╕ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЬреЛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рд╡рд╣ рдХреЗрд╡рд▓ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕реАрдПрд╕рдПрд╕ рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реИ ред рдпрджрд┐ рдЖрдк Sass рдХреЗ рдбрд╛рд░реНрдХрдиреЗрд╕ рдпрд╛ рд╕реИрдЪреБрд░реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ рд╣реА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ Sass рдбреЙрдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ greyscale()
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд╣реА рдЯреНрд░реИрдХ рдкрд░ рд╣реИрдВред CSS darken()
рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреА рдУрд╡рд░рд╕реН рд▓рд╛рдЗрдХрд╕ 'рдмрд┐рд▓реНрдЯ-рдЗрди рдбрд╛рд░реНрдХрди рдлрд╝рдВрдХреНрд╢рди рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдореЗрд░реА рдЧрд▓рддреАред рдореИрдВ рдШреЛрдВрд╕рд▓реЗ рддрд░реАрдХреЛрдВ рдерд╛, рдФрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ adjust_hue
рдХреЗ рдмрдЬрд╛рдп adjust-hue
рд╣реИ, рдЬреЛ рдореЗрдВ рд╕реЛрдкрд╛рдиреА darken()
ред рдХреНрд░реВрд░, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рд┐рдмрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ рдпрд╛ рдЪреБрдкрдЪрд╛рдк рдЕрдирджреЗрдЦреА рдХреЙрд▓ рдХреЗ рдмрдЬрд╛рдп рдЕрдорд╛рдиреНрдп рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЧрд╛! рдЭреВрдареЗ рдЕрд▓рд╛рд░реНрдо рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред
+1
рдпрджреНрдпрдкрд┐ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдзрдиреНрдпрд╡рд╛рдж @kennethormandy) рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЦрдмрд░ рд╣реИ? рдКрдкрд░ рджрд┐рдП рдЧрдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЛ рдмрд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ =)
+1
+1
+1
рдзрдиреНрдпрд╡рд╛рдж @kennethormandy рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд▓рд┐рдП
+1ред рд╡реИрд╕реЗ: рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @kennethormandy ред
рдмрд╕ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдореБрджреНрджрд╛ (рдФрд░ рдмрдВрдж) рдЦреЛрд▓рд╛ред рдпрд╣ рд╕рд╛рдл рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдУрд╡рд░рд▓реИрдк рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЬреИрд╕реЗ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рдПрд╕ рдХреА рдПрдХ рдореМрд▓рд┐рдХ рдкрд╛рд░реА рд╣реИред
рд╣рд╛рдБ @kennethormandy , рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╡рд╛рд╕реНрддрд╡рд┐рдХ grayscale()
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдорд╛рд░рддреЗ рд╣реИрдВ рдФрд░ рдЬреЛ рдмреЗрдХрд╛рд░ рд╣реИ! рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЬрд▓реНрдж рд╣реА рдЗрд╕ рдкрд░ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реБрдзрд╛рд░ рдЖ рдЬрд╛рдПрдЧрд╛ред
рдПрдХ рдЕрдиреНрдп рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓: рдХреЗ рдмрдЬрд╛рдп filter: invert()
рдХрд╛ рдЙрдкрдпреЛрдЧ filter: #{"invert()"}
ред рдЖрдк рдЬреЛ рдЪрд╛рд╣реЗрдВ рдЙрджреНрдзрд░рдгреЛрдВ рдХреЗ рднреАрддрд░ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рд╢рдмреНрджрд╢рдГ рд╣реЛрдЧрд╛ред
рдареАрдХ рд╣реИ, рдореБрдЭреЗ рджреЗрдЦрдиреЗ рджреЛ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ 3.0 рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╢реБрдХреНрд░рд┐рдпрд╛ @tamlyn! рдореИрдВ рд╕реНрдХрд╛рдЙрдЯ.рдПрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрднреА рднреА рд╕реИрд╕ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рддреЗрдЬ, рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рд╣реИред
@ рдлрд╝рд┐рд▓реНрдЯрд░ рдлрд╝рд┐рд▓реНрдЯрд░ ($ рдлрд╝рд┐рд▓реНрдЯрд░, $ рдореВрд▓реНрдп) {
@ рдЧреНрд░реЗрдЯ # {$ рдлрд╝рд┐рд▓реНрдЯрд░} # {"(" + $ рдореВрд▓реНрдп + ")"}
}
рдЙрдкрд╕рд░реНрдЧреЛрдВ $:
"-Webkit-",
"-Moz-",
"-рдПрдордПрд╕-",
"-O-",
рд╢реВрдиреНрдп;
@mixin рдЙрдкрд╕рд░реНрдЧрдХрд░реНрддрд╛ ($ рд╕рдВрдкрддреНрддрд┐, $ рдореВрд▓реНрдп) {
@ $ рдЙрдкрд╕рд░реНрдЧреЛрдВ рдореЗрдВ $ рдЙрдкрд╕рд░реНрдЧ {
{{$ рдЙрдкрд╕рд░реНрдЧ} # {$ рд╕рдВрдкрддреНрддрд┐}: $ рдореВрд▓реНрдп;
}
}
@restlessdesign рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдореБрдЭреЗ рдпрд╣ рдмрд╣реБрдд рджреЗрд░ рд╕реЗ рдкрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди, рдореБрдЭреЗ рдмрд╕ рдпрд╣реА рдореБрджреНрджрд╛ рдерд╛ рдФрд░ рдореЗрд░рд╛ рдХрд╛рдо рдлрд╝рд┐рд▓реНрдЯрд░ рдлрдВрдХреНрд╢рди рдХреЛ рдХреЛрдЯ рдХрд░рдирд╛ рдерд╛ рдФрд░ рдлрд┐рд░ рдЙрд╕ рдкрд░ unquote () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд▓рд┐рдЦрд╛:
* {
filter: unquote("filter-function(values)")
}
рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдПрдХ рдЕрдиреНрдп рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓: рдХреЗ рдмрдЬрд╛рдп
filter: invert()
рдХрд╛ рдЙрдкрдпреЛрдЧfilter: #{"invert()"}
ред рдЖрдк рдЬреЛ рдЪрд╛рд╣реЗрдВ рдЙрджреНрдзрд░рдгреЛрдВ рдХреЗ рднреАрддрд░ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рд╢рдмреНрджрд╢рдГ рд╣реЛрдЧрд╛ред