2023-02-03 05:05 Doba čtení: 14 min

5 způsobů, jak stylizovat reakci pomocí CSS [2023]

Je všeobecně známo, že přes 97 % webových stránek používá CSS pro definování vizuálního stylu.

Kaskádové styly, známé jako CSS, umožňují tvůrcům webů navrhovat stránky, které jsou nejen esteticky příjemné, ale také snadno prohlížitelné a srozumitelné.

CSS jako jazyk určuje, jakým způsobem se dokumenty zobrazují uživatelům. V tomto kontextu dokumentem rozumíme soubor napsaný v značkovacím jazyce, jako je například XML nebo HTML.

Jak probíhá styling v Reactu?

Popularita Reactu je z velké části dána jeho jednoduchostí při tvorbě, spouštění a správě aplikací. React je v podstatě JavaScriptová knihovna, nikoli framework, což znamená, že nabízí více než jen předdefinované funkce a úryvky kódu.

Dostupnost opakovaně použitelných komponent, flexibilita, stabilita kódu, rychlost a efektivita – to jsou jen některé z důvodů, proč React zaujímá přední pozici mezi JavaScriptovými frameworky a knihovnami.

Styling v Reactu se týká procesu, kterým se pomocí CSS zviditelňují jednotlivé komponenty v aplikaci React. Je však důležité si uvědomit, že React používá pro značkování JSX (kombinace JavaScriptu a XML), nikoli HTML. Hlavní rozdíl spočívá v tom, že HTML využívá `.class` pro označení tříd, zatímco JSX používá `.ClassName` pro stejný účel.

Proč je vhodné používat CSS pro stylování Reactu?

  • Zajistěte responzivní chování vaší aplikace. Moderní webové aplikace by měly být dostupné na různých zařízeních, ať už jde o malé displeje nebo velké monitory. CSS umožňuje aplikovat mediální dotazy na vaši aplikaci React, což zaručuje její správné zobrazení na jakékoli velikosti obrazovky.
  • Urychlete proces vývoje. Stejné CSS pravidlo můžete uplatnit na více komponent v rámci vaší React aplikace.
  • Umožněte snadnou údržbu aplikace React. Pomocí CSS je snadné provádět změny ve vzhledu specifických komponent nebo částí vaší aplikace.
  • Zlepšete uživatelskou zkušenost. CSS umožňuje vytvářet uživatelsky přívětivé formátování. React s logicky umístěným textem a tlačítky se pak snadno používá a prochází.

Vývojáři mají k dispozici několik přístupů pro stylování svých React aplikací. Následují některé z nejčastěji používaných:

Vkládání stylů přímo do kódu

Inline styly představují nejjednodušší metodu pro stylování React aplikace, jelikož uživatelé nemusí vytvářet externí šablony stylů. CSS styl je aplikován přímo v kódu React.

Je důležité si uvědomit, že inline styly mají vyšší prioritu než ostatní styly. Pokud tedy máte definovaný styl v externí šabloně, bude přepsán stylem vloženým přímo do kódu.

Zde je příklad, jak může vypadat inline styling v aplikaci React:

import React from 'react';
import ReactDOM from 'react-dom/client';

const Header = () => {
    return (
        <>
            <h1 style={{backgroundColor: "lightblue"}}>Ahoj světe!!!!!</h1>
            <h2>Přidejme trochu stylu!</h2>
        <>
    );
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Header />);

Výsledkem bude zobrazení nadpisu `h1` se světle modrým pozadím.

Výhody inline stylingu

  • Rychlost. Je to nejjednodušší přístup, protože styl aplikujete přímo na tag, který chcete upravit.
  • Vysoká priorita. Vložené styly mají přednost před externími šablonami stylů. Můžete je použít k úpravě konkrétní funkce, aniž byste zasahovali do celkové podoby aplikace.
  • Skvělé pro prototypování. Vložené styly se hodí pro testování funkčnosti před implementací formátování do externí šablony.

Nevýhody inline stylingu

  • Může být časově náročný. Přímé stylování každého tagu zabere spoustu času.
  • Omezená funkčnost. S vloženými styly nelze využívat pokročilé CSS funkce, jako jsou selektory a animace.
  • S velkým počtem inline stylů se kód JSX stává nepřehledným.

