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

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

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

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

рдЕрдЧрд░ рдЕрдм рдкреВрд░реА рдкреЛрд╕реНрдЯ рдХреЛ рдУрд╡рд░-рдЯрд╛рдЗрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рд╕рдордп рд╣реИ, рддреЛ рдЖрдк рд╣рдорд╛рд░реЗ GitHub рдкрд░ Atomize рд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ ред

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

рдпреЗ рд╕рдм рдХреИрд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ


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

рдХрд╛рд░реНрдп рдЕрднрд┐рдирд╡ рдирд╣реАрдВ рд╣реИ рдФрд░, рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рд╕реНрдЯрд╛рдЗрд▓-рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд░реАрдмрд╛рд╕ рдХреА рдорджрдж рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдереА, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛:

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

рдПрдЯрдорд╛рдЗрдЬрд╝ рдХреНрдпрд╛ рд╣реИ (рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ)


рдЫрд╡рд┐

Atomize рдХреА рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ:

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

рдПрдЯрдорд╛рдЗрдЬрд╝ рдХреЗ рджреЛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рд╣реИрдВ:

  • рдРрд╕реЗ рдШрдЯрдХ рдмрдирд╛рдирд╛ рдЬреЛ рдкрд░рдорд╛рдгреБ рд╕реАрдПрд╕рдПрд╕ рдФрд░ рд╡рд┐рд╖рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ;
  • рдХреНрд╡рд╛рд░реНрдХрд▓реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдПрдбрд┐рдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреЗрдЯреНрд╕ рдмрдирд╛рдирд╛ред

рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рдЬрд╛рд░реА рдХрд░реЗрдВ


рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:

npm i react react-dom styled-components @quarkly/atomize @quarkly/theme

Atomize рд╕реНрдЯрд╛рдЗрд▓-рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЖрд╡рд░рдг рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╕рдорд╛рди API рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рддрддреНрд╡ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:

import atomize from '@quarkly/atomize';
 
const MyBox = atomize.div();

рдЖрдЙрдЯрдкреБрдЯ рдкрд░, рд╣рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рд╕реАрдПрд╕рдПрд╕ рдХреЛ рд╕рд╣рд╛рд░рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП, рд╕рдВрдкрддреНрддрд┐ рдЙрдкрдирд╛рдореЛрдВ рдХреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЧрдИ рдереАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, bgc === рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХрд▓рд░

ReactDOM.render(<MyBox bgc="red" />, root);

рдЧреБрдгреЛрдВ рдФрд░ рдЙрдкрдирд╛рдореЛрдВ рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ ред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд┐рд░рд╛рд╕рдд рддрдВрддреНрд░ рднреА рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

const MySuperComponent = ({ className }) => {
   // some logic here
   return <div className={className} />;
};
 
const MyWrappedComponent = atomize(MySuperComponent);

рдереАрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


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

рд╡рд┐рд╖рдп рд╕реЗ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╖рдп рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдФрд░ рдЙрдкрд╕рд░реНрдЧ "-" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ JSX рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

import Theme from "@quarkly/theme";
 
const theme = {
   colors: {
       dark: "#04080C",
   },
};
export const MyComp = () => (
   <Theme>
       <Box bgc="--colors-dark" height="100px" width="100px" />
   </Theme>
);

