Lev
2 years ago
9 changed files with 237 additions and 12 deletions
@ -0,0 +1,73 @@ |
|||||||
|
<template> |
||||||
|
<div class="get-domain"> |
||||||
|
Get<br/> |
||||||
|
<p class="domain">{{domain}}</p> |
||||||
|
for<br/> |
||||||
|
<span class="price"> |
||||||
|
{{price}} |
||||||
|
<img src="@/assets/icons/ton_bottom.svg" class="ton_img" alt="TON"/> |
||||||
|
</span> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
export default { |
||||||
|
name: "GetDomainBtn", |
||||||
|
props: { |
||||||
|
domain: { |
||||||
|
type: String, |
||||||
|
required: true |
||||||
|
}, |
||||||
|
price: { |
||||||
|
type: Number, |
||||||
|
required: true |
||||||
|
}, |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped> |
||||||
|
/* #0088cc rounded box with cursor: pointer */ |
||||||
|
.get-domain { |
||||||
|
border-radius: 1rem; |
||||||
|
background-color: #0088cc; |
||||||
|
color: white; |
||||||
|
font-size: 1.5rem; |
||||||
|
text-align: center; |
||||||
|
padding: 2rem; |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
|
||||||
|
@media only screen and (max-width: 800px) { |
||||||
|
.get-domain { |
||||||
|
width: 90vw; |
||||||
|
/* allow multiple rows with 0.5 spacing */ |
||||||
|
flex-wrap: wrap; |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.domain { |
||||||
|
font-family: 'Inconsolata', monospace; |
||||||
|
font-weight: bold; |
||||||
|
font-size: 2.5rem; |
||||||
|
} |
||||||
|
|
||||||
|
@media only screen and (max-width: 800px) { |
||||||
|
.domain { |
||||||
|
font-size: 1.7rem; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.price { |
||||||
|
font-size: 3rem; |
||||||
|
font-weight: bold; |
||||||
|
font-family: 'Inconsolata', monospace; |
||||||
|
} |
||||||
|
|
||||||
|
.price > img { |
||||||
|
width: 2rem; |
||||||
|
height: 2rem; |
||||||
|
margin-left: -0.3rem; |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,88 @@ |
|||||||
|
<template> |
||||||
|
<div v-bind:style="styles" class="spinner spinner--rotate-square-2"></div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
export default { |
||||||
|
props: { |
||||||
|
size: { |
||||||
|
default: '40px' |
||||||
|
}, |
||||||
|
background: { |
||||||
|
default: '#0000' |
||||||
|
} |
||||||
|
}, |
||||||
|
computed: { |
||||||
|
styles () { |
||||||
|
return { |
||||||
|
width: this.size, |
||||||
|
height: this.size, |
||||||
|
backgroundColor: this.background |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
.spinner { |
||||||
|
position: relative; |
||||||
|
* { |
||||||
|
line-height: 0; |
||||||
|
box-sizing: border-box; |
||||||
|
} |
||||||
|
&:before { |
||||||
|
content: ''; |
||||||
|
width: 100%; |
||||||
|
height: 20%; |
||||||
|
min-width: 5px; |
||||||
|
background: #000; |
||||||
|
opacity: 0.1; |
||||||
|
position: absolute; |
||||||
|
bottom: 0%; |
||||||
|
left: 0; |
||||||
|
border-radius: 50%; |
||||||
|
animation: rotate-square-2-shadow .5s linear infinite; |
||||||
|
} |
||||||
|
&:after { |
||||||
|
content: ''; |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
background: #834c6e; |
||||||
|
animation: rotate-square-2-animate .5s linear infinite; |
||||||
|
position: absolute; |
||||||
|
bottom:40%; |
||||||
|
left: 0; |
||||||
|
border-radius: 3px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@keyframes rotate-square-2-animate { |
||||||
|
17% { |
||||||
|
border-bottom-right-radius: 3px; |
||||||
|
} |
||||||
|
25% { |
||||||
|
transform: translateY(20%) rotate(22.5deg); |
||||||
|
} |
||||||
|
50% { |
||||||
|
transform: translateY(40%) scale(1, .9) rotate(45deg); |
||||||
|
border-bottom-right-radius: 50%; |
||||||
|
} |
||||||
|
75% { |
||||||
|
transform: translateY(20%) rotate(67.5deg); |
||||||
|
} |
||||||
|
100% { |
||||||
|
transform: translateY(0) rotate(90deg); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@keyframes rotate-square-2-shadow { |
||||||
|
0%, 100% { |
||||||
|
transform: scale(1, 1); |
||||||
|
} |
||||||
|
50% { |
||||||
|
transform: scale(1.2, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,46 @@ |
|||||||
|
<template> |
||||||
|
<DarkLayout> |
||||||
|
<div class="center"> |
||||||
|
<DomainBar zone="" :value="query_" @search="search()" @input_d="query_ = $event"/> |
||||||
|
<RotateSquare2 v-if="results === null"/> |
||||||
|
<div v-for="result in results" :key="result"> |
||||||
|
|
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</DarkLayout> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import DomainBar from "../components/DomainBar.vue"; |
||||||
|
import DarkLayout from "../components/DarkLayout.vue"; |
||||||
|
import RotateSquare2 from "../components/RotateSquare2.vue"; |
||||||
|
|
||||||
|
export default { |
||||||
|
name: "FindQ", |
||||||
|
props: { |
||||||
|
query: { |
||||||
|
type: String, |
||||||
|
}, |
||||||
|
}, |
||||||
|
data() { |
||||||
|
return { |
||||||
|
query_: this.query |
||||||
|
} |
||||||
|
}, |
||||||
|
components: {RotateSquare2, DarkLayout, DomainBar}, |
||||||
|
methods: { |
||||||
|
search() { |
||||||
|
this.$router.push({name: 'FindQ', params: {query: this.query_}}); |
||||||
|
} |
||||||
|
}, |
||||||
|
computed: { |
||||||
|
results() { |
||||||
|
return []; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped> |
||||||
|
|
||||||
|
</style> |
Loading…
Reference in new issue