diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 541760c..82ddaae 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -6,7 +6,7 @@ on: - main env: - VERSION: 1.8.1 + VERSION: 1.8.2 jobs: # ЧАСТЬ 1: Собираем образы и кладем в Gitea (чтобы делиться с ребятами) diff --git a/Directory.Build.props b/Directory.Build.props index f7f5d8c..f16e202 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,6 +1,6 @@ - 1.8.1 + 1.8.2 net10.0 preview enable diff --git a/README.md b/README.md index 6dc73ad..82cbc7f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Проект разработан с упором на производительность, архитектуру Vertical Slice, Native AOT (для бота) и удобство развертывания с использованием .NET Aspire. -**Текущая версия:** `v1.8.1`. +**Текущая версия:** `v1.8.2`. --- diff --git a/compose.yaml b/compose.yaml index 82cec72..54184b1 100644 --- a/compose.yaml +++ b/compose.yaml @@ -17,7 +17,7 @@ services: retries: 10 bot: - image: git.codeanddice.ru/toutsu/gmrelay-bot:1.8.1 + image: git.codeanddice.ru/toutsu/gmrelay-bot:1.8.2 restart: always depends_on: db: @@ -29,7 +29,7 @@ services: - gmrelay web: - image: git.codeanddice.ru/toutsu/gmrelay-web:1.8.1 + image: git.codeanddice.ru/toutsu/gmrelay-web:1.8.2 restart: always depends_on: db: diff --git a/src/GmRelay.Web/Components/Layout/NavMenu.razor b/src/GmRelay.Web/Components/Layout/NavMenu.razor index dc1b9ea..babfc9e 100644 --- a/src/GmRelay.Web/Components/Layout/NavMenu.razor +++ b/src/GmRelay.Web/Components/Layout/NavMenu.razor @@ -56,7 +56,7 @@ - + diff --git a/src/GmRelay.Web/Components/Layout/NavMenu.razor.css b/src/GmRelay.Web/Components/Layout/NavMenu.razor.css index 1054027..3d649c4 100644 --- a/src/GmRelay.Web/Components/Layout/NavMenu.razor.css +++ b/src/GmRelay.Web/Components/Layout/NavMenu.razor.css @@ -56,13 +56,17 @@ .nav-section { padding: 0 0.75rem; flex: 1; + display: flex; + flex-direction: column; + gap: 0.25rem; } /* === Nav Items === */ -.nav-item { +.nav-section ::deep .nav-item { display: flex; align-items: center; gap: 0.75rem; + width: 100%; padding: 0.625rem 0.875rem; border-radius: var(--radius-sm); color: var(--text-secondary); @@ -70,16 +74,16 @@ font-size: 0.875rem; font-weight: 500; transition: all var(--transition-normal); - margin-bottom: 0.125rem; + white-space: nowrap; + box-sizing: border-box; } -.nav-item:hover { +.nav-section ::deep .nav-item:hover { background: rgba(255, 255, 255, 0.06); color: var(--text-primary); } -.nav-item.active, -.nav-item ::deep a.active { +.nav-section ::deep .nav-item.active { background: rgba(124, 58, 237, 0.15); color: var(--accent-primary); border: 1px solid rgba(124, 58, 237, 0.2); diff --git a/src/GmRelay.Web/wwwroot/app.css b/src/GmRelay.Web/wwwroot/app.css index a8e9c63..23f5215 100644 --- a/src/GmRelay.Web/wwwroot/app.css +++ b/src/GmRelay.Web/wwwroot/app.css @@ -1,5 +1,5 @@ /* ============================================ - GM-Relay Design System v1.8.1 + GM-Relay Design System v1.8.2 Dark RPG Dashboard Theme ============================================ */ diff --git a/tests/GmRelay.Bot.Tests/Web/CampaignTemplatesNavigationTests.cs b/tests/GmRelay.Bot.Tests/Web/CampaignTemplatesNavigationTests.cs index 653c2b9..bdc80fc 100644 --- a/tests/GmRelay.Bot.Tests/Web/CampaignTemplatesNavigationTests.cs +++ b/tests/GmRelay.Bot.Tests/Web/CampaignTemplatesNavigationTests.cs @@ -11,6 +11,20 @@ public sealed class CampaignTemplatesNavigationTests Assert.Contains("Шаблоны", navMenu, StringComparison.Ordinal); } + [Fact] + public async Task NavMenuStyles_ShouldStyleNavLinkAnchorsAsStackedRows() + { + var navCss = await File.ReadAllTextAsync(FindRepositoryFile("src/GmRelay.Web/Components/Layout/NavMenu.razor.css")); + + Assert.Contains("::deep .nav-item", navCss, StringComparison.Ordinal); + Assert.Matches( + @"\.nav-section\s*\{[^}]*display:\s*flex;[^}]*flex-direction:\s*column;[^}]*gap:\s*0\.25rem;", + navCss); + Assert.Matches( + @"::deep\s+\.nav-item\s*\{[^}]*display:\s*flex;[^}]*width:\s*100%;", + navCss); + } + [Fact] public async Task GroupDetails_ShouldApplyTemplatesWithoutManagingThem() {