Compare commits
11 Commits
main
...
a161e72304
| Author | SHA1 | Date | |
|---|---|---|---|
| a161e72304 | |||
| 91ccc46b29 | |||
|
|
49171d5d42 | ||
| 9797432b7d | |||
| 0c634b8294 | |||
|
|
db5b910653 | ||
| 7978b37203 | |||
|
|
ce1679fd92 | ||
| c95da0891e | |||
|
|
9301a90ec8 | ||
|
|
13d420282e |
BIN
frontend/public/images/logo.png
Normal file
BIN
frontend/public/images/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 367 KiB |
8
frontend/public/organization.svg
Normal file
8
frontend/public/organization.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
<svg width="19" height="19" viewBox="0 0 19 19" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.04492 7.35714V2.07143C5.04492 1.34162 5.63655 0.75 6.36635 0.75H12.3128C13.0426 0.75 13.6342 1.34162 13.6342 2.07143V7.35714C13.6342 8.08694 13.0426 8.67857 12.3128 8.67857H6.36635C5.63655 8.67857 5.04492 8.08694 5.04492 7.35714Z" stroke="#969AF9" style="stroke:#969AF9;stroke:color(display-p3 0.5892 0.6031 0.9766);stroke-opacity:1;" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M9.33984 8.67871V13.9644" stroke="#969AF9" style="stroke:#969AF9;stroke:color(display-p3 0.5892 0.6031 0.9766);stroke-opacity:1;" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M2.73242 13.9641V12.6427C2.73242 11.9129 3.32405 11.3213 4.05385 11.3213H14.6253C15.3551 11.3213 15.9467 11.9129 15.9467 12.6427V13.9641" stroke="#969AF9" style="stroke:#969AF9;stroke:color(display-p3 0.5892 0.6031 0.9766);stroke-opacity:1;" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M0.75 16.6067V15.2853C0.75 14.5555 1.34162 13.9639 2.07143 13.9639H3.39286C4.12266 13.9639 4.71429 14.5555 4.71429 15.2853V16.6067C4.71429 17.3365 4.12266 17.9282 3.39286 17.9282H2.07143C1.34162 17.9282 0.75 17.3365 0.75 16.6067Z" stroke="#969AF9" style="stroke:#969AF9;stroke:color(display-p3 0.5892 0.6031 0.9766);stroke-opacity:1;" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M7.35742 16.6067V15.2853C7.35742 14.5555 7.94905 13.9639 8.67885 13.9639H10.0003C10.7301 13.9639 11.3217 14.5555 11.3217 15.2853V16.6067C11.3217 17.3365 10.7301 17.9282 10.0003 17.9282H8.67885C7.94905 17.9282 7.35742 17.3365 7.35742 16.6067Z" stroke="#969AF9" style="stroke:#969AF9;stroke:color(display-p3 0.5892 0.6031 0.9766);stroke-opacity:1;" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M13.9648 16.6067V15.2853C13.9648 14.5555 14.5564 13.9639 15.2863 13.9639H16.6077C17.3375 13.9639 17.9291 14.5555 17.9291 15.2853V16.6067C17.9291 17.3365 17.3375 17.9282 16.6077 17.9282H15.2863C14.5564 17.9282 13.9648 17.3365 13.9648 16.6067Z" stroke="#969AF9" style="stroke:#969AF9;stroke:color(display-p3 0.5892 0.6031 0.9766);stroke-opacity:1;" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
48
frontend/src/app/components/header/Header.jsx
Normal file
48
frontend/src/app/components/header/Header.jsx
Normal file
@@ -0,0 +1,48 @@
|
||||
import React from "react";
|
||||
import styles from "./styles.module.css";
|
||||
|
||||
const Header = () => {
|
||||
return (
|
||||
// Main Container
|
||||
<nav className={styles.headerContainer}>
|
||||
{/* Logo and Org */}
|
||||
<div className={styles.logoContainer}>
|
||||
{/* Icon */}
|
||||
<div className={styles.logo}></div>
|
||||
{/* Organization and Dropdown */}
|
||||
<div className={styles.orgName}>
|
||||
{/* Header */}
|
||||
<div>
|
||||
<p>Organization</p>
|
||||
</div>
|
||||
{/* Dropdown */}
|
||||
<div className={styles.dropdown}>
|
||||
<p>Project Moonshot Inc.</p>
|
||||
<div>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="12"
|
||||
height="12"
|
||||
viewBox="0 0 12 12"
|
||||
fill="none"
|
||||
>
|
||||
<path
|
||||
d="M1.03906 3.51953L6.00031 8.48083L10.9616 3.51953"
|
||||
stroke="#969AF9"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* Search */}
|
||||
<div>
|
||||
<input type="text" name="search" id="" placeholder="Search" />
|
||||
</div>
|
||||
</nav>
|
||||
);
|
||||
};
|
||||
|
||||
export default Header;
|
||||
79
frontend/src/app/components/header/styles.module.css
Normal file
79
frontend/src/app/components/header/styles.module.css
Normal file
@@ -0,0 +1,79 @@
|
||||
.headerContainer {
|
||||
background-color: #ff0000;
|
||||
display: flex;
|
||||
height: 84px;
|
||||
padding: 12px 24px;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
align-self: stretch;
|
||||
border-bottom: 1px solid #2c2d3d;
|
||||
border-bottom: 1px solid color(display-p3 0.1725 0.1765 0.2353);
|
||||
}
|
||||
.logoContainer {
|
||||
background-color: orange;
|
||||
display: flex;
|
||||
padding: 6px;
|
||||
align-items: center;
|
||||
gap: 16px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.logo {
|
||||
width: 38px;
|
||||
height: 38px;
|
||||
aspect-ratio: 1/1;
|
||||
border-radius: 100px;
|
||||
background:
|
||||
url(/images/logo.png) lightgray 50% / cover no-repeat,
|
||||
#232537;
|
||||
background:
|
||||
url(/images/logo.png) lightgray 50% / cover no-repeat,
|
||||
color(display-p3 0.1392 0.1443 0.2106);
|
||||
}
|
||||
|
||||
.orgName {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 4px;
|
||||
}
|
||||
.orgName p {
|
||||
color: #eeeffd;
|
||||
color: color(display-p3 0.9333 0.9373 0.9882);
|
||||
font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
.dropdown {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.dropdown > p {
|
||||
color: #85869b;
|
||||
color: color(display-p3 0.5216 0.5255 0.6);
|
||||
font-family: Inter;
|
||||
font-size: 15px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
.dropdown > div {
|
||||
display: flex;
|
||||
padding: 8px;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.dropdown > div > button > svg {
|
||||
width: 9.922px;
|
||||
height: 4.961px;
|
||||
stroke: #959aff;
|
||||
stroke-width: 1px;
|
||||
stroke: color(display-p3 0.5892 0.6031 0.9766);
|
||||
}
|
||||
312
frontend/src/app/components/sidebar/Sidebar.jsx
Normal file
312
frontend/src/app/components/sidebar/Sidebar.jsx
Normal file
@@ -0,0 +1,312 @@
|
||||
import React from "react";
|
||||
import styles from "./styles.module.css";
|
||||
const Sidebar = () => {
|
||||
return (
|
||||
<div className={styles.mainContainer}>
|
||||
<div className={styles.topContainer}>
|
||||
{/* Logo Container */}
|
||||
<div className={styles.logoContainer}>
|
||||
<div>
|
||||
<div className={styles.logoIconContainer}>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="37"
|
||||
height="36"
|
||||
viewBox="0 0 37 36"
|
||||
fill="none"
|
||||
>
|
||||
<path
|
||||
d="M15.465 11.0234C13.7773 12.2949 12.0608 13.7836 10.3874 15.457C2.90925 22.9352 -0.879626 31.2707 1.92467 34.0751C4.72895 36.8792 13.0645 33.0904 20.5426 25.6123C22.2161 23.9388 23.7048 22.2224 24.9762 20.5347"
|
||||
stroke="#969AF9"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
style={{ strokeOpacity: 1 }}
|
||||
fill="none"
|
||||
/>
|
||||
<path
|
||||
d="M24.9762 20.5353C29.3864 26.3895 31.1822 31.8988 29.0053 34.0757C26.201 36.88 17.8655 33.091 10.3874 25.6129C2.90925 18.1348 -0.879626 9.79927 1.92467 6.99498C4.10141 4.81824 9.61081 6.61397 15.465 11.0241"
|
||||
stroke="#969AF9"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
style={{ strokeOpacity: 1 }}
|
||||
fill="none"
|
||||
/>
|
||||
<path
|
||||
d="M14.1504 20.5347C14.1504 21.261 14.7391 21.8497 15.4654 21.8497C16.1916 21.8497 16.7804 21.261 16.7804 20.5347C16.7804 19.8085 16.1916 19.2197 15.4654 19.2197C14.7391 19.2197 14.1504 19.8085 14.1504 20.5347Z"
|
||||
stroke="#969AF9"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
style={{ strokeOpacity: 1 }}
|
||||
fill="none"
|
||||
/>
|
||||
<path
|
||||
d="M20.7505 9.08429C19.9243 8.94056 19.9243 7.75456 20.7505 7.61083C23.7436 7.09012 26.124 4.81039 26.7737 1.84263L26.8236 1.61514C27.0022 0.798617 28.1649 0.793535 28.3509 1.60847L28.4114 1.87358C29.0849 4.82732 31.4661 7.0878 34.4509 7.60707C35.2814 7.75154 35.2814 8.94358 34.4509 9.08805C31.4661 9.60732 29.0849 11.8678 28.4114 14.8216L28.3509 15.0867C28.1649 15.9016 27.0022 15.8965 26.8236 15.08L26.7737 14.8525C26.124 11.8848 23.7436 9.605 20.7505 9.08429Z"
|
||||
stroke="#969AF9"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
style={{ strokeOpacity: 1 }}
|
||||
fill="none"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
<div className={styles.logoDescription}>
|
||||
<p>Internal Developer Platform</p>
|
||||
<p>By Project Moonshot Inc.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* Navigations */}
|
||||
<div className={styles.navContainer}>
|
||||
<div className={styles.active}>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<path
|
||||
d="M5.4375 12H3.5625L12 3.5625L20.4375 12H18.5625"
|
||||
stroke="#969AF9"
|
||||
strokeWidth="1.5"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
<path
|
||||
d="M5.4375 12V18.5625C5.4375 19.0598 5.63504 19.5367 5.98667 19.8883C6.33831 20.24 6.81522 20.4375 7.3125 20.4375H16.6875C17.1848 20.4375 17.6617 20.24 18.0133 19.8883C18.365 19.5367 18.5625 19.0598 18.5625 18.5625V12"
|
||||
stroke="#969AF9"
|
||||
strokeWidth="1.5"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
<path
|
||||
d="M10.125 12H13.875V15.75H10.125V12Z"
|
||||
stroke="#969AF9"
|
||||
strokeWidth="1.5"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
</svg>
|
||||
<p>Home</p>
|
||||
</div>
|
||||
<div>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<path
|
||||
d="M17.3653 7.69688C16.4048 6.7122 15.1917 6.01095 13.8591 5.67M10.1362 5.67C8.78152 6.01744 7.55105 6.73708 6.58406 7.7475M4.82062 10.7616C4.60749 11.4669 4.49946 12.1997 4.5 12.9366C4.5 13.6284 4.59375 14.2987 4.76906 14.9353M6.60656 18.1491C7.56883 19.1461 8.7887 19.8568 10.1306 20.2022M13.8806 20.2022C15.2181 19.856 16.4338 19.1467 17.3934 18.1528M19.2328 14.9372C19.4119 14.2864 19.5024 13.6144 19.5019 12.9394C19.5019 12.2231 19.4016 11.5303 19.2141 10.8741M10.125 5.4375C10.125 5.93478 10.3225 6.41169 10.6742 6.76333C11.0258 7.11496 11.5027 7.3125 12 7.3125C12.4973 7.3125 12.9742 7.11496 13.3258 6.76333C13.6775 6.41169 13.875 5.93478 13.875 5.4375C13.875 4.94022 13.6775 4.46331 13.3258 4.11167C12.9742 3.76004 12.4973 3.5625 12 3.5625C11.5027 3.5625 11.0258 3.76004 10.6742 4.11167C10.3225 4.46331 10.125 4.94022 10.125 5.4375ZM3.5625 16.6875C3.5625 17.1848 3.76004 17.6617 4.11167 18.0133C4.46331 18.365 4.94022 18.5625 5.4375 18.5625C5.93478 18.5625 6.41169 18.365 6.76333 18.0133C7.11496 17.6617 7.3125 17.1848 7.3125 16.6875C7.3125 16.1902 7.11496 15.7133 6.76333 15.3617C6.41169 15.01 5.93478 14.8125 5.4375 14.8125C4.94022 14.8125 4.46331 15.01 4.11167 15.3617C3.76004 15.7133 3.5625 16.1902 3.5625 16.6875ZM16.6875 16.6875C16.6875 17.1848 16.885 17.6617 17.2367 18.0133C17.5883 18.365 18.0652 18.5625 18.5625 18.5625C19.0598 18.5625 19.5367 18.365 19.8883 18.0133C20.24 17.6617 20.4375 17.1848 20.4375 16.6875C20.4375 16.1902 20.24 15.7133 19.8883 15.3617C19.5367 15.01 19.0598 14.8125 18.5625 14.8125C18.0652 14.8125 17.5883 15.01 17.2367 15.3617C16.885 15.7133 16.6875 16.1902 16.6875 16.6875Z"
|
||||
stroke="#858699"
|
||||
strokeWidth="1.5"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
</svg>
|
||||
<p>Organization</p>
|
||||
</div>
|
||||
<div>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<path
|
||||
d="M5.4375 18.5625L8.02219 11.6709C8.08916 11.4923 8.20905 11.3383 8.36585 11.2296C8.52265 11.1209 8.70889 11.0626 8.89969 11.0625H20.4375M5.4375 18.5625H18.5869C19.0231 18.5624 19.4456 18.4102 19.7817 18.1321C20.1177 17.8541 20.3463 17.4675 20.4281 17.0391L21.3619 12.1538C21.3842 12.0195 21.377 11.882 21.3408 11.7508C21.3047 11.6196 21.2404 11.4979 21.1524 11.394C21.0645 11.2902 20.9549 11.2068 20.8315 11.1495C20.708 11.0923 20.5736 11.0626 20.4375 11.0625M5.4375 18.5625C4.94022 18.5625 4.46331 18.365 4.11167 18.0133C3.76004 17.6617 3.5625 17.1848 3.5625 16.6875V6.375C3.5625 5.87772 3.76004 5.40081 4.11167 5.04917C4.46331 4.69754 4.94022 4.5 5.4375 4.5H9.1875L12 7.3125H18.5625C19.0598 7.3125 19.5367 7.51004 19.8883 7.86167C20.24 8.21331 20.4375 8.69022 20.4375 9.1875V11.0625"
|
||||
stroke="#858699"
|
||||
strokeWidth="1.5"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
</svg>
|
||||
<p>Project</p>
|
||||
</div>
|
||||
<div>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<path
|
||||
d="M3.5625 20.4375V18.5625C3.5625 17.5679 3.95759 16.6141 4.66085 15.9108C5.36411 15.2076 6.31794 14.8125 7.3125 14.8125H11.0625C12.0571 14.8125 13.0109 15.2076 13.7142 15.9108C14.4174 16.6141 14.8125 17.5679 14.8125 18.5625V20.4375M15.75 3.68438C16.5566 3.89091 17.2716 4.36003 17.7822 5.01779C18.2927 5.67555 18.5699 6.48453 18.5699 7.31719C18.5699 8.14985 18.2927 8.95883 17.7822 9.61658C17.2716 10.2743 16.5566 10.7435 15.75 10.95M20.4375 20.4375V18.5625C20.4327 17.7348 20.1543 16.932 19.6456 16.2791C19.1368 15.6263 18.4264 15.16 17.625 14.9531M5.4375 7.3125C5.4375 8.30706 5.83259 9.26089 6.53585 9.96415C7.23911 10.6674 8.19294 11.0625 9.1875 11.0625C10.1821 11.0625 11.1359 10.6674 11.8392 9.96415C12.5424 9.26089 12.9375 8.30706 12.9375 7.3125C12.9375 6.31794 12.5424 5.36411 11.8392 4.66085C11.1359 3.95759 10.1821 3.5625 9.1875 3.5625C8.19294 3.5625 7.23911 3.95759 6.53585 4.66085C5.83259 5.36411 5.4375 6.31794 5.4375 7.3125Z"
|
||||
stroke="#858699"
|
||||
strokeWidth="1.5"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
</svg>
|
||||
<p>Users</p>
|
||||
</div>
|
||||
<div>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<g clipPath="url(#clip0_306_15337)">
|
||||
<path
|
||||
d="M10.6205 9.86809C10.4245 9.9532 10.2131 9.99711 9.99942 9.99711C9.78573 9.99711 9.57434 9.9532 9.37835 9.86809L1.8462 6.37952C1.72389 6.31783 1.62111 6.2234 1.54929 6.10675C1.47748 5.99009 1.43945 5.85579 1.43945 5.7188C1.43945 5.58181 1.47748 5.44751 1.54929 5.33086C1.62111 5.21421 1.72389 5.11979 1.8462 5.05809L9.37835 1.54309C9.57434 1.45798 9.78573 1.41406 9.99942 1.41406C10.2131 1.41406 10.4245 1.45798 10.6205 1.54309L18.1526 5.03166C18.275 5.09336 18.3778 5.18779 18.4495 5.30443C18.5214 5.42108 18.5593 5.55538 18.5593 5.69237C18.5593 5.82937 18.5214 5.96366 18.4495 6.08032C18.3778 6.19697 18.275 6.2914 18.1526 6.35309L10.6205 9.86809Z"
|
||||
stroke="#858699"
|
||||
strokeWidth={1.5}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
style={{ strokeOpacity: 1 }}
|
||||
/>
|
||||
<path
|
||||
d="M18.5887 10.4629L10.528 14.1761C10.3559 14.2546 10.1688 14.2953 9.97962 14.2953C9.79041 14.2953 9.60338 14.2546 9.43123 14.1761L1.41016 10.4629"
|
||||
stroke="#858699"
|
||||
strokeWidth={1.5}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
style={{ strokeOpacity: 1 }}
|
||||
/>
|
||||
<path
|
||||
d="M18.5887 14.7578L10.528 18.471C10.3559 18.5495 10.1688 18.5902 9.97962 18.5902C9.79041 18.5902 9.60338 18.5495 9.43123 18.471L1.41016 14.7578"
|
||||
stroke="#858699"
|
||||
strokeWidth={1.5}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
style={{ strokeOpacity: 1 }}
|
||||
/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_306_15337">
|
||||
<rect
|
||||
width="20"
|
||||
height="20"
|
||||
fill="white"
|
||||
style={{ fillOpacity: 1 }}
|
||||
/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
<p>Roles</p>
|
||||
</div>
|
||||
<div>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<path
|
||||
d="M4.03125 5.90625L5.4375 7.3125L7.78125 4.96875M4.03125 11.5312L5.4375 12.9375L7.78125 10.5938M4.03125 17.1562L5.4375 18.5625L7.78125 16.2188M11.0625 6.375H19.5M11.0625 12H19.5M11.0625 17.625H19.5"
|
||||
stroke="#858699"
|
||||
strokeWidth="1.5"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
</svg>
|
||||
<p>Credentials</p>
|
||||
</div>
|
||||
<div>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<g clipPath="url(#clip0_306_15353)">
|
||||
<path
|
||||
d="M8.57278 4.14746H7.66494C7.44193 4.14812 7.22431 4.21611 7.0406 4.34254C6.85688 4.46898 6.71563 4.64794 6.63534 4.85601L6.15928 6.08489L4.52076 7.01487L3.21437 6.81558C2.99685 6.78606 2.77546 6.82186 2.57833 6.91846C2.3812 7.01505 2.21724 7.16807 2.10727 7.35807L1.66443 8.13303C1.55095 8.32607 1.49867 8.54895 1.51448 8.7723C1.5303 8.99565 1.61346 9.20896 1.753 9.38407L2.58332 10.4137V12.2736L1.77514 13.3032C1.6356 13.4783 1.55244 13.6916 1.53663 13.915C1.52081 14.1383 1.5731 14.3612 1.68657 14.5543L2.12941 15.3292C2.23938 15.5192 2.40335 15.6722 2.60046 15.7688C2.79759 15.8654 3.019 15.9012 3.23652 15.8718L4.54291 15.6725L6.15928 16.6024L6.63534 17.8313C6.71563 18.0393 6.85688 18.2183 7.0406 18.3448C7.22431 18.4711 7.44193 18.5392 7.66494 18.5399H8.59491C8.81793 18.5392 9.03556 18.4711 9.21927 18.3448C9.40299 18.2183 9.54424 18.0393 9.62453 17.8313L10.1006 16.6024L11.717 15.6725L13.0234 15.8718C13.2409 15.9012 13.4623 15.8654 13.6594 15.7688C13.8565 15.6722 14.0206 15.5192 14.1305 15.3292L14.5733 14.5543C14.6868 14.3612 14.739 14.1383 14.7233 13.915C14.7074 13.6916 14.6243 13.4783 14.4848 13.3032L13.6544 12.2736V11.0744M5.90464 11.3436C5.90464 11.7816 6.03451 12.2097 6.27781 12.5738C6.52112 12.9379 6.86692 13.2217 7.27152 13.3893C7.67611 13.5569 8.12131 13.6007 8.55083 13.5153C8.98035 13.4299 9.37489 13.219 9.68455 12.9093C9.99421 12.5997 10.2051 12.2051 10.2905 11.7756C10.376 11.3461 10.3321 10.9009 10.1645 10.4963C9.99693 10.0917 9.71313 9.7459 9.34901 9.5026C8.98489 9.2593 8.55679 9.12943 8.11886 9.12943C7.53161 9.12943 6.96842 9.36272 6.55317 9.77796C6.13793 10.1932 5.90464 10.7564 5.90464 11.3436Z"
|
||||
stroke="#858699"
|
||||
strokeWidth={1.5}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
style={{ strokeOpacity: 1 }}
|
||||
/>
|
||||
<path
|
||||
d="M11.4547 5.43105C11.049 5.36047 11.049 4.77804 11.4547 4.70745C12.9245 4.45174 14.0936 3.33217 14.4126 1.87474L14.437 1.76303C14.5249 1.36204 15.0958 1.35954 15.1871 1.75975L15.2168 1.88994C15.5477 3.3405 16.717 4.4506 18.1829 4.70561C18.5907 4.77656 18.5907 5.36195 18.1829 5.4329C16.717 5.68791 15.5477 6.79801 15.2168 8.24857L15.1871 8.37876C15.0958 8.77897 14.5249 8.77647 14.437 8.37548L14.4126 8.26377C14.0936 6.80634 12.9245 5.68677 11.4547 5.43105Z"
|
||||
stroke="#858699"
|
||||
strokeWidth={1.5}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
style={{ strokeOpacity: 1 }}
|
||||
/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_306_15353">
|
||||
<rect
|
||||
width="20"
|
||||
height="20"
|
||||
fill="white"
|
||||
style={{ fillOpacity: 1 }}
|
||||
/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
<p>Agents</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* Footers */}
|
||||
<div className={styles.navFooterContainer}>
|
||||
<div>
|
||||
<div>
|
||||
<p>Download ICTL v3</p>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<g clipPath="url(#clip0_306_15402)">
|
||||
<path
|
||||
d="M7.98047 13.6074L11.9983 17.6253L16.0162 13.6074"
|
||||
stroke="#8287FF"
|
||||
strokeWidth={1.5}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
style={{ strokeOpacity: 1 }}
|
||||
/>
|
||||
<path
|
||||
d="M12 17.625V6.375"
|
||||
stroke="#8287FF"
|
||||
strokeWidth={1.5}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
style={{ strokeOpacity: 1 }}
|
||||
/>
|
||||
<path
|
||||
d="M11.9992 22.4466C17.7686 22.4466 22.4456 17.7696 22.4456 12.0001C22.4456 6.23074 17.7686 1.55371 11.9992 1.55371C6.22976 1.55371 1.55273 6.23074 1.55273 12.0001C1.55273 17.7696 6.22976 22.4466 11.9992 22.4466Z"
|
||||
stroke="#8287FF"
|
||||
strokeWidth={1.5}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
style={{ strokeOpacity: 1 }}
|
||||
/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_306_15402">
|
||||
<rect
|
||||
width="24"
|
||||
height="24"
|
||||
fill="white"
|
||||
style={{ fillOpacity: 1 }}
|
||||
/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Sidebar;
|
||||
157
frontend/src/app/components/sidebar/styles.module.css
Normal file
157
frontend/src/app/components/sidebar/styles.module.css
Normal file
@@ -0,0 +1,157 @@
|
||||
.mainContainer {
|
||||
display: flex;
|
||||
width: 250px;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
height: 100vh;
|
||||
align-self: stretch;
|
||||
border-right: 1px solid #2c2d3d;
|
||||
}
|
||||
.topContainer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 16px;
|
||||
align-self: stretch;
|
||||
}
|
||||
.logoContainer {
|
||||
display: flex;
|
||||
height: 84px;
|
||||
padding: 12px 16px;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: flex-start;
|
||||
gap: 12px;
|
||||
align-self: stretch;
|
||||
border-bottom: 1px solid #2c2d3d;
|
||||
border-bottom: 1px solid color(display-p3 0.1725 0.1765 0.2353);
|
||||
}
|
||||
.logoContainer > div {
|
||||
display: flex;
|
||||
padding-right: 6px;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
align-self: stretch;
|
||||
}
|
||||
.logoIconContainer {
|
||||
display: flex;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
padding: 8px;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 9px;
|
||||
aspect-ratio: 1/1;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.logoDescription {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: flex-start;
|
||||
gap: 4px;
|
||||
flex: 1 0 0;
|
||||
}
|
||||
.logoDescription > p:nth-child(1) {
|
||||
color: #fff;
|
||||
color: color(display-p3 1 1 1);
|
||||
font-size: 15px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 18px;
|
||||
}
|
||||
.logoDescription > p:nth-child(2) {
|
||||
color: #85869b;
|
||||
color: color(display-p3 0.5216 0.5255 0.6);
|
||||
font-size: 10px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: normal;
|
||||
letter-spacing: 0.05px;
|
||||
align-self: stretch;
|
||||
}
|
||||
.navContainer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
align-self: stretch;
|
||||
}
|
||||
.navContainer > div {
|
||||
display: flex;
|
||||
padding: 16px 24px;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
gap: 16px;
|
||||
font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: normal;
|
||||
align-self: stretch;
|
||||
}
|
||||
|
||||
.navContainer > div:hover {
|
||||
background: rgba(149, 154, 255, 0.05);
|
||||
}
|
||||
.navContainer > div path {
|
||||
stroke: #858699;
|
||||
}
|
||||
.navContainer > div:hover path {
|
||||
stroke: #d2d3e0;
|
||||
}
|
||||
.navContainer > div path {
|
||||
stroke: #858699;
|
||||
}
|
||||
.navContainer > div:hover path {
|
||||
stroke: #d2d3e0;
|
||||
}
|
||||
.active {
|
||||
border-left: 2px solid #959aff;
|
||||
background: rgba(149, 154, 255, 0.05);
|
||||
color: #959aff;
|
||||
font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: normal;
|
||||
}
|
||||
.active svg path {
|
||||
stroke: #969af9;
|
||||
}
|
||||
.navFooterContainer {
|
||||
display: flex;
|
||||
padding: 16px;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 10px;
|
||||
align-self: stretch;
|
||||
}
|
||||
.navFooterContainer > div {
|
||||
display: flex;
|
||||
padding: 12px 16px;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 24px;
|
||||
align-self: stretch;
|
||||
border-radius: 8px;
|
||||
border: 1px solid #292b43;
|
||||
background: #1d1e2c;
|
||||
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.navFooterContainer > div > div {
|
||||
display: flex;
|
||||
width: 186px;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex: 1 0 0;
|
||||
}
|
||||
.navFooterContainer > div > div > p {
|
||||
color: #d2d3e1;
|
||||
font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: normal;
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
:root {
|
||||
--background: #ffffff;
|
||||
--foreground: #171717;
|
||||
--background: #d2d3e0;
|
||||
--foreground: #1c1d28;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--background: #0a0a0a;
|
||||
--foreground: #ededed;
|
||||
--background: #1c1d28;
|
||||
--foreground: #d2d3e0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ body {
|
||||
body {
|
||||
color: var(--foreground);
|
||||
background: var(--background);
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-family: inter, Arial, Helvetica, sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
import { Geist, Geist_Mono } from "next/font/google";
|
||||
import { Geist, Geist_Mono, Inter } from "next/font/google";
|
||||
import Sidebar from "./components/sidebar/Sidebar";
|
||||
import Header from "./components/header/Header";
|
||||
import "./globals.css";
|
||||
import styles from "./page.module.css";
|
||||
|
||||
const geistSans = Geist({
|
||||
variable: "--font-geist-sans",
|
||||
subsets: ["latin"],
|
||||
});
|
||||
|
||||
const geistMono = Geist_Mono({
|
||||
variable: "--font-geist-mono",
|
||||
const inter = Inter({
|
||||
variable: "--font-inter",
|
||||
subsets: ["latin"],
|
||||
});
|
||||
|
||||
@@ -19,8 +17,15 @@ export const metadata = {
|
||||
export default function RootLayout({ children }) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body className={`${geistSans.variable} ${geistMono.variable}`}>
|
||||
<body className={`${inter.variable} `}>
|
||||
<div className={styles.layout}>
|
||||
<Sidebar />
|
||||
<Header />
|
||||
<div className={styles.mainContainer}>
|
||||
{/* Header here */}
|
||||
{children}
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
|
||||
@@ -2,65 +2,5 @@ import Image from "next/image";
|
||||
import styles from "./page.module.css";
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<div className={styles.page}>
|
||||
<main className={styles.main}>
|
||||
<Image
|
||||
className={styles.logo}
|
||||
src="/next.svg"
|
||||
alt="Next.js logo"
|
||||
width={100}
|
||||
height={20}
|
||||
priority
|
||||
/>
|
||||
<div className={styles.intro}>
|
||||
<h1>To get started, edit the page.js file.</h1>
|
||||
<p>
|
||||
Looking for a starting point or more instructions? Head over to{" "}
|
||||
<a
|
||||
href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
Templates
|
||||
</a>{" "}
|
||||
or the{" "}
|
||||
<a
|
||||
href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
Learning
|
||||
</a>{" "}
|
||||
center.
|
||||
</p>
|
||||
</div>
|
||||
<div className={styles.ctas}>
|
||||
<a
|
||||
className={styles.primary}
|
||||
href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<Image
|
||||
className={styles.logo}
|
||||
src="/vercel.svg"
|
||||
alt="Vercel logomark"
|
||||
width={16}
|
||||
height={16}
|
||||
/>
|
||||
Deploy Now
|
||||
</a>
|
||||
<a
|
||||
className={styles.secondary}
|
||||
href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
Documentation
|
||||
</a>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
);
|
||||
return <div className={styles.page}></div>;
|
||||
}
|
||||
|
||||
@@ -10,11 +10,8 @@
|
||||
--button-secondary-border: #ebebeb;
|
||||
|
||||
display: flex;
|
||||
min-height: 100vh;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-family: var(--font-geist-sans);
|
||||
background-color: var(--background);
|
||||
}
|
||||
|
||||
.main {
|
||||
@@ -25,7 +22,6 @@
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
background-color: var(--foreground);
|
||||
padding: 120px 60px;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user