(рд░рдВрдЧ # 04080C - рд░рдВрдЧ-рдЕрдВрдзреЗрд░реЗ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ)

рдЗрд╕рд▓рд┐рдП рд╡рд┐рд╖рдп рдореЗрдВ рд╣реА:

import Theme from "@quarkly/theme";
 
const theme = {
   colors: {
       dark: "#04080C",
   },
   borders: {
       dark: "5px solid --colors-dark",
   },
};
export const MyComp = () => (
   <Theme>
       <Box border="--borders-dark" height="100px" width="100px" />
   </Theme>
);

(рд╣рдордиреЗ рд░рдВрдЧреЛрдВ рд╕реЗ рдЪрд░ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЗрд╕реЗ рдмреЙрд░реНрдбрд░ рдереАрдо рд╕реЗ рдЬреЛрдбрд╝рд╛)

рдЬреЗрдПрд╕рдПрдХреНрд╕ рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рд░рдВрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

import Theme from "@quarkly/theme";
 
const theme = {
   colors: {
       dark: "#04080C",
   },
};
export const MyComp = () => (
   <Theme>
       <Box bgc="--dark" height="100px" width="100px" />
   </Theme>
);

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

import Theme from "@quarkly/theme";
 
const theme = {
   breakpoints: {
       sm: [{ type: "max-width", value: 576 }],
       md: [{ type: "max-width", value: 768 }],
       lg: [{ type: "max-width", value: 992 }],
   },
   colors: {
       dark: "#04080C",
   },
   borders: {
       dark: "5px solid --colors-dark",
   },
};
export const MyComp = () => (
   <Theme>
       <Box
           md-bgc="--dark"
           border="--borders-dark"
           height="100px"
           width="100px"
       />
   </Theme>
);

рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдкреНрд░рднрд╛рд╡


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

рдПрдХ рдШрдЯрдХ рдмрдирд╛рддреЗ рд╕рдордп, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ:

const MySuperButton = atomize.button({
 effects: {
   hover: ":hover",
   focus: ":focus",
   active: ":active",
   disabled: ":disabled",
 },
});

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

рдЕрдм рдпрджрд┐ рд╣рдо рдХрд┐рд╕реА рднреА CSS рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ hover рдЙрдкрд╕рд░реНрдЧ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк рдУрд╡рд░ рд╣реЛрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ:

ReactDOM.render(<MySuperButton hover-bgc="blue" />, root);

рдЖрдк рдореАрдбрд┐рдпрд╛ рдХреЗ рднрд╛рд╡ рдХреЗ рд╕рд╛рде рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

ReactDOM.render(<MySuperButton md-hover-bgc="blue" />, root);

рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг


рдЙрдкрд░реЛрдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд▓реЛ рдЕрдм рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдШрдЯрдХ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВред рд╣рдордиреЗ рджреЛ рдЙрджрд╛рд╣рд░рдг рддреИрдпрд╛рд░ рдХрд┐рдП рд╣реИрдВ:


рджреВрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдмрд╛рд╣рд░реА рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рд╡рд╣ рд╕рдм рдирд╣реАрдВ рд╣реИ


рдПрдЯрдорд╛рдЗрдЬрд╝ рдХрд╛ рджреВрд╕рд░рд╛ рдЙрджреНрджреЗрд╢реНрдп, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдКрдкрд░ рдмрддрд╛рдпрд╛ рд╣реИ, рдХрд╕реНрдЯрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреНрд╡рд╛рд░реНрдХрд▓реА рдореЗрдВ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

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

export default atomize(PokemonCard)(
 {
   name: "PokeCard",
   effects: {
     hover: ":hover",
   },
   description: {
     // past here description for your component
     en: "PokeCard тАФ my awesome component",
   },
   propInfo: {
     // past here props description for your component
     name: {
       control: "input",
     },
   },
 },
 { name: "pikachu" }
);

рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝реАрд▓реНрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:

  • рдкреНрд░рднрд╛рд╡ - рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЫрджреНрдо рд╡рд░реНрдЧреЛрдВ (рд╣реЙрд╡рд░, рдлрд╝реЛрдХрд╕ рдЖрджрд┐) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ;
  • рд╡рд┐рд╡рд░рдг - рдШрдЯрдХ рдХрд╛ рдПрдХ рд╡рд┐рд╡рд░рдг рдЬреЛ рдХрд░реНрд╕рд░ рдХреЛ рдЙрд╕рдХреЗ рдирд╛рдо рдкрд░ рд╣реЛ рдЬрд╛рдиреЗ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛;
  • propInfo - рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЛ рджрд╛рд╣рд┐рдиреЗ рдкреИрдирд▓ (рдкреНрд░реЙрдкреНрд╕ рдЯреИрдм) рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕рд╣реА рдкреИрдирд▓ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЙрдкреНрд╕ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХреИрд╕реЗ рдХрд░реЗрдВ (рдкреНрд░реЙрдкрд░ рдЯреИрдм):

propInfo: {
   yourCustomProps: { //  
       description: { en: "test" }, //    
       control: "input" //  
   }
}

рд╕рдВрднрд╛рд╡рд┐рдд рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдХрд▓реНрдк:

  • рдЗрдирдкреБрдЯ
  • рдЪреБрдирддреЗ рд╣реИрдВ
  • рд░рдВрдЧ
  • рдлрд╝реЙрдиреНрдЯ
  • рд╕рд╛рдпрд╛
  • рд╕рдВрдХреНрд░рдордг
  • рдкрд░рд┐рд╡рд░реНрддрди
  • рдлрд┐рд▓реНрдЯрд░,
  • рдкреГрд╖реНрдарднреВрдорд┐
  • рдЪреЗрдХрдмреЙрдХреНрд╕-рдЪрд┐рд╣реНрди,
  • рд░реЗрдбрд┐рдпреЛ рдЖрдЗрдХрди,
  • рд░реЗрдбрд┐рдпреЛ-рд╕рдореВрд╣
  • рдЪреЗрдХрдмреЙрдХреНрд╕ред

рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдгред рдпрд╣рд╛рдВ рд╣рдордиреЗ рдЕрдкрдиреЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдФрд░ рдЕрдм рд╣рдо рдЗрд╕реЗ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡рд▓реА рдПрдбрд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


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

рдФрд░ рдЕрдм рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛!


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

рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╢рд░реНрддреЛрдВ, рдирд┐рдпрдореЛрдВ рдФрд░ рдкреБрд░рд╕реНрдХрд╛рд░реЛрдВ рдХреА рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрд▓рдмреНрдз рд╣реИ ред

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

All Articles