10 PostCSS рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЬреЛ рдЖрдкрдХреЗ рд▓реЗрдЖрдЙрдЯ рд╕рдордп рдХреЛ рдмрдЪрд╛рдПрдВрдЧреЗ


рд╣рдо, рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдХреЗ рдкрд╛рд╕ рдРрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╢реНрд░реЗрдгреА рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рдмрджрд▓реЛред рдЗрд╕ рддрд░рд╣ рдХреЗ рдФрдЬрд╛рд░реЛрдВ рдХреЗ рдкреНрд░рддрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИ - "рд╣рд░ рдЬрдЧрд╣ рдЗрд╕ рдмрд╛рдд рдХреЛ рднрдЯрдХрд╛рдиреЗ рдХреА рднрд╛рд╡рдирд╛ рд╕реЗ рдЙрдиреНрдорд╛рдж рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ" рдФрд░ "рдпрджрд┐ рдпрд╣ рд╡реНрдпрд╡рд╕рд╛рдп рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрд╣рд╛рдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ"ред рд▓реЗрдХрд┐рди, рд╡реИрд╕реЗ рднреА, рдЖрдЬ рд╣рдо PostCSS рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ - рдРрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХред


рдкреНрд░рдЪрд╛рд░ рд▓рд╣рд░ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЧреБрдЬрд░ рд░рд╣реА рд╣реИ, рд╣рд╛рд▓ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ PostCSS рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИред рдХрдИ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЛ рд╕рдмрд╕реЗ рд╕рд╛рдзрд╛рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдЬрд╣рд╛рдВ рд▓реЛрдЧ рдлреИрд╢рдиреЗрдмрд▓ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВред


PostCSS рдмрдирд╛рдо SASS


рдУрд╣ ... рдЬрд╛рд╣рд┐рд░ рд╣реИ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрджред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рдПрдХ рджреБрд░реНрд▓рдн рдЯрд╛рдЗрдкрд╕ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдорд┐рд▓рд╛ред SASS рдпрд╛ рдореЗрд░рд╛ рдкрд╕рдВрджреАрджрд╛ LESS, рдХрдо рд╕реЗ рдХрдо рдЕрдХреНрд╕рд░ рд╕реНрдЯрд╛рдЗрд▓рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рджреЛрдиреЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдИ рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдирд┐рдЪреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреЛрдИ рдиреНрдпреВрдирддрдо рд╕реЗрдЯ - рдиреЗрд╕реНрдЯрд┐рдВрдЧ, рдЪрд░, рдЖрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдПрдХ рддрд░реАрдХрд╛ рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп, рдпреЗ рдЙрдкрдХрд░рдг рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рд╣рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред


рд▓рдЧрднрдЧ рджреЛ рдпрд╛ рддреАрди рд╕рд╛рд▓ рдкрд╣рд▓реЗ PostCSS рдХреА рддреБрд▓рдирд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░реЛрдВ рд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдХреА рдЬрд╛рддреА рдереАред рдФрд░ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдПрдХ рд╣реА рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдмрдирд╛рдПрдВ рдЬреЛ рд╢реБрджреНрдз рд╕реАрдПрд╕рдПрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдВрдЧреЗред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдПрдХ рд╡реНрдпрд╛рдкрдХ рджреНрд░рд╡реНрдпрдорд╛рди рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ PostCSS рдХреА рдорджрдж рд╕реЗ рд╕рднреА рдиреЗ рдХреБрдЫ рдЕрд▓рдЧ рдХрд┐рдпрд╛ред рдЕрдирдЧрд┐рдирдд рдЕрдЬреНрдЮрд╛рдд рдкреНрд▓рдЧрдЗрдиреНрд╕, рд▓рд╛рдЦреЛрдВ рд╕рдВрдпреЛрдЬрди, рдФрд░ рдЗрд╕ рдпрд╛ рдЙрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдИ рднреА рдпрд╣ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдо рдпрд╛ рдПрдорд╛рдХреНрд╕ рдХреА рддрд░рд╣ рд╣реИ - рдЖрдк рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╕реНрдкреЗрд╕рд╢рд┐рдк рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред


рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЗрди рддреБрд▓рдирд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ PostCSS рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рд╣рдореЗрдВ рд╣рдорд╛рд░реЗ CSS рдХреЛ рд▓реЗрдиреЗ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреЛрдИ рднреА рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП SASS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдмрд╛рдж, PostCSS рдХреЛ рдЪрд┐рдкрдХрд╛рдПрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░реЗрдВред рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХрд╛ рдЦрдВрдбрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред


рдкреБрд░рд╛рдиреЗ рдХрд╛ рдорддрд▓рдм рдмреЗрдХрд╛рд░ рдирд╣реАрдВ рд╣реИ


рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдВрдпреЛрдЬрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлреИрд╢рдиреЗрдмрд▓ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╡рд╣ рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдФрд░ рдЙрдирдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрднреА рднреА рдирд╣реАрдВ рд░реБрдХрддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХреЛрдИ рддрд╛рдЬрд╛ рдХрдорд┐рдЯ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ - рд╣рдо рдпрд╣ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдкреБрд░рд╛рдирд╛ рд╣реИ рдФрд░ рдЕрдм рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВ - рдЖрдИрдПрд▓ рдлреЗрдЯ рдирд╣реАрдВред рдореИрдВ рдЕрддрд┐рд╢рдпреЛрдХреНрддрд┐ рдХрд░реВрдВрдЧрд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЦреБрдж рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рдХрднреА-рдХрднреА рдХрд┐рддрдирд╛ рдмреЗрддреБрдХрд╛ рд╣реИред


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


рд▓реЗрдХрд┐рди рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░реЗрдВ ... рдореИрдВрдиреЗ рдПрдХ рджрд░реНрдЬрди рдкреНрд▓рдЧ-рдЗрди рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрд╛, рдЬрд┐рд╕рдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд▓реЗрдЖрдЙрдЯ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреА рдЕрдкрдиреА рдХреНрд╖рдорддрд╛ рджрд┐рдЦрд╛рдИ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рд╣рдореЗрд╢рд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдХреБрдЫ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред


рдирдВрдмрд░ 1ред Doiuse


https://github.com/anandthakker/doiuse


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА рдХреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛: рдЖрдк рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдХреНрд░реЛрдо рдореЗрдВ рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ - рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред рдЖрдк рдПрдлрдПрдл рдореЗрдВ рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ - рд▓рдЧрднрдЧред рдФрд░ рдлрд┐рд░ рдореЛрдмрд╛рдЗрд▓ рд╕рдлрд╛рд░реА рдореЗрдВ рд╕рдм рдХреБрдЫ рдмрд┐рдЦрд░ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛ рдПрдЬ рдореЗрдВред рдФрд░ рдЖрдк рдмреИрдарддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрддреЗ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИред рдлрд┐рд░ рдЖрдк рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдШреВрд░рддреЗ рд╣реИрдВ, рдЪрд╛рдп рдкреАрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдЪрд╛рдирдХ рдПрдХ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдЖрддреА рд╣реИ рдХрд┐ рдХреБрдЫ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХреБрдЫ рд╕рдВрдкрддреНрддрд┐ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЖрдк рдХреИрдирд┐рдЕрд╕ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рд╕реНрдкрд╖реНрдЯ рдХреА рдкреБрд╖реНрдЯрд┐ рджреЗрдЦрддреЗ рд╣реИрдВред



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


рдСрдкрд░реЗрд╢рди рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рд░рд▓ рд╣реИ - рд╣рдо рдЙрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдФрд░ рд╣рдорд╛рд░реЗ рд╕реАрдПрд╕рдПрд╕ рдХреА рд╕реВрдЪреА рдЦрд┐рд▓рд╛рддреЗ рд╣реИрдВред рдкреНрд▓рдЧрдЗрди рдХреИрдирд┐рдпрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд╣рдореЗрдВ рд╡рд╣ рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╣рдордиреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред


рд╣рдо рд╕реАрдзреЗ рдкреИрдХреЗрдЬ.рдЬреЙрд╕рди рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд░рд▓ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХред PostCSS рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░, рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


