Skip to content

Commit 3b26e82

Browse files
committed
Splashscreen + new fonts & colors
1 parent 44a567c commit 3b26e82

10 files changed

Lines changed: 770 additions & 669 deletions

File tree

infrastructure/eid-wallet/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,17 @@
2222
"license": "MIT",
2323
"dependencies": {
2424
"@auvo/tauri-plugin-crypto-hw-api": "^0.1.0",
25+
"@choochmeque/tauri-plugin-notifications-api": "^0.4.3",
2526
"@didit-protocol/sdk-web": "^0.1.6",
27+
"@fontsource-variable/roboto": "^5.2.10",
28+
"@fontsource-variable/roboto-condensed": "^5.2.8",
2629
"@hugeicons/core-free-icons": "^1.0.13",
2730
"@hugeicons/svelte": "^1.0.2",
2831
"@tailwindcss/container-queries": "^0.1.1",
2932
"@tauri-apps/api": "^2.9.0",
3033
"@tauri-apps/plugin-barcode-scanner": "^2.4.2",
3134
"@tauri-apps/plugin-biometric": "^2.3.2",
3235
"@tauri-apps/plugin-deep-link": "^2.4.5",
33-
"@choochmeque/tauri-plugin-notifications-api": "^0.4.3",
3436
"@tauri-apps/plugin-opener": "^2.5.2",
3537
"@tauri-apps/plugin-store": "^2.4.1",
3638
"axios": "^1.6.7",

infrastructure/eid-wallet/src/app.css

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
@import "tailwindcss";
22
@import "flag-icons/css/flag-icons.min.css";
3-
4-
@font-face {
5-
font-family: "Archivo";
6-
src: url("/fonts/Archivo-VariableFont_wdth,wght.ttf") format("truetype");
7-
font-weight: 100 900;
8-
font-style: normal;
9-
}
3+
@import "@fontsource-variable/roboto";
4+
@import "@fontsource-variable/roboto-condensed";
105

116
@layer base {
127
/* Typography */
@@ -15,34 +10,34 @@
1510
}
1611

1712
h2 {
18-
@apply text-6xl/[1.5] text-black font-semibold;
13+
@apply text-6xl/normal text-black font-semibold;
1914
}
2015

2116
h3 {
22-
@apply text-3xl/[1.5] text-black font-semibold;
17+
@apply text-3xl/normal text-black font-semibold;
2318
}
2419

2520
h4 {
26-
@apply text-xl/[1.5] text-black font-semibold;
21+
@apply text-xl/normal text-black font-semibold;
2722
}
2823

2924
p {
30-
@apply text-base/[1.5] text-black font-normal;
25+
@apply text-base/normal text-black font-normal;
3126
}
3227

3328
.small {
34-
@apply text-xs/[1.5] text-black font-normal;
29+
@apply text-xs/normal text-black font-normal;
3530
}
3631
}
3732

3833
@theme {
3934
/* Custom theme */
40-
--color-primary: #8e52ff;
41-
--color-primary-100: #e8dcff;
42-
--color-primary-200: #d2baff;
43-
--color-primary-300: #bb97ff;
44-
--color-primary-400: #a575ff;
45-
--color-primary-500: #8e52ff;
35+
--color-primary: #8968ff;
36+
--color-primary-100: #e7e1ff;
37+
--color-primary-200: #d0c3ff;
38+
--color-primary-300: #b8a4ff;
39+
--color-primary-400: #a186ff;
40+
--color-primary-500: #8968ff;
4641

4742
--color-secondary: #73efd5;
4843
--color-secondary-100: #e3fcf7;
@@ -54,12 +49,12 @@
5449
--color-white: #ffffff;
5550
--color-gray: #f5f5f5;
5651

57-
--color-black: #1f1f1f;
58-
--color-black-100: #d2d2d2;
59-
--color-black-300: #a5a5a5;
60-
--color-black-500: #797979;
61-
--color-black-700: #4c4c4c;
62-
--color-black-900: #1f1f1f;
52+
--color-black: #1d2636;
53+
--color-black-100: #dce0e8;
54+
--color-black-300: #b8c0cb;
55+
--color-black-500: #788292;
56+
--color-black-700: #364052;
57+
--color-black-900: #1d2636;
6358

6459
--color-danger: #ff5255;
6560
--color-danger-100: #ffdcdd;
@@ -70,7 +65,7 @@
7065
}
7166

