/* ============================================================ 家书 FamilyBook · 界面样式 配色取自图标:宣纸米 / 砖红封面 / 深褐书脊 / 纸白 原则:扁平、留白充足、字重克制(正文 400,标题 500-600) ============================================================ */ :root { --paper: #F7F3EA; --surface: #FFFFFF; --ink: #2C231D; --muted: #7E6B5A; --faint: #A8988A; --brand: #A84A28; --brand-2: #C96F45; --brand-ink:#6E3820; --green: #6F9E5C; --red: #C0533F; --line: rgba(44, 35, 29, .10); --line-2: rgba(44, 35, 29, .06); --radius: 16px; --radius-s: 10px; --shadow: 0 1px 2px rgba(44, 35, 29, .05); --shadow-l: 0 4px 16px rgba(44, 35, 29, .08); } * { box-sizing: border-box; } html, body { height: 100%; } body { margin: 0; background: var(--paper); color: var(--ink); font: 15px/1.7 -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif; -webkit-font-smoothing: antialiased; } a { color: var(--brand); text-decoration: none; } a:hover { text-decoration: underline; } /* ---------------- 顶栏 ---------------- */ .topbar { position: sticky; top: 0; z-index: 20; background: var(--surface); border-bottom: 1px solid var(--line); } .topbar-inner { max-width: 1080px; margin: 0 auto; padding: 0 24px; height: 60px; display: flex; align-items: center; gap: 24px; } .brand { display: flex; align-items: center; gap: 10px; color: var(--ink); } .brand:hover { text-decoration: none; } .brand img { width: 30px; height: 30px; border-radius: 8px; display: block; } .brand span { font-size: 16px; font-weight: 600; letter-spacing: .5px; } .nav { display: flex; gap: 4px; margin-left: 8px; } .nav a { padding: 6px 12px; border-radius: 999px; color: var(--muted); font-size: 14px; } .nav a:hover { background: var(--line-2); text-decoration: none; } .nav a.on { background: var(--brand); color: #fff; } .topbar-right { margin-left: auto; display: flex; align-items: center; gap: 12px; } .who { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 14px; } /* 姓名 + 头像是个下拉菜单的「把手」——hover 时给点反馈,让人知道它可点 */ .who-menu { position: relative; } .who-menu > summary { list-style: none; cursor: pointer; padding: 4px 6px; border-radius: 999px; } .who-menu > summary::-webkit-details-marker { display: none; } .who-menu > summary:hover { background: var(--line-2); } .who-menu > summary:hover .who-name { color: var(--brand); } .who-menu[open] > summary { background: var(--line-2); } .who-menu[open] > summary .caret { transform: rotate(180deg); } .who img { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; } .who img { transition: box-shadow .15s ease; } .who-menu > summary:hover img { box-shadow: 0 0 0 2px var(--brand-2); } /* 那个小三角:没有它,用户不知道"名字能点开" */ .caret { width: 0; height: 0; margin-left: -2px; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid var(--faint); transition: transform .15s ease; } .menu-list { position: absolute; right: 0; top: calc(100% + 8px); z-index: 30; min-width: 148px; padding: 6px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-s); box-shadow: var(--shadow-l); display: flex; flex-direction: column; } .menu-list a { padding: 8px 12px; border-radius: 8px; color: var(--ink); font-size: 14px; white-space: nowrap; } .menu-list a:hover { background: var(--line-2); text-decoration: none; color: var(--brand); } /* 退出放在最下面并隔一条线:它是"离开",和上面几个"改点什么"不是一类动作 */ .menu-list .menu-exit { margin-top: 4px; padding-top: 9px; border-top: 1px solid var(--line-2); border-radius: 0 0 8px 8px; color: var(--muted); } .menu-list .menu-exit:hover { color: var(--brand); } /* ---- 观影页的「设置」下拉(v11):一个齿轮图标 +
菜单 ---- */ .movie-set { position: relative; } .movie-set > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; } .movie-set > summary::-webkit-details-marker { display: none; } .movie-set[open] > summary { border-color: var(--brand); color: var(--brand); } /* 观影设置菜单是顶栏菜单的复用:位置从右上角改成按钮下方左对齐 */ .movie-set .menu-list { left: 0; right: auto; top: calc(100% + 8px); } .movie-set .menu-list a.on { color: var(--brand); background: var(--line-2); } .link-quiet { color: var(--muted); font-size: 14px; } .link-quiet:hover { color: var(--brand); } /* 顶栏里的文字一律不许换行 —— 一换行就是「首/页」「名/册」竖排,很难看 */ .nav a, .topbar-right a, .who-name { white-space: nowrap; } /* ---------------- 布局 ---------------- */ .container { max-width: 1080px; margin: 0 auto; padding: 28px 24px 64px; } .container-narrow { max-width: 560px; margin: 0 auto; padding: 28px 24px 64px; } .page-head { display: flex; align-items: flex-end; gap: 16px; margin-bottom: 20px; } .page-head h1 { font-size: 22px; font-weight: 600; margin: 0; } .page-head .sub { color: var(--muted); font-size: 14px; } .page-head .actions { margin-left: auto; display: flex; gap: 8px; align-items: center; } /* ---- 页头动作区:所有按钮一律同尺寸 ---- ⚠️ 用户明确提过两次:「设置按钮和记一场电影按钮高度要一致,现在不好看」 「返回等按钮和记一场电影等按钮的大小高度的统一问题」。 根因是页头里混用了 .btn 与 .btn-sm 两档(padding 9px16px vs 5px12px), 并排就一高一矮。这里**强制**让页头动作区的按钮回到基础档: · 按钮(.btn / .btn-ghost / .btn-danger,含
的 summary)统一 padding 与字号; · 表单包裹的按钮(删除那种