style: 统一导航与目录的直角满行布局

This commit is contained in:
GouJ
2026-09-01 19:18:00 +08:00
parent 565442c9b1
commit ad37c8ab7c
6 changed files with 44 additions and 10 deletions
+20
View File
@@ -50,6 +50,26 @@ describe('统一目录条目', () => {
expect(css).toContain('grid-template-columns: clamp(240px, 22%, 280px) minmax(0, 1fr)')
})
it('侧栏与主体、镜头、剧集目录统一直角满行,保留文字内边距和移动端滚动', () => {
// happy-dom 无法计算伪元素几何,保护实际控制选中背景宽度的 CSS 规则。
const css = readFileSync('src/admin.css', 'utf8')
expect(css).toMatch(
/\.admin-sider \.n-menu \.n-menu-item-content::before\s*\{[^}]*left:\s*0;[^}]*right:\s*0;[^}]*border-radius:\s*0/
)
expect(css).toMatch(/\.directory-list-content\s*\{[^}]*padding:\s*8px 0 16px/)
expect(css).toMatch(/\.reader-directory-content\s*\{[^}]*padding:\s*4px 0 18px/)
expect(css).not.toMatch(/\.reader-directory-content\s*\{[^}]*padding-inline:\s*[1-9]/)
for (const selector of ['directory-item', 'reader-episode-link']) {
expect(css).toMatch(
new RegExp(
`\\.n-button\\.${selector}\\s*\\{[^}]*width:\\s*100%;[^}]*padding:\\s*12px 14px;[^}]*border-radius:\\s*0`
)
)
}
expect(css).toMatch(/\.directory-group-heading\s*\{[^}]*padding:\s*14px 14px 2px/)
expect(css).toMatch(/\.directory-list-content\s*\{[^}]*flex-direction:\s*row;[^}]*width:\s*max-content/)
})
it('导出工具栏与筛选器使用受约束的网格,不让 Tabs 和 Select 默认宽度强制换行', () => {
const css = readFileSync('src/admin.css', 'utf8')
expect(css).toMatch(/\.result-toolbar\s*\{[^}]*grid-template-columns:\s*minmax\(0, 1fr\) auto/)
+1 -1
View File
@@ -1,7 +1,7 @@
<script setup lang="ts">
import { NButton } from 'naive-ui'
/** 统一主体与镜头目录条目:编号、标题、状态各占独立层级,不裁切长标题。 */
/** 统一直角、横向铺满的主体与镜头目录;保留内部留白及完整标题。 */
defineProps<{ active: boolean }>()
</script>