7267
body {
73-
font-family: "Archivo", sans-serif;
68+
font-family: "Roboto Variable", sans-serif;
7469
/* padding-top: env(safe-area-inset-top); */
7570
/* padding-bottom: env(safe-area-inset-bottom); */
7671
padding-left: env(safe-area-inset-left);

infrastructure/eid-wallet/src/app.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
<meta charset="utf-8" />
55
<link rel="icon" href="%sveltekit.assets%/favicon.png" />
66
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, maximum-scale=1.0, user-scalable=no"/>
7-
<link rel="preload" href="/fonts/Archivo-VariableFont_wdth,wght.ttf" as="font" type="truetype" crossorigin="anonymous">
87
<title>Tauri + SvelteKit + Typescript App</title>
98
%sveltekit.head%
109
</head>
Lines changed: 110 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,128 @@
11
<script lang="ts">
2-
import { cubicOut } from "svelte/easing";
3-
import { fade, scale } from "svelte/transition";
2+
import { ButtonAction } from "$lib/ui";
3+
import { cubicOut } from "svelte/easing";
4+
import { fade, fly } from "svelte/transition";
5+
6+
interface ISplashScreenProps {
7+
/** false = state A (logo "closed"). true = state B (tagline revealed). */
8+
open?: boolean;
9+
/** true = state C (bottom drawer with CTAs revealed). */
10+
showDrawer?: boolean;
11+
/** Fired when "Create Digital Self" is tapped. */
12+
oncreate?: () => void;
13+
/** Fired when "Restore Digital Self" is tapped. */
14+
onrestore?: () => void;
15+
}
16+
17+
const {
18+
open = false,
19+
showDrawer = false,
20+
oncreate,
21+
onrestore,
22+
}: ISplashScreenProps = $props();
423
</script>
524

625
<div
7-
out:fade={{ duration: 150 }}
8-
class="z-50 absolute w-screen h-screen overflow-hidden"
26+
out:fade={{ duration: 200 }}
27+
class="z-50 fixed inset-0 bg-primary overflow-hidden flex flex-col"
928
>
10-
<div class="relative w-screen h-screen bg-primary overflow-hidden">
11-
<img
12-
in:scale={{
13-
start: 0.8,
14-
duration: 500,
15-
easing: cubicOut,
16-
opacity: 1,
17-
}}
18-
class="absolute w-full bottom-[-80px] start-0"
19-
src="/images/Shape1.svg"
20-
alt="illustration"
21-
/>
22-
<img
23-
in:scale={{
24-
start: 0.8,
25-
duration: 500,
26-
easing: cubicOut,
27-
opacity: 1,
28-
}}
29-
class="absolute w-full top-[50px] end-[100px]"
30-
src="/images/Shape2.svg"
31-
alt="illustration"
32-
/>
29+
<!-- Logo group: vertically biased toward top-third, mirroring the Figma spec.
30+
CSS animation (not svelte in:fade) because Svelte 5 skips intros for
31+
elements already present at first render. Bg stays solid (no flash). -->
32+
<div
33+
class="splash-content flex-1 flex flex-col items-center justify-start pt-[22svh]"
34+
>
35+
<div class="flex flex-col items-center">
36+
<span
37+
class="text-white font-medium text-[110px] leading-[88%] tracking-[-0.02em] -my-1"
38+
style="font-family: 'Roboto Condensed Variable', sans-serif;"
39+
>
40+
eID
41+
</span>
42+
<!-- Tagline: height-animated so opening pushes the W3DS pill down
43+
(gives the "logo unfolds, tagline emerges" feel). -->
44+
<div
45+
class="overflow-hidden transition-all duration-500 ease-out"
46+
style:max-height={open ? "2.5rem" : "0"}
47+
style:opacity={open ? 0.5 : 0}
48+
aria-hidden={!open}
49+
>
50+
<p class="text-white text-2xl font-medium leading-[120%]">
51+
Your Digital Self
52+
</p>
53+
</div>
54+
<img
55+
src="/images/w3ds-logo-main.svg"
56+
alt="W3DS"
57+
width="90"
58+
height="44"
59+
class="mt-4 transition-all duration-1000 ease-out"
60+
/>
61+
</div>
62+
</div>
63+
64+
{#if showDrawer}
3365
<div
34-
in:scale={{
35-
start: 0.9,
66+
transition:fly={{
67+
y: 400,
3668
duration: 500,
3769
easing: cubicOut,
3870
opacity: 1,
3971
}}
40-
class="absolute w-full top-[42%] start-[50%] translate-x-[-50%] translate-y-[-42%]"
72+
class="absolute inset-x-0 bottom-0 bg-white rounded-t-3xl px-5 pt-5 flex flex-col gap-3"
73+
style="padding-bottom: max(20px, env(safe-area-inset-bottom));"
4174
>
42-
<h1
43-
in:fade={{ duration: 500 }}
44-
class="text-center text-white text-[44px]"
75+
<ButtonAction
76+
variant="solid"
77+
callback={oncreate}
78+
class="w-full uppercase tracking-wide active:bg-primary-400"
4579
>
46-
eID Wallet
47-
</h1>
48-
<p in:fade={{ duration: 500 }} class="text-center text-white">
49-
for Web 3.0 Data Space
80+
Create Digital Self
81+
</ButtonAction>
82+
<ButtonAction
83+
variant="soft"
84+
callback={onrestore}
85+
class="w-full uppercase tracking-wide text-black active:bg-primary-200"
86+
>
87+
Restore Digital Self
88+
</ButtonAction>
89+
<p
90+
class="text-center font-medium text-md text-black-700/50 leading-normal"
91+
>
92+
By continuing you agree to our
93+
<a
94+
href="https://metastate.foundation/"
95+
target="_blank"
96+
rel="noopener noreferrer"
97+
class="text-primary"
98+
>
99+
Terms &amp; Conditions
100+
</a>
101+
and
102+
<a
103+
href="https://metastate.foundation/"
104+
target="_blank"
105+
rel="noopener noreferrer"
106+
class="text-primary"
107+
>
108+
Privacy Policy
109+
</a>
50110
</p>
51111
</div>
52-
<img
53-
in:fade={{ duration: 500 }}
54-
class="absolute bottom-[116px] start-[50%] translate-x-[-50%]"
55-
src="/images/W3DSLogoWhite.svg"
56-
alt="logo"
57-
/>
58-
</div>
112+
{/if}
59113
</div>
60114

61115
<style>
116+
@keyframes splash-content-in {
117+
from {
118+
opacity: 0;
119+
}
120+
to {
121+
opacity: 1;
122+
}
123+
}
124+
125+
.splash-content {
126+
animation: splash-content-in 500ms ease-out both;
127+
}
62128
</style>

infrastructure/eid-wallet/src/routes/(auth)/onboarding/+page.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ interface DiditCompleteResult {
6969
};
7070
}
7171
72-
let step = $state<Step>("home");
72+
let step = $state<Step>("new-evault");
7373
let error = $state<string | null>(null);
7474
let loading = $state(false);
7575

0 commit comments

Comments
 (0)