TL;DR — Saya mengemas design system Morpheme UI sebagai skill Claude Code. Sekarang setiap kali saya minta Claude membangun halaman, dia otomatis mengikuti token, spacing, tipografi, dan aturan aksesibilitas yang benar. Tidak perlu lagi copy-paste spec desain. Tidak ada lagi "biru itu kok beda ya." Cukup
/morpheme-design buat halaman pricingdan langsung jadi. Lihat 10 contoh UI live →
Kalau kamu pernah kerja di tim produk, pasti paham situasi ini. Tim desain punya file Figma yang rapi — lengkap dengan token, komponen, dan guidelines. Tim engineering berusaha mengikutinya. Tapi di suatu titik antara "di Figma 8px" dan "hardcode 10px aja deh, mirip-mirip" — konsistensi mati.
Design system hanya berguna kalau benar-benar diterapkan. Dan menerapkannya secara manual itu melelahkan. Code review menangkap sebagian pelanggaran, linting menangkap sebagian lagi, tapi beban kognitif untuk mengingat shadow token yang mana yang harus dipakai atau seperti apa spec focus ring — itulah yang memperlambat.
Jadi saya bertanya: bagaimana kalau AI-nya sudah tahu design system-nya?
Claude Code punya fitur bernama skills — file instruksi yang bisa dipakai ulang dan diinjeksi ke konteks saat dipicu. Anggap saja sebagai prompt khusus yang aktif berdasarkan apa yang sedang kamu kerjakan.
Saya membuat skill bernama morpheme-design yang berisi semua aturan dari design system kami:
Saat dipicu, skill ini memerintahkan Claude untuk membaca spec DESIGN.md secara lengkap dan menerapkan setiap aturan saat men-generate kode.
project-kamu/
├── DESIGN.md # Spec design system lengkap
├── .claude/
│ └── skills/
│ └── morpheme-design/
│ └── SKILL.md # Definisi skill
File skill (SKILL.md) punya header YAML frontmatter yang memberi tahu Claude Code kapan harus aktif:
---
name: morpheme-design
description: >
Enforce the Morpheme UI Design System when building web pages, apps, or UI components.
Ensures all design tokens, colors, typography, spacing, components, and accessibility
guidelines follow the Morpheme specification from DESIGN.md.
Use when user asks to build, create, or modify a web page, app, landing page,
dashboard, form, UI component, or any frontend interface. Also use when user asks
to style, theme, or design any web element.
---
Di bawah frontmatter adalah konten skill yang sebenarnya — instruksi detail yang mencakup aturan warna, aturan tipografi, aturan spacing, spesifikasi komponen, layout/grid, motion, persyaratan aksesibilitas, dan checklist self-review.
Ada dua cara skill ini aktif:
1. Invokasi manual — awali prompt dengan nama skill:
/morpheme-design buat halaman checkout dengan form pengiriman dan ringkasan pesanan
2. Auto-trigger — Claude Code mendeteksi bahwa kamu sedang minta dibuatkan UI dan mengaktifkan skill secara otomatis:
buatkan halaman settings dengan form profil dan toggle notifikasi
Hasilnya sama: Claude membaca DESIGN.md, merencanakan layout, memilih token yang tepat, dan men-generate kode yang mengikuti setiap spec.
Saat skill aktif, Claude mengikuti pre-flight checklist:
DESIGN.md secara lengkapSetiap halaman yang di-generate mengikuti struktur CSS 7 lapisan di dalam satu blok <style>:
<style>
/* 1. CSS Reset / Normalize */
/* 2. :root variables dari DESIGN.md §14 */
/* 3. Base styles */
/* 4. Component styles menggunakan var() tokens */
/* 5. Layout styles */
/* 6. Responsive styles */
/* 7. prefers-reduced-motion */
</style>
Penerapan berlapis ini memastikan token selalu didefinisikan sebelum digunakan, responsive override tidak bocor ke base styles, dan preferensi reduced-motion selalu diterapkan terakhir.
Semua ikon harus menggunakan gaya outline (stroke 1.5–2px). Library yang direkomendasikan: Heroicons, Phosphor Icons, atau Feather Icons. Ukuran: 16px inline, 20px default, 24px untuk header atau ikon fitur. Tombol icon-only wajib menyertakan aria-label.
Sebelum menampilkan kode final, Claude menjalankan 12 pemeriksaan:
--space-*prefers-reduced-motion disertakan--radius-*Untuk menguji skill ini, saya men-generate 10 contoh UI lengkap — semuanya dari prompt sederhana, semuanya mengikuti design system Morpheme dengan tepat:
| Contoh | Yang dicakup |
|---|---|
| Halaman auth | Login, register, lupa password, verifikasi OTP |
| Blog | Daftar artikel dengan card, detail artikel dengan tipografi prose |
| CRM admin | Tabel data kontak, stat card, panel detail slide-over |
| Dashboard | Grafik pendapatan, tabel pesanan, feed aktivitas, navigasi sidebar |
| E-commerce | Homepage, daftar produk, detail produk, keranjang, checkout (5 halaman) |
| Email inbox | Layout 3 panel: sidebar, daftar email, detail pesan dengan lampiran |
| Halaman error | 404, 500, mode maintenance dengan progress bar |
| Pricing | 3 tier paket, tabel perbandingan fitur, FAQ accordion |
| Settings | Form profil, toggle switch, danger zone, section bertab |
| SaaS landing | Hero, fitur, testimoni, section CTA |
Setiap halaman:
prefers-reduced-motionTotalnya 24 file HTML/CSS, semuanya sesuai design system, di-generate dari prompt satu baris.
Lihat semua 10 contoh UI live →
npx skills add https://github.com/gravitano/morpheme-design-skill --skill morpheme-design
git clone https://github.com/gravitano/morpheme-design-skill.git
cd morpheme-design-skill
claude # skill otomatis terdeteksi
mkdir -p .claude/skills/morpheme-design
cp /path/to/morpheme-design-skill/.claude/skills/morpheme-design/SKILL.md \
.claude/skills/morpheme-design/
cp /path/to/morpheme-design-skill/DESIGN.md .
/install-skill https://github.com/gravitano/morpheme-design-skill
Verifikasi dengan /skills — kamu akan melihat morpheme-design di daftar.
DESIGN.md diorganisir per kategori (warna, tipografi, spacing, komponen) dengan nilai persis dan code snippet. Ditulis agar machine-readable — tabel, blok kode, pola penamaan yang jelas. Tanpa narasi bertele-tele.
SKILL.md memberi tahu Claude apa yang harus dilakukan, bukan apa itu design system. Dia bilang "selalu gunakan var(--color-primary) bukan #1D6EEB" — dia tidak menjelaskan mengapa arsitektur token ada. Mengapa ada di DESIGN.md. Bagaimana ada di SKILL.md.
Tanpanya, Claude kadang lupa detail kecil — query prefers-reduced-motion yang hilang, border-radius yang di-hardcode alih-alih pakai token. Checklist di akhir skill berfungsi sebagai gerbang. Claude menjalankannya sebelum menampilkan kode dan menangkap kesalahannya sendiri.
Skill mengatakan Read @DESIGN.md alih-alih menduplikasi semua token secara inline. Artinya:
DESIGN.md adalah single source of truthAwalnya saya membuat skill sebagai .claude/skills/morpheme-design.md — file datar. Tidak berhasil. Claude Code mensyaratkan skill berada dalam subdirektori:
# Salah
.claude/skills/morpheme-design.md
# Benar
.claude/skills/morpheme-design/SKILL.md
Detail kecil, tapi bikin saya debugging 10 menit.
Pendekatannya generik. Kamu bisa melakukan ini dengan design system apapun:
DESIGN.md. Sertakan: token warna, skala tipografi, sistem spacing, spec komponen, aturan aksesibilitas. Gunakan tabel dan blok kode..claude/skills/nama-skill/SKILL.md. Sertakan: aturan wajib, spesifikasi komponen, checklist self-review.@DESIGN.md — jangan duplikasi konten.Insight kuncinya adalah bahwa design system pada dasarnya berbasis aturan. Mereka adalah sekumpulan constraint: pakai warna ini, bukan itu. Pakai spacing ini, bukan nilai sembarang. Selalu sertakan focus ring. Aturan adalah hal yang LLM kuasai — asalkan kamu memberi tahunya dengan cukup jelas.
Skill lengkap, spec design system, dan semua 10 contoh UI bersifat open source:
github.com/gravitano/morpheme-design-skill
Live demo → morpheme-design-md.vercel.app
Dibuat dengan Claude Code dan design system Morpheme UI oleh gits.id.