Import externích šablon stylů

CSS styly můžete psát do samostatného externího souboru a poté je importovat do své React aplikace. Tento způsob je obdobný importu CSS souboru do sekce <head> HTML dokumentu.

Pro implementaci tohoto postupu je nutné vytvořit CSS soubor v adresáři vaší aplikace, importovat jej do cílové komponenty a definovat stylovací pravidla pro vaši aplikaci.

Pro demonstraci fungování externích CSS šablon si můžete vytvořit soubor CSS a pojmenovat ho například App.css. Následně jej můžete importovat tímto způsobem:

import { React } from "react";
import "./Components/App.css";

function App() {
    return (
        <div className="main">
        </div>
    );
}

export default App;

Výše uvedený kód importuje externí šablonu stylů do komponenty `App.js`. Soubor `App.css` se nachází ve složce `Components`.

Výhody externích CSS stylů

  • Opakovaně použitelné. Stejná CSS pravidla můžete aplikovat na různé komponenty ve vaší React aplikaci.
  • Přispívá k čitelnosti kódu. Používání externích šablon stylů usnadňuje porozumění kódu.
  • Umožňuje využití pokročilých CSS funkcí. Při použití externích šablon stylů můžete využívat pseudotřídy a pokročilé selektory.

Nevýhoda externích CSS šablon

  • Vyžaduje důslednou konvenci pojmenování, aby se předešlo přepisování stylů.

Použití CSS modulů

React aplikace mohou dosahovat značných rozměrů. Názvy CSS animací a tříd mají ve výchozím nastavení globální rozsah. To může být problematické při práci s rozsáhlými šablonami stylů, kdy jeden styl může přepsat jiný.

CSS moduly tento problém řeší tím, že omezují rozsah animací a názvů tříd na lokální úroveň. Tímto přístupem zajistíte, že názvy tříd jsou dostupné pouze v rámci souboru nebo komponenty, kde jsou potřeba. Každý název třídy získá unikátní programový název, což eliminuje možnost konfliktů.

Pro implementaci CSS modulů vytvořte soubor s příponou `.module.css`. Pokud například chcete pojmenovat šablonu stylů jako `style`, název souboru bude `style.module.css`.

Vytvořený soubor importujte do vaší React komponenty a jste připraveni začít.

Váš CSS soubor může vypadat například takto:

/* styles.module.css */
.font {
    color: #f00;
    font-size: 30px;
}

CSS modul můžete importovat do `App.js` následovně:

import { React } from "react";
import styles from "./styles.module.css";

function App() {
    return (
        <h1 className={styles.heading}>Vítejte čtenáři etechblog.cz</h1>
    );
}

export default App;

Výhody používání CSS modulů

  • Snadná integrace s SCSS a CSS.
  • Zabraňuje konfliktům názvů tříd.

Nevýhody používání CSS modulů

  • Pro začátečníky může být odkazování na názvy tříd pomocí CSS modulů matoucí.

Použití Styled-Components

Styled-Components umožňují vývojářům vytvářet komponenty s CSS styly přímo v JavaScriptovém kódu. Styled-Component funguje jako komponenta React, která již obsahuje definované styly. Styled-Components nabízí dynamické stylování a unikátní názvy tříd.

Pro začátek s používáním Styled-Components nainstalujte balíček do kořenového adresáře pomocí následujícího příkazu:

npm install styled-components

Dalším krokem je import stylizovaných komponent do vaší React aplikace.

Následuje kód `App.js` s použitím stylizovaných komponent:

import { React } from "react";
import styled from "styled-components";

function App() {
    const Wrapper = styled.div`
        width: 80%;
        height: 120px;
        background-color: lightblue;
        display: block;
    `;
    return <Wrapper />;
}

export default App;

Aplikace bude vykreslena s výše uvedenými styly importovanými ze stylizovaných komponent.

Výhody Styled-Components

  • Předvídatelnost. Styly jsou v tomto přístupu vnořeny přímo do jednotlivých komponent.
  • Není třeba řešit konvence pojmenování tříd. Jednoduše napíšete své styly a balíček se postará o zbytek.
  • Komponenty se stylem můžete exportovat jako props. Stylizované komponenty konvertují standardní CSS na React komponenty. Díky tomu můžete kód opakovaně používat, rozšiřovat styly pomocí props a exportovat.

