├── public ├── _redirects ├── cover.png ├── robots.txt ├── favicon.ico ├── logo-48.png ├── favicon-16x16.png ├── favicon-32x32.png ├── mstile-150x150.png ├── apple-touch-icon.png ├── android-chrome-192x192.png ├── android-chrome-512x512.png ├── apple-touch-icon-57x57.png ├── apple-touch-icon-60x60.png ├── apple-touch-icon-72x72.png ├── apple-touch-icon-76x76.png ├── apple-touch-icon-114x114.png ├── apple-touch-icon-120x120.png ├── apple-touch-icon-144x144.png ├── apple-touch-icon-152x152.png ├── apple-touch-icon-180x180.png ├── apple-touch-icon-precomposed.png ├── apple-touch-icon-57x57-precomposed.png ├── apple-touch-icon-60x60-precomposed.png ├── apple-touch-icon-72x72-precomposed.png ├── apple-touch-icon-76x76-precomposed.png ├── apple-touch-icon-114x114-precomposed.png ├── apple-touch-icon-120x120-precomposed.png ├── apple-touch-icon-144x144-precomposed.png ├── apple-touch-icon-152x152-precomposed.png ├── apple-touch-icon-180x180-precomposed.png ├── browserconfig.xml ├── site.webmanifest ├── manifest.json ├── safari-pinned-tab.svg └── index.html ├── README.md ├── src ├── components │ ├── 404 │ │ └── NotFound │ │ │ └── index.jsx │ ├── common │ │ ├── index.jsx │ │ ├── Layout │ │ │ ├── fonts │ │ │ │ ├── roboto-v20-latin-300.eot │ │ │ │ ├── roboto-v20-latin-300.ttf │ │ │ │ ├── roboto-v20-latin-500.eot │ │ │ │ ├── roboto-v20-latin-500.ttf │ │ │ │ ├── roboto-v20-latin-700.eot │ │ │ │ ├── roboto-v20-latin-700.ttf │ │ │ │ ├── geo-v11-latin-regular.eot │ │ │ │ ├── geo-v11-latin-regular.ttf │ │ │ │ ├── geo-v11-latin-regular.woff │ │ │ │ ├── roboto-v20-latin-300.woff │ │ │ │ ├── roboto-v20-latin-300.woff2 │ │ │ │ ├── roboto-v20-latin-500.woff │ │ │ │ ├── roboto-v20-latin-500.woff2 │ │ │ │ ├── roboto-v20-latin-700.woff │ │ │ │ ├── roboto-v20-latin-700.woff2 │ │ │ │ ├── geo-v11-latin-regular.woff2 │ │ │ │ ├── poppins-v9-latin-regular.eot │ │ │ │ ├── poppins-v9-latin-regular.ttf │ │ │ │ ├── poppins-v9-latin-regular.woff │ │ │ │ ├── roboto-v20-latin-regular.eot │ │ │ │ ├── roboto-v20-latin-regular.ttf │ │ │ │ ├── roboto-v20-latin-regular.woff │ │ │ │ ├── poppins-v9-latin-regular.woff2 │ │ │ │ ├── roboto-v20-latin-regular.woff2 │ │ │ │ ├── merriweather-v21-latin-regular.eot │ │ │ │ ├── merriweather-v21-latin-regular.ttf │ │ │ │ ├── montserrat-v14-latin-regular.eot │ │ │ │ ├── montserrat-v14-latin-regular.ttf │ │ │ │ ├── montserrat-v14-latin-regular.woff │ │ │ │ ├── montserrat-v14-latin-regular.woff2 │ │ │ │ ├── merriweather-v21-latin-regular.woff │ │ │ │ ├── merriweather-v21-latin-regular.woff2 │ │ │ │ └── geo-v11-latin-regular.svg │ │ │ ├── index.jsx │ │ │ └── fonts.css │ │ ├── navbar │ │ │ ├── Brand.js │ │ │ ├── BurgerMenu.js │ │ │ ├── CollapseMenu.js │ │ │ └── Navbar.js │ │ ├── SEO │ │ │ └── index.jsx │ │ └── footer │ │ │ └── footer.jsx │ ├── home │ │ ├── Home.jsx │ │ ├── skills.jsx │ │ ├── intro.jsx │ │ └── projects.jsx │ ├── contact │ │ ├── thanks.jsx │ │ └── contact.jsx │ └── about │ │ └── about.jsx ├── assets │ ├── images │ │ ├── andzoa.webp │ │ ├── cover.png │ │ ├── cover2.png │ │ ├── cover3.png │ │ ├── mrTodo.webp │ │ ├── mrWii.webp │ │ ├── profile.png │ │ ├── shape1.webp │ │ ├── shape2.webp │ │ ├── shape3.webp │ │ ├── mrLegend.webp │ │ └── portfolio.webp │ └── svg │ │ ├── facebook.svg │ │ ├── linkedin.svg │ │ ├── github.svg │ │ ├── twitter.svg │ │ ├── whatsapp.svg │ │ ├── js.svg │ │ ├── php.svg │ │ ├── html.svg │ │ ├── wp.svg │ │ ├── css.svg │ │ ├── react.svg │ │ ├── node.svg │ │ ├── mrlgd.svg │ │ ├── mysql.svg │ │ ├── jquery.svg │ │ ├── logo.svg │ │ ├── instagram.svg │ │ └── mongodb.svg ├── index.js ├── pages │ ├── home.js │ ├── about.js │ ├── contact.js │ └── 404.js ├── styles │ ├── Global.js │ └── style.js ├── data │ └── config │ │ └── config.js └── App.js ├── jsconfig.json ├── .gitignore └── package.json /public/_redirects: -------------------------------------------------------------------------------- 1 | /* /index.html 200 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## https://mr-wii.netlify.app/ 2 | 3 | My personal website 4 | -------------------------------------------------------------------------------- /public/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/cover.png -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/logo-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/logo-48.png -------------------------------------------------------------------------------- /src/components/common/index.jsx: -------------------------------------------------------------------------------- 1 | export * from './Layout' 2 | export * from './SEO' 3 | -------------------------------------------------------------------------------- /public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/favicon-16x16.png -------------------------------------------------------------------------------- /public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/favicon-32x32.png -------------------------------------------------------------------------------- /public/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/mstile-150x150.png -------------------------------------------------------------------------------- /public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon.png -------------------------------------------------------------------------------- /src/assets/images/andzoa.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/assets/images/andzoa.webp -------------------------------------------------------------------------------- /src/assets/images/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/assets/images/cover.png -------------------------------------------------------------------------------- /src/assets/images/cover2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/assets/images/cover2.png -------------------------------------------------------------------------------- /src/assets/images/cover3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/assets/images/cover3.png -------------------------------------------------------------------------------- /src/assets/images/mrTodo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/assets/images/mrTodo.webp -------------------------------------------------------------------------------- /src/assets/images/mrWii.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/assets/images/mrWii.webp -------------------------------------------------------------------------------- /src/assets/images/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/assets/images/profile.png -------------------------------------------------------------------------------- /src/assets/images/shape1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/assets/images/shape1.webp -------------------------------------------------------------------------------- /src/assets/images/shape2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/assets/images/shape2.webp -------------------------------------------------------------------------------- /src/assets/images/shape3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/assets/images/shape3.webp -------------------------------------------------------------------------------- /src/assets/images/mrLegend.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/assets/images/mrLegend.webp -------------------------------------------------------------------------------- /public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /public/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/android-chrome-512x512.png -------------------------------------------------------------------------------- /public/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /public/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /public/apple-touch-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-72x72.png -------------------------------------------------------------------------------- /public/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /src/assets/images/portfolio.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/assets/images/portfolio.webp -------------------------------------------------------------------------------- /public/apple-touch-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-114x114.png -------------------------------------------------------------------------------- /public/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /public/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /public/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /public/apple-touch-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-180x180.png -------------------------------------------------------------------------------- /public/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /public/apple-touch-icon-57x57-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-57x57-precomposed.png -------------------------------------------------------------------------------- /public/apple-touch-icon-60x60-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-60x60-precomposed.png -------------------------------------------------------------------------------- /public/apple-touch-icon-72x72-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-72x72-precomposed.png -------------------------------------------------------------------------------- /public/apple-touch-icon-76x76-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-76x76-precomposed.png -------------------------------------------------------------------------------- /public/apple-touch-icon-114x114-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-114x114-precomposed.png -------------------------------------------------------------------------------- /public/apple-touch-icon-120x120-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-120x120-precomposed.png -------------------------------------------------------------------------------- /public/apple-touch-icon-144x144-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-144x144-precomposed.png -------------------------------------------------------------------------------- /public/apple-touch-icon-152x152-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-152x152-precomposed.png -------------------------------------------------------------------------------- /public/apple-touch-icon-180x180-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/public/apple-touch-icon-180x180-precomposed.png -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "src", 4 | "target": "ES6", 5 | "jsx": "react" 6 | }, 7 | "include": ["src/**/*"] 8 | } 9 | -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-300.eot -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-300.ttf -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-500.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-500.eot -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-500.ttf -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-700.eot -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-700.ttf -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/geo-v11-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/geo-v11-latin-regular.eot -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/geo-v11-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/geo-v11-latin-regular.ttf -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/geo-v11-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/geo-v11-latin-regular.woff -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-300.woff -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-300.woff2 -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-500.woff -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-500.woff2 -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-700.woff -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-700.woff2 -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/geo-v11-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/geo-v11-latin-regular.woff2 -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/poppins-v9-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/poppins-v9-latin-regular.eot -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/poppins-v9-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/poppins-v9-latin-regular.ttf -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/poppins-v9-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/poppins-v9-latin-regular.woff -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-regular.eot -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-regular.ttf -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-regular.woff -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/poppins-v9-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/poppins-v9-latin-regular.woff2 -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/roboto-v20-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/roboto-v20-latin-regular.woff2 -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/merriweather-v21-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/merriweather-v21-latin-regular.eot -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/merriweather-v21-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/merriweather-v21-latin-regular.ttf -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/montserrat-v14-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/montserrat-v14-latin-regular.eot -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/montserrat-v14-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/montserrat-v14-latin-regular.ttf -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/montserrat-v14-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/montserrat-v14-latin-regular.woff -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/montserrat-v14-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/montserrat-v14-latin-regular.woff2 -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/merriweather-v21-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/merriweather-v21-latin-regular.woff -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/merriweather-v21-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pouiiro/Mr-wii/HEAD/src/components/common/Layout/fonts/merriweather-v21-latin-regular.woff2 -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import App from 'App' 4 | import { BrowserRouter } from 'react-router-dom' 5 | 6 | ReactDOM.render( 7 | 8 | 9 | , 10 | document.getElementById('root') 11 | ) 12 | -------------------------------------------------------------------------------- /public/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #603cba 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/pages/home.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import Home from 'components/home/Home' 3 | import { Layout, SEO } from 'components/common/' 4 | 5 | export default () => { 6 | return ( 7 | 8 | 9 | 10 | 11 | ) 12 | } 13 | -------------------------------------------------------------------------------- /src/pages/about.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import About from 'components/about/about' 3 | import { Layout, SEO } from 'components/common/' 4 | 5 | export default () => { 6 | return ( 7 | 8 | 9 | 10 | 11 | ) 12 | } 13 | -------------------------------------------------------------------------------- /src/pages/contact.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import Contact from 'components/contact/contact' 3 | import { Layout, SEO } from 'components/common/' 4 | 5 | export default () => { 6 | return ( 7 | 8 | 9 | 10 | 11 | ) 12 | } 13 | -------------------------------------------------------------------------------- /src/pages/404.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import NotFound from 'components/404/NotFound' 3 | import { Layout, SEO } from 'components/common/' 4 | 5 | export default () => { 6 | return ( 7 | 8 | 14 | 15 | 16 | ) 17 | } 18 | -------------------------------------------------------------------------------- /.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 | # production 12 | /build 13 | 14 | # misc 15 | /.vscode 16 | .DS_Store 17 | .env.local 18 | .env.development.local 19 | .env.test.local 20 | .env.production.local 21 | 22 | npm-debug.log* 23 | yarn-debug.log* 24 | yarn-error.log* 25 | -------------------------------------------------------------------------------- /src/components/home/Home.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import Intro from 'components/home/intro' 3 | import Projects from 'components/home/projects' 4 | import Skills from 'components/home/skills' 5 | import Container from '@material-ui/core/Container' 6 | 7 | const Home = () => { 8 | return ( 9 | 10 | 11 | 12 | 13 | 14 | ) 15 | } 16 | 17 | export default Home 18 | -------------------------------------------------------------------------------- /public/site.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Mr Wii", 3 | "short_name": "Mr Wii", 4 | "icons": [ 5 | { 6 | "src": "/android-chrome-192x192.png?v=QEGdK80y7q", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "/android-chrome-512x512.png?v=QEGdK80y7q", 12 | "sizes": "512x512", 13 | "type": "image/png" 14 | } 15 | ], 16 | "theme_color": "#000000", 17 | "background_color": "#000000", 18 | "display": "standalone" 19 | } 20 | -------------------------------------------------------------------------------- /src/components/common/Layout/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import CssBaseline from '@material-ui/core/CssBaseline' 3 | import Ftr from 'components/common/footer/footer' 4 | import './fonts.css' 5 | import styled from 'styled-components' 6 | 7 | export const Layout = ({ children }) => { 8 | return ( 9 | 10 | 11 | {children} 12 | 13 | 14 | ) 15 | } 16 | 17 | const Container = styled.div` 18 | -webkit-animation: fade-in 1s cubic-bezier(0.39, 0.575, 0.565, 1) 0.2s both; 19 | animation: fade-in 1s cubic-bezier(0.39, 0.575, 0.565, 1) 0.2s both; 20 | 21 | @-webkit-keyframes fade-in { 22 | 0% { 23 | opacity: 0; 24 | } 25 | 100% { 26 | opacity: 1; 27 | } 28 | } 29 | @keyframes fade-in { 30 | 0% { 31 | opacity: 0; 32 | } 33 | 100% { 34 | opacity: 1; 35 | } 36 | } 37 | ` 38 | -------------------------------------------------------------------------------- /src/components/common/navbar/Brand.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import styled from 'styled-components' 3 | import logo from 'assets/images/cover.png' 4 | import logo1 from 'assets/images/cover2.png' 5 | import logo2 from 'assets/images/cover3.png' 6 | const Brand = () => { 7 | return ( 8 | 9 | Mr Wii (e.currentTarget.src = logo1)} 13 | onMouseOut={e => (e.currentTarget.src = logo2)} 14 | /> 15 | 16 | ) 17 | } 18 | 19 | export default Brand 20 | 21 | const Link = styled.a` 22 | width: 10%; 23 | height: auto; 24 | margin: auto 0; 25 | @media only screen and (max-width: 600px) { 26 | height: auto; 27 | width: 35%; 28 | } 29 | ` 30 | 31 | const Image = styled.img` 32 | width: 100%; 33 | @media only screen and (max-width: 600px) { 34 | width: 100%; 35 | } 36 | ` 37 | -------------------------------------------------------------------------------- /src/styles/Global.js: -------------------------------------------------------------------------------- 1 | import { createGlobalStyle } from 'styled-components' 2 | 3 | const GlobalStyles = createGlobalStyle` 4 | 5 | *, 6 | *::after, 7 | *::before { 8 | margin: 0px; 9 | padding: 0px; 10 | box-sizing: inherit; 11 | } 12 | 13 | html { 14 | font-size: 62.5%; 15 | font-family: sans-serif; 16 | -ms-text-size-adjust: 100%; 17 | -webkit-text-size-adjust: 100%; 18 | } 19 | 20 | body { 21 | font-kerning: normal; 22 | margin: 0; 23 | box-sizing: border-box; 24 | font-family: 'Montserrat', sans-serif; 25 | overflow: scroll; 26 | overflow-x: hidden; 27 | background-color: #fff !important; 28 | ::-webkit-scrollbar { 29 | width: 0px; /* Remove scrollbar space */ 30 | background: transparent; /* Optional: just make scrollbar invisible */ 31 | } 32 | ::-webkit-scrollbar-thumb { 33 | background: #FF0000; 34 | } 35 | } 36 | ` 37 | 38 | export default GlobalStyles 39 | -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Mr Wii", 3 | "icons": [ 4 | { 5 | "src": "/android-icon-36x36.png", 6 | "sizes": "36x36", 7 | "type": "image/png", 8 | "density": "0.75" 9 | }, 10 | { 11 | "src": "/android-icon-48x48.png", 12 | "sizes": "48x48", 13 | "type": "image/png", 14 | "density": "1.0" 15 | }, 16 | { 17 | "src": "/android-icon-72x72.png", 18 | "sizes": "72x72", 19 | "type": "image/png", 20 | "density": "1.5" 21 | }, 22 | { 23 | "src": "/android-icon-96x96.png", 24 | "sizes": "96x96", 25 | "type": "image/png", 26 | "density": "2.0" 27 | }, 28 | { 29 | "src": "/android-icon-144x144.png", 30 | "sizes": "144x144", 31 | "type": "image/png", 32 | "density": "3.0" 33 | }, 34 | { 35 | "src": "/android-icon-192x192.png", 36 | "sizes": "192x192", 37 | "type": "image/png", 38 | "density": "4.0" 39 | } 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /src/components/common/navbar/BurgerMenu.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import styled from 'styled-components' 3 | 4 | const Burgermenu = props => { 5 | return ( 6 | 7 |
8 |   9 |   10 |   11 |
12 |
13 | ) 14 | } 15 | 16 | export default Burgermenu 17 | 18 | const Wrapper = styled.div` 19 | position: relative; 20 | padding-top: 0.2rem; 21 | cursor: pointer; 22 | display: block; 23 | 24 | & span { 25 | background: #000000; 26 | display: block; 27 | position: relative; 28 | width: 3.6rem; 29 | height: 0.3rem; 30 | margin-bottom: 0.7rem; 31 | transition: all ease-in-out 0.2s; 32 | } 33 | 34 | .open span:nth-child(2) { 35 | opacity: 0; 36 | } 37 | 38 | .open span:nth-child(3) { 39 | transform: rotate(45deg); 40 | top: -10px; 41 | } 42 | 43 | .open span:nth-child(1) { 44 | transform: rotate(-45deg); 45 | top: 10px; 46 | } 47 | ` 48 | -------------------------------------------------------------------------------- /src/assets/svg/facebook.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 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 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/data/config/config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | defaultTitle: 'Mr Wii', 3 | logo: 'https://mr-wii.com/logo-48.png', 4 | author: 'Ouail Bni (Mr Wii)', 5 | url: 'https://mr-wii.com', 6 | legalName: 'Ouail Bni', 7 | defaultDescription: 8 | 'I am Wael, aka Mr Wii! a Front-End developer who enjoys making website and webapps and loves learning new things.', 9 | socialLinks: { 10 | twitter: 'https://twitter.com/BniWael', 11 | github: 'https://github.com/Mr-Wii', 12 | linkedin: 'https://www.linkedin.com/in/ouailbni/', 13 | instagram: 'https://www.instagram.com/wael_bni/', 14 | youtube: 'https://www.youtube.com/user/eruKenkyushitsu' 15 | }, 16 | googleAnalyticsID: 'UA-156290568-1', 17 | themeColor: '#5e3da5', 18 | backgroundColor: '#fff', 19 | social: { 20 | facebook: '100006553743185', 21 | twitter: '@BniWael' 22 | }, 23 | address: { 24 | city: 'Errachidia', 25 | region: 'Drâa-Tafilalet', 26 | country: 'Morocco', 27 | zipCode: '52000' 28 | }, 29 | contact: { 30 | email: 'ouailbni@gmail.com', 31 | phone: '+212-639-03-23-34' 32 | }, 33 | foundingDate: '2019' 34 | } 35 | -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | import Navbar from 'components/common/navbar/Navbar' 3 | import Home from 'pages/home' 4 | import About from 'pages/about' 5 | import Contact from 'pages/contact' 6 | import NotFoundPage from 'pages/404' 7 | import GlobalStyle from 'styles/Global' 8 | import favicon from './assets/images/mrWii.webp' 9 | import { BrowserRouter as Router, Switch, Route } from 'react-router-dom' 10 | 11 | import ScrollToTop from 'react-router-scroll-top' 12 | 13 | class App extends Component { 14 | state = { 15 | navbarOpen: false 16 | } 17 | 18 | handleNavbar = () => { 19 | this.setState({ navbarOpen: !this.state.navbarOpen }) 20 | } 21 | 22 | render() { 23 | return ( 24 | 25 | 26 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | ) 41 | } 42 | } 43 | 44 | export default App 45 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my-app", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@material-ui/core": "^4.8.0", 7 | "@material-ui/icons": "^4.5.1", 8 | "@material-ui/styles": "^4.7.1", 9 | "@testing-library/jest-dom": "^4.2.4", 10 | "@testing-library/react": "^9.4.0", 11 | "@testing-library/user-event": "^7.2.0", 12 | "rc-footer": "^0.6.2", 13 | "react": "^16.8.6", 14 | "react-dom": "^16.8.6", 15 | "react-helmet": "^5.2.1", 16 | "react-is": "^16.8.6", 17 | "react-router-dom": "^5.1.2", 18 | "react-router-scroll-top": "^0.2.1", 19 | "react-scripts": "3.3.0", 20 | "react-spring": "^8.0.27", 21 | "styled-components": "^5.0.0", 22 | "webfontloader": "^1.6.28" 23 | }, 24 | "scripts": { 25 | "start": "react-scripts start", 26 | "build": "react-scripts build", 27 | "test": "react-scripts test", 28 | "eject": "react-scripts eject" 29 | }, 30 | "eslintConfig": { 31 | "extends": "react-app" 32 | }, 33 | "browserslist": { 34 | "production": [ 35 | ">0.2%", 36 | "not dead", 37 | "not op_mini all" 38 | ], 39 | "development": [ 40 | "last 1 chrome version", 41 | "last 1 firefox version", 42 | "last 1 safari version" 43 | ] 44 | }, 45 | "devDependencies": { 46 | "@iconify/icons-mdi": "^1.0.41", 47 | "@iconify/react": "^1.1.1" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/assets/svg/linkedin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 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 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /src/assets/svg/github.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 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 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/assets/svg/twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /src/assets/svg/whatsapp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 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 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/assets/svg/js.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 10 | 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 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/assets/svg/php.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 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 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/assets/svg/html.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 10 | 14 | 18 | 19 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /public/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | 10 | 12 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/components/common/navbar/CollapseMenu.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import styled from 'styled-components' 3 | import { NavLink } from 'react-router-dom' 4 | import { useSpring, animated } from 'react-spring' 5 | 6 | const CollapseMenu = props => { 7 | const { open } = useSpring({ open: props.navbarState ? 0 : 1 }) 8 | const styleAc = { 9 | color: '#000000', 10 | fontSize: '1.4rem', 11 | lineHeight: '2', 12 | fontWeight: '600' 13 | } 14 | if (props.navbarState === true) { 15 | return ( 16 | `translate3d(0, ${openValue}px, 0`), 25 | zIndex: '1' 26 | }} 27 | > 28 | 29 |
  • 30 | 31 | Home 32 | 33 |
  • 34 |
  • 35 | 36 | Contact 37 | 38 |
  • 39 |
  • 40 | 41 | About 42 | 43 |
  • 44 |
    45 |
    46 |
    47 | ) 48 | } 49 | return null 50 | } 51 | 52 | export default CollapseMenu 53 | 54 | const Hr = styled.hr` 55 | width: 100%; 56 | margin: 0 auto; 57 | ` 58 | 59 | const CollapseWrapper = styled(animated.div)` 60 | background: #fff; 61 | position: fixed; 62 | top: 7.1rem; 63 | left: 0; 64 | right: 0; 65 | ` 66 | 67 | const NavLinks = styled.ul` 68 | list-style-type: none; 69 | padding: 2rem 1rem 2rem 2rem; 70 | 71 | & li { 72 | transition: all 500ms linear 0s; 73 | } 74 | 75 | & a { 76 | font-size: 1.4rem; 77 | line-height: 2; 78 | color: #676767; 79 | text-transform: uppercase; 80 | text-decoration: none; 81 | cursor: pointer; 82 | } 83 | ` 84 | -------------------------------------------------------------------------------- /src/assets/svg/wp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 10 | 12 | 15 | 17 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/components/404/NotFound/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { NavLink } from 'react-router-dom' 3 | import Typography from '@material-ui/core/Typography' 4 | import Container from '@material-ui/core/Container' 5 | import wiiro from 'assets/images/mrWii.webp' 6 | import { Title, Button } from 'styles/style' 7 | import styled from 'styled-components' 8 | 9 | export default () => ( 10 | 11 | 17 |
    18 | Mr Wii 19 | 404 PAGE NOT FOUND 20 | 21 | Take me home 22 | 23 |
    24 |
    25 |
    26 | ) 27 | 28 | const Tituru = styled(Title)` 29 | margin-top: 0; 30 | @media only screen and (min-width: 100px) and (max-width: 320px) { 31 | font-size: 18px; 32 | margin-top: 0; 33 | } 34 | @media only screen and (min-width: 321px) and (max-width: 600px) { 35 | font-size: 20px; 36 | margin-top: 0; 37 | } 38 | ` 39 | 40 | const TyButton = styled(Button)` 41 | width: 40%; 42 | margin-left: 0; 43 | margin-bottom: 0; 44 | margin-top: 2rem; 45 | background-color: #31d8bc; 46 | border: 2px solid #31d8bc; 47 | &:hover { 48 | color: #31d8bc; 49 | } 50 | @media only screen and (min-width: 100px) and (max-width: 320px) { 51 | width: 60%; 52 | margin-left: 0; 53 | 54 | font-size: 12px; 55 | } 56 | @media only screen and (min-width: 321px) and (max-width: 600px) { 57 | width: 60%; 58 | margin-left: 0; 59 | 60 | font-size: 14px; 61 | } 62 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 63 | width: 45%; 64 | margin-left: 0; 65 | font-size: 16px; 66 | } 67 | ` 68 | 69 | const Div = styled.div` 70 | text-align: center; 71 | img { 72 | margin-top: 15vh; 73 | } 74 | @media only screen and (min-width: 100px) and (max-width: 320px) { 75 | img { 76 | width: 100%; 77 | margin-top: 16vh; 78 | } 79 | } 80 | @media only screen and (min-width: 321px) and (max-width: 600px) { 81 | img { 82 | width: 100%; 83 | margin-top: 20vh; 84 | } 85 | } 86 | ` 87 | -------------------------------------------------------------------------------- /src/assets/svg/css.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 10 | 14 | 18 | 22 | 26 | 30 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /src/components/home/skills.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import Container from '@material-ui/core/Container' 3 | import htmlSvg from 'assets/svg/html.svg' 4 | import nodeSvg from 'assets/svg/node.svg' 5 | import cssSvg from 'assets/svg/css.svg' 6 | import jsSvg from 'assets/svg/js.svg' 7 | import sqlSvg from 'assets/svg/mysql.svg' 8 | import reactSvg from 'assets/svg/react.svg' 9 | import phpSvg from 'assets/svg/php.svg' 10 | import jquerySvg from 'assets/svg/jquery.svg' 11 | import mongoSvg from 'assets/svg/mongodb.svg' 12 | import { Header2 } from 'styles/style' 13 | import styled from 'styled-components' 14 | 15 | const Skills = () => { 16 | return ( 17 | 18 | My Stack 19 | 48 | 49 | ) 50 | } 51 | 52 | const List = styled.li` 53 | margin: 50px; 54 | display: inline-block; 55 | width: 15%; 56 | @media only screen and (min-width: 100px) and (max-width: 320px) { 57 | margin: 5.3vw; 58 | width: 20%; 59 | } 60 | @media only screen and (min-width: 321px) and (max-width: 600px) { 61 | margin: 5.3vw; 62 | width: 20%; 63 | } 64 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 65 | width: 20%; 66 | margin-left: auto; 67 | margin-right: auto; 68 | } 69 | ` 70 | const Img = styled.img` 71 | width: 60%; 72 | @media only screen and (min-width: 100px) and (max-width: 320px) { 73 | width: 100%; 74 | } 75 | @media only screen and (min-width: 321px) and (max-width: 600px) { 76 | width: 100%; 77 | } 78 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 79 | width: 50%; 80 | } 81 | ` 82 | 83 | export default Skills 84 | -------------------------------------------------------------------------------- /src/components/contact/thanks.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import CssBaseline from '@material-ui/core/CssBaseline' 3 | import Typography from '@material-ui/core/Typography' 4 | import Container from '@material-ui/core/Container' 5 | import wiiro from 'assets/images/mrWii.webp' 6 | import { NavLink } from 'react-router-dom' 7 | import { SEO } from 'components/common/SEO' 8 | import { Title, Button } from 'styles/style' 9 | import styled from 'styled-components' 10 | 11 | const Thanks = () => { 12 | return ( 13 | 14 | 20 | 21 | 22 | 23 | 29 |
    30 | Thank You! 31 | Thank You 32 |

    Will get back at you as soon as possible!

    33 |

    Have a nice day

    34 |

    35 | 36 | 😊 37 | 38 |

    39 | 40 | Take me home 41 | 42 |
    43 |
    44 |
    45 |
    46 |
    47 | ) 48 | } 49 | 50 | const TyButton = styled(Button)` 51 | width: 40%; 52 | margin-left: 0; 53 | margin-bottom: 0; 54 | margin-top: 2rem; 55 | background-color: #31d8bc; 56 | border: 2px solid #31d8bc; 57 | &:hover { 58 | color: #31d8bc; 59 | } 60 | @media only screen and (min-width: 100px) and (max-width: 320px) { 61 | width: 60%; 62 | margin-left: 0; 63 | 64 | font-size: 12px; 65 | } 66 | @media only screen and (min-width: 321px) and (max-width: 600px) { 67 | width: 60%; 68 | margin-left: 0; 69 | 70 | font-size: 14px; 71 | } 72 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 73 | width: 45%; 74 | margin-left: 0; 75 | font-size: 16px; 76 | } 77 | ` 78 | 79 | const Div = styled.div` 80 | text-align: center; 81 | h2 { 82 | font-size: 25px; 83 | } 84 | @media only screen and (min-width: 100px) and (max-width: 320px) { 85 | h2 { 86 | font-size: 18px; 87 | } 88 | img { 89 | width: 100%; 90 | } 91 | } 92 | @media only screen and (min-width: 321px) and (max-width: 600px) { 93 | h2 { 94 | font-size: 20px; 95 | } 96 | img { 97 | width: 100%; 98 | } 99 | } 100 | ` 101 | 102 | export default Thanks 103 | -------------------------------------------------------------------------------- /src/components/common/navbar/Navbar.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import styled from 'styled-components' 3 | import { useSpring, animated, config } from 'react-spring' 4 | import { NavLink } from 'react-router-dom' 5 | 6 | import Brand from './Brand' 7 | import BurgerMenu from './BurgerMenu' 8 | import CollapseMenu from './CollapseMenu' 9 | 10 | const Navbar = props => { 11 | const barAnimation = useSpring({ 12 | from: { transform: 'translate3d(0, -10rem, 0)' }, 13 | transform: 'translate3d(0, 0, 0)' 14 | }) 15 | 16 | const linkAnimation = useSpring({ 17 | from: { transform: 'translate3d(0, 30px, 0)', opacity: 0 }, 18 | to: { transform: 'translate3d(0, 0, 0)', opacity: 1 }, 19 | delay: 800, 20 | config: config.wobbly 21 | }) 22 | const styleAc = { color: '#000000' } 23 | return ( 24 | <> 25 | 26 | 27 | 28 | 29 | 30 | Home 31 | 32 | 33 | Contact 34 | 35 | 36 | 37 | About 38 | 39 | 40 | 41 | 45 | 46 | 47 |
    48 |
    49 | 53 | 54 | ) 55 | } 56 | 57 | export default Navbar 58 | 59 | const Hr = styled.hr` 60 | width: 100%; 61 | margin: 0 auto; 62 | ` 63 | 64 | const Span = styled.span` 65 | border-right: 1px solid #333; 66 | margin: 0 1.5rem; 67 | @media (max-width: 768px) { 68 | display: none; 69 | } 70 | ` 71 | 72 | const NavBar = styled(animated.nav)` 73 | position: fixed; 74 | width: 100%; 75 | top: 0; 76 | left: 0; 77 | background: #fff; 78 | z-index: 5; 79 | font-size: 1.7rem; 80 | ` 81 | 82 | const FlexContainer = styled.div` 83 | max-width: 150rem; 84 | display: flex; 85 | margin: auto; 86 | padding: 0 2rem; 87 | justify-content: space-between; 88 | height: 7rem; 89 | ` 90 | 91 | const NavLinks = styled(animated.ul)` 92 | justify-self: end; 93 | list-style-type: none; 94 | margin: auto 0; 95 | 96 | & a { 97 | color: #676767; 98 | font-family: Roboto; 99 | font-style: normal; 100 | font-weight: 500; 101 | text-transform: uppercase; 102 | 103 | border-bottom: 1px solid transparent; 104 | margin: 0 1.5rem; 105 | transition: all 300ms linear 0s; 106 | text-decoration: none; 107 | cursor: pointer; 108 | 109 | &:hover { 110 | color: #000000; 111 | border-bottom: 1px solid #9858e9; 112 | } 113 | 114 | @media (max-width: 768px) { 115 | display: none; 116 | } 117 | } 118 | ` 119 | 120 | const BurgerWrapper = styled.div` 121 | margin: auto 0; 122 | 123 | @media (min-width: 769px) { 124 | display: none; 125 | } 126 | ` 127 | -------------------------------------------------------------------------------- /src/components/common/SEO/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import Helmet from 'react-helmet' 3 | import Thumbnail from 'assets/images/mrWii.webp' 4 | import { 5 | url, 6 | defaultTitle, 7 | defaultDescription, 8 | social, 9 | socialLinks, 10 | address, 11 | contact, 12 | legalName, 13 | foundingDate, 14 | logo 15 | } from 'data/config/config' 16 | 17 | export const SEO = ({ title, type, description, location = '', readTime }) => { 18 | const structuredDataOrganization = `{ 19 | "@context": "http://schema.org", 20 | "@type": "${type}", 21 | "legalName": "${legalName}", 22 | "url": "${url}", 23 | "logo": "${logo}", 24 | "foundingDate": "${foundingDate}", 25 | "founders": [{ 26 | "@type": "Person", 27 | "name": "${legalName}" 28 | }], 29 | "contactPoint": [{ 30 | "@type": "ContactPoint", 31 | "email": "${contact.email}", 32 | "telephone": "${contact.phone}", 33 | "contactType": "customer service" 34 | }], 35 | "address": { 36 | "@type": "PostalAddress", 37 | "addressLocality": "${address.city}", 38 | "addressRegion": "${address.region}", 39 | "addressCountry": "${address.country}", 40 | "postalCode": "${address.zipCode}" 41 | }, 42 | "sameAs": [ 43 | "${socialLinks.twitter}", 44 | "${socialLinks.youtube}", 45 | "${socialLinks.linkedin}", 46 | "${socialLinks.instagram}", 47 | "${socialLinks.github}" 48 | ] 49 | }` 50 | 51 | return ( 52 | 53 | 54 | 55 | 56 | 57 | 61 | 65 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 79 | 83 | 84 | 85 | 86 | {title ? `Mr Wii | ${title}` : defaultTitle} 87 | {type === 'NewsArticle' && ( 88 | 89 | )} 90 | {type === 'NewsArticle' && ( 91 | 92 | )} 93 | {type === 'NewsArticle' && ( 94 | 95 | )} 96 | 97 | 98 | ) 99 | } 100 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 11 | 17 | 23 | 24 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 43 | 44 | 45 | 46 | 47 | 51 | 52 | 56 | 65 | Mr Wii | Hello World! 66 | 67 | 68 | 69 | 80 |
    81 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /src/components/contact/contact.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import Typography from '@material-ui/core/Typography' 3 | import Container from '@material-ui/core/Container' 4 | import Thanks from './thanks' 5 | import { Form, Title } from 'styles/style' 6 | import styled from 'styled-components' 7 | 8 | const encode = data => { 9 | return Object.keys(data) 10 | .map(key => encodeURIComponent(key) + '=' + encodeURIComponent(data[key])) 11 | .join('&') 12 | } 13 | 14 | class Contact extends React.Component { 15 | constructor(props) { 16 | super(props) 17 | this.state = { name: '', email: '', message: '', done: false } 18 | } 19 | 20 | handleSubmit = e => { 21 | fetch('/', { 22 | method: 'POST', 23 | headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, 24 | body: encode({ 'form-name': 'contact', ...this.state }) 25 | }) 26 | .then(() => { 27 | this.setState({ 28 | done: true 29 | }) 30 | }) 31 | .catch(error => alert(error)) 32 | 33 | e.preventDefault() 34 | } 35 | 36 | handleChange = e => this.setState({ [e.target.name]: e.target.value }) 37 | render() { 38 | const { name, email, message } = this.state 39 | if (this.state.done === false) { 40 | return ( 41 | <> 42 | 43 | Contact Me 44 | 45 | You can find me anywhere if you contact me using my social media, 46 | most of the time i'm available there. 47 | 48 | Or use the form below to get in touch : 49 | 50 | 51 | 57 |
    58 | 59 | 67 | 75 | 83 | 84 |
    85 |
    86 |
    87 | 88 | ) 89 | } else { 90 | return 91 | } 92 | } 93 | } 94 | 95 | const TextHead = styled.h2` 96 | font-size: 22px; 97 | margin-top: 5vh; 98 | @media only screen and (min-width: 100px) and (max-width: 320px) { 99 | font-size: 12px; 100 | margin-top: 3vh; 101 | } 102 | @media only screen and (min-width: 321px) and (max-width: 600px) { 103 | font-size: 15px; 104 | margin-top: 3vh; 105 | } 106 | ` 107 | const TextHead1 = styled(TextHead)` 108 | font-size: 24px; 109 | color: #34c0a9; 110 | text-transform: uppercase; 111 | 112 | @media only screen and (min-width: 100px) and (max-width: 320px) { 113 | font-size: 13px; 114 | } 115 | @media only screen and (min-width: 321px) and (max-width: 600px) { 116 | font-size: 16px; 117 | } 118 | ` 119 | 120 | export default Contact 121 | -------------------------------------------------------------------------------- /src/assets/svg/react.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 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 | -------------------------------------------------------------------------------- /src/components/home/intro.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { NavLink } from 'react-router-dom' 3 | import styled from 'styled-components' 4 | import img from 'assets/images/shape1.webp' 5 | import img1 from 'assets/images/shape2.webp' 6 | import { Button, BgImg, BgImg2, Header1 } from 'styles/style' 7 | import Grid from '@material-ui/core/Grid' 8 | 9 | const Intro = () => { 10 | return ( 11 |
    12 | 13 | 14 | 15 | Hello World! 16 | I am Wael, aka Mr Wii 17 | Front-end developer. 18 | 19 | 27 | 28 | 29 |
    39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | Get In Touch 47 | 48 | 49 |
    50 |
    51 |
    52 |
    53 |
    54 | ) 55 | } 56 | 57 | const Linku = styled(NavLink)` 58 | margin-left: 30%; 59 | @media only screen and (min-width: 100px) and (max-width: 320px) { 60 | margin-left: 20%; 61 | } 62 | @media only screen and (min-width: 321px) and (max-width: 600px) { 63 | margin-left: 20%; 64 | } 65 | ` 66 | const Linku2 = styled(NavLink)` 67 | margin-left: 15%; 68 | @media only screen and (min-width: 100px) and (max-width: 320px) { 69 | margin-left: 5%; 70 | } 71 | @media only screen and (min-width: 321px) and (max-width: 600px) { 72 | margin-left: 5%; 73 | } 74 | ` 75 | const Div1 = styled.div` 76 | position: relative; 77 | display: inline-block; 78 | width: 100%; 79 | @media only screen and (min-width: 100px) and (max-width: 320px) { 80 | margin-top: 30%; 81 | } 82 | @media only screen and (min-width: 321px) and (max-width: 600px) { 83 | margin-top: 40%; 84 | } 85 | ` 86 | 87 | const Div = styled.div` 88 | margin-left: 5vw; 89 | margin-top: 23vh; 90 | flex-grow: 1; 91 | ` 92 | 93 | const SecondButton = styled(Button)` 94 | background-color: #492e7c; 95 | border: 2px solid #492e7c; 96 | &:hover { 97 | box-shadow: 0 6px 18px 0 rgba(0, 0, 0, 0.1); 98 | color: #492e7c; 99 | border-color: transparent; 100 | background-color: transparent; 101 | } 102 | ` 103 | 104 | const Header2 = styled(Header1)` 105 | margin-left: 9rem; 106 | font-size: 35px; 107 | line-height: 20px; 108 | color: #9858e9; 109 | @media only screen and (min-width: 100px) and (max-width: 320px) { 110 | font-size: 15px; 111 | line-height: 15px; 112 | margin-left: 4rem; 113 | } 114 | @media only screen and (min-width: 321px) and (max-width: 600px) { 115 | font-size: 17px; 116 | line-height: 15px; 117 | margin-left: 2rem; 118 | } 119 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 120 | font-size: 22px; 121 | line-height: 20px; 122 | margin-left: 5rem; 123 | } 124 | ` 125 | 126 | const Header3 = styled(Header2)` 127 | margin-left: 17rem; 128 | font-size: 32px; 129 | line-height: 70px; 130 | @media only screen and (min-width: 100px) and (max-width: 320px) { 131 | font-size: 14px; 132 | line-height: 25px; 133 | margin-left: 7rem; 134 | } 135 | @media only screen and (min-width: 321px) and (max-width: 600px) { 136 | font-size: 17px; 137 | line-height: 30px; 138 | margin-left: 5rem; 139 | } 140 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 141 | font-size: 22px; 142 | line-height: 30px; 143 | margin-left: 7rem; 144 | } 145 | ` 146 | 147 | export default Intro 148 | -------------------------------------------------------------------------------- /src/assets/svg/node.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 10 | 14 | 18 | 22 | 26 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /src/components/common/footer/footer.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import Footer from 'rc-footer' 3 | import 'rc-footer/assets/index.css' 4 | import logo from 'assets/images/profile.png' 5 | import fb from 'assets/svg/facebook.svg' 6 | import ig from 'assets/svg/instagram.svg' 7 | import wa from 'assets/svg/whatsapp.svg' 8 | import twt from 'assets/svg/twitter.svg' 9 | import li from 'assets/svg/linkedin.svg' 10 | import gh from 'assets/svg/github.svg' 11 | import mrt from 'assets/svg/mrtodo.svg' 12 | import mrl from 'assets/svg/mrlgd.svg' 13 | import wp from 'assets/svg/wp.svg' 14 | 15 | const fror = `Made with ❤️ by Mr Wii` 16 | 17 | const Ftr = () => { 18 | return ( 19 |
    20 |
    35 | ), 36 | title: 'Mr Wii', 37 | items: [ 38 | { 39 | title: 'Home', 40 | url: 'https://mr-wii.com/', 41 | openExternal: false, 42 | LinkComponent: 'a' 43 | }, 44 | { 45 | title: 'About Me', 46 | url: 'https://mr-wii.com/about', 47 | openExternal: false 48 | }, 49 | { 50 | title: 'Contact Me', 51 | url: 'https://mr-wii.com/contact' 52 | } 53 | ] 54 | }, 55 | { 56 | title: 'My Social Media', 57 | items: [ 58 | { 59 | icon: fb, 60 | title: 'Facebook', 61 | url: 'https://www.facebook.com/Waeruu', 62 | openExternal: true 63 | }, 64 | { 65 | icon: linkedIn, 66 | title: 'LinkedIn', 67 | url: 'https://www.linkedin.com/in/ouailbni/', 68 | openExternal: true 69 | }, 70 | 71 | { 72 | icon: Twitter, 73 | title: 'Twitter', 74 | url: 'https://twitter.com/BniWael', 75 | openExternal: true 76 | }, 77 | { 78 | icon: Instagram, 79 | title: 'Instagram', 80 | url: 'https://www.instagram.com/wael_bni/', 81 | openExternal: true, 82 | description: 'Personal' 83 | }, 84 | { 85 | icon: Instagram, 86 | title: 'Instagram', 87 | url: 'https://www.instagram.com/wii.mr/', 88 | openExternal: true, 89 | description: 'Mr Wii' 90 | }, 91 | { 92 | icon: Whatsapp, 93 | title: 'WhatsApp', 94 | description: '+212 6 39 03 23 34' 95 | } 96 | ] 97 | }, 98 | { 99 | title: 'More from me', 100 | items: [ 101 | { 102 | icon: MrTodo, 103 | title: 'Mr Todo', 104 | url: 'https://thirsty-dubinsky-de0f0a.netlify.com/', 105 | openExternal: true 106 | }, 107 | { 108 | icon: GitHub, 109 | title: 'Github', 110 | url: 'https://github.com/Mr-Wii', 111 | openExternal: true 112 | }, 113 | { 114 | icon: MrLegend, 115 | title: 'WP Resume', 116 | url: 'https://ouailbni.000webhostapp.com/', 117 | openExternal: true 118 | }, 119 | { 120 | icon: MrLegend, 121 | title: 'Mr Legend', 122 | description: 'Unreleased, W.I.P' 123 | } 124 | ] 125 | } 126 | ]} 127 | bottom={fror} 128 | /> 129 |
    130 | ) 131 | } 132 | 133 | export default Ftr 134 | -------------------------------------------------------------------------------- /src/components/common/Layout/fonts.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Geo'; 3 | font-style: normal; 4 | font-weight: 400; 5 | src: url('./fonts/geo-v11-latin-regular.eot'); 6 | src: local('Geo'), local('Geo-Regular'), 7 | url('./fonts/geo-v11-latin-regular.eot?#iefix') format('embedded-opentype'), 8 | url('./fonts/geo-v11-latin-regular.woff2') format('woff2'), 9 | url('./fonts/geo-v11-latin-regular.woff') format('woff'), 10 | url('./fonts/geo-v11-latin-regular.ttf') format('truetype'), 11 | url('./fonts/geo-v11-latin-regular.svg#Geo') format('svg'); 12 | font-display: swap; 13 | } 14 | 15 | @font-face { 16 | font-family: 'Montserrat'; 17 | font-style: normal; 18 | font-weight: 400; 19 | src: url('./fonts/montserrat-v14-latin-regular.eot'); 20 | src: local('Montserrat Regular'), local('Montserrat-Regular'), 21 | url('./fonts/montserrat-v14-latin-regular.eot?#iefix') 22 | format('embedded-opentype'), 23 | url('./fonts/montserrat-v14-latin-regular.woff2') format('woff2'), 24 | url('./fonts/montserrat-v14-latin-regular.woff') format('woff'), 25 | url('./fonts/montserrat-v14-latin-regular.ttf') format('truetype'), 26 | url('./fonts/montserrat-v14-latin-regular.svg#Montserrat') format('svg'); 27 | font-display: swap; 28 | } 29 | 30 | @font-face { 31 | font-family: 'Merriweather'; 32 | font-style: normal; 33 | font-weight: 400; 34 | src: url('./fonts/merriweather-v21-latin-regular.eot'); 35 | src: local('Merriweather Regular'), local('Merriweather-Regular'), 36 | url('./fonts/merriweather-v21-latin-regular.eot?#iefix') 37 | format('embedded-opentype'), 38 | url('./fonts/merriweather-v21-latin-regular.woff2') format('woff2'), 39 | url('./fonts/merriweather-v21-latin-regular.woff') format('woff'), 40 | url('./fonts/merriweather-v21-latin-regular.ttf') format('truetype'), 41 | url('./fonts/merriweather-v21-latin-regular.svg#Merriweather') format('svg'); 42 | font-display: swap; 43 | } 44 | 45 | @font-face { 46 | font-family: 'Poppins'; 47 | font-style: normal; 48 | font-weight: 400; 49 | src: url('./fonts/poppins-v9-latin-regular.eot'); 50 | src: local('Poppins Regular'), local('Poppins-Regular'), 51 | url('./fonts/poppins-v9-latin-regular.eot?#iefix') 52 | format('embedded-opentype'), 53 | url('./fonts/poppins-v9-latin-regular.woff2') format('woff2'), 54 | url('./fonts/poppins-v9-latin-regular.woff') format('woff'), 55 | url('./fonts/poppins-v9-latin-regular.ttf') format('truetype'), 56 | url('./fonts/poppins-v9-latin-regular.svg#Poppins') format('svg'); 57 | font-display: swap; 58 | } 59 | 60 | @font-face { 61 | font-family: 'Roboto'; 62 | font-style: normal; 63 | font-weight: 300; 64 | src: url('./fonts/roboto-v20-latin-300.eot'); 65 | src: local('Roboto Light'), local('Roboto-Light'), 66 | url('./fonts/roboto-v20-latin-300.eot?#iefix') format('embedded-opentype'), 67 | url('./fonts/roboto-v20-latin-300.woff2') format('woff2'), 68 | url('./fonts/roboto-v20-latin-300.woff') format('woff'), 69 | url('./fonts/roboto-v20-latin-300.ttf') format('truetype'), 70 | url('./fonts/roboto-v20-latin-300.svg#Roboto') format('svg'); 71 | font-display: swap; 72 | } 73 | @font-face { 74 | font-family: 'Roboto'; 75 | font-style: normal; 76 | font-weight: 400; 77 | src: url('./fonts/roboto-v20-latin-regular.eot'); 78 | src: local('Roboto'), local('Roboto-Regular'), 79 | url('./fonts/roboto-v20-latin-regular.eot?#iefix') 80 | format('embedded-opentype'), 81 | url('./fonts/roboto-v20-latin-regular.woff2') format('woff2'), 82 | url('./fonts/roboto-v20-latin-regular.woff') format('woff'), 83 | url('./fonts/roboto-v20-latin-regular.ttf') format('truetype'), 84 | url('./fonts/roboto-v20-latin-regular.svg#Roboto') format('svg'); 85 | font-display: swap; 86 | } 87 | @font-face { 88 | font-family: 'Roboto'; 89 | font-style: normal; 90 | font-weight: 500; 91 | src: url('./fonts/roboto-v20-latin-500.eot'); 92 | src: local('Roboto Medium'), local('Roboto-Medium'), 93 | url('./fonts/roboto-v20-latin-500.eot?#iefix') format('embedded-opentype'), 94 | url('./fonts/roboto-v20-latin-500.woff2') format('woff2'), 95 | url('./fonts/roboto-v20-latin-500.woff') format('woff'), 96 | url('./fonts/roboto-v20-latin-500.ttf') format('truetype'), 97 | url('./fonts/roboto-v20-latin-500.svg#Roboto') format('svg'); 98 | font-display: swap; 99 | } 100 | @font-face { 101 | font-family: 'Roboto'; 102 | font-style: normal; 103 | font-weight: 700; 104 | src: url('./fonts/roboto-v20-latin-700.eot'); 105 | src: local('Roboto Bold'), local('Roboto-Bold'), 106 | url('./fonts/roboto-v20-latin-700.eot?#iefix') format('embedded-opentype'), 107 | url('./fonts/roboto-v20-latin-700.woff2') format('woff2'), 108 | url('./fonts/roboto-v20-latin-700.woff') format('woff'), 109 | url('./fonts/roboto-v20-latin-700.ttf') format('truetype'), 110 | url('./fonts/roboto-v20-latin-700.svg#Roboto') format('svg'); 111 | font-display: swap; 112 | } 113 | -------------------------------------------------------------------------------- /src/assets/svg/mrlgd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/svg/mysql.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 10 | 14 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /src/assets/svg/jquery.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 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 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/styles/style.js: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components' 2 | 3 | // Buttons 4 | 5 | export const Button = styled.button` 6 | padding: 0.6rem; 7 | font-size: 18px; 8 | font-weight: 900; 9 | color: #fff; 10 | background-color: #c906fa; 11 | border: 2px solid #c906fa; 12 | cursor: pointer; 13 | width: 35%; 14 | transition: 0.25s ease; 15 | border-radius: 5%; 16 | margin-bottom: 2rem; 17 | z-index: 1; 18 | position: relative; 19 | &:hover { 20 | box-shadow: 0 6px 18px 0 rgba(0, 0, 0, 0.1); 21 | color: #c906fa; 22 | border-color: transparent; 23 | background-color: transparent; 24 | } 25 | @media only screen and (min-width: 100px) and (max-width: 320px) { 26 | width: 60%; 27 | font-size: 12px; 28 | } 29 | @media only screen and (min-width: 321px) and (max-width: 600px) { 30 | width: 60%; 31 | font-size: 14px; 32 | } 33 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 34 | width: 45%; 35 | font-size: 16px; 36 | } 37 | ` 38 | 39 | // Images 40 | 41 | export const BgImg = styled.img` 42 | position: absolute; 43 | left: 0vw; 44 | top: 8vh; 45 | width: 17%; 46 | height: auto; 47 | z-index: 0; 48 | @media only screen and (min-width: 100px) and (max-width: 320px) { 49 | top: 12vh; 50 | width: 50%; 51 | } 52 | @media only screen and (max-width: 600px) and (min-width: 321px) { 53 | top: 10vh; 54 | width: 50%; 55 | } 56 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 57 | top: 10vh; 58 | width: 25%; 59 | } 60 | ` 61 | export const BgImg2 = styled.img` 62 | width: 60%; 63 | margin-left: 10%; 64 | margin-right: auto; 65 | @media (max-width: 600px) { 66 | width: 60%; 67 | height: auto; 68 | margin-left: 20%; 69 | margin-top: 3rem; 70 | } 71 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 72 | height: auto; 73 | margin-left: 20%; 74 | } 75 | ` 76 | export const BgImg3 = styled(BgImg2)` 77 | margin-left: 19%; 78 | 79 | @media (max-width: 600px) { 80 | display: none; 81 | } 82 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 83 | width: 80%; 84 | margin-left: 12%; 85 | } 86 | ` 87 | 88 | // Headers 89 | 90 | export const Header1 = styled.h1` 91 | color: #5e3da5; 92 | font-family: Poppins; 93 | font-style: normal; 94 | font-weight: normal; 95 | font-size: 86px; 96 | position: relative; 97 | z-index: 1; 98 | @media only screen and (min-width: 100px) and (max-width: 320px) { 99 | font-size: 36px; 100 | } 101 | @media only screen and (min-width: 321px) and (max-width: 600px) { 102 | font-size: 39px; 103 | } 104 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 105 | font-size: 55px; 106 | } 107 | ` 108 | 109 | export const Header2 = styled.h1` 110 | font-family: Montserrat, sans-serif; 111 | font-size: 40px; 112 | text-transform: uppercase; 113 | text-align: left; 114 | color: rgb(103, 74, 170); 115 | margin-left: calc(80px + ((-80) - 80) * ((100vw - 300px) / (1600 - 300))); 116 | margin-bottom: 7vh; 117 | border: none; 118 | border-bottom: 2px solid; 119 | border-radius: 130px 50px/4px 2px; 120 | padding: 10px; 121 | @media only screen and (min-width: 100px) and (max-width: 320px) { 122 | font-size: 25px; 123 | text-transform: uppercase; 124 | text-align: center; 125 | color: rgb(103, 74, 170); 126 | margin-left: 0; 127 | margin-bottom: 7vh; 128 | } 129 | @media only screen and (min-width: 321px) and (max-width: 600px) { 130 | font-size: 30px 131 | text-transform: uppercase; 132 | text-align: center; 133 | color: rgb(103, 74, 170); 134 | margin-left: 0; 135 | margin-bottom: 7vh; 136 | } 137 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 138 | font-size: 40px 139 | line-height: calc(1.3em + (1.5 - 1.2) * ((100vw - 300px) / (1600 - 300))); 140 | text-transform: uppercase; 141 | text-align: center; 142 | color: rgb(103, 74, 170); 143 | margin-left: 0; 144 | margin-bottom: 7vh; 145 | } 146 | ` 147 | 148 | export const Title = styled.h1` 149 | font-size: 40px; 150 | font-family: Montserrat, sans-serif; 151 | text-transform: uppercase; 152 | text-align: center; 153 | margin-top: 11vh; 154 | color: #5e3da5; 155 | border: none; 156 | border-bottom: 2px solid; 157 | border-radius: 130px 50px/4px 2px; 158 | padding: 10px; 159 | @media only screen and (min-width: 100px) and (max-width: 320px) { 160 | font-size: 25px; 161 | margin-top: 15vh; 162 | } 163 | @media only screen and (min-width: 321px) and (max-width: 600px) { 164 | font-size: 30px; 165 | } 166 | ` 167 | 168 | // Containers 169 | 170 | export const divContainer = styled.div` 171 | margin-left: 5vw; 172 | margin-top: 55vh; 173 | flex-grow: 1; 174 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 175 | margin-left: 5vw; 176 | margin-top: 20vh; 177 | } 178 | ` 179 | 180 | // Form 181 | 182 | export const Form = styled.form` 183 | max-width: 600px; 184 | text-align: center; 185 | margin: 30px auto; 186 | 187 | input, 188 | textarea { 189 | border: 0; 190 | padding: 1.5em; 191 | display: block; 192 | width: 100%; 193 | margin-bottom: 1em; 194 | font-family: 'Merriweather', sans-serif; 195 | resize: none; 196 | background-color: rgb(255, 255, 255); 197 | color: #000000; 198 | outline: none; 199 | border: none; 200 | border-radius: 20px; 201 | box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 202 | -moz-box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 203 | -webkit-box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 204 | -o-box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 205 | -ms-box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 206 | } 207 | 208 | input[type='text'], 209 | input[type='email'] { 210 | @media only screen and (min-width: 100px) and (max-width: 320px) { 211 | height: 5px; 212 | } 213 | @media only screen and (min-width: 321px) and (max-width: 600px) { 214 | height: 50px; 215 | } 216 | } 217 | 218 | textarea { 219 | height: 126px; 220 | @media only screen and (min-width: 100px) and (max-width: 320px) { 221 | height: 80px; 222 | } 223 | @media only screen and (min-width: 321px) and (max-width: 600px) { 224 | height: 110px; 225 | } 226 | } 227 | 228 | input:focus, 229 | textarea:focus { 230 | box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.15); 231 | -moz-box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.15); 232 | -webkit-box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.15); 233 | -o-box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.15); 234 | -ms-box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.15); 235 | -webkit-transition: all 0.4s; 236 | -o-transition: all 0.4s; 237 | -moz-transition: all 0.4s; 238 | transition: all 0.4s; 239 | } 240 | 241 | input[type='submit'] { 242 | color: white; 243 | margin-top: 5vh; 244 | padding: 1em; 245 | background-color: #4eb7d1; 246 | border-radius: 21px; 247 | cursor: pointer; 248 | width: 30%; 249 | margin-right: auto; 250 | margin-left: auto; 251 | -webkit-transition: all 0.4s; 252 | -o-transition: all 0.4s; 253 | -moz-transition: all 0.4s; 254 | transition: all 0.4s; 255 | box-shadow: 0 10px 30px 0px #7dd2eccc; 256 | -moz-box-shadow: 0 10px 30px 0px #7dd2eccc; 257 | -webkit-box-shadow: 0 10px 30px 0px #7dd2eccc; 258 | -o-box-shadow: 0 10px 30px 0px #7dd2eccc; 259 | -ms-box-shadow: 0 10px 30px 0px #7dd2eccc; 260 | } 261 | 262 | input[type='submit']:hover { 263 | background-color: #2f94f1; 264 | box-shadow: 0 10px 30px 0px #bebebe; 265 | -moz-box-shadow: 0 10px 30px 0px #bebebe; 266 | -webkit-box-shadow: 0 10px 30px 0px #bebebe; 267 | -o-box-shadow: 0 10px 30px 0px #bebebe; 268 | -ms-box-shadow: 0 10px 30px 0px #bebebe; 269 | } 270 | ` 271 | -------------------------------------------------------------------------------- /src/assets/svg/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/svg/instagram.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/home/projects.jsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-useless-computed-key */ 2 | import React from 'react' 3 | import Card from '@material-ui/core/Card' 4 | import CardActions from '@material-ui/core/CardActions' 5 | import CardContent from '@material-ui/core/CardContent' 6 | import CardMedia from '@material-ui/core/CardMedia' 7 | import Button from '@material-ui/core/Button' 8 | import Typography from '@material-ui/core/Typography' 9 | import Grid from '@material-ui/core/Grid' 10 | import andzoa from 'assets/images/andzoa.webp' 11 | import mrTodo from 'assets/images/mrTodo.webp' 12 | import mrLegend from 'assets/images/mrLegend.webp' 13 | import { makeStyles } from '@material-ui/core/styles' 14 | import Container from '@material-ui/core/Container' 15 | import img1 from 'assets/images/shape3.webp' 16 | import wiiro from 'assets/images/mrWii.webp' 17 | import { BgImg3, Header2 } from 'styles/style' 18 | import styled from 'styled-components' 19 | 20 | const useStyles = makeStyles({ 21 | card: { 22 | maxWidth: 300, 23 | height: '410px', 24 | marginRight: 'auto', 25 | marginLeft: 'auto', 26 | borderRadius: '9px', 27 | boxShadow: '0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23)', 28 | '&:hover': { 29 | backgroundColor: 'transparent', 30 | color: '#9858e9', 31 | boxShadow: '0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(231,176,255,1)' 32 | }, 33 | ['@media (max-width:600px)']: { 34 | height: '320px', 35 | width: '250px' 36 | }, 37 | ['@media only screen and (min-width: 601px) and (max-width: 1024px)']: { 38 | height: '375px' 39 | }, 40 | '& h2': { 41 | textAlign: 'center', 42 | fontSize: '25px', 43 | fontWeight: 'bold' 44 | }, 45 | '& p': { 46 | fontSize: 'calc(14px + (17 - 14) * ((100vw - 300px) / (1600 - 300)))', 47 | textAlign: 'center' 48 | }, 49 | '& p:hover': { 50 | color: 'black' 51 | } 52 | }, 53 | button: { 54 | fontSize: '16px', 55 | marginLeft: 'auto', 56 | marginRight: 'auto', 57 | verticalAlign: 'middle', 58 | '& a': { 59 | textDecoration: 'none', 60 | color: '#267ee2' 61 | }, 62 | ['@media only screen and (min-width: 601px) and (max-width: 1024px)']: { 63 | fontSize: '12px' 64 | } 65 | }, 66 | root: { 67 | flexGrow: 1 68 | } 69 | }) 70 | 71 | const Projects = () => { 72 | const classes = useStyles() 73 | return ( 74 | 81 | My Projects 82 |
    89 | 90 |
    91 | 92 | 93 | 94 | 106 | 107 | 112 | Personal Website
    113 | (Current) 114 |
    115 |
    116 | 117 | 118 | 131 | 132 |
    133 |
    134 | 135 | 136 | 148 | 149 | 150 | Mr Todo 151 | 152 | 157 | Mr Todo is a light TODO app created using reactJS, has 158 | plenty of features that will make your Todos a piece of 159 | cake. 160 | 161 | 162 | 163 | 176 | 189 | 190 | 191 | 192 | 193 | 194 | 206 | 207 | 208 | Andzoa 209 | 210 | 215 | A school project i did when i was interning at a company 216 | called Andzoa, stack used: Html / Css / JS / PHP / MySql. 217 | 218 | 219 | 220 | 221 | 234 | 235 | 236 | 237 | 238 | 239 | 251 | 252 | 253 | Mr Legend 254 | 255 | 260 | A web app i'm making (W.I.P) to rank Moroccan player base 261 | for a certain game (League of Legends). 262 | 263 | 264 | 265 | 278 | 279 | 280 | 281 |
    282 |
    283 |
    284 |
    285 | ) 286 | } 287 | 288 | const Div = styled.div` 289 | position: absolute; 290 | margin: 0; 291 | left: 0; 292 | right: 0; 293 | top: 15%; 294 | width: 100%; 295 | @media only screen and (min-width: 100px) and (max-width: 320px) { 296 | position: static !important; 297 | } 298 | @media only screen and (min-width: 321px) and (max-width: 600px) { 299 | position: static !important; 300 | } 301 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 302 | } 303 | ` 304 | 305 | export default Projects 306 | -------------------------------------------------------------------------------- /src/components/about/about.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import FacebookIcon from '@material-ui/icons/Facebook' 3 | import InstagramIcon from '@material-ui/icons/Instagram' 4 | import TwitterIcon from '@material-ui/icons/Twitter' 5 | import GitHubIcon from '@material-ui/icons/GitHub' 6 | import YouTubeIcon from '@material-ui/icons/YouTube' 7 | import LinkedInIcon from '@material-ui/icons/LinkedIn' 8 | import EmailIcon from '@material-ui/icons/Email' 9 | import PhoneIcon from '@material-ui/icons/Phone' 10 | import PersonPinCircleIcon from '@material-ui/icons/PersonPinCircle' 11 | import { InlineIcon } from '@iconify/react' 12 | import discordIcon from '@iconify/icons-mdi/discord' 13 | import { makeStyles } from '@material-ui/core/styles' 14 | import Grid from '@material-ui/core/Grid' 15 | import Container from '@material-ui/core/Container' 16 | import portfol from 'assets/images/portfolio.webp' 17 | import styled from 'styled-components' 18 | import { Header2 } from 'styles/style' 19 | 20 | const useStyles = makeStyles(theme => ({ 21 | root: { 22 | flexGrow: 1, 23 | marginTop: '10vh' 24 | }, 25 | iconSiz: { 26 | fontSize: 25, 27 | verticalAlign: 'middle', 28 | marginRight: '6px' 29 | }, 30 | iconSiz1: { 31 | fontSize: 40, 32 | verticalAlign: 'middle', 33 | marginRight: '6px' 34 | } 35 | })) 36 | 37 | const About = () => { 38 | const classes = useStyles() 39 | 40 | return ( 41 | 42 |
    43 | 44 | 45 |
    46 |
    About Me
    47 | Hello, my Name is Ouail Bni 48 |
    49 | I'm 23 years old and a Computer Science Graduate, 50 | 51 | I got my Bachelors Degree in 2018 and decided to learn web 52 | developement and get better at it since it picked my interest 53 | and i enjoy it, currently getting familiar with new practices in 54 | the field and stay updated with all the new things at the same 55 | time. 56 | 57 |
    58 | 59 | I'm a technologies enthusiast and a self-taught Front-End 60 | Developer, i do have some Back-End knowledge such as PHP and 61 | NodeJs. 62 | 63 |
    64 | 65 | I am interested in UI/UX design and also android developement as 66 | i did some contributions in the android developement section, 67 | specifically themeing and customizing android roms and builds 68 | check out my{' '} 69 | 79 | XDA profile 80 | {' '} 81 | and{' '} 82 | 92 | threads/work 93 | {' '} 94 | to know more. 95 | 96 |
    97 |
    98 | 99 | For any business related inquiries you can contact me using : 100 | 101 |
    102 |
      103 | 104 | 105 | Ouailbni@gmail.com 106 | 107 | 108 | 109 | +212 6 39 03 23 34 110 | 111 | 112 | 113 | Nr 02 Lot El Waha, 52000 | Errachidia, Morocco 114 | 115 |
    116 |
    117 |
    118 |
    119 |
    120 | 121 | PortfolioPic 126 | 127 | 128 |
    129 | Get in touch using the web : 130 |
    131 | 215 |
    216 |
    217 |
    218 |
    219 |
    220 | ) 221 | } 222 | 223 | const Parag = styled.p` 224 | font-size: 17px; 225 | text-align: justify; 226 | text-justify: inter-word; 227 | 228 | @media only screen and (min-width: 100px) and (max-width: 320px) { 229 | font-size: 13px; 230 | } 231 | @media only screen and (min-width: 321px) and (max-width: 600px) { 232 | font-size: 15px; 233 | } 234 | ` 235 | const List = styled.li` 236 | padding: 5px; 237 | margin: 10px; 238 | color: rgb(30, 51, 51); 239 | font-size: 18px; 240 | display: inline-block; 241 | & :hover, 242 | :hover, 243 | a :hover { 244 | color: rgb(31, 201, 201); 245 | } 246 | a { 247 | text-decoration: none; 248 | color: rgb(30, 51, 51); 249 | } 250 | 251 | @media only screen and (min-width: 100px) and (max-width: 320px) { 252 | margin-left: auto; 253 | margin-right: auto; 254 | font-size: 12px; 255 | } 256 | @media only screen and (min-width: 321px) and (max-width: 600px) { 257 | margin-left: auto; 258 | margin-right: auto; 259 | font-size: 13px; 260 | } 261 | ` 262 | const List1 = styled(List)` 263 | margin-right: 10px; 264 | margin-left: 12rem; 265 | padding: 20px; 266 | font-size: 27px; 267 | width: 20%; 268 | font-family: 'Montserrat', sans-serif; 269 | 270 | @media only screen and (min-width: 100px) and (max-width: 320px) { 271 | margin-left: 2.5rem; 272 | margin-right: auto; 273 | width: 38%; 274 | padding: 0; 275 | font-size: 12px; 276 | } 277 | @media only screen and (min-width: 321px) and (max-width: 600px) { 278 | margin-left: 3rem; 279 | margin-right: auto; 280 | font-size: 14px; 281 | width: 38%; 282 | padding: 2px; 283 | } 284 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 285 | margin-left: 7rem; 286 | margin-right: auto; 287 | width: 33%; 288 | padding: 5px; 289 | } 290 | ` 291 | 292 | const MiniTitle = styled.h2` 293 | font-size: 20px; 294 | @media only screen and (min-width: 100px) and (max-width: 320px) { 295 | font-size: 15px; 296 | } 297 | @media only screen and (min-width: 321px) and (max-width: 600px) { 298 | font-size: 16px; 299 | } 300 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 301 | } 302 | ` 303 | const MiniTitle1 = styled.h3` 304 | text-align: left; 305 | font-size: 18px; 306 | 307 | @media only screen and (min-width: 100px) and (max-width: 320px) { 308 | font-size: 14px; 309 | text-align: center; 310 | } 311 | @media only screen and (min-width: 321px) and (max-width: 600px) { 312 | font-size: 16px; 313 | text-align: center; 314 | } 315 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 316 | } 317 | ` 318 | const MiniTitle2 = styled(MiniTitle1)` 319 | font-size: 28px; 320 | color: #a084dd; 321 | border: none; 322 | border-bottom: 2px solid; 323 | border-radius: 130px 50px/4px 2px; 324 | padding: 10px; 325 | 326 | @media only screen and (min-width: 100px) and (max-width: 320px) { 327 | font-size: 20px; 328 | } 329 | @media only screen and (min-width: 321px) and (max-width: 600px) { 330 | font-size: 18px; 331 | } 332 | ` 333 | const Div = styled.div` 334 | margin-left: 4%; 335 | margin-right: 2%; 336 | font-family: 'Montserrat', sans-serif; 337 | 338 | @media only screen and (min-width: 100px) and (max-width: 320px) { 339 | margin-top: 2vh; 340 | margin-left: 0; 341 | } 342 | @media only screen and (min-width: 321px) and (max-width: 600px) { 343 | margin-top: 2vh; 344 | margin-left: 0; 345 | } 346 | ` 347 | const Header = styled(Header2)` 348 | margin-bottom: 2rem; 349 | @media only screen and (min-width: 100px) and (max-width: 320px) { 350 | text-align: center; 351 | font-size: 30px; 352 | margin-left: 0; 353 | margin-bottom: 1rem; 354 | } 355 | @media only screen and (min-width: 321px) and (max-width: 600px) { 356 | text-align: center; 357 | font-size: 30px; 358 | margin-left: 0; 359 | margin-bottom: 1rem; 360 | } 361 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 362 | text-align: left; 363 | margin-bottom: 2rem; 364 | } 365 | ` 366 | const Img = styled.img` 367 | width: 80%; 368 | height: auto; 369 | margin-top: calc(150px + (119 - 150) * ((100vw - 300px) / (1600 - 300))); 370 | margin-left: calc(30px + (100 - 30) * ((100vw - 300px) / (1600 - 300))); 371 | -webkit-box-shadow: 10px 14px 51px -13px rgba(0, 0, 0, 0.58); 372 | -moz-box-shadow: 10px 14px 51px -13px rgba(0, 0, 0, 0.58); 373 | box-shadow: 10px 14px 51px -13px rgba(0, 0, 0, 0.58); 374 | :hover { 375 | -webkit-box-shadow: 10px 14px 51px -13px rgba(195, 97, 252, 0.58); 376 | -moz-box-shadow: 10px 14px 51px -13px rgba(195, 97, 252, 0.58); 377 | box-shadow: 10px 14px 51px -13px rgba(195, 97, 252, 0.58); 378 | } 379 | 380 | @media only screen and (min-width: 100px) and (max-width: 320px) { 381 | width: 92%; 382 | display: block; 383 | border-radius: 0%; 384 | margin-top: 0rem; 385 | margin-right: auto; 386 | margin-left: auto; 387 | margin-bottom: 2rem; 388 | -webkit-box-shadow: none; 389 | -moz-box-shadow: none; 390 | box-shadow: none; 391 | :hover { 392 | -webkit-box-shadow: none; 393 | -moz-box-shadow: none; 394 | box-shadow: none; 395 | } 396 | } 397 | @media only screen and (min-width: 321px) and (max-width: 600px) { 398 | width: 92%; 399 | display: block; 400 | border-radius: 0%; 401 | margin-top: 0rem; 402 | margin-right: auto; 403 | margin-left: auto; 404 | margin-bottom: 2rem; 405 | -webkit-box-shadow: none; 406 | -moz-box-shadow: none; 407 | box-shadow: none; 408 | :hover { 409 | -webkit-box-shadow: none; 410 | -moz-box-shadow: none; 411 | box-shadow: none; 412 | } 413 | } 414 | @media only screen and (min-width: 601px) and (max-width: 1024px) { 415 | } 416 | ` 417 | 418 | export default About 419 | -------------------------------------------------------------------------------- /src/assets/svg/mongodb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60 | 66 | 72 | 78 | 84 | 90 | 96 | 102 | 108 | 114 | 120 | 126 | 132 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | -------------------------------------------------------------------------------- /src/components/common/Layout/fonts/geo-v11-latin-regular.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 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 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | --------------------------------------------------------------------------------