"browserslist": [ "> .5% and last 2 versions", "not dead", "not OperaMini all", "ie >= 11", "Edge >= 12" ] 

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


 ignore: [ 'will-change', 'object-fit' ] 

рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдорд╛рдирдХ рд▓реЙрдЧ рдмрд╣реБрдд рдкрдардиреАрдп рдирд╣реАрдВ рд╣реИред рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдордЭрдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд╣реИред рдЙрд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рд╣рдо рд▓реЙрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкреЛрд╕реНрдЯрд╕реАрдПрд╕рдПрд╕ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рддреЗрдВ рд╣реИрдВред

рдореЗрд░реЗ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рдХрд▓реНрдк рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреБрдгреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╣реИ рдЬреЛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдХреЛрдб рдХреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ред рдпрджрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ BEM рдпрд╛ рдХреБрдЫ рдПрдирд╛рд▓реЙрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдШрдЯрдХ рдХреЛрдб рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЛ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЛ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдорд╕реНрдпрд╛ рд╕реНрдерд╛рди рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдвреВрдВрдврдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


 onFeatureUsage(info) { const selector = info.usage.parent.selector; const property = `${info.usage.prop}: ${info.usage.value}`; let status = info.featureData.caniuseData.status.toUpperCase(); if (info.featureData.missing) { status = 'NOT SUPPORTED'.red; } else if (info.featureData.partial) { status = 'PARTIAL SUPPORT'.yellow; } console.log(`\n${status}:\n\n ${selector} {\n ${property};\n }\n`); } 

рдХрдВрд╕реЛрд▓ рдореЗрдВ рд░рдВрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгреЛрдВ рдХреЗ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдХреНрд░рдо рдирд╣реАрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд░рдВрдЧреЛрдВ рдХреЗ рдкреИрдХреЗрдЬ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред


рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, рдХрдВрд╕реЛрд▓ рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рд╣реЛрдЧрд╛:


 NOT SUPPORTED: html { -ms-text-size-adjust: 100%; } NOT SUPPORTED: html { -webkit-text-size-adjust: 100%; } PARTIAL SUPPORT: body { display: flex; } 

рдирдВрдмрд░ 2ред Autoprefixer


https://github.com/postcss/autoprefixer


рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдФрд░ рднреА рд╢рд░реНрдордирд╛рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдореИрдВ рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ рдЬреЛ 2019 рдореЗрдВ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдЙрдкрд╕рд░реНрдЧ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рднреА рджреВрд╕рд░реЛрдВ рдХреЛ рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рди рд▓реЛрдЧреЛрдВ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдЬреЛ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпрд╛рдБ рдЗрд╕ рддрдереНрдп рдХреЛ рдЬрдиреНрдо рджреЗрддреА рд╣реИрдВ рдХрд┐ рдХреЛрдб рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдЙрдЦрд╛рдбрд╝ рдлреЗрдВрдХрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдардиреАрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рд╢реНрд░рдо рдЙрддреНрдкрд╛рджрдХрддрд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреА рд╣реИред рджреВрд╕рд░реА рдУрд░, рдпрджрд┐ рдЖрдкрдХреЛ рдбрд╛рдпрдирд╛рд╕реЛрд░ рдХреЗ рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ рдХреБрдЫ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдореИрдиреБрдЕрд▓ рд╢реНрд░рдо рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред


рдСрдЯреЛрдкрд╛рдЗрд░реЗрдлрд╝рд┐рдХреНрд╕рд░ рдПрдХ рд╣реА рдХреИрдиреАрдпреВрдЬрд╝ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╣реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рдЙрди рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рдХреЛрдб рд╕реНрд╡рдпрдВ рдХреНрд▓реАрдирд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрд╛рдо рддреЗрдЬреА рд╕реЗ рд╣реЛрддрд╛ рд╣реИред


рдирдВрдмрд░ 3ред Stylelint


https://github.com/stylelint/stylelint


