Libsass: рдЯрд╛рдЗрдк рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рдЫрджреНрдо-рд╡рд░реНрдЧреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдЬреВрди 2018  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sass/libsass

[type] рдЪрдпрдирдХрд░реНрддрд╛ рд╕реЗ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╕рдордп, рдпрджрд┐ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдЫрджреНрдо-рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЪрдпрдирдХрд░реНрддрд╛ рдЧрд▓рдд рдХреНрд░рдо рдореЗрдВ рдореБрджреНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред

рдЗрдирдкреБрдЯ.рдПрд╕рд╕реАрдПрд╕рдПрд╕

%button-styles {
  color: red;

  &:focus {
    color: blue;
  }
}

[type="button"] {
  <strong i="8">@extend</strong> %button-styles;
}

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо

рд▓рд┐рдмрд╕рд╛рд╕ 3.5.4

[type="button"] {
  color: red;
}

:focus[type="button"] {
  color: blue;
}

рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо

рд░реВрдмреА рд╕рд╛рд╕ 3.5.6

[type="button"] {
  color: red;
}

[type="button"]:focus {
  color: blue;
}

рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА:

$ node-sass --version
node-sass   4.9.0   (Wrapper)   [JavaScript]
libsass     3.5.4   (Sass Compiler) [C/C++]

рдореИрдВрдиреЗ selector-unify рд╕рд╛рде рдХреБрдЫ рдбрд┐рдмрдЧ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рднреА рдЪрд▓рд╛рдП рдФрд░ рджреЗрдЦрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВрдиреЗ рдПрдХ рддрддреНрд╡ рдЪрдпрдирдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдСрд░реНрдбрд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рдХрд╛рд░ рдЪрдпрдирдХрд░реНрддрд╛ рдиреЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ред

@debug(selector-unify('button', ':focus'));
// button:focus

@debug(selector-unify(':focus', 'button'));
// button:focus

@debug(selector-unify('[type="button"]', ':focus'));
// [type="button"]:focus

@debug(selector-unify(':focus', '[type="button"]'));
// :focus[type="button"]

рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рдореИрдВ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ!

Bug - @extends Bug - Confirmed Dev - Test Written

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рдмрдЧ рд╣реИ , рдмрд╕ рдЦреБрдж рдХреЛ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ libsass рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддреЗ рд╕рдордп рдкрддрд╛ рдЪрд▓рд╛ (рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдпрд╣ рдмрдЧ рдирд╣реАрдВ рдерд╛)ред рдпрд╣ рдЖрдкрдХреЛ рджреЗрдЦреЗ рдмрд┐рдирд╛ рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рддреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдпрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
https://www.sassmeister.com/

рдареАрдХ рд╣реИ, рдХрд▓ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдмреНрд░реЗрдирдлрд╛рд░реНрдЯ рдерд╛, рдиреАрдЪреЗ рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдСрд░реНрдбрд░ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛)ред
рд▓реЗрдХрд┐рди рдореВрд▓ рдмрдЧ рдЕрднреА рднреА рдЦрдбрд╝рд╛ рд╣реИред

рдореИрдВрдиреЗ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рднреА рдХрд┐рдП, рдФрд░ рдЙрдирдХреЗ рднреАрддрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдФрд░ рднреА рддрд░реАрдХреЗ рд╣реИрдВ, рдЧрд▓рдд рдХреНрд░рдо рдореЗрдВ рдореБрджреНрд░рд┐рдд рднреА рд╣реЛрддреЗ рд╣реИрдВ:
рд▓рд┐рдмрд╕рд╛рд╕:


%testextend {
  background: red;
  &.hoverclass {
    background: blue;
  }
}

%testextend {
  background: red;
  &:hover {
    background: blue;
  }
}

.wrapper {
  &.inner {
    <strong i="15">@extend</strong> %testextend;
  }
}

рдЖрдЙрдЯрдкреБрдЯ:


.wrapper.inner {
  background: red;
}

.hoverclass.wrapper.inner {
  background: blue;
}

.wrapper.inner {
  background: red;
}

