Tailwind CSS Academy · Lekcja

Dokumentacja i przekazanie zespołowi

Udokumentują Państwo każdy komponent za pomocą przykładów użycia, tabel propsów i uwag dotyczących dostępności, a następnie opublikują system projektowy jako pakiet npm do użytku przez zespół.

Lekcja 4 z 413 kroki

Dokumentacja i przekazanie zespołowi to bezpłatna lekcja Tailwind CSS Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Tailwind CSS Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Tailwind CSS Academy zawiera 4 lekcji w sumie.

Dlaczego dokumentacja jest kwestią najwyższej wagi

System projektowy bez dokumentacji to tylko zbiór plików zrozumiałych wyłącznie dla ich autorów. Dokumentacja przekształca system w produkt, który inne zespoły mogą wdrażać samodzielnie. Dobra dokumentacja zmniejsza obciążenie zespołu systemu projektowego związane ze wsparciem, przyspiesza wdrażanie nowych inżynierów i zapobiega niewłaściwemu użyciu komponentów prowadzącemu do niespójności między produktami.

Dokumentacja użycia komponentów

Każdy komponent potrzebuje strony opisującej jego użycie, która obejmuje: kiedy go używać, interaktywne przykłady każdego wariantu, tabelę właściwości z nazwą, typem, wartością domyślną i opisem oraz uwagi dotyczące dostępności. Interaktywne przykłady można pobierać bezpośrednio z prezentacji Storybooka, dzięki czemu dokumentacja i implementacja pozostają zsynchronizowane bez duplikowania kodu.

/* Example component documentation structure */

# Button

## When to use
Use Button for primary actions (Save, Submit), secondary actions
(Cancel, Back), and destructive actions (Delete, Remove).
Do NOT use Button for navigation — use a Link component instead.

## Variants
[Live Storybook iframe: AllVariants story]

## Props
| Prop     | Type                              | Default   | Description |
|----------|-----------------------------------|-----------|-------------|
| variant  | primary|secondary|ghost|danger   | primary   | Visual style |
| size     | sm|md|lg                        | md        | Button size  |
| disabled | boolean                          | false     | Disable state |

## Accessibility
Icon-only buttons must include aria-label.

Storybook jako żywa dokumentacja

Skonfiguruj Storybook z dodatkiem Docs addon, aby automatycznie generować stronę dokumentacji każdego komponentu na podstawie komentarzy JSDoc i metadanych prezentacji. Włącza to znacznik autodocs w obiekcie meta prezentacji. Dodaj JSDoc do interfejsu właściwości komponentu, a Docs addon wyodrębni te informacje do czytelnej tabeli właściwości — sekcja właściwości nie wymaga osobnego pliku dokumentacji.

// Button.stories.tsx
const meta: Meta<typeof Button> = {
  component: Button,
  title: 'Primitives/Button',
  tags: ['autodocs'],  // ← enables auto-generated docs page
  parameters: {
    docs: {
      description: {
        component: 'Primary action trigger. Supports four visual variants and three sizes.',
      },
    },
  },
};
export default meta;

// In Button.tsx — JSDoc populates the props table:
interface ButtonProps {
  /** Visual style variant */
  variant?: 'primary' | 'secondary' | 'ghost' | 'danger';
  /** Button size — controls padding and font size */
  size?: 'sm' | 'md' | 'lg';
}

Strona dokumentacji tokenów

Udokumentuj tokeny projektowe na stronie z wizualnym zestawieniem renderującym każdy token koloru, odstępu, typografii i cienia. Pokaż nazwę tokenu, odpowiadającą mu zmienną CSS, rozwiązaną wartość prymitywną oraz próbkę wizualną. Ta strona jest jednym źródłem prawdy, z którego korzystają zarówno projektanci, jak i inżynierowie, sprawdzając przed dodaniem nowego tokenu, czy dany token już istnieje.

/* Token documentation page example */

# Color Tokens

## Semantic Colors

| Token              | CSS Variable           | Value       | Swatch |
|--------------------|------------------------|-------------|--------|
| color.primary      | --color-primary        | #2563eb     |   ■    |
| color.surface      | --color-surface        | #ffffff     |   □    |
| color.text.primary | --color-text-primary   | #111827     |   ■    |

## Usage
Always use semantic tokens in components:
`bg-primary` ✅ not `bg-blue-600` ❌

Tworzenie przewodnika dla początkujących

