diff --git a/src/main/frontend/main.css b/src/main/frontend/main.css
index 703df8c..9314554 100644
--- a/src/main/frontend/main.css
+++ b/src/main/frontend/main.css
@@ -47,6 +47,7 @@
@apply hover:bg-primary-80;
@apply active:bg-primary-60;
@apply focus:bg-primary-100 focus:outline focus:outline-6 focus:outline-primary-40;
+ @apply text-white font-medium;
padding: 13px 28px;
gap: 10px;
}
@@ -54,4 +55,18 @@
width: 20px;
height: 20px;
}
+
+
+
+ .classroom-card {
+ @apply rounded-xl bg-dark-3 flex flex-col items-stretch gap-4 p-2;
+ }
+
+ .classroom-card-name {
+ @apply font-medium text-white bg-dark-1 rounded-xl p-8;
+ }
+
+ .classroom-card .btn-primary {
+ @apply rounded-2xl;
+ }
}
diff --git a/src/main/frontend/tailwind.config.js b/src/main/frontend/tailwind.config.js
index 1b0b697..b20d647 100644
--- a/src/main/frontend/tailwind.config.js
+++ b/src/main/frontend/tailwind.config.js
@@ -19,7 +19,7 @@ module.exports = {
180: "#D9DFFC",
},
"dark": {
- 1: "#111928",
+ 1: "#14171C",
2: "#121B26",
3: "#1F2A37",
4: "#374151",
@@ -57,6 +57,7 @@ module.exports = {
}
},
spacing: {
+ '0': '0px',
'1': '4px',
'2': '8px',
'4': '16px',
@@ -68,6 +69,7 @@ module.exports = {
'16': '64px',
'18': '72px',
'20': '80px',
+ '32': '8rem',
}
},
plugins: [
diff --git a/src/main/resources/public/icons/book.svg b/src/main/resources/public/icons/book.svg
new file mode 100644
index 0000000..9a1ca4e
--- /dev/null
+++ b/src/main/resources/public/icons/book.svg
@@ -0,0 +1,5 @@
+
diff --git a/src/main/resources/public/icons/certificate-alt.svg b/src/main/resources/public/icons/certificate-alt.svg
new file mode 100644
index 0000000..3e08b07
--- /dev/null
+++ b/src/main/resources/public/icons/certificate-alt.svg
@@ -0,0 +1,8 @@
+
diff --git a/src/main/resources/public/icons/classroom.svg b/src/main/resources/public/icons/classroom.svg
new file mode 100644
index 0000000..27e78f6
--- /dev/null
+++ b/src/main/resources/public/icons/classroom.svg
@@ -0,0 +1,7 @@
+
diff --git a/src/main/resources/public/icons/gitlab-icon.svg b/src/main/resources/public/icons/gitlab-icon.svg
new file mode 100644
index 0000000..9878188
--- /dev/null
+++ b/src/main/resources/public/icons/gitlab-icon.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/src/main/resources/public/icons/gitlab-logo-200.svg b/src/main/resources/public/icons/gitlab-logo-200.svg
new file mode 100644
index 0000000..27a881b
--- /dev/null
+++ b/src/main/resources/public/icons/gitlab-logo-200.svg
@@ -0,0 +1,57 @@
+
+
diff --git a/src/main/resources/public/icons/group.svg b/src/main/resources/public/icons/group.svg
new file mode 100644
index 0000000..a4903d2
--- /dev/null
+++ b/src/main/resources/public/icons/group.svg
@@ -0,0 +1,8 @@
+
diff --git a/src/main/resources/public/icons/home.svg b/src/main/resources/public/icons/home.svg
new file mode 100644
index 0000000..4522d19
--- /dev/null
+++ b/src/main/resources/public/icons/home.svg
@@ -0,0 +1,5 @@
+
diff --git a/src/main/resources/public/icons/plus.svg b/src/main/resources/public/icons/plus.svg
new file mode 100644
index 0000000..7ef5858
--- /dev/null
+++ b/src/main/resources/public/icons/plus.svg
@@ -0,0 +1,10 @@
+
diff --git a/src/main/resources/public/main.css b/src/main/resources/public/main.css
index 2699c37..849968e 100644
--- a/src/main/resources/public/main.css
+++ b/src/main/resources/public/main.css
@@ -807,6 +807,9 @@ h6 {
}
.btn-primary {
+ font-weight: 500;
+ --tw-text-opacity: 1;
+ color: rgb(255 255 255 / var(--tw-text-opacity));
padding: 13px 28px;
gap: 10px;
}
@@ -816,6 +819,31 @@ h6 {
height: 20px;
}
+.classroom-card {
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ gap: 16px;
+ border-radius: 0.75rem;
+ --tw-bg-opacity: 1;
+ background-color: rgb(31 42 55 / var(--tw-bg-opacity));
+ padding: 8px;
+}
+
+.classroom-card-name {
+ border-radius: 0.75rem;
+ --tw-bg-opacity: 1;
+ background-color: rgb(20 23 28 / var(--tw-bg-opacity));
+ padding: 32px;
+ font-weight: 500;
+ --tw-text-opacity: 1;
+ color: rgb(255 255 255 / var(--tw-text-opacity));
+}
+
+.classroom-card .btn-primary {
+ border-radius: 1rem;
+}
+
.sr-only {
position: absolute;
width: 1px;
@@ -844,6 +872,23 @@ h6 {
inset: -4px;
}
+.inset-0 {
+ inset: 0px;
+}
+
+.inset-y-0 {
+ top: 0px;
+ bottom: 0px;
+}
+
+.left-0 {
+ left: 0px;
+}
+
+.right-0 {
+ right: 0px;
+}
+
.z-10 {
z-index: 10;
}
@@ -871,6 +916,14 @@ h6 {
margin-right: auto;
}
+.-ml-0 {
+ margin-left: -0px;
+}
+
+.-mt-32 {
+ margin-top: -8rem;
+}
+
.mb-4 {
margin-bottom: 16px;
}
@@ -1003,6 +1056,10 @@ h6 {
width: 80px;
}
+.w-32 {
+ width: 8rem;
+}
+
.w-4 {
width: 16px;
}
@@ -1015,10 +1072,19 @@ h6 {
width: 32px;
}
+.w-fit {
+ width: -moz-fit-content;
+ width: fit-content;
+}
+
.w-full {
width: 100%;
}
+.min-w-0 {
+ min-width: 0px;
+}
+
.min-w-full {
min-width: 100%;
}
@@ -1035,6 +1101,10 @@ h6 {
max-width: 80rem;
}
+.max-w-screen-2xl {
+ max-width: 1536px;
+}
+
.max-w-xl {
max-width: 36rem;
}
@@ -1075,6 +1145,10 @@ h6 {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
+.flex-row {
+ flex-direction: row;
+}
+
.flex-col {
flex-direction: column;
}
@@ -1103,6 +1177,10 @@ h6 {
justify-content: space-between;
}
+.gap-2 {
+ gap: 8px;
+}
+
.gap-6 {
gap: 24px;
}
@@ -1142,12 +1220,6 @@ h6 {
margin-left: calc(24px * calc(1 - var(--tw-space-x-reverse)));
}
-.space-y-1 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-y-reverse: 0;
- margin-top: calc(4px * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(4px * var(--tw-space-y-reverse));
-}
-
.space-y-12 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(48px * calc(1 - var(--tw-space-y-reverse)));
@@ -1192,6 +1264,10 @@ h6 {
border-radius: 0.25rem;
}
+.rounded-3xl {
+ border-radius: 1.5rem;
+}
+
.rounded-full {
border-radius: 9999px;
}
@@ -1226,7 +1302,7 @@ h6 {
.bg-dark-1 {
--tw-bg-opacity: 1;
- background-color: rgb(17 25 40 / var(--tw-bg-opacity));
+ background-color: rgb(20 23 28 / var(--tw-bg-opacity));
}
.bg-dark-2 {
@@ -1234,11 +1310,29 @@ h6 {
background-color: rgb(18 27 38 / var(--tw-bg-opacity));
}
+.bg-dark-3 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(31 42 55 / var(--tw-bg-opacity));
+}
+
+.bg-primary-100 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(67 97 238 / var(--tw-bg-opacity));
+}
+
.bg-white {
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
+.fill-primary-100 {
+ fill: #4361EE;
+}
+
+.fill-white {
+ fill: #FFFFFF;
+}
+
.object-cover {
-o-object-fit: cover;
object-fit: cover;
@@ -1248,6 +1342,10 @@ h6 {
padding: 4px;
}
+.p-10 {
+ padding: 40px;
+}
+
.p-4 {
padding: 16px;
}
@@ -1256,14 +1354,19 @@ h6 {
padding: 24px;
}
+.px-10 {
+ padding-left: 40px;
+ padding-right: 40px;
+}
+
.px-12 {
padding-left: 48px;
padding-right: 48px;
}
-.px-2 {
- padding-left: 8px;
- padding-right: 8px;
+.px-20 {
+ padding-left: 80px;
+ padding-right: 80px;
}
.px-4 {
@@ -1310,6 +1413,10 @@ h6 {
padding-bottom: 48px;
}
+.pb-32 {
+ padding-bottom: 8rem;
+}
+
.pb-6 {
padding-bottom: 24px;
}
@@ -1322,6 +1429,10 @@ h6 {
padding-left: 16px;
}
+.pl-6 {
+ padding-left: 24px;
+}
+
.pr-10 {
padding-right: 40px;
}
@@ -1375,6 +1486,10 @@ h6 {
font-weight: 700;
}
+.font-extrabold {
+ font-weight: 800;
+}
+
.font-medium {
font-weight: 500;
}
@@ -1481,6 +1596,16 @@ h6 {
color: rgb(255 255 255 / var(--tw-text-opacity));
}
+.hover\:bg-dark-4:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity));
+}
+
+.hover\:bg-primary-80:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(54 78 190 / var(--tw-bg-opacity));
+}
+
.hover\:text-white:hover {
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity));
@@ -1536,6 +1661,10 @@ h6 {
margin-left: 16px;
}
+ .sm\:mt-0 {
+ margin-top: 0px;
+ }
+
.sm\:block {
display: block;
}
@@ -1596,11 +1725,25 @@ h6 {
padding: 24px;
}
+ .sm\:px-0 {
+ padding-left: 0px;
+ padding-right: 0px;
+ }
+
.sm\:px-6 {
padding-left: 24px;
padding-right: 24px;
}
+ .sm\:py-32 {
+ padding-top: 8rem;
+ padding-bottom: 8rem;
+ }
+
+ .sm\:pl-0 {
+ padding-left: 0px;
+ }
+
.sm\:text-3xl {
font-size: 1.875rem;
line-height: 2.25rem;
@@ -1638,10 +1781,6 @@ h6 {
display: block;
}
- .md\:hidden {
- display: none;
- }
-
.md\:grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@@ -1661,6 +1800,10 @@ h6 {
margin-left: 16px;
}
+ .lg\:mt-0 {
+ margin-top: 0px;
+ }
+
.lg\:flex {
display: flex;
}
diff --git a/src/main/resources/templates/classrooms/list.html b/src/main/resources/templates/classrooms/list.html
index d76dc47..f386223 100644
--- a/src/main/resources/templates/classrooms/list.html
+++ b/src/main/resources/templates/classrooms/list.html
@@ -2,49 +2,34 @@
-
-
-
-
+
-
diff --git a/src/main/resources/templates/layout.html b/src/main/resources/templates/layout.html
index 36141a1..4dd86ca 100644
--- a/src/main/resources/templates/layout.html
+++ b/src/main/resources/templates/layout.html
@@ -8,7 +8,7 @@
-
+
GitLab Classroom
@@ -17,126 +17,85 @@
-
-
-