文件
csp/frontend/src/themes/minecraft/theme.css

366 行
10 KiB
CSS

@font-face {
font-family: "PressStart2P";
src: url("https://fonts.gstatic.com/s/pressstart2p/v15/e3t4euO8T-267oIAQAu6jDQyK3nVivM.woff2") format("woff2");
font-display: swap;
}
@font-face {
font-family: "VT323";
src: url("https://fonts.gstatic.com/s/vt323/v17/pxiKyp0ihIEF2hsY.woff2") format("woff2");
font-display: swap;
}
:root[data-theme="minecraft"] {
--mc-grass-top: #7cb342;
--mc-grass-dark: #558b2f;
--mc-dirt: #795548;
--mc-wood-dark: #5d4037;
--mc-wood: #8d6e63;
--mc-plank: #c69c6d;
--mc-plank-light: #efebe9;
--mc-stone: #9e9e9e;
--mc-stone-dark: #616161;
--mc-obsidian: #1f1f1f;
--mc-diamond: #00b0d6;
--mc-gold: #ffb300;
--mc-red: #ef5350;
--mc-shadow: #000000;
--background: #161616;
--foreground: #f5f5f5;
--surface: #262626;
--surface-soft: #1f1f1f;
--border: #000000;
}
:root[data-theme="minecraft"] body {
background-color: var(--background);
background-image:
linear-gradient(45deg, #1f1f1f 25%, transparent 25%),
linear-gradient(-45deg, #1f1f1f 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, #1f1f1f 75%),
linear-gradient(-45deg, transparent 75%, #1f1f1f 75%);
background-size: 40px 40px;
background-position: 0 0, 0 20px, 20px -20px, -20px 0;
color: var(--foreground);
font-family: "VT323", "MiSans", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
font-size: 1.06rem;
}
:root[data-theme="minecraft"] h1,
:root[data-theme="minecraft"] h2,
:root[data-theme="minecraft"] h3,
:root[data-theme="minecraft"] h4,
:root[data-theme="minecraft"] h5,
:root[data-theme="minecraft"] h6 {
font-family: "PressStart2P", "VT323", sans-serif;
letter-spacing: 0.04em;
line-height: 1.5;
text-shadow: 2px 2px 0 #000000;
text-transform: uppercase;
}
:root[data-theme="minecraft"] .mc-text-shadow {
text-shadow: 2px 2px 0 #000000;
}
:root[data-theme="minecraft"] .mc-text-shadow-sm {
text-shadow: 1px 1px 0 #000000;
}
:root[data-theme="minecraft"] ::-webkit-scrollbar {
width: 12px;
height: 12px;
background: var(--mc-obsidian);
}
:root[data-theme="minecraft"] ::-webkit-scrollbar-thumb {
background: var(--mc-wood);
border: 2px solid #000;
}
:root[data-theme="minecraft"] .print-hidden {
image-rendering: pixelated;
}
:root[data-theme="minecraft"] header.print-hidden {
background: linear-gradient(180deg, #1d1d1d 0%, #2b2b2b 100%) !important;
border-bottom: 4px solid #000 !important;
box-shadow: 0 6px 0 rgba(0, 0, 0, 0.4);
position: relative;
}
:root[data-theme="minecraft"] header.print-hidden::before {
content: "";
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 8px;
background: linear-gradient(180deg, var(--mc-grass-top) 0%, var(--mc-grass-dark) 100%);
border-bottom: 2px solid #2e7d32;
}
:root[data-theme="minecraft"] nav.print-hidden.fixed {
background: linear-gradient(180deg, #1d1d1d 0%, #2b2b2b 100%) !important;
border-top: 4px solid #000;
}
:root[data-theme="minecraft"] .rounded-xl.border,
:root[data-theme="minecraft"] .rounded-lg.border,
:root[data-theme="minecraft"] .rounded-md.border,
:root[data-theme="minecraft"] .rounded.border {
border-radius: 0 !important;
border: 3px solid #000 !important;
box-shadow:
5px 5px 0 rgba(0, 0, 0, 0.48),
inset 2px 2px 0 rgba(255, 255, 255, 0.08);
}
:root[data-theme="minecraft"] main section.rounded-xl.border.bg-white,
:root[data-theme="minecraft"] main article.rounded-xl.border.bg-white {
background: linear-gradient(180deg, #2a2a2a 0%, #232323 100%) !important;
}
:root[data-theme="minecraft"] .bg-white {
background-color: #292929 !important;
}
:root[data-theme="minecraft"] .bg-zinc-50 {
background-color: #242424 !important;
}
:root[data-theme="minecraft"] .bg-zinc-100 {
background-color: #323232 !important;
}
:root[data-theme="minecraft"] .text-zinc-400,
:root[data-theme="minecraft"] .text-zinc-500,
:root[data-theme="minecraft"] .text-zinc-600,
:root[data-theme="minecraft"] .text-zinc-700 {
color: #d7d7d7 !important;
}
:root[data-theme="minecraft"] .text-zinc-800,
:root[data-theme="minecraft"] .text-zinc-900 {
color: #ececec !important;
}
:root[data-theme="minecraft"] .text-blue-600,
:root[data-theme="minecraft"] .text-blue-700 {
color: var(--mc-diamond) !important;
}
:root[data-theme="minecraft"] .text-emerald-700 {
color: var(--mc-grass-top) !important;
}
:root[data-theme="minecraft"] .text-amber-700,
:root[data-theme="minecraft"] .text-amber-800 {
color: var(--mc-gold) !important;
}
:root[data-theme="minecraft"] .text-red-600,
:root[data-theme="minecraft"] .text-red-700 {
color: var(--mc-red) !important;
}
:root[data-theme="minecraft"] button:not(.mc-reset),
:root[data-theme="minecraft"] .mc-btn {
background: linear-gradient(180deg, var(--mc-wood) 0%, var(--mc-wood-dark) 100%) !important;
border: 3px solid #000 !important;
border-bottom-width: 7px !important;
border-radius: 0 !important;
color: #fff !important;
font-family: "PressStart2P", "VT323", sans-serif !important;
font-size: 0.75rem !important;
/* Increased for better readability */
letter-spacing: 0.04em;
line-height: 1.4;
text-shadow: 1px 1px 0 #000;
box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.48);
transition: transform 0.08s ease, filter 0.08s ease;
text-transform: uppercase;
padding: 0.5rem 1rem !important;
}
:root[data-theme="minecraft"] button:not(.mc-reset):hover:not(:disabled),
:root[data-theme="minecraft"] .mc-btn:hover:not(:disabled) {
filter: brightness(1.15);
transform: translateY(-2px);
}
:root[data-theme="minecraft"] button:not(.mc-reset):active:not(:disabled),
:root[data-theme="minecraft"] .mc-btn:active:not(:disabled) {
border-bottom-width: 3px !important;
transform: translateY(4px);
box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.48);
}
:root[data-theme="minecraft"] button:not(.mc-reset):disabled,
:root[data-theme="minecraft"] .mc-btn:disabled {
opacity: 0.6;
filter: grayscale(0.8);
cursor: not-allowed;
transform: none !important;
}
/* Variant: Primary/Diamond */
:root[data-theme="minecraft"] .mc-btn-primary {
background: linear-gradient(180deg, var(--mc-diamond) 0%, #008ba3 100%) !important;
}
/* Variant: Danger/Red */
:root[data-theme="minecraft"] .mc-btn-danger {
background: linear-gradient(180deg, var(--mc-red) 0%, #c62828 100%) !important;
}
/* Variant: Success/Emerald */
:root[data-theme="minecraft"] .mc-btn-success {
background: linear-gradient(180deg, var(--mc-grass-top) 0%, var(--mc-grass-dark) 100%) !important;
}
:root[data-theme="minecraft"] input,
:root[data-theme="minecraft"] textarea,
:root[data-theme="minecraft"] select {
background: #1f1f1f !important;
border: 3px solid #000 !important;
border-radius: 0 !important;
color: #f4f4f4 !important;
box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.12);
font-family: "VT323", "MiSans", sans-serif;
font-size: 1rem;
}
:root[data-theme="minecraft"] input::placeholder,
:root[data-theme="minecraft"] textarea::placeholder {
color: #adadad;
}
:root[data-theme="minecraft"] a {
color: var(--mc-diamond);
}
:root[data-theme="minecraft"] a:hover {
color: var(--mc-gold);
}
:root[data-theme="minecraft"] table thead {
background: #353535 !important;
}
:root[data-theme="minecraft"] table tr {
border-color: #000 !important;
}
:root[data-theme="minecraft"] pre {
border: 2px solid #000;
box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.08);
}
:root[data-theme="minecraft"] code {
font-family: "VT323", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
:root[data-theme="minecraft"] .monaco-editor,
:root[data-theme="minecraft"] .monaco-editor .margin,
:root[data-theme="minecraft"] .monaco-editor .monaco-editor-background,
:root[data-theme="minecraft"] .monaco-editor-background,
:root[data-theme="minecraft"] .monaco-editor .inputarea.ime-input {
background-color: #111317 !important;
}
:root[data-theme="minecraft"] .monaco-editor .current-line {
border-color: #232b3c !important;
}
:root[data-theme="minecraft"] .monaco-editor .suggest-widget,
:root[data-theme="minecraft"] .monaco-editor .parameter-hints-widget {
border: 2px solid #000 !important;
background: #161a22 !important;
color: #ececec !important;
}
:root[data-theme="minecraft"] .monaco-editor .suggest-widget .monaco-list-row.focused {
background: #2a3347 !important;
}
:root[data-theme="minecraft"] img {
image-rendering: pixelated;
}
:root[data-theme="minecraft"] .pixel-avatar-frame {
border: 3px solid #000 !important;
border-radius: 0 !important;
background: linear-gradient(180deg, var(--mc-plank) 0%, var(--mc-dirt) 100%);
box-shadow:
3px 3px 0 rgba(0, 0, 0, 0.45),
inset 1px 1px 0 rgba(255, 255, 255, 0.18);
}
:root[data-theme="minecraft"] .pixel-avatar-image {
image-rendering: pixelated;
}
:root[data-theme="minecraft"] .problem-markdown-compact {
font-size: 66%;
}
:root[data-theme="minecraft"] .problem-markdown-compact article {
color: #ececec !important;
}
:root[data-theme="minecraft"] .problem-markdown-compact blockquote {
color: #d9d9d9 !important;
border-left-color: #8d6e63 !important;
}
:root[data-theme="minecraft"] .problem-markdown-compact th,
:root[data-theme="minecraft"] .problem-markdown-compact td {
color: #ececec !important;
}
:root[data-theme="minecraft"] .problem-markdown-compact th {
background: #3a3a3a !important;
}
/* ── Problem detail page markdown: dark text on light plank background ── */
:root[data-theme="minecraft"] .problem-markdown,
:root[data-theme="minecraft"] .problem-markdown-compact {
font-family: "MiSans", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif !important;
}
:root[data-theme="minecraft"] .problem-markdown,
:root[data-theme="minecraft"] .problem-markdown article {
color: #3e2723 !important;
}
:root[data-theme="minecraft"] .problem-markdown h1,
:root[data-theme="minecraft"] .problem-markdown h2,
:root[data-theme="minecraft"] .problem-markdown h3 {
color: #3e2723 !important;
}
:root[data-theme="minecraft"] .problem-markdown p,
:root[data-theme="minecraft"] .problem-markdown li,
:root[data-theme="minecraft"] .problem-markdown span,
:root[data-theme="minecraft"] .problem-markdown td,
:root[data-theme="minecraft"] .problem-markdown blockquote {
color: #4e342e !important;
}
:root[data-theme="minecraft"] .problem-markdown th {
color: #3e2723 !important;
background: #d7ccc8 !important;
}
:root[data-theme="minecraft"] .problem-markdown code:not([class*="hljs"]) {
color: #4e342e !important;
background: #d7ccc8 !important;
}
:root[data-theme="minecraft"] .problem-markdown a {
color: #1565c0 !important;
}