Дизайн
Вёрстка макетов дизайна для сайта
Качественная верстка не просто переносит в браузер то, что нарисовал дизайнер, она также формирует основу успеха поискового продвижения вашего будущего сайта.
<html lang="ru" data-theme="light"> или <html lang="ru" data-theme="dark"> <head>
<meta charset="utf-8">
<!-- Цвет шапки браузера в светлой теме -->
<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)">
<!-- Цвет шапки браузера в тёмной теме -->
<meta name="theme-color" content="#121212" media="(prefers-color-scheme: dark)">
</head> :root {
--bg: #ffffff;
--bg-soft: #f5f5f5;
--text: #1a1a1a;
--text-muted: #6b7280;
--accent: #2563eb;
--border: #e5e7eb;
}
:root[data-theme="dark"] {
--bg: #121212; /* не чистый чёрный, а глубокий тёмный фон */
--bg-soft: #1e1e1e; /* приподнятые блоки чуть светлее фона */
--text: #e0e0e0; /* светлый текст с комфортным контрастом */
--text-muted: #9ca3af;
--accent: #3b82f6; /* тот же акцент, но без неонового блеска */
--border: #333333;
} body {
margin: 0;
background-color: var(--bg);
color: var(--text);
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
transition: background-color 0.2s ease, color 0.2s ease;
}
.card {
background-color: var(--bg-soft);
border: 1px solid var(--border);
border-radius: 8px;
padding: 16px;
}
button {
background-color: var(--accent);
color: #ffffff;
border: none;
border-radius: 6px;
padding: 8px 16px;
cursor: pointer;
} @media (prefers-color-scheme: dark) {
:root {
--bg: #121212;
--bg-soft: #1e1e1e;
--text: #e0e0e0;
--text-muted: #9ca3af;
--accent: #3b82f6;
--border: #333333;
}
} const saved = localStorage.getItem('theme');
if (saved === 'light' || saved === 'dark') {
document.documentElement.setAttribute('data-theme', saved);
} else {
const systemDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
document.documentElement.setAttribute('data-theme', systemDark ? 'dark' : 'light');
} const systemDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
document.documentElement.setAttribute('data-theme', systemDark ? 'dark' : 'light'); const media = window.matchMedia('(prefers-color-scheme: dark)');
media.addEventListener('change', (event) => {
const saved = localStorage.getItem('theme');
// если пользователь уже явно выбрал тему — ничего не делаем
if (saved === 'light' || saved === 'dark') return;
const theme = event.matches ? 'dark' : 'light';
document.documentElement.setAttribute('data-theme', theme);
}); <button id="theme-toggle" type="button">Переключить тему</button> function toggleTheme() {
const current = document.documentElement.getAttribute('data-theme');
const next = current === 'light' ? 'dark' : 'light';
document.documentElement.setAttribute('data-theme', next);
localStorage.setItem('theme', next);
} Сейчас используется системная тема. Сайт просто следует вашему устройству.
Ссылка, которая не спорит с темой