Files
DndGamePlayer/app/renderer/shared/playerToken/PlayerTokenView.module.css
T
Ivan Fontosh 153be98780 fix(materials): синхронизация легенды и маркеров на превью и презентации
Легенда и цифры на материале масштабируются от экрана игроков и не обрезаются жёлтой рамкой. Переключение сцен без записи project.json на диск.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 10:57:50 +08:00

94 lines
1.6 KiB
CSS

.root {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
user-select: none;
}
.circle {
position: relative;
border-radius: 50%;
border: 4px solid #c9a227;
overflow: hidden;
background: #18181b;
box-shadow: 0 4px 18px rgba(0, 0, 0, 0.45);
flex-shrink: 0;
}
.circlePan {
cursor: grab;
touch-action: none;
}
.circlePan:active {
cursor: grabbing;
}
.circlePick {
cursor: pointer;
}
.circleDrop {
border-color: var(--accent, #a78bfa);
box-shadow: 0 0 0 3px var(--accent-fill-soft, rgba(167, 139, 250, 0.28));
}
/* Width/height set in JS (syncAvatarCoverSize) for aspect-preserving cover.
Do not force a square img box — that cropped tall/wide photos before pan/zoom. */
.avatar {
position: absolute;
left: 50%;
top: 50%;
max-width: none;
max-height: none;
object-fit: fill;
pointer-events: none;
}
.avatarEmpty {
position: absolute;
inset: 0;
background: repeating-linear-gradient(
-45deg,
#27272a,
#27272a 6px,
#3f3f46 6px,
#3f3f46 12px
);
}
.avatarEmptySolid {
background: #18181b;
}
.avatarEmptyHint {
position: absolute;
inset: 12px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
font-size: 11px;
font-weight: 700;
line-height: 1.35;
color: var(--text2, #a1a1aa);
pointer-events: none;
user-select: none;
}
.namePlate {
width: max-content;
min-width: 100%;
max-width: none;
padding: 4px 10px;
border-radius: 6px;
background: rgba(9, 9, 11, 0.88);
color: #fafafa;
font-size: 12px;
font-weight: 600;
line-height: 1.3;
text-align: center;
white-space: nowrap;
}