├── theme
├── index.js
├── gatsby-browser.js
├── assets
│ ├── appicon.png
│ └── particles.json
├── src
│ ├── styles
│ │ ├── global.css
│ │ └── colors.css
│ ├── pages
│ │ ├── index.module.css
│ │ └── index.js
│ ├── components
│ │ ├── about.module.css
│ │ ├── links.module.css
│ │ ├── about.js
│ │ └── links.js
│ └── utils
│ │ └── icons.js
├── .prettierrc
├── LICENSE
├── package.json
├── .gitignore
├── gatsby-config.js
├── README.md
└── gatsby-node.js
├── netlify.toml
├── package.json
├── demo
├── static
│ └── favicon.ico
├── .prettierrc
├── gatsby-config.js
├── package.json
├── LICENSE
├── .gitignore
└── README.md
├── .gitignore
└── README.md
/theme/index.js:
--------------------------------------------------------------------------------
1 | // boop
2 |
--------------------------------------------------------------------------------
/netlify.toml:
--------------------------------------------------------------------------------
1 | [build]
2 | base = "demo"
3 | command = "yarn build"
4 | publish = "demo/public"
5 |
--------------------------------------------------------------------------------
/theme/gatsby-browser.js:
--------------------------------------------------------------------------------
1 | import './src/styles/global.css';
2 | import './src/styles/colors.css';
3 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "workspaces": [
4 | "theme",
5 | "demo"
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/demo/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Safi1012/gatsby-theme-minimalist/HEAD/demo/static/favicon.ico
--------------------------------------------------------------------------------
/theme/assets/appicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Safi1012/gatsby-theme-minimalist/HEAD/theme/assets/appicon.png
--------------------------------------------------------------------------------
/theme/src/styles/global.css:
--------------------------------------------------------------------------------
1 | * {
2 | font-family: 'Open Sans', sans-serif;
3 | }
4 |
5 | body {
6 | margin: 0;
7 | }
8 |
--------------------------------------------------------------------------------
/theme/src/styles/colors.css:
--------------------------------------------------------------------------------
1 | * {
2 | --primary-color: #0873e8;
3 | --text-color-dark-light: #d4d4d4;
4 | --text-color-dark: #4a4a4a;
5 | }
6 |
--------------------------------------------------------------------------------
/demo/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "endOfLine": "lf",
3 | "semi": false,
4 | "singleQuote": false,
5 | "tabWidth": 2,
6 | "trailingComma": "es5"
7 | }
8 |
--------------------------------------------------------------------------------
/theme/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "endOfLine": "lf",
3 | "semi": false,
4 | "singleQuote": false,
5 | "tabWidth": 2,
6 | "trailingComma": "es5"
7 | }
8 |
--------------------------------------------------------------------------------
/demo/gatsby-config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Configure your Gatsby site with this file.
3 | *
4 | * See: https://www.gatsbyjs.org/docs/gatsby-config/
5 | */
6 |
7 | module.exports = {
8 | plugins: ["gatsby-theme-minimalist"],
9 | }
10 |
--------------------------------------------------------------------------------
/theme/src/pages/index.module.css:
--------------------------------------------------------------------------------
1 | .particles {
2 | height: 100vh;
3 | position: absolute;
4 | top: 0;
5 | right: 0;
6 | left: 0;
7 | }
8 |
9 | .outerContainer {
10 | display: flex;
11 | height: 100vh;
12 | align-items: center;
13 | justify-content: center;
14 | }
15 |
16 | .container {
17 | margin: 0 0.5em;
18 | z-index: 1;
19 | padding-bottom: 6.5em;
20 | }
21 |
--------------------------------------------------------------------------------
/theme/src/components/about.module.css:
--------------------------------------------------------------------------------
1 | .headline {
2 | font-size: 1.7rem;
3 | color: var(--primary-color);
4 | font-weight: 300;
5 | }
6 |
7 | .underline {
8 | font-size: 1.125rem;
9 | color: var(--text-color-dark);
10 | }
11 |
12 | @media (min-width: 576px) {
13 | .headline {
14 | font-size: 2.5rem;
15 | }
16 |
17 | .underline {
18 | font-size: 1.5rem;
19 | }
20 | }
--------------------------------------------------------------------------------
/theme/src/utils/icons.js:
--------------------------------------------------------------------------------
1 | import * as Fa from 'react-icons/fa'
2 | import * as Io from 'react-icons/io'
3 | import * as Md from 'react-icons/md'
4 | import * as Ti from 'react-icons/ti'
5 | import * as Go from 'react-icons/go'
6 | import * as Fi from 'react-icons/fi'
7 | import * as Gi from 'react-icons/gi'
8 | import * as Wi from 'react-icons/wi'
9 | import * as Di from 'react-icons/di'
10 |
11 | export {
12 | Fa,
13 | Io,
14 | Md,
15 | Ti,
16 | Go,
17 | Fi,
18 | Gi,
19 | Wi,
20 | Di
21 | }
22 |
--------------------------------------------------------------------------------
/theme/src/components/links.module.css:
--------------------------------------------------------------------------------
1 | .links {
2 | display: flex;
3 | justify-content: center;
4 | }
5 |
6 | .links a:hover {
7 | border-bottom: 1px solid var(--primary-color);
8 | margin-bottom: -1px;
9 | }
10 |
11 | .links svg {
12 | width: 2rem;
13 | height: 2rem;
14 | color: var(--text-color-dark);
15 | padding: 0.75rem;
16 | }
17 |
18 | @media (min-width: 576px) {
19 | .links a {
20 | margin: 0 0.5rem;
21 | }
22 |
23 | .links svg {
24 | width: 2.5rem;
25 | height: 2.5rem;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "name": "demo",
4 | "version": "0.1.0",
5 | "license": "MIT",
6 | "scripts": {
7 | "build": "gatsby build",
8 | "develop": "gatsby develop",
9 | "format": "prettier --write src/**/*.{js,jsx}",
10 | "start": "npm run develop",
11 | "serve": "gatsby serve",
12 | "test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\""
13 | },
14 | "dependencies": {
15 | "gatsby": "^2.13.1",
16 | "gatsby-theme-minimalist": "*",
17 | "react": "^16.8.6",
18 | "react-dom": "^16.8.6"
19 | },
20 | "devDependencies": {
21 | "prettier": "^1.18.2"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/theme/src/components/about.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { graphql, useStaticQuery } from 'gatsby'
3 | import styles from './about.module.css'
4 |
5 | export default () => {
6 | const data = useStaticQuery(graphql`
7 | query {
8 | minimalistConfig(id: {eq: "gatsby-theme-minimalist-config"}) {
9 | headline
10 | subHeadline
11 | }
12 | }
13 | `)
14 |
15 | return (
16 | <>
17 |
{data.minimalistConfig.headline}
18 |
19 | >
20 | )
21 | }
22 |
23 |
--------------------------------------------------------------------------------
/demo/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Gatsby
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/theme/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Gatsby
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/theme/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gatsby-theme-minimalist",
3 | "author": "Filipe Santos Correa ",
4 | "repository": {
5 | "type": "git",
6 | "url": "https://github.com/Safi1012/gatsby-theme-minimalist.git"
7 | },
8 | "version": "1.0.7",
9 | "main": "index.js",
10 | "license": "MIT",
11 | "peerDependencies": {
12 | "gatsby": "^2.13.1",
13 | "react": "^16.8.6",
14 | "react-dom": "^16.8.6"
15 | },
16 | "devDependencies": {
17 | "gatsby": "^2.13.1",
18 | "react": "^16.8.6",
19 | "react-dom": "^16.8.6"
20 | },
21 | "scripts": {
22 | "build": "gatsby build",
23 | "develop": "gatsby develop",
24 | "format": "prettier --write src/**/*.{js,jsx}",
25 | "start": "npm run develop",
26 | "serve": "gatsby serve"
27 | },
28 | "dependencies": {
29 | "gatsby-plugin-offline": "^2.2.4",
30 | "gatsby-plugin-prefetch-google-fonts": "^1.4.2",
31 | "gatsby-plugin-react-helmet": "^3.1.2",
32 | "gatsby-plugin-react-svg": "^2.1.1",
33 | "gatsby-plugin-sitemap": "^2.2.3",
34 | "react-helmet": "^5.2.1",
35 | "react-icons": "^3.7.0",
36 | "react-particles-js": "^2.6.0"
37 | },
38 | "keywords": [
39 | "gatsby",
40 | "gatsby-theme",
41 | "gatsby-plugin"
42 | ]
43 | }
44 |
--------------------------------------------------------------------------------
/demo/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Runtime data
9 | pids
10 | *.pid
11 | *.seed
12 | *.pid.lock
13 |
14 | # Directory for instrumented libs generated by jscoverage/JSCover
15 | lib-cov
16 |
17 | # Coverage directory used by tools like istanbul
18 | coverage
19 |
20 | # nyc test coverage
21 | .nyc_output
22 |
23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
24 | .grunt
25 |
26 | # Bower dependency directory (https://bower.io/)
27 | bower_components
28 |
29 | # node-waf configuration
30 | .lock-wscript
31 |
32 | # Compiled binary addons (http://nodejs.org/api/addons.html)
33 | build/Release
34 |
35 | # Dependency directories
36 | node_modules/
37 | jspm_packages/
38 |
39 | # Typescript v1 declaration files
40 | typings/
41 |
42 | # Optional npm cache directory
43 | .npm
44 |
45 | # Optional eslint cache
46 | .eslintcache
47 |
48 | # Optional REPL history
49 | .node_repl_history
50 |
51 | # Output of 'npm pack'
52 | *.tgz
53 |
54 | # dotenv environment variables file
55 | .env
56 |
57 | # gatsby files
58 | .cache/
59 | public
60 |
61 | # Mac files
62 | .DS_Store
63 |
64 | # Yarn
65 | yarn-error.log
66 | .pnp/
67 | .pnp.js
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
--------------------------------------------------------------------------------
/theme/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Runtime data
9 | pids
10 | *.pid
11 | *.seed
12 | *.pid.lock
13 |
14 | # Directory for instrumented libs generated by jscoverage/JSCover
15 | lib-cov
16 |
17 | # Coverage directory used by tools like istanbul
18 | coverage
19 |
20 | # nyc test coverage
21 | .nyc_output
22 |
23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
24 | .grunt
25 |
26 | # Bower dependency directory (https://bower.io/)
27 | bower_components
28 |
29 | # node-waf configuration
30 | .lock-wscript
31 |
32 | # Compiled binary addons (http://nodejs.org/api/addons.html)
33 | build/Release
34 |
35 | # Dependency directories
36 | node_modules/
37 | jspm_packages/
38 |
39 | # Typescript v1 declaration files
40 | typings/
41 |
42 | # Optional npm cache directory
43 | .npm
44 |
45 | # Optional eslint cache
46 | .eslintcache
47 |
48 | # Optional REPL history
49 | .node_repl_history
50 |
51 | # Output of 'npm pack'
52 | *.tgz
53 |
54 | # dotenv environment variables file
55 | .env
56 |
57 | # gatsby files
58 | .cache/
59 | public
60 |
61 | # Mac files
62 | .DS_Store
63 |
64 | # Yarn
65 | yarn-error.log
66 | .pnp/
67 | .pnp.js
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Runtime data
9 | pids
10 | *.pid
11 | *.seed
12 | *.pid.lock
13 |
14 | # Directory for instrumented libs generated by jscoverage/JSCover
15 | lib-cov
16 |
17 | # Coverage directory used by tools like istanbul
18 | coverage
19 |
20 | # nyc test coverage
21 | .nyc_output
22 |
23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
24 | .grunt
25 |
26 | # Bower dependency directory (https://bower.io/)
27 | bower_components
28 |
29 | # node-waf configuration
30 | .lock-wscript
31 |
32 | # Compiled binary addons (http://nodejs.org/api/addons.html)
33 | build/Release
34 |
35 | # Dependency directories
36 | node_modules/
37 | jspm_packages/
38 |
39 | # Typescript v1 declaration files
40 | typings/
41 |
42 | # Optional npm cache directory
43 | .npm
44 |
45 | # Optional eslint cache
46 | .eslintcache
47 |
48 | # Optional REPL history
49 | .node_repl_history
50 |
51 | # Output of 'npm pack'
52 | *.tgz
53 |
54 | # dotenv environment variables file
55 | .env
56 |
57 | # gatsby files
58 | .cache/
59 | public
60 |
61 | # Mac files
62 | .DS_Store
63 |
64 | # Yarn
65 | yarn-error.log
66 | .pnp/
67 | .pnp.js
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
71 | .netlify/
72 |
--------------------------------------------------------------------------------
/theme/assets/particles.json:
--------------------------------------------------------------------------------
1 | {
2 | "particles": {
3 | "number": {
4 | "value": 7,
5 | "density": {
6 | "enable": true,
7 | "value_area": 800
8 | }
9 | },
10 | "color": {
11 | "value": "#0873e8"
12 | },
13 | "opacity": {
14 | "value": 0.5,
15 | "random": false,
16 | "anim": {
17 | "enable": false,
18 | "speed": 1,
19 | "opacity_min": 0.1,
20 | "sync": false
21 | }
22 | },
23 | "size": {
24 | "value": 3,
25 | "random": true,
26 | "anim": {
27 | "enable": false,
28 | "speed": 40,
29 | "size_min": 0.1,
30 | "sync": false
31 | }
32 | },
33 | "move": {
34 | "enable": true,
35 | "speed": 8,
36 | "direction": "none",
37 | "random": false,
38 | "straight": false,
39 | "out_mode": "out",
40 | "bounce": false,
41 | "attract": {
42 | "enable": false,
43 | "rotateX": 600,
44 | "rotateY": 1200
45 | }
46 | }
47 | },
48 | "interactivity": {
49 | "detect_on": "canvas",
50 | "events": {
51 | "onhover": {
52 | "enable": true,
53 | "mode": "repulse"
54 | },
55 | "onclick": {
56 | "enable": true,
57 | "mode": "push"
58 | },
59 | "resize": true
60 | }
61 | },
62 | "retina_detect": true
63 | }
--------------------------------------------------------------------------------
/theme/src/components/links.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { graphql, useStaticQuery } from 'gatsby'
3 | import styles from './links.module.css'
4 | import * as IconSets from '../utils/icons'
5 |
6 | export default () => {
7 | const data = useStaticQuery(graphql`
8 | query {
9 | minimalistConfig(id: {eq: "gatsby-theme-minimalist-config"}) {
10 | socialList {
11 | icon
12 | iconSet
13 | url
14 | ariaLabel
15 | }
16 | }
17 | }
18 | `)
19 |
20 | const renderIcon = (iconName) => {
21 | const fallbackIcon = IconSets['Fi']['FiAlertTriangle']
22 | const iconSetId = iconName.substring(0, 2)
23 |
24 | // check if IconSet exists
25 | if (!/Fa|Io|Md|Ti|Go|Fi|Gi|Wi|Di/.test(iconSetId)) {
26 | return React.createElement(fallbackIcon, {})
27 | }
28 |
29 | // check if iconName exists in selected iconSet
30 | if (!(iconName in IconSets[`${iconSetId}`])) {
31 | return React.createElement(fallbackIcon, {})
32 | }
33 |
34 | const icons = IconSets[`${iconSetId}`]
35 | return React.createElement(icons[iconName], {})
36 | }
37 |
38 | return (
39 |
48 | )
49 | }
50 |
--------------------------------------------------------------------------------
/theme/gatsby-config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | siteMetadata: {
3 | siteUrl: "https://..." // only set to enable the generation of a sitemap with 'gatsby-plugin-sitemap'
4 | },
5 | plugins: [
6 | {
7 | resolve: `gatsby-plugin-prefetch-google-fonts`,
8 | options: {
9 | fonts: [
10 | {
11 | family: `Open Sans`,
12 | variants: [`300`, `600`]
13 | },
14 | ],
15 | },
16 | },
17 | {
18 | resolve: "gatsby-plugin-react-svg",
19 | options: {
20 | rule: {
21 | include: /assets/
22 | }
23 | }
24 | },
25 | {
26 | resolve: `gatsby-plugin-sitemap`,
27 | options: {
28 | output: `/sitemap.xml`,
29 | query: `
30 | {
31 | site {
32 | siteMetadata {
33 | siteUrl
34 | }
35 | }
36 |
37 | minimalistConfig(id: {eq: "gatsby-theme-minimalist-config"}) {
38 | title,
39 | description,
40 | siteUrl,
41 | appName
42 | }
43 |
44 | allSitePage {
45 | edges {
46 | node {
47 | path
48 | }
49 | }
50 | }
51 | }`,
52 | serialize: ({ site, minimalistConfig, allSitePage }) =>
53 | allSitePage.edges.map(edge => {
54 | return {
55 | url: minimalistConfig.siteUrl + edge.node.path,
56 | changefreq: `daily`,
57 | priority: 0.7,
58 | }
59 | })
60 | }
61 | },
62 | `gatsby-plugin-react-helmet`,
63 | `gatsby-plugin-offline`
64 | ]
65 | }
66 |
--------------------------------------------------------------------------------
/theme/src/pages/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Particles from 'react-particles-js';
3 | import { graphql, useStaticQuery } from 'gatsby'
4 | import { Helmet } from 'react-helmet';
5 |
6 | import styles from './index.module.css';
7 | import About from '../components/about';
8 | import Links from '../components/links';
9 | import particleOptions from '../../assets/particles.json';
10 |
11 | export default () => {
12 | const data = useStaticQuery(graphql`
13 | query {
14 | minimalistConfig(id: {eq: "gatsby-theme-minimalist-config"}) {
15 | title,
16 | description,
17 | siteUrl,
18 | appName
19 | }
20 | }
21 | `)
22 |
23 | return (
24 | <>
25 |
26 |
27 |
28 |
29 |
30 | {data.minimalistConfig.title}
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
51 | >
52 | )
53 | }
54 |
--------------------------------------------------------------------------------
/theme/README.md:
--------------------------------------------------------------------------------
1 | ## 👀 Gatsby Minimalist Theme
2 |
3 | Welcome to my _Minimalist Gatsby Theme_ repository! A live demo of the theme can be found [here](https://filipesantoscorrea.com).
4 |
5 |
6 |
7 | ## 💻 Installation
8 |
9 | To use the Gatsby Minimalist Theme in your site, follow this instruction:
10 |
11 | 1. Install Theme:
12 | ```sh
13 | yarn add gatsby-theme-minimalist
14 | ```
15 |
16 | 2. Add this theme to your ```gatsby-config.js``` file and adjust the options to fit your needs.
17 | You can find a detailed explanation about the options object further below.
18 |
19 | ```js
20 | module.exports = {
21 | plugins: [{
22 | resolve: "gatsby-theme-minimalist",
23 |
24 | options: {
25 | // SEO
26 | title: "Your site title",
27 | description: "Your site description",
28 | siteUrl: "https://your-future-site.com",
29 | appName: "Your pwa app name",
30 |
31 | // Content
32 | headline: "Your headline",
33 | subHeadline: "Your meaningful message. ",
34 | socialList: [{
35 | icon: 'FaGithub', // a detailed explanation can be found in the options section
36 | url: 'https://github.com/your-profile',
37 | ariaLabel: 'Link to my GitHub profile',
38 | }]
39 | }
40 | }]
41 | }
42 | ```
43 |
44 | 3. Start developing:
45 | ```sh
46 | yarn develop
47 | ```
48 |
49 | 4. Build production:
50 | ```sh
51 | yarn build
52 | ```
53 |
54 |
55 |
56 | ## ⚙️ Options
57 |
58 | In order to provide a big selection of icons, this theme makes use of the fabulous _React Icons_ library. The _React Icons_ library comes with 9 different icon sets (_FontAwesome_, _Ionic_, _Material Design_, _Typicons_, _Github Octicons_, _Feather_, _Game_, _Weather_, and _Dev_). Just browse through the vast list of icons [https://react-icons.netlify.com](https://react-icons.netlify.com/#/icons/fa) and copy the icon name (e.g. `FaTwitter`) and paste it to your options in the `socialList[{icon: 'FaTwitter'}]` option section.
59 |
60 |
61 |
62 | ## 👩💻 Contributing
63 |
64 | Just submit an issue, be it a bug report or a feature request. I'm always happy to accept new pull requests.
65 |
66 |
67 |
68 | ## 🙌 Credits
69 |
70 | Special thanks to [@JCofman](https://github.com/JCofman) for the idea and recommendation to use _React Icons_ in this theme!
71 |
--------------------------------------------------------------------------------
/theme/gatsby-node.js:
--------------------------------------------------------------------------------
1 | const crypto = require(`crypto`)
2 |
3 |
4 | exports.createPages = ({ actions, reporter }) => {
5 | actions.createPage({
6 | path: "/",
7 | component: require.resolve("./src/pages/index.js")
8 | })
9 | }
10 |
11 |
12 | exports.sourceNodes = ({ actions: { createTypes, createNode } }, {
13 | // SEO
14 | title = "Minimalist Portfolio Gatsby Theme",
15 | description = "Hi, my name is Filipe Santos Correa. I\'m a Front-End Engineer from Karlsruhe - Germany.",
16 | siteUrl = "https://filipesantoscorrea.com",
17 | appName = "Filipe Santos Correa", // Progressive Web App Name
18 |
19 | // Content
20 | headline = "Filipe Santos Correa",
21 | subHeadline = "I'm a Front-End Engineer. I love to create new things everyday.",
22 | socialList = [
23 | {
24 | icon: 'FaGithub',
25 | url: 'https://github.com/Safi1012',
26 | ariaLabel: 'Link to my GitHub profile',
27 | },
28 | {
29 | icon: 'FaTwitter',
30 | url: 'https://twitter.com/safi1012',
31 | ariaLabel: 'Link to my Twitter profile',
32 | },
33 | {
34 | icon: 'FaLinkedin',
35 | url: 'https://www.linkedin.com/in/filipe-santoscorrea',
36 | ariaLabel: 'Link to my LinkedIn profile',
37 | },
38 | {
39 | icon: 'FaDribbble',
40 | url: 'https://dribbble.com/safi1012',
41 | ariaLabel: 'Link to my Dribbble profile',
42 | }
43 | ]
44 | }) => {
45 | createTypes(`
46 | type MinimalistConfig implements Node {
47 | title: String!
48 | description: String!
49 | siteUrl: String!
50 | appName: String!
51 | headline: String!
52 | subHeadline: String!
53 | socialList: [Social!]!
54 | }
55 |
56 | type Social {
57 | icon: String
58 | iconSet: String
59 | url: String
60 | ariaLabel: String
61 | }
62 | `)
63 |
64 | const minimalistConfig = {
65 | title,
66 | description,
67 | siteUrl,
68 | appName,
69 | headline,
70 | subHeadline,
71 | socialList
72 | }
73 |
74 | createNode({
75 | ...minimalistConfig,
76 | id: `gatsby-theme-minimalist-config`,
77 | parent: null,
78 | children: [],
79 | internal: {
80 | type: `MinimalistConfig`,
81 | contentDigest: crypto
82 | .createHash(`md5`)
83 | .update(JSON.stringify(minimalistConfig))
84 | .digest(`hex`),
85 | content: JSON.stringify(minimalistConfig),
86 | description: `Minimalist Theme Config`,
87 | },
88 | })
89 | }
90 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
6 |
7 | ## 👀 Gatsby Minimalist Theme
8 |
9 | Welcome to my _Minimalist Gatsby Theme_ repository! A live demo of the theme can be found [here](https://filipesantoscorrea.com).
10 |
11 |
12 |
13 | ## 💻 Installation
14 |
15 | To use the Gatsby Minimalist Theme in your site, follow this instruction:
16 |
17 | 1. Install Theme:
18 | ```sh
19 | yarn add gatsby-theme-minimalist
20 | ```
21 |
22 | 2. Add this theme to your ```gatsby-config.js``` file and adjust the options to fit your needs.
23 | You can find a detailed explanation about the options object further below.
24 |
25 | ```js
26 | module.exports = {
27 | plugins: [{
28 | resolve: "gatsby-theme-minimalist",
29 |
30 | options: {
31 | // SEO
32 | title: "Your site title",
33 | description: "Your site description",
34 | siteUrl: "https://your-future-site.com",
35 | appName: "Your pwa app name",
36 |
37 | // Content
38 | headline: "Your headline",
39 | subHeadline: "Your meaningful message. ",
40 | socialList: [{
41 | icon: 'FaGithub', // a detailed explanation can be found in the options section
42 | url: 'https://github.com/your-profile',
43 | ariaLabel: 'Link to my GitHub profile',
44 | }]
45 | }
46 | }]
47 | }
48 | ```
49 |
50 | 3. Start developing:
51 | ```sh
52 | yarn develop
53 | ```
54 |
55 | 4. Build production:
56 | ```sh
57 | yarn build
58 | ```
59 |
60 |
61 |
62 | ## ⚙️ Options
63 |
64 | In order to provide a big selection of icons, this theme makes use of the fabulous _React Icons_ library. The _React Icons_ library comes with 9 different icon sets (_FontAwesome_, _Ionic_, _Material Design_, _Typicons_, _Github Octicons_, _Feather_, _Game_, _Weather_, and _Dev_). Just browse through the vast list of icons [https://react-icons.netlify.com](https://react-icons.netlify.com/#/icons/fa) and copy the icon name (e.g. `FaTwitter`) and paste it to your options in the `socialList[{icon: 'FaTwitter'}]` option section.
65 |
66 |
67 |
68 | ## 👩💻 Contributing
69 |
70 | Just submit an issue, be it a bug report or a feature request. I'm always happy to accept new pull requests.
71 |
72 |
73 |
74 | ## 🙌 Credits
75 |
76 | Special thanks to [@JCofman](https://github.com/JCofman) for the idea and recommendation to use _React Icons_ in this theme!
77 |
--------------------------------------------------------------------------------
/demo/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Gatsby's hello-world starter
9 |
10 |
11 | Kick off your project with this hello-world boilerplate. This starter ships with the main Gatsby configuration files you might need to get up and running blazing fast with the blazing fast app generator for React.
12 |
13 | _Have another more specific idea? You may want to check out our vibrant collection of [official and community-created starters](https://www.gatsbyjs.org/docs/gatsby-starters/)._
14 |
15 | ## 🚀 Quick start
16 |
17 | 1. **Create a Gatsby site.**
18 |
19 | Use the Gatsby CLI to create a new site, specifying the hello-world starter.
20 |
21 | ```sh
22 | # create a new Gatsby site using the hello-world starter
23 | gatsby new my-hello-world-starter https://github.com/gatsbyjs/gatsby-starter-hello-world
24 | ```
25 |
26 | 1. **Start developing.**
27 |
28 | Navigate into your new site’s directory and start it up.
29 |
30 | ```sh
31 | cd my-hello-world-starter/
32 | gatsby develop
33 | ```
34 |
35 | 1. **Open the source code and start editing!**
36 |
37 | Your site is now running at `http://localhost:8000`!
38 |
39 | _Note: You'll also see a second link: _`http://localhost:8000/___graphql`_. This is a tool you can use to experiment with querying your data. Learn more about using this tool in the [Gatsby tutorial](https://www.gatsbyjs.org/tutorial/part-five/#introducing-graphiql)._
40 |
41 | Open the `my-hello-world-starter` directory in your code editor of choice and edit `src/pages/index.js`. Save your changes and the browser will update in real time!
42 |
43 | ## 🧐 What's inside?
44 |
45 | A quick look at the top-level files and directories you'll see in a Gatsby project.
46 |
47 | .
48 | ├── node_modules
49 | ├── src
50 | ├── .gitignore
51 | ├── .prettierrc
52 | ├── gatsby-browser.js
53 | ├── gatsby-config.js
54 | ├── gatsby-node.js
55 | ├── gatsby-ssr.js
56 | ├── LICENSE
57 | ├── package-lock.json
58 | ├── package.json
59 | └── README.md
60 |
61 | 1. **`/node_modules`**: This directory contains all of the modules of code that your project depends on (npm packages) are automatically installed.
62 |
63 | 2. **`/src`**: This directory will contain all of the code related to what you will see on the front-end of your site (what you see in the browser) such as your site header or a page template. `src` is a convention for “source code”.
64 |
65 | 3. **`.gitignore`**: This file tells git which files it should not track / not maintain a version history for.
66 |
67 | 4. **`.prettierrc`**: This is a configuration file for [Prettier](https://prettier.io/). Prettier is a tool to help keep the formatting of your code consistent.
68 |
69 | 5. **`gatsby-browser.js`**: This file is where Gatsby expects to find any usage of the [Gatsby browser APIs](https://www.gatsbyjs.org/docs/browser-apis/) (if any). These allow customization/extension of default Gatsby settings affecting the browser.
70 |
71 | 6. **`gatsby-config.js`**: This is the main configuration file for a Gatsby site. This is where you can specify information about your site (metadata) like the site title and description, which Gatsby plugins you’d like to include, etc. (Check out the [config docs](https://www.gatsbyjs.org/docs/gatsby-config/) for more detail).
72 |
73 | 7. **`gatsby-node.js`**: This file is where Gatsby expects to find any usage of the [Gatsby Node APIs](https://www.gatsbyjs.org/docs/node-apis/) (if any). These allow customization/extension of default Gatsby settings affecting pieces of the site build process.
74 |
75 | 8. **`gatsby-ssr.js`**: This file is where Gatsby expects to find any usage of the [Gatsby server-side rendering APIs](https://www.gatsbyjs.org/docs/ssr-apis/) (if any). These allow customization of default Gatsby settings affecting server-side rendering.
76 |
77 | 9. **`LICENSE`**: Gatsby is licensed under the MIT license.
78 |
79 | 10. **`package-lock.json`** (See `package.json` below, first). This is an automatically generated file based on the exact versions of your npm dependencies that were installed for your project. **(You won’t change this file directly).**
80 |
81 | 11. **`package.json`**: A manifest file for Node.js projects, which includes things like metadata (the project’s name, author, etc). This manifest is how npm knows which packages to install for your project.
82 |
83 | 12. **`README.md`**: A text file containing useful reference information about your project.
84 |
85 | ## 🎓 Learning Gatsby
86 |
87 | Looking for more guidance? Full documentation for Gatsby lives [on the website](https://www.gatsbyjs.org/). Here are some places to start:
88 |
89 | - **For most developers, we recommend starting with our [in-depth tutorial for creating a site with Gatsby](https://www.gatsbyjs.org/tutorial/).** It starts with zero assumptions about your level of ability and walks through every step of the process.
90 |
91 | - **To dive straight into code samples, head [to our documentation](https://www.gatsbyjs.org/docs/).** In particular, check out the _Guides_, _API Reference_, and _Advanced Tutorials_ sections in the sidebar.
92 |
93 | ## 💫 Deploy
94 |
95 | [](https://app.netlify.com/start/deploy?repository=https://github.com/gatsbyjs/gatsby-starter-hello-world)
96 |
97 |
98 |
--------------------------------------------------------------------------------