├── 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 |
40 | { 41 | data.minimalistConfig.socialList.map((social, index) => ( 42 | 43 | {renderIcon(social.icon)} 44 | 45 | )) 46 | } 47 |
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 |
46 |
47 | 48 | 49 |
50 |
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 |
2 | 3 | Filipe Santos Correa - About Me 4 | 5 |
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 | Gatsby 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 | [![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/gatsbyjs/gatsby-starter-hello-world) 96 | 97 | 98 | --------------------------------------------------------------------------------