Neumorphism Website + Github API 🤯
Tags: webdev, css, github, neumorphism
Published: 2023-07-15 09:32:50

A comprehensive guide on creating a Neumorphism website that showcases GitHub projects using the GitHub API.

---
If you like my project, I would be happy about a like 💌!
I would also appreciate comments!

---

Screenshots can be found below!
<br>

{% embed https://github.com/SchBenedikt/schbenedikt.github.io %}
## Introduction

In this article, we'll explore the creation of a Neumorphism website that serves as a visual showcase for GitHub projects. The website utilizes the GitHub API to fetch project data and presents it in an appealing and user-friendly format. We'll dive into the story behind the project, its functionality, and the design effects incorporated to enhance the overall experience.

## The Story

### Motivation and Inspiration

Every developer knows the importance of having a solid portfolio that showcases their work. As a developer myself, I wanted to create a visually stunning website that highlights my GitHub projects and allows visitors to explore them easily. Inspired by the rising trend of Neumorphism design, I decided to incorporate this modern design style into the project to provide a unique and engaging experience.

### Project Goals

The primary goal of this project was to build a website that dynamically fetches GitHub project data using the GitHub API. The website would display the projects in an organized and visually appealing manner, with additional design effects to enhance the user experience. The final product would serve as a portfolio and demonstrate my skills as a developer.

## Functionality

### Fetching GitHub Projects

To fetch GitHub project data, we utilize the power of the GitHub API. By making a request to the API endpoint with the desired username, we retrieve the repositories and their details in a JSON format. This functionality is encapsulated in the `getGitHubProjects(username)` function, which handles the API call and returns the fetched data.

### Creating Project Cards

Once the project data is fetched, we dynamically generate project cards based on the retrieved information. Each card represents a GitHub repository and displays key details such as the project name, a brief description, and a link to view the project on GitHub. The `createProjectCards(projects)` function takes care of generating these project cards and appending them to the website's Projects section.

### Getting README.md Content

To provide more information about each project, we fetch the content of the corresponding README.md file using the GitHub API. The `getReadmeContent(username, repoName)` function fetches the raw Markdown content from the API and processes it for rendering. This functionality allows visitors to explore the project details, including the project's documentation and usage instructions.

### Opening the Overlay

When a project card is clicked, we open an overlay that displays the content of the project's README.md file. This overlay provides a distraction-free reading experience, allowing users to focus on the project details. The overlay is designed to be sleek and modern, centered on the screen, and adjusts its size to fit the content.

### Closing the Overlay

Users can easily close the overlay by clicking on the close button or outside the overlay area. The `closeOverlay()` function gracefully fades out the overlay, providing a smooth transition back to the main projects view.

### Automatically Filled About Me Description

One unique feature of this website is the automatically filled About Me section in the sidebar. The content for this section is fetched from the README.md file of the repository that has the same name as the username. This functionality allows developers to provide a brief introduction and share more about themselves with visitors.

## Design Effects

To create an engaging and visually appealing experience, we incorporate several design effects into the website:

### Neumorphism Design

Neumorphism design is a rising trend that combines elements of skeuomorphism and flat design. It creates a soft and subtle three-dimensional appearance, giving the user interface a modern and elegant look. The project cards, overlays, and other elements of the website are designed with Neumorphism principles to provide a visually pleasing experience.

### Responsive Layout [Soon available]

The website features a responsive layout that adapts to different screen sizes. This ensures optimal usability and readability across devices, including desktops, tablets, and mobile devices. Users can explore the GitHub projects seamlessly, regardless of the device they're using.

### Smooth Transitions

Opening and closing the overlay is accompanied by smooth transition effects. The overlays gracefully appear and disappear, enhancing the overall user experience. These smooth transitions create a seamless flow between the main projects view and the detailed project information.

### Subtle Shadows

To add depth and dimension to the design, subtle box shadows are applied to project cards and the overlay container. These shadows create a visual separation between elements and contribute to the Neumorphism design style.

### Attention to Typography

Careful attention has been given to typography throughout the website. Appropriate font styles, sizes, and line heights are used to ensure optimal readability and visual harmony. The choice of fonts complements the overall design aesthetic and contributes to a polished user experience.

### Engaging Hover Effects

Interactive hover effects are applied to project cards, providing visual feedback and enhancing the interactive nature of the website. When users hover over a project card, it subtly transforms to create an engaging and dynamic experience.

## Conclusion

In this article, we explored the creation of a Neumorphism website that showcases GitHub projects using the GitHub API. We discussed the motivation behind the project, its functionality, and the design effects incorporated to enhance the user experience. By dynamically fetching project data, displaying it in an appealing format, and providing a distraction-free reading experience, the website serves as a powerful portfolio tool for developers.

Feel free to explore the project's GitHub repository to dive into the code and customize it according to your preferences. By leveraging the GitHub API and incorporating modern design trends, you can create your own visually stunning showcase of GitHub projects.

I hope this article has inspired you to create your own Neumorphism website and explore the possibilities of integrating APIs to enhance your projects.

**Happy coding!**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/laeao52ptiswqluk5q1k.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tx90gpskms2pau6xifh9.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pvzkc4ui8xahjksiilds.png)





{% codepen https://codepen.io/SchBenedikt/pen/JjeEPYB %}