feat(ui): complete editorial rebrand, numberless navigation, smooth accordions, and mobile responsiveness #69

Open
A-Guevara wants to merge 5 commits from feat/marcom-ui-polish into main
Owner

Summary

This PR completes the editorial overhaul, Marcom visual rebrand polish, and responsive UX enhancements across the entire TTI-UX (TUX 3.0) library and portal.

Highlights:

  • Editorial Navigation Overhaul: Removed all numbered/batch prefixes (00 //, 01 //, 03a //, etc.) from desktop sidebars, mobile drawers, and catalog categories. Sidebar headers are now clean, human-readable editorial titles.
  • Smooth Accordion Animations & Scroll Alignment: Added smooth animated expansions to sidebar sections, in-page component accordions (TuxAccordion.vue), and synchronized category filtering on /components with smooth viewport scrolling directly to #component-catalog-grid.
  • Mobile & Tablet Responsiveness: Fixed viewport padding, side-rail visibility, breadcrumb text wrapping, and mobile drawer transitions.
  • 3D Corridor Visualizer: Repaired 3D roadway perspective defaults and reactive panel controls on desktop.
  • Verification: 100% WCAG 2.2 AAA accessibility compliance (0 violations), 100% test pass rate (218 Nuxt test suites / 677 tests, 26 React suites / 87 tests), and static generation across all 502 routes verified.
## Summary This PR completes the editorial overhaul, Marcom visual rebrand polish, and responsive UX enhancements across the entire TTI-UX (TUX 3.0) library and portal. ### Highlights: - **Editorial Navigation Overhaul**: Removed all numbered/batch prefixes (`00 //`, `01 //`, `03a //`, etc.) from desktop sidebars, mobile drawers, and catalog categories. Sidebar headers are now clean, human-readable editorial titles. - **Smooth Accordion Animations & Scroll Alignment**: Added smooth animated expansions to sidebar sections, in-page component accordions (`TuxAccordion.vue`), and synchronized category filtering on `/components` with smooth viewport scrolling directly to `#component-catalog-grid`. - **Mobile & Tablet Responsiveness**: Fixed viewport padding, side-rail visibility, breadcrumb text wrapping, and mobile drawer transitions. - **3D Corridor Visualizer**: Repaired 3D roadway perspective defaults and reactive panel controls on desktop. - **Verification**: 100% WCAG 2.2 AAA accessibility compliance (0 violations), 100% test pass rate (218 Nuxt test suites / 677 tests, 26 React suites / 87 tests), and static generation across all 502 routes verified.
style(ui): polish badges, buttons, chips, charts, and 3D items for Marcom rebrand geometry and mobile responsiveness
Some checks failed
scan / trivy-fs (push) Failing after 1m4s
baseline-security / baseline (push) Failing after 1m13s
c863482512
fix(ui): resolve 3D roadway perspective defaults, logo router navigation, doctrine breadcrumbs, navbar layout, and CMS builder fallback
Some checks failed
baseline-security / baseline (push) Failing after 1m32s
scan / trivy-fs (push) Failing after 54s
cc2ba8bfab
feat(navigation): streamline mobile drawer, fix 3D control labels, and resolve breadcrumbs nowrap
Some checks failed
baseline-security / baseline (push) Failing after 1m33s
scan / trivy-fs (push) Failing after 1m16s
1fb384bc94
feat(navigation): omit numbered prefixes, add smooth accordion expansion and catalog scroll sync
Some checks failed
baseline-security / baseline (push) Failing after 1m21s
scan / trivy-fs (push) Failing after 1m1s
ai-review / review (pull_request) Successful in 54s
baseline-security / baseline (pull_request) Failing after 1m24s
scan / trivy-fs (pull_request) Failing after 1m11s
95c462f71c

AI review · advisory

The AI panel couldn't review this change right now (it will review the next push). Details for admins: panel HTTP 401: {"error": {"message": "missing Forgejo credential", "type": "auth", "code": 401}}

### AI review · advisory _The AI panel couldn't review this change right now (it will review the next push). Details for admins: panel HTTP 401: {"error": {"message": "missing Forgejo credential", "type": "auth", "code": 401}}_

🔧 Security-gate fix map

The gate failed on these dependency findings — fastest path to green for each:

finding package installed → fixed do this
CVE-2026-63671 (HIGH) @nuxtjs/mdc 0.21.1 → 0.22.1 merge #59 — fix(security): @nuxtjs/mdc ^0.22.2 (CVE-2026-63671) — hold f
CVE-2026-102829 (CRITICAL) @simple-git/argv-parser 1.1.1 → 2.0.1 no fix PR yet — npm update argv-parser --package-lock-only
GHSA-g2v6-rqmx-r4w6 (HIGH) @vue/server-renderer 3.5.40 → 3.5.42, 3.6.0-rc.6 no fix PR yet — npm update server-renderer --package-lock-only
CVE-2026-102276 (HIGH) brace-expansion 5.0.9 → 5.0.10, 3.0.7, 2.1.5, 1.1.19 merge #62 — chore(deps): update dependency brace-expansion to v5.0.12 [s
CVE-2026-102278 (HIGH) brace-expansion 5.0.9 → 5.0.11, 3.0.8, 2.1.6, 1.1.20 merge #62 — chore(deps): update dependency brace-expansion to v5.0.12 [s
CVE-2026-93687 (HIGH) braces 3.0.3 → ? no fix PR yet — npm update braces --package-lock-only
CVE-2026-92708 (HIGH) devalue 5.8.2 → 5.9.3 no fix PR yet — npm update devalue --package-lock-only
GHSA-mcm9-63f2-9j32 (HIGH) devalue 5.8.2 → 5.9.3 no fix PR yet — npm update devalue --package-lock-only
GHSA-r9w8-h9r3-54w4 (HIGH) devalue 5.8.2 → 5.9.3 no fix PR yet — npm update devalue --package-lock-only
GHSA-x5rw-q4pp-hg5g (HIGH) devalue 5.8.2 → 5.9.3 no fix PR yet — npm update devalue --package-lock-only
CVE-2026-84375 (HIGH) js-yaml 4.3.1 → 4.3.2, 3.15.2 no fix PR yet — npm update js-yaml --package-lock-only
CVE-2026-85393 (HIGH) node-forge 1.4.0 → ? no fix PR yet — npm update node-forge --package-lock-only
CVE-2026-104846 (CRITICAL) seroval 1.5.6 → 1.6.2 no fix PR yet — npm update seroval --package-lock-only
CVE-2026-104845 (HIGH) seroval 1.5.6 → 1.6.3 no fix PR yet — npm update seroval --package-lock-only
GHSA-rgj7-g3m4-5g8c (HIGH) sharp 0.35.3 → 0.35.4 no fix PR yet — npm update sharp --package-lock-only
GHSA-wq5f-xc86-pv6w (HIGH) sharp 0.35.3 → 0.35.5 no fix PR yet — npm update sharp --package-lock-only
CVE-2026-102422 (CRITICAL) shell-quote 1.10.0 → 1.11.0 no fix PR yet — npm update shell-quote --package-lock-only
CVE-2026-102828 (CRITICAL) simple-git 3.36.0 → 4.0.1 no fix PR yet — npm update simple-git --package-lock-only
CVE-2026-102826 (HIGH) simple-git 3.36.0 → 4.0.0 no fix PR yet — npm update simple-git --package-lock-only
CVE-2026-102827 (HIGH) simple-git 3.36.0 → 4.0.0 no fix PR yet — npm update simple-git --package-lock-only
CVE-2026-93749 (HIGH) source-map-js 1.2.1 → 1.2.2 no fix PR yet — npm update source-map-js --package-lock-only
CVE-2026-84370 (HIGH) svgo 4.0.2 → 2.8.4, 3.3.5, 4.1.0 no fix PR yet — npm update svgo --package-lock-only
CVE-2026-19534 (HIGH) undici 8.10.0 → 6.28.1, 7.29.1, 8.10.2 no fix PR yet — npm update undici --package-lock-only
CVE-2026-84961 (HIGH) undici 8.10.0 → 7.29.1, 8.10.2 no fix PR yet — npm update undici --package-lock-only
CVE-2026-85152 (HIGH) undici 8.10.0 → 8.10.2 no fix PR yet — npm update undici --package-lock-only

⚠ main is itself red right now — this PR likely inherits the backlog rather than adding it. Fixing main (rows above) unblocks every open PR at once.

Posted once per head commit by the baseline gate (M2). A Renovate PR that only touches a manifest with no lockfile change is a broken pre-2026-08-06 artifact — check its diff before merging.

### 🔧 Security-gate fix map <!-- tti-fixmap:95c462f71c804c7ba271fe9e333247ef9f2c188f --> The gate failed on these dependency findings — fastest path to green for each: | finding | package | installed → fixed | do this | |---|---|---|---| | CVE-2026-63671 (HIGH) | `@nuxtjs/mdc` | 0.21.1 → 0.22.1 | merge #59 — fix(security): @nuxtjs/mdc ^0.22.2 (CVE-2026-63671) — hold f | | CVE-2026-102829 (CRITICAL) | `@simple-git/argv-parser` | 1.1.1 → 2.0.1 | no fix PR yet — `npm update argv-parser --package-lock-only` | | GHSA-g2v6-rqmx-r4w6 (HIGH) | `@vue/server-renderer` | 3.5.40 → 3.5.42, 3.6.0-rc.6 | no fix PR yet — `npm update server-renderer --package-lock-only` | | CVE-2026-102276 (HIGH) | `brace-expansion` | 5.0.9 → 5.0.10, 3.0.7, 2.1.5, 1.1.19 | merge #62 — chore(deps): update dependency brace-expansion to v5.0.12 [s | | CVE-2026-102278 (HIGH) | `brace-expansion` | 5.0.9 → 5.0.11, 3.0.8, 2.1.6, 1.1.20 | merge #62 — chore(deps): update dependency brace-expansion to v5.0.12 [s | | CVE-2026-93687 (HIGH) | `braces` | 3.0.3 → ? | no fix PR yet — `npm update braces --package-lock-only` | | CVE-2026-92708 (HIGH) | `devalue` | 5.8.2 → 5.9.3 | no fix PR yet — `npm update devalue --package-lock-only` | | GHSA-mcm9-63f2-9j32 (HIGH) | `devalue` | 5.8.2 → 5.9.3 | no fix PR yet — `npm update devalue --package-lock-only` | | GHSA-r9w8-h9r3-54w4 (HIGH) | `devalue` | 5.8.2 → 5.9.3 | no fix PR yet — `npm update devalue --package-lock-only` | | GHSA-x5rw-q4pp-hg5g (HIGH) | `devalue` | 5.8.2 → 5.9.3 | no fix PR yet — `npm update devalue --package-lock-only` | | CVE-2026-84375 (HIGH) | `js-yaml` | 4.3.1 → 4.3.2, 3.15.2 | no fix PR yet — `npm update js-yaml --package-lock-only` | | CVE-2026-85393 (HIGH) | `node-forge` | 1.4.0 → ? | no fix PR yet — `npm update node-forge --package-lock-only` | | CVE-2026-104846 (CRITICAL) | `seroval` | 1.5.6 → 1.6.2 | no fix PR yet — `npm update seroval --package-lock-only` | | CVE-2026-104845 (HIGH) | `seroval` | 1.5.6 → 1.6.3 | no fix PR yet — `npm update seroval --package-lock-only` | | GHSA-rgj7-g3m4-5g8c (HIGH) | `sharp` | 0.35.3 → 0.35.4 | no fix PR yet — `npm update sharp --package-lock-only` | | GHSA-wq5f-xc86-pv6w (HIGH) | `sharp` | 0.35.3 → 0.35.5 | no fix PR yet — `npm update sharp --package-lock-only` | | CVE-2026-102422 (CRITICAL) | `shell-quote` | 1.10.0 → 1.11.0 | no fix PR yet — `npm update shell-quote --package-lock-only` | | CVE-2026-102828 (CRITICAL) | `simple-git` | 3.36.0 → 4.0.1 | no fix PR yet — `npm update simple-git --package-lock-only` | | CVE-2026-102826 (HIGH) | `simple-git` | 3.36.0 → 4.0.0 | no fix PR yet — `npm update simple-git --package-lock-only` | | CVE-2026-102827 (HIGH) | `simple-git` | 3.36.0 → 4.0.0 | no fix PR yet — `npm update simple-git --package-lock-only` | | CVE-2026-93749 (HIGH) | `source-map-js` | 1.2.1 → 1.2.2 | no fix PR yet — `npm update source-map-js --package-lock-only` | | CVE-2026-84370 (HIGH) | `svgo` | 4.0.2 → 2.8.4, 3.3.5, 4.1.0 | no fix PR yet — `npm update svgo --package-lock-only` | | CVE-2026-19534 (HIGH) | `undici` | 8.10.0 → 6.28.1, 7.29.1, 8.10.2 | no fix PR yet — `npm update undici --package-lock-only` | | CVE-2026-84961 (HIGH) | `undici` | 8.10.0 → 7.29.1, 8.10.2 | no fix PR yet — `npm update undici --package-lock-only` | | CVE-2026-85152 (HIGH) | `undici` | 8.10.0 → 8.10.2 | no fix PR yet — `npm update undici --package-lock-only` | > ⚠ `main` is itself red right now — this PR likely **inherits** the backlog rather than adding it. Fixing `main` (rows above) unblocks every open PR at once. <sub>Posted once per head commit by the baseline gate (M2). A Renovate PR that only touches a manifest with no lockfile change is a broken pre-2026-08-06 artifact — check its diff before merging.</sub>
chore(release): v3.0.1 — editorial numberless navigation, smooth accordion scrolling, and mobile UX polish
Some checks failed
baseline-security / baseline (push) Failing after 1m59s
scan / trivy-fs (push) Failing after 1m26s
ai-review / review (pull_request) Successful in 1m16s
baseline-security / baseline (pull_request) Failing after 1m35s
scan / trivy-fs (pull_request) Failing after 1m4s
publish-package / publish (push) Failing after 52s
5b9f47f578

AI review · advisory

The AI panel couldn't review this change right now (it will review the next push). Details for admins: panel HTTP 401: {"error": {"message": "missing Forgejo credential", "type": "auth", "code": 401}}

### AI review · advisory _The AI panel couldn't review this change right now (it will review the next push). Details for admins: panel HTTP 401: {"error": {"message": "missing Forgejo credential", "type": "auth", "code": 401}}_

🔧 Security-gate fix map

The gate failed on these dependency findings — fastest path to green for each:

finding package installed → fixed do this
CVE-2026-63671 (HIGH) @nuxtjs/mdc 0.21.1 → 0.22.1 merge #59 — fix(security): @nuxtjs/mdc ^0.22.2 (CVE-2026-63671) — hold f
CVE-2026-102829 (CRITICAL) @simple-git/argv-parser 1.1.1 → 2.0.1 no fix PR yet — npm update argv-parser --package-lock-only
GHSA-g2v6-rqmx-r4w6 (HIGH) @vue/server-renderer 3.5.40 → 3.5.42, 3.6.0-rc.6 no fix PR yet — npm update server-renderer --package-lock-only
CVE-2026-102276 (HIGH) brace-expansion 5.0.9 → 5.0.10, 3.0.7, 2.1.5, 1.1.19 merge #62 — chore(deps): update dependency brace-expansion to v5.0.12 [s
CVE-2026-102278 (HIGH) brace-expansion 5.0.9 → 5.0.11, 3.0.8, 2.1.6, 1.1.20 merge #62 — chore(deps): update dependency brace-expansion to v5.0.12 [s
CVE-2026-93687 (HIGH) braces 3.0.3 → ? no fix PR yet — npm update braces --package-lock-only
CVE-2026-92708 (HIGH) devalue 5.8.2 → 5.9.3 no fix PR yet — npm update devalue --package-lock-only
GHSA-mcm9-63f2-9j32 (HIGH) devalue 5.8.2 → 5.9.3 no fix PR yet — npm update devalue --package-lock-only
GHSA-r9w8-h9r3-54w4 (HIGH) devalue 5.8.2 → 5.9.3 no fix PR yet — npm update devalue --package-lock-only
GHSA-x5rw-q4pp-hg5g (HIGH) devalue 5.8.2 → 5.9.3 no fix PR yet — npm update devalue --package-lock-only
CVE-2026-84375 (HIGH) js-yaml 4.3.1 → 4.3.2, 3.15.2 no fix PR yet — npm update js-yaml --package-lock-only
CVE-2026-85393 (HIGH) node-forge 1.4.0 → ? no fix PR yet — npm update node-forge --package-lock-only
CVE-2026-104846 (CRITICAL) seroval 1.5.6 → 1.6.2 no fix PR yet — npm update seroval --package-lock-only
CVE-2026-104845 (HIGH) seroval 1.5.6 → 1.6.3 no fix PR yet — npm update seroval --package-lock-only
GHSA-rgj7-g3m4-5g8c (HIGH) sharp 0.35.3 → 0.35.4 no fix PR yet — npm update sharp --package-lock-only
GHSA-wq5f-xc86-pv6w (HIGH) sharp 0.35.3 → 0.35.5 no fix PR yet — npm update sharp --package-lock-only
CVE-2026-102422 (CRITICAL) shell-quote 1.10.0 → 1.11.0 no fix PR yet — npm update shell-quote --package-lock-only
CVE-2026-102828 (CRITICAL) simple-git 3.36.0 → 4.0.1 no fix PR yet — npm update simple-git --package-lock-only
CVE-2026-102826 (HIGH) simple-git 3.36.0 → 4.0.0 no fix PR yet — npm update simple-git --package-lock-only
CVE-2026-102827 (HIGH) simple-git 3.36.0 → 4.0.0 no fix PR yet — npm update simple-git --package-lock-only
CVE-2026-93749 (HIGH) source-map-js 1.2.1 → 1.2.2 no fix PR yet — npm update source-map-js --package-lock-only
CVE-2026-84370 (HIGH) svgo 4.0.2 → 2.8.4, 3.3.5, 4.1.0 no fix PR yet — npm update svgo --package-lock-only
CVE-2026-19534 (HIGH) undici 8.10.0 → 6.28.1, 7.29.1, 8.10.2 no fix PR yet — npm update undici --package-lock-only
CVE-2026-84961 (HIGH) undici 8.10.0 → 7.29.1, 8.10.2 no fix PR yet — npm update undici --package-lock-only
CVE-2026-85152 (HIGH) undici 8.10.0 → 8.10.2 no fix PR yet — npm update undici --package-lock-only

⚠ main is itself red right now — this PR likely inherits the backlog rather than adding it. Fixing main (rows above) unblocks every open PR at once.

Posted once per head commit by the baseline gate (M2). A Renovate PR that only touches a manifest with no lockfile change is a broken pre-2026-08-06 artifact — check its diff before merging.

### 🔧 Security-gate fix map <!-- tti-fixmap:5b9f47f5785f4888f81e1fe22feca7cfc6fa9584 --> The gate failed on these dependency findings — fastest path to green for each: | finding | package | installed → fixed | do this | |---|---|---|---| | CVE-2026-63671 (HIGH) | `@nuxtjs/mdc` | 0.21.1 → 0.22.1 | merge #59 — fix(security): @nuxtjs/mdc ^0.22.2 (CVE-2026-63671) — hold f | | CVE-2026-102829 (CRITICAL) | `@simple-git/argv-parser` | 1.1.1 → 2.0.1 | no fix PR yet — `npm update argv-parser --package-lock-only` | | GHSA-g2v6-rqmx-r4w6 (HIGH) | `@vue/server-renderer` | 3.5.40 → 3.5.42, 3.6.0-rc.6 | no fix PR yet — `npm update server-renderer --package-lock-only` | | CVE-2026-102276 (HIGH) | `brace-expansion` | 5.0.9 → 5.0.10, 3.0.7, 2.1.5, 1.1.19 | merge #62 — chore(deps): update dependency brace-expansion to v5.0.12 [s | | CVE-2026-102278 (HIGH) | `brace-expansion` | 5.0.9 → 5.0.11, 3.0.8, 2.1.6, 1.1.20 | merge #62 — chore(deps): update dependency brace-expansion to v5.0.12 [s | | CVE-2026-93687 (HIGH) | `braces` | 3.0.3 → ? | no fix PR yet — `npm update braces --package-lock-only` | | CVE-2026-92708 (HIGH) | `devalue` | 5.8.2 → 5.9.3 | no fix PR yet — `npm update devalue --package-lock-only` | | GHSA-mcm9-63f2-9j32 (HIGH) | `devalue` | 5.8.2 → 5.9.3 | no fix PR yet — `npm update devalue --package-lock-only` | | GHSA-r9w8-h9r3-54w4 (HIGH) | `devalue` | 5.8.2 → 5.9.3 | no fix PR yet — `npm update devalue --package-lock-only` | | GHSA-x5rw-q4pp-hg5g (HIGH) | `devalue` | 5.8.2 → 5.9.3 | no fix PR yet — `npm update devalue --package-lock-only` | | CVE-2026-84375 (HIGH) | `js-yaml` | 4.3.1 → 4.3.2, 3.15.2 | no fix PR yet — `npm update js-yaml --package-lock-only` | | CVE-2026-85393 (HIGH) | `node-forge` | 1.4.0 → ? | no fix PR yet — `npm update node-forge --package-lock-only` | | CVE-2026-104846 (CRITICAL) | `seroval` | 1.5.6 → 1.6.2 | no fix PR yet — `npm update seroval --package-lock-only` | | CVE-2026-104845 (HIGH) | `seroval` | 1.5.6 → 1.6.3 | no fix PR yet — `npm update seroval --package-lock-only` | | GHSA-rgj7-g3m4-5g8c (HIGH) | `sharp` | 0.35.3 → 0.35.4 | no fix PR yet — `npm update sharp --package-lock-only` | | GHSA-wq5f-xc86-pv6w (HIGH) | `sharp` | 0.35.3 → 0.35.5 | no fix PR yet — `npm update sharp --package-lock-only` | | CVE-2026-102422 (CRITICAL) | `shell-quote` | 1.10.0 → 1.11.0 | no fix PR yet — `npm update shell-quote --package-lock-only` | | CVE-2026-102828 (CRITICAL) | `simple-git` | 3.36.0 → 4.0.1 | no fix PR yet — `npm update simple-git --package-lock-only` | | CVE-2026-102826 (HIGH) | `simple-git` | 3.36.0 → 4.0.0 | no fix PR yet — `npm update simple-git --package-lock-only` | | CVE-2026-102827 (HIGH) | `simple-git` | 3.36.0 → 4.0.0 | no fix PR yet — `npm update simple-git --package-lock-only` | | CVE-2026-93749 (HIGH) | `source-map-js` | 1.2.1 → 1.2.2 | no fix PR yet — `npm update source-map-js --package-lock-only` | | CVE-2026-84370 (HIGH) | `svgo` | 4.0.2 → 2.8.4, 3.3.5, 4.1.0 | no fix PR yet — `npm update svgo --package-lock-only` | | CVE-2026-19534 (HIGH) | `undici` | 8.10.0 → 6.28.1, 7.29.1, 8.10.2 | no fix PR yet — `npm update undici --package-lock-only` | | CVE-2026-84961 (HIGH) | `undici` | 8.10.0 → 7.29.1, 8.10.2 | no fix PR yet — `npm update undici --package-lock-only` | | CVE-2026-85152 (HIGH) | `undici` | 8.10.0 → 8.10.2 | no fix PR yet — `npm update undici --package-lock-only` | > ⚠ `main` is itself red right now — this PR likely **inherits** the backlog rather than adding it. Fixing `main` (rows above) unblocks every open PR at once. <sub>Posted once per head commit by the baseline gate (M2). A Renovate PR that only touches a manifest with no lockfile change is a broken pre-2026-08-06 artifact — check its diff before merging.</sub>
Some checks failed
baseline-security / baseline (push) Failing after 1m59s
scan / trivy-fs (push) Failing after 1m26s
ai-review / review (pull_request) Successful in 1m16s
baseline-security / baseline (pull_request) Failing after 1m35s
Required
Details
scan / trivy-fs (pull_request) Failing after 1m4s
publish-package / publish (push) Failing after 52s
This pull request has changes conflicting with the target branch.
  • CHANGELOG.md
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/marcom-ui-polish:feat/marcom-ui-polish
git switch feat/marcom-ui-polish
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
tti/tti-ux!69
No description provided.