♻️ Make the color preview its own component

This commit is contained in:
2024-04-23 18:46:17 +02:00
parent ffb61eecf7
commit c74d5ea1d9
2 changed files with 34 additions and 25 deletions

View File

@ -1,5 +1,6 @@
<script lang="ts"> <script lang="ts">
import Button from "./Button.svelte"; import Button from "./Button.svelte";
import ColorPreview from "./ColorPreview.svelte";
import { import {
cmykToRgb, cmykToRgb,
@ -40,16 +41,12 @@
<!-- Color preview --> <!-- Color preview -->
<div class="color_grid"> <div class="color_grid">
{#if sideBySide} {#if sideBySide}
<div <ColorPreview color={guessColor} />
class="color"
style:background-color="rgb({guessColor.join(",")})"
></div>
{/if} {/if}
<div class="color" style:background-color="rgb({targetColor.join(",")})"> <ColorPreview
{#if guessScore != undefined} color={targetColor}
<div class="score">{guessScore}%</div> text={guessScore != undefined ? `${guessScore}%` : ""}
{/if} />
</div>
</div> </div>
<!-- Sliders --> <!-- Sliders -->
@ -183,22 +180,6 @@
gap: 10px; gap: 10px;
} }
.color {
width: 100%;
height: 30vh;
border-radius: 10px;
display: flex;
justify-content: center;
align-items: center;
}
.score {
font-size: 25px;
opacity: 0.7;
color: black;
font-weight: bold;
}
.slider_container { .slider_container {
margin-top: 40px; margin-top: 40px;
display: grid; display: grid;

28
src/ColorPreview.svelte Normal file
View File

@ -0,0 +1,28 @@
<script lang="ts">
export let color: number[];
export let text: string = "";
</script>
<div class="color" style:background-color="rgb({color.join(",")})">
{#if text != undefined}
<div class="score">{text}</div>
{/if}
</div>
<style>
.color {
width: 100%;
height: 30vh;
border-radius: 10px;
display: flex;
justify-content: center;
align-items: center;
}
.score {
font-size: 25px;
opacity: 0.7;
color: black;
font-weight: bold;
}
</style>