From dd0f0f377d275134bc5a1060e776c704d39e27f3 Mon Sep 17 00:00:00 2001 From: sigmaBoei Date: Wed, 25 Feb 2026 14:30:26 +0800 Subject: [PATCH] users page layout --- frontend/src/app/users/page.jsx | 123 +++++++++++++++++++++++ frontend/src/app/users/styles.module.css | 87 ++++++++++++++++ 2 files changed, 210 insertions(+) diff --git a/frontend/src/app/users/page.jsx b/frontend/src/app/users/page.jsx index 6752951..990a06a 100644 --- a/frontend/src/app/users/page.jsx +++ b/frontend/src/app/users/page.jsx @@ -1,12 +1,135 @@ import React from "react"; import TopHeader from "../components/topHeader/TopHeader"; import globalStyle from "../globalStyle.module.css"; +import styles from "./styles.module.css"; const UsersPage = () => { + const sampleData = [ + { + email: "nino.moonshot@gmail.com", + fullName: "Nino Paul Cervantes", + createdAt: "2024-10-21 08:01:31.474 +0000 UTC", + }, + { + email: "nino.moonshot@gmail.com", + fullName: "Nino Paul Cervantes", + createdAt: "2024-10-21 08:01:31.474 +0000 UTC", + }, + { + email: "nino.moonshot@gmail.com", + fullName: "Nino Paul Cervantes", + createdAt: "2024-10-21 08:01:31.474 +0000 UTC", + }, + { + email: "nino.moonshot@gmail.com", + fullName: "Nino Paul Cervantes", + createdAt: "2024-10-21 08:01:31.474 +0000 UTC", + }, + { + email: "nino.moonshot@gmail.com", + fullName: "Nino Paul Cervantes", + createdAt: "2024-10-21 08:01:31.474 +0000 UTC", + }, + ]; return (
+ {/* Table */} +
+ + + + + + + + + + + {sampleData.map((data, index) => { + return ( + + + + + + + ); + })} + +
EmailFull NameDate Created
{data.email}{data.fullName}{data.createdAt} +
+ + +
+
+
diff --git a/frontend/src/app/users/styles.module.css b/frontend/src/app/users/styles.module.css index e69de29..bd000eb 100644 --- a/frontend/src/app/users/styles.module.css +++ b/frontend/src/app/users/styles.module.css @@ -0,0 +1,87 @@ +.tableContainer { + width: 100%; +} + +/* Table */ +.table { + width: 100%; + border-collapse: collapse; +} +/* Targets whole header */ +.tableHeader { + background: #1c1d2b; + border-bottom: 1px solid #212235; +} +/* Targets individual header */ +.tableHeader th { + align-items: center; + gap: 24px; + padding: 13px 24px; + text-align: left; + color: #85869b; + color: color(display-p3 0.5216 0.5255 0.6); + font-family: Inter; + font-size: 13px; + font-style: normal; + flex: 1 0 0; + font-weight: 500; + line-height: normal; +} + +/* Targets individual body */ +.tableBody td { + padding: 12px 24px; + color: #eeeffd; + color: color(display-p3 0.9333 0.9373 0.9882); + font-family: Inter; + font-size: 13px; + font-style: normal; + font-weight: 500; + line-height: normal; +} +.tableBody tr:hover { + border-bottom: 1px solid rgba(129, 135, 255, 0.25); + border-bottom: 1px solid color(display-p3 0.5098 0.5294 1 / 0.25); + background: rgba(129, 135, 255, 0.05); + background: color(display-p3 0.5098 0.5294 1 / 0.05); +} + +.tableActions { + display: flex; + width: 100px; + justify-content: center; + align-items: center; + gap: 12px; + align-self: stretch; +} +.viewBtn, +.deleteBtn { + display: flex; + padding: 6px; + flex-direction: column; + justify-content: center; + align-items: center; + aspect-ratio: 1/1; + border-radius: 100px; + color: #969af9; + border: none; + border: 1px solid transparent; + background: transparent; + outline: none; + cursor: pointer; +} + +.viewBtn:hover, +.deleteBtn:hover { + border-radius: 100px; + color: #fff; + color: color(display-p3 1 1 1); + border: 1px solid #959aff; + border: 1px solid color(display-p3 0.5892 0.6031 0.9766); + background: linear-gradient(180deg, #696b95 0%, #20202d 100%); + background: linear-gradient( + 180deg, + color(display-p3 0.4118 0.4196 0.5725) 0%, + color(display-p3 0.1241 0.1265 0.1725) 100% + ); +}