/** * team-wheel.css * Стили для колеса команды (круговой прокручиваемый виджет сотрудников) */ /* ───────────────────────────────────────────────────────────── CSS ПЕРЕМЕННЫЕ ────────────────────────────────────────────────────────────── */ :root { --wheel-size: 200px; /* размер круга */ --ava-size: 52px; /* размер мини-аватарки */ --ring-bg: radial-gradient(ellipse at center, var(--bs-body-bg), color-mix(in srgb, var(--bs-body-bg) 85%, var(--bs-secondary-bg, #f7f7f9) 15%)); --ring-border: var(--bs-border-color, rgba(0,0,0,.125)); --shadow-inset: 0 8px 24px rgba(0,0,0,.06) inset; --shadow-out: 0 4px 12px rgba(0,0,0,.05); --arc-width: 4px; --arc-track: color-mix(in srgb, var(--bs-secondary-color) 30%, transparent); --arc-prog: var(--bs-primary); } /* ───────────────────────────────────────────────────────────── TEAM WRAP & WHEEL ────────────────────────────────────────────────────────────── */ .team-wrap { width: var(--wheel-size); display: flex; flex-direction: column; align-items: center; margin-inline: auto; } .team-wheel { position: relative; width: var(--wheel-size); height: var(--wheel-size); border-radius: 50%; overflow: hidden; background: var(--ring-bg); border: 1px solid var(--ring-border); box-shadow: var(--shadow-inset); user-select: none; touch-action: none; display: flex; align-items: center; justify-content: center; } /* ───────────────────────────────────────────────────────────── WHEEL LAYOUT ────────────────────────────────────────────────────────────── */ .wheel-plane { position: absolute; inset: 0; } .wheel-columns { position: absolute; inset: 10px var(--space-1); /* 8px - унифицировано */ display: flex; gap: var(--space-1); /* 8px - унифицировано */ justify-content: space-between; align-items: flex-start; will-change: transform; } .wheel-col { width: calc(25% - 6px); display: flex; flex-direction: column; gap: var(--space-1); /* 8px - унифицировано */ align-items: center; } .wheel-col.col-2 { margin-top: calc(var(--ava-size) * .5); } .wheel-col.col-3 { margin-top: calc(var(--ava-size) * 1.0); } .wheel-col.col-4 { margin-top: calc(var(--ava-size) * 1.5); } /* ───────────────────────────────────────────────────────────── WHEEL ITEMS ────────────────────────────────────────────────────────────── */ .wheel-item { background: transparent; border: 0; padding: 0; width: var(--ava-size); height: var(--ava-size); border-radius: 50%; cursor: pointer; box-shadow: var(--shadow-out); } .wheel-item .ava { width: 100%; height: 100%; border-radius: 50%; overflow: hidden; display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--bs-body-bg) 75%, #f0f0f3 25%); } .wheel-item .ava img { width: 100%; height: 100%; object-fit: cover; display: block; } .wheel-item .ava i { font-size: calc(var(--ava-size) * .55); color: var(--bs-secondary-color); } /* ───────────────────────────────────────────────────────────── WHEEL FOCUS (ЦЕНТРАЛЬНЫЙ ЭЛЕМЕНТ) ────────────────────────────────────────────────────────────── */ .wheel-focus { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: var(--bs-body-bg); } .wheel-focus .focus-inner { width: 100%; height: 100%; border-radius: 50%; overflow: hidden; display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--bs-body-bg) 85%, #e9ecef 15%); } .wheel-focus img { width: 100%; height: 100%; object-fit: cover; display: none; } .wheel-focus [data-focus-fallback] { display: none; font-size: calc(var(--wheel-size) * .35); color: var(--bs-secondary-color); } /* ───────────────────────────────────────────────────────────── SCROLL ARC (ПРОГРЕСС-ИНДИКАТОР) ────────────────────────────────────────────────────────────── */ .scroll-arc { position: absolute; inset: 0; pointer-events: none; } .arc-track { fill: none; stroke: var(--arc-track); stroke-width: var(--arc-width); stroke-linecap: round; } .arc-prog { fill: none; stroke: var(--arc-prog); stroke-width: var(--arc-width); stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset .12s linear; } /* ───────────────────────────────────────────────────────────── TEAM INFO ────────────────────────────────────────────────────────────── */ .team-info { text-align: center; }