Przewodnik dla początkujących prowadzi programistę od zera do pierwszego wyrenderowanego komponentu w mniej niż pięć minut. Obejmuje: instalację pakietu, import presetu Tailwind do konfiguracji aplikacji, import globalnego CSS oraz renderowanie elementu Button w celu potwierdzenia poprawności konfiguracji. Zachowaj zwięzłość — zaawansowane użycie opisz na dedykowanych stronach komponentów.

# Getting Started

## 1. Install the package
npm install @acme/ui

## 2. Add the Tailwind preset
```js
// tailwind.config.js
module.exports = {
  presets: [require('@acme/tailwind-config')],
  content: ['./src/**/*.{js,ts,jsx,tsx}'],
};

## 3. Import global styles
import '@acme/ui/styles/globals.css';

## 4. Use a component
import { Button } from '@acme/ui';
export default function App() {
  return <Button variant='primary'>Hello design system!</Button>;
}

Dziennik zmian i informacje o wydaniu

Każde wydanie systemu projektowego powinno mieć wpis w dzienniku zmian w pliku CHANGELOG.md, zgodny z formatem Keep a Changelog. Grupuj zmiany w sekcjach: Added, Changed, Deprecated, Removed, Fixed. Użyj narzędzia takiego jak changesets lub conventional-commits, aby automatyzować generowanie dziennika zmian na podstawie komunikatów commitów i ograniczyć ręczną pracę nad dokumentacją.

# Changelog

## [2.0.0] — 2026-06-20
### Breaking Changes
- Button: renamed `variant='danger'` to `variant='destructive'`
- Input: `errorText` prop renamed to `error`

## [1.3.0] — 2026-06-01
### Added
- Toast component with success/error/warning/info variants
- Tooltip component (CSS-only)
- Avatar component with size variants and initials fallback

## [1.2.1] — 2026-05-15
### Fixed
- Button: missing focus-visible ring in Safari

Publikowanie jako pakiet npm

Opublikuj system projektowy jako prywatny pakiet npm do użytku przez zespół. Skonfiguruj pole exports w pliku package.json, aby osobno udostępniać paczkę komponentów, typy i style. Użyj tsup lub Rollup, aby spakować kod źródłowy TypeScript do formatów ESM i CJS. Dodaj pole types wskazujące na pliki deklaracji .d.ts.

// packages/ui/package.json
{
  "name": "@acme/ui",
  "version": "1.3.0",
  "main": "./dist/index.cjs",
  "module": "./dist/index.esm.js",
  "types": "./dist/index.d.ts",
  "exports": {
    ".": {
      "import": "./dist/index.esm.js",
      "require": "./dist/index.cjs",
      "types": "./dist/index.d.ts"
    },
    "./styles/globals.css": "./dist/styles/globals.css"
  },
  "scripts": {
    "build": "tsup src/index.ts --format esm,cjs --dts --out-dir dist"
  }
}

Wersjonowanie semantyczne i codemod

W przypadku zmian łamiących zgodność zapewnij codemod, który automatycznie zmigruje kod korzystający z biblioteki. Narzędzia takie jak jscodeshift mogą za pomocą jednego polecenia zmieniać nazwy właściwości, zamieniać nazwy komponentów lub przepisywać ścieżki importu w całej bazie kodu. Codemod przekształca aktualizację z ręcznego i podatnego na błędy wyszukiwania i zastępowania w pewną, zautomatyzowaną operację, znacznie zwiększając wskaźnik wdrażania aktualizacji.

// codemods/2.0.0-rename-danger-variant.js (jscodeshift)
export default function transform(file, api) {
  const j = api.jscodeshift;
  return j(file.source)
    .find(j.JSXAttribute, {
      name: { name: 'variant' },
      value: { value: 'danger' },
    })
    .replaceWith(() =>
      j.jsxAttribute(
        j.jsxIdentifier('variant'),
        j.stringLiteral('destructive')
      )
    )
    .toSource();
}

// Run:
npx jscodeshift -t codemods/2.0.0-rename-danger-variant.js src/

Proces przeglądu projektu komponentu

Przed opublikowaniem nowego komponentu poddaj go formalnemu przeglądowi projektu. Lista kontrolna obejmuje: tokeny (czy komponent korzysta z tokenów semantycznych, a nie prymitywnych lub zakodowanych na stałe wartości?), warianty (czy API odpowiada ustalonym konwencjom nazewnictwa?), dostępność (czy przechodzi axe-core bez żadnych naruszeń?), responsywność (czy renderuje się poprawnie we wszystkich punktach przełamania?) oraz tryb ciemny (czy wszystkie powierzchnie mają warianty dla trybu ciemnego?).

/* New Component Review Checklist */

Token Usage:
  [ ] No hardcoded hex colors — only semantic token utilities
  [ ] No arbitrary spacing values — only theme scale

API Conventions:
  [ ] Variant prop uses established names (primary/secondary/etc)
  [ ] Size prop uses sm/md/lg
  [ ] className forwarding enabled for extension

Accessibility:
  [ ] axe-core in Storybook a11y addon shows 0 violations
  [ ] Focus visible ring present
  [ ] Screen reader announcement verified

Dark Mode:
  [ ] All bg-* utilities have dark: equivalents or use semantic tokens

Wdrażanie zespołu do systemu projektowego

Zaplanuj sesję wdrożeniową dotyczącą systemu projektowego dla nowych programistów i organizuj ją także dla obecnych programistów po każdym wydaniu głównej wersji. Pokaż witrynę z dokumentacją komponentów, zademonstruj system tokenów i działanie trybu ciemnego, pokaż, jak znaleźć właściwy komponent przed utworzeniem własnego, oraz wyjaśnij proces zgłaszania propozycji nowych komponentów i błędów.

/* Onboarding session agenda (60 min) */

10min: Design system philosophy
  — Why we have a system (consistency, speed, accessibility)
  — What it covers and what it does not

20min: Token and config layer
  — Primitive vs semantic tokens
  — How to use bg-primary, text-text-primary
  — Dark mode switching demo

20min: Component library walkthrough
  — Finding the right component in docs
  — Using CVA variants: <Button variant='danger'>
  — Extending with className prop

10min: Contribution process
  — How to propose a new component
  — PR review and acceptance criteria

Pomiar stopnia wdrożenia systemu projektowego

Śledź wskaźniki wdrożenia, aby zrozumieć, jak szeroko używany jest system projektowy i gdzie inżynierowie nadal polegają na doraźnych stylach. Uruchom skrypt zliczający importy komponentów w poszczególnych repozytoriach i oznaczający pliki z dużą liczbą niestandardowych kombinacji Tailwind, które można zastąpić komponentami systemu projektowego. Panele wskaźników wdrożenia motywują do ulepszeń i uzasadniają inwestycje w nowe komponenty.

// scripts/measure-adoption.js
const glob = require('glob');
const fs = require('fs');

const files = glob.sync('apps/**/*.{jsx,tsx}');
let importCount = 0;
let buttonCount = 0;

files.forEach(f => {
  const src = fs.readFileSync(f, 'utf8');
  if (src.includes('@acme/ui')) importCount++;
  if (src.includes('<Button')) buttonCount++;
});

console.log(`Files using @acme/ui: ${importCount} / ${files.length}`);
console.log(`Button component uses: ${buttonCount}`);

Szybki test

Sprawdź swoją znajomość zagadnień Tailwind CSS Mastery omówionych w tej lekcji.

Podsumowanie lekcji

W tej lekcji nauczyłeś się: korzystać ze znacznika autodocs w Storybooku do generowania żywej dokumentacji na podstawie JSDoc i prezentacji; publikować system projektowy jako pakiet npm z prawidłowymi eksportami i deklaracjami typów; oraz zapewniać codemody i wdrażanie, aby wspierać zespoły aktualizujące i wdrażające system. Gratulacje — ukończyłeś całą ścieżkę Tailwind CSS Mastery!

Bezpłatny start

Ucz się HTML dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Dokumentacja i przekazanie zespołowi” jest bezpłatna?

Tak — pełny tekst „Dokumentacja i przekazanie zespołowi” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Tailwind CSS Academy, przejdź na CoddyKit PRO. Kurs Tailwind CSS Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Dokumentacja i przekazanie zespołowi”?

Udokumentują Państwo każdy komponent za pomocą przykładów użycia, tabel propsów i uwag dotyczących dostępności, a następnie opublikują system projektowy jako pakiet npm do użytku przez zespół. Ćwiczysz Tailwind CSS Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Tailwind CSS Academy?

Nie wymagamy żadnego doświadczenia. Tailwind CSS Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Dokumentacja i przekazanie zespołowi”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Tailwind CSS Academy?

Tak. Każda lekcja Tailwind CSS Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Planowanie systemu projektowego
  2. Budowanie warstwy tokenów i konfiguracji
  3. Budowanie biblioteki komponentów
  4. Dokumentacja i przekazanie zespołowi
← Powrót do Tailwind CSS Academy