From f3c9ab860ea67fe89247d4022d5e09b852e27d0c Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Tue, 14 Apr 2026 20:26:04 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20sound=20system=20=E2=80=94=2012=20new?= =?UTF-8?q?=20sounds=20+=20navigation=20category;=20dashboard=20FAB=20widg?= =?UTF-8?q?et=20button?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sounds: - UI: modal_open, modal_close, tab_switch, delete - Navigation (new category): page_enter, section_reveal - Classroom: timer_warning, wb_clear, file_shared - Gamification: challenge_complete, daily_login - Quiz: time_up, quiz_bonus Dashboard: - Widget configurator moved from header to fixed FAB (bottom-right) no longer pushed off-screen by wide sidebar Profile settings: - Added Navigation category toggle - Expanded preview section: 12 test buttons covering all categories Co-Authored-By: Claude Sonnet 4.6 --- frontend/dashboard.html | 65 +++++++++++++++----------------- frontend/profile.html | 66 +++++++++++++++++++++++++++----- js/sound.js | 83 ++++++++++++++++++++++++++++++++++++++++- 3 files changed, 169 insertions(+), 45 deletions(-) diff --git a/frontend/dashboard.html b/frontend/dashboard.html index 4c33e4d..542a8cc 100644 --- a/frontend/dashboard.html +++ b/frontend/dashboard.html @@ -1167,39 +1167,37 @@ /* Heatmap popup always right-anchored */ .hm-day-popup { right: 10px !important; left: auto !important; top: auto !important; } } - /* ── Widget configurator ── */ - .dash-cfg-btn { - margin-left: auto; flex-shrink: 0; - display: none; /* shown only for students via JS */ - align-items: center; gap: 6px; - padding: 6px 12px; border-radius: 8px; - background: rgba(155,93,229,0.13); border: 1px solid rgba(155,93,229,0.3); - color: #9B5DE5; font-size: 0.78rem; font-weight: 600; cursor: pointer; - transition: background .15s; + /* ── Widget configurator FAB ── */ + .dash-cfg-fab { + display: none; /* shown for students via JS */ + position: fixed; bottom: 88px; right: 20px; z-index: 80; + width: 44px; height: 44px; border-radius: 50%; + background: #9B5DE5; border: none; cursor: pointer; + box-shadow: 0 4px 16px rgba(155,93,229,0.45); + align-items: center; justify-content: center; + transition: transform .15s, box-shadow .15s; } - .dash-cfg-btn:hover { background: rgba(155,93,229,0.22); } - .dash-cfg-btn svg { width: 14px; height: 14px; flex-shrink: 0; } + .dash-cfg-fab:hover { transform: scale(1.08); box-shadow: 0 6px 24px rgba(155,93,229,0.55); } + .dash-cfg-fab svg { width: 20px; height: 20px; color: #fff; flex-shrink: 0; } .dash-cfg-panel { - display: none; position: absolute; top: calc(100% + 6px); right: 0; + display: none; position: fixed; bottom: 140px; right: 20px; background: #1e1b2e; border: 1px solid rgba(155,93,229,0.3); - border-radius: 12px; padding: 12px; min-width: 210px; z-index: 50; - box-shadow: 0 8px 24px rgba(0,0,0,.35); + border-radius: 14px; padding: 14px; min-width: 220px; z-index: 81; + box-shadow: 0 8px 32px rgba(0,0,0,.45); } .dash-cfg-panel.open { display: block; } .dash-cfg-title { font-size: 0.72rem; font-weight: 700; color: #9B5DE5; - text-transform: uppercase; letter-spacing: .5px; margin-bottom: 8px; + text-transform: uppercase; letter-spacing: .5px; margin-bottom: 10px; } .dash-cfg-row { display: flex; align-items: center; justify-content: space-between; - padding: 6px 4px; border-radius: 6px; cursor: pointer; + padding: 7px 4px; border-radius: 6px; cursor: pointer; } .dash-cfg-row:hover { background: rgba(255,255,255,.05); } - .dash-cfg-row label { - font-size: 0.82rem; color: #e2e8f0; cursor: pointer; flex: 1; - } + .dash-cfg-row label { font-size: 0.83rem; color: #e2e8f0; cursor: pointer; flex: 1; } .dash-cfg-row input[type=checkbox] { accent-color: #9B5DE5; width: 15px; height: 15px; cursor: pointer; } - .dash-cfg-wrap { position: relative; } + .dash-cfg-wrap { display: contents; } @@ -1222,20 +1220,19 @@
-
- -
-
Показывать виджеты
-
-
-
-
-
-
-
+ + + + +
+
Показывать виджеты
+
+
+
+
+
diff --git a/frontend/profile.html b/frontend/profile.html index 4985064..e9ff09d 100644 --- a/frontend/profile.html +++ b/frontend/profile.html @@ -819,7 +819,7 @@
Звуки системы
-
Уведомления, геймификация, classroom, квизы
+
Синтезированные — не требуют загрузки файлов
@@ -854,7 +854,7 @@
Интерфейс
-
Клики, успех, ошибки, уведомления
+
Клики, модальные окна, удаление, уведомления
+ +
+
+
Навигация
+
Переходы между страницами и секциями
+
+ +
+
Classroom
-
Урок, участники, чат, рука, рисование
+
Урок, участники, таймер, доска, файлы