рдЬрдм рдЖрдк рдмрд╣реБрдд рдЕрдзрд┐рдХ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдиреЛрдЯрд┐рд╕ рдХрд┐рдП рдмрд┐рдирд╛ рдХрдИ рдЧрд▓рддрд┐рдпрд╛рдВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЖрдВрдЦ рдзреБрдВрдзрд▓реА рд╣реИред рд╕реАрдПрд╕рдПрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рдЕрдЬреАрдм (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ) рдкреНрд░рднрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ - рдЖрдк рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВред рдЖрдк рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ - рдпрд╣ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд╣реИред рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ - рдпрд╣ рд╣реИред рд▓реЗрдХрд┐рди рдХреЛрдб рдореЗрдВ - рдирд╣реАрдВред рдирддреАрдЬрддрди, рдЖрдк рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдард┐рди рд╕рдорд╕реНрдпрд╛ рдХреА рдЦреЛрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рдХрд┐ рдЖрдк рдмрд╕ рдЕрдкрдиреЗ рд╕рд┐рд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдорд┐рд▓ рдЧрдПред рдЗрд╕рд╕реЗ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдЯрд░ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ред


рд╕реНрдЯрд╛рдЗрд▓рд▓рд┐рдВрдЯ рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░реЛрдВ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рд╡рд╣ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рдирд╡реАрдирддрдо рд░реБрдЭрд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рд╡рд╣ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдПрд╕реНрд▓реЗрдВрдЯ рдХреЗ рд╕рдорд╛рди рд╣реИрдВред рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдЗрд╕ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреЛрд╕реНрдЯрдХреЗрдПрд╕рдПрд╕ рдХреЗ рдмрд┐рдирд╛, рдЕрдкрдиреЗ рджрдо рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдирд╛ рдЧрд▓рдд рд╣реЛрдЧрд╛ред


рдирдВрдмрд░ 4ред Postcss-flexbugs-рдлрд┐рдХреНрд╕


https://github.com/luisrudge/postcss-flexbugs-fixes


рдпрд╛ рдПрдХ рд╡реНрдпрд╛рдкрдХ рдЕрд░реНрде рдореЗрдВ, рдкреЛрд╕реНрдЯ-рдлрд┐рдХреНрд╕реЗрд╕ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИ , рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдкреНрд▓рдЧрдЗрди рд╢рд╛рдорд┐рд▓ рд╣реИред рдзреАрд░реЗ-рдзреАрд░реЗ, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдлреНрд▓реЗрдХреНрд╕ рдлреНрд▓реИрдЯреНрд╕ рдкрд░ рд▓реЗрдЖрдЙрдЯ рдХреЗ рдкреБрд░рд╛рдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рджрдмрд╛ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдХреЗ рд╕рд╛рде рдмрдЧ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдлреНрд▓реЗрдХреНрд╕рдмрдЧреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдРрд╕реЗ рднреА рд╣реИрдВ рдЬреЛ рдЗрддрдиреЗ рд╕рд░рд▓ рд╣реИрдВ рдХрд┐ рд╡реЗ рд▓рдЧрд╛рддрд╛рд░ рдЖрдкрдХреЗ рд╕рд┐рд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, IE рдлреНрд▓реЗрдХреНрд╕ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд▓рд┐рдП рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдореЗрдВ рдХреИрд▓реНрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрддрдиреА рдмрд╛рд░ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдкрдХреЗ рд╣рд╛рде рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕реЛрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Postcss-flexbugs-fix plugin рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред


рдХреИрд▓реНрдХ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рдХреЛрдб рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдкрд╛рдПрдВрдЧреЗ:


 .foo { flex: 1 0 calc(1vw тАУ 1px); } 

рдФрд░ рдЙрдиреНрд╣реЗрдВ рддреИрдирд╛рдд рдХрд░реЗрдВ:


 .foo { flex-grow: 1; flex-shrink: 0; flex-basis: calc(1vw - 1px); } 

рд╕рд░рд▓ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХред


рдирдВрдмрд░ 5ред Postcss-рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд-env


https://github.com/csstools/postcss-preset-env


