---
# System prepended metadata

title: Spooky Reviews Web App UI

---

# Spooky Reviews Web App UI

The purpose of this web app is to create a space where users can read audience movie reviews on the horro/thriller genre, and also submit their own ratings and reviews. 

---

## Navbar
The site navbar is made up of two rows. 

The top row has two items: 
1.) Site name and 2.) a search **input** and **button**. 
    
* **Action**: User will enter keywords or phrases into input form and select button.
* **Result**: Button will change color on hover and selection. Submission will return a new webpage with items on website matching keyword. 

The second row of the navbar is a horizontal **list** of links. 
* **Action**: User will hover over navbar links
* **Result**: Background color of link will change upon hover (in this case from black to red)
--
* **Action**: User will select a link from the list.
* **Result**: A new webpage will open up with corresponding link color highlighted (red).

## Website Title Header
The body of the homepage starts with the first row (one column) that has a simple `h1` tag:

```
<div class="row">
    <div class="col">
      <h1 class="text-center">Spooky Reviews <i class="fa fa-ticket" aria-hidden="true"></i></h1>
    </div>
  </div>
```



## Banner Row

The banner row is made of two columns.  The first column displays a popular movie poster (**image**). The second column displays a description (**text**) of the film and link to a review (**button**).

* **Action**: Hover over the button.
* **Result**: Button will change color upon hover.

--

* **Action**: User will select button. 
* **Result**: Button will change colors upon selection and a new webpage will open to the review. 

-- 

* **Action**: User will select photo.
* **Result**: A new webpage will open to the review. 

## Now Playing Section

The "Now Playing" section of the homepage is made up of three rows. 

The first row has a simple `h2` tag with the section title:

```
<div class="row">
      <div class="col">
        <h2 class="text-center">Now Playing </h2>
      </div>
    </div>
```

The second and third rows are each divided into four columns. Each column contains a `card` with an **image** linked to another webpage:
```
<div class="col alert alert-light">
        <div class="card bg-dark text-white">
          <img src="https://www.uphe.com/sites/default/files/styles/scale__319w_/public/2020/06/YouShouldHaveLeft_800x1200.jpg?itok=3KMov9xo" class="card-img" alt="...">
          <div class="card-img-overlay">
            <!-- <h6 class="card-title">You Should Have Left</h6> -->
          </div>
        </div>
      </div>
```
* **Action**: User selects any card / image. 
* **Result**: A new webpage will open to a "review page".

## Submit A Review

The 'Submit A Review' section includes two **containers**. 

The first `container` contains a header with a  `h2` tag and a description with a `p` tag:

```
<div class="container ">
    <div class="row">
      <div class="col">
        <h2 class="text-center">Submit A Review </h2>
        <p class="text-center"> Have you watched any of these 2020 spooky flicks? We're now accepting user reviews for these 8 films. Share yours below! (limit one review per film)</p>
      </div>
    </div>
  </div>
```

The second `container` has a `form` with a submission **button** that users can submit information to in order to be collected into a database and posted on a seperate webpage. The form has **required** **input fields** for: 
1. name (string)
1. email (string)
1. text (string)

* **Action**: User will select input field.
* **Result**: Border of selected input field will appear blue. 
--
* **Inaction**: User will fail to enter string into input field and select submit.
* **Result**: Alert will notify user that field is required.

--
The form also has a `select` input that lists eight options:

```
<div class="input-group mb-3">
            <div class="input-group-prepend">
              <label class="input-group-text" for="inputGroupSelect01">Movie</label>
            </div>
            <select class="custom-select" id="inputGroupSelect01" required>
              <option selected>Choose...</option>
              <option value="1">You Should Have Left</option>
              <option value="2">Relic</option>
              <option value="3">His House</option>
              <option value="4">The Turning</option>
              <option value="5">Spell</option>
              <option value="6">Alive</option>
              <option value="7">Gretel & Hansel</option>
              <option value="8">The Rental</option>
            </select>
          </div>
```

* **Action**: User will select option from dropdown list.
* **Result**: Field will be replaced with selected option. 
* **Result**: Border will appear around select field.
-- 
* **Action**: User will select submit button.
* **Result**: Information will be collected and stored in a database. 
* **Result:** New webpage will open with review. 

### Star Rating Widget

The 'Submit A  Review' section also includes a "star rating widget" that consists of five radio input checkboxes styled to look like stars. 

`<input type="radio" id="star5" name="rating" value="5" /><label class="full" for="star5" title="Awesome - 5 stars"></label>`

* **Action**: User hovers over stars.
* **Result**: Input is changed to **checked** for each rating value less than or equal to the input hovered over. Stars respond by looking filled. 

```
.rating > input:checked ~ label, /* show gold star when clicked */
.rating:not(:checked) > label:hover, /* hover current star */
.rating:not(:checked) > label:hover ~ label {
  color: #ffd700;
} /* hover previous stars in list */
```
* **Action**: User selects a rating.
* **Result**: Input is marked checked for each input with a rating value equal to or less than the one that was selected. The star(s) remain filled.

```
.rating > input:checked + label:hover, /* hover current star when changing rating */
.rating > input:checked ~ label:hover,
.rating > label:hover ~ input:checked ~ label, /* lighten current selection */
.rating > input:checked ~ label:hover ~ label {
  color: #ffed85;
}
```
