Added Base form elements. Was kind of light on the notes though
parent
19a7dd3f31
commit
6a58aa50b3
@ -0,0 +1,86 @@
|
||||
<template>
|
||||
<div>
|
||||
<button v-on="$listeners" v-bind="$attrs" class="button" :class="buttonClass">
|
||||
<slot/>
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// v-on="$listeners" means that this element inherits the listners of the parent component
|
||||
export default {
|
||||
inheritAttrs: false, // You still want this because it could but used for passing an attribute like disabled to your button
|
||||
props: {
|
||||
buttonClass: {
|
||||
type: String
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.button {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 52px;
|
||||
padding: 0 40px;
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
font-weight: 600;
|
||||
white-space: nowrap;
|
||||
transition: all 0.2s linear;
|
||||
}
|
||||
.button:hover {
|
||||
-webkit-transform: scale(1.02);
|
||||
transform: scale(1.02);
|
||||
box-shadow: 0 7px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
|
||||
}
|
||||
.button:active {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
box-shadow: none;
|
||||
}
|
||||
.button:focus {
|
||||
outline: 0;
|
||||
}
|
||||
.button.-fill-gradient {
|
||||
background: linear-gradient(to right, #16c0b0, #84cf6a);
|
||||
color: #ffffff;
|
||||
}
|
||||
.button:disabled {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
box-shadow: none;
|
||||
background: #eeeeee;
|
||||
}
|
||||
.button + .button {
|
||||
margin-left: 1em;
|
||||
}
|
||||
.button.-fill-gray {
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
color: #ffffff;
|
||||
}
|
||||
.button.-size-small {
|
||||
height: 32px;
|
||||
}
|
||||
.button.-icon-right {
|
||||
text-align: left;
|
||||
padding: 0 20px;
|
||||
}
|
||||
.button.-icon-right > .icon {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.button.-icon-left {
|
||||
text-align: right;
|
||||
padding: 0 20px;
|
||||
}
|
||||
.button.-icon-left > .icon {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.button.-icon-center {
|
||||
padding: 0 20px;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,27 @@
|
||||
<template>
|
||||
<div>
|
||||
<label v-if="label">{{ label }}</label>
|
||||
<input :value="value" @input="updateValue" v-bind="$attrs">
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
inheritAttrs: false,
|
||||
props: {
|
||||
label: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
value: [String, Number]
|
||||
},
|
||||
methods: {
|
||||
updateValue() {
|
||||
this.$emit('input', event.target.value)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
@ -0,0 +1,33 @@
|
||||
<template>
|
||||
<div>
|
||||
<label v-if="label">{{ label }}</label>
|
||||
<select :value="value" @input="updateValue" v-bind="$attrs">
|
||||
<option v-for="option in options" :key="option" :selected="option === value">{{ option }}</option>
|
||||
</select>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
inheritAttrs: false,
|
||||
props: {
|
||||
options: {
|
||||
type: Array,
|
||||
required: true
|
||||
},
|
||||
label: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
value: [String, Number]
|
||||
},
|
||||
methods: {
|
||||
updateValue() {
|
||||
this.$emit('input', event.target.value)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
@ -0,0 +1,14 @@
|
||||
<template>
|
||||
<div>
|
||||
<h1>Uh oh</h1>
|
||||
<h3>It looks like you could be experiencing some network issues. Please click the back button and try again.</h3>
|
||||
<router-link :to="{name: 'event-list'}">Back to the home page</router-link>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
@ -0,0 +1,21 @@
|
||||
<template>
|
||||
<div>
|
||||
<h1>Ooops</h1>
|
||||
<h3>The {{ resource }} you are looking for is not here.</h3>
|
||||
<router-link :to="{name: 'event-list'}">Back to the home page</router-link>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
resource: {
|
||||
type: String,
|
||||
required: true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
Loading…
Reference in New Issue