diff options
Diffstat (limited to 'packages/frontend/src/components/MkFlashPreview.vue')
| -rw-r--r-- | packages/frontend/src/components/MkFlashPreview.vue | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/packages/frontend/src/components/MkFlashPreview.vue b/packages/frontend/src/components/MkFlashPreview.vue new file mode 100644 index 0000000000..1a82ffe5ab --- /dev/null +++ b/packages/frontend/src/components/MkFlashPreview.vue @@ -0,0 +1,112 @@ +<template> +<MkA :to="`/play/${flash.id}`" class="vhpxefrk _block" tabindex="-1"> + <article> + <header> + <h1 :title="flash.title">{{ flash.title }}</h1> + </header> + <p v-if="flash.summary" :title="flash.summary">{{ flash.summary.length > 85 ? flash.summary.slice(0, 85) + '…' : flash.summary }}</p> + <footer> + <img class="icon" :src="flash.user.avatarUrl"/> + <p>{{ userName(flash.user) }}</p> + </footer> + </article> +</MkA> +</template> + +<script lang="ts" setup> +import { } from 'vue'; +import * as misskey from 'misskey-js'; +import { userName } from '@/filters/user'; +import * as os from '@/os'; + +const props = defineProps<{ + //flash: misskey.entities.Flash; + flash: any; +}>(); +</script> + +<style lang="scss" scoped> +.vhpxefrk { + display: block; + + &:hover { + text-decoration: none; + color: var(--accent); + } + + > article { + padding: 16px; + + > header { + margin-bottom: 8px; + + > h1 { + margin: 0; + font-size: 1em; + color: var(--urlPreviewTitle); + } + } + + > p { + margin: 0; + color: var(--urlPreviewText); + font-size: 0.8em; + } + + > footer { + margin-top: 8px; + height: 16px; + + > img { + display: inline-block; + width: 16px; + height: 16px; + margin-right: 4px; + vertical-align: top; + } + + > p { + display: inline-block; + margin: 0; + color: var(--urlPreviewInfo); + font-size: 0.8em; + line-height: 16px; + vertical-align: top; + } + } + } + + @media (max-width: 700px) { + } + + @media (max-width: 550px) { + font-size: 12px; + + > article { + padding: 12px; + } + } + + @media (max-width: 500px) { + font-size: 10px; + + > article { + padding: 8px; + + > header { + margin-bottom: 4px; + } + + > footer { + margin-top: 4px; + + > img { + width: 12px; + height: 12px; + } + } + } + } +} + +</style> |