/* @jsx React.createElement */ /* Instrument Picker — interactive: click instrument, content swaps */ const INSTRUMENTS = [ { id: 'guitar', name: 'Guitar', jp: 'ギター', blurb: 'Dari open chord pertama sampai fingerstyle solo. Akustik, elektrik, klasik — pilih gitar kamu.', skills: ['Chord', 'Rhythm', 'Melody', 'Technique', 'Ear Training', 'Theory'], teachers: 1, starters: ['Posisi jari yang baik dan benar', 'Pola strumming', 'Langsung praktek lagu'], icon: 'guitar', }, { id: 'piano', name: 'Piano', jp: 'ピアノ', blurb: 'Koordinasi dua tangan, pengenalan chord dan scale, belajar teori dasar. Pop dan lainnya.', skills: ['Left Hand', 'Right Hand', 'Coordination', 'Rhythm', 'Ear Training', 'Theory'], teachers: 1, starters: ['Latihan tangan independen', 'Baca not angka dan not balok', 'Mainin lagu sesuai karakter murid'], icon: 'piano', }, { id: 'drum', name: 'Drum', jp: 'ドラム', blurb: 'Koordinasi tangan dan kaki, belajar notasi balok. Rock dan Pop.', skills: ['Bass & Snare', 'Hi-Hat', 'Coordination', 'Tempo', 'Dynamics', 'Fill Pattern'], teachers: 1, starters: ['Posisi sticking', 'Groove basic 4/4', 'Drum fill pertama kamu'], icon: 'drum', }, { id: 'bass', name: 'Bass', jp: 'ベース', blurb: 'Feel, groove, fondasi dalam sebuah lagu. Pop dan Rock.', skills: ['Fingering', 'Rhythm', 'Groove', 'Technique', 'Ear Training', 'Theory'], teachers: 1, starters: ['Petik dua jari yang stabil', 'Lock sama drum', 'Bass pattern pada sebuah lagu'], icon: 'bass', }, { id: 'vocal', name: 'Vocal', jp: 'ボーカル', blurb: 'Cari suara asli kamu. Napas, pitch, tone — plus pede pakainya.', skills: ['Pitch', 'Breath Control', 'Tone', 'Rhythm', 'Expression', 'Ear Training'], teachers: 1, starters: ['Diaphragmatic breathing', 'Latihan matching pitch', 'Praktek lagu sederhana'], icon: 'vocal', }, ]; function InstrumentPicker() { const [active, setActive] = React.useState('guitar'); const inst = INSTRUMENTS.find(i => i.id === active); return (
Pilih instrumen kamu

Lima instrumen. Enam skill dimension per instrumen.

Tap salah satu buat liat detailnya
{/* Instrument tabs */}
{INSTRUMENTS.map(i => { const on = i.id === active; return ( ); })}
{/* Active panel */}
{/* Left: copy + starters */}
{inst.name} · {inst.jp}

Apa yang kamu lakuin di bulan pertama.

{inst.blurb}

{inst.starters.map((s, i) => (
W{i + 1}
{s}
))}
Diajar oleh
Andre Putra
Format
Private · Group · In-Home
{/* Right: 6 skill dimensions */}
Skill Radar · 6 dimensi

Yang kita track

{inst.skills.map((s, i) => (
0{i + 1} {s}
))}

Tiap session, gurumu update ke-enam axis ini. Kamu liat bentuknya tumbuh dari minggu ke minggu — mirror paling jujur dari progress kamu.

); } /* ─── Inline instrument glyphs (1.5px stroke, brand-aligned) ─── */ function InstrumentGlyph({ kind, color = 'currentColor' }) { const stroke = { stroke: color, strokeWidth: 1.6, strokeLinecap: 'round', strokeLinejoin: 'round', fill: 'none' }; if (kind === 'guitar') { return ( ); } if (kind === 'piano') { return ( ); } if (kind === 'drum') { return ( ); } if (kind === 'bass') { return ( ); } if (kind === 'vocal') { return ( ); } return null; } Object.assign(window, { InstrumentPicker, INSTRUMENTS, InstrumentGlyph });