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效果已加载');
});
*/