Skip to content
4 changes: 2 additions & 2 deletions assets/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ body {
margin: 25px 100px;
float: right;
border: 1px solid #d8d8d8;
padding: 10px 30px;
padding: 30px 30px;
background-color: white;
-webkit-box-shadow: 0px 2px 15px -12px rgba(0, 0, 0, 0.57);
-moz-box-shadow: 0px 2px 15px -12px rgba(0, 0, 0, 0.57);
Expand Down Expand Up @@ -89,7 +89,7 @@ li {
}

.out-of-stock-img {
opacity:0.5
opacity: 0.5;
}

p {
Expand Down
36 changes: 33 additions & 3 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,44 @@
<!-- Import Styles -->
<link rel="stylesheet" href="./assets/styles.css" />
<!-- Import Vue.js -->
<script src="https://unpkg.com/[email protected].0-beta.12/dist/vue.global.js"></script>
<script src="https://unpkg.com/[email protected].11/dist/vue.global.js"></script>
</head>
<body>
<div id="app">
<h1>Product goes here</h1>
<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>{{ product }}</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
class="color-circle"
v-for="variant in variants"
:key="variant.id"
:style="{ backgroundColor: variant.color }"
@mouseover="updateImage(variant.image)"></div>
<button class="button" :class="{ disabledButton: !inStock }" :disabled="!inStock" @click="addToCart">Add to Cart</button>
</div>
</div>
</div>
</div>

<!-- Import Js -->
<script src="./main.js"></script>

<!-- Mount App -->
<script>
const mountedApp = app.mount('#app')
</script>
</body>
</html>
25 changes: 24 additions & 1 deletion main.js
Original file line number Diff line number Diff line change
@@ -1 +1,24 @@
const product = 'Socks'
const app = Vue.createApp({
data() {
return {
cart:0,
product: 'Socks',
brand: 'Vue Mastery',
image: './assets/images/socks_blue.jpg',
inStock: false,
details: ['50% cotton', '30% wool', '20% polyester'],
variants: [
{ id: 2234, color: 'green', image: './assets/images/socks_green.jpg' },
{ id: 2235, color: 'blue', image: './assets/images/socks_blue.jpg' },
]
}
},
methods: {
addToCart() {
this.cart += 1
},
updateImage(variantImage) {
this.image = variantImage
}
}
})