<SVG>
Renders an SVG using Three.js’ SVGLoader.
<script lang="ts"> import { NoToneMapping } from 'three' import { Canvas } from '@threlte/core' import Scene from './Scene.svelte' import { Pane, List, type ListOptions } from 'svelte-tweakpane-ui'
const options: ListOptions<number> = { logo: 0, ordering: 1 } let selection = 0</script>
<div> <Canvas toneMapping={NoToneMapping}> <Scene {selection} /> </Canvas></div>
<Pane position="fixed" title="SVG"> <List bind:value={selection} label="scene" {options} ></List></Pane>
<style> div { height: 100%; }</style><script lang="ts"> import { T } from '@threlte/core' import { SVG, OrbitControls } from '@threlte/extras' import url from './ordering.svg?url'
interface Props { selection: number } let { selection }: Props = $props()</script>
<T.PerspectiveCamera makeDefault position.z={5} position.y={1}> <OrbitControls autoRotate enablePan={false} enableZoom={false} /></T.PerspectiveCamera>
{#if selection == 0} <SVG src="/icons/svelte.svg" scale={0.005} position.x={-1.2} position.y={1.5} />{:else} <SVG src={url} scale={0.005} position.x={-1.2} position.y={1.5} />{/if}<svg id="color-fill" xmlns="http://www.w3.org/2000/svg" version="1.1" width="300" height="300" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect x="25" y="25" width="250" height="250" style="fill:#ff0000;fill-opacity:0.2;stroke:none" /> <rect x="50" y="50" width="100" height="200" style="fill:#000000;fill-opacity:1;stroke:none" /> <rect x="75" y="75" width="150" height="150" style="fill:#00ff00;fill-opacity:0.5;stroke:none" /> <rect x="100" y="100" width="100" height="100" style="fill:#000080;fill-opacity:1;stroke:none" />
</svg>Examples
Section titled “Examples”Basic Example
Section titled “Basic Example”<script lang="ts"> import { T } from '@threlte/core' import { SVG } from '@threlte/extras'</script>
<SVG src="/icons/svelte.svg" scale={0.005} position.x={-1.2} position.y={1.5}/>