GoField — baris yang bisa salah
Satu baris di atas formulir berisi lima kolom yang berbunyi "periksa masukan Anda" tidak memberi tahu kolom yang mana. Hal satu itulah yang membuat orang meninggalkan pendaftaran.
var name_field := GoField.make("Nama karakter", GoStyle.line_edit("2-12"), "Tidak bisa diubah nanti")
name_field.set_error("Nama itu sudah dipakai") # servernya menolak
name_field.clear_error()
Petunjuknya bersembunyi selagi pesan kesalahannya tampil, jadi barisnya tidak bertambah satu baris dan mendorong segala sesuatu di bawahnya, dan teks kesalahannya digabungkan ke dalam nama aksesibilitas kontrolnya — garis tepi merah saja tidak mengatakan apa-apa kepada orang yang tidak bisa melihat merah.
GoStyle.field() adalah versi statisnya: label, kontrol, petunjuk, tanpa keadaan kesalahan. Pakai pabriknya
bila tak ada yang bisa salah, dan node-nya untuk apa pun yang bisa ditolak server.
GoInputGroup — masukan yang dilas ke tombolnya
GoInputGroup.make(GoStyle.line_edit("Pesan"), {"suffix": GoStyle.icon_button(&"send", send)})
GoInputGroup.make(GoStyle.line_edit("Nama"), {"prefix_icon": &"search"})
Yang ia pecahkan adalah sudut. Dua bentuk membulat yang bertemu di tengah tampak terjepit, dan jarak bawaannya membuat keduanya terbaca sebagai dua objek. Sudut luarnya tetap bulat, yang bersentuhan menjadi siku — pada setiap keadaan tombol, kalau tidak kelompoknya terbelah begitu ditekan. Skin ber-chamfer sama sekali tidak punya properti sudut, jadi di sana ia membiarkannya apa adanya dan muka-muka sikunya bertemu dengan rapi.
GoCombobox — pemilih yang bisa mencari
Di bawah sepuluh entri GoStyle.select() lebih baik: satu ketukan lebih sedikit dan seluruh daftarnya terlihat.
Lewat tiga puluh, memindainya jadi pekerjaan.
var picker := GoCombobox.make(server_names, 0, "Pilih server")
picker.picked.connect(func(i: int) -> void: connect_to(servers[i]))
GoCodeInput — kode kupon dan hadiah
Sebuah kode jauh lebih sering ditempel dari sebuah pesan daripada diketik. Dua belas kolom sungguhan akan mematahkan penempelan
di sel pertama dan kehilangan karakter ke IME, jadi satu kolom tersembunyi yang menerima teksnya dan sel-selnya digambar.
ABCD-EFGH-IJKL kehilangan tanda hubungnya di jalan masuk.
var coupon := GoCodeInput.make(12, 4)
coupon.completed.connect(func(code: String) -> void: server.redeem(code))
coupon.set_error("Sudah dipakai")
GoTable — kepala kolom yang bisa diurutkan, baris yang bisa dipilih
var board := GoTable.make(
[{"text": "Peringkat", "width": 56}, {"text": "Nama"}, {"text": "Skor", "numeric": true}], rows)
board.row_selected.connect(func(i: int) -> void: open_profile(rows[i]))
numeric: true, kalau tidak peringkatnya terbalik. Dibandingkan sebagai teks, "9124" mengalahkan
"91240" — dan skor, emas, serta kerusakan semuanya punya jumlah digit yang campur aduk.
row_selected memberi indeks pada array asli Anda, bukan posisi setelah diurutkan. Arah pengurutannya
ditunjukkan dengan sebuah glif, bukan hanya warna, dan seluruh barisnya bisa ditekan supaya tak seorang pun harus mengenai satu
sel. GoStyle.table() tetap menjadi grid yang hanya bisa dibaca.
GoPagination — halaman, atau baris Selengkapnya
var pager := GoPagination.make(1, 12, func(page: int) -> void: load_mail(page))
var more := GoPagination.more(load_next) # varian yang ramah ponsel
Angka itu UI untuk tetikus; pada ponsel baris Selengkapnya lebih terbaca. Halaman yang sedang dibuka tetap terpusat di jendelanya, jadi menekan berikutnya tidak mengacak ulang setiap angka. Total 0 berarti "tidak diketahui" dan hanya panahnya yang digambar — ia tidak mengarang jumlah halaman yang tidak diberikan kepadanya.