├── .eslintrc
├── .gitignore
├── .prettierignore
├── .prettierrc
├── README.md
├── next-env.d.ts
├── next.config.js
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
├── icons
│ ├── favicon.ico
│ └── icon.png
└── images
│ ├── bag.svg
│ ├── bike.svg
│ ├── getir-buyuk.svg
│ ├── getir-su.svg
│ ├── getir-yemek.svg
│ ├── getir.svg
│ ├── getirslide.png
│ └── pin.svg
├── src
├── api
│ ├── banners.json
│ ├── categories.json
│ └── products.json
├── components
│ ├── Basket
│ │ ├── basket.module.scss
│ │ └── index.tsx
│ ├── Categorys
│ │ ├── categorys.module.scss
│ │ └── index.tsx
│ ├── Companys
│ │ ├── companys.module.scss
│ │ └── index.tsx
│ ├── CompanysProducts
│ │ ├── companys.module.scss
│ │ └── index.tsx
│ ├── CompanysYemek
│ │ ├── companys.module.scss
│ │ └── index.tsx
│ ├── Favorites
│ │ └── index.tsx
│ ├── Footer
│ │ └── index.tsx
│ ├── GetirWidgetMobil
│ │ ├── index.tsx
│ │ └── mobilwidget.module.scss
│ ├── HomeSlider
│ │ ├── homeslider.module.scss
│ │ └── index.tsx
│ ├── HomeSliderGetirYemek
│ │ ├── homeslider.module.css
│ │ └── index.tsx
│ ├── Layout
│ │ ├── Layout.tsx
│ │ ├── LayoutProducts.tsx
│ │ └── LayoutYemek.tsx
│ ├── LocationBarMobile
│ │ └── index.tsx
│ ├── Navbar
│ │ ├── index.tsx
│ │ └── navbar.module.scss
│ ├── NavbarProductsMobile
│ │ ├── index.tsx
│ │ └── navbar.module.scss
│ ├── Products
│ │ ├── categorys.module.scss
│ │ ├── index.tsx
│ │ └── product.json
│ ├── RegisterCard
│ │ └── index.tsx
│ └── ui
│ │ ├── CardItem.js
│ │ ├── CategoryItem.js
│ │ └── ProductItem.js
├── pages
│ ├── _app.tsx
│ ├── index.tsx
│ ├── urunler.tsx
│ └── yemek.tsx
└── styles
│ └── global.scss
├── tailwind.config.js
├── tsconfig.json
└── yarn.lock
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["next", "next/core-web-vitals"],
3 | "rules": {
4 | // Other rules
5 | "@next/next/no-img-element": "off"
6 | }
7 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | *.pem
21 |
22 | # debug
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 |
27 | # local env files
28 | .env.local
29 | .env.development.local
30 | .env.test.local
31 | .env.production.local
32 |
33 | # vercel
34 | .vercel
35 |
36 | # intellij
37 | .idea
38 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | .next
2 | node_modules
3 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "singleQuote": true,
3 | "trailingComma": "all",
4 | "tabWidth": 4
5 | }
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # geçir (getir clone)
2 |
3 | this project is clone project of getir made with NextJs and TailwindCss. \
4 | note[AZE]: bu layihə yalnız təhsil məqsədləri üçün hazırlanmışdır, fişinq üçün deyil! \
5 | note[EN]: this project is only made for educational purposes and not for phishing! \
6 |
7 | ## installation
8 |
9 | use the package manager [npm](https://npmjs.com/) to install geçir.
10 |
11 | ```bash
12 | npm install
13 | ```
14 |
15 | ## getting Started
16 |
17 | first, run the development server:
18 |
19 | ```bash
20 | npm run dev
21 | # or
22 | yarn dev
23 | ```
24 |
25 | open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
26 |
27 | ## contributing
28 |
29 | pull requests are welcome. for major changes, please open an issue first to discuss what you would like to change.
30 |
31 | please make sure to update tests as appropriate.
32 |
33 | ## license
34 |
35 | [MIT](https://choosealicense.com/licenses/mit/)
36 |
--------------------------------------------------------------------------------
/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 | ///
4 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | reactStrictMode: true,
3 | };
4 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "getir",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "start": "next start",
9 | "lint": "next lint",
10 | "format": "prettier --write ."
11 | },
12 | "dependencies": {
13 | "@emotion/react": "^11.4.0",
14 | "@emotion/styled": "^11.3.0",
15 | "@material-ui/core": "^5.0.0-beta.2",
16 | "@material-ui/icons": "^5.0.0-beta.1",
17 | "@testing-library/jest-dom": "^5.11.4",
18 | "@testing-library/react": "^11.1.0",
19 | "@testing-library/user-event": "^12.1.10",
20 | "@types/react-slick": "^0.23.5",
21 | "autoprefixer": "^10.3.1",
22 | "firebase": "^8.10.0",
23 | "next": "11.0.1",
24 | "react": "17.0.2",
25 | "react-dom": "17.0.2",
26 | "react-flags-select": "^2.1.2",
27 | "react-icons": "^4.2.0",
28 | "react-redux": "^7.2.4",
29 | "react-slick": "^0.28.1",
30 | "redux": "^4.1.1",
31 | "sass": "^1.38.0",
32 | "tailwindcss": "^2.2.7"
33 | },
34 | "devDependencies": {
35 | "@types/react": "17.0.15",
36 | "eslint": "7.32.0",
37 | "eslint-config-next": "11.0.1",
38 | "prettier": "^2.3.2",
39 | "typescript": "4.3.5"
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/public/icons/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fishuke/getir-clone/37e1ddb23d07031154e8ad16b780992823f8aa4a/public/icons/favicon.ico
--------------------------------------------------------------------------------
/public/icons/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fishuke/getir-clone/37e1ddb23d07031154e8ad16b780992823f8aa4a/public/icons/icon.png
--------------------------------------------------------------------------------
/public/images/bag.svg:
--------------------------------------------------------------------------------
1 |
71 |
--------------------------------------------------------------------------------
/public/images/bike.svg:
--------------------------------------------------------------------------------
1 |
108 |
--------------------------------------------------------------------------------
/public/images/getir-buyuk.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/getir-su.svg:
--------------------------------------------------------------------------------
1 |
26 |
--------------------------------------------------------------------------------
/public/images/getir-yemek.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/getir.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/public/images/getirslide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fishuke/getir-clone/37e1ddb23d07031154e8ad16b780992823f8aa4a/public/images/getirslide.png
--------------------------------------------------------------------------------
/public/images/pin.svg:
--------------------------------------------------------------------------------
1 |
2 |
39 |
--------------------------------------------------------------------------------
/src/api/banners.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "image": "https://cdn.getir.com/misc/611e55d33ea65bef40f9ba05_banner_tr_1629378026496.jpeg"
5 | },
6 | {
7 | "id": 2,
8 | "image": "https://cdn.getir.com/misc/611e4a50c270af509cd486b5_banner_tr_1629375115516.jpeg"
9 | },
10 | {
11 | "id": 3,
12 | "image": "https://cdn.getir.com/misc/5fb524d4c725f1530045cefc_banner_tr_1609343376255.jpeg"
13 | },
14 | {
15 | "id": 4,
16 | "image": "https://cdn.getir.com/misc/6069cee3f7be2b6472dc8b5f_banner_tr_1629921878792.jpeg"
17 | }
18 | ]
--------------------------------------------------------------------------------
/src/api/categories.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "title": "Yeni Ürünler",
5 | "image": "http://cdn.getir.com/cat/5697c78dc181490f00c99fea_f7ef7ccb-f3a4-4388-b787-232967c16320.jpeg"
6 | },
7 | {
8 | "id": 2,
9 | "title": "İndirimler",
10 | "image": "http://cdn.getir.com/cat/5fd8c58f3bdc2389a56e0fb0_3322c10f-2eed-4ce9-ab5a-90db5ce067f2.jpeg"
11 | },
12 | {
13 | "id": 3,
14 | "title": "Su & İçecek",
15 | "image": "http://cdn.getir.com/cat/551430043427d5010a3a5c5e_1619242669958_1619242670038.jpeg"
16 | },
17 | {
18 | "id": 4,
19 | "title": "Meyve & Sebze",
20 | "image": "http://cdn.getir.com/cat/5928113e616cab00041ec6de_1619242870968_1619242871055.jpeg"
21 | },
22 | {
23 | "id": 5,
24 | "title": "Fırından",
25 | "image": "http://cdn.getir.com/cat/566eeb85f9facb0f00b1cb16_1619242817768_1619242817849.jpeg"
26 | },
27 | {
28 | "id": 6,
29 | "title": "Temel Gıda",
30 | "image": "http://cdn.getir.com/cat/56dfcfba86004203000a870d_1619242834654_1619242834734.jpeg"
31 | },
32 | {
33 | "id": 7,
34 | "title": "Atıştırmalık",
35 | "image": "http://cdn.getir.com/cat/56dfe03cf82055030022cdc0_1619242841966_1619242842053.jpeg"
36 | },
37 | {
38 | "id": 8,
39 | "title": "Dondurma",
40 | "image": "http://cdn.getir.com/cat/55bca8484dcda90c00e3aa80_1619242741382_1619242741482.jpeg"
41 | },
42 | {
43 | "id": 9,
44 | "title": "Yiyecek",
45 | "image": "http://cdn.getir.com/cat/551430043427d5010a3a5c5d_1619242660025_1619242660107.jpeg"
46 | },
47 | {
48 | "id": 10,
49 | "title": "Süt & Kahvaltı",
50 | "image": "http://cdn.getir.com/cat/56dfed05ab747f03008d9379_1619242850313_1619242850394.jpeg"
51 | },
52 | {
53 | "id": 11,
54 | "title": "Fit & Form",
55 | "image": "http://cdn.getir.com/cat/57e2996551f3ee030027e28b_1619242858559_1619242858642.jpeg"
56 | },
57 | {
58 | "id": 12,
59 | "title": "Kişisel Bakım",
60 | "image": "http://cdn.getir.com/cat/551430043427d5010a3a5c5c_1619242651249_1619242651335.jpeg"
61 | },
62 | {
63 | "id": 13,
64 | "title": "Ev Bakım",
65 | "image": "http://cdn.getir.com/cat/55449fdf02632e11003c2da8_1619242719523_1619242719602.jpeg"
66 | },
67 | {
68 | "id": 14,
69 | "title": "Ev & Yaşam",
70 | "image": "http://cdn.getir.com/cat/5b06b056b883b700044e3e4c_1619242916956_1619242917048.jpeg"
71 | },
72 | {
73 | "id": 15,
74 | "title": "Teknoloji",
75 | "image": "http://cdn.getir.com/cat/551430043427d5010a3a5c62_1619242697597_1619242697702.jpeg"
76 | },
77 | {
78 | "id": 16,
79 | "title": "Evcil Hayvan",
80 | "image": "http://cdn.getir.com/cat/551430043427d5010a3a5c63_1619242711604_1619242711687.jpeg"
81 | },
82 | {
83 | "id": 17,
84 | "title": "Bebek",
85 | "image": "http://cdn.getir.com/cat/551430043427d5010a3a5c5b_1619242620186_1619242620271.jpeg"
86 | },
87 | {
88 | "id": 18,
89 | "title": "Cinsel Sağlık",
90 | "image": "http://cdn.getir.com/cat/559c07b093be370c0063dd29_1619242727735_1619242727816.jpeg"
91 | },
92 | {
93 | "id": 19,
94 | "title": "Giyim",
95 | "image": "http://cdn.getir.com/cat/551430043427d5010a3a5c5f_1619242679723_1619242679822.jpeg"
96 | }
97 | ]
--------------------------------------------------------------------------------
/src/api/products.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "title": "Lay's Mevsim Yeşillikli",
5 | "image": "https://cdn.getir.com/product/5bc97aabb137fb001d751ac7_tr_1609123518121.jpeg",
6 | "alt": "96 g",
7 | "price": 6.36
8 | },
9 | {
10 | "id": 2,
11 | "title": "Eti Canga",
12 | "image": "https://cdn.getir.com/product/5f3538dc71a71226677fba17_tr_1624437105104.jpeg",
13 | "alt": "45 g",
14 | "price": 2.85
15 | },
16 | {
17 | "id": 3,
18 | "title": "Kuzeyden",
19 | "image": "https://cdn.getir.com/product/5a7b20fd8e19da0004bb27f8_tr_1615375864268.jpeg",
20 | "alt": "1.5 L",
21 | "price": 2.95
22 | },
23 | {
24 | "id": 4,
25 | "title": "Kızılay Erzincan",
26 | "image": "https://cdn.getir.com/product/60018c5bca2126d84459c47f_tr_1610788125046.jpeg",
27 | "alt": "6 x 200 ml",
28 | "price": 5.90
29 | },
30 | {
31 | "id": 5,
32 | "title": "Ülker Napoliten",
33 | "image": "https://cdn.getir.com/product/574b2219dee8a90300f18d24_tr_1599938278519.jpeg",
34 | "alt": "33 g",
35 | "price": 3.30
36 | },
37 | {
38 | "id": 6,
39 | "title": "Kavrulmuş Siyah Ay Çekirdeği",
40 | "image": "https://cdn.getir.com/product/5ccaf4ff1a1763000175a869_tr_1580904995656.jpeg",
41 | "alt": "180 g",
42 | "price": 10.95
43 | },
44 | {
45 | "id": 7,
46 | "title": "Magnum Badem",
47 | "image": "https://cdn.getir.com/product/559fec01f462100c00461d5c_tr_1618323765236.jpeg",
48 | "alt": "100 ml",
49 | "price": 7.50
50 | },
51 | {
52 | "id": 8,
53 | "title": "İçim %3 Yağlı Süt",
54 | "image": "https://cdn.getir.com/product/5ced482d4a8a2a000137da6d_tr_1623652387464.jpeg",
55 | "alt": "1 L",
56 | "price": 7.95
57 | },
58 | {
59 | "id": 9,
60 | "title": "Lay's Mevsim Yeşillikli",
61 | "image": "https://cdn.getir.com/product/5bc97aabb137fb001d751ac7_tr_1609123518121.jpeg",
62 | "alt": "96 g",
63 | "price": 6.36
64 | },
65 | {
66 | "id": 10,
67 | "title": "Eti Canga",
68 | "image": "https://cdn.getir.com/product/5f3538dc71a71226677fba17_tr_1624437105104.jpeg",
69 | "alt": "45 g",
70 | "price": 2.85
71 | },
72 | {
73 | "id": 11,
74 | "title": "Kuzeyden",
75 | "image": "https://cdn.getir.com/product/5a7b20fd8e19da0004bb27f8_tr_1615375864268.jpeg",
76 | "alt": "1.5 L",
77 | "price": 2.95
78 | },
79 | {
80 | "id": 12,
81 | "title": "Kızılay Erzincan",
82 | "image": "https://cdn.getir.com/product/60018c5bca2126d84459c47f_tr_1610788125046.jpeg",
83 | "alt": "6 x 200 ml",
84 | "price": 5.90
85 | },
86 | {
87 | "id": 13,
88 | "title": "Ülker Napoliten",
89 | "image": "https://cdn.getir.com/product/574b2219dee8a90300f18d24_tr_1599938278519.jpeg",
90 | "alt": "33 g",
91 | "price": 3.30
92 | },
93 | {
94 | "id": 14,
95 | "title": "Kavrulmuş Siyah Ay Çekirdeği",
96 | "image": "https://cdn.getir.com/product/5ccaf4ff1a1763000175a869_tr_1580904995656.jpeg",
97 | "alt": "180 g",
98 | "price": 10.95
99 | },
100 | {
101 | "id": 15,
102 | "title": "Magnum Badem",
103 | "image": "https://cdn.getir.com/product/559fec01f462100c00461d5c_tr_1618323765236.jpeg",
104 | "alt": "100 ml",
105 | "price": 7.50
106 | },
107 | {
108 | "id": 16,
109 | "title": "İçim %3 Yağlı Süt",
110 | "image": "https://cdn.getir.com/product/5ced482d4a8a2a000137da6d_tr_1623652387464.jpeg",
111 | "alt": "1 L",
112 | "price": 7.95
113 | }
114 | ]
--------------------------------------------------------------------------------
/src/components/Basket/basket.module.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fishuke/getir-clone/37e1ddb23d07031154e8ad16b780992823f8aa4a/src/components/Basket/basket.module.scss
--------------------------------------------------------------------------------
/src/components/Basket/index.tsx:
--------------------------------------------------------------------------------
1 | import { FC } from 'react';
2 |
3 | export const Basket: FC = () => {
4 | return (
5 |
6 |
7 |
8 | );
9 | };
--------------------------------------------------------------------------------
/src/components/Categorys/categorys.module.scss:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | .product img {
5 | height: 48px;
6 | width: 48px;
7 | border-radius: 8px;
8 | border: 1px solid rgb(27 14 14 / 10%) !important;
9 | margin-left: 22%;
10 |
11 |
12 | }
13 |
14 | .product p {
15 | text-align: center;
16 | margin-top: 12px;
17 | font-weight: var(--font-weight-semi-bold);
18 | font-size: 15px;
19 | line-height: 16px;
20 | letter-spacing: -0.28px;
21 | color: var(--color-gray-dark);
22 | transition: color 0.2s ease 0s;
23 | overflow-wrap: break-word;
24 | width: 111%;
25 | margin-left: -11%;
26 |
27 |
28 | }
29 |
30 | .margintop {
31 | margin-top: 5%;
32 | }
33 |
34 | .margintop2 {
35 | margin-top: 2%;
36 | }
37 |
38 | .categorytext {
39 | margin-top: 2%;
40 | margin-bottom: -2rem;
41 | margin-left: 13%;
42 | font-weight: 600;
43 | font-size: 14px;
44 | line-height: 19px;
45 | }
--------------------------------------------------------------------------------
/src/components/Categorys/index.tsx:
--------------------------------------------------------------------------------
1 | import { FC } from 'react';
2 | import './categorys.module.scss';
3 | export const Categorys: FC = () => {
4 | return (
5 |
6 |
Kategoriler
7 |
8 |
9 |
10 |
11 |

15 |
Yeni Ürünler
16 |
17 |
18 |

22 |
İndirimler
23 |
24 |
25 |

29 |
Su & içecek
30 |
31 |
32 |

36 |
Meyve Sebze
37 |
38 |
39 |

43 |
Fırından
44 |
45 |
46 |

50 |
Temel Gıda
51 |
52 |
53 |

57 |
Atıştırmalık
58 |
59 |
60 |

64 |
Dondurma
65 |
66 |
67 |

71 |
Yiyecek
72 |
73 |
74 |

78 |
Süt Kahvaltı
79 |
80 |
81 |

85 |
Fit Form
86 |
87 |
88 |

92 |
Kişisel Bakım
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |

105 |
Yeni Ürünler
106 |
107 |
108 |

112 |
İndirimler
113 |
114 |
115 |

119 |
Su & içecek
120 |
121 |
122 |

126 |
Meyve Sebze
127 |
128 |
129 |

133 |
Fırından
134 |
135 |
136 |

140 |
Temel Gıda
141 |
142 |
143 |

147 |
Atıştırmalık
148 |
149 |
150 |

154 |
Dondurma
155 |
156 |
157 |

161 |
Yiyecek
162 |
163 |
164 |

168 |
Süt Kahvaltı
169 |
170 |
171 |

175 |
Fit Form
176 |
177 |
178 |

182 |
Kişisel Bakım
183 |
184 |
185 |
186 |
187 |
188 | );
189 | };
190 |
--------------------------------------------------------------------------------
/src/components/Companys/companys.module.scss:
--------------------------------------------------------------------------------
1 | .companys img {
2 | margin-top: 19%;
3 | border-radius: 9px;
4 | width:85%
5 | }
6 |
7 | .companystext {
8 | margin-top: 2%;
9 | margin-bottom: -2rem;
10 | margin-left: 13%;
11 | font-weight: 600;
12 | font-size: 14px;
13 | line-height: 19px;
14 | }
--------------------------------------------------------------------------------
/src/components/Companys/index.tsx:
--------------------------------------------------------------------------------
1 | import {useState, useEffect,FC} from 'react'
2 | import Slider from "react-slick";
3 | import Banners from '../../api/banners.json'
4 | import { IoIosArrowBack, IoIosArrowForward } from 'react-icons/io'
5 |
6 | import './companys.module.scss';
7 |
8 | type Props = {
9 | onClick: React.MouseEventHandler,
10 | className: string
11 | }
12 |
13 |
14 | function NextButton ({ onClick,className }: Props) {
15 | return (
16 |
19 | )
20 | }
21 | function PrevButton ({ onClick,className }: Props) {
22 | return (
23 |
26 | )
27 | }
28 |
29 |
30 |
31 | export const Companys: FC = () => {
32 |
33 |
34 | interface BannerData {
35 | id:number,
36 | image:string
37 | }
38 | const [banners, setBanners] = useState([])
39 |
40 |
41 |
42 | useEffect(() => {
43 | setBanners(Banners)
44 | }, [])
45 |
46 | const settings = {
47 | dots: false,
48 | infinite: true,
49 | speed: 500,
50 | slidesToShow: 3,
51 | slidesToScroll: 1,
52 | autoplay: true,
53 | autoplaySpeed: 3000,
54 | arrows:true,
55 | // nextArrow: ,
56 | // prevArrow: ,
57 | responsive: [
58 | {
59 | breakpoint: 568,
60 | settings: {
61 | slidesToShow: 1,
62 | slidesToScroll: 1,
63 | arrows:false
64 | }
65 | }
66 | ]
67 | };
68 |
69 | return(
70 | <>
71 |
72 |
Kampanyalar
73 |
74 | {banners && banners.map(banner => (
75 |
76 |

77 |
78 | ))}
79 |
80 |
81 | >
82 | )
83 |
84 | };
--------------------------------------------------------------------------------
/src/components/CompanysProducts/companys.module.scss:
--------------------------------------------------------------------------------
1 | .getir-componys-product {
2 | &_companys img {
3 | margin-top: 5%;
4 | border-radius: 9px;
5 | width:85%
6 | }
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/src/components/CompanysProducts/index.tsx:
--------------------------------------------------------------------------------
1 | import { FC } from 'react';
2 | import './companys.module.scss';
3 | export const CompanysProducts: FC = () => {
4 | return (
5 |
6 |
7 |
8 |
9 |
10 |

15 |
16 |
17 |

22 |
23 |
24 |

29 |
30 |
31 |
32 |
33 |
34 | );
35 | };
36 |
--------------------------------------------------------------------------------
/src/components/CompanysYemek/companys.module.scss:
--------------------------------------------------------------------------------
1 | .getir-componys-product {
2 | &_companys img {
3 | margin-top: 5%;
4 | border-radius: 9px;
5 | width:85%
6 | }
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/src/components/CompanysYemek/index.tsx:
--------------------------------------------------------------------------------
1 | import { FC } from 'react';
2 | import './companys.module.scss';
3 | export const CompanysYemek: FC = () => {
4 | return (
5 |
6 |
7 |
8 |
9 |
10 |

15 |
Döner
16 |
17 |
18 |

23 |
Kebap
24 |
25 |
26 |

31 |
Makarna
32 |
33 |
34 |
35 |
36 |
37 | );
38 | };
39 |
--------------------------------------------------------------------------------
/src/components/Favorites/index.tsx:
--------------------------------------------------------------------------------
1 | import { FC,useState, useEffect } from 'react';
2 | import Products from '../../api/products.json'
3 | import ProductItem from '../ui/ProductItem'
4 | export const Favorites: FC = () => {
5 |
6 | const [products, setProducts] = useState([] as any);
7 |
8 | useEffect(() => {
9 | setProducts(Products)
10 | }, [])
11 |
12 | return (
13 |
14 |
15 | {products && products.map((product: any) =>
)}
16 |
17 |
18 | );
19 | };
20 |
--------------------------------------------------------------------------------
/src/components/Footer/index.tsx:
--------------------------------------------------------------------------------
1 | import { FC } from 'react';
2 | import { FaFacebook, FaTwitter, FaInstagram } from 'react-icons/fa'
3 | import {FiGlobe} from 'react-icons/fi';
4 | export const Footer: FC = () => {
5 | return (
6 |
7 |
8 |
9 |
37 |
59 |
81 |
100 |
101 |
102 |
125 |
126 |
127 | );
128 | };
129 |
--------------------------------------------------------------------------------
/src/components/GetirWidgetMobil/index.tsx:
--------------------------------------------------------------------------------
1 | import { FC } from 'react';
2 |
3 | import './mobilwidget.module.scss';
4 |
5 | export const GetirWidgetMobil: FC = () => {
6 | return(
7 |
8 |

9 |

10 |
11 | )
12 | };
--------------------------------------------------------------------------------
/src/components/GetirWidgetMobil/mobilwidget.module.scss:
--------------------------------------------------------------------------------
1 | .mobilbanner{
2 | margin-top: 5%;
3 | margin-bottom: 5%;
4 | }
5 |
6 | .mobilbanner .desktop-img {
7 | border-radius: 16px;
8 | }
--------------------------------------------------------------------------------
/src/components/HomeSlider/homeslider.module.scss:
--------------------------------------------------------------------------------
1 | .getirslidelogo {
2 |
3 | z-index: 2;
4 | margin-top: 10%;
5 | margin-left: 16%;
6 | }
7 |
8 | .getirslideimg{
9 |
10 |
11 | }
12 |
13 | .bg-img {
14 | &_1 {
15 | background-image: url("https://getir.com/_next/static/images/getir-mainpage-4-1751ad2d8fb42a88742d6751938da7e7.jpg");
16 | }
17 | &_2 {
18 | background-image: url("https://getir.com/_next/static/images/getir-mainpage-1-757eca6a46304def60cabce74d3f20a2.jpg");
19 | }
20 |
21 | }
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/components/HomeSlider/index.tsx:
--------------------------------------------------------------------------------
1 | import {FC} from 'react'
2 | import Slider from 'react-slick';
3 | import {RegisterCard} from '../RegisterCard'
4 |
5 | export const HomeSlider: FC = () => {
6 |
7 |
8 | const settings = {
9 | infinite: true,
10 | slidesToShow: 1,
11 | slidesToScroll: 1,
12 | autoplay: true,
13 | autoplaySpeed: 3000,
14 | cssEase: 'linear',
15 | arrows: false,
16 | };
17 |
18 |
19 | return(
20 |
21 |

22 |
24 |
25 |
28 |
31 |
32 |
33 |
34 |
35 |

38 |
39 | Dakikalar içinde
kapınızda
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | )
53 |
54 | };
55 |
--------------------------------------------------------------------------------
/src/components/HomeSliderGetirYemek/homeslider.module.css:
--------------------------------------------------------------------------------
1 | .getirslidelogo {
2 |
3 | z-index: 2;
4 | margin-top: 10%;
5 | margin-left: 16%;
6 | }
7 |
8 | .getirslideimg{
9 |
10 | }
--------------------------------------------------------------------------------
/src/components/HomeSliderGetirYemek/index.tsx:
--------------------------------------------------------------------------------
1 | import { FC } from 'react';
2 | import styles from './homeslider.module.css';
3 | export const HomeSliderGetirYemek: FC = () => {
4 | return(
5 |
6 |

7 | {/*

*/}
8 |
9 | )
10 |
11 | };
12 |
--------------------------------------------------------------------------------
/src/components/Layout/Layout.tsx:
--------------------------------------------------------------------------------
1 | import Head from 'next/head';
2 | import { FC } from 'react';
3 | import { Footer } from '../Footer';
4 | import { Navbar } from '../Navbar';
5 |
6 | export interface ILayoutProps {
7 | title: string;
8 | description?: string;
9 | }
10 |
11 | export const Layout: FC = ({ children, title, description }) => {
12 | return (
13 | <>
14 |
15 | {title}
16 |
20 |
21 |
22 |
23 | {children}
24 |
25 | >
26 | );
27 | };
28 |
--------------------------------------------------------------------------------
/src/components/Layout/LayoutProducts.tsx:
--------------------------------------------------------------------------------
1 | import Head from 'next/head';
2 | import { FC } from 'react';
3 | import { Footer } from '../Footer';
4 | import { Navbar } from '../NavbarProductsMobile';
5 |
6 | export interface ILayoutProps {
7 | title: string;
8 | description?: string;
9 | }
10 |
11 | export const Layout: FC = ({ children, title, description }) => {
12 | return (
13 | <>
14 |
15 | {title}
16 |
20 |
21 |
22 |
23 | {children}
24 |
25 | >
26 | );
27 | };
28 |
--------------------------------------------------------------------------------
/src/components/Layout/LayoutYemek.tsx:
--------------------------------------------------------------------------------
1 | import Head from 'next/head';
2 | import { FC } from 'react';
3 | import { Footer } from '../Footer';
4 | import { Navbar } from '../Navbar';
5 |
6 | export interface ILayoutProps {
7 | title: string;
8 | description?: string;
9 | }
10 |
11 | export const Layout: FC = ({ children, title, description }) => {
12 | return (
13 | <>
14 |
15 | {title}
16 |
20 |
21 |
22 |
23 | {children}
24 |
25 | >
26 | );
27 | };
28 |
--------------------------------------------------------------------------------
/src/components/LocationBarMobile/index.tsx:
--------------------------------------------------------------------------------
1 | import { FC } from 'react';
2 | import Image from 'next/image';
3 |
4 | export const LocationBarMobile: FC = () => {
5 | return (
6 |
7 |
8 |
14 |
15 |
16 |
Teslimat Adresi Belirle
17 |
18 |
19 | );
20 | };
--------------------------------------------------------------------------------
/src/components/Navbar/index.tsx:
--------------------------------------------------------------------------------
1 | import type { FC } from 'react';
2 | import { Box } from '@material-ui/core';
3 | import Image from 'next/image';
4 | import {FiGlobe} from 'react-icons/fi';
5 | import {HiUser, HiUserAdd} from 'react-icons/hi';
6 | import'./navbar.module.scss';
7 | const links={
8 | home:'/',
9 | yemek:'/yemek'
10 | }
11 | export interface ILayoutProps {
12 | img: string;
13 | }
14 | export const Navbar: FC = ({ children,img }) => {
15 |
16 | return (
17 | <>
18 |
27 |
86 |
87 |
88 |
89 |
90 | >
91 | );
92 | };
93 |
--------------------------------------------------------------------------------
/src/components/Navbar/navbar.module.scss:
--------------------------------------------------------------------------------
1 | .nav-list {
2 | display: inline-flex;
3 | align-items: center;
4 | height: 100%;
5 | }
6 |
7 | .nav-item {
8 | margin-top: 5px;
9 | height: 40px;
10 | margin-right: 1px;
11 | padding: 12px 20px;
12 | border-radius: 6px 6px 0px 0px;
13 | cursor: pointer;
14 | }
15 | .nav-item img {
16 | filter: brightness(5%) invert(90%) sepia(72%) saturate(3333%)
17 | hue-rotate(180deg) contrast(102%);
18 | }
19 |
20 | .nav-item-active,
21 | .nav-item:hover {
22 | background: var(--color-primary);
23 | }
24 |
25 | .nav-item-active img {
26 | filter: none;
27 | }
28 |
29 | .container {
30 | width: 100%;
31 | max-width: 1232px;
32 | margin-left: auto;
33 | margin-right: auto;
34 | height: 100%;
35 | display: flex;
36 | justify-content: space-between;
37 | align-items: center;
38 | }
39 |
40 | .getir-mobile-logo {
41 | position: absolute;
42 | margin-left: auto;
43 | margin-right: auto;
44 | left: 0;
45 | margin-top: 4%;
46 | right: 0;
47 | }
48 |
49 |
--------------------------------------------------------------------------------
/src/components/NavbarProductsMobile/index.tsx:
--------------------------------------------------------------------------------
1 | import type { FC } from 'react';
2 | import { Box } from '@material-ui/core';
3 | import Image from 'next/image';
4 | import'./navbar.module.scss';
5 | const links={
6 | home:'/',
7 | yemek:'/yemek'
8 | }
9 | export const Navbar: FC = () => {
10 |
11 | return (
12 | <>
13 |
22 |
23 |
24 |
35 |
46 |
47 |
53 |
54 |
55 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 | >
74 | );
75 | };
76 |
--------------------------------------------------------------------------------
/src/components/NavbarProductsMobile/navbar.module.scss:
--------------------------------------------------------------------------------
1 | .nav-list {
2 | display: inline-flex;
3 | align-items: center;
4 | height: 100%;
5 | }
6 |
7 | .nav-item {
8 | margin-top: 5px;
9 | height: 40px;
10 | margin-right: 1px;
11 | padding: 12px 20px;
12 | border-radius: 6px 6px 0px 0px;
13 | cursor: pointer;
14 | }
15 | .nav-item img {
16 | filter: brightness(5%) invert(90%) sepia(72%) saturate(3333%)
17 | hue-rotate(180deg) contrast(102%);
18 | }
19 |
20 | .nav-item-active,
21 | .nav-item:hover {
22 | background: var(--color-primary);
23 | }
24 |
25 | .nav-item-active img {
26 | filter: none;
27 | }
28 |
29 | .container {
30 | width: 100%;
31 | max-width: 1232px;
32 | margin-left: auto;
33 | margin-right: auto;
34 | height: 100%;
35 | display: flex;
36 | justify-content: space-between;
37 | align-items: center;
38 | }
39 | .getir {
40 | &_desktop-logo {
41 | position: absolute;
42 | margin-left: 8%;
43 | margin-right: auto;
44 | margin-top: 1.5%;
45 | }
46 | &_getir-bag {
47 | position: absolute;
48 | margin-left: 8%;
49 | margin-right: auto;
50 | margin-top: 1.5%;
51 | }
52 | &_getir-bike {
53 | position: absolute;
54 | margin-left: 17%;
55 | margin-right: auto;
56 | margin-top: 1.5%;
57 | }
58 | &_backgroud-img-products {
59 | background-image: url('https://i.hizliresim.com/bc3lbwf.png');
60 | }
61 | &_search-input {
62 | position: absolute;
63 | margin-left: auto;
64 | margin-right: auto;
65 | left: 37%;
66 | outline: none;
67 | background-image: linear-gradient(to right, rgba(1,31,6,0), #fad300);
68 | background-color: linear-gradian;
69 | margin-top: 1.4%;
70 | width: 30%;
71 | border-radius: 0%;
72 | height: 4%;
73 | }
74 | }
75 |
76 |
--------------------------------------------------------------------------------
/src/components/Products/categorys.module.scss:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | .product img {
5 | height: 48px;
6 | width: 48px;
7 | border-radius: 8px;
8 | border: 1px solid rgb(27 14 14 / 10%) !important;
9 | margin-left: 22%;
10 |
11 |
12 | }
13 |
14 | .product p {
15 | text-align: center;
16 | margin-top: 12px;
17 | font-weight: var(--font-weight-semi-bold);
18 | font-size: 15px;
19 | line-height: 16px;
20 | letter-spacing: -0.28px;
21 | color: var(--color-gray-dark);
22 | transition: color 0.2s ease 0s;
23 | overflow-wrap: break-word;
24 | width: 111%;
25 | margin-left: -11%;
26 |
27 |
28 | }
29 |
30 | .margintop {
31 | margin-top: 5%;
32 | }
33 |
34 | .margintop2 {
35 | margin-top: 2%;
36 | }
37 |
38 | .categorytext {
39 | margin-top: 2%;
40 | margin-bottom: -2rem;
41 | margin-left: 13%;
42 | font-weight: 600;
43 | font-size: 14px;
44 | line-height: 19px;
45 | }
--------------------------------------------------------------------------------
/src/components/Products/index.tsx:
--------------------------------------------------------------------------------
1 | /* eslint-disable react/jsx-key */
2 | import { FC } from 'react';
3 | import './categorys.module.scss';
4 | import ProductsData from './product.json';
5 |
6 | const data = ProductsData.products;
7 | console.log(data);
8 |
9 | export const Products: FC = () => {
10 | return (
11 |
12 |
Kategoriler
13 |
14 |
15 |
16 | {data.map((products, index) => (
17 |
18 |

22 |
{products.product_name}
23 |
24 | ))}
25 |
26 |
27 |
28 |
29 | );
30 | };
31 |
--------------------------------------------------------------------------------
/src/components/Products/product.json:
--------------------------------------------------------------------------------
1 | {
2 | "products":[
3 | {"product_name":"Hanımeller Mahlepli Kurabiye", "product_img":"https://cdn.getir.com/product/610b9b9d10180fbdb080af41_tr_1628859271950.jpeg","product_price":"₺2,75"},
4 | {"product_name":"Bebeto Super Belts", "product_img":"https://cdn.getir.com/product/60fe700e75fbfa29c6de71c2_tr_1628084622364.jpeg","product_price":"₺6,75"},
5 | {"product_name":"Bebeto Wacky Stick", "product_img":"https://cdn.getir.com/product/60fe7756fd22c66cb9f2e90f_tr_1628085775793.jpeg","product_price":"₺5,75"},
6 | {"product_name":"Kallavi Kavun", "product_img":"https://cdn.getir.com/product/610bcc1dc9bc77d585e1aa5d_tr_1628491683054.jpeg","product_price":"₺9,75"},
7 | {"product_name":"Uluhan Kokteyl Domates", "product_img":"https://cdn.getir.com/product/60eeac6ac321695107ece597_tr_1626269765545.jpeg","product_price":"₺4,75"},
8 | {"product_name":"UNO Tahıllı Tava Ekmeği", "product_img":"https://cdn.getir.com/product/60c1c77d98369791cf5d98f8_tr_1623335406884.jpeg","product_price":"₺6,75"},
9 | {"product_name":"Parodontax Beyazlatıcı", "product_img":"https://cdn.getir.com/product/60dc650483bc8452fed88187_tr_1625122526216.jpeg","product_price":"₺12,75"},
10 | {"product_name":"Eti Canga Gold", "product_img":"https://cdn.getir.com/product/60d9697600a9a7d46f91f780_tr_1624953183058.jpeg","product_price":"₺6,75"},
11 | {"product_name":"Clasigo Karamel", "product_img":"https://cdn.getir.com/product/60bf83c734cba825e1fd8ae1_tr_1623684664580.jpeg","product_price":"₺2,75"},
12 | {"product_name":"Whiskas Tavuklu", "product_img":"https://cdn.getir.com/product/60b0fd5a471ad3e13fd6028e_tr_1622228320506.jpeg","product_price":"₺22,75"},
13 | {"product_name":"Sütaş Tereyağı", "product_img":"https://cdn.getir.com/product/60645b9a4b29c55e8b90cfd2_tr_1619677613821.jpeg","product_price":"₺20,75"}
14 | ]
15 | }
--------------------------------------------------------------------------------
/src/components/RegisterCard/index.tsx:
--------------------------------------------------------------------------------
1 |
2 | import { useState,FC } from 'react';
3 | import ReactFlagsSelect from 'react-flags-select';
4 | import {FaFacebook} from 'react-icons/fa';
5 | export const RegisterCard: FC = () => {
6 |
7 | const [selected, setSelected] = useState('TR');
8 |
9 | const flags = {
10 | US: '+1',
11 | GB: '+5',
12 | FR: '+70',
13 | DE: '+30',
14 | IT: '+11',
15 | TR: '+90',
16 | }
17 | return (
18 |
19 |
Giriş yap veya kayıt ol
20 |
21 |
22 | setSelected(code)}
27 | />
28 |
36 |
37 |
41 |
42 |
49 |
50 |
51 | );
52 | };
--------------------------------------------------------------------------------
/src/components/ui/CardItem.js:
--------------------------------------------------------------------------------
1 | function CardItem({card: {title, image, description}}) {
2 | return (
3 |
4 |

5 |
{title}
6 |
7 | {description}
8 |
9 |
10 | )
11 | }
12 |
13 | export default CardItem
--------------------------------------------------------------------------------
/src/components/ui/CategoryItem.js:
--------------------------------------------------------------------------------
1 | function CategoryItem({ category }) {
2 | return (
3 |
4 |
5 | {category.title}
6 |
7 | )
8 | }
9 |
10 | export default CategoryItem
--------------------------------------------------------------------------------
/src/components/ui/ProductItem.js:
--------------------------------------------------------------------------------
1 | import {useState} from 'react'
2 | import {AiOutlinePlus} from 'react-icons/ai'
3 |
4 | function ProductItem({product}) {
5 | return (
6 |
7 |
8 |
11 |
12 |
13 |
14 |
{new Intl.NumberFormat('tr-TR', { style: 'currency', currency: 'TRY' }).format(product.price)}
15 |
{product.title}
16 |
{product.alt}
17 |
18 |
19 | )
20 | }
21 |
22 | export default ProductItem
--------------------------------------------------------------------------------
/src/pages/_app.tsx:
--------------------------------------------------------------------------------
1 | import type { AppProps } from 'next/app';
2 | import { createTheme, ThemeProvider } from '@material-ui/core/styles';
3 |
4 | import '../styles/global.scss'
5 | import 'tailwindcss/tailwind.css'
6 |
7 | const theme = createTheme({
8 | palette: {
9 | primary: {
10 | dark: '#4c3398',
11 | main: '#5d3ebc',
12 | light: '#f3f0fe',
13 | contrastText: '#fff',
14 | },
15 | secondary: {
16 | main: '#7849f7',
17 | contrastText: '#fff',
18 | },
19 | common: {
20 | black: '#191919',
21 | },
22 | warning: {
23 | main: '#ddf300',
24 | },
25 | },
26 | });
27 |
28 | function MyApp({ Component, pageProps }: AppProps) {
29 | return (
30 |
31 |
32 |
33 | );
34 | }
35 |
36 | export default MyApp;
37 |
--------------------------------------------------------------------------------
/src/pages/index.tsx:
--------------------------------------------------------------------------------
1 | import type { NextPage } from 'next';
2 | import { Layout } from '../components/Layout/Layout';
3 | import {HomeSlider} from '../components/HomeSlider';
4 | import {Categorys} from '../components/Categorys';
5 | import {GetirWidgetMobil} from '../components/GetirWidgetMobil';
6 | import {Companys} from '../components/Companys';
7 | import { LocationBarMobile } from '../components/LocationBarMobile';
8 | import { Favorites } from '../components/Favorites';
9 | const HomePage: NextPage = () => {
10 | return (
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | );
20 | };
21 |
22 | export default HomePage;
23 |
--------------------------------------------------------------------------------
/src/pages/urunler.tsx:
--------------------------------------------------------------------------------
1 | import type { NextPage } from 'next';
2 | import React from 'react';
3 | import { Layout } from '../components/Layout/LayoutProducts';
4 | import {HomeSliderGetirYemek} from '../components/HomeSliderGetirYemek';
5 | import {Products} from '../components/Products';
6 | import {GetirWidgetMobil} from '../components/GetirWidgetMobil';
7 | import {CompanysProducts} from '../components/CompanysProducts';
8 | import {Basket} from '../components/Basket';
9 |
10 | const HomePage: NextPage = () => {
11 | return (
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | );
21 | };
22 |
23 | export default HomePage;
24 |
--------------------------------------------------------------------------------
/src/pages/yemek.tsx:
--------------------------------------------------------------------------------
1 | import type { NextPage } from 'next';
2 | import { Layout } from '../components/Layout/LayoutYemek';
3 | import {HomeSliderGetirYemek} from '../components/HomeSliderGetirYemek';
4 | import {Categorys} from '../components/Categorys';
5 | import {GetirWidgetMobil} from '../components/GetirWidgetMobil';
6 | import {CompanysYemek} from '../components/CompanysYemek';
7 | const HomePage: NextPage = () => {
8 | return (
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | );
21 | };
22 |
23 | export default HomePage;
24 |
--------------------------------------------------------------------------------
/src/styles/global.scss:
--------------------------------------------------------------------------------
1 | /* ./styles/globals.css */
2 | @import "tailwindcss/base";
3 | @import "tailwindcss/components";
4 | @import "tailwindcss/utilities";
5 |
6 |
7 |
8 | :root {
9 | --color-black: #191919;
10 | --color-gray-dark: #3e3e3e;
11 | --color-gray: #a2a2a2;
12 | --color-gray-mid: #525252;
13 | --color-gray-light: #f5f5f5;
14 | --color-gray-background: #fafafa;
15 | --color-gray-storm: #697488;
16 | --color-primary: #5d3ebc;
17 | --color-primary-light: #f3f0fe;
18 | --color-secondary: #7849f7;
19 | --color-danger: #db471e;
20 | --color-warning: #ddf300;
21 | --color-success: #188977;
22 | --color-info: #4eb5eb;
23 | --color-brand-yellow: #ffd300;
24 | --font-weight-light: 300;
25 | --font-weight-normal: 400;
26 | --font-weight-semi-bold: 600;
27 | --font-weight-bold: 700;
28 | --font-size-xxs: 8px;
29 | --font-size-xs: 10px;
30 | --font-size-s: 12px;
31 | --font-size-m: 14px;
32 | --font-size-l: 16px;
33 | --font-size-xl: 18px;
34 | --font-size-xxl: 20px;
35 | --font-size-xxxl: 24px;
36 | --border-color-primary: var(--color-primary);
37 | --border-color-primary-light: var(--color-primary-light);
38 | --shadow-xs: 0px 2px 4px;
39 | --shadow-s: 0px 1px 6px;
40 | --shadow-m: 0px 2px 6px;
41 | --shadow-l: 0px 6px 16px;
42 | --shadow-xl: 0px 6px 24px;
43 | --shadow-xxl: 0px 16px 46px;
44 | --shadow-color-primary: rgba(93, 56, 192, 0.196445);
45 | --shadow-color-gray-light: rgba(0, 0, 0, 0.1);
46 | --shadow-card: rgba(93, 62, 188, 0.04);
47 | --shadow-card-hover: rgba(93, 62, 188, 0.12);
48 | --shadow-success: rgba(24, 137, 119, 0.1);
49 | --shadow-warning: rgba(227, 155, 14, 0.1);
50 | --shadow-danger: rgba(219, 71, 30, 0.1);
51 | --shadow-button: rgba(105, 116, 136, 0.15);
52 | }
53 |
54 |
55 | @import '../components/Categorys/categorys.module.scss';
56 | @import '../components/Companys/companys.module.scss';
57 | @import '../components/GetirWidgetMobil/mobilwidget.module.scss';
58 | @import '../components/Navbar/navbar.module.scss';
59 | @import '../components/NavbarProductsMobile/navbar.module.scss';
60 | @import '../components/CompanysProducts/companys.module.scss';
61 | @import '../components/HomeSlider/homeslider.module.scss';
62 |
63 | /*! tailwindcss v2.2.7 | MIT License | https://tailwindcss.com */
64 |
65 | /*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
66 |
67 | /*
68 | Document
69 | ========
70 | */
71 |
72 | /**
73 | Use a better box model (opinionated).
74 | */
75 |
76 | *,
77 | ::before,
78 | ::after {
79 | box-sizing: border-box;
80 | }
81 |
82 | /**
83 | Use a more readable tab size (opinionated).
84 | */
85 |
86 | html {
87 | -moz-tab-size: 4;
88 | tab-size: 4;
89 | }
90 |
91 | /**
92 | 1. Correct the line height in all browsers.
93 | 2. Prevent adjustments of font size after orientation changes in iOS.
94 | */
95 |
96 | html {
97 | line-height: 1.15;
98 | /* 1 */
99 | -webkit-text-size-adjust: 100%;
100 | /* 2 */
101 | }
102 |
103 | /*
104 | Sections
105 | ========
106 | */
107 |
108 | /**
109 | Remove the margin in all browsers.
110 | */
111 |
112 | body {
113 | margin: 0;
114 | }
115 |
116 | /**
117 | Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
118 | */
119 |
120 | body {
121 | font-family:
122 | system-ui,
123 | -apple-system, /* Firefox supports this but not yet `system-ui` */
124 | 'Segoe UI',
125 | Roboto,
126 | Helvetica,
127 | Arial,
128 | sans-serif,
129 | 'Apple Color Emoji',
130 | 'Segoe UI Emoji';
131 | }
132 |
133 | /*
134 | Grouping content
135 | ================
136 | */
137 |
138 | /**
139 | 1. Add the correct height in Firefox.
140 | 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
141 | */
142 |
143 | hr {
144 | height: 0;
145 | /* 1 */
146 | color: inherit;
147 | /* 2 */
148 | }
149 |
150 | /*
151 | Text-level semantics
152 | ====================
153 | */
154 |
155 | /**
156 | Add the correct text decoration in Chrome, Edge, and Safari.
157 | */
158 |
159 | abbr[title] {
160 | -webkit-text-decoration: underline dotted;
161 | text-decoration: underline dotted;
162 | }
163 |
164 | /**
165 | Add the correct font weight in Edge and Safari.
166 | */
167 |
168 | b,
169 | strong {
170 | font-weight: bolder;
171 | }
172 |
173 | /**
174 | 1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
175 | 2. Correct the odd 'em' font sizing in all browsers.
176 | */
177 |
178 | code,
179 | kbd,
180 | samp,
181 | pre {
182 | font-family:
183 | ui-monospace,
184 | SFMono-Regular,
185 | Consolas,
186 | 'Liberation Mono',
187 | Menlo,
188 | monospace;
189 | /* 1 */
190 | font-size: 1em;
191 | /* 2 */
192 | }
193 |
194 | /**
195 | Add the correct font size in all browsers.
196 | */
197 |
198 | small {
199 | font-size: 80%;
200 | }
201 |
202 | /**
203 | Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
204 | */
205 |
206 | sub,
207 | sup {
208 | font-size: 75%;
209 | line-height: 0;
210 | position: relative;
211 | vertical-align: baseline;
212 | }
213 |
214 | sub {
215 | bottom: -0.25em;
216 | }
217 |
218 | sup {
219 | top: -0.5em;
220 | }
221 |
222 | /*
223 | Tabular data
224 | ============
225 | */
226 |
227 | /**
228 | 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
229 | 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
230 | */
231 |
232 | table {
233 | text-indent: 0;
234 | /* 1 */
235 | border-color: inherit;
236 | /* 2 */
237 | }
238 |
239 | /*
240 | Forms
241 | =====
242 | */
243 |
244 | /**
245 | 1. Change the font styles in all browsers.
246 | 2. Remove the margin in Firefox and Safari.
247 | */
248 |
249 | button,
250 | input,
251 | optgroup,
252 | select,
253 | textarea {
254 | font-family: inherit;
255 | /* 1 */
256 | font-size: 100%;
257 | /* 1 */
258 | line-height: 1.15;
259 | /* 1 */
260 | margin: 0;
261 | /* 2 */
262 | }
263 |
264 | /**
265 | Remove the inheritance of text transform in Edge and Firefox.
266 | 1. Remove the inheritance of text transform in Firefox.
267 | */
268 |
269 | button,
270 | select {
271 | /* 1 */
272 | text-transform: none;
273 | }
274 |
275 | /**
276 | Correct the inability to style clickable types in iOS and Safari.
277 | */
278 |
279 | button,
280 | [type='button'],
281 | [type='reset'],
282 | [type='submit'] {
283 | -webkit-appearance: button;
284 | }
285 |
286 | /**
287 | Remove the inner border and padding in Firefox.
288 | */
289 |
290 | ::-moz-focus-inner {
291 | border-style: none;
292 | padding: 0;
293 | }
294 |
295 | /**
296 | Restore the focus styles unset by the previous rule.
297 | */
298 |
299 | :-moz-focusring {
300 | outline: 1px dotted ButtonText;
301 | }
302 |
303 | /**
304 | Remove the additional ':invalid' styles in Firefox.
305 | See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
306 | */
307 |
308 | :-moz-ui-invalid {
309 | box-shadow: none;
310 | }
311 |
312 | /**
313 | Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
314 | */
315 |
316 | legend {
317 | padding: 0;
318 | }
319 |
320 | /**
321 | Add the correct vertical alignment in Chrome and Firefox.
322 | */
323 |
324 | progress {
325 | vertical-align: baseline;
326 | }
327 |
328 | /**
329 | Correct the cursor style of increment and decrement buttons in Safari.
330 | */
331 |
332 | ::-webkit-inner-spin-button,
333 | ::-webkit-outer-spin-button {
334 | height: auto;
335 | }
336 |
337 | /**
338 | 1. Correct the odd appearance in Chrome and Safari.
339 | 2. Correct the outline style in Safari.
340 | */
341 |
342 | [type='search'] {
343 | -webkit-appearance: textfield;
344 | /* 1 */
345 | outline-offset: -2px;
346 | /* 2 */
347 | }
348 |
349 | /**
350 | Remove the inner padding in Chrome and Safari on macOS.
351 | */
352 |
353 | ::-webkit-search-decoration {
354 | -webkit-appearance: none;
355 | }
356 |
357 | /**
358 | 1. Correct the inability to style clickable types in iOS and Safari.
359 | 2. Change font properties to 'inherit' in Safari.
360 | */
361 |
362 | ::-webkit-file-upload-button {
363 | -webkit-appearance: button;
364 | /* 1 */
365 | font: inherit;
366 | /* 2 */
367 | }
368 |
369 | /*
370 | Interactive
371 | ===========
372 | */
373 |
374 | /*
375 | Add the correct display in Chrome and Safari.
376 | */
377 |
378 | summary {
379 | display: list-item;
380 | }
381 |
382 | /**
383 | * Manually forked from SUIT CSS Base: https://github.com/suitcss/base
384 | * A thin layer on top of normalize.css that provides a starting point more
385 | * suitable for web applications.
386 | */
387 |
388 | /**
389 | * Removes the default spacing and border for appropriate elements.
390 | */
391 |
392 | blockquote,
393 | dl,
394 | dd,
395 | h1,
396 | h2,
397 | h3,
398 | h4,
399 | h5,
400 | h6,
401 | hr,
402 | figure,
403 | p,
404 | pre {
405 | margin: 0;
406 | }
407 |
408 | button {
409 | background-color: transparent;
410 | background-image: none;
411 | }
412 |
413 | fieldset {
414 | margin: 0;
415 | padding: 0;
416 | }
417 |
418 | ol,
419 | ul {
420 | list-style: none;
421 | margin: 0;
422 | padding: 0;
423 | }
424 |
425 | /**
426 | * Tailwind custom reset styles
427 | */
428 |
429 | /**
430 | * 1. Use the user's configured `sans` font-family (with Tailwind's default
431 | * sans-serif font stack as a fallback) as a sane default.
432 | * 2. Use Tailwind's default "normal" line-height so the user isn't forced
433 | * to override it to ensure consistency even when using the default theme.
434 | */
435 |
436 | html {
437 | font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
438 | /* 1 */
439 | line-height: 1.5;
440 | /* 2 */
441 | }
442 |
443 | /**
444 | * Inherit font-family and line-height from `html` so users can set them as
445 | * a class directly on the `html` element.
446 | */
447 |
448 | body {
449 | font-family: inherit;
450 | line-height: inherit;
451 | }
452 |
453 | /**
454 | * 1. Prevent padding and border from affecting element width.
455 | *
456 | * We used to set this in the html element and inherit from
457 | * the parent element for everything else. This caused issues
458 | * in shadow-dom-enhanced elements like where the content
459 | * is wrapped by a div with box-sizing set to `content-box`.
460 | *
461 | * https://github.com/mozdevs/cssremedy/issues/4
462 | *
463 | *
464 | * 2. Allow adding a border to an element by just adding a border-width.
465 | *
466 | * By default, the way the browser specifies that an element should have no
467 | * border is by setting it's border-style to `none` in the user-agent
468 | * stylesheet.
469 | *
470 | * In order to easily add borders to elements by just setting the `border-width`
471 | * property, we change the default border-style for all elements to `solid`, and
472 | * use border-width to hide them instead. This way our `border` utilities only
473 | * need to set the `border-width` property instead of the entire `border`
474 | * shorthand, making our border utilities much more straightforward to compose.
475 | *
476 | * https://github.com/tailwindcss/tailwindcss/pull/116
477 | */
478 |
479 | *,
480 | ::before,
481 | ::after {
482 | box-sizing: border-box;
483 | /* 1 */
484 | border-width: 0;
485 | /* 2 */
486 | border-style: solid;
487 | /* 2 */
488 | border-color: currentColor;
489 | /* 2 */
490 | }
491 |
492 | /*
493 | * Ensure horizontal rules are visible by default
494 | */
495 |
496 | hr {
497 | border-top-width: 1px;
498 | }
499 |
500 | /**
501 | * Undo the `border-style: none` reset that Normalize applies to images so that
502 | * our `border-{width}` utilities have the expected effect.
503 | *
504 | * The Normalize reset is unnecessary for us since we default the border-width
505 | * to 0 on all elements.
506 | *
507 | * https://github.com/tailwindcss/tailwindcss/issues/362
508 | */
509 |
510 | img {
511 | border-style: solid;
512 | }
513 |
514 | textarea {
515 | resize: vertical;
516 | }
517 |
518 | input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
519 | opacity: 1;
520 | color: #9ca3af;
521 | }
522 |
523 | input:-ms-input-placeholder, textarea:-ms-input-placeholder {
524 | opacity: 1;
525 | color: #9ca3af;
526 | }
527 |
528 | input::placeholder,
529 | textarea::placeholder {
530 | opacity: 1;
531 | color: #9ca3af;
532 | }
533 |
534 | button,
535 | [role="button"] {
536 | cursor: pointer;
537 | }
538 |
539 | table {
540 | border-collapse: collapse;
541 | }
542 |
543 | h1,
544 | h2,
545 | h3,
546 | h4,
547 | h5,
548 | h6 {
549 | font-size: inherit;
550 | font-weight: inherit;
551 | }
552 |
553 | /**
554 | * Reset links to optimize for opt-in styling instead of
555 | * opt-out.
556 | */
557 |
558 | a {
559 | color: inherit;
560 | text-decoration: inherit;
561 | }
562 |
563 | /**
564 | * Reset form element properties that are easy to forget to
565 | * style explicitly so you don't inadvertently introduce
566 | * styles that deviate from your design system. These styles
567 | * supplement a partial reset that is already applied by
568 | * normalize.css.
569 | */
570 |
571 | button,
572 | input,
573 | optgroup,
574 | select,
575 | textarea {
576 | padding: 0;
577 | line-height: inherit;
578 | color: inherit;
579 | }
580 |
581 | /**
582 | * Use the configured 'mono' font family for elements that
583 | * are expected to be rendered with a monospace font, falling
584 | * back to the system monospace stack if there is no configured
585 | * 'mono' font family.
586 | */
587 |
588 | pre,
589 | code,
590 | kbd,
591 | samp {
592 | font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
593 | }
594 |
595 | /**
596 | * 1. Make replaced elements `display: block` by default as that's
597 | * the behavior you want almost all of the time. Inspired by
598 | * CSS Remedy, with `svg` added as well.
599 | *
600 | * https://github.com/mozdevs/cssremedy/issues/14
601 | *
602 | * 2. Add `vertical-align: middle` to align replaced elements more
603 | * sensibly by default when overriding `display` by adding a
604 | * utility like `inline`.
605 | *
606 | * This can trigger a poorly considered linting error in some
607 | * tools but is included by design.
608 | *
609 | * https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210
610 | */
611 |
612 | img,
613 | svg,
614 | video,
615 | canvas,
616 | audio,
617 | iframe,
618 | embed,
619 | object {
620 | display: block;
621 | /* 1 */
622 | vertical-align: middle;
623 | /* 2 */
624 | }
625 |
626 | /**
627 | * Constrain images and videos to the parent width and preserve
628 | * their intrinsic aspect ratio.
629 | *
630 | * https://github.com/mozdevs/cssremedy/issues/14
631 | */
632 |
633 | img,
634 | video {
635 | max-width: 100%;
636 | height: auto;
637 | }
638 |
639 | /**
640 | * Ensure the default browser behavior of the `hidden` attribute.
641 | */
642 |
643 | [hidden] {
644 | display: none;
645 | }
646 |
647 | *, ::before, ::after {
648 | --tw-translate-x: 0;
649 | --tw-translate-y: 0;
650 | --tw-rotate: 0;
651 | --tw-skew-x: 0;
652 | --tw-skew-y: 0;
653 | --tw-scale-x: 1;
654 | --tw-scale-y: 1;
655 | --tw-transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
656 | --tw-border-opacity: 1;
657 | border-color: rgba(229, 231, 235, var(--tw-border-opacity));
658 | --tw-ring-offset-shadow: 0 0 #0000;
659 | --tw-ring-shadow: 0 0 #0000;
660 | --tw-shadow: 0 0 #0000;
661 | }
662 |
663 | html, body {
664 | font-family: 'Open Sans', sans-serif;
665 | --tw-bg-opacity: 1;
666 | background-color: rgba(221, 214, 254, var(--tw-bg-opacity));
667 | --tw-bg-opacity: 0.1;
668 | -webkit-font-smoothing: antialiased;
669 | -moz-osx-font-smoothing: grayscale
670 | }
671 |
672 | .container {
673 | width: 100%;
674 | }
675 |
676 | @media (min-width: 640px) {
677 | .container {
678 | max-width: 640px;
679 | }
680 | }
681 |
682 | @media (min-width: 768px) {
683 | .container {
684 | max-width: 768px;
685 | }
686 | }
687 |
688 | @media (min-width: 1024px) {
689 | .container {
690 | max-width: 1024px;
691 | }
692 | }
693 |
694 | @media (min-width: 1280px) {
695 | .container {
696 | max-width: 1280px;
697 | }
698 | }
699 |
700 | @media (min-width: 1536px) {
701 | .container {
702 | max-width: 1536px;
703 | }
704 | }
705 |
706 | @media(max-width: 640px) {
707 | .container {
708 | max-width: 100%
709 | }
710 |
711 | .container {
712 | box-sizing: border-box;
713 | }
714 |
715 | .container {
716 | padding-left: 1rem;
717 | padding-right: 1rem;
718 | }
719 | }
720 |
721 | .absolute {
722 | position: absolute;
723 | }
724 |
725 | .relative {
726 | position: relative;
727 | }
728 |
729 | .inset-0 {
730 | top: 0px;
731 | right: 0px;
732 | bottom: 0px;
733 | left: 0px;
734 | }
735 |
736 | .top-0 {
737 | top: 0px;
738 | }
739 |
740 | .left-0 {
741 | left: 0px;
742 | }
743 |
744 | .right-2 {
745 | right: 0.5rem;
746 | }
747 |
748 | .z-\[40\] {
749 | z-index: 40;
750 | }
751 |
752 | .mx-auto {
753 | margin-left: auto;
754 | margin-right: auto;
755 | }
756 |
757 | .-mx-2 {
758 | margin-left: -0.5rem;
759 | margin-right: -0.5rem;
760 | }
761 |
762 | .mb-3 {
763 | margin-bottom: 0.75rem;
764 | }
765 |
766 | .mt-4 {
767 | margin-top: 1rem;
768 | }
769 |
770 | .mb-2 {
771 | margin-bottom: 0.5rem;
772 | }
773 |
774 | .mb-4 {
775 | margin-bottom: 1rem;
776 | }
777 |
778 | .ml-1 {
779 | margin-left: 0.25rem;
780 | }
781 |
782 | .mt-3 {
783 | margin-top: 0.75rem;
784 | }
785 |
786 | .mt-2 {
787 | margin-top: 0.5rem;
788 | }
789 |
790 | .block {
791 | display: block;
792 | }
793 |
794 | .flex {
795 | display: flex;
796 | }
797 |
798 | .grid {
799 | display: grid;
800 | }
801 |
802 | .hidden {
803 | display: none;
804 | }
805 |
806 | .h-\[1px\] {
807 | height: 1px;
808 | }
809 |
810 | .h-8 {
811 | height: 2rem;
812 | }
813 |
814 | .h-14 {
815 | height: 3.5rem;
816 | }
817 |
818 | .h-10 {
819 | height: 2.5rem;
820 | }
821 |
822 | .h-auto {
823 | height: auto;
824 | }
825 |
826 | .h-full {
827 | height: 100%;
828 | }
829 |
830 | .h-\[500px\] {
831 | height: 500px;
832 | }
833 |
834 | .h-12 {
835 | height: 3rem;
836 | }
837 |
838 | .h-36 {
839 | height: 9rem;
840 | }
841 |
842 | .w-full {
843 | width: 100%;
844 | }
845 |
846 | .w-8 {
847 | width: 2rem;
848 | }
849 |
850 | .w-36 {
851 | width: 9rem;
852 | }
853 |
854 | .w-12 {
855 | width: 3rem;
856 | }
857 |
858 | .flex-1 {
859 | flex: 1 1 0%;
860 | }
861 |
862 | .grid-cols-1 {
863 | grid-template-columns: repeat(1, minmax(0, 1fr));
864 | }
865 |
866 | .grid-cols-3 {
867 | grid-template-columns: repeat(3, minmax(0, 1fr));
868 | }
869 |
870 | .grid-cols-2 {
871 | grid-template-columns: repeat(2, minmax(0, 1fr));
872 | }
873 |
874 | .flex-col {
875 | flex-direction: column;
876 | }
877 |
878 | .items-center {
879 | align-items: center;
880 | }
881 |
882 | .justify-center {
883 | justify-content: center;
884 | }
885 |
886 | .justify-between {
887 | justify-content: space-between;
888 | }
889 |
890 | .gap-4 {
891 | gap: 1rem;
892 | }
893 |
894 | .gap-0\.1 {
895 | gap: 0.063rem;
896 | }
897 |
898 | .gap-0 {
899 | gap: 0px;
900 | }
901 |
902 | .gap-2 {
903 | gap: 0.5rem;
904 | }
905 |
906 | .gap-y-6 {
907 | row-gap: 1.5rem;
908 | }
909 |
910 | .gap-y-5 {
911 | row-gap: 1.25rem;
912 | }
913 |
914 | .gap-y-4 {
915 | row-gap: 1rem;
916 | }
917 |
918 | .gap-y-3 {
919 | row-gap: 0.75rem;
920 | }
921 |
922 | .gap-x-4 {
923 | -webkit-column-gap: 1rem;
924 | column-gap: 1rem;
925 | }
926 |
927 | .gap-x-2 {
928 | -webkit-column-gap: 0.5rem;
929 | column-gap: 0.5rem;
930 | }
931 |
932 | .gap-x-8 {
933 | -webkit-column-gap: 2rem;
934 | column-gap: 2rem;
935 | }
936 |
937 | .gap-y-10 {
938 | row-gap: 2.5rem;
939 | }
940 |
941 | .gap-x-3 {
942 | -webkit-column-gap: 0.75rem;
943 | column-gap: 0.75rem;
944 | }
945 |
946 | .gap-y-2 {
947 | row-gap: 0.5rem;
948 | }
949 |
950 | .gap-y-1 {
951 | row-gap: 0.25rem;
952 | }
953 |
954 | .self-end {
955 | align-self: flex-end;
956 | }
957 |
958 | .justify-self-start {
959 | justify-self: start;
960 | }
961 |
962 | .overflow-hidden {
963 | overflow: hidden;
964 | }
965 |
966 | .whitespace-nowrap {
967 | white-space: nowrap;
968 | }
969 |
970 | .rounded-lg {
971 | border-radius: 0.5rem;
972 | }
973 |
974 | .rounded {
975 | border-radius: 0.25rem;
976 | }
977 |
978 | .border {
979 | border-width: 1px;
980 | }
981 |
982 | .border-2 {
983 | border-width: 2px;
984 | }
985 |
986 | .border-gray-100 {
987 | --tw-border-opacity: 1;
988 | border-color: rgba(243, 244, 246, var(--tw-border-opacity));
989 | }
990 |
991 | .border-gray-200 {
992 | --tw-border-opacity: 1;
993 | border-color: rgba(229, 231, 235, var(--tw-border-opacity));
994 | }
995 |
996 | .bg-white {
997 | --tw-bg-opacity: 1;
998 | background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
999 | }
1000 |
1001 | .bg-gray-100 {
1002 | --tw-bg-opacity: 1;
1003 | background-color: rgba(243, 244, 246, var(--tw-bg-opacity));
1004 | }
1005 |
1006 | .bg-purple-800 {
1007 | --tw-bg-opacity: 1;
1008 | background-color: rgba(91, 33, 182, var(--tw-bg-opacity));
1009 | }
1010 |
1011 | .bg-purple-500 {
1012 | --tw-bg-opacity: 1;
1013 | background-color: rgba(139, 92, 246, var(--tw-bg-opacity));
1014 | }
1015 |
1016 | .bg-gray-50 {
1017 | --tw-bg-opacity: 1;
1018 | background-color: rgba(249, 250, 251, var(--tw-bg-opacity));
1019 | }
1020 |
1021 | .bg-yellow-300 {
1022 | --tw-bg-opacity: 1;
1023 | background-color: rgba(252, 211, 77, var(--tw-bg-opacity));
1024 | }
1025 |
1026 | .bg-blue-700 {
1027 | --tw-bg-opacity: 1;
1028 | background-color: rgba(29, 78, 216, var(--tw-bg-opacity));
1029 | }
1030 |
1031 | .bg-purple-700 {
1032 | --tw-bg-opacity: 1;
1033 | background-color: rgba(109, 40, 217, var(--tw-bg-opacity));
1034 | }
1035 |
1036 | .bg-opacity-10 {
1037 | --tw-bg-opacity: 0.1;
1038 | }
1039 |
1040 | .bg-mobile-app {
1041 | background-image: url(https://getir.com/_next/static/images/doodle-d659f9f1fd505c811c2331fe3ffddd5f.png);
1042 | }
1043 |
1044 | .bg-cover {
1045 | background-size: cover;
1046 | }
1047 |
1048 | .bg-center {
1049 | background-position: center;
1050 | }
1051 |
1052 | .bg-no-repeat {
1053 | background-repeat: no-repeat;
1054 | }
1055 |
1056 | .object-cover {
1057 | object-fit: cover;
1058 | }
1059 |
1060 | .p-5 {
1061 | padding: 1.25rem;
1062 | }
1063 |
1064 | .p-4 {
1065 | padding: 1rem;
1066 | }
1067 |
1068 | .p-3 {
1069 | padding: 0.75rem;
1070 | }
1071 |
1072 | .py-6 {
1073 | padding-top: 1.5rem;
1074 | padding-bottom: 1.5rem;
1075 | }
1076 |
1077 | .px-0 {
1078 | padding-left: 0px;
1079 | padding-right: 0px;
1080 | }
1081 |
1082 | .px-2 {
1083 | padding-left: 0.5rem;
1084 | padding-right: 0.5rem;
1085 | }
1086 |
1087 | .py-4 {
1088 | padding-top: 1rem;
1089 | padding-bottom: 1rem;
1090 | }
1091 |
1092 | .px-3 {
1093 | padding-left: 0.75rem;
1094 | padding-right: 0.75rem;
1095 | }
1096 |
1097 | .px-8 {
1098 | padding-left: 2rem;
1099 | padding-right: 2rem;
1100 | }
1101 |
1102 | .px-5 {
1103 | padding-left: 1.25rem;
1104 | padding-right: 1.25rem;
1105 | }
1106 |
1107 | .py-3 {
1108 | padding-top: 0.75rem;
1109 | padding-bottom: 0.75rem;
1110 | }
1111 |
1112 | .px-4 {
1113 | padding-left: 1rem;
1114 | padding-right: 1rem;
1115 | }
1116 |
1117 | .px-6 {
1118 | padding-left: 1.5rem;
1119 | padding-right: 1.5rem;
1120 | }
1121 |
1122 | .py-10 {
1123 | padding-top: 2.5rem;
1124 | padding-bottom: 2.5rem;
1125 | }
1126 |
1127 | .pb-14 {
1128 | padding-bottom: 3.5rem;
1129 | }
1130 |
1131 | .pt-3 {
1132 | padding-top: 0.75rem;
1133 | }
1134 |
1135 | .pb-5 {
1136 | padding-bottom: 1.25rem;
1137 | }
1138 |
1139 | .pt-2 {
1140 | padding-top: 0.5rem;
1141 | }
1142 |
1143 | .pt-1 {
1144 | padding-top: 0.25rem;
1145 | }
1146 |
1147 | .text-center {
1148 | text-align: center;
1149 | }
1150 |
1151 | .text-sm {
1152 | font-size: 0.875rem;
1153 | line-height: 1.25rem;
1154 | }
1155 |
1156 | .text-lg {
1157 | font-size: 1.125rem;
1158 | line-height: 1.75rem;
1159 | }
1160 |
1161 | .text-4xl {
1162 | font-size: 2.25rem;
1163 | line-height: 2.5rem;
1164 | }
1165 |
1166 | .text-3xl {
1167 | font-size: 1.875rem;
1168 | line-height: 2.25rem;
1169 | }
1170 |
1171 | .text-xs {
1172 | font-size: 0.75rem;
1173 | line-height: 1rem;
1174 | }
1175 |
1176 | .font-semibold {
1177 | font-weight: 600;
1178 | }
1179 |
1180 | .font-bold {
1181 | font-weight: 700;
1182 | }
1183 |
1184 | .tracking-tighter {
1185 | letter-spacing: -0.05em;
1186 | }
1187 |
1188 | .text-purple-700 {
1189 | --tw-text-opacity: 1;
1190 | color: rgba(109, 40, 217, var(--tw-text-opacity));
1191 | }
1192 |
1193 | .text-gray-700 {
1194 | --tw-text-opacity: 1;
1195 | color: rgba(55, 65, 81, var(--tw-text-opacity));
1196 | }
1197 |
1198 | .text-purple-800 {
1199 | --tw-text-opacity: 1;
1200 | color: rgba(91, 33, 182, var(--tw-text-opacity));
1201 | }
1202 |
1203 | .text-gray-600 {
1204 | --tw-text-opacity: 1;
1205 | color: rgba(75, 85, 99, var(--tw-text-opacity));
1206 | }
1207 |
1208 | .text-white {
1209 | --tw-text-opacity: 1;
1210 | color: rgba(255, 255, 255, var(--tw-text-opacity));
1211 | }
1212 |
1213 | .text-purple-600 {
1214 | --tw-text-opacity: 1;
1215 | color: rgba(124, 58, 237, var(--tw-text-opacity));
1216 | }
1217 |
1218 | .text-gray-500 {
1219 | --tw-text-opacity: 1;
1220 | color: rgba(107, 114, 128, var(--tw-text-opacity));
1221 | }
1222 |
1223 | .text-blue-900 {
1224 | --tw-text-opacity: 1;
1225 | color: rgba(30, 58, 138, var(--tw-text-opacity));
1226 | }
1227 |
1228 | .text-opacity-80 {
1229 | --tw-text-opacity: 0.8;
1230 | }
1231 |
1232 | .shadow-md {
1233 | --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
1234 | box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1235 | }
1236 |
1237 | .outline-none {
1238 | outline: 2px solid transparent;
1239 | outline-offset: 2px;
1240 | }
1241 |
1242 | .transition-colors {
1243 | transition-property: background-color, border-color, color, fill, stroke;
1244 | transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1245 | transition-duration: 150ms;
1246 | }
1247 |
1248 | .transition-all {
1249 | transition-property: all;
1250 | transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1251 | transition-duration: 150ms;
1252 | }
1253 |
1254 | @import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700;800&display=swap');
1255 |
1256 | @import url('https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.css');
1257 |
1258 | .slick-prev {
1259 | position: absolute;
1260 | top: 50%;
1261 | left: -2rem;
1262 | display: none;
1263 | --tw-translate-y: -50%;
1264 | -webkit-transform: var(--tw-transform);
1265 | transform: var(--tw-transform);
1266 | }
1267 |
1268 | @media (min-width: 768px) {
1269 | .slick-prev {
1270 | display: block;
1271 | }
1272 | }
1273 |
1274 | .slick-next {
1275 | position: absolute;
1276 | top: 50%;
1277 | right: -2rem;
1278 | display: none;
1279 | --tw-translate-y: -50%;
1280 | -webkit-transform: var(--tw-transform);
1281 | transform: var(--tw-transform);
1282 | }
1283 |
1284 | @media (min-width: 768px) {
1285 | .slick-next {
1286 | display: block;
1287 | }
1288 | }
1289 |
1290 | #rfs-btn {
1291 | height: 3.5rem;
1292 | width: 109px;
1293 | border-radius: 0.25rem;
1294 | border-width: 2px;
1295 | --tw-border-opacity: 1;
1296 | border-color: rgba(229, 231, 235, var(--tw-border-opacity));
1297 | transition-property: background-color, border-color, color, fill, stroke;
1298 | transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1299 | transition-duration: 150ms;
1300 | }
1301 |
1302 | #rfs-btn:hover {
1303 | --tw-border-opacity: 1;
1304 | border-color: rgba(124, 58, 237, var(--tw-border-opacity));
1305 | }
1306 |
1307 | #rfs-btn[aria-expanded="true"] {
1308 | --tw-border-opacity: 1;
1309 | border-color: rgba(124, 58, 237, var(--tw-border-opacity));
1310 | }
1311 |
1312 | #rfs-btn >span >span:nth-child(1) {
1313 | font-size: 1rem;
1314 | line-height: 1.5rem;
1315 | }
1316 |
1317 | #rfs-btn >span >span:nth-child(2) {
1318 | font-size: 0.875rem;
1319 | line-height: 1.25rem;
1320 | }
1321 |
1322 | #rfs-btn + ul {
1323 | border-style: none;
1324 | --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
1325 | box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1326 | }
1327 |
1328 | [data-testid="rfs"] {
1329 | padding-bottom: 0px !important;
1330 | }
1331 |
1332 | .before\:absolute::before {
1333 | content: "";
1334 | position: absolute;
1335 | }
1336 |
1337 | .before\:inset-0::before {
1338 | content: "";
1339 | top: 0px;
1340 | right: 0px;
1341 | bottom: 0px;
1342 | left: 0px;
1343 | }
1344 |
1345 | .before\:z-10::before {
1346 | content: "";
1347 | z-index: 10;
1348 | }
1349 |
1350 | .before\:h-full::before {
1351 | content: "";
1352 | height: 100%;
1353 | }
1354 |
1355 | .before\:w-full::before {
1356 | content: "";
1357 | width: 100%;
1358 | }
1359 |
1360 | .before\:bg-gradient-to-r::before {
1361 | content: "";
1362 | background-image: linear-gradient(to right, var(--tw-gradient-stops));
1363 | }
1364 |
1365 | .before\:from-purple-600::before {
1366 | content: "";
1367 | --tw-gradient-from: #7c3aed;
1368 | --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(124, 58, 237, 0));
1369 | }
1370 |
1371 | .before\:to-transparent::before {
1372 | content: "";
1373 | --tw-gradient-to: transparent;
1374 | }
1375 |
1376 | .hover\:border-purple-700:hover {
1377 | --tw-border-opacity: 1;
1378 | border-color: rgba(109, 40, 217, var(--tw-border-opacity));
1379 | }
1380 |
1381 | .hover\:bg-purple-50:hover {
1382 | --tw-bg-opacity: 1;
1383 | background-color: rgba(245, 243, 255, var(--tw-bg-opacity));
1384 | }
1385 |
1386 | .hover\:bg-purple-700:hover {
1387 | --tw-bg-opacity: 1;
1388 | background-color: rgba(109, 40, 217, var(--tw-bg-opacity));
1389 | }
1390 |
1391 | .hover\:bg-blue-900:hover {
1392 | --tw-bg-opacity: 1;
1393 | background-color: rgba(30, 58, 138, var(--tw-bg-opacity));
1394 | }
1395 |
1396 | .hover\:text-purple-700:hover {
1397 | --tw-text-opacity: 1;
1398 | color: rgba(109, 40, 217, var(--tw-text-opacity));
1399 | }
1400 |
1401 | .hover\:text-yellow-300:hover {
1402 | --tw-text-opacity: 1;
1403 | color: rgba(252, 211, 77, var(--tw-text-opacity));
1404 | }
1405 |
1406 | .hover\:text-white:hover {
1407 | --tw-text-opacity: 1;
1408 | color: rgba(255, 255, 255, var(--tw-text-opacity));
1409 | }
1410 |
1411 | .hover\:text-opacity-100:hover {
1412 | --tw-text-opacity: 1;
1413 | }
1414 |
1415 | .hover\:underline:hover {
1416 | text-decoration: underline;
1417 | }
1418 |
1419 | .focus\:border-purple-700:focus {
1420 | --tw-border-opacity: 1;
1421 | border-color: rgba(109, 40, 217, var(--tw-border-opacity));
1422 | }
1423 |
1424 | .group:focus-within .group-focus-within\:h-7 {
1425 | height: 1.75rem;
1426 | }
1427 |
1428 | .group:focus-within .group-focus-within\:text-xs {
1429 | font-size: 0.75rem;
1430 | line-height: 1rem;
1431 | }
1432 |
1433 | .group:focus-within .group-focus-within\:text-purple-600 {
1434 | --tw-text-opacity: 1;
1435 | color: rgba(124, 58, 237, var(--tw-text-opacity));
1436 | }
1437 |
1438 | .group:hover .group-hover\:text-purple-700 {
1439 | --tw-text-opacity: 1;
1440 | color: rgba(109, 40, 217, var(--tw-text-opacity));
1441 | }
1442 |
1443 | .peer:valid ~ .peer-valid\:h-7 {
1444 | height: 1.75rem;
1445 | }
1446 |
1447 | .peer:valid ~ .peer-valid\:text-xs {
1448 | font-size: 0.75rem;
1449 | line-height: 1rem;
1450 | }
1451 |
1452 | .peer:valid ~ .peer-valid\:text-purple-600 {
1453 | --tw-text-opacity: 1;
1454 | color: rgba(124, 58, 237, var(--tw-text-opacity));
1455 | }
1456 |
1457 | @media (min-width: 640px) {
1458 | .sm\:container {
1459 | width: 100%;
1460 | }
1461 |
1462 | @media (min-width: 640px) {
1463 | .sm\:container {
1464 | max-width: 640px;
1465 | }
1466 | }
1467 |
1468 | @media (min-width: 768px) {
1469 | .sm\:container {
1470 | max-width: 768px;
1471 | }
1472 | }
1473 |
1474 | @media (min-width: 1024px) {
1475 | .sm\:container {
1476 | max-width: 1024px;
1477 | }
1478 | }
1479 |
1480 | @media (min-width: 1280px) {
1481 | .sm\:container {
1482 | max-width: 1280px;
1483 | }
1484 | }
1485 |
1486 | @media (min-width: 1536px) {
1487 | .sm\:container {
1488 | max-width: 1536px;
1489 | }
1490 | }
1491 |
1492 | @media(max-width: 640px) {
1493 | .sm\:container {
1494 | max-width: 100%
1495 | }
1496 |
1497 | .sm\:container {
1498 | box-sizing: border-box;
1499 | }
1500 |
1501 | .sm\:container {
1502 | padding-left: 1rem;
1503 | padding-right: 1rem;
1504 | }
1505 | }
1506 |
1507 | .sm\:absolute {
1508 | position: absolute;
1509 | }
1510 |
1511 | .sm\:mt-8 {
1512 | margin-top: 2rem;
1513 | }
1514 |
1515 | .sm\:block {
1516 | display: block;
1517 | }
1518 |
1519 | .sm\:flex {
1520 | display: flex;
1521 | }
1522 |
1523 | .sm\:hidden {
1524 | display: none;
1525 | }
1526 |
1527 | .sm\:h-11 {
1528 | height: 2.75rem;
1529 | }
1530 |
1531 | .sm\:h-\[500px\] {
1532 | height: 500px;
1533 | }
1534 |
1535 | .sm\:w-\[400px\] {
1536 | width: 400px;
1537 | }
1538 |
1539 | .sm\:grid-cols-2 {
1540 | grid-template-columns: repeat(2, minmax(0, 1fr));
1541 | }
1542 |
1543 | .sm\:grid-cols-6 {
1544 | grid-template-columns: repeat(6, minmax(0, 1fr));
1545 | }
1546 |
1547 | .sm\:grid-cols-4 {
1548 | grid-template-columns: repeat(4, minmax(0, 1fr));
1549 | }
1550 |
1551 | .sm\:grid-cols-1 {
1552 | grid-template-columns: repeat(1, minmax(0, 1fr));
1553 | }
1554 |
1555 | .sm\:flex-row {
1556 | flex-direction: row;
1557 | }
1558 |
1559 | .sm\:justify-between {
1560 | justify-content: space-between;
1561 | }
1562 |
1563 | .sm\:gap-y-9 {
1564 | row-gap: 2.25rem;
1565 | }
1566 |
1567 | .sm\:gap-y-0 {
1568 | row-gap: 0px;
1569 | }
1570 |
1571 | .sm\:overflow-hidden {
1572 | overflow: hidden;
1573 | }
1574 |
1575 | .sm\:rounded-lg {
1576 | border-radius: 0.5rem;
1577 | }
1578 |
1579 | .sm\:p-0 {
1580 | padding: 0px;
1581 | }
1582 |
1583 | .sm\:px-8 {
1584 | padding-left: 2rem;
1585 | padding-right: 2rem;
1586 | }
1587 |
1588 | .sm\:py-6 {
1589 | padding-top: 1.5rem;
1590 | padding-bottom: 1.5rem;
1591 | }
1592 |
1593 | .sm\:pt-10 {
1594 | padding-top: 2.5rem;
1595 | }
1596 |
1597 | .sm\:pb-6 {
1598 | padding-bottom: 1.5rem;
1599 | }
1600 |
1601 | .sm\:pl-12 {
1602 | padding-left: 3rem;
1603 | }
1604 |
1605 | .sm\:pt-3 {
1606 | padding-top: 0.75rem;
1607 | }
1608 |
1609 | .sm\:text-left {
1610 | text-align: left;
1611 | }
1612 |
1613 | .sm\:text-base {
1614 | font-size: 1rem;
1615 | line-height: 1.5rem;
1616 | }
1617 | }
1618 |
1619 | @media (min-width: 768px) {
1620 | .md\:grid-cols-3 {
1621 | grid-template-columns: repeat(3, minmax(0, 1fr));
1622 | }
1623 |
1624 | .md\:grid-cols-8 {
1625 | grid-template-columns: repeat(8, minmax(0, 1fr));
1626 | }
1627 |
1628 | .md\:grid-cols-5 {
1629 | grid-template-columns: repeat(5, minmax(0, 1fr));
1630 | }
1631 |
1632 | .md\:overflow-auto {
1633 | overflow: auto;
1634 | }
1635 |
1636 | .md\:overflow-hidden {
1637 | overflow: hidden;
1638 | }
1639 |
1640 | .md\:overflow-visible {
1641 | overflow: visible;
1642 | }
1643 | }
1644 |
1645 | @media (min-width: 1024px) {
1646 | .lg\:grid-cols-10 {
1647 | grid-template-columns: repeat(10, minmax(0, 1fr));
1648 | }
1649 |
1650 | .lg\:grid-cols-6 {
1651 | grid-template-columns: repeat(6, minmax(0, 1fr));
1652 | }
1653 |
1654 | .lg\:grid-cols-4 {
1655 | grid-template-columns: repeat(4, minmax(0, 1fr));
1656 | }
1657 |
1658 | .lg\:overflow-hidden {
1659 | overflow: hidden;
1660 | }
1661 | }
1662 |
1663 | @media (min-width: 1280px) {
1664 | .xl\:grid-cols-11 {
1665 | grid-template-columns: repeat(11, minmax(0, 1fr));
1666 | }
1667 |
1668 | .xl\:grid-cols-7 {
1669 | grid-template-columns: repeat(7, minmax(0, 1fr));
1670 | }
1671 | }
1672 |
1673 | @media (min-width: 1536px) {
1674 | .\32xl\:grid-cols-12 {
1675 | grid-template-columns: repeat(12, minmax(0, 1fr));
1676 | }
1677 |
1678 | .\32xl\:grid-cols-8 {
1679 | grid-template-columns: repeat(8, minmax(0, 1fr));
1680 | }
1681 | }
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | purge: ['./pages/**/*.{js,ts,jsx,tsx}', './components/**/*.{js,ts,jsx,tsx}'],
3 | darkMode: false, // or 'media' or 'class'
4 | theme: {
5 | extend: {},
6 | },
7 | variants: {
8 | extend: {},
9 | },
10 | plugins: [],
11 | }
12 |
13 | module.exports = {
14 | theme: {
15 | container: {
16 | center: true,
17 | },
18 | extend: {
19 | zIndex: {
20 | '11': '-1',
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "skipLibCheck": true,
7 | "strict": true,
8 | "forceConsistentCasingInFileNames": true,
9 | "noEmit": true,
10 | "esModuleInterop": true,
11 | "module": "esnext",
12 | "moduleResolution": "node",
13 | "resolveJsonModule": true,
14 | "isolatedModules": true,
15 | "jsx": "preserve"
16 | },
17 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
18 | "exclude": ["node_modules"]
19 | }
20 |
--------------------------------------------------------------------------------