Skip to content

Cara Saya Membangun Sistem VI — Harmoni Asimetris Antara Desain dan Kode

Berawal dari dua file PNG, ini adalah catatan lengkap pembuatan sistem identitas visual merek secara otomatis menggunakan Python.


1. Apa Itu VI? Mengapa Perlu Dibuat?

VI (Visual Identity — Sistem Identitas Visual) adalah "standar bahasa visual" yang digunakan merek untuk berkomunikasi ke luar. Ini menjawab satu pertanyaan inti: Ketika merek ini muncul di mana saja, seperti apa tampilannya?

Sebuah paket VI lengkap mencakup setidaknya:

KategoriIsi
Logo utamaVersi latar belakang transparan, versi berbagai warna latar
Variasi logoHorizontal, vertikal, persegi, lingkaran
Palet warnaSpesifikasi HEX / RGB / CMYK
Aturan tipografiFont utama/pendukung, rekomendasi ukuran
Panduan penggunaanRuang bersih, perilaku yang dilarang
Contoh aplikasiKartu nama, kop surat, avatar media sosial

Tanpa VI, setiap desainer, insinyur, dan pemasar "berimprovisasi bebas", dan merek perlahan kehilangan konsistensinya. Dengan VI, satu folder memungkinkan siapa saja menghasilkan tampilan merek yang konsisten.


2. Titik Awal: Dua PNG

Logo Asli

Analisis struktur Logo:

  • Kiri: Simbol pesawat kertas / panah berbentuk A, terdiri dari dua segitiga
    • Segitiga utama: warna Teal (#03dcd0)
    • Segitiga gelap: mendekati hitam (#181c20), menciptakan dimensi
  • Kanan: Nama merek "Ascentek" dengan font sans-serif gelap
  • Latar belakang: Transparan (RGBA)

3. Ekstraksi Elemen Merek

3.1 Ekstraksi palet warna

python
def get_dominant_colors(img, k=3):
    pixels = [px[:3] for px in img.getdata() if px[3] > 0]
    small = Image.new('RGB', (len(pixels), 1))
    small.putdata(pixels)
    pal = small.convert('P', palette=Image.ADAPTIVE, colors=k)
    return pal.getpalette()[:k*3]

Hasil ekstraksi:

PeranHEXRGB
Primary#03dcd03, 220, 208
Secondary#204b4c32, 75, 76
Dark / Text#181c2024, 28, 32

3.2 Deteksi batas Icon

Pendekatan yang benar: Cari celah terlebar

Celah antara icon dan teks selalu lebih lebar dari celah mana pun di dalam icon.

python
def find_icon_right(img):
    return max(gaps, key=width)[start_x]

4. Pemilihan Alat

AlatKegunaanAlasan Memilih
Python 3Bahasa skripLintas platform, ekosistem kaya
Pillow (PIL)Pemrosesan gambarPure Python, dukungan RGBA lengkap
MontserratFont merekGaya sesuai logo asli, lisensi SIL

5. Teknik Inti: Adaptasi Warna

5.1 Adaptasi latar belakang gelap

python
def adapt_dark(img):
    for r, g, b, a in data:
        if a < 10:
            out.append((0, 0, 0, 0))         # Transparan: biarkan
        elif r < 80 and g < 80 and b < 80:
            out.append((255, 255, 255, a))    # Gelap: ubah jadi putih
        else:
            out.append((r, g, b, a))          # Teal: pertahankan

5.2 Siluet monokrom

python
def silhouette(img, color_rgb):
    alpha = img.split()[3]
    base = Image.new('RGBA', img.size, color_rgb + (255,))
    base.putalpha(alpha)
    return base

Horizontal Latar TerangHorizontal Latar Gelap


7. Desain Aplikasi

7.1 Kartu Nama

Kartu Nama DepanKartu Nama Belakang

Kartu nama sudah dihasilkan, namun ukuran dan tata letak adalah hal yang subjektif — berbeda untuk setiap orang, jadi tidak perlu dibahas lebih lanjut.

7.2 Kop Surat (Letterhead)

Spesifikasi: A4 @ 300 dpi = 2480×3508 px. Logo di header harus menggunakan versi yang diadaptasi untuk latar gelap (adapt_dark).


8. Jebakan yang Ditemui Saat Bekerja dengan AI

Jebakan 1: Teks Ganda (Ghost Text)

Solusi: Jangan tambahkan teks di atas logo yang sudah ada teksnya.

Jebakan 2: Logo Tidak Terlihat di Latar Gelap

Solusi: Fungsi adapt_dark — ubah pixel gelap menjadi putih, pertahankan teal.

Jebakan 3: Pemotongan Icon Tidak Lengkap

Solusi: Cari celah terlebar, bukan celah pertama yang ditemukan.

Jebakan 4: Circle Primary Tidak Terlihat

Solusi: Ubah icon menjadi siluet putih terlebih dahulu, lalu tempatkan di latar teal.

Jebakan 5: Estetika Adalah Hal yang Sulit Dinilai Secara Objektif

Keindahan bersifat subjektif — serahkan pada selera masing-masing. Secara pribadi, saya merasa logo pada kartu nama yang dihasilkan agak terlalu besar dibandingkan keseluruhan desain.


9. Struktur Output Akhir

VI-ClaudeVersion/
├── logo/          # Semua variasi Logo (PNG + SVG)
├── applications/  # Contoh aplikasi
├── palette.txt
└── generate_vi.py

10. Di Mana Workflow Ini Bisa Digunakan Ulang?

Ubah dua baris pertama di generate_vi.py:

python
LOGO_SRC = 'logo_baru_anda.png'
BRAND    = 'NamaMerek'

Jalankan python generate_vi.py — semua 28 file dihasilkan sekaligus.


11. Ringkasan Filosofi Inti

Inti dari membangun VI bukan "menggambar gambar yang indah", melainkan menetapkan aturan yang bisa dieksekusi.

  1. Jangan lakukan secara manual apa yang bisa diotomatisasi
  2. Baca kebenaran dari pixel
  3. Tulis keputusan desain sebagai fungsi
  4. Kode adalah dokumentasi
  5. Dapat direproduksi dengan satu perintah

Sistem VI terbaik adalah sistem yang bisa digunakan dengan benar oleh siapa saja, tanpa kehadiran pembuatnya.

Easter egg: Logo asli pun sebenarnya dipilih oleh bos dari beberapa versi yang dibuat oleh AI…

Basis Pengetahuan Digital Ascentek