Подпись StackWorks: вариант «штамп» со знаком и анимацией полос

Claude-Session: https://claude.ai/code/session_01BFaqS6mH9sa99RWghq2j46
Этот коммит содержится в:
2026-10-06 02:14:24 +09:00
родитель 61ff14915b
Коммит 0134f36ce6
4 изменённых файлов: 55 добавлений и 1 удалений
+30
Просмотреть файл
@@ -0,0 +1,30 @@
/*
* Подпись студии StackWorks («штамп»): знак и две строки - «разработка и поддержка» / StackWorks.
* В остальных проектах она ставится скриптом https://stackworks.ru/sign/sw-sign.js,
* здесь - компонентом, чтобы React не спорил с чужими изменениями страницы.
* Оформление в src/index.css, классы swsig*.
*/
export default function SwSignature({ dark = false }: { dark?: boolean }) {
const bg = dark ? '#F3F1EB' : '#16171C';
const fg = dark ? '#16171C' : '#F3F1EB';
return (
<a
className={'swsig' + (dark ? ' swsig-dark' : '')}
href="https://stackworks.ru/?utm_source=mail.stackworks.ru&utm_medium=signature"
target="_blank"
rel="noopener"
aria-label="Разработка и поддержка - StackWorks"
>
<svg viewBox="0 0 100 100" aria-hidden="true">
<rect x="2" y="2" width="96" height="96" rx="25" fill={bg} />
<rect className="b b1" x="20" y="29" width="44" height="12" rx="6" fill={fg} />
<rect className="b b2" x="30" y="45" width="50" height="12" rx="6" fill="#FF4A1C" />
<rect className="b b3" x="40" y="61" width="34" height="12" rx="6" fill={fg} />
</svg>
<span className="swsig-txt">
<span className="swsig-cap">разработка и поддержка</span>
<span className="swsig-word">Stack<i>Works</i></span>
</span>
</a>
);
}
+5
Просмотреть файл
@@ -4,6 +4,7 @@
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
*/
import SwSignature from '@/components/common/SwSignature';
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
import { useLocation, useNavigate } from 'react-router-dom';
import * as LucideIcons from 'lucide-react';
@@ -365,6 +366,10 @@ export function Sidebar() {
</nav>
</div>
<div className="flex justify-center px-3 py-3">
<SwSignature dark />
</div>
{layouts.length > 1 && (
<TooltipProvider>
<div className="sw-aside-foot flex items-center justify-around border-t bg-background px-2 py-2">