feat(students): аватары в списке студентов с превью и лайтбоксом
Круглый аватар слева от поля имени: миниатюра главного фото через thumbSrc, иначе инициалы. Клик по фото открывает imgModal с полным размером, клик по пустому — карточку профиля для загрузки. Аватар синхронизируется после загрузки, смены и удаления фото.
This commit is contained in:
@@ -161,6 +161,13 @@ body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;b
|
||||
.item .name-input:focus{border-color:var(--accent)}
|
||||
.item .group-select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:4px 8px;font-size:.8rem;outline:none;max-width:200px}
|
||||
.item .group-select:focus{border-color:var(--accent)}
|
||||
.student-main{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
|
||||
.student-main .name-input{flex:1;min-width:0}
|
||||
.student-avatar{width:40px;height:40px;flex:0 0 auto;border-radius:50%;overflow:hidden;border:1px solid var(--border);background:var(--bg);padding:0;cursor:zoom-in;display:flex;align-items:center;justify-content:center;transition:border-color .15s,opacity .15s}
|
||||
.student-avatar img{width:100%;height:100%;object-fit:cover;display:block}
|
||||
.student-avatar:hover{border-color:var(--accent);opacity:.9}
|
||||
.student-avatar.empty{cursor:pointer;border-style:dashed}
|
||||
.student-avatar.empty span{font-size:.75rem;font-weight:700;color:var(--muted);letter-spacing:.02em;user-select:none}
|
||||
.item.expired{opacity:.6;border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.03)}
|
||||
.item.expired:hover{opacity:.85}
|
||||
.badge-expired{display:inline-block;font-size:.68rem;font-weight:700;line-height:1;padding:3px 8px;border-radius:999px;background:rgba(239,68,68,.12);color:#ef4444;vertical-align:middle;margin-left:6px}
|
||||
|
||||
Reference in New Issue
Block a user