Files
wordpress-theme-aksrt/assets/css/frontend/footer/part-2.css
T
kate522 0b5b153265 视觉系统主干落地:对齐 design tokens 与核心组件样式向 Zibll 收敛
- tokens:收紧 surface 层级/边框/圆角/阴影/间距与暗黑基线
- 组件:按钮、卡片原语、导航、侧栏、分页、模态、浮动按钮
- 首页:hero 外壳、fixed 列表/宫格、tab、skeleton/error 及各运营模块卡片化
- 内容页:单篇封面/标题/正文/blockquote/相关/TOC/上一篇下一篇、评论区
- 社区:forum board/topic/compose 子控件与卡片体系
- 交易/认证:cart/orders/revenue/product/auth 表面块与模态浮层统一
- footer:页脚主体、社交/联系、移动端 tabbar/搜索覆盖
2026-07-06 15:19:25 +08:00

302 lines
6.6 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.
}
/* 对齐 zibll: 40px, 1.4em icon */
.float-btn {
display: flex;
align-items: center;
justify-content: center;
width: 40px;
min-height: 40px;
border-radius: 50%;
border: none;
background: var(--float-btn-bg);
color: var(--color-ink-3);
box-shadow: var(--shadow-sm);
cursor: pointer;
transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
font-size: 1.4em;
text-decoration: none;
}
.float-btn:hover {
transform: translateY(-2px);
box-shadow: var(--shadow);
color: var(--color-primary);
background: var(--surface-page);
text-decoration: none;
}
.float-btn:active {
transform: scale(0.95);
}
/* 回到顶部按钮 — 滚动后显示 */
.float-btn--top {
opacity: 0;
visibility: hidden;
transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.2s ease;
}
.float-btn--top.is-visible {
opacity: 1;
visibility: visible;
display: flex;
}
/* 主题切换按钮 */
#float-theme-toggle .float-btn__icon-moon {
display: none !important;
}
#float-theme-toggle .float-btn__icon-sun {
display: inline-block !important;
}
#float-theme-toggle[aria-pressed="true"] .float-btn__icon-moon,
.theme-dark #float-theme-toggle .float-btn__icon-moon,
html.dark #float-theme-toggle .float-btn__icon-moon,
body.dark-theme #float-theme-toggle .float-btn__icon-moon {
display: inline-block !important;
}
#float-theme-toggle[aria-pressed="true"] .float-btn__icon-sun,
.theme-dark #float-theme-toggle .float-btn__icon-sun,
html.dark #float-theme-toggle .float-btn__icon-sun,
body.dark-theme #float-theme-toggle .float-btn__icon-sun {
display: none !important;
}
/* 移动端隐藏浮动按钮(用 tabbar 代替) */
@media (max-width: 767px) {
.float-right-btns {
right: 12px;
bottom: 80px;
}
.float-btn {
width: 38px;
height: 38px;
font-size: 14px;
}
}
/* ============================================================
* 移动端底部 Tab 栏(模仿 zibll footer-tabbar)
* ============================================================ */
.footer-tabbar {
display: none;
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 1035;
min-height: var(--aksrt-footer-tabbar-height);
background: var(--blur-bg);
border-top: 1px solid var(--color-line-soft);
padding: 0 0 env(safe-area-inset-bottom, 0px);
justify-content: space-around;
align-items: center;
box-shadow: 0 -4px 5px var(--main-shadow, rgba(0, 0, 0, 0.06));
-webkit-backdrop-filter: saturate(5) blur(20px);
backdrop-filter: saturate(5) blur(20px);
--tabbar-active-color: #f04494;
--tabbar-icon-size: 24px;
--tabbar-text-size: 10px;
}
.footer-tabbar.no-border {
border-top: none;
}
.footer-tabbar.no-shadow {
box-shadow: none;
}
.footer-tabbar.hide-text .tabbar-item span {
display: none;
}
.footer-tabbar.has-animation .tabbar-item {
transition: color 0.15s ease, transform 0.15s ease;
}
.footer-tabbar.has-animation .tabbar-item:active {
transform: scale(0.9);
}
.footer-tabbar-placeholder {
display: none;
height: calc(var(--aksrt-footer-tabbar-height) + env(safe-area-inset-bottom, 0px));
}
@media (max-width: 767px) {
.footer-tabbar {
display: flex;
}
.footer-tabbar-placeholder {
display: block;
}
/* 有 tabbar 时页脚需要额外底部间距 */
.site-footer {
padding-bottom: calc(var(--aksrt-footer-tabbar-height) + env(safe-area-inset-bottom, 0px));
}
}
.tabbar-item {
display: flex;
flex: 1 1 0;
min-width: 0;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 1px;
min-height: 49px;
padding: 4px 0 3px;
color: var(--muted-color, var(--color-ink-3));
font-size: 13px;
text-decoration: none;
border: none;
background: none;
cursor: pointer;
transition: color 0.15s ease;
-webkit-tap-highlight-color: transparent;
position: relative;
}
/* 对齐 zibll: 24px 图标 */
.tabbar-item i {
font-size: var(--tabbar-icon-size, 24px);
line-height: 1;
}
.tabbar-item span {
display: block;
font-size: var(--tabbar-text-size, 10px);
font-weight: 500;
line-height: 1;
transform: scale(0.8);
transform-origin: center top;
}
.tabbar-item:hover,
.tabbar-item.active {
color: var(--tabbar-active-color, var(--color-primary));
text-decoration: none;
}
.tabbar-item.active i {
font-weight: 900;
}
.tabbar-badge {
position: absolute;
top: 2px;
right: 8px;
min-width: 16px;
height: 16px;
padding: 0 4px;
border-radius: 999px;
background: var(--color-error);
color: #fff;
font-size: 10px;
line-height: 16px;
font-style: normal;
font-weight: 700;
text-align: center;
box-shadow: 0 2px 8px rgba(239, 68, 68, 0.20);
}
.tabbar-badge--dot {
min-width: 0;
width: 8px;
height: 8px;
padding: 0;
top: 4px;
right: 10px;
font-size: 0;
line-height: 1;
box-shadow: 0 0 0 2px var(--blur-bg);
}
.tabbar-item--add {
margin-top: -22px;
width: 62px;
height: 62px;
min-height: 62px;
border-radius: 50%;
background: var(--color-accent);
color: #fff;
box-shadow: 0 12px 24px var(--color-accent-shadow);
flex: 0 0 62px;
z-index: 1;
}
.tabbar-item--add i {
font-size: 22px;
}
.tabbar-item--add span {
font-size: 11px;
}
.tabbar-item--add:hover,
.tabbar-item--add.active {
color: #fff;
}
.tabbar-add-backdrop {
position: fixed;
inset: 0;
z-index: 951;
background: rgba(15, 23, 42, 0.38);
}
.tabbar-add-panel {
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 952;
padding: 0 12px calc(84px + env(safe-area-inset-bottom, 0px));
}
.tabbar-add-panel__sheet {
border-radius: 20px;
background: var(--surface-1);
border: 1px solid rgba(255, 255, 255, 0.55);
box-shadow: var(--shadow-drawer);
overflow: hidden;
}
.tabbar-add-panel__head {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 18px 12px;
border-bottom: 1px solid var(--color-line);
}
.tabbar-add-panel__close {
width: 32px;
height: 32px;
border: 0;
border-radius: 50%;
background: var(--surface-2);
color: var(--color-ink-3);
}
.tabbar-add-panel__list {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
padding: 18px;
}
.tabbar-add-panel__item {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;