MediaWiki:Common.css:修订间差异
来自Age Of History 2 Chinese Wiki
无编辑摘要 |
无编辑摘要 |
||
第12行: | 第12行: | ||
--title-font: "VonwaonBitmap 16px", "Noto Sans SC", VT323, monospace; | --title-font: "VonwaonBitmap 16px", "Noto Sans SC", VT323, monospace; | ||
--mono-font: "VonwaonBitmap 16px", VT323, monospace; | --mono-font: "VonwaonBitmap 16px", VT323, monospace; | ||
/* === BASE FONT SIZE & LINE HEIGHT === */ | |||
--min-font-size: 0.9rem; | --min-font-size: 0.9rem; | ||
--max-font-size: 1rem; | --max-font-size: 1rem; | ||
--base-font-size: var(--max-font-size); | --base-font-size: var(--max-font-size); | ||
--base-line-height: 1. | --base-line-height: 1.5; | ||
/* ===CRT COLORS=== */ | /* === CRT DISPLAY COLORS === */ | ||
--crt-bg-color: | --crt-bg-color: 10, 15, 20; /* 深蓝黑色背景 */ | ||
--crt- | --crt-text-color: 180, 255, 180; /* 荧光绿文字 */ | ||
--crt- | --crt-terminal-green: 0, 255, 100; /* 终端绿 */ | ||
--crt- | --crt-terminal-blue: 80, 170, 255; /* 终端蓝 */ | ||
--crt-terminal- | --crt-terminal-amber: 255, 176, 0; /* 终端琥珀色 */ | ||
--crt-terminal- | --crt-terminal-pink: 255, 100, 200; /* 终端粉色 */ | ||
--crt- | --crt-glow-color: var(--crt-terminal-green); /* 荧光颜色 */ | ||
/* ===STANDARD THEME COLORS=== */ | /* === SCANLINE EFFECTS === */ | ||
--white-monochrome: | --scanline-height: 2px; | ||
--black-monochrome: 10, 20 | --scanline-color: rgba(0, 0, 0, 0.07); | ||
--bright-accent: 0, 255, | --interlace-opacity: 0.4; | ||
--medium-accent: 0, | --flicker-intensity: 0.03; | ||
--dark-accent: 0, | --noise-opacity: 0.02; | ||
--rgb-shift-amount: 0.5px; | |||
--vignette-opacity: 0.3; | |||
--screen-curvature: 3%; /* 屏幕弯曲程度 */ | |||
/* === STANDARD THEME COLORS === */ | |||
/* 保留原有颜色变量 */ | |||
--white-monochrome: 180, 255, 180; /* 改为荧光绿 */ | |||
--black-monochrome: 10, 15, 20; /* 改为深蓝黑 */ | |||
--bright-accent: 0, 255, 100; /* 改为终端绿 */ | |||
--medium-accent: 0, 200, 80; | |||
--dark-accent: 0, 150, 60; | |||
/* ===PRIMARY COLORS=== */ | /* === PRIMARY COLORS === */ | ||
--swatch-primary: var(--bright-accent); | --swatch-primary: var(--bright-accent); | ||
--swatch-primary-darker: var(--medium-accent); | --swatch-primary-darker: var(--medium-accent); | ||
第49行: | 第52行: | ||
--swatch-border-color: var(--bright-accent); | --swatch-border-color: var(--bright-accent); | ||
/* ===MENU COLORS=== */ | /* === MENU COLORS === */ | ||
--swatch-menutxt-dark-color: var(--black-monochrome); | --swatch-menutxt-dark-color: var(--black-monochrome); | ||
--swatch-menutxt-light-color: var(--white-monochrome); | --swatch-menutxt-light-color: var(--white-monochrome); | ||
--swatch-menutxt-general-color: var(--white-monochrome); | --swatch-menutxt-general-color: var(--white-monochrome); | ||
/* ===SECONDARY & TERTIARY COLORS=== */ | /* === SECONDARY & TERTIARY COLORS === */ | ||
--swatch-text-secondary-color: var(--swatch-menutxt-light-color); | --swatch-text-secondary-color: var(--swatch-menutxt-light-color); | ||
/* === | /* === LINK COLORS === */ | ||
--link-color: rgb(80, 200, 255); | |||
--link-color-active: rgb(255, 176, 0); | |||
--visited-link-color: rgb(180, 160, 255); | |||
--hover-link-color: rgb(0, 255, 200); | |||
} | } | ||
/* === GLOBAL STYLES === */ | |||
html { | html { | ||
font-size: 1em; | font-size: 1em; | ||
第109行: | 第73行: | ||
} | } | ||
html, | html, body { | ||
body { | |||
margin: 0; | margin: 0; | ||
padding: 0; | padding: 0; | ||
font-variant-ligatures: none; | |||
background-color: rgb(var(--crt-bg-color)); | background-color: rgb(var(--crt-bg-color)); | ||
color: rgb(var(--crt-text-color)); | color: rgb(var(--crt-text-color)); | ||
font-family: var(--body-font); | font-family: var(--body-font); | ||
overflow-x: hidden; /* 防止水平溢出 */ | |||
overflow-x: hidden; | perspective: 1000px; /* 3D透视效果 */ | ||
perspective: 1000px; | |||
} | } | ||
/* | /* 添加CRT屏幕效果 */ | ||
body::before { | body::before { | ||
content: | content: ''; | ||
position: fixed; | |||
top: 0; | |||
left: 0; | |||
right: 0; | |||
bottom: 0; | |||
z-index: 9998; | |||
pointer-events: none; | |||
/* 屏幕弯曲效果 */ | |||
border-radius: 20% / 5%; | |||
box-shadow: | |||
0 0 0 var(--screen-curvature) rgb(var(--crt-bg-color)), | |||
inset 0 0 40px rgba(0, 0, 0, 0.6); | |||
/* 暗角效果 */ | |||
background: radial-gradient( | |||
ellipse at center, | |||
transparent 60%, | |||
rgba(0, 0, 0, var(--vignette-opacity)) 100% | |||
); | |||
} | |||
/* 扫描线效果 */ | |||
body::after { | |||
content: ''; | |||
position: fixed; | position: fixed; | ||
top: 0; | top: 0; | ||
第130行: | 第115行: | ||
width: 100%; | width: 100%; | ||
height: 100%; | height: 100%; | ||
pointer-events: none; | pointer-events: none; | ||
z-index: | z-index: 9999; | ||
background: repeating-linear-gradient( | |||
opacity: 0. | 0deg, | ||
var(--scanline-color) calc(var(--scanline-height) - 1px), | |||
var(--scanline-color) var(--scanline-height), | |||
transparent calc(var(--scanline-height) + 1px) | |||
); | |||
background-size: 100% calc(var(--scanline-height) * 2); | |||
opacity: var(--interlace-opacity); | |||
animation: scanline-flicker 0.1s infinite alternate-reverse; | |||
} | } | ||
/* 噪点效果 */ | /* 噪点效果 */ | ||
.noise { | |||
position: fixed; | position: fixed; | ||
top: 0; | top: 0; | ||
第148行: | 第135行: | ||
width: 100%; | width: 100%; | ||
height: 100%; | height: 100%; | ||
pointer-events: none; | pointer-events: none; | ||
z-index: 9997; | |||
opacity: var(--noise-opacity); | |||
background-image: url('data:image/png;base64,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'); | |||
} | } | ||
/* | /* 宽扫描线效果 */ | ||
.wide-scanline { | |||
position: | position: fixed; | ||
width: 100%; | |||
height: 4rem; | |||
top: -4rem; | |||
left: 0; | |||
background: linear-gradient(to bottom, | |||
rgba(255, 255, 255, 0) 0%, | |||
rgba(255, 255, 255, 0.03) 10%, | |||
rgba(255, 255, 255, 0.05) 20%, | |||
rgba(255, 255, 255, 0.1) 50%, | |||
rgba(255, 255, 255, 0.05) 80%, | |||
rgba( | rgba(255, 255, 255, 0.03) 90%, | ||
rgba( | rgba(255, 255, 255, 0) 100%); | ||
rgba( | pointer-events: none; | ||
z-index: 9997; | |||
animation: scanline-move 8s cubic-bezier(0.1, 0.7, 0.7, 0.95) infinite; | |||
opacity: 0.3; | |||
} | } | ||
/* 垂直同步扫描效果 */ | |||
.vsync-line { | |||
position: | position: fixed; | ||
top: 0; | top: 0; | ||
left: 0; | left: 0; | ||
width: 100%; | |||
height: 1px; | |||
background: | background: rgba(255, 255, 255, 0.5); | ||
box-shadow: 0 0 5px 1px rgba(255, 255, 255, 0.3); | |||
z-index: 10000; | |||
pointer-events: none; | pointer-events: none; | ||
opacity: 0; | |||
transform: translateY(-1px); | |||
animation: vsync-scan 10s linear infinite; | |||
} | |||
/* 动画效果 */ | |||
@keyframes scanline-move { | |||
0% { top: -4rem; opacity: 0.2; } | |||
5% { opacity: 0.3; } | |||
30% { opacity: 0.2; } | |||
50% { opacity: 0.3; } | |||
75% { opacity: 0.2; } | |||
95% { opacity: 0.3; } | |||
100% { top: 100vh; opacity: 0.2; } | |||
} | |||
@keyframes scanline-flicker { | |||
0% { opacity: var(--interlace-opacity); } | |||
100% { opacity: calc(var(--interlace-opacity) - 0.1); } | |||
} | |||
@keyframes vsync-scan { | |||
0% { opacity: 0; transform: translateY(-1px); } | |||
1% { opacity: 0.5; transform: translateY(0); } | |||
1.5% { opacity: 0.3; transform: translateY(100vh); } | |||
2% { opacity: 0; transform: translateY(100vh); } | |||
100% { opacity: 0; transform: translateY(100vh); } | |||
} | |||
@keyframes text-flicker { | |||
0% { text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7); } | |||
50% { text-shadow: 0 0 2px rgba(var(--crt-glow-color), 0.4); } | |||
100% { text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7); } | |||
} | } | ||
/* | /* 文本和链接样式 */ | ||
h1, h2, h3, h4, h5, h6 | h1, h2, h3, h4, h5, h6 { | ||
font-family: var(--title-font); | font-family: var(--title-font); | ||
color: rgb(var(--crt-terminal-green)); | color: rgb(var(--crt-terminal-green)); | ||
text-shadow: | text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7); | ||
letter-spacing: 0.05em; | |||
animation: text-flicker 2s infinite alternate; | |||
position: relative; | |||
} | |||
font- | h1 { | ||
font-size: 1.8rem; | |||
text-transform: uppercase; | |||
} | |||
h2 { | |||
font-size: 1.5rem; | |||
} | |||
h3 { | |||
font-size: 1.3rem; | |||
} | } | ||
a { | a { | ||
color: rgb(var(--crt-terminal-blue)); | color: rgb(var(--crt-terminal-blue)); | ||
text-decoration: none; | text-decoration: none; | ||
transition: all 0.2s ease; | transition: all 0.2s ease; | ||
text-shadow: 0 0 | text-shadow: 0 0 3px rgba(var(--crt-terminal-blue), 0.5); | ||
} | } | ||
a:hover { | a:hover { | ||
color: rgb(var(--crt-terminal-amber)); | color: rgb(var(--crt-terminal-amber)); | ||
text-shadow: | text-shadow: 0 0 5px rgba(var(--crt-terminal-amber), 0.7); | ||
} | } | ||
a: | a:hover::before { | ||
content: "> "; | |||
} | } | ||
a | a:visited { | ||
color: rgb(var(--crt-terminal-pink)); | color: rgb(var(--crt-terminal-pink)); | ||
text-shadow: 0 0 | text-shadow: 0 0 3px rgba(var(--crt-terminal-pink), 0.5); | ||
} | } | ||
/* | /* 按钮样式 */ | ||
input, button, | button, input[type="submit"], input[type="button"] { | ||
background-color: rgba(var(--crt-bg-color), 0.8); | |||
color: rgb(var(--crt-terminal-green)); | |||
border: 1px solid rgba(var(--crt-terminal-green), 0.7); | |||
font-family: var(--pixel-font); | font-family: var(--pixel-font); | ||
padding: 5px 10px; | padding: 5px 10px; | ||
box-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.5); | box-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.5); | ||
第263行: | 第271行: | ||
} | } | ||
/* 侧边栏样式 | /* 侧边栏样式 */ | ||
.side-block { | .side-block { | ||
--sideblock-bg-color: var(--crt-bg-color); | --sideblock-bg-color: var(--crt-bg-color); | ||
第278行: | 第286行: | ||
grid-template-rows: repeat(auto-fit, minmax(1.3125rem, 1fr)); | grid-template-rows: repeat(auto-fit, minmax(1.3125rem, 1fr)); | ||
margin: 0.5rem 0.5rem 0 0; | margin: 0.5rem 0.5rem 0 0; | ||
border: 1px solid rgba(var(--crt-terminal-green), 0. | border: 1px solid rgba(var(--crt-terminal-green), 0.3); | ||
background: | background: rgba(var(--sideblock-bg-color), 0.7); | ||
font-family: var(--UI-font); | font-family: var(--UI-font); | ||
box-shadow: 0 0 10px rgba(var(--crt-glow-color), 0.3); | |||
box-shadow: | |||
} | } | ||
第294行: | 第298行: | ||
min-height: 1.5rem; | min-height: 1.5rem; | ||
margin: 0; | margin: 0; | ||
background-color: rgba(var(--sideblock-heading-bg-color), 0. | background-color: rgba(var(--sideblock-heading-bg-color), 0.7); | ||
box-shadow: 0 | box-shadow: 0 0.0625rem 0 0 rgba(var(--sideblock-heading-border-color), 0.7); | ||
} | } | ||
第303行: | 第306行: | ||
color: rgb(var(--sideblock-heading-text-color)); | color: rgb(var(--sideblock-heading-text-color)); | ||
font-family: var(--title-font); | font-family: var(--title-font); | ||
font-size: calc((var(--base-font-size) * (14 / 15)) * | font-size: calc((var(--base-font-size) * (14 / 15)) * 0.9); | ||
font-weight: bold; | |||
letter-spacing: 0.05em; | letter-spacing: 0.05em; | ||
line-height: 1.15; | line-height: 1.15; | ||
text-indent: 0.25rem; | text-indent: 0.25rem; | ||
text-transform: uppercase; | text-transform: uppercase; | ||
text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7); | |||
} | } | ||
第316行: | 第320行: | ||
align-items: center; | align-items: center; | ||
justify-content: flex-start; | justify-content: flex-start; | ||
height: 1. | height: 1.5rem; | ||
min-height: 1. | min-height: 1.5rem; | ||
margin: 0; | margin: 0; | ||
padding: 0; | padding: 0; | ||
box-shadow: inset 0 | box-shadow: inset 0 -1px 0 0 rgba(var(--sidebar-border-color), 0.3); | ||
} | } | ||
第339行: | 第331行: | ||
flex-grow: 2; | flex-grow: 2; | ||
justify-content: flex-start; | justify-content: flex-start; | ||
height: 1. | height: 1.5em; | ||
margin: 0; | margin: 0; | ||
padding: 0 0. | padding: 0 0.6em; | ||
transition: all 0.2s ease; | transition: all 0.2s ease; | ||
background- | background-color: rgba(var(--sidebar-links-bg-color), 0.7); | ||
color: rgb(var(--sidebar-links-text)); | color: rgb(var(--sidebar-links-text)); | ||
font-size: calc(var(--base-font-size) * (14 / 15)); | font-size: calc(var(--base-font-size) * (14 / 15)); | ||
letter-spacing: 0. | letter-spacing: 0.04em; | ||
line-height: 1. | line-height: 1.5; | ||
text-decoration: none; | text-decoration: none; | ||
text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); | |||
} | } | ||
第355行: | 第347行: | ||
.side-block div.menu-item a:active, | .side-block div.menu-item a:active, | ||
.side-block div.menu-item a:focus-within { | .side-block div.menu-item a:focus-within { | ||
background-color: rgba(var(--sidebar-links-hover-bg-color), 0. | background-color: rgba(var(--sidebar-links-hover-bg-color), 0.3); | ||
color: rgb(var(--sidebar-links-hover-text-color)); | |||
text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7); | |||
} | |||
/* 表格样式 */ | |||
table { | |||
border-collapse: collapse; | |||
margin: 1em 0; | |||
background-color: rgba(var(--crt-bg-color), 0.7); | |||
border: 1px solid rgba(var(--crt-terminal-green), 0.7); | |||
box-shadow: | |||
0 0 5px rgba(var(--crt-glow-color), 0.3), | |||
0 0 10px rgba(var(--crt-glow-color), 0.1); | |||
border-radius: 3px; | |||
} | |||
table th { | |||
background-color: rgba(var(--crt-terminal-green), 0.2); | |||
color: rgb(var(--crt-terminal-green)); | |||
text-shadow: 0 0 5px rgba(var(--crt-terminal-green), 0.5); | |||
padding: 8px; | |||
font-family: var(--pixel-font); | |||
font-weight: normal; | |||
letter-spacing: 0.05em; | |||
text-transform: uppercase; | |||
} | |||
table td { | |||
padding: 8px; | |||
border: 1px solid rgba(var(--crt-terminal-green), 0.3); | |||
color: rgb(var(--crt-text-color)); | |||
} | |||
table tr:nth-child(even) { | |||
background-color: rgba(var(--crt-terminal-green), 0.05); | |||
} | |||
/* 代码块样式 */ | |||
pre, code, .mw-code, .pn, .mw-highlight { | |||
font-family: var(--pixel-font); | |||
background-color: rgba(var(--crt-bg-color), 0.5); | |||
border: 1px solid rgba(var(--crt-terminal-green), 0.5); | |||
padding: 0.5em; | |||
color: rgb(var(--crt-terminal-amber)); | color: rgb(var(--crt-terminal-amber)); | ||
text-shadow: | text-shadow: 0 0 3px rgba(var(--crt-terminal-amber), 0.5); | ||
0 0 5px rgba(var(--crt-terminal- | box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.3); | ||
0 0 10px rgba(var(--crt-terminal- | border-radius: 3px; | ||
text- | } | ||
/* 引用块样式 */ | |||
blockquote { | |||
border-left: 3px solid rgba(var(--crt-terminal-blue), 0.7); | |||
margin: 1em 0; | |||
padding: 0.5em 1em; | |||
background-color: rgba(var(--crt-bg-color), 0.5); | |||
color: rgba(var(--crt-text-color), 0.8); | |||
box-shadow: | |||
0 0 5px rgba(var(--crt-terminal-blue), 0.3), | |||
0 0 10px rgba(var(--crt-terminal-blue), 0.1); | |||
} | |||
/* 特殊样式引用块 */ | |||
.lightstyled-quote { | |||
background-color: rgba(var(--crt-terminal-green), 0.15); | |||
color: rgb(var(--crt-text-color)); | |||
border-left: 0.5rem solid rgba(var(--crt-terminal-blue), 0.7); | |||
padding: 0.1rem 1rem; | |||
margin: 0.5rem 0 0.5rem 0.25rem; | |||
box-shadow: | |||
0 0 5px rgba(var(--crt-terminal-blue), 0.3), | |||
0 0 10px rgba(var(--crt-terminal-blue), 0.1); | |||
} | } | ||
. | .darkstyled-quote { | ||
-- | background-color: rgba(var(--crt-bg-color), 0.8); | ||
border-left: 0.5rem solid rgba(var(--crt-terminal-green), 0.7); | |||
color: rgb(var(--crt-text-color)); | |||
padding: 0.1rem 1rem; | |||
margin: 0.5rem 0 0.5rem 0.25rem; | |||
box-shadow: | |||
0 0 5px rgba(var(--crt-terminal-green), 0.3), | |||
0 0 10px rgba(var(--crt-terminal-green), 0.1); | |||
} | } | ||
. | .darkstyled-quote a { | ||
color: rgb(var(--crt-terminal-blue)); | |||
text-shadow: 0 0 3px rgba(var(--crt-terminal-blue), 0.5); | |||
} | } | ||
/* | /* 信息框样式 */ | ||
.notaninfobox { | .notaninfobox { | ||
position: relative; | position: relative; | ||
第400行: | 第451行: | ||
z-index: 1; | z-index: 1; | ||
overflow-wrap: anywhere; | overflow-wrap: anywhere; | ||
box-shadow: | box-shadow: | ||
0 0 5px rgba(var(--crt-glow-color), 0. | 0 0 5px rgba(var(--crt-glow-color), 0.3), | ||
0 0 10px rgba(var(--crt-glow-color), 0. | 0 0 10px rgba(var(--crt-glow-color), 0.1); | ||
} | } | ||
第449行: | 第470行: | ||
border-left: none; | border-left: none; | ||
border-right: none; | border-right: none; | ||
} | } | ||
} | } | ||
.notaninfobox > .infobox-title { | .notaninfobox > .infobox-title { | ||
font-weight: bold; | |||
font-weight: | |||
text-align: center; | text-align: center; | ||
font-size: 120%; | font-size: 120%; | ||
background-color: rgba(var(--crt-terminal- | background-color: rgba(var(--crt-terminal-green), 0.3); | ||
color: rgb(var(--crt-terminal- | color: rgb(var(--crt-terminal-green)); | ||
text-shadow: | text-shadow: 0 0 5px rgba(var(--crt-terminal-green), 0.5); | ||
padding: 4px; | |||
padding: | |||
} | } | ||
.infobox-imagearea { | .infobox-imagearea { | ||
text-align: center; | text-align: center; | ||
padding: | padding: 4px; | ||
} | } | ||
.infobox-imagearea > div:not(:first-child) { | .infobox-imagearea > div:not(:first-child) { | ||
padding-top: 1em; | padding-top: 1em; | ||
} | |||
/* Horizontally centre animated images */ | |||
.infobox-imagearea .animated { | |||
display: inline-flex; | |||
align-items: center; | |||
} | } | ||
第488行: | 第510行: | ||
.notaninfobox .infobox-row .infobox-row-label, | .notaninfobox .infobox-row .infobox-row-label, | ||
.notaninfobox .infobox-row .infobox-row-field { | .notaninfobox .infobox-row .infobox-row-field { | ||
padding: | padding: 4px; | ||
} | } | ||
.notaninfobox .infobox-row .infobox-row-label { | .notaninfobox .infobox-row .infobox-row-label { | ||
font-weight: | font-weight: bold; | ||
display: flex; | display: flex; | ||
align-items: center; | align-items: center; | ||
color: rgb(var(--crt-terminal- | color: rgb(var(--crt-terminal-green)); | ||
text-shadow: 0 0 | text-shadow: 0 0 3px rgba(var(--crt-terminal-green), 0.5); | ||
} | } | ||
.notaninfobox .infobox-rows .infobox-row:nth-child(2n) .infobox-row-label, | .notaninfobox .infobox-rows .infobox-row:nth-child(2n) .infobox-row-label, | ||
.notaninfobox .infobox-rows .infobox-row:nth-child(2n) .infobox-row-field { | .notaninfobox .infobox-rows .infobox-row:nth-child(2n) .infobox-row-field { | ||
background-color: rgba(var(--crt- | background-color: rgba(var(--crt-terminal-green), 0.05); | ||
} | } | ||
.infobox-footer { | .infobox-footer { | ||
text-align: center; | text-align: center; | ||
} | } | ||
/* | /* 特殊样式块 */ | ||
.lightblock { | |||
border- | background-color: rgba(var(--crt-terminal-green), 0.15); | ||
margin: | color: rgb(var(--crt-text-color)); | ||
background-color: rgba(var(--crt-bg-color), 0. | padding: 0.01rem 1rem; | ||
border: | margin: 0.5rem 0 0.5rem 0.25rem; | ||
box-shadow: | box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25); | ||
border: 1px solid rgba(var(--crt-terminal-green), 0.3); | |||
text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); | |||
} | |||
.darkblock { | |||
background-color: rgba(var(--crt-bg-color), 0.8); | |||
color: rgb(var(--crt-text-color)); | |||
padding: 0.01rem 1rem; | |||
margin: 0.5rem 0 0.5rem 0.25rem; | |||
box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25); | |||
border: 1px solid rgba(var(--crt-terminal-green), 0.3); | |||
text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); | |||
} | |||
.dark-borderblock { | |||
background-color: rgba(var(--crt-bg-color), 0.8); | |||
color: rgb(var(--crt-text-color)); | |||
padding: 0.01rem 1rem; | |||
margin: 0.5rem 0 0.5rem 0.25rem; | |||
box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25); | |||
border: solid 0.3rem rgba(var(--crt-terminal-green), 0.7); | |||
text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); | |||
} | |||
.light-borderblock { | |||
background-color: rgba(var(--crt-terminal-green), 0.15); | |||
color: rgb(var(--crt-text-color)); | |||
padding: 0.01rem 1rem; | |||
margin: 0.5rem 0 0.5rem 0.25rem; | |||
box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25); | |||
border: solid 0.3rem rgba(var(--crt-bg-color), 0.8); | |||
text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); | |||
} | |||
.border-logoblock { | |||
padding: 0.01rem 1rem; | |||
box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25); | |||
color: rgb(var(--crt-text-color)); | |||
margin: 0.5rem 0 0.5rem 0.25rem; | |||
display: block; | |||
position: relative; | |||
background-color: rgba(var(--crt-bg-color), 0.8); | |||
border: solid 0.3rem rgba(var(--crt-terminal-green), 0.7); | |||
text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); | |||
} | |||
.border-logoblock::after { | |||
content: ""; | |||
float: center; | |||
border: solid 2px transparent; | |||
opacity: 0.25; | |||
top: 0; | |||
left: 0; | |||
bottom: 0; | |||
right: 0; | |||
position: absolute; | |||
z-index: 1; | |||
pointer-events: none; | |||
} | |||
.logoblock { | |||
padding: 0.01rem 1rem; | |||
color: rgb(var(--crt-text-color)); | |||
box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25); | |||
margin: 0.5rem 0 0.5rem 0.25rem; | |||
display: block; | |||
position: relative; | |||
background-color: rgba(var(--crt-bg-color), 0.8); | |||
text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); | |||
} | } | ||
.logoblock::after { | |||
content: ""; | |||
float: center; | |||
border: solid 2px transparent; | |||
opacity: 0.25; | |||
top: 0; | |||
left: 0; | |||
bottom: 0; | |||
right: 0; | |||
position: absolute; | |||
z-index: 1; | |||
pointer-events: none; | |||
} | } | ||
.titleblock { | |||
padding: | background-color: rgba(var(--crt-bg-color), 0.8); | ||
border: | color: rgb(var(--crt-text-color)); | ||
padding: 0.5rem 1rem 0.10rem; | |||
margin: 1.5rem 0rem 0.5rem 0rem; | |||
box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.5); | |||
border: solid rgba(var(--crt-terminal-green), 0.7) 2px; | |||
text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); | |||
} | } | ||
.titlebox { | |||
background-color: rgba(var(--crt-bg-color), 0.5); | color: rgba(var(--crt-bg-color), 0.8); | ||
position: relative; | |||
top: -1.6rem; | |||
background-color: rgba(var(--crt-terminal-green), 0.7); | |||
padding: 0.25rem 1rem; | |||
line-height: 0.1rem; | |||
text-shadow: 0 0 3px rgba(var(--crt-bg-color), 0.5); | |||
} | } | ||
.borderblock { | |||
background-color: rgba(var(--crt-terminal-green), 0. | background-color: rgba(var(--crt-bg-color), 0.8); | ||
color: rgb(var(--crt-text-color)); | |||
padding: 0.01rem 1rem; | |||
margin: 0.5rem 0 0.5rem 0.25rem; | |||
box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25); | |||
border: solid 0.3rem rgba(var(--crt-terminal-green), 0.7); | |||
text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); | |||
} | } | ||
/* | /* 导航框样式 */ | ||
table.navbox { | table.navbox { | ||
border: 1px solid rgba(var(--crt-terminal- | border: 1px solid rgba(var(--crt-terminal-green), 0.7); | ||
clear: both; | clear: both; | ||
margin: | margin: auto; | ||
padding: 1px; | padding: 1px; | ||
text-align: center; | text-align: center; | ||
width: 100%; | width: 100%; | ||
background-color: rgba(var(--crt-bg-color), 0.7); | background-color: rgba(var(--crt-bg-color), 0.7); | ||
box-shadow: | |||
0 0 5px rgba(var(--crt-glow-color), 0.3), | |||
0 0 10px rgba(var(--crt-glow-color), 0.1); | |||
} | } | ||
第568行: | 第673行: | ||
.navbox-abovebelow, | .navbox-abovebelow, | ||
table.navbox th { | table.navbox th { | ||
padding: | padding-left: 1em; | ||
padding-right: 1em; | |||
text-align: center; | text-align: center; | ||
} | } | ||
.navbox-group { | .navbox-group { | ||
font-weight: | font-weight: 700; | ||
white-space: nowrap; | white-space: nowrap; | ||
} | } | ||
.navbox- | .navbox, | ||
background-color: rgba(var(--crt-bg-color), 0.5); | .navbox-subgroup { | ||
background: none repeat scroll 0 0 rgba(var(--crt-bg-color), 0.7); | |||
} | |||
.navbox-list { | |||
border-color: rgba(var(--crt-bg-color), 0.7); | |||
} | |||
.navbox-title, | |||
table.navbox th { | |||
background: none repeat scroll 0 0 rgba(var(--crt-terminal-green), 0.3); | |||
color: rgb(var(--crt-terminal-green)); | |||
text-shadow: 0 0 5px rgba(var(--crt-terminal-green), 0.5); | |||
} | |||
.navbox-abovebelow, | |||
.navbox-group, | |||
.navbox-subgroup .navbox-title { | |||
background: none repeat scroll 0 0 rgba(var(--crt-terminal-green), 0.2); | |||
color: rgb(var(--crt-terminal-green)); | |||
text-shadow: 0 0 3px rgba(var(--crt-terminal-green), 0.5); | |||
} | } | ||
.navbox- | .navbox-subgroup .navbox-group, | ||
background | .navbox-subgroup .navbox-abovebelow { | ||
background: none repeat scroll 0 0 rgba(var(--crt-terminal-green), 0.1); | |||
} | } | ||
.navbox-even { | |||
. | background: none repeat scroll 0 0 rgba(var(--crt-bg-color), 0.8); | ||
} | } | ||
. | .navbox-odd { | ||
background: none repeat scroll 0 0 rgba(var(--crt-bg-color), 0.7); | |||
background: | |||
} | } | ||
/* | /* 黑幕效果 */ | ||
.heimu, | .heimu, | ||
.heimu rt { | .heimu rt { | ||
--heimu-color: | --heimu-color: rgba(var(--crt-bg-color), 0.9); | ||
--heimu-text-color: var(--crt-text-color); | --heimu-text-color: rgb(var(--crt-text-color)); | ||
--heimu-link-color: var(--crt-terminal-blue); | --heimu-link-color: rgb(var(--crt-terminal-blue)); | ||
--heimu-visited-link-color: var(--crt-terminal- | --heimu-visited-link-color: rgb(var(--crt-terminal-pink)); | ||
--heimu-new-link-color: var(--crt-terminal- | --heimu-new-link-color: rgb(var(--crt-terminal-amber)); | ||
--heimu-new-visited-link-color: | --heimu-new-visited-link-color: rgb(255, 150, 100); | ||
--heimu-extiw-visited-link-color: | --heimu-extiw-visited-link-color: rgb(180, 160, 255); | ||
background-color: | background-color: var(--heimu-color); | ||
} | } | ||
第655行: | 第746行: | ||
span.heimu a.mw-disambig, | span.heimu a.mw-disambig, | ||
span.heimu a.mw-redirect { | span.heimu a.mw-redirect { | ||
transition: color 0. | transition: color 0.13s linear; | ||
color: | color: var(--heimu-color); | ||
text-shadow: none; | text-shadow: none; | ||
} | } | ||
第662行: | 第753行: | ||
span.heimu:hover, | span.heimu:hover, | ||
span.heimu:active { | span.heimu:active { | ||
color: | color: var(--heimu-text-color); | ||
} | } | ||
span.heimu:hover a, | span.heimu:hover a, | ||
a:hover span.heimu { | a:hover span.heimu { | ||
color: | color: var(--heimu-link-color); | ||
text-shadow: 0 0 | text-shadow: 0 0 3px rgba(var(--crt-terminal-blue), 0.5); | ||
} | } | ||
span.heimu:hover a:visited, | span.heimu:hover a:visited, | ||
a:visited:hover span.heimu { | a:visited:hover span.heimu { | ||
color: | color: var(--heimu-visited-link-color); | ||
text-shadow: 0 0 | text-shadow: 0 0 3px rgba(var(--crt-terminal-pink), 0.5); | ||
} | } | ||
span.heimu:hover a.new, | span.heimu:hover a.new, | ||
a.new:hover span.heimu { | a.new:hover span.heimu { | ||
color: | color: var(--heimu-new-link-color); | ||
text-shadow: 0 0 | text-shadow: 0 0 3px rgba(var(--crt-terminal-amber), 0.5); | ||
} | } | ||
/* | /* 额外的CRT效果 */ | ||
#extrac-div-1 { | |||
position: fixed; | |||
width: 100vw; | |||
height: 100vh; | |||
pointer-events: none; | |||
background: repeating-linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15) 50%, rgba(0, 0, 0, 0)); | |||
background-size: auto 8px; | |||
opacity: 0.7; | |||
z-index: 9996; | |||
} | } | ||
#extrac-div-2 { | |||
position: fixed; | |||
width: 100vw; | |||
height: 1rem; | |||
top: 0; | |||
pointer-events: none; | |||
background: linear-gradient(to bottom, | |||
rgba(var(--crt-terminal-green)) 0%, | |||
rgba(var(--crt-terminal-green), 1) 50%, | |||
rgba(var(--crt-terminal-green), 0.98) 51%, | |||
rgba(var(--crt-terminal-green)) 100%); | |||
opacity: 0.1; | |||
animation: scanm 6s linear infinite; | |||
z-index: 9995; | |||
} | } | ||
. | @keyframes scanm { | ||
0% { top: -1rem; opacity: 0.05; } | |||
25% { top: 50%; opacity: 0.03; } | |||
37.5% { top: 75%; opacity: 0.06; } | |||
50% { top: 100%; opacity: 0.03; } | |||
100% { top: 100%; } | |||
} | } | ||
#extrac-div-3 { | |||
position: fixed; | |||
width: 100vw; | |||
height: 100vh; | |||
pointer-events: none; | |||
background-image: radial-gradient(circle, | |||
rgba(var(--crt-terminal-green), 0.2) 4%, | |||
rgba(var(--crt-bg-color), 0.2) 45%, | |||
rgba(var(--crt-terminal-green), 0.2) 95%); | |||
opacity: 0.25; | |||
mix-blend-mode: color-dodge; | |||
background-repeat: no-repeat; | |||
background-size: cover; | |||
z-index: 30; | |||
} | } | ||
/* | /* 页面内容淡入效果 */ | ||
@media screen and (prefers-reduced-motion: no-preference) { | |||
#page-title, #breadcrumbs, #page-content > * { | |||
animation-name: fadeIn; | |||
animation-duration: 1s; | |||
animation-iteration-count: 1; | |||
animation-timing-function: ease-out; | |||
animation-fill-mode: backwards; | |||
} | |||
} | } | ||
#page-title { animation-delay: 0s; } | |||
} | |||
#page-content > :nth-child(1) { animation-delay: calc(1 * var(--fade-in-delay)); } | |||
#page-content > :nth-child(2) { animation-delay: calc(2 * var(--fade-in-delay)); } | |||
#page-content > :nth-child(3) { animation-delay: calc(3 * var(--fade-in-delay)); } | |||
#page-content > :nth-child(4) { animation-delay: calc(4 * var(--fade-in-delay)); } | |||
#page-content > :nth-child(5) { animation-delay: calc(5 * var(--fade-in-delay)); } | |||
#page-content > :nth-child(6) { animation-delay: calc(6 * var(--fade-in-delay)); } | |||
} | #page-content > :nth-child(7) { animation-delay: calc(7 * var(--fade-in-delay)); } | ||
#page-content > :nth-child(8) { animation-delay: calc(8 * var(--fade-in-delay)); } | |||
#page-content > :nth-child(9) { animation-delay: calc(9 * var(--fade-in-delay)); } | |||
#page-content > :nth-child(10) { animation-delay: calc(10 * var(--fade-in-delay)); } | |||
#page-content > :nth-child(11) { animation-delay: calc(11 * var(--fade-in-delay)); } | |||
#page-content > :nth-child(12) { animation-delay: calc(12 * var(--fade-in-delay)); } | |||
#page-content > :nth-child(13) { animation-delay: calc(13 * var(--fade-in-delay)); } | |||
#page-content > :nth-child(14) { animation-delay: calc(14 * var(--fade-in-delay)); } | |||
#page-content > :nth-child(15) { animation-delay: calc(15 * var(--fade-in-delay)); } | |||
#page-content > :nth-child(n+15) { animation-delay: calc(16 * var(--fade-in-delay)); } | |||
@keyframes fadeIn { | |||
from { | |||
opacity: 0; | |||
transform: translate(0, 30px); | |||
} | |||
to { | |||
opacity: 1; | |||
transform: translate(0, 0); | |||
} | |||
} | } | ||
/* | /* 网格背景 */ | ||
#skrollr-body { | |||
background-image: radial-gradient(circle, rgba(var(--crt-terminal-green), 0.05) 1px, transparent 1px); | |||
background-repeat: repeat; | |||
background-size: 20px 20px; | |||
width: 100%; | |||
height: 7.5rem; | |||
width: | |||
} | } | ||
#container { | |||
background-image: radial-gradient(circle, rgba(var(--crt-terminal-green), 0.03) 1px, transparent 1px); | |||
background-size: 15px 15px; | |||
background-repeat: repeat; | |||
background-attachment: fixed; | |||
} | } | ||
/* | /* 确保图片不会溢出 */ | ||
img | img { | ||
max-width: 100%; | max-width: 100%; | ||
height: auto; | height: auto; | ||
} | } | ||
/* 添加JavaScript代码以创建扫描线元素 */ | |||
/* 需要在页面加载时执行以下JavaScript代码: | |||
. | document.addEventListener('DOMContentLoaded', function() { | ||
// 创建噪点效果元素 | |||
const noise = document.createElement('div'); | |||
noise.className = 'noise'; | |||
document.body.appendChild(noise); | |||
// 创建宽扫描线元素 | |||
const wideScanline = document.createElement('div'); | |||
wideScanline.className = 'wide-scanline'; | |||
document.body.appendChild(wideScanline); | |||
// 添加垂直同步扫描效果 | |||
const vsyncLine = document.createElement('div'); | |||
vsyncLine.className = 'vsync-line'; | |||
document.body.appendChild(vsyncLine); | |||
/ | |||
/ | |||
// 添加第二条扫描线,错开时间,增加真实感 | |||
const wideScanline2 = document.createElement('div'); | |||
wideScanline2.className = 'wide-scanline'; | |||
wideScanline2.style.animationDelay = '4s'; // 错开动画时间 | |||
wideScanline2.style.opacity = '0.2'; // 降低不透明度 | |||
document.body.appendChild(wideScanline2); | |||
// 添加额外的CRT效果元素 | |||
const extracDiv1 = document.createElement('div'); | |||
extracDiv1.id = 'extrac-div-1'; | |||
document.body.appendChild(extracDiv1); | |||
const extracDiv2 = document.createElement('div'); | |||
extracDiv2.id = 'extrac-div-2'; | |||
document.body.appendChild(extracDiv2); | |||
. | const extracDiv3 = document.createElement('div'); | ||
extracDiv3.id = 'extrac-div-3'; | |||
document.body.appendChild(extracDiv3); | |||
console.log('CRT效果已加载'); | |||
}); | |||
*/ | |||
2025年4月12日 (六) 21:09的版本
/* 千禧年数据库风格CSS - 浅色主题 */ @import url("https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@100;300;400;500;700;900&display=swap"); @import url("https://fonts.googleapis.com/css2?family=VT323&display=swap"); @import url("https://fastly.jsdelivr.net/gh/hoah2333/Fonts@main/Typeface-VonwaonBitmap-16px.css"); /* ==== 基础变量 ==== */ :root { /* ==== 字体设置 ==== */ --body-font: "VonwaonBitmap 16px", VT323, monospace; --UI-font: "VonwaonBitmap 16px", VT323, monospace; --title-font: "VonwaonBitmap 16px", "Noto Sans SC", VT323, monospace; --mono-font: "VonwaonBitmap 16px", VT323, monospace; /* === BASE FONT SIZE & LINE HEIGHT === */ --min-font-size: 0.9rem; --max-font-size: 1rem; --base-font-size: var(--max-font-size); --base-line-height: 1.5; /* === CRT DISPLAY COLORS === */ --crt-bg-color: 10, 15, 20; /* 深蓝黑色背景 */ --crt-text-color: 180, 255, 180; /* 荧光绿文字 */ --crt-terminal-green: 0, 255, 100; /* 终端绿 */ --crt-terminal-blue: 80, 170, 255; /* 终端蓝 */ --crt-terminal-amber: 255, 176, 0; /* 终端琥珀色 */ --crt-terminal-pink: 255, 100, 200; /* 终端粉色 */ --crt-glow-color: var(--crt-terminal-green); /* 荧光颜色 */ /* === SCANLINE EFFECTS === */ --scanline-height: 2px; --scanline-color: rgba(0, 0, 0, 0.07); --interlace-opacity: 0.4; --flicker-intensity: 0.03; --noise-opacity: 0.02; --rgb-shift-amount: 0.5px; --vignette-opacity: 0.3; --screen-curvature: 3%; /* 屏幕弯曲程度 */ /* === STANDARD THEME COLORS === */ /* 保留原有颜色变量 */ --white-monochrome: 180, 255, 180; /* 改为荧光绿 */ --black-monochrome: 10, 15, 20; /* 改为深蓝黑 */ --bright-accent: 0, 255, 100; /* 改为终端绿 */ --medium-accent: 0, 200, 80; --dark-accent: 0, 150, 60; /* === PRIMARY COLORS === */ --swatch-primary: var(--bright-accent); --swatch-primary-darker: var(--medium-accent); --swatch-primary-darkest: var(--dark-accent); --swatch-border-color: var(--bright-accent); /* === MENU COLORS === */ --swatch-menutxt-dark-color: var(--black-monochrome); --swatch-menutxt-light-color: var(--white-monochrome); --swatch-menutxt-general-color: var(--white-monochrome); /* === SECONDARY & TERTIARY COLORS === */ --swatch-text-secondary-color: var(--swatch-menutxt-light-color); /* === LINK COLORS === */ --link-color: rgb(80, 200, 255); --link-color-active: rgb(255, 176, 0); --visited-link-color: rgb(180, 160, 255); --hover-link-color: rgb(0, 255, 200); } /* === GLOBAL STYLES === */ html { font-size: 1em; line-height: var(--base-line-height); } html, body { margin: 0; padding: 0; font-variant-ligatures: none; background-color: rgb(var(--crt-bg-color)); color: rgb(var(--crt-text-color)); font-family: var(--body-font); overflow-x: hidden; /* 防止水平溢出 */ perspective: 1000px; /* 3D透视效果 */ } /* 添加CRT屏幕效果 */ body::before { content: ''; position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 9998; pointer-events: none; /* 屏幕弯曲效果 */ border-radius: 20% / 5%; box-shadow: 0 0 0 var(--screen-curvature) rgb(var(--crt-bg-color)), inset 0 0 40px rgba(0, 0, 0, 0.6); /* 暗角效果 */ background: radial-gradient( ellipse at center, transparent 60%, rgba(0, 0, 0, var(--vignette-opacity)) 100% ); } /* 扫描线效果 */ body::after { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999; background: repeating-linear-gradient( 0deg, var(--scanline-color) calc(var(--scanline-height) - 1px), var(--scanline-color) var(--scanline-height), transparent calc(var(--scanline-height) + 1px) ); background-size: 100% calc(var(--scanline-height) * 2); opacity: var(--interlace-opacity); animation: scanline-flicker 0.1s infinite alternate-reverse; } /* 噪点效果 */ .noise { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9997; opacity: var(--noise-opacity); background-image: url('data:image/png;base64,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'); } /* 宽扫描线效果 */ .wide-scanline { position: fixed; width: 100%; height: 4rem; top: -4rem; left: 0; background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.03) 10%, rgba(255, 255, 255, 0.05) 20%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.05) 80%, rgba(255, 255, 255, 0.03) 90%, rgba(255, 255, 255, 0) 100%); pointer-events: none; z-index: 9997; animation: scanline-move 8s cubic-bezier(0.1, 0.7, 0.7, 0.95) infinite; opacity: 0.3; } /* 垂直同步扫描效果 */ .vsync-line { position: fixed; top: 0; left: 0; width: 100%; height: 1px; background: rgba(255, 255, 255, 0.5); box-shadow: 0 0 5px 1px rgba(255, 255, 255, 0.3); z-index: 10000; pointer-events: none; opacity: 0; transform: translateY(-1px); animation: vsync-scan 10s linear infinite; } /* 动画效果 */ @keyframes scanline-move { 0% { top: -4rem; opacity: 0.2; } 5% { opacity: 0.3; } 30% { opacity: 0.2; } 50% { opacity: 0.3; } 75% { opacity: 0.2; } 95% { opacity: 0.3; } 100% { top: 100vh; opacity: 0.2; } } @keyframes scanline-flicker { 0% { opacity: var(--interlace-opacity); } 100% { opacity: calc(var(--interlace-opacity) - 0.1); } } @keyframes vsync-scan { 0% { opacity: 0; transform: translateY(-1px); } 1% { opacity: 0.5; transform: translateY(0); } 1.5% { opacity: 0.3; transform: translateY(100vh); } 2% { opacity: 0; transform: translateY(100vh); } 100% { opacity: 0; transform: translateY(100vh); } } @keyframes text-flicker { 0% { text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7); } 50% { text-shadow: 0 0 2px rgba(var(--crt-glow-color), 0.4); } 100% { text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7); } } /* 文本和链接样式 */ h1, h2, h3, h4, h5, h6 { font-family: var(--title-font); color: rgb(var(--crt-terminal-green)); text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7); letter-spacing: 0.05em; animation: text-flicker 2s infinite alternate; position: relative; } h1 { font-size: 1.8rem; text-transform: uppercase; } h2 { font-size: 1.5rem; } h3 { font-size: 1.3rem; } a { color: rgb(var(--crt-terminal-blue)); text-decoration: none; transition: all 0.2s ease; text-shadow: 0 0 3px rgba(var(--crt-terminal-blue), 0.5); } a:hover { color: rgb(var(--crt-terminal-amber)); text-shadow: 0 0 5px rgba(var(--crt-terminal-amber), 0.7); } a:hover::before { content: "> "; } a:visited { color: rgb(var(--crt-terminal-pink)); text-shadow: 0 0 3px rgba(var(--crt-terminal-pink), 0.5); } /* 按钮样式 */ button, input[type="submit"], input[type="button"] { background-color: rgba(var(--crt-bg-color), 0.8); color: rgb(var(--crt-terminal-green)); border: 1px solid rgba(var(--crt-terminal-green), 0.7); font-family: var(--pixel-font); padding: 5px 10px; box-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.5); transition: all 0.2s ease; } button:hover, input[type="submit"]:hover, input[type="button"]:hover { background-color: rgba(var(--crt-terminal-green), 0.2); box-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7), 0 0 10px rgba(var(--crt-glow-color), 0.5); cursor: pointer; } /* 侧边栏样式 */ .side-block { --sideblock-bg-color: var(--crt-bg-color); --sideblock-heading-border-color: var(--crt-terminal-green); --sideblock-heading-bg-color: var(--crt-bg-color); --sideblock-heading-text-color: var(--crt-terminal-green); --sidebar-border-color: var(--crt-terminal-green); --sidebar-links-text: var(--crt-text-color); --sidebar-links-bg-color: var(--crt-bg-color); --sidebar-links-hover-bg-color: var(--crt-terminal-green); --sidebar-links-hover-text-color: var(--black-monochrome); display: grid; grid-template-rows: repeat(auto-fit, minmax(1.3125rem, 1fr)); margin: 0.5rem 0.5rem 0 0; border: 1px solid rgba(var(--crt-terminal-green), 0.3); background: rgba(var(--sideblock-bg-color), 0.7); font-family: var(--UI-font); box-shadow: 0 0 10px rgba(var(--crt-glow-color), 0.3); } .side-block .heading { display: flex; align-items: flex-end; justify-content: flex-start; min-height: 1.5rem; margin: 0; background-color: rgba(var(--sideblock-heading-bg-color), 0.7); box-shadow: 0 0.0625rem 0 0 rgba(var(--sideblock-heading-border-color), 0.7); } .side-block .heading p { margin: 0; color: rgb(var(--sideblock-heading-text-color)); font-family: var(--title-font); font-size: calc((var(--base-font-size) * (14 / 15)) * 0.9); font-weight: bold; letter-spacing: 0.05em; line-height: 1.15; text-indent: 0.25rem; text-transform: uppercase; text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7); } .side-block div.menu-item { display: flex; flex-flow: row wrap; align-items: center; justify-content: flex-start; height: 1.5rem; min-height: 1.5rem; margin: 0; padding: 0; box-shadow: inset 0 -1px 0 0 rgba(var(--sidebar-border-color), 0.3); } .side-block div.menu-item a { display: flex; flex-grow: 2; justify-content: flex-start; height: 1.5em; margin: 0; padding: 0 0.6em; transition: all 0.2s ease; background-color: rgba(var(--sidebar-links-bg-color), 0.7); color: rgb(var(--sidebar-links-text)); font-size: calc(var(--base-font-size) * (14 / 15)); letter-spacing: 0.04em; line-height: 1.5; text-decoration: none; text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); } .side-block div.menu-item a:hover, .side-block div.menu-item a:active, .side-block div.menu-item a:focus-within { background-color: rgba(var(--sidebar-links-hover-bg-color), 0.3); color: rgb(var(--sidebar-links-hover-text-color)); text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7); } /* 表格样式 */ table { border-collapse: collapse; margin: 1em 0; background-color: rgba(var(--crt-bg-color), 0.7); border: 1px solid rgba(var(--crt-terminal-green), 0.7); box-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.3), 0 0 10px rgba(var(--crt-glow-color), 0.1); border-radius: 3px; } table th { background-color: rgba(var(--crt-terminal-green), 0.2); color: rgb(var(--crt-terminal-green)); text-shadow: 0 0 5px rgba(var(--crt-terminal-green), 0.5); padding: 8px; font-family: var(--pixel-font); font-weight: normal; letter-spacing: 0.05em; text-transform: uppercase; } table td { padding: 8px; border: 1px solid rgba(var(--crt-terminal-green), 0.3); color: rgb(var(--crt-text-color)); } table tr:nth-child(even) { background-color: rgba(var(--crt-terminal-green), 0.05); } /* 代码块样式 */ pre, code, .mw-code, .pn, .mw-highlight { font-family: var(--pixel-font); background-color: rgba(var(--crt-bg-color), 0.5); border: 1px solid rgba(var(--crt-terminal-green), 0.5); padding: 0.5em; color: rgb(var(--crt-terminal-amber)); text-shadow: 0 0 3px rgba(var(--crt-terminal-amber), 0.5); box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.3); border-radius: 3px; } /* 引用块样式 */ blockquote { border-left: 3px solid rgba(var(--crt-terminal-blue), 0.7); margin: 1em 0; padding: 0.5em 1em; background-color: rgba(var(--crt-bg-color), 0.5); color: rgba(var(--crt-text-color), 0.8); box-shadow: 0 0 5px rgba(var(--crt-terminal-blue), 0.3), 0 0 10px rgba(var(--crt-terminal-blue), 0.1); } /* 特殊样式引用块 */ .lightstyled-quote { background-color: rgba(var(--crt-terminal-green), 0.15); color: rgb(var(--crt-text-color)); border-left: 0.5rem solid rgba(var(--crt-terminal-blue), 0.7); padding: 0.1rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 0 0 5px rgba(var(--crt-terminal-blue), 0.3), 0 0 10px rgba(var(--crt-terminal-blue), 0.1); } .darkstyled-quote { background-color: rgba(var(--crt-bg-color), 0.8); border-left: 0.5rem solid rgba(var(--crt-terminal-green), 0.7); color: rgb(var(--crt-text-color)); padding: 0.1rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 0 0 5px rgba(var(--crt-terminal-green), 0.3), 0 0 10px rgba(var(--crt-terminal-green), 0.1); } .darkstyled-quote a { color: rgb(var(--crt-terminal-blue)); text-shadow: 0 0 3px rgba(var(--crt-terminal-blue), 0.5); } /* 信息框样式 */ .notaninfobox { position: relative; clear: right; margin: 0 0 1em 1em; width: 350px; font-size: 90%; background-color: rgba(var(--crt-bg-color), 0.7); float: right; border: 1px solid rgba(var(--crt-terminal-green), 0.7); padding: 2px; overflow: auto; z-index: 1; overflow-wrap: anywhere; box-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.3), 0 0 10px rgba(var(--crt-glow-color), 0.1); } @media all and (max-width: 511px) { .notaninfobox { float: none; margin-left: 0; width: auto; } } @media all and (max-width: 337px) { .notaninfobox { margin-left: -16px; margin-right: -16px; border-left: none; border-right: none; } } .notaninfobox > .infobox-title { font-weight: bold; text-align: center; font-size: 120%; background-color: rgba(var(--crt-terminal-green), 0.3); color: rgb(var(--crt-terminal-green)); text-shadow: 0 0 5px rgba(var(--crt-terminal-green), 0.5); padding: 4px; } .infobox-imagearea { text-align: center; padding: 4px; } .infobox-imagearea > div:not(:first-child) { padding-top: 1em; } /* Horizontally centre animated images */ .infobox-imagearea .animated { display: inline-flex; align-items: center; } .notaninfobox .infobox-rows { display: grid; grid-template-columns: max-content 1fr; gap: 1px; } .notaninfobox .infobox-rows .infobox-row { display: contents; } .notaninfobox .infobox-row .infobox-row-label, .notaninfobox .infobox-row .infobox-row-field { padding: 4px; } .notaninfobox .infobox-row .infobox-row-label { font-weight: bold; display: flex; align-items: center; color: rgb(var(--crt-terminal-green)); text-shadow: 0 0 3px rgba(var(--crt-terminal-green), 0.5); } .notaninfobox .infobox-rows .infobox-row:nth-child(2n) .infobox-row-label, .notaninfobox .infobox-rows .infobox-row:nth-child(2n) .infobox-row-field { background-color: rgba(var(--crt-terminal-green), 0.05); } .infobox-footer { text-align: center; } /* 特殊样式块 */ .lightblock { background-color: rgba(var(--crt-terminal-green), 0.15); color: rgb(var(--crt-text-color)); padding: 0.01rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25); border: 1px solid rgba(var(--crt-terminal-green), 0.3); text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); } .darkblock { background-color: rgba(var(--crt-bg-color), 0.8); color: rgb(var(--crt-text-color)); padding: 0.01rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25); border: 1px solid rgba(var(--crt-terminal-green), 0.3); text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); } .dark-borderblock { background-color: rgba(var(--crt-bg-color), 0.8); color: rgb(var(--crt-text-color)); padding: 0.01rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25); border: solid 0.3rem rgba(var(--crt-terminal-green), 0.7); text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); } .light-borderblock { background-color: rgba(var(--crt-terminal-green), 0.15); color: rgb(var(--crt-text-color)); padding: 0.01rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25); border: solid 0.3rem rgba(var(--crt-bg-color), 0.8); text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); } .border-logoblock { padding: 0.01rem 1rem; box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25); color: rgb(var(--crt-text-color)); margin: 0.5rem 0 0.5rem 0.25rem; display: block; position: relative; background-color: rgba(var(--crt-bg-color), 0.8); border: solid 0.3rem rgba(var(--crt-terminal-green), 0.7); text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); } .border-logoblock::after { content: ""; float: center; border: solid 2px transparent; opacity: 0.25; top: 0; left: 0; bottom: 0; right: 0; position: absolute; z-index: 1; pointer-events: none; } .logoblock { padding: 0.01rem 1rem; color: rgb(var(--crt-text-color)); box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25); margin: 0.5rem 0 0.5rem 0.25rem; display: block; position: relative; background-color: rgba(var(--crt-bg-color), 0.8); text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); } .logoblock::after { content: ""; float: center; border: solid 2px transparent; opacity: 0.25; top: 0; left: 0; bottom: 0; right: 0; position: absolute; z-index: 1; pointer-events: none; } .titleblock { background-color: rgba(var(--crt-bg-color), 0.8); color: rgb(var(--crt-text-color)); padding: 0.5rem 1rem 0.10rem; margin: 1.5rem 0rem 0.5rem 0rem; box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.5); border: solid rgba(var(--crt-terminal-green), 0.7) 2px; text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); } .titlebox { color: rgba(var(--crt-bg-color), 0.8); position: relative; top: -1.6rem; background-color: rgba(var(--crt-terminal-green), 0.7); padding: 0.25rem 1rem; line-height: 0.1rem; text-shadow: 0 0 3px rgba(var(--crt-bg-color), 0.5); } .borderblock { background-color: rgba(var(--crt-bg-color), 0.8); color: rgb(var(--crt-text-color)); padding: 0.01rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25); border: solid 0.3rem rgba(var(--crt-terminal-green), 0.7); text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5); } /* 导航框样式 */ table.navbox { border: 1px solid rgba(var(--crt-terminal-green), 0.7); clear: both; margin: auto; padding: 1px; text-align: center; width: 100%; background-color: rgba(var(--crt-bg-color), 0.7); box-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.3), 0 0 10px rgba(var(--crt-glow-color), 0.1); } table.navbox + table.navbox { margin-top: -1px; } .navbox-title, .navbox-abovebelow, table.navbox th { padding-left: 1em; padding-right: 1em; text-align: center; } .navbox-group { font-weight: 700; white-space: nowrap; } .navbox, .navbox-subgroup { background: none repeat scroll 0 0 rgba(var(--crt-bg-color), 0.7); } .navbox-list { border-color: rgba(var(--crt-bg-color), 0.7); } .navbox-title, table.navbox th { background: none repeat scroll 0 0 rgba(var(--crt-terminal-green), 0.3); color: rgb(var(--crt-terminal-green)); text-shadow: 0 0 5px rgba(var(--crt-terminal-green), 0.5); } .navbox-abovebelow, .navbox-group, .navbox-subgroup .navbox-title { background: none repeat scroll 0 0 rgba(var(--crt-terminal-green), 0.2); color: rgb(var(--crt-terminal-green)); text-shadow: 0 0 3px rgba(var(--crt-terminal-green), 0.5); } .navbox-subgroup .navbox-group, .navbox-subgroup .navbox-abovebelow { background: none repeat scroll 0 0 rgba(var(--crt-terminal-green), 0.1); } .navbox-even { background: none repeat scroll 0 0 rgba(var(--crt-bg-color), 0.8); } .navbox-odd { background: none repeat scroll 0 0 rgba(var(--crt-bg-color), 0.7); } /* 黑幕效果 */ .heimu, .heimu rt { --heimu-color: rgba(var(--crt-bg-color), 0.9); --heimu-text-color: rgb(var(--crt-text-color)); --heimu-link-color: rgb(var(--crt-terminal-blue)); --heimu-visited-link-color: rgb(var(--crt-terminal-pink)); --heimu-new-link-color: rgb(var(--crt-terminal-amber)); --heimu-new-visited-link-color: rgb(255, 150, 100); --heimu-extiw-visited-link-color: rgb(180, 160, 255); background-color: var(--heimu-color); } .heimu, .heimu a, a .heimu, a.new .heimu, span.heimu a:visited, span.heimu a.new, span.heimu a.external, span.heimu a.external:visited, span.heimu a.extiw, span.heimu a.extiw:visited, span.heimu a.mw-disambig, span.heimu a.mw-redirect { transition: color 0.13s linear; color: var(--heimu-color); text-shadow: none; } span.heimu:hover, span.heimu:active { color: var(--heimu-text-color); } span.heimu:hover a, a:hover span.heimu { color: var(--heimu-link-color); text-shadow: 0 0 3px rgba(var(--crt-terminal-blue), 0.5); } span.heimu:hover a:visited, a:visited:hover span.heimu { color: var(--heimu-visited-link-color); text-shadow: 0 0 3px rgba(var(--crt-terminal-pink), 0.5); } span.heimu:hover a.new, a.new:hover span.heimu { color: var(--heimu-new-link-color); text-shadow: 0 0 3px rgba(var(--crt-terminal-amber), 0.5); } /* 额外的CRT效果 */ #extrac-div-1 { position: fixed; width: 100vw; height: 100vh; pointer-events: none; background: repeating-linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15) 50%, rgba(0, 0, 0, 0)); background-size: auto 8px; opacity: 0.7; z-index: 9996; } #extrac-div-2 { position: fixed; width: 100vw; height: 1rem; top: 0; pointer-events: none; background: linear-gradient(to bottom, rgba(var(--crt-terminal-green)) 0%, rgba(var(--crt-terminal-green), 1) 50%, rgba(var(--crt-terminal-green), 0.98) 51%, rgba(var(--crt-terminal-green)) 100%); opacity: 0.1; animation: scanm 6s linear infinite; z-index: 9995; } @keyframes scanm { 0% { top: -1rem; opacity: 0.05; } 25% { top: 50%; opacity: 0.03; } 37.5% { top: 75%; opacity: 0.06; } 50% { top: 100%; opacity: 0.03; } 100% { top: 100%; } } #extrac-div-3 { position: fixed; width: 100vw; height: 100vh; pointer-events: none; background-image: radial-gradient(circle, rgba(var(--crt-terminal-green), 0.2) 4%, rgba(var(--crt-bg-color), 0.2) 45%, rgba(var(--crt-terminal-green), 0.2) 95%); opacity: 0.25; mix-blend-mode: color-dodge; background-repeat: no-repeat; background-size: cover; z-index: 30; } /* 页面内容淡入效果 */ @media screen and (prefers-reduced-motion: no-preference) { #page-title, #breadcrumbs, #page-content > * { animation-name: fadeIn; animation-duration: 1s; animation-iteration-count: 1; animation-timing-function: ease-out; animation-fill-mode: backwards; } } #page-title { animation-delay: 0s; } #page-content > :nth-child(1) { animation-delay: calc(1 * var(--fade-in-delay)); } #page-content > :nth-child(2) { animation-delay: calc(2 * var(--fade-in-delay)); } #page-content > :nth-child(3) { animation-delay: calc(3 * var(--fade-in-delay)); } #page-content > :nth-child(4) { animation-delay: calc(4 * var(--fade-in-delay)); } #page-content > :nth-child(5) { animation-delay: calc(5 * var(--fade-in-delay)); } #page-content > :nth-child(6) { animation-delay: calc(6 * var(--fade-in-delay)); } #page-content > :nth-child(7) { animation-delay: calc(7 * var(--fade-in-delay)); } #page-content > :nth-child(8) { animation-delay: calc(8 * var(--fade-in-delay)); } #page-content > :nth-child(9) { animation-delay: calc(9 * var(--fade-in-delay)); } #page-content > :nth-child(10) { animation-delay: calc(10 * var(--fade-in-delay)); } #page-content > :nth-child(11) { animation-delay: calc(11 * var(--fade-in-delay)); } #page-content > :nth-child(12) { animation-delay: calc(12 * var(--fade-in-delay)); } #page-content > :nth-child(13) { animation-delay: calc(13 * var(--fade-in-delay)); } #page-content > :nth-child(14) { animation-delay: calc(14 * var(--fade-in-delay)); } #page-content > :nth-child(15) { animation-delay: calc(15 * var(--fade-in-delay)); } #page-content > :nth-child(n+15) { animation-delay: calc(16 * var(--fade-in-delay)); } @keyframes fadeIn { from { opacity: 0; transform: translate(0, 30px); } to { opacity: 1; transform: translate(0, 0); } } /* 网格背景 */ #skrollr-body { background-image: radial-gradient(circle, rgba(var(--crt-terminal-green), 0.05) 1px, transparent 1px); background-repeat: repeat; background-size: 20px 20px; width: 100%; height: 7.5rem; } #container { background-image: radial-gradient(circle, rgba(var(--crt-terminal-green), 0.03) 1px, transparent 1px); background-size: 15px 15px; background-repeat: repeat; background-attachment: fixed; } /* 确保图片不会溢出 */ img { max-width: 100%; height: auto; } /* 添加JavaScript代码以创建扫描线元素 */ /* 需要在页面加载时执行以下JavaScript代码: document.addEventListener('DOMContentLoaded', function() { // 创建噪点效果元素 const noise = document.createElement('div'); noise.className = 'noise'; document.body.appendChild(noise); // 创建宽扫描线元素 const wideScanline = document.createElement('div'); wideScanline.className = 'wide-scanline'; document.body.appendChild(wideScanline); // 添加垂直同步扫描效果 const vsyncLine = document.createElement('div'); vsyncLine.className = 'vsync-line'; document.body.appendChild(vsyncLine); // 添加第二条扫描线,错开时间,增加真实感 const wideScanline2 = document.createElement('div'); wideScanline2.className = 'wide-scanline'; wideScanline2.style.animationDelay = '4s'; // 错开动画时间 wideScanline2.style.opacity = '0.2'; // 降低不透明度 document.body.appendChild(wideScanline2); // 添加额外的CRT效果元素 const extracDiv1 = document.createElement('div'); extracDiv1.id = 'extrac-div-1'; document.body.appendChild(extracDiv1); const extracDiv2 = document.createElement('div'); extracDiv2.id = 'extrac-div-2'; document.body.appendChild(extracDiv2); const extracDiv3 = document.createElement('div'); extracDiv3.id = 'extrac-div-3'; document.body.appendChild(extracDiv3); console.log('CRT效果已加载'); }); */