All Projects → akzhy → Gatsby Starter Elemental

akzhy / Gatsby Starter Elemental

Licence: mit
Gatsby starter for portfolio sites

Programming Languages

typescript
32286 projects

Labels

Projects that are alternatives of or similar to Gatsby Starter Elemental

Gatsby Remark Social Cards
Gatsby remark plugin for generating social card graphics
Stars: ✭ 95 (-17.39%)
Mutual labels:  gatsby
Gatsby Theme Chronoblog
⏳ Chronoblog is a Gatsbyjs theme specifically designed to create a personal website. The main idea of ​​Chronoblog is to allow you not only to write a personal blog but also to keep a record of everything important that you have done.
Stars: ✭ 101 (-12.17%)
Mutual labels:  gatsby
Nodejs.dev
A new Node.js resource built using Gatsby.js with React.js, TypeScript, and Remark.
Stars: ✭ 1,794 (+1460%)
Mutual labels:  gatsby
Gatsby Theme Firebase
🔥 A Gatsby Theme for adding Firebase to your application.
Stars: ✭ 96 (-16.52%)
Mutual labels:  gatsby
Rbb Website
Website to help connect black-owned businesses with consumers and resources
Stars: ✭ 101 (-12.17%)
Mutual labels:  gatsby
Jamstack Ecommerce
A starter project for building performant ECommerce applications with Next.js and React
Stars: ✭ 1,384 (+1103.48%)
Mutual labels:  gatsby
Gatsby Plugin Advanced Sitemap
Advanced XML Sitemaps for Gatsby.js
Stars: ✭ 94 (-18.26%)
Mutual labels:  gatsby
Gatsby Source Datocms
Official GatsbyJS source plugin to pull content from DatoCMS
Stars: ✭ 113 (-1.74%)
Mutual labels:  gatsby
Gatsby Starter Portfolio Minimal
A Gatsby Starter to create a clean one-page portfolio with Markdown content.
Stars: ✭ 100 (-13.04%)
Mutual labels:  gatsby
Gatsbytutorials.com
A community-updated list of video, audio and written tutorials to help you learn GatsbyJS. 👩‍💻
Stars: ✭ 109 (-5.22%)
Mutual labels:  gatsby
Aaronvandenberg.nl
⚛️ Web Developers portfolio build with Gatsby.js & React.js
Stars: ✭ 98 (-14.78%)
Mutual labels:  gatsby
Gatsby Theme Portfolio
Gatsby theme portfolio
Stars: ✭ 99 (-13.91%)
Mutual labels:  gatsby
Gatsby Starter Saas Marketing
☁️ A simple one page marketing site starter for SaaS companies and indie hackers
Stars: ✭ 103 (-10.43%)
Mutual labels:  gatsby
Gatsby Shopify Theme
🛒 Simple theme to build a blazing simple and fast store with Gatsby and Shopify.
Stars: ✭ 95 (-17.39%)
Mutual labels:  gatsby
Covid 19 Apis
Postman COVID-19 API Resource Center—API collections to help in the COVID-19 fight.
Stars: ✭ 111 (-3.48%)
Mutual labels:  gatsby
Gatsby Typescript
Alternative typescript support plugin for Gatsbyjs. Aims to make using typescript in Gatsby as painless as possible
Stars: ✭ 95 (-17.39%)
Mutual labels:  gatsby
React Ladies
We're a group of women and non-binary ReactJS enthusiasts in New York City (and beyond).
Stars: ✭ 102 (-11.3%)
Mutual labels:  gatsby
Developer Community Stats
🚀 A repository to encourage beginners to contribute to open source and for all contributors to view their Github stats
Stars: ✭ 116 (+0.87%)
Mutual labels:  gatsby
Awesome Frontendmasters
📚 List of awesome frontendmasters course resources
Stars: ✭ 110 (-4.35%)
Mutual labels:  gatsby
Feathericons.com
The Feather website
Stars: ✭ 104 (-9.57%)
Mutual labels:  gatsby

Gatsby Starter Elemental

Elemental is a portfolio template suitable for artists, photographers, designers etc. With the starter you can create blog, portfolio and miscellaneous posts (such as privacy-policy).

Live Demo

Getting Started.

You will need node and Gatsby installed.

Start the project by

gatsby new project-name https://github.com/akzhy/gatsby-starter-elemental
cd project-name
gatsby develop

And for the final build

gatsby build

Configuring

Almost all features of this starter are editable. In order to personalize, open the config.js file and start editing.

// Do not remove any of the properties below.

