Przejdź do treści

Podstawy

Motywy i gęstość

Motyw dzienny, nocny i wysokiego kontrastu to trzy zestawy wartości dla tych samych nazw tokenów. Komponent nigdy nie pyta, który motyw jest włączony; czyta tokeny i jest poprawny we wszystkich trzech.

Trzy motywyLink do sekcji Trzy motywy

Dzień

Synced2 errorsNew

Warning: Two people are editing this page

Noc

Synced2 errorsNew

Warning: Two people are editing this page

Wysoki kontrast

Synced2 errorsNew

Warning: Two people are editing this page

Dzień to ciepły papier z bursztynowym akcentem. Noc zachowuje ciepło z jaśniejszym bursztynem. Wysoki kontrast to czerń z białymi liniami i żółtym akcentem, dla słabego wzroku i jasnego słońca; tekst osiąga 7:1, a ramki kontrolek 4,5:1.

Jak wybierany jest motywLink do sekcji Jak wybierany jest motyw

Ustaw data-theme na light, dark albo contrast na elemencie głównym. Bez atrybutu decyduje system operacyjny: prefers-contrast: more daje wysoki kontrast, a potem prefers-color-scheme: dark daje motyw nocny. Atrybut działa też na dowolnym elemencie, co nadaje motyw tylko tej części strony, tak jak robią to podglądy na tej stronie.

Motyw dla całej strony albo jednego paneluhtml
<html data-theme="dark">
  …
  <aside data-theme="contrast">Only this panel is high contrast</aside>
</html>

W Reakcie

ThemeProvider zapamiętuje wybór czytelnika w pamięci lokalnej i ustawia atrybut. ThemeScript stosuje zapisany wybór przed pierwszym wyrenderowaniem. ThemeToggle to kontrolka, jako grupa segmentowa albo menu.

tsx
<ThemeProvider>
  <ThemeToggle
    label={t('theme')}
    variant="menu"
    options={{ light: t('light'), dark: t('dark'), contrast: t('contrast'), system: t('system') }}
  />
</ThemeProvider>

Z Tailwindem

Komponenty nigdy nie potrzebują dark:. Kod aplikacji, który go potrzebuje, dostaje wariant podążający za atrybutem, zarówno dla motywu nocnego, jak i wysokiego kontrastu, więc aplikacja, która go używa, ustawia atrybut jawnie.

Kontrast w każdym motywieLink do sekcji Kontrast w każdym motywie

Obliczone z wartości tokenów. Testy sprawdzają te pary i więcej: 4,5:1 dla tekstu i 3:1 dla ramek kontrolek i fokusa w motywie dziennym i nocnym, 7:1 i 4,5:1 w wysokim kontraście.

Współczynnik kontrastu każdej pary w każdym motywie
ParaDzieńNocWysoki kontrast
Tekst na stroniefg na bg17.66:1AAA15.87:1AAA21.00:1AAA
Tekst drugorzędny na stroniemuted na bg5.76:1AA7.15:1AAA16.83:1AAA
Tekst drugorzędny na karciemuted na surface5.86:1AA6.77:1AA16.83:1AAA
Tekst w kolorze akcentu na stronieaccent-text na bg6.97:1AA10.35:1AAA14.88:1AAA
Tekst na głównym przyciskuaccent-fg na accent5.02:1AA10.00:1AAA14.88:1AAA
Tekst sukcesu na swoim podbarwieniuok na ok-soft5.02:1AA7.53:1AAA10.96:1AAA
Tekst informacji na swoim podbarwieniuinfo na info-soft5.77:1AA6.70:1AA9.88:1AAA
Tekst ostrzeżenia na swoim podbarwieniuwarn na warn-soft5.56:1AA8.29:1AAA10.82:1AAA
Tekst błędu na swoim podbarwieniudanger na danger-soft5.75:1AA5.92:1AA7.67:1AAA
Tekst w ciemnym panelu bocznymnav-fg na nav12.59:1AAA13.73:1AAA21.00:1AAA
Ramka kontrolki na karcieborder-strong na surface3.80:1AA, elementy nietekstowe3.64:1AA, elementy nietekstowe21.00:1AA, elementy nietekstowe
Obwódka fokusa na stroniefocus na bg4.94:1AA, elementy nietekstowe10.35:1AA, elementy nietekstowe14.88:1AA, elementy nietekstowe

GęstośćLink do sekcji Gęstość

data-density="compact" daje mniejsze kontrolki aplikacji desktopowych. Zmienia tylko wysokości kontrolek, więc tekst pozostaje czytelny, a zwarte rozmiary nadal spełniają rozmiar celu 24 px. Przełącznik gęstości na górze tej strony ustawia to dla całej strony.

Standardowa, domyślna
Zwarta

Ustawienia czytelnikaLink do sekcji Ustawienia czytelnika

Dwie klasy na elemencie głównym niosą ustawienia czytelnika aplikacji. a11y-reduce-motion zatrzymuje ruch tak jak ustawienie systemowe, a a11y-strong-focus rysuje obwódkę fokusa o grubości 3 px. Zarządzają nimi AccessibilityProvider i AccessibilitySettings z grupy theme, razem z rozmiarem tekstu i podkreślonymi linkami.

Zobacz w działaniuLink do sekcji Zobacz w działaniu

Przełącznik motywu w nagłówku. Wybór obowiązuje też na skribly.pl i docs.skribly.pl.

Szukaj na stronie

Strzałki przenoszą między wynikami, Enter otwiera, Esc zamyka. Ctrl K /