summaryrefslogtreecommitdiff
path: root/frontend/src/components/VNViewport.tsx
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2025-11-15 18:00:09 +0000
committersoryu <soryu@soryu.co>2025-11-15 18:00:09 +0000
commit3e7b2beca1136a42700a7e1aebfe4c0fb2861a00 (patch)
tree6c896c31820681e360e50a73839fc2284c043dea /frontend/src/components/VNViewport.tsx
downloadsoryu-3e7b2beca1136a42700a7e1aebfe4c0fb2861a00.tar.gz
soryu-3e7b2beca1136a42700a7e1aebfe4c0fb2861a00.zip
Initial commit
Diffstat (limited to 'frontend/src/components/VNViewport.tsx')
-rw-r--r--frontend/src/components/VNViewport.tsx22
1 files changed, 22 insertions, 0 deletions
diff --git a/frontend/src/components/VNViewport.tsx b/frontend/src/components/VNViewport.tsx
new file mode 100644
index 0000000..fe01264
--- /dev/null
+++ b/frontend/src/components/VNViewport.tsx
@@ -0,0 +1,22 @@
+import React from 'react'
+
+type Props = {
+ bgSrc?: string
+ children?: React.ReactNode
+}
+
+export const VNViewport: React.FC<Props> = ({ bgSrc = '/bg.jpg', children }) => {
+ return (
+ <div className="viewport">
+ <div className="viewport-inner">
+ <div className="bg">
+ {bgSrc && <img src={bgSrc} alt="Background" />}
+ </div>
+ {children}
+ </div>
+ <div className="scanlines" aria-hidden="true" />
+ <div className="crt-glow" aria-hidden="true" />
+ <div className="dither-pattern" aria-hidden="true" />
+ </div>
+ )
+}