style: switch to monochrome color scheme

Implement pure black and white theme for both dark and light modes.

Co-authored-by: Simon <85533298+handsomezhuzhu@users.noreply.github.com>
This commit is contained in:
v0
2026-02-04 15:26:54 +00:00
parent cd576ef2c1
commit dc3c9110b9

View File

@@ -21,11 +21,11 @@ export function TechBackground() {
const draw = () => { const draw = () => {
const isDark = document.documentElement.classList.contains("dark") const isDark = document.documentElement.classList.contains("dark")
// Fill with base background color // Fill with base background color - pure black/white
ctx.fillStyle = isDark ? "hsl(222, 47%, 6%)" : "hsl(210, 40%, 98%)" ctx.fillStyle = isDark ? "#0a0a0a" : "#fafafa"
ctx.fillRect(0, 0, canvas.width, canvas.height) ctx.fillRect(0, 0, canvas.width, canvas.height)
// Draw sophisticated gradient - top left corner glow // Draw sophisticated gradient - top left corner glow (grayscale only)
const gradient1 = ctx.createRadialGradient( const gradient1 = ctx.createRadialGradient(
0, 0,
0, 0,
@@ -36,19 +36,19 @@ export function TechBackground() {
) )
if (isDark) { if (isDark) {
gradient1.addColorStop(0, "rgba(56, 189, 248, 0.08)") gradient1.addColorStop(0, "rgba(255, 255, 255, 0.03)")
gradient1.addColorStop(0.5, "rgba(59, 130, 246, 0.04)") gradient1.addColorStop(0.5, "rgba(255, 255, 255, 0.015)")
gradient1.addColorStop(1, "rgba(0, 0, 0, 0)") gradient1.addColorStop(1, "rgba(0, 0, 0, 0)")
} else { } else {
gradient1.addColorStop(0, "rgba(59, 130, 246, 0.06)") gradient1.addColorStop(0, "rgba(0, 0, 0, 0.02)")
gradient1.addColorStop(0.5, "rgba(147, 197, 253, 0.04)") gradient1.addColorStop(0.5, "rgba(0, 0, 0, 0.01)")
gradient1.addColorStop(1, "rgba(255, 255, 255, 0)") gradient1.addColorStop(1, "rgba(255, 255, 255, 0)")
} }
ctx.fillStyle = gradient1 ctx.fillStyle = gradient1
ctx.fillRect(0, 0, canvas.width, canvas.height) ctx.fillRect(0, 0, canvas.width, canvas.height)
// Draw second gradient - bottom right corner glow // Draw second gradient - bottom right corner glow (grayscale only)
const gradient2 = ctx.createRadialGradient( const gradient2 = ctx.createRadialGradient(
canvas.width, canvas.width,
canvas.height, canvas.height,
@@ -59,19 +59,19 @@ export function TechBackground() {
) )
if (isDark) { if (isDark) {
gradient2.addColorStop(0, "rgba(139, 92, 246, 0.06)") gradient2.addColorStop(0, "rgba(255, 255, 255, 0.025)")
gradient2.addColorStop(0.5, "rgba(99, 102, 241, 0.03)") gradient2.addColorStop(0.5, "rgba(255, 255, 255, 0.01)")
gradient2.addColorStop(1, "rgba(0, 0, 0, 0)") gradient2.addColorStop(1, "rgba(0, 0, 0, 0)")
} else { } else {
gradient2.addColorStop(0, "rgba(167, 139, 250, 0.05)") gradient2.addColorStop(0, "rgba(0, 0, 0, 0.015)")
gradient2.addColorStop(0.5, "rgba(196, 181, 253, 0.03)") gradient2.addColorStop(0.5, "rgba(0, 0, 0, 0.008)")
gradient2.addColorStop(1, "rgba(255, 255, 255, 0)") gradient2.addColorStop(1, "rgba(255, 255, 255, 0)")
} }
ctx.fillStyle = gradient2 ctx.fillStyle = gradient2
ctx.fillRect(0, 0, canvas.width, canvas.height) ctx.fillRect(0, 0, canvas.width, canvas.height)
// Draw subtle grid // Draw subtle grid - grayscale only
const gridSize = 60 const gridSize = 60
ctx.lineWidth = 1 ctx.lineWidth = 1
@@ -79,15 +79,15 @@ export function TechBackground() {
for (let x = 0; x <= canvas.width; x += gridSize) { for (let x = 0; x <= canvas.width; x += gridSize) {
const lineGradient = ctx.createLinearGradient(x, 0, x, canvas.height) const lineGradient = ctx.createLinearGradient(x, 0, x, canvas.height)
if (isDark) { if (isDark) {
lineGradient.addColorStop(0, "rgba(148, 163, 184, 0)") lineGradient.addColorStop(0, "rgba(255, 255, 255, 0)")
lineGradient.addColorStop(0.3, "rgba(148, 163, 184, 0.04)") lineGradient.addColorStop(0.3, "rgba(255, 255, 255, 0.04)")
lineGradient.addColorStop(0.7, "rgba(148, 163, 184, 0.04)") lineGradient.addColorStop(0.7, "rgba(255, 255, 255, 0.04)")
lineGradient.addColorStop(1, "rgba(148, 163, 184, 0)") lineGradient.addColorStop(1, "rgba(255, 255, 255, 0)")
} else { } else {
lineGradient.addColorStop(0, "rgba(71, 85, 105, 0)") lineGradient.addColorStop(0, "rgba(0, 0, 0, 0)")
lineGradient.addColorStop(0.3, "rgba(71, 85, 105, 0.06)") lineGradient.addColorStop(0.3, "rgba(0, 0, 0, 0.05)")
lineGradient.addColorStop(0.7, "rgba(71, 85, 105, 0.06)") lineGradient.addColorStop(0.7, "rgba(0, 0, 0, 0.05)")
lineGradient.addColorStop(1, "rgba(71, 85, 105, 0)") lineGradient.addColorStop(1, "rgba(0, 0, 0, 0)")
} }
ctx.strokeStyle = lineGradient ctx.strokeStyle = lineGradient
ctx.beginPath() ctx.beginPath()
@@ -100,15 +100,15 @@ export function TechBackground() {
for (let y = 0; y <= canvas.height; y += gridSize) { for (let y = 0; y <= canvas.height; y += gridSize) {
const lineGradient = ctx.createLinearGradient(0, y, canvas.width, y) const lineGradient = ctx.createLinearGradient(0, y, canvas.width, y)
if (isDark) { if (isDark) {
lineGradient.addColorStop(0, "rgba(148, 163, 184, 0)") lineGradient.addColorStop(0, "rgba(255, 255, 255, 0)")
lineGradient.addColorStop(0.3, "rgba(148, 163, 184, 0.04)") lineGradient.addColorStop(0.3, "rgba(255, 255, 255, 0.04)")
lineGradient.addColorStop(0.7, "rgba(148, 163, 184, 0.04)") lineGradient.addColorStop(0.7, "rgba(255, 255, 255, 0.04)")
lineGradient.addColorStop(1, "rgba(148, 163, 184, 0)") lineGradient.addColorStop(1, "rgba(255, 255, 255, 0)")
} else { } else {
lineGradient.addColorStop(0, "rgba(71, 85, 105, 0)") lineGradient.addColorStop(0, "rgba(0, 0, 0, 0)")
lineGradient.addColorStop(0.3, "rgba(71, 85, 105, 0.06)") lineGradient.addColorStop(0.3, "rgba(0, 0, 0, 0.05)")
lineGradient.addColorStop(0.7, "rgba(71, 85, 105, 0.06)") lineGradient.addColorStop(0.7, "rgba(0, 0, 0, 0.05)")
lineGradient.addColorStop(1, "rgba(71, 85, 105, 0)") lineGradient.addColorStop(1, "rgba(0, 0, 0, 0)")
} }
ctx.strokeStyle = lineGradient ctx.strokeStyle = lineGradient
ctx.beginPath() ctx.beginPath()