Skip to content

feat(PageHeader): compact layout variant voor large viewport#150

Merged
jeffreylauwers merged 1 commit intomainfrom
feature/page-header-compact-layout
Apr 10, 2026
Merged

feat(PageHeader): compact layout variant voor large viewport#150
jeffreylauwers merged 1 commit intomainfrom
feature/page-header-compact-layout

Conversation

@jeffreylauwers
Copy link
Copy Markdown
Owner

Summary

  • Voegt layout="compact" toe aan PageHeader: één enkele rij met logo (inline-start), primaire navigatie (optisch gecentreerd via CSS-grid 1fr auto 1fr) en servicemenu + icon-only zoekknop (inline-end) op viewports ≥ 64em
  • Drop-shadow op sticky/auto-hide header zodra content eronder schuift (data-scrolled attribuut + CSS box-shadow transitie)
  • initialSearchOpen prop voor initiële open-staat van het zoekpaneel
  • RTL stories bijgewerkt met Arabische navigatieteksten via rtlDecorator

Wijzigingen

Design tokens (page-header.json): compact.background-color, compact.padding-block, compact.padding-inline

CSS (page-header.css):

  • .dsn-page-header--compact modifier + .dsn-page-header__compact-layout / __compact-inner / __compact-primary-nav / __compact-secondary
  • Logo links uitgelijnd in compact context (.dsn-page-header__compact-inner .dsn-page-header__logo)
  • border-block-end hersteld op large viewport voor compact variant
  • box-shadow transitie op --sticky en --auto-hide; actief via [data-scrolled='true']

Component (PageHeader.tsx):

  • layout?: 'default' | 'compact' prop
  • initialSearchOpen?: boolean prop
  • Compact layout gebruikt primaryNavigationLarge ?? primaryNavigation zodat Drawer altijd de verticale variant ontvangt
  • Scroll listener zet data-scrolled voor sticky én auto-hide

Stories (PageHeader.stories.tsx):

  • CompactLayout, WithStickyHeader (+ content), WithAutoHide (+ content), WithSearchOpen (direct open)
  • RTL stories: rtlDecorator + Arabische navigatieteksten
  • Contact verwijderd uit secondary navigation

Test plan

  • Compact layout op large viewport: logo links, nav gecentreerd, servicemenu + zoekicon rechts
  • Compact layout op small viewport: identiek aan default (menu + logo + zoeken)
  • Sticky header: drop-shadow verschijnt bij scrollen, verdwijnt bovenaan
  • Auto-hide header: drop-shadow + verberg/toon animatie werken samen
  • RTL stories: Arabisch + gespiegelde layout
  • initialSearchOpen={true}: paneel direct open
  • 1305 tests groen, TypeScript schoon, lint schoon

Closes #147

🤖 Generated with Claude Code

- Voegt `layout="compact"` toe: één enkele rij met logo (inline-start),
  primaire navigatie (gecentreerd via CSS-grid 1fr auto 1fr) en servicemenu
  + icon-only zoekknop (inline-end)
- Zoekknop compact is icon-only; paneel hergebruikt dsn-page-header__search-panel
- Drop-shadow op sticky/auto-hide header zodra content eronder schuift
  (data-scrolled attribuut via scroll listener, CSS box-shadow transitie)
- `initialSearchOpen` prop voor initiële open-staat zoekpaneel
- RTL stories met Arabische navigatieteksten via rtlDecorator
- WithStickyHeader en WithAutoHide stories tonen paginacontent voor scroll-test
- WithSearchOpen toont paneel direct open via initialSearchOpen
- Contact verwijderd uit secondaryNavigation

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@jeffreylauwers jeffreylauwers merged commit 705e75b into main Apr 10, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(PageHeader): compact layout variant (single-row large viewport)

1 participant