/
spirzen
/
it-knowledge-base
Обзор
Документация
Войти
/
spirzen
/
it-knowledge-base
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
Mobile
src/components/shared/interactionDemo.module.css
197 строк
4 KB
Spirzen
Components Rework
19 май 2026, 19:17
19 май 2026, 19:17
d8d92a3
Код
Авторство
О чём код?
.root { --flow-client: var(--ifm-color-primary); --flow-server: #2e7d32; --flow-accent: #ed6c02; --flow-event: #f9a825; } .diagram { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 0.5rem; margin: 1rem 0; } .diagramWide { grid-template-columns: 1fr auto 1fr auto 1fr; } @media (max-width: 600px) { .diagram, .diagramWide { grid-template-columns: 1fr; gap: 0.5rem; } .trackSlot { min-height: 28px; min-width: unset; width: 100%; } } .node { position: relative; padding: 0.85rem 0.75rem; border-radius: 10px; border: 2px solid var(--demo-border, var(--ifm-color-emphasis-300)); background: var(--ifm-background-surface-color); text-align: center; transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease; } .nodeIdle { opacity: 0.72; } .nodeActiveClient { border-color: var(--flow-client); box-shadow: 0 0 0 3px color-mix(in srgb, var(--flow-client) 22%, transparent); transform: translateY(-2px); } .nodeActiveServer { border-color: var(--flow-server); box-shadow: 0 0 0 3px color-mix(in srgb, var(--flow-server) 22%, transparent); transform: translateY(-2px); } .nodeActiveAccent { border-color: var(--flow-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--flow-accent) 25%, transparent); transform: translateY(-2px); } .nodeActiveEvent { border-color: var(--flow-event); box-shadow: 0 0 0 3px color-mix(in srgb, var(--flow-event) 25%, transparent); } .nodeIcon { font-size: 1.5rem; line-height: 1; margin-bottom: 0.35rem; } .nodeTitle { margin: 0; font-size: 0.82rem; font-weight: 700; color: var(--ifm-color-content); } .nodeHint { margin: 0.25rem 0 0; font-size: 0.72rem; color: var(--demo-muted, var(--ifm-color-content-secondary)); line-height: 1.35; } .stageDesc { margin: 0.75rem 0 0; padding: 0.65rem 0.85rem; font-size: 0.85rem; line-height: 1.5; border-radius: 8px; background: var(--ifm-background-surface-color); border-left: 3px solid var(--ifm-color-primary); color: var(--ifm-color-content); } .controls { margin-top: 1rem; } .tokenBox { grid-column: 1 / -1; margin: 0.5rem 0; padding: 0.65rem 0.85rem; border-radius: 8px; border: 1px dashed var(--flow-accent); background: color-mix(in srgb, var(--flow-accent) 8%, var(--ifm-background-surface-color)); font-family: var(--ifm-font-family-monospace); font-size: 0.78rem; word-break: break-all; text-align: center; } .tokenBoxIdle { opacity: 0.55; border-color: var(--demo-border); } .busRow { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.5rem; } @media (max-width: 600px) { .busRow { grid-template-columns: 1fr; } } .subscriber { padding: 0.65rem; border-radius: 8px; border: 2px solid var(--demo-border); text-align: center; transition: all 0.25s ease; } .subscriberActive { border-color: var(--ifm-color-primary); background: color-mix(in srgb, var(--ifm-color-primary) 10%, transparent); } .subscriberActiveGreen { border-color: var(--flow-server); background: color-mix(in srgb, var(--flow-server) 10%, transparent); } .eventHub { grid-column: 1 / -1; padding: 0.5rem; text-align: center; font-size: 0.75rem; font-weight: 600; color: var(--demo-muted); border-radius: 6px; background: var(--ifm-background-surface-color); border: 1px solid var(--demo-border); } .eventHubActive { color: var(--flow-event); border-color: var(--flow-event); animation: hubPulse 1s ease-in-out infinite; } @keyframes hubPulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } } @media (prefers-reduced-motion: reduce) { .nodeActiveClient, .nodeActiveServer, .nodeActiveAccent { transform: none; } .eventHubActive { animation: none; } }