Franek-Le commited on
Commit
e4615a5
·
1 Parent(s): 4f337aa

Update UI

Browse files
Files changed (3) hide show
  1. static/app.js +0 -13
  2. static/main.html +252 -2
  3. static/style.css +0 -235
static/app.js DELETED
@@ -1,13 +0,0 @@
1
- import { ServerStatus } from "eml-lib"
2
-
3
- function copyIP() {
4
- navigator.clipboard.writeText("NSMP2.play.hosting");
5
-
6
- const toast = document.getElementById("toast");
7
-
8
- toast.classList.add("show");
9
-
10
- setTimeout(() => {
11
- toast.classList.remove("show");
12
- }, 2000);
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
static/main.html CHANGED
@@ -6,7 +6,243 @@
6
 
7
  <title>NSMP Server</title>
8
 
9
- <link rel="stylesheet" href="./style.css">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  </head>
11
 
12
  <body>
@@ -72,7 +308,21 @@
72
  Skopiowano adres IP!
73
  </div>
74
 
75
- <script src="app.js"></script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
 
77
  </body>
78
  </html>
 
6
 
7
  <title>NSMP Server</title>
8
 
9
+ <style>
10
+ :root {
11
+ --bg: #0a0c12;
12
+ --panel: rgba(18, 22, 34, 0.72);
13
+ --panel-solid: #121626;
14
+ --text: #e6e9f2;
15
+ --muted: #8b92a8;
16
+ --accent: #5c6fff;
17
+ --accent2: #4653e5;
18
+ --border: rgba(255,255,255,0.08);
19
+ }
20
+
21
+ * {
22
+ box-sizing: border-box;
23
+ font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
24
+ }
25
+
26
+ html {
27
+ scroll-behavior: smooth;
28
+ }
29
+
30
+ body {
31
+ margin: 0;
32
+ color: var(--text);
33
+ min-height: 100vh;
34
+ overflow-x: hidden;
35
+ background: var(--bg);
36
+ }
37
+
38
+ body::before {
39
+ content: "";
40
+ position: fixed;
41
+ inset: 0;
42
+ z-index: -1;
43
+ background: radial-gradient(
44
+ 900px 500px at 20% 0%,
45
+ #1a1f36,
46
+ var(--bg)
47
+ );
48
+ background-repeat: no-repeat;
49
+ }
50
+
51
+ .topbar {
52
+ display: flex;
53
+ align-items: center;
54
+ justify-content: space-between;
55
+ padding: 14px 18px;
56
+ background: rgba(10,12,18,0.6);
57
+ backdrop-filter: blur(14px);
58
+ border-bottom: 1px solid var(--border);
59
+ position: sticky;
60
+ top: 0;
61
+ z-index: 100;
62
+ }
63
+
64
+ .brand {
65
+ font-weight: 700;
66
+ letter-spacing: .5px;
67
+ font-size: 22px;
68
+ }
69
+
70
+ .wrapper {
71
+ max-width: 1100px;
72
+ margin: 0 auto;
73
+ padding: 24px;
74
+ }
75
+
76
+ .hero {
77
+ text-align: center;
78
+ padding: 100px 20px 60px;
79
+ }
80
+
81
+ .hero h1 {
82
+ font-size: clamp(3rem, 8vw, 5rem);
83
+ margin: 0;
84
+ background: linear-gradient(
85
+ 135deg,
86
+ white,
87
+ #8ea0ff
88
+ );
89
+ -webkit-background-clip: text;
90
+ -webkit-text-fill-color: transparent;
91
+ }
92
+
93
+ .hero p {
94
+ color: var(--muted);
95
+ font-size: 1.1rem;
96
+ max-width: 700px;
97
+ margin: 20px auto;
98
+ line-height: 1.7;
99
+ }
100
+
101
+ .card {
102
+ background: linear-gradient(
103
+ 180deg,
104
+ rgba(20,24,40,.75),
105
+ rgba(12,14,24,.9)
106
+ );
107
+
108
+ border: 1px solid rgba(255,255,255,.08);
109
+ border-radius: 18px;
110
+ padding: 28px;
111
+
112
+ backdrop-filter: blur(14px);
113
+ box-shadow: 0 20px 60px rgba(0,0,0,.45);
114
+
115
+ transition:
116
+ transform .25s ease,
117
+ border-color .25s ease;
118
+ }
119
+
120
+ .card:hover {
121
+ transform: translateY(-4px);
122
+ border-color: rgba(92,111,255,.35);
123
+ }
124
+
125
+ .card h2,
126
+ .card h3 {
127
+ margin-top: 0;
128
+ color: white;
129
+ }
130
+
131
+ .card p {
132
+ color: var(--muted);
133
+ line-height: 1.6;
134
+ }
135
+
136
+ .server-box,
137
+ .launcher-box {
138
+ max-width: 700px;
139
+ margin: 24px auto 0;
140
+ }
141
+
142
+ .ip-box {
143
+ margin-top: 15px;
144
+ background: rgba(0,0,0,.25);
145
+ border: 1px solid var(--border);
146
+ border-radius: 14px;
147
+ padding: 16px;
148
+ font-family: monospace;
149
+ font-size: 1.1rem;
150
+ cursor: pointer;
151
+ transition:
152
+ border-color .2s ease,
153
+ background .2s ease;
154
+ }
155
+
156
+ .ip-box:hover {
157
+ border-color: var(--accent);
158
+ background: rgba(92,111,255,.08);
159
+ }
160
+
161
+ .button-group {
162
+ display: flex;
163
+ gap: 12px;
164
+ justify-content: center;
165
+ flex-wrap: wrap;
166
+ margin-top: 20px;
167
+ }
168
+
169
+ .button {
170
+ display: flex;
171
+ align-items: center;
172
+ justify-content: center;
173
+
174
+ min-width: 160px;
175
+ height: 52px;
176
+
177
+ padding: 0 24px;
178
+
179
+ border-radius: 12px;
180
+ text-decoration: none;
181
+ color: white;
182
+ font-weight: 600;
183
+
184
+ border: 1px solid rgba(124,92,255,0.35);
185
+
186
+ background: linear-gradient(
187
+ 135deg,
188
+ var(--accent),
189
+ var(--accent2)
190
+ );
191
+
192
+ transition:
193
+ transform .2s ease,
194
+ box-shadow .2s ease;
195
+ }
196
+
197
+ .button:hover {
198
+ transform: translateY(-2px);
199
+ box-shadow: 0 10px 25px rgba(92,111,255,.35);
200
+ }
201
+
202
+ .button:active {
203
+ transform: translateY(0);
204
+ }
205
+
206
+ .footer {
207
+ text-align: center;
208
+ padding: 50px 20px;
209
+ color: var(--muted);
210
+ font-size: .9rem;
211
+ }
212
+
213
+ .toast {
214
+ position: fixed;
215
+ bottom: 20px;
216
+ left: 50%;
217
+ transform: translateX(-50%);
218
+ background: rgba(18,22,34,.95);
219
+ border: 1px solid var(--border);
220
+ padding: 12px 18px;
221
+ border-radius: 12px;
222
+ color: white;
223
+ opacity: 0;
224
+ pointer-events: none;
225
+ transition: opacity .25s ease;
226
+ }
227
+
228
+ .toast.show {
229
+ opacity: 1;
230
+ }
231
+
232
+ @media (max-width: 600px) {
233
+ .wrapper {
234
+ padding: 16px;
235
+ }
236
+
237
+ .hero {
238
+ padding-top: 70px;
239
+ }
240
+
241
+ .button {
242
+ width: 100%;
243
+ }
244
+ }
245
+ </style>
246
  </head>
247
 
248
  <body>
 
308
  Skopiowano adres IP!
309
  </div>
310
 
311
+ <script>
312
+
313
+ function copyIP() {
314
+ navigator.clipboard.writeText("NSMP2.play.hosting");
315
+
316
+ const toast = document.getElementById("toast");
317
+
318
+ toast.classList.add("show");
319
+
320
+ setTimeout(() => {
321
+ toast.classList.remove("show");
322
+ }, 2000);
323
+ }
324
+
325
+ </script>
326
 
327
  </body>
328
  </html>
static/style.css DELETED
@@ -1,235 +0,0 @@
1
- :root {
2
- --bg: #0a0c12;
3
- --panel: rgba(18, 22, 34, 0.72);
4
- --panel-solid: #121626;
5
- --text: #e6e9f2;
6
- --muted: #8b92a8;
7
- --accent: #5c6fff;
8
- --accent2: #4653e5;
9
- --border: rgba(255,255,255,0.08);
10
- }
11
-
12
- * {
13
- box-sizing: border-box;
14
- font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
15
- }
16
-
17
- html {
18
- scroll-behavior: smooth;
19
- }
20
-
21
- body {
22
- margin: 0;
23
- color: var(--text);
24
- min-height: 100vh;
25
- overflow-x: hidden;
26
- background: var(--bg);
27
- }
28
-
29
- body::before {
30
- content: "";
31
- position: fixed;
32
- inset: 0;
33
- z-index: -1;
34
- background: radial-gradient(
35
- 900px 500px at 20% 0%,
36
- #1a1f36,
37
- var(--bg)
38
- );
39
- background-repeat: no-repeat;
40
- }
41
-
42
- .topbar {
43
- display: flex;
44
- align-items: center;
45
- justify-content: space-between;
46
- padding: 14px 18px;
47
- background: rgba(10,12,18,0.6);
48
- backdrop-filter: blur(14px);
49
- border-bottom: 1px solid var(--border);
50
- position: sticky;
51
- top: 0;
52
- z-index: 100;
53
- }
54
-
55
- .brand {
56
- font-weight: 700;
57
- letter-spacing: .5px;
58
- font-size: 22px;
59
- }
60
-
61
- .wrapper {
62
- max-width: 1100px;
63
- margin: 0 auto;
64
- padding: 24px;
65
- }
66
-
67
- .hero {
68
- text-align: center;
69
- padding: 100px 20px 60px;
70
- }
71
-
72
- .hero h1 {
73
- font-size: clamp(3rem, 8vw, 5rem);
74
- margin: 0;
75
- background: linear-gradient(
76
- 135deg,
77
- white,
78
- #8ea0ff
79
- );
80
- -webkit-background-clip: text;
81
- -webkit-text-fill-color: transparent;
82
- }
83
-
84
- .hero p {
85
- color: var(--muted);
86
- font-size: 1.1rem;
87
- max-width: 700px;
88
- margin: 20px auto;
89
- line-height: 1.7;
90
- }
91
-
92
- .card {
93
- background: linear-gradient(
94
- 180deg,
95
- rgba(20,24,40,.75),
96
- rgba(12,14,24,.9)
97
- );
98
-
99
- border: 1px solid rgba(255,255,255,.08);
100
- border-radius: 18px;
101
- padding: 28px;
102
-
103
- backdrop-filter: blur(14px);
104
- box-shadow: 0 20px 60px rgba(0,0,0,.45);
105
-
106
- transition:
107
- transform .25s ease,
108
- border-color .25s ease;
109
- }
110
-
111
- .card:hover {
112
- transform: translateY(-4px);
113
- border-color: rgba(92,111,255,.35);
114
- }
115
-
116
- .card h2,
117
- .card h3 {
118
- margin-top: 0;
119
- color: white;
120
- }
121
-
122
- .card p {
123
- color: var(--muted);
124
- line-height: 1.6;
125
- }
126
-
127
- .server-box,
128
- .launcher-box {
129
- max-width: 700px;
130
- margin: 24px auto 0;
131
- }
132
-
133
- .ip-box {
134
- margin-top: 15px;
135
- background: rgba(0,0,0,.25);
136
- border: 1px solid var(--border);
137
- border-radius: 14px;
138
- padding: 16px;
139
- font-family: monospace;
140
- font-size: 1.1rem;
141
- cursor: pointer;
142
- transition:
143
- border-color .2s ease,
144
- background .2s ease;
145
- }
146
-
147
- .ip-box:hover {
148
- border-color: var(--accent);
149
- background: rgba(92,111,255,.08);
150
- }
151
-
152
- .button-group {
153
- display: flex;
154
- gap: 12px;
155
- justify-content: center;
156
- flex-wrap: wrap;
157
- margin-top: 20px;
158
- }
159
-
160
- .button {
161
- display: flex;
162
- align-items: center;
163
- justify-content: center;
164
-
165
- min-width: 160px;
166
- height: 52px;
167
-
168
- padding: 0 24px;
169
-
170
- border-radius: 12px;
171
- text-decoration: none;
172
- color: white;
173
- font-weight: 600;
174
-
175
- border: 1px solid rgba(124,92,255,0.35);
176
-
177
- background: linear-gradient(
178
- 135deg,
179
- var(--accent),
180
- var(--accent2)
181
- );
182
-
183
- transition:
184
- transform .2s ease,
185
- box-shadow .2s ease;
186
- }
187
-
188
- .button:hover {
189
- transform: translateY(-2px);
190
- box-shadow: 0 10px 25px rgba(92,111,255,.35);
191
- }
192
-
193
- .button:active {
194
- transform: translateY(0);
195
- }
196
-
197
- .footer {
198
- text-align: center;
199
- padding: 50px 20px;
200
- color: var(--muted);
201
- font-size: .9rem;
202
- }
203
-
204
- .toast {
205
- position: fixed;
206
- bottom: 20px;
207
- left: 50%;
208
- transform: translateX(-50%);
209
- background: rgba(18,22,34,.95);
210
- border: 1px solid var(--border);
211
- padding: 12px 18px;
212
- border-radius: 12px;
213
- color: white;
214
- opacity: 0;
215
- pointer-events: none;
216
- transition: opacity .25s ease;
217
- }
218
-
219
- .toast.show {
220
- opacity: 1;
221
- }
222
-
223
- @media (max-width: 600px) {
224
- .wrapper {
225
- padding: 16px;
226
- }
227
-
228
- .hero {
229
- padding-top: 70px;
230
- }
231
-
232
- .button {
233
- width: 100%;
234
- }
235
- }