@conduction/components
Version:
React (Gatsby) components used within the Conduction Skeleton Application (and its implementations)
316 lines (259 loc) • 9.91 kB
CSS
:root {
--conduction-primary-top-nav-color: #4a4a4a;
--conduction-primary-top-nav-background-color: #ffffff;
--conduction-primary-top-nav-toggle-icon-size: 24px;
--conduction-primary-top-nav-mobile-logo-padding: 18px;
--conduction-primary-top-nav-item-padding: 18px;
--conduction-primary-top-nav-item-icon-margin: var(--skeleton-size-2x);
/* --conduction-primary-top-nav-item-border-radius: var(--skeleton-size-2x); */
/* --conduction-primary-top-nav-current-background-color: #ffffff; */
/* --conduction-primary-top-nav-current-color: #4376fc; */
/* --conduction-primary-top-nav-current-box-shadow: inset 0 -4px black; */
/* --conduction-primary-top-nav-current-mobile-box-shadow: inset 4px 0 black; */
/* --conduction-primary-top-nav-hover-color: #4376fc; */
/* --conduction-primary-top-nav-hover-background-color: #ffffff; */
/* --conduction-primary-top-nav-hover-box-shadow: inset 0 -4px black; */
/* --conduction-primary-top-nav-dropdown-color: #4a4a4a; */
/* --conduction-primary-top-nav-dropdown-background-color: var(--skeleton-color-white); */
/* --conduction-primary-top-nav-dropdown-border-width: 1px; */
/* --conduction-primary-top-nav-dropdown-border-style: solid; */
/* --conduction-primary-top-nav-dropdown-border-color: #4376fc; */
/* --conduction-primary-top-nav-dropdown-hover-color: #4376fc; */
/* --conduction-primary-top-nav-dropdown-hover-background-color: #ffffff; */
/* --conduction-primary-top-nav-dropdown-hover-box-shadow: inset 0 -4px black; */
/* --conduction-primary-top-nav-dropdown-item-border-bottom-width: 4px;
--conduction-primary-top-nav-dropdown-item-border-bottom-style: solid;
--conduction-primary-top-nav-dropdown-item-border-bottom-color: #4376fc; */
/* --conduction-primary-top-nav-container-padding-block-end: 18px; */
/* --conduction-primary-top-nav-container-padding-block-start: 18px; */
/* --conduction-primary-top-nav-container-padding-inline-end: 18px; */
/* --conduction-primary-top-nav-container-padding-inline-start: 18px; */
/* --conduction-primary-top-nav-list-gap: var(--skeleton-size-2x); */
}
.container {
width: 100%;
padding-block-end: var(--conduction-primary-top-nav-container-padding-block-end);
padding-block-start: var(--conduction-primary-top-nav-container-padding-block-start);
padding-inline-end: var(--conduction-primary-top-nav-container-padding-inline-end);
padding-inline-start: var(--conduction-primary-top-nav-container-padding-inline-start);
}
.menuToggleContainer {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
}
.menuToggleContainer > .menuToggle {
all: unset;
font-size: var(--conduction-primary-top-nav-toggle-icon-size);
padding: var(--conduction-primary-top-nav-mobile-logo-padding);
color: var(--conduction-primary-top-nav-color);
}
.menuToggleContainer > .menuToggle:hover {
cursor: pointer;
}
.primary {
display: none;
}
.primary.isOpen {
display: block;
}
.menuToggleContainer {
width: 100%;
}
.primary {
font-weight: 500;
width: 100%;
background-color: var(--conduction-primary-top-nav-background-color);
}
.primary:hover {
cursor: pointer;
}
.ul {
margin: unset;
padding-inline-start: unset;
align-items: center;
max-height: 80vh;
overflow-y: scroll;
border-color: var(--conduction-primary-top-nav-list-border-color);
border-style: var(--conduction-primary-top-nav-list-border-style);
border-width: var(--conduction-primary-top-nav-list-border-width);
gap: var(--conduction-primary-top-nav-list-gap);
}
.li {
list-style-type: none;
display: block;
position: relative;
transition: var(--conduction-primary-top-nav-item-transition);
padding-inline-start: var(--conduction-primary-top-nav-item-padding);
padding-inline-end: var(--conduction-primary-top-nav-item-padding);
padding-block-start: var(--conduction-primary-top-nav-item-padding);
padding-block-end: var(--conduction-primary-top-nav-item-padding);
border-radius: var(--conduction-primary-top-nav-item-border-radius);
border-color: var(--conduction-primary-top-nav-item-border-color);
border-style: var(--conduction-primary-top-nav-item-border-style);
border-width: var(--conduction-primary-top-nav-item-border-width);
}
.li:hover {
background-color: var(--conduction-primary-top-nav-hover-background-color);
box-shadow: var(--conduction-primary-top-nav-hover-box-shadow, inherit);
}
.current {
background-color: var(--conduction-primary-top-nav-current-background-color);
box-shadow: var(--conduction-primary-top-nav-current-box-shadow);
}
.current:hover {
box-shadow: var(--conduction-primary-top-nav-current-hover-box-shadow, var(--conduction-primary-top-nav-current-box-shadow));
}
.current:hover > .currentLink {
color: var(--conduction-primary-top-nav-hover-color) ;
}
.currentLink {
color: var(--conduction-primary-top-nav-current-color) ;
font-weight: var(--conduction-primary-top-nav-current-font-weight);
}
.currentLink svg path {
fill: var(--conduction-primary-top-nav-current-color) ;
}
.dropdownCurrent {
background-color: var(--conduction-primary-top-nav-dropdown-current-background-color, var(--conduction-primary-top-nav-current-background-color));
box-shadow: var(--conduction-primary-top-nav-dropdown-current-box-shadow, var(--conduction-primary-top-nav-current-box-shadow));
}
.dropdownCurrent:hover {
box-shadow: var(--conduction-primary-top-nav-dropdown-current-box-shadow) ;
}
.dropdownCurrent:hover > .dropdownCurrentLink {
color: var(--conduction-primary-top-nav-dropdown-hover-color, var(--conduction-primary-top-nav-hover-color)) ;
font-weight: var(--conduction-primary-top-nav-dropdown-current-font-weight) ;
}
.dropdownCurrentLink {
color: var(--conduction-primary-top-nav-dropdown-current-color, var(--conduction-primary-top-nav-current-color)) ;
font-weight: var(--conduction-primary-top-nav-dropdown-current-font-weight);
}
.dropdownCurrentLink svg path {
fill: var(--conduction-primary-top-nav-dropdown-current-color, var(--conduction-primary-top-nav-current-color)) ;
}
.mobileLink {
margin-block-end: 18px;
}
.primary .link {
text-decoration: none;
text-overflow: ellipsis;
display: block;
overflow: hidden;
max-width: 100%;
white-space: nowrap;
}
.primary .link:not(.currentLink) {
display: block;
color: var(--conduction-primary-top-nav-color);
}
.primary .link:not(.currentLink) svg path {
fill: var(--conduction-primary-top-nav-color);
}
.primary .li:hover > .link {
color: var(--conduction-primary-top-nav-hover-color);
font-weight: var(--conduction-primary-top-nav-hover-font-weight);
}
.primary .li:hover svg path {
fill: var(--conduction-primary-top-nav-hover-color);
}
.link > * {
margin-inline-end: 8px;
}
.dropdown {
left: 0;
top: 100%;
padding: 0;
width: 100%;
display: none;
list-style-type: none;
background-color: var(--conduction-primary-top-nav-dropdown-background-color, var(--conduction-primary-top-nav-background-color));
width: fit-content;
max-width: 200px;
}
.dropdownOverflow {
display: none;
max-height: 430px;
overflow-y: scroll;
border: 1px solid rgba(0, 0, 0, 0.2);
}
.dropdown.isOpen {
display: block;
}
.li.current {
box-shadow: var(--conduction-primary-top-nav-current-mobile-box-shadow);
}
.primary .dropdown .li .link {
color: var(--conduction-primary-top-nav-dropdown-color, var(--conduction-primary-top-nav-color));
}
.primary .dropdown .li:hover .link {
color: var(--conduction-primary-top-nav-dropdown-hover-color, var(--conduction-primary-top-nav-hover-color));
font-weight: var(--conduction-primary-top-nav-dropdown-hover-font-weight);
}
.dropdown .li:hover {
background: var(--conduction-primary-top-nav-dropdown-hover-background-color, var(--conduction-primary-top-nav-hover-background-color));
box-shadow: var(--conduction-primary-top-nav-dropdown-hover-box-shadow, var(--conduction-primary-top-nav-hover-box-shadow));
}
.dropdown > li {
padding-inline-start: 18px;
font-weight: var(--conduction-primary-top-nav-dropdown-font-weight);
border-bottom-width: var(--conduction-primary-top-nav-dropdown-item-border-bottom-width);
border-bottom-style: var(--conduction-primary-top-nav-dropdown-item-border-bottom-style);
border-bottom-color: var(--conduction-primary-top-nav-dropdown-item-border-bottom-color);
}
.toggleIcon {
margin-inline-start: var(--skeleton-size-xs);
transition: transform 100ms ease-in-out;
}
.toggleIcon.isOpen {
transform: rotate(90deg);
transition: transform 100ms ease-in-out;
}
.label {
overflow: hidden;
max-width: 37ch;
text-overflow: ellipsis;
white-space: nowrap;
}
.label > :not(:last-child) {
margin-inline-end: var(--conduction-primary-top-nav-item-icon-margin);
}
.li:hover .dropdown {
display: block;
z-index: 1;
}
:not(.dropdown) .li.current:hover {
box-shadow: var(--conduction-primary-top-nav-current-hover-box-shadow, var(--conduction-primary-top-nav-current-box-shadow));
font-weight: var(--conduction-primary-top-nav-current-hover-font-weight, var(--conduction-primary-top-nav-current-font-weight));
}
@media only screen and (min-width: 992px) {
.container {
width: fit-content;
}
.primary {
display: block;
width: fit-content;
}
.ul {
display: flex;
overflow-y: unset;
}
.dropdown {
position: absolute;
display: none;
border-width: var(--conduction-primary-top-nav-dropdown-border-width);
border-style: var(--conduction-primary-top-nav-dropdown-border-style);
border-color: var(--conduction-primary-top-nav-dropdown-border-color);
border-top: none;
}
.menuToggleContainer {
display: none;
}
.mobileLink {
margin-block-end: unset;
}
.li.current {
box-shadow: var(--conduction-primary-top-nav-current-box-shadow);
}
}