All designs android-starter / designs
Multipurpose kit

Everything you book, in one kit

A generic Android kit for anything with a place and a time attached — stays, tables, clinics, classes, rentals, home visits, field work. It is drawn around the two things a booking product lives or dies on: a map you can read and availability you can trust. Neither is bought in. There are no photographs and no map tiles anywhere in this design; the city, the routes and every listing picture are drawn from tokens, so the whole library re-lights for dark mode instead of sitting there as a bright rectangle.

44 screens × 2 modes 412 × 915 dp 88 rendered PNGs at 2× 0 image files
44screens, in both modes
88rendered PNGs at 2×
0photographs or map tiles
412 × 915canvas, dp
How this was drawn Nothing here is a placeholder. The map is a generated street fabric — a sinusoidally warped 8 × 17 grid, its cells inset toward t…

Nothing here is a placeholder. The map is a generated street fabric — a sinusoidally warped 8 × 17 grid, its cells inset toward their centroids to make blocks, with gardens and the Tejo painted over the fabric so the coastline is crisp without a clip path — emitted once as seven <path> elements whose every colour is a token, which is why the whole city redraws for dark mode from theme.css alone. The listing imagery is the same idea at listing scale: five pigments (sand sea pine clay dusk), each a two-stop gradient plus a motif ink, and three depth classes whose opacities drop after dark so a night plate reads as dusk rather than as a floodlit billboard. Every contrast ratio in README.md was computed, not estimated; four token pairs moved because of it — --clay and --danger each grew a separate -fill/-on- pair once a white label on them measured 3.7:1 and 2.75:1, and --faint darkened until it cleared 3:1 on warm paper. The cast, the dates and the arithmetic are fixed: €96 × 3 nights + €25 + €40 = €353, and 115 + 9 + 3 + 1 + 0 five-star-to-one-star reviews average 4.86 across 128.

Getting in

5

Five screens, and only one of them asks for anything. The location prompt is drawn over a live map rather than an illustration, because the honest way to ask for a permission is to show what it buys.

Splash
001

Splash

The one moment the app is pure brand: the mark on a deep teal field over a drawn horizon, white ink in both modes.

Onboarding
002

Onboarding

Three panels — find, book, arrive — each carrying a different plate pigment so the drawn imagery introduces itself before any listing does.

Sign in
003

Sign in

Email or phone in one field with a segmented switch above it; no third-party buttons, because no brand logos exist in this kit.

Verify
004

Verify

Six-box code with the fourth focused, the number it was sent to, and a resend timer counting down from 0:24.

Location permission
005

Location permission

The rationale sheet drawn over a real map with the you-are-here ring already showing what "nearby" would mean.

Finding a place

8

The search entry point is one pill that states the whole query — where, when, who — and every refinement is a sheet or a full-screen form that returns to the same list. Results and map are the same 24 stays in two projections.

Explore
006

Explore

The busiest destination: the next trip first, then Alfama's stays, then the same stays on a map strip you can tap into.

Where · when · who
007

Where · when · who

The search bottom sheet over Explore — a destination field, a two-month date range and guest steppers, with Clear all and Search in the footer.

24 stays in Alfama
008

24 stays in Alfama

The list projection: full-bleed plate cards with rating, price and a saved heart, under a sticky filter row that says how many are left.

Results — loading
009

Results — loading

The same page as skeletons, shaped exactly like the cards that will replace them so nothing jumps when they land.

Filters
010

Filters

Full-screen: a price histogram with two handles, type chips, an amenity checklist, and a footer that previews the 24 → 11 the choices would cost.

Sort
011

Sort

A short bottom sheet with five radio options over the results list, Recommended selected.

Results on the map
012

Results on the map

The showpiece: a whole drawn city, eight price pins with one selected, the you-are-here ring, and the peek card for the chosen stay.

No matches
013

No matches

The empty state that names the filter doing the damage — "under €80" — and offers to drop just that one.

The listing

6

One place, six screens. The detail page carries a sticky price bar; everything it links to is a full screen with a back arrow, because none of them is a nav destination.

Casa Alfama
014

Casa Alfama

The dense detail screen: drawn hero, rating, host, amenities, a map of the block and a Reserve bar pinned to €96 a night.

All 24 amenities
015

All 24 amenities

Grouped by room, with the four the place does not have kept in the list and struck through rather than hidden.

Availability
016

Availability

Two months with a price under every night, the 21–24 range banded, and the two-night minimum stated where it bites.

128 reviews
017

128 reviews

The 4.86 broken into five bars that sum to 128, six category scores, and three reviews with the guest's month of stay.

Beatriz Sousa
018

Beatriz Sousa

The host page: verified identity, response time, the two other places she lets, and what she says about the neighbourhood.

Message Beatriz
019

Message Beatriz

A chat thread with a listing card pinned at the top, quick-reply chips, and the note that she usually answers within an hour.

Booking and paying

5

Three steps, a progress bar that is honest about which one you are on, and the total repeated in the same place on every screen so it can never quietly change.

