@zohodesk/docs-builder
Version:
docs-builder is used to build your own docs
356 lines (304 loc) • 6.58 kB
CSS
/* Shuttle Theme - Main sidebar container */
.sidebar {
width: 280px;
height: 100vh;
background: #081224;
/* Darker deep space blue */
color: #e0e7ff;
/* Lighter text for better contrast */
display: flex;
flex-direction: column;
box-shadow: 0 0 20px rgba(0, 10, 50, 0.5);
/* Subtle space glow */
transition: all 0.3s ease;
overflow: hidden;
flex-shrink: 0;
}
.sidebarContent {
display: flex;
flex-direction: column;
height: 100%;
}
/* Logo section */
.logoContainer {
display: flex;
align-items: center;
padding: 18px;
background: #081224;
/* Darker than main background */
/* border-bottom: 1px solid rgba(100, 150, 255, 0.15); */
/* Subtle blue border */
text-decoration: none;
color: inherit;
}
.logo {
width: 28px;
height: 28px;
object-fit: contain;
filter: drop-shadow(0 0 3px rgba(120, 190, 255, 0.6));
/* Subtle glow effect */
}
.docsVersion {
margin-left: 12px;
font-size: 14px;
font-weight: 500;
color: #a0b8d8;
/* Softer blue-gray */
flex-grow: 1;
}
.homeIcon {
font-size: 16px;
color: #64b5f6;
/* Bright blue */
opacity: 0.9;
transition: opacity 0.2s ease, transform 0.3s ease;
}
.logoContainer:hover .homeIcon {
opacity: 1;
transform: scale(1.1);
}
/* Navigation container */
.navigationContainer {
display: flex;
flex-direction: column;
flex-grow: 1;
overflow: hidden;
}
/* Search section */
.searchContainer {
position: relative;
padding: 16px;
background: #081224;
}
.searchInput {
width: 100%;
padding: 10px 36px;
border-radius: 20px;
/* Rounded like a porthole */
border: 1px solid rgba(100, 150, 255, 0.2);
background: rgba(15, 30, 60, 0.4);
/* Deeper blue with transparency */
color: #e0e7ff;
font-size: 14px;
outline: none;
transition: all 0.3s ease;
}
.searchInput:focus {
border-color: #64b5f6;
box-shadow: 0 0 0 3px rgba(100, 181, 246, 0.2), 0 0 15px rgba(100, 181, 246, 0.1);
}
.searchInput::placeholder {
color: rgba(160, 184, 216, 0.6);
}
.searchIcon {
position: absolute;
left: 26px;
top: 50%;
transform: translateY(-50%);
color: rgba(160, 184, 216, 0.7);
font-size: 14px;
}
.clearButton {
position: absolute;
right: 26px;
top: 50%;
transform: translateY(-50%);
background: none;
border: none;
color: rgba(160, 184, 216, 0.7);
cursor: pointer;
font-size: 12px;
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
border-radius: 50%;
transition: all 0.2s ease;
}
.clearButton:hover {
background: rgba(100, 150, 255, 0.15);
color: #e0e7ff;
}
/* Component list */
.componentList {
flex-grow: 1;
overflow-y: auto;
padding: 10px 0;
}
.componentList::-webkit-scrollbar {
width: 5px;
}
.componentList::-webkit-scrollbar-track {
background: rgba(15, 30, 60, 0.2);
border-radius: 3px;
}
.componentList::-webkit-scrollbar-thumb {
background-color: rgba(100, 150, 255, 0.3);
border-radius: 3px;
}
.componentList::-webkit-scrollbar-thumb:hover {
background-color: rgba(100, 150, 255, 0.5);
}
/* Folder styling */
.folder {
margin-bottom: 3px;
}
.folderHeader {
display: flex;
align-items: center;
padding: 12px 16px;
cursor: pointer;
transition: all 0.2s ease;
border-radius: 0 8px 8px 0;
margin-right: 8px;
}
.folderHeader:hover {
background: rgba(100, 150, 255, 0.1);
}
.folder.folderOpen>.folderHeader {
background: rgba(100, 150, 255, 0.15);
}
.folderIcon {
color: #90caf9;
/* Lighter blue */
font-size: 14px;
margin-right: 12px;
transition: transform 0.2s ease;
}
.folder.folderOpen .folderIcon {
transform: translateY(-1px);
}
.folderName {
flex-grow: 1;
font-size: 14px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.itemCount {
background: rgba(100, 150, 255, 0.15);
color: rgba(224, 231, 255, 0.8);
border-radius: 12px;
font-size: 11px;
padding: 2px 8px;
margin-right: 8px;
}
.chevron {
font-size: 10px;
color: rgba(160, 184, 216, 0.8);
transition: transform 0.3s ease;
}
.chevronOpen {
transform: rotate(90deg);
}
/* Group styling */
.groupsContainer {
padding-left: 12px;
}
.groupHeader {
display: flex;
align-items: center;
padding: 10px 16px;
cursor: pointer;
transition: all 0.2s ease;
border-radius: 0 8px 8px 0;
margin-right: 8px;
}
.groupHeader:hover {
background: rgba(100, 150, 255, 0.08);
}
.group.groupOpen>.groupHeader {
background: rgba(100, 150, 255, 0.12);
}
.groupIcon {
color: rgba(160, 184, 216, 0.9);
font-size: 12px;
margin-right: 12px;
}
.groupName {
flex-grow: 1;
font-size: 13px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* Component styling */
.componentsContainer {
padding-left: 12px;
}
.component {
display: flex;
align-items: center;
padding: 8px 16px 8px 28px;
cursor: pointer;
transition: all 0.2s ease;
border-radius: 0 8px 8px 0;
margin: 2px 8px 2px 0;
}
.component:hover {
background: rgba(100, 150, 255, 0.1);
}
.componentActive {
background: linear-gradient(90deg, #64b5f6, #42a5f5);
/* Gradient for active state */
color: #000;
box-shadow: 0 2px 8px rgba(66, 165, 245, 0.4);
}
.componentActive:hover {
background: linear-gradient(90deg, #64b5f6, #42a5f5);
}
.componentIcon {
color: #90caf9;
/* React blue */
font-size: 13px;
margin-right: 10px;
transition: transform 0.2s ease;
}
.component:hover .componentIcon {
transform: rotate(20deg);
}
.componentActive .componentIcon {
color: #000;
}
.componentName {
font-size: 13px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* Animation for transitions */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(-3px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.groupsContainer,
.componentsContainer {
animation: fadeIn 0.3s ease-out;
}
/* Subtle hover pulse animation */
@keyframes pulse {
0% {
transform: scale(1);
}
50% {
transform: scale(1.01);
}
100% {
transform: scale(1);
}
}
.component:hover {
animation: pulse 1s infinite;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.sidebar {
width: 240px;
}
}