The WiFi.ee design system.
A shared language for people finding Wi-Fi, maintaining the directory and running venues. Explore the apps across phones, tablets, watches, desktop windows, browser panels and quick-arrival surfaces, with the right patterns for each device and task.
Current product palettes and platform patterns are documented from source. Shared semantic contracts are adoption guidance. The downloadable 14 October guide remains version 1.0.0-draft. Publishing this reference does not migrate any native app or establish device certification.
One family, different people and devices
The system covers discovery, field maintenance, venue operations and quick connection. Each product keeps the controls and density that suit its task and platform. The inventory below comes from fetched default-branch source revisions inspected on 23 October 2026.
Source evidence and configured device targets are recorded here. Store distribution, a successful native build and hands-on device validation are separate checks. Sizes below use each platform’s layout units, CSS px/rem on the web and millimetres for print.
Opening hours unknown
Wi-Fi speed not measured
View placeVisitors, contributors and workspace editors
WiFi.ee Web
Phone, tablet and desktop browsers
Discover places, read details, join a network and maintain the directory through the web workspace.
- Navigation and input
- Responsive site navigation, directory list/map, detail pages and authenticated workspace.
- Appearance
- Light and dark web themes; Tailwind action color references.
bg #f8fafcfg #0f172aType, geometry and device checks
- Type and icons
- System sans stack; 14px semibold shared buttons.
- Space and shape
- 72rem content shell; pill buttons; responsive content and scrollable data tables.
- Acceptance checks · required
- Validate keyboard navigation, zoom, reflow, focus and browser screen readers.
Inspected revision: 1b0c2610ba17
People looking for a place to connect
WiFi.ee Consumer
iPhone, iPad, Android phones and adaptive tablet layouts
Find nearby Wi-Fi, explore a map, save places and read connection information while travelling.
- Navigation and input
- Native tabs and a right-side drawer; a persistent right sidebar on tablet-width layouts.
- Appearance
- Blue/slate light and dark palettes; in-app light, dark or system preference. Native app configuration still sets light appearance.
background #f8fafctextPrimary #0f172aaccent #1d4ed8Type, geometry and device checks
- Type and icons
- React Native system type; area titles 17/600, metadata 13. Platform icons adapt to Apple and Android.
- Space and shape
- Tablet threshold 768; 16/18/24 layout gutters; 1280 home and 1040 detail width caps. Area cards use radius 16 and padding 16.
- Acceptance checks · required
- Check VoiceOver and TalkBack, text scaling, safe areas, rotation, tablet resizing and permission-denied states on devices.
Inspected revision: 60273a8b721c
Directory maintainers and field editors
WiFi.ee Admin
iPhone and iPad; Android and web targets configured
Review, create and edit areas and chains; maintain technical details, publication status, images and infrastructure records.
- Navigation and input
- Authenticated drawer workspace; drawer width follows the window, capped at 300.
- Appearance
- Teal, warm off-white and dark green text. One source palette; a dark adapter is still an adoption task.
background #f3f4edtext #10201baccent #0f766eType, geometry and device checks
- Type and icons
- System type; section titles 18/700, descriptions 14/20, field labels 14/600.
- Space and shape
- Section cards: radius 24, padding 18. Inputs: radius 16. Primary actions: minimum height 50.
- Acceptance checks · required
- Check long forms with the keyboard open, resizable windows, validation errors, drafts, sync progress and unsaved edits.
Inspected revision: ec711adadd46
Venue owners and café staff
WiFi.ee Café
iPhone and iPad; Android and web targets configured
Update guest Wi-Fi details, venue information and captive-portal posters, then share Quick Login with guests.
- Navigation and input
- A focused owner workspace with a window-aware drawer capped at 300.
- Appearance
- Brown and cream, with coffee, sage and brass accents. One source palette; no implemented dark palette is recorded.
background #f7f0e6text #2a211caccent #9f4f2dType, geometry and device checks
- Type and icons
- System type; section titles 18/800, descriptions 14/20, action labels 15/700.
- Space and shape
- Section cards: radius 18, padding 20, a 7-unit ticket stripe. Inputs: radius 16. Primary actions: minimum height 50.
- Acceptance checks · required
- Check on-site photo and poster workflows, keyboard avoidance, guest credentials, ownership boundaries and failed saves.
Inspected revision: e30053f9aea1
People checking nearby places at a glance
WiFi.ee Watch
Apple Watch / watchOS
Read distance-ranked nearby places, refresh and open a place in Maps.
- Navigation and input
- SwiftUI NavigationStack and a carousel list; short location, radius and refresh controls.
- Appearance
- Semantic SwiftUI foregrounds, cyan/blue/black background and material surfaces. Preserve system rendering.
Type, geometry and device checks
- Type and icons
- Native headline, body and caption2 styles; rounded system text and monospaced distances.
- Space and shape
- Material cards with continuous radius 12 and padding 8; compact rows rather than a scaled phone screen.
- Acceptance checks · required
- Check small and large watch sizes, Crown scrolling, VoiceOver, large text, denied location and stale cached results.
Inspected revision: 3fda236cd462
Desktop users and people switching networks
WiFi.ee for Mac
Mac windows, menu bar and Settings
Browse places with list/detail navigation, inspect network information and use the menu-bar companion.
- Navigation and input
- Native split views, toolbar search, Settings and MenuBarExtra; refresh with Command–Shift–R.
- Appearance
- System semantic foregrounds and materials, blue connected-network and yellow bookmark accents.
Type, geometry and device checks
- Type and icons
- SwiftUI semantic text styles, native controls and SF Symbols.
- Space and shape
- Current main window minimum 1180 × 760; Settings 700 × 520. Area thumbnails 84 × 84 with radius 14.
- Acceptance checks · required
- Check full keyboard use, menu-bar popovers, VoiceOver, focus between panes and the actual minimum window size.
Inspected revision: 59fb1c711722
People researching places while browsing
WiFi.ee Browser Companion
Chrome and Edge side panels, Firefox sidebar and Safari popup; browser options pages
Discover places, read Quick Login details, save bookmarks and hand off to the website or native apps.
- Navigation and input
- Discover, Saved, Suggest and Tools tabs. Chromium panel, Firefox sidebar and Safari popup adapters; separate account and optional Mac bridge states.
- Appearance
- Consumer-like light and dark palettes are copied into CSS, not imported from a shared package.
bg #f8fafctext #0f172aaccent #1d4ed8Type, geometry and device checks
- Type and icons
- System sans 13px/1.45; compact metadata and monospace credentials need legibility review.
- Space and shape
- Minimum panel width 320px; 12px content gutters and radius 16px cards.
- Acceptance checks · required
- Check panel resize, keyboard focus, zoom, sign-in expiry, absent native bridge and permission-denied states. Browser packages require separate release checks.
Inspected revision: 56dbda815469
Guests arriving from a venue link or QR code
Quick Login / App Clip
iPhone App Clip; browser join-link fallback
Identify the venue and exact public network, choose a network if needed and request a connection.
- Navigation and input
- Focused join flow with network selection, connecting, already connected, success, unavailable and retry states.
- Appearance
- System background and secondary-system surfaces with native blue actions.
Type, geometry and device checks
- Type and icons
- System type with a prominent venue title and selectable SSID text.
- Space and shape
- SwiftUI join screen: 22 horizontal padding, radius 18 network card, primary join action minimum height 56.
- Acceptance checks · required
- Check real invocation links, Unicode SSIDs, network permission prompts, cancelled joins and truthful connection feedback on an iPhone.
Inspected revision: 60273a8b721c
People checking nearby or connected Wi-Fi without opening the app
Widgets / Live Activities
iOS home and lock screens; Dynamic Island source variants
Show a nearby place or recent connection context and link into the full app.
- Navigation and input
- Widget small, medium and rectangular accessory source variants; Live Activity compact, minimal and expanded layouts.
- Appearance
- Semantic system colors and explicit stale-connection text. Live Activity plugin is configured; Widget source presence does not establish target integration or distribution.
Type, geometry and device checks
- Type and icons
- SwiftUI headline, caption and footnote styles; lock-screen tinting can remove product colors.
- Space and shape
- System-managed widget containers; concise content for each family. Live Activity uses capsule actions.
- Acceptance checks · required
- Validate target wiring, entitlement/build integration, privacy, stale timelines, tinted rendering and supported devices before claiming release readiness.
Inspected revision: 60273a8b721c
Venue staff preparing signs and guests scanning them
Quick Login print
A6 portrait paper, camera and phone handoff
Make a printable network card with a Wi-Fi QR code and bilingual joining instructions.
- Navigation and input
- Physical scan into a connection flow; the paper itself has no interactive navigation.
- Appearance
- Print uses a white paper surface and retained logo, independent of the screen theme.
Type, geometry and device checks
- Type and icons
- Helvetica / Helvetica Bold PDF text; special SSID text can be rasterized to retain its spelling.
- Space and shape
- 105 × 148mm PDF; dark QR modules on white. Keep the QR quiet zone, scale and print legibility.
- Acceptance checks · required
- Print at actual size, scan with multiple phones, check quiet zones and verify exact SSID and password encoding.
Inspected revision: 1b0c2610ba17
Venue website owners and their visitors
WiFi.ee Embed
Embedded badges inside third-party websites
Present concise venue Wi-Fi information inside the host website.
- Navigation and input
- A compact embedded badge with a link back to the venue information.
- Appearance
- Light/dark neutral surfaces and blue actions. Attribution is not a network security certificate.
Type, geometry and device checks
- Type and icons
- System font with venue, access conditions, SSID and available speed information.
- Space and shape
- 10px corner radius; content must fit narrow host columns without inheriting unreadable styles.
- Acceptance checks · required
- Check narrow containers, host-page theme combinations, accessible links, missing fields and unavailable requests.
Inspected revision: 1b0c2610ba17
The older Meteor website is a separate legacy implementation. Archived prototypes are historical references. No dedicated Wear OS, TV or spatial-computing app is established by this inventory; those need an explicit product scope and adapter before being added as supported platforms.
Adapt to the device and the task
Shared meaning travels between products. Navigation, typography, target size and information density adapt to the available window and input. The following are system requirements for adoption and acceptance, rather than claims that every app already passes them.
Phones · touch first
Prioritize one task, safe areas, reachable actions and a list alternative to maps. Keep form fields visible above the keyboard. Use platform targets: aim for at least 44pt on Apple touch screens and 48dp on Android. Check large text and screen readers.
Tablets, folding and resizing
Use the current window width, not the device name. Preserve selection and unsaved work through rotation, split-screen and size changes. Expand discovery to a sidebar/grid; keep owner and editor forms readable instead of stretching every field. Test both touch and a hardware keyboard.
Desktop and browser panels
Provide visible focus, keyboard shortcuts where appropriate, pointer feedback and predictable pane navigation. A browser side panel has a narrow budget even on a large monitor. The Mac app currently has a larger minimum window; a smaller-window adapter remains separate work.
Watch, widgets and Live Activities
Use a glanceable title, distance or connection context and one useful next action. Respect Crown scrolling, platform text styles, tinted widgets and system-managed refresh. Distinguish nearby, cached, connected and stale. Never infer a current connection from an old widget entry.
Quick arrival and physical signs
Keep the venue and exact network visible. Explain the next step and permission result. Preserve Unicode, case and spaces in SSIDs. Test QR scanning on actual printed output, with a readable fallback if the scan or App Clip invocation fails.
Accessibility in every adapter
Pair color and icons with text. Support labels, errors, loading, disabled states, reduced motion and text scaling. Web targets need semantic HTML and keyboard checks; React Native and SwiftUI need their own accessibility APIs and device testing. Passing this documentation page’s browser audit does not certify the native apps.
Platform references: Apple · Accessibility · Android · Accessible apps.
Shared contracts, platform adapters
Standardize the role and meaning before sharing implementation. The proposed semantic layer maps into web CSS, React Native theme objects and SwiftUI system styles. It does not require every platform to render the same button or use the same navigation.
| Contract | Shared meaning | Platform adaptation |
|---|---|---|
| AreaCard / AreaRow | Venue identity, access conditions, evidence age, bookmark and unknown values. | Web card/list; phone card; tablet grid; compact Watch row; Mac list/detail. |
| Action / Field | Named action, pending/disabled/result state; field label, value, help and error. | HTML semantics, React Native accessibility props or native SwiftUI controls; platform keyboard and target sizes. |
| Status / Measurement | Keep publication, venue hours, network availability, payment, connection and security evidence separate. | Text plus icon; show value, unit and time. Unknown is distinct from zero, closed and unavailable. |
| Async / Permission | Idle, loading, cached/offline, empty, denied, error and success; preserve edits on retry. | Inline web/native feedback and platform permission prompts; condensed stale/error text on glance surfaces. |
| QuickLogin / Handoff | Exact SSID, public credential visibility, venue context and honest join outcome. | Web join link, iPhone App Clip, optional Mac bridge or printable QR; validate each route separately. |
Adoption sequence: retain the existing identity → map source tokens to semantic roles → implement one adapter per product → validate on its devices → record the released revision. Admin and Café dark themes, a shared runtime token package and full native accessibility acceptance remain adoption work.
A familiar identity
Keep the established orange-and-dark badge intact. Use “WiFi.ee” in prose and “wifi.ee” for the domain. Preserve the logo’s proportions, colors and lettering. The available master here is a 100 × 32 pixel PNG; recover a vector or larger original before print or large-format use.
Orange supports recognition. Blue identifies consumer actions and web focus, teal belongs to Admin and brown to Café. Native system surfaces retain their platform semantics. These product palettes do not describe network-security ratings.
The web adapter · colors
The neutral colors below are extracted from the web stylesheet. Swatches follow the site’s selected theme. Use the appearance control in the header to switch between light and dark. Tailwind action colors retain their CSS token names so their current values are not confused with older hex approximations.
Canvas
--bgLight: #f8fafc
Dark: #030712
Text
--fgLight: #0f172a
Dark: #e2e8f0
Surface
--surfaceLight: #ffffff
Dark: #0f172a
Muted surface
--surface-mutedLight: #f1f5f9
Dark: #1e293b
Border
--borderLight: #e2e8f0
Dark: #334155
Light actions
blue-600 / white
Hover: blue-700
Active: blue-800
Dark actions
blue-400 / slate-950
Hover: blue-300
Active: blue-200
Use text as well as color for open, closed, unknown, loading and error states. A green state or orange badge must describe specific evidence, rather than imply that every listed network is secure.
The web adapter · typography
The web uses the platform system sans stack, with no custom brand font configured. Buttons use 14px semibold type. Content sizes vary by context; the shared draft proposes a common scale rather than claiming every product already uses it.
Find a place to connect.
Useful information comes first.
Names, access conditions and up-to-date information help people decide where to go.
Õ Ä Ö Ü Š Ž · õ ä ö ü š ž
42.5 Mbps · 09:00–18:00 · 1.2 km
The numbers above are type specimens, not live measurements. Use sentence case, clear action verbs and tabular numerals for comparable values. Keep units and dates visible, and allow longer Estonian labels to wrap.
The web adapter · layout and shape
Current web shell
72rem maximum content width, 1.25rem side gutters and 1.5rem vertical main padding. At narrow widths, stack content and keep dense tables inside a named, keyboard-focusable scroll region.
Current buttons
Pill shape, 20px horizontal and 8px vertical padding, 150ms feedback and a visible 2px focus outline. Primary, secondary, ghost, light, inverse and small variants share the same base class.
Spacing guidance · draft
4 · 8 · 12 · 16 · 20 · 24 · 32 · 48 · 64 px
The shared guide proposes a 4px base rhythm. Existing products retain contextual spacing and geometry until their adapters are adopted.
Accessible interaction
Prefer 44px touch targets where space permits. Keep focus visible, preserve labels and error text, respect reduced motion, and check content at 200–400% zoom. Automated checks are only part of accessibility validation.
Try the web components
These actions use the same global button classes as the website. Use Tab to see focus, activate Save with Enter or Space, filter the example cards, and reset the preview. The disabled action stays unavailable.
Interactive examples only. No venue data is changed or saved to your account.
The example is not saved.
Filters the two illustrative cards below. Clear the field to show both.
2 example place(s)
Example café
Hours unknown
- Measured speed
- Not measured
Example library
Open · illustrative
- Measured speed
- Not measured
Button recipe
<button type="button" className="btn btn-primary">
Save example
</button>Use a button for an action and a link for navigation. Name each control, expose toggle state with aria-pressed, and announce changes without moving focus.
Patterns that preserve meaning
- Unknown is a real state. Missing opening hours do not mean closed, and no speed measurement does not mean zero Mbps.
- Keep venue status, Wi-Fi availability, payment conditions and security assessment separate. Show the source and date where a claim depends on evidence.
- Loading, offline, empty and failed states need distinct text and a useful next action. Preserve entered information when retrying a request.
- Use the retained logo for identity and simple icons for navigation. A lock or signal icon alone is not proof of a security audit.
Download and use
- Full product and device inventory, palettes, revisions and source hashes · JSON
- Current web tokens and source hashes · JSON
- Cross-product CVI and design guide · draft PDF
- Complete 14 October draft kit · ZIP
The kit includes the original guide, tokens, source inventory and component contracts. Its Consumer, Admin and Café previews illustrate proposed shared adapters. Downloading the kit does not change any application’s theme or native release.