Skip to content

Commit

Permalink
Basic theming + comps: Navbar, Button,Message
Browse files Browse the repository at this point in the history
  • Loading branch information
VladMihalache committed Oct 28, 2024
1 parent b2cc982 commit ce912a6
Show file tree
Hide file tree
Showing 9 changed files with 105 additions and 115 deletions.
3 changes: 0 additions & 3 deletions .eslintrc.json

This file was deleted.

11 changes: 4 additions & 7 deletions app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,15 @@

:root {
--background: #ffffff;
--foreground: #171717;
--foreground: #898989;
}

@media (prefers-color-scheme: dark) {
:root {
.dark{
--background: #0a0a0a;
--foreground: #ededed;
}
}
}

body {
color: var(--foreground);
background: var(--background);
color: var(--foreground);
font-family: Arial, Helvetica, sans-serif;
}
123 changes: 29 additions & 94 deletions app/page.tsx
Original file line number Diff line number Diff line change
@@ -1,101 +1,36 @@
import Image from "next/image";
import Image from 'next/image';
import NextLink from 'next/link';
import { RiRobot2Line } from 'react-icons/ri';
import Navbar from '@/components/navbar';
import Button from '@/components/button';
import Message from '@/components/chat-components/message';

export default function Home() {
return (
<div className="grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)]">
<main className="flex flex-col gap-8 row-start-2 items-center sm:items-start">
<Image
className="dark:invert"
src="/next.svg"
alt="Next.js logo"
width={180}
height={38}
priority
/>
<ol className="list-inside list-decimal text-sm text-center sm:text-left font-[family-name:var(--font-geist-mono)]">
<li className="mb-2">
Get started by editing{" "}
<code className="bg-black/[.05] dark:bg-white/[.06] px-1 py-0.5 rounded font-semibold">
app/page.tsx
</code>
.
</li>
<li>Save and see your changes instantly.</li>
</ol>

<div className="flex gap-4 items-center flex-col sm:flex-row">
<a
className="rounded-full border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5"
href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer"
>
<Image
className="dark:invert"
src="/vercel.svg"
alt="Vercel logomark"
width={20}
height={20}
/>
Deploy now
</a>
<a
className="rounded-full border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5 sm:min-w-44"
href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer"
>
Read our docs
</a>
</div>
<div className="grid grid-rows-[20px_1fr_20px] justify-items-center min-h-screen">
<main className="flex flex-col w-full lg:max-w-[55vw] mt-10 gap-8 items-center sm:items-start">
<Navbar />
<Message>
<p className="font-medium">
Hello! Welcome to LSEF. I'm here to help you.
</p>
</Message>
<Message>
<p className="font-medium mb-3">Please select a Stock Exchange.</p>
<Button className="w-full items-center justify-center mb-2">
London Stock Exchange
</Button>
<Button className="w-full items-center justify-center mb-2">
New York Stock Exchange
</Button>
<Button className="w-full items-center justify-center mb-2">
NASDAQ Stock Exchange
</Button>
</Message>
<Message variant="user">
<p className="font-medium">London Stock Exchange</p>
</Message>
</main>
<footer className="row-start-3 flex gap-6 flex-wrap items-center justify-center">
<a
className="flex items-center gap-2 hover:underline hover:underline-offset-4"
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"
>
<Image
aria-hidden
src="/file.svg"
alt="File icon"
width={16}
height={16}
/>
Learn
</a>
<a
className="flex items-center gap-2 hover:underline hover:underline-offset-4"
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"
>
<Image
aria-hidden
src="/window.svg"
alt="Window icon"
width={16}
height={16}
/>
Examples
</a>
<a
className="flex items-center gap-2 hover:underline hover:underline-offset-4"
href="https://nextjs.org?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer"
>
<Image
aria-hidden
src="/globe.svg"
alt="Globe icon"
width={16}
height={16}
/>
Go to nextjs.org →
</a>
</footer>
</div>
);
}
20 changes: 20 additions & 0 deletions components/button/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import Image from 'next/image';
import NextLink from 'next/link';
import { RiRobot2Line } from 'react-icons/ri';

export default function Button(props: {
className?: string;
children: any;
variant?: 'primary' | 'outline';
type?: 'submit';
}) {
const { className, variant, type, children } = props;
return (
<button
className={`flex p-2 rounded-lg bg-white duration-100 hover:bg-white/60 active:bg-white/80 ${className}`}
type={type}
>
{children}
</button>
);
}
16 changes: 16 additions & 0 deletions components/chat-components/message.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
export default function Message(props: {
className?: string;
children: any;
variant?: 'bot' | 'user';
}) {
const { className, variant, children } = props;
return (
<div
className={`message-bot rounded-lg ${
variant === 'user' ? 'ms-auto bg-gray-300' : 'bg-primary-50'
} p-4 ${className}`}
>
{children}
</div>
);
}
16 changes: 16 additions & 0 deletions components/navbar/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import Image from 'next/image';
import NextLink from 'next/link';
import { RiRobot2Line } from 'react-icons/ri';

export default function Navbar() {
return (
<div className="flex bg-primary-500 w-full p-3 items-center rounded-t-xl">
<NextLink href="/home" className="me-2">
<div className="rounded-full flex border-[1px] border-white/25 p-3">
<RiRobot2Line className="text-white w-5 h-5" />
</div>
</NextLink>
<p className="font-bold text-white">LSEG chatbot</p>
</div>
);
}
10 changes: 6 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,20 @@
"lint": "next lint"
},
"dependencies": {
"next": "15.0.1",
"prettier": "^3.3.3",
"react": "19.0.0-rc-69d4b800-20241021",
"react-dom": "19.0.0-rc-69d4b800-20241021",
"next": "15.0.1"
"react-icons": "^5.3.0"
},
"devDependencies": {
"typescript": "^5",
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18",
"eslint": "^8",
"eslint-config-next": "15.0.1",
"postcss": "^8",
"tailwindcss": "^3.4.1",
"eslint": "^8",
"eslint-config-next": "15.0.1"
"typescript": "^5"
}
}
19 changes: 13 additions & 6 deletions tailwind.config.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
import type { Config } from "tailwindcss";
import type { Config } from 'tailwindcss';

const config: Config = {
content: [
"./pages/**/*.{js,ts,jsx,tsx,mdx}",
"./components/**/*.{js,ts,jsx,tsx,mdx}",
"./app/**/*.{js,ts,jsx,tsx,mdx}",
'./pages/**/*.{js,ts,jsx,tsx,mdx}',
'./components/**/*.{js,ts,jsx,tsx,mdx}',
'./app/**/*.{js,ts,jsx,tsx,mdx}',
],
theme: {
extend: {
colors: {
background: "var(--background)",
foreground: "var(--foreground)",
background: 'var(--background)',
foreground: 'var(--foreground)',
primary: {
50: '#eaf5fe',
500: '#011ffd',
},
gray: {
300: '#f2f2f2',
},
},
},
},
Expand Down
2 changes: 1 addition & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
Expand Down

0 comments on commit ce912a6

Please sign in to comment.