diff --git a/package.json b/package.json
index 974fad4..bcd8618 100644
--- a/package.json
+++ b/package.json
@@ -16,8 +16,11 @@
"devDependencies": {
"@types/node": "^18.7.13",
"@types/react": "^18.0.17",
+ "autoprefixer": "^10.4.8",
"eslint": "8.23.0",
"eslint-config-next": "12.2.5",
+ "postcss": "^8.4.16",
+ "tailwindcss": "^3.1.8",
"typescript": "^4.8.2"
}
}
diff --git a/postcss.config.js b/postcss.config.js
new file mode 100644
index 0000000..33ad091
--- /dev/null
+++ b/postcss.config.js
@@ -0,0 +1,6 @@
+module.exports = {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+}
diff --git a/src/Models.ts b/src/Models.ts
new file mode 100644
index 0000000..8d88954
--- /dev/null
+++ b/src/Models.ts
@@ -0,0 +1,22 @@
+export const enum Category {
+ Gin = "Gin", Vodka = "Vodka", Brandy = "Brandy", Cachaca ="Cachaça"
+}
+
+export interface Brand{
+ id: number;
+ name: string;
+ fullName: string;
+ logo: any;
+ description: string;
+ location: string;
+ categories: Category[];
+}
+
+export interface Product{
+ id: number;
+ name: string;
+ fullName: string;
+ price: number;
+ image: any;
+ category: Category;
+}
diff --git a/src/api/brands.ts b/src/api/brands.ts
new file mode 100644
index 0000000..55dc89c
--- /dev/null
+++ b/src/api/brands.ts
@@ -0,0 +1,35 @@
+import { Brand, Category } from "src/Models";
+import baldorianLogo from "../assets/images/Brands/baldoriaLogo.png";
+import novoFogoLogo from "../assets/images/Brands/novoFogo.png";
+
+const baldoria = {
+ id: 1,
+ name: "Baldoria",
+ fullName: "Baldoria Vermounth",
+ logo: baldorianLogo,
+ description: "Badoria rosso is a red vermouth that balances fresh, herby bitter notes against. Kiss My Rhubarb takes its origins from an old handwritten recipe from co-creators Niels’ and Wouters’ rebellious grandparents.",
+ location: "London, United Kindom",
+ categories: [Category.Gin, Category.Vodka],
+}
+const novoFogo = {
+ id: 2,
+ name: "novoFogo",
+ fullName: "Novo Fogo",
+ logo: novoFogoLogo,
+ description: "100%-organic, zero-waste cachaças from the Brazilian rainforest that are made with the best ingredients and the best quality.",
+ location: "Morretes, Brazil",
+ categories: [Category.Cachaca],
+}
+
+function getBrandByName(name: string): Brand{
+ if(name == "novoFogo"){
+ return novoFogo
+ }else{
+ return baldoria
+ }
+}
+function getAllBrands(): Brand[]{
+ return [baldoria, novoFogo]
+}
+
+export default {getBrandByName, getAllBrands}
\ No newline at end of file
diff --git a/src/api/products.ts b/src/api/products.ts
new file mode 100644
index 0000000..828a8c8
--- /dev/null
+++ b/src/api/products.ts
@@ -0,0 +1,182 @@
+// This is a fake api for testing purposes
+
+//Import Baldoria images
+import branneri from "../assets/images/Products/branneri.jpg";
+import gaston from "../assets/images/Products/gaston.jpg";
+import silentPool from "../assets/images/Products/silentPool.jpg";
+import umami from "../assets/images/Products/umami.jpg";
+import { Category, Product } from "src/Models";
+
+// Import novoFogo images
+import chameleon from "../assets/images/Products/chameleon1.jpg";
+import tanager from "../assets/images/Products/tanager1.jpg";
+import barrelAged from "../assets/images/Products/barrelAged1.jpg";
+import silver from "../assets/images/Products/silver1.jpg";
+
+
+const baldoriaProducts =
+ [
+ {
+ id: 1,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: umami,
+ }, {
+ id: 2,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: silentPool,
+ }, {
+ id: 3,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: branneri,
+ }, {
+ id: 4,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: gaston,
+ },
+ // second
+ {
+ id: 5,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: umami,
+ }, {
+ id: 6,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: silentPool,
+ }, {
+ id: 7,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: branneri,
+ }, {
+ id: 8,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: gaston,
+ },
+ // third
+ {
+ id: 9,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: umami,
+ }, {
+ id: 10,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: silentPool,
+ }, {
+ id: 11,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: branneri,
+ }, {
+ id: 12,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: gaston,
+ },
+ // fourth
+ {
+ id: 13,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: umami,
+ }, {
+ id: 14,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: silentPool,
+ }, {
+ id: 15,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: branneri,
+ }, {
+ id: 16,
+ name: "gaston",
+ fullName: "MR GASTON",
+ price: 32,
+ category: Category.Brandy,
+ image: gaston,
+ }
+ ]
+const novoFogoProducts =[
+ {
+ id: 1,
+ name: "chameleon",
+ fullName: "Chameleon",
+ price: 41,
+ category: Category.Cachaca,
+ image: chameleon,
+ },
+ {
+ id: 2,
+ name: "tanager",
+ fullName: "Tanager",
+ price: 49,
+ category: Category.Cachaca,
+ image: tanager,
+ },
+ {
+ id: 3,
+ name: "barrelAged",
+ fullName: "Barrel-Aged",
+ price: 48,
+ category: Category.Cachaca,
+ image: barrelAged,
+ },
+ {
+ id: 4,
+ name: "silver",
+ fullName: "Silver",
+ price: 36,
+ category: Category.Cachaca,
+ image: silver,
+ },
+]
+
+function getProductsByBrand(name: string): Product[] {
+ if(name == "novoFogo"){
+ return novoFogoProducts
+ }else{
+ return baldoriaProducts
+ }
+}
+
+export default { getProductsByBrand }
\ No newline at end of file
diff --git a/src/assets/icons/addIcon.tsx b/src/assets/icons/addIcon.tsx
new file mode 100644
index 0000000..5cbce8b
--- /dev/null
+++ b/src/assets/icons/addIcon.tsx
@@ -0,0 +1,7 @@
+export default function AddIcon() {
+ return
+
+
+
+
+}
\ No newline at end of file
diff --git a/src/assets/icons/basketIcon.tsx b/src/assets/icons/basketIcon.tsx
new file mode 100644
index 0000000..59cf32b
--- /dev/null
+++ b/src/assets/icons/basketIcon.tsx
@@ -0,0 +1,9 @@
+export default function BasketIcon() {
+ return(
+
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/assets/icons/categoriesIcon.tsx b/src/assets/icons/categoriesIcon.tsx
new file mode 100644
index 0000000..b6224b7
--- /dev/null
+++ b/src/assets/icons/categoriesIcon.tsx
@@ -0,0 +1,8 @@
+export default function CategoriesIcon() {
+ return
+
+
+
+
+
+}
\ No newline at end of file
diff --git a/src/assets/icons/contacts/facebook.tsx b/src/assets/icons/contacts/facebook.tsx
new file mode 100644
index 0000000..e2336a2
--- /dev/null
+++ b/src/assets/icons/contacts/facebook.tsx
@@ -0,0 +1,6 @@
+export default function AddIcon() {
+ return
+
+
+
+}
\ No newline at end of file
diff --git a/src/assets/icons/contacts/instagram.tsx b/src/assets/icons/contacts/instagram.tsx
new file mode 100644
index 0000000..26cbc22
--- /dev/null
+++ b/src/assets/icons/contacts/instagram.tsx
@@ -0,0 +1,5 @@
+export default function AddIcon() {
+ return
+
+
+}
\ No newline at end of file
diff --git a/src/assets/icons/contacts/linkedin.tsx b/src/assets/icons/contacts/linkedin.tsx
new file mode 100644
index 0000000..43d508a
--- /dev/null
+++ b/src/assets/icons/contacts/linkedin.tsx
@@ -0,0 +1,13 @@
+export default function AddIcon() {
+ return
+
+
+
+
+
+
+
+
+
+
+}
\ No newline at end of file
diff --git a/src/assets/icons/contacts/medium.tsx b/src/assets/icons/contacts/medium.tsx
new file mode 100644
index 0000000..c7965e8
--- /dev/null
+++ b/src/assets/icons/contacts/medium.tsx
@@ -0,0 +1,12 @@
+export default function AddIcon() {
+ return
+
+
+
+
+
+
+
+
+
+}
\ No newline at end of file
diff --git a/src/assets/icons/locationIcon.tsx b/src/assets/icons/locationIcon.tsx
new file mode 100644
index 0000000..a03946b
--- /dev/null
+++ b/src/assets/icons/locationIcon.tsx
@@ -0,0 +1,7 @@
+export default function LocationIcon() {
+ return (
+
+
+
+ )
+}
diff --git a/src/assets/icons/profileIcon.tsx b/src/assets/icons/profileIcon.tsx
new file mode 100644
index 0000000..f73d274
--- /dev/null
+++ b/src/assets/icons/profileIcon.tsx
@@ -0,0 +1,7 @@
+export default function ProfileIcon() {
+ return
+
+
+
+
+}
\ No newline at end of file
diff --git a/src/assets/images/Brands/baldoriaLogo.png b/src/assets/images/Brands/baldoriaLogo.png
new file mode 100644
index 0000000..1137d73
Binary files /dev/null and b/src/assets/images/Brands/baldoriaLogo.png differ
diff --git a/src/assets/images/Brands/novoFogo.png b/src/assets/images/Brands/novoFogo.png
new file mode 100644
index 0000000..f76fe19
Binary files /dev/null and b/src/assets/images/Brands/novoFogo.png differ
diff --git a/src/assets/images/Products/barrelAged1.jpg b/src/assets/images/Products/barrelAged1.jpg
new file mode 100644
index 0000000..5fbf010
Binary files /dev/null and b/src/assets/images/Products/barrelAged1.jpg differ
diff --git a/src/assets/images/Products/branneri.jpg b/src/assets/images/Products/branneri.jpg
new file mode 100644
index 0000000..624901f
Binary files /dev/null and b/src/assets/images/Products/branneri.jpg differ
diff --git a/src/assets/images/Products/chameleon1.jpg b/src/assets/images/Products/chameleon1.jpg
new file mode 100644
index 0000000..02276e1
Binary files /dev/null and b/src/assets/images/Products/chameleon1.jpg differ
diff --git a/src/assets/images/Products/gaston.jpg b/src/assets/images/Products/gaston.jpg
new file mode 100644
index 0000000..24912da
Binary files /dev/null and b/src/assets/images/Products/gaston.jpg differ
diff --git a/src/assets/images/Products/silentPool.jpg b/src/assets/images/Products/silentPool.jpg
new file mode 100644
index 0000000..7905fb6
Binary files /dev/null and b/src/assets/images/Products/silentPool.jpg differ
diff --git a/src/assets/images/Products/silver1.jpg b/src/assets/images/Products/silver1.jpg
new file mode 100644
index 0000000..c933198
Binary files /dev/null and b/src/assets/images/Products/silver1.jpg differ
diff --git a/src/assets/images/Products/tanager1.jpg b/src/assets/images/Products/tanager1.jpg
new file mode 100644
index 0000000..d107881
Binary files /dev/null and b/src/assets/images/Products/tanager1.jpg differ
diff --git a/src/assets/images/Products/umami.jpg b/src/assets/images/Products/umami.jpg
new file mode 100644
index 0000000..f2c81de
Binary files /dev/null and b/src/assets/images/Products/umami.jpg differ
diff --git a/src/assets/logo.tsx b/src/assets/logo.tsx
new file mode 100644
index 0000000..5557044
--- /dev/null
+++ b/src/assets/logo.tsx
@@ -0,0 +1,11 @@
+export default function Logo() {
+ return (
+
+
+
+
+
+
+ )
+
+}
\ No newline at end of file
diff --git a/src/assets/logoAlt.tsx b/src/assets/logoAlt.tsx
new file mode 100644
index 0000000..04f0012
--- /dev/null
+++ b/src/assets/logoAlt.tsx
@@ -0,0 +1,11 @@
+export default function Logo() {
+ return (
+
+
+
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/components/BrandInfo.tsx b/src/components/BrandInfo.tsx
new file mode 100644
index 0000000..1752e23
--- /dev/null
+++ b/src/components/BrandInfo.tsx
@@ -0,0 +1,54 @@
+import { Brand, Category } from "src/Models";
+import Image from 'next/image';
+import brandApi from '../api/brands';
+
+import LocationIcon from "../assets/icons/locationIcon";
+import CategoriesIcon from "../assets/icons/categoriesIcon";
+
+import styles from "../styles/BrandInfo.module.css";
+
+interface BrandProps {
+ name: string;
+}
+
+export default function BrandComponent(props: BrandProps) {
+
+ //simulation of api call
+ let brandData: Brand | null = brandApi.getBrandByName(props.name);
+
+ if(brandData != null) {
+ return (
+
+
+ {/* Brand Logo */}
+
+
+ {/* Brand Details */}
+
+
{brandData?.fullName}
+
{brandData?.description}
+
Read More
+
+
+
+
+
Location
+
{brandData?.location}
+
+
+
+
+
+
Product Categories
+
+ {/* Categorist list */}
+ {brandData?.categories.map((category: Category) => {
+ return
{category}
+ })}
+
+
+
+ )}else {
+ return
+ }
+}
\ No newline at end of file
diff --git a/src/components/BrandProducts.tsx b/src/components/BrandProducts.tsx
new file mode 100644
index 0000000..39c8c47
--- /dev/null
+++ b/src/components/BrandProducts.tsx
@@ -0,0 +1,29 @@
+import Image from "next/image";
+import { Product } from "src/Models";
+import styles from "../styles/BrandProducts.module.css";
+import productsApi from "../api/products";
+import AddIcon from "../assets/icons/addIcon";
+
+interface ProductsProps {
+ brandName: string;
+}
+
+function ProductCard(product: Product) {
+ return (
+
+
MR GASTON €{product.price}
+
+
)
+}
+
+export default function Products(props: ProductsProps) {
+
+ //Simulation of a call to the fake api
+ let products = productsApi.getProductsByBrand(props.brandName);
+
+ return
+ {products?.map((product: Product) => {
+ return ProductCard(product);
+ })}
+
+}
\ No newline at end of file
diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx
new file mode 100644
index 0000000..ce7f55f
--- /dev/null
+++ b/src/components/Footer.tsx
@@ -0,0 +1,53 @@
+import Logo from "../assets/logoAlt";
+import styles from "../styles/Footer.module.css";
+import MediumIcon from "../assets/icons/contacts/medium";
+import FacebookIcon from "../assets/icons/contacts/facebook";
+import InstagramIcon from "../assets/icons/contacts/instagram";
+import Linkedin from "../assets/icons/contacts/linkedin";
+
+export default function Footer() {
+ return(
+
+
+
+
+
+
Community
+
Lexir for Brands
+
Business Buyers
+
Sales Affiliates
+
+
+
Platform
+
Resources
+
Pricing
+
Get Started
+
+
+
Company
+
About
+
Contact
+
Legal
+
+
+
Lexir Shops
+
Brands
+
Spirits
+
Wine
+
Blog
+
+
+
+
+
+
+
+
2022 Lexir Inc.
+
+ Privacy
+ Terms of Service
+
+
+
+
+)}
\ No newline at end of file
diff --git a/src/components/NavBar.tsx b/src/components/NavBar.tsx
new file mode 100644
index 0000000..067d52e
--- /dev/null
+++ b/src/components/NavBar.tsx
@@ -0,0 +1,36 @@
+import Logo from "../assets/logo";
+import ProfileIcon from "../assets/icons/profileIcon";
+import BasketIcon from "../assets/icons/basketIcon";
+import Link from 'next/link'
+
+
+import styles from "../styles/NavBar.module.css";
+
+export default function NavBar() {
+ return (
+
+
+
+ {/* H1 Lexir is "here" but invisible in order to get SEO advantages */}
+ Lexir
+
+
+
+
+
+
+ PRODUCTS
+ BRANDS
+ HELLO, LEONARDO
+ CART
+
+
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx
index f740d02..303a4a4 100644
--- a/src/pages/_app.tsx
+++ b/src/pages/_app.tsx
@@ -1,7 +1,15 @@
+import Footer from "@components/Footer";
+import NavBar from "@components/NavBar";
import "../styles/globals.css";
function MyApp({ Component, pageProps }: any) {
- return ;
+ return (
+
+
+
+
+
+ );
}
export default MyApp;
diff --git a/src/pages/brand/[name]/index.tsx b/src/pages/brand/[name]/index.tsx
new file mode 100644
index 0000000..9afae39
--- /dev/null
+++ b/src/pages/brand/[name]/index.tsx
@@ -0,0 +1,18 @@
+import { useRouter } from 'next/router'
+import BrandInfo from "@components/BrandInfo";
+import Products from "@components/BrandProducts";
+import styles from "../../../styles/Home.module.css";
+
+export default function Brand() {
+ const router = useRouter()
+ const name = router.query.name as string
+ return (
+
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/pages/brand/index.tsx b/src/pages/brand/index.tsx
new file mode 100644
index 0000000..615284c
--- /dev/null
+++ b/src/pages/brand/index.tsx
@@ -0,0 +1,30 @@
+import { Brand } from "src/Models";
+import Link from 'next/link'
+import styles from '../../styles/BrandPage.module.css'
+import brands from "../../api/brands";
+import Image from "next/image";
+
+function BrandCard(brand: Brand) {
+ return (
+ )
+}
+
+export default function BrandIndex() {
+
+ const brandsList: Brand[] = brands.getAllBrands();
+
+ return (
+
+
Choose your favorite brand to see its products
+
+ {brandsList.map((brand) => {
+ return
{BrandCard(brand)}
;
+ })}
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index dbeaec2..53d74fc 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -1,25 +1,18 @@
import Head from "next/head";
+
import styles from "../styles/Home.module.css";
export default function Home() {
return (
-
+
Lexir Frontend Assessment!
-
-
-
-
- Get started by editing{" "}
- pages/index.tsx
-
-
+
Welcome! click on brands to discover our partners
+
);
}
diff --git a/src/styles/BrandInfo.module.css b/src/styles/BrandInfo.module.css
new file mode 100644
index 0000000..6e06b38
--- /dev/null
+++ b/src/styles/BrandInfo.module.css
@@ -0,0 +1,42 @@
+.lato{
+ font-family: 'Lato', sans-serif;
+}
+
+.brandName{
+ font-family: source-serif-pro, serif;
+ font-weight: 700;
+ font-style: bold;
+ font-size: 35px;
+}
+.brandDescription{
+ font-weight: 400;
+ font-size: 18px;
+ line-height: 25px;
+ color: #2D2D2D;
+}
+
+.btnReadMore{
+ font-weight: 700;
+ font-size: 20px;
+ line-height: 25px;
+ color: #1C8C64
+}
+
+.location{
+ font-size: 16px;
+ line-height: 25px;
+ color: black;
+}
+.locationInfo{
+ font-size: 22px;
+ line-height: 35px;
+ color: #595959;
+}
+.categories{
+ font-size: 16px;
+ line-height: 25px;
+ color: black;
+}
+.category{
+ background-color: #F9F9F9;
+}
\ No newline at end of file
diff --git a/src/styles/BrandPage.module.css b/src/styles/BrandPage.module.css
new file mode 100644
index 0000000..d118770
--- /dev/null
+++ b/src/styles/BrandPage.module.css
@@ -0,0 +1,4 @@
+.title{
+ text-align: center;
+ font-size: 35px;
+}
\ No newline at end of file
diff --git a/src/styles/BrandProducts.module.css b/src/styles/BrandProducts.module.css
new file mode 100644
index 0000000..9d345ec
--- /dev/null
+++ b/src/styles/BrandProducts.module.css
@@ -0,0 +1,21 @@
+.lato{
+ font-family: 'Lato', sans-serif;
+ font-style: normal;
+}
+.bgCardColor{
+ background-color: #F2F2F2;
+}
+.productName{
+ font-size: 14px;
+ line-height: 25px;
+ color: #2D2D2D;
+}
+.price{
+ color:#6B6B6B
+}
+.category{
+ color: #8F8F8F;
+}
+.addButon{
+ background-color: #F2F2F2
+}
\ No newline at end of file
diff --git a/src/styles/Footer.module.css b/src/styles/Footer.module.css
new file mode 100644
index 0000000..c1ea7af
--- /dev/null
+++ b/src/styles/Footer.module.css
@@ -0,0 +1,17 @@
+.footer{
+ color: #fff;
+ background-color: #2D2D2D;
+}
+
+.sectionName{
+ text-transform: uppercase;
+ color: #8F8F8F
+}
+.hr{
+ border: none;
+ height: 1px;
+ background-color: #8F8F8F; /* Modern Browsers */
+}
+.copyRight{
+ color: #8F8F8F;
+}
\ No newline at end of file
diff --git a/src/styles/Home.module.css b/src/styles/Home.module.css
index 708cbed..530a766 100644
--- a/src/styles/Home.module.css
+++ b/src/styles/Home.module.css
@@ -6,10 +6,6 @@
min-height: 100vh;
padding: 4rem 0;
flex: 1;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
}
.title a {
color: #0070f3;
@@ -39,6 +35,17 @@
font-size: 1.5rem;
}
+.intro{
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin: auto;
+ height: 70vh;
+ font-size: 40px;
+ padding: auto 4rem;
+ text-align: center;
+}
+
@media (max-width: 600px) {
.grid {
width: 100%;
diff --git a/src/styles/NavBar.module.css b/src/styles/NavBar.module.css
new file mode 100644
index 0000000..b5cc96f
--- /dev/null
+++ b/src/styles/NavBar.module.css
@@ -0,0 +1,34 @@
+.navList{
+ font-family: 'Lato', sans-serif;
+ font-weight: 500;
+ font-size: 14px;
+ line-height: 20px;
+ color: #2D2D2D;
+}
+
+.navList li{
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+}
+
+.hamburguer{
+ display: inline-block;
+ width: 3rem;
+ margin: auto 0;
+}
+.line{
+ margin: 0.4rem;
+ height: 3px;
+ max-width: 1.8rem;
+ background-color: black;
+ display: block;
+ border-radius: 5px;
+}
+
+
+@media screen and (min-width: 768px){
+ .hamburguer{
+ display: none;
+ }
+}
\ No newline at end of file
diff --git a/src/styles/globals.css b/src/styles/globals.css
index 4f18421..153be44 100644
--- a/src/styles/globals.css
+++ b/src/styles/globals.css
@@ -1,9 +1,14 @@
+/* Font Import from adobe*/
+/* I created a project with the fonts needed*/
+@import url("https://use.typekit.net/fqn1otf.css");
+
html,
body {
+ max-width: 1440px;
padding: 0;
- margin: 0;
+ margin: 0 auto;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
- Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
+ Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Lato sans-serif;
}
a {
@@ -15,6 +20,35 @@ a {
box-sizing: border-box;
}
+main{
+ display: flex;
+ margin-top: 2rem;
+}
+article{
+ width: 80%;
+}
+section{
+ width: 100%;
+ margin-bottom: 5rem;
+}
+@media (min-width: 768px) {
+ article{
+ width: 65%;
+ }
+ section{
+ width: 100%;
+ }
+}
+@media (min-width: 914px) {
+ article{
+ width: 36%;
+ }
+ section{
+ width: 70%;
+ }
+}
+
+
@media (prefers-color-scheme: dark) {
html {
color-scheme: dark;
@@ -24,3 +58,8 @@ a {
background: black;
}
}
+
+
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
diff --git a/tailwind.config.js b/tailwind.config.js
new file mode 100644
index 0000000..ca7fc1c
--- /dev/null
+++ b/tailwind.config.js
@@ -0,0 +1,11 @@
+/** @type {import('tailwindcss').Config} */
+module.exports = {
+ content: [
+ "./src/pages/**/*.{js,ts,jsx,tsx}",
+ "./src/components/*.{js,ts,jsx,tsx}",
+ ],
+ theme: {
+ extend: {},
+ },
+ plugins: [],
+}
diff --git a/yarn.lock b/yarn.lock
index c4457fb..1d1104d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -244,6 +244,25 @@ acorn-jsx@^5.3.2:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+acorn-node@^1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
+ integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
+ dependencies:
+ acorn "^7.0.0"
+ acorn-walk "^7.0.0"
+ xtend "^4.0.2"
+
+acorn-walk@^7.0.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
+ integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
+
+acorn@^7.0.0:
+ version "7.4.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
+ integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+
acorn@^8.8.0:
version "8.8.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
@@ -271,6 +290,19 @@ ansi-styles@^4.1.0:
dependencies:
color-convert "^2.0.1"
+anymatch@~3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+ integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+arg@^5.0.2:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
+ integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
+
argparse@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
@@ -325,6 +357,18 @@ ast-types-flow@^0.0.7:
resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==
+autoprefixer@^10.4.8:
+ version "10.4.8"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.8.tgz#92c7a0199e1cfb2ad5d9427bd585a3d75895b9e5"
+ integrity sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==
+ dependencies:
+ browserslist "^4.21.3"
+ caniuse-lite "^1.0.30001373"
+ fraction.js "^4.2.0"
+ normalize-range "^0.1.2"
+ picocolors "^1.0.0"
+ postcss-value-parser "^4.2.0"
+
axe-core@^4.4.3:
version "4.4.3"
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f"
@@ -340,6 +384,11 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+binary-extensions@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+ integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -348,13 +397,23 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
-braces@^3.0.2:
+braces@^3.0.2, braces@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
dependencies:
fill-range "^7.0.1"
+browserslist@^4.21.3:
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a"
+ integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==
+ dependencies:
+ caniuse-lite "^1.0.30001370"
+ electron-to-chromium "^1.4.202"
+ node-releases "^2.0.6"
+ update-browserslist-db "^1.0.5"
+
call-bind@^1.0.0, call-bind@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
@@ -368,7 +427,12 @@ callsites@^3.0.0:
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-caniuse-lite@^1.0.30001332:
+camelcase-css@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
+ integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
+
+caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001370, caniuse-lite@^1.0.30001373:
version "1.0.30001384"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001384.tgz#029527c2d781a3cfef13fa63b3a78a6088e35973"
integrity sha512-BBWt57kqWbc0GYZXb47wTXpmAgqr5LSibPzNjk/AWMdmJMQhLqOl3c/Kd4OAU/tu4NLfYkMx8Tlq3RVBkOBolQ==
@@ -381,6 +445,21 @@ chalk@^4.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
+chokidar@^3.5.3:
+ version "3.5.3"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
+ integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
+ dependencies:
+ anymatch "~3.1.2"
+ braces "~3.0.2"
+ glob-parent "~5.1.2"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.6.0"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
color-convert@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
@@ -388,7 +467,7 @@ color-convert@^2.0.1:
dependencies:
color-name "~1.1.4"
-color-name@~1.1.4:
+color-name@^1.1.4, color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
@@ -412,6 +491,11 @@ cross-spawn@^7.0.2:
shebang-command "^2.0.0"
which "^2.0.1"
+cssesc@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
+ integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
csstype@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2"
@@ -456,6 +540,25 @@ define-properties@^1.1.3, define-properties@^1.1.4:
has-property-descriptors "^1.0.0"
object-keys "^1.1.1"
+defined@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
+ integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==
+
+detective@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034"
+ integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==
+ dependencies:
+ acorn-node "^1.8.2"
+ defined "^1.0.0"
+ minimist "^1.2.6"
+
+didyoumean@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037"
+ integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
+
dir-glob@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
@@ -463,6 +566,11 @@ dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
+dlv@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
+ integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
+
doctrine@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
@@ -477,6 +585,11 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
+electron-to-chromium@^1.4.202:
+ version "1.4.234"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.234.tgz#ff8fb29c2edac74ef3935ca03a2ecbe62ede400b"
+ integrity sha512-VqlJ4Ihd9F7eQIfwEtf7C0eZZDl6bQtpez8vx8VHN9iCZEzePZjr7n9OGFHSav4WN9zfLa2CFLowj0siBoc0hQ==
+
emoji-regex@^9.2.2:
version "9.2.2"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
@@ -527,6 +640,11 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
escape-string-regexp@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
@@ -744,7 +862,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-fast-glob@^3.2.9:
+fast-glob@^3.2.11, fast-glob@^3.2.9:
version "3.2.11"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
@@ -807,11 +925,21 @@ flatted@^3.1.0:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
+fraction.js@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
+ integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
+
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+fsevents@~2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@@ -854,14 +982,14 @@ get-symbol-description@^1.0.0:
call-bind "^1.0.2"
get-intrinsic "^1.1.1"
-glob-parent@^5.1.2:
+glob-parent@^5.1.2, glob-parent@~5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
-glob-parent@^6.0.1:
+glob-parent@^6.0.1, glob-parent@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
@@ -999,6 +1127,13 @@ is-bigint@^1.0.1:
dependencies:
has-bigints "^1.0.1"
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
is-boolean-object@^1.1.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
@@ -1031,7 +1166,7 @@ is-extglob@^2.1.1:
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
-is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
version "4.0.3"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
@@ -1153,6 +1288,11 @@ levn@^0.4.1:
prelude-ls "^1.2.1"
type-check "~0.4.0"
+lilconfig@^2.0.5, lilconfig@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4"
+ integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==
+
locate-path@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
@@ -1255,11 +1395,31 @@ next@12.2.5:
"@next/swc-win32-ia32-msvc" "12.2.5"
"@next/swc-win32-x64-msvc" "12.2.5"
+node-releases@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
+ integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==
+
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+normalize-range@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+ integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
+
object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
+object-hash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
+ integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
+
object-inspect@^1.12.0, object-inspect@^1.9.0:
version "1.12.2"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
@@ -1385,11 +1545,60 @@ picocolors@^1.0.0:
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
-picomatch@^2.3.1:
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+pify@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
+
+postcss-import@^14.1.0:
+ version "14.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0"
+ integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==
+ dependencies:
+ postcss-value-parser "^4.0.0"
+ read-cache "^1.0.0"
+ resolve "^1.1.7"
+
+postcss-js@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00"
+ integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==
+ dependencies:
+ camelcase-css "^2.0.1"
+
+postcss-load-config@^3.1.4:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855"
+ integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==
+ dependencies:
+ lilconfig "^2.0.5"
+ yaml "^1.10.2"
+
+postcss-nested@5.0.6:
+ version "5.0.6"
+ resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc"
+ integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==
+ dependencies:
+ postcss-selector-parser "^6.0.6"
+
+postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6:
+ version "6.0.10"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d"
+ integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==
+ dependencies:
+ cssesc "^3.0.0"
+ util-deprecate "^1.0.2"
+
+postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
+ integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
+
postcss@8.4.14:
version "8.4.14"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf"
@@ -1399,6 +1608,15 @@ postcss@8.4.14:
picocolors "^1.0.0"
source-map-js "^1.0.2"
+postcss@^8.4.14, postcss@^8.4.16:
+ version "8.4.16"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c"
+ integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==
+ dependencies:
+ nanoid "^3.3.4"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -1423,6 +1641,11 @@ queue-microtask@^1.2.2:
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+quick-lru@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
+ integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
+
react-dom@18.2.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
@@ -1443,6 +1666,20 @@ react@18.2.0:
dependencies:
loose-envify "^1.1.0"
+read-cache@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
+ integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
+ dependencies:
+ pify "^2.3.0"
+
+readdirp@~3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+ dependencies:
+ picomatch "^2.2.1"
+
regenerator-runtime@^0.13.4:
version "0.13.9"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
@@ -1467,7 +1704,7 @@ resolve-from@^4.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
-resolve@^1.20.0, resolve@^1.22.0:
+resolve@^1.1.7, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1:
version "1.22.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
@@ -1620,6 +1857,34 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+tailwindcss@^3.1.8:
+ version "3.1.8"
+ resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.8.tgz#4f8520550d67a835d32f2f4021580f9fddb7b741"
+ integrity sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==
+ dependencies:
+ arg "^5.0.2"
+ chokidar "^3.5.3"
+ color-name "^1.1.4"
+ detective "^5.2.1"
+ didyoumean "^1.2.2"
+ dlv "^1.1.3"
+ fast-glob "^3.2.11"
+ glob-parent "^6.0.2"
+ is-glob "^4.0.3"
+ lilconfig "^2.0.6"
+ normalize-path "^3.0.0"
+ object-hash "^3.0.0"
+ picocolors "^1.0.0"
+ postcss "^8.4.14"
+ postcss-import "^14.1.0"
+ postcss-js "^4.0.0"
+ postcss-load-config "^3.1.4"
+ postcss-nested "5.0.6"
+ postcss-selector-parser "^6.0.10"
+ postcss-value-parser "^4.2.0"
+ quick-lru "^5.1.1"
+ resolve "^1.22.1"
+
text-table@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
@@ -1686,6 +1951,14 @@ unbox-primitive@^1.0.2:
has-symbols "^1.0.3"
which-boxed-primitive "^1.0.2"
+update-browserslist-db@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38"
+ integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==
+ dependencies:
+ escalade "^3.1.1"
+ picocolors "^1.0.0"
+
uri-js@^4.2.2:
version "4.4.1"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
@@ -1698,6 +1971,11 @@ use-sync-external-store@1.2.0:
resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==
+util-deprecate@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+
which-boxed-primitive@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
@@ -1726,11 +2004,21 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+xtend@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
yallist@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+yaml@^1.10.2:
+ version "1.10.2"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+ integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+
yocto-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"