├── .eslintrc.cjs ├── .gitignore ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.js ├── public └── vite.svg ├── src ├── App.jsx ├── assets │ ├── 4-small.png │ ├── background.jpg │ ├── benefits │ │ ├── card-1.svg │ │ ├── card-2.svg │ │ ├── card-3.svg │ │ ├── card-4.svg │ │ ├── card-5.svg │ │ ├── card-6.svg │ │ ├── icon-1.svg │ │ ├── icon-2.svg │ │ ├── icon-3.svg │ │ ├── icon-4.svg │ │ └── image-2.png │ ├── brainwave-symbol-white.svg │ ├── brainwave-symbol.svg │ ├── brainwave.svg │ ├── check-02.svg │ ├── check.svg │ ├── chrome-cast.svg │ ├── collaboration │ │ ├── curve-1.svg │ │ ├── curve-2.svg │ │ ├── discord.png │ │ ├── figma.png │ │ ├── framer.png │ │ ├── notion.png │ │ ├── photoshop.png │ │ ├── protopie.png │ │ ├── raindrop.png │ │ └── slack.png │ ├── disc-02.svg │ ├── file-02.svg │ ├── gradient.png │ ├── grid.png │ ├── hero │ │ ├── curve.png │ │ ├── hero-background.jpg │ │ └── robot.jpg │ ├── home-smile.svg │ ├── index.js │ ├── loading-01.svg │ ├── loading.png │ ├── notification │ │ ├── image-1.png │ │ ├── image-2.png │ │ ├── image-3.png │ │ └── image-4.png │ ├── play.svg │ ├── plus-square.svg │ ├── pricing │ │ ├── lines.svg │ │ └── stars.svg │ ├── react.svg │ ├── recording-01.svg │ ├── recording-03.svg │ ├── roadmap │ │ ├── coins.png │ │ ├── done.svg │ │ ├── hero.png │ │ ├── image-1.png │ │ ├── image-2.png │ │ ├── image-3.png │ │ ├── image-4.png │ │ └── undone.svg │ ├── search-md.svg │ ├── services │ │ ├── service-1.png │ │ ├── service-2.png │ │ └── service-3.png │ ├── sliders-04.svg │ ├── socials │ │ ├── discord.svg │ │ ├── facebook.svg │ │ ├── instagram.svg │ │ ├── telegram.svg │ │ └── twitter.svg │ ├── svg │ │ ├── Arrow.jsx │ │ ├── Brackets.jsx │ │ ├── ButtonGradient.jsx │ │ ├── ButtonSvg.jsx │ │ ├── ChatBubbleWing.jsx │ │ ├── ClipPath.jsx │ │ ├── MenuSvg.jsx │ │ ├── PlusSvg.jsx │ │ └── SectionSvg.jsx │ └── yourlogo.svg ├── components │ ├── Benefits.jsx │ ├── Button.jsx │ ├── Collaboration.jsx │ ├── CompanyLogos.jsx │ ├── Footer.jsx │ ├── Generating.jsx │ ├── Header.jsx │ ├── Heading.jsx │ ├── Hero.jsx │ ├── Notification.jsx │ ├── Pricing.jsx │ ├── PricingList.jsx │ ├── Roadmap.jsx │ ├── Section.jsx │ ├── Services.jsx │ ├── Tagline.jsx │ └── design │ │ ├── Benefits.jsx │ │ ├── Collaboration.jsx │ │ ├── Header.jsx │ │ ├── Hero.jsx │ │ ├── Pricing.jsx │ │ ├── Roadmap.jsx │ │ └── Services.jsx ├── constants │ └── index.js ├── index.css └── main.jsx ├── tailwind.config.js └── vite.config.js /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: [ 5 | "eslint:recommended", 6 | "plugin:react/recommended", 7 | "plugin:react/jsx-runtime", 8 | "plugin:react-hooks/recommended", 9 | ], 10 | ignorePatterns: ["dist", ".eslintrc.cjs"], 11 | parserOptions: { ecmaVersion: "latest", sourceType: "module" }, 12 | settings: { react: { version: "18.2" } }, 13 | plugins: ["react-refresh"], 14 | rules: { 15 | "react/jsx-no-target-blank": "off", 16 | "react-refresh/only-export-components": [ 17 | "warn", 18 | { allowConstantExport: true }, 19 | ], 20 | "react/prop-types": "off", 21 | }, 22 | }; 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | vite 5 | react.js 6 | tailwindcss 7 |
8 | 9 |

Modern UI/UX website

