feat(i18n): move language switcher into footer, restyle laconic
- remove {{> lang-switch}} from header-home/case/minimal
- add {{> lang-switch}} to footer
- restyle .lang-switch as compact text group 'RU / EN' (active = accent),
drop pill borders/background for a minimal look
This commit is contained in:
1 parent
e02ce1c629
commit
20ee81bfaf
43 files changed
+832
-829
No files matched your search
@@ -184,25 +184,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="#contact">Контакты</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -393,13 +374,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -209,25 +209,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="#contact">Контакты</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -1047,13 +1028,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -219,25 +219,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="#contact">Контакты</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -1177,13 +1158,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -209,25 +209,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="#contact">Контакты</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -1211,13 +1192,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -275,25 +275,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="#contact">Контакты</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -785,13 +766,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -452,25 +452,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="../../">На главную</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -1098,13 +1079,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -200,25 +200,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="#contact">Контакты</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -999,13 +980,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -177,25 +177,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="#contact">Контакты</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -741,13 +722,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -393,25 +393,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="../../">На главную</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -1255,13 +1236,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -177,25 +177,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="#contact">Контакты</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -741,13 +722,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -184,25 +184,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="#contact">Контакты</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -775,13 +756,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -196,25 +196,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="#contact">Контакты</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -880,13 +861,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -184,25 +184,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="#contact">Контакты</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -393,13 +374,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -177,25 +177,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="#contact">Контакты</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -741,13 +722,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -199,25 +199,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="#contact">Контакты</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -1169,13 +1150,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -182,25 +182,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="../../">На главную</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -1133,13 +1114,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -156,25 +156,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="../">На главную</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -341,13 +322,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
+21
-16
@@ -563,40 +563,45 @@ a:visited:not(.btn):not(.fab):not(.logo):not(.skip-link):hover {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
/* Переключатель языка в шапке: компактные pill-кнопки RU/EN */
|
||||
/* Переключатель языка в футере: лаконичная текстовая группа RU / EN */
|
||||
.lang-switch {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.15rem;
|
||||
margin-left: 0.35rem;
|
||||
font-size: 0.8rem;
|
||||
gap: 0.45rem;
|
||||
font-size: 0.78rem;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.lang-switch__btn {
|
||||
appearance: none;
|
||||
border: 1px solid var(--v12-glass-neutral-border);
|
||||
background: var(--v12-glass-neutral-bg);
|
||||
color: var(--text-muted);
|
||||
border-radius: 999px;
|
||||
padding: 0.22rem 0.55rem;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
background: none;
|
||||
font: inherit;
|
||||
font-weight: 600;
|
||||
line-height: 1;
|
||||
cursor: pointer;
|
||||
letter-spacing: 0.04em;
|
||||
color: var(--text-muted);
|
||||
text-decoration: none;
|
||||
transition: color 0.15s ease, border-color 0.15s ease, background 0.2s ease;
|
||||
cursor: pointer;
|
||||
transition: color 0.15s ease;
|
||||
}
|
||||
|
||||
.lang-switch__btn:hover,
|
||||
.lang-switch__btn:focus-visible {
|
||||
color: var(--text);
|
||||
border-color: color-mix(in srgb, var(--accent) 45%, var(--v12-glass-neutral-border));
|
||||
}
|
||||
|
||||
.lang-switch__btn[aria-current="true"] {
|
||||
color: var(--on-accent);
|
||||
background: var(--accent);
|
||||
border-color: var(--accent);
|
||||
color: var(--accent);
|
||||
}
|
||||
|
||||
/* разделитель между языками */
|
||||
.lang-switch__btn:not(:last-child)::after {
|
||||
content: "/";
|
||||
margin-left: 0.45rem;
|
||||
color: var(--border);
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.header__cluster {
|
||||
|
||||
@@ -179,30 +179,11 @@
|
||||
<a class="skip-link" href="#case-main">Skip to case content</a>
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="#contact">Contact</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -392,14 +373,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -204,30 +204,11 @@
|
||||
<a class="skip-link" href="#case-main">Skip to case content</a>
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="#contact">Contact</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -1038,14 +1019,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -214,30 +214,11 @@
|
||||
<a class="skip-link" href="#case-main">Skip to case content</a>
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="#contact">Contact</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -1168,14 +1149,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -204,30 +204,11 @@
|
||||
<a class="skip-link" href="#case-main">Skip to case content</a>
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="#contact">Contact</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -1202,14 +1183,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -270,30 +270,11 @@
|
||||
<a class="skip-link" href="#case-main">Skip to case content</a>
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="#contact">Contact</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -784,14 +765,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -447,30 +447,11 @@
|
||||
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="../../../">Home</a>
|
||||
<a href="../../">Home</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -532,7 +513,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a class="fab fab--primary" href="../../../#contact" aria-label="Связаться">
|
||||
<a class="fab fab--primary" href="../../#contact" aria-label="Связаться">
|
||||
<span class="fab-primary__ico" aria-hidden="true"></span>
|
||||
</a>
|
||||
</div>
|
||||
@@ -874,9 +855,9 @@
|
||||
</ul>
|
||||
<p class="section__prose">
|
||||
Навыки: мозаика на широком экране — см.
|
||||
<a href="../../../#skills">главную, #skills</a>. Портфолио: карусель на
|
||||
<a href="../../#skills">главную, #skills</a>. Портфолио: карусель на
|
||||
<code>100vw</code> с <code>--projects-card-width</code> и JS-прокруткой — на главной
|
||||
<a href="../../../#projects">#projects</a>.
|
||||
<a href="../../#projects">#projects</a>.
|
||||
</p>
|
||||
|
||||
<h3>Wide в кейсах</h3>
|
||||
@@ -1097,14 +1078,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -195,30 +195,11 @@
|
||||
<a class="skip-link" href="#case-main">Skip to case content</a>
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="#contact">Contact</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -990,14 +971,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -172,30 +172,11 @@
|
||||
<a class="skip-link" href="#case-main">Skip to case content</a>
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="#contact">Contact</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -732,14 +713,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -388,30 +388,11 @@
|
||||
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="../../../">Home</a>
|
||||
<a href="../../">Home</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -473,7 +454,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a class="fab fab--primary" href="../../../#contact" aria-label="Связаться">
|
||||
<a class="fab fab--primary" href="../../#contact" aria-label="Связаться">
|
||||
<span class="fab-primary__ico" aria-hidden="true"></span>
|
||||
</a>
|
||||
</div>
|
||||
@@ -1254,14 +1235,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -172,30 +172,11 @@
|
||||
<a class="skip-link" href="#case-main">Skip to case content</a>
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="#contact">Contact</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -732,14 +713,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -179,30 +179,11 @@
|
||||
<a class="skip-link" href="#case-main">Skip to case content</a>
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="#contact">Contact</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -766,14 +747,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -191,30 +191,11 @@
|
||||
<a class="skip-link" href="#case-main">Skip to case content</a>
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="#contact">Contact</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -871,14 +852,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -179,30 +179,11 @@
|
||||
<a class="skip-link" href="#case-main">Skip to case content</a>
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="#contact">Contact</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -392,14 +373,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -172,30 +172,11 @@
|
||||
<a class="skip-link" href="#case-main">Skip to case content</a>
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="#contact">Contact</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -732,14 +713,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -194,30 +194,11 @@
|
||||
<a class="skip-link" href="#case-main">Skip to case content</a>
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="#contact">Contact</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -1160,14 +1141,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -177,30 +177,11 @@
|
||||
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="../../../">Home</a>
|
||||
<a href="../../">Home</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -262,7 +243,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a class="fab fab--primary" href="../../../#contact" aria-label="Связаться">
|
||||
<a class="fab fab--primary" href="../../#contact" aria-label="Связаться">
|
||||
<span class="fab-primary__ico" aria-hidden="true"></span>
|
||||
</a>
|
||||
</div>
|
||||
@@ -1125,14 +1106,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
@@ -151,30 +151,11 @@
|
||||
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="../../">Home</a>
|
||||
<a href="../">Home</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -236,7 +217,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a class="fab fab--primary" href="../../#contact" aria-label="Связаться">
|
||||
<a class="fab fab--primary" href="../#contact" aria-label="Связаться">
|
||||
<span class="fab-primary__ico" aria-hidden="true"></span>
|
||||
</a>
|
||||
</div>
|
||||
@@ -277,7 +258,7 @@
|
||||
|
||||
<strong>Nikolai Mamadaev</strong>
|
||||
is the operator of the Site. For questions regarding data processing, please use the contact information in the “Contacts” section on
|
||||
<a href="../../#contact">the home page</a>
|
||||
<a href="../#contact">the home page</a>
|
||||
(Telegram, VKontakte, Yandex, and email by copying the address using the button).
|
||||
</p>
|
||||
|
||||
@@ -333,7 +314,7 @@
|
||||
|
||||
<h2 id="changes">Changes</h2>
|
||||
<p class="section__prose">
|
||||
The text of the policy may be updated as technologies on the site change. The current version is published on the “Cookie Policy” page at <a href="../../cookie-policy/">/cookie-policy.html</a> relative to the site root.
|
||||
The text of the policy may be updated as technologies on the site change. The current version is published on the “Cookie Policy” page at <a href="../cookie-policy/">/cookie-policy.html</a> relative to the site root.
|
||||
</p>
|
||||
</div>
|
||||
</main>
|
||||
@@ -342,14 +323,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
+21
-21
@@ -127,25 +127,6 @@
|
||||
</button>
|
||||
<div id="nav-more-menu-dock" class="nav-more__dock" hidden data-nav-more-menu></div>
|
||||
</div>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -1350,14 +1331,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
+23
-23
@@ -306,30 +306,11 @@
|
||||
|
||||
<header class="header" data-theme-picker>
|
||||
<div class="header__inner">
|
||||
<a class="logo" href="../../" aria-label="Home">НМ</a>
|
||||
<a class="logo" href="../" aria-label="Home">НМ</a>
|
||||
<div class="header__cluster">
|
||||
<nav class="nav" aria-label="Page sections">
|
||||
<a href="../../">Home</a>
|
||||
<a href="../">Home</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -967,14 +948,33 @@
|
||||
<div class="footer__inner">
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Website design and development — Nikolay Mamadaev</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../cookie-policy/">Cookie policy</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Choose language" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
This site uses cookies for a comfortable experience. Read more in
|
||||
<a href="../../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
<a href="../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Accept</span>
|
||||
|
||||
+20
-20
@@ -127,25 +127,6 @@
|
||||
</button>
|
||||
<div id="nav-more-menu-dock" class="nav-more__dock" hidden data-nav-more-menu></div>
|
||||
</div>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -1373,13 +1354,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
+20
-20
@@ -311,25 +311,6 @@
|
||||
<nav class="nav" aria-label="Разделы страницы">
|
||||
<a href="../">На главную</a>
|
||||
</nav>
|
||||
<nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -968,13 +949,32 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">Дизайн и разработка сайта — Николай Мамадаев</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="../cases/design-system/">Design System</a><span class="footer__sep" aria-hidden="true"> · </span><a href="../cookie-policy/">Политика cookie</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span><nav class="lang-switch" aria-label="Выбор языка" data-lang-switch>
|
||||
<a class="lang-switch__btn" data-lang="ru" href="/">RU</a>
|
||||
<a class="lang-switch__btn" data-lang="en" href="/en/">EN</a>
|
||||
</nav>
|
||||
<script>
|
||||
(function () {
|
||||
var p = location.pathname.replace(/^\/+/, "");
|
||||
var isEn = p.indexOf("en/") === 0;
|
||||
var base = isEn ? p.slice(3) : p;
|
||||
var links = document.querySelectorAll("[data-lang-switch] [data-lang]");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var b = links[i];
|
||||
var l = b.getAttribute("data-lang");
|
||||
b.setAttribute("href", (l === "en" ? "/en/" : "/") + base);
|
||||
if ((l === "en") === isEn) b.setAttribute("aria-current", "true");
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<aside class="cookie-notice glass-neutral" hidden data-cookie-notice>
|
||||
<p class="cookie-notice__text">
|
||||
Сайт использует cookie для комфортной работы. Подробнее — в
|
||||
<a href="../cookie-policy/" data-cookie-policy-link>политике cookie</a>.
|
||||
<a href="../cookie-policy/" data-cookie-policy-link>cookie policy</a>.
|
||||
</p>
|
||||
<button type="button" class="btn btn--secondary btn--flat cookie-notice__accept" data-cookie-accept>
|
||||
<span>Принять</span>
|
||||
|
||||
@@ -3,5 +3,6 @@
|
||||
<span class="footer__chunk footer__chunk--date">© 2015–2026<span class="footer__sep" aria-hidden="true"> · </span></span>
|
||||
<span class="footer__chunk footer__chunk--main">{{i18n:footer.credit}}</span>
|
||||
<span class="footer__chunk footer__chunk--meta footer__attr"><span class="footer__sep" aria-hidden="true"> · </span><a href="{{pagePrefix}}cases/design-system/">{{i18n:footer.designSystem}}</a><span class="footer__sep" aria-hidden="true"> · </span><a href="{{pagePrefix}}cookie-policy/">{{i18n:footer.cookiePolicy}}</a></span>
|
||||
<span class="footer__chunk footer__chunk--lang"><span class="footer__sep" aria-hidden="true"> · </span>{{> lang-switch}}</span>
|
||||
</div>
|
||||
</footer>
|
||||
@@ -6,7 +6,6 @@
|
||||
<nav class="nav" aria-label="{{i18n:nav.aria}}">
|
||||
<a href="#contact">{{i18n:nav.contact}}</a>
|
||||
</nav>
|
||||
{{> lang-switch}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -20,7 +20,6 @@
|
||||
</button>
|
||||
<div id="nav-more-menu-dock" class="nav-more__dock" hidden data-nav-more-menu></div>
|
||||
</div>
|
||||
{{> lang-switch}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -7,7 +7,6 @@
|
||||
<nav class="nav" aria-label="{{i18n:nav.aria}}">
|
||||
<a href="{{pagePrefix}}">{{i18n:back.home}}</a>
|
||||
</nav>
|
||||
{{> lang-switch}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
Reference in new issue
Block a user