From ac618b3fb1b41564371833b06bdb39ca2af381cb Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Fri, 5 Jun 2026 14:15:59 +0300 Subject: [PATCH] =?UTF-8?q?feat(pet):=20=D0=BA=D0=B0=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D0=BC=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B2=D1=8B=D0=BD?= =?UTF-8?q?=D0=B5=D1=81=D0=B5=D0=BD=D0=B0=20=D0=B2=20=D0=BC=D0=BE=D0=B4?= =?UTF-8?q?=D0=B0=D0=BB=D0=BA=D1=83-=C2=AB=D0=B3=D0=B0=D1=80=D0=B4=D0=B5?= =?UTF-8?q?=D1=80=D0=BE=D0=B1=D0=BD=D1=83=D1=8E=C2=BB=20=D1=81=20=D0=B6?= =?UTF-8?q?=D0=B8=D0=B2=D1=8B=D0=BC=20=D0=BF=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Кнопка «Нарядить» на сцене открывает модалку: слева крупное живое превью питомца (обновляется мгновенно при любой смене — аксессуар/цвет/узор/фон), справа вкладки Аксессуары/Цвет/Узор/Фон. Превью-сцена отражает выбранный фон. Закрытие крестиком, кликом по фону, Esc. Инлайн-карточка убрана со страницы; все рендереры идут через общий paintPet (сцена + превью). Co-Authored-By: Claude Opus 4.8 (1M context) --- frontend/pet.html | 151 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 111 insertions(+), 40 deletions(-) diff --git a/frontend/pet.html b/frontend/pet.html index 21d79a6..88b81cb 100644 --- a/frontend/pet.html +++ b/frontend/pet.html @@ -319,7 +319,31 @@ /* B3 — Rainbow collar keyframe */ @keyframes rbRot { to { transform:rotate(360deg); } } - /* ── Customize panel (полностью переработанный вид) ── */ + /* ── Гардеробная (модалка) ── */ + .wr-modal-overlay { position:fixed; inset:0; z-index:1100; display:flex; align-items:center; justify-content:center; + background:rgba(0,0,0,.66); backdrop-filter:blur(6px); padding:20px; animation:pcFade .2s ease; } + .wr-modal { width:780px; max-width:96vw; max-height:90vh; overflow:auto; background:var(--surface); + border:1.5px solid rgba(155,93,229,.22); border-radius:22px; box-shadow:0 30px 90px rgba(0,0,0,.55); padding:20px 22px 24px; } + .wr-modal-head { display:flex; align-items:center; gap:11px; margin-bottom:18px; } + .wr-modal-titles { flex:1; min-width:0; } + .wr-modal-close { width:32px; height:32px; border:none; background:rgba(255,255,255,.06); border-radius:9px; color:var(--text-2); + cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all .15s; } + .wr-modal-close svg { width:17px; height:17px; } + .wr-modal-close:hover { background:rgba(255,255,255,.12); color:var(--text); } + .wr-modal-body { display:grid; grid-template-columns:236px 1fr; gap:22px; align-items:start; } + .wr-modal-preview { display:flex; flex-direction:column; align-items:center; gap:8px; position:sticky; top:0; } + .wr-prev-scene { width:100%; aspect-ratio:1; border-radius:20px; display:flex; align-items:center; justify-content:center; + overflow:hidden; border:1.5px solid rgba(255,255,255,.08); background:linear-gradient(155deg,#0d0d1f,#1a1040); } + .wr-prev-scene svg { width:74%; height:auto; } + .wr-prev-name { font-family:'Unbounded',sans-serif; font-weight:800; font-size:.95rem; } + .wr-prev-evo { font-size:.7rem; color:var(--text-3); } + @media (max-width:640px) { + .wr-modal-body { grid-template-columns:1fr; gap:16px; } + .wr-modal-preview { position:static; } + .wr-prev-scene { max-width:190px; margin:0 auto; } + } + + /* ── Customize controls (внутри модалки) ── */ .pet-customize { background:linear-gradient(165deg,rgba(155,93,229,.10),rgba(6,214,224,.045)),var(--surface); border:1.5px solid rgba(155,93,229,.2); border-radius:20px; padding:16px 18px 20px; margin-bottom:18px; } .pc-head { display:flex; align-items:center; gap:11px; margin-bottom:15px; } @@ -463,6 +487,10 @@
облик растёт с XP — наведи, чтобы узнать, что добавляется на каждом уровне
+ - - - - -
-
Нажми, чтобы надеть или снять. Заблокированные открываются за достижения. По одному предмету на зону.
-
-
- - - - -
@@ -622,6 +617,53 @@
+ + +