Nevýhody Styled-Components

  • Je nutné nainstalovat knihovnu třetí strany.

Syntaxe pro skvělé styly (SASS/SCSS)

SASS přichází s mocnějšími nástroji a funkcemi, které v běžném CSS chybí. Styly můžete psát ve dvou variantách podle těchto přípon: .scss a .sass.

Syntaxe SASS je podobná syntaxi běžného CSS. Nicméně, při psaní stylových pravidel v SASS nepotřebujete otevírací a uzavírací složené závorky.

Zjednodušený SASS kód může vypadat následovně:

nav
    ul
        margin-right: 20px
        padding: 0
        list-style: list
    li
        display: block
    a
        display: block
        padding: 6px 12px
        text-decoration: underline
nav

Pro začátek s používáním SASS ve vaší React aplikaci je potřeba nejprve zkompilovat SASS do standardního CSS. Po vytvoření aplikace pomocí `Create React App` můžete nainstalovat `node-sass`, který se postará o kompilaci.

npm install node-sass

Následně můžete vytvořit soubory a přiřadit jim příponu `.scss` nebo `.sass`. Tyto soubory pak můžete importovat běžným způsobem. Například:

import "./Components/App.sass";

Výhody SASS/SCSS

  • Nabízí mnoho dynamických funkcí, jako jsou mixiny, vnořování a rozšiřování.
  • Při používání SASS/SCSS nemusíte psát CSS kódy.

Nevýhody SASS/SCSS

  • Styly jsou globální, a proto se můžete setkat se zásadními problémy.

Který přístup ke stylování je nejlepší?

Po prodiskutování pěti různých přístupů se nabízí otázka, který z nich je nejlepší. V této diskusi je obtížné jednoznačně určit vítěze. Nicméně, následující aspekty vám mohou pomoci se informovaně rozhodnout:

  • Výkonnostní metriky.
  • Potřeba designového systému.
  • Snadnost optimalizace kódu.

Inline styling je vhodný pro jednoduché aplikace s malým počtem řádků kódu. Ostatní metody, jako externí CSS, SASS, Styled Components a CSS moduly, jsou vhodnější pro rozsáhlé aplikace.

Jaké jsou osvědčené postupy pro údržbu CSS ve velké React aplikaci?

  • Vyhněte se inline stylingu. Psaní inline CSS pro každý tag v rozsáhlé React aplikaci může být únavné. Místo toho využijte externí šablonu stylů, která vyhovuje vašim potřebám.
  • Lintování kódu. Nástroje jako Stylelint zvýrazní chyby ve vašem stylu, abyste je mohli včas opravit.
  • Pravidelné kontroly kódu. Psaní CSS se může zdát zábavné, ale pravidelné kontroly kódu usnadňují včasnou identifikaci chyb.
  • Automatizujte testování vašich CSS souborů. Enzyme a Jest jsou skvělé nástroje, které můžete použít pro automatizaci testů vašeho CSS kódu.
  • Udržujte kód DRY. Při práci s často používanými styly, jako jsou barvy a okraje, používejte proměnné a utility třídy, jak to souvisí s principem "Don't Repeat Yourself" (DRY).
  • Využívejte konvence pojmenování jako Block Element Modifier (BEM). Tento přístup usnadňuje psaní CSS tříd, které jsou snadno srozumitelné a opakovaně použitelné.

Závěr

Výše jsme si představili několik metod pro stylování v Reactu. Výběr konkrétního přístupu závisí na vašich potřebách, schopnostech a preferencích. Ve své React aplikaci můžete dokonce kombinovat více stylů, například inline styly a externí šablony stylů.

Můžete také prozkoumat některé z nejlepších frameworků a knihoven CSS pro vývojáře front-endu.

Tomáš Dvořák
Autor
Czechia

Píše o bezpečnosti, webu a chytrých službách s důrazem na srozumitelnost.

Předchozí článek
10 nejlepších e-mailových aplikací pro iPhone v roce 2023
Další článek
Vysvětleno za 5 minut nebo méně