add skeleton placeholders
This commit is contained in:
parent
eaee8d3660
commit
44e76144dd
7 changed files with 38 additions and 12 deletions
|
@ -17,3 +17,7 @@
|
||||||
@apply bg-black text-white;
|
@apply bg-black text-white;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.placeholder {
|
||||||
|
@apply text-neutral-300 bg-neutral-300 animate-pulse rounded-lg;
|
||||||
|
}
|
||||||
|
|
|
@ -16,13 +16,14 @@
|
||||||
export let orientation: number
|
export let orientation: number
|
||||||
|
|
||||||
$: accResolved = Math.hypot(accx, accy)
|
$: accResolved = Math.hypot(accx, accy)
|
||||||
|
$: placeholder = accx === -999 && accy === -999
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flex flex-col gap-2 text-center transition-all">
|
<div class="flex flex-col gap-2 text-center justify-center">
|
||||||
<p class="text-xl font-medium">
|
<p class="text-xl font-medium" class:placeholder>
|
||||||
Heading {getDirection(orientation)} ({orientation.toFixed(2)}°)
|
Heading {getDirection(orientation)} ({orientation.toFixed(2)}°)
|
||||||
</p>
|
</p>
|
||||||
<p class="text-lg font-medium">
|
<p class="text-lg font-medium" class:placeholder>
|
||||||
{getAcceleration(accResolved)} ({mpss2knps(accResolved).toFixed(2)}
|
{getAcceleration(accResolved)} ({mpss2knps(accResolved).toFixed(2)}
|
||||||
kn/s)
|
kn/s)
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<div class="h-0.5 mt-1 w-full bg-slate-300 border-0"></div>
|
<div class="h-0.5 mt-1 w-full bg-slate-300 border-0"></div>
|
||||||
<div class="mt-8 flex justify-between">
|
<div class="mt-8 flex justify-between">
|
||||||
<Speedometer speed={speedResolved} />
|
<Speedometer speed={speedResolved} />
|
||||||
<SpeedLimit />
|
<SpeedLimit speedLimit={-999} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,6 @@
|
||||||
-->
|
-->
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
export let speedLimit: number = 5.0
|
export let speedLimit: number = 5.0
|
||||||
|
|
||||||
$: formatted = speedLimit.toFixed(1)
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
@ -16,8 +14,15 @@
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="px-3 py-1 border-black rounded-xl border-2 flex flex-col text-center gap-1"
|
class="px-3 py-1 border-black rounded-xl border-2 flex flex-col text-center gap-1"
|
||||||
|
class:speed-limit-placeholder={speedLimit === -999}
|
||||||
>
|
>
|
||||||
<div class="text-lg font-medium">SPEED<br />LIMIT</div>
|
<div class="text-lg font-medium">SPEED<br />LIMIT</div>
|
||||||
<div class="text-2xl font-bold">{formatted}</div>
|
<div class="text-2xl font-bold">{speedLimit}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<style lang="postcss">
|
||||||
|
.speed-limit-placeholder {
|
||||||
|
@apply animate-pulse bg-neutral-300 text-neutral-300;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -12,9 +12,18 @@
|
||||||
export let speed: number = 0.0
|
export let speed: number = 0.0
|
||||||
|
|
||||||
$: formatted = mps2mph(speed).toFixed(1)
|
$: formatted = mps2mph(speed).toFixed(1)
|
||||||
|
|
||||||
|
$: placeholder = speed === Math.hypot(-999, -999)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flex flex-col gap-4">
|
<div class="flex flex-col gap-4">
|
||||||
<div class="text-6xl">{formatted}</div>
|
<div class="text-6xl" class:placeholder class:width-limit={placeholder}>
|
||||||
<div class="text-2xl font-medium">MPH</div>
|
{placeholder ? '-----' : formatted}
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="text-2xl font-medium"
|
||||||
|
class:placeholder={speed === Math.hypot(-999, -999)}
|
||||||
|
>
|
||||||
|
MPH
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,13 +2,17 @@
|
||||||
export let voltage: number
|
export let voltage: number
|
||||||
|
|
||||||
$: formatted = voltage.toFixed(1)
|
$: formatted = voltage.toFixed(1)
|
||||||
|
|
||||||
|
$: placeholder = voltage === -999
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<span class="flex gap-1">
|
<span class="flex gap-1">
|
||||||
<div class="text-lg font-medium">
|
<div class="text-lg font-medium" class:placeholder>
|
||||||
{formatted} V
|
{formatted} V
|
||||||
</div>
|
</div>
|
||||||
<span class="material-symbols-outlined battery-icon">battery_horiz_075</span>
|
<span class="material-symbols-outlined battery-icon" class:placeholder
|
||||||
|
>battery_horiz_075</span
|
||||||
|
>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<style lang="postcss">
|
<style lang="postcss">
|
||||||
|
|
|
@ -3,7 +3,10 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flex justify-center w-full">
|
<div class="flex justify-center w-full">
|
||||||
<div class="flex flex-row gap-2 text-neutral-400 text-xl font-bold">
|
<div
|
||||||
|
class="flex flex-row gap-2 text-neutral-400 text-xl font-bold"
|
||||||
|
class:placeholder={selectedGear === '-999'}
|
||||||
|
>
|
||||||
<div class:highlighted={selectedGear === 'park'}>P</div>
|
<div class:highlighted={selectedGear === 'park'}>P</div>
|
||||||
<div class:highlighted={selectedGear === 'reverse'}>R</div>
|
<div class:highlighted={selectedGear === 'reverse'}>R</div>
|
||||||
<div class:highlighted={selectedGear === 'neutral'}>N</div>
|
<div class:highlighted={selectedGear === 'neutral'}>N</div>
|
||||||
|
|
Loading…
Reference in a new issue