Tailwind CSS Academy · Pelajaran

Dokumentasi dan Serah Terima Tim

Dokumentasikan setiap komponen dengan contoh penggunaan, tabel prop, dan catatan aksesibilitas, lalu publikasikan sistem desain sebagai paket npm untuk digunakan tim.

Pelajaran 4 dari 413 langkah

Dokumentasi dan Serah Terima Tim adalah pelajaran Tailwind CSS Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Tailwind CSS Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Tailwind CSS Academy mencakup 4 pelajaran total.

Mengapa Dokumentasi Menjadi Perhatian Utama

Sistem desain tanpa dokumentasi hanyalah kumpulan file yang hanya dipahami oleh pembuatnya. Dokumentasi mengubah sistem tersebut menjadi sebuah produk yang dapat diadopsi secara mandiri oleh tim lain. Dokumentasi yang baik mengurangi beban dukungan bagi tim sistem desain, mempercepat orientasi teknisi baru, dan mencegah penyalahgunaan komponen yang dapat menyebabkan ketidakkonsistenan di berbagai produk.

Dokumentasi Penggunaan Komponen

Setiap komponen memerlukan halaman penggunaan yang mencakup: kapan harus digunakan, contoh langsung untuk setiap varian, tabel properti dengan nama, tipe, nilai bawaan, dan deskripsi, serta catatan aksesibilitas. Contoh langsung dapat diambil langsung dari cerita Storybook, sehingga dokumentasi dan implementasi tetap tersinkronisasi tanpa menggandakan kode.