рдЪреВрдВрдХрд┐ рд╣рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреЛрд╕реНрдЯрд╕реНрдХреИрдЯ-рдкреНрд░реАрд╕реЗрдЯ-рдПрдирд╡реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, cssnext рдиреЗ рдПрдХ рд╣реА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдИ рдереАред рдпрджрд┐ рдЖрдк CSS рдореЗрдВ рдирдП рд░реБрдЭрд╛рдиреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдкреНрд▓рдЧрдЗрди рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред



рдХрдИ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЛ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдмрд╕ рд▓рдВрдмрд╛, рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдФрд░ рдмрджрд╕реВрд░рдд рд╣реЛрдЧрд╛ред рдкреНрд░реАрд╕реЗрдЯ-рдПрдирд╡реА рдЖрдкрдХреЛ рдПрдХ рдирдП рддрд░реАрдХреЗ рд╕реЗ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рд╕рдордп рдмрдЪрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдПрдХ рдкреБрд░рд╛рдиреЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдкреБрд░рд╛рдиреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рдХрд╕реНрдЯрдо рдЧреБрдг рдЬреИрд╕реА рдХреБрдЫ рдЪреАрдЬреЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡рд╣рд╛рдВ рдХрдорд┐рдпрд╛рдВ рдкрд╛рдИ рдЬрд╛рдПрдВрдЧреАред


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕рд╛рдзрди рдХреЗ рдирд╛рдо рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдмрдмреЗрд▓ рдХреЗ рд╕рдорд╛рди рдирд╛рдо рдкреНрд░реАрд╕реЗрдЯ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдпрд╣рд╛рдВ, рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИ - рдПрдХ рд╕реНрдерд┐рд░ рд╕реЗрдЯ рдореЗрдВ рдХрдИ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдЗрдХрдЯреНрдареЗ рд╣реЛрддреЗ рд╣реИрдВред рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдкреЙрд▓реАрдлрд╛рдЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рдж рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛ рд╕реАрдПрд╕рдПрд╕ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд╕реНрдЯреЗрдЬ 2 рдХреЗ рд▓рд┐рдП + рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЙрдирдХреА рдЬрд░реВрд░рдд рдкрд░ рдирд╣реАрдВ рдЖрдпрд╛ред рдЕрдЧрд░ рдореБрдЭреЗ рд╡рд╣рд╛рдВ рдХреБрдЫ рдпрд╛рдж рдЖ рдЧрдпрд╛ рддреЛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЛред


рдирдВрдмрд░ 6ред Postcss-рдПрдиреАрдореЗрд╢рди


https://github.com/zhouwenbin/postcss-animation


рдЕрдХреНрд╕рд░ рдореИрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЛрдЧреЛрдВ рд╕реЗ рд╕реБрдирддрд╛ рд╣реВрдВ (рдЬреНрдпрд╛рджрд╛рддрд░ рдмреИрдХрдПрдВрдб рдЬреЛ CSS рдореЗрдВ рдмрд╣реБрдд рдордЬрдмреВрдд рдирд╣реАрдВ рд╣реИрдВ) рдХрд┐ рд╡реЗ animate.css рд╕реЗ рдЕрд▓рдЧ рдПрдирд┐рдореЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреВрд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдорд╛рдирддреЗ рд╣реИрдВред рдпрд╣ рдХрд╛рдлреА рддрд╛рд░реНрдХрд┐рдХ рд╣реИред рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╡реЗ рдЗрди рдПрдирд┐рдореЗрд╢рдиреЛрдВ рдХреЛ рдЕрдкрдиреЗ рджрдо рдкрд░ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рддреЗ рд╣реИрдВред



Postcss- рдПрдиреАрдореЗрд╢рди рдкреНрд▓рдЧрдЗрди рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрд╣реБрдд рддреЗрдЬ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдиреАрдореЗрд╢рди рдХрд╛ рдирд╛рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:


 .foo { animation-name: bounce; } 

рдФрд░ рд╡рд╣ animate.css рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреЛрдб рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред


 .foo { animation-name: bounce; } @keyframes bounce { from, 20%, 53%, 80%, to { animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); transform: translate3d(0,0,0); } 40%, 43% { animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); transform: translate3d(0, -30px, 0); } 70% { animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); transform: translate3d(0, -15px, 0); } 90% { transform: translate3d(0,-4px,0); } } 