.wrapper.inner:hover {
  background: blue;
}

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ... рд╣реЛрд╡рд░рдХреНрд▓рд╛рд╕ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдореБрджреНрд░рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
рдЕрд╕рд▓ рдореЗрдВ, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдорд╛рдиреНрдп рдПрд╕рдПрдПрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рднреА рдПрдХ рдмрдЧ рд╣реИред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рдмрдЧ рд╣реИ , рдмрд╕ рдЦреБрдж рдХреЛ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ libsass рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддреЗ рд╕рдордп рдкрддрд╛ рдЪрд▓рд╛ (рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдпрд╣ рдмрдЧ рдирд╣реАрдВ рдерд╛)ред рдпрд╣ рдЖрдкрдХреЛ рджреЗрдЦреЗ рдмрд┐рдирд╛ рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рддреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдпрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
https://www.sassmeister.com/

рдареАрдХ рд╣реИ, рдХрд▓ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдмреНрд░реЗрдирдлрд╛рд░реНрдЯ рдерд╛, рдиреАрдЪреЗ рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдСрд░реНрдбрд░ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛)ред
рд▓реЗрдХрд┐рди рдореВрд▓ рдмрдЧ рдЕрднреА рднреА рдЦрдбрд╝рд╛ рд╣реИред

рдореИрдВрдиреЗ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рднреА рдХрд┐рдП, рдФрд░ рдЙрдирдХреЗ рднреАрддрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдФрд░ рднреА рддрд░реАрдХреЗ рд╣реИрдВ, рдЧрд▓рдд рдХреНрд░рдо рдореЗрдВ рдореБрджреНрд░рд┐рдд рднреА рд╣реЛрддреЗ рд╣реИрдВ:
рд▓рд┐рдмрд╕рд╛рд╕:


%testextend {
  background: red;
  &.hoverclass {
    background: blue;
  }
}

%testextend {
  background: red;
  &:hover {
    background: blue;
  }
}

.wrapper {
  &.inner {
    <strong i="15">@extend</strong> %testextend;
  }
}

рдЖрдЙрдЯрдкреБрдЯ:


.wrapper.inner {
  background: red;
}

.hoverclass.wrapper.inner {
  background: blue;
}

.wrapper.inner {
  background: red;
}

.wrapper.inner:hover {
  background: blue;
}

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ... рд╣реЛрд╡рд░рдХреНрд▓рд╛рд╕ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдореБрджреНрд░рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
рдЕрд╕рд▓ рдореЗрдВ, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдорд╛рдиреНрдп рдПрд╕рдПрдПрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рднреА рдПрдХ рдмрдЧ рд╣реИред

@bskibinski рдореИрдВ рддреБрдореНрд╣реЗрдВ рдмрдЪреНрдЪрд╛ рдирд╣реАрдВ, рдпрд╣ рд╕рдЪрдореБрдЪ рдЖрдЬ рдореЗрд░рд╛ рдЬрдиреНрдорджрд┐рди рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдХрд┐рд╕реА рдХреЛ рдЖрдЦрд┐рд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рдЙрддреНрд╕рд╛рд╣рд┐рдд рдерд╛, рднрд▓реЗ рд╣реА рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореИрдВ рдЕрдХреЗрд▓рд╛ рдирд╣реАрдВ рд╣реВрдВ! рдЕрдм рддрдХ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдЬрдиреНрдорджрд┐рдиред ЁЯОВЁЯОЙ

@ashleykolodziej рд╣рд╛рд╣рд╛ рд╣реИрдкреНрдкреА рдХреЗрдХ рдбреЗ! рдЦреБрд╢реА рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ;)

рд╕рд╛рде рд╣реА, рдореЗрд░реА рджреВрд╕рд░реА рдмрдЧ рдЦреЛрдЬ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрдЧ (рд▓рдВрдмрд╛ рджрд┐рди) рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдкрдХрд╛ рдЕрднреА рднреА рд╣реИ!
рдЖрдЗрдП рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╣реА рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛! :)

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

bdkjones picture bdkjones  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

xzyfer picture xzyfer  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

delijah picture delijah  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

xzyfer picture xzyfer  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JohnMica picture JohnMica  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