diff --git a/docs/architecture/db/db-orm.puml b/docs/architecture/db/db-orm.puml
index 7b03c156..cb37a60f 100644
--- a/docs/architecture/db/db-orm.puml
+++ b/docs/architecture/db/db-orm.puml
@@ -186,6 +186,7 @@ package "Persons" {
notes : TEXT
birth_year : INTEGER
death_year : INTEGER
+ generation : SMALLINT
family_member : BOOLEAN NOT NULL
source_ref : VARCHAR(255) UNIQUE
provisional : BOOLEAN NOT NULL
diff --git a/docs/specs/stammbaum-tree-spec.html b/docs/specs/stammbaum-tree-spec.html
index 04b86348..b28ffcbd 100644
--- a/docs/specs/stammbaum-tree-spec.html
+++ b/docs/specs/stammbaum-tree-spec.html
@@ -244,8 +244,12 @@ body{font-family:'Montserrat',system-ui,sans-serif;background:#ECEAE4;color:#1A1
rgba(255,255,255,.6) — decorative, aria-hidden years |
- | Gen label |
- #6b7280 — 8 px, tracking 2 px, aria-hidden |
+ Gutter label |
+ #4b5563 (var(--c-ink-2)) — 12 px, tracking 0.08 em, font-weight 700, screen-reader-labelled |
+
+
+ | Gutter stripe |
+ rgba(161,220,216,.08) — decorative full-row underlay alternating with transparent |
| Panel surface |
@@ -302,8 +306,12 @@ body{font-family:'Montserrat',system-ui,sans-serif;background:#ECEAE4;color:#1A1
#8b97a57.1:1 AAA ✓ |
- | Gen label |
- #4e6070 — aria-hidden |
+ Gutter label |
+ #9ca3af (var(--c-ink-2)) — 12 px, tracking 0.08 em, font-weight 700, screen-reader-labelled |
+
+
+ | Gutter stripe |
+ rgba(161,220,216,.14) — decorative full-row underlay alternating with transparent |
| Panel surface |
@@ -355,7 +363,6 @@ body{font-family:'Montserrat',system-ui,sans-serif;background:#ECEAE4;color:#1A1
Stammbaum
-
Generationen ▾
−
+
@@ -507,7 +514,6 @@ body{font-family:'Montserrat',system-ui,sans-serif;background:#ECEAE4;color:#1A1
Stammbaum
-
Generationen ▾
−
+
@@ -751,7 +757,6 @@ body{font-family:'Montserrat',system-ui,sans-serif;background:#ECEAE4;color:#1A1
Stammbaum
-
Generationen ▾
−
+
@@ -998,10 +1003,16 @@ body{font-family:'Montserrat',system-ui,sans-serif;background:#ECEAE4;color:#1A1
Filled circle at connector midpoints; same color as connectors |
- | Gen label |
- text-[8px] tracking-[2px] uppercase |
- 8 px |
- aria-hidden="true"; #6b7280 light · #4e6070 dark |
+ Gutter label |
+ font-sans text-[12px] font-bold tracking-[0.08em] uppercase |
+ 12 px |
+ Wrapped in <g role="text" aria-label="Generation N"> so screen readers announce the full word. Fill var(--c-ink-2). Renders the un-shifted node.generation value, never the post-normalise rank. |
+
+
+ | Gutter stripe underlay |
+ SVG <rect> aria-hidden, alternating transparent / var(--c-gutter-stripe) |
+ NODE_H + ROW_GAP tall, full viewBox width |
+ Decorative band per occupied generation row. Hidden entirely below md (GUTTER_WIDTH = 0). |
| Node name text |