Sidenav Responsivo Tipo VSCode
html
<div class="vscode-like-nav is-flex">
<nav class="is-flex has-background-grey-dark">
<ul class="is-paddingless is-flex-grow-1">
<li data-vscode-like-link="home">
<a><span class="icon is-large"><i class="fas fa-lg fa-home"></i></span></a>
</li>
</ul>
<ul class="is-paddingless">
<li data-vscode-like-link="circle">
<a><span class="icon is-large"><i class="fas fa-lg fa-info-circle"></i></span></a>
</li>
<!-- outros itens -->
</ul>
</nav>
<section data-vscode-like-panel="home">
<p>home</p>
</section>
<section data-vscode-like-panel="circle">
<p>circle</p>
</section>
<!-- outros itens -->
<main>
</main>
</div>
CSS
.is-flex-grow-1 {
flex-grow: 1;
}
.vscode-like-nav {
height: 100vh;
min-height: 100%;
width: 100vw;
}
.vscode-like-nav nav {
align-items: center;
}
.vscode-like-nav main {
flex-grow: 1;
overflow-y: auto;
}
@media (orientation: landscape) {
.vscode-like-nav {
flex-direction: row;
}
.vscode-like-nav nav {
height: 100vh;
order: 0;
flex-direction: column;
}
.vscode-like-nav nav ul {
display: block;
}
.vscode-like-nav [data-vscode-like-panel] {
display: block;
position: absolute;
width: 280px;
left: -280px;
height: 100vh;
z-index: 1;
}
.vscode-like-nav [data-vscode-like-panel].is-active {
left: 45px;
z-index: 1;
}
}
@media (orientation: portrait) {
.vscode-like-nav {
flex-direction: column;
}
.vscode-like-nav nav {
min-height: 4rem;
align-items: center;
order: 2;
}
.vscode-like-nav nav ul {
display: flex;
min-width: 45px;
list-style: none;
}
.vscode-like-nav [data-vscode-like-panel] {
display: block;
position: absolute;
height: 280px;
bottom: -280px;
width: 100vw;
z-index: 1;
}
.vscode-like-nav [data-vscode-like-panel].is-active {
bottom: 4rem;
}
}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Felis eget nunc lobortis mattis aliquam faucibus. Tristique et egestas quis ipsum suspendisse ultrices gravida. Donec massa sapien faucibus et molestie ac feugiat. Diam sollicitudin tempor id eu nisl. Suspendisse in est ante in. Id diam maecenas ultricies mi eget mauris pharetra et ultrices. Lectus mauris ultrices eros in. Sociis natoque penatibus et magnis dis parturient. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Tempor commodo ullamcorper a lacus vestibulum. Ullamcorper a lacus vestibulum sed arcu non odio. Ultrices dui sapien eget mi proin. Arcu ac tortor dignissim convallis aenean et tortor at risus. Tristique magna sit amet purus gravida quis.
Lorem ipsum dolor sit amet. Nec feugiat nisl pretium fusce id. Nulla facilisi morbi tempus iaculis urna id. Facilisis magna etiam tempor orci eu. Aliquet risus feugiat in ante metus dictum. Pretium lectus quam id leo. Erat velit scelerisque in dictum non. Congue nisi vitae suscipit tellus mauris a diam maecenas sed. Pharetra et ultrices neque ornare aenean euismod elementum nisi quis. In vitae turpis massa sed. Phasellus vestibulum lorem sed risus ultricies tristique nulla aliquet. Cras sed felis eget velit aliquet sagittis id consectetur purus.
At consectetur lorem donec massa sapien faucibus et molestie ac. Id interdum velit laoreet id donec ultrices tincidunt. Nulla pharetra diam sit amet nisl suscipit. Cras pulvinar mattis nunc sed blandit libero volutpat sed. Pellentesque id nibh tortor id aliquet lectus proin nibh nisl. Pharetra convallis posuere morbi leo urna molestie at. Est sit amet facilisis magna etiam. Suspendisse potenti nullam ac tortor vitae purus. Mauris commodo quis imperdiet massa tincidunt nunc pulvinar sapien. Pulvinar mattis nunc sed blandit libero volutpat sed cras. Aenean et tortor at risus viverra adipiscing at in tellus. Viverra adipiscing at in tellus integer. Eget aliquet nibh praesent tristique magna sit. Morbi non arcu risus quis varius. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Pharetra magna ac placerat vestibulum lectus mauris.
At varius vel pharetra vel turpis nunc. Neque egestas congue quisque egestas. Vitae sapien pellentesque habitant morbi tristique. Turpis massa sed elementum tempus egestas sed sed risus. Viverra maecenas accumsan lacus vel facilisis volutpat est velit egestas. Massa ultricies mi quis hendrerit dolor magna eget est lorem. Sagittis orci a scelerisque purus semper eget duis at. Sit amet luctus venenatis lectus magna fringilla urna. Amet consectetur adipiscing elit ut. Netus et malesuada fames ac turpis. Pulvinar elementum integer enim neque volutpat ac tincidunt. Posuere morbi leo urna molestie.
Quis vel eros donec ac. Erat velit scelerisque in dictum non consectetur a. Phasellus faucibus scelerisque eleifend donec pretium vulputate. Nulla aliquet enim tortor at auctor urna nunc id cursus. In nibh mauris cursus mattis molestie. Integer malesuada nunc vel risus commodo. Risus in hendrerit gravida rutrum quisque non tellus orci. Ipsum dolor sit amet consectetur adipiscing elit pellentesque. Lobortis scelerisque fermentum dui faucibus in ornare quam. Faucibus pulvinar elementum integer enim neque volutpat ac. Dui vivamus arcu felis bibendum ut tristique et. Nulla pharetra diam sit amet nisl suscipit adipiscing bibendum. Blandit libero volutpat sed cras. Ipsum dolor sit amet consectetur adipiscing.