Jak dostosować motyw React za pomocą projektu Ant

Opublikowany: 2022-03-01

To trochę niedopowiedzenie, jeśli powiem, że dobry projekt interfejsu użytkownika (UI) odgrywa ogromną rolę w angażowaniu odbiorców witryny i doprowadzaniu ich do konwersji. Chociaż każdy dobry interfejs użytkownika wymaga interaktywnego, intuicyjnego, bogatego i przystępnego projektu — pozornie zniechęcającego wyzwania — można to osiągnąć, korzystając z wysokiej jakości komponentów i bibliotek do jego budowy.

Najpopularniejszym z nich jest projekt Ant. Jest to biblioteka React UI, która ma dostęp do łatwych w użyciu, wysokiej jakości komponentów do budowania eleganckich i szybkich interfejsów użytkownika.

Motyw reakcji

Dlaczego projekt mrówek?

Stworzony przez Alibaba system projektowania Ant jest używany przez kilka wielkich nazwisk, takich jak Alibaba (oczywiście), Tencent, Baidu i inne.

MrówkaAlibaba

Projekt mrówekMateriał

Szybko stała się najczęściej używaną biblioteką React UI. Wcześniej Material-UI był najpopularniejszy z ponad 75 tys. gwiazdek na Github, ale teraz Ant Design wyprzedził ich z 77,5 tys.!

To, co projekt Ant zrobił tak dobrze, to humanizacja ich projektu. Oceniają jakość projektu, mierząc cztery wartości skoncentrowane na ludzkiej świadomości i szczęściu - naturalność, pewność, sens i wzrost. Działają one jako standard dla projektantów i kierują nimi w podejmowaniu decyzji i lepszym osądzie.

Komponenty do projektowania mrówek

Ant design (lub antd) oferuje wiele bogatych komponentów interfejsu użytkownika, które mogą poprawić wrażenia z korzystania z witryny lub aplikacji. Sprawdź niektóre z nich poniżej, ale więcej opcji znajdziesz tutaj.

Komponenty uniwersalne: przyciski, ikony, typografia itp.

uniwersalny

Układy: siatki, układy, odstępy itp.

Układy

Nawigacja: bułka tarta, menu, rozwijane menu itp.

Nawigacja

Wprowadzanie danych: autouzupełnianie, pole wyboru, wybór daty itp.

Wprowadzanie danych

Wyświetlanie danych: awatar, komentarze, składane panele itp.

Wyświetlanie danych

Instalowanie React i Ant Design

Teraz, gdy wiemy, jakie komponenty są dostępne w projekcie Ant, poznajmy podstawowy proces instalacji Reacta, a następnie zainstalujmy w nim projekt Ant.

Możesz użyć przędzy lub npm , aby skonfigurować projekt React. Poniżej znajdują się podstawowe polecenia instalacji i konfiguracji Reacta:

 $ yarn create react-app antd-demo # or $ npx create-react-app antd-demo $ cd antd-demo $ yarn start

Po zainstalowaniu Reacta możesz zobaczyć uruchomioną aplikację w przeglądarce.

Edytuj aplikację src

Jest to domyślny wygenerowany katalog w nowo utworzonym projekcie. Idąc dalej, będziemy modyfikować niektóre pliki tutaj, aby uzyskać ostateczny wynik.

 ├── README.md ├── package.json ├── public │ ├── favicon.ico │ └── index.html ├── src │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── index.css │ ├── index.js │ └── logo.svg └── yarn.lock

Teraz po skonfigurowaniu Reacta zainstalujmy w nim projekt Ant za pomocą tego polecenia:

 $ yarn add antd

Po zainstalowaniu antd możesz użyć komponentów Ant, modyfikując znaczniki w App.js znajdujące się w folderze src w projekcie. Tutaj dodaję element przycisku od Ant.

 import React from 'react'; import { Button } from 'antd'; import './App.css'; const App = () => ( <div className="App"> <Button type="primary">Button</Button> </div> ); export default App;

Komponent przycisku mrówki:

Przycisk

Po zapisaniu i uruchomieniu aplikacji, główny przycisk Ant w przeglądarce będzie widoczny w kolorze niebieskim (jak pokazano powyżej). Oznacza to, że Ant jest z powodzeniem zintegrowany z Reactem.

Dostosowywanie motywu

Najlepszą częścią integracji Ant Design z React jest to, że pozwala ona dostosować tokeny projektowe, aby spełnić różnorodność interfejsu użytkownika od wymagań biznesowych lub marki, w tym koloru podstawowego, promienia obramowania, koloru obramowania itp.

Intoli

Kredyty obrazkowe: Intoli

Aby umożliwić te dostosowania, musisz wykonać kilka zaawansowanych konfiguracji.

Konfiguracja zaawansowana:

W tym momencie musisz dostosować domyślne konfiguracje create-react-app. Wykorzystajmy CRACO (Create React App Configuration Override) - rozwiązanie społecznościowe do niestandardowej konfiguracji create-react-app.

Krok 1: Najpierw musisz zainstalować CRACO i zastąpić domyślny skrypt React CRACO w package.json.

 $ yarn add @craco/craco /* package.json */ "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", + "start": "craco start", + "build": "craco build", + "test": "craco test", }

Zgodnie z wymaganiami konfiguracji motywu, motyw niestandardowy musi korzystać z funkcji zastępowania zmiennej Less, podobnej do tej zapewnianej przez less-loader. Możemy wprowadzić Craco-less, aby ładować mniej stylów i modyfikować zmienne.

 $ yarn add craco-less

Krok 2: Zmodyfikuj plik src/ App.css na src/App.less i zaimportuj plik antd.less przez antd.css w app.less

 /* src/App.js */ - import './App.css'; + import './App.less'; /* src/App.less */ - @import '~antd/dist/antd.css'; + @import '~antd/dist/antd.less';

Krok 3: Utwórz craco.config.js w katalogu głównym, aby zmodyfikować domyślną konfigurację.

 const CracoLessPlugin = require('craco-less'); module.exports = { plugins: [ { plugin: CracoLessPlugin, options: { lessLoaderOptions: { lessOptions: { modifyVars: { '@primary-color': '#1DA57A' }, javascriptEnabled: true, }, }, }, }, ], };

W tym przypadku less-loader to modifyVars używane do konfiguracji motywu.

Przycisk

Jeśli widzisz zielony przycisk, wiesz, że konfiguracja się powiodła. Teraz możesz dostosować motyw za pomocą własnego zestawu kolorów, korzystając z dostarczonych tokenów/zmiennych.

Zmienne stylu projektowania mrówek

Poniżej znajdują się niektóre z najczęściej używanych zmiennych ogólnych. Możesz odwiedzić tutaj, aby uzyskać szczegółowe informacje na temat wszystkich dostępnych zmiennych stylów.

 @primary-color: #1890ff; // primary color for all components @link-color: #1890ff; // link color @success-color: #52c41a; // success state color @warning-color: #faad14; // warning state color @error-color: #f5222d; // error state color @font-size-base: 14px; // major text font size @heading-color: rgba(0, 0, 0, 0.85); // heading text color @text-color: rgba(0, 0, 0, 0.65); // major text color @text-color-secondary: rgba(0, 0, 0, 0.45); // secondary text color @disabled-color: rgba(0, 0, 0, 0.25); // disable state color @border-radius-base: 2px; // major border radius @border-color-base: #d9d9d9; // major border color @box-shadow-base: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05); // major shadow for layers