gctGenerator/site/.vuepress/components/ButtonComponent.vue
2022-02-22 03:40:14 +00:00

73 lines
1.3 KiB
Vue

<template>
<div
:class="
disabled
? `button-wrapper disabled ${className ? className : ''}`
: `button-wrapper ${className ? className : ''}`
"
>
<button :class="small ? 'small' : ''" @click="handleClick" :disabled="disabled">
{{ label }}
</button>
</div>
</template>
<script>
export default {
props: {
small: { type: Boolean, required: false },
className: { type: String, required: false },
disabled: { type: Boolean },
onClick: { type: Function },
label: { type: String },
},
methods: {
handleClick(e) {
e.stopPropagation();
this.onClick();
},
},
};
</script>
<style scoped>
.button-wrapper {
position: relative;
display: inline-block;
max-width: 400px;
min-width: 180px;
width: 100%;
}
.button-wrapper.disabled button {
background-color: rgb(165, 165, 165);
cursor: not-allowed;
}
.small {
padding: 3px 7px;
}
button {
border: none;
outline: none;
background-color: #2eb9e2;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
border-radius: 0;
margin: 0;
display: block;
width: 100%;
padding: 6px 15px;
font-size: 14px;
color: white;
font-weight: bold;
cursor: pointer;
text-align: center;
}
button:hover {
background-color: #3fc1e9;
}
</style>