nl-design-system / rijkshuisstijl-community

Unofficial Rijkshuisstijl components and design tokens based on the NL Design System architecture. This project is not endorsed by the Dutch Ministry of General Affairs.
https://rijkshuisstijl-community.vercel.app/
European Union Public License 1.2
6 stars 4 forks source link

FEAT: NavBar aanpassingen #971

Open Rerbun opened 1 day ago

Rerbun commented 1 day ago

Context Het gebruik van de NavBar is niet helemaal gebruiksvriendelijk voor developer. Nu dien je verplicht allerlei props in te vullen die mogelijk niet wenselijk zijn. Bijv:

Oplossingsrichting Voor het niet klikbaar maken:

...Styling voor mobiele apparaten...

Rerbun commented 1 day ago
// Navbar voorbeeld met button
<NavBar
  className={clsx({ 'rhc-nav-bar--mobile-collapsed': navBarMobileCollapsed})}
  // (en item props)
>
  <IconButton 
    className="mobile-only"
    onClick={() => setNavBarMobileCollapsed((value) => !value)}
    icon="menu"
    label="Menu in- en uitklappen"
   />
</NavBar>

// Navbar styling voorbeeld
.mobile-only { 
  display: none;
}

@media (width <= 768px) {
  .mobile-only {
    display: none;
  }

  .rhc-nav-bar__container {
        justify-content: flex-start;
        position: relative;
    }

    .rhc-nav-bar {
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;

        &, & > * {
            flex-direction: column;
        }

        .rhc-nav-bar__list {
            &, & .rhc-nav-bar__item, & .rhc-link {
                inline-size: 100%;
            }
        }

        .rhc-nav-bar__list--end {
            margin-inline-start: initial;
            inline-size: 100%;
        }

        &.rhc-nav-bar--mobile-collapsed {
            .rhc-nav-bar__item {
                display: none;
            }

            .rhc-nav-bar__list:first-child .rhc-nav-bar__item:first-child {
                display: inherit;
            }
        }
    }

    .rhc-button.rhc-button--icon-only {
        position: absolute;
        inset-inline-end: 0;
        inset-block-start: 0.25rem;

        &, &:hover, &:focus, &:active {
            color: var(--rhc-nav-bar-color);
        }
    }

    nav, nav > * {
        flex-direction: column;
    }
}