返回 slidev
PwaIndicator.vue
根目录 / packages / client / internals / PwaIndicator.vue
1 <script setup lang="ts">
2 import { pwaCaching, pwaReady } from '../setup/pwa'
3 </script>
4
5 <template>
6 <Transition name="slidev-pwa-fade">
7 <div
8 v-if="pwaCaching || pwaReady"
9 class="slidev-pwa-indicator"
10 :class="{ ready: pwaReady }"
11 >
12 <span v-if="pwaCaching">Caching for offline…</span>
13 <span v-else-if="pwaReady">Ready offline</span>
14 </div>
15 </Transition>
16 </template>
17
18 <style scoped>
19 .slidev-pwa-indicator {
20 position: fixed;
21 bottom: 1rem;
22 right: 1rem;
23 z-index: 9999;
24 padding: 0.4em 0.75em;
25 border-radius: 0.4em;
26 font-size: 0.75rem;
27 font-family: sans-serif;
28 line-height: 1.4;
29 background: rgba(0, 0, 0, 0.72);
30 color: #ccc;
31 pointer-events: none;
32 user-select: none;
33 backdrop-filter: blur(4px);
34 border: 1px solid rgba(255, 255, 255, 0.1);
35 }
36
37 .slidev-pwa-indicator.ready {
38 color: #7dce82;
39 }
40
41 .slidev-pwa-fade-enter-active,
42 .slidev-pwa-fade-leave-active {
43 transition: opacity 0.35s ease;
44 }
45
46 .slidev-pwa-fade-enter-from,
47 .slidev-pwa-fade-leave-to {
48 opacity: 0;
49 }
50 </style>
51
51 lines Plain Text