https://github.com/melvinaguilar/advice-generator-app
This is a solution to the "Advice Generator App" challenge on Frontend Mentor challenges.
https://github.com/melvinaguilar/advice-generator-app
Last synced: about 2 months ago
JSON representation
This is a solution to the "Advice Generator App" challenge on Frontend Mentor challenges.
- Host: GitHub
- URL: https://github.com/melvinaguilar/advice-generator-app
- Owner: MelvinAguilar
- Created: 2022-10-26T14:43:33.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-10-26T15:34:37.000Z (over 2 years ago)
- Last Synced: 2025-01-22T11:11:18.429Z (3 months ago)
- Language: SCSS
- Homepage: advice-generator-app-melvinhdz.vercel.app
- Size: 280 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Frontend Mentor - Advice generator app solution

This is a solution to the [Advice generator app challenge on Frontend Mentor](https://www.frontendmentor.io/challenges/advice-generator-app-QdUG-13db). Frontend Mentor challenges help you improve your coding skills by building realistic projects.
Links
- Solution URL: [Advice Generator App (SASS + JS + BEM + Mobile-first) | Frontend Mentor](https://www.frontendmentor.io/solutions/advice-generator-app-sass-js-bem-mobilefirst-eiynIQIsXe)
- Live Site URL: [https://advice-generator-app-melvinhdz.vercel.app/](https://advice-generator-app-melvinhdz.vercel.app/)
## Table of contents
- [Overview](#overview)
- [The challenge](#the-challenge)
- [My process](#my-process)
- [Built with](#built-with)
- [Author](#author)
- [Acknowledgments](#acknowledgments)## Overview
### The challenge
Users should be able to:
- View the optimal layout for the app depending on their device's screen size
- See hover states for all interactive elements on the page
- Generate a new piece of advice by clicking the dice icon## My process
### Built with
- Semantic HTML5 markup
- Mobile-first approach
- Vanilla JavaScript
- Flex Layout
- BEM naming convention
- [SASS](https://sass-lang.com/documentation/modules) - Sass modules### Useful resources
- [SASS Architecture](https://sass-guidelin.es/#architecture)
- [Mobile-first approach](https://www.freecodecamp.org/news/taking-the-right-approach-to-responsive-web-design/)
- [CSS Guidelines](https://cssguidelin.es/#bem-like-naming)
- [BEM naming convention](https://css-tricks.com/bem-101/)
- [BEM naming examples](https://getbem.com/naming/)- [Delay, Sleep, Pause, & Wait in JavaScript](https://www.sitepoint.com/delay-sleep-pause-wait/)
- [How to create a simple CSS loading spinner & make it accessible](https://codeburst.io/how-to-create-a-simple-css-loading-spinner-make-it-accessible-e5c83c2e464c)
- [Material Design Box Shadows](https://codepen.io/sdthornton/pen/wBZdXq)- [Solving Sticky Hover States with @media (hover: hover)](https://css-tricks.com/solving-sticky-hover-states-with-media-hover-hover/)
## Author
- Frontend Mentor - [@melvinaguilar](https://www.frontendmentor.io/profile/melvinaguilar)
## Acknowledgments
When using `sass` in order to build this solution
- Install `sass` if not yet installed:
```bash
npm install -g sass
```- Run build command from command line:
```bash
sass assets/sass/main.scss assets/css/style.css
```- If you want to edit the code and test, in the root folder of this repository, run this command from the command line:
```bash
sass --watch assets/sass/main.scss assets/css/style.css
```## File structure
```
.
├── assets
│ ├── css
│ │ ├── style.css
│ │ └── style.css.map
│ ├── images
│ │ ├── favicon-32x32.png
│ │ ├── icon-dice.svg
│ │ ├── pattern-divider-desktop.svg
│ │ └── pattern-divider-mobile.svg
│ ├── js
│ │ └── main.js
│ └── sass
│ ├── abstracts
│ │ ├── _animations.scss
│ │ ├── _mixins.scss
│ │ └── _variables.scss
│ ├── base
│ │ ├── _page.scss
│ │ └── _reset.scss
│ ├── component
│ │ ├── _attribution.scss
│ │ ├── _buttons.scss
│ │ ├── _screen-reader.scss
│ │ └── _spinner.scss
│ ├── layout
│ │ └── _card.scss
│ └── main.scss
├── design
│ ├── active-states.jpg
│ ├── desktop-design.jpg
│ ├── desktop-preview.jpg
│ ├── mobile-design.jpg
│ └── screenshot.png
├── index.html
└── README.md
```