Przejdź do treści
1.1Lokalizacja: dokumentacja po polsku, komponenty w każdym języku

Interfejsy dopięte na ostatni guzik

prfct to design system dla Reacta z otwartym kodem. Generowana paleta OKLCH z kontrastem wyliczanym podczas budowania, 54 dostępne komponenty na Base UI i tokeny, które należą do ciebie — dla Next.js, Tailwind CSS i shadcn.

$ pnpm dlx shadcn@latest add https://www.prfct.dev/r/prfct.json
meridian.app/overview

Przegląd

AL
Żądania
12,4 mln
+18,2%
Opóźnienie p95
84 ms
−6,1%
Odsetek błędów
0,12%
+0,02
Dostępność
99,99%
30 dni
Ruch
Żądania na godzinę, ostatnie 24 godziny
Zespół
4 osoby wdrożyły dziś zmiany
ALGHKJMS
Ada scaliła#4822 min
Grace otworzyła#48714 min
Katherine naprawiła#4791 godz.
WdrożenieStatusWiek
AL
Wdróż nową stronę rozliczeńdpl_8f2c
Gotowe2 min
GH
Paleta poleceń z wyszukiwaniem rozmytymdpl_7a91
Budowanie6 min
KJ
Formatuj daty w strefie czasowej użytkownikadpl_6d04
Gotowe1 godz.
MS
Wypróbuj streaming na pulpiciedpl_5be3
Nieudane3 godz.
Konsola wdrożeń zbudowana w całości z komponentów prfct.

Systemowo z założenia

Decyzje podjęte raz — już nigdy nie musisz ich powtarzać.

Każdy komponent prfct powstaje z tych samych fundamentów. Zmień fundament, a cały interfejs podąży za nim.

4.9:1
4.6:1
4.6:1
4.6:1
Kolor

Paleta, której możesz dowieść

Dwanaście stopni na każdy odcień, generowanych w OKLCH. Stopnie tekstu są wyliczane pod WCAG AA na każdym wypełnieniu, na którym mogą się znaleźć — i sprawdzane na 1152 wygenerowanych skalach w testach.

Aa
Inter 4.1opsz 14 → 32wght 100 → 900tnum · zero · cv11
Typografia

Krój, który się dostosowuje

Inter z rozmiarem optycznym przechodzi w odmianę Display, gdy tekst rośnie. Każda funkcja OpenType przetrwała samodzielny hosting.

ease-spring · 521 ms · bez JavaScriptu
Ruch

Sprężyny w czystym CSS

Fizyczne sprężyny symulowane podczas budowania i dostarczane jako krzywe CSS linear(). Można je przerwać, a przy ograniczonym ruchu się wyłączają.

// light.tokens.json — DTCG 2025.10
"brand": { "9": {
  "$type": "color",
  "$value": { "colorSpace": "oklch",
    "components": [0.515, 0.24, 267],
    "hex": "#2c4fee" } } }
Tokeny

Tokeny to dane

Zdefiniowane raz w TypeScripcie. Eksportowane jako CSS, klasy Tailwinda i JSON w formacie W3C Design Tokens dla Figmy i Tokens Studio.

  • Tekst ≥ 4,5:1 na każdym wypełnieniu
  • Krawędzie kontrolek ≥ 3:1
  • Widoczny fokus w trybie wymuszonych kolorów
  • Klawiatura według wzorców WAI-ARIA
  • Respektowany ograniczony ruch
  • Cele dotyku ≥ 24 × 24 px
Dostępność

AA z samej konstrukcji

Prymitywy Base UI implementują wzorce ARIA; prfct sprawia, że dostępny wybór jest wyborem domyślnym.

Komponenty
54
Tokeny kolorów
169
Role typograficzne
21
CSS-in-JS w runtime
0

Zrób go swoim

Jeden odcień na wejściu. Dwanaście dostępnych stopni na wyjściu.

Wybierz kolor marki, a prfct wygeneruje całą skalę dla trybu jasnego i ciemnego — na nowo wyliczając kontrast każdego stopnia tekstu. Cała ta strona przemalowuje się w trakcie wyboru.

267°
oklch(0.515 0.24 267)6.07:1 AA
Na żywoPodgląd
x

Przeczytaj przewodnik po motywach.

Otwarty kod

Każda linijka należy do ciebie.

Komponenty trafiają do twojego projektu przez shadcn CLI. Czytaj je, zmieniaj, usuwaj to, czego nie potrzebujesz. Aktualizacja to diff, który przeglądasz — nigdy wymuszona zmiana, która psuje twój kod.

  • Prymitywy Base UI odpowiadają za zachowanie i dostępność
  • Tailwind CSS v4 z zamkniętym motywem opartym na tokenach
  • Rejestr shadcn: jedno polecenie na komponent
components/ui/button.tsx
const buttonVariants = cva(base, {
 variants: {
 variant: {
 default: "bevel bg-primary text-primary-foreground",
 brand: "bevel bg-brand text-brand-foreground",
 outline: "border border-border-strong bg-card",
 ghost: "hover:bg-accent",
 },
 size: { xs, sm, default, lg, xl, icon },
 },
})

// Stan ładowania zachowuje szerokość i fokus — układ nie skacze.
<Button loading={saving}>Zapisz zmiany</Button>

Nie ma już czego odjąć.

Zainstaluj motyw, dodaj pierwszy komponent i dostarcz interfejs, który jest precyzyjny od pierwszego commita.