create-qwik 0.103.0-dev20230421164933 → 0.103.0-dev20230425141617

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/index.cjs +35 -35
  2. package/package.json +1 -1
  3. package/starters/apps/base/package.json +2 -2
  4. package/starters/apps/base/src/global.css +0 -1
  5. package/starters/apps/basic/public/favicon.svg +1 -0
  6. package/starters/apps/basic/public/fonts/poppins-400.woff2 +0 -0
  7. package/starters/apps/basic/public/fonts/poppins-500.woff2 +0 -0
  8. package/starters/apps/basic/public/fonts/poppins-700.woff2 +0 -0
  9. package/starters/apps/basic/public/manifest.json +9 -0
  10. package/starters/apps/basic/public/robots.txt +0 -0
  11. package/starters/apps/basic/src/components/starter/counter/counter.module.css +13 -0
  12. package/starters/apps/basic/src/components/starter/counter/counter.tsx +19 -8
  13. package/starters/apps/basic/src/components/starter/footer/footer.module.css +12 -0
  14. package/starters/apps/basic/src/components/starter/footer/footer.tsx +8 -6
  15. package/starters/apps/basic/src/components/starter/gauge/gauge.module.css +27 -0
  16. package/starters/apps/basic/src/components/starter/gauge/index.tsx +32 -0
  17. package/starters/apps/basic/src/components/starter/header/header.module.css +12 -13
  18. package/starters/apps/basic/src/components/starter/header/header.tsx +23 -21
  19. package/starters/apps/basic/src/components/starter/hero/hero.module.css +19 -7
  20. package/starters/apps/basic/src/components/starter/hero/hero.tsx +62 -52
  21. package/starters/apps/basic/src/components/starter/icons/qwik.tsx +8 -2
  22. package/starters/apps/basic/src/components/starter/infobox/infobox.module.css +5 -1
  23. package/starters/apps/basic/src/components/starter/next-steps/next-steps.module.css +20 -3
  24. package/starters/apps/basic/src/components/starter/next-steps/next-steps.tsx +16 -8
  25. package/starters/apps/basic/src/global.css +13 -163
  26. package/starters/apps/basic/src/routes/{demo → (starter)/demo}/flower/flower.css +5 -1
  27. package/starters/apps/basic/src/routes/(starter)/demo/flower/index.tsx +64 -0
  28. package/starters/apps/basic/src/routes/(starter)/demo/todolist/index.tsx +74 -0
  29. package/starters/apps/basic/src/routes/(starter)/demo/todolist/todolist.module.css +44 -0
  30. package/starters/apps/basic/src/routes/(starter)/index.tsx +112 -0
  31. package/starters/apps/basic/src/routes/(starter)/layout.tsx +26 -0
  32. package/starters/apps/basic/src/routes/(starter)/styles.css +232 -0
  33. package/starters/apps/basic/src/routes/layout.tsx +5 -22
  34. package/starters/apps/basic/src/components/starter/counter/counter.css +0 -19
  35. package/starters/apps/basic/src/routes/demo/flower/index.tsx +0 -60
  36. package/starters/apps/basic/src/routes/demo/todolist/index.tsx +0 -73
  37. package/starters/apps/basic/src/routes/demo/todolist/todolist.module.css +0 -13
  38. package/starters/apps/basic/src/routes/index.tsx +0 -117
