# Interface **English** · [Português](pt-BR/interface.md) The interface is a vanilla HTML/CSS/JS app embedded in the `acaua` binary and loaded by the Tauri shell. There is no frontend build step and no React/Next.js runtime. This page describes the `0.1.0` shell; it is not a screenshot tour, because the detection views have nothing real to show yet. ## Layout - **Sidebar:** brand, navigation, connection state, version and update check. - **Overview:** scope notice, authorized-use notice and the four pillar cards. - **Analysis:** dataset path field, analyze button, refresh and raw JSON output. - **Alerts:** empty state explaining that the detection engine will arrive in a later spec. - **Settings:** language and theme, stored locally. ## Language The source text is Portuguese. `i18n.js` applies English strings from `i18n-en.js` at runtime and persists the choice in `localStorage`. `Auto` follows the browser/system language. The check `node scripts/check-ui-i18n.mjs` fails when a visible Portuguese string has no English pair. ## Theme `Auto`, light and dark are supported. `Auto` follows `prefers-color-scheme`. The choice is stored locally; no preference leaves the machine. ## Connection state The footer polls `/api/health` and shows one of: - **Connecting:** the first request has not finished. - **Local service online:** `/api/health` answered. - **Service unavailable:** the request failed; the shell remains usable for settings. The Tauri shell can point at a local daemon or a remote `serve` in a future version. In `0.1.0` it uses the local API. ## Analysis view `Analyze` posts the path to `/api/analyze` and prints the JSON response. The skeleton validates the path and returns a stub report. It does not parse Zeek records and does not render scores. Failures are shown as text, never as a silent empty state. ## Alerts view The list is intentionally empty. A future alert row will show the pillar, score, timestamp and a link to the evidence record. The evidence must include inputs, intermediate values, sentinels, weights and the code version; a score alone is not enough. ## Accessibility - Navigation uses real buttons and an `aria-label`. - The settings dialog uses `` with a labelled title. - Status changes use text, not color alone. ## Limitations - No real screenshots: the views are shells. - No alert detail, no charts and no dataset browser yet. - No authentication: the UI assumes a loopback daemon. - The desktop app does not self-update; it only reports an available version.