Repository navigation
Interface Control Standards
Shared action buttons, text fields, native/select-search controls, checkboxes and radios use common geometry, theme-aware borders and keyboard focus. Standard controls have a 38px minimum height, with shared density and touch-target tokens for compact and coarse-pointer layouts. Action buttons share 6px corners and 14px type. Textareas remain resizable. Existing switches, theme cards, icon tools and hierarchy expanders retain their component behavior.
Project and plan navigation uses a tinted active tab and a persistent 3px underline, in addition to aria-current. Work-item tabs retain aria-selected with equivalent treatment. Navigation remains scrollable on narrow screens and keeps the dark ServiceOps sidebar.
Implementation: shared static/controls.css, loaded after module CSS; dark styles generated through tools/build_dark_theme.py. New module action buttons should use .button or .primary; avoid introducing independent dimensions. Disabled, read-only and focus states are shared. Theme palettes retain their colors.
Validation: project interaction/browser checks, ticket creation form focus, preferences switches/theme cards, and axe WCAG checks at desktop light/dark and phone widths. Full regression suite: 2143 passed, 202 optional checks skipped. Accepted on MicroK8s Helm 225. The final focused run passed 22 checks with 2 optional skips. All 92 runtime source hashes matched, five deployments were ready, migration head remained 20261018_0133, data/PVC identities were preserved, and the Helm health test and public Access checks passed. Acceptance evidence. Live authenticated browser sign-in was not exercised; browser acceptance used isolated test data.
Your work, Projects, Filters and Plans now retain a server-rendered selected-section marker across reloads and deep links. Parent sections use aria-current="location"; exact destinations use aria-current="page". Selection uses a tinted surface and 3px underline, with a bright indicator in dark mode. Create remains an action with a visible indicator on its destination.
On screens below 1200px, the menu occupies a second, horizontally scrollable header row instead of disappearing. Focus remains visible and the page itself does not scroll horizontally. The dark ServiceOps sidebar is unchanged.
Validation: 20 focused tests passed, 2 optional checks skipped, including real navigation at 1440px light/dark, 1000px and 390px, keyboard focus, axe WCAG checks, ticket controls and preferences. Accepted on MicroK8s Helm 226, with all five deployments ready, 93 runtime source hashes verified, restore-tested backup, unchanged database/PVCs, retained Helm test and public Access checks passed. Acceptance evidence. Authenticated browser checks used isolated test data.
Project navigation contains only Your work, Projects, Filters, Plans and Create. The global Dashboards destination remains in the main ServiceOps sidebar, outside project navigation.
Single-line form controls share actual heights: 38px normally, 34px in compact mode, and 44px on touch devices (including compact touch layouts). Density-aware padding keeps neighboring actions and fields aligned. Search-icon spacing, filter-row baselines, timeline action buttons and date-range alignment are consistent. Narrow heading action rows wrap whole buttons with single-line labels, preserving equal touch targets. Textareas and multiple-choice lists retain appropriate height. Hidden actions and the mobile-only filter toggle retain their intended visibility.
Browser geometry checks compare rendered neighboring fields/actions on board, backlog and timeline pages in all three layouts, including the timeline heading actions. Screenshots are reviewed alongside keyboard, interaction and WCAG axe checks. Accepted on MicroK8s Helm 227. 2143 regression tests and 29 focused/browser checks passed (209/2 optional skips). Restore-tested backup, 93 runtime hashes, five ready deployments, unchanged migration head/data/PVCs, Helm health test, public Access and startup logs verified. Acceptance evidence. Browser journeys used isolated test data; live authenticated browser sign-in was not exercised.

