Skip to content

Commit b6a5f50

Browse files
committed
feat: ✨ Implement pay page
1 parent e7adbbd commit b6a5f50

File tree

16 files changed

+726
-107
lines changed

16 files changed

+726
-107
lines changed

apps/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"private": true,
77
"homepage": "https://app.invoicelink.io",
88
"scripts": {
9-
"dev": "vite dev --open",
9+
"dev": "vite dev --open --port 5173",
1010
"build": "vite build",
1111
"preview": "vite preview",
1212
"test": "npm run test:integration && npm run test:unit",

apps/pay/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,17 @@
2222
"@sveltejs/kit": "^2.0.0",
2323
"@sveltejs/vite-plugin-svelte": "^3.0.0",
2424
"@types/eslint": "^9.6.0",
25+
"autoprefixer": "^10.4.19",
2526
"eslint": "^9.0.0",
2627
"eslint-config-prettier": "^9.1.0",
2728
"eslint-plugin-svelte": "^2.43.0",
2829
"globals": "^15.0.0",
30+
"postcss": "^8.4.40",
2931
"prettier": "^3.1.1",
3032
"prettier-plugin-svelte": "^3.1.2",
3133
"svelte": "^4.2.7",
3234
"svelte-check": "^3.6.0",
35+
"tailwindcss": "^3.4.7",
3336
"typescript": "^5.0.0",
3437
"typescript-eslint": "^8.0.0",
3538
"vite": "^5.0.3",
@@ -43,7 +46,6 @@
4346
"bits-ui": "^0.21.13",
4447
"daisyui": "^4.12.10",
4548
"svelte-french-toast": "^1.2.0",
46-
"tailwind-merge": "^2.4.0",
47-
"tailwindcss": "^3.4.7"
49+
"tailwind-merge": "^2.4.0"
4850
}
4951
}

apps/pay/src/app.css

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
@tailwind base;
2+
@tailwind components;
3+
@tailwind utilities;
4+
5+
@layer base {
6+
@font-face {
7+
font-family: 'Mona Sans';
8+
src:
9+
url('/fonts/Mona-Sans.woff2') format('woff2 supports variations'),
10+
url('/fonts/Mona-Sans.woff2') format('woff2-variations');
11+
font-weight: 200 900;
12+
font-stretch: 75% 125%;
13+
font-display: swap;
14+
}
15+
16+
:root [data-theme='invoicelink'] {
17+
--theme-font-family-base: 'Mona Sans', sans-serif;
18+
--theme-font-family-heading: 'Mona Sans', sans-serif;
19+
--theme-rounded-base: 8px;
20+
--theme-rounded-container: 14px;
21+
}
22+
/* selection styles */
23+
::selection {
24+
@apply bg-primary text-primary-content;
25+
}
26+
27+
/* smoothly transition between theme modes */
28+
[data-theme='*'] {
29+
@apply transition-all duration-300 ease-in-out;
30+
}
31+
32+
/* Autocomplete styles */
33+
input:-webkit-autofill,
34+
input:-webkit-autofill:hover,
35+
input:-webkit-autofill:focus,
36+
textarea:-webkit-autofill,
37+
textarea:-webkit-autofill:hover,
38+
textarea:-webkit-autofill:focus,
39+
select:-webkit-autofill,
40+
select:-webkit-autofill:hover,
41+
select:-webkit-autofill:focus {
42+
color: unset;
43+
background: none;
44+
background-color: inherit;
45+
color: oklch(var(--bc)) !important;
46+
-webkit-box-shadow: 0 0 0 0 none inset;
47+
transition: background-color 5000s ease-in-out 0s;
48+
}
49+
50+
input[type='number'] {
51+
-moz-appearance: textfield;
52+
appearance: textfield;
53+
margin: 0;
54+
}
55+
56+
input[type='number']::-webkit-inner-spin-button,
57+
input[type='number']::-webkit-outer-spin-button {
58+
-webkit-appearance: none;
59+
margin: 0;
60+
}
61+
62+
.dark input[type='date'] {
63+
color-scheme: dark;
64+
}
65+
66+
* {
67+
@apply font-wide font-normal;
68+
}
69+
70+
p {
71+
@apply font-light;
72+
}
73+
}
74+
75+
@layer components {
76+
.input-primary {
77+
@apply input input-md input-bordered w-full max-w-lg;
78+
}
79+
80+
.settings-list {
81+
@apply mt-4 text-sm leading-6;
82+
}
83+
84+
.settings-list li {
85+
@apply flex flex-col items-start justify-between gap-x-6 py-2 sm:flex-row sm:items-center;
86+
}
87+
88+
.input-primary-invoice {
89+
@apply bg-base-100 disabled:text-base-content w-full rounded-lg border-none py-2 read-only:cursor-not-allowed focus:border-none focus:ring-0 disabled:cursor-not-allowed;
90+
}
91+
92+
.input-invoice {
93+
@apply hover:input-primary-invoice focus:input-primary-invoice m-0 w-full truncate border-none bg-transparent px-0 text-sm tabular-nums transition-all hover:px-2 focus:px-2;
94+
}
95+
96+
.btn-pay-now {
97+
@apply bg-base-content text-base-100 hover:bg-base-content w-36 hover:bg-opacity-80;
98+
}
99+
100+
.input-welcome {
101+
@apply input input-primary mt-1;
102+
}
103+
.label-welcome {
104+
@apply label label-text-alt flex flex-col items-start;
105+
}
106+
.welcome-actions {
107+
@apply flex w-full flex-row items-center gap-2 pt-2 [view-transition-name:welcome-actions];
108+
}
109+
}
110+
111+
@layer utilities {
112+
.font-wide {
113+
font-stretch: 125%;
114+
}
115+
116+
/* Hide scrollbar for Chrome, Safari and Opera */
117+
.no-scrollbar::-webkit-scrollbar {
118+
display: none;
119+
}
120+
121+
/* Hide scrollbar for IE, Edge and Firefox */
122+
.no-scrollbar {
123+
-ms-overflow-style: none; /* IE and Edge */
124+
scrollbar-width: none; /* Firefox */
125+
}
126+
127+
/* dynamic viewport */
128+
.min-h-dvh {
129+
min-height: 100vh;
130+
min-height: 100dvh;
131+
}
132+
133+
.min-h-svh {
134+
min-height: 100vh;
135+
min-height: 100svh;
136+
}
137+
138+
.min-h-lvh {
139+
min-height: 100vh;
140+
min-height: 100lvh;
141+
}
142+
143+
.h-dvh {
144+
height: 100vh;
145+
height: 100dvh;
146+
}
147+
148+
.h-svh {
149+
height: 100vh;
150+
height: 100svh;
151+
}
152+
153+
.h-lvh {
154+
height: 100vh;
155+
height: 100lvh;
156+
}
157+
}

apps/pay/src/app.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!doctype html>
2-
<html lang="en" data-theme="">
2+
<html lang="en" data-theme="light">
33
<head>
44
<meta charset="utf-8" />
55
<link rel="icon" type="image/svg+xml" href="%sveltekit.assets%/favicon.svg" />

0 commit comments

Comments
 (0)