Cachupa como na Brava, feita desde as seis da manhã.
A ourela que cose
Todos os componentes do catálogo, com dados reais dos seis mercados. O tema e o modo poupar dados vêm do URL, por isso cada variante tem o seu endereço.
Papéis, não tons
As duas colunas são os mesmos papéis em claro e em escuro; o escuro é desenhado ao lado do claro, nunca derivado dele.
Chão e tinta
claro · papel branco
escuro · noite #0B0F14
Verbo e atenção
claro · papel branco
escuro · noite #0B0F14
Dinheiro
claro · papel branco
escuro · noite #0B0F14
Estados
claro · papel branco
escuro · noite #0B0F14
Mapa
claro · papel branco
escuro · noite #0B0F14
As sete categorias
Contraste, calculado agora a partir de tokens.json
87 pares · todos cumprem o mínimo
| Tema | Frente sobre fundo | Amostra | Ratio | Mín. |
|---|---|---|---|---|
| light | text / background | Aa · 8 500 Kz | 15.89 | 4.5 |
| light | text / surface | Aa · 8 500 Kz | 15.58 | 4.5 |
| light | text / surfaceRaised | Aa · 8 500 Kz | 17.09 | 4.5 |
| light | textMuted / background | Aa · 8 500 Kz | 5.49 | 4.5 |
| light | textMuted / surface | Aa · 8 500 Kz | 5.39 | 4.5 |
| light | textMuted / surfaceRaised | Aa · 8 500 Kz | 5.91 | 4.5 |
| light | textPlaceholder / surface | Aa · 8 500 Kz | 5.39 | 4.5 |
| light | textDisabled / backgroundexempt (aria-disabled) | Aa · 8 500 Kz | 2.06 | — |
| light | disabledText / disabledFillexempt (disabled, 100 % opacity) | Aa · 8 500 Kz | 3.70 | — |
| light | text / disabledFilla visible disabledReason is live information, not a dead label | Aa · 8 500 Kz | 12.97 | 4.5 |
| light | primary / background | Aa · 8 500 Kz | 6.15 | 4.5 |
| light | onPrimary / primary | Aa · 8 500 Kz | 6.62 | 4.5 |
| light | onPrimary / primaryHover | Aa · 8 500 Kz | 9.85 | 4.5 |
| light | onPrimary / primaryPressed | Aa · 8 500 Kz | 13.04 | 4.5 |
| light | accent / background | Aa · 8 500 Kz | 4.81 | 4.5 |
| light | accent / surfacea flash-sale header sits on a card, not only on the page | Aa · 8 500 Kz | 4.72 | 4.5 |
| light | onAccent / accent | Aa · 8 500 Kz | 5.18 | 4.5 |
| light | onMerchantAccent / merchantAccent | Aa · 8 500 Kz | 7.31 | 4.5 |
| light | onMoney / money | Aa · 8 500 Kz | 11.03 | 4.5 |
| light | onMoneyBox / moneyBox | Aa · 8 500 Kz | 11.03 | 4.5 |
| light | success / background | Aa · 8 500 Kz | 6.15 | 4.5 |
| light | onSuccessTint / successTint | Aa · 8 500 Kz | 8.43 | 4.5 |
| light | onWarning / warning | Aa · 8 500 Kz | 8.40 | 4.5 |
| light | warningText / background | Aa · 8 500 Kz | 7.25 | 4.5 |
| light | danger / background | Aa · 8 500 Kz | 7.86 | 4.5 |
| light | danger / surface | Aa · 8 500 Kz | 7.71 | 4.5 |
| light | onDanger / danger | Aa · 8 500 Kz | 8.46 | 4.5 |
| light | onDanger / dangerHover | Aa · 8 500 Kz | 11.18 | 4.5 |
| light | onDangerTint / dangerTint | Aa · 8 500 Kz | 9.32 | 4.5 |
| light | onNeutralTint / neutralTint | Aa · 8 500 Kz | 6.24 | 4.5 |
| light | border / backgrounddecorative hairline | Aa · 8 500 Kz | 1.18 | — |
| light | borderInput / backgroundnon-text boundary | Aa · 8 500 Kz | 4.22 | 3.0 |
| light | borderInput / surfaceRaisednon-text boundary | Aa · 8 500 Kz | 4.54 | 3.0 |
| light | ring / backgroundfocus ring | Aa · 8 500 Kz | 6.15 | 3.0 |
| light | link / background | Aa · 8 500 Kz | 6.15 | 4.5 |
| light | link / surface | Aa · 8 500 Kz | 6.04 | 4.5 |
| light | onSelectedChip / selectedChip | Aa · 8 500 Kz | 9.85 | 4.5 |
| light | onToast / toast | Aa · 8 500 Kz | 17.09 | 4.5 |
| light | skeleton / surfacedecorative | Aa · 8 500 Kz | 1.10 | — |
| light | placeholderIcon / placeholderTileicon | Aa · 8 500 Kz | 6.74 | 3.0 |
| dark | text / background | Aa · 8 500 Kz | 17.91 | 4.5 |
| dark | text / surface | Aa · 8 500 Kz | 16.62 | 4.5 |
| dark | text / surfaceRaised | Aa · 8 500 Kz | 15.12 | 4.5 |
| dark | textMuted / background | Aa · 8 500 Kz | 8.47 | 4.5 |
| dark | textMuted / surface | Aa · 8 500 Kz | 7.86 | 4.5 |
| dark | textMuted / surfaceRaised | Aa · 8 500 Kz | 7.15 | 4.5 |
| dark | textDisabled / backgroundexempt (aria-disabled) | Aa · 8 500 Kz | 4.70 | — |
| dark | disabledText / disabledFill | Aa · 8 500 Kz | 6.64 | 4.5 |
| dark | text / disabledFilla visible disabledReason is live information, not a dead label | Aa · 8 500 Kz | 14.04 | 4.5 |
| dark | primary / background | Aa · 8 500 Kz | 7.19 | 4.5 |
| dark | onPrimary / primary | Aa · 8 500 Kz | 7.19 | 4.5 |
| dark | onPrimary / primaryHover | Aa · 8 500 Kz | 8.61 | 4.5 |
| dark | onPrimary / primaryPressed | Aa · 8 500 Kz | 5.92 | 4.5 |
| dark | accent / background | Aa · 8 500 Kz | 8.07 | 4.5 |
| dark | accent / surface | Aa · 8 500 Kz | 7.49 | 4.5 |
| dark | onAccent / accent | Aa · 8 500 Kz | 8.07 | 4.5 |
| dark | onMerchantAccent / merchantAccent | Aa · 8 500 Kz | 8.07 | 4.5 |
| dark | onMoney / money | Aa · 8 500 Kz | 12.18 | 4.5 |
| dark | onMoneyBox / moneyBox | Aa · 8 500 Kz | 11.03 | 4.5 |
| dark | success / background | Aa · 8 500 Kz | 7.32 | 4.5 |
| dark | success / surface | Aa · 8 500 Kz | 6.80 | 4.5 |
| dark | onSuccessTint / successTint | Aa · 8 500 Kz | 10.59 | 4.5 |
| dark | onWarning / warning | Aa · 8 500 Kz | 9.28 | 4.5 |
| dark | warningText / background | Aa · 8 500 Kz | 12.18 | 4.5 |
| dark | warningText / surface | Aa · 8 500 Kz | 11.30 | 4.5 |
| dark | danger / background | Aa · 8 500 Kz | 9.14 | 4.5 |
| dark | danger / surface | Aa · 8 500 Kz | 8.48 | 4.5 |
| dark | onDanger / dangerButton | Aa · 8 500 Kz | 8.46 | 4.5 |
| dark | onDangerTint / dangerTint | Aa · 8 500 Kz | 12.55 | 4.5 |
| dark | onNeutralTint / neutralTint | Aa · 8 500 Kz | 10.61 | 4.5 |
| dark | border / backgrounddecorative seam | Aa · 8 500 Kz | 1.46 | — |
| dark | borderInput / backgroundnon-text boundary | Aa · 8 500 Kz | 4.70 | 3.0 |
| dark | borderInput / surfacenon-text boundary | Aa · 8 500 Kz | 4.37 | 3.0 |
| dark | ring / backgroundfocus ring | Aa · 8 500 Kz | 12.18 | 3.0 |
| dark | ring / surfacefocus ring | Aa · 8 500 Kz | 11.30 | 3.0 |
| dark | link / background | Aa · 8 500 Kz | 9.87 | 4.5 |
| dark | link / surface | Aa · 8 500 Kz | 9.17 | 4.5 |
| dark | link / surfaceRaised | Aa · 8 500 Kz | 8.34 | 4.5 |
| dark | onSelectedChip / selectedChip | Aa · 8 500 Kz | 17.91 | 4.5 |
| dark | onToast / toast | Aa · 8 500 Kz | 17.91 | 4.5 |
| dark | skeleton / backgrounddecorative | Aa · 8 500 Kz | 1.28 | — |
| dark | placeholderIcon / placeholderTileicon | Aa · 8 500 Kz | 8.36 | 3.0 |
| dark | ctText / ctBackgroundControl Tower | Aa · 8 500 Kz | 16.77 | 4.5 |
| dark | textMuted / ctBackgroundControl Tower | Aa · 8 500 Kz | 8.69 | 4.5 |
| dark | ctKpi / ctBackgroundControl Tower KPI | Aa · 8 500 Kz | 12.49 | 4.5 |
| dark | primary / ctBackgroundControl Tower | Aa · 8 500 Kz | 7.38 | 4.5 |
| dark | danger / ctBackgroundControl Tower | Aa · 8 500 Kz | 9.37 | 4.5 |
Montserrat e Inter
Os títulos em Montserrat, a voz da marca; o corpo e os números em Inter, com algarismos tabulares. Os espécimes carregam os diacríticos todos: ã, õ, ç, á, é, í.
A marca e a ourela
A marca é desenhada em paths, nunca em texto. O selvedge tem seis bandas em larguras desiguais e um período de 64 px; as instâncias são lei.
Botões e acções
Campos, escolhas e separadores
O estafeta precisa disto para te encontrar.
Falta o ponto de referência
Painel: novos
Estados, avisos e sobreposições
Sem ligação. O que fizeres fica guardado e é enviado depois.
2 ações por enviar.
A voltar a ligar…
Modo ilha: a célula está a funcionar sozinha. Os pedidos continuam.
Modo poupar dados ligado: sem fotos nesta rede.
Entregue. Bom proveito!
Algo correu mal
O pedido está vazio
Comece pela comida: a cachupa da Nha Bia sai às 11:30.
Ver comida| Estado | Total | |
|---|---|---|
| #2211 | Entregue | 15 800 |
| #2207 | A preparar | 8 500 |
| #0481 | Pagamento | 850 |
Dinheiro
O amarelo é do dinheiro: a etiqueta é ouro com tinta, a caixa é tinta com ouro. O valor é sempre um inteiro na unidade menor do mercado.
≈ 990$00 · entregue em Praia · 1 € = 110,265 CVE em 5 out.
Os 17 estados do pedido
Cada estado é uma cor E um ícone E uma etiqueta, por isso nenhum depende do tom. O fio enche-se com a percentagem do estado e cose-se no fim.
- A aguardar pagamento5%
- Pagamento não confirmado5%
- Confirmado15%
- Aceite25%
- A preparar40%
- Pronto50%
- Sem estafeta50%
- Estafeta a caminho da loja60%
- Recolhido70%
- A caminho80%
- A chegar90%
- Chegou95%
- Entregue100%
- Não entregue80%
- Cancelado0%
- Reembolso em curso0%
- Reembolsado0%
O Nelson está a 2 minutos. Ele liga-te quando chegar.
O Nelson recolheu. Chega em 12 a 19 minutos.
- Aceite
- A preparar
- Recolhido
- A chegar
- Entregue
Cartões e o ritmo das tiras
Cachupa rica
Milho e feijão cozidos devagar com chouriço, linguiça, toucinho e couve, servida com a colher a ficar de pé.
Cachupa refogada com ovo
A cachupa de ontem salteada em cebola e banha, com ovo estrelado e linguiça por cima.
Pastel com diabo dentro (3 un.)
Massa de batata-doce e milho recheada com atum picante, frita no momento.
DJ de kizomba e semba para festas
DJ Kalú — Som & Luz
Pagamento
A ordem e a disponibilidade vêm do ficheiro do mercado. Um empurrão para o telemóvel nunca diz que correu bem antes do callback.
Lugar, código e chamada
O ponto de referência é o título; a rua é metadado. O código de entrega tem o dobro do tamanho do corpo e lê-se em voz alta.
O código não bate certo. 2 tentativas.
Mostra este código ao estafeta quando ele chegar.
Mapa e acompanhamento
O mapa da demonstração é um SVG estático por mercado, pintado pelos tokens. O anel do estafeta é o único ciclo do ecrã.
O Nelson está a 4 minutos. Ele liga-te quando chegar.
O estafeta vai pedir-te um documento de identificação: o pedido tem álcool.
- Aceite
- A preparar
- Recolhido
- A chegar
- Entregue
O Nelson chegou. Mostra-lhe o código 4 7 2 1.
O estafeta vai pedir-te um documento de identificação: o pedido tem álcool.
- Aceite
- A preparar
- Recolhido
- A chegar
- Entregue
Mostra este código ao estafeta quando ele chegar.
Talão, oferta, entrega e caixa
As peças que tomam o ecrã todo: o talão do comerciante e a oferta do estafeta, aqui em linha para caberem na página.
#2211 · Entrega
4 itens · 11:48 · 41 pedidos anteriores
- 1×Frango no churrasco (inteiro)Médio9 500 Kz
- 1×Batata frita (dose)1 800 Kz
- 2×Cerveja Cuca (33 cl)2 000 Kz
Nota de acesso: Dizer ao guarda que é para a casa 14
Nova oferta
Decisões com política e um registo
Nenhuma sobreposição sem motivo; nenhuma aprovação sem limite, limiar e quem autoriza.
surge.rain
Propor taxa de chuva de 10 % em Maputo até às 20:00.
- Política
- surge.rain
- Limite
- 15 %
- Limiar
- 10 %
Quem autoriza: Ops Luanda
refund.goodwill
Reembolsar 15 800 Kz ao cliente do pedido #2211.
- Política
- refund.goodwill
- Limite
- 10 000 Kz
- Limiar
- 10 000 Kz
Quem autoriza: Ops Luanda
Precisa de aprovação de Gestor de mercado
As peças partilhadas dos cinco cascos
Pedido #2211
/v1/orders { "market": "ao-lad", "currency": "AOA", "amount_minor": 345000, "payment_method": "cash"}The five shells are rendered whole on their own routes: /, /merchant/pedidos, /courier, /ops and /partner.
Os três momentos de assinatura
Carregue num botão para repetir cada um. Fora destes, nada se move por decoração — e há no máximo um ciclo por ecrã.
O Nelson está a 2 minutos. Ele liga-te quando chegar.
Mostra este código ao estafeta quando ele chegar.

