@mixin menu-direction($direction: default) { @if $direction == default { $direction: "horizontal"; } @if $direction == "vertical" { @include flex-direction(column); } @else { @include flex-direction(row); } } @mixin menu($horizontal-spacer: default, $horizontal-item-vertical-spacer: default, $wrap: default) { @if $horizontal-spacer == default { $horizontal-spacer: map-get($menu, horizontal-spacer); } @if $horizontal-item-vertical-spacer == default { $horizontal-item-vertical-spacer: map-get($menu, horizontal-item-vertical-spacer); } @if $wrap == default { $wrap: wrap; } @include flexbox(); @include flex-wrap($wrap); margin-top: 0; margin-bottom: 0; & > li { @if $horizontal-item-vertical-spacer { margin-top: map-get($spacers, $horizontal-item-vertical-spacer); margin-bottom: map-get($spacers, $horizontal-item-vertical-spacer); } margin-right: map-get($spacers, $horizontal-spacer); list-style-type: none; &:last-child { margin-right: 0; } } } .menu { @include menu(); @include menu-direction(); @include align-items(center); } .menu--vertical { @include menu-direction("vertical"); @include align-items(normal); & > li { margin-right: 0; } } .menu--inline { @include inline-flex(); } .menu--center { @include justify-content(center); } .menu--nowrap { @include flex-wrap(nowrap); } .menu--grow { @include flex-grow(1); }