kiui-kit 1.4.1-beta.1 → 1.5.1

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.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ---
4
4
 
5
- <img src="kiui.png">
5
+ <img src="./public/kiui.png">
6
6
 
7
7
  A lightweight, modern Web Component UI Kit – ready to plug into your HTML projects.
8
8
 
@@ -12,15 +12,15 @@ A lightweight, modern Web Component UI Kit – ready to plug into your HTML proj
12
12
 
13
13
  ## 📦 Files Overview
14
14
 
15
- | File | Description |
16
- | --------------------- | -------------------------------------------- |
17
- | `kiui.min.js` | Core JavaScript containing Web Components |
18
- | `kiui.min.css` | Main CSS for layout and design |
19
- | `components.conf.css` | Theme/style config customize colors easily |
20
- | `allData/*.json` | Dynamic content used by components |
21
- | `index.html` | Live demo file test components quickly |
22
- | `kiui.png` | Default image/logo used in cards/headers |
23
- | `kiui.typewriter.min` | Type writer Effect |
15
+ | File | Description |
16
+ | -------------------- | -------------------------------------------- |
17
+ | `/assets/index.js` | Core JavaScript containing Web Components |
18
+ | `/assets/app.js` | You can init Kiui project |
19
+ | `/assets/index.css` | Main CSS for layout and design |
20
+ | `/assets/custom.css` | Theme/style config customize colors easily |
21
+ | `allData/*.json` | Dynamic content used by components |
22
+ | `index.html` | Live demo file test components quickly |
23
+ | `kiui.png` | Default image/logo used in cards/headers |
24
24
 
25
25
  ---
26
26
 
@@ -41,36 +41,39 @@ You can either clone this repo or copy the following files into your project:
41
41
  ```
42
42
  /your-project/
43
43
 
44
- ├── kiui.min.js
45
- ├── kiui.min.css
46
- ├── components.conf.css (optional)
47
44
  ├── /allData/*.json
45
+ ├── /assets/*
46
+ ├─────── index.js
47
+ ├─────── app.js
48
+ ├─────── index.css
49
+ ├─────── custom.css (optional)
48
50
  └── your.html
49
51
  ```
50
52
 
51
53
  ---
52
54
 
53
- ### 2. Include in Your HTML
55
+ ### 2. Include in Your HTML and JS
56
+ HTML
54
57
 
55
58
  ```html
56
- <!DOCTYPE html>
59
+ <!doctype html>
57
60
  <html lang="en" dir="ltr">
58
61
  <head>
59
62
  <meta charset="UTF-8" />
60
63
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
61
64
  <title>KIUI Demo</title>
62
- <link rel="shortcut icon" href="./kiui.png" type="image/png" />
63
- <link rel="stylesheet" href="./src/styles/main.css" />
64
- <link rel="stylesheet" href="./src/components/components.conf.css" />
65
+ <link rel="shortcut icon" href="/kiui.png" type="image/png" />
66
+ <script type="module" crossorigin src="/assets/index.js"></script>
67
+ <link rel="stylesheet" crossorigin href="/assets/index.css" />
65
68
  </head>
66
69
 
67
70
  <body>
68
71
  <header>
69
72
  <!--! To use one of the components below, uncomment only one -->
70
73
 
71
- <header-type-1></header-type-1>
74
+ <!-- <header-type-1></header-type-1> -->
72
75
 
73
- <!-- <header-type-2></header-type-2> -->
76
+ <header-type-2></header-type-2>
74
77
 
75
78
  <!--! To use one of the components below, uncomment only one -->
76
79
  </header>
@@ -111,13 +114,13 @@ You can either clone this repo or copy the following files into your project:
111
114
  <box-card-1 data-title="just title"></box-card-1>
112
115
 
113
116
  <box-card-1
114
- data-img="./kiui.png"
117
+ data-img="/kiui.png"
115
118
  data-title="title2"
116
119
  data-price="23"
117
120
  ></box-card-1>
118
121
 
119
122
  <box-card-1
120
- data-img="./kiui.png"
123
+ data-img="/kiui.png"
121
124
  data-button-title="Buy"
122
125
  data-title="title3"
123
126
  data-description="description"
@@ -125,7 +128,7 @@ You can either clone this repo or copy the following files into your project:
125
128
  ></box-card-1>
126
129
 
127
130
  <box-card-1
128
- data-img="./kiui.png"
131
+ data-img="/kiui.png"
129
132
  data-title="title4"
130
133
  data-description="description"
131
134
  data-button-title="button"
@@ -133,6 +136,12 @@ You can either clone this repo or copy the following files into your project:
133
136
  ></box-card-1>
134
137
  <!--? Boxes -->
135
138
  </div>
139
+ <button-primary
140
+ data-content="Click me"
141
+ data-bg="black"
142
+ data-color="#fff"
143
+ data-id="btn-1"
144
+ ></button-primary>
136
145
  </main>
137
146
 
138
147
  <footer>
@@ -148,50 +157,46 @@ You can either clone this repo or copy the following files into your project:
148
157
  </footer>
149
158
 
150
159
  <!--* Scripts -->
151
- <script type="module" src="./index.js"></script>
152
-
153
- <!--! Use KIUI Type Writer -->
154
- <script src="./src/effects/typewriter.js"></script>
155
- <script>
156
- initKIUITypeWriter(
157
- [
158
- "Welcome to KIUI",
159
- "A lightweight",
160
- "and",
161
- "Modern Web Component UI Kit.",
162
- "Let’s build something amazing together . . . ",
163
- ],
164
- 100, // typing/deleting speed
165
- 1000 // pause between type/delete
166
- );
167
- </script>
168
-
160
+ <script src="./assets/app.js"></script>
169
161
  <!--! Other Scripts ... -->
170
- <script>
171
- // ? InitProject
172
-
173
- (async () => {
174
- const navMenus = await fetch("./src/allData/header.json")
175
- .then((res) => res.json())
176
- .then((data) => data);
177
-
178
- initHeader(navMenus);
179
-
180
- const footerData = await fetch("./src/allData/footer.json")
181
- .then((res) => res.json())
182
- .then((data) => data);
183
-
184
- const socials = await fetch("./src/allData/socials.json")
185
- .then((res) => res.json())
186
- .then((data) => data);
187
-
188
- const footer = { ...footerData.footer, socials: socials.socials };
189
-
190
- initFooter(footer);
191
- })();
192
- </script>
193
162
  </body>
194
163
  </html>
164
+ ```
165
+ JavaScript (app.js)
166
+
167
+ ```js
168
+ window.addEventListener("load", () => {
169
+ // ? InitProject
170
+ (async () => {
171
+ const navMenusDataRes = await fetch("/allData/header.json");
172
+ const navMenusData = await navMenusDataRes.json();
173
+ initHeader(navMenusData);
174
+
175
+ const footerDataRes = await fetch("/allData/footer.json");
176
+ const footerData = await footerDataRes.json();
177
+
178
+ const socialsDataRes = await fetch("/allData/socials.json");
179
+ const socialsData = await socialsDataRes.json();
180
+
181
+ const footer = { ...footerData.footer, socials: socialsData.socials };
182
+ initFooter(footer);
183
+ })();
184
+
185
+ // Use KIUI Type Writer
186
+
187
+ initKIUITypeWriter(
188
+ [
189
+ "Welcome to KIUI",
190
+ "A lightweight",
191
+ "and",
192
+ "Modern Web Component UI Kit.",
193
+ "Let’s build something amazing together . . . ",
194
+ ],
195
+ 100, // typing/deleting speed
196
+ 1000, // pause between type/delete
197
+ );
198
+ });
199
+
195
200
  ```
