54 lines
1.5 KiB
HTML
54 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<title>Vue Mastery</title>
|
|
<!-- Import Styles -->
|
|
<link rel="stylesheet" href="./assets/styles.css" />
|
|
<!-- Import Vue.js -->
|
|
<script src="https://unpkg.com/vue@3.0.0-beta.12/dist/vue.global.js"></script>
|
|
</head>
|
|
<body>
|
|
<div id="app">
|
|
<div class="nav-bar"></div>
|
|
|
|
<div class="cart">Cart({{ cart }})</div>
|
|
|
|
<div class="product-display">
|
|
<div class="product-container">
|
|
<div class="product-image">
|
|
<img v-bind:src="image">
|
|
</div>
|
|
<div class="product-info">
|
|
<h1>{{ title }}</h1>
|
|
|
|
<p v-if="inStock">In Stock</p>
|
|
<p v-else>Out of Stock</p>
|
|
<ul>
|
|
<li v-for="detail in details">{{ detail }}</li>
|
|
</ul>
|
|
|
|
<div
|
|
v-for="(variant, index) in variants"
|
|
:key="variant.id"
|
|
@mouseover="updateVariant(index)"
|
|
class="color-circle"
|
|
:style="{ backgroundColor: variant.color }">
|
|
</div>
|
|
|
|
<button class="button" :class="{ disabledButton: !inStock }" :disabled="!inStock" v-on:click="addToCart">Add to Cart</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Import App -->
|
|
<script src="./main.js"></script>
|
|
|
|
<!-- Mount App -->
|
|
<script>
|
|
const mountedApp = app.mount('#app')
|
|
</script>
|
|
</body>
|
|
</html>
|