10 | 11 |
12 | Build this project step by step with our detailed tutorial on JavaScript Mastery YouTube. 13 |
14 |
15 | 16 | ## 📋 Table of Contents 17 | 18 | 1. 🤖 [Introduction](#introduction) 19 | 2. ⚙️ [Tech Stack](#tech-stack) 20 | 3. 🔋 [Features](#features) 21 | 4. 🤸 [Quick Start](#quick-start) 22 | 5. 🕸️ [Snippets](#snippets) 23 | 6. 🔗 [Links](#links) 24 | 7. 🚀 [More](#more) 25 | 26 | 27 | ## 🤖 Introduction 28 | 29 | Brainwave - Modern UI/UX website, developed using React.js and Tailwind CSS, exemplifies modern UI/UX principles. Its sleek design, seamless animations, and overall user experience set a high standard, serving as a reference or inspiration for future modern applications or websites in general. 30 | 31 | 32 | ## ⚙️ Tech Stack 33 | 34 | - Vite 35 | - React.js 36 | - Tailwind CSS 37 | 38 | ## 🔋 Features 39 | 40 | 👉 **Beautiful Sections**: Includes hero, services, features, how to use, roadmap, pricing, footer, and header. 41 | 42 | 👉 **Parallax Animations**: Engaging effects triggered by mouse movement and scrolling 43 | 44 | 👉 **Complex UI Geometry**: Utilizes tailwindcss for intricate shapes like circular feature displays, grid lines, and side lines. 45 | 46 | 👉 **Latest UI Trends**: Incorporates modern design elements such as bento grids. 47 | 48 | 👉 **Cool Gradients**: Enhances visuals with stylish gradients using Tailwind CSS for cards, buttons, etc. 49 | 50 | 👉 **Responsive**: Ensures seamless functionality and aesthetics across all devices 51 | 52 | and many more, including code architecture and reusability 53 | 54 | ## 🤸 Quick Start 55 | 56 | Follow these steps to set up the project locally on your machine. 57 | 58 | **Prerequisites** 59 | 60 | Make sure you have the following installed on your machine: 61 | 62 | - [Git](https://git-scm.com/) 63 | - [Node.js](https://nodejs.org/en) 64 | - [npm](https://www.npmjs.com/) (Node Package Manager) 65 | 66 | **Cloning the Repository** 67 | 68 | ```bash 69 | git clone https://github.com/JavaScript-Mastery-Pro/brainwave.git 70 | cd brainwave 71 | ``` 72 | 73 | **Installation** 74 | 75 | Install the project dependencies using npm: 76 | 77 | ```bash 78 | npm install 79 | ``` 80 | 81 | **Running the Project** 82 | 83 | ```bash 84 | npm run dev 85 | ``` 86 | 87 | Open [http://localhost:5173](http://localhost:5173) in your browser to view the project. 88 | 89 | ## 🕸️ Snippets 90 | 91 |
92 | .vscode/settings.json 93 | 94 | ```json 95 | { 96 | "editor.defaultFormatter": "esbenp.prettier-vscode", 97 | "editor.formatOnSave": true, 98 | "editor.codeActionsOnSave": { 99 | "source.fixAll.eslint": "explicit", 100 | "source.addMissingImports": "explicit" 101 | }, 102 | "prettier.tabWidth": 2, 103 | "prettier.useTabs": false, 104 | "prettier.semi": true, 105 | "prettier.singleQuote": false, 106 | "prettier.jsxSingleQuote": false, 107 | "prettier.trailingComma": "es5", 108 | "prettier.arrowParens": "always", 109 | "[javascriptreact]": { 110 | "editor.defaultFormatter": "esbenp.prettier-vscode" 111 | }, 112 | "[css]": { 113 | "editor.defaultFormatter": "vscode.css-language-features" 114 | }, 115 | "[svg]": { 116 | "editor.defaultFormatter": "jock.svg" 117 | } 118 | } 119 | ``` 120 | 121 |
122 | 123 |
124 | tailwind.config.js 125 | 126 | ```javascript 127 | /** @type {import('tailwindcss').Config} */ 128 | import { fontFamily } from "tailwindcss/defaultTheme"; 129 | import plugin from "tailwindcss/plugin"; 130 | 131 | export default { 132 | content: [ 133 | "./index.html", 134 | "./src/**/*.{js,ts,jsx,tsx}", 135 | "./public/assets/**/*.{js,ts,jsx,tsx}", 136 | ], 137 | theme: { 138 | extend: { 139 | colors: { 140 | color: { 141 | 1: "#AC6AFF", 142 | 2: "#FFC876", 143 | 3: "#FF776F", 144 | 4: "#7ADB78", 145 | 5: "#858DFF", 146 | 6: "#FF98E2", 147 | }, 148 | stroke: { 149 | 1: "#26242C", 150 | }, 151 | n: { 152 | 1: "#FFFFFF", 153 | 2: "#CAC6DD", 154 | 3: "#ADA8C3", 155 | 4: "#757185", 156 | 5: "#3F3A52", 157 | 6: "#252134", 158 | 7: "#15131D", 159 | 8: "#0E0C15", 160 | 9: "#474060", 161 | 10: "#43435C", 162 | 11: "#1B1B2E", 163 | 12: "#2E2A41", 164 | 13: "#6C7275", 165 | }, 166 | }, 167 | fontFamily: { 168 | sans: ["var(--font-sora)", ...fontFamily.sans], 169 | code: "var(--font-code)", 170 | grotesk: "var(--font-grotesk)", 171 | }, 172 | letterSpacing: { 173 | tagline: ".15em", 174 | }, 175 | spacing: { 176 | 0.25: "0.0625rem", 177 | 7.5: "1.875rem", 178 | 15: "3.75rem", 179 | }, 180 | opacity: { 181 | 15: ".15", 182 | }, 183 | transitionDuration: { 184 | DEFAULT: "200ms", 185 | }, 186 | transitionTimingFunction: { 187 | DEFAULT: "linear", 188 | }, 189 | zIndex: { 190 | 1: "1", 191 | 2: "2", 192 | 3: "3", 193 | 4: "4", 194 | 5: "5", 195 | }, 196 | borderWidth: { 197 | DEFAULT: "0.0625rem", 198 | }, 199 | backgroundImage: { 200 | "radial-gradient": "radial-gradient(var(--tw-gradient-stops))", 201 | "conic-gradient": 202 | "conic-gradient(from 225deg, #FFC876, #79FFF7, #9F53FF, #FF98E2, #FFC876)", 203 | "benefit-card-1": "url(assets/benefits/card-1.svg)", 204 | "benefit-card-2": "url(assets/benefits/card-2.svg)", 205 | "benefit-card-3": "url(assets/benefits/card-3.svg)", 206 | "benefit-card-4": "url(assets/benefits/card-4.svg)", 207 | "benefit-card-5": "url(assets/benefits/card-5.svg)", 208 | "benefit-card-6": "url(assets/benefits/card-6.svg)", 209 | }, 210 | }, 211 | }, 212 | plugins: [ 213 | plugin(function ({ addBase, addComponents, addUtilities }) { 214 | addBase({}); 215 | addComponents({ 216 | ".container": { 217 | "@apply max-w-[77.5rem] mx-auto px-5 md:px-10 lg:px-15 xl:max-w-[87.5rem]": 218 | {}, 219 | }, 220 | ".h1": { 221 | "@apply font-semibold text-[2.5rem] leading-[3.25rem] md:text-[2.75rem] md:leading-[3.75rem] lg:text-[3.25rem] lg:leading-[4.0625rem] xl:text-[3.75rem] xl:leading-[4.5rem]": 222 | {}, 223 | }, 224 | ".h2": { 225 | "@apply text-[1.75rem] leading-[2.5rem] md:text-[2rem] md:leading-[2.5rem] lg:text-[2.5rem] lg:leading-[3.5rem] xl:text-[3rem] xl:leading-tight": 226 | {}, 227 | }, 228 | ".h3": { 229 | "@apply text-[2rem] leading-normal md:text-[2.5rem]": {}, 230 | }, 231 | ".h4": { 232 | "@apply text-[2rem] leading-normal": {}, 233 | }, 234 | ".h5": { 235 | "@apply text-2xl leading-normal": {}, 236 | }, 237 | ".h6": { 238 | "@apply font-semibold text-lg leading-8": {}, 239 | }, 240 | ".body-1": { 241 | "@apply text-[0.875rem] leading-[1.5rem] md:text-[1rem] md:leading-[1.75rem] lg:text-[1.25rem] lg:leading-8": 242 | {}, 243 | }, 244 | ".body-2": { 245 | "@apply font-light text-[0.875rem] leading-6 md:text-base": {}, 246 | }, 247 | ".caption": { 248 | "@apply text-sm": {}, 249 | }, 250 | ".tagline": { 251 | "@apply font-grotesk font-light text-xs tracking-tagline uppercase": 252 | {}, 253 | }, 254 | ".quote": { 255 | "@apply font-code text-lg leading-normal": {}, 256 | }, 257 | ".button": { 258 | "@apply font-code text-xs font-bold uppercase tracking-wider": {}, 259 | }, 260 | }); 261 | addUtilities({ 262 | ".tap-highlight-color": { 263 | "-webkit-tap-highlight-color": "rgba(0, 0, 0, 0)", 264 | }, 265 | }); 266 | }), 267 | ], 268 | }; 269 | ``` 270 | 271 |
272 | 273 |
274 | index.css 275 | 276 | ```css 277 | @import url("https://fonts.googleapis.com/css2?family=Sora:wght@300;400;600&display=swap"); 278 | @import url("https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap"); 279 | @import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300&display=swap"); 280 | 281 | @tailwind base; 282 | @tailwind components; 283 | @tailwind utilities; 284 | 285 | :root { 286 | --font-sora: "Sora", sans-serif; 287 | --font-code: "Source Code Pro", monospace; 288 | --font-grotesk: "Space Grotesk", sans-serif; 289 | } 290 | 291 | * { 292 | scroll-behavior: smooth; 293 | } 294 | 295 | @layer base { 296 | body { 297 | @apply font-sans bg-n-8 text-n-1 text-base; 298 | } 299 | } 300 | 301 | .rotate-45 { 302 | @apply rotate-[45deg]; 303 | } 304 | 305 | .rotate-90 { 306 | @apply rotate-[90deg]; 307 | } 308 | 309 | .rotate-135 { 310 | @apply rotate-[135deg]; 311 | } 312 | 313 | .rotate-180 { 314 | @apply rotate-[180deg]; 315 | } 316 | 317 | .rotate-225 { 318 | @apply rotate-[225deg]; 319 | } 320 | 321 | .rotate-270 { 322 | @apply rotate-[270deg]; 323 | } 324 | 325 | .rotate-315 { 326 | @apply rotate-[315deg]; 327 | } 328 | 329 | .rotate-360 { 330 | @apply rotate-[360deg]; 331 | } 332 | 333 | .-rotate-45 { 334 | @apply rotate-[-45deg]; 335 | } 336 | 337 | .-rotate-90 { 338 | @apply rotate-[-90deg]; 339 | } 340 | 341 | .-rotate-135 { 342 | @apply rotate-[-135deg]; 343 | } 344 | 345 | .-rotate-180 { 346 | @apply rotate-[-180deg]; 347 | } 348 | 349 | .-rotate-225 { 350 | @apply rotate-[-225deg]; 351 | } 352 | 353 | .-rotate-270 { 354 | @apply rotate-[-270deg]; 355 | } 356 | 357 | .-rotate-315 { 358 | @apply rotate-[-315deg]; 359 | } 360 | 361 | .-rotate-360 { 362 | @apply rotate-[-360deg]; 363 | } 364 | ``` 365 | 366 |
367 | 368 |
369 | constants/index.js 370 | 371 | ```javascript 372 | import { 373 | benefitIcon1, 374 | benefitIcon2, 375 | benefitIcon3, 376 | benefitIcon4, 377 | benefitImage2, 378 | chromecast, 379 | disc02, 380 | discord, 381 | discordBlack, 382 | facebook, 383 | figma, 384 | file02, 385 | framer, 386 | homeSmile, 387 | instagram, 388 | notification2, 389 | notification3, 390 | notification4, 391 | notion, 392 | photoshop, 393 | plusSquare, 394 | protopie, 395 | raindrop, 396 | recording01, 397 | recording03, 398 | roadmap1, 399 | roadmap2, 400 | roadmap3, 401 | roadmap4, 402 | searchMd, 403 | slack, 404 | sliders04, 405 | telegram, 406 | twitter, 407 | yourlogo, 408 | } from "../../public/assets"; 409 | 410 | export const navigation = [ 411 | { 412 | id: "0", 413 | title: "Features", 414 | url: "#features", 415 | }, 416 | { 417 | id: "1", 418 | title: "Pricing", 419 | url: "#pricing", 420 | }, 421 | { 422 | id: "2", 423 | title: "How to use", 424 | url: "#how-to-use", 425 | }, 426 | { 427 | id: "3", 428 | title: "Roadmap", 429 | url: "#roadmap", 430 | }, 431 | { 432 | id: "4", 433 | title: "New account", 434 | url: "#signup", 435 | onlyMobile: true, 436 | }, 437 | { 438 | id: "5", 439 | title: "Sign in", 440 | url: "#login", 441 | onlyMobile: true, 442 | }, 443 | ]; 444 | 445 | export const heroIcons = [homeSmile, file02, searchMd, plusSquare]; 446 | 447 | export const notificationImages = [notification4, notification3, notification2]; 448 | 449 | export const companyLogos = [yourlogo, yourlogo, yourlogo, yourlogo, yourlogo]; 450 | 451 | export const brainwaveServices = [ 452 | "Photo generating", 453 | "Photo enhance", 454 | "Seamless Integration", 455 | ]; 456 | 457 | export const brainwaveServicesIcons = [ 458 | recording03, 459 | recording01, 460 | disc02, 461 | chromecast, 462 | sliders04, 463 | ]; 464 | 465 | export const roadmap = [ 466 | { 467 | id: "0", 468 | title: "Voice recognition", 469 | text: "Enable the chatbot to understand and respond to voice commands, making it easier for users to interact with the app hands-free.", 470 | date: "May 2023", 471 | status: "done", 472 | imageUrl: roadmap1, 473 | colorful: true, 474 | }, 475 | { 476 | id: "1", 477 | title: "Gamification", 478 | text: "Add game-like elements, such as badges or leaderboards, to incentivize users to engage with the chatbot more frequently.", 479 | date: "May 2023", 480 | status: "progress", 481 | imageUrl: roadmap2, 482 | }, 483 | { 484 | id: "2", 485 | title: "Chatbot customization", 486 | text: "Allow users to customize the chatbot's appearance and behavior, making it more engaging and fun to interact with.", 487 | date: "May 2023", 488 | status: "done", 489 | imageUrl: roadmap3, 490 | }, 491 | { 492 | id: "3", 493 | title: "Integration with APIs", 494 | text: "Allow the chatbot to access external data sources, such as weather APIs or news APIs, to provide more relevant recommendations.", 495 | date: "May 2023", 496 | status: "progress", 497 | imageUrl: roadmap4, 498 | }, 499 | ]; 500 | 501 | export const collabText = 502 | "With smart automation and top-notch security, it's the perfect solution for teams looking to work smarter."; 503 | 504 | export const collabContent = [ 505 | { 506 | id: "0", 507 | title: "Seamless Integration", 508 | text: collabText, 509 | }, 510 | { 511 | id: "1", 512 | title: "Smart Automation", 513 | }, 514 | { 515 | id: "2", 516 | title: "Top-notch Security", 517 | }, 518 | ]; 519 | 520 | export const collabApps = [ 521 | { 522 | id: "0", 523 | title: "Figma", 524 | icon: figma, 525 | width: 26, 526 | height: 36, 527 | }, 528 | { 529 | id: "1", 530 | title: "Notion", 531 | icon: notion, 532 | width: 34, 533 | height: 36, 534 | }, 535 | { 536 | id: "2", 537 | title: "Discord", 538 | icon: discord, 539 | width: 36, 540 | height: 28, 541 | }, 542 | { 543 | id: "3", 544 | title: "Slack", 545 | icon: slack, 546 | width: 34, 547 | height: 35, 548 | }, 549 | { 550 | id: "4", 551 | title: "Photoshop", 552 | icon: photoshop, 553 | width: 34, 554 | height: 34, 555 | }, 556 | { 557 | id: "5", 558 | title: "Protopie", 559 | icon: protopie, 560 | width: 34, 561 | height: 34, 562 | }, 563 | { 564 | id: "6", 565 | title: "Framer", 566 | icon: framer, 567 | width: 26, 568 | height: 34, 569 | }, 570 | { 571 | id: "7", 572 | title: "Raindrop", 573 | icon: raindrop, 574 | width: 38, 575 | height: 32, 576 | }, 577 | ]; 578 | 579 | export const pricing = [ 580 | { 581 | id: "0", 582 | title: "Basic", 583 | description: "AI chatbot, personalized recommendations", 584 | price: "0", 585 | features: [ 586 | "An AI chatbot that can understand your queries", 587 | "Personalized recommendations based on your preferences", 588 | "Ability to explore the app and its features without any cost", 589 | ], 590 | }, 591 | { 592 | id: "1", 593 | title: "Premium", 594 | description: "Advanced AI chatbot, priority support, analytics dashboard", 595 | price: "9.99", 596 | features: [ 597 | "An advanced AI chatbot that can understand complex queries", 598 | "An analytics dashboard to track your conversations", 599 | "Priority support to solve issues quickly", 600 | ], 601 | }, 602 | { 603 | id: "2", 604 | title: "Enterprise", 605 | description: "Custom AI chatbot, advanced analytics, dedicated account", 606 | price: null, 607 | features: [ 608 | "An AI chatbot that can understand your queries", 609 | "Personalized recommendations based on your preferences", 610 | "Ability to explore the app and its features without any cost", 611 | ], 612 | }, 613 | ]; 614 | 615 | export const benefits = [ 616 | { 617 | id: "0", 618 | title: "Ask anything", 619 | text: "Lets users quickly find answers to their questions without having to search through multiple sources.", 620 | backgroundUrl: "assets/benefits/card-1.svg", 621 | iconUrl: benefitIcon1, 622 | imageUrl: benefitImage2, 623 | }, 624 | { 625 | id: "1", 626 | title: "Improve everyday", 627 | text: "The app uses natural language processing to understand user queries and provide accurate and relevant responses.", 628 | backgroundUrl: "assets/benefits/card-2.svg", 629 | iconUrl: benefitIcon2, 630 | imageUrl: benefitImage2, 631 | light: true, 632 | }, 633 | { 634 | id: "2", 635 | title: "Connect everywhere", 636 | text: "Connect with the AI chatbot from anywhere, on any device, making it more accessible and convenient.", 637 | backgroundUrl: "assets/benefits/card-3.svg", 638 | iconUrl: benefitIcon3, 639 | imageUrl: benefitImage2, 640 | }, 641 | { 642 | id: "3", 643 | title: "Fast responding", 644 | text: "Lets users quickly find answers to their questions without having to search through multiple sources.", 645 | backgroundUrl: "assets/benefits/card-4.svg", 646 | iconUrl: benefitIcon4, 647 | imageUrl: benefitImage2, 648 | light: true, 649 | }, 650 | { 651 | id: "4", 652 | title: "Ask anything", 653 | text: "Lets users quickly find answers to their questions without having to search through multiple sources.", 654 | backgroundUrl: "assets/benefits/card-5.svg", 655 | iconUrl: benefitIcon1, 656 | imageUrl: benefitImage2, 657 | }, 658 | { 659 | id: "5", 660 | title: "Improve everyday", 661 | text: "The app uses natural language processing to understand user queries and provide accurate and relevant responses.", 662 | backgroundUrl: "assets/benefits/card-6.svg", 663 | iconUrl: benefitIcon2, 664 | imageUrl: benefitImage2, 665 | }, 666 | ]; 667 | 668 | export const socials = [ 669 | { 670 | id: "0", 671 | title: "Discord", 672 | iconUrl: discordBlack, 673 | url: "#", 674 | }, 675 | { 676 | id: "1", 677 | title: "Twitter", 678 | iconUrl: twitter, 679 | url: "#", 680 | }, 681 | { 682 | id: "2", 683 | title: "Instagram", 684 | iconUrl: instagram, 685 | url: "#", 686 | }, 687 | { 688 | id: "3", 689 | title: "Telegram", 690 | iconUrl: telegram, 691 | url: "#", 692 | }, 693 | { 694 | id: "4", 695 | title: "Facebook", 696 | iconUrl: facebook, 697 | url: "#", 698 | }, 699 | ]; 700 | ``` 701 | 702 |
703 | 704 |
705 | components/Section.jsx 706 | 707 | ```javascript 708 | import SectionSvg from "../../public/assets/svg/SectionSvg"; 709 | 710 | const Section = ({ 711 | className, 712 | id, 713 | crosses, 714 | crossesOffset, 715 | customPaddings, 716 | children, 717 | }) => ( 718 |
726 | {children} 727 | 728 |
729 |
730 | 731 | {crosses && ( 732 | <> 733 |
738 | 739 | 740 | )} 741 |
742 | ); 743 | 744 | export default Section; 745 | ``` 746 | 747 |
748 | 749 |
750 | components/Roadmap.jsx 751 | 752 | ```javascript 753 | import Button from "./Button"; 754 | import Heading from "./Heading"; 755 | import Section from "./Section"; 756 | import Tagline from "./TagLine"; 757 | import { roadmap } from "../constants"; 758 | import { check2, grid, loading1 } from "../../public/assets"; 759 | import { Gradient } from "./design/Roadmap"; 760 | 761 | const Roadmap = () => ( 762 |
763 |
764 | 765 | 766 |
767 | {roadmap.map((item) => { 768 | const status = item.status === "done" ? "Done" : "In progress"; 769 | 770 | return ( 771 |
777 |
778 |
779 | Grid 786 |
787 |
788 |
789 | {item.date} 790 | 791 |
792 | {status} 799 |
{status}
800 |
801 |
802 | 803 |
804 | {item.title} 811 |
812 |

{item.title}

813 |

{item.text}

814 |
815 |
816 |
817 | ); 818 | })} 819 | 820 | 821 |
822 | 823 |
824 | 825 |
826 |
827 |
828 | ); 829 | 830 | export default Roadmap; 831 | ``` 832 | 833 |
834 | 835 | # 836 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | Brainwave 12 | 13 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "brainwave", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "react": "^18.2.0", 14 | "react-dom": "^18.2.0", 15 | "react-just-parallax": "^3.1.16", 16 | "react-router-dom": "^6.22.1", 17 | "scroll-lock": "^2.1.5" 18 | }, 19 | "devDependencies": { 20 | "@types/react": "^18.2.55", 21 | "@types/react-dom": "^18.2.19", 22 | "@vitejs/plugin-react": "^4.2.1", 23 | "autoprefixer": "^10.4.17", 24 | "eslint": "^8.56.0", 25 | "eslint-plugin-react": "^7.33.2", 26 | "eslint-plugin-react-hooks": "^4.6.0", 27 | "eslint-plugin-react-refresh": "^0.4.5", 28 | "postcss": "^8.4.35", 29 | "tailwindcss": "^3.4.1", 30 | "vite": "^5.1.0" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- 1 | import ButtonGradient from "./assets/svg/ButtonGradient"; 2 | import Benefits from "./components/Benefits"; 3 | import Collaboration from "./components/Collaboration"; 4 | import Footer from "./components/Footer"; 5 | import Header from "./components/Header"; 6 | import Hero from "./components/Hero"; 7 | import Pricing from "./components/Pricing"; 8 | import Roadmap from "./components/Roadmap"; 9 | import Services from "./components/Services"; 10 | 11 | const App = () => { 12 | return ( 13 | <> 14 |
15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
24 | 25 | 26 | 27 | ); 28 | }; 29 | 30 | export default App; 31 | -------------------------------------------------------------------------------- /src/assets/4-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/4-small.png -------------------------------------------------------------------------------- /src/assets/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/background.jpg -------------------------------------------------------------------------------- /src/assets/benefits/card-1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/benefits/card-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/benefits/card-3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/benefits/card-4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/benefits/card-5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/benefits/card-6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/benefits/icon-1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/assets/benefits/icon-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/assets/benefits/icon-3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/assets/benefits/icon-4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/assets/benefits/image-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/benefits/image-2.png -------------------------------------------------------------------------------- /src/assets/brainwave-symbol-white.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/brainwave-symbol.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/brainwave.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/check-02.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/check.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/assets/chrome-cast.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/collaboration/curve-1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/collaboration/curve-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/collaboration/discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/collaboration/discord.png -------------------------------------------------------------------------------- /src/assets/collaboration/figma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/collaboration/figma.png -------------------------------------------------------------------------------- /src/assets/collaboration/framer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/collaboration/framer.png -------------------------------------------------------------------------------- /src/assets/collaboration/notion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/collaboration/notion.png -------------------------------------------------------------------------------- /src/assets/collaboration/photoshop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/collaboration/photoshop.png -------------------------------------------------------------------------------- /src/assets/collaboration/protopie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/collaboration/protopie.png -------------------------------------------------------------------------------- /src/assets/collaboration/raindrop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/collaboration/raindrop.png -------------------------------------------------------------------------------- /src/assets/collaboration/slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/collaboration/slack.png -------------------------------------------------------------------------------- /src/assets/disc-02.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/file-02.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/gradient.png -------------------------------------------------------------------------------- /src/assets/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/grid.png -------------------------------------------------------------------------------- /src/assets/hero/curve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/hero/curve.png -------------------------------------------------------------------------------- /src/assets/hero/hero-background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/hero/hero-background.jpg -------------------------------------------------------------------------------- /src/assets/hero/robot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/hero/robot.jpg -------------------------------------------------------------------------------- /src/assets/home-smile.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/index.js: -------------------------------------------------------------------------------- 1 | import brainwave from "./brainwave.svg"; 2 | import check from "./check.svg"; 3 | import brainwaveSymbol from "./brainwave-symbol.svg"; 4 | import brainwaveWhiteSymbol from "./brainwave-symbol-white.svg"; 5 | import play from "./play.svg"; 6 | import gradient from "./gradient.png"; 7 | import smallSphere from "./4-small.png"; 8 | import grid from "./grid.png"; 9 | import check2 from "./check-02.svg"; 10 | import loading1 from "./loading-01.svg"; 11 | import yourlogo from "./yourlogo.svg"; 12 | import homeSmile from "./home-smile.svg"; 13 | import file02 from "./file-02.svg"; 14 | import searchMd from "./search-md.svg"; 15 | import plusSquare from "./plus-square.svg"; 16 | import recording03 from "./recording-03.svg"; 17 | import recording01 from "./recording-01.svg"; 18 | import disc02 from "./disc-02.svg"; 19 | import chromecast from "./chrome-cast.svg"; 20 | import sliders04 from "./sliders-04.svg"; 21 | import loading from "./loading.png"; 22 | import background from "./background.jpg"; 23 | 24 | import curve from "./hero/curve.png"; 25 | import robot from "./hero/robot.jpg"; 26 | import heroBackground from "./hero/hero-background.jpg"; 27 | 28 | import curve1 from "./collaboration/curve-1.svg"; 29 | import curve2 from "./collaboration/curve-2.svg"; 30 | import discord from "./collaboration/discord.png"; 31 | import figma from "./collaboration/figma.png"; 32 | import framer from "./collaboration/framer.png"; 33 | import notion from "./collaboration/notion.png"; 34 | import photoshop from "./collaboration/photoshop.png"; 35 | import protopie from "./collaboration/protopie.png"; 36 | import raindrop from "./collaboration/raindrop.png"; 37 | import slack from "./collaboration/slack.png"; 38 | 39 | import service1 from "./services/service-1.png"; 40 | import service2 from "./services/service-2.png"; 41 | import service3 from "./services/service-3.png"; 42 | 43 | import lines from "./pricing/lines.svg"; 44 | import stars from "./pricing/stars.svg"; 45 | 46 | import coins from "./roadmap/coins.png"; 47 | import done from "./roadmap/done.svg"; 48 | import hero from "./roadmap/hero.png"; 49 | import roadmap1 from "./roadmap/image-1.png"; 50 | import roadmap2 from "./roadmap/image-2.png"; 51 | import roadmap3 from "./roadmap/image-3.png"; 52 | import roadmap4 from "./roadmap/image-4.png"; 53 | import undone from "./roadmap/undone.svg"; 54 | 55 | import notification1 from "./notification/image-1.png"; 56 | import notification2 from "./notification/image-2.png"; 57 | import notification3 from "./notification/image-3.png"; 58 | import notification4 from "./notification/image-4.png"; 59 | 60 | import benefitCard1 from "./benefits/card-1.svg"; 61 | import benefitCard2 from "./benefits/card-2.svg"; 62 | import benefitCard3 from "./benefits/card-3.svg"; 63 | import benefitCard4 from "./benefits/card-4.svg"; 64 | import benefitCard5 from "./benefits/card-5.svg"; 65 | import benefitCard6 from "./benefits/card-6.svg"; 66 | import benefitIcon1 from "./benefits/icon-1.svg"; 67 | import benefitIcon2 from "./benefits/icon-2.svg"; 68 | import benefitIcon3 from "./benefits/icon-3.svg"; 69 | import benefitIcon4 from "./benefits/icon-4.svg"; 70 | import benefitImage2 from "./benefits/image-2.png"; 71 | 72 | import discordBlack from "./socials/discord.svg"; 73 | import facebook from "./socials/facebook.svg"; 74 | import instagram from "./socials/instagram.svg"; 75 | import telegram from "./socials/telegram.svg"; 76 | import twitter from "./socials/twitter.svg"; 77 | 78 | export { 79 | brainwave, 80 | check, 81 | check2, 82 | loading1, 83 | brainwaveSymbol, 84 | brainwaveWhiteSymbol, 85 | play, 86 | gradient, 87 | smallSphere, 88 | grid, 89 | yourlogo, 90 | homeSmile, 91 | file02, 92 | searchMd, 93 | plusSquare, 94 | recording03, 95 | recording01, 96 | disc02, 97 | chromecast, 98 | sliders04, 99 | loading, 100 | background, 101 | curve, 102 | robot, 103 | heroBackground, 104 | curve1, 105 | curve2, 106 | discord, 107 | figma, 108 | framer, 109 | notion, 110 | photoshop, 111 | protopie, 112 | raindrop, 113 | slack, 114 | service1, 115 | service2, 116 | service3, 117 | lines, 118 | stars, 119 | coins, 120 | done, 121 | hero, 122 | roadmap1, 123 | roadmap2, 124 | roadmap3, 125 | roadmap4, 126 | undone, 127 | notification1, 128 | notification2, 129 | notification3, 130 | notification4, 131 | benefitCard1, 132 | benefitCard2, 133 | benefitCard3, 134 | benefitCard4, 135 | benefitCard5, 136 | benefitCard6, 137 | benefitIcon1, 138 | benefitIcon2, 139 | benefitIcon3, 140 | benefitIcon4, 141 | benefitImage2, 142 | discordBlack, 143 | facebook, 144 | instagram, 145 | telegram, 146 | twitter, 147 | }; 148 | -------------------------------------------------------------------------------- /src/assets/loading-01.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/loading.png -------------------------------------------------------------------------------- /src/assets/notification/image-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/notification/image-1.png -------------------------------------------------------------------------------- /src/assets/notification/image-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/notification/image-2.png -------------------------------------------------------------------------------- /src/assets/notification/image-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/notification/image-3.png -------------------------------------------------------------------------------- /src/assets/notification/image-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/notification/image-4.png -------------------------------------------------------------------------------- /src/assets/play.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /src/assets/plus-square.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/pricing/lines.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/pricing/stars.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/recording-01.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/recording-03.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/roadmap/coins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/roadmap/coins.png -------------------------------------------------------------------------------- /src/assets/roadmap/done.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/assets/roadmap/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/roadmap/hero.png -------------------------------------------------------------------------------- /src/assets/roadmap/image-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/roadmap/image-1.png -------------------------------------------------------------------------------- /src/assets/roadmap/image-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/roadmap/image-2.png -------------------------------------------------------------------------------- /src/assets/roadmap/image-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/roadmap/image-3.png -------------------------------------------------------------------------------- /src/assets/roadmap/image-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/roadmap/image-4.png -------------------------------------------------------------------------------- /src/assets/roadmap/undone.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/assets/search-md.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/services/service-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/services/service-1.png -------------------------------------------------------------------------------- /src/assets/services/service-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/services/service-2.png -------------------------------------------------------------------------------- /src/assets/services/service-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/starcluster18/brainwave/a661b397bd66c3ffa54cabc666b8e2db27ab4345/src/assets/services/service-3.png -------------------------------------------------------------------------------- /src/assets/sliders-04.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/assets/socials/discord.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/assets/socials/facebook.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/socials/instagram.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/assets/socials/telegram.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/socials/twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/svg/Arrow.jsx: -------------------------------------------------------------------------------- 1 | const Arrow = () => { 2 | return ( 3 | 4 | 5 | 6 | ); 7 | }; 8 | 9 | export default Arrow; 10 | -------------------------------------------------------------------------------- /src/assets/svg/Brackets.jsx: -------------------------------------------------------------------------------- 1 | const brackets = (position) => 2 | position === "left" ? ( 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | ) : ( 19 | 26 | 30 | 31 | 38 | 39 | 40 | 41 | 42 | 43 | ); 44 | 45 | export default brackets; 46 | -------------------------------------------------------------------------------- /src/assets/svg/ButtonGradient.jsx: -------------------------------------------------------------------------------- 1 | const ButtonGradient = () => { 2 | return ( 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 | 27 | 28 | 29 | ); 30 | }; 31 | 32 | export default ButtonGradient; 33 | -------------------------------------------------------------------------------- /src/assets/svg/ButtonSvg.jsx: -------------------------------------------------------------------------------- 1 | const ButtonSvg = (white) => ( 2 | <> 3 | 9 | 15 | 16 | 23 | {white ? ( 24 | 29 | ) : ( 30 | <> 31 | 36 | 41 | 42 | )} 43 | 44 | 50 | 56 | 57 | 58 | ); 59 | 60 | export default ButtonSvg; 61 | -------------------------------------------------------------------------------- /src/assets/svg/ChatBubbleWing.jsx: -------------------------------------------------------------------------------- 1 | const ChatBubbleWing = ({ className, pathClassName }) => { 2 | return ( 3 | 9 | 13 | 14 | ); 15 | }; 16 | 17 | export default ChatBubbleWing; 18 | -------------------------------------------------------------------------------- /src/assets/svg/ClipPath.jsx: -------------------------------------------------------------------------------- 1 | const ClipPath = () => { 2 | return ( 3 | 4 | 5 | 6 | 7 | 8 | ); 9 | }; 10 | 11 | export default ClipPath; 12 | -------------------------------------------------------------------------------- /src/assets/svg/MenuSvg.jsx: -------------------------------------------------------------------------------- 1 | const MenuSvg = ({ openNavigation }) => { 2 | return ( 3 | 9 | 18 | 27 | 28 | ); 29 | }; 30 | 31 | export default MenuSvg; 32 | -------------------------------------------------------------------------------- /src/assets/svg/PlusSvg.jsx: -------------------------------------------------------------------------------- 1 | const PlusSvg = ({ className = "" }) => { 2 | return ( 3 | 4 | 8 | 9 | ); 10 | }; 11 | 12 | export default PlusSvg; 13 | -------------------------------------------------------------------------------- /src/assets/svg/SectionSvg.jsx: -------------------------------------------------------------------------------- 1 | import PlusSvg from "./PlusSvg"; 2 | 3 | const SectionSvg = ({ crossesOffset }) => { 4 | return ( 5 | <> 6 | 11 | 12 | 17 | 18 | ); 19 | }; 20 | 21 | export default SectionSvg; 22 | -------------------------------------------------------------------------------- /src/assets/yourlogo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/components/Benefits.jsx: -------------------------------------------------------------------------------- 1 | import { benefits } from "../constants"; 2 | import Heading from "./Heading"; 3 | import Section from "./Section"; 4 | import Arrow from "../assets/svg/Arrow"; 5 | import { GradientLight } from "./design/Benefits"; 6 | import ClipPath from "../assets/svg/ClipPath"; 7 | 8 | const Benefits = () => { 9 | return ( 10 |
11 |
12 | 16 | 17 |
18 | {benefits.map((item) => ( 19 |
26 |
27 |
{item.title}
28 |

{item.text}

29 |
30 | {item.title} 36 |

37 | Explore more 38 |

39 | 40 |
41 |
42 | 43 | {item.light && } 44 | 45 |
49 |
50 | {item.imageUrl && ( 51 | {item.title} 58 | )} 59 |
60 |
61 | 62 | 63 |
64 | ))} 65 |
66 |
67 |
68 | ); 69 | }; 70 | 71 | export default Benefits; 72 | -------------------------------------------------------------------------------- /src/components/Button.jsx: -------------------------------------------------------------------------------- 1 | import ButtonSvg from "../assets/svg/ButtonSvg"; 2 | 3 | const Button = ({ className, href, onClick, children, px, white }) => { 4 | const classes = `button relative inline-flex items-center justify-center h-11 transition-colors hover:text-color-1 ${ 5 | px || "px-7" 6 | } ${white ? "text-n-8" : "text-n-1"} ${className || ""}`; 7 | const spanClasses = "relative z-10"; 8 | 9 | const renderButton = () => ( 10 | 14 | ); 15 | 16 | const renderLink = () => ( 17 | 18 | {children} 19 | {ButtonSvg(white)} 20 | 21 | ); 22 | 23 | return href ? renderLink() : renderButton(); 24 | }; 25 | 26 | export default Button; 27 | -------------------------------------------------------------------------------- /src/components/Collaboration.jsx: -------------------------------------------------------------------------------- 1 | import { brainwaveSymbol, check } from "../assets"; 2 | import { collabApps, collabContent, collabText } from "../constants"; 3 | import Button from "./Button"; 4 | import Section from "./Section"; 5 | import { LeftCurve, RightCurve } from "./design/Collaboration"; 6 | 7 | const Collaboration = () => { 8 | return ( 9 |
10 |
11 |
12 |

13 | AI Chat App for seamless collaboration 14 |

15 | 16 |
    17 | {collabContent.map((item) => ( 18 |
  • 19 |
    20 | check 21 |
    {item.title}
    22 |
    23 | {item.text && ( 24 |

    {item.text}

    25 | )} 26 |
  • 27 | ))} 28 |
29 | 30 | 31 |
32 | 33 |
34 |

35 | {collabText} 36 |

37 | 38 |
39 |
40 |
41 |
42 | brainwave 48 |
49 |
50 |
51 | 52 |
    53 | {collabApps.map((app, index) => ( 54 |
  • 60 |
    65 | {app.title} 72 |
    73 |
  • 74 | ))} 75 |
76 | 77 | 78 | 79 |
80 |
81 |
82 |
83 | ); 84 | }; 85 | 86 | export default Collaboration; 87 | -------------------------------------------------------------------------------- /src/components/CompanyLogos.jsx: -------------------------------------------------------------------------------- 1 | import { companyLogos } from "../constants"; 2 | 3 | const CompanyLogos = ({ className }) => { 4 | return ( 5 |
6 |
7 | Helping people create beautiful content at 8 |
9 |
    10 | {companyLogos.map((logo, index) => ( 11 |
  • 15 | {logo} 16 |
  • 17 | ))} 18 |
19 |
20 | ); 21 | }; 22 | 23 | export default CompanyLogos; 24 | -------------------------------------------------------------------------------- /src/components/Footer.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import Section from "./Section"; 3 | import { socials } from "../constants"; 4 | 5 | const Footer = () => { 6 | return ( 7 |
8 |
9 |

10 | © {new Date().getFullYear()}. All rights reserved. 11 |

12 | 13 |
    14 | {socials.map((item) => ( 15 | 21 | {item.title} 22 | 23 | ))} 24 |
25 |
26 |
27 | ); 28 | }; 29 | 30 | export default Footer; 31 | -------------------------------------------------------------------------------- /src/components/Generating.jsx: -------------------------------------------------------------------------------- 1 | import { loading } from "../assets"; 2 | 3 | const Generating = ({ className }) => { 4 | return ( 5 |
10 | Loading 11 | AI is generating 12 |
13 | ); 14 | }; 15 | 16 | export default Generating; 17 | -------------------------------------------------------------------------------- /src/components/Header.jsx: -------------------------------------------------------------------------------- 1 | import { useLocation } from "react-router-dom"; 2 | import { disablePageScroll, enablePageScroll } from "scroll-lock"; 3 | 4 | import { brainwave } from "../assets"; 5 | import { navigation } from "../constants"; 6 | import Button from "./Button"; 7 | import MenuSvg from "../assets/svg/MenuSvg"; 8 | import { HamburgerMenu } from "./design/Header"; 9 | import { useState } from "react"; 10 | 11 | const Header = () => { 12 | const pathname = useLocation(); 13 | const [openNavigation, setOpenNavigation] = useState(false); 14 | 15 | const toggleNavigation = () => { 16 | if (openNavigation) { 17 | setOpenNavigation(false); 18 | enablePageScroll(); 19 | } else { 20 | setOpenNavigation(true); 21 | disablePageScroll(); 22 | } 23 | }; 24 | 25 | const handleClick = () => { 26 | if (!openNavigation) return; 27 | 28 | enablePageScroll(); 29 | setOpenNavigation(false); 30 | }; 31 | 32 | return ( 33 |
38 |
39 | 40 | Brainwave 41 | 42 | 43 | 69 | 70 | 74 | New account 75 | 76 | 79 | 80 | 87 |
88 |
89 | ); 90 | }; 91 | 92 | export default Header; 93 | -------------------------------------------------------------------------------- /src/components/Heading.jsx: -------------------------------------------------------------------------------- 1 | import TagLine from "./Tagline"; 2 | 3 | const Heading = ({ className, title, text, tag }) => { 4 | return ( 5 |
8 | {tag && {tag}} 9 | {title &&

{title}

} 10 | {text &&

{text}

} 11 |
12 | ); 13 | }; 14 | 15 | export default Heading; 16 | -------------------------------------------------------------------------------- /src/components/Hero.jsx: -------------------------------------------------------------------------------- 1 | import { curve, heroBackground, robot } from "../assets"; 2 | import Button from "./Button"; 3 | import Section from "./Section"; 4 | import { BackgroundCircles, BottomLine, Gradient } from "./design/Hero"; 5 | import { heroIcons } from "../constants"; 6 | import { ScrollParallax } from "react-just-parallax"; 7 | import { useRef } from "react"; 8 | import Generating from "./Generating"; 9 | import Notification from "./Notification"; 10 | import CompanyLogos from "./CompanyLogos"; 11 | 12 | const Hero = () => { 13 | const parallaxRef = useRef(null); 14 | 15 | return ( 16 |
23 |
24 |
25 |

26 | Explore the Possibilities of AI Chatting with {` `} 27 | 28 | Brainwave{" "} 29 | Curve 36 | 37 |

38 |

39 | Unleash the power of AI within Brainwave. Upgrade your productivity 40 | with Brainwave, the open AI chat app. 41 |

42 | 45 |
46 |
47 |
48 |
49 |
50 | 51 |
52 | AI 59 | 60 | 61 | 62 | 63 |
    64 | {heroIcons.map((icon, index) => ( 65 |
  • 66 | {icon} 67 |
  • 68 | ))} 69 |
70 |
71 | 72 | 73 | 77 | 78 |
79 |
80 | 81 | 82 |
83 |
84 | hero 91 |
92 | 93 | 94 |
95 | 96 | 97 |
98 | 99 | 100 |
101 | ); 102 | }; 103 | 104 | export default Hero; 105 | -------------------------------------------------------------------------------- /src/components/Notification.jsx: -------------------------------------------------------------------------------- 1 | import { notification1 } from "../assets"; 2 | import { notificationImages } from "../constants"; 3 | 4 | const Notification = ({ className, title }) => { 5 | return ( 6 |
11 | image 18 | 19 |
20 |
{title}
21 | 22 |
23 |
    24 | {notificationImages.map((item, index) => ( 25 |
  • 29 | {item} 36 |
  • 37 | ))} 38 |
39 |
1m ago
40 |
41 |
42 |
43 | ); 44 | }; 45 | 46 | export default Notification; 47 | -------------------------------------------------------------------------------- /src/components/Pricing.jsx: -------------------------------------------------------------------------------- 1 | import Section from "./Section"; 2 | import { smallSphere, stars } from "../assets"; 3 | import Heading from "./Heading"; 4 | import PricingList from "./PricingList"; 5 | import { LeftLine, RightLine } from "./design/Pricing"; 6 | 7 | const Pricing = () => { 8 | return ( 9 |
10 |
11 |
12 | Sphere 19 |
20 | Stars 27 |
28 |
29 | 30 | 34 | 35 |
36 | 37 | 38 | 39 |
40 | 41 | 49 |
50 |
51 | ); 52 | }; 53 | 54 | export default Pricing; 55 | -------------------------------------------------------------------------------- /src/components/PricingList.jsx: -------------------------------------------------------------------------------- 1 | import { check } from "../assets"; 2 | import { pricing } from "../constants"; 3 | import Button from "./Button"; 4 | 5 | const PricingList = () => { 6 | return ( 7 |
8 | {pricing.map((item) => ( 9 |
13 |

{item.title}

14 | 15 |

16 | {item.description} 17 |

18 | 19 |
20 | {item.price && ( 21 | <> 22 |
$
23 |
24 | {item.price} 25 |
26 | 27 | )} 28 |
29 | 30 | 37 | 38 |
    39 | {item.features.map((feature, index) => ( 40 |
  • 44 | Check 45 |

    {feature}

    46 |
  • 47 | ))} 48 |
49 |
50 | ))} 51 |
52 | ); 53 | }; 54 | 55 | export default PricingList; 56 | -------------------------------------------------------------------------------- /src/components/Roadmap.jsx: -------------------------------------------------------------------------------- 1 | import Button from "./Button"; 2 | import Heading from "./Heading"; 3 | import Section from "./Section"; 4 | import Tagline from "./Tagline"; 5 | import { roadmap } from "../constants"; 6 | import { check2, grid, loading1 } from "../assets"; 7 | import { Gradient } from "./design/Roadmap"; 8 | 9 | const Roadmap = () => ( 10 |
11 |
12 | 13 | 14 |
15 | {roadmap.map((item) => { 16 | const status = item.status === "done" ? "Done" : "In progress"; 17 | 18 | return ( 19 |
25 |
26 |
27 | Grid 34 |
35 |
36 |
37 | {item.date} 38 | 39 |
40 | {status} 47 |
{status}
48 |
49 |
50 | 51 |
52 | {item.title} 59 |
60 |

{item.title}

61 |

{item.text}

62 |
63 |
64 |
65 | ); 66 | })} 67 | 68 | 69 |
70 | 71 |
72 | 73 |
74 |
75 |
76 | ); 77 | 78 | export default Roadmap; 79 | -------------------------------------------------------------------------------- /src/components/Section.jsx: -------------------------------------------------------------------------------- 1 | import SectionSvg from "../assets/svg/SectionSvg"; 2 | 3 | const Section = ({ 4 | className, 5 | id, 6 | crosses, 7 | crossesOffset, 8 | customPaddings, 9 | children, 10 | }) => { 11 | return ( 12 |
22 | {children} 23 | 24 |
25 |
26 | 27 | {crosses && ( 28 | <> 29 |
34 | 35 | 36 | )} 37 |
38 | ); 39 | }; 40 | 41 | export default Section; 42 | -------------------------------------------------------------------------------- /src/components/Services.jsx: -------------------------------------------------------------------------------- 1 | import Section from "./Section"; 2 | import Heading from "./Heading"; 3 | import { service1, service2, service3, check } from "../assets"; 4 | import { brainwaveServices, brainwaveServicesIcons } from "../constants"; 5 | import { 6 | PhotoChatMessage, 7 | Gradient, 8 | VideoBar, 9 | VideoChatMessage, 10 | } from "./design/Services"; 11 | 12 | import Generating from "./Generating"; 13 | 14 | const Services = () => { 15 | return ( 16 |
17 |
18 | 22 | 23 |
24 |
25 |
26 | Smartest AI 33 |
34 | 35 |
36 |

Smartest AI

37 |

38 | Brainwave unlocks the potential of AI-powered applications 39 |

40 |
    41 | {brainwaveServices.map((item, index) => ( 42 |
  • 46 | 47 |

    {item}

    48 |
  • 49 | ))} 50 |
51 |
52 | 53 | 54 |
55 | 56 |
57 |
58 |
59 | robot 66 |
67 | 68 |
69 |

Photo editing

70 |

71 | Automatically enhance your photos using our AI app's 72 | photo editing feature. Try it now! 73 |

74 |
75 | 76 | 77 |
78 | 79 |
80 |
81 |

Video generation

82 |

83 | The world’s most powerful AI photo and video art generation 84 | engine. What will you create? 85 |

86 | 87 |
    88 | {brainwaveServicesIcons.map((item, index) => ( 89 |
  • 97 |
    104 | {item} 105 |
    106 |
  • 107 | ))} 108 |
109 |
110 | 111 |
112 | Scary robot 119 | 120 | 121 | 122 |
123 |
124 |
125 | 126 | 127 |
128 |
129 |
130 | ); 131 | }; 132 | 133 | export default Services; 134 | -------------------------------------------------------------------------------- /src/components/Tagline.jsx: -------------------------------------------------------------------------------- 1 | import brackets from "../assets/svg/Brackets"; 2 | 3 | const TagLine = ({ className, children }) => { 4 | return ( 5 |
6 | {brackets("left")} 7 |
{children}
8 | {brackets("right")} 9 |
10 | ); 11 | }; 12 | 13 | export default TagLine; 14 | -------------------------------------------------------------------------------- /src/components/design/Benefits.jsx: -------------------------------------------------------------------------------- 1 | export const GradientLight = () => { 2 | return ( 3 |
4 | ); 5 | }; 6 | -------------------------------------------------------------------------------- /src/components/design/Collaboration.jsx: -------------------------------------------------------------------------------- 1 | import { curve1, curve2 } from "../../assets"; 2 | 3 | export const RightCurve = () => { 4 | return ( 5 |
6 | Curve 2 7 |
8 | ); 9 | }; 10 | 11 | export const LeftCurve = () => { 12 | return ( 13 |
14 | Curve 1 15 |
16 | ); 17 | }; 18 | -------------------------------------------------------------------------------- /src/components/design/Header.jsx: -------------------------------------------------------------------------------- 1 | import { background } from "../../assets"; 2 | 3 | export const Rings = () => { 4 | return ( 5 |
6 |
7 |
8 |
9 | ); 10 | }; 11 | 12 | export const SideLines = () => { 13 | return ( 14 | <> 15 |
16 |
17 | 18 | ); 19 | }; 20 | 21 | export const BackgroundCircles = () => { 22 | return ( 23 | <> 24 |
25 |
26 |
27 | 28 | ); 29 | }; 30 | 31 | export const HamburgerMenu = () => { 32 | return ( 33 |
34 |
35 | Background 42 |
43 | 44 | 45 | 46 | 47 | 48 | 49 |
50 | ); 51 | }; 52 | -------------------------------------------------------------------------------- /src/components/design/Hero.jsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from "react"; 2 | import { MouseParallax } from "react-just-parallax"; 3 | 4 | import PlusSvg from "../../assets/svg/PlusSvg"; 5 | 6 | export const Gradient = () => { 7 | return ( 8 | <> 9 |
10 |
11 | 12 | ); 13 | }; 14 | 15 | export const BottomLine = () => { 16 | return ( 17 | <> 18 |
19 | 20 | 21 | 22 | 23 | 24 | ); 25 | }; 26 | 27 | const Rings = () => { 28 | return ( 29 | <> 30 |
31 |
32 |
33 |
34 | 35 | ); 36 | }; 37 | 38 | export const BackgroundCircles = ({ parallaxRef }) => { 39 | const [mounted, setMounted] = useState(false); 40 | 41 | useEffect(() => { 42 | setMounted(true); 43 | }, []); 44 | 45 | return ( 46 |
47 | 48 | 49 | {/* Moving background colored circle balls */} 50 | 51 |
52 |
57 |
58 | 59 |
60 |
65 |
66 | 67 |
68 |
73 |
74 | 75 |
76 |
81 |
82 | 83 |
84 |
89 |
90 | 91 |
92 |
97 |
98 | 99 |
100 | ); 101 | }; 102 | -------------------------------------------------------------------------------- /src/components/design/Pricing.jsx: -------------------------------------------------------------------------------- 1 | import { lines } from "../../assets"; 2 | 3 | export const LeftLine = () => { 4 | return ( 5 |
6 | Lines 13 |
14 | ); 15 | }; 16 | 17 | export const RightLine = () => { 18 | return ( 19 |
20 | Lines 27 |
28 | ); 29 | }; 30 | -------------------------------------------------------------------------------- /src/components/design/Roadmap.jsx: -------------------------------------------------------------------------------- 1 | import { gradient } from "../../assets"; 2 | 3 | export const Gradient = () => { 4 | return ( 5 |
6 |
7 | Gradient 14 |
15 |
16 | ); 17 | }; 18 | -------------------------------------------------------------------------------- /src/components/design/Services.jsx: -------------------------------------------------------------------------------- 1 | import { brainwaveWhiteSymbol, gradient, play } from "../../assets"; 2 | import ChatBubbleWing from "../../assets/svg/ChatBubbleWing"; 3 | 4 | export const Gradient = () => { 5 | return ( 6 |
7 | Gradient 14 |
15 | ); 16 | }; 17 | 18 | export const PhotoChatMessage = () => { 19 | return ( 20 |
21 | Hey Brainwave, enhance this photo 22 | 23 |
24 | ); 25 | }; 26 | 27 | export const VideoChatMessage = () => { 28 | return ( 29 |
30 | Video generated! 31 |
32 | Brainwave 38 |
39 |

40 | just now 41 |

42 | 46 |
47 | ); 48 | }; 49 | 50 | export const VideoBar = () => { 51 | return ( 52 |
53 | Play 60 | 61 |
62 |
63 |
64 |
65 | ); 66 | }; 67 | -------------------------------------------------------------------------------- /src/constants/index.js: -------------------------------------------------------------------------------- 1 | import { 2 | benefitIcon1, 3 | benefitIcon2, 4 | benefitIcon3, 5 | benefitIcon4, 6 | benefitImage2, 7 | chromecast, 8 | disc02, 9 | discord, 10 | discordBlack, 11 | facebook, 12 | figma, 13 | file02, 14 | framer, 15 | homeSmile, 16 | instagram, 17 | notification2, 18 | notification3, 19 | notification4, 20 | notion, 21 | photoshop, 22 | plusSquare, 23 | protopie, 24 | raindrop, 25 | recording01, 26 | recording03, 27 | roadmap1, 28 | roadmap2, 29 | roadmap3, 30 | roadmap4, 31 | searchMd, 32 | slack, 33 | sliders04, 34 | telegram, 35 | twitter, 36 | yourlogo, 37 | } from "../assets"; 38 | 39 | export const navigation = [ 40 | { 41 | id: "0", 42 | title: "Features", 43 | url: "#features", 44 | }, 45 | { 46 | id: "1", 47 | title: "Pricing", 48 | url: "#pricing", 49 | }, 50 | { 51 | id: "2", 52 | title: "How to use", 53 | url: "#how-to-use", 54 | }, 55 | { 56 | id: "3", 57 | title: "Roadmap", 58 | url: "#roadmap", 59 | }, 60 | { 61 | id: "4", 62 | title: "New account", 63 | url: "#signup", 64 | onlyMobile: true, 65 | }, 66 | { 67 | id: "5", 68 | title: "Sign in", 69 | url: "#login", 70 | onlyMobile: true, 71 | }, 72 | ]; 73 | 74 | export const heroIcons = [homeSmile, file02, searchMd, plusSquare]; 75 | 76 | export const notificationImages = [notification4, notification3, notification2]; 77 | 78 | export const companyLogos = [yourlogo, yourlogo, yourlogo, yourlogo, yourlogo]; 79 | 80 | export const brainwaveServices = [ 81 | "Photo generating", 82 | "Photo enhance", 83 | "Seamless Integration", 84 | ]; 85 | 86 | export const brainwaveServicesIcons = [ 87 | recording03, 88 | recording01, 89 | disc02, 90 | chromecast, 91 | sliders04, 92 | ]; 93 | 94 | export const roadmap = [ 95 | { 96 | id: "0", 97 | title: "Voice recognition", 98 | text: "Enable the chatbot to understand and respond to voice commands, making it easier for users to interact with the app hands-free.", 99 | date: "May 2023", 100 | status: "done", 101 | imageUrl: roadmap1, 102 | colorful: true, 103 | }, 104 | { 105 | id: "1", 106 | title: "Gamification", 107 | text: "Add game-like elements, such as badges or leaderboards, to incentivize users to engage with the chatbot more frequently.", 108 | date: "May 2023", 109 | status: "progress", 110 | imageUrl: roadmap2, 111 | }, 112 | { 113 | id: "2", 114 | title: "Chatbot customization", 115 | text: "Allow users to customize the chatbot's appearance and behavior, making it more engaging and fun to interact with.", 116 | date: "May 2023", 117 | status: "done", 118 | imageUrl: roadmap3, 119 | }, 120 | { 121 | id: "3", 122 | title: "Integration with APIs", 123 | text: "Allow the chatbot to access external data sources, such as weather APIs or news APIs, to provide more relevant recommendations.", 124 | date: "May 2023", 125 | status: "progress", 126 | imageUrl: roadmap4, 127 | }, 128 | ]; 129 | 130 | export const collabText = 131 | "With smart automation and top-notch security, it's the perfect solution for teams looking to work smarter."; 132 | 133 | export const collabContent = [ 134 | { 135 | id: "0", 136 | title: "Seamless Integration", 137 | text: collabText, 138 | }, 139 | { 140 | id: "1", 141 | title: "Smart Automation", 142 | }, 143 | { 144 | id: "2", 145 | title: "Top-notch Security", 146 | }, 147 | ]; 148 | 149 | export const collabApps = [ 150 | { 151 | id: "0", 152 | title: "Figma", 153 | icon: figma, 154 | width: 26, 155 | height: 36, 156 | }, 157 | { 158 | id: "1", 159 | title: "Notion", 160 | icon: notion, 161 | width: 34, 162 | height: 36, 163 | }, 164 | { 165 | id: "2", 166 | title: "Discord", 167 | icon: discord, 168 | width: 36, 169 | height: 28, 170 | }, 171 | { 172 | id: "3", 173 | title: "Slack", 174 | icon: slack, 175 | width: 34, 176 | height: 35, 177 | }, 178 | { 179 | id: "4", 180 | title: "Photoshop", 181 | icon: photoshop, 182 | width: 34, 183 | height: 34, 184 | }, 185 | { 186 | id: "5", 187 | title: "Protopie", 188 | icon: protopie, 189 | width: 34, 190 | height: 34, 191 | }, 192 | { 193 | id: "6", 194 | title: "Framer", 195 | icon: framer, 196 | width: 26, 197 | height: 34, 198 | }, 199 | { 200 | id: "7", 201 | title: "Raindrop", 202 | icon: raindrop, 203 | width: 38, 204 | height: 32, 205 | }, 206 | ]; 207 | 208 | export const pricing = [ 209 | { 210 | id: "0", 211 | title: "Basic", 212 | description: "AI chatbot, personalized recommendations", 213 | price: "0", 214 | features: [ 215 | "An AI chatbot that can understand your queries", 216 | "Personalized recommendations based on your preferences", 217 | "Ability to explore the app and its features without any cost", 218 | ], 219 | }, 220 | { 221 | id: "1", 222 | title: "Premium", 223 | description: "Advanced AI chatbot, priority support, analytics dashboard", 224 | price: "9.99", 225 | features: [ 226 | "An advanced AI chatbot that can understand complex queries", 227 | "An analytics dashboard to track your conversations", 228 | "Priority support to solve issues quickly", 229 | ], 230 | }, 231 | { 232 | id: "2", 233 | title: "Enterprise", 234 | description: "Custom AI chatbot, advanced analytics, dedicated account", 235 | price: null, 236 | features: [ 237 | "An AI chatbot that can understand your queries", 238 | "Personalized recommendations based on your preferences", 239 | "Ability to explore the app and its features without any cost", 240 | ], 241 | }, 242 | ]; 243 | 244 | export const benefits = [ 245 | { 246 | id: "0", 247 | title: "Ask anything", 248 | text: "Lets users quickly find answers to their questions without having to search through multiple sources.", 249 | backgroundUrl: "./src/assets/benefits/card-1.svg", 250 | iconUrl: benefitIcon1, 251 | imageUrl: benefitImage2, 252 | }, 253 | { 254 | id: "1", 255 | title: "Improve everyday", 256 | text: "The app uses natural language processing to understand user queries and provide accurate and relevant responses.", 257 | backgroundUrl: "./src/assets/benefits/card-2.svg", 258 | iconUrl: benefitIcon2, 259 | imageUrl: benefitImage2, 260 | light: true, 261 | }, 262 | { 263 | id: "2", 264 | title: "Connect everywhere", 265 | text: "Connect with the AI chatbot from anywhere, on any device, making it more accessible and convenient.", 266 | backgroundUrl: "./src/assets/benefits/card-3.svg", 267 | iconUrl: benefitIcon3, 268 | imageUrl: benefitImage2, 269 | }, 270 | { 271 | id: "3", 272 | title: "Fast responding", 273 | text: "Lets users quickly find answers to their questions without having to search through multiple sources.", 274 | backgroundUrl: "./src/assets/benefits/card-4.svg", 275 | iconUrl: benefitIcon4, 276 | imageUrl: benefitImage2, 277 | light: true, 278 | }, 279 | { 280 | id: "4", 281 | title: "Ask anything", 282 | text: "Lets users quickly find answers to their questions without having to search through multiple sources.", 283 | backgroundUrl: "./src/assets/benefits/card-5.svg", 284 | iconUrl: benefitIcon1, 285 | imageUrl: benefitImage2, 286 | }, 287 | { 288 | id: "5", 289 | title: "Improve everyday", 290 | text: "The app uses natural language processing to understand user queries and provide accurate and relevant responses.", 291 | backgroundUrl: "./src/assets/benefits/card-6.svg", 292 | iconUrl: benefitIcon2, 293 | imageUrl: benefitImage2, 294 | }, 295 | ]; 296 | 297 | export const socials = [ 298 | { 299 | id: "0", 300 | title: "Discord", 301 | iconUrl: discordBlack, 302 | url: "#", 303 | }, 304 | { 305 | id: "1", 306 | title: "Twitter", 307 | iconUrl: twitter, 308 | url: "#", 309 | }, 310 | { 311 | id: "2", 312 | title: "Instagram", 313 | iconUrl: instagram, 314 | url: "#", 315 | }, 316 | { 317 | id: "3", 318 | title: "Telegram", 319 | iconUrl: telegram, 320 | url: "#", 321 | }, 322 | { 323 | id: "4", 324 | title: "Facebook", 325 | iconUrl: facebook, 326 | url: "#", 327 | }, 328 | ]; 329 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Sora:wght@300;400;600&display=swap"); 2 | @import url("https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap"); 3 | @import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300&display=swap"); 4 | 5 | @tailwind base; 6 | @tailwind components; 7 | @tailwind utilities; 8 | 9 | :root { 10 | --font-sora: "Sora", sans-serif; 11 | --font-code: "Source Code Pro", monospace; 12 | --font-grotesk: "Space Grotesk", sans-serif; 13 | color-scheme: dark; 14 | } 15 | 16 | * { 17 | scroll-behavior: smooth 18 | } 19 | 20 | @layer base { 21 | body { 22 | @apply font-sans bg-n-8 text-n-1 text-base; 23 | } 24 | } 25 | 26 | .rotate-45 { 27 | @apply rotate-[45deg] 28 | } 29 | 30 | .rotate-90 { 31 | @apply rotate-[90deg] 32 | } 33 | 34 | .rotate-135 { 35 | @apply rotate-[135deg] 36 | } 37 | 38 | .rotate-180 { 39 | @apply rotate-[180deg] 40 | } 41 | 42 | .rotate-225 { 43 | @apply rotate-[225deg] 44 | } 45 | 46 | .rotate-270 { 47 | @apply rotate-[270deg] 48 | } 49 | 50 | .rotate-315 { 51 | @apply rotate-[315deg] 52 | } 53 | 54 | .rotate-360 { 55 | @apply rotate-[360deg] 56 | } 57 | 58 | .-rotate-45 { 59 | @apply rotate-[-45deg] 60 | } 61 | 62 | .-rotate-90 { 63 | @apply rotate-[-90deg] 64 | } 65 | 66 | .-rotate-135 { 67 | @apply rotate-[-135deg] 68 | } 69 | 70 | .-rotate-180 { 71 | @apply rotate-[-180deg] 72 | } 73 | 74 | .-rotate-225 { 75 | @apply rotate-[-225deg] 76 | } 77 | 78 | .-rotate-270 { 79 | @apply rotate-[-270deg] 80 | } 81 | 82 | .-rotate-315 { 83 | @apply rotate-[-315deg] 84 | } 85 | 86 | .-rotate-360 { 87 | @apply rotate-[-360deg] 88 | } -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import { BrowserRouter as Router } from "react-router-dom"; 4 | 5 | import App from "./App.jsx"; 6 | import "./index.css"; 7 | 8 | ReactDOM.createRoot(document.getElementById("root")).render( 9 | 10 | 11 | 12 | 13 | 14 | ); 15 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | import { fontFamily } from "tailwindcss/defaultTheme"; 3 | import plugin from "tailwindcss/plugin"; 4 | 5 | export default { 6 | content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"], 7 | theme: { 8 | extend: { 9 | colors: { 10 | color: { 11 | 1: "#AC6AFF", 12 | 2: "#FFC876", 13 | 3: "#FF776F", 14 | 4: "#7ADB78", 15 | 5: "#858DFF", 16 | 6: "#FF98E2", 17 | }, 18 | stroke: { 19 | 1: "#26242C", 20 | }, 21 | n: { 22 | 1: "#FFFFFF", 23 | 2: "#CAC6DD", 24 | 3: "#ADA8C3", 25 | 4: "#757185", 26 | 5: "#3F3A52", 27 | 6: "#252134", 28 | 7: "#15131D", 29 | 8: "#0E0C15", 30 | 9: "#474060", 31 | 10: "#43435C", 32 | 11: "#1B1B2E", 33 | 12: "#2E2A41", 34 | 13: "#6C7275", 35 | }, 36 | }, 37 | fontFamily: { 38 | sans: ["var(--font-sora)", ...fontFamily.sans], 39 | code: "var(--font-code)", 40 | grotesk: "var(--font-grotesk)", 41 | }, 42 | letterSpacing: { 43 | tagline: ".15em", 44 | }, 45 | spacing: { 46 | 0.25: "0.0625rem", 47 | 7.5: "1.875rem", 48 | 15: "3.75rem", 49 | }, 50 | opacity: { 51 | 15: ".15", 52 | }, 53 | transitionDuration: { 54 | DEFAULT: "200ms", 55 | }, 56 | transitionTimingFunction: { 57 | DEFAULT: "linear", 58 | }, 59 | zIndex: { 60 | 1: "1", 61 | 2: "2", 62 | 3: "3", 63 | 4: "4", 64 | 5: "5", 65 | }, 66 | borderWidth: { 67 | DEFAULT: "0.0625rem", 68 | }, 69 | backgroundImage: { 70 | "radial-gradient": "radial-gradient(var(--tw-gradient-stops))", 71 | "conic-gradient": 72 | "conic-gradient(from 225deg, #FFC876, #79FFF7, #9F53FF, #FF98E2, #FFC876)", 73 | }, 74 | }, 75 | }, 76 | plugins: [ 77 | plugin(function ({ addBase, addComponents, addUtilities }) { 78 | addBase({}); 79 | addComponents({ 80 | ".container": { 81 | "@apply max-w-[77.5rem] mx-auto px-5 md:px-10 lg:px-15 xl:max-w-[87.5rem]": 82 | {}, 83 | }, 84 | ".h1": { 85 | "@apply font-semibold text-[2.5rem] leading-[3.25rem] md:text-[2.75rem] md:leading-[3.75rem] lg:text-[3.25rem] lg:leading-[4.0625rem] xl:text-[3.75rem] xl:leading-[4.5rem]": 86 | {}, 87 | }, 88 | ".h2": { 89 | "@apply text-[1.75rem] leading-[2.5rem] md:text-[2rem] md:leading-[2.5rem] lg:text-[2.5rem] lg:leading-[3.5rem] xl:text-[3rem] xl:leading-tight": 90 | {}, 91 | }, 92 | ".h3": { 93 | "@apply text-[2rem] leading-normal md:text-[2.5rem]": {}, 94 | }, 95 | ".h4": { 96 | "@apply text-[2rem] leading-normal": {}, 97 | }, 98 | ".h5": { 99 | "@apply text-2xl leading-normal": {}, 100 | }, 101 | ".h6": { 102 | "@apply font-semibold text-lg leading-8": {}, 103 | }, 104 | ".body-1": { 105 | "@apply text-[0.875rem] leading-[1.5rem] md:text-[1rem] md:leading-[1.75rem] lg:text-[1.25rem] lg:leading-8": 106 | {}, 107 | }, 108 | ".body-2": { 109 | "@apply font-light text-[0.875rem] leading-6 md:text-base": {}, 110 | }, 111 | ".caption": { 112 | "@apply text-sm": {}, 113 | }, 114 | ".tagline": { 115 | "@apply font-grotesk font-light text-xs tracking-tagline uppercase": 116 | {}, 117 | }, 118 | ".quote": { 119 | "@apply font-code text-lg leading-normal": {}, 120 | }, 121 | ".button": { 122 | "@apply font-code text-xs font-bold uppercase tracking-wider": {}, 123 | }, 124 | }); 125 | addUtilities({ 126 | ".tap-highlight-color": { 127 | "-webkit-tap-highlight-color": "rgba(0, 0, 0, 0)", 128 | }, 129 | }); 130 | }), 131 | ], 132 | }; 133 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }) 8 | --------------------------------------------------------------------------------