196
201
 
197
202
  ---
@@ -289,7 +294,7 @@ npm run dev
289
294
  ## 🎨 Theming & Styling
290
295
 
291
296
  - To change colors, shadows, transitions, and styles:
292
- Edit the `components.conf.css` file and **uncomment** the section you want to modify.
297
+ Edit the `custom.css` file and **uncomment** the section you want to modify.
293
298
  - You can apply your own color palette, spacing, fonts, etc.
294
299
 
295
300
  ---
@@ -0,0 +1,31 @@
1
+ window.addEventListener("load", () => {
2
+ // ? InitProject
3
+ (async () => {
4
+ const navMenusDataRes = await fetch("/allData/header.json");
5
+ const navMenusData = await navMenusDataRes.json();
6
+ initHeader(navMenusData);
7
+
8
+ const footerDataRes = await fetch("/allData/footer.json");
9
+ const footerData = await footerDataRes.json();
10
+
11
+ const socialsDataRes = await fetch("/allData/socials.json");
12
+ const socialsData = await socialsDataRes.json();
13
+
14
+ const footer = { ...footerData.footer, socials: socialsData.socials };
15
+ initFooter(footer);
16
+ })();
17
+
18
+ // Use KIUI Type Writer
19
+
20
+ initKIUITypeWriter(
21
+ [
22
+ "Welcome to KIUI",
23
+ "A lightweight",
24
+ "and",
25
+ "Modern Web Component UI Kit.",
26
+ "Let’s build something amazing together . . . ",
27
+ ],
28
+ 100, // typing/deleting speed
29
+ 1000, // pause between type/delete
30
+ );
31
+ });
@@ -1 +1 @@
1
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-ease:initial;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-indigo-400:oklch(67.3% .182 276.935);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-6xl:72rem;--container-7xl:80rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--radius-md:.375rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-16{top:calc(var(--spacing) * 16)}.right-0{right:calc(var(--spacing) * 0)}.left-0{left:calc(var(--spacing) * 0)}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-auto{margin:auto}.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-16{height:calc(var(--spacing) * 16)}.h-42{height:calc(var(--spacing) * 42)}.h-60{height:calc(var(--spacing) * 60)}.h-full{height:100%}.w-2\/3{width:66.6667%}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-64{width:calc(var(--spacing) * 64)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.flex-1\/4{flex:25%}.flex-2\/4{flex:50%}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-700{border-color:var(--color-gray-700)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-slate-100{background-color:var(--color-slate-100)}.object-cover{object-fit:cover}.p-5{padding:calc(var(--spacing) * 5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-black{color:var(--color-black)}.text-gray-100{color:var(--color-gray-100)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-gray-950{color:var(--color-gray-950)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-white{color:var(--color-white)}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline-1{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}:is(.\*\:transition-all>*){transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.hover\:-translate-y-2:hover{--tw-translate-y:calc(var(--spacing) * -2);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:text-indigo-400:hover{color:var(--color-indigo-400)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:outline-blue-600:focus{outline-color:var(--color-blue-600)}@media(min-width:40rem){.sm\:w-80{width:calc(var(--spacing) * 80)}.sm\:flex-row{flex-direction:row}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media(min-width:48rem){.md\:ml-auto{margin-left:auto}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/2{width:50%}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:text-left{text-align:left}}@media(min-width:64rem){.lg\:flex-row{flex-direction:row}:where(.lg\:space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)))}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media(prefers-color-scheme:dark){.dark\:border-gray-700{border-color:var(--color-gray-700)}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:bg-gray-900{background-color:var(--color-gray-900)}.dark\:bg-slate-800{background-color:var(--color-slate-800)}.dark\:text-gray-100{color:var(--color-gray-100)}.dark\:text-gray-200{color:var(--color-gray-200)}.dark\:text-gray-300{color:var(--color-gray-300)}.dark\:text-gray-400{color:var(--color-gray-400)}.dark\:text-indigo-400{color:var(--color-indigo-400)}.dark\:text-slate-100{color:var(--color-slate-100)}.dark\:text-white{color:var(--color-white)}}.container{margin-inline:auto;margin-block:calc(var(--spacing) * 24);padding:calc(var(--spacing) * 2)}}@media(prefers-color-scheme:dark){body{background-color:var(--color-slate-800)}}body{background-color:#d6d6d6}@media(prefers-color-scheme:dark){body{background-color:var(--color-black)}}.menu-btn{cursor:pointer;margin:.7rem .2rem}.menu-btn,.menu-btn:after,.menu-btn:before{content:"";background:#000;border-radius:1rem;width:2rem;height:.15rem;position:relative}.menu-btn:after{position:absolute;bottom:.5rem}.menu-btn:before{position:absolute;top:.5rem}#cards-wrapper{gap:calc(var(--spacing) * 4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media(min-width:40rem){#cards-wrapper{gap:calc(var(--spacing) * 6);grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:48rem){#cards-wrapper{gap:calc(var(--spacing) * 3.5)}}@media(min-width:64rem){#cards-wrapper{grid-template-columns:repeat(3,minmax(0,1fr))}}.menu-btn--show{left:50%}#KIUI-typewriter{margin:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);text-align:center;font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height));color:var(--color-slate-700);margin-inline:auto}@media(prefers-color-scheme:dark){#KIUI-typewriter{color:var(--color-slate-200)}}#KIUI-typewriter:after{content:"|";background:inherit;animation:1.5s linear infinite typeWriterFlicker;display:inline-block}.footer-icon{width:calc(var(--spacing) * 5)}#show-more{margin-block:calc(var(--spacing) * 50);border-radius:var(--radius-xl);background-color:var(--color-gray-100);width:100%;padding:calc(var(--spacing) * 6);padding-bottom:calc(var(--spacing) * 12);position:relative}@media(prefers-color-scheme:dark){#show-more{background-color:var(--color-gray-900)}}#show-more__content{height:calc(var(--spacing) * 49);text-align:justify;width:100%;color:var(--color-slate-900);overflow:hidden}@media(prefers-color-scheme:dark){#show-more__content{color:var(--color-gray-100)}}#show-more__shadow{right:calc(var(--spacing) * 0);bottom:calc(var(--spacing) * 0);left:calc(var(--spacing) * 0);height:calc(var(--spacing) * 30);border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl);--tw-gradient-position:to bottom;width:100%;display:block;position:absolute}@supports (background-image:linear-gradient(in lab,red,red)){#show-more__shadow{--tw-gradient-position:to bottom in oklab}}#show-more__shadow{background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-to:#4a556580}@supports (color:color-mix(in lab,red,red)){#show-more__shadow{--tw-gradient-to:color-mix(in oklab, var(--color-gray-600) 50%, transparent)}}#show-more__shadow{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}@media(prefers-color-scheme:dark){#show-more__shadow{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab,red,red)){#show-more__shadow{--tw-gradient-position:to bottom in oklab}}#show-more__shadow{background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:#10182833}@supports (color:color-mix(in lab,red,red)){#show-more__shadow{--tw-gradient-from:color-mix(in oklab, var(--color-gray-900) 20%, transparent)}}#show-more__shadow{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}#show-more__button{right:calc(var(--spacing) * 0);bottom:calc(var(--spacing) * -5);left:calc(var(--spacing) * 0);max-width:calc(var(--spacing) * 30);cursor:pointer;border-radius:var(--radius-2xl);background-color:#62748ecc;margin-inline:auto;position:absolute}@supports (color:color-mix(in lab,red,red)){#show-more__button{background-color:color-mix(in oklab,var(--color-slate-500) 80%,transparent)}}#show-more__button{padding:calc(var(--spacing) * 3);color:var(--color-slate-100);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(prefers-color-scheme:dark){#show-more__button{background-color:var(--color-slate-100);color:var(--color-slate-900)}}@media(hover:hover){@media(prefers-color-scheme:dark){#show-more__button:hover{background-color:var(--color-slate-300)}}}#show-more.active #show-more__content{overflow:auto;height:100%!important}#show-more.active #show-more__shadow{display:none}#show-more.active #show-more__button{bottom:calc(var(--spacing) * -5);background-color:#fffc}@supports (color:color-mix(in lab,red,red)){#show-more.active #show-more__button{background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}#show-more.active #show-more__button{color:var(--color-slate-900)}@media(prefers-color-scheme:dark){#show-more.active #show-more__button{border-color:var(--color-slate-100);color:var(--color-slate-800)}}@keyframes typeWriterFlicker{0%{opacity:1;transform:scaleY(1)}50%{opacity:.1;transform:scaleY(.8)}to{opacity:1;transform:scaleY(1)}}.social-media a svg{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8);--tw-duration:.2s;transition-duration:.2s}@media screen and (max-width:480px){#cards-wrapper{grid-template-columns:repeat(1,minmax(0,1fr))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}
1
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-ease:initial;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-200:oklch(92.4% .12 95.746);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-indigo-400:oklch(67.3% .182 276.935);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-6xl:72rem;--container-7xl:80rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--radius-md:.375rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-16{top:calc(var(--spacing) * 16)}.right-0{right:calc(var(--spacing) * 0)}.left-0{left:calc(var(--spacing) * 0)}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-1{margin:calc(var(--spacing) * 1)}.m-auto{margin:auto}.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-16{height:calc(var(--spacing) * 16)}.h-42{height:calc(var(--spacing) * 42)}.h-60{height:calc(var(--spacing) * 60)}.h-full{height:100%}.w-2\/3{width:66.6667%}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-64{width:calc(var(--spacing) * 64)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.flex-1\/4{flex:25%}.flex-2\/4{flex:50%}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-700{border-color:var(--color-gray-700)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-900{background-color:var(--color-slate-900)}.object-cover{object-fit:cover}.p-5{padding:calc(var(--spacing) * 5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-amber-200{color:var(--color-amber-200)}.text-black{color:var(--color-black)}.text-gray-100{color:var(--color-gray-100)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-gray-950{color:var(--color-gray-950)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-white{color:var(--color-white)}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline-1{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}:is(.\*\:transition-all>*){transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.hover\:-translate-y-2:hover{--tw-translate-y:calc(var(--spacing) * -2);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:text-indigo-400:hover{color:var(--color-indigo-400)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:outline-blue-600:focus{outline-color:var(--color-blue-600)}@media(min-width:40rem){.sm\:w-80{width:calc(var(--spacing) * 80)}.sm\:flex-row{flex-direction:row}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media(min-width:48rem){.md\:ml-auto{margin-left:auto}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/2{width:50%}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:text-left{text-align:left}}@media(min-width:64rem){.lg\:flex-row{flex-direction:row}:where(.lg\:space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)))}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media(prefers-color-scheme:dark){.dark\:border-gray-700{border-color:var(--color-gray-700)}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:bg-gray-900{background-color:var(--color-gray-900)}.dark\:bg-slate-800{background-color:var(--color-slate-800)}.dark\:text-gray-100{color:var(--color-gray-100)}.dark\:text-gray-200{color:var(--color-gray-200)}.dark\:text-gray-300{color:var(--color-gray-300)}.dark\:text-gray-400{color:var(--color-gray-400)}.dark\:text-indigo-400{color:var(--color-indigo-400)}.dark\:text-slate-100{color:var(--color-slate-100)}.dark\:text-white{color:var(--color-white)}}.container{margin-inline:auto;margin-block:calc(var(--spacing) * 24);padding:calc(var(--spacing) * 2)}}@media(prefers-color-scheme:dark){body{background-color:var(--color-slate-800)}}body{background-color:#d6d6d6}@media(prefers-color-scheme:dark){body{background-color:var(--color-black)}}.menu-btn{cursor:pointer;margin:.7rem .2rem}.menu-btn,.menu-btn:after,.menu-btn:before{content:"";background:#000;border-radius:1rem;width:2rem;height:.15rem;position:relative}.menu-btn:after{position:absolute;bottom:.5rem}.menu-btn:before{position:absolute;top:.5rem}#cards-wrapper{gap:calc(var(--spacing) * 4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media(min-width:40rem){#cards-wrapper{gap:calc(var(--spacing) * 6);grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:48rem){#cards-wrapper{gap:calc(var(--spacing) * 3.5)}}@media(min-width:64rem){#cards-wrapper{grid-template-columns:repeat(3,minmax(0,1fr))}}.menu-btn--show{left:50%}#KIUI-typewriter{margin:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);text-align:center;font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height));color:var(--color-slate-700);margin-inline:auto}@media(prefers-color-scheme:dark){#KIUI-typewriter{color:var(--color-slate-200)}}#KIUI-typewriter:after{content:"|";background:inherit;animation:1.5s linear infinite typeWriterFlicker;display:inline-block}.footer-icon{width:calc(var(--spacing) * 5)}#show-more{margin-block:calc(var(--spacing) * 50);border-radius:var(--radius-xl);background-color:var(--color-gray-100);width:100%;padding:calc(var(--spacing) * 6);padding-bottom:calc(var(--spacing) * 12);position:relative}@media(prefers-color-scheme:dark){#show-more{background-color:var(--color-gray-900)}}#show-more__content{height:calc(var(--spacing) * 49);text-align:justify;width:100%;color:var(--color-slate-900);overflow:hidden}@media(prefers-color-scheme:dark){#show-more__content{color:var(--color-gray-100)}}#show-more__shadow{right:calc(var(--spacing) * 0);bottom:calc(var(--spacing) * 0);left:calc(var(--spacing) * 0);height:calc(var(--spacing) * 30);border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl);--tw-gradient-position:to bottom;width:100%;display:block;position:absolute}@supports (background-image:linear-gradient(in lab,red,red)){#show-more__shadow{--tw-gradient-position:to bottom in oklab}}#show-more__shadow{background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-to:#4a556580}@supports (color:color-mix(in lab,red,red)){#show-more__shadow{--tw-gradient-to:color-mix(in oklab, var(--color-gray-600) 50%, transparent)}}#show-more__shadow{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}@media(prefers-color-scheme:dark){#show-more__shadow{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab,red,red)){#show-more__shadow{--tw-gradient-position:to bottom in oklab}}#show-more__shadow{background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:#10182833}@supports (color:color-mix(in lab,red,red)){#show-more__shadow{--tw-gradient-from:color-mix(in oklab, var(--color-gray-900) 20%, transparent)}}#show-more__shadow{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}#show-more__button{right:calc(var(--spacing) * 0);bottom:calc(var(--spacing) * -5);left:calc(var(--spacing) * 0);max-width:calc(var(--spacing) * 30);cursor:pointer;border-radius:var(--radius-2xl);background-color:#62748ecc;margin-inline:auto;position:absolute}@supports (color:color-mix(in lab,red,red)){#show-more__button{background-color:color-mix(in oklab,var(--color-slate-500) 80%,transparent)}}#show-more__button{padding:calc(var(--spacing) * 3);color:var(--color-slate-100);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(prefers-color-scheme:dark){#show-more__button{background-color:var(--color-slate-100);color:var(--color-slate-900)}}@media(hover:hover){@media(prefers-color-scheme:dark){#show-more__button:hover{background-color:var(--color-slate-300)}}}#show-more.active #show-more__content{overflow:auto;height:100%!important}#show-more.active #show-more__shadow{display:none}#show-more.active #show-more__button{bottom:calc(var(--spacing) * -5);background-color:#fffc}@supports (color:color-mix(in lab,red,red)){#show-more.active #show-more__button{background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}#show-more.active #show-more__button{color:var(--color-slate-900)}@media(prefers-color-scheme:dark){#show-more.active #show-more__button{border-color:var(--color-slate-100);color:var(--color-slate-800)}}@keyframes typeWriterFlicker{0%{opacity:1;transform:scaleY(1)}50%{opacity:.1;transform:scaleY(.8)}to{opacity:1;transform:scaleY(1)}}.social-media a svg{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8);--tw-duration:.2s;transition-duration:.2s}@media screen and (max-width:480px){#cards-wrapper{grid-template-columns:repeat(1,minmax(0,1fr))}}.ripple-effect{pointer-events:none;background-color:#ffffff80;border-radius:9999px;animation:.3s linear ripple;position:absolute;transform:scale(0)}@keyframes ripple{to{opacity:0;transform:scale(2)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}
@@ -1,4 +1,4 @@
1
- (function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))o(s);new MutationObserver(s=>{for(const t of s)if(t.type==="childList")for(const e of t.addedNodes)e.tagName==="LINK"&&e.rel==="modulepreload"&&o(e)}).observe(document,{childList:!0,subtree:!0});function a(s){const t={};return s.integrity&&(t.integrity=s.integrity),s.referrerPolicy&&(t.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?t.credentials="include":s.crossOrigin==="anonymous"?t.credentials="omit":t.credentials="same-origin",t}function o(s){if(s.ep)return;s.ep=!0;const t=a(s);fetch(s.href,t)}})();function y(n){function r(s,t){const e=s.classList.contains("open");s.classList.contains("translate-x-full")?(s.classList.toggle("translate-x-0"),s.classList.toggle("translate-x-full")):s.classList.toggle("hidden");const[i,l]=t.children;e?(i.classList.remove("opacity-0"),i.classList.add("opacity-100"),l.classList.remove("opacity-100"),l.classList.add("opacity-0"),s.classList.remove("open")):(i.classList.remove("opacity-100"),i.classList.add("opacity-0"),l.classList.remove("opacity-0"),l.classList.add("opacity-100"),s.classList.add("open"))}class a extends HTMLElement{async connectedCallback(){const t=await n;if(!t)return;const e=t.menu.items.map(l=>`<li class="menu-item"><a class="transition-colors">${l}</a></li>`).join(""),i=t.menu.items.map(l=>`<li class="menu-mobile-item"><a class="transition-colors">${l}</a></li>`).join("");this.render(t.menu.title,e,i),this.setDesktopLinks(t.menu.links),this.setMobileLinks(t.menu.links),this.setupMobileToggle()}render(t,e,i){this.innerHTML=`
1
+ (function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const t of s)if(t.type==="childList")for(const e of t.addedNodes)e.tagName==="LINK"&&e.rel==="modulepreload"&&r(e)}).observe(document,{childList:!0,subtree:!0});function o(s){const t={};return s.integrity&&(t.integrity=s.integrity),s.referrerPolicy&&(t.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?t.credentials="include":s.crossOrigin==="anonymous"?t.credentials="omit":t.credentials="same-origin",t}function r(s){if(s.ep)return;s.ep=!0;const t=o(s);fetch(s.href,t)}})();function y(n){function a(s,t){const e=s.classList.contains("open");s.classList.contains("translate-x-full")?(s.classList.toggle("translate-x-0"),s.classList.toggle("translate-x-full")):s.classList.toggle("hidden");const[i,l]=t.children;e?(i.classList.remove("opacity-0"),i.classList.add("opacity-100"),l.classList.remove("opacity-100"),l.classList.add("opacity-0"),s.classList.remove("open")):(i.classList.remove("opacity-100"),i.classList.add("opacity-0"),l.classList.remove("opacity-0"),l.classList.add("opacity-100"),s.classList.add("open"))}class o extends HTMLElement{async connectedCallback(){const t=await n;if(!t)return;const e=t.menu.items.map(l=>`<li class="menu-item"><a class="transition-colors">${l}</a></li>`).join(""),i=t.menu.items.map(l=>`<li class="menu-mobile-item"><a class="transition-colors">${l}</a></li>`).join("");this.render(t.menu.title,e,i),this.setDesktopLinks(t.menu.links),this.setMobileLinks(t.menu.links),this.setupMobileToggle()}render(t,e,i){this.innerHTML=`
2
2
  <nav class="menu-background bg-gray-100 dark:bg-gray-900 shadow-md fixed w-full top-0 left-0 z-50">
3
3
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center justify-between h-16">
4
4
 
@@ -34,7 +34,7 @@
34
34
  </ul>
35
35
  </div>
36
36
  </nav>
37
- `}setDesktopLinks(t){this.querySelectorAll(".menu-item a").forEach((i,l)=>{i.setAttribute("href",t[l]||"#")})}setMobileLinks(t){this.querySelectorAll(".menu-mobile-item a").forEach((i,l)=>{i.setAttribute("href",t[l]||"#")})}setupMobileToggle(){const t=this.querySelector("#hamburger-btn"),e=this.querySelector("#mobile-menu"),i=t;t&&e&&i&&(i.children[0].classList.add("opacity-100"),i.children[1].classList.add("opacity-0"),t.addEventListener("click",()=>r(e,i)))}}class o extends HTMLElement{async connectedCallback(){const t=await n;if(!t)return;const e=t.menu.items.map(l=>`<li class="menu-item"><a class="transition-colors">${l}</a></li>`).join(""),i=t.menu.items.map(l=>`<li class="menu-mobile-item"><a class="transition-colors">${l}</a></li>`).join("");this.render(t.menu.title,e,i),this.setLinks(t.menu.links),this.setMobileLinks(t.menu.links),this.setupMobileToggle()}render(t,e,i){this.innerHTML=`
37
+ `}setDesktopLinks(t){this.querySelectorAll(".menu-item a").forEach((i,l)=>{i.setAttribute("href",t[l]||"#")})}setMobileLinks(t){this.querySelectorAll(".menu-mobile-item a").forEach((i,l)=>{i.setAttribute("href",t[l]||"#")})}setupMobileToggle(){const t=this.querySelector("#hamburger-btn"),e=this.querySelector("#mobile-menu"),i=t;t&&e&&i&&(i.children[0].classList.add("opacity-100"),i.children[1].classList.add("opacity-0"),t.addEventListener("click",()=>a(e,i)))}}class r extends HTMLElement{async connectedCallback(){const t=await n;if(!t)return;const e=t.menu.items.map(l=>`<li class="menu-item"><a class="transition-colors">${l}</a></li>`).join(""),i=t.menu.items.map(l=>`<li class="menu-mobile-item"><a class="transition-colors">${l}</a></li>`).join("");this.render(t.menu.title,e,i),this.setLinks(t.menu.links),this.setMobileLinks(t.menu.links),this.setupMobileToggle()}render(t,e,i){this.innerHTML=`
38
38
  <nav class="menu-background bg-gray-200 text-slate-800 dark:bg-gray-900 dark:text-slate-100 fixed top-0 left-0 w-full z-50 shadow">
39
39
  <div class="max-w-7xl mx-auto px-4 py-4 flex items-center justify-between">
40
40
 
@@ -77,23 +77,7 @@
77
77
  </ul>
78
78
  </div>
79
79
  </nav>
80
- `}setLinks(t){this.querySelectorAll(".menu-item a").forEach((i,l)=>{i.setAttribute("href",t[l]||"#")})}setMobileLinks(t){this.querySelectorAll(".menu-mobile-item a").forEach((i,l)=>{i.setAttribute("href",t[l]||"#")})}setupMobileToggle(){const t=this.querySelector("#hamburger-btn"),e=this.querySelector("#mobile-menu"),i=t;t&&e&&i&&(i.children[0].classList.add("opacity-100"),i.children[1].classList.add("opacity-0"),t.addEventListener("click",()=>r(e,i)))}}customElements.define("header-type-1",a),customElements.define("header-type-2",o)}class w extends HTMLElement{async connectedCallback(){const{img:r,title:a,description:o,price:s,buttonTitle:t,buttonLink:e}=this.dataset;this.render(r,a,o,s,t,e)}render(r,a,o,s,t,e){this.innerHTML=`
81
- <!-- Product Card -->
82
- <div class="card w-full bg-gray-200 dark:bg-gray-800 rounded-2xl overflow-hidden shadow-md hover:shadow-xl hover:-translate-y-2 transition duration-300">
83
- <img class="w-full h-60 object-cover" src="${r||"./kiui.png"}" alt="${a||"default alt"}" />
84
-
85
- <div class="h-42 p-5 flex flex-col justify-between space-y-3">
86
- ${a?`<h2 class="card-title text-lg sm:text-xl font-semibold text-gray-800 dark:text-white">${a}</h2>`:""}
87
- ${o?`<p class="card-description text-sm text-gray-600 dark:text-gray-400">${o}</p>`:""}
88
-
89
- ${s||e?`<div class="flex items-center justify-between mt-4">
90
- ${s?`<span class="card-price text-lg font-bold text-gray-600 dark:text-indigo-400">$${s}</span>`:"<div></div>"}
91
- ${t?`<a href="${e}" target="_blank" rel="noopener noreferrer" class="card-btn px-4 py-2 bg-gray-600 text-white rounded-xl hover:bg-gray-700 cursor-pointer transition">${t}</a>`:""}
92
- </div>`:""}
93
- </div>
94
- </div>
95
- <!-- Product Card -->
96
- `}}customElements.define("box-card-1",w);function k(n){class r extends HTMLElement{async connectedCallback(){const e=await n;e&&(this.logoRender=s.bind(this),this.render(e))}render(e){const i=e.socials.socials_names?e.socials.socials_names.map(l=>{if(this.logoRender(l))return`<a href="https://${l}" target="_blank">${this.logoRender(l)}</a>`}).join(""):"";this.innerHTML=`
80
+ `}setLinks(t){this.querySelectorAll(".menu-item a").forEach((i,l)=>{i.setAttribute("href",t[l]||"#")})}setMobileLinks(t){this.querySelectorAll(".menu-mobile-item a").forEach((i,l)=>{i.setAttribute("href",t[l]||"#")})}setupMobileToggle(){const t=this.querySelector("#hamburger-btn"),e=this.querySelector("#mobile-menu"),i=t;t&&e&&i&&(i.children[0].classList.add("opacity-100"),i.children[1].classList.add("opacity-0"),t.addEventListener("click",()=>a(e,i)))}}customElements.define("header-type-1",o),customElements.define("header-type-2",r)}function w(n){class a extends HTMLElement{async connectedCallback(){const e=await n;e&&(this.logoRender=s.bind(this),this.render(e))}render(e){const i=e.socials.socials_names?e.socials.socials_names.map(l=>{if(this.logoRender(l))return`<a href="https://${l}" target="_blank">${this.logoRender(l)}</a>`}).join(""):"";this.innerHTML=`
97
81
  <div class="footer bg-gray-100 dark:bg-gray-900 text-gray-800 dark:text-gray-300 pt-10">
98
82
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
99
83
  <!-- Top -->
@@ -108,21 +92,21 @@
108
92
  <div>
109
93
  <h3 class="text-lg font-semibold mb-4 footer-item-title">${e.footerItems.item1.title}</h3>
110
94
  <ul class="space-y-2 text-sm">
111
- ${e.footerItems.item1.items.map((l,c)=>`<li><a href="${e.footerItems.item1.links[c]}" class="footer-item hover:underline">${l}</a></li>`).join("")}
95
+ ${e.footerItems.item1.items.map((l,d)=>`<li><a href="${e.footerItems.item1.links[d]}" class="footer-item hover:underline">${l}</a></li>`).join("")}
112
96
  </ul>
113
97
  </div>
114
98
 
115
99
  <div>
116
100
  <h3 class="text-lg font-semibold mb-4 footer-item-title">${e.footerItems.item2.title}</h3>
117
101
  <ul class="space-y-2 text-sm">
118
- ${e.footerItems.item2.items.map((l,c)=>`<li><a href="${e.footerItems.item2.links[c]}" class="footer-item hover:underline">${l}</a></li>`).join("")}
102
+ ${e.footerItems.item2.items.map((l,d)=>`<li><a href="${e.footerItems.item2.links[d]}" class="footer-item hover:underline">${l}</a></li>`).join("")}
119
103
  </ul>
120
104
  </div>
121
105
 
122
106
  <div>
123
107
  <h3 class="text-lg font-semibold mb-4 footer-item-title">${e.footerItems.item3.title}</h3>
124
108
  <ul class="space-y-2 text-sm">
125
- ${e.footerItems.item3.items.map((l,c)=>`<li><a href="${e.footerItems.item3.links[c]}" class="footer-item hover:underline">${l}</a></li>`).join("")}
109
+ ${e.footerItems.item3.items.map((l,d)=>`<li><a href="${e.footerItems.item3.links[d]}" class="footer-item hover:underline">${l}</a></li>`).join("")}
126
110
  </ul>
127
111
  </div>
128
112
  </div>
@@ -136,7 +120,7 @@
136
120
  </div>
137
121
  </div>
138
122
  </div>
139
- `}}class a extends HTMLElement{async connectedCallback(){const e=await n;e&&(this.logoRender=s.bind(this),this.render(e))}render(e){const i=e.socials.socials_names?e.socials.socials_names.map(l=>{if(this.logoRender(l))return`<a href="https://${l}" target="_blank">${this.logoRender(l)}</a>`}).join(""):"";this.innerHTML=`
123
+ `}}class o extends HTMLElement{async connectedCallback(){const e=await n;e&&(this.logoRender=s.bind(this),this.render(e))}render(e){const i=e.socials.socials_names?e.socials.socials_names.map(l=>{if(this.logoRender(l))return`<a href="https://${l}" target="_blank">${this.logoRender(l)}</a>`}).join(""):"";this.innerHTML=`
140
124
  <div class="footer bg-gray-100 text-gray-900 dark:bg-gray-900 dark:text-gray-200 py-12">
141
125
  <div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8">
142
126
  <div class="text-center mb-10">
@@ -164,7 +148,7 @@
164
148
  <div>
165
149
  <h3 class="text-lg font-semibold mb-4 footer-item-title">${l.title}</h3>
166
150
  <ul class="space-y-2 text-sm">
167
- ${l.items.map((c,m)=>`<li class="footer-item"><a href="${l.links[m]}" class="hover:underline">${c}</a></li>`).join("")}
151
+ ${l.items.map((d,h)=>`<li class="footer-item"><a href="${l.links[h]}" class="hover:underline">${d}</a></li>`).join("")}
168
152
  </ul>
169
153
  </div>
170
154
  `).join("")}
@@ -179,7 +163,7 @@
179
163
  </div>
180
164
  </div>
181
165
  </div>
182
- `}}class o extends HTMLElement{async connectedCallback(){const e=await n;e&&(this.logoRender=s.bind(this),this.render(e))}render({title:e,description:i,footerItems:l,socials:c}){const{item1:m,item2:h,item3:g}=l,v=c.socials_names?c.socials_names.map(d=>{if(this.logoRender(d))return`<a href="https://${d}" target="_blank">${this.logoRender(d)}</a>`}).join(""):"";this.innerHTML=`
166
+ `}}class r extends HTMLElement{async connectedCallback(){const e=await n;e&&(this.logoRender=s.bind(this),this.render(e))}render({title:e,description:i,footerItems:l,socials:d}){const{item1:h,item2:p,item3:u}=l,v=d.socials_names?d.socials_names.map(c=>{if(this.logoRender(c))return`<a href="https://${c}" target="_blank">${this.logoRender(c)}</a>`}).join(""):"";this.innerHTML=`
183
167
  <footer class="footer bg-gray-100 text-gray-900 dark:bg-gray-900 dark:text-gray-100 py-16 text-sm">
184
168
  <div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 flex justify-between lg:flex-row flex-col space-y-4 lg:space-y-0">
185
169
 
@@ -198,22 +182,28 @@
198
182
 
199
183
  <div class="flex-1/4 flex justify-between flex-col sm:flex-row gap-4">
200
184
  <div>
201
- <h3 class="footer-item-title text-lg footer-title text-gray-400 font-bold">More on The ${m.title}</h3>
185
+ <h3 class="footer-item-title text-lg footer-title text-gray-400 font-bold">More on The ${h.title}</h3>
202
186
  <ul class="space-y-3 mt-4">
203
- ${m.items.map((d,u)=>`<li class="footer-item hover:underline"><a href=${m.links[u]}>${d}</a></li>`).join("")}
187
+ ${h.items.map((c,m)=>`<li class="footer-item hover:underline"><a href=${h.links[m]}>${c}</a></li>`).join("")}
204
188
  </ul>
205
189
  </div>
206
190
 
207
191
  <div>
208
- <h3 class="footer-item-title text-lg footer-title text-gray-400 font-bold">More on The ${h.title}</h3>
192
+ <h3 class="footer-item-title text-lg footer-title text-gray-400 font-bold">More on The ${p.title}</h3>
193
+ <ul class="space-y-3 mt-4">
194
+ ${p.items.map((c,m)=>`<li class="footer-item hover:underline hover:underline"><a href=${p.links[m]}>${c}</a></li>`).join("")}
195
+ </ul>
196
+ </div>
197
+ <div>
198
+ <h3 class="footer-item-title text-lg footer-title text-gray-400 font-bold">More on The ${u.title}</h3>
209
199
  <ul class="space-y-3 mt-4">
210
- ${h.items.map((d,u)=>`<li class="footer-item hover:underline"><a href=${h.links[u]}>${d}</a></li>`).join("")}
200
+ ${u.items.map((c,m)=>`<li class="footer-item w-fit"><a class="hover:underline" href=${u.links[m]}>${c}</a></li>`).join("")}
211
201
  </ul>
212
202
  </div>
213
203
  <div>
214
- <h3 class="footer-item-title text-lg footer-title text-gray-400 font-bold">More on The ${g.title}</h3>
204
+ <h3 class="footer-item-title text-lg footer-title text-amber-200 font-bold">More on The ${u.title}</h3>
215
205
  <ul class="space-y-3 mt-4">
216
- ${g.items.map((d,u)=>`<li class="footer-item w-fit"><a class="hover:underline" href=${g.links[u]}>${d}</a></li>`).join("")}
206
+ ${u.items.map((c,m)=>`<li class="footer-item hover:underline"><a href=${u.links[m]}>${c}</a></li>`).join("")}
217
207
  </ul>
218
208
  </div>
219
209
  </div>
@@ -233,4 +223,23 @@
233
223
  <path d="M13.601 2.326A7.85 7.85 0 0 0 7.994 0C3.627 0 .068 3.558.064 7.926c0 1.399.366 2.76 1.057 3.965L0 16l4.204-1.102a7.9 7.9 0 0 0 3.79.965h.004c4.368 0 7.926-3.558 7.93-7.93A7.9 7.9 0 0 0 13.6 2.326zM7.994 14.521a6.6 6.6 0 0 1-3.356-.92l-.24-.144-2.494.654.666-2.433-.156-.251a6.56 6.56 0 0 1-1.007-3.505c0-3.626 2.957-6.584 6.591-6.584a6.56 6.56 0 0 1 4.66 1.931 6.56 6.56 0 0 1 1.928 4.66c-.004 3.639-2.961 6.592-6.592 6.592m3.615-4.934c-.197-.099-1.17-.578-1.353-.646-.182-.065-.315-.099-.445.099-.133.197-.513.646-.627.775-.114.133-.232.148-.43.05-.197-.1-.836-.308-1.592-.985-.59-.525-.985-1.175-1.103-1.372-.114-.198-.011-.304.088-.403.087-.088.197-.232.296-.346.1-.114.133-.198.198-.33.065-.134.034-.248-.015-.347-.05-.099-.445-1.076-.612-1.47-.16-.389-.323-.335-.445-.34-.114-.007-.247-.007-.38-.007a.73.73 0 0 0-.529.247c-.182.198-.691.677-.691 1.654s.71 1.916.81 2.049c.098.133 1.394 2.132 3.383 2.992.47.205.84.326 1.129.418.475.152.904.129 1.246.08.38-.058 1.171-.48 1.338-.943.164-.464.164-.86.114-.943-.049-.084-.182-.133-.38-.232"/>
234
224
  </svg>`;case e.includes("linkedin"):return`<svg xmlns="http://www.w3.org/2000/svg" class="footer-icon" fill="currentColor" class="bi bi-linkedin" viewBox="0 0 16 16">
235
225
  <path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z"/>
236
- </svg>`;default:return""}}customElements.define("footer-type-1",r),customElements.define("footer-type-2",a),customElements.define("footer-type-3",o)}const L=document.querySelector("#show-more"),p=document.querySelector("#show-more__button");p.addEventListener("click",()=>{p.textContent=p.textContent==="Show More"?"Show Less":"Show More",L.classList.toggle("active")});const $=document,f=$.querySelector("#KIUI-typewriter");let x=null,b=null;function M(n=[],r=100,a=1e3){let o=0,s=0;function t(){const i=n[o];x=setInterval(()=>{f.textContent+=i[s],s++,s>=i.length&&(clearInterval(x),setTimeout(()=>e(),a))},r)}function e(){const i=n[o];b=setInterval(()=>{s--,f.textContent=i.slice(0,s),s<=0&&(clearInterval(b),o=(o+1)%n.length,setTimeout(()=>t(),a))},r)}t()}window.initKIUITypeWriter=M;window.initHeader=y;window.initFooter=k;initKIUITypeWriter(["Welcome to KIUI","A lightweight","and","Modern Web Component UI Kit.","Let’s build something amazing together . . . "],100,1e3);
226
+ </svg>`;default:return""}}customElements.define("footer-type-1",a),customElements.define("footer-type-2",o),customElements.define("footer-type-3",r)}class k extends HTMLElement{async connectedCallback(){const{img:a,title:o,description:r,price:s,buttonTitle:t,buttonLink:e}=this.dataset;this.render(a,o,r,s,t,e)}render(a,o,r,s,t,e){this.innerHTML=`
227
+ <!-- Product Card -->
228
+ <div class="card w-full bg-gray-200 dark:bg-gray-800 rounded-2xl overflow-hidden shadow-md hover:shadow-xl hover:-translate-y-2 transition duration-300">
229
+ <img class="w-full h-60 object-cover" src="${a||"./kiui.png"}" alt="${o||"default alt"}" />
230
+
231
+ <div class="h-42 p-5 flex flex-col justify-between space-y-3">
232
+ ${o?`<h2 class="card-title text-lg sm:text-xl font-semibold text-gray-800 dark:text-white">${o}</h2>`:""}
233
+ ${r?`<p class="card-description text-sm text-gray-600 dark:text-gray-400">${r}</p>`:""}
234
+
235
+ ${s||e?`<div class="flex items-center justify-between mt-4">
236
+ ${s?`<span class="card-price text-lg font-bold text-gray-600 dark:text-indigo-400">$${s}</span>`:"<div></div>"}
237
+ ${t?`<a href="${e}" target="_blank" rel="noopener noreferrer" class="card-btn px-4 py-2 bg-gray-600 text-white rounded-xl hover:bg-gray-700 cursor-pointer transition">${t}</a>`:""}
238
+ </div>`:""}
239
+ </div>
240
+ </div>
241
+ <!-- Product Card -->
242
+ `}}customElements.define("box-card-1",k);document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll(".ripple").forEach(n=>{n.addEventListener("click",function(a){const o=document.createElement("span"),r=Math.max(this.clientWidth,this.clientHeight),s=r/2;o.style.width=o.style.height=`${r}px`,o.style.left=`${a.clientX-this.getBoundingClientRect().left-s}px`,o.style.top=`${a.clientY-this.getBoundingClientRect().top-s}px`,o.classList.add("ripple-effect");const t=this.querySelector(".ripple-effect");t&&t.remove(),this.appendChild(o)})})});class L extends HTMLElement{async connectedCallback(){this.render()}render(){const{content:a,bg:o,color:r}=this.dataset;let{id:s=null}=this.dataset;this.innerHTML=`
243
+ <button ${s?`id=${s}`:""} class="cursor-pointer m-1 relative overflow-hidden px-4 py-2 rounded-md ripple bg-slate-900 text-white" style="background-color: ${o} !important; color: ${r} !important;">
244
+ ${a||"Click"}
245
+ </button>`}}customElements.define("button-primary",L);const $=document,f=$.querySelector("#KIUI-typewriter");let x=null,b=null;function M(n=[],a=100,o=1e3){let r=0,s=0;function t(){const i=n[r];x=setInterval(()=>{f.textContent+=i[s],s++,s>=i.length&&(clearInterval(x),setTimeout(()=>e(),o))},a)}function e(){const i=n[r];b=setInterval(()=>{s--,f.textContent=i.slice(0,s),s<=0&&(clearInterval(b),r=(r+1)%n.length,setTimeout(()=>t(),o))},a)}t()}window.initKIUITypeWriter=M;const C=document.querySelector("#show-more"),g=document.querySelector("#show-more__button");g.addEventListener("click",()=>{g.textContent=g.textContent==="Show More"?"Show Less":"Show More",C.classList.toggle("active")});window.initHeader=y;window.initFooter=w;
package/dist/index.html CHANGED
@@ -13,7 +13,7 @@
13
13
  <header>
14
14
  <!--! To use one of the components below, uncomment only one -->
15
15
 
16
- <header-type-1></header-type-1>
16
+ <!-- <header-type-1></header-type-1> -->
17
17
 
18
18
  <header-type-2></header-type-2>
19
19
 
@@ -78,6 +78,12 @@
78
78
  ></box-card-1>
79
79
  <!--? Boxes -->
80
80
  </div>
81
+ <button-primary
82
+ data-content="Click me"
83
+ data-bg="gray"
84
+ data-color="#fff"
85
+ data-id="btn-1"
86
+ ></button-primary>
81
87
  </main>
82
88
 
83
89
  <footer>
@@ -93,23 +99,7 @@
93
99
  </footer>
94
100
 
95
101
  <!--* Scripts -->
102
+ <script src="./assets/app.js"></script>
96
103
  <!--! Other Scripts ... -->
97
- <script>
98
- // ? InitProject
99
- (async () => {
100
- const navMenusDataRes = await fetch("/allData/header.json");
101
- const navMenusData = await navMenusDataRes.json();
102
- initHeader(navMenusData);
103
-
104
- const footerDataRes = await fetch("/allData/footer.json");
105
- const footerData = await footerDataRes.json();
106
-
107
- const socialsDataRes = await fetch("/allData/socials.json");
108
- const socialsData = await socialsDataRes.json();
109
-
110
- const footer = { ...footerData.footer, socials: socialsData.socials };
111
- initFooter(footer);
112
- })();
113
- </script>
114
104
  </body>
115
105
  </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kiui-kit",
3
- "version": "1.4.1-beta.1",
3
+ "version": "1.5.1",
4
4
  "description": "A set of ready-to-use HTML components like headers, footers, cards, etc.",
5
5
  "main": "dist/assets/index.js",
6
6
  "style": "dist/kiui.min.css",