---
description: SimHub dashboard, overlay, and plugin tab UI conventions
globs: plugin/**/*.html, plugin/**/*.xaml, plugin/**/*.simhubdash
alwaysApply: false
---

# SimHub Dashboard & Overlay Conventions

> **Note:** Glob patterns above are provisional. Update them once the dashboard file format and directory structure are finalized.

## Replay Mode Overlay (FR-003)

- Built in SimHub Dash Studio as a transparent overlay
- Visible only during iRacing replay mode; hidden during live racing
- Shows: incident list (time, severity, source), jump-to-incident controls, OBS record buttons, connection status
- Positioned unobtrusively -- must not block critical replay HUD elements
- Design for readability at a glance (large fonts, high contrast)

## Live Racing Toast (FR-003)

- Minimal, non-interactive notification during live racing
- Shows incident time and severity (e.g., "4x captured at 12:34")
- Auto-dismisses after a few seconds -- the driver is driving
- No interactive buttons during live racing

## Plugin Settings Tab (FR-008)

- WPF `UserControl` rendered inside SimHub's desktop settings shell
- Sections: OBS connection, hotkeys, detection toggle, replay offset
- Not Dash Studio -- settings use SimHub's built-in WPF hosting

## Incident Log (FR-009)

- WPF ListView or DataGrid in the settings tab area
- Shows all session incidents with timestamps, severity, source
- "Jump to Replay" action per incident row

## Property Binding

- Expose all data needed by dashboards/overlays as SimHub plugin properties
- Name properties with the `SimSteward.` prefix for namespace clarity
- Ensure property updates are throttled appropriately to avoid UI flicker
- Key properties: incident list, OBS connection status, replay mode state, recording state

## Recording Progress (FR-015, Part 2)

- Overlay shows which camera angle is currently recording (e.g., "Recording angle 1 of 2...")
- Extends the replay mode overlay from FR-003
