├── .firebase
└── hosting.YnVpbGQ.cache
├── .firebaserc
├── .gitignore
├── README.md
├── firebase.json
├── package-lock.json
├── package.json
├── public
├── favicon.ico
├── icons
│ ├── android-icon-144x144.png
│ ├── android-icon-192x192.png
│ ├── android-icon-36x36.png
│ ├── android-icon-48x48.png
│ ├── android-icon-512x512.png
│ ├── android-icon-72x72.png
│ ├── android-icon-96x96.png
│ ├── apple-icon-114x114.png
│ ├── apple-icon-120x120.png
│ ├── apple-icon-144x144.png
│ ├── apple-icon-152x152.png
│ ├── apple-icon-180x180.png
│ ├── apple-icon-57x57.png
│ ├── apple-icon-60x60.png
│ ├── apple-icon-72x72.png
│ ├── apple-icon-76x76.png
│ ├── apple-icon-precomposed.png
│ ├── apple-icon.png
│ ├── browserconfig.xml
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── favicon-96x96.png
│ ├── favicon.ico
│ ├── manifest.json
│ ├── ms-icon-144x144.png
│ ├── ms-icon-150x150.png
│ ├── ms-icon-310x310.png
│ └── ms-icon-70x70.png
├── index.html
├── logo192.png
├── logo512.png
├── manifest.json
├── ogImage.png
└── robots.txt
├── src
├── App.js
├── assets
│ └── images
│ │ ├── hourglass.gif
│ │ ├── logo.png
│ │ ├── logoName.png
│ │ ├── me.jpg
│ │ ├── npm.png
│ │ ├── optimized
│ │ ├── celebration.gif
│ │ ├── clouds.jpg
│ │ ├── growEmoji.png
│ │ ├── heroCD2.png
│ │ ├── hourglass.gif
│ │ ├── logo.png
│ │ └── plastic.jpg
│ │ └── skate.jpg
├── components
│ ├── Center.js
│ ├── Code.js
│ └── DatePicker.js
├── index.js
├── serviceWorker.js
└── views
│ ├── Finally.js
│ ├── Hero.js
│ └── Info.js
└── yarn.lock
/.firebase/hosting.YnVpbGQ.cache:
--------------------------------------------------------------------------------
1 | asset-manifest.json,1595169237610,dc90eef7a081ce789a2f33c63b3657b106f5057b9696e57445688d622b43dcad
2 | favicon.ico,1595169219284,1e791ffa7e493e946917118b2ea95fea621978096d489eaa4a85b76c2d45445f
3 | manifest.json,1595169219300,54c66e0260cccc8104c6c585799e059dbd73a8e704de89a798d55f187b60b503
4 | index.html,1595169237599,ab44b223a7b30fcb41d73a30111eececa65fb41b9c17d5281775d297b2b62c6e
5 | precache-manifest.48d788d699f84bce0b6cf8b80fa98bea.js,1595169237608,66c788a68d341595aafcd3856b4c57844f2f70d97ae9cb1ba71f0ad02f109546
6 | robots.txt,1595169219304,391d14b3c2f8c9143a27a28c7399585142228d4d1bdbe2c87ac946de411fa9a2
7 | logo192.png,1595169219299,caff018b7f1e8fd481eb1c50d75b0ef236bcd5078b1d15c8bb348453fee30293
8 | service-worker.js,1595169237610,c78f944837eb83ab4e72867588fbafc6b80fe01e837759ecc5c1de6c8dbdc6ce
9 | logo512.png,1595169219300,191fc21360b4ccfb1cda11a1efb97f489ed22672ca83f4064316802bbfdd750e
10 | icons/android-icon-144x144.png,1595169219285,fc7010723fcf2c6ad373ec422150630fcee58013587843838a49e08351985c38
11 | icons/android-icon-36x36.png,1595169219286,1be89aa499a26ce9de698c40cea03b224bc226787c4ad7297646ddf026549638
12 | icons/android-icon-192x192.png,1595169219285,d746decd2a2e9acfb074a69c74fc3f0572fea224edd590ba8f1c3c4cb78c0cdd
13 | icons/android-icon-48x48.png,1595169219286,d26c26d57ececad0c7eaae8fdd196a6bd287713827d21f3dab549c4606a86dc0
14 | icons/android-icon-72x72.png,1595169219288,849532fcfed461749da8fc1b2ac38fba233a28852e3e95572b867de1311fcce6
15 | icons/android-icon-96x96.png,1595169219288,5916ce575dc8d5b62d46eff4ca33a03f5decb7cae730882dd7a082623dd88efb
16 | icons/apple-icon-114x114.png,1595169219289,4ff3002158e2c7aa65ceae438bb2028caf2d629b2e49af7c6dafbfac8813c713
17 | icons/apple-icon-120x120.png,1595169219289,43a1dfe7f3cdd7fedfb5cebbca8c558ccb4082a6f0e339e1ab94d314acf47f13
18 | icons/apple-icon-144x144.png,1595169219289,fc7010723fcf2c6ad373ec422150630fcee58013587843838a49e08351985c38
19 | icons/apple-icon-152x152.png,1595169219290,a32db2a3a3ff0372a9f89bcc8ee160617c093cc29981572556c038c19ccb8f1f
20 | icons/apple-icon-57x57.png,1595169219291,7fd337c981e00c3cda4b7a781031ac95a91cbf1a4919618fb46bd813be2e3d91
21 | icons/apple-icon-60x60.png,1595169219291,820c782b10c45956b2cd9c407c8e85e6fa258955e5e5215ac3540e7d6a2bf58c
22 | icons/apple-icon-180x180.png,1595169219290,4a38c8c77d3637b396db1d4aaec0b37bcfc4cd29db37789dea4c5edb0defb7cc
23 | icons/apple-icon-72x72.png,1595169219291,849532fcfed461749da8fc1b2ac38fba233a28852e3e95572b867de1311fcce6
24 | icons/browserconfig.xml,1595169219294,fae788f528ba8978ceb8d2d072992f9e7d7ca74aa2e021891e5322d822e2efe2
25 | icons/apple-icon-76x76.png,1595169219292,0371b6ce070e866b716d906efbee3dacb1fd400a6c058e0b357d40de3f55215b
26 | icons/favicon-16x16.png,1595169219294,0abb208397bbe87ecad43d288710a4e866c31b466eee907f1c7e3af96051ca9a
27 | icons/favicon-32x32.png,1595169219294,95d2a36dc1ff47a42b1be966de5c1f4fa92bc0a661445d7350d2df1a0fc67fda
28 | icons/apple-icon.png,1595169219293,1414b13d4ee2b2eb29fcad83b38bbc1b317462333c24cef7e7bf93aae6455068
29 | icons/manifest.json,1595169219296,97c392941aa3243bfab325077167766abe6c073e3ff5e61a4e1b884309e6599b
30 | icons/apple-icon-precomposed.png,1595169219293,1414b13d4ee2b2eb29fcad83b38bbc1b317462333c24cef7e7bf93aae6455068
31 | icons/favicon.ico,1595169219295,1e791ffa7e493e946917118b2ea95fea621978096d489eaa4a85b76c2d45445f
32 | icons/favicon-96x96.png,1595169219295,5916ce575dc8d5b62d46eff4ca33a03f5decb7cae730882dd7a082623dd88efb
33 | icons/ms-icon-70x70.png,1595169219298,b928d74ab9d41c6c59db7f8917b8a6f14ca33b6830b0ded285aef542441269ad
34 | static/js/2.88111567.chunk.js.LICENSE.txt,1595169237608,d6a45649b03d338aa90d9e0096ca4bfe05b00ad813e549a724d2c3cd8b5e7c24
35 | icons/ms-icon-144x144.png,1595169219296,fc7010723fcf2c6ad373ec422150630fcee58013587843838a49e08351985c38
36 | icons/ms-icon-150x150.png,1595169219297,9fe46c3e72cf384ba6c74869f41fd93d739a5b185ea5a9772f09d8984ae72658
37 | static/js/runtime-main.2d5989e5.js,1595169237609,5bc4cb3ccc0e0914677b1b71e5743dd8ddc54fa971b426b53fbc3b5d4bc97293
38 | static/js/main.03db0b29.chunk.js,1595169237608,50040a8ae954cc3fbc639920ecd966f33a8bf344bebbf9784592700035812d0b
39 | static/js/runtime-main.2d5989e5.js.map,1595169237609,8164160822f7499707dca795d37329c43522644095eeee3ba508d67963bd14bf
40 | static/js/main.03db0b29.chunk.js.map,1595169237609,7c384a051f323c5d04f909423f1f7346618996a3c581f8a8c63e5455941ee312
41 | static/media/ms_sans_serif.1d4d404a.woff2,1595169237599,2f5b018321e0f62185a19035a0b75dbc1f390a6577fb2fb56c86e5f22d8f8c96
42 | icons/ms-icon-310x310.png,1595169219297,a76c9dd94ac3a3435c3b5b0c5d900256d4ae4f3e8c6c7d46fb5e44f538f229cd
43 | static/media/hourglass.7a7a26ab.gif,1595169237608,d9a62917a7a2449db2f33808859c2979617e1839f067190b80d22b95424b3404
44 | icons/android-icon-512x512.png,1595169219287,7d2d795f0b4597b638b0e7bbc838a67b7bd6b194188f6f153cbe7c4d0094bfb4
45 | static/media/ms_sans_serif_bold.cb1c7473.woff2,1595169237609,6cf124a40701444d0af07bdef322b1078d93799b96f5e3aa77a523ccb441ea9f
46 | static/media/clouds.8606d290.jpg,1595169237609,6e16bf11936a837bd8730d177f42ad675662417afcc7e33cffce544bcd63aa6d
47 | static/media/plastic.f6fc492e.jpg,1595169237608,87be0fbba6be3889850c66aae840361cdb47b417afa9669df70f4f1d5175fbdf
48 | static/media/heroCD2.56972324.png,1595169237608,6e72bb89c1fe2729479fca2e2b0e0339ff99a2997fe12d868ec63bb8c954d71b
49 | ogImage.png,1595169219303,e27c49c076d3777293faa5d23b243a08fb5b8dde4729b5ff281ef504178792f6
50 | static/js/2.88111567.chunk.js,1595169237609,b35df0648b694c0c75dd8191816b80d5e618f3f44a02e3bb42f92bc43941f38b
51 | static/media/celebration.a9fe229f.gif,1595169237609,35f36d268b20a8785266fdfb03af9fc4c9eee72f00502e9721d4197fdaba012e
52 | static/js/2.88111567.chunk.js.map,1595169237610,ef6986baa6f70b942ec496ffb3280302db7b534ec1375f826f6730f98e6f700e
53 |
--------------------------------------------------------------------------------
/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "react95-fa1b7"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/.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 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
2 |
3 | ## Available Scripts
4 |
5 | In the project directory, you can run:
6 |
7 | ### `yarn start`
8 |
9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
11 |
12 | The page will reload if you make edits.
13 | You will also see any lint errors in the console.
14 |
15 | ### `yarn test`
16 |
17 | Launches the test runner in the interactive watch mode.
18 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
19 |
20 | ### `yarn build`
21 |
22 | Builds the app for production to the `build` folder.
23 | It correctly bundles React in production mode and optimizes the build for the best performance.
24 |
25 | The build is minified and the filenames include the hashes.
26 | Your app is ready to be deployed!
27 |
28 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
29 |
30 | ### `yarn eject`
31 |
32 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!**
33 |
34 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
35 |
36 | Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
37 |
38 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
39 |
40 | ## Learn More
41 |
42 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
43 |
44 | To learn React, check out the [React documentation](https://reactjs.org/).
45 |
46 | ### Code Splitting
47 |
48 | This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
49 |
50 | ### Analyzing the Bundle Size
51 |
52 | This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
53 |
54 | ### Making a Progressive Web App
55 |
56 | This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
57 |
58 | ### Advanced Configuration
59 |
60 | This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
61 |
62 | ### Deployment
63 |
64 | This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
65 |
66 | ### `yarn build` fails to minify
67 |
68 | This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
69 |
--------------------------------------------------------------------------------
/firebase.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosting": {
3 | "public": "build",
4 | "ignore": [
5 | "firebase.json",
6 | "**/.*",
7 | "**/node_modules/**"
8 | ],
9 | "rewrites": [
10 | {
11 | "source": "**",
12 | "destination": "/index.html"
13 | }
14 | ]
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "swag",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "@fullpage/react-fullpage": "^0.1.17",
7 | "@testing-library/jest-dom": "^4.2.4",
8 | "@testing-library/react": "^9.3.2",
9 | "@testing-library/user-event": "^7.1.2",
10 | "react": "^16.13.1",
11 | "react-dom": "^16.13.1",
12 | "react-rewards": "^1.1.1",
13 | "react-scripts": "3.4.1",
14 | "react95": "^3.0.0",
15 | "styled-components": "^5.1.1"
16 | },
17 | "scripts": {
18 | "start": "react-scripts start",
19 | "build": "react-scripts build",
20 | "test": "react-scripts test",
21 | "eject": "react-scripts eject",
22 | "deploy": "npm run build && firebase deploy"
23 | },
24 | "eslintConfig": {
25 | "extends": "react-app"
26 | },
27 | "browserslist": {
28 | "production": [
29 | ">0.2%",
30 | "not dead",
31 | "not op_mini all"
32 | ],
33 | "development": [
34 | "last 1 chrome version",
35 | "last 1 firefox version",
36 | "last 1 safari version"
37 | ]
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/favicon.ico
--------------------------------------------------------------------------------
/public/icons/android-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/android-icon-144x144.png
--------------------------------------------------------------------------------
/public/icons/android-icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/android-icon-192x192.png
--------------------------------------------------------------------------------
/public/icons/android-icon-36x36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/android-icon-36x36.png
--------------------------------------------------------------------------------
/public/icons/android-icon-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/android-icon-48x48.png
--------------------------------------------------------------------------------
/public/icons/android-icon-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/android-icon-512x512.png
--------------------------------------------------------------------------------
/public/icons/android-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/android-icon-72x72.png
--------------------------------------------------------------------------------
/public/icons/android-icon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/android-icon-96x96.png
--------------------------------------------------------------------------------
/public/icons/apple-icon-114x114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/apple-icon-114x114.png
--------------------------------------------------------------------------------
/public/icons/apple-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/apple-icon-120x120.png
--------------------------------------------------------------------------------
/public/icons/apple-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/apple-icon-144x144.png
--------------------------------------------------------------------------------
/public/icons/apple-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/apple-icon-152x152.png
--------------------------------------------------------------------------------
/public/icons/apple-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/apple-icon-180x180.png
--------------------------------------------------------------------------------
/public/icons/apple-icon-57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/apple-icon-57x57.png
--------------------------------------------------------------------------------
/public/icons/apple-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/apple-icon-60x60.png
--------------------------------------------------------------------------------
/public/icons/apple-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/apple-icon-72x72.png
--------------------------------------------------------------------------------
/public/icons/apple-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/apple-icon-76x76.png
--------------------------------------------------------------------------------
/public/icons/apple-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/apple-icon-precomposed.png
--------------------------------------------------------------------------------
/public/icons/apple-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/apple-icon.png
--------------------------------------------------------------------------------
/public/icons/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 | #ffffff
--------------------------------------------------------------------------------
/public/icons/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/favicon-16x16.png
--------------------------------------------------------------------------------
/public/icons/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/favicon-32x32.png
--------------------------------------------------------------------------------
/public/icons/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/favicon-96x96.png
--------------------------------------------------------------------------------
/public/icons/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/favicon.ico
--------------------------------------------------------------------------------
/public/icons/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "App",
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 | }
--------------------------------------------------------------------------------
/public/icons/ms-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/ms-icon-144x144.png
--------------------------------------------------------------------------------
/public/icons/ms-icon-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/ms-icon-150x150.png
--------------------------------------------------------------------------------
/public/icons/ms-icon-310x310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/ms-icon-310x310.png
--------------------------------------------------------------------------------
/public/icons/ms-icon-70x70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/icons/ms-icon-70x70.png
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
18 |
19 |
20 |
21 |
25 |
26 |
30 |
31 |
40 |
41 |
42 |
47 |
52 |
57 |
62 |
67 |
72 |
77 |
82 |
87 |
93 |
99 |
105 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
121 |
125 |
130 |
131 |
132 |
136 |
137 |
141 |
142 |
143 | Refreshed Windows95 UI components for modern web apps - React95
144 |
145 |
146 |
147 |
148 |
149 |
159 |
160 |
161 |
--------------------------------------------------------------------------------
/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/logo192.png
--------------------------------------------------------------------------------
/public/logo512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/logo512.png
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React95",
3 | "name": "React95",
4 |
5 | "icons": [
6 | {
7 | "src": "icons/android-icon-36x36.png",
8 | "sizes": "36x36",
9 | "type": "image/png",
10 | "density": "0.75"
11 | },
12 | {
13 | "src": "icons/android-icon-48x48.png",
14 | "sizes": "48x48",
15 | "type": "image/png",
16 | "density": "1.0"
17 | },
18 | {
19 | "src": "icons/android-icon-72x72.png",
20 | "sizes": "72x72",
21 | "type": "image/png",
22 | "density": "1.5"
23 | },
24 | {
25 | "src": "icons/android-icon-96x96.png",
26 | "sizes": "96x96",
27 | "type": "image/png",
28 | "density": "2.0"
29 | },
30 | {
31 | "src": "icons/android-icon-144x144.png",
32 | "sizes": "144x144",
33 | "type": "image/png",
34 | "density": "3.0"
35 | },
36 | {
37 | "src": "icons/android-icon-192x192.png",
38 | "sizes": "192x192",
39 | "type": "image/png",
40 | "density": "4.0"
41 | },
42 | {
43 | "src": "icons/android-icon-512x512.png",
44 | "sizes": "512x512",
45 | "type": "image/png",
46 | "density": "4.0"
47 | }
48 | ],
49 | "start_url": ".",
50 | "display": "standalone",
51 | "theme_color": "#008080",
52 | "background_color": "#ffffff"
53 | }
54 |
--------------------------------------------------------------------------------
/public/ogImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/public/ogImage.png
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/src/App.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from "react";
2 | import ReactFullpage from "@fullpage/react-fullpage";
3 |
4 | import styled, { ThemeProvider, createGlobalStyle } from "styled-components";
5 |
6 | import { styleReset } from "react95";
7 | import original from "react95/dist/themes/original";
8 | import ms_sans_serif from "react95/dist/fonts/ms_sans_serif.woff2";
9 | import ms_sans_serif_bold from "react95/dist/fonts/ms_sans_serif_bold.woff2";
10 |
11 | import Hero from "./views/Hero";
12 | import Finally from "./views/Finally";
13 | import Info from "./views/Info";
14 |
15 |
16 | const GlobalStyles = createGlobalStyle`
17 | @font-face {
18 | font-family: 'ms_sans_serif';
19 | src: url('${ms_sans_serif}') format('woff2');
20 | font-weight: 400;
21 | font-style: normal
22 | }
23 | @font-face {
24 | font-family: 'ms_sans_serif';
25 | src: url('${ms_sans_serif_bold}') format('woff2');
26 | font-weight: bold;
27 | font-style: normal
28 | }
29 | body, * {
30 | font-family: 'ms_sans_serif';
31 | }
32 | ${styleReset}
33 | `;
34 |
35 | const Main = styled.main`
36 | width: 100%;
37 | height: 100%;
38 | background: teal;
39 | `;
40 | const Section = styled.section`
41 | width: 100%;
42 | height: 100%;
43 | position: relative;
44 | text-align: center;
45 | `;
46 |
47 | class App extends Component {
48 | render() {
49 | return (
50 |
51 | <>
52 |
53 |
54 |
55 | {
60 | return (
61 |
62 |
65 |
66 | fullpageApi.moveSectionDown()} />
67 |
68 |
71 |
72 | );
73 | }}
74 | />
75 |
76 | >
77 |
78 | );
79 | }
80 | }
81 |
82 | export default App;
83 |
--------------------------------------------------------------------------------
/src/assets/images/hourglass.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/src/assets/images/hourglass.gif
--------------------------------------------------------------------------------
/src/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/src/assets/images/logo.png
--------------------------------------------------------------------------------
/src/assets/images/logoName.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/src/assets/images/logoName.png
--------------------------------------------------------------------------------
/src/assets/images/me.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/src/assets/images/me.jpg
--------------------------------------------------------------------------------
/src/assets/images/npm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/src/assets/images/npm.png
--------------------------------------------------------------------------------
/src/assets/images/optimized/celebration.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/src/assets/images/optimized/celebration.gif
--------------------------------------------------------------------------------
/src/assets/images/optimized/clouds.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/src/assets/images/optimized/clouds.jpg
--------------------------------------------------------------------------------
/src/assets/images/optimized/growEmoji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/src/assets/images/optimized/growEmoji.png
--------------------------------------------------------------------------------
/src/assets/images/optimized/heroCD2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/src/assets/images/optimized/heroCD2.png
--------------------------------------------------------------------------------
/src/assets/images/optimized/hourglass.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/src/assets/images/optimized/hourglass.gif
--------------------------------------------------------------------------------
/src/assets/images/optimized/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/src/assets/images/optimized/logo.png
--------------------------------------------------------------------------------
/src/assets/images/optimized/plastic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/src/assets/images/optimized/plastic.jpg
--------------------------------------------------------------------------------
/src/assets/images/skate.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react95-io/Website/d9c68a314ae684ea4f179245725542b0d2b4360e/src/assets/images/skate.jpg
--------------------------------------------------------------------------------
/src/components/Center.js:
--------------------------------------------------------------------------------
1 | import styled from "styled-components";
2 |
3 | export default styled.div`
4 | display: inline-block;
5 | position: absolute;
6 | top: 50%;
7 | left: 50%;
8 | transform: translate(-50%, -50%);
9 | `;
10 |
--------------------------------------------------------------------------------
/src/components/Code.js:
--------------------------------------------------------------------------------
1 | import styled from "styled-components";
2 |
3 | export default styled.p`
4 | display: inline-block;
5 | font-size: 1.4em;
6 | white-space: nowrap;
7 | letter-spacing: 0.125rem;
8 | `;
9 |
--------------------------------------------------------------------------------
/src/components/DatePicker.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from "react";
2 | import propTypes from "prop-types";
3 | import Reward from 'react-rewards';
4 |
5 | import styled, {ThemeProvider} from "styled-components";
6 |
7 | import {
8 | Window,
9 | WindowHeader,
10 | WindowContent,
11 | Select,
12 | NumberField,
13 | Cutout,
14 | Button,
15 | Toolbar,
16 | } from "react95";
17 | import original from "react95/dist/themes/original";
18 | import rose from "react95/dist/themes/rose";
19 | import azureOrange from "react95/dist/themes/azureOrange";
20 | import counterStrike from "react95/dist/themes/counterStrike";
21 | import rainyDay from "react95/dist/themes/rainyDay";
22 | import travel from "react95/dist/themes/travel";
23 | import marine from "react95/dist/themes/marine";
24 | import olive from "react95/dist/themes/olive";
25 | import theSixtiesUSA from "react95/dist/themes/theSixtiesUSA";
26 | import candy from "react95/dist/themes/candy";
27 | import tokyoDark from "react95/dist/themes/tokyoDark";
28 | import vaporTeal from "react95/dist/themes/vaporTeal";
29 | import matrix from "react95/dist/themes/matrix";
30 | import modernDark from "react95/dist/themes/modernDark";
31 | import millenium from "react95/dist/themes/millenium";
32 | import bee from "react95/dist/themes/bee";
33 | import ninjaTurtles from "react95/dist/themes/ninjaTurtles";
34 | import pamelaAnderson from "react95/dist/themes/pamelaAnderson";
35 | import tooSexy from "react95/dist/themes/tooSexy";
36 | import vermillion from "react95/dist/themes/vermillion";
37 | import brick from "react95/dist/themes/brick";
38 | import eggplant from "react95/dist/themes/eggplant";
39 | import lilac from "react95/dist/themes/lilac";
40 |
41 | const themes = [
42 | original,
43 | vaporTeal,
44 | rose,
45 | olive,
46 | azureOrange,
47 | lilac,
48 | tokyoDark,
49 | rainyDay,
50 | travel,
51 | tooSexy,
52 | counterStrike,
53 | candy,
54 | eggplant,
55 | bee,
56 | brick,
57 | marine,
58 | theSixtiesUSA,
59 | modernDark,
60 | vermillion,
61 | millenium,
62 | matrix,
63 | ninjaTurtles,
64 | pamelaAnderson
65 | ];
66 |
67 | const Calendar = styled(Cutout)`
68 | width: 234px;
69 | margin: 1rem 0;
70 | background: ${({ theme }) => theme.canvas};
71 | `;
72 |
73 | const WeekDays = styled.div`
74 | display: flex;
75 | background: ${({ theme }) => theme.materialDark};
76 | color: #dfe0e3;
77 | `;
78 |
79 | const Dates = styled.div`
80 | display: flex;
81 | flex-wrap: wrap;
82 | `;
83 |
84 | const DateItem = styled.div`
85 | text-align: center;
86 | height: 1.5em;
87 | line-height: 1.5em;
88 | width: 14.28%;
89 | `;
90 |
91 | const DateItemContent = styled.span`
92 | cursor: pointer;
93 |
94 | background: ${({ active, theme }) =>
95 | active ? theme.hoverBackground : "transparent"};
96 | color: ${({ active, theme }) =>
97 | active ? theme.canvasTextInvert : theme.canvasText};
98 |
99 | &:hover {
100 | border: 2px dashed
101 | ${({ theme, active }) => (active ? "none" : theme.materialDark)};
102 | }
103 | `;
104 |
105 | function daysInMonth(year, month) {
106 | return new Date(year, month + 1, 0).getDate();
107 | }
108 |
109 | function dayIndex(year, month, day) {
110 | return new Date(year, month, day).getDay();
111 | }
112 |
113 | class DatePicker extends Component {
114 | static propTypes = {
115 | className: propTypes.string,
116 | shadow: propTypes.bool,
117 | onAccept: propTypes.func,
118 | onCancel: propTypes.func,
119 | date: propTypes.instanceOf(Date),
120 | };
121 |
122 | static defaultProps = {
123 | shadow: true,
124 | className: "",
125 | onAccept: null,
126 | onCancel: null,
127 | date: null,
128 | };
129 |
130 | constructor(props) {
131 | super(props);
132 |
133 | const initialDate = this.convertDateToState(props.date || new Date());
134 | this.state = {...initialDate, themeIndex: 0};
135 | }
136 |
137 | convertDateToState = (date) => {
138 | const day = date.getDate();
139 | const month = date.getMonth();
140 | const year = date.getFullYear();
141 |
142 | return { day, month, year };
143 | };
144 |
145 | handleMonthSelect = (e) => this.setState({ month: e.target.value });
146 |
147 | handleYearSelect = (year) => this.setState({ year });
148 |
149 | handleDaySelect = (day) => this.setState({ day });
150 |
151 | handleAccept = () => {
152 | const { year, month, day } = this.state;
153 | const { onAccept } = this.props;
154 | const date = new Date(year, month, day);
155 |
156 | onAccept(date);
157 | };
158 |
159 | switchTheme = () => {
160 | this.reward.rewardMe();
161 | // console.log({themeIndex: (this.state.themeIndex+1)%(themes.length-1)});
162 | this.setState(prevState => ({themeIndex: (prevState.themeIndex+1)%(themes.length) }));
163 | }
164 | render() {
165 | let { day } = this.state;
166 | const { month, year } = this.state;
167 | const { shadow, className, onAccept, onCancel } = this.props;
168 |
169 | const months = [
170 | { value: 0, label: "January" },
171 | { value: 1, label: "February" },
172 | { value: 2, label: "March" },
173 | { value: 3, label: "April" },
174 | { value: 4, label: "May" },
175 | { value: 5, label: "June" },
176 | { value: 6, label: "July" },
177 | { value: 7, label: "August" },
178 | { value: 8, label: "September" },
179 | { value: 9, label: "October" },
180 | { value: 10, label: "November" },
181 | { value: 11, label: "December" },
182 | ];
183 |
184 | // eslint-disable-next-line
185 | const dayPickerItems = Array.apply(null, { length: 42 });
186 | const firstDayIndex = dayIndex(year, month, 1);
187 |
188 | const daysNumber = daysInMonth(year, month);
189 | day = day < daysNumber ? day : daysNumber;
190 | dayPickerItems.forEach((item, i) => {
191 | if (i >= firstDayIndex && i < daysNumber + firstDayIndex) {
192 | const dayNumber = i - firstDayIndex + 1;
193 |
194 | dayPickerItems[i] = (
195 | {
199 | this.handleDaySelect(dayNumber);
200 | }}
201 | >
202 |
203 | {dayNumber}
204 |
205 |
206 | );
207 | } else {
208 | dayPickerItems[i] = (
209 |
213 | );
214 | }
215 | });
216 |
217 | return (
218 |
219 |
220 |
221 |
222 |
223 | Date
224 |
225 |
226 |
227 |
228 |
235 |
241 |
242 |
243 |
244 | S
245 | M
246 | T
247 | W
248 | T
249 | F
250 | S
251 |
252 | {dayPickerItems}
253 |
254 |
255 |
261 |
262 |
263 | { this.reward = ref }}
265 | type='confetti'
266 | config={{
267 | springAnimation: false,
268 | zIndex: 999,
269 | startVelocity: 40
270 |
271 | }}
272 | >
273 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 | );
288 | }
289 | }
290 |
291 | export default DatePicker;
292 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactDOM from "react-dom";
3 | import App from "./App";
4 | import * as serviceWorker from "./serviceWorker";
5 |
6 | ReactDOM.render(, document.getElementById("root"));
7 |
8 | // If you want your app to work offline and load faster, you can change
9 | // unregister() to register() below. Note this comes with some pitfalls.
10 | // Learn more about service workers: https://bit.ly/CRA-PWA
11 | serviceWorker.register();
12 |
--------------------------------------------------------------------------------
/src/serviceWorker.js:
--------------------------------------------------------------------------------
1 | // This optional code is used to register a service worker.
2 | // register() is not called by default.
3 |
4 | // This lets the app load faster on subsequent visits in production, and gives
5 | // it offline capabilities. However, it also means that developers (and users)
6 | // will only see deployed updates on subsequent visits to a page, after all the
7 | // existing tabs open on the page have been closed, since previously cached
8 | // resources are updated in the background.
9 |
10 | // To learn more about the benefits of this model and instructions on how to
11 | // opt-in, read https://bit.ly/CRA-PWA
12 |
13 | const isLocalhost = Boolean(
14 | window.location.hostname === 'localhost' ||
15 | // [::1] is the IPv6 localhost address.
16 | window.location.hostname === '[::1]' ||
17 | // 127.0.0.1/8 is considered localhost for IPv4.
18 | window.location.hostname.match(
19 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
20 | )
21 | );
22 |
23 | export function register(config) {
24 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
25 | // The URL constructor is available in all browsers that support SW.
26 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);
27 | if (publicUrl.origin !== window.location.origin) {
28 | // Our service worker won't work if PUBLIC_URL is on a different origin
29 | // from what our page is served on. This might happen if a CDN is used to
30 | // serve assets; see https://github.com/facebook/create-react-app/issues/2374
31 | return;
32 | }
33 |
34 | window.addEventListener('load', () => {
35 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
36 |
37 | if (isLocalhost) {
38 | // This is running on localhost. Let's check if a service worker still exists or not.
39 | checkValidServiceWorker(swUrl, config);
40 |
41 | // Add some additional logging to localhost, pointing developers to the
42 | // service worker/PWA documentation.
43 | navigator.serviceWorker.ready.then(() => {
44 | console.log(
45 | 'This web app is being served cache-first by a service ' +
46 | 'worker. To learn more, visit https://bit.ly/CRA-PWA'
47 | );
48 | });
49 | } else {
50 | // Is not localhost. Just register service worker
51 | registerValidSW(swUrl, config);
52 | }
53 | });
54 | }
55 | }
56 |
57 | function registerValidSW(swUrl, config) {
58 | navigator.serviceWorker
59 | .register(swUrl)
60 | .then(registration => {
61 | registration.onupdatefound = () => {
62 | const installingWorker = registration.installing;
63 | if (installingWorker == null) {
64 | return;
65 | }
66 | installingWorker.onstatechange = () => {
67 | if (installingWorker.state === 'installed') {
68 | if (navigator.serviceWorker.controller) {
69 | // At this point, the updated precached content has been fetched,
70 | // but the previous service worker will still serve the older
71 | // content until all client tabs are closed.
72 | console.log(
73 | 'New content is available and will be used when all ' +
74 | 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'
75 | );
76 |
77 | // Execute callback
78 | if (config && config.onUpdate) {
79 | config.onUpdate(registration);
80 | }
81 | } else {
82 | // At this point, everything has been precached.
83 | // It's the perfect time to display a
84 | // "Content is cached for offline use." message.
85 | console.log('Content is cached for offline use.');
86 |
87 | // Execute callback
88 | if (config && config.onSuccess) {
89 | config.onSuccess(registration);
90 | }
91 | }
92 | }
93 | };
94 | };
95 | })
96 | .catch(error => {
97 | console.error('Error during service worker registration:', error);
98 | });
99 | }
100 |
101 | function checkValidServiceWorker(swUrl, config) {
102 | // Check if the service worker can be found. If it can't reload the page.
103 | fetch(swUrl)
104 | .then(response => {
105 | // Ensure service worker exists, and that we really are getting a JS file.
106 | const contentType = response.headers.get('content-type');
107 | if (
108 | response.status === 404 ||
109 | (contentType != null && contentType.indexOf('javascript') === -1)
110 | ) {
111 | // No service worker found. Probably a different app. Reload the page.
112 | navigator.serviceWorker.ready.then(registration => {
113 | registration.unregister().then(() => {
114 | window.location.reload();
115 | });
116 | });
117 | } else {
118 | // Service worker found. Proceed as normal.
119 | registerValidSW(swUrl, config);
120 | }
121 | })
122 | .catch(() => {
123 | console.log(
124 | 'No internet connection found. App is running in offline mode.'
125 | );
126 | });
127 | }
128 |
129 | export function unregister() {
130 | if ('serviceWorker' in navigator) {
131 | navigator.serviceWorker.ready.then(registration => {
132 | registration.unregister();
133 | });
134 | }
135 | }
136 |
--------------------------------------------------------------------------------
/src/views/Finally.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import styled from "styled-components";
3 | import Reward from 'react-rewards';
4 |
5 | import Celebration from "../assets/images/optimized/celebration.gif";
6 | import Hourglass from "../assets/images/optimized/hourglass.gif";
7 | import LogoIcon from "../assets/images/optimized/logo.png";
8 |
9 | import { Button } from "react95";
10 |
11 | import Center from "../components/Center";
12 | import Code from "../components/Code";
13 |
14 | const StyledCenter = styled(Center)`
15 | width: 100%;
16 | `;
17 | const Wrapper = styled.div`
18 | position: relative;
19 | height: 100%;
20 | box-shadow: inset 0 20px 20px -20px rgba(0, 0, 0, 0.5);
21 | overflow: hidden;
22 | `;
23 |
24 | const CelebrationImage = styled.img`
25 | width: calc(100% - 3rem);
26 | max-width: 480px;
27 | box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
28 | margin: 3rem 0;
29 |
30 | transition: 0.2s all ease-in-out;
31 | &:hover {
32 | transform: scale(1.01);
33 | }
34 | @media (max-height: 700px) {
35 | max-width: 420px;
36 | }
37 | `;
38 |
39 | const StyledCode = styled(Code)`
40 | position: absolute;
41 | top: -1em;
42 | font-family: "ms_sans_serif";
43 | letter-spacing: 0.1rem;
44 | font-weight: bold;
45 | `;
46 | const HourglassIcon = styled.img`
47 | height: 40px;
48 | position: relative;
49 | top: 10px;
50 | `;
51 |
52 | const StyledButton = styled(Button)`
53 | position: absolute;
54 | left: 50%;
55 | bottom: -2em;
56 | transform: translateX(-50%);
57 | padding: 0 0.5em;
58 | font-weight: bold;
59 | font-size: 1.4em;
60 |
61 | filter: drop-shadow(2px 2px 6px rgba(0, 0, 0, 0.5));
62 | &:active {
63 | filter: drop-shadow(1px 1px 4px rgba(0, 0, 0, 0.5));
64 | }
65 | img {
66 | height: 28px;
67 | margin-right: 0.25em;
68 | margin-left: -0.125em;
69 | }
70 | `;
71 | export default class Finally extends React.Component {
72 |
73 |
74 | onClick =() => {
75 | this.reward.rewardMe();
76 | setTimeout(this.props.onStart, 700);
77 | }
78 | render() {
79 |
80 | return (
81 |
82 |
83 |
84 | The is over.
85 |
86 |
87 |
91 | { this.reward = ref }}
93 | type='confetti'
94 | config={{
95 | // elementSize:12,
96 | elementCount: 120,
97 | startVelocity: 50
98 | }}
99 | >
100 |
101 |
102 |
103 | Start
104 |
105 |
106 |
107 |
108 | );
109 | }
110 | }
--------------------------------------------------------------------------------
/src/views/Hero.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import styled from "styled-components";
3 |
4 | import HeroCD from "../assets/images/optimized/heroCD2.png";
5 | import Plastic from "../assets/images/optimized/plastic.jpg";
6 | import Clouds from "../assets/images/optimized/clouds.jpg";
7 | import Grow from "../assets/images/optimized/growEmoji.png";
8 |
9 | import Code from "../components/Code";
10 |
11 | import { Anchor, Tooltip } from "react95";
12 |
13 | const HeroImage = styled.img`
14 | width: 100%;
15 | height: auto;
16 | display: block;
17 | `;
18 |
19 | const Wrapper = styled.div`
20 | background-image: url(${Clouds});
21 | background-size: cover;
22 | height: 100%;
23 | &:before {
24 | content: "";
25 | position: absolute;
26 | top: 0;
27 | left: 0;
28 | width: 100%;
29 | height: 100%;
30 | background-image: url(${Plastic});
31 | background-size: cover;
32 | opacity: 0.4;
33 | mix-blend-mode: screen;
34 | pointer-events: none;
35 | }
36 | `;
37 | const BoxWrapper = styled.div`
38 | position: relative;
39 | display: inline-block;
40 | max-width: 480px;
41 | width: calc(100% - 2em);
42 | overflow: hidden;
43 | box-shadow: -0px 10px 28px rgba(0, 0, 0, 0.7);
44 | margin-top: -2em;
45 |
46 | @media (max-height: 700px) {
47 | max-width: 420px;
48 | margin-top: -5em;
49 | }
50 | @media (max-width: 700px) {
51 | margin-top: -5em;
52 | }
53 | `;
54 |
55 | const Centered = styled.div`
56 | position: absolute;
57 | width: 100%;
58 | top: 50%;
59 | left: 50%;
60 | transform: translate(-50%, -50%);
61 | `;
62 |
63 | const Links = styled.div`
64 | display: inline-block;
65 | position: absolute;
66 | bottom: -1.5em;
67 | left: 50%;
68 | transform: translate(-50%, 100%);
69 | line-height: 1.5;
70 | font-size: 1.4em;
71 | text-align: left;
72 |
73 | img {
74 | display: inline-block;
75 | height: 38px;
76 | position: relative;
77 | top: 7px;
78 | }
79 | @media (max-height: 700px) {
80 | font-size: 1.2em;
81 | }
82 | @media (max-width: 700px) {
83 | font-size: 1.2em;
84 | text-align: center;
85 |
86 | img {
87 | height: 33px;
88 | top: 7px;
89 | }
90 | }
91 | @media (max-width: 475px) {
92 | font-size: 1em;
93 |
94 | img {
95 | height: 26px;
96 | top: 5px;
97 | }
98 | }
99 | `;
100 |
101 | export default function Hero() {
102 | return (
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 | Star on{" "}
111 | Github,
112 | let it{" "}
113 |
114 |
115 |
116 | .
117 |
118 |
119 |
120 | Then, see{" "}
121 |
122 | components
123 |
124 | .
125 |
126 |
127 |
128 |
129 | );
130 | }
131 |
--------------------------------------------------------------------------------
/src/views/Info.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import styled from "styled-components";
3 | import Center from "../components/Center";
4 | import DatePicker from "../components/DatePicker";
5 |
6 |
7 | const StyledCenter = styled(Center)`
8 | text-align: left;
9 | `;
10 |
11 | export default function Info() {
12 | return (
13 |
14 | {
17 | console.log("📆");
18 | }}
19 | />
20 |
21 | );
22 | }
23 |
--------------------------------------------------------------------------------