/
spirzen
/
it-knowledge-base
Обзор
Документация
Войти
/
spirzen
/
it-knowledge-base
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
Mobile
src/components/JavaDatabasePlay.module.css
442 строки
8 KB
Spirzen
Some pack
24 май 2026, 04:42
24 май 2026, 04:42
6571b75
Код
Авторство
О чём код?
.root { max-width: min(720px, 100%); margin: 0 auto; } .modeTabs { display: flex; flex-wrap: wrap; gap: 0.35rem; justify-content: center; margin-bottom: 0.75rem; } .modeTab { padding: 0.35rem 0.75rem; border-radius: 999px; border: 1px solid var(--ifm-color-emphasis-300); background: var(--ifm-background-surface-color); font-size: 0.78rem; font-weight: 600; color: var(--ifm-color-content-secondary); cursor: pointer; transition: all 0.2s ease; } .modeTab:hover:not(:disabled) { border-color: var(--ifm-color-primary); color: var(--ifm-color-primary); } .modeTab:disabled { opacity: 0.55; cursor: not-allowed; } .modeTabActive { border-color: var(--ifm-color-primary); background: color-mix(in srgb, var(--ifm-color-primary) 12%, var(--ifm-background-surface-color)); color: var(--ifm-color-primary); } .layout2 { display: grid; grid-template-columns: 1fr; gap: 0.85rem; } @media (min-width: 640px) { .layout2 { grid-template-columns: 1fr 1fr; } } .stackDiagram { display: flex; flex-direction: column; gap: 0; margin-bottom: 0.85rem; } .layer { border: 2px solid var(--ifm-color-emphasis-300); border-radius: 10px; padding: 0.5rem 0.65rem; background: var(--ifm-background-surface-color); transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.25s ease; } .layerActive { border-color: var(--ifm-color-primary); box-shadow: 0 0 0 1px color-mix(in srgb, var(--ifm-color-primary) 28%, transparent); transform: scale(1.01); } .layerHeader { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.35rem 0.5rem; } .layerLabel { font-weight: 700; font-size: 0.88rem; } .layerShort { font-size: 0.72rem; padding: 0.1rem 0.4rem; border-radius: 4px; background: var(--ifm-color-emphasis-100); color: var(--ifm-color-content-secondary); font-family: var(--ifm-font-family-monospace); } .layerRole { width: 100%; margin: 0.2rem 0 0; font-size: 0.75rem; color: var(--ifm-color-content-secondary); } .connector { display: flex; flex-direction: column; align-items: center; padding: 0.15rem 0; position: relative; } .connectorLine { width: 3px; height: 1.1rem; background: var(--ifm-color-emphasis-300); border-radius: 2px; transition: background 0.3s ease; } .connectorPulseDown { background: linear-gradient( 180deg, var(--ifm-color-primary) 0%, var(--ifm-color-emphasis-300) 100% ); animation: pulseDown 0.9s ease infinite; } .connectorPulseUp { background: linear-gradient( 0deg, var(--ifm-color-success, #2e8555) 0%, var(--ifm-color-emphasis-300) 100% ); animation: pulseUp 0.9s ease infinite; } @keyframes pulseDown { 0%, 100% { opacity: 0.5; } 50% { opacity: 1; } } @keyframes pulseUp { 0%, 100% { opacity: 0.55; } 50% { opacity: 1; } } .connectorLabel { font-size: 0.65rem; color: var(--ifm-color-content-secondary); margin-top: 0.1rem; } .stepCard { border-radius: 8px; padding: 0.65rem 0.75rem; background: color-mix(in srgb, var(--ifm-color-primary) 8%, var(--ifm-background-surface-color)); border: 1px solid color-mix(in srgb, var(--ifm-color-primary) 25%, transparent); margin-bottom: 0.75rem; } .stepBadge { display: inline-block; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ifm-color-primary); margin-bottom: 0.25rem; } .stepTitle { margin: 0 0 0.2rem; font-weight: 700; font-size: 0.9rem; } .stepDetail { margin: 0; font-size: 0.8rem; color: var(--ifm-color-content-secondary); line-height: 1.4; } .controls { display: flex; flex-wrap: wrap; gap: 0.45rem; justify-content: center; margin-bottom: 0.5rem; } .stepDots { display: flex; justify-content: center; gap: 0.35rem; margin-bottom: 0.65rem; } .stepDot { width: 7px; height: 7px; border-radius: 50%; background: var(--ifm-color-emphasis-300); transition: background 0.2s ease, transform 0.2s ease; } .stepDotDone { background: color-mix(in srgb, var(--ifm-color-primary) 55%, var(--ifm-color-emphasis-300)); } .stepDotCurrent { background: var(--ifm-color-primary); transform: scale(1.25); } .codePanel { margin: 0; padding: 0.65rem 0.75rem; border-radius: 8px; background: var(--ifm-code-background); font-family: var(--ifm-font-family-monospace); font-size: 0.72rem; line-height: 1.45; overflow-x: auto; white-space: pre-wrap; border: 1px solid var(--ifm-color-emphasis-200); max-height: 12rem; } .sqlPanel { composes: codePanel; border-color: color-mix(in srgb, var(--ifm-color-info, #3578e5) 35%, transparent); } .panelLabel { display: block; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ifm-color-content-secondary); margin-bottom: 0.35rem; } .crudToolbar { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 0.65rem; } .crudForm { display: grid; gap: 0.45rem; margin-bottom: 0.65rem; } .crudField { display: flex; flex-direction: column; gap: 0.2rem; } .crudField label { font-size: 0.72rem; font-weight: 600; color: var(--ifm-color-content-secondary); } .crudField input, .crudField select { padding: 0.35rem 0.5rem; border-radius: 6px; border: 1px solid var(--ifm-color-emphasis-300); font-size: 0.82rem; background: var(--ifm-background-color); color: var(--ifm-font-color-base); } .tableWrap { overflow-x: auto; margin-bottom: 0.65rem; } .rowHighlight { animation: rowFlash 1.2s ease; } @keyframes rowFlash { 0% { background: color-mix(in srgb, var(--ifm-color-primary) 35%, transparent); } 100% { background: transparent; } } .message { margin: 0 0 0.5rem; font-size: 0.8rem; padding: 0.4rem 0.55rem; border-radius: 6px; } .messageError { composes: message; background: color-mix(in srgb, var(--ifm-color-danger) 12%, transparent); color: var(--ifm-color-danger); border: 1px solid color-mix(in srgb, var(--ifm-color-danger) 30%, transparent); } .messageOk { composes: message; background: color-mix(in srgb, var(--ifm-color-success, #2e8555) 12%, transparent); color: var(--ifm-color-success, #2e8555); border: 1px solid color-mix(in srgb, var(--ifm-color-success, #2e8555) 30%, transparent); } .lifecycleList { display: flex; flex-direction: column; gap: 0.35rem; margin-bottom: 0.75rem; } .lifecycleStep { display: flex; gap: 0.55rem; align-items: flex-start; padding: 0.45rem 0.55rem; border-radius: 8px; border: 1px solid var(--ifm-color-emphasis-200); background: var(--ifm-background-surface-color); cursor: pointer; text-align: left; width: 100%; font: inherit; color: inherit; transition: border-color 0.2s ease, background 0.2s ease; } .lifecycleStep:hover { border-color: var(--ifm-color-primary); } .lifecycleStepOn { border-color: var(--ifm-color-primary); background: color-mix(in srgb, var(--ifm-color-primary) 10%, var(--ifm-background-surface-color)); } .lifecycleNum { flex-shrink: 0; width: 1.5rem; height: 1.5rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.72rem; font-weight: 700; background: var(--ifm-color-emphasis-200); color: var(--ifm-color-content-secondary); } .lifecycleStepOn .lifecycleNum { background: var(--ifm-color-primary); color: var(--ifm-color-primary-contrast-background, #fff); } .lifecycleBody { flex: 1; min-width: 0; } .lifecycleTitle { font-weight: 700; font-size: 0.84rem; margin: 0 0 0.15rem; } .lifecycleDetail { margin: 0; font-size: 0.76rem; color: var(--ifm-color-content-secondary); line-height: 1.35; } .layerCompare { display: grid; gap: 0.55rem; } @media (min-width: 560px) { .layerCompare { grid-template-columns: repeat(3, 1fr); } } .layerCard { border: 1px solid var(--ifm-color-emphasis-300); border-radius: 8px; padding: 0.45rem 0.5rem; background: var(--ifm-background-surface-color); } .layerCardTitle { font-size: 0.78rem; font-weight: 700; margin: 0 0 0.35rem; color: var(--ifm-color-primary); } .layerCard pre { margin: 0; font-size: 0.65rem; line-height: 1.4; white-space: pre-wrap; font-family: var(--ifm-font-family-monospace); max-height: 9rem; overflow-y: auto; } .footer { margin: 0.65rem 0 0; font-size: 0.78rem; line-height: 1.45; color: var(--ifm-color-content-secondary); text-align: center; }