/
NickRus86
/
Directory
Обзор
Документация
Войти
/
NickRus86
/
Directory
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/styles.css
472 строки
9 KB
NickRus86
Начало
22 ноя 2025, 15:26
22 ноя 2025, 15:26
7d5a285
Код
Авторство
О чём код?
:root { --bg: #070816; --bg-elevated: #111324; --bg-elevated-alt: #15172a; --border-subtle: #292c45; --border-strong: #3b3f63; --text-main: #f5f7ff; --text-muted: #9ca1c9; --accent: #4f7dff; --accent-soft: rgba(79, 125, 255, 0.12); --danger: #ff4f70; --success: #3acb7a; --warning: #ffb649; --badge-bg: #1b1e33; --radius-lg: 16px; --radius-md: 10px; --radius-sm: 6px; --shadow-soft: 0 14px 40px rgba(0, 0, 0, 0.45); --transition-fast: 150ms ease-out; --transition-mid: 220ms ease; } *, *::before, *::after { box-sizing: border-box; } html, body { height: 100%; margin: 0; padding: 0; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: radial-gradient(circle at top, #161933 0, #050716 55%, #020310 100%); color: var(--text-main); } body { display: flex; justify-content: center; align-items: stretch; padding: 20px; } .app { width: 100%; max-width: 1200px; background: linear-gradient(145deg, rgba(255, 255, 255, 0.02), transparent), var(--bg-elevated); border-radius: 24px; border: 1px solid rgba(255, 255, 255, 0.04); box-shadow: var(--shadow-soft); padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 14px; } /* Header */ .app-header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; } .app-header h1 { font-size: 20px; font-weight: 600; letter-spacing: 0.03em; margin: 0; display: flex; align-items: center; gap: 10px; } .app-header h1::before { content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 999px; background: radial-gradient(circle at 30% 30%, #7af3ff, #4e5cff 40%, #ff4f70 90%); box-shadow: 0 0 20px rgba(111, 190, 255, 0.6); } .app-version { font-size: 11px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--text-muted); } /* Toolbar */ .toolbar { display: flex; justify-content: space-between; align-items: center; gap: 10px; background: radial-gradient(circle at top left, rgba(79,125,255,0.18), transparent 55%), var(--bg-elevated-alt); border-radius: 18px; padding: 10px 12px; border: 1px solid rgba(87, 99, 165, 0.7); } .toolbar-left, .toolbar-right { display: flex; gap: 8px; align-items: center; } /* Buttons */ .btn { border: none; border-radius: 999px; padding: 7px 13px; font-size: 13px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; transition: transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast); white-space: nowrap; } .btn-primary { background: linear-gradient(135deg, #4f7dff, #7a8dff); color: white; box-shadow: 0 8px 22px rgba(79, 125, 255, 0.5); } .btn-primary:hover { transform: translateY(-1px); box-shadow: 0 10px 28px rgba(79, 125, 255, 0.7); } .btn-secondary { background: rgba(255, 255, 255, 0.03); color: var(--text-main); border: 1px solid rgba(188, 196, 255, 0.24); } .btn-secondary:hover { background: rgba(255, 255, 255, 0.06); } /* Input */ .toolbar input[type="search"] { width: 220px; max-width: 100%; padding: 6px 10px; border-radius: 999px; border: 1px solid rgba(93, 102, 170, 0.6); background: radial-gradient(circle at top, rgba(255,255,255,0.06), transparent 65%), rgba(1, 4, 22, 0.9); color: var(--text-main); font-size: 13px; outline: none; transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast); } .toolbar input[type="search"]::placeholder { color: rgba(156, 161, 201, 0.8); } .toolbar input[type="search"]:focus { border-color: var(--accent); box-shadow: 0 0 0 1px rgba(79, 125, 255, 0.6); } /* Table */ .table-root { background: radial-gradient(circle at top left, rgba(255,255,255,0.04), transparent 60%), var(--bg-elevated-alt); border-radius: 18px; border: 1px solid rgba(61, 66, 115, 0.9); padding: 0; overflow: hidden; } .data-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 13px; } .data-table thead { background: linear-gradient(to bottom, rgba(255, 255, 255, 0.02), rgba(0, 0, 0, 0.25)); } .data-table th, .data-table td { padding: 7px 10px; border-bottom: 1px solid rgba(36, 39, 74, 0.95); vertical-align: middle; } .data-table th { position: sticky; top: 0; z-index: 1; text-align: left; font-weight: 500; color: var(--text-muted); border-bottom: 1px solid rgba(81, 87, 134, 0.9); background: linear-gradient(to bottom, rgba(8, 10, 36, 0.98), rgba(5, 6, 24, 0.98)); } .data-table th:first-child { width: 42px; } .data-table th:nth-child(2) { width: 34px; } .data-table tbody tr:nth-child(even) { background: rgba(10, 12, 28, 0.8); } .data-table tbody tr:nth-child(odd) { background: rgba(6, 7, 22, 0.9); } .data-table tbody tr:hover { background: radial-gradient(circle at left, rgba(79,125,255,0.25), transparent 55%), rgba(14, 16, 39, 0.96); } /* Cells */ .cell { position: relative; } .cell--number { color: var(--text-muted); } /* Editable inputs */ .cell-input, .cell-select { width: 100%; border-radius: 8px; border: 1px solid rgba(74, 80, 133, 0.9); background: rgba(11, 13, 31, 0.95); color: var(--text-main); padding: 4px 7px; font-size: 13px; outline: none; transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast), transform var(--transition-fast); } .cell-input:focus, .cell-select:focus { border-color: var(--accent); box-shadow: 0 0 0 1px rgba(79, 125, 255, 0.6); background: rgba(13, 16, 36, 0.98); } /* Checkbox */ .cell-checkbox { display: flex; justify-content: center; align-items: center; } .cell-checkbox input[type="checkbox"] { width: 16px; height: 16px; cursor: pointer; accent-color: var(--accent); } /* Badge */ .badge { display: inline-flex; align-items: center; justify-content: center; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 500; letter-spacing: 0.03em; text-transform: uppercase; border: 1px solid transparent; background: var(--badge-bg); } .badge--success { background: rgba(58, 203, 122, 0.12); color: #88f0b9; border-color: rgba(58, 203, 122, 0.42); } .badge--warning { background: rgba(255, 182, 73, 0.14); color: #ffd8a0; border-color: rgba(255, 182, 73, 0.5); } .badge--danger { background: rgba(255, 79, 112, 0.16); color: #ffb2c1; border-color: rgba(255, 79, 112, 0.5); } .badge--info { background: rgba(79, 125, 255, 0.16); color: #b8c7ff; border-color: rgba(79, 125, 255, 0.5); } /* Column meta */ .column-meta { display: flex; flex-direction: column; gap: 2px; } .column-title { font-size: 12px; } .column-type { font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--text-muted); } /* Add column placeholder */ .add-column-cell { text-align: center; cursor: pointer; color: var(--accent); font-size: 12px; } /* Modal */ .modal-backdrop { position: fixed; inset: 0; background: rgba(1, 3, 20, 0.75); display: flex; justify-content: center; align-items: center; z-index: 50; } .modal { width: 360px; max-width: calc(100% - 32px); background: radial-gradient(circle at top, rgba(255,255,255,0.05), transparent 60%), var(--bg-elevated); border-radius: 18px; padding: 16px 18px 14px; border: 1px solid rgba(85, 93, 160, 0.9); box-shadow: var(--shadow-soft); } .modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; } .modal-title { font-size: 15px; font-weight: 500; } .modal-close { border: none; background: transparent; color: var(--text-muted); cursor: pointer; font-size: 18px; line-height: 1; } .modal-body { display: flex; flex-direction: column; gap: 10px; margin-bottom: 10px; } .modal-footer { display: flex; justify-content: flex-end; gap: 8px; } .field-label { font-size: 12px; color: var(--text-muted); margin-bottom: 2px; } .field-input, .field-select, .field-textarea { width: 100%; border-radius: 10px; border: 1px solid rgba(79, 86, 144, 0.9); background: rgba(7, 9, 27, 0.98); color: var(--text-main); padding: 6px 8px; font-size: 13px; outline: none; transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast); } .field-input:focus, .field-select:focus, .field-textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 1px rgba(79, 125, 255, 0.6); background: rgba(10, 11, 30, 0.98); } .field-helper { font-size: 11px; color: var(--text-muted); } /* Responsive */ @media (max-width: 900px) { body { padding: 10px; } .app { padding: 12px; } .toolbar { flex-direction: column; align-items: flex-start; } .toolbar-right { width: 100%; justify-content: flex-start; } .toolbar input[type="search"] { width: 100%; } }