GoSnackbar — komunikat, który sam się umieszcza
Siada na dole (albo na górze), ponad bezpiecznym obszarem i klawiaturą, i sam odchodzi. Bez niego piszesz warstwę, umiejscowienie, licznik czasu i sprzątanie na każdym ekranie, który musi powiedzieć „zapisano”.
snack.show_text("Zapisano", GoTheme.SUCCESS)
# Szansa, żeby cofnąć — 0 to pierwszy przycisk, -1 oznacza, że czas minął
if await snack.post({"text": "Przedmiot wyrzucony", "actions": ["Cofnij"]}) == 0:
restore_item()
Komunikaty ustawiają się w kolejce, zamiast się wzajemnie nadpisywać, a powtórzenia tej samej linii są scalane — serwer psujący się cztery razy na sekundę nie układa już czterech minut alertów. Snackbar bez przycisku przepuszcza wejście, więc gra pod spodem działa dalej.
GoDialogs. Przyciski tutaj muszą być opcjonalne — Cofnij,
Szczegóły, Ponów.
GoNotice to druga połowa pary: nigdy nie przyjmuje wejścia ani fokusu, a o tym, gdzie trafi,
decyduje ekran, który go posiada. Tamten nie pomieści przycisku; ten owszem.
GoSpinner — czekanie, którego końca nie widać
Gry rozmawiające z serwerem potrzebują tego bardziej niż czegokolwiek innego na tej stronie: nieruchomy ekran czyta się jako zawieszenie. Jedno wywołanie zmienia naciśnięty przycisk w spinner na miejscu.
GoSpinner.busy(buy_button, true)
var ok := await server.purchase(item)
GoSpinner.busy(buy_button, false)
Przycisk zachowuje swój rozmiar — etykieta staje się przezroczysta, zamiast zniknąć, więc rząd nie
podskakuje — i jest wyłączony, dopóki się kręci. To drugie jest sednem: zakup nie może wystrzelić dwa razy,
kiedy czekasz przez await. Przy włączonym reduce_motion nic się nie kręci; zamiast tego pulsują trzy kropki.
Postęp, który da się zmierzyć, to GoBar. Spinner nie obiecuje niczego co do tego, kiedy się skończy.
GoBadge — kropka nieprzeczytanych, etykietka NOWE, 99+
GoBadge.attach(mail_button, unread_count) # przy zerze chowa się sama
GoBadge.attach(shop_button, 0, "NOWE")
GoBadge.attach(friend_button, 3, "", true) # kropka — „coś tam jest”
Wisi na prawym górnym rogu gospodarza na kotwicach, więc podąża za gospodarzem, którego rozmiar rozstrzyga się później, a dwukrotne przypięcie zwraca tę samą plakietkę. Użyj liczby, gdy jej wartość zmienia to, co gracz robi, a kropki, gdy liczy się tylko „coś tam jest”.
Kolor jej tekstu dobierany jest pod kontrast względem tego, na jaki kolor plakietkę pomalowała skórka — nigdy nie zakłada się bieli — a sama niesie nazwę dostępności, bo kolorowa kropka nie mówi czytnikowi ekranu nic.