KoderSignInButton
RatifiedAuth koder-app/behaviors.kmd §1
Branded sign-in entry point that delegates to Koder ID via OIDC. Handles redirect, callback parsing, and emits a typed user object on success.
Reusable widgets shipped by koder_kit (Flutter) and koder_web_kit (web). Each tile points at the spec that defines its behavior; ratified components also have a live demo page.
Components shipping with `koder_kit` / `koder_web_kit`. These have a full anatomy + import + usage example below.
Auth koder-app/behaviors.kmd §1
Branded sign-in entry point that delegates to Koder ID via OIDC. Handles redirect, callback parsing, and emits a typed user object on success.
Auth koder-app/behaviors.kmd §1
Compact avatar + name display, opens the account menu. Reads from the same auth context that KoderSignInButton populates.
Auth koder-app/behaviors.kmd §1
Wraps a screen so it only renders when the user is signed in; otherwise routes to the sign-in flow with a return-to URL.
Desktop desktop-apps/title-bar-double-click.kmd
Custom desktop title bar with drag-to-move on non-interactive areas and a free-area subwidget for double-tap maximize. Replaces ad-hoc GestureDetector wrappers that hijack the gesture arena.
Layout app-layout/safe-area.kmd
Drop-in Scaffold replacement that respects window insets on every surface (mobile notches, gesture bars, desktop chrome, web safe-area-inset).
Navigation navigation/back-behavior.kmd
Pops one route per back/Esc press; exits the app only at the root. Centralizes back behavior so each screen does not re-implement it.
Errors errors/user-facing-messages.kmd
User-facing error surface with humanized message, error ID, and a "see details" expander. Speaks the canonical <PRODUCT>-<CAT>-<CODE>-<SEQ> error vocabulary.
Errors errors/reporting.kmd
Opt-in telemetry pipeline + KoderReportButton for one-tap problem reports. Default OFF; never collects without consent.
Auth koder-app/behaviors.kmd §4
Non-blocking banner that announces a fresh release, downloads it silently, and prompts to restart. Toggle lives in Settings, default ON.
i18n i18n/contract.kmd §R3
Locale autodetect from the device, persistence per surface, and a switcher widget. Backed by ICU keys with en-US baseline + pt-BR mandatory.
Theme themes/ui-style.kmd
Grid of preset cards with live previews for the 44 ratified UI styles. Selection persists under koder.ui_style.
Theme themes/light-dark.kmd
Two-state light/dark toggle with anti-flash inline script and matchMedia listener. Mirrors the spec on this site verbatim.
Navigation (no spec yet — koder_kit#029 tracks)
Ctrl+K command palette with fuzzy match across in-app actions. Proposed in koder_kit#029.
Settings cache-purge/contract.kmd
Settings tile + service that clears local caches (HTTP, image, IndexedDB) with a confirmation dialog and a per-surface progress indicator.
Hub landing-pages/download-button.kmd
Drop-in download button for product landing pages; resolves the latest release per platform from hub.koder.dev/apps/<slug>.
Voice voice/wake-word.kmd
Settings tile for the 6 voice toggles (enabled, talkMode, hotWord, backend, bargeIn, debugRecord). All OFF by default except bargeIn.
Settings settings/patterns.kmd
Composable Settings tile + group + page primitive shared by every Koder app. Powers ui_style, theme, language, voice, and reporter tiles.
Component specs that match Material 3 surface — each rendered from `meta/docs/stack/specs/components/`. Specs only for now; widget implementations track separately in `koder_kit` roadmap.
specs/components/app-bars.kmdspecs/components/badges.kmdspecs/components/banners.kmdspecs/components/buttons.kmdspecs/components/cards.kmdspecs/components/carousels.kmdspecs/components/checkbox.kmdspecs/components/chips.kmdspecs/components/dialogs.kmdspecs/components/dividers.kmdspecs/components/lists.kmdspecs/components/menus.kmdspecs/components/model-viewer.kmdspecs/components/navigation.kmdspecs/components/pickers.kmdspecs/components/progress-indicators.kmdspecs/components/radio-buttons.kmdspecs/components/search-view.kmdspecs/components/sheets.kmdspecs/components/sliders.kmdspecs/components/snackbars.kmdspecs/components/switch.kmdspecs/components/tabs.kmdspecs/components/text-fields.kmdspecs/components/tooltips.kmdType to search. Press / from anywhere.