Easily create screens that render DOM elements in svelte-cubed
npm install svelte-cubed-dom
CSSRenderer
component somewhere in the component three "below" SC.Canvas
Pass as it scCanvas
prop the object binded to the SC.Canvas
component (this will probably not be needed once this PR is merged)
<script lang="ts">
import * as THREE from 'three';
import * as SC from 'svelte-cubed';
import { CSSRenderer } from 'svelte-cubed-dom';
let scCanvas: SC.Canvas;
</script>
<SC.Canvas bind:this={scCanvas}>
<CSSRenderer {scCanvas}>
<!-- ... -->
</CSSRenderer>
</SC.Canvas>
Screen
component anywhere you need it<script lang="ts">
import { Screen } from 'svelte-cubed-dom';
</script>
<Screen
style="width: 1280px; height: 720px; background: white; border: 5px solid black;"
scale={[0.0008, 0.0008, 0.0008]}
position={[0, 0.4, 0.06]}
>
<main>
<h1>Hello from</h1>
<h2>svelte-cubed-dom</h2>
<div>
<a href="https://github.com/Levyks/svelte-cubed-dom">GitHub</a>
<a href="https://www.npmjs.com/package/svelte-cubed-dom">NPM</a>
</div>
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/dQw4w9WgXcQ"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
/>
</main>
</Screen>
I don't know Three.js that well, so there might be some problems with the approach I've taken. If you have any suggestions, please let me know.