Habr<p>[Перевод] Анатомия shadcn/ui</p><p>Если вы следите за новинками экосистемы JavaScript, то должны были слышать об интересной библиотеке пользовательского интерфейса (user interface, UI) под названием shadcn/ui . Вместо того, чтобы распространяться в виде пакета npm , компоненты shadcn/ui добавляются с помощью интерфейса командной строки (command line interface, CLI), который помещает исходный код компонентов непосредственно в ваш проект. Разработчик библиотеки указывает причину такого решения на официальном сайте shadcn/ui . "Почему код для копирования/вставки, а не библиотека? Идея заключается в том, что вы полностью владеете и контролируете код. Это позволяет вам решать, как именно будут построены и оформлены ваши компоненты. Начните с настроек по умолчанию, а затем кастомизируйте компоненты под свои нужды. Используя пакет npm, можно наткнуться на один недостаток — стиль всегда связан с реализацией. Дизайн компонентов должен быть отделен от их реализации". На самом деле, shadcn/ui — это не просто очередная библиотека компонентов, а технология, позволяющая представить дизайн-систему в виде кода. Цель этой статьи — немного изучить архитектуру и реализацию shadcn/ui . Если вы еще не использовали shadcn/ui , я советую просмотреть ее документацию и немного поэкспериментировать с ней, чтобы извлечь из статьи максимальную пользу.</p><p><a href="https://habr.com/ru/companies/timeweb/articles/781346/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/timeweb/</span><span class="invisible">articles/781346/</span></a></p><p><a href="https://zhub.link/tags/timeweb_%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8_%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4" class="mention hashtag" rel="tag">#<span>timeweb_статьи_перевод</span></a> <a href="https://zhub.link/tags/shadcn" class="mention hashtag" rel="tag">#<span>shadcn</span></a>/ui <a href="https://zhub.link/tags/tailwindcss" class="mention hashtag" rel="tag">#<span>tailwindcss</span></a> <a href="https://zhub.link/tags/react_table" class="mention hashtag" rel="tag">#<span>react_table</span></a> <a href="https://zhub.link/tags/react_hook_form" class="mention hashtag" rel="tag">#<span>react_hook_form</span></a> <a href="https://zhub.link/tags/radix_ui" class="mention hashtag" rel="tag">#<span>radix_ui</span></a> <a href="https://zhub.link/tags/reactjs" class="mention hashtag" rel="tag">#<span>reactjs</span></a> <a href="https://zhub.link/tags/reactjs" class="mention hashtag" rel="tag">#<span>reactjs</span></a> <a href="https://zhub.link/tags/react" class="mention hashtag" rel="tag">#<span>react</span></a> <a href="https://zhub.link/tags/js" class="mention hashtag" rel="tag">#<span>js</span></a> <a href="https://zhub.link/tags/css" class="mention hashtag" rel="tag">#<span>css</span></a> <a href="https://zhub.link/tags/design_system" class="mention hashtag" rel="tag">#<span>design_system</span></a> <a href="https://zhub.link/tags/%D0%B4%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0" class="mention hashtag" rel="tag">#<span>дизайнсистема</span></a></p>