Footer.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <v-footer no-gutters :height="$vuetify.display.smAndDown ? 48 : 36" class="footer">
  3. <div class="footer-content">
  4. <span>{{ $t('footer_copyright', { year: new Date().getFullYear() }) }}</span>
  5. <span class="divider">|</span>
  6. <NuxtLink to="/mentions-legales" class="legal-link">{{ $t('footer_legal') }}</NuxtLink>
  7. </div>
  8. </v-footer>
  9. </template>
  10. <script setup lang="ts">
  11. import { useI18n } from 'vue-i18n'
  12. import { useDisplay } from 'vuetify'
  13. const { t } = useI18n()
  14. const { smAndDown } = useDisplay()
  15. </script>
  16. <style scoped lang="scss">
  17. .footer {
  18. background-color: rgba(var(--v-theme-card-background), 0.65) !important;
  19. color: rgb(var(--v-theme-on-background)) !important;
  20. text-align: center;
  21. font-size: 0.85rem;
  22. backdrop-filter: blur(5px);
  23. box-shadow: 0 -4px 30px rgba(0, 0, 0, 0.1);
  24. border-top: 1px solid rgba(255, 255, 255, 0.3);
  25. border-radius: 0;
  26. margin: 0;
  27. width: 100%;
  28. .footer-content {
  29. width: 100%;
  30. display: flex;
  31. justify-content: center;
  32. align-items: center;
  33. padding: 8px 0;
  34. @media (max-width: 600px) {
  35. flex-direction: column;
  36. .divider {
  37. display: none;
  38. }
  39. }
  40. .divider {
  41. margin: 0 12px;
  42. }
  43. .legal-link {
  44. color: rgb(var(--v-theme-on-background));
  45. text-decoration: none;
  46. &:hover {
  47. text-decoration: underline;
  48. color: rgb(var(--v-theme-primary));
  49. }
  50. }
  51. }
  52. }
  53. </style>