infima
Version:
A UI framework for content-centric websites.
294 lines (250 loc) • 7.81 kB
CSS
:root {
--ifm-navbar-background-color: var(--ifm-background-surface-color);
--ifm-navbar-height: 3.75rem;
--ifm-navbar-item-padding-horizontal: 1rem;
--ifm-navbar-item-padding-vertical: 0.25rem;
--ifm-navbar-link-color: var(--ifm-font-color-base);
--ifm-navbar-link-hover-color: var(--ifm-color-primary);
--ifm-navbar-link-active-color: var(--ifm-link-color);
--ifm-navbar-padding-horizontal: var(--ifm-spacing-horizontal);
--ifm-navbar-padding-vertical: calc(var(--ifm-spacing-vertical) * 0.5);
--ifm-navbar-shadow: var(--ifm-global-shadow-lw);
--ifm-navbar-search-input-background-color: var(--ifm-color-emphasis-200);
--ifm-navbar-search-input-color: var(--ifm-color-emphasis-800);
--ifm-navbar-search-input-placeholder-color: var(--ifm-color-emphasis-500);
--ifm-navbar-search-input-icon: url('data:image/svg+xml;utf8,<svg fill="currentColor" alt="Search" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" height="16px" width="16px"><path d="M6.02945,10.20327a4.17382,4.17382,0,1,1,4.17382-4.17382A4.15609,4.15609,0,0,1,6.02945,10.20327Zm9.69195,4.2199L10.8989,9.59979A5.88021,5.88021,0,0,0,12.058,6.02856,6.00467,6.00467,0,1,0,9.59979,10.8989l4.82338,4.82338a.89729.89729,0,0,0,1.29912,0,.89749.89749,0,0,0-.00087-1.29909Z" /></svg>');
--ifm-navbar-sidebar-width: 80vw;
}
.navbar {
// TODO: Add navbar-link-active
background-color: var(--ifm-navbar-background-color);
box-shadow: var(--ifm-navbar-shadow);
box-sizing: border-box;
display: flex;
height: var(--ifm-navbar-height);
padding: var(--ifm-navbar-padding-vertical)
var(--ifm-navbar-padding-horizontal);
width: 100%;
& > .container,
& > .container-fluid {
display: flex;
@media (--ifm-narrow-window) {
padding: 0;
}
}
&.navbar--fixed-top {
position: sticky;
top: 0;
z-index: var(--ifm-z-index-fixed);
}
& .navbar__inner {
align-items: stretch;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 100%;
}
& .navbar__brand {
align-items: center;
color: var(--ifm-navbar-link-color);
display: flex;
font-weight: bold;
height: 2rem;
margin-right: 1rem;
text-decoration: none;
}
& .navbar__title {
flex-shrink: 0;
max-width: 100%;
}
& .navbar__toggle {
cursor: pointer;
display: none;
margin-right: 0.5rem;
@media (--ifm-narrow-window) {
display: inherit;
}
}
& .navbar__logo {
height: 100%;
margin-right: 0.5rem;
}
& .navbar__items {
align-items: center;
display: flex;
flex: 1 1 auto;
&.navbar__items--center {
flex: 0 0 auto;
& .navbar__brand {
margin: 0;
}
}
&.navbar__items--right {
justify-content: flex-end;
}
}
& .navbar__item {
display: inline-block;
padding: var(--ifm-navbar-item-padding-vertical)
var(--ifm-navbar-item-padding-horizontal);
&.dropdown {
padding: 0;
& .navbar__link {
pointer-events: none;
}
}
@media (--ifm-narrow-window) {
display: none;
}
}
& .navbar__link {
color: var(--ifm-navbar-link-color);
cursor: pointer;
font-weight: var(--ifm-font-weight-semibold);
padding: var(--ifm-navbar-item-padding-vertical)
var(--ifm-navbar-item-padding-horizontal);
text-decoration: none;
&:hover,
&.navbar__link--active {
color: var(--ifm-navbar-link-hover-color);
}
}
&.navbar--dark {
--ifm-navbar-background-color: #303846;
--ifm-navbar-link-color: var(--ifm-color-white);
--ifm-navbar-link-hover-color: var(--ifm-color-primary);
--ifm-navbar-search-input-background-color: rgba(255, 255, 255, 0.1);
--ifm-navbar-search-input-color: var(--ifm-color-white);
--ifm-navbar-search-input-placeholder-color: rgba(255, 255, 255, 0.5);
background-color: var(--ifm-navbar-background-color); // @compat
// @compat
& .navbar__brand {
color: var(--ifm-navbar-link-color); // @compat
}
// @compat
& .navbar__link {
color: var(--ifm-navbar-link-color); // @compat
// @compat
&:hover {
color: var(--ifm-navbar-link-hover-color); // @compat
}
}
// @compat
& .navbar__search {
// @compat
& .navbar__search-input {
background-color: var(
--ifm-navbar-search-input-background-color
); // @compat
background-image: var(--ifm-navbar-search-input-icon); // @compat
color: var(--ifm-navbar-search-input-color); // @compat
// @compat
&::placeholder {
color: var(--ifm-navbar-search-input-placeholder-color); // @compat
}
}
}
}
&.navbar--primary {
--ifm-navbar-background-color: var(--ifm-color-primary);
--ifm-navbar-link-hover-color: var(--ifm-color-white);
--ifm-navbar-search-input-background-color: rgba(255, 255, 255, 0.1);
--ifm-navbar-search-input-color: var(--ifm-color-emphasis-500);
--ifm-navbar-search-input-placeholder-color: rgba(255, 255, 255, 0.5);
background-color: var(--ifm-navbar-background-color); // @compat
// @compat
& .navbar__link {
// @compat
&:hover {
color: var(--ifm-navbar-link-hover-color); // @compat
}
}
// @compat
& .navbar__search {
// @compat
& .navbar__search-input {
background-color: var(
--ifm-navbar-search-input-background-color
); // @compat
background-image: var(--ifm-navbar-search-input-icon); // @compat
color: var(--ifm-navbar-search-input-color); // @compat
// @compat
&::placeholder {
color: var(--ifm-navbar-search-input-placeholder-color); // @compat
}
}
}
}
& .navbar__search {
padding-left: var(--ifm-navbar-padding-horizontal);
& .navbar__search-input {
appearance: none; // Algolia will add type="search" to the input in Safari and Safari's styling will override the styling here.
background-color: var(--ifm-navbar-search-input-background-color);
background-image: var(--ifm-navbar-search-input-icon);
background-position-x: 0.75rem;
background-position-y: center;
background-repeat: no-repeat;
background-size: 1rem 1rem;
border-radius: 2rem;
border-width: 0;
cursor: text;
color: var(--ifm-navbar-search-input-color);
display: inline-block;
font-size: 0.9rem;
line-height: 2rem;
outline: none;
padding: 0 0.5rem 0 2.25rem;
width: 12.5rem;
&::placeholder {
color: var(--ifm-navbar-search-input-placeholder-color);
}
@media (--ifm-narrow-window) {
width: 9rem;
}
}
}
& .navbar-sidebar {
background-color: var(--ifm-navbar-background-color);
bottom: 0;
box-shadow: var(--ifm-global-shadow-md);
display: none;
left: 0;
position: fixed;
top: 0;
transform: translateX(-100%);
transition: transform var(--ifm-transition-fast) ease;
width: var(--ifm-navbar-sidebar-width);
overflow: auto;
@media (--ifm-narrow-window) {
display: block;
}
}
&.navbar-sidebar--show {
& .navbar-sidebar {
transform: translateX(0);
}
& .navbar-sidebar__backdrop {
display: block;
}
}
& .navbar-sidebar__backdrop {
background-color: rgba(0, 0, 0, 0.6);
bottom: 0;
display: none;
left: 0;
right: 0;
position: fixed;
top: 0;
}
& .navbar-sidebar__brand {
align-items: center;
box-shadow: var(--ifm-navbar-shadow);
display: flex;
height: var(--ifm-navbar-height);
padding: var(--ifm-navbar-padding-vertical)
var(--ifm-navbar-padding-horizontal);
}
& .navbar-sidebar__items {
padding: 0.5rem;
}
}