Art Studio admin pages render content under the fixed menu bar #907

Closed
opened 2026-08-03 20:48:59 +00:00 by spikerj · 1 comment
Owner

The fixed 64px menu bar (--app-toolbar-height) requires each routed page to reserve its own top offset (pattern: padding-top: var(--app-toolbar-height, 64px), cf. platform-adoption/book-management). All five directly-routed Art Studio admin surfaces were built without it, so their page headers/content start underneath the menu:

  • /admin/art-review (ArtReviewQueueComponent)
  • /admin/art-gallery-review (ArtGalleryModerationComponent)
  • /admin/art-presets (ArtPresetManagerComponent)
  • /admin/art-metrics (ArtMetricsDashboardComponent)
  • /admin/art-builder (ArtPipelineBuilderComponent)

Reported by Joey for art-presets/art-review/art-metrics; the other two share the identical structure. Not a #904 regression — the menu was fixed-position before the declutter; these pages simply never had the offset.

Complication: ArtMetricsDashboardComponent and ArtPipelineBuilderComponent are ALSO embedded as tabs inside ArtPipeShellComponent (tools outlet), so their :host offset must be reset by the shell to avoid double-padding there.

Fix: :host { display: block; padding-top: var(--app-toolbar-height, 64px); } on the five components + a padding-top: 0 reset on lib-art-metrics-dashboard / lib-art-pipeline-builder in art-pipe-shell styles.

The fixed 64px menu bar (`--app-toolbar-height`) requires each routed page to reserve its own top offset (pattern: `padding-top: var(--app-toolbar-height, 64px)`, cf. platform-adoption/book-management). All five directly-routed Art Studio admin surfaces were built without it, so their page headers/content start underneath the menu: - /admin/art-review (ArtReviewQueueComponent) - /admin/art-gallery-review (ArtGalleryModerationComponent) - /admin/art-presets (ArtPresetManagerComponent) - /admin/art-metrics (ArtMetricsDashboardComponent) - /admin/art-builder (ArtPipelineBuilderComponent) Reported by Joey for art-presets/art-review/art-metrics; the other two share the identical structure. Not a #904 regression — the menu was fixed-position before the declutter; these pages simply never had the offset. Complication: `ArtMetricsDashboardComponent` and `ArtPipelineBuilderComponent` are ALSO embedded as tabs inside `ArtPipeShellComponent` (tools outlet), so their `:host` offset must be reset by the shell to avoid double-padding there. Fix: `:host { display: block; padding-top: var(--app-toolbar-height, 64px); }` on the five components + a `padding-top: 0` reset on `lib-art-metrics-dashboard` / `lib-art-pipeline-builder` in art-pipe-shell styles.
Author
Owner

Fixed on master. spikersoft-angular#609 — every routed Art Studio admin surface now reserves the fixed menu-bar height:

art-review-queue.component.scss:11        padding-top: var(--app-toolbar-height, 64px);
art-gallery-moderation.component.scss:11  padding-top: var(--app-toolbar-height, 64px);
art-metrics-dashboard.component.scss:11   padding-top: var(--app-toolbar-height, 64px);
art-preset-manager.component.scss:4       padding-top: var(--app-toolbar-height, 64px);
art-pipeline-builder.component.scss:12    padding-top: var(--app-toolbar-height, 64px);

Same --app-toolbar-height token used for the #896 sponsor-family fix.

— verified and closed by Opus 5 Agent during the 2026-08-06 tracker sweep.

**Fixed on master.** spikersoft-angular#609 — every routed Art Studio admin surface now reserves the fixed menu-bar height: ``` art-review-queue.component.scss:11 padding-top: var(--app-toolbar-height, 64px); art-gallery-moderation.component.scss:11 padding-top: var(--app-toolbar-height, 64px); art-metrics-dashboard.component.scss:11 padding-top: var(--app-toolbar-height, 64px); art-preset-manager.component.scss:4 padding-top: var(--app-toolbar-height, 64px); art-pipeline-builder.component.scss:12 padding-top: var(--app-toolbar-height, 64px); ``` Same `--app-toolbar-height` token used for the #896 sponsor-family fix. — verified and closed by Opus 5 Agent during the 2026-08-06 tracker sweep.
Sign in to join this conversation.