├── .babelrc
├── .gitignore
├── README.md
├── next.config.js
├── package-lock.json
├── package.json
├── pages
├── _app.js
├── _document.js
├── about.js
├── contact.js
├── customsoftware.js
├── estimate.js
├── index.js
├── mobileapps.js
├── revolution.js
├── services.js
└── websites.js
├── public
├── assets
│ ├── analytics.svg
│ ├── android.svg
│ ├── backArrow.svg
│ ├── backArrowDisabled.svg
│ ├── background.jpg
│ ├── bell.svg
│ ├── biometrics.svg
│ ├── buildIcon.svg
│ ├── bulb.svg
│ ├── camera.svg
│ ├── cash.svg
│ ├── check.svg
│ ├── consultationIcon.svg
│ ├── customSoftware.svg
│ ├── customized.svg
│ ├── data.svg
│ ├── designIcon.svg
│ ├── ecommerce.svg
│ ├── email.svg
│ ├── extendAccess.svg
│ ├── facebook.svg
│ ├── footerAdornment.svg
│ ├── forwardArrow.svg
│ ├── forwardArrowDisabled.svg
│ ├── founder.jpg
│ ├── globe.svg
│ ├── gps.svg
│ ├── history.svg
│ ├── increaseEngagement.svg
│ ├── info.svg
│ ├── infoBackground.svg
│ ├── instagram.svg
│ ├── iphone.svg
│ ├── iterateIcon.svg
│ ├── launchIcon.svg
│ ├── logo.svg
│ ├── maintainIcon.svg
│ ├── mobile.svg
│ ├── mobileBackground.jpg
│ ├── mobileIcon.svg
│ ├── mockupIcon.svg
│ ├── outreach.svg
│ ├── people.svg
│ ├── person.svg
│ ├── persons.svg
│ ├── phone.svg
│ ├── puppy.svg
│ ├── repeatingBackground.svg
│ ├── reviewIcon.svg
│ ├── root.svg
│ ├── send.svg
│ ├── seo.svg
│ ├── software.svg
│ ├── stopwatch.svg
│ ├── swissKnife.svg
│ ├── twitter.svg
│ ├── upload.svg
│ ├── users.svg
│ ├── vision.svg
│ ├── website.svg
│ ├── websiteIcon.svg
│ └── yearbook.svg
├── favicon.png
├── robots.txt
└── sitemap_local.xml
├── scripts
├── formatDate.js
├── getPathsObject.js
└── sitemap.js
└── src
├── Link.js
├── ProTip.js
├── animations
├── automationAnimation
│ └── data.json
├── documentsAnimation
│ ├── data.js
│ ├── img_0.png
│ └── img_1.png
├── estimateAnimation
│ └── data.json
├── integrationAnimation
│ └── data.json
├── landinganimation
│ ├── data.js
│ ├── data.json
│ ├── img_0.png
│ ├── img_1.png
│ ├── img_2.png
│ ├── img_3.png
│ └── img_4.png
├── scaleAnimation
│ └── data.json
├── technologyAnimation
│ └── data.json
└── uxAnimation
│ ├── data.js
│ ├── img_0.png
│ ├── img_1.png
│ ├── img_10.png
│ ├── img_11.png
│ ├── img_12.png
│ ├── img_13.png
│ ├── img_14.png
│ ├── img_15.png
│ ├── img_16.png
│ ├── img_17.png
│ ├── img_18.png
│ ├── img_2.png
│ ├── img_3.png
│ ├── img_4.png
│ ├── img_5.png
│ ├── img_6.png
│ ├── img_7.png
│ ├── img_8.png
│ └── img_9.png
└── ui
├── ButtonArrow.js
├── CallToAction.js
├── Fonts.js
├── Footer.js
├── Header.js
└── Theme.js
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["next/babel"]
3 | }
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 |
6 | # misc
7 | .DS_Store
8 | .env.local
9 | .env.development.local
10 | .env.test.local
11 | .env.production.local
12 |
13 | npm-debug.log*
14 | yarn-debug.log*
15 | yarn-error.log*
16 |
17 | # Next.js
18 | /.next
19 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Next.js example
2 |
3 | ## How to use
4 |
5 | Download the example [or clone the repo](https://github.com/mui-org/material-ui):
6 |
7 | ```sh
8 | curl https://codeload.github.com/mui-org/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/nextjs
9 | cd nextjs
10 | ```
11 |
12 | Install it and run:
13 |
14 | ```sh
15 | npm install
16 | npm run dev
17 | ```
18 |
19 | ## The idea behind the example
20 |
21 | [Next.js](https://github.com/zeit/next.js) is a framework for server-rendered React apps.
22 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | const withPlugins = require("next-compose-plugins");
2 | const optimizedImages = require("next-optimized-images");
3 |
4 | module.exports = withPlugins([
5 | [
6 | optimizedImages,
7 | {
8 | /* config for next-optimized-images */
9 | }
10 | ]
11 |
12 | // your other plugins here
13 | ]);
14 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "nextjs",
3 | "version": "4.0.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 | "axios": "^0.19.0",
10 | "clsx": "latest",
11 | "fileloader": "^2.0.0",
12 | "fontfaceobserver": "^2.1.0",
13 | "fs-extra": "^8.1.0",
14 | "imagemin-mozjpeg": "^8.0.0",
15 | "imagemin-optipng": "^7.1.0",
16 | "next": "latest",
17 | "next-compose-plugins": "^2.2.0",
18 | "next-optimized-images": "^2.5.4",
19 | "prop-types": "latest",
20 | "react": "latest",
21 | "react-dom": "latest",
22 | "react-ga": "^2.7.0",
23 | "react-lazy-load-image-component": "^1.4.3",
24 | "react-lottie": "^1.2.3"
25 | },
26 | "scripts": {
27 | "dev": "next",
28 | "build": "next build",
29 | "start": "next start",
30 | "postbuild": "node scripts/sitemap.js"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/pages/_app.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactGA from "react-ga";
3 | import App from "next/app";
4 | import Head from "next/head";
5 | import { ThemeProvider } from "@material-ui/core/styles";
6 | import Theme from "../src/ui/Theme";
7 | import Header from "../src/ui/Header";
8 | import Footer from "../src/ui/Footer";
9 | import Fonts from "../src/ui/Fonts";
10 |
11 | import { LazyLoadComponent } from "react-lazy-load-image-component";
12 |
13 | ReactGA.initialize("UA-154916062-1");
14 |
15 | export default class MyApp extends App {
16 | constructor(props) {
17 | super(props);
18 |
19 | this.state = { value: 0, selectedIndex: 0 };
20 | }
21 |
22 | setValue = index => {
23 | this.setState({ value: index });
24 | };
25 |
26 | setSelectedIndex = index => {
27 | this.setState({ selectedIndex: index });
28 | };
29 |
30 | componentDidMount() {
31 | Fonts();
32 | // Remove the server-side injected CSS.
33 | const jssStyles = document.querySelector("#jss-server-side");
34 | if (jssStyles) {
35 | jssStyles.parentElement.removeChild(jssStyles);
36 | }
37 | }
38 |
39 | render() {
40 | const { Component, pageProps } = this.props;
41 |
42 | return (
43 |
44 |
45 | My page
46 |
47 |
48 |
54 |
59 |
60 |
64 |
65 |
66 |
67 | );
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/pages/_document.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Document, { Head, Main, NextScript } from "next/document";
3 | import { ServerStyleSheets } from "@material-ui/core/styles";
4 | import Theme from "../src/ui/Theme";
5 |
6 | export default class MyDocument extends Document {
7 | render() {
8 | return (
9 |
10 |
11 |
12 |
13 |
17 | {/* PWA primary color */}
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | );
32 | }
33 | }
34 |
35 | MyDocument.getInitialProps = async ctx => {
36 | // Resolution order
37 | //
38 | // On the server:
39 | // 1. app.getInitialProps
40 | // 2. page.getInitialProps
41 | // 3. document.getInitialProps
42 | // 4. app.render
43 | // 5. page.render
44 | // 6. document.render
45 | //
46 | // On the server with error:
47 | // 1. document.getInitialProps
48 | // 2. app.render
49 | // 3. page.render
50 | // 4. document.render
51 | //
52 | // On the client
53 | // 1. app.getInitialProps
54 | // 2. page.getInitialProps
55 | // 3. app.render
56 | // 4. page.render
57 |
58 | // Render app and page and get the context of the page with collected side effects.
59 | const sheets = new ServerStyleSheets();
60 | const originalRenderPage = ctx.renderPage;
61 |
62 | ctx.renderPage = () =>
63 | originalRenderPage({
64 | enhanceApp: App => props => sheets.collect()
65 | });
66 |
67 | const initialProps = await Document.getInitialProps(ctx);
68 |
69 | return {
70 | ...initialProps,
71 | // Styles fragment is rendered after the app and page rendering finish.
72 | styles: [
73 | ...React.Children.toArray(initialProps.styles),
74 | sheets.getStyleElement()
75 | ]
76 | };
77 | };
78 |
--------------------------------------------------------------------------------
/pages/about.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Head from "next/head";
3 | import { makeStyles, useTheme } from "@material-ui/core/styles";
4 | import Grid from "@material-ui/core/Grid";
5 | import Typography from "@material-ui/core/Typography";
6 | import Avatar from "@material-ui/core/Avatar";
7 | import useMediaQuery from "@material-ui/core/useMediaQuery";
8 | import Hidden from "@material-ui/core/Hidden";
9 |
10 | import CallToAction from "../src/ui/CallToAction";
11 |
12 | const useStyles = makeStyles(theme => ({
13 | missionStatement: {
14 | fontStyle: "italic",
15 | fontWeight: 300,
16 | fontSize: "1.5rem",
17 | maxWidth: "50em",
18 | lineHeight: 1.4
19 | },
20 | rowContainer: {
21 | paddingLeft: "5em",
22 | paddingRight: "5em",
23 | [theme.breakpoints.down("sm")]: {
24 | paddingLeft: "1.5em",
25 | paddingRight: "1.5em"
26 | },
27 | [theme.breakpoints.down("xs")]: {
28 | paddingLeft: "1em",
29 | paddingRight: "1em"
30 | }
31 | },
32 | avatar: {
33 | height: "25em",
34 | width: "25em",
35 | [theme.breakpoints.down("sm")]: {
36 | height: "20em",
37 | width: "20em",
38 | maxHeight: 300,
39 | maxWidth: 300
40 | }
41 | }
42 | }));
43 |
44 | export default function About(props) {
45 | const classes = useStyles();
46 | const theme = useTheme();
47 | const matchesMD = useMediaQuery(theme.breakpoints.down("md"));
48 |
49 | return (
50 |
51 |
52 | About Us - History & Team | Arc Development
53 |
58 |
63 |
64 |
65 |
66 |
71 |
72 | About Us
73 |
74 |
75 |
82 |
87 | Whether it be person to person, business to consumer, or an individual
88 | to their interests, technology is meant to bring us closer to what we
89 | care about in the best way possible. Arc Development will use that
90 | principle to provide fast, modern, inexpensive, and aesthetic software
91 | to the Midwest and beyond.
92 |
93 |
94 |
103 |
104 |
111 |
112 |
117 | History
118 |
119 |
120 |
121 |
127 | We're the new kid on the block
128 |
129 |
134 | Founded in 2019, we’re ready to get our hands on the world’s
135 | business problems.
136 |
137 |
142 | It all started with one question: Why aren’t all businesses
143 | using available technology? There are many different answers to
144 | that question: economic barriers, social barriers, educational
145 | barriers, and sometimes institutional barriers.
146 |
147 |
152 | We aim to be a powerful force in overcoming these obstacles.
153 | Recent developments in software engineering and computing power,
154 | compounded by the proliferation of smart phones, has opened up
155 | infinite worlds of possibility. Things that have always been
156 | done by hand can now be done digitally and automatically, and
157 | completely new methods of interaction are created daily. Taking
158 | full advantage of these advancements is the name of the game.
159 |
160 |
165 | All this change can be a lot to keep up with, and that’s where
166 | we come in.
167 |
168 |
169 |
170 |
171 |
172 |
173 |
178 |
179 |
180 |
181 |
189 |
190 |
191 | Team
192 |
193 |
194 |
195 |
196 | Zachary Reece, Founder
197 |
198 |
199 | I started coding when I was 9 years old.
200 |
201 |
202 |
203 |
208 |
209 |
210 |
211 |
212 |
213 | I taught myself basic coding from a library book in third grade,
214 | and ever since then my passion has solely been set on learning —
215 | learning about computers, learning mathematics and philosophy,
216 | studying design, always just learning.
217 |
218 |
219 | Now I’m ready to apply everything I’ve learned, and to help
220 | others with the intuition I have developed.
221 |
222 |
223 |
224 |
232 |
233 |
238 |
239 |
240 |
241 | a page from my Sophomore yearbook
242 |
243 |
244 |
245 |
246 |
247 |
248 | I taught myself basic coding from a library book in third grade,
249 | and ever since then my passion has solely been set on learning —
250 | learning about computers, learning mathematics and philosophy,
251 | studying design, always just learning.
252 |
253 |
254 | Now I’m ready to apply everything I’ve learned, and to help
255 | others with the intuition I have developed.
256 |
257 |
258 |
259 |
266 |
267 |
272 |
273 |
274 |
275 | my miniature dapple dachshund, Sterling
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 | );
286 | }
287 |
--------------------------------------------------------------------------------
/pages/customsoftware.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Head from "next/head";
3 | import Lottie from "react-lottie";
4 | import Link from "../src/Link";
5 | import { makeStyles, useTheme } from "@material-ui/core/styles";
6 | import Grid from "@material-ui/core/Grid";
7 | import IconButton from "@material-ui/core/IconButton";
8 | import Typography from "@material-ui/core/Typography";
9 | import useMediaQuery from "@material-ui/core/useMediaQuery";
10 | import Hidden from "@material-ui/core/Hidden";
11 |
12 | import documentsAnimation from "../src/animations/documentsAnimation/data";
13 | import scaleAnimation from "../src/animations/scaleAnimation/data.json";
14 | import automationAnimation from "../src/animations/automationAnimation/data.json";
15 | import uxAnimation from "../src/animations/uxAnimation/data";
16 |
17 | import CallToAction from "../src/ui/CallToAction";
18 |
19 | const useStyles = makeStyles(theme => ({
20 | heading: {
21 | maxWidth: "40em"
22 | },
23 | arrowContainer: {
24 | marginTop: "0.5em"
25 | },
26 | rowContainer: {
27 | paddingLeft: "5em",
28 | paddingRight: "5em",
29 | [theme.breakpoints.down("sm")]: {
30 | paddingLeft: "1.5em",
31 | paddingRight: "1.5em"
32 | }
33 | },
34 | itemContainer: {
35 | maxWidth: "40em"
36 | }
37 | }));
38 |
39 | export default function CustomSoftware(props) {
40 | const classes = useStyles();
41 | const theme = useTheme();
42 | const matchesMD = useMediaQuery(theme.breakpoints.down("md"));
43 | const matchesSM = useMediaQuery(theme.breakpoints.down("sm"));
44 | const matchesXS = useMediaQuery(theme.breakpoints.down("xs"));
45 |
46 | const documentsOptions = {
47 | loop: true,
48 | autoplay: false,
49 | animationData: documentsAnimation,
50 | rendererSettings: {
51 | preserveAspectRatio: "xMidYMid slice"
52 | }
53 | };
54 |
55 | const scaleOptions = {
56 | loop: true,
57 | autoplay: false,
58 | animationData: scaleAnimation,
59 | rendererSettings: {
60 | preserveAspectRatio: "xMidYMid slice"
61 | }
62 | };
63 |
64 | const automationOptions = {
65 | loop: true,
66 | autoplay: false,
67 | animationData: automationAnimation,
68 | rendererSettings: {
69 | preserveAspectRatio: "xMidYMid slice"
70 | }
71 | };
72 |
73 | const uxOptions = {
74 | loop: true,
75 | autoplay: false,
76 | animationData: uxAnimation,
77 | rendererSettings: {
78 | preserveAspectRatio: "xMidYMid slice"
79 | }
80 | };
81 |
82 | return (
83 |
84 |
85 |
86 | Custom Software Development and Design - Free Estimate
87 |
88 |
93 |
98 |
99 |
100 |
101 |
109 |
110 |
115 | props.setSelectedIndex(0)}
120 | >
121 |
122 |
123 |
124 |
125 |
126 |
127 |
135 | Custom Software Development
136 |
137 |
138 |
139 |
144 | Whether we’re replacing old software or inventing new solutions,
145 | Arc Development is here to help your business tackle technology.
146 |
147 |
152 | Using regular commercial software leaves you with a lot of stuff
153 | you don’t need, without some of the stuff you do need, and
154 | ultimately controls the way you work. Without using any software
155 | at all you risk falling behind competitors and missing out on huge
156 | savings from increased efficiency.
157 |
158 |
163 | Our custom solutions are designed from the ground up with your
164 | needs, wants, and goals at the core. This collaborative process
165 | produces finely tuned software that is much more effective at
166 | improving your workflow and reducing costs than generalized
167 | options.
168 |
169 |
174 | We create exactly what you what, exactly how you want it.
175 |
176 |
177 |
178 |
179 |
180 | props.setSelectedIndex(2)}
185 | >
186 |
190 |
191 |
192 |
193 |
194 |
202 |
210 |
211 | Save Energy
212 |
213 |
214 |
215 |
216 |
217 |
229 |
230 | Save Time
231 |
232 |
233 |
234 |
235 |
236 |
244 |
245 | Save Money
246 |
247 |
248 |
249 |
250 |
251 |
252 |
261 |
269 |
270 |
271 |
272 | Digital Documents & Data
273 |
274 |
275 |
276 |
281 | Reduce Errors. Reduce Waste. Reduce Costs.
282 |
283 |
288 | Billions are spent annually on the purchasing, printing, and
289 | distribution of paper. On top of the massive environmental
290 | impact this has, it causes harm to your bottom line as well.
291 |
292 |
297 | By utilizing digital forms and documents you can remove these
298 | obsolete expenses, accelerate your communication, and help the
299 | Earth.
300 |
301 |
302 |
303 |
304 |
309 |
310 |
311 |
318 |
319 |
324 |
325 |
326 |
327 |
328 | Scale
329 |
330 |
331 |
332 |
337 | Whether you’re a large brand, just getting started, or taking
338 | off right now, our application architecture ensures pain-free
339 | growth and reliability.
340 |
341 |
342 |
343 |
344 |
345 |
352 |
353 |
354 |
360 |
361 |
362 |
363 | Root-Cause Analysis
364 |
365 |
366 | Many problems are merely symptoms of larger, underlying issues.
367 |
368 |
369 | We can help you thoroughly examine all areas of your business to
370 | develop a holistic plan for the most effective implementation of
371 | technology.
372 |
373 |
374 |
375 |
376 |
385 |
393 |
394 |
395 |
396 | Automation
397 |
398 |
399 |
400 |
405 | Why waste time when you don’t have to?
406 |
407 |
412 | We can help you identify processes with time or event based
413 | actions which can now easily be automated.
414 |
415 |
420 | Increasing efficiency increases profits, leaving you more time
421 | to focus on your business, not busywork.
422 |
423 |
424 |
425 |
426 |
431 |
432 |
433 |
440 |
441 |
446 |
447 |
448 |
449 |
450 | User Experience Design
451 |
452 |
453 |
454 |
459 | A good design that isn’t usable isn’t a good design.
460 |
461 |
466 | So why are so many pieces of software complicated, confusing,
467 | and frustrating?
468 |
469 |
474 | By prioritizing users and the real ways they interact with
475 | technology we’re able to develop unique, personable experiences
476 | that solve problems rather than create new ones.
477 |
478 |
479 |
480 |
481 |
482 |
483 |
484 |
485 |
486 | );
487 | }
488 |
--------------------------------------------------------------------------------
/pages/index.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactGA from "react-ga";
3 | import Head from "next/head";
4 | import Lottie from "react-lottie";
5 | import { makeStyles, useTheme } from "@material-ui/core/styles";
6 | import Link from "../src/Link";
7 | import Grid from "@material-ui/core/Grid";
8 | import Button from "@material-ui/core/Button";
9 | import ButtonArrow from "../src/ui/ButtonArrow";
10 | import Typography from "@material-ui/core/Typography";
11 | import useMediaQuery from "@material-ui/core/useMediaQuery";
12 | import Card from "@material-ui/core/Card";
13 | import CardContent from "@material-ui/core/CardContent";
14 |
15 | import CallToAction from "../src/ui/CallToAction";
16 |
17 | import animationData from "../src/animations/landinganimation/data";
18 |
19 | import {
20 | LazyLoadImage,
21 | LazyLoadComponent
22 | } from "react-lazy-load-image-component";
23 |
24 | const useStyles = makeStyles(theme => ({
25 | animation: {
26 | maxWidth: "50em",
27 | minWidth: "21em",
28 | marginTop: "2em",
29 | marginLeft: "10%",
30 | [theme.breakpoints.down("sm")]: {
31 | maxWidth: "30em"
32 | }
33 | },
34 | estimateButton: {
35 | ...theme.typography.estimate,
36 | backgroundColor: theme.palette.common.orange,
37 | borderRadius: 50,
38 | height: 45,
39 | width: 145,
40 | marginRight: 40,
41 | "&:hover": {
42 | backgroundColor: theme.palette.secondary.light
43 | }
44 | },
45 | buttonContainer: {
46 | marginTop: "1em"
47 | },
48 | learnButtonHero: {
49 | ...theme.typography.learnButton,
50 | fontSize: "0.9rem",
51 | height: 45,
52 | width: 145
53 | },
54 | learnButton: {
55 | ...theme.typography.learnButton,
56 | fontSize: "0.7rem",
57 | height: 35,
58 | padding: 5,
59 | [theme.breakpoints.down("sm")]: {
60 | marginBottom: "2em"
61 | }
62 | },
63 | mainContainer: {
64 | marginTop: "5em",
65 | [theme.breakpoints.down("md")]: {
66 | marginTop: "3em"
67 | },
68 | [theme.breakpoints.down("xs")]: {
69 | marginTop: "2em"
70 | }
71 | },
72 | heroTextContainer: {
73 | minWidth: "21.5em",
74 | marginLeft: "1em",
75 | [theme.breakpoints.down("xs")]: {
76 | marginLeft: 0
77 | }
78 | },
79 | specialText: {
80 | fontFamily: "Pacifico",
81 | color: theme.palette.common.orange
82 | },
83 | subtitle: {
84 | marginBottom: "1em"
85 | },
86 | icon: {
87 | marginLeft: "2em",
88 | [theme.breakpoints.down("xs")]: {
89 | marginLeft: 0
90 | }
91 | },
92 | serviceContainer: {
93 | marginTop: "12em",
94 | [theme.breakpoints.down("sm")]: {
95 | padding: 25
96 | },
97 | [theme.breakpoints.down("xs")]: {
98 | padding: 5
99 | }
100 | },
101 | revolutionBackground: {
102 | backgroundImage: `url("/assets/repeatingBackground.svg")`,
103 | backgroundPosition: "center",
104 | backgroundSize: "cover",
105 | backgroundRepeat: "no-repeat",
106 | height: "100%",
107 | width: "100%"
108 | },
109 | revolutionCard: {
110 | position: "absolute",
111 | boxShadow: theme.shadows[10],
112 | borderRadius: 15,
113 | padding: "10em",
114 | [theme.breakpoints.down("sm")]: {
115 | paddingTop: "8em",
116 | paddingBottom: "8em",
117 | paddingLeft: 0,
118 | paddingRight: 0,
119 | borderRadius: 0,
120 | width: "100%"
121 | }
122 | },
123 | infoBackground: {
124 | position: "absolute",
125 | zIndex: -1,
126 | backgroundImage: `url("/assets/infoBackground.svg")`,
127 | backgroundPosition: "center",
128 | backgroundSize: "cover",
129 | backgroundRepeat: "no-repeat",
130 | height: "100%",
131 | width: "100%"
132 | }
133 | }));
134 |
135 | export default function LandingPage(props) {
136 | const classes = useStyles();
137 | const theme = useTheme();
138 | const matchesSM = useMediaQuery(theme.breakpoints.down("sm"));
139 | const matchesXS = useMediaQuery(theme.breakpoints.down("xs"));
140 |
141 | const defaultOptions = {
142 | loop: true,
143 | autoplay: false,
144 | animationData: animationData,
145 | rendererSettings: {
146 | preserveAspectRatio: "xMidYMid slice"
147 | }
148 | };
149 |
150 | return (
151 |
152 |
153 |
154 | Custom Software, Mobile Apps, and Websites | Arc Development
155 |
156 |
161 |
166 |
167 |
168 |
169 |
170 | {" "}
171 | {/*-----Hero Block-----*/}
172 |
173 |
174 |
175 | Bringing West Coast Technology
176 |
177 | to the Midwest
178 |
179 |
184 |
185 |
200 |
201 |
202 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 | {" "}
226 | {/*-----Custom Software Block-----*/}
227 |
233 |
240 | Custom Software Development
241 |
242 | Save Energy. Save Time. Save Money.
243 |
244 |
245 | Complete digital solutions, from investigation to{" "}
246 | celebration.
247 |
248 |
265 |
266 |
267 |
272 |
273 |
274 |
275 |
276 | {" "}
277 | {/*-----iOS/Android Block-----*/}
278 |
284 |
290 | iOS/Android App Development
291 |
292 | Extend Functionality. Extend Access. Increase Engagement.
293 |
294 |
295 | Integrate your web experience or create a standalone app
296 | {matchesSM ? null :
}with either mobile platform.
297 |
298 |
315 |
316 |
317 |
322 |
323 |
324 |
325 |
326 | {" "}
327 | {/*-----Websites Block-----*/}
328 |
334 |
341 | Website Development
342 |
343 | Reach More. Discover More. Sell More.
344 |
345 |
346 | Optimized for Search Engines,{matchesXS &&
}built for speed.
347 |
348 |
365 |
366 |
367 |
372 |
373 |
374 |
375 |
376 | {/*-----The Revolution Block-----*/}
377 |
383 |
384 |
385 |
390 |
391 |
392 | The Revolution
393 |
394 |
395 |
396 |
397 | Visionary insights coupled with cutting-edge technology is a
398 | recipe for revolution.
399 |
400 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 |
423 |
424 | {/*-----Information Block-----*/}
425 |
431 |
439 |
444 |
449 |
450 | About Us
451 |
452 | Let's get personal.
453 |
454 |
465 |
466 |
467 |
468 |
476 |
477 |
478 | Contact Us
479 |
480 |
481 | Say hello!{" "}
482 |
483 | 👋🏻
484 |
485 |
486 |
487 |
498 |
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 |
508 |
509 | {/*-----Call To Action Block-----*/}
510 |
511 |
512 |
513 |
514 | );
515 | }
516 |
--------------------------------------------------------------------------------
/pages/mobileapps.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Head from "next/head";
3 | import Lottie from "react-lottie";
4 | import Link from "../src/Link";
5 | import { makeStyles, useTheme } from "@material-ui/core/styles";
6 | import IconButton from "@material-ui/core/IconButton";
7 | import Grid from "@material-ui/core/Grid";
8 | import Typography from "@material-ui/core/Typography";
9 | import useMediaQuery from "@material-ui/core/useMediaQuery";
10 | import Hidden from "@material-ui/core/Hidden";
11 |
12 | import integrationAnimation from "../src/animations/integrationAnimation/data.json";
13 |
14 | import CallToAction from "../src/ui/CallToAction";
15 |
16 | const useStyles = makeStyles(theme => ({
17 | heading: {
18 | maxWidth: "40em"
19 | },
20 | arrowContainer: {
21 | marginTop: "0.5em"
22 | },
23 | rowContainer: {
24 | paddingLeft: "5em",
25 | paddingRight: "5em",
26 | [theme.breakpoints.down("sm")]: {
27 | paddingLeft: "1.5em",
28 | paddingRight: "1.5em"
29 | }
30 | }
31 | }));
32 |
33 | export default function MobileApps(props) {
34 | const classes = useStyles();
35 | const theme = useTheme();
36 | const matchesMD = useMediaQuery(theme.breakpoints.down("md"));
37 | const matchesSM = useMediaQuery(theme.breakpoints.down("sm"));
38 | const matchesXS = useMediaQuery(theme.breakpoints.down("xs"));
39 |
40 | const defaultOptions = {
41 | loop: true,
42 | autoplay: false,
43 | animationData: integrationAnimation,
44 | rendererSettings: {
45 | preserveAspectRatio: "xMidYMid slice"
46 | }
47 | };
48 |
49 | return (
50 |
51 |
52 |
53 | iOS/Android App Design and Development | Arc Development
54 |
55 |
60 |
65 |
66 |
67 |
68 |
76 |
77 |
82 | props.setSelectedIndex(1)}
87 | >
88 |
92 |
93 |
94 |
95 |
96 |
97 |
105 | iOS/Android App Development
106 |
107 |
108 |
109 |
114 | Mobile apps allow you to take your tools on the go.
115 |
116 |
121 | Whether you want an app for your customers, employees, or
122 | yourself, we can build cross-platform native solutions for any
123 | part of your business process. This opens you up to a whole new
124 | world of possibilities by taking advantage of phone features like
125 | the camera, GPS, push notifications, and more.
126 |
127 |
132 | Convenience. Connection.
133 |
134 |
135 |
136 |
137 |
138 | props.setSelectedIndex(3)}
143 | >
144 |
148 |
149 |
150 |
151 |
152 |
159 |
160 |
161 |
166 | Integration
167 |
168 |
169 |
170 |
175 | Our technology enables an innate interconnection between web and
176 | mobile applications, putting everything you need right in one
177 | convenient place.
178 |
179 |
184 | This allows you to extend your reach, reinvent interactions, and
185 | develop a stronger relationship with your users than ever before.
186 |
187 |
188 |
189 |
190 |
198 |
199 |
200 |
201 |
206 | Simultaneous Platform Support
207 |
208 |
209 |
210 |
215 | Our cutting-edge development process allows us to create apps for
216 | iPhone, Android, and tablets — all at the same time.
217 |
218 |
223 | This significantly reduces costs and creates a more unified brand
224 | experience across all devices.
225 |
226 |
227 |
228 |
229 |
239 |
240 |
241 |
242 | Extend Functionality
243 |
244 |
245 |
246 |
247 |
248 |
249 |
260 |
261 |
262 | Extend Access
263 |
264 |
265 |
266 |
271 |
272 |
273 |
274 |
275 |
276 | Increase Engagement
277 |
278 |
279 |
280 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 | );
292 | }
293 |
--------------------------------------------------------------------------------
/pages/services.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Head from "next/head";
3 | import Link from "../src/Link";
4 | import { makeStyles, useTheme } from "@material-ui/core/styles";
5 | import Grid from "@material-ui/core/Grid";
6 | import Typography from "@material-ui/core/Typography";
7 | import Button from "@material-ui/core/Button";
8 | import useMediaQuery from "@material-ui/core/useMediaQuery";
9 |
10 | import ButtonArrow from "../src/ui/ButtonArrow";
11 |
12 | const useStyles = makeStyles(theme => ({
13 | specialText: {
14 | fontFamily: "Pacifico",
15 | color: theme.palette.common.orange
16 | },
17 | subtitle: {
18 | marginBottom: "1em"
19 | },
20 | icon: {
21 | marginLeft: "2em",
22 | [theme.breakpoints.down("xs")]: {
23 | marginLeft: 0
24 | }
25 | },
26 | serviceContainer: {
27 | marginTop: "10em",
28 | [theme.breakpoints.down("sm")]: {
29 | padding: 25
30 | },
31 | [theme.breakpoints.down("xs")]: {
32 | padding: 5
33 | }
34 | },
35 | learnButton: {
36 | ...theme.typography.learnButton,
37 | fontSize: "0.7rem",
38 | height: 35,
39 | padding: 5,
40 | [theme.breakpoints.down("sm")]: {
41 | marginBottom: "2em"
42 | }
43 | }
44 | }));
45 |
46 | export default function Services(props) {
47 | const classes = useStyles();
48 | const theme = useTheme();
49 | const matchesSM = useMediaQuery(theme.breakpoints.down("sm"));
50 |
51 | return (
52 |
53 |
54 |
55 | Top Custom Software Development Services | Arc Development
56 |
57 |
62 |
67 |
68 |
69 |
70 |
77 |
82 | Services
83 |
84 |
85 |
86 | {" "}
87 | {/*-----iOS/Android Block-----*/}
88 |
95 |
102 | iOS/Android App Development
103 |
104 | Extend Functionality. Extend Access. Increase Engagement.
105 |
106 |
107 | Integrate your web experience or create a standalone app
108 | {matchesSM ? null :
}with either mobile platform.
109 |
110 |
127 |
128 |
129 |
135 |
136 |
137 |
138 |
139 | {" "}
140 | {/*-----Custom Software Block-----*/}
141 |
147 |
154 | Custom Software Development
155 |
156 | Save Energy. Save Time. Save Money.
157 |
158 |
159 | Complete digital solutions, from investigation to{" "}
160 | celebration.
161 |
162 |
179 |
180 |
181 |
186 |
187 |
188 |
189 |
190 |
191 | {" "}
192 | {/*-----Websites Block-----*/}
193 |
200 |
207 | Website Development
208 |
209 | Reach More. Discover More. Sell More.
210 |
211 |
212 | Optimized for Search Engines, built for speed.
213 |
214 |
231 |
232 |
233 |
239 |
240 |
241 |
242 |
243 | );
244 | }
245 |
--------------------------------------------------------------------------------
/pages/websites.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Head from "next/head";
3 | import Link from "../src/Link";
4 | import { makeStyles, useTheme } from "@material-ui/core/styles";
5 | import Grid from "@material-ui/core/Grid";
6 | import IconButton from "@material-ui/core/IconButton";
7 | import Typography from "@material-ui/core/Typography";
8 | import useMediaQuery from "@material-ui/core/useMediaQuery";
9 | import Hidden from "@material-ui/core/Hidden";
10 |
11 | import CallToAction from "../src/ui/CallToAction";
12 |
13 | const useStyles = makeStyles(theme => ({
14 | heading: {
15 | maxWidth: "40em"
16 | },
17 | arrowContainer: {
18 | marginTop: "0.5em"
19 | },
20 | rowContainer: {
21 | paddingLeft: "5em",
22 | paddingRight: "5em",
23 | [theme.breakpoints.down("sm")]: {
24 | paddingLeft: "1.5em",
25 | paddingRight: "1.5em"
26 | }
27 | },
28 | paragraphContainer: {
29 | maxWidth: "30em"
30 | }
31 | }));
32 |
33 | export default function Websites(props) {
34 | const classes = useStyles();
35 | const theme = useTheme();
36 | const matchesMD = useMediaQuery(theme.breakpoints.down("md"));
37 | const matchesSM = useMediaQuery(theme.breakpoints.down("sm"));
38 | const matchesXS = useMediaQuery(theme.breakpoints.down("xs"));
39 |
40 | return (
41 |
42 |
43 |
44 | Stunning Custom Website Design | Arc Development
45 |
46 |
51 |
56 |
57 |
58 |
59 |
67 |
68 |
73 | props.setSelectedIndex(2)}
78 | >
79 |
83 |
84 |
85 |
86 |
87 |
88 |
96 | Website Development
97 |
98 |
99 |
100 |
105 | Having a website is a necessity in today’s business world. They
106 | give you one central, public location to let people know who you
107 | are, what you do, and why you’re the best at it.
108 |
109 |
114 | From simply having your hours posted to having a full fledged
115 | online store, making yourself as accessible as possible to users
116 | online drives growth and enables you to reach new customers.
117 |
118 |
119 |
120 |
121 |
122 | props.setSelectedIndex(0)}
127 | >
128 |
132 |
133 |
134 |
135 |
136 |
144 |
145 |
146 |
147 |
152 | Analytics
153 |
154 |
155 |
156 |
161 |
162 |
163 |
164 |
165 |
166 | Knowledge is power, and data is 21st Century gold. Analyzing this
167 | data can reveal hidden patterns and trends in your business,
168 | empowering you to make smarter decisions with measurable effects.
169 |
170 |
171 |
172 |
181 |
182 |
183 |
184 |
185 | E-Commerce
186 |
187 |
188 |
189 |
193 |
194 |
195 |
196 |
201 |
206 | It’s no secret that people like to shop online.
207 |
208 |
213 | In 2017 over $2.3 trillion was spent in e-commerce, and it’s time
214 | for your slice of that pie.
215 |
216 |
217 |
218 |
225 |
226 |
227 |
228 |
233 | Outreach
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
246 |
247 | Draw people in with a dazzling website. Showing off your products
248 | online is a great way to help customers decide what’s right for them
249 | before visiting in person.
250 |
251 |
252 |
253 |
262 |
263 |
264 |
265 |
266 | Search Engine
267 |
268 | Optimization
269 |
270 |
271 |
272 |
276 |
277 |
278 |
279 |
284 |
289 | How often have you ever been to the second page of Google results?
290 |
291 |
296 | If you’re like us, probably never.
297 |
298 |
303 | Customers don’t go there either, so we make sure your website is
304 | designed to end up on top.
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 | );
313 | }
314 |
--------------------------------------------------------------------------------
/public/assets/analytics.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/android.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/backArrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/backArrowDisabled.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/public/assets/background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/public/assets/background.jpg
--------------------------------------------------------------------------------
/public/assets/bell.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/biometrics.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/buildIcon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/bulb.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/camera.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/cash.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/check.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/consultationIcon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/customSoftware.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/customized.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/data.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/designIcon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/email.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/facebook.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
--------------------------------------------------------------------------------
/public/assets/footerAdornment.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/forwardArrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/forwardArrowDisabled.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/public/assets/founder.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/public/assets/founder.jpg
--------------------------------------------------------------------------------
/public/assets/globe.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/gps.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/history.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/increaseEngagement.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/info.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/instagram.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
--------------------------------------------------------------------------------
/public/assets/iphone.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/iterateIcon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/launchIcon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/maintainIcon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/mobile.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/mobileBackground.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/public/assets/mobileBackground.jpg
--------------------------------------------------------------------------------
/public/assets/mobileIcon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/outreach.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/people.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/person.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/persons.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/phone.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/reviewIcon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/send.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/seo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/software.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/stopwatch.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/swissKnife.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/twitter.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
--------------------------------------------------------------------------------
/public/assets/upload.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/users.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/vision.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/website.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/assets/websiteIcon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/public/favicon.png
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Sitemap: https://arcsoftwaredevelopment.com/sitemap_local.xml
3 | Disallow:
--------------------------------------------------------------------------------
/public/sitemap_local.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | https://arcsoftwaredevelopment.com/about
5 | 2019-12-17
6 | ,
7 | https://arcsoftwaredevelopment.com/contact
8 | 2019-12-17
9 | ,
10 | https://arcsoftwaredevelopment.com/customsoftware
11 | 2019-12-17
12 | ,
13 | https://arcsoftwaredevelopment.com/estimate
14 | 2019-12-17
15 | ,
16 | https://arcsoftwaredevelopment.com
17 | 2019-12-17
18 | ,
19 | https://arcsoftwaredevelopment.com/mobileapps
20 | 2019-12-17
21 | ,
22 | https://arcsoftwaredevelopment.com/revolution
23 | 2019-12-17
24 | ,
25 | https://arcsoftwaredevelopment.com/services
26 | 2019-12-17
27 | ,
28 | https://arcsoftwaredevelopment.com/websites
29 | 2019-12-17
30 |
31 |
--------------------------------------------------------------------------------
/scripts/formatDate.js:
--------------------------------------------------------------------------------
1 | module.exports = function formatDate(date) {
2 | var d = new Date(date),
3 | month = "" + (d.getMonth() + 1),
4 | day = "" + d.getDate(),
5 | year = d.getFullYear();
6 |
7 | if (month.length < 2) month = "0" + month;
8 | if (day.length < 2) day = "0" + day;
9 |
10 | return [year, month, day].join("-");
11 | };
12 |
13 |
--------------------------------------------------------------------------------
/scripts/getPathsObject.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 |
3 | module.exports = () => {
4 | const fileObj = {};
5 |
6 | const walkSync = dir => {
7 | // Get all files of the current directory & iterate over them
8 | const files = fs.readdirSync(dir);
9 | files.forEach(file => {
10 | // Construct whole file-path & retrieve file's stats
11 | const filePath = `${dir}${file}`;
12 | const fileStat = fs.statSync(filePath);
13 |
14 | if (fileStat.isDirectory()) {
15 | // Recurse one folder deeper
16 | walkSync(`${filePath}/`);
17 | } else {
18 | // Construct this file's pathname excluding the "pages" folder & its extension
19 | const cleanFileName = filePath
20 | .substr(0, filePath.lastIndexOf("."))
21 | .replace("pages/", "");
22 |
23 | // Add this file to `fileObj`
24 | fileObj[`/${cleanFileName}`] = {
25 | page: `/${cleanFileName}`,
26 | lastModified: fileStat.mtime
27 | };
28 | }
29 | });
30 | };
31 |
32 | // Start recursion to fill `fileObj`
33 | walkSync("pages/");
34 |
35 | return fileObj;
36 | };
37 |
38 |
--------------------------------------------------------------------------------
/scripts/sitemap.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs-extra");
2 | const getPathsObject = require("./getPathsObject");
3 | const formatDate = require("./formatDate");
4 |
5 | // ROBOTS.txt
6 | const robotsTxt = `User-agent: *
7 | Sitemap: https://arcsoftwaredevelopment.com/sitemap_local.xml
8 | Disallow:`;
9 |
10 | fs.writeFileSync("public/robots.txt", robotsTxt);
11 | console.log("robots.txt saved!");
12 |
13 | // SITEMAP.XML
14 | const pathsObj = getPathsObject();
15 | const today = formatDate(new Date());
16 | const sitemapXml = `
17 |
18 | ${Object.keys(pathsObj)
19 | .filter(path => path !== "/_document" && path !== "/_app")
20 |
21 | .map(
22 | path => `
23 | ${
24 | path === "/index"
25 | ? `https://arcsoftwaredevelopment.com`
26 | : `https://arcsoftwaredevelopment.com${path}`
27 | }
28 | ${
29 | pathsObj[path].lastModified
30 | ? formatDate(new Date(pathsObj[path].lastModified))
31 | : today
32 | }
33 | `
34 | )}
35 | `;
36 |
37 | fs.writeFileSync("public/sitemap_local.xml", sitemapXml);
38 | console.log("sitemap_local.xml saved!");
39 |
40 |
--------------------------------------------------------------------------------
/src/Link.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable jsx-a11y/anchor-has-content */
2 | import React from "react";
3 | import PropTypes from "prop-types";
4 | import clsx from "clsx";
5 | import { useRouter } from "next/router";
6 | import NextLink from "next/link";
7 | import MuiLink from "@material-ui/core/Link";
8 |
9 | const NextComposed = React.forwardRef(function NextComposed(props, ref) {
10 | const { as, href, prefetch, ...other } = props;
11 |
12 | return (
13 |
14 |
15 |
16 | );
17 | });
18 |
19 | NextComposed.propTypes = {
20 | as: PropTypes.string,
21 | href: PropTypes.string,
22 | prefetch: PropTypes.bool
23 | };
24 |
25 | // A styled version of the Next.js Link component:
26 | // https://nextjs.org/docs/#with-link
27 | function Link(props) {
28 | const {
29 | activeClassName = "active",
30 | className: classNameProps,
31 | innerRef,
32 | naked,
33 | ...other
34 | } = props;
35 | const router = useRouter();
36 |
37 | const className = clsx(classNameProps, {
38 | [activeClassName]: router.pathname === props.href && activeClassName
39 | });
40 |
41 | if (naked) {
42 | return ;
43 | }
44 |
45 | return (
46 |
53 | );
54 | }
55 |
56 | Link.propTypes = {
57 | activeClassName: PropTypes.string,
58 | as: PropTypes.string,
59 | className: PropTypes.string,
60 | href: PropTypes.string,
61 | innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
62 | naked: PropTypes.bool,
63 | onClick: PropTypes.func,
64 | prefetch: PropTypes.bool
65 | };
66 |
67 | export default React.forwardRef((props, ref) => (
68 |
69 | ));
70 |
--------------------------------------------------------------------------------
/src/ProTip.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { makeStyles } from '@material-ui/core/styles';
3 | import Link from '@material-ui/core/Link';
4 | import SvgIcon from '@material-ui/core/SvgIcon';
5 | import Typography from '@material-ui/core/Typography';
6 |
7 | function LightBulbIcon(props) {
8 | return (
9 |
10 |
11 |
12 | );
13 | }
14 |
15 | const useStyles = makeStyles(theme => ({
16 | root: {
17 | margin: theme.spacing(6, 0, 3),
18 | },
19 | lightBulb: {
20 | verticalAlign: 'middle',
21 | marginRight: theme.spacing(1),
22 | },
23 | }));
24 |
25 | export default function ProTip() {
26 | const classes = useStyles();
27 | return (
28 |
29 |
30 | Pro tip: See more{' '}
31 | templates on the
32 | Material-UI documentation.
33 |
34 | );
35 | }
36 |
--------------------------------------------------------------------------------
/src/animations/documentsAnimation/data.js:
--------------------------------------------------------------------------------
1 | import img0 from "./img_0.png";
2 | import img1 from "./img_1.png";
3 |
4 | export default {
5 | v: "5.5.9",
6 | fr: 29.9700012207031,
7 | ip: 0,
8 | op: 180.00000733155,
9 | w: 636,
10 | h: 646,
11 | nm: "Digitail Documents and Data Animation",
12 | ddd: 0,
13 | assets: [
14 | { id: "image_0", w: 372, h: 492, u: "", p: img0, e: 0 },
15 | { id: "image_1", w: 604, h: 317, u: "", p: img1, e: 0 },
16 | {
17 | id: "comp_0",
18 | layers: [
19 | {
20 | ddd: 0,
21 | ind: 1,
22 | ty: 2,
23 | nm: "Papers",
24 | refId: "image_0",
25 | sr: 1,
26 | ks: {
27 | o: { a: 0, k: 100, ix: 11 },
28 | r: { a: 0, k: 0, ix: 10 },
29 | p: { a: 0, k: [971, 326.5, 0], ix: 2 },
30 | a: { a: 0, k: [185.75, 245.75, 0], ix: 1 },
31 | s: {
32 | a: 1,
33 | k: [
34 | {
35 | i: { x: [0, 0, 0.667], y: [1, 1, 1] },
36 | o: { x: [0.333, 0.333, 0.333], y: [0, 0, 0] },
37 | t: 30,
38 | s: [0, 0, 100]
39 | },
40 | {
41 | i: { x: [0.667, 0.667, 0.667], y: [1, 1, 1] },
42 | o: { x: [0.333, 0.333, 0.333], y: [0, 0, 0] },
43 | t: 90,
44 | s: [100, 100, 100]
45 | },
46 | {
47 | i: { x: [0, 0, 0.667], y: [1, 1, 1] },
48 | o: { x: [0.736, 0.736, 0.333], y: [0, 0, 0] },
49 | t: 135,
50 | s: [100, 100, 100]
51 | },
52 | { t: 180.00000733155, s: [0, 0, 100] }
53 | ],
54 | ix: 6
55 | }
56 | },
57 | ao: 0,
58 | ip: 0,
59 | op: 180.00000733155,
60 | st: 0,
61 | bm: 0
62 | },
63 | {
64 | ddd: 0,
65 | ind: 2,
66 | ty: 2,
67 | nm: "Layer 1",
68 | refId: "image_1",
69 | sr: 1,
70 | ks: {
71 | o: { a: 0, k: 100, ix: 11 },
72 | r: { a: 0, k: 0, ix: 10 },
73 | p: { a: 0, k: [960, 540, 0], ix: 2 },
74 | a: { a: 0, k: [301.921, 158.427, 0], ix: 1 },
75 | s: { a: 0, k: [100, 100, 100], ix: 6 }
76 | },
77 | ao: 0,
78 | ip: 0,
79 | op: 180.00000733155,
80 | st: 0,
81 | bm: 0
82 | }
83 | ]
84 | }
85 | ],
86 | layers: [
87 | {
88 | ddd: 0,
89 | ind: 1,
90 | ty: 0,
91 | nm: "Digital Documents and Data",
92 | refId: "comp_0",
93 | sr: 1,
94 | ks: {
95 | o: { a: 0, k: 100, ix: 11 },
96 | r: { a: 0, k: 0, ix: 10 },
97 | p: { a: 0, k: [296, 482, 0], ix: 2 },
98 | a: { a: 0, k: [960, 540, 0], ix: 1 },
99 | s: { a: 0, k: [100, 100, 100], ix: 6 }
100 | },
101 | ao: 0,
102 | w: 1920,
103 | h: 1080,
104 | ip: 0,
105 | op: 180.00000733155,
106 | st: 0,
107 | bm: 0
108 | }
109 | ],
110 | markers: []
111 | };
112 |
--------------------------------------------------------------------------------
/src/animations/documentsAnimation/img_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/documentsAnimation/img_0.png
--------------------------------------------------------------------------------
/src/animations/documentsAnimation/img_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/documentsAnimation/img_1.png
--------------------------------------------------------------------------------
/src/animations/estimateAnimation/data.json:
--------------------------------------------------------------------------------
1 | {"v":"5.5.9","fr":29.9700012207031,"ip":0,"op":100.000004073084,"w":1920,"h":1080,"nm":"Get Estimate Animation","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Ball/Get Estimate Animation Outlines","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.568,"y":0.568},"o":{"x":0.167,"y":0.167},"t":0,"s":[-320,-192,0],"to":[159.999,0,0],"ti":[-159.999,0,0]},{"i":{"x":0.643,"y":0.643},"o":{"x":0.303,"y":0.303},"t":49.999,"s":[-0.002,192,0],"to":[160,0,0],"ti":[-160,0,0]},{"i":{"x":0.662,"y":0.662},"o":{"x":0.323,"y":0.323},"t":99.999,"s":[319.998,-192,0],"to":[159.998,0,0],"ti":[-159.998,0,0]},{"i":{"x":0.675,"y":0.675},"o":{"x":0.337,"y":0.337},"t":149.999,"s":[639.994,192,0],"to":[160.001,0,0],"ti":[-160.001,0,0]},{"i":{"x":0.696,"y":0.696},"o":{"x":0.354,"y":0.354},"t":199.999,"s":[959.995,-192,0],"to":[160.001,0,0],"ti":[-160.001,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.442,"y":0.442},"t":249.999,"s":[1279.998,192,0],"to":[160.001,0,0],"ti":[-160.001,0,0]},{"t":300.00001221925,"s":[1600,-192,0]}],"ix":2},"a":{"a":0,"k":[41,41,0],"ix":1},"s":{"a":0,"k":[150,150,100],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0.043137256056,0.447058826685,0.72549021244,1],"ix":3}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-22.368],[22.368,0],[0,22.368],[-22.368,0]],"o":[[0,22.368],[-22.368,0],[0,-22.368],[22.368,0]],"v":[[40.5,0],[0,40.5],[-40.5,0],[0,-40.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.043000000598,0.447000002394,0.725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.75,40.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100.000004073084,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[2880,546,0],"to":[-320,0,0],"ti":[320,0,0]},{"t":300.00001221925,"s":[960,546,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-159.999,0],[-160,0],[-159.998,0],[-160.001,0],[-160.001,0],[-160.001,0]],"o":[[159.999,0],[160,0],[159.998,0],[160.001,0],[160.001,0],[160.001,0],[0,0]],"v":[[-960,-192],[-640.002,192],[-320.002,-192],[-0.006,192],[319.995,-192],[639.998,192],[960,-192]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100.000004073084,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[960,546,0],"to":[-320,0,0],"ti":[320,0,0]},{"t":300.00001221925,"s":[-960,546,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-159.999,0],[-160,0],[-159.998,0],[-160.001,0],[-160.001,0],[-160.001,0]],"o":[[159.999,0],[160,0],[159.998,0],[160.001,0],[160.001,0],[160.001,0],[0,0]],"v":[[-960,-192],[-640.002,192],[-320.002,-192],[-0.006,192],[319.995,-192],[639.998,192],[960,-192]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100.000004073084,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":1,"nm":"White Solid 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":1920,"sh":1080,"sc":"#ffffff","ip":0,"op":100.000004073084,"st":0,"bm":0}],"markers":[]}
--------------------------------------------------------------------------------
/src/animations/landinganimation/data.js:
--------------------------------------------------------------------------------
1 | import img_0 from "./img_0.png";
2 | import img_1 from "./img_1.png";
3 | import img_2 from "./img_2.png";
4 | import img_3 from "./img_3.png";
5 | import img_4 from "./img_4.png";
6 |
7 | export default {
8 | v: "5.5.5",
9 | fr: 29.9700012207031,
10 | ip: 0,
11 | op: 180.00000733155,
12 | w: 808,
13 | h: 595,
14 | nm: "Bringing West Coast Technology to the Midwest 2",
15 | ddd: 0,
16 | assets: [
17 | {
18 | id: "image_0",
19 | w: 173,
20 | h: 172,
21 | u: "",
22 | p: img_0,
23 | e: 0
24 | },
25 | {
26 | id: "image_1",
27 | w: 204,
28 | h: 154,
29 | u: "",
30 | p: img_1,
31 | e: 0
32 | },
33 | {
34 | id: "image_2",
35 | w: 182,
36 | h: 182,
37 | u: "",
38 | p: img_2,
39 | e: 0
40 | },
41 | {
42 | id: "image_3",
43 | w: 233,
44 | h: 89,
45 | u: "",
46 | p: img_3,
47 | e: 0
48 | },
49 | {
50 | id: "image_4",
51 | w: 1083,
52 | h: 366,
53 | u: "",
54 | p: img_4,
55 | e: 0
56 | }
57 | ],
58 | layers: [
59 | {
60 | ddd: 0,
61 | ind: 1,
62 | ty: 2,
63 | nm: "Left Hand",
64 | refId: "image_0",
65 | sr: 1,
66 | ks: {
67 | o: { a: 0, k: 100, ix: 11 },
68 | r: { a: 0, k: 0, ix: 10 },
69 | p: { a: 0, k: [301.585, 84.577, 0], ix: 2 },
70 | a: { a: 0, k: [86.027, 85.827, 0], ix: 1 },
71 | s: { a: 0, k: [100, 100, 100], ix: 6 }
72 | },
73 | ao: 0,
74 | ip: 0,
75 | op: 180.00000733155,
76 | st: 0,
77 | bm: 0
78 | },
79 | {
80 | ddd: 0,
81 | ind: 2,
82 | ty: 2,
83 | nm: "Right Hand",
84 | refId: "image_1",
85 | sr: 1,
86 | ks: {
87 | o: { a: 0, k: 100, ix: 11 },
88 | r: { a: 0, k: 0, ix: 10 },
89 | p: { a: 0, k: [577.243, 186.195, 0], ix: 2 },
90 | a: { a: 0, k: [101.519, 76.729, 0], ix: 1 },
91 | s: { a: 0, k: [100, 100, 100], ix: 6 }
92 | },
93 | ao: 0,
94 | ip: 0,
95 | op: 180.00000733155,
96 | st: 0,
97 | bm: 0
98 | },
99 | {
100 | ddd: 0,
101 | ind: 3,
102 | ty: 2,
103 | nm: "CPU",
104 | refId: "image_2",
105 | sr: 1,
106 | ks: {
107 | o: { a: 0, k: 100, ix: 11 },
108 | r: { a: 0, k: 0, ix: 10 },
109 | p: {
110 | a: 1,
111 | k: [
112 | {
113 | i: { x: 0.667, y: 1 },
114 | o: { x: 0.333, y: 0 },
115 | t: 0,
116 | s: [346.187, 111.675, 0],
117 | to: [36.5, 6.103, 0],
118 | ti: [-36.5, -6.103, 0]
119 | },
120 | {
121 | i: { x: 0.667, y: 0.667 },
122 | o: { x: 0.333, y: 0.333 },
123 | t: 60,
124 | s: [565.187, 148.293, 0],
125 | to: [0, 0, 0],
126 | ti: [0, 0, 0]
127 | },
128 | {
129 | i: { x: 0.667, y: 1 },
130 | o: { x: 0.333, y: 0 },
131 | t: 90,
132 | s: [565.187, 148.293, 0],
133 | to: [-36.5, -6.103, 0],
134 | ti: [36.5, 6.103, 0]
135 | },
136 | { t: 150.000006109625, s: [346.187, 111.675, 0] }
137 | ],
138 | ix: 2
139 | },
140 | a: { a: 0, k: [90.735, 90.735, 0], ix: 1 },
141 | s: { a: 0, k: [100, 100, 100], ix: 6 }
142 | },
143 | ao: 0,
144 | ip: 0,
145 | op: 180.00000733155,
146 | st: 0,
147 | bm: 0
148 | },
149 | {
150 | ddd: 0,
151 | ind: 4,
152 | ty: 2,
153 | nm: "Right Fingers",
154 | refId: "image_3",
155 | sr: 1,
156 | ks: {
157 | o: { a: 0, k: 100, ix: 11 },
158 | r: { a: 0, k: 0, ix: 10 },
159 | p: { a: 0, k: [606.503, 189.626, 0], ix: 2 },
160 | a: { a: 0, k: [116.495, 44.068, 0], ix: 1 },
161 | s: { a: 0, k: [100, 100, 100], ix: 6 }
162 | },
163 | ao: 0,
164 | ip: 0,
165 | op: 180.00000733155,
166 | st: 0,
167 | bm: 0
168 | },
169 | {
170 | ddd: 0,
171 | ind: 5,
172 | ty: 2,
173 | nm: "Waves of Grain",
174 | refId: "image_4",
175 | sr: 1,
176 | ks: {
177 | o: { a: 0, k: 100, ix: 11 },
178 | r: { a: 0, k: 0, ix: 10 },
179 | p: { a: 0, k: [437.455, 445.013, 0], ix: 2 },
180 | a: { a: 0, k: [541.482, 182.861, 0], ix: 1 },
181 | s: { a: 0, k: [100, 100, 100], ix: 6 }
182 | },
183 | ao: 0,
184 | ip: 0,
185 | op: 180.00000733155,
186 | st: 0,
187 | bm: 0
188 | }
189 | ],
190 | markers: []
191 | };
192 |
--------------------------------------------------------------------------------
/src/animations/landinganimation/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "v": "5.5.5",
3 | "fr": 29.9700012207031,
4 | "ip": 0,
5 | "op": 180.00000733155,
6 | "w": 808,
7 | "h": 595,
8 | "nm": "Bringing West Coast Technology to the Midwest 2",
9 | "ddd": 0,
10 | "assets": [
11 | {
12 | "id": "image_0",
13 | "w": 173,
14 | "h": 172,
15 | "u": "./",
16 | "p": "img_0.png",
17 | "e": 0
18 | },
19 | {
20 | "id": "image_1",
21 | "w": 204,
22 | "h": 154,
23 | "u": "../images/landingAnimation/",
24 | "p": "img_1.png",
25 | "e": 0
26 | },
27 | {
28 | "id": "image_2",
29 | "w": 182,
30 | "h": 182,
31 | "u": "../images/landingAnimation/",
32 | "p": "img_2.png",
33 | "e": 0
34 | },
35 | {
36 | "id": "image_3",
37 | "w": 233,
38 | "h": 89,
39 | "u": "../images/landingAnimation/",
40 | "p": "img_3.png",
41 | "e": 0
42 | },
43 | {
44 | "id": "image_4",
45 | "w": 1083,
46 | "h": 366,
47 | "u": "../images/landingAnimation/",
48 | "p": "img_4.png",
49 | "e": 0
50 | }
51 | ],
52 | "layers": [
53 | {
54 | "ddd": 0,
55 | "ind": 1,
56 | "ty": 2,
57 | "nm": "Left Hand",
58 | "refId": "image_0",
59 | "sr": 1,
60 | "ks": {
61 | "o": { "a": 0, "k": 100, "ix": 11 },
62 | "r": { "a": 0, "k": 0, "ix": 10 },
63 | "p": { "a": 0, "k": [301.585, 84.577, 0], "ix": 2 },
64 | "a": { "a": 0, "k": [86.027, 85.827, 0], "ix": 1 },
65 | "s": { "a": 0, "k": [100, 100, 100], "ix": 6 }
66 | },
67 | "ao": 0,
68 | "ip": 0,
69 | "op": 180.00000733155,
70 | "st": 0,
71 | "bm": 0
72 | },
73 | {
74 | "ddd": 0,
75 | "ind": 2,
76 | "ty": 2,
77 | "nm": "Right Hand",
78 | "refId": "image_1",
79 | "sr": 1,
80 | "ks": {
81 | "o": { "a": 0, "k": 100, "ix": 11 },
82 | "r": { "a": 0, "k": 0, "ix": 10 },
83 | "p": { "a": 0, "k": [577.243, 186.195, 0], "ix": 2 },
84 | "a": { "a": 0, "k": [101.519, 76.729, 0], "ix": 1 },
85 | "s": { "a": 0, "k": [100, 100, 100], "ix": 6 }
86 | },
87 | "ao": 0,
88 | "ip": 0,
89 | "op": 180.00000733155,
90 | "st": 0,
91 | "bm": 0
92 | },
93 | {
94 | "ddd": 0,
95 | "ind": 3,
96 | "ty": 2,
97 | "nm": "CPU",
98 | "refId": "image_2",
99 | "sr": 1,
100 | "ks": {
101 | "o": { "a": 0, "k": 100, "ix": 11 },
102 | "r": { "a": 0, "k": 0, "ix": 10 },
103 | "p": {
104 | "a": 1,
105 | "k": [
106 | {
107 | "i": { "x": 0.667, "y": 1 },
108 | "o": { "x": 0.333, "y": 0 },
109 | "t": 0,
110 | "s": [346.187, 111.675, 0],
111 | "to": [36.5, 6.103, 0],
112 | "ti": [-36.5, -6.103, 0]
113 | },
114 | {
115 | "i": { "x": 0.667, "y": 0.667 },
116 | "o": { "x": 0.333, "y": 0.333 },
117 | "t": 60,
118 | "s": [565.187, 148.293, 0],
119 | "to": [0, 0, 0],
120 | "ti": [0, 0, 0]
121 | },
122 | {
123 | "i": { "x": 0.667, "y": 1 },
124 | "o": { "x": 0.333, "y": 0 },
125 | "t": 90,
126 | "s": [565.187, 148.293, 0],
127 | "to": [-36.5, -6.103, 0],
128 | "ti": [36.5, 6.103, 0]
129 | },
130 | { "t": 150.000006109625, "s": [346.187, 111.675, 0] }
131 | ],
132 | "ix": 2
133 | },
134 | "a": { "a": 0, "k": [90.735, 90.735, 0], "ix": 1 },
135 | "s": { "a": 0, "k": [100, 100, 100], "ix": 6 }
136 | },
137 | "ao": 0,
138 | "ip": 0,
139 | "op": 180.00000733155,
140 | "st": 0,
141 | "bm": 0
142 | },
143 | {
144 | "ddd": 0,
145 | "ind": 4,
146 | "ty": 2,
147 | "nm": "Right Fingers",
148 | "refId": "image_3",
149 | "sr": 1,
150 | "ks": {
151 | "o": { "a": 0, "k": 100, "ix": 11 },
152 | "r": { "a": 0, "k": 0, "ix": 10 },
153 | "p": { "a": 0, "k": [606.503, 189.626, 0], "ix": 2 },
154 | "a": { "a": 0, "k": [116.495, 44.068, 0], "ix": 1 },
155 | "s": { "a": 0, "k": [100, 100, 100], "ix": 6 }
156 | },
157 | "ao": 0,
158 | "ip": 0,
159 | "op": 180.00000733155,
160 | "st": 0,
161 | "bm": 0
162 | },
163 | {
164 | "ddd": 0,
165 | "ind": 5,
166 | "ty": 2,
167 | "nm": "Waves of Grain",
168 | "refId": "image_4",
169 | "sr": 1,
170 | "ks": {
171 | "o": { "a": 0, "k": 100, "ix": 11 },
172 | "r": { "a": 0, "k": 0, "ix": 10 },
173 | "p": { "a": 0, "k": [437.455, 445.013, 0], "ix": 2 },
174 | "a": { "a": 0, "k": [541.482, 182.861, 0], "ix": 1 },
175 | "s": { "a": 0, "k": [100, 100, 100], "ix": 6 }
176 | },
177 | "ao": 0,
178 | "ip": 0,
179 | "op": 180.00000733155,
180 | "st": 0,
181 | "bm": 0
182 | }
183 | ],
184 | "markers": []
185 | }
186 |
--------------------------------------------------------------------------------
/src/animations/landinganimation/img_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/landinganimation/img_0.png
--------------------------------------------------------------------------------
/src/animations/landinganimation/img_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/landinganimation/img_1.png
--------------------------------------------------------------------------------
/src/animations/landinganimation/img_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/landinganimation/img_2.png
--------------------------------------------------------------------------------
/src/animations/landinganimation/img_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/landinganimation/img_3.png
--------------------------------------------------------------------------------
/src/animations/landinganimation/img_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/landinganimation/img_4.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_0.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_1.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_10.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_11.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_12.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_13.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_14.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_15.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_16.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_17.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_18.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_2.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_3.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_4.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_5.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_6.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_7.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_8.png
--------------------------------------------------------------------------------
/src/animations/uxAnimation/img_9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zreecespieces/material-ui-course-nextjs/0cbb072cb21b4a0cbf59fb416972355fad8ed95e/src/animations/uxAnimation/img_9.png
--------------------------------------------------------------------------------
/src/ui/ButtonArrow.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | export default function ButtonArrow(props) {
4 | return (
5 |
15 | );
16 | }
17 |
--------------------------------------------------------------------------------
/src/ui/CallToAction.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactGA from "react-ga";
3 | import Grid from "@material-ui/core/Grid";
4 | import Typography from "@material-ui/core/Typography";
5 | import { makeStyles, useTheme } from "@material-ui/core/styles";
6 | import Link from "../Link";
7 | import Button from "@material-ui/core/Button";
8 | import ButtonArrow from "./ButtonArrow";
9 | import useMediaQuery from "@material-ui/core/useMediaQuery";
10 |
11 | const useStyles = makeStyles(theme => ({
12 | learnButton: {
13 | ...theme.typography.learnButton,
14 | fontSize: "0.7rem",
15 | height: 35,
16 | padding: 5,
17 | [theme.breakpoints.down("sm")]: {
18 | marginBottom: "2em"
19 | }
20 | },
21 | background: {
22 | backgroundImage: `url("/assets/background.jpg")`,
23 | backgroundPosition: "center",
24 | backgroundSize: "cover",
25 | backgroundAttachment: "fixed",
26 | backgroundRepeat: "no-repeat",
27 | height: "60em",
28 | width: "100%",
29 | [theme.breakpoints.down("md")]: {
30 | backgroundImage: `url("/assets/mobileBackground.jpg")`,
31 | backgroundAttachment: "inherit"
32 | }
33 | },
34 | estimateButton: {
35 | ...theme.typography.estimate,
36 | borderRadius: 50,
37 | height: 80,
38 | width: 205,
39 | backgroundColor: theme.palette.common.orange,
40 | fontSize: "1.5rem",
41 | marginRight: "5em",
42 | marginLeft: "2em",
43 | "&:hover": {
44 | backgroundColor: theme.palette.secondary.light
45 | },
46 | [theme.breakpoints.down("sm")]: {
47 | marginLeft: 0,
48 | marginRight: 0
49 | }
50 | }
51 | }));
52 |
53 | export default function CallToAction(props) {
54 | const classes = useStyles();
55 | const theme = useTheme();
56 | const matchesSM = useMediaQuery(theme.breakpoints.down("sm"));
57 |
58 | return (
59 |
66 |
73 |
74 |
75 |
80 | Simple Software.
81 | {matchesSM &&
}
82 |
83 | Revolutionary Results.
84 |
85 |
90 | Take advantage of the 21st Century.
91 |
92 |
93 |
107 |
108 |
109 |
110 |
111 |
112 |
127 |
128 |
129 | );
130 | }
131 |
--------------------------------------------------------------------------------
/src/ui/Fonts.js:
--------------------------------------------------------------------------------
1 | const FontFaceObserver = require("fontfaceobserver");
2 |
3 | const Fonts = () => {
4 | const link = document.createElement("link");
5 | link.href =
6 | "https://fonts.googleapis.com/css?family=Pacifico|Raleway:100,400,400i,700|Roboto:300,400,500,700&display=swap";
7 | link.rel = "stylesheet";
8 |
9 | document.head.appendChild(link);
10 |
11 | const roboto = new FontFaceObserver("Roboto");
12 |
13 | roboto.load().then(() => {
14 | document.documentElement.classList.add("roboto");
15 | });
16 |
17 | const pacifico = new FontFaceObserver("Pacifico");
18 |
19 | pacifico.load().then(() => {
20 | document.documentElement.classList.add("pacifico");
21 | });
22 |
23 | const raleway = new FontFaceObserver("Raleway");
24 |
25 | raleway.load().then(() => {
26 | document.documentElement.classList.add("raleway");
27 | });
28 | };
29 |
30 | export default Fonts;
31 |
--------------------------------------------------------------------------------
/src/ui/Footer.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Link from "../Link";
3 | import { makeStyles } from "@material-ui/core/styles";
4 | import Grid from "@material-ui/core/Grid";
5 | import Hidden from "@material-ui/core/Hidden";
6 |
7 | const useStyles = makeStyles(theme => ({
8 | footer: {
9 | backgroundColor: theme.palette.common.blue,
10 | width: "100%",
11 | zIndex: 1302,
12 | position: "relative"
13 | },
14 | adornment: {
15 | width: "25em",
16 | verticalAlign: "bottom",
17 | [theme.breakpoints.down("md")]: {
18 | width: "21em"
19 | },
20 | [theme.breakpoints.down("xs")]: {
21 | width: "15em"
22 | }
23 | },
24 | mainContainer: {
25 | position: "absolute"
26 | },
27 | link: {
28 | color: "white",
29 | fontFamily: "Arial",
30 | fontSize: "0.75rem",
31 | fontWeight: "bold",
32 | textDecoration: "none"
33 | },
34 | gridItem: {
35 | margin: "3em"
36 | },
37 | icon: {
38 | height: "4em",
39 | width: "4em",
40 | [theme.breakpoints.down("xs")]: {
41 | height: "2.5em",
42 | width: "2.5em"
43 | }
44 | },
45 | socialContainer: {
46 | position: "absolute",
47 | marginTop: "-6em",
48 | right: "1.5em",
49 | [theme.breakpoints.down("xs")]: {
50 | right: "0.6em"
51 | }
52 | }
53 | }));
54 |
55 | export default function Footer(props) {
56 | const classes = useStyles();
57 |
58 | return (
59 |
292 | );
293 | }
294 |
--------------------------------------------------------------------------------
/src/ui/Theme.js:
--------------------------------------------------------------------------------
1 | import { createMuiTheme } from "@material-ui/core/styles";
2 |
3 | const arcBlue = "#0B72B9";
4 | const arcOrange = "#FFBA60";
5 | const arcGrey = "#868686";
6 |
7 | export default createMuiTheme({
8 | palette: {
9 | common: {
10 | blue: arcBlue,
11 | orange: arcOrange
12 | },
13 | primary: {
14 | main: arcBlue
15 | },
16 | secondary: {
17 | main: arcOrange
18 | }
19 | },
20 | typography: {
21 | tab: {
22 | fontFamily: "Raleway",
23 | textTransform: "none",
24 | fontWeight: 700,
25 | color: "white",
26 | fontSize: "1rem"
27 | },
28 | estimate: {
29 | fontFamily: "Pacifico",
30 | fontSize: "1rem",
31 | textTransform: "none",
32 | color: "white"
33 | },
34 | h1: {
35 | fontFamily: "Raleway",
36 | fontWeight: 700,
37 | fontSize: "2.5rem",
38 | color: arcBlue,
39 | lineHeight: 1.5
40 | },
41 | h3: {
42 | fontFamily: "Pacifico",
43 | fontSize: "2.5rem",
44 | color: arcBlue
45 | },
46 | h4: {
47 | fontFamily: "Raleway",
48 | fontSize: "1.75rem",
49 | color: arcBlue,
50 | fontWeight: 700
51 | },
52 | h6: {
53 | fontWeight: 500,
54 | fontFamily: "Raleway",
55 | color: arcBlue,
56 | lineHeight: 1
57 | },
58 | subtitle1: {
59 | fontSize: "1.25rem",
60 | fontWeight: 300,
61 | color: arcGrey
62 | },
63 | subtitle2: {
64 | color: "white",
65 | fontWeight: 300,
66 | fontSize: "1.25rem"
67 | },
68 | body1: {
69 | fontSize: "1.25rem",
70 | color: arcGrey,
71 | fontWeight: 300
72 | },
73 | caption: {
74 | fontSize: "1rem",
75 | fontWeight: 300,
76 | color: arcGrey
77 | },
78 | learnButton: {
79 | borderColor: arcBlue,
80 | borderWidth: 2,
81 | textTransform: "none",
82 | color: arcBlue,
83 | borderRadius: 50,
84 | fontFamily: "Roboto",
85 | fontWeight: "bold"
86 | }
87 | },
88 | overrides: {
89 | MuiInputLabel: {
90 | root: {
91 | color: arcBlue,
92 | fontSize: "1rem"
93 | }
94 | },
95 | MuiInput: {
96 | root: {
97 | color: arcGrey,
98 | fontWeight: 300
99 | },
100 | underline: {
101 | "&:before": {
102 | borderBottom: `2px solid ${arcBlue}`
103 | },
104 | "&:hover:not($disabled):not($focused):not($error):before": {
105 | borderBottom: `2px solid ${arcBlue}`
106 | }
107 | }
108 | }
109 | }
110 | });
111 |
--------------------------------------------------------------------------------