diff --git a/scripts/3d_model_viewer.js b/scripts/3d_model_viewer.js index 82d5983..f81b34d 100644 --- a/scripts/3d_model_viewer.js +++ b/scripts/3d_model_viewer.js @@ -232,7 +232,8 @@ var initSize = canvasSize(); var renderer = new THREE.WebGLRenderer({ antialias: true }); renderer.setSize(initSize.w, initSize.h); - renderer.setClearColor(0x1d2021, 1); + var isLight = document.documentElement.classList.contains("theme-light"); + renderer.setClearColor(isLight ? 0xe8ecd0 : 0x1b1b1b, 1); var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(45, initSize.w / initSize.h, 0.1, 1000000); @@ -308,7 +309,7 @@ geo.setAttribute("position", new THREE.Float32BufferAttribute(e.data.positions, 3)); if (e.data.indices) geo.setIndex(new THREE.BufferAttribute(e.data.indices, 1)); fixWinding(geo); - var mat = new THREE.MeshStandardMaterial({ color: 0xb8bb26, metalness: 0.2, roughness: 0.6, side: THREE.DoubleSide, flatShading: false }); + var mat = new THREE.MeshStandardMaterial({ color: isLight ? 0x5e81ac : 0x77838a, metalness: 0.2, roughness: 0.6, side: THREE.DoubleSide, flatShading: false }); chunkGeometry(geo, group, mat); var tris = (e.data.indices && e.data.indices.length) ? e.data.indices.length / 3 : e.data.positions.length / 9; fit(); @@ -330,7 +331,7 @@ } else { var geo = new THREE.STLLoader().parse(data.buffer); geo.computeVertexNormals(); - var mat = new THREE.MeshStandardMaterial({ color: 0xb8bb26, metalness: 0.25, roughness: 0.55, flatShading: true }); + var mat = new THREE.MeshStandardMaterial({ color: isLight ? 0x5e81ac : 0x77838a, metalness: 0.25, roughness: 0.55, flatShading: true }); group.add(new THREE.Mesh(geo, mat)); fit(); showCanvas(); diff --git a/theme/blog_share_theme.css b/theme/blog_share_theme.css index 21b83c9..08d4dc3 100644 --- a/theme/blog_share_theme.css +++ b/theme/blog_share_theme.css @@ -923,6 +923,29 @@ html.theme-light #content code { height: 100%; } +/* ---------- 3D-Viewer: theme-bewusste Overlays ---------- */ +html.theme-light .model-viewer { + background: #e8ecd0; +} +html.theme-light .model-viewer-status, +html.theme-light .model-viewer-hint, +html.theme-light .model-viewer-data { + color: #1c2d28; +} +html.theme-light .model-viewer-data { + background: rgba(223, 228, 196, 0.85); + border-color: #c3c9a6; +} +html.theme-light .model-viewer-status.error { + color: #b14752; +} +html.theme-light .model-viewer-progress { + background: #c3c9a6; +} +html.theme-light .model-viewer-progress-fill { + background: #5e81ac; +} + /* ---------- Bildunterschriften (Harbor) ---------- */ #content figcaption { font-size: 0.85em;