:root { --main-bg: #f6f8fa; --sidebar-bg: #fff; --sidebar-border: #e5e7eb; --sidebar-active: #2563eb; --sidebar-hover: #e8f0fe; --sidebar-title: #6b7280; --sidebar-text: #374151; --content-bg: #fff; --content-shadow: 0 4px 24px 0 rgba(30, 34, 54, 0.08); --content-radius: 16px; --main-font: 'Inter', 'Segoe UI', 'Roboto', 'Arial', sans-serif; --main-link: #2563eb; --main-link-hover: #1d4ed8; --main-title: #1e293b; --main-subtitle: #374151; --main-border: #e5e7eb; --main-muted: #6b7280; } body { background: var(--main-bg); min-height: 100vh; font-family: var(--main-font); color: var(--main-subtitle); letter-spacing: 0.01em; } /* 顶部导航栏品牌化美化 */ .VPNavBar { justify-content: center !important; align-items: center !important; min-height: 64px; box-shadow: 0 2px 8px 0 rgba(30, 34, 54, 0.04); border-bottom: 1px solid #e5e7eb; } .VPNavBar .title { font-size: 1.5rem !important; font-weight: 800 !important; color: #1e293b !important; margin: 0 auto !important; letter-spacing: 0.01em; display: flex; align-items: center; gap: 0.6rem; } .VPNavBar .VPNavBarMenu { margin-left: auto !important; } .VPNavBar .VPNavBarMenuLink { font-size: 1.1rem; } @media (max-width: 700px) { .VPNavBar .title { font-size: 1.1rem !important; gap: 0.3rem; } .VPNavBar .VPNavBarMenuLink { font-size: 1rem; } .VPNavBar { min-height: 48px; padding: 0 0.5rem; } } /* 侧边栏 */ .VPSidebar { background: var(--sidebar-bg) !important; border-right: 1px solid var(--sidebar-border); box-shadow: none; border-radius: 0 0 0 0; backdrop-filter: none; } /* 侧边栏菜单项 */ .VPSidebar .item { color: var(--sidebar-text); background: transparent !important; border-radius: 10px; margin: 0.3rem 0.8rem; transition: all 0.18s cubic-bezier(.4,0,.2,1); font-weight: 500; box-shadow: none; border: none; } .VPSidebar .item:hover { background: var(--sidebar-hover) !important; color: var(--sidebar-active) !important; transform: translateX(4px); } .VPSidebar .item.active { background: var(--sidebar-active) !important; color: #fff !important; font-weight: 700; } .VPSidebar .group .title { color: var(--sidebar-title); font-size: 0.92rem; font-weight: 700; letter-spacing: 0.08em; margin: 1.2rem 0 0.5rem 1.2rem; text-shadow: none; } /* 内容区卡片化 */ .VPContent { background: var(--content-bg); border-radius: var(--content-radius); box-shadow: var(--content-shadow); padding: 2.2rem 2.2rem 2rem 2.2rem; margin: 2rem 2vw; border: 1px solid var(--main-border); backdrop-filter: none; } /* 标题 */ h1, h2 { color: var(--main-title); font-weight: 800; letter-spacing: 0.01em; } h3, h4, h5, h6 { color: var(--main-subtitle); font-weight: 700; } /* 链接 */ a { color: var(--main-link); text-decoration: none; transition: color 0.2s; } a:hover { color: var(--main-link-hover); } /* 表格 */ table { background: #fff; border-radius: 10px; box-shadow: 0 2px 8px 0 rgba(30, 34, 54, 0.04); border: 1px solid var(--main-border); overflow: hidden; } th, td { padding: 0.8rem 1.2rem; border: none; } th { color: var(--main-title); background: #f3f4f6; } td { color: var(--main-subtitle); } /* 引用块 */ blockquote { border-left: 4px solid var(--main-link); background: #f3f4f6; color: var(--main-muted); border-radius: 0 10px 10px 0; box-shadow: none; } /* 按钮 */ button { background: #f4f6fa; color: #2563eb; border: none; border-radius: 8px; box-shadow: 0 2px 8px 0 rgba(30,34,54,0.06); font-weight: 600; font-size: 1.05em; padding: 0.7rem 1.6rem; cursor: pointer; transition: background 0.18s, color 0.18s, box-shadow 0.18s; } button:hover, button:active { background: #2563eb; color: #fff; box-shadow: 0 4px 16px rgba(37,99,235,0.10); } /* 滚动条 */ ::-webkit-scrollbar { width: 8px; height: 0px; /* 隐藏水平滚动条 */ background: #f3f4f6; } ::-webkit-scrollbar-thumb { background: #b0b4ba; border-radius: 8px; transition: background 0.2s; } ::-webkit-scrollbar-thumb:hover { background: #888c94; } ::-webkit-scrollbar-corner { background: #f3f4f6; } /* 通用隐藏水平滚动条 */ body, html, .VPContent, .VPSidebar { overflow-x: hidden !important; } /* 响应式适配 */ @media (max-width: 900px) { .VPContent { padding: 1rem 0.5rem; margin: 1rem 0.5vw; } .VPSidebar { border-radius: 0 !important; } } /* 隐藏主题切换按钮 */ .VPNav .VPNavBar .content .content-body .VPNavBarMenuLink.theme { display: none; } /* 隐藏主题切换面板 */ .VPSwitchAppearance { display: none !important; } /* 防止锚点定位时出现白色补白 */ .VPDoc .content { margin-top: 0 !important; padding-top: 0 !important; } /* 已移除自定义代码块样式,恢复 VitePress 默认代码高亮 */ /* 首页隐藏侧边栏、页脚、目录等 */ body.home .VPSidebar, body.home .VPDocFooter, body.home .VPDocAside, body.home .VPDocOutline, body.home .VPContent .VPNav, body.home .VPContent .VPDocFooter, body.home .VPContent .VPDocOutline { display: none !important; } body.home .VPContent { max-width: 900px; margin: 0 auto; padding: 0; box-shadow: none; border: none; background: transparent; } /* 首页整体居中美化 */ .blog-home-wrapper { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 70vh; padding-top: 4vh; } .blog-home-title { font-size: 2.8rem; font-weight: 800; color: #1e293b; margin-bottom: 1.2rem; letter-spacing: 0.01em; } .blog-home-desc { font-size: 1.25rem; color: #374151; margin-bottom: 2.5rem; } .blog-home-cards { display: flex; gap: 2.2rem; flex-wrap: wrap; justify-content: center; } .blog-home-card { display: flex; flex-direction: column; align-items: center; min-width: 240px; max-width: 320px; background: #fff; border-radius: 18px; box-shadow: 0 4px 24px rgba(30,34,54,0.08); padding: 2.2rem 1.5rem; text-decoration: none; transition: box-shadow .2s, transform .2s; border: 1.5px solid #f3f4f6; } .blog-home-card .icon { font-size: 2.5rem; margin-bottom: 0.8rem; } .blog-home-card .title { font-size: 1.4rem; font-weight: 700; margin-bottom: 0.5rem; color: #2563eb; } .blog-home-card .desc { font-size: 1rem; color: #6b7280; opacity: .92; } .blog-home-card.tech { background: linear-gradient(135deg, #2563eb 0%, #60a5fa 100%); color: #fff; border: none; } .blog-home-card.tech .title { color: #fff; } .blog-home-card.tech .desc { color: #e0e6ff; } .blog-home-card.share { border: 1.5px solid #2563eb; } .blog-home-card:hover { transform: translateY(-8px) scale(1.03); box-shadow: 0 8px 32px rgba(37,99,235,0.10); } @media (max-width: 700px) { .blog-home-cards { flex-direction: column; gap: 1.2rem; } .blog-home-wrapper { padding-top: 2vh; } } /* WordPress风格首页美化 */ .wp-home-wrapper { max-width: 900px; margin: 0 auto; padding: 0 1.5rem 3rem 1.5rem; display: flex; flex-direction: column; align-items: center; } .wp-home-header { display: flex; align-items: center; gap: 2rem; margin-top: 4rem; margin-bottom: 3rem; } .wp-home-avatar { width: 90px; height: 90px; border-radius: 50%; box-shadow: 0 2px 12px rgba(30,34,54,0.10); border: 3px solid #fff; background: #f3f4f6; } .wp-home-title { font-size: 2.4rem; font-weight: 800; color: #1e293b; margin-bottom: 0.5rem; letter-spacing: 0.01em; } .wp-home-desc { font-size: 1.15rem; color: #374151; margin-bottom: 0; } .wp-home-cards { display: flex; gap: 2.2rem; flex-wrap: wrap; justify-content: center; width: 100%; } .wp-home-card { display: flex; flex-direction: column; align-items: center; min-width: 240px; max-width: 340px; background: #fff; border-radius: 18px; box-shadow: 0 4px 24px rgba(30,34,54,0.08); padding: 2.2rem 1.5rem 2rem 1.5rem; text-decoration: none; transition: box-shadow .2s, transform .2s; border: 1.5px solid #f3f4f6; margin-bottom: 1.5rem; } .wp-home-card-icon { font-size: 2.5rem; margin-bottom: 0.8rem; } .wp-home-card-title { font-size: 1.3rem; font-weight: 700; margin-bottom: 0.5rem; color: #2563eb; } .wp-home-card-desc { font-size: 1rem; color: #6b7280; opacity: .92; margin-bottom: 1.2rem; text-align: center; } .wp-home-card-btn { display: inline-block; background: #2563eb; color: #fff; border-radius: 8px; padding: 0.6rem 1.4rem; font-weight: 600; font-size: 1.05em; box-shadow: 0 2px 8px 0 rgba(30, 34, 54, 0.08); border: none; text-decoration: none; transition: background 0.18s, color 0.18s, box-shadow 0.18s; } .wp-home-card-btn:hover { background: #1d4ed8; color: #fff; box-shadow: 0 4px 16px rgba(37,99,235,0.10); } .wp-home-card-btn-outline { background: #fff; color: #2563eb; border: 1.5px solid #2563eb; } .wp-home-card-btn-outline:hover { background: #2563eb; color: #fff; } @media (max-width: 700px) { .wp-home-header { flex-direction: column; gap: 1.2rem; margin-top: 1.2rem; margin-bottom: 1.2rem; align-items: center; } .wp-home-avatar { width: 64px; height: 64px; } .wp-home-title { font-size: 1.4rem; text-align: center; } .wp-home-desc { font-size: 1rem; text-align: center; } .wp-home-cards { flex-direction: column; gap: 1.2rem; width: 100%; align-items: center; } .wp-home-card { min-width: unset; max-width: 98vw; width: 100%; padding: 1.2rem 0.5rem 1.2rem 0.5rem; margin-bottom: 0.8rem; } .wp-home-card-title { font-size: 1.1rem; } .wp-home-card-desc { font-size: 0.95rem; } .wp-home-card-btn, .wp-home-card-btn-outline { font-size: 1rem; padding: 0.5rem 1rem; } .wp-home-wrapper { padding: 0 0.2rem 1.2rem 0.2rem; min-height: unset; } } body.home { background: url('https://img1.doubanio.com/view/photo/l/public/p2614988096.webp') center center/cover no-repeat fixed !important; position: relative; } body.home::before { content: ''; position: fixed; left: 0; top: 0; right: 0; bottom: 0; background: rgba(255,255,255,0.72); z-index: 0; pointer-events: none; } .wp-home-wrapper, .blog-home-wrapper { position: relative; z-index: 1; } body.home .VPSwitchBackToTop, body.home .VPBackToTop { display: none !important; } /* 全局美化 VitePress 移动端菜单按钮 */ /* 主菜单、三点、锚点、侧边栏等所有按钮统一风格 */ .VPNavBarMenu button, .VPNavBarMenu .VPNavBarMenuGroupBtn, .VPNavBarMenu .VPNavBarMenuLink { background: #fff !important; color: #1e293b !important; border-radius: 10px !important; border: 1.5px solid #e5e7eb !important; box-shadow: 0 2px 8px 0 rgba(30,34,54,0.08) !important; min-width: 44px; min-height: 44px; position: relative; overflow: visible; } /* 强制显示按钮内的svg图标 */ .VPNavBarMenu button svg, .VPNavBarMenu .VPNavBarMenuGroupBtn svg, .VPNavBarMenu .VPNavBarMenuLink svg { display: inline-block !important; opacity: 1 !important; color: #1e293b !important; fill: #1e293b !important; width: 1.6em !important; height: 1.6em !important; vertical-align: middle; } /* 如果按钮内容为空,给个默认icon(仅兜底,正常不会触发) */ .VPNavBarMenu button:empty::after, .VPNavBarMenu .VPNavBarMenuGroupBtn:empty::after { content: '\\22EE'; /* 竖向三点 ⋮ */ color: #1e293b; font-size: 2em; display: block; text-align: center; line-height: 44px; } /* 只在小屏显示汉堡菜单按钮,大屏隐藏 */ .VPNavBarHamburger { display: none !important; } @media (max-width: 700px) { .VPNavBarHamburger { display: flex !important; } } /* 只美化移动端汉堡菜单按钮 */ button.VPNavBarHamburger.hamburger { background: #fff !important; border-radius: 10px !important; border: 1.5px solid #e5e7eb !important; box-shadow: 0 2px 8px 0 rgba(30,34,54,0.08) !important; width: 44px; height: 44px; padding: 0 !important; display: flex; align-items: center; justify-content: center; } button.VPNavBarHamburger.hamburger .container { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 24px; width: 24px; } button.VPNavBarHamburger.hamburger .top, button.VPNavBarHamburger.hamburger .middle, button.VPNavBarHamburger.hamburger .bottom { display: block; width: 22px; height: 3px; background: #1e293b !important; /* 深色主色 */ border-radius: 2px; margin: 2.5px 0; transition: background 0.18s; }