fix(nav,schrift): nur eigene Features in der Leiste, Instrument Sans laden
Zwei Korrekturen aus dem Review. 1. Die Seitenleiste zeigte die komplette Software-Navigation nach. Falsch: Kontakte, Leads, Pipelines, Postfach, Termine und Einstellungen stehen dort bereits, der Prototyp verdoppelt sie nur. Jetzt stehen in der Leiste ausschließlich unsere beiden Features — Dashboard (eigenes Feature, hier nicht enthalten) und Analytics — plus die Bausteingalerie im sekundären Bereich, die zum Prototyp und nicht zum Produkt gehört. 2. Die Schrift stimmte nicht. Die Software nutzt Instrument Sans, selbst gehostet als variable Schrift. Der Prototyp lud Inter über next/font, während ui/theme.css für sämtliche Subframe-Typo-Token bereits 'Instrument Sans' verlangte — die Schrift war aber nie geladen und fiel auf die Systemschrift zurück. Ergebnis waren zwei verschiedene Schriften auf einer Seite, keine davon die der Software. Jetzt liegen dieselben woff2-Dateien unter public/fonts/, mit denselben @font-face-Regeln und derselben Alias-Zuordnung für Komponenten, die noch direkt auf Inter verweisen. next/font entfällt. Der Layout-Prüfer lief nach dem Schriftwechsel erneut durch: andere Metrik, andere Textbreiten — weiterhin keine Kollisionen über 6 Seiten × 7 Breiten. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QPeZNwSeU7qG3RRCwaxEZX
This commit is contained in:
1 parent
e85ceb6f9d
commit
aa86dfe44d
7 files changed
+98
-82
No files matched your search
@@ -1,21 +1,20 @@
|
||||
import type { SeitenId } from "../../data/filtering";
|
||||
|
||||
/**
|
||||
* Navigationsstruktur — Spiegel der Seitenleiste von HiveGrid Cloud.
|
||||
* Navigationsstruktur des Prototyps.
|
||||
*
|
||||
* Die Gruppen, ihre Reihenfolge und die Einträge entsprechen
|
||||
* `apps/web/app/application/sidebar/AppSidebar.tsx` im Zielsystem. Der Grund
|
||||
* ist die Übergabe: Wer diesen Prototyp neben der Software öffnet, soll dieselbe
|
||||
* Navigation sehen und nicht erst übersetzen müssen.
|
||||
* Hier stehen **nur unsere beiden Features**: Dashboard und Analytics. Alles
|
||||
* andere — Kontakte, Leads, Pipelines, Postfach, Termine, Einstellungen — ist
|
||||
* in der Seitenleiste der Software bereits vorhanden und wird hier nicht
|
||||
* verdoppelt. Der Prototyp zeigt, was dazukommt, nicht was schon da ist.
|
||||
*
|
||||
* **Nur „Analytics" ist in diesem Prototyp echt.** Alle anderen Einträge sind
|
||||
* Kontext — sie zeigen, wo die Analyse in der fertigen Anwendung sitzt. Sie
|
||||
* führen bewusst nirgendwohin und melden das beim Klick, statt still zu bleiben.
|
||||
* Gerendert wird mit derselben Komponente wie in der Software
|
||||
* (`ui/components/SidebarWithSections`, aus der Cloud-Fassung portiert), damit
|
||||
* Aussehen und Verhalten übereinstimmen.
|
||||
*
|
||||
* Icons: Die Software nutzt eigene Icon-Komponenten (`AddressBookIcon`,
|
||||
* `BoardIcon` …), die auf einem hausinternen Set aufsetzen. Hier stehen die
|
||||
* nächstliegenden Feather-Icons aus `@subframe/core`, das beide Repos teilen —
|
||||
* optisch praktisch deckungsgleich, ohne ein ganzes Icon-Set mitzuschleppen.
|
||||
* „Dashboard" führt hier nirgendwohin: Es ist ein eigenes Feature und nicht
|
||||
* Teil dieses Prototyps (siehe `docs/SCOPE-ANALYTICS-DASHBOARD.md`). Der
|
||||
* Eintrag meldet das beim Klick, statt still zu bleiben.
|
||||
*/
|
||||
|
||||
export type NavZiel = { art: "route"; href: string } | { art: "software" };
|
||||
@@ -44,69 +43,37 @@ export const NAV_GRUPPEN: NavGruppe[] = [
|
||||
titel: "",
|
||||
eintraege: [
|
||||
{
|
||||
// Gehört zu uns, ist aber ein eigenes Feature und nicht Teil dieses
|
||||
// Prototyps — siehe docs/SCOPE-ANALYTICS-DASHBOARD.md.
|
||||
id: "dashboard",
|
||||
label: "Dashboard",
|
||||
icon: "LayoutDashboard",
|
||||
ziel: { art: "software" },
|
||||
},
|
||||
{
|
||||
// Der neue Menüpunkt. In der Software gibt es ihn noch nicht — die
|
||||
// fünf Analyse-Seiten sind ausschließlich hier drin navigierbar,
|
||||
// nicht als Unterpunkte in der Seitenleiste.
|
||||
// Der neue Menüpunkt. Die fünf Analyse-Seiten sind ausschließlich hier
|
||||
// drin über Reiter navigierbar, nicht als Unterpunkte in der Leiste.
|
||||
id: "analytics",
|
||||
label: "Analytics",
|
||||
icon: "BarChart",
|
||||
ziel: { art: "route", href: ANALYTICS_START },
|
||||
},
|
||||
{ id: "aufgaben", label: "Aufgaben", icon: "Clipboard", ziel: { art: "software" } },
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "kunden",
|
||||
titel: "Kunden",
|
||||
eintraege: [
|
||||
{ id: "kontakte", label: "Kontakte", icon: "Contact", ziel: { art: "software" } },
|
||||
{ id: "leads", label: "Leads", icon: "TrendingUp", ziel: { art: "software" } },
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "projekte",
|
||||
titel: "Projekte",
|
||||
eintraege: [
|
||||
{ id: "pipelines", label: "Pipelines", icon: "Trello", ziel: { art: "software" } },
|
||||
{ id: "plantafel", label: "Plantafel", icon: "CalendarRange", ziel: { art: "software" } },
|
||||
{ id: "dateien", label: "Dateien", icon: "FileText", ziel: { art: "software" } },
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "kommunikation",
|
||||
titel: "Kommunikation",
|
||||
eintraege: [
|
||||
{ id: "postfach", label: "Postfach", icon: "Mail", ziel: { art: "software" } },
|
||||
{ id: "formulare", label: "Formulare", icon: "Table", ziel: { art: "software" } },
|
||||
{ id: "telefonie", label: "Telefonie", icon: "Phone", ziel: { art: "software" } },
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "organisation",
|
||||
titel: "Organisation",
|
||||
eintraege: [
|
||||
{ id: "termine", label: "Termine", icon: "CalendarDays", ziel: { art: "software" } },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
/** Unterer Bereich, durch einen Trenner abgesetzt — wie in der Software. */
|
||||
/**
|
||||
* Unterer Bereich, durch einen Trenner abgesetzt — wie in der Software.
|
||||
* Hier steht nur, was zum Prototyp gehört: die Bausteingalerie für die
|
||||
* Entwicklung. Sie ist kein Produktfeature und wandert beim Einbau nicht mit.
|
||||
*/
|
||||
export const NAV_SEKUNDAER: NavEintrag[] = [
|
||||
{
|
||||
// Gehört nicht zur Software, sondern zum Prototyp: die Bausteingalerie
|
||||
// für die Entwicklung.
|
||||
id: "komponenten",
|
||||
label: "Komponenten",
|
||||
icon: "Component",
|
||||
ziel: { art: "route", href: "/komponenten" },
|
||||
},
|
||||
{ id: "einstellungen", label: "Einstellungen", icon: "Settings", ziel: { art: "software" } },
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user