Files
laralog/themes/modern/assets/style.css
T

173 lines
9.7 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* ============ Modern 简约主题 ============ */
:root {
--bg: #fafafa;
--card: #fff;
--text: #1a1a1a;
--muted: #767676;
--accent: #e74c3c;
--border: #eaeaea;
}
@media (prefers-color-scheme: dark) {
:root {
--bg: #151515;
--card: #1e1e1e;
--text: #e8e8e8;
--muted: #9a9a9a;
--accent: #ff6b5e;
--border: #2c2c2c;
}
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: var(--bg); color: var(--text); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; font-size: 16px; line-height: 1.8; }
a { color: var(--accent); text-decoration: none; }
a:hover { opacity: 0.8; }
.m-container { max-width: 720px; margin: 0 auto; padding: 0 20px; }
.m-header { border-bottom: 1px solid var(--border); background: var(--card); }
.m-header .m-container { display: flex; justify-content: space-between; align-items: center; padding: 18px 20px; }
.m-logo { font-size: 22px; font-weight: 800; letter-spacing: 1px; color: var(--text); }
.m-nav { display: flex; gap: 18px; font-size: 14px; align-items: center; }
.m-nav a.active { font-weight: 700; }
.m-link-btn { background: none; border: none; color: var(--accent); font-size: 14px; cursor: pointer; padding: 0; }
.m-search input { padding: 7px 12px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); color: var(--text); font-size: 14px; width: 140px; }
.inline-form { display: inline; }
.main-layout { display: flex; gap: 32px; align-items: flex-start; max-width: 1080px; margin: 0 auto; padding: 36px 20px; }
.main-layout .content { flex: 1; min-width: 0; max-width: 720px; }
.main-layout .sidebar { width: 300px; flex-shrink: 0; }
.post-card, .post-full, .comments-section { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 26px 30px; margin-bottom: 22px; }
.post-card.sticky { box-shadow: inset 3px 0 0 var(--accent); }
.post-title { font-size: 20px; margin-bottom: 8px; line-height: 1.45; }
.post-card .post-title a { color: var(--text); }
.badge { background: var(--accent); color: #fff; font-size: 11px; padding: 2px 7px; border-radius: 3px; margin-right: 6px; vertical-align: 2px; }
.post-meta { color: var(--muted); font-size: 13px; margin-bottom: 12px; }
.post-excerpt { color: var(--muted); }
.post-footer { margin-top: 12px; display: flex; gap: 12px; flex-wrap: wrap; font-size: 14px; }
.read-more { font-weight: 600; }
.post-full .post-title { font-size: 28px; }
.post-content { margin-top: 14px; }
.post-content img { max-width: 100%; border-radius: 8px; }
.post-content pre { background: #0d1117; color: #c9d1d9; padding: 16px; border-radius: 8px; overflow-x: auto; margin: 14px 0; }
.post-content code { background: rgba(128,128,128,.15); padding: 2px 6px; border-radius: 4px; font-size: 14px; }
.post-content pre code { background: none; padding: 0; }
.post-content blockquote { border-left: 3px solid var(--accent); padding-left: 16px; color: var(--muted); margin: 14px 0; }
.post-content h1, .post-content h2, .post-content h3 { margin: 20px 0 8px; }
.post-cover { margin: -26px -30px 18px; border-radius: 12px 12px 0 0; overflow: hidden; }
.post-cover img { width: 100%; display: block; max-height: 380px; object-fit: cover; }
.tag-link { color: var(--accent); font-size: 14px; margin-right: 8px; }
.comments-section { margin-top: 8px; }
.section-title { font-size: 17px; margin-bottom: 14px; }
.comment { padding: 12px 0; border-bottom: 1px solid var(--border); }
.comment:last-of-type { border-bottom: none; }
.comment-head { font-size: 14px; margin-bottom: 4px; }
.comment-time { color: var(--muted); font-size: 13px; }
.comment-body { color: var(--text); font-size: 15px; }
.comment-form { margin-top: 14px; }
.form-row { margin-bottom: 12px; }
.form-row label { display: block; font-size: 14px; margin-bottom: 4px; color: var(--muted); }
.form-row input, .form-row textarea { width: 100%; padding: 10px 14px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); color: var(--text); font-size: 15px; font-family: inherit; }
.honeypot { position: absolute; left: -9999px; opacity: 0; }
.error { color: var(--accent); font-size: 13px; }
.btn { background: var(--accent); color: #fff; border: none; padding: 10px 24px; border-radius: 8px; font-size: 15px; cursor: pointer; }
.alert { padding: 12px 18px; border-radius: 8px; margin-bottom: 16px; font-size: 14px; }
.alert-success { background: rgba(46,160,67,.12); color: #2ea043; }
.alert-error { background: rgba(248,81,73,.12); color: #f85149; }
.empty { color: var(--muted); text-align: center; padding: 40px 0; }
.list-title { font-size: 24px; margin-bottom: 20px; }
.archive-year { font-size: 16px; margin: 16px 0 6px; }
.archive-list { list-style: none; }
.archive-posts { margin: 4px 0 12px 22px; }
.archive-posts time { color: var(--muted); font-size: 13px; }
.pagination { margin: 16px 0; }
.pagination-links { display: flex; gap: 8px; flex-wrap: wrap; }
.pagination-links a, .pagination-links .current, .pagination-links .disabled { padding: 6px 14px; border: 1px solid var(--border); border-radius: 6px; font-size: 14px; background: var(--card); color: var(--text); }
.pagination-links .current { background: var(--accent); color: #fff; border-color: var(--accent); }
.pagination-links .disabled { color: var(--muted); }
.m-footer { border-top: 1px solid var(--border); padding: 26px 0 40px; margin-top: 30px; text-align: center; color: var(--muted); font-size: 13px; }
.tag-cloud.big { line-height: 2.4; }
.links-list { list-style: none; }
.links-list li { padding: 6px 0; }
.link-note { color: var(--muted); font-size: 14px; }
.auth-layout { display: flex; justify-content: center; padding: 50px 20px; }
.auth-box { width: 100%; max-width: 420px; background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 30px; }
.auth-alt { margin-top: 14px; font-size: 14px; color: var(--muted); text-align: center; }
.search-form { margin-bottom: 16px; display: flex; gap: 8px; }
.search-form input { flex: 1; padding: 10px 14px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); color: var(--text); font-size: 15px; }
/* ============ 侧边栏 ============ */
.sidebar { position: sticky; top: 20px; }
.widget { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 18px 20px; margin-bottom: 18px; }
.widget-title { font-size: 15px; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 2px solid var(--accent); }
.widget-list { list-style: none; }
.widget-list li { font-size: 14px; padding: 5px 0; border-bottom: 1px solid var(--border); }
.widget-list li:last-child { border-bottom: none; }
.count { color: var(--muted); font-size: 13px; }
.tag-cloud { line-height: 2; }
.tag-cloud a { display: inline-block; }
.tag-cloud.big { line-height: 2.4; }
/* ============ 顶栏搜索(默认 header partial ============ */
.site-search input { padding: 7px 12px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); color: var(--text); font-size: 14px; width: 160px; }
.link-btn { background: none; border: none; color: var(--accent); font-size: 15px; cursor: pointer; padding: 0; }
/* ============ 文章正文补充 ============ */
.post-tags { margin-top: 16px; }
.post-content ul, .post-content ol { padding-left: 24px; margin: 8px 0; }
.post-content h4, .post-content h5, .post-content h6 { margin: 16px 0 6px; }
.post-content table { border-collapse: collapse; width: 100%; margin: 12px 0; }
.post-content th, .post-content td { border: 1px solid var(--border); padding: 6px 10px; }
.post-content hr { border: none; border-top: 1px solid var(--border); margin: 18px 0; }
/* ============ 个人中心 ============ */
.profile-box { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 24px 28px; margin-bottom: 20px; }
.profile-box p { margin-bottom: 8px; }
/* ============ 按钮变体 ============ */
.btn-primary { background: var(--accent); }
.btn:hover { opacity: 0.9; }
/* ============ 会员/支付 ============ */
.plans-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.plan-card .plan-price { font-size: 26px; font-weight: 800; color: var(--accent); }
.paid-teaser { background: rgba(248,81,73,.08); border: 1px dashed var(--accent); border-radius: 8px; padding: 12px 16px; color: var(--muted); font-size: 14px; margin: 12px 0; }
/* ============ 移动端适配 ============ */
@media (max-width: 768px) {
.m-header .m-container { flex-direction: column; align-items: flex-start; gap: 12px; padding: 16px 20px; }
.m-nav { flex-wrap: wrap; gap: 12px; width: 100%; }
.m-search { flex: 1; min-width: 100%; }
.m-search input { width: 100%; }
.main-layout { flex-direction: column; padding: 24px 16px; }
.main-layout .content { max-width: 100%; }
.main-layout .sidebar { width: 100%; }
.post-card, .post-full, .comments-section { padding: 20px; }
.post-cover { margin: -20px -20px 16px; }
.post-full .post-title { font-size: 24px; }
.auth-box { padding: 24px 20px; }
.pagination-links { gap: 6px; }
.pagination-links a, .pagination-links .current, .pagination-links .disabled { padding: 5px 10px; }
}
/* TOC */
.toc { background: var(--bg); border: 1px solid var(--border); border-radius: 10px; padding: 14px 18px; margin: 0 0 18px; font-size: 14px; }
.toc summary { cursor: pointer; font-weight: 600; margin-bottom: 6px; }
.toc-list { list-style: none; }
.toc-list li { padding: 3px 0; }
.toc-list a { color: var(--muted); }
.toc-list a:hover { color: var(--accent); }
.toc-level-3 { padding-left: 14px; }
.toc-level-4, .toc-level-5, .toc-level-6 { padding-left: 28px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }