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.
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 SafariMenerbitkan 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 tokensOrientasi 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 criteriaMengukur 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!
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
- Merencanakan Sistem Desain
- Membangun Lapisan Token dan Konfigurasi
- Membangun Pustaka Komponen
- Dokumentasi dan Serah Terima Tim