/
spirzen
/
it-knowledge-base
Обзор
Документация
Войти
/
spirzen
/
it-knowledge-base
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
Mobile
src/components/MarshalingDemo.module.css
264 строки
5 KB
Spirzen
Ultra Mega Components Buff
20 май 2026, 03:14
20 май 2026, 03:14
3a2dddc
Код
Авторство
О чём код?
.root { --marshal-sender: var(--ifm-color-primary); --marshal-wire: #6a1b9a; --marshal-receiver: #2e7d32; --marshal-error: #c62828; } .panels { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: stretch; gap: 0.5rem; margin: 1rem 0 0.75rem; } @media (max-width: 900px) { .panels { grid-template-columns: 1fr; } .connector { min-height: 2rem; flex-direction: row; } .connectorArrow { transform: rotate(90deg); } } .panel { display: flex; flex-direction: column; min-height: 12rem; border-radius: 10px; border: 2px solid var(--demo-border, var(--ifm-color-emphasis-300)); background: var(--ifm-background-surface-color); overflow: hidden; transition: border-color 0.3s ease, box-shadow 0.3s ease; } .panelIdle { opacity: 0.75; } .panelSenderActive { border-color: var(--marshal-sender); box-shadow: 0 0 0 3px color-mix(in srgb, var(--marshal-sender) 20%, transparent); } .panelWireActive { border-color: var(--marshal-wire); box-shadow: 0 0 0 3px color-mix(in srgb, var(--marshal-wire) 18%, transparent); } .panelReceiverActive { border-color: var(--marshal-receiver); box-shadow: 0 0 0 3px color-mix(in srgb, var(--marshal-receiver) 20%, transparent); } .panelError { border-color: var(--marshal-error); box-shadow: 0 0 0 3px color-mix(in srgb, var(--marshal-error) 18%, transparent); } .panelHead { padding: 0.55rem 0.75rem; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--demo-muted, var(--ifm-color-content-secondary)); border-bottom: 1px solid var(--demo-border, var(--ifm-color-emphasis-200)); background: var(--ifm-background-color); } .panelBody { flex: 1; padding: 0.65rem 0.75rem; font-family: var(--ifm-font-family-monospace); font-size: 0.78rem; line-height: 1.55; overflow: auto; } .connector { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.35rem; min-width: 2.5rem; color: var(--demo-muted, var(--ifm-color-content-secondary)); } .connectorArrow { font-size: 1.25rem; line-height: 1; transition: transform 0.3s ease, color 0.3s ease; } .connectorArrowActive { color: var(--marshal-wire); } .packet { width: 10px; height: 10px; border-radius: 50%; background: var(--marshal-wire); opacity: 0; transform: scale(0.5); } .packetVisible { animation: marshalPacket 1.1s ease-in-out infinite; } @keyframes marshalPacket { 0%, 100% { opacity: 0.35; transform: scale(0.85); } 50% { opacity: 1; transform: scale(1.15); } } .typeName { color: var(--marshal-sender); font-weight: 700; } .field { padding-left: 0.85rem; } .fieldName { color: var(--ifm-color-primary); } .fieldType { color: var(--demo-muted, var(--ifm-color-content-secondary)); font-size: 0.7rem; } .fieldValue { color: var(--ifm-color-content); } .wireEmpty { color: var(--demo-muted, var(--ifm-color-content-secondary)); font-style: italic; font-family: var(--ifm-font-family-base); font-size: 0.8rem; } .wireJson { white-space: pre-wrap; word-break: break-word; margin: 0; } .receiverEmpty { color: var(--demo-muted, var(--ifm-color-content-secondary)); font-style: italic; font-family: var(--ifm-font-family-base); font-size: 0.8rem; } .stepBar { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 0.75rem; } .stepChip { padding: 0.25rem 0.55rem; border-radius: 999px; font-size: 0.72rem; font-weight: 600; border: 1px solid var(--demo-border, var(--ifm-color-emphasis-300)); color: var(--demo-muted, var(--ifm-color-content-secondary)); background: transparent; } .stepChipActive { border-color: var(--ifm-color-primary); color: var(--ifm-color-primary); background: color-mix(in srgb, var(--ifm-color-primary) 12%, transparent); } .stepChipDone { border-color: var(--marshal-receiver); color: var(--marshal-receiver); background: color-mix(in srgb, var(--marshal-receiver) 10%, transparent); } .desc { margin: 0 0 0.75rem; font-size: 0.88rem; line-height: 1.5; color: var(--ifm-color-content-secondary); min-height: 2.6em; } .options { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; margin-bottom: 0.75rem; font-size: 0.82rem; } .optionLabel { display: inline-flex; align-items: center; gap: 0.4rem; cursor: pointer; user-select: none; } .controls { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; } .errorText { margin: 0; font-family: var(--ifm-font-family-base); font-size: 0.82rem; line-height: 1.5; color: var(--marshal-error); } .logTitle { margin: 0 0 0.35rem; font-size: 0.8rem; font-weight: 600; color: var(--demo-muted, var(--ifm-color-content-secondary)); } .logTime { color: var(--demo-muted, var(--ifm-color-content-secondary)); margin-right: 0.5rem; } .errorBadge { display: inline-flex; align-items: center; padding: 0.2rem 0.55rem; border-radius: 999px; font-size: 0.72rem; font-weight: 600; border: 1px solid var(--marshal-error); color: var(--marshal-error); }