Template:Main page/shared/styles.css:修订间差异
模板页面
更多操作
Imxiaoanag(留言 | 贡献) Update to new Style |
Imxiaoanag(留言 | 贡献) 小无编辑摘要 标签:已被回退 |
||
| 第1行: | 第1行: | ||
/* ========================================================= | |||
* 首页主题变量 | |||
* ========================================================= */ | |||
:root { | |||
/* 普通卡片 */ | |||
--home-card-background: var(--color-surface-1); | |||
--home-card-border-color: var(--border-color-base); | |||
/* 徽章及次级区域 */ | |||
--home-secondary-background: var(--color-surface-2); | |||
--home-secondary-background-hover: var(--color-surface-2--hover); | |||
--home-secondary-background-active: var(--color-surface-2--active); | |||
/* 文字颜色 */ | |||
--home-text-color: var(--color-base); | |||
--home-title-color: var(--color-emphasized); | |||
--home-subtle-color: var(--color-subtle); | |||
/* 阴影 */ | |||
--home-card-shadow: none; | |||
} | |||
/* | |||
* Citizen 夜间模式。 | |||
* | |||
* 页面背景为 #333333 时,卡片使用稍亮的灰色, | |||
* 使首页模块与页面底色形成层次。 | |||
*/ | |||
:root.skin-theme-clientpref-night { | |||
--home-card-background: #3d3d3d; | |||
--home-card-border-color: #555555; | |||
--home-secondary-background: #484848; | |||
--home-secondary-background-hover: #525252; | |||
--home-secondary-background-active: #5c5c5c; | |||
--home-text-color: #f1f1f1; | |||
--home-title-color: #ffffff; | |||
--home-subtle-color: #b8b8b8; | |||
--home-card-shadow: | |||
0 2px 8px rgb(0 0 0 / 0.22), | |||
0 8px 24px rgb(0 0 0 / 0.12); | |||
} | |||
/* ========================================================= | |||
* 首页网格 | |||
* ========================================================= */ | |||
.home-grid { | .home-grid { | ||
display: grid; | display: grid; | ||
grid: auto-flow dense/repeat( auto-fit, minmax( 9.375rem, 1fr ) ); | |||
grid-auto-rows: minmax( 3rem, auto ); | grid: | ||
auto-flow dense / | |||
repeat(auto-fit, minmax(9.375rem, 1fr)); | |||
grid-auto-rows: minmax(3rem, auto); | |||
gap: var(--space-xs); | |||
} | } | ||
.home-grid--col2 { | .home-grid--col2 { | ||
grid-template-columns: 1fr | grid-template-columns: repeat(2, minmax(0, 1fr)); | ||
} | } | ||
/* | |||
* 移除 MediaWiki 为外部链接添加的默认背景图标。 | |||
*/ | |||
.home-grid a.external { | .home-grid a.external { | ||
background-image: none; | background-image: none; | ||
} | } | ||
/* ========================================================= | |||
* 首页通用徽章 | |||
* ========================================================= */ | |||
.home-badge { | .home-badge { | ||
display: flex; | display: flex; | ||
align-items: center; | |||
gap: var(--space-xxs); | |||
padding: | |||
var(--space-xxs) | |||
var(--space-xs); | |||
background-color: var(--home-secondary-background); | |||
color: var(--home-text-color); | |||
border: 1px solid var(--home-card-border-color); | |||
border-radius: var(--border-radius-base); | |||
font-size: var(--font-size-x-small); | font-size: var(--font-size-x-small); | ||
font-weight: var(--font-weight-normal); | |||
letter-spacing: 0.025em; | |||
line-height: var(--line-height-xxx-small); | |||
} | } | ||
/* ========================================================= | |||
* 首页卡片 | |||
* ========================================================= */ | |||
.home-card { | .home-card { | ||
position: relative; | position: relative; | ||
padding: var( --space-md ); | |||
padding: var(--space-md); | |||
border-radius: var( --border-radius-medium ); | background-color: var(--home-card-background); | ||
font-size: var( --font-size-small ); | color: var(--home-text-color); | ||
border: 1px solid var(--home-card-border-color); | |||
border-radius: var(--border-radius-medium); | |||
box-shadow: var(--home-card-shadow); | |||
font-size: var(--font-size-small); | |||
} | |||
/* | |||
* 卡片内部链接继承当前主题的文字可读性。 | |||
*/ | |||
.home-card a { | |||
color: var(--color-progressive); | |||
} | } | ||
.home-card table.timeline { | .home-card table.timeline { | ||
margin-top: var( --space-xs ); | margin-top: var(--space-xs); | ||
} | } | ||
/* ========================================================= | |||
* 首页卡片跨行、跨列 | |||
* ========================================================= */ | |||
.home-card--col2 { | .home-card--col2 { | ||
| 第55行: | 第145行: | ||
grid-row: span 8 / auto; | grid-row: span 8 / auto; | ||
} | } | ||
/* ========================================================= | |||
* 卡片徽章与标签 | |||
* ========================================================= */ | |||
.home-card__badge, | .home-card__badge, | ||
.home-card__label { | .home-card__label { | ||
color: var( -- | color: var(--home-subtle-color); | ||
font-size: var( --font-size-x-small ); | |||
font-size: var(--font-size-x-small); | |||
letter-spacing: 0.05em; | letter-spacing: 0.05em; | ||
} | } | ||
.home-card__badge { | .home-card__badge { | ||
padding: var( --space-xxs ) var( --space-xs ); | padding: | ||
var(--space-xxs) | |||
var(--space-xs); | |||
background-color: var(--home-secondary-background); | |||
border: 1px solid var(--home-card-border-color); | |||
border-radius: var(--border-radius-base); | |||
} | } | ||
/* ========================================================= | |||
* 卡片标题 | |||
* ========================================================= */ | |||
.home-card__header { | .home-card__header { | ||
color: var( --color | color: var(--home-title-color); | ||
font-size: 1rem; | font-size: 1rem; | ||
font-weight: var(--font-weight-semi-bold); | |||
line-height: var(--line-height-xxx-small); | |||
} | } | ||
| 第80行: | 第185行: | ||
align-items: center; | align-items: center; | ||
justify-content: space-between; | justify-content: space-between; | ||
gap: var(--space-xs); | |||
color: inherit; | |||
text-decoration: none; | |||
} | } | ||
.home-card__header a:after { | .home-card__header a::after { | ||
content: | content: "▶"; | ||
font-size: var( --font-size-x-small ); | |||
flex-shrink: 0; | |||
color: var(--home-subtle-color); | |||
font-size: var(--font-size-x-small); | |||
} | } | ||
/* ========================================================= | |||
* 图片背景卡片 | |||
* ========================================================= */ | |||
.home-card__background { | .home-card__background { | ||
| 第92行: | 第209行: | ||
} | } | ||
.home-card__background:after { | /* | ||
* 在背景图上增加渐变遮罩, | |||
* 保证前景白色文字的可读性。 | |||
*/ | |||
.home-card__background::after { | |||
position: absolute; | position: absolute; | ||
inset: 0; | inset: 0; | ||
display: block; | |||
background: | |||
linear-gradient( | |||
to right, | |||
rgb(0 0 0 / 0.85), | |||
rgb(0 0 0 / 0.15) 70%, | |||
transparent | |||
); | |||
content: ""; | |||
pointer-events: none; | |||
transition: opacity 250ms ease; | |||
} | } | ||
| 第109行: | 第240行: | ||
.home-card__background img { | .home-card__background img { | ||
display: block; | |||
object-fit: cover; | object-fit: cover; | ||
object-position: center; | object-position: center; | ||
} | } | ||
/* ========================================================= | |||
* 图片卡片前景内容 | |||
* ========================================================= */ | |||
.home-card__foreground { | .home-card__foreground { | ||
position: absolute; | position: absolute; | ||
inset: 0; | |||
display: flex; | display: flex; | ||
flex-direction: column; | flex-direction: column; | ||
justify-content: center; | justify-content: center; | ||
gap: var( --space-xxs ); | gap: var(--space-xxs); | ||
color: # | |||
line-height: var( --line-height-xxx-small ); | padding: var(--space-md); | ||
color: #ffffff; | |||
line-height: var(--line-height-xxx-small); | |||
pointer-events: none; | pointer-events: none; | ||
} | } | ||
| 第131行: | 第269行: | ||
.home-card__foreground .home-card__badge { | .home-card__foreground .home-card__badge { | ||
position: absolute; | position: absolute; | ||
top: 0; | |||
right: 0; | |||
background-color: rgb(40 40 40 / 0.88); | |||
color: #ffffff; | |||
border-color: rgb(255 255 255 / 0.2); | |||
border-top-left-radius: 0; | |||
border-bottom-right-radius: 0; | |||
backdrop-filter: blur(8px); | |||
} | } | ||
.home-card__foreground .home-card__header { | .home-card__foreground .home-card__header { | ||
color: # | color: #ffffff; | ||
} | } | ||
.home-card__foreground .home-card__label { | .home-card__foreground .home-card__label { | ||
color: # | color: #d0d0d0; | ||
} | } | ||
/* ========================================================= | |||
* 卡片段落 | |||
* ========================================================= */ | |||
.home-card p { | .home-card p { | ||
margin-top: var( --space-xs ); | margin-top: var(--space-xs); | ||
font-size: var( --font-size-small ); | |||
color: var(--home-text-color); | |||
font-size: var(--font-size-small); | |||
} | |||
/* | |||
* 图片背景卡片内的段落始终使用浅色文字。 | |||
*/ | |||
.home-card__foreground p { | |||
color: #ffffff; | |||
} | } | ||
/* ========================================================= | |||
* 按钮式卡片 | |||
* ========================================================= */ | |||
.home-card.home-card--button { | .home-card.home-card--button { | ||
overflow: hidden; | overflow: hidden; | ||
padding: 0; | padding: 0; | ||
border: 0; | border: 0; | ||
} | } | ||
| 第158行: | 第323行: | ||
.home-card--button a { | .home-card--button a { | ||
display: flex; | display: flex; | ||
align-items: center; | |||
justify-content: center; | |||
width: 100%; | |||
height: 100%; | height: 100%; | ||
padding-inline: var(--space-md); | |||
background: transparent; | background-color: transparent; | ||
color: # | color: #ffffff; | ||
font-weight: var( --font-weight-medium ); | |||
font-weight: var(--font-weight-medium); | |||
text-decoration: none; | |||
} | } | ||
| 第176行: | 第347行: | ||
.home-card--button:hover img { | .home-card--button:hover img { | ||
transform: scale( 1.1 ); | transform: scale(1.1); | ||
} | |||
.home-card--button:hover .home-card__background::after { | |||
opacity: 0.82; | |||
} | } | ||
/* ========================================================= | |||
* 首页链接按钮 | |||
* ========================================================= */ | |||
.home-link { | .home-link { | ||
display: grid; | display: grid; | ||
margin-top: var( --space-xs ); | gap: var(--space-xs); | ||
font-size: var( --font-size-small ); | |||
font-weight: var( --font-weight-medium | margin-top: var(--space-xs); | ||
font-size: var(--font-size-small); | |||
font-weight: var(--font-weight-medium); | |||
text-align: center; | text-align: center; | ||
} | } | ||
| 第194行: | 第375行: | ||
.home-link__button a { | .home-link__button a { | ||
flex-grow: 1; | flex-grow: 1; | ||
padding: var( --space-xs ); | |||
padding: var(--space-xs); | |||
border | background-color: var(--home-secondary-background); | ||
color: var(--home-title-color) !important; | |||
border: 1px solid var(--home-card-border-color); | |||
border-radius: var(--border-radius-medium); | |||
line-height: var(--line-height-xxx-small); | |||
text-decoration: none !important; | |||
transition: | |||
background-color 150ms ease, | |||
border-color 150ms ease; | |||
} | } | ||
.home-link__button a:hover { | .home-link__button a:hover { | ||
background: var( -- | background-color: var(--home-secondary-background-hover); | ||
} | } | ||
.home-link__button a:active { | .home-link__button a:active { | ||
background: var( -- | background-color: var(--home-secondary-background-active); | ||
} | } | ||
/* ========================================================= | |||
* 首页其他内容 | |||
* ========================================================= */ | |||
#home-content { | #home-content { | ||
margin-top: var( --space-lg ); | margin-top: var(--space-lg); | ||
} | } | ||
| 第220行: | 第413行: | ||
.home-footer { | .home-footer { | ||
font- | color: var(--home-subtle-color); | ||
font- | |||
font-family: var(--font-family-monospace); | |||
font-size: var(--font-size-small); | |||
text-align: center; | text-align: center; | ||
} | |||
/* ========================================================= | |||
* 移动端适配 | |||
* ========================================================= */ | |||
@media (max-width: 720px) { | |||
.home-grid, | |||
.home-grid--col2 { | |||
grid-template-columns: 1fr; | |||
} | |||
.home-card--col2 { | |||
grid-column: span 1; | |||
} | |||
/* | |||
* 移动端不固定跨行高度,避免内容较多时出现异常留白。 | |||
*/ | |||
.home-card--row3, | |||
.home-card--row4, | |||
.home-card--row8 { | |||
grid-row: auto; | |||
} | |||
} | } | ||
2026年7月21日 (二) 02:54的版本
/* =========================================================
* 首页主题变量
* ========================================================= */
:root {
/* 普通卡片 */
--home-card-background: var(--color-surface-1);
--home-card-border-color: var(--border-color-base);
/* 徽章及次级区域 */
--home-secondary-background: var(--color-surface-2);
--home-secondary-background-hover: var(--color-surface-2--hover);
--home-secondary-background-active: var(--color-surface-2--active);
/* 文字颜色 */
--home-text-color: var(--color-base);
--home-title-color: var(--color-emphasized);
--home-subtle-color: var(--color-subtle);
/* 阴影 */
--home-card-shadow: none;
}
/*
* Citizen 夜间模式。
*
* 页面背景为 #333333 时,卡片使用稍亮的灰色,
* 使首页模块与页面底色形成层次。
*/
:root.skin-theme-clientpref-night {
--home-card-background: #3d3d3d;
--home-card-border-color: #555555;
--home-secondary-background: #484848;
--home-secondary-background-hover: #525252;
--home-secondary-background-active: #5c5c5c;
--home-text-color: #f1f1f1;
--home-title-color: #ffffff;
--home-subtle-color: #b8b8b8;
--home-card-shadow:
0 2px 8px rgb(0 0 0 / 0.22),
0 8px 24px rgb(0 0 0 / 0.12);
}
/* =========================================================
* 首页网格
* ========================================================= */
.home-grid {
display: grid;
grid:
auto-flow dense /
repeat(auto-fit, minmax(9.375rem, 1fr));
grid-auto-rows: minmax(3rem, auto);
gap: var(--space-xs);
}
.home-grid--col2 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
/*
* 移除 MediaWiki 为外部链接添加的默认背景图标。
*/
.home-grid a.external {
background-image: none;
}
/* =========================================================
* 首页通用徽章
* ========================================================= */
.home-badge {
display: flex;
align-items: center;
gap: var(--space-xxs);
padding:
var(--space-xxs)
var(--space-xs);
background-color: var(--home-secondary-background);
color: var(--home-text-color);
border: 1px solid var(--home-card-border-color);
border-radius: var(--border-radius-base);
font-size: var(--font-size-x-small);
font-weight: var(--font-weight-normal);
letter-spacing: 0.025em;
line-height: var(--line-height-xxx-small);
}
/* =========================================================
* 首页卡片
* ========================================================= */
.home-card {
position: relative;
padding: var(--space-md);
background-color: var(--home-card-background);
color: var(--home-text-color);
border: 1px solid var(--home-card-border-color);
border-radius: var(--border-radius-medium);
box-shadow: var(--home-card-shadow);
font-size: var(--font-size-small);
}
/*
* 卡片内部链接继承当前主题的文字可读性。
*/
.home-card a {
color: var(--color-progressive);
}
.home-card table.timeline {
margin-top: var(--space-xs);
}
/* =========================================================
* 首页卡片跨行、跨列
* ========================================================= */
.home-card--col2 {
grid-column: span 2;
}
.home-card--row3 {
grid-row: span 3;
}
.home-card--row4 {
grid-row: span 4;
}
.home-card--row8 {
grid-row: span 8 / auto;
}
/* =========================================================
* 卡片徽章与标签
* ========================================================= */
.home-card__badge,
.home-card__label {
color: var(--home-subtle-color);
font-size: var(--font-size-x-small);
letter-spacing: 0.05em;
}
.home-card__badge {
padding:
var(--space-xxs)
var(--space-xs);
background-color: var(--home-secondary-background);
border: 1px solid var(--home-card-border-color);
border-radius: var(--border-radius-base);
}
/* =========================================================
* 卡片标题
* ========================================================= */
.home-card__header {
color: var(--home-title-color);
font-size: 1rem;
font-weight: var(--font-weight-semi-bold);
line-height: var(--line-height-xxx-small);
}
.home-card__header a {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--space-xs);
color: inherit;
text-decoration: none;
}
.home-card__header a::after {
content: "▶";
flex-shrink: 0;
color: var(--home-subtle-color);
font-size: var(--font-size-x-small);
}
/* =========================================================
* 图片背景卡片
* ========================================================= */
.home-card__background {
position: absolute;
inset: 0;
}
/*
* 在背景图上增加渐变遮罩,
* 保证前景白色文字的可读性。
*/
.home-card__background::after {
position: absolute;
inset: 0;
display: block;
background:
linear-gradient(
to right,
rgb(0 0 0 / 0.85),
rgb(0 0 0 / 0.15) 70%,
transparent
);
content: "";
pointer-events: none;
transition: opacity 250ms ease;
}
.home-card__background picture,
.home-card__background img {
width: 100%;
height: 100%;
}
.home-card__background img {
display: block;
object-fit: cover;
object-position: center;
}
/* =========================================================
* 图片卡片前景内容
* ========================================================= */
.home-card__foreground {
position: absolute;
inset: 0;
display: flex;
flex-direction: column;
justify-content: center;
gap: var(--space-xxs);
padding: var(--space-md);
color: #ffffff;
line-height: var(--line-height-xxx-small);
pointer-events: none;
}
.home-card__foreground .home-card__badge {
position: absolute;
top: 0;
right: 0;
background-color: rgb(40 40 40 / 0.88);
color: #ffffff;
border-color: rgb(255 255 255 / 0.2);
border-top-left-radius: 0;
border-bottom-right-radius: 0;
backdrop-filter: blur(8px);
}
.home-card__foreground .home-card__header {
color: #ffffff;
}
.home-card__foreground .home-card__label {
color: #d0d0d0;
}
/* =========================================================
* 卡片段落
* ========================================================= */
.home-card p {
margin-top: var(--space-xs);
color: var(--home-text-color);
font-size: var(--font-size-small);
}
/*
* 图片背景卡片内的段落始终使用浅色文字。
*/
.home-card__foreground p {
color: #ffffff;
}
/* =========================================================
* 按钮式卡片
* ========================================================= */
.home-card.home-card--button {
overflow: hidden;
padding: 0;
border: 0;
}
.home-card--button a {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
padding-inline: var(--space-md);
background-color: transparent;
color: #ffffff;
font-weight: var(--font-weight-medium);
text-decoration: none;
}
.home-card--button .home-card__background a {
padding: 0;
}
.home-card--button img {
transition: transform 250ms ease;
}
.home-card--button:hover img {
transform: scale(1.1);
}
.home-card--button:hover .home-card__background::after {
opacity: 0.82;
}
/* =========================================================
* 首页链接按钮
* ========================================================= */
.home-link {
display: grid;
gap: var(--space-xs);
margin-top: var(--space-xs);
font-size: var(--font-size-small);
font-weight: var(--font-weight-medium);
text-align: center;
}
.home-link__button {
display: flex;
}
.home-link__button a {
flex-grow: 1;
padding: var(--space-xs);
background-color: var(--home-secondary-background);
color: var(--home-title-color) !important;
border: 1px solid var(--home-card-border-color);
border-radius: var(--border-radius-medium);
line-height: var(--line-height-xxx-small);
text-decoration: none !important;
transition:
background-color 150ms ease,
border-color 150ms ease;
}
.home-link__button a:hover {
background-color: var(--home-secondary-background-hover);
}
.home-link__button a:active {
background-color: var(--home-secondary-background-active);
}
/* =========================================================
* 首页其他内容
* ========================================================= */
#home-content {
margin-top: var(--space-lg);
}
.home-card .template-statsbar {
margin: 0;
}
.home-footer {
color: var(--home-subtle-color);
font-family: var(--font-family-monospace);
font-size: var(--font-size-small);
text-align: center;
}
/* =========================================================
* 移动端适配
* ========================================================= */
@media (max-width: 720px) {
.home-grid,
.home-grid--col2 {
grid-template-columns: 1fr;
}
.home-card--col2 {
grid-column: span 1;
}
/*
* 移动端不固定跨行高度,避免内容较多时出现异常留白。
*/
.home-card--row3,
.home-card--row4,
.home-card--row8 {
grid-row: auto;
}
}