paricafe/src/client/app/common/views/components/ui/button.vue

75 lines
1 KiB
Vue
Raw Normal View History

2018-06-13 17:22:50 -05:00
<template>
2018-06-14 17:56:56 -05:00
<div class="ui-button" :class="[styl]">
<button :type="type" @click="$emit('click')">
2018-06-13 17:22:50 -05:00
<slot></slot>
</button>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
props: {
type: {
type: String,
required: false
}
2018-06-14 04:57:54 -05:00
},
data() {
return {
styl: 'fill'
};
},
2018-06-14 17:56:56 -05:00
inject: {
isCardChild: { default: false }
},
2018-06-14 04:57:54 -05:00
created() {
if (this.isCardChild) {
this.styl = 'line';
}
2018-06-13 17:22:50 -05:00
}
});
</script>
<style lang="stylus" scoped>
2018-09-28 05:59:19 -05:00
root(fill)
2018-06-13 17:22:50 -05:00
> button
display block
width 100%
2018-06-14 00:52:37 -05:00
margin 0
2018-06-13 17:22:50 -05:00
padding 0
font-weight bold
font-size 16px
line-height 44px
border none
border-radius 6px
outline none
box-shadow none
2018-06-14 04:57:54 -05:00
if fill
2018-09-26 06:19:35 -05:00
color var(--primaryForeground)
background var(--primary)
2018-06-14 04:57:54 -05:00
&:hover
2018-09-26 06:19:35 -05:00
background var(--primaryLighten5)
2018-06-14 04:57:54 -05:00
&:active
2018-09-26 06:19:35 -05:00
background var(--primaryDarken5)
2018-06-14 04:57:54 -05:00
else
2018-09-26 06:19:35 -05:00
color var(--primary)
2018-06-14 04:57:54 -05:00
background none
&:hover
2018-09-26 06:19:35 -05:00
color var(--primaryDarken5)
2018-06-14 04:57:54 -05:00
&:active
2018-09-26 06:19:35 -05:00
background var(--primaryAlpha03)
2018-06-14 04:57:54 -05:00
2018-09-28 05:59:19 -05:00
.ui-button
2018-06-14 04:57:54 -05:00
&.fill
2018-09-28 05:59:19 -05:00
root(true)
2018-06-14 04:57:54 -05:00
&:not(.fill)
2018-09-28 05:59:19 -05:00
root(false)
2018-06-14 00:52:37 -05:00
2018-06-13 17:22:50 -05:00
</style>