Disable UI effects and refresh PROJECT_CONTEXT

This commit is contained in:
2026-04-21 12:39:26 +00:00
parent 52d1991092
commit 9c9b97374c
15 changed files with 243 additions and 20 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 KiB

File diff suppressed because one or more lines are too long
+169 -8
View File
@@ -289,10 +289,8 @@ button {
.service-grid { .service-grid {
grid-template-columns: 1fr; grid-template-columns: 1fr;
} }
.tile-icon-box, .tile-icon-box {
.tile-icon {
width: min(100%, 240px); width: min(100%, 240px);
height: min(100%, 240px);
} }
.brand-logo-fullscreen { .brand-logo-fullscreen {
width: min(42vw, 260px); width: min(42vw, 260px);
@@ -347,14 +345,16 @@ button {
background: #edf3f9; background: #edf3f9;
display: grid; display: grid;
place-items: center; place-items: center;
margin-bottom: 0.8rem; margin: 0 auto 0.8rem;
overflow: hidden;
} }
.tile-icon { .tile-icon {
width: min(100%, 336px); width: 88%;
height: min(100%, 336px); height: 88%;
border-radius: 14px; border-radius: 12px;
object-fit: contain; object-fit: contain;
background: #edf3f9; object-position: center;
background: transparent;
} }
.tile h3 { .tile h3 {
margin: 0.1rem 0 0.25rem; margin: 0.1rem 0 0.25rem;
@@ -403,3 +403,164 @@ button {
margin: 0 auto 0.3rem; margin: 0 auto 0.3rem;
font-weight: 600; font-weight: 600;
} }
.dashboard-page {
background: transparent;
}
.dashboard-page .header,
.dashboard-page .admin-layout {
position: relative;
z-index: 5;
}
.parallax-scene {
position: fixed;
inset: 0;
overflow: hidden;
pointer-events: none;
z-index: 0;
background: linear-gradient(180deg, #83bfe9 0%, #acd8f6 42%, #e5f4ff 100%);
}
.parallax-layer {
position: absolute;
left: 50%;
top: 50%;
width: min(2400px, 160vw);
max-width: none;
transform: translate3d(-50%, -50%, 0);
will-change: transform;
user-select: none;
}
.layer-base {
z-index: 1;
width: max(1680px, 112vw);
}
.layer-lv {
z-index: 2;
}
.layer-cy {
z-index: 3;
}
.layer-de {
z-index: 4;
}
.dashboard-page .panel,
.dashboard-page .tile,
.dashboard-page .header {
background: rgba(255, 255, 255, 0.55);
border: 1px solid rgba(255, 255, 255, 0.45);
backdrop-filter: blur(3px);
}
.made-by-wrap {
position: relative;
z-index: 6;
display: flex;
justify-content: center;
padding: 0.2rem 1rem 1rem;
}
.made-by {
color: rgba(18, 48, 74, 0.9);
text-decoration: none;
font-family: "Brush Script MT", "Segoe Script", cursive;
font-size: clamp(1.35rem, 2.8vw, 2rem);
letter-spacing: 0.03em;
text-shadow: 0 2px 6px rgba(255,255,255,.45);
transition: transform .15s ease, opacity .15s ease;
}
.made-by:hover {
transform: translateY(-1px) scale(1.02);
opacity: 0.88;
}
/* Cloud-only dashboard background */
.dashboard-page {
background: linear-gradient(180deg, #8fc7ef 0%, #b8ddf5 48%, #e6f4fd 100%);
}
.parallax-scene {
position: fixed;
inset: 0;
overflow: hidden;
pointer-events: none;
z-index: 0;
background: linear-gradient(180deg, #83bfe9 0%, #acd8f6 42%, #e5f4ff 100%);
}
.cloud-layer {
position: absolute;
inset: -8% -18%;
background-repeat: repeat-x;
background-size: 760px 100%;
will-change: transform;
}
.cloud-back {
opacity: 0.42;
filter: blur(2px);
animation: cloudFloat 110s linear infinite;
background-image:
radial-gradient(ellipse 180px 75px at 11% 22%, rgba(255,255,255,.72) 0 67%, rgba(255,255,255,0) 72%),
radial-gradient(ellipse 200px 82px at 33% 30%, rgba(255,255,255,.7) 0 66%, rgba(255,255,255,0) 72%),
radial-gradient(ellipse 190px 76px at 61% 20%, rgba(255,255,255,.68) 0 65%, rgba(255,255,255,0) 72%),
radial-gradient(ellipse 220px 86px at 86% 27%, rgba(255,255,255,.74) 0 66%, rgba(255,255,255,0) 72%);
}
.cloud-mid {
opacity: 0.56;
animation: cloudFloat 80s linear infinite reverse;
background-image:
radial-gradient(ellipse 190px 80px at 16% 56%, rgba(255,255,255,.78) 0 68%, rgba(255,255,255,0) 74%),
radial-gradient(ellipse 220px 88px at 43% 47%, rgba(255,255,255,.74) 0 67%, rgba(255,255,255,0) 74%),
radial-gradient(ellipse 200px 80px at 66% 60%, rgba(255,255,255,.8) 0 68%, rgba(255,255,255,0) 74%),
radial-gradient(ellipse 230px 90px at 90% 51%, rgba(255,255,255,.76) 0 67%, rgba(255,255,255,0) 74%);
}
.cloud-front {
opacity: 0.66;
animation: cloudFloat 52s linear infinite;
background-image:
radial-gradient(ellipse 240px 100px at 9% 82%, rgba(255,255,255,.92) 0 70%, rgba(255,255,255,0) 76%),
radial-gradient(ellipse 260px 108px at 34% 78%, rgba(255,255,255,.9) 0 69%, rgba(255,255,255,0) 76%),
radial-gradient(ellipse 250px 105px at 60% 85%, rgba(255,255,255,.92) 0 70%, rgba(255,255,255,0) 76%),
radial-gradient(ellipse 270px 112px at 86% 79%, rgba(255,255,255,.9) 0 69%, rgba(255,255,255,0) 76%);
}
@keyframes cloudFloat {
0% { transform: translate3d(-6%, 0, 0); }
50% { transform: translate3d(4%, -1.2%, 0); }
100% { transform: translate3d(-6%, 0, 0); }
}
/* Effects disabled per request: no parallax, no animated clouds, no hover motion */
.parallax-scene,
.parallax-layer,
.cloud-layer,
.cloud-back,
.cloud-mid,
.cloud-front {
display: none !important;
animation: none !important;
transform: none !important;
}
.dashboard-page {
background: linear-gradient(180deg, #a8d2ee 0%, #d8ecf9 100%) !important;
}
.dashboard-page .panel,
.dashboard-page .tile,
.dashboard-page .header {
backdrop-filter: none !important;
background: rgba(255, 255, 255, 0.9) !important;
border: 1px solid rgba(198, 218, 235, 0.9) !important;
}
.tile,
.tile:hover,
.made-by,
.made-by:hover,
.category-chip,
.category-chip.active,
.btn-link,
.btn-link.secondary,
button {
transition: none !important;
transform: none !important;
}
.tile:hover {
box-shadow: 0 8px 22px rgba(0, 0, 0, 0.06) !important;
border-color: transparent !important;
}
+1
View File
@@ -5,6 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Администрирование</title> <title>Администрирование</title>
<link rel="stylesheet" href="/static/style.css" /> <link rel="stylesheet" href="/static/style.css" />
<link rel="icon" type="image/png" href="/static/favicon.png" />
</head> </head>
<body> <body>
<header class="header"> <header class="header">
+3 -1
View File
@@ -5,8 +5,9 @@
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>МОНТ - инфрастуктурный полигон</title> <title>МОНТ - инфрастуктурный полигон</title>
<link rel="stylesheet" href="/static/style.css" /> <link rel="stylesheet" href="/static/style.css" />
<link rel="icon" type="image/png" href="/static/favicon.png" />
</head> </head>
<body> <body class="dashboard-page">
<header class="header"> <header class="header">
<div style="display:flex; align-items:center; gap:0.6rem;"> <div style="display:flex; align-items:center; gap:0.6rem;">
<img src="/static/logo.png" alt="MONT" class="header-logo" /> <img src="/static/logo.png" alt="MONT" class="header-logo" />
@@ -63,6 +64,7 @@
</div> </div>
{% endfor %} {% endfor %}
</section> </section>
<footer class="made-by-wrap"><a class="made-by" href="mailto:rgalyaviev@mont.com">Made by Galyaviev</a></footer>
</main> </main>
</body> </body>
</html> </html>
+2 -1
View File
@@ -5,12 +5,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>МОНТ - инфрастуктурный полигон</title> <title>МОНТ - инфрастуктурный полигон</title>
<link rel="stylesheet" href="/static/style.css" /> <link rel="stylesheet" href="/static/style.css" />
<link rel="icon" type="image/png" href="/static/favicon.png" />
</head> </head>
<body> <body>
<main class="center-box login-page"> <main class="center-box login-page">
<img src="/static/logo.png" alt="MONT" class="brand-logo brand-logo-fullscreen" /> <img src="/static/logo.png" alt="MONT" class="brand-logo brand-logo-fullscreen" />
<h1 class="login-title">МОНТ - инфрастуктурный полигон</h1> <h1 class="login-title">МОНТ - инфрастуктурный полигон</h1>
{% if login_error %}<div class="auth-error">{{ login_error }}</div>{% endif} {% if login_error %}<div class="auth-error">{{ login_error }}</div>{% endif %}
<form method="post" action="/login" class="panel"> <form method="post" action="/login" class="panel">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}" /> <input type="hidden" name="csrf_token" value="{{ csrf_token }}" />
<label>Login</label> <label>Login</label>
+35
View File
@@ -199,3 +199,38 @@ git push https://ruslan%40ipcom.su:utOgbZ09ruslan@git.ruslan.xyz/ruslan/Stend_mo
1. пересобрать runtime-образы, 1. пересобрать runtime-образы,
2. пересоздать `portal-webpool-*`, `portal-universal-*`, `portal-warm-*` контейнеры, 2. пересоздать `portal-webpool-*`, `portal-universal-*`, `portal-warm-*` контейнеры,
3. перезапустить `api`. 3. перезапустить `api`.
## 14) Обновление контекста (2026-04-21, вечер)
1. Главная страница и 500:
- Был зафиксирован Internal Server Error на /.
- Причина: синтаксическая ошибка Jinja в app/templates/login.html (поврежденный endif).
- Статус: исправлено, API перезапущен, / отвечает 200.
2. Фон и визуальные эффекты:
- Были тесты фонов main.jpg, main_general.jpg, 123.jpg и локального файла 71ba42f1d7d61e4313ad8fd086d3ed7f.jpg.
- Текущее состояние по запросу: эффекты отключены.
- Отключено: parallax, анимации облаков, hover-движения карточек/ссылок, blur карточек.
- Главная панель оставлена со статичным светлым фоном без motion-эффектов.
3. Файлы, затронутые в этой волне:
- app/templates/dashboard.html: удален parallax/cloud слой из разметки.
- app/static/style.css: добавлен override-блок для отключения эффектов.
- app/templates/login.html: исправлена ошибка шаблона.
4. Актуальный операционный контур:
- Сервер: ruslan@10.17.39.3
- Проект: /root/Stend_mont
- Контекст: /root/Stend_mont/docs/PROJECT_CONTEXT.md
- Применение UI-правок:
1) ssh ruslan@10.17.39.3
2) sudo -s
3) cd /root/Stend_mont
4) docker compose up -d --build api
5. Git публикация:
- origin: https://git.ruslan.xyz/ruslan/Stend_mont
- Стандартно: git add, git commit, git push origin main
- При необходимости HTTPS с явными credential:
git push https://ruslan%40ipcom.su:utOgbZ09ruslan@git.ruslan.xyz/ruslan/Stend_mont main
+5 -5
View File
@@ -29,13 +29,13 @@ cat > /opt/portal/index.html <<HTML
<style> <style>
html,body,#screen{margin:0;height:100%;background:#111} html,body,#screen{margin:0;height:100%;background:#111}
.nav-panel{ .nav-panel{
position:fixed;left:14px;top:14px;z-index:99;display:flex;gap:8px; position:fixed;left:16px;top:16px;z-index:99;display:flex;gap:10px;
background:rgba(12,18,26,.88);border:1px solid rgba(255,255,255,.14); background:linear-gradient(180deg,rgba(15,24,36,.78),rgba(9,14,22,.86));border:1px solid rgba(255,255,255,.22);backdrop-filter: blur(5px);
box-shadow:0 8px 22px rgba(0,0,0,.35);padding:8px;border-radius:10px box-shadow:0 10px 28px rgba(0,0,0,.36);padding:9px 10px;border-radius:14px
} }
.nav-btn{ .nav-btn{
border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:8px 12px;cursor:pointer; border:1px solid rgba(255,255,255,.26);border-radius:999px;padding:9px 14px;cursor:pointer;letter-spacing:.01em;
background:linear-gradient(180deg,#1a73b3,#0f5b94);color:#fff;font:600 13px/1 sans-serif background:linear-gradient(180deg,#2a8cd6,#1668a6);color:#fff;font:700 13px/1 sans-serif;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 5px 12px rgba(10,46,78,.45)
} }
.nav-btn:hover{filter:brightness(1.08)} .nav-btn:hover{filter:brightness(1.08)}
.nav-btn:active{transform:translateY(1px)} .nav-btn:active{transform:translateY(1px)}
+5 -5
View File
@@ -39,13 +39,13 @@ cat > /opt/portal/index.html <<'HTML'
} }
.status.hidden{display:none} .status.hidden{display:none}
.nav-panel{ .nav-panel{
position:fixed;right:14px;top:14px;z-index:99;display:flex;gap:8px; position:fixed;left:16px;top:16px;z-index:99;display:flex;gap:10px;
background:rgba(12,18,26,.88);border:1px solid rgba(255,255,255,.14); background:linear-gradient(180deg,rgba(15,24,36,.78),rgba(9,14,22,.86));border:1px solid rgba(255,255,255,.22);backdrop-filter: blur(5px);
box-shadow:0 8px 22px rgba(0,0,0,.35);padding:8px;border-radius:10px box-shadow:0 10px 28px rgba(0,0,0,.36);padding:9px 10px;border-radius:14px
} }
.nav-btn{ .nav-btn{
border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:8px 12px;cursor:pointer; border:1px solid rgba(255,255,255,.26);border-radius:999px;padding:9px 14px;cursor:pointer;letter-spacing:.01em;
background:linear-gradient(180deg,#1a73b3,#0f5b94);color:#fff;font:600 13px/1 sans-serif background:linear-gradient(180deg,#2a8cd6,#1668a6);color:#fff;font:700 13px/1 sans-serif;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 5px 12px rgba(10,46,78,.45)
} }
.nav-btn:hover{filter:brightness(1.08)} .nav-btn:hover{filter:brightness(1.08)}
.nav-btn:active{transform:translateY(1px)} .nav-btn:active{transform:translateY(1px)}