Review your booking
020

Review your booking

Step 1: what, when, who and exactly what €353 is made of, with the free-cancellation deadline above the fold.

Guest details
021

Guest details

Step 2: the form — name, email, phone with country code, an optional message to the host, and one field showing its error.

Payment
022

Payment

Step 3: saved cards as radio rows, €12 of Terra credit applied, and the charge restated as €341 on the button.

Booked
023

Booked

The brand field again, the reference #TR-77214, and the three things worth doing next — add to calendar, message host, get directions.

Receipt
024

Receipt

The itemised version with VAT broken out and the card's last four digits, laid out to survive being screenshotted for an expense claim.

The trip itself

6

Everything after the money changes hands. The trip detail is the hub; directions and the day plan are where the map and the timeline earn their keep.

Trips
025

Trips

Upcoming and Past behind a segmented control, with the Lisbon trip counting down and two 2025 stays below it.

Lisbon · 21–24 Aug
026

Lisbon · 21–24 Aug

The trip hub: countdown, address card, host row, and the four actions that matter in the 48 hours before check-in.

Saturday's plan
027

Saturday's plan

A timeline with real times down the left — a 09:30 pastry, a 12:00 tram, an 19:30 table — and travel gaps costed in minutes.

Walk to Casa Alfama
028

Walk to Casa Alfama

The drawn route from Santa Apolónia with A and B endpoints, 14 minutes, and the turn list under a peek.

Check-in
029

Check-in

Door code in large tracked figures, the lockbox photo replaced by a drawn diagram, and the wifi password with a copy affordance.

Cancel this booking?
030

Cancel this booking?

The dialog over the refund breakdown, stating the exact €353 back and the deadline after which it would only be €257.

Inbox, saved, you

6

The three remaining nav destinations plus their overlays. Selection mode lives on Saved because moving saved places between lists is the one bulk action this kit actually has.

Inbox
031

Inbox

Conversations with hosts and one from Terra support, unread ones tinted and carrying a clay dot.

Notifications
032

Notifications

Grouped Today / This week / Earlier, mixing price drops, a host reply and a reminder that check-in opens in 3 days.

Saved
033

Saved

Two lists — Lisbon 2026 and Someday — as a grid of plates, with a snackbar undoing the place just removed.

Saved — 3 selected
034

Saved — 3 selected

Selection mode: the app bar becomes a count, the nav becomes Move / Share / Remove, and three cards carry ticks.

Profile
035

Profile

Mateo Rivas, verified, 6 trips and 4 reviews written, above the shortcuts into settings, wallet and host mode.

Menu drawer
036

Menu drawer

The navigation drawer over Profile: a brand cap, everything the five tabs cannot reach, and Switch to hosting at the foot.

Settings

4

A hub and three sub-pages. Each sub-page is a real page with real switches, not a list of labels — the notification page alone has eleven controls in four groups.

Settings
037

Settings

The hub: account, payments, notifications, privacy, appearance and travel preferences, each with its current value on the right.

Notifications
038

Notifications

Eleven switches in four groups, with the quiet-hours window and a note that booking confirmations cannot be turned off.

Payments & wallet
039

Payments & wallet

Cards, €12 of Terra credit with its expiry, the default currency, and what each recent trip actually charged.

About Terra
040

About Terra

The legal corner: version 4.2.1 (build 1180), terms, privacy, open-source licences and the rate-the-app row.

Host mode and the edges

4

The other side of the marketplace, the help desk, and the two states every product ships and few design: no network, and a request that failed.

Hosting
041

Hosting

Beatriz's side: tonight's arrival, €1,842 earned this month as a column chart, and the two requests waiting on her.

Help
042

Help

Search over articles, the three topics most people arrive with, and a contact row that says the wait is 4 minutes.

Offline
043

Offline

Explore with a persistent offline banner: the trip card still works from cache, the map strip is a flat placeholder.

Something went wrong
044

Something went wrong

The failure state that names what failed and gives a request id, so support has something to search for.

No screen matches that.

How this folder is built

Deep teal, clay second

Teal is transactional — prices, buttons, the booked state. Clay terracotta marks every human surface: hosts, reviews, wishlists, the badge on an unread message. Splitting the two means a screen never has to shout with the same colour twice.

A city with no tiles

.mapart is one SVG holding land, blocks, lanes, avenues, gardens, the river and its promenade, all read from --map-*. Panning and zooming is just moving the viewBox; a 118px strip on the home screen and the full-bleed results map are the same geometry.

Drawn imagery

No photograph exists in this design system, so a listing's picture is a .plate: a pigment plus a motif in three depth layers. Assigning one is content, not decoration — a stay gets sand, water gets sea, a walk gets pine.

Dark is designed

Elevation stops being a shadow and becomes a surface step: page, card, sheet, the thing on the sheet. Hues lift. The filled button inverts its ink because a lifted teal cannot carry white — but the brand field never inverts, it just gets deeper.