рдЕрдВрдХ 7ред рд╕реВрдЪреА-рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ


https://github.com/davidtheclark/list-selectors


рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░реНрд╕ рдФрд░ рдХрдИ рд╕реНрдЯрд╛рдЗрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╕рд╡рд╛рд▓ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдХрд╛ рдЙрдарддрд╛ рд╣реИ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрднреА-рдХрднреА рдЕрдкрдиреА рдЖрдВрдЦреЛрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмрдбрд╝реА рддрд╕реНрд╡реАрд░ рджреЗрдЦреЗрдВред рдЬрд╛рдиреЗрдВ рдХрд┐ рдХреМрди рд╕реА рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рдЯреИрдЧ рдЪрдпрдирдХрд░реНрддрд╛ рд╣реЛрдВ, рдпрд╛ рд╕реНрд╡реАрдХреГрдд рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдХрд┐рддрдиреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬрдм рдЖрдк рд╢реБрд░реБрдЖрддреА рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдЬреАрдм рдЪреАрдЬреЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд╡реАрдХреГрдд рд╕рдордЭреМрддреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рддреЗ рд╣реИрдВ (рд╣рд░ рдЬрдЧрд╣ рд╕реЗ, рдпреЗ рд╕рдордЭреМрддреЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рддрдп рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдРрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИ)ред рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреА рдкрд░реНрдпрд╛рдкреНрддрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВред рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдерд▓рдЧ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдПред рд╕реВрдЪреА-рдЪрдпрдирдХрд░реНрддрд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВред


Doiuse рдХреА рддрд░рд╣, рдпрд╣ рдкреНрд▓рдЧрдЗрди рдЖрдкрдХреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрдк рдХреЗрд╡рд▓ рд╡рд╣реА рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреА рд░реБрдЪрд┐ рд╣реИ, рдпрд╛ рд╕рдм рдХреБрдЫ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдВрдЧреЛрдВ рдореЗрдВ рдкреЗрдВрдЯ рдХрд░реЗрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ:


 require('list-selectors').plugin((list) => { const inspect = require('util').inspect; console.log('SELECTORS:'.blue); console.log(inspect(list.selectors, { maxArrayLength: null }).blue); console.log('IDS:'.red); console.log(inspect(list.simpleSelectors.ids, { maxArrayLength: null }).red); }) 

рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд▓рдВрдмреА, рд▓рдВрдмреА рд╕реВрдЪреА рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ:


 SELECTORS: [ '.mui-progress-bar', '.mui-progress-bar > .indicator', '.mui-progress-bar > .value', '.mui-progress-bar.-radial', '.mui-progress-bar.-radial > .indicator', '.mui-progress-bar.-radial > .indicator > .background', '.mui-progress-bar.-radial > .indicator > .progress', '.mui-progress-bar.-radial > .value', . . . ', SELECTORS: [ '.mui-progress-bar', '.mui-progress-bar > .indicator', '.mui-progress-bar > .value', '.mui-progress-bar.-radial', '.mui-progress-bar.-radial > .indicator', '.mui-progress-bar.-radial > .indicator > .background', '.mui-progress-bar.-radial > .indicator > .progress', '.mui-progress-bar.-radial > .value', . . . 

рдЕрдВрдХ 8ред рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп-рд╕реАрдПрд╕рдПрд╕


https://github.com/johno/immutable-css


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


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕рдХреЗ рдХрд╛рдо рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рд░рд▓ рд╣реИ: рдпрд╣ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рд▓реЗрддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдкрд░ рдорд┐рд▓рд╛рди рдкрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдорд╣рддреНрд╡рд╣реАрди рд╣реЛрдиреЗ рд▓рдЧрддрд╛ рд╣реИ:


 ! .button was mutated 2 times [line 93, col 1]: /css/basscss.css [line 3, col 1]: /css/custom.css [immutable-css] ! .left was mutated 2 times [line 291, col 1]: /css/basscss.css [line 4, col 1]: /css/custom.css [immutable-css] 

рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЧреИрд░-рд╕реАрдПрд╕рдПрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрдХрдЯреНрдареА рдлрд╛рдЗрд▓реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрджрд┐ рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдЧрд▓рддреА рд╕реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред


рдирдВрдмрд░ 9ред рдЙрдк-рдмрд╛рдп!


https://github.com/AoDev/css-byebye


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИ рдЬрдм рд╣рдо рдзреАрд░реЗ-рдзреАрд░реЗ рдПрдХ рдХрд╛рд░реНрдп рд╕реНрдерд▓ рдкрд░ рдХреБрдЫ рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рддреБрд░рдВрдд рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдмреИрдарддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдмрд╛рд░реА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдмрдирд╛рдпрд╛, рд╣рдордиреЗ рдмреИрдХрдПрдВрдб рдЕрднреА рддрдХ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ)ред рдХреБрдЫ рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдпреЛрдЧ рдпрд╛ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрдИ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЗрд╕ рддрдереНрдп рд╕реЗ рдПрдХрдЬреБрдЯ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдпреБрджреНрдз рд╕реНрдерд▓ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЕрдкрдиреЗ рдЖрдХрд╛рд░ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рд┐рд░рджрд░реНрдж рдХреЛ рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕реНрд╡рд░реВрдк рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдФрд░ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕ рд╕рдм рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдм рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрдпрд╛ рдЬрд░реВрд░рдд рд╣реИ, рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реИред



рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВред рдЕрдирдХрдиреНрд╕ рддреБрд░рдВрдд рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖ рдЬрд╛рддрд╛ рд╣реИ ред рдпрд╣ рдЙрдкрдХрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реА рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдпрд╣ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд╣рд░ рд╕рдордп рдпрд╣ рднреА рд╕рдВрджреЗрд╣ рд░рд╣рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рдЙрдкрдХрд░рдг рдиреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╢рд╛рдпрдж рдореЗрд░рд╛ рд╡реНрдпрд╛рдореЛрд╣ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ ...


рдмрд╛рдп-рдмрд╛рдп рдПрдХ рд╕рд░рд▓ рдЙрдкрдХрд░рдг рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рд╕реНрд╡рдпрдВ CSS рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдЦрд┐рд▓рд╛рддреЗ рд╣реИрдВред рдФрд░ рдЖрдк рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдмреАрдИрдПрдо рдпрд╛ рдХреБрдЫ рдФрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдирд┐рдпрдорд┐рдд рдХреЗ рд╕рд╛рде рдЖрдк рдЙрд╕ рдЪреАрдЬ рд╕реЗ рдПрдХ рдмреНрд▓реЙрдХ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдЕрд▓рд╡рд┐рджрд╛ рдЕрд▓рд╡рд┐рджрд╛!


рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд┐рдХрд▓рд╛ред рдпрд╣ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХреМрди рд╕реА рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрднреА рддрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╕рднреА рд╕реНрд░реЛрдд рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╣реИрдВ, рдХреБрдЫ рднреА рдирд╣реАрдВ рдЦреЛрдпрд╛ рд╣реИ, рдпрд╣ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рдФрд░ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИред


рдирдВрдмрд░ 10ред PostCSS-trolling


https://github.com/juanfran/postcss-trolling


рдкрд┐рдЫрд▓реЗ рд╕рднреА рдЙрдкрдХрд░рдг рдЖрдкрдХреЗ рд▓реЗрдЖрдЙрдЯ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдЕрднреВрддрдкреВрд░реНрд╡ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕рдХреА рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред


рдирд┐рд╖реНрдХрд░реНрд╖


PostCSS рдПрдХ рд▓реЗрдЖрдЙрдЯ рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдорджрдж рд╣реИред рдпрджрд┐ рдЙрдирдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗред рдХрдИ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдкреНрд▓рдЧ-рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдЕрдХреНрд╕рд░ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рддреНрдпрдХреНрдд рд▓рдЧрддреЗ рд╣реИрдВ, рдпрд╣ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

Source: https://habr.com/ru/post/hi457340/


All Articles