feat: 前端 UI 重构——清新自然风设计系统

统一全部页面视觉风格:绿色主色调(#4caf50)、暖象牙白背景(#faf8f5)、
圆角柔和阴影、Element Plus 组件主题覆盖。新增 CSS 设计令牌文件
tokens.css,重写 16 个 Vue 文件的 scoped 样式。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
nojava
2026-05-19 04:32:22 +08:00
parent d0052d9b63
commit 1bce12927e
18 changed files with 874 additions and 213 deletions
+42 -5
View File
@@ -145,15 +145,52 @@ onBeforeUnmount(() => {
<style scoped>
.article-editor { max-width: 900px; }
.editor-wrapper { border: 1px solid #dcdfe6; border-radius: 4px; width: 100%; }
.toolbar { padding: 8px; border-bottom: 1px solid #dcdfe6; background: #fafafa; }
.editor-content { min-height: 400px; padding: 16px; }
.editor-content :deep(.tiptap) { outline: none; min-height: 360px; }
.article-editor h2 {
color: var(--color-primary-800);
font-size: var(--font-size-xl);
margin-bottom: var(--spacing-xl);
}
.editor-wrapper {
border: 1px solid var(--border-color);
border-radius: var(--radius-md);
width: 100%;
overflow: hidden;
transition: border-color var(--transition-fast);
}
.editor-wrapper:focus-within {
border-color: var(--color-primary);
box-shadow: 0 0 0 2px var(--color-primary-light);
}
.toolbar {
padding: var(--spacing-sm) var(--spacing-md);
border-bottom: 1px solid var(--border-color-light);
background: var(--bg-soft);
}
.editor-content { min-height: 400px; padding: var(--spacing-lg); }
.editor-content :deep(.tiptap) {
outline: none;
min-height: 360px;
font-size: var(--font-size-md);
line-height: var(--line-height-loose);
}
.editor-content :deep(.tiptap p.is-editor-empty:first-child::before) {
content: attr(data-placeholder);
float: left;
color: #adb5bd;
color: var(--text-placeholder);
pointer-events: none;
height: 0;
}
.editor-content :deep(.tiptap h1),
.editor-content :deep(.tiptap h2),
.editor-content :deep(.tiptap h3) {
color: var(--text-primary);
margin-top: var(--spacing-lg);
margin-bottom: var(--spacing-sm);
}
.editor-content :deep(.tiptap blockquote) {
border-left: 4px solid var(--color-primary-300);
padding-left: var(--spacing-lg);
color: var(--text-secondary);
margin: var(--spacing-md) 0;
}
</style>