detached b84433b

Switch from UnoCSS to Tailwind because unocss@cli is a mess

scp

spc

scp
commit
b84433b49cd915727fef86e1855e66f4683f7a4a
author
bnema · · 2023-09-03 14:06 UTC
committer
bnema · · 2023-09-04 06:59 UTC
parent
3278bce
signature
unsigned
16 files · +2124 -116

this diff is incomplete: 1 file is too large to show. the totals above count everything; clone the repository to read the rest.

M .gitignore +2 -1
@@ -1,2 +1,3 @@
11 .env
2-node_modules/⏎̸
2+node_modules/
3+tmp/⏎̸
@@ -1,2 +1,3 @@
1 .env1 .env
2-node_modules/⏎̸2+node_modules/
3+tmp/⏎̸
M go.mod +1 -3
@@ -5,18 +5,16 @@ go 1.21.0
55 require (
66 github.com/PuerkitoBio/goquery v1.8.1
77 github.com/labstack/echo/v4 v4.11.1
8+ gopkg.in/yaml.v3 v3.0.1
89 )
910
1011 require (
1112 github.com/andybalholm/cascadia v1.3.1 // indirect
1213 github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
13- github.com/google/safehtml v0.1.0 // indirect
1414 golang.org/x/time v0.3.0 // indirect
15- gopkg.in/yaml.v3 v3.0.1 // indirect
1615 )
1716
1817 require (
19- github.com/go-chi/chi v1.5.4
2018 github.com/labstack/gommon v0.4.0 // indirect
2119 github.com/mattn/go-colorable v0.1.13 // indirect
2220 github.com/mattn/go-isatty v0.0.19 // indirect
@@ -5,18 +5,16 @@ go 1.21.0
5 require (5 require (
6 github.com/PuerkitoBio/goquery v1.8.16 github.com/PuerkitoBio/goquery v1.8.1
7 github.com/labstack/echo/v4 v4.11.17 github.com/labstack/echo/v4 v4.11.1
8+ gopkg.in/yaml.v3 v3.0.1
8 )9 )
9 10
10 require (11 require (
11 github.com/andybalholm/cascadia v1.3.1 // indirect12 github.com/andybalholm/cascadia v1.3.1 // indirect
12 github.com/golang-jwt/jwt v3.2.2+incompatible // indirect13 github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
13- github.com/google/safehtml v0.1.0 // indirect
14 golang.org/x/time v0.3.0 // indirect14 golang.org/x/time v0.3.0 // indirect
15- gopkg.in/yaml.v3 v3.0.1 // indirect
16 )15 )
17 16
18 require (17 require (
19- github.com/go-chi/chi v1.5.4
20 github.com/labstack/gommon v0.4.0 // indirect18 github.com/labstack/gommon v0.4.0 // indirect
21 github.com/mattn/go-colorable v0.1.13 // indirect19 github.com/mattn/go-colorable v0.1.13 // indirect
22 github.com/mattn/go-isatty v0.0.19 // indirect20 github.com/mattn/go-isatty v0.0.19 // indirect
M go.sum +1 -4 generated file: collapsed
M internal/ui/public/assets/css/custom.css +100 -24
@@ -1,26 +1,74 @@
1-/* Path: internal/ui/public/assets/css/custom.css */
1+/**
2+ * Path: internal/ui/public/assets/css/custom.css
3+ *
4+ * @format
5+ */
6+
27 /* Embeded path : assets/css/cutsom.css */
3-.fade-me-out.htmx-swapping {
4- opacity: 0;
5- transition: opacity 1s ease-out;
6- }
78
9+@tailwind base;
10+@tailwind components;
11+@tailwind utilities;
12+
13+/* Import IBM Plex Fonts */
14+@font-face {
15+ font-family: "IBMPlexSans-Bold";
16+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Bold.woff2") format("woff2");
17+ font-weight: bold;
18+ font-style: normal;
19+}
20+
21+@font-face {
22+ font-family: "IBMPlexSans-Regular";
23+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2") format("woff2");
24+ font-weight: normal;
25+ font-style: normal;
26+}
27+
28+/* Import Jetbrains Mono Nerd Font */
29+@font-face {
30+ font-family: "JetBrainsMono-Nerd-Font-Regular";
31+ src: url("assets/fonts/JetBrainsMonoNerd/JetBrainsMonoNerdFontMono-Regular.woff2")
32+ format("woff2");
33+ font-weight: normal;
34+ font-style: normal;
35+}
36+
37+@font-face {
38+ font-family: "LilitaOne-Regular";
39+ src: url("assets/fonts/LilitaOne/LilitaOne-Regular.woff2") format("woff2");
40+ font-weight: normal;
41+ font-style: normal;
42+}
43+
44+.fade-me-out.htmx-swapping {
45+ opacity: 0;
46+ transition: opacity 1s ease-out;
47+}
848
949 /* View transition */
1050 @keyframes fade-in {
11- from { opacity: 0; }
51+ from {
52+ opacity: 0;
53+ }
1254 }
1355
1456 @keyframes fade-out {
15- to { opacity: 0; }
57+ to {
58+ opacity: 0;
59+ }
1660 }
1761
1862 @keyframes slide-from-right {
19- from { transform: translateX(90px); }
63+ from {
64+ transform: translateX(90px);
65+ }
2066 }
2167
2268 @keyframes slide-to-left {
23- to { transform: translateX(-90px); }
69+ to {
70+ transform: translateX(-90px);
71+ }
2472 }
2573
2674 .slide-it {
@@ -29,13 +77,38 @@
2977
3078 ::view-transition-old(slide-it) {
3179 animation: 180ms cubic-bezier(0.4, 0, 1, 1) both fade-out,
32- 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;
80+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;
3381 }
3482 ::view-transition-new(slide-it) {
3583 animation: 420ms cubic-bezier(0, 0, 0.2, 1) 90ms both fade-in,
36- 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;
84+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;
85+}
86+h1,
87+h2,
88+h3,
89+h4,
90+h5,
91+h6 {
92+ font-family: "IBMPlexSans-Bold", sans-serif;
93+ font-style: normal;
94+ color: #000000;
95+ margin: 0;
96+ padding: 0;
97+}
98+.gordon-title {
99+ font-family: "LilitaOne-Regular", sans-serif;
100+ font-style: normal;
101+ color: #000000;
102+ margin: 0;
103+ padding: 0;
104+}
105+.gordon-v-subtitle {
106+ font-family: "IBMPlexSans-Regular", sans-serif;
107+ font-style: normal;
108+ color: #000000;
109+ margin: 0;
110+ padding: 0;
37111 }
38-
39112
40113 .circle-shadow {
41114 width: 100%;
@@ -43,15 +116,18 @@
43116 }
44117
45118 .circle-shadow::after {
46- position: absolute;
47- width: 50%;
48- height: 0.4rem;
49- margin: auto;
50- background: rgba(0, 0, 0, 0.1);
51- border-radius: 50%;
52- z-index: -1;
53- bottom: 2%;
54- content: "";
55- box-shadow: 0 0 1px 0.3rem rgba(0, 0, 0, 0.1);
56-
57-}⏎̸
119+ position: absolute;
120+ width: 50%;
121+ height: 0.4rem;
122+ margin: auto;
123+ background: rgba(0, 0, 0, 0.1);
124+ border-radius: 50%;
125+ z-index: -1;
126+ bottom: 2%;
127+ content: "";
128+ box-shadow: 0 0 1px 0.3rem rgba(0, 0, 0, 0.1);
129+}
130+
131+.iconoir {
132+ margin-right: 8px;
133+}
@@ -1,26 +1,74 @@
1-/* Path: internal/ui/public/assets/css/custom.css */1+/**
2+ * Path: internal/ui/public/assets/css/custom.css
3+ *
4+ * @format
5+ */
6+
2 /* Embeded path : assets/css/cutsom.css */7 /* Embeded path : assets/css/cutsom.css */
3-.fade-me-out.htmx-swapping {
4- opacity: 0;
5- transition: opacity 1s ease-out;
6- }
7 8
9+@tailwind base;
10+@tailwind components;
11+@tailwind utilities;
12+
13+/* Import IBM Plex Fonts */
14+@font-face {
15+ font-family: "IBMPlexSans-Bold";
16+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Bold.woff2") format("woff2");
17+ font-weight: bold;
18+ font-style: normal;
19+}
20+
21+@font-face {
22+ font-family: "IBMPlexSans-Regular";
23+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2") format("woff2");
24+ font-weight: normal;
25+ font-style: normal;
26+}
27+
28+/* Import Jetbrains Mono Nerd Font */
29+@font-face {
30+ font-family: "JetBrainsMono-Nerd-Font-Regular";
31+ src: url("assets/fonts/JetBrainsMonoNerd/JetBrainsMonoNerdFontMono-Regular.woff2")
32+ format("woff2");
33+ font-weight: normal;
34+ font-style: normal;
35+}
36+
37+@font-face {
38+ font-family: "LilitaOne-Regular";
39+ src: url("assets/fonts/LilitaOne/LilitaOne-Regular.woff2") format("woff2");
40+ font-weight: normal;
41+ font-style: normal;
42+}
43+
44+.fade-me-out.htmx-swapping {
45+ opacity: 0;
46+ transition: opacity 1s ease-out;
47+}
8 48
9 /* View transition */49 /* View transition */
10 @keyframes fade-in {50 @keyframes fade-in {
11- from { opacity: 0; }51+ from {
52+ opacity: 0;
53+ }
12 }54 }
13 55
14 @keyframes fade-out {56 @keyframes fade-out {
15- to { opacity: 0; }57+ to {
58+ opacity: 0;
59+ }
16 }60 }
17 61
18 @keyframes slide-from-right {62 @keyframes slide-from-right {
19- from { transform: translateX(90px); }63+ from {
64+ transform: translateX(90px);
65+ }
20 }66 }
21 67
22 @keyframes slide-to-left {68 @keyframes slide-to-left {
23- to { transform: translateX(-90px); }69+ to {
70+ transform: translateX(-90px);
71+ }
24 }72 }
25 73
26 .slide-it {74 .slide-it {
@@ -29,13 +77,38 @@
29 77
30 ::view-transition-old(slide-it) {78 ::view-transition-old(slide-it) {
31 animation: 180ms cubic-bezier(0.4, 0, 1, 1) both fade-out,79 animation: 180ms cubic-bezier(0.4, 0, 1, 1) both fade-out,
32- 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;80+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;
33 }81 }
34 ::view-transition-new(slide-it) {82 ::view-transition-new(slide-it) {
35 animation: 420ms cubic-bezier(0, 0, 0.2, 1) 90ms both fade-in,83 animation: 420ms cubic-bezier(0, 0, 0.2, 1) 90ms both fade-in,
36- 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;84+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;
85+}
86+h1,
87+h2,
88+h3,
89+h4,
90+h5,
91+h6 {
92+ font-family: "IBMPlexSans-Bold", sans-serif;
93+ font-style: normal;
94+ color: #000000;
95+ margin: 0;
96+ padding: 0;
97+}
98+.gordon-title {
99+ font-family: "LilitaOne-Regular", sans-serif;
100+ font-style: normal;
101+ color: #000000;
102+ margin: 0;
103+ padding: 0;
104+}
105+.gordon-v-subtitle {
106+ font-family: "IBMPlexSans-Regular", sans-serif;
107+ font-style: normal;
108+ color: #000000;
109+ margin: 0;
110+ padding: 0;
37 }111 }
38-
39 112
40 .circle-shadow {113 .circle-shadow {
41 width: 100%;114 width: 100%;
@@ -43,15 +116,18 @@
43 }116 }
44 117
45 .circle-shadow::after {118 .circle-shadow::after {
46- position: absolute;119+ position: absolute;
47- width: 50%;120+ width: 50%;
48- height: 0.4rem;121+ height: 0.4rem;
49- margin: auto;122+ margin: auto;
50- background: rgba(0, 0, 0, 0.1);123+ background: rgba(0, 0, 0, 0.1);
51- border-radius: 50%;124+ border-radius: 50%;
52- z-index: -1;125+ z-index: -1;
53- bottom: 2%;126+ bottom: 2%;
54- content: "";127+ content: "";
55- box-shadow: 0 0 1px 0.3rem rgba(0, 0, 0, 0.1);128+ box-shadow: 0 0 1px 0.3rem rgba(0, 0, 0, 0.1);
56-129+}
57-}⏎̸130+
131+.iconoir {
132+ margin-right: 8px;
133+}
A internal/ui/public/assets/css/tailwind.css +912 -0
@@ -0,0 +1,912 @@
1+/**
2+ * Path: internal/ui/public/assets/css/custom.css
3+ *
4+ * @format
5+ */
6+
7+/* Embeded path : assets/css/cutsom.css */
8+
9+/*! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com
10+ */
11+
12+/*
13+1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
14+2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
15+*/
16+
17+*,
18+::before,
19+::after {
20+ box-sizing: border-box;
21+ /* 1 */
22+ border-width: 0;
23+ /* 2 */
24+ border-style: solid;
25+ /* 2 */
26+ border-color: #e5e7eb;
27+ /* 2 */
28+}
29+
30+::before,
31+::after {
32+ --tw-content: '';
33+}
34+
35+/*
36+1. Use a consistent sensible line-height in all browsers.
37+2. Prevent adjustments of font size after orientation changes in iOS.
38+3. Use a more readable tab size.
39+4. Use the user's configured `sans` font-family by default.
40+5. Use the user's configured `sans` font-feature-settings by default.
41+6. Use the user's configured `sans` font-variation-settings by default.
42+*/
43+
44+html {
45+ line-height: 1.5;
46+ /* 1 */
47+ -webkit-text-size-adjust: 100%;
48+ /* 2 */
49+ -moz-tab-size: 4;
50+ /* 3 */
51+ -o-tab-size: 4;
52+ tab-size: 4;
53+ /* 3 */
54+ font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
55+ /* 4 */
56+ font-feature-settings: normal;
57+ /* 5 */
58+ font-variation-settings: normal;
59+ /* 6 */
60+}
61+
62+/*
63+1. Remove the margin in all browsers.
64+2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
65+*/
66+
67+body {
68+ margin: 0;
69+ /* 1 */
70+ line-height: inherit;
71+ /* 2 */
72+}
73+
74+/*
75+1. Add the correct height in Firefox.
76+2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
77+3. Ensure horizontal rules are visible by default.
78+*/
79+
80+hr {
81+ height: 0;
82+ /* 1 */
83+ color: inherit;
84+ /* 2 */
85+ border-top-width: 1px;
86+ /* 3 */
87+}
88+
89+/*
90+Add the correct text decoration in Chrome, Edge, and Safari.
91+*/
92+
93+abbr:where([title]) {
94+ -webkit-text-decoration: underline dotted;
95+ text-decoration: underline dotted;
96+}
97+
98+/*
99+Remove the default font size and weight for headings.
100+*/
101+
102+h1,
103+h2,
104+h3,
105+h4,
106+h5,
107+h6 {
108+ font-size: inherit;
109+ font-weight: inherit;
110+}
111+
112+/*
113+Reset links to optimize for opt-in styling instead of opt-out.
114+*/
115+
116+a {
117+ color: inherit;
118+ text-decoration: inherit;
119+}
120+
121+/*
122+Add the correct font weight in Edge and Safari.
123+*/
124+
125+b,
126+strong {
127+ font-weight: bolder;
128+}
129+
130+/*
131+1. Use the user's configured `mono` font family by default.
132+2. Correct the odd `em` font sizing in all browsers.
133+*/
134+
135+code,
136+kbd,
137+samp,
138+pre {
139+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
140+ /* 1 */
141+ font-size: 1em;
142+ /* 2 */
143+}
144+
145+/*
146+Add the correct font size in all browsers.
147+*/
148+
149+small {
150+ font-size: 80%;
151+}
152+
153+/*
154+Prevent `sub` and `sup` elements from affecting the line height in all browsers.
155+*/
156+
157+sub,
158+sup {
159+ font-size: 75%;
160+ line-height: 0;
161+ position: relative;
162+ vertical-align: baseline;
163+}
164+
165+sub {
166+ bottom: -0.25em;
167+}
168+
169+sup {
170+ top: -0.5em;
171+}
172+
173+/*
174+1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
175+2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
176+3. Remove gaps between table borders by default.
177+*/
178+
179+table {
180+ text-indent: 0;
181+ /* 1 */
182+ border-color: inherit;
183+ /* 2 */
184+ border-collapse: collapse;
185+ /* 3 */
186+}
187+
188+/*
189+1. Change the font styles in all browsers.
190+2. Remove the margin in Firefox and Safari.
191+3. Remove default padding in all browsers.
192+*/
193+
194+button,
195+input,
196+optgroup,
197+select,
198+textarea {
199+ font-family: inherit;
200+ /* 1 */
201+ font-feature-settings: inherit;
202+ /* 1 */
203+ font-variation-settings: inherit;
204+ /* 1 */
205+ font-size: 100%;
206+ /* 1 */
207+ font-weight: inherit;
208+ /* 1 */
209+ line-height: inherit;
210+ /* 1 */
211+ color: inherit;
212+ /* 1 */
213+ margin: 0;
214+ /* 2 */
215+ padding: 0;
216+ /* 3 */
217+}
218+
219+/*
220+Remove the inheritance of text transform in Edge and Firefox.
221+*/
222+
223+button,
224+select {
225+ text-transform: none;
226+}
227+
228+/*
229+1. Correct the inability to style clickable types in iOS and Safari.
230+2. Remove default button styles.
231+*/
232+
233+button,
234+[type='button'],
235+[type='reset'],
236+[type='submit'] {
237+ -webkit-appearance: button;
238+ /* 1 */
239+ background-color: transparent;
240+ /* 2 */
241+ background-image: none;
242+ /* 2 */
243+}
244+
245+/*
246+Use the modern Firefox focus style for all focusable elements.
247+*/
248+
249+:-moz-focusring {
250+ outline: auto;
251+}
252+
253+/*
254+Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
255+*/
256+
257+:-moz-ui-invalid {
258+ box-shadow: none;
259+}
260+
261+/*
262+Add the correct vertical alignment in Chrome and Firefox.
263+*/
264+
265+progress {
266+ vertical-align: baseline;
267+}
268+
269+/*
270+Correct the cursor style of increment and decrement buttons in Safari.
271+*/
272+
273+::-webkit-inner-spin-button,
274+::-webkit-outer-spin-button {
275+ height: auto;
276+}
277+
278+/*
279+1. Correct the odd appearance in Chrome and Safari.
280+2. Correct the outline style in Safari.
281+*/
282+
283+[type='search'] {
284+ -webkit-appearance: textfield;
285+ /* 1 */
286+ outline-offset: -2px;
287+ /* 2 */
288+}
289+
290+/*
291+Remove the inner padding in Chrome and Safari on macOS.
292+*/
293+
294+::-webkit-search-decoration {
295+ -webkit-appearance: none;
296+}
297+
298+/*
299+1. Correct the inability to style clickable types in iOS and Safari.
300+2. Change font properties to `inherit` in Safari.
301+*/
302+
303+::-webkit-file-upload-button {
304+ -webkit-appearance: button;
305+ /* 1 */
306+ font: inherit;
307+ /* 2 */
308+}
309+
310+/*
311+Add the correct display in Chrome and Safari.
312+*/
313+
314+summary {
315+ display: list-item;
316+}
317+
318+/*
319+Removes the default spacing and border for appropriate elements.
320+*/
321+
322+blockquote,
323+dl,
324+dd,
325+h1,
326+h2,
327+h3,
328+h4,
329+h5,
330+h6,
331+hr,
332+figure,
333+p,
334+pre {
335+ margin: 0;
336+}
337+
338+fieldset {
339+ margin: 0;
340+ padding: 0;
341+}
342+
343+legend {
344+ padding: 0;
345+}
346+
347+ol,
348+ul,
349+menu {
350+ list-style: none;
351+ margin: 0;
352+ padding: 0;
353+}
354+
355+/*
356+Reset default styling for dialogs.
357+*/
358+
359+dialog {
360+ padding: 0;
361+}
362+
363+/*
364+Prevent resizing textareas horizontally by default.
365+*/
366+
367+textarea {
368+ resize: vertical;
369+}
370+
371+/*
372+1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
373+2. Set the default placeholder color to the user's configured gray 400 color.
374+*/
375+
376+input::-moz-placeholder, textarea::-moz-placeholder {
377+ opacity: 1;
378+ /* 1 */
379+ color: #9ca3af;
380+ /* 2 */
381+}
382+
383+input::placeholder,
384+textarea::placeholder {
385+ opacity: 1;
386+ /* 1 */
387+ color: #9ca3af;
388+ /* 2 */
389+}
390+
391+/*
392+Set the default cursor for buttons.
393+*/
394+
395+button,
396+[role="button"] {
397+ cursor: pointer;
398+}
399+
400+/*
401+Make sure disabled buttons don't get the pointer cursor.
402+*/
403+
404+:disabled {
405+ cursor: default;
406+}
407+
408+/*
409+1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
410+2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
411+ This can trigger a poorly considered lint error in some tools but is included by design.
412+*/
413+
414+img,
415+svg,
416+video,
417+canvas,
418+audio,
419+iframe,
420+embed,
421+object {
422+ display: block;
423+ /* 1 */
424+ vertical-align: middle;
425+ /* 2 */
426+}
427+
428+/*
429+Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
430+*/
431+
432+img,
433+video {
434+ max-width: 100%;
435+ height: auto;
436+}
437+
438+/* Make elements with the HTML hidden attribute stay hidden by default */
439+
440+[hidden] {
441+ display: none;
442+}
443+
444+*, ::before, ::after {
445+ --tw-border-spacing-x: 0;
446+ --tw-border-spacing-y: 0;
447+ --tw-translate-x: 0;
448+ --tw-translate-y: 0;
449+ --tw-rotate: 0;
450+ --tw-skew-x: 0;
451+ --tw-skew-y: 0;
452+ --tw-scale-x: 1;
453+ --tw-scale-y: 1;
454+ --tw-pan-x: ;
455+ --tw-pan-y: ;
456+ --tw-pinch-zoom: ;
457+ --tw-scroll-snap-strictness: proximity;
458+ --tw-gradient-from-position: ;
459+ --tw-gradient-via-position: ;
460+ --tw-gradient-to-position: ;
461+ --tw-ordinal: ;
462+ --tw-slashed-zero: ;
463+ --tw-numeric-figure: ;
464+ --tw-numeric-spacing: ;
465+ --tw-numeric-fraction: ;
466+ --tw-ring-inset: ;
467+ --tw-ring-offset-width: 0px;
468+ --tw-ring-offset-color: #fff;
469+ --tw-ring-color: rgb(59 130 246 / 0.5);
470+ --tw-ring-offset-shadow: 0 0 #0000;
471+ --tw-ring-shadow: 0 0 #0000;
472+ --tw-shadow: 0 0 #0000;
473+ --tw-shadow-colored: 0 0 #0000;
474+ --tw-blur: ;
475+ --tw-brightness: ;
476+ --tw-contrast: ;
477+ --tw-grayscale: ;
478+ --tw-hue-rotate: ;
479+ --tw-invert: ;
480+ --tw-saturate: ;
481+ --tw-sepia: ;
482+ --tw-drop-shadow: ;
483+ --tw-backdrop-blur: ;
484+ --tw-backdrop-brightness: ;
485+ --tw-backdrop-contrast: ;
486+ --tw-backdrop-grayscale: ;
487+ --tw-backdrop-hue-rotate: ;
488+ --tw-backdrop-invert: ;
489+ --tw-backdrop-opacity: ;
490+ --tw-backdrop-saturate: ;
491+ --tw-backdrop-sepia: ;
492+}
493+
494+::backdrop {
495+ --tw-border-spacing-x: 0;
496+ --tw-border-spacing-y: 0;
497+ --tw-translate-x: 0;
498+ --tw-translate-y: 0;
499+ --tw-rotate: 0;
500+ --tw-skew-x: 0;
501+ --tw-skew-y: 0;
502+ --tw-scale-x: 1;
503+ --tw-scale-y: 1;
504+ --tw-pan-x: ;
505+ --tw-pan-y: ;
506+ --tw-pinch-zoom: ;
507+ --tw-scroll-snap-strictness: proximity;
508+ --tw-gradient-from-position: ;
509+ --tw-gradient-via-position: ;
510+ --tw-gradient-to-position: ;
511+ --tw-ordinal: ;
512+ --tw-slashed-zero: ;
513+ --tw-numeric-figure: ;
514+ --tw-numeric-spacing: ;
515+ --tw-numeric-fraction: ;
516+ --tw-ring-inset: ;
517+ --tw-ring-offset-width: 0px;
518+ --tw-ring-offset-color: #fff;
519+ --tw-ring-color: rgb(59 130 246 / 0.5);
520+ --tw-ring-offset-shadow: 0 0 #0000;
521+ --tw-ring-shadow: 0 0 #0000;
522+ --tw-shadow: 0 0 #0000;
523+ --tw-shadow-colored: 0 0 #0000;
524+ --tw-blur: ;
525+ --tw-brightness: ;
526+ --tw-contrast: ;
527+ --tw-grayscale: ;
528+ --tw-hue-rotate: ;
529+ --tw-invert: ;
530+ --tw-saturate: ;
531+ --tw-sepia: ;
532+ --tw-drop-shadow: ;
533+ --tw-backdrop-blur: ;
534+ --tw-backdrop-brightness: ;
535+ --tw-backdrop-contrast: ;
536+ --tw-backdrop-grayscale: ;
537+ --tw-backdrop-hue-rotate: ;
538+ --tw-backdrop-invert: ;
539+ --tw-backdrop-opacity: ;
540+ --tw-backdrop-saturate: ;
541+ --tw-backdrop-sepia: ;
542+}
543+
544+.mb-4 {
545+ margin-bottom: 1rem;
546+}
547+
548+.ml-4 {
549+ margin-left: 1rem;
550+}
551+
552+.flex {
553+ display: flex;
554+}
555+
556+.h-10 {
557+ height: 2.5rem;
558+}
559+
560+.h-24 {
561+ height: 6rem;
562+}
563+
564+.h-32 {
565+ height: 8rem;
566+}
567+
568+.h-44 {
569+ height: 11rem;
570+}
571+
572+.h-full {
573+ height: 100%;
574+}
575+
576+.w-1\/5 {
577+ width: 20%;
578+}
579+
580+.w-2\/6 {
581+ width: 33.333333%;
582+}
583+
584+.w-4\/6 {
585+ width: 66.666667%;
586+}
587+
588+.w-72 {
589+ width: 18rem;
590+}
591+
592+.w-full {
593+ width: 100%;
594+}
595+
596+.flex-1 {
597+ flex: 1 1 0%;
598+}
599+
600+.flex-grow {
601+ flex-grow: 1;
602+}
603+
604+.flex-col {
605+ flex-direction: column;
606+}
607+
608+.items-center {
609+ align-items: center;
610+}
611+
612+.justify-end {
613+ justify-content: flex-end;
614+}
615+
616+.justify-center {
617+ justify-content: center;
618+}
619+
620+.justify-between {
621+ justify-content: space-between;
622+}
623+
624+.space-x-4 > :not([hidden]) ~ :not([hidden]) {
625+ --tw-space-x-reverse: 0;
626+ margin-right: calc(1rem * var(--tw-space-x-reverse));
627+ margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
628+}
629+
630+.space-y-2 > :not([hidden]) ~ :not([hidden]) {
631+ --tw-space-y-reverse: 0;
632+ margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
633+ margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
634+}
635+
636+.space-y-4 > :not([hidden]) ~ :not([hidden]) {
637+ --tw-space-y-reverse: 0;
638+ margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
639+ margin-bottom: calc(1rem * var(--tw-space-y-reverse));
640+}
641+
642+.rounded-lg {
643+ border-radius: 0.5rem;
644+}
645+
646+.rounded-md {
647+ border-radius: 0.375rem;
648+}
649+
650+.rounded-sm {
651+ border-radius: 0.125rem;
652+}
653+
654+.bg-gray-300 {
655+ --tw-bg-opacity: 1;
656+ background-color: rgb(209 213 219 / var(--tw-bg-opacity));
657+}
658+
659+.bg-transparent {
660+ background-color: transparent;
661+}
662+
663+.bg-white {
664+ --tw-bg-opacity: 1;
665+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
666+}
667+
668+.bg-zinc-200 {
669+ --tw-bg-opacity: 1;
670+ background-color: rgb(228 228 231 / var(--tw-bg-opacity));
671+}
672+
673+.p-4 {
674+ padding: 1rem;
675+}
676+
677+.px-2 {
678+ padding-left: 0.5rem;
679+ padding-right: 0.5rem;
680+}
681+
682+.text-2xl {
683+ font-size: 1.5rem;
684+ line-height: 2rem;
685+}
686+
687+.text-5xl {
688+ font-size: 3rem;
689+ line-height: 1;
690+}
691+
692+.text-sm {
693+ font-size: 0.875rem;
694+ line-height: 1.25rem;
695+}
696+
697+.text-xs {
698+ font-size: 0.75rem;
699+ line-height: 1rem;
700+}
701+
702+.font-bold {
703+ font-weight: 700;
704+}
705+
706+.font-semibold {
707+ font-weight: 600;
708+}
709+
710+.leading-3 {
711+ line-height: .75rem;
712+}
713+
714+.tracking-tighter {
715+ letter-spacing: -0.05em;
716+}
717+
718+.text-gray-300 {
719+ --tw-text-opacity: 1;
720+ color: rgb(209 213 219 / var(--tw-text-opacity));
721+}
722+
723+.text-sky-950 {
724+ --tw-text-opacity: 1;
725+ color: rgb(8 47 73 / var(--tw-text-opacity));
726+}
727+
728+.shadow {
729+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
730+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
731+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
732+}
733+
734+.outline-none {
735+ outline: 2px solid transparent;
736+ outline-offset: 2px;
737+}
738+
739+/* Import IBM Plex Fonts */
740+
741+@font-face {
742+ font-family: "IBMPlexSans-Bold";
743+
744+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Bold.woff2") format("woff2");
745+
746+ font-weight: bold;
747+
748+ font-style: normal;
749+}
750+
751+@font-face {
752+ font-family: "IBMPlexSans-Regular";
753+
754+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2") format("woff2");
755+
756+ font-weight: normal;
757+
758+ font-style: normal;
759+}
760+
761+/* Import Jetbrains Mono Nerd Font */
762+
763+@font-face {
764+ font-family: "JetBrainsMono-Nerd-Font-Regular";
765+
766+ src: url("assets/fonts/JetBrainsMonoNerd/JetBrainsMonoNerdFontMono-Regular.woff2")
767+ format("woff2");
768+
769+ font-weight: normal;
770+
771+ font-style: normal;
772+}
773+
774+@font-face {
775+ font-family: "LilitaOne-Regular";
776+
777+ src: url("assets/fonts/LilitaOne/LilitaOne-Regular.woff2") format("woff2");
778+
779+ font-weight: normal;
780+
781+ font-style: normal;
782+}
783+
784+.fade-me-out.htmx-swapping {
785+ opacity: 0;
786+ transition: opacity 1s ease-out;
787+}
788+
789+/* View transition */
790+
791+@keyframes fade-in {
792+ from {
793+ opacity: 0;
794+ }
795+}
796+
797+@keyframes fade-out {
798+ to {
799+ opacity: 0;
800+ }
801+}
802+
803+@keyframes slide-from-right {
804+ from {
805+ transform: translateX(90px);
806+ }
807+}
808+
809+@keyframes slide-to-left {
810+ to {
811+ transform: translateX(-90px);
812+ }
813+}
814+
815+.slide-it {
816+ view-transition-name: slide-it;
817+}
818+
819+::view-transition-old(slide-it) {
820+ animation: 180ms cubic-bezier(0.4, 0, 1, 1) both fade-out,
821+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;
822+}
823+
824+::view-transition-new(slide-it) {
825+ animation: 420ms cubic-bezier(0, 0, 0.2, 1) 90ms both fade-in,
826+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;
827+}
828+
829+h1,
830+h2,
831+h3,
832+h4,
833+h5,
834+h6 {
835+ font-family: "IBMPlexSans-Bold", sans-serif;
836+ font-style: normal;
837+ color: #000000;
838+ margin: 0;
839+ padding: 0;
840+}
841+
842+.gordon-title {
843+ font-family: "LilitaOne-Regular", sans-serif;
844+ font-style: normal;
845+ color: #000000;
846+ margin: 0;
847+ padding: 0;
848+}
849+
850+.gordon-v-subtitle {
851+ font-family: "IBMPlexSans-Regular", sans-serif;
852+ font-style: normal;
853+ color: #000000;
854+ margin: 0;
855+ padding: 0;
856+}
857+
858+.circle-shadow {
859+ width: 100%;
860+ position: relative;
861+}
862+
863+.circle-shadow::after {
864+ position: absolute;
865+ width: 50%;
866+ height: 0.4rem;
867+ margin: auto;
868+ background: rgba(0, 0, 0, 0.1);
869+ border-radius: 50%;
870+ z-index: -1;
871+ bottom: 2%;
872+ content: "";
873+ box-shadow: 0 0 1px 0.3rem rgba(0, 0, 0, 0.1);
874+}
875+
876+.iconoir {
877+ margin-right: 8px;
878+}
879+
880+@media (min-width: 640px) {
881+ .sm\:h-24 {
882+ height: 6rem;
883+ }
884+}
885+
886+@media (min-width: 768px) {
887+ .md\:p-8 {
888+ padding: 2rem;
889+ }
890+
891+ .md\:pt-10 {
892+ padding-top: 2.5rem;
893+ }
894+}
895+
896+@media (min-width: 1024px) {
897+ .lg\:text-4xl {
898+ font-size: 2.25rem;
899+ line-height: 2.5rem;
900+ }
901+}
902+
903+@media (min-width: 1280px) {
904+ .xl\:h-48 {
905+ height: 12rem;
906+ }
907+
908+ .xl\:text-5xl {
909+ font-size: 3rem;
910+ line-height: 1;
911+ }
912+}
@@ -0,0 +1,912 @@
1+/**
2+ * Path: internal/ui/public/assets/css/custom.css
3+ *
4+ * @format
5+ */
6+
7+/* Embeded path : assets/css/cutsom.css */
8+
9+/*! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com
10+ */
11+
12+/*
13+1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
14+2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
15+*/
16+
17+*,
18+::before,
19+::after {
20+ box-sizing: border-box;
21+ /* 1 */
22+ border-width: 0;
23+ /* 2 */
24+ border-style: solid;
25+ /* 2 */
26+ border-color: #e5e7eb;
27+ /* 2 */
28+}
29+
30+::before,
31+::after {
32+ --tw-content: '';
33+}
34+
35+/*
36+1. Use a consistent sensible line-height in all browsers.
37+2. Prevent adjustments of font size after orientation changes in iOS.
38+3. Use a more readable tab size.
39+4. Use the user's configured `sans` font-family by default.
40+5. Use the user's configured `sans` font-feature-settings by default.
41+6. Use the user's configured `sans` font-variation-settings by default.
42+*/
43+
44+html {
45+ line-height: 1.5;
46+ /* 1 */
47+ -webkit-text-size-adjust: 100%;
48+ /* 2 */
49+ -moz-tab-size: 4;
50+ /* 3 */
51+ -o-tab-size: 4;
52+ tab-size: 4;
53+ /* 3 */
54+ font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
55+ /* 4 */
56+ font-feature-settings: normal;
57+ /* 5 */
58+ font-variation-settings: normal;
59+ /* 6 */
60+}
61+
62+/*
63+1. Remove the margin in all browsers.
64+2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
65+*/
66+
67+body {
68+ margin: 0;
69+ /* 1 */
70+ line-height: inherit;
71+ /* 2 */
72+}
73+
74+/*
75+1. Add the correct height in Firefox.
76+2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
77+3. Ensure horizontal rules are visible by default.
78+*/
79+
80+hr {
81+ height: 0;
82+ /* 1 */
83+ color: inherit;
84+ /* 2 */
85+ border-top-width: 1px;
86+ /* 3 */
87+}
88+
89+/*
90+Add the correct text decoration in Chrome, Edge, and Safari.
91+*/
92+
93+abbr:where([title]) {
94+ -webkit-text-decoration: underline dotted;
95+ text-decoration: underline dotted;
96+}
97+
98+/*
99+Remove the default font size and weight for headings.
100+*/
101+
102+h1,
103+h2,
104+h3,
105+h4,
106+h5,
107+h6 {
108+ font-size: inherit;
109+ font-weight: inherit;
110+}
111+
112+/*
113+Reset links to optimize for opt-in styling instead of opt-out.
114+*/
115+
116+a {
117+ color: inherit;
118+ text-decoration: inherit;
119+}
120+
121+/*
122+Add the correct font weight in Edge and Safari.
123+*/
124+
125+b,
126+strong {
127+ font-weight: bolder;
128+}
129+
130+/*
131+1. Use the user's configured `mono` font family by default.
132+2. Correct the odd `em` font sizing in all browsers.
133+*/
134+
135+code,
136+kbd,
137+samp,
138+pre {
139+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
140+ /* 1 */
141+ font-size: 1em;
142+ /* 2 */
143+}
144+
145+/*
146+Add the correct font size in all browsers.
147+*/
148+
149+small {
150+ font-size: 80%;
151+}
152+
153+/*
154+Prevent `sub` and `sup` elements from affecting the line height in all browsers.
155+*/
156+
157+sub,
158+sup {
159+ font-size: 75%;
160+ line-height: 0;
161+ position: relative;
162+ vertical-align: baseline;
163+}
164+
165+sub {
166+ bottom: -0.25em;
167+}
168+
169+sup {
170+ top: -0.5em;
171+}
172+
173+/*
174+1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
175+2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
176+3. Remove gaps between table borders by default.
177+*/
178+
179+table {
180+ text-indent: 0;
181+ /* 1 */
182+ border-color: inherit;
183+ /* 2 */
184+ border-collapse: collapse;
185+ /* 3 */
186+}
187+
188+/*
189+1. Change the font styles in all browsers.
190+2. Remove the margin in Firefox and Safari.
191+3. Remove default padding in all browsers.
192+*/
193+
194+button,
195+input,
196+optgroup,
197+select,
198+textarea {
199+ font-family: inherit;
200+ /* 1 */
201+ font-feature-settings: inherit;
202+ /* 1 */
203+ font-variation-settings: inherit;
204+ /* 1 */
205+ font-size: 100%;
206+ /* 1 */
207+ font-weight: inherit;
208+ /* 1 */
209+ line-height: inherit;
210+ /* 1 */
211+ color: inherit;
212+ /* 1 */
213+ margin: 0;
214+ /* 2 */
215+ padding: 0;
216+ /* 3 */
217+}
218+
219+/*
220+Remove the inheritance of text transform in Edge and Firefox.
221+*/
222+
223+button,
224+select {
225+ text-transform: none;
226+}
227+
228+/*
229+1. Correct the inability to style clickable types in iOS and Safari.
230+2. Remove default button styles.
231+*/
232+
233+button,
234+[type='button'],
235+[type='reset'],
236+[type='submit'] {
237+ -webkit-appearance: button;
238+ /* 1 */
239+ background-color: transparent;
240+ /* 2 */
241+ background-image: none;
242+ /* 2 */
243+}
244+
245+/*
246+Use the modern Firefox focus style for all focusable elements.
247+*/
248+
249+:-moz-focusring {
250+ outline: auto;
251+}
252+
253+/*
254+Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
255+*/
256+
257+:-moz-ui-invalid {
258+ box-shadow: none;
259+}
260+
261+/*
262+Add the correct vertical alignment in Chrome and Firefox.
263+*/
264+
265+progress {
266+ vertical-align: baseline;
267+}
268+
269+/*
270+Correct the cursor style of increment and decrement buttons in Safari.
271+*/
272+
273+::-webkit-inner-spin-button,
274+::-webkit-outer-spin-button {
275+ height: auto;
276+}
277+
278+/*
279+1. Correct the odd appearance in Chrome and Safari.
280+2. Correct the outline style in Safari.
281+*/
282+
283+[type='search'] {
284+ -webkit-appearance: textfield;
285+ /* 1 */
286+ outline-offset: -2px;
287+ /* 2 */
288+}
289+
290+/*
291+Remove the inner padding in Chrome and Safari on macOS.
292+*/
293+
294+::-webkit-search-decoration {
295+ -webkit-appearance: none;
296+}
297+
298+/*
299+1. Correct the inability to style clickable types in iOS and Safari.
300+2. Change font properties to `inherit` in Safari.
301+*/
302+
303+::-webkit-file-upload-button {
304+ -webkit-appearance: button;
305+ /* 1 */
306+ font: inherit;
307+ /* 2 */
308+}
309+
310+/*
311+Add the correct display in Chrome and Safari.
312+*/
313+
314+summary {
315+ display: list-item;
316+}
317+
318+/*
319+Removes the default spacing and border for appropriate elements.
320+*/
321+
322+blockquote,
323+dl,
324+dd,
325+h1,
326+h2,
327+h3,
328+h4,
329+h5,
330+h6,
331+hr,
332+figure,
333+p,
334+pre {
335+ margin: 0;
336+}
337+
338+fieldset {
339+ margin: 0;
340+ padding: 0;
341+}
342+
343+legend {
344+ padding: 0;
345+}
346+
347+ol,
348+ul,
349+menu {
350+ list-style: none;
351+ margin: 0;
352+ padding: 0;
353+}
354+
355+/*
356+Reset default styling for dialogs.
357+*/
358+
359+dialog {
360+ padding: 0;
361+}
362+
363+/*
364+Prevent resizing textareas horizontally by default.
365+*/
366+
367+textarea {
368+ resize: vertical;
369+}
370+
371+/*
372+1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
373+2. Set the default placeholder color to the user's configured gray 400 color.
374+*/
375+
376+input::-moz-placeholder, textarea::-moz-placeholder {
377+ opacity: 1;
378+ /* 1 */
379+ color: #9ca3af;
380+ /* 2 */
381+}
382+
383+input::placeholder,
384+textarea::placeholder {
385+ opacity: 1;
386+ /* 1 */
387+ color: #9ca3af;
388+ /* 2 */
389+}
390+
391+/*
392+Set the default cursor for buttons.
393+*/
394+
395+button,
396+[role="button"] {
397+ cursor: pointer;
398+}
399+
400+/*
401+Make sure disabled buttons don't get the pointer cursor.
402+*/
403+
404+:disabled {
405+ cursor: default;
406+}
407+
408+/*
409+1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
410+2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
411+ This can trigger a poorly considered lint error in some tools but is included by design.
412+*/
413+
414+img,
415+svg,
416+video,
417+canvas,
418+audio,
419+iframe,
420+embed,
421+object {
422+ display: block;
423+ /* 1 */
424+ vertical-align: middle;
425+ /* 2 */
426+}
427+
428+/*
429+Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
430+*/
431+
432+img,
433+video {
434+ max-width: 100%;
435+ height: auto;
436+}
437+
438+/* Make elements with the HTML hidden attribute stay hidden by default */
439+
440+[hidden] {
441+ display: none;
442+}
443+
444+*, ::before, ::after {
445+ --tw-border-spacing-x: 0;
446+ --tw-border-spacing-y: 0;
447+ --tw-translate-x: 0;
448+ --tw-translate-y: 0;
449+ --tw-rotate: 0;
450+ --tw-skew-x: 0;
451+ --tw-skew-y: 0;
452+ --tw-scale-x: 1;
453+ --tw-scale-y: 1;
454+ --tw-pan-x: ;
455+ --tw-pan-y: ;
456+ --tw-pinch-zoom: ;
457+ --tw-scroll-snap-strictness: proximity;
458+ --tw-gradient-from-position: ;
459+ --tw-gradient-via-position: ;
460+ --tw-gradient-to-position: ;
461+ --tw-ordinal: ;
462+ --tw-slashed-zero: ;
463+ --tw-numeric-figure: ;
464+ --tw-numeric-spacing: ;
465+ --tw-numeric-fraction: ;
466+ --tw-ring-inset: ;
467+ --tw-ring-offset-width: 0px;
468+ --tw-ring-offset-color: #fff;
469+ --tw-ring-color: rgb(59 130 246 / 0.5);
470+ --tw-ring-offset-shadow: 0 0 #0000;
471+ --tw-ring-shadow: 0 0 #0000;
472+ --tw-shadow: 0 0 #0000;
473+ --tw-shadow-colored: 0 0 #0000;
474+ --tw-blur: ;
475+ --tw-brightness: ;
476+ --tw-contrast: ;
477+ --tw-grayscale: ;
478+ --tw-hue-rotate: ;
479+ --tw-invert: ;
480+ --tw-saturate: ;
481+ --tw-sepia: ;
482+ --tw-drop-shadow: ;
483+ --tw-backdrop-blur: ;
484+ --tw-backdrop-brightness: ;
485+ --tw-backdrop-contrast: ;
486+ --tw-backdrop-grayscale: ;
487+ --tw-backdrop-hue-rotate: ;
488+ --tw-backdrop-invert: ;
489+ --tw-backdrop-opacity: ;
490+ --tw-backdrop-saturate: ;
491+ --tw-backdrop-sepia: ;
492+}
493+
494+::backdrop {
495+ --tw-border-spacing-x: 0;
496+ --tw-border-spacing-y: 0;
497+ --tw-translate-x: 0;
498+ --tw-translate-y: 0;
499+ --tw-rotate: 0;
500+ --tw-skew-x: 0;
501+ --tw-skew-y: 0;
502+ --tw-scale-x: 1;
503+ --tw-scale-y: 1;
504+ --tw-pan-x: ;
505+ --tw-pan-y: ;
506+ --tw-pinch-zoom: ;
507+ --tw-scroll-snap-strictness: proximity;
508+ --tw-gradient-from-position: ;
509+ --tw-gradient-via-position: ;
510+ --tw-gradient-to-position: ;
511+ --tw-ordinal: ;
512+ --tw-slashed-zero: ;
513+ --tw-numeric-figure: ;
514+ --tw-numeric-spacing: ;
515+ --tw-numeric-fraction: ;
516+ --tw-ring-inset: ;
517+ --tw-ring-offset-width: 0px;
518+ --tw-ring-offset-color: #fff;
519+ --tw-ring-color: rgb(59 130 246 / 0.5);
520+ --tw-ring-offset-shadow: 0 0 #0000;
521+ --tw-ring-shadow: 0 0 #0000;
522+ --tw-shadow: 0 0 #0000;
523+ --tw-shadow-colored: 0 0 #0000;
524+ --tw-blur: ;
525+ --tw-brightness: ;
526+ --tw-contrast: ;
527+ --tw-grayscale: ;
528+ --tw-hue-rotate: ;
529+ --tw-invert: ;
530+ --tw-saturate: ;
531+ --tw-sepia: ;
532+ --tw-drop-shadow: ;
533+ --tw-backdrop-blur: ;
534+ --tw-backdrop-brightness: ;
535+ --tw-backdrop-contrast: ;
536+ --tw-backdrop-grayscale: ;
537+ --tw-backdrop-hue-rotate: ;
538+ --tw-backdrop-invert: ;
539+ --tw-backdrop-opacity: ;
540+ --tw-backdrop-saturate: ;
541+ --tw-backdrop-sepia: ;
542+}
543+
544+.mb-4 {
545+ margin-bottom: 1rem;
546+}
547+
548+.ml-4 {
549+ margin-left: 1rem;
550+}
551+
552+.flex {
553+ display: flex;
554+}
555+
556+.h-10 {
557+ height: 2.5rem;
558+}
559+
560+.h-24 {
561+ height: 6rem;
562+}
563+
564+.h-32 {
565+ height: 8rem;
566+}
567+
568+.h-44 {
569+ height: 11rem;
570+}
571+
572+.h-full {
573+ height: 100%;
574+}
575+
576+.w-1\/5 {
577+ width: 20%;
578+}
579+
580+.w-2\/6 {
581+ width: 33.333333%;
582+}
583+
584+.w-4\/6 {
585+ width: 66.666667%;
586+}
587+
588+.w-72 {
589+ width: 18rem;
590+}
591+
592+.w-full {
593+ width: 100%;
594+}
595+
596+.flex-1 {
597+ flex: 1 1 0%;
598+}
599+
600+.flex-grow {
601+ flex-grow: 1;
602+}
603+
604+.flex-col {
605+ flex-direction: column;
606+}
607+
608+.items-center {
609+ align-items: center;
610+}
611+
612+.justify-end {
613+ justify-content: flex-end;
614+}
615+
616+.justify-center {
617+ justify-content: center;
618+}
619+
620+.justify-between {
621+ justify-content: space-between;
622+}
623+
624+.space-x-4 > :not([hidden]) ~ :not([hidden]) {
625+ --tw-space-x-reverse: 0;
626+ margin-right: calc(1rem * var(--tw-space-x-reverse));
627+ margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
628+}
629+
630+.space-y-2 > :not([hidden]) ~ :not([hidden]) {
631+ --tw-space-y-reverse: 0;
632+ margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
633+ margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
634+}
635+
636+.space-y-4 > :not([hidden]) ~ :not([hidden]) {
637+ --tw-space-y-reverse: 0;
638+ margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
639+ margin-bottom: calc(1rem * var(--tw-space-y-reverse));
640+}
641+
642+.rounded-lg {
643+ border-radius: 0.5rem;
644+}
645+
646+.rounded-md {
647+ border-radius: 0.375rem;
648+}
649+
650+.rounded-sm {
651+ border-radius: 0.125rem;
652+}
653+
654+.bg-gray-300 {
655+ --tw-bg-opacity: 1;
656+ background-color: rgb(209 213 219 / var(--tw-bg-opacity));
657+}
658+
659+.bg-transparent {
660+ background-color: transparent;
661+}
662+
663+.bg-white {
664+ --tw-bg-opacity: 1;
665+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
666+}
667+
668+.bg-zinc-200 {
669+ --tw-bg-opacity: 1;
670+ background-color: rgb(228 228 231 / var(--tw-bg-opacity));
671+}
672+
673+.p-4 {
674+ padding: 1rem;
675+}
676+
677+.px-2 {
678+ padding-left: 0.5rem;
679+ padding-right: 0.5rem;
680+}
681+
682+.text-2xl {
683+ font-size: 1.5rem;
684+ line-height: 2rem;
685+}
686+
687+.text-5xl {
688+ font-size: 3rem;
689+ line-height: 1;
690+}
691+
692+.text-sm {
693+ font-size: 0.875rem;
694+ line-height: 1.25rem;
695+}
696+
697+.text-xs {
698+ font-size: 0.75rem;
699+ line-height: 1rem;
700+}
701+
702+.font-bold {
703+ font-weight: 700;
704+}
705+
706+.font-semibold {
707+ font-weight: 600;
708+}
709+
710+.leading-3 {
711+ line-height: .75rem;
712+}
713+
714+.tracking-tighter {
715+ letter-spacing: -0.05em;
716+}
717+
718+.text-gray-300 {
719+ --tw-text-opacity: 1;
720+ color: rgb(209 213 219 / var(--tw-text-opacity));
721+}
722+
723+.text-sky-950 {
724+ --tw-text-opacity: 1;
725+ color: rgb(8 47 73 / var(--tw-text-opacity));
726+}
727+
728+.shadow {
729+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
730+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
731+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
732+}
733+
734+.outline-none {
735+ outline: 2px solid transparent;
736+ outline-offset: 2px;
737+}
738+
739+/* Import IBM Plex Fonts */
740+
741+@font-face {
742+ font-family: "IBMPlexSans-Bold";
743+
744+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Bold.woff2") format("woff2");
745+
746+ font-weight: bold;
747+
748+ font-style: normal;
749+}
750+
751+@font-face {
752+ font-family: "IBMPlexSans-Regular";
753+
754+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2") format("woff2");
755+
756+ font-weight: normal;
757+
758+ font-style: normal;
759+}
760+
761+/* Import Jetbrains Mono Nerd Font */
762+
763+@font-face {
764+ font-family: "JetBrainsMono-Nerd-Font-Regular";
765+
766+ src: url("assets/fonts/JetBrainsMonoNerd/JetBrainsMonoNerdFontMono-Regular.woff2")
767+ format("woff2");
768+
769+ font-weight: normal;
770+
771+ font-style: normal;
772+}
773+
774+@font-face {
775+ font-family: "LilitaOne-Regular";
776+
777+ src: url("assets/fonts/LilitaOne/LilitaOne-Regular.woff2") format("woff2");
778+
779+ font-weight: normal;
780+
781+ font-style: normal;
782+}
783+
784+.fade-me-out.htmx-swapping {
785+ opacity: 0;
786+ transition: opacity 1s ease-out;
787+}
788+
789+/* View transition */
790+
791+@keyframes fade-in {
792+ from {
793+ opacity: 0;
794+ }
795+}
796+
797+@keyframes fade-out {
798+ to {
799+ opacity: 0;
800+ }
801+}
802+
803+@keyframes slide-from-right {
804+ from {
805+ transform: translateX(90px);
806+ }
807+}
808+
809+@keyframes slide-to-left {
810+ to {
811+ transform: translateX(-90px);
812+ }
813+}
814+
815+.slide-it {
816+ view-transition-name: slide-it;
817+}
818+
819+::view-transition-old(slide-it) {
820+ animation: 180ms cubic-bezier(0.4, 0, 1, 1) both fade-out,
821+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;
822+}
823+
824+::view-transition-new(slide-it) {
825+ animation: 420ms cubic-bezier(0, 0, 0.2, 1) 90ms both fade-in,
826+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;
827+}
828+
829+h1,
830+h2,
831+h3,
832+h4,
833+h5,
834+h6 {
835+ font-family: "IBMPlexSans-Bold", sans-serif;
836+ font-style: normal;
837+ color: #000000;
838+ margin: 0;
839+ padding: 0;
840+}
841+
842+.gordon-title {
843+ font-family: "LilitaOne-Regular", sans-serif;
844+ font-style: normal;
845+ color: #000000;
846+ margin: 0;
847+ padding: 0;
848+}
849+
850+.gordon-v-subtitle {
851+ font-family: "IBMPlexSans-Regular", sans-serif;
852+ font-style: normal;
853+ color: #000000;
854+ margin: 0;
855+ padding: 0;
856+}
857+
858+.circle-shadow {
859+ width: 100%;
860+ position: relative;
861+}
862+
863+.circle-shadow::after {
864+ position: absolute;
865+ width: 50%;
866+ height: 0.4rem;
867+ margin: auto;
868+ background: rgba(0, 0, 0, 0.1);
869+ border-radius: 50%;
870+ z-index: -1;
871+ bottom: 2%;
872+ content: "";
873+ box-shadow: 0 0 1px 0.3rem rgba(0, 0, 0, 0.1);
874+}
875+
876+.iconoir {
877+ margin-right: 8px;
878+}
879+
880+@media (min-width: 640px) {
881+ .sm\:h-24 {
882+ height: 6rem;
883+ }
884+}
885+
886+@media (min-width: 768px) {
887+ .md\:p-8 {
888+ padding: 2rem;
889+ }
890+
891+ .md\:pt-10 {
892+ padding-top: 2.5rem;
893+ }
894+}
895+
896+@media (min-width: 1024px) {
897+ .lg\:text-4xl {
898+ font-size: 2.25rem;
899+ line-height: 2.5rem;
900+ }
901+}
902+
903+@media (min-width: 1280px) {
904+ .xl\:h-48 {
905+ height: 12rem;
906+ }
907+
908+ .xl\:text-5xl {
909+ font-size: 3rem;
910+ line-height: 1;
911+ }
912+}
R internal/ui/public/assets/fonts/JetBrainsMonoNerdFont/JetBrainsMonoNerdFont-Bold.woff2 → internal/ui/public/assets/fonts/JetBrainsMonoNerd/JetBrainsMonoNerdFont-Bold.woff2 +0 -0 binary file: no text diff · renamed, 100% similar

binary file: no text diff · renamed, 100% similar

R internal/ui/public/assets/fonts/JetBrainsMonoNerdFont/JetBrainsMonoNerdFont-Regular.woff2 → internal/ui/public/assets/fonts/JetBrainsMonoNerd/JetBrainsMonoNerdFont-Regular.woff2 +0 -0 binary file: no text diff · renamed, 100% similar

binary file: no text diff · renamed, 100% similar

A internal/ui/public/assets/fonts/JetBrainsMonoNerd/JetBrainsMonoNerdFontMono-Regular.ttf +0 -0 binary file: no text diff

binary file: no text diff

A internal/ui/public/assets/fonts/LilitaOne/LilitaOne-Regular.woff2 +0 -0 binary file: no text diff

binary file: no text diff

M internal/ui/public/index.gohtml +88 -50
@@ -8,71 +8,109 @@
88 <title>{{ .header.meta.title }}</title>
99 <meta name="description" content="{{ .Header.Meta.Description }}" />
1010 <meta name="keywords" content="{{ .Header.Meta.Keywords }}" />
11- <!-- Custom CSS from assets/css -->
12- <link rel="stylesheet" href="assets/css/custom.css" />
11+ <!-- Custom CSS + Tailwind -->
12+ <link rel="stylesheet" href="assets/css/tailwind.css" />
13+ <!-- Iconoir -->
14+ <link rel="stylesheet" href="libs/iconoir.css" />
1315 <!-- Alpine -->
1416 <script src="libs/alpine.min.js"></script>
1517 <!-- HTMX min js -->
1618 <script src="libs/htmx.min.js"></script>
17- <!-- UnoCSS (need to embed locally) -->
18- <script src="https://cdn.jsdelivr.net/npm/@unocss/runtime"></script>
19- <!-- color -->
2019 <!-- Custom JS from assets/js -->
2120 <script src="assets/js/custom.js"></script>
2221 </head>
23-<body class="bg-zinc-200 md:p-8 flex">
24-
25-<!-- Left Menu (Navigation) -->
26-<div class="w-1/5 flex flex-col space-evenly">
22+ <body class="bg-zinc-200 md:p-8 flex">
23+ <!-- Left Menu -->
24+ <div class="w-1/5 flex flex-col space-evenly">
25+ <!-- Logo -->
26+ <div id="logo-mascot-leftnav" class="flex justify-center p-4">
27+ <div class="circle-shadow flex justify-center w-100">
28+ <img
29+ src="assets/imgs/gordon-mascot-hq-trsp.png"
30+ alt="logo"
31+ class="sm:h-24 h-32 xl:h-48"
32+ />
33+ </div>
34+ </div>
35+ <!-- Site Name + Version -->
36+ <div class="p-4 flex flex-col bg-white rounded-lg shadow space-y-4">
37+ <div class="w-full flex justify-center">
38+ <h1
39+ class="gordon-title text-2xl lg:text-4xl xl:text-5xl text-sky-950 font-bold tracking-tighter"
40+ >
41+ Gordon
42+ </h1>
43+ <span class="gordon-v-subtitle text-gray-300 text-xs">v0.0.1</span>
44+ </div>
45+ <!--(Navigation) -->
46+ <div id="menu-leftnav" class="w-full">
47+ <ul class="flex flex-col space-y-2 leading-3 font-semibold text-sm">
48+ <li>
49+ <i class="iconoir-dashboard-speed"></i>
50+ <a href="index.html">Dashboard</a>
51+ </li>
52+ <li>
53+ <i class="iconoir-server"></i>
54+ <a href="#manager">Manager</a>
55+ </li>
56+ <li>
57+ <i class="iconoir-community"></i>
58+ <a href="#users">Users</a>
59+ </li>
60+ <li>
61+ <i class="iconoir-database-settings"></i>
62+ <a href="#gordon-settings">Settings</a>
63+ </li>
64+ </ul>
65+ </div>
2766
28-<!-- Logo -->
29-<div id="logo-mascot-leftnav" class="flex justify-center h-30 mb-4">
30- <div class="circle-shadow flex justify-center sd:hidden">
31- <img src="assets/imgs/gordon-mascot-hq-trsp.png" alt="logo" class="">
67+ <div class="w-full h-24 bg-gray-300 rounded-sm"></div>
68+ <!-- Mock menu item -->
69+ </div>
3270 </div>
33-</div>
34- <div class="p-4 flex flex-col bg-white rounded-3 shadow space-y-4">
35- <div class="w-full h-24 bg-gray-300 rounded-2 "></div> <!-- Mock menu item -->
36- <div class="w-full h-24 bg-gray-300 rounded-2 "></div> <!-- Mock menu item -->
37- <div class="w-full h-24 bg-gray-300 rounded-2 "></div> <!-- Mock menu item -->
38- </div>
39-</div>
4071
41-<!-- Main Content -->
42-<div class="flex-1 flex flex-col md:pt-10 space-y-4 ml-4">
43- <!-- Search Nav within the main content -->
44- <div class="bg-white p-4 rounded-3 shadow mb-4 flex justify-between">
45- <div class="w-24 h-8 bg-gray-300 rounded-2 "></div> <!-- Mock search or other element -->
46- </div>
47-
48- <!-- Cards section -->
49- <div class="flex space-x-4 flex-grow">
72+ <!-- Main Content -->
73+ <div class="flex-1 flex flex-col md:pt-10 space-y-4 ml-4">
74+ <!-- Search Nav within the main content -->
75+ <div class="mb-4 flex justify-end">
76+ <div class="w-72 h-10 bg-gray-300 rounded-lg">
77+ <!-- Search input with iconir search -->
78+ <div class="flex justify-between items-center h-full px-2">
79+ <input
80+ type="text"
81+ class="w-full h-full bg-transparent outline-none"
82+ placeholder="Search"
83+ />
84+ <i class="iconoir-search"></i>
85+ </div>
86+ </div>
87+ <!-- Mock search or other element -->
88+ </div>
89+
90+ <!-- Cards section -->
91+ <div class="flex space-x-4 flex-grow">
5092 <!-- Main Card on the Left -->
51- <div class="w-4/6 bg-white p-4 rounded-3 shadow mb-4">
52- <div class="w-full rounded-2 bg-gray-300"></div> <!-- Mock main card -->
93+ <div class="w-4/6 bg-white p-4 rounded-md shadow mb-4">
94+ <div class="w-full rounded-sm bg-gray-300"></div>
95+ <!-- Mock main card -->
5396 </div>
5497
5598 <!-- Two Cards on the Right -->
5699 <div class="w-2/6 flex flex-col flex-justify-start">
57- <div class="bg-white p-4 rounded-3 shadow mb-4">
58- <div class="w-full h-44 rounded-2 bg-gray-300"></div> <!-- Mock card -->
59- </div>
60- <div class="bg-white p-4 rounded-3 shadow mb-4">
61- <div class="w-full h-44 rounded-2 bg-gray-300"></div> <!-- Mock card -->
62- </div>
63- <div class="bg-white p-4 rounded-3 shadow mb-4">
64- <div class="w-full h-44 rounded-2 bg-gray-300"></div> <!-- Mock card -->
65- </div>
100+ <div class="bg-white p-4 rounded-md shadow mb-4">
101+ <div class="w-full h-44 rounded-sm bg-gray-300"></div>
102+ <!-- Mock card -->
103+ </div>
104+ <div class="bg-white p-4 rounded-md shadow mb-4">
105+ <div class="w-full h-44 rounded-sm bg-gray-300"></div>
106+ <!-- Mock card -->
107+ </div>
108+ <div class="bg-white p-4 rounded-md shadow mb-4">
109+ <div class="w-full h-44 rounded-sm bg-gray-300"></div>
110+ <!-- Mock card -->
111+ </div>
66112 </div>
113+ </div>
67114 </div>
68-</div>
69-
70-</body>
71-</html>
72-
73-
74-
75-
76-</html>
77-
115+ </body>
78116 </html>
@@ -8,71 +8,109 @@
8 <title>{{ .header.meta.title }}</title>8 <title>{{ .header.meta.title }}</title>
9 <meta name="description" content="{{ .Header.Meta.Description }}" />9 <meta name="description" content="{{ .Header.Meta.Description }}" />
10 <meta name="keywords" content="{{ .Header.Meta.Keywords }}" />10 <meta name="keywords" content="{{ .Header.Meta.Keywords }}" />
11- <!-- Custom CSS from assets/css -->11+ <!-- Custom CSS + Tailwind -->
12- <link rel="stylesheet" href="assets/css/custom.css" />12+ <link rel="stylesheet" href="assets/css/tailwind.css" />
13+ <!-- Iconoir -->
14+ <link rel="stylesheet" href="libs/iconoir.css" />
13 <!-- Alpine -->15 <!-- Alpine -->
14 <script src="libs/alpine.min.js"></script>16 <script src="libs/alpine.min.js"></script>
15 <!-- HTMX min js -->17 <!-- HTMX min js -->
16 <script src="libs/htmx.min.js"></script>18 <script src="libs/htmx.min.js"></script>
17- <!-- UnoCSS (need to embed locally) -->
18- <script src="https://cdn.jsdelivr.net/npm/@unocss/runtime"></script>
19- <!-- color -->
20 <!-- Custom JS from assets/js -->19 <!-- Custom JS from assets/js -->
21 <script src="assets/js/custom.js"></script>20 <script src="assets/js/custom.js"></script>
22 </head>21 </head>
23-<body class="bg-zinc-200 md:p-8 flex">22+ <body class="bg-zinc-200 md:p-8 flex">
24-23+ <!-- Left Menu -->
25-<!-- Left Menu (Navigation) -->24+ <div class="w-1/5 flex flex-col space-evenly">
26-<div class="w-1/5 flex flex-col space-evenly">25+ <!-- Logo -->
26+ <div id="logo-mascot-leftnav" class="flex justify-center p-4">
27+ <div class="circle-shadow flex justify-center w-100">
28+ <img
29+ src="assets/imgs/gordon-mascot-hq-trsp.png"
30+ alt="logo"
31+ class="sm:h-24 h-32 xl:h-48"
32+ />
33+ </div>
34+ </div>
35+ <!-- Site Name + Version -->
36+ <div class="p-4 flex flex-col bg-white rounded-lg shadow space-y-4">
37+ <div class="w-full flex justify-center">
38+ <h1
39+ class="gordon-title text-2xl lg:text-4xl xl:text-5xl text-sky-950 font-bold tracking-tighter"
40+ >
41+ Gordon
42+ </h1>
43+ <span class="gordon-v-subtitle text-gray-300 text-xs">v0.0.1</span>
44+ </div>
45+ <!--(Navigation) -->
46+ <div id="menu-leftnav" class="w-full">
47+ <ul class="flex flex-col space-y-2 leading-3 font-semibold text-sm">
48+ <li>
49+ <i class="iconoir-dashboard-speed"></i>
50+ <a href="index.html">Dashboard</a>
51+ </li>
52+ <li>
53+ <i class="iconoir-server"></i>
54+ <a href="#manager">Manager</a>
55+ </li>
56+ <li>
57+ <i class="iconoir-community"></i>
58+ <a href="#users">Users</a>
59+ </li>
60+ <li>
61+ <i class="iconoir-database-settings"></i>
62+ <a href="#gordon-settings">Settings</a>
63+ </li>
64+ </ul>
65+ </div>
27 66
28-<!-- Logo -->67+ <div class="w-full h-24 bg-gray-300 rounded-sm"></div>
29-<div id="logo-mascot-leftnav" class="flex justify-center h-30 mb-4">68+ <!-- Mock menu item -->
30- <div class="circle-shadow flex justify-center sd:hidden">69+ </div>
31- <img src="assets/imgs/gordon-mascot-hq-trsp.png" alt="logo" class="">
32 </div>70 </div>
33-</div>
34- <div class="p-4 flex flex-col bg-white rounded-3 shadow space-y-4">
35- <div class="w-full h-24 bg-gray-300 rounded-2 "></div> <!-- Mock menu item -->
36- <div class="w-full h-24 bg-gray-300 rounded-2 "></div> <!-- Mock menu item -->
37- <div class="w-full h-24 bg-gray-300 rounded-2 "></div> <!-- Mock menu item -->
38- </div>
39-</div>
40 71
41-<!-- Main Content -->72+ <!-- Main Content -->
42-<div class="flex-1 flex flex-col md:pt-10 space-y-4 ml-4">73+ <div class="flex-1 flex flex-col md:pt-10 space-y-4 ml-4">
43- <!-- Search Nav within the main content -->74+ <!-- Search Nav within the main content -->
44- <div class="bg-white p-4 rounded-3 shadow mb-4 flex justify-between">75+ <div class="mb-4 flex justify-end">
45- <div class="w-24 h-8 bg-gray-300 rounded-2 "></div> <!-- Mock search or other element -->76+ <div class="w-72 h-10 bg-gray-300 rounded-lg">
46- </div>77+ <!-- Search input with iconir search -->
47- 78+ <div class="flex justify-between items-center h-full px-2">
48- <!-- Cards section -->79+ <input
49- <div class="flex space-x-4 flex-grow">80+ type="text"
81+ class="w-full h-full bg-transparent outline-none"
82+ placeholder="Search"
83+ />
84+ <i class="iconoir-search"></i>
85+ </div>
86+ </div>
87+ <!-- Mock search or other element -->
88+ </div>
89+
90+ <!-- Cards section -->
91+ <div class="flex space-x-4 flex-grow">
50 <!-- Main Card on the Left -->92 <!-- Main Card on the Left -->
51- <div class="w-4/6 bg-white p-4 rounded-3 shadow mb-4">93+ <div class="w-4/6 bg-white p-4 rounded-md shadow mb-4">
52- <div class="w-full rounded-2 bg-gray-300"></div> <!-- Mock main card -->94+ <div class="w-full rounded-sm bg-gray-300"></div>
95+ <!-- Mock main card -->
53 </div>96 </div>
54 97
55 <!-- Two Cards on the Right -->98 <!-- Two Cards on the Right -->
56 <div class="w-2/6 flex flex-col flex-justify-start">99 <div class="w-2/6 flex flex-col flex-justify-start">
57- <div class="bg-white p-4 rounded-3 shadow mb-4">100+ <div class="bg-white p-4 rounded-md shadow mb-4">
58- <div class="w-full h-44 rounded-2 bg-gray-300"></div> <!-- Mock card -->101+ <div class="w-full h-44 rounded-sm bg-gray-300"></div>
59- </div>102+ <!-- Mock card -->
60- <div class="bg-white p-4 rounded-3 shadow mb-4">103+ </div>
61- <div class="w-full h-44 rounded-2 bg-gray-300"></div> <!-- Mock card -->104+ <div class="bg-white p-4 rounded-md shadow mb-4">
62- </div>105+ <div class="w-full h-44 rounded-sm bg-gray-300"></div>
63- <div class="bg-white p-4 rounded-3 shadow mb-4">106+ <!-- Mock card -->
64- <div class="w-full h-44 rounded-2 bg-gray-300"></div> <!-- Mock card -->107+ </div>
65- </div>108+ <div class="bg-white p-4 rounded-md shadow mb-4">
109+ <div class="w-full h-44 rounded-sm bg-gray-300"></div>
110+ <!-- Mock card -->
111+ </div>
66 </div>112 </div>
113+ </div>
67 </div>114 </div>
68-</div>115+ </body>
69-
70-</body>
71-</html>
72-
73-
74-
75-
76-</html>
77-
78 </html>116 </html>
A internal/ui/public/libs/iconoir.css +22 -0 too large to show in the browser

too large to show in the browser view raw

D internal/ui/public/libs/uno.css +0 -2
@@ -1,2 +0,0 @@
1-/* layer: preflights */
2-*,::before,::after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,0.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: ;}::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,0.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: ;}⏎̸
@@ -1,2 +0,0 @@
1-/* layer: preflights */
2-*,::before,::after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,0.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: ;}::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,0.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: ;}⏎̸
A package-lock.json +981 -0 generated file: collapsed
A package.json +9 -0
@@ -0,0 +1,9 @@
1+{
2+ "devDependencies": {
3+ "tailwindcss": "^3.3.3"
4+ },
5+ "scripts": {
6+ "build:css": "tailwindcss build src/styles.css -o dist/styles.css",
7+ "dev:css": "tailwindcss -i internal/ui/public/assets/css/custom.css -o internal/ui/public/assets/css/tailwind.css --watch"
8+ }
9+}
@@ -0,0 +1,9 @@
1+{
2+ "devDependencies": {
3+ "tailwindcss": "^3.3.3"
4+ },
5+ "scripts": {
6+ "build:css": "tailwindcss build src/styles.css -o dist/styles.css",
7+ "dev:css": "tailwindcss -i internal/ui/public/assets/css/custom.css -o internal/ui/public/assets/css/tailwind.css --watch"
8+ }
9+}
A tailwind.config.js +8 -0
@@ -0,0 +1,8 @@
1+/** @type {import('tailwindcss').Config} */
2+module.exports = {
3+ content: ["./internal/ui/**/*.{gohtml,go}"],
4+ theme: {
5+ extend: {},
6+ },
7+ plugins: [],
8+}
@@ -0,0 +1,8 @@
1+/** @type {import('tailwindcss').Config} */
2+module.exports = {
3+ content: ["./internal/ui/**/*.{gohtml,go}"],
4+ theme: {
5+ extend: {},
6+ },
7+ plugins: [],
8+}
D uno.config.ts +0 -32
@@ -1,32 +0,0 @@
1-// uno.config.ts
2-import {
3- defineConfig, presetAttributify, presetIcons,
4- presetTypography, presetUno, presetWebFonts,
5- transformerDirectives, transformerVariantGroup
6-} from 'unocss'
7-
8-export default defineConfig({
9- shortcuts: [
10- // ...
11- ],
12- theme: {
13- colors: {
14- // ...
15- }
16- },
17- presets: [
18- presetUno(),
19- presetAttributify(),
20- presetIcons(),
21- presetTypography(),
22- presetWebFonts({
23- fonts: {
24- // ...
25- },
26- }),
27- ],
28- transformers: [
29- transformerDirectives(),
30- transformerVariantGroup(),
31- ],
32-})⏎̸
@@ -1,32 +0,0 @@
1-// uno.config.ts
2-import {
3- defineConfig, presetAttributify, presetIcons,
4- presetTypography, presetUno, presetWebFonts,
5- transformerDirectives, transformerVariantGroup
6-} from 'unocss'
7-
8-export default defineConfig({
9- shortcuts: [
10- // ...
11- ],
12- theme: {
13- colors: {
14- // ...
15- }
16- },
17- presets: [
18- presetUno(),
19- presetAttributify(),
20- presetIcons(),
21- presetTypography(),
22- presetWebFonts({
23- fonts: {
24- // ...
25- },
26- }),
27- ],
28- transformers: [
29- transformerDirectives(),
30- transformerVariantGroup(),
31- ],
32-})⏎̸

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close