diff --git a/src/app/globals.css b/src/app/globals.css index b5c61c95..cc294bc0 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,3 +1,22 @@ @tailwind base; @tailwind components; @tailwind utilities; + + +::-webkit-scrollbar { + width: 4px; +} + +::-webkit-scrollbar-track { + background: #919191; + border-radius: 2px; +} + +::-webkit-scrollbar-thumb { + background: #C0C0C0; + border-radius: 5px; +} + +::-webkit-scrollbar-thumb:hover { + background: #C0C0C0; +} \ No newline at end of file diff --git a/src/app/index.ts b/src/app/index.ts index b351a848..b90a9a6b 100644 --- a/src/app/index.ts +++ b/src/app/index.ts @@ -1 +1 @@ -export { default as CounterPage } from "./counter/page"; +export { TeckStackPage } from "./tech-stack/"; diff --git a/src/app/layout.tsx b/src/app/layout.tsx index c0cca4d2..19afe4df 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -9,7 +9,6 @@ export const metadata: Metadata = { description: "Generated by create next app", }; - // If loading a variable font, you don't need to specify the font weight const inter = Inter({ weight: ["400", "500", "600", "700"], diff --git a/src/app/tech-stack/components/TechStackCard.tsx b/src/app/tech-stack/components/TechStackCard.tsx new file mode 100644 index 00000000..2b1c33a9 --- /dev/null +++ b/src/app/tech-stack/components/TechStackCard.tsx @@ -0,0 +1,37 @@ +import { TechItem } from "./fixtures/TechStack"; +import { Avatar, EditButton } from "@/components"; + +interface TechStackCardProps { + title: string; + data: TechItem[]; +} + +export default function TechStackCard({ title, data }: TechStackCardProps) { + return ( +
+
+

+ {title} +

+ +
+
+ +
+
+ ); +} diff --git a/src/app/tech-stack/components/TechStackContainer.module.css b/src/app/tech-stack/components/TechStackContainer.module.css new file mode 100644 index 00000000..61221827 --- /dev/null +++ b/src/app/tech-stack/components/TechStackContainer.module.css @@ -0,0 +1,3 @@ +.tech-container-width { + max-width: 85.5625rem; +} \ No newline at end of file diff --git a/src/app/tech-stack/components/TechStackContainer.tsx b/src/app/tech-stack/components/TechStackContainer.tsx new file mode 100644 index 00000000..97e0e6d6 --- /dev/null +++ b/src/app/tech-stack/components/TechStackContainer.tsx @@ -0,0 +1,29 @@ +import { techStack } from "./fixtures/TechStack"; +import styles from "./TechStackContainer.module.css"; +import { TechStackCard } from "."; + +export default function TechStackContainer() { + return ( +
+ +
+ ); +} diff --git a/src/app/tech-stack/components/fixtures/TechStack.ts b/src/app/tech-stack/components/fixtures/TechStack.ts new file mode 100644 index 00000000..56c216f9 --- /dev/null +++ b/src/app/tech-stack/components/fixtures/TechStack.ts @@ -0,0 +1,52 @@ +import { CardType } from "../types/types"; + +export interface TechItem { + id: number; + value: string; + users: string[]; +} + +export const techStack: Record = { + Frontend: [ + { id: 1, value: "JavaScript", users: ["Tim", "John"] }, + { id: 2, value: "React", users: ["John"] }, + { id: 3, value: "Vue", users: ["Myke", "Josh", "Jack"] }, + { id: 4, value: "Angular", users: ["John"] }, + { id: 5, value: "TypeScript", users: ["Jack", "John"] }, + ], + "CSS Library": [ + { id: 1, value: "Tailwind", users: ["Tim", "John"] }, + { id: 2, value: "Bootstrap", users: ["John"] }, + { id: 3, value: "Daisy UI", users: ["Myke", "Josh", "Jack"] }, + { id: 4, value: "Vanilla CSS", users: ["John"] }, + { id: 5, value: "Materialize", users: ["Jack", "John"] }, + ], + Backend: [ + { id: 1, value: "Node", users: ["Tim", "John"] }, + { id: 2, value: "NET", users: ["John"] }, + { id: 3, value: "Ruby", users: ["Myke", "Josh", "Jack"] }, + { id: 4, value: "Java", users: ["John"] }, + { id: 5, value: "Python", users: ["Jack", "John"] }, + ], + "Project Management": [ + { id: 1, value: "Jira", users: ["Tim", "John"] }, + { id: 2, value: "GitLab", users: ["John"] }, + { id: 3, value: "Trello", users: ["Myke", "Josh", "Jack"] }, + { id: 4, value: "Notion", users: ["John"] }, + { id: 5, value: "Obsidian", users: ["Jack", "John"] }, + ], + "Cloud Provider": [ + { id: 1, value: "AWS", users: ["Tim", "John"] }, + { id: 2, value: "Azure", users: ["John"] }, + { id: 3, value: "Firebase", users: ["Myke", "Josh", "Jack"] }, + { id: 4, value: "Linode", users: ["John"] }, + { id: 5, value: "Google Cloud", users: ["Jack", "John"] }, + ], + Hosting: [ + { id: 1, value: "Heroku", users: ["Tim", "John"] }, + { id: 2, value: "Netlify", users: ["John"] }, + { id: 3, value: "Github", users: ["Myke", "Josh", "Jack"] }, + { id: 4, value: "Render", users: ["John"] }, + { id: 5, value: "Bluocean", users: ["Jack", "John"] }, + ], +}; diff --git a/src/app/tech-stack/components/index.ts b/src/app/tech-stack/components/index.ts new file mode 100644 index 00000000..b49b4cb9 --- /dev/null +++ b/src/app/tech-stack/components/index.ts @@ -0,0 +1,2 @@ +export { default as TechStackCard } from "./TechStackCard"; +export { default as TechStackContainer } from "./TechStackContainer"; diff --git a/src/app/tech-stack/components/types/types.ts b/src/app/tech-stack/components/types/types.ts new file mode 100644 index 00000000..23b66261 --- /dev/null +++ b/src/app/tech-stack/components/types/types.ts @@ -0,0 +1,7 @@ +export type CardType = + | "Frontend" + | "CSS Library" + | "Backend" + | "Project Management" + | "Cloud Provider" + | "Hosting"; diff --git a/src/app/tech-stack/index.ts b/src/app/tech-stack/index.ts new file mode 100644 index 00000000..0adbbb0d --- /dev/null +++ b/src/app/tech-stack/index.ts @@ -0,0 +1 @@ +export { default as TeckStackPage } from "./page"; diff --git a/src/app/tech-stack/page.tsx b/src/app/tech-stack/page.tsx new file mode 100644 index 00000000..1eacd571 --- /dev/null +++ b/src/app/tech-stack/page.tsx @@ -0,0 +1,5 @@ +import { TechStackContainer } from "./components"; + +export default function TeckStackPage() { + return ; +} diff --git a/src/components/Avatar.tsx b/src/components/Avatar.tsx new file mode 100644 index 00000000..f12304ba --- /dev/null +++ b/src/components/Avatar.tsx @@ -0,0 +1,7 @@ +export default function Avatar() { + return ( +
+
+
+ ); +} diff --git a/src/components/EditButton.tsx b/src/components/EditButton.tsx new file mode 100644 index 00000000..94885b63 --- /dev/null +++ b/src/components/EditButton.tsx @@ -0,0 +1,18 @@ +import { PencilSquareIcon } from "@heroicons/react/24/solid"; + +interface EditButtonProps { + title: string; +} + +export default function EditButton({ title }: EditButtonProps) { + return ( + + ); +} diff --git a/src/components/index.ts b/src/components/index.ts index 396a2b73..2b77dcee 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -1 +1,3 @@ export { default as StoreProvider } from "./StoreProvider"; +export { default as Avatar } from "./Avatar"; +export { default as EditButton } from "./EditButton";