# 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;
}
```