ui: fix scrollbar colors, handle NaN and zero state on homepage
and some cleanup on svg icons
This commit is contained in:
parent
7334499828
commit
a437994235
3 changed files with 44 additions and 60 deletions
16
src/app.pcss
16
src/app.pcss
|
@ -41,6 +41,22 @@ h3 {
|
||||||
@apply outline-none ring-2 ring-sky-400;
|
@apply outline-none ring-2 ring-sky-400;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
@apply w-[8px];
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-track {
|
||||||
|
@apply bg-[var(--page-bg)]
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-thumb {
|
||||||
|
@apply rounded-xl bg-[#3c4f7c]
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-thumb:hover {
|
||||||
|
@apply bg-[#526ca8]
|
||||||
|
}
|
||||||
|
|
||||||
.cta-button {
|
.cta-button {
|
||||||
background: linear-gradient(0deg, rgba(0, 0, 0, 0.06), rgba(0, 0, 0, 0.06)),
|
background: linear-gradient(0deg, rgba(0, 0, 0, 0.06), rgba(0, 0, 0, 0.06)),
|
||||||
radial-gradient(109.26% 109.26% at 49.83% 13.37%, #ffffff 0%, #babaca 100%);
|
radial-gradient(109.26% 109.26% at 49.83% 13.37%, #ffffff 0%, #babaca 100%);
|
||||||
|
|
21
src/components/HomepageCounter.svelte
Normal file
21
src/components/HomepageCounter.svelte
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<script lang="ts">
|
||||||
|
export let count: number = 0;
|
||||||
|
export let subText: string = '';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if count > 0}
|
||||||
|
<div class="flex flex-col gap-0">
|
||||||
|
<h2 class="flex items-center gap-1 text-[40px] leading-[1.1]">
|
||||||
|
<!-- <AnimatedCounter
|
||||||
|
values={Array.from({ length: contributors + 1 }, (_, i) => i.toString())}
|
||||||
|
startImmediately={false}
|
||||||
|
direction="up"
|
||||||
|
loop={false}
|
||||||
|
ease="cubic-bezier(0.25, 0.1, 0.25, 1)"
|
||||||
|
initialValue={(contributors - 1).toString()}
|
||||||
|
/>+ -->
|
||||||
|
{count}+
|
||||||
|
</h2>
|
||||||
|
<div class="text-[#A6A5A7]">{subText}</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
|
@ -2,6 +2,7 @@
|
||||||
import embedImage from "$assets/branding/suyu__Embed-Image.png";
|
import embedImage from "$assets/branding/suyu__Embed-Image.png";
|
||||||
import type { PageData } from "./$types";
|
import type { PageData } from "./$types";
|
||||||
import suyuWindow from "$assets/mockups/suyuwindow.png";
|
import suyuWindow from "$assets/mockups/suyuwindow.png";
|
||||||
|
import HomepageCounter from "$components/HomepageCounter.svelte";
|
||||||
import { XCircleOutline } from "flowbite-svelte-icons";
|
import { XCircleOutline } from "flowbite-svelte-icons";
|
||||||
import { Dialog } from "radix-svelte";
|
import { Dialog } from "radix-svelte";
|
||||||
|
|
||||||
|
@ -76,12 +77,10 @@
|
||||||
class="cta-button"
|
class="cta-button"
|
||||||
>
|
>
|
||||||
Download <svg
|
Download <svg
|
||||||
class=""
|
|
||||||
style="--icon-color:#000"
|
|
||||||
width="16"
|
width="16"
|
||||||
height="16"
|
height="16"
|
||||||
viewBox="0 0 16 16"
|
viewBox="0 0 16 16"
|
||||||
fill="#000"
|
fill="currentColor"
|
||||||
role="img"
|
role="img"
|
||||||
focusable="false"
|
focusable="false"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
|
@ -97,12 +96,10 @@
|
||||||
class="button text-[#8A8F98]"
|
class="button text-[#8A8F98]"
|
||||||
>
|
>
|
||||||
Contribute <svg
|
Contribute <svg
|
||||||
class=""
|
|
||||||
style="--icon-color:#8A8F98"
|
|
||||||
width="16"
|
width="16"
|
||||||
height="16"
|
height="16"
|
||||||
viewBox="0 0 16 16"
|
viewBox="0 0 16 16"
|
||||||
fill="#8A8F98"
|
fill="currentColor"
|
||||||
role="img"
|
role="img"
|
||||||
focusable="false"
|
focusable="false"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
|
@ -119,60 +116,10 @@
|
||||||
class="flex w-full flex-shrink-0 flex-col gap-8 rounded-b-[2.25rem] bg-[#110d10] p-12 lg:w-[35%]"
|
class="flex w-full flex-shrink-0 flex-col gap-8 rounded-b-[2.25rem] bg-[#110d10] p-12 lg:w-[35%]"
|
||||||
>
|
>
|
||||||
<h1 class="text-[48px] leading-[0.9]">By the numbers</h1>
|
<h1 class="text-[48px] leading-[0.9]">By the numbers</h1>
|
||||||
<div class="flex flex-col gap-0">
|
<HomepageCounter count={contributors} subText="dedicated contributors" />
|
||||||
<h2 class="flex items-center gap-1 text-[40px] leading-[1.1]">
|
<HomepageCounter count={starCount} subText="GitLab stars" />
|
||||||
<!-- <AnimatedCounter
|
<HomepageCounter count={4000} subText="supported games" />
|
||||||
values={Array.from({ length: contributors + 1 }, (_, i) => i.toString())}
|
<HomepageCounter count={memberCount} subText="members on Discord" />
|
||||||
startImmediately={false}
|
|
||||||
direction="up"
|
|
||||||
loop={false}
|
|
||||||
ease="cubic-bezier(0.25, 0.1, 0.25, 1)"
|
|
||||||
initialValue={(contributors - 1).toString()}
|
|
||||||
/>+ -->
|
|
||||||
{contributors}+
|
|
||||||
</h2>
|
|
||||||
<div class="text-[#A6A5A7]">dedicated contributors</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex flex-col gap-0">
|
|
||||||
<h2 class="flex items-center gap-1 text-[40px] leading-[1.1]">
|
|
||||||
{starCount}+
|
|
||||||
</h2>
|
|
||||||
<div class="text-[#A6A5A7]">GitLab stars</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex flex-col gap-0">
|
|
||||||
<h2 class="flex items-center gap-1 text-[40px] leading-[1.1]">
|
|
||||||
<!-- <AnimatedCounter
|
|
||||||
values={// array from 0 - 4000 with steps of 100
|
|
||||||
Array.from({ length: 41 }, (_, i) => (i * 100).toString())}
|
|
||||||
startImmediately={false}
|
|
||||||
direction="up"
|
|
||||||
loop={false}
|
|
||||||
ease="cubic-bezier(0.25, 0.1, 0.25, 1)"
|
|
||||||
initialValue={"3900"}
|
|
||||||
/>+ -->
|
|
||||||
4000+
|
|
||||||
</h2>
|
|
||||||
<div class="text-[#A6A5A7]">supported games</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex flex-col gap-0">
|
|
||||||
<h2 class="flex items-center gap-1 text-[40px] leading-[1.1]">
|
|
||||||
<!-- <AnimatedCounter
|
|
||||||
values={Array.from(
|
|
||||||
{
|
|
||||||
length: memberCount / 100 + 1,
|
|
||||||
},
|
|
||||||
(_, i) => (i * 100).toString(),
|
|
||||||
)}
|
|
||||||
startImmediately={false}
|
|
||||||
direction="up"
|
|
||||||
loop={false}
|
|
||||||
ease="cubic-bezier(0.25, 0.1, 0.25, 1)"
|
|
||||||
initialValue={(memberCount - 100).toString()}
|
|
||||||
/>+ -->
|
|
||||||
{memberCount}+
|
|
||||||
</h2>
|
|
||||||
<div class="text-[#A6A5A7]">members on Discord</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="flex w-full flex-1 rounded-[2.25rem] bg-[#110d10] lg:rounded-tl-none">
|
<div class="flex w-full flex-1 rounded-[2.25rem] bg-[#110d10] lg:rounded-tl-none">
|
||||||
<div
|
<div
|
||||||
|
|
Loading…
Reference in a new issue