mirror of
https://iceshrimp.dev/iceshrimp/iceshrimp
synced 2024-12-29 14:08:05 +09:00
d8a0fdf934
Co-Authored-By: tamaina <tamaina@hotmail.co.jp>
78 lines
1.3 KiB
Vue
78 lines
1.3 KiB
Vue
<template>
|
|
<form class="search" @submit.prevent="onSubmit">
|
|
%fa:search%
|
|
<input v-model="q" type="search" placeholder="%i18n:@placeholder%"/>
|
|
<div class="result"></div>
|
|
</form>
|
|
</template>
|
|
|
|
<script lang="ts">
|
|
import Vue from 'vue';
|
|
|
|
export default Vue.extend({
|
|
data() {
|
|
return {
|
|
q: ''
|
|
};
|
|
},
|
|
methods: {
|
|
onSubmit() {
|
|
if (this.q.startsWith('#')) {
|
|
this.$router.push(`/tags/${encodeURIComponent(this.q.substr(1))}`);
|
|
} else {
|
|
this.$router.push(`/search?q=${encodeURIComponent(this.q)}`);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
</script>
|
|
|
|
<style lang="stylus" scoped>
|
|
@import '~const.styl'
|
|
root(isDark)
|
|
> [data-fa]
|
|
display block
|
|
position absolute
|
|
top 0
|
|
left 0
|
|
width 48px
|
|
text-align center
|
|
line-height 48px
|
|
color #9eaba8
|
|
pointer-events none
|
|
|
|
> *
|
|
vertical-align middle
|
|
|
|
> input
|
|
user-select text
|
|
cursor auto
|
|
margin 8px 0 0 0
|
|
padding 6px 18px 6px 36px
|
|
width 14em
|
|
height 32px
|
|
font-size 1em
|
|
background rgba(#000, 0.05)
|
|
outline none
|
|
//border solid 1px #ddd
|
|
border none
|
|
border-radius 16px
|
|
transition color 0.5s ease, border 0.5s ease
|
|
color isDark ? #fff : #000
|
|
|
|
&::placeholder
|
|
color #9eaba8
|
|
|
|
&:hover
|
|
background isDark ? rgba(#fff, 0.04) : rgba(#000, 0.08)
|
|
|
|
&:focus
|
|
box-shadow 0 0 0 2px rgba($theme-color, 0.5) !important
|
|
|
|
.search[data-darkmode]
|
|
root(true)
|
|
|
|
.search:not([data-darkmode])
|
|
root(false)
|
|
</style>
|