@@ -0,0 +1,32 @@
1
+ import { component$ } from '@builder.io/qwik';
2
+ import styles from './gauge.module.css';
3
+
4
+ export default component$(({ value = 50 }: { value?: number }) => {
5
+ const safeValue = value < 0 || value > 100 ? 50 : value;
6
+
7
+ return (
8
+ <div class={styles.wrapper}>
9
+ <svg viewBox="0 0 120 120" class={styles.gauge}>
10
+ <defs>
11
+ <linearGradient id="gradient" x1="0%" y1="0%" x2="100%" y2="100%">
12
+ <stop offset="0%" stop-color="#18B6F6" />
13
+ <stop offset="1000%" stop-color="#AC7FF4" />
14
+ </linearGradient>
15
+ </defs>
16
+
17
+ <circle r="56" cx="60" cy="60" stroke-width="8" style="fill: #000; stroke: #0000"></circle>
18
+
19
+ <circle
20
+ r="56"
21
+ cx="60"
22
+ cy="60"
23
+ stroke-width="8"
24
+ style={`transform: rotate(-87.9537deg); stroke-dasharray: ${
25
+ safeValue * 3.51
26
+ }, 351.858; fill:none; transform-origin:50% 50%; stroke-linecap:round; stroke:url(#gradient)`}
27
+ ></circle>
28
+ </svg>
29
+ <span class={styles.value}>{safeValue}</span>
30
+ </div>
31
+ );
32
+ });
@@ -1,35 +1,40 @@
1
- .header {
1
+ .wrapper {
2
2
  display: flex;
3
3
  align-items: center;
4
- padding: 20px 10px 0;
4
+ justify-content: space-between;
5
5
  }
6
6
 
7
- .header .logo a {
7
+ .logo {
8
8
  display: inline-block;
9
9
  }
10
+ .logo a {
11
+ display: block;
12
+ }
10
13
 
11
14
  .header ul {
12
15
  margin: 0;
16
+ padding: 0;
13
17
  list-style: none;
14
- flex: 1;
15
- text-align: right;
18
+ display: flex;
19
+ gap: 30px;
16
20
  }
17
21
 
18
22
  .header li {
19
23
  display: none;
20
24
  margin: 0;
21
25
  padding: 0;
26
+ font-size: 0.7rem;
22
27
  }
23
28
 
24
29
  .header li a {
25
30
  color: white;
26
31
  display: inline-block;
27
- padding: 0 1em;
32
+ padding: 0;
28
33
  text-decoration: none;
29
34
  }
30
35
 
31
36
  .header li a:hover {
32
- color: var(--qwik-dark-purple);
37
+ color: var(--qwik-light-blue);
33
38
  }
34
39
 
35
40
  @media (min-width: 450px) {
@@ -37,9 +42,3 @@
37
42
  display: inline-block;
38
43
  }
39
44
  }
40
-
41
- @media (min-width: 768px) {
42
- .header {
43
- padding: 20px 70px 0;
44
- }
45
- }
@@ -5,28 +5,30 @@ import styles from './header.module.css';
5
5
  export default component$(() => {
6
6
  return (
7
7
  <header class={styles.header}>
8
- <div class={styles.logo}>
9
- <a href="/" title="qwik">
10
- <QwikLogo />
11
- </a>
12
- </div>
13
- <ul>
14
- <li>
15
- <a href="https://qwik.builder.io/docs/components/overview/" target="_blank">
16
- Docs
17
- </a>
18
- </li>
19
- <li>
20
- <a href="https://qwik.builder.io/examples/introduction/hello-world/" target="_blank">
21
- Examples
8
+ <div class={['container', styles.wrapper]}>
9
+ <div class={styles.logo}>
10
+ <a href="/" title="qwik">
11
+ <QwikLogo height={50} width={143} />
22
12
  </a>
23
- </li>
24
- <li>
25
- <a href="https://qwik.builder.io/tutorial/welcome/overview/" target="_blank">
26
- Tutorials
27
- </a>
28
- </li>
29
- </ul>
13
+ </div>
14
+ <ul>
15
+ <li>
16
+ <a href="https://qwik.builder.io/docs/components/overview/" target="_blank">
17
+ Docs
18
+ </a>
19
+ </li>
20
+ <li>
21
+ <a href="https://qwik.builder.io/examples/introduction/hello-world/" target="_blank">
22
+ Examples
23
+ </a>
24
+ </li>
25
+ <li>
26
+ <a href="https://qwik.builder.io/tutorial/welcome/overview/" target="_blank">
27
+ Tutorials
28
+ </a>
29
+ </li>
30
+ </ul>
31
+ </div>
30
32
  </header>
31
33
  );
32
34
  });
@@ -1,21 +1,33 @@
1
1
  .hero {
2
- color: white;
3
2
  display: flex;
4
3
  vertical-align: middle;
5
4
  flex-direction: column;
6
5
  flex-wrap: nowrap;
7
6
  align-items: center;
8
- height: 200px;
7
+ height: 450px;
9
8
  justify-content: center;
10
- gap: 30px;
9
+ gap: 40px;
11
10
  }
12
11
 
13
- .hero button {
14
- padding: 10px 40px;
12
+ .hero p {
13
+ color: white;
14
+ margin: 0;
15
+ font-size: 1rem;
15
16
  }
16
17
 
17
- @media screen (min-width: 768px) {
18
+ .button-group {
19
+ display: flex;
20
+ flex-direction: row;
21
+ gap: 24px;
22
+ }
23
+
24
+ @media screen and (min-width: 768px) {
18
25
  .hero {
19
- height: 300px;
26
+ gap: 60px;
27
+ height: 500px;
28
+ }
29
+
30
+ .hero p {
31
+ font-size: 1.3rem;
20
32
  }
21
33
  }
@@ -3,63 +3,73 @@ import styles from './hero.module.css';
3
3
 
4
4
  export default component$(() => {
5
5
  return (
6
- <div class={styles.hero}>
7
- <h1>Welcome to qwik</h1>
8
- <button
9
- onClick$={async () => {
10
- const defaults = {
11
- spread: 360,
12
- ticks: 70,
13
- gravity: 0,
14
- decay: 0.95,
15
- startVelocity: 30,
16
- colors: ['006ce9', 'ac7ff4', '18b6f6', '713fc2', 'ffffff'],
17
- origin: {
18
- x: 0.5,
19
- y: 0.245,
20
- },
21
- };
6
+ <div class={['container', styles.hero]}>
7
+ <h1>
8
+ So <span class="highlight">fantastic</span>
9
+ <br />
10
+ to have <span class="highlight">you</span> here
11
+ </h1>
12
+ <p>Have fun building your App with Qwik.</p>
13
+ <div class={styles['button-group']}>
14
+ <button
15
+ onClick$={async () => {
16
+ const defaults = {
17
+ spread: 360,
18
+ ticks: 70,
19
+ gravity: 0,
20
+ decay: 0.95,
21
+ startVelocity: 30,
22
+ colors: ['006ce9', 'ac7ff4', '18b6f6', '713fc2', 'ffffff'],
23
+ origin: {
24
+ x: 0.5,
25
+ y: 0.35,
26
+ },
27
+ };
22
28
 
23
- function loadConfetti() {
24
- return new Promise<(opts: any) => void>((resolve, reject) => {
25
- if ((globalThis as any).confetti) {
26
- return resolve((globalThis as any).confetti as any);
27
- }
28
- const script = document.createElement('script');
29
- script.src =
30
- 'https://cdn.jsdelivr.net/npm/canvas-confetti@1.5.1/dist/confetti.browser.min.js';
31
- script.onload = () => resolve((globalThis as any).confetti as any);
32
- script.onerror = reject;
33
- document.head.appendChild(script);
34
- script.remove();
35
- });
36
- }
29
+ function loadConfetti() {
30
+ return new Promise<(opts: any) => void>((resolve, reject) => {
31
+ if ((globalThis as any).confetti) {
32
+ return resolve((globalThis as any).confetti as any);
33
+ }
34
+ const script = document.createElement('script');
35
+ script.src =
36
+ 'https://cdn.jsdelivr.net/npm/canvas-confetti@1.5.1/dist/confetti.browser.min.js';
37
+ script.onload = () => resolve((globalThis as any).confetti as any);
38
+ script.onerror = reject;
39
+ document.head.appendChild(script);
40
+ script.remove();
41
+ });
42
+ }
37
43
 
38
- const confetti = await loadConfetti();
44
+ const confetti = await loadConfetti();
39
45
 
40
- function shoot() {
41
- confetti({
42
- ...defaults,
43
- particleCount: 80,
44
- scalar: 1.2,
45
- });
46
+ function shoot() {
47
+ confetti({
48
+ ...defaults,
49
+ particleCount: 80,
50
+ scalar: 1.2,
51
+ });
46
52
 
47
- confetti({
48
- ...defaults,
49
- particleCount: 60,
50
- scalar: 0.75,
51
- });
52
- }
53
+ confetti({
54
+ ...defaults,
55
+ particleCount: 60,
56
+ scalar: 0.75,
57
+ });
58
+ }
53
59
 
54
- setTimeout(shoot, 0);
55
- setTimeout(shoot, 100);
56
- setTimeout(shoot, 200);
57
- setTimeout(shoot, 300);
58
- setTimeout(shoot, 400);
59
- }}
60
- >
61
- Time to celebrate 🎉
62
- </button>
60
+ setTimeout(shoot, 0);
61
+ setTimeout(shoot, 100);
62
+ setTimeout(shoot, 200);
63
+ setTimeout(shoot, 300);
64
+ setTimeout(shoot, 400);
65
+ }}
66
+ >
67
+ Time to celebrate
68
+ </button>
69
+ <a href="https://qwik.builder.io/docs" target="_blank" class="button button-dark">
70
+ Explore the docs
71
+ </a>
72
+ </div>
63
73
  </div>
64
74
  );
65
75
  });
@@ -1,5 +1,11 @@
1
- export const QwikLogo = () => (
2
- <svg width="100" height="35" viewBox="0 0 167 53" fill="none" xmlns="http://www.w3.org/2000/svg">
1
+ export const QwikLogo = ({ width = 100, height = 35 }: { width?: number; height?: number }) => (
2
+ <svg
3
+ width={width}
4
+ height={height}
5
+ viewBox="0 0 167 53"
6
+ fill="none"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ >
3
9
  <path
4
10
  d="M81.9545 46.5859H75.5513V35.4045C73.4363 36.8579 71.0496 37.5749 68.4884 37.5749C65.0151 37.5749 62.4344 36.6253 60.8239 34.6487C59.2134 32.6915 58.3984 29.2034 58.3984 24.2231C58.3984 19.1266 59.3492 15.5997 61.2702 13.5456C63.23 11.4721 66.3734 10.4644 70.7004 10.4644C74.7946 10.4644 78.5201 11.0264 81.9545 12.131V46.5859ZM75.5513 16.278C74.096 15.8323 72.4661 15.6191 70.7004 15.6191C68.5272 15.6191 66.9749 16.1811 66.1017 17.3244C65.2479 18.4871 64.7823 20.6962 64.7823 23.9712C64.7823 27.0524 65.1897 29.1065 66.0435 30.2304C66.8973 31.335 68.3719 31.897 70.5452 31.897C73.3781 31.897 75.5513 30.7343 75.5513 29.2809V16.278Z"
5
11
  fill="white"
@@ -1,17 +1,21 @@
1
1
  .infobox {
2
+ color: white;
2
3
  font-size: 0.8rem;
3
4
  line-height: 2;
4
5
  margin: 0 0 40px;
5
6
  }
6
7
 
7
8
  .infobox h3 {
8
- color: #333;
9
9
  font-size: 1rem;
10
10
  font-weight: 400;
11
11
  margin: 0 0 15px;
12
12
  padding: 0;
13
13
  }
14
14
 
15
+ .infobox li {
16
+ line-height: 2.5;
17
+ }
18
+
15
19
  @media screen and (min-width: 600px) {
16
20
  .infobox {
17
21
  margin: 0;
@@ -1,19 +1,36 @@
1
1
  .gettingstarted {
2
2
  display: flex;
3
+ color: white;
3
4
  flex-direction: column;
4
5
  justify-content: center;
5
6
  align-items: center;
6
- height: 160px;
7
+ height: 280px;
7
8
  line-height: 1.5;
9
+ gap: 10px;
10
+ max-width: 600px;
11
+ margin: 0 auto;
8
12
  }
9
13
 
14
+ .gettingstarted .intro {
15
+ font-size: 1rem;
16
+ width: 100%;
17
+ word-break: break-word;
18
+ }
10
19
  .gettingstarted .hint {
11
- margin-top: 10px;
12
20
  font-size: 0.8rem;
13
21
  }
22
+ .gettingstarted .hint a {
23
+ color: var(--qwik-dark-purple);
24
+ }
14
25
 
15
26
  @media screen and (min-width: 768px) {
16
27
  .gettingstarted {
17
- height: 120px;
28
+ height: 180px;
29
+ }
30
+ .gettingstarted .intro {
31
+ font-size: 1.2rem;
32
+ }
33
+ .gettingstarted .hint {
34
+ font-size: 1rem;
18
35
  }
19
36
  }
@@ -3,7 +3,7 @@ import styles from './next-steps.module.css';
3
3
 
4
4
  export const GETTING_STARTED_STEPS = [
5
5
  {
6
- message: '<b>Ready</b> to make some changes?<br />Press and hold the <b>ALT</b> key',
6
+ message: "Press and hold the <b>ALT</b> key to active 'Click-to-Source' mode",
7
7
  },
8
8
  {
9
9
  message: 'Select the title of this page while keeping the <b>ALT</b> key pressed',
@@ -11,12 +11,12 @@ export const GETTING_STARTED_STEPS = [
11
11
  },
12
12
  {
13
13
  message:
14
- '<b>Update</b> now the <code>routeLoader$</code> defined in the <code>src/routes/layout.tsx</code> file',
14
+ '<b>Update</b> now the <code>routeLoader$</code> defined in the <code>src/routes/(starter)/layout.tsx</code> file',
15
15
  hint: 'Instead of returning the current date, you could return any possible string.<br />The output is displayed in the footer.',
16
16
  },
17
17
  {
18
18
  message: 'Create a <b>new Route</b> called <code>/me</code>',
19
- hint: 'Create a new directory called <code>me</code> in <code>src/routes</code>. Within this directory create a <code>index.tsx</code> file or copy the <code>src/routes/index.tsx</code> file. Your new route is now accessible <a href="/me" target="_blank">here</a> ✨',
19
+ hint: 'Create a new directory called <code>me</code> in <code>src/routes</code>. Within this directory create a <code>index.tsx</code> file or copy the <code>src/routes/(starter)/index.tsx</code> file. Your new route is now accessible <a href="/me" target="_blank">here</a> ✨',
20
20
  },
21
21
  {
22
22
  message: 'Time to have a look at <b>Forms</b>',
@@ -41,23 +41,31 @@ export default component$(() => {
41
41
  );
42
42
 
43
43
  return (
44
- <>
44
+ <div class="container container-purple container-center">
45
+ <h2>
46
+ Time for a quick
47
+ <br />
48
+ <span class="highlight">qwik intro</span>?
49
+ </h2>
45
50
  <div class={styles.gettingstarted}>
46
- <div dangerouslySetInnerHTML={GETTING_STARTED_STEPS[gettingStartedStep.value].message} />
51
+ <div
52
+ class={styles.intro}
53
+ dangerouslySetInnerHTML={GETTING_STARTED_STEPS[gettingStartedStep.value].message}
54
+ />
47
55
  <span
48
56
  class={styles.hint}
49
57
  dangerouslySetInnerHTML={GETTING_STARTED_STEPS[gettingStartedStep.value].hint}
50
58
  />
51
59
  </div>
52
60
  {gettingStartedStep.value + 1 < GETTING_STARTED_STEPS.length ? (
53
- <button class="gray small" onClick$={() => gettingStartedStep.value++}>
61
+ <button class="button-dark" onClick$={() => gettingStartedStep.value++}>
54
62
  Continue with Step {gettingStartedStep.value + 2} of {GETTING_STARTED_STEPS.length}
55
63
  </button>
56
64
  ) : (
57
- <button class="gray small" onClick$={() => (gettingStartedStep.value = 0)}>
65
+ <button class="button-dark" onClick$={() => (gettingStartedStep.value = 0)}>
58
66
  Re-Start
59
67
  </button>
60
68
  )}
61
- </>
69
+ </div>
62
70
  );
63
71
  });
@@ -11,173 +11,23 @@
11
11
  --qwik-light-blue: #18b6f6;
12
12
  --qwik-light-purple: #ac7ff4;
13
13
  --qwik-dark-purple: #713fc2;
14
+ --qwik-dirty-black: #1d2033;
15
+ --qwik-dark-background: #151934;
14
16
  }
15
17
 
16
- body {
17
- background: linear-gradient(90deg, rgba(24, 182, 246, 0.3) 0%, rgba(172, 127, 244, 0.3) 100%);
18
- font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
19
- font-weight: 200;
20
- padding: 10px 0px;
21
- }
22
-
23
- ::selection {
24
- background: rgb(8, 2, 61);
25
- color: white;
26
- }
27
-
28
- h1,
29
- h2,
30
- h3 {
31
- font-weight: 100;
32
- }
33
-
34
- h1 b,
35
- h2 b,
36
- h3 b {
37
- font-weight: 300;
18
+ html {
19
+ line-height: 1;
20
+ -webkit-text-size-adjust: 100%;
21
+ -moz-tab-size: 4;
22
+ -o-tab-size: 4;
23
+ tab-size: 4;
24
+ font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
25
+ 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
26
+ 'Segoe UI Symbol', 'Noto Color Emoji';
38
27
  }
39
28
 
40
- h1 {
41
- color: white;
42
- font-size: 2rem;
29
+ body {
43
30
  padding: 0;
44
31
  margin: 0;
45
- }
46
-
47
- h1.hero {
48
- margin: 60px 0;
49
- }
50
-
51
- h2 {
52
- color: var(--qwik-dark-purple);
53
- }
54
-
55
- input[type='text'],
56
- button {
57
- background-color: transparent;
58
- color: white;
59
- border: 1px solid white;
60
- border-radius: 12px;
61
- font-size: 1rem;
62
- padding: 10px 20px;
63
- }
64
-
65
- button {
66
- cursor: pointer;
67
- }
68
-
69
- button:hover {
70
- background-color: white;
71
- color: var(--qwik-dark-purple);
72
- }
73
-
74
- button.small {
75
- border-radius: 6px;
76
- font-size: 0.8rem;
77
- padding: 5px 10px;
78
- }
79
-
80
- button.gray {
81
- border-color: #aaa;
82
- color: #aaa;
83
- }
84
-
85
- a,
86
- a:active,
87
- a:visited,
88
- a:hover {
89
- color: black;
90
- font-weight: 400;
91
- text-decoration: none;
92
- }
93
-
94
- .section.bright {
95
- background: white;
96
- }
97
-
98
- .section.dark {
99
- background: rgba(50, 50, 50, 0.5);
100
- }
101
-
102
- code {
103
- background: rgba(230, 230, 230, 0.3);
104
- border-radius: 4px;
105
- padding: 2px 6px;
106
- }
107
-
108
- ul {
109
- margin: 0;
110
- padding-left: 20px;
111
- }
112
-
113
- .page {
114
- width: 90vw;
115
- max-width: 1200px;
116
- margin: 0 auto;
117
- background: linear-gradient(90deg, rgba(24, 182, 246, 0.6) 0%, rgba(172, 127, 244, 0.6) 100%);
118
- overflow: hidden;
119
- border-radius: 6px;
120
- }
121
-
122
- .container {
123
- padding: 20px 10px;
124
- }
125
-
126
- .container.center {
127
- text-align: center;
128
- }
129
-
130
- .container.mh-300 {
131
- min-height: 300px;
132
- }
133
-
134
- .topics {
135
- display: grid;
136
- grid-template-columns: 1fr;
137
- }
138
-
139
- /* used icon pack: https://www.svgrepo.com/collection/phosphor-thin-icons */
140
- .icon:before {
141
- width: 18px;
142
- height: 18px;
143
- content: '';
144
- display: inline-block;
145
- margin-right: 5px;
146
- position: relative;
147
- top: 2px;
148
- }
149
-
150
- .icon-cli:before {
151
- background-image: url("data:image/svg+xml,%3Csvg fill='%23000000' width='20px' height='20px' viewBox='0 0 256 256' id='Flat' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M122.499 124.87646a4.00053 4.00053 0 0 1 0 6.24708l-40 32a4.0002 4.0002 0 0 1-4.998-6.24708L113.59668 128 77.501 99.12354a4.0002 4.0002 0 0 1 4.998-6.24708ZM175.99414 156h-40a4 4 0 0 0 0 8h40a4 4 0 1 0 0-8ZM228 56.48535v143.0293A12.49909 12.49909 0 0 1 215.51465 212H40.48535A12.49909 12.49909 0 0 1 28 199.51465V56.48535A12.49909 12.49909 0 0 1 40.48535 44h175.0293A12.49909 12.49909 0 0 1 228 56.48535Zm-8 0A4.49023 4.49023 0 0 0 215.51465 52H40.48535A4.49023 4.49023 0 0 0 36 56.48535v143.0293A4.49023 4.49023 0 0 0 40.48535 204h175.0293A4.49023 4.49023 0 0 0 220 199.51465Z'/%3E%3C/svg%3E");
152
- }
153
-
154
- .icon-apps:before {
155
- background-image: url("data:image/svg+xml,%3Csvg fill='%23000000' width='20px' height='20px' viewBox='0 0 256 256' id='Flat' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M216 44.00586H40a12.01375 12.01375 0 0 0-12 12v144a12.01375 12.01375 0 0 0 12 12H216a12.01375 12.01375 0 0 0 12-12v-144A12.01375 12.01375 0 0 0 216 44.00586Zm4 156a4.00458 4.00458 0 0 1-4 4H40a4.00458 4.00458 0 0 1-4-4v-144a4.00458 4.00458 0 0 1 4-4H216a4.00458 4.00458 0 0 1 4 4Zm-144-116a8 8 0 1 1-8-8A7.99977 7.99977 0 0 1 76 84.00586Zm40 0a8 8 0 1 1-8-8A7.99977 7.99977 0 0 1 116 84.00586Z'/%3E%3C/svg%3E");
156
- }
157
-
158
- .icon-community:before {
159
- background-image: url("data:image/svg+xml,%3Csvg fill='%23000000' width='20px' height='20px' viewBox='0 0 256 256' id='Flat' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M246.40381 143.19434a4.00061 4.00061 0 0 1-5.60108-.7959A55.57857 55.57857 0 0 0 196 120a4 4 0 0 1 0-8 28 28 0 1 0-27.50732-33.26074 4.00013 4.00013 0 0 1-7.85987-1.49219 36.00191 36.00191 0 1 1 54.06494 37.50513 63.58068 63.58068 0 0 1 32.50147 22.84155A3.99993 3.99993 0 0 1 246.40381 143.19434Zm-57.24268 71.05273a3.9998 3.9998 0 1 1-7.1914 3.50391 60.02582 60.02582 0 0 0-107.93946 0 3.9998 3.9998 0 1 1-7.1914-3.50391 67.56008 67.56008 0 0 1 40.90625-35.20581 44 44 0 1 1 40.50976 0A67.56139 67.56139 0 0 1 189.16113 214.24707ZM128 176a36 36 0 1 0-36-36A36.04061 36.04061 0 0 0 128 176ZM60 112A28 28 0 1 1 87.50732 78.73828a3.99989 3.99989 0 1 0 7.85938-1.49219A36.00177 36.00177 0 1 0 41.30225 114.7522 63.5829 63.5829 0 0 0 8.79883 137.5957a4 4 0 1 0 6.39648 4.80469A55.58072 55.58072 0 0 1 60 120a4 4 0 0 0 0-8Z'/%3E%3C/svg%3E");
160
- }
161
-
162
- @media screen and (min-width: 768px) {
163
- body {
164
- padding: 60px 0px;
165
- }
166
-
167
- h1 {
168
- font-size: 3rem;
169
- }
170
-
171
- .page {
172
- width: 70vw;
173
- }
174
-
175
- .container {
176
- padding: 30px 70px;
177
- }
178
-
179
- .topics {
180
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
181
- gap: 20px;
182
- }
32
+ line-height: inherit;
183
33
  }
@@ -17,8 +17,12 @@
17
17
  contain: strict;
18
18
  }
19
19
 
20
+ h1 {
21
+ margin-bottom: 60px;
22
+ }
23
+
20
24
  .input {
21
- width: 100%;
25
+ width: 60%;
22
26
  }
23
27
 
24
28
  .square {