176 lines
3.3 KiB
CSS
176 lines
3.3 KiB
CSS
/* Lukenya Marathon — shared left sidebar.
|
|
* Loaded once on every Desk page (see hooks.py: app_include_css).
|
|
* Matches the markup from public/js/lukenya_navigation.js (lukenya.nav.render).
|
|
* Do not copy these rules into individual page .css files — if the sidebar
|
|
* needs to change, change it here and every page picks it up.
|
|
*/
|
|
|
|
.lm-side,
|
|
.lm-side * {
|
|
box-sizing: border-box;
|
|
}
|
|
.lm-side :where(button) {
|
|
font: inherit;
|
|
color: inherit;
|
|
cursor: pointer;
|
|
}
|
|
.lm-side .lm-ico {
|
|
flex: none;
|
|
}
|
|
|
|
.lm-side {
|
|
--lm-primary: #0f9818;
|
|
--lm-primary-ink: #ffffff;
|
|
--lm-side-top: #06381c;
|
|
--lm-side-bottom: #0a5c2a;
|
|
--lm-side-ink: #c9d4ea;
|
|
--lm-radius: 14px;
|
|
--lm-radius-sm: 10px;
|
|
|
|
position: sticky;
|
|
top: var(--navbar-height, 48px);
|
|
height: calc(100vh - var(--navbar-height, 48px));
|
|
width: 248px;
|
|
flex: none;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
padding: 20px 14px;
|
|
background: linear-gradient(180deg, var(--lm-side-top), var(--lm-side-bottom));
|
|
color: var(--lm-side-ink);
|
|
}
|
|
|
|
.lm-brand {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 0 8px 18px;
|
|
color: #fff;
|
|
}
|
|
.lm-brand__mark {
|
|
display: grid;
|
|
place-items: center;
|
|
width: 38px;
|
|
height: 38px;
|
|
border-radius: 10px;
|
|
background: transparent;
|
|
color: #fff;
|
|
}
|
|
.lm-brand__mark img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: contain;
|
|
}
|
|
.lm-brand__name {
|
|
font-size: 15px;
|
|
white-space: nowrap;
|
|
font-weight: 700;
|
|
letter-spacing: 0.1px;
|
|
}
|
|
|
|
.lm-nav {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
}
|
|
.lm-nav__item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
width: 100%;
|
|
padding: 11px 14px;
|
|
border: 0;
|
|
border-radius: var(--lm-radius-sm);
|
|
background: transparent;
|
|
color: var(--lm-side-ink);
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
text-align: left;
|
|
transition: background-color 0.15s ease, color 0.15s ease;
|
|
}
|
|
.lm-nav__item:hover {
|
|
background: rgba(255, 255, 255, 0.07);
|
|
color: #fff;
|
|
}
|
|
.lm-nav__item.is-active {
|
|
background: var(--lm-primary);
|
|
color: var(--lm-primary-ink);
|
|
box-shadow: 0 6px 16px rgba(15, 152, 24, 0.35);
|
|
}
|
|
.lm-nav__item.is-soon {
|
|
opacity: 0.55;
|
|
cursor: not-allowed;
|
|
}
|
|
.lm-nav__item.is-soon:hover {
|
|
background: transparent;
|
|
color: var(--lm-side-ink);
|
|
}
|
|
|
|
.lm-side__workspace {
|
|
margin: auto 0 0;
|
|
padding: 9px 14px;
|
|
border: 1px solid rgba(255, 255, 255, 0.16);
|
|
border-radius: var(--lm-radius-sm);
|
|
background: transparent;
|
|
color: var(--lm-side-ink);
|
|
font-size: 13px;
|
|
transition: background-color 0.15s ease;
|
|
}
|
|
.lm-side__workspace:hover {
|
|
background: rgba(255, 255, 255, 0.07);
|
|
}
|
|
|
|
.lm-side__promo {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
min-height: 120px;
|
|
padding: 14px;
|
|
border-radius: var(--lm-radius);
|
|
background:
|
|
linear-gradient(180deg, rgba(6, 56, 28, 0) 30%, rgba(6, 56, 28, 0.9)),
|
|
linear-gradient(160deg, #1c7a3a 0%, #0a3d1e 100%);
|
|
color: #fff;
|
|
}
|
|
.lm-side__promo p {
|
|
margin: 0;
|
|
font-size: 14px;
|
|
font-weight: 700;
|
|
line-height: 1.3;
|
|
max-width: 9em;
|
|
}
|
|
|
|
.lm-side :is(button):focus-visible {
|
|
outline: 2px solid #fff;
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.lm-side {
|
|
position: static;
|
|
height: auto;
|
|
width: 100%;
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
padding: 12px;
|
|
}
|
|
.lm-brand {
|
|
padding: 0 8px 0 0;
|
|
}
|
|
.lm-nav {
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
}
|
|
.lm-nav__item span {
|
|
display: none;
|
|
}
|
|
.lm-nav__item {
|
|
width: auto;
|
|
padding: 10px;
|
|
}
|
|
.lm-side__workspace,
|
|
.lm-side__promo {
|
|
display: none;
|
|
}
|
|
}
|