Skip to content

Commit 0141d50

Browse files
committed
feat: implement copy text
1 parent ee57f30 commit 0141d50

File tree

2 files changed

+84
-26
lines changed

2 files changed

+84
-26
lines changed

lark-ui/src/app.css

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
overscroll-behavior: none;
99
}
1010

11-
body {
11+
html, body {
1212
background-color: #F24B4B;
13+
14+
min-height: 100%;
1315
}
1416

1517
::-webkit-scrollbar {

lark-ui/src/routes/app/projects/[id]/submit/+page.svelte

Lines changed: 81 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -23,59 +23,106 @@
2323
[key: string]: T;
2424
}
2525
26-
const checklist = $state<Dynamic<boolean>>({
27-
"first item": false,
28-
"second item": false,
29-
"third item": false,
26+
let checklist = $state<Dynamic<boolean>>({
27+
"You have an experienceable link (a URL where anyone can try your project now)": false,
28+
"You have a public GitHub URL with all source code": false,
29+
"You have a screenshot of your project": false,
3030
})
3131
32+
switch (project?.projectType) {
33+
case "personal_website":
34+
case "website":
35+
checklist = {
36+
...checklist,
37+
"Your project is deployed on the web (Vercel, Netlify, GitHub Pages, Fly.io, etc.)": false,
38+
"Your experienceable link loads without errors": false,
39+
"Core features of your website work; there are no placeholders": false,
40+
"Your repo includes simple build/deploy instructions": false,
41+
}
42+
break;
43+
case "platformer_game":
44+
case "game":
45+
checklist = {
46+
...checklist,
47+
"Your game is published on itch.io with a public page": false,
48+
"Your game page includes a playable version (WebGL or downloadable build)": false,
49+
"Your game runs without crashing on startup": false,
50+
"There is a description and screenshot on your project's itch.io page": false,
51+
}
52+
break;
53+
case 'terminal_cli':
54+
checklist = {
55+
...checklist,
56+
"Your CLI is installable in one simple command (brew, pip, cargo, or install script)": false,
57+
"Running the CLI immediately performs the main behavior": false,
58+
"Clear install instructions in README": false,
59+
"Example usage shown in README": false
60+
}
61+
break;
62+
case 'desktop_app':
63+
checklist = {
64+
...checklist,
65+
"(Windows) Downloadable .exe file that successfully launches\n(macOS) Downloadable .dmg or .pkg file that opens/installs\n(Linux) AppImage or package (.deb/.rpm) that launches": false,
66+
"Clear download link provided": false,
67+
"Basic instructions for running the app included": false
68+
}
69+
break;
70+
case 'mobile_app':
71+
checklist = {
72+
...checklist,
73+
"(iOS) Your app is Published on TestFlight with a public invitation link\n(Android) Downloadable .apk file or published on Google Play": false,
74+
"App opens and core functionality runs without immediate crash": false,
75+
"Instructions included if any special permissions are required": false,
76+
}
77+
break;
78+
}
79+
3280
const copy = {
3381
"personal_website": {
3482
typeDesc: "A personal website should be your own original site where people can get to know you",
35-
playableDesc: "This should be hosted and publicly accesible link to your website",
83+
playableDesc: "This should be a publicly accesible link to your website.",
3684
},
3785
"platformer_game": {
38-
typeDesc:
39-
"A platformer game",
40-
playableDesc: "For a game, this should be an itch.io link"
86+
typeDesc: "A platformer game",
87+
playableDesc: "This should be an link to your game on itch.io."
4188
},
4289
"website": {
4390
typeDesc: "A website should be a ",
44-
playableDesc: "This should be hosted and publicly accesible link to your website",
91+
playableDesc: "This should be a publicly accesible link to your website.",
4592
},
4693
"game": {
4794
typeDesc:
4895
"A game should be a game that can be played on a computer or mobile device",
49-
playableDesc:
50-
"This should be an itch.io link"
96+
playableDesc: "This should be a publicly accesible link to your website.",
5197
},
5298
"terminal_cli": {
5399
typeDesc:
54100
"A terminal cli should be an installable executable that can be run from and output to a terminal in a Windows, Mac, or Linux computer",
55101
playableDesc:
56-
"This should be a link to the package's homebrew formulae"
102+
"This should be a link to the package on github releases, homebrew formulae, or other equivalent."
57103
},
58104
"desktop_app": {
59105
typeDesc:
60106
"A desktop app should be a GUI application that can be installed and opened on a windows, mac, or linux computer",
61107
playableDesc:
62-
"This should be a link to the package's github release"
108+
"This should be a link to the app's github release."
63109
},
64110
"mobile_app": {
65111
typeDesc:
66112
"A mobile app should be a application that can be run on a ios or android device",
67113
playableDesc:
68-
"This should be a link to the package's github release or a testflight link"
114+
"This should be a link to the app's github release or a testflight link (iOS)."
69115
},
70116
"wildcard": {
71117
typeDesc:
72118
"A wildcard project should be a project that is not one of the other types",
73119
playableDesc:
74-
"This should be a link that lets us access your project. please provide associated documentation on how to run/use it"
120+
"This should be an experienceable link (a URL where anyone can try your project now). Make sure to include documentation on how to use it if necessary."
75121
},
76122
all: {
77-
descDesc: "description",
78-
repoDesc: "This needs to be a publicly accessible repository!",
123+
screenshotDesc: "This should be a screenshot of your project working.",
124+
descDesc: "This should be a 2-4 sentence description of your project. What is it about? What does it do?",
125+
repoDesc: "This needs to be a publicly accessible GitHub repository!",
79126
},
80127
} as Dynamic<any>;
81128
@@ -235,6 +282,7 @@
235282
<div class="project-submit-form">
236283
<div class="field">
237284
<p class="label required">Screenshot</p>
285+
<p class="info">{copy.all.screenshotDesc}</p>
238286
<input
239287
type="file"
240288
id="project-screenshot"
@@ -294,7 +342,7 @@
294342
<option value="mobile_app">Mobile App</option>
295343
<option value="wildcard">Wildcard</option>
296344
</select>
297-
<p class="info">{copy[projectType].typeDesc}</p>
345+
<!-- <p class="info">{copy[projectType].typeDesc}</p> -->
298346
</div>
299347
<div class="field">
300348
<label for="project-desc" class="required">Description</label>
@@ -540,13 +588,12 @@
540588
</h1>
541589
</div>
542590
<div class="subheading">
543-
<h2>Complete the pre-submit checklist</h2>
591+
<h2><strong>Shipped Project Requirements</strong><br>Every project submitted must be fully “shipped.” Use the checklists below to confirm your project qualifies.</h2>
544592
</div>
545593
<div class="project-submit-form">
546594
<form class="checklist">
547595
{#each Object.keys(checklist) as checklistItem}
548596
<div class="checklist-item">
549-
<label for={checklistItem} class="required">{checklistItem}</label>
550597
<div class="checkbox-container">
551598
<input
552599
type="checkbox"
@@ -558,6 +605,7 @@
558605
<p>{checklist[checklistItem] ? '' : '✖︎'}</p>
559606
</div>
560607
</div>
608+
<label for={checklistItem} class="required">{checklistItem}</label>
561609
</div>
562610
{/each}
563611
</form>
@@ -582,6 +630,8 @@
582630
scrollbar-color: white #3b3153;
583631
584632
height: max-content;
633+
634+
margin-bottom: 32px;
585635
}
586636
587637
.field {
@@ -694,7 +744,7 @@
694744
}
695745
696746
.subheading {
697-
font-family: "PT Sans", sans-serif;
747+
font-family: "PT Serif", sans-serif;
698748
color: white;
699749
700750
display: flex;
@@ -768,7 +818,7 @@
768818
769819
display: flex;
770820
flex-direction: row;
771-
justify-content: space-between;
821+
justify-content: start;
772822
gap: 8px;
773823
774824
h2 {
@@ -811,19 +861,25 @@
811861
display: flex;
812862
flex-direction: column;
813863
gap: 24px;
814-
max-width: 500px;
864+
max-width: 800px;
865+
866+
padding: 24px;
867+
border-radius: 16px;
868+
background-color: #372f4b;
815869
}
816870
817871
.checklist-item {
818872
display: flex;
819-
justify-content: space-between;
873+
justify-content: start;
874+
align-items: center;
820875
flex-direction: row;
821-
gap: 8px;
876+
gap: 16px;
822877
823878
label {
824879
font-family: "PT Sans", sans-serif;
825880
font-size: 20px;
826881
color: white;
882+
text-align: left;
827883
}
828884
}
829885

0 commit comments

Comments
 (0)