Добавлено переключение темы и улучшены стили кнопок в хедере

This commit is contained in:
2026-04-19 10:42:45 +03:00
parent 195add8230
commit 201ae9300a
2 changed files with 173 additions and 5 deletions

View File

@@ -136,6 +136,72 @@ body {
border-bottom-color: color-mix(in srgb, var(--sl-color-hairline) 92%, transparent);
}
/* Приводим мобильную кнопку меню/закрытия к стилю веб-иконок в хедере. */
starlight-menu-button button {
border: 1px solid color-mix(in srgb, var(--sl-color-hairline) 82%, transparent) !important;
border-radius: 50% !important;
width: 2.25rem !important;
height: 2.25rem !important;
top: calc((var(--sl-nav-height) - 2.25rem) / 2) !important;
padding: 0 !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
background: color-mix(in srgb, var(--sl-color-bg-nav) 88%, transparent) !important;
color: var(--sl-color-gray-2) !important;
box-shadow: 0 0 0 1px color-mix(in srgb, var(--sl-color-hairline) 28%, transparent) !important;
transition: border-color 160ms ease, background 160ms ease, color 160ms ease, box-shadow 160ms ease,
transform 160ms ease !important;
}
starlight-menu-button button .open-menu,
starlight-menu-button button .close-menu {
display: none !important;
}
starlight-menu-button button::before {
content: '';
display: block;
width: 1.1rem;
text-align: center;
line-height: 1;
font-weight: 600;
}
starlight-menu-button[aria-expanded='true'] button::before {
content: '✕';
font-size: 1.08rem;
letter-spacing: 0;
transform: none;
}
starlight-menu-button:not([aria-expanded='true']) button::before {
content: '⋯';
font-size: 1.25rem;
letter-spacing: 0;
transform: none;
}
starlight-menu-button button:hover {
border-color: color-mix(in srgb, var(--sl-color-accent) 42%, transparent) !important;
background: color-mix(in srgb, var(--sl-color-accent-low) 56%, transparent) !important;
color: var(--sl-color-white) !important;
transform: translateY(-1px) scale(1.02) !important;
box-shadow:
0 0 0 1px color-mix(in srgb, var(--sl-color-accent) 24%, transparent),
0 6px 14px color-mix(in srgb, var(--sl-color-accent) 22%, transparent) !important;
}
[data-mobile-menu-expanded] starlight-menu-button button {
border-color: color-mix(in srgb, var(--sl-color-accent) 52%, transparent) !important;
background: color-mix(in srgb, var(--sl-color-accent-low) 72%, transparent) !important;
color: var(--sl-color-white) !important;
box-shadow:
0 0 0 1px color-mix(in srgb, var(--sl-color-accent) 24%, transparent),
0 6px 14px color-mix(in srgb, var(--sl-color-accent) 22%, transparent),
0 0 16px color-mix(in srgb, var(--sl-color-accent) 20%, transparent) !important;
}
.sidebar-pane {
background:
radial-gradient(circle at 8% -4%, color-mix(in srgb, var(--wiki-purple-2) 7%, transparent), transparent 38%),
@@ -391,6 +457,57 @@ starlight-toc a[aria-current='true']::before {
transform: scaleY(1);
}
starlight-theme-select label {
--sl-select-width: 2.3rem !important;
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.3rem;
height: 2.3rem;
padding: 0;
border: 1px solid color-mix(in srgb, var(--sl-color-hairline) 72%, transparent);
border-radius: 50%;
background: color-mix(in srgb, var(--sl-color-bg-nav) 88%, transparent);
color: var(--sl-color-gray-2);
transition: border-color 160ms ease, background 160ms ease, color 160ms ease, box-shadow 160ms ease,
transform 160ms ease;
}
/* Убираем стандартный выпадающий селект темы (Тёмная/Светлая/Авто). */
starlight-theme-select {
display: none !important;
}
starlight-theme-select label:hover {
border-color: color-mix(in srgb, var(--sl-color-accent) 42%, transparent);
background: color-mix(in srgb, var(--sl-color-accent-low) 56%, transparent);
color: var(--sl-color-white);
transform: translateY(-1px);
box-shadow: 0 6px 14px color-mix(in srgb, var(--sl-color-accent) 18%, transparent);
}
starlight-theme-select .label-icon {
width: 1.1rem;
height: 1.1rem;
color: #6eead8;
}
:root[data-theme='light'] starlight-theme-select .label-icon {
color: #2e6b57;
}
starlight-theme-select select {
position: absolute;
inset: 0;
opacity: 0;
cursor: pointer;
}
starlight-theme-select .caret {
display: none;
}
.starlight-aside {
border-radius: 0.2rem;
border-inline-start-width: 0.26rem;
@@ -508,6 +625,29 @@ starlight-toc a[aria-current='true']::before {
}
@media (max-width: 50rem) {
.wiki-header {
gap: 0.5rem;
}
/* Освобождаем место под фиксированную кнопку меню, чтобы поиск не заезжал под нее. */
.wiki-header > div:nth-child(2) {
flex: 1;
min-width: 0;
margin-inline-end: 2.9rem;
}
.wiki-header > div:nth-child(2) site-search {
width: 100%;
}
.wiki-read-progress {
top: var(--sl-nav-height);
}
:root[data-mobile-menu-expanded] .wiki-read-progress {
display: none;
}
.main-frame {
padding-inline: 0.56rem;
}