const siteMetadata = {
    title: `Elemental`, // Title of your webpage
    siteUrl: `http://localhost`, // You sites URL
    capitalizeTitleOnHome: true, // Whether to capitalize the letter on homepage
    logo: `/images/logo.png`, // Logo 
    icon: `/images/icon.png`, // Favicon, shown in the browsers "tab"
    titleImage: `/images/wall.jpg`, // The main title is filled with an image.
    ogImage: `/images/wall.png`, // open graph image (shown when link is shared in social media)
    twoColumnWall: true, // If true, the wall will be split into two with titleImage on left side and text on the right. If false, the title image will be used as the background of the text.
    about:"", // The short about text shown on front page
    introTag: `PHOTOGRAPHER | VIDEOGRAPHER`, // Intro tag shown below title
    description: `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed sit amet accumsan arcu. Proin ac consequat arcu.`,
    author: `@_akzhy`, // Author
    blogItemsPerPage: 10,
    portfolioItemsPerPage: 10,
    darkmode: true, // Whether to enable the darkmode by default. Change to false if you want the light mode
    switchTheme: true, // Whether to show a switch theme button on the navbar
    // The links shown on the navbar and footer, follow the same structure to add or remove more items.
    navLinks: [{
            name: "HOME",
            url: "/"
        },
        {
            name: "ABOUT",
            url: "/about"
        },
        {
            name: "BLOG",
            url: "/blog"
        },
        {
            name: "PORTFOLIO",
            url: "/portfolio"
        },
        {
            name: "CONTACT",
            url: "/contact"
        }
    ],
    // Same as navbar links, except these are shown on the footer
    footerLinks: [{
        name: "PRIVACY POLICY",
        url: "/privacy-policy"
    }],
    // Your social profile links. The icons of the given social medias are available in the static folder. If you are adding a new item, include the icon in the static/images folder.
    social: [{
            name: "Facebook",
            icon: "/images/Facebook.svg",
            url: "#"
        },
        {
            name: "Twitter",
            icon: "/images/Twitter.svg",
            url: "#"
        },
        {
            name: "Instagram",
            icon: "/images/Instagram.svg",
            url: "#"
        },
        {
            name: "Youtube",
            icon: "/images/Youtube.svg",
            url: "#"
        }
    ],
    contact: {
        api_url: "https://getform.io/f/f227a36xxxxxx", // leave empty ('') or false to hide form
        description: `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed sit amet accumsan arcu. Proin ac consequat arcu.`,
        mail: "[email protected]",
        phone: "000-000-0000",
        address: "1234 \nLocation \nLocation"
    },
    disqus: `your-disqus-shortname`  // Optional, remove this if you don't use disqus
}

Creating new blog posts.

Open the contents/blog folder and create a new folder with the name you wish to see as the URL. Inside the folder create an index.md file and also include any files you wish to add.

The frontmatter should be of the below structure

---
title: Title of your post
date: 2019-06-29 <-- Date should be in the given format
image: ./image.jpg <-- Image shown on the list pages and also used as open graph image
banner: ./banner.jpg <-- Banner shown in the blog post
description: The description shown in the listing page. Also used for SEO description. 
---

If you don't want the blog section, simply delete everything inside the contents/blog folder. (Do not delete the folder itself)

Creating new portfolio posts.

Open the contents/portfolio folder and create a new folder with the name you wish to see as the URL. Inside the folder create an index.md file and also include any files you wish to add.

The frontmatter should be of the below structure

---
title: Title of your post
date: 2019-06-29 <-- Date should be in the given format
banner: ./banner.jpg <-- Banner shown in the portfolio post and also used as open graph image
image: ./image.jpg <-- Image shown on the list pages 
description: The description shown in the listing page. Also used for SEO description. 
---

Portfolio pages support the creation of grids.

To create a grid, follow the below structure

<Row>
<Col>

**Markdown**

</Col>
</Row>

The columns will have equal width on wide screens, and will expand on smaller screens.

Creating miscellaneous posts

These posts follow the URL structure of http://example.com/miscellaneous-post/. They are useful for creating pages like privacy-policy

The "About" page is created as a miscellaneous post.

Open the contents/basepages folder and create a new folder with the name you wish to see as the URL. Inside the folder create an index.md file and also include any files you wish to add.

The frontmatter should be of the below structure

---
title: Title of your post
image: ./image.jpg <-- Image  used as open graph image
description: The description used for SEO. 
---

Contact Form

The contact form will appear only if you have provided an api url. You can control the data sent to the server and can execute callback functions on response from the server.

To customize these functions, edit the config.js file.

The beforeContactFormSubmit function is used to validate the form data before it is sent to the server. It has one argument that contains the object

{
    name: string,
    email: string,
    message: string
}

You can validate the data and return

{
    data: {
        name: data.name,
        email: data.email,
        message: data.message,
    },
    result: true,
}

if the data is valid. Otherwise return

errors = [
    {
        code: int, // 1-4
        /* Codes
         Code 1 - Name
         Code 2 - Email
         Code 3 - Message
         Code 4 - Other
        */
        message: string
    }
]
return {
    result: false,
    errors: errors,
}

You can also handle how data is sent to the server by editing the contactFormSubmit function. It should return the below object to indicate whether the message was sent.

{
    result: boolean // true for success, false for fail
}

Contributing

Any kind of contributions are welcome. Bump the version and create a PR.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].