/* 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 sebagai Dokumentasi yang Terus Hidup

Konfigurasikan Storybook dengan pengaya Docs untuk membuat halaman dokumentasi secara otomatis bagi setiap komponen dari komentar JSDoc dan metadata cerita. Tag autodocs pada objek meta sebuah cerita mengaktifkan fitur ini. Tambahkan JSDoc ke antarmuka properti komponen Anda, lalu pengaya Docs akan mengekstraknya menjadi tabel properti yang mudah dibaca — tidak diperlukan file dokumentasi terpisah untuk bagian properti.

// 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';
}

Halaman Dokumentasi Token

Dokumentasikan token desain dengan halaman referensi visual yang menampilkan setiap token warna, jarak, tipografi, dan bayangan. Tampilkan nama token, variabel CSS-nya, nilai primitif yang telah diselesaikan, dan contoh warna visual. Halaman ini menjadi satu-satunya sumber kebenaran yang digunakan desainer dan teknisi saat memeriksa keberadaan token sebelum menambahkan token baru.

/* 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` ❌

Menulis Panduan Memulai

Panduan Memulai membawa pengembang dari kondisi awal hingga merender komponen pertamanya dalam waktu kurang dari lima menit. Panduan ini mencakup: memasang paket, mengimpor prasetel Tailwind ke konfigurasi aplikasi, mengimpor CSS global, dan merender Button untuk memastikan penyiapan berfungsi. Buatlah tetap ringkas — simpan penggunaan lanjutan untuk halaman komponen khusus.

# 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>;
}

Catatan Perubahan dan Catatan Rilis

Setiap rilis sistem desain harus memiliki entri catatan perubahan dalam CHANGELOG.md yang mengikuti format Keep a Changelog. Kelompokkan perubahan ke dalam: Ditambahkan, Diubah, Didepresiasi, Dihapus, Diperbaiki. Gunakan alat seperti changesets atau conventional-commits untuk mengotomatiskan pembuatan catatan perubahan dari pesan komit, sehingga mengurangi pekerjaan dokumentasi manual.

# 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

Menerbitkan sebagai Paket npm

Terbitkan sistem desain sebagai paket npm privat untuk digunakan oleh tim. Konfigurasikan bidang exports dalam package.json untuk mengekspos bundel komponen, tipe, dan gaya secara terpisah. Gunakan tsup atau Rollup untuk membundel sumber TypeScript ke dalam format ESM dan CJS. Sertakan bidang types yang mengarah ke file deklarasi .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"
  }
}

Penerapan Versi Semantik dan Codemod

Untuk perubahan yang merusak kompatibilitas, sediakan codemod yang memigrasikan kode pengguna secara otomatis. Alat seperti jscodeshift dapat mengganti nama properti, menukar nama komponen, atau menulis ulang jalur impor di seluruh basis kode dengan satu perintah. Codemod mengubah proses peningkatan versi dari pencarian dan penggantian manual yang rawan kesalahan menjadi operasi otomatis yang meyakinkan — sehingga tingkat adopsi peningkatan versi meningkat drastis.

// 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/

Proses Tinjauan Desain Komponen

Sebelum menerbitkan komponen baru, lakukan tinjauan desain formal terhadapnya. Daftar periksa tinjauan mencakup: token (apakah menggunakan token semantik, bukan nilai primitif atau nilai hardcode?), varian (apakah API mengikuti konvensi penamaan yang telah ditetapkan?), aksesibilitas (apakah lolos axe-core tanpa pelanggaran?), responsif (apakah dirender dengan benar pada semua titik henti?), dan mode gelap (apakah semua permukaan memiliki varian gelap?).

/* 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

Orientasi Tim terhadap Sistem Desain

Jadwalkan sesi orientasi sistem desain bagi pengembang baru dan adakan sesi tersebut untuk pengembang yang sudah ada setiap kali versi utama dirilis. Tinjau situs dokumentasi komponen, demonstrasikan sistem token dan cara kerja mode gelap, tunjukkan cara mencari komponen yang tepat sebelum membuat komponen khusus, serta jelaskan proses kontribusi untuk mengusulkan komponen baru atau melaporkan bug.

/* 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

Mengukur Adopsi Sistem Desain

Lacak metrik adopsi untuk memahami seberapa luas sistem desain digunakan dan di bagian mana teknisi masih mengandalkan gaya ad hoc. Jalankan skrip yang menghitung impor komponen di setiap repositori dan menandai file dengan tingkat kombinasi Tailwind khusus yang tinggi, yang dapat digantikan oleh komponen sistem desain. Dasbor adopsi mendorong perbaikan dan membantu membenarkan investasi pada komponen baru.

// 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}`);

Pemeriksaan Cepat

Uji pemahaman Anda tentang konsep Penguasaan Tailwind CSS dari pelajaran ini.

Rangkuman Pelajaran

Dalam pelajaran ini Anda mempelajari: menggunakan tag autodocs Storybook untuk membuat dokumentasi yang terus hidup dari JSDoc dan cerita, menerbitkan sistem desain sebagai paket npm dengan ekspor dan deklarasi tipe yang tepat, serta menyediakan codemod dan orientasi untuk mendukung tim dalam meningkatkan versi dan mengadopsi sistem. Selamat — Anda telah menyelesaikan seluruh jalur Penguasaan Tailwind CSS!

Gratis untuk memulai

Belajar HTML dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Dokumentasi dan Serah Terima Tim” gratis?

Ya — teks lengkap “Dokumentasi dan Serah Terima Tim” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Tailwind CSS Academy, upgrade ke CoddyKit PRO. Kursus Tailwind CSS Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Dokumentasi dan Serah Terima Tim”?

Dokumentasikan setiap komponen dengan contoh penggunaan, tabel prop, dan catatan aksesibilitas, lalu publikasikan sistem desain sebagai paket npm untuk digunakan tim. Kamu berlatih Tailwind CSS Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Tailwind CSS Academy?

Tidak diperlukan pengalaman sebelumnya. Tailwind CSS Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Dokumentasi dan Serah Terima Tim” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Tailwind CSS Academy ini?

Ya. Setiap pelajaran Tailwind CSS Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Merencanakan Sistem Desain
  2. Membangun Lapisan Token dan Konfigurasi
  3. Membangun Pustaka Komponen
  4. Dokumentasi dan Serah Terima Tim
← Kembali ke Tailwind CSS Academy