<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<div class="wrapper">
<section class="header">
<div class="logo-and-nav-wrap">
<div class="logo-wrap">
<a href="#/global">LOGO</a>
</div>
<div class="site-nav-wrap">
<nav class="nav">
<div class="breadcrumb-wrap">
<span class="sep"><i class="fa fa-caret-right"></i></span> <span class="breadcrumb"><a href="#">Universe</a></span>
</div>
<div class="breadcrumb-wrap">
<span class="sep"><i class="fa fa-caret-right"></i></span> <span class="breadcrumb"><a href="#">Milky Way</a></span>
</div>
<div class="breadcrumb-wrap">
<span class="sep"><i class="fa fa-caret-right"></i></span> <span class="breadcrumb"><a href="#">Solar System</a></span>
</div>
<div class="breadcrumb-wrap">
<span class="sep"><i class="fa fa-caret-right"></i></span> <span class="breadcrumb"><a href="#">Earth</a></span>
</div>
<div class="breadcrumb-wrap">
<span class="sep"><i class="fa fa-caret-right"></i></span> <span class="breadcrumb"><a href="#">Internet</a></span>
</div>
</nav>
</div>
</div>
</section>
<section class="body">
<div class="content">
<p>Play with the browser size to see how the breadcrumbs behave.</p>
<ul>
<li>Breadcrumbs shrinks when not enough space</li>
<li>Mouse hover cancels ellipsis to let user read the full text</li>
</ul>
</div>
</section>
</div>
@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500,700');
// css variables
:root {
--main-color: #b6ceff;
--hover-color: #527cff;
--icon: "\f105";
--border-color: #ddd;
}
* {
box-sizing: border-box;
}
.wrapper {
font-family: 'Roboto', sans-serif;
box-shadow: 0px 0px 10px var(--main-color);
width: 70vw;
margin: 20px auto;
}
a, a:visited {
text-decoration: none;
color: var(--main-color);
transition: color ease-in-out .3s, background ease-in-out .2s;
}
.header {
margin: 0 auto;
overflow: hidden;
border-bottom: 1px solid var(--border-color);
}
.body {
padding-top: 20px;
}
.content {
display: flex;
flex-flow: column nowrap;
height: 100%;
padding: 15px 20px;
}
.logo-and-nav-wrap {
display: flex;
align-items: center;
}
.site-nav-wrap {
padding-left: 30px;
font-size: 20px;
font-weight: 300;
color: var(--main-color);
overflow: hidden;
width: fit-content;
}
.logo-wrap {
padding: 0 20px;
width: var(--sidebar-width);
}
.nav {
display: flex;
white-space: nowrap;
overflow: hidden;
padding-right: 30px;
}
/// BREADCRUMBS ///
//background color effect (disabled now)
.breadcrumb-wrap:before {
content:'';
background-image: linear-gradient(-33deg,#ff0d64 0,#9c3483 100%);
width: 100%;
height: 100px;
position: absolute;
top: 0;
right: 0;
z-index: -1;
transition: transform ease-in-out .5s;
transform: scalex(0);
transform-origin: left top;
// THIS IS THE BACKGROUND EFFECT - CURRENTLY DISABLED
display:none;
}
//hover effect
.breadcrumb-wrap:hover:before {
transform: scalex(1);
}
/////
.breadcrumb-wrap {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
flex: 0 auto;
flex-shrink: 1000;
display: inline-block;
padding: 10px 5px 15px 0;
border-bottom: 1px solid transparent;
color: var(--main-color);
position: relative;
transition: transform ease-in-out .3s;
&:hover {
flex: 1 0 auto;
opacity: 1;
color: var(--hover-color);
transform: translatey(-2px);
transition: none;
.breadcrumb {
}
a {
color: var(--hover-color);
}
.sep {
i {
transform: translatex(8px);
color: var(--hover-color);
transition: transform ease-in-out .3s;
}
}
opacity: 1;
transition: transform ease-in-out .4s;
~ .single-breadcrumb-wrap {
transition: transform ease-in-out .4s;
}
}
//First Breadcrumb
&:first-child {
flex: 0 0 auto;
flex-shrink: 0.5;
font-weight: normal;
color: var(--hover-color);
opacity: 1;
&:after {
left: 0;
}
.sep {
display: none;
}
}
//Last Breadcrumb
&:last-child {
flex: 1 0 auto !important;
font-weight: normal;
a {
color: var(--hover-color);
}
&:hover {
transform: translateY(0);
flex: 1 0 auto !important;
&:after {
display: none;
}
}
}
}
//Underline effect
.breadcrumb-wrap:after {
content: '';
position: absolute;
bottom: 100%;
left: 28px;
top: 36px;
width: 100%;
height: 1px;
background: var(--hover-color);
transform: scale3d(0,1,1);
transform-origin: 0% 50%;
transition: transform ease-in-out .15s .10s,
opacity ease-in-out .25s;
opacity: .5;
}
//hover effect
.breadcrumb-wrap:hover:after {
transform: scale3d(1,1,1);
opacity: 1;
transition: opacity ease-in-out .1s, transform ease-in-out .2s;
}
.breadcrumb {
flex: 0 1 auto;
}
.sep {
padding-left: 10px;
padding-right: 10px;
i.fa:before {
content: var(--icon);
transition: transform ease-in-out .2s;
}
}
View Compiled
This Pen doesn't use any external CSS resources.