Fitur v1.2 — Ergonomi Bahasa
Showcase empat penambahan v1.2: two-way binding (`ikat`), operator string (`berisi`), parameter default komponen, dan fetch inline (`on_klik = ambil ... ke`) dengan auto loading/error.
two-way binding
operator string
fetch inline
default param
fitur-v1-2.pjs
---
judul: "Fitur v1.2 — Ergonomi Bahasa"
---
Gaya:
body
font-family: 'Inter', system-ui, -apple-system, sans-serif
margin: 0
min-height: 100vh
display: flex
align-items: center
justify-content: center
background: #0f172a
color: #e2e8f0
.card
background: #1e293b
border: 1px solid #334155
border-radius: 20px
padding: 36px
min-width: 380px
max-width: 460px
box-shadow: 0 20px 50px rgba(0,0,0,0.4)
.card h1
margin: 0 0 4px
font-size: 1.4rem
font-weight: 800
color: #f8fafc
.sub
color: #94a3b8
font-size: 0.85rem
margin-bottom: 24px
.field
margin-bottom: 18px
.field label
display: block
font-size: 0.75rem
text-transform: uppercase
letter-spacing: 0.08em
color: #64748b
font-weight: 700
margin-bottom: 6px
.field input
width: 100%
box-sizing: border-box
padding: 11px 14px
border: 1px solid #334155
border-radius: 10px
background: #0f172a
color: #e2e8f0
font-size: 1rem
font-family: inherit
.preview
background: #0f172a
border: 1px solid #334155
border-radius: 10px
padding: 14px 16px
margin-top: 4px
font-size: 0.95rem
.badge
display: inline-block
padding: 3px 10px
border-radius: 999px
font-size: 0.72rem
font-weight: 700
.badge-admin
background: #7c2d12
color: #fed7aa
.badge-user
background: #164e63
color: #a5f3fc
.btn
width: 100%
box-sizing: border-box
padding: 12px
border: none
border-radius: 10px
font-size: 1rem
font-weight: 700
cursor: pointer
font-family: inherit
background: #38bdf8
color: #0f172a
margin-top: 8px
.btn:hover
opacity: 0.9
.status
margin-top: 12px
font-size: 0.85rem
min-height: 20px
Komponen Lencana(teks, gaya: "badge-user"):
Buat span.badge:
on_kelas = "badge " + $gaya
$teks
Halaman FiturV12:
data nama = ""
data hasil = []
data hasil_memuat = salah
data hasil_galat = ""
turunan adalahAdmin = nama berisi "admin"
turunan sapaan = "Halo, " + $nama
Buat div.card:
Buat h1: $judul
Buat div.sub: "Two-way binding, operator string, parameter default, & fetch inline"
Buat div.field:
Buat label: "Nama pengguna"
Buat masukan #nama:
ikat = nama
Buat div.preview:
Saat nama:
Buat span: $sapaan
Buat div.field:
Jika adalahAdmin:
Gunakan Lencana teks="Akses Admin" gaya="badge-admin"
selain itu:
Gunakan Lencana teks="Pengguna Biasa"
Buat tombol.btn #muat:
"Muat Data"
on_klik = ambil dari "https://jsonplaceholder.typicode.com/users" ke hasil
Buat div.status:
Jika hasil_memuat:
Buat span: "Memuat..."
Jika hasil_galat tidak sama dengan "":
Buat span: "Gagal: " + $hasil_galat
Live Preview
2 warning(s) dari compiler
E4009Event name "on_kelas" mungkin tidak dikenali.W4101Simbol "hasil" dideklarasikan tetapi tidak pernah digunakan.