/
spirzen
/
it-knowledge-base
Обзор
Документация
Войти
/
spirzen
/
it-knowledge-base
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
Mobile
src/components/devopsCiCdDemo.module.css
479 строк
8 KB
Spirzen
Components pack 2
23 май 2026, 03:42
23 май 2026, 03:42
b7f65e4
Код
Авторство
О чём код?
.root { max-width: min(920px, 100%); margin: 0 auto 1.25rem; } .row { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.75rem; } .chips { display: flex; flex-wrap: wrap; gap: 0.35rem; } .chip { padding: 0.35rem 0.65rem; font-size: 0.78rem; border: 1px solid var(--ifm-color-emphasis-300); border-radius: 999px; background: var(--ifm-background-color); cursor: pointer; } .chipActive { border-color: var(--ifm-color-primary); background: color-mix(in srgb, var(--ifm-color-primary) 12%, transparent); font-weight: 600; } .panel { padding: 0.75rem; border: 1px solid var(--ifm-color-emphasis-300); border-radius: 8px; background: var(--ifm-background-surface-color); } .grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; } @media (max-width: 720px) { .grid2 { grid-template-columns: 1fr; } } .mono { margin: 0; padding: 0.55rem; font-size: 0.68rem; border-radius: 6px; background: var(--ifm-code-background); white-space: pre-wrap; overflow-x: auto; } .statRow { display: flex; justify-content: space-between; font-size: 0.8rem; padding: 0.25rem 0; border-bottom: 1px dashed var(--ifm-color-emphasis-200); } .statRow:last-child { border-bottom: none; } /* Deploy strategies */ .trafficBar { display: flex; height: 2rem; border-radius: 6px; overflow: hidden; margin: 0.5rem 0; } .trafficOld { background: #5c6bc0; display: flex; align-items: center; justify-content: center; font-size: 0.72rem; color: #fff; transition: width 0.35s ease; } .trafficNew { background: #43a047; display: flex; align-items: center; justify-content: center; font-size: 0.72rem; color: #fff; transition: width 0.35s ease; } .pool { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.5rem; } .instance { width: 3.2rem; height: 3.2rem; display: flex; align-items: center; justify-content: center; font-size: 0.65rem; font-weight: 700; border-radius: 8px; border: 2px solid var(--ifm-color-emphasis-300); } .instanceOld { background: color-mix(in srgb, #5c6bc0 25%, transparent); border-color: #5c6bc0; } .instanceNew { background: color-mix(in srgb, #43a047 25%, transparent); border-color: #43a047; } .instanceUpdating { animation: pulse 0.8s ease infinite; border-color: #fb8c00; } @keyframes pulse { 50% { opacity: 0.55; } } .envPair { display: grid; grid-template-columns: 1fr auto 1fr; gap: 0.5rem; align-items: center; } .envBox { padding: 0.65rem; border-radius: 8px; text-align: center; font-size: 0.78rem; border: 2px solid transparent; } .envBlue { background: color-mix(in srgb, #1565c0 18%, transparent); border-color: #1565c0; } .envGreen { background: color-mix(in srgb, #2e7d32 18%, transparent); border-color: #2e7d32; } .envActive { box-shadow: 0 0 0 2px var(--ifm-color-primary); } /* Pipeline lifecycle */ .flowSteps { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 0.65rem; } .flowStep { padding: 0.4rem 0.55rem; font-size: 0.72rem; border: 1px solid var(--ifm-color-emphasis-300); border-radius: 6px; background: var(--ifm-background-color); cursor: pointer; } .flowStepActive { border-color: var(--ifm-color-primary); background: color-mix(in srgb, var(--ifm-color-primary) 14%, transparent); font-weight: 600; } .badgeCi { display: inline-block; margin-left: 0.25rem; padding: 0.05rem 0.3rem; font-size: 0.58rem; border-radius: 3px; background: #1565c0; color: #fff; } .badgeCd { display: inline-block; margin-left: 0.25rem; padding: 0.05rem 0.3rem; font-size: 0.58rem; border-radius: 3px; background: #2e7d32; color: #fff; } /* Validation layers */ .layerList { display: flex; flex-direction: column; gap: 0.4rem; } .layerRow { display: grid; grid-template-columns: auto 1fr auto; gap: 0.5rem; align-items: center; padding: 0.45rem 0.55rem; border-radius: 6px; border: 1px solid var(--ifm-color-emphasis-200); } .layerPass { border-color: #43a047; background: color-mix(in srgb, #43a047 8%, transparent); } .layerFail { border-color: #e53935; background: color-mix(in srgb, #e53935 8%, transparent); } .layerSkip { opacity: 0.45; } /* Compare cards */ .compareGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; } @media (max-width: 640px) { .compareGrid { grid-template-columns: 1fr; } } .roleCard { padding: 0.65rem; border-radius: 8px; font-size: 0.82rem; } .roleSys { border: 1px solid #6d4c41; background: color-mix(in srgb, #6d4c41 10%, transparent); } .roleDevops { border: 1px solid #00838f; background: color-mix(in srgb, #00838f 10%, transparent); } .planLine { font-family: var(--ifm-font-family-monospace); font-size: 0.72rem; padding: 0.2rem 0; } .planCreate { color: #2e7d32; } .planUpdate { color: #ef6c00; } .planNoop { color: var(--ifm-color-emphasis-600); } .budgetBar { height: 0.65rem; border-radius: 4px; background: var(--ifm-color-emphasis-200); overflow: hidden; margin: 0.5rem 0; } .budgetFill { height: 100%; border-radius: 4px; transition: width 0.3s ease; } .budgetOk { background: #43a047; } .budgetWarn { background: #fb8c00; } .budgetExhausted { background: #e53935; } .slider { width: 100%; margin: 0.5rem 0; } /* Webhooks / mesh */ .hubRow { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.5rem; margin: 0.65rem 0; } .hubNode { padding: 0.55rem 0.75rem; border-radius: 8px; border: 2px solid var(--ifm-color-emphasis-300); font-size: 0.78rem; text-align: center; min-width: 5.5rem; } .hubSource { border-color: #5c6bc0; background: color-mix(in srgb, #5c6bc0 12%, transparent); } .hubTarget { border-color: #2e7d32; background: color-mix(in srgb, #2e7d32 12%, transparent); } .hubArrow { font-size: 1.1rem; color: var(--ifm-color-primary); } .hubPulse { animation: hubPulse 1s ease infinite; } @keyframes hubPulse { 50% { transform: scale(1.04); opacity: 0.85; } } .meshGrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; margin: 0.5rem 0; } @media (max-width: 640px) { .meshGrid { grid-template-columns: 1fr; } } .meshPod { padding: 0.5rem; border-radius: 8px; border: 1px dashed var(--ifm-color-emphasis-400); font-size: 0.72rem; } .meshSidecar { margin-top: 0.35rem; padding: 0.25rem 0.4rem; border-radius: 4px; background: color-mix(in srgb, #00838f 18%, transparent); font-size: 0.62rem; font-weight: 600; } .stageCol { flex: 1; min-width: 5rem; padding: 0.45rem; border-radius: 8px; border: 1px solid var(--ifm-color-emphasis-300); } .stageTitle { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; margin-bottom: 0.35rem; } .jobPill { display: block; width: 100%; margin-top: 0.3rem; padding: 0.3rem 0.4rem; font-size: 0.65rem; border-radius: 4px; border: 1px solid var(--ifm-color-emphasis-200); text-align: left; } .jobDone { background: color-mix(in srgb, #43a047 12%, transparent); border-color: #43a047; } .jobRun { background: color-mix(in srgb, #1565c0 14%, transparent); border-color: #1565c0; animation: pulse 0.9s ease infinite; } .jobWait { opacity: 0.55; } .logBox { max-height: 9rem; overflow-y: auto; margin-top: 0.5rem; padding: 0.45rem; font-family: var(--ifm-font-family-monospace); font-size: 0.68rem; border-radius: 6px; background: #1e1e1e; color: #d4d4d4; } .hostGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(7rem, 1fr)); gap: 0.4rem; } .hostCard { padding: 0.45rem; border-radius: 6px; border: 1px solid var(--ifm-color-emphasis-300); font-size: 0.72rem; cursor: pointer; } .hostOn { border-color: var(--ifm-color-primary); background: color-mix(in srgb, var(--ifm-color-primary) 10%, transparent); } .debTree { font-size: 0.78rem; line-height: 1.5; } .debTree ul { margin: 0.2rem 0 0.2rem 1rem; padding: 0; }