fix(ui): align contextual documentation with headings

Verified with the coordinated workspace changes by devkit full run
2026-09-08T225814-186389-0000-3e3ed7cd (all seven phases passed).
This shared UI pass does not mark the individual module reviews complete.
This commit is contained in:
2026-09-09 02:04:03 +02:00
parent a8bfdbf20c
commit bad3418a7c
5 changed files with 24 additions and 3 deletions
@@ -216,6 +216,8 @@ DOCUMENTATION = (
"capacity assumptions, outcomes, and benefit reviews without absorbing work-item ownership." "capacity assumptions, outcomes, and benefit reviews without absorbing work-item ownership."
), ),
body=( body=(
"Documentation books sit immediately beside the visible heading or contextual label for "
"Projects, not among operational action buttons. Field help remains beside its label. "
"Projects owns native portfolio and project context, immutable revisions of goals and intended outcomes, " "Projects owns native portfolio and project context, immutable revisions of goals and intended outcomes, "
"milestones, participants, status, dependencies, capacity assumptions, benefit reviews, and governed resource references. " "milestones, participants, status, dependencies, capacity assumptions, benefit reviews, and governed resource references. "
"Create or revise the planning context, review its impact, and link provider-owned work and evidence without copying it. " "Create or revise the planning context, review its impact, and link provider-owned work and evidence without copying it. "
@@ -291,6 +293,9 @@ DOCUMENTATION = (
"Ergebnisse und Nutzenprüfungen koordinieren, ohne die Eigentümerschaft an Arbeitselementen zu übernehmen." "Ergebnisse und Nutzenprüfungen koordinieren, ohne die Eigentümerschaft an Arbeitselementen zu übernehmen."
), ),
"body": ( "body": (
"Dokumentationsbücher stehen unmittelbar neben der sichtbaren Überschrift oder "
"Kontextbezeichnung für Projekte, nicht zwischen ausführbaren Aktionsschaltflächen. Feldhilfe "
"bleibt neben der Feldbezeichnung. "
"Projects führt den nativen Portfolio- und Projektkontext, unveränderliche Revisionen von Zielen und " "Projects führt den nativen Portfolio- und Projektkontext, unveränderliche Revisionen von Zielen und "
"beabsichtigten Ergebnissen, Meilensteine, Beteiligte, Status, Abhängigkeiten, Kapazitätsannahmen, " "beabsichtigten Ergebnissen, Meilensteine, Beteiligte, Status, Abhängigkeiten, Kapazitätsannahmen, "
"Nutzenprüfungen und gesteuerte Ressourcenreferenzen. Planungskontext wird angelegt oder revidiert, " "Nutzenprüfungen und gesteuerte Ressourcenreferenzen. Planungskontext wird angelegt oder revidiert, "
+4 -2
View File
@@ -241,7 +241,9 @@ export default function ProjectsPage({ settings, auth }: PlatformRouteContext) {
</label> </label>
<span className="projects-count">{total} objects</span> <span className="projects-count">{total} objects</span>
</>} </>}
helpAction={<DocumentationHelpLink title="Projects"
titleLevel={1}
titleHelp={<DocumentationHelpLink
reference={{ topicId: "projects.module-boundary", documentationType: "user" }} reference={{ topicId: "projects.module-boundary", documentationType: "user" }}
label="Open Projects documentation" label="Open Projects documentation"
/>} />}
@@ -309,7 +311,7 @@ function ProjectDetail({ record, canWrite, onEdit }: {
<header className="project-detail-header"> <header className="project-detail-header">
<div> <div>
<span className="project-eyebrow">{humanize(record.object_kind)} · {record.object_key}</span> <span className="project-eyebrow">{humanize(record.object_kind)} · {record.object_key}</span>
<h1>{record.title}</h1> <h2>{record.title}</h2>
</div> </div>
<div className="project-detail-actions"> <div className="project-detail-actions">
<StatusBadge status={statusTone(record.state)} label={humanize(record.state)} /> <StatusBadge status={statusTone(record.state)} label={humanize(record.state)} />
+12
View File
@@ -0,0 +1,12 @@
import type { PlatformTranslations } from "@govoplan/core-webui";
/** Module-owned translations for contextual headings. */
export const generatedTranslations: PlatformTranslations = {
en: {
"Projects": "Projects",
},
de: {
"Projects": "Projekte",
},
};
+2
View File
@@ -1,11 +1,13 @@
import { createElement, lazy } from "react"; import { createElement, lazy } from "react";
import type { PlatformWebModule } from "@govoplan/core-webui"; import type { PlatformWebModule } from "@govoplan/core-webui";
import { generatedTranslations } from "./i18n/generatedTranslations";
import "./styles/projects.css"; import "./styles/projects.css";
const ProjectsPage = lazy(() => import("./features/projects/ProjectsPage")); const ProjectsPage = lazy(() => import("./features/projects/ProjectsPage"));
export const projectsModule: PlatformWebModule = { export const projectsModule: PlatformWebModule = {
translations: generatedTranslations,
id: "projects", id: "projects",
label: "Projects", label: "Projects",
version: "0.1.14", version: "0.1.14",
+1 -1
View File
@@ -62,7 +62,7 @@
border-bottom: 1px solid var(--border); border-bottom: 1px solid var(--border);
} }
.project-detail-header h1 { .project-detail-header h2 {
margin: 4px 0 0; margin: 4px 0 0;
font-size: 1.4rem; font-size: 1.4rem;
letter-spacing: 0; letter-spacing: 0;