Topbar.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <template>
  2. <div class="topbar">
  3. <NuxtLink to="/" class="logo-link">
  4. <div class="logo-container">
  5. <h1 class="site-title">La Sauvagerie</h1>
  6. <p class="site-subtitle">Location de vacances en Normandie</p>
  7. </div>
  8. </NuxtLink>
  9. <v-spacer />
  10. <div class="icon-links">
  11. <LanguageSelector class="mr-3" />
  12. <ThemeSwitcher />
  13. <v-btn
  14. variant="text"
  15. class="contact-btn"
  16. prepend-icon="fas fa-phone"
  17. >
  18. Contact
  19. </v-btn>
  20. </div>
  21. </div>
  22. </template>
  23. <script setup lang="ts">
  24. import ThemeSwitcher from "~/components/ThemeSwitcher.vue";
  25. import { useDisplay } from 'vuetify'
  26. const i18n = useI18n()
  27. const { lgAndUp }= useDisplay()
  28. </script>
  29. <style scoped lang="scss">
  30. .topbar {
  31. min-height: 64px;
  32. display: flex;
  33. flex-direction: row;
  34. margin: 0;
  35. padding: 18px;
  36. @media (max-width: 1279px) {
  37. margin: 0 10%;
  38. }
  39. @media (max-width: 600px) {
  40. margin: 0 5%;
  41. flex-direction: column;
  42. align-items: center;
  43. text-align: center;
  44. }
  45. .logo-link {
  46. text-decoration: none;
  47. transition: opacity 0.2s ease;
  48. &:hover {
  49. opacity: 0.9;
  50. }
  51. }
  52. .logo-container {
  53. display: flex;
  54. flex-direction: column;
  55. justify-content: center;
  56. .site-title {
  57. font-size: 1.8rem;
  58. font-weight: 700;
  59. margin: 0;
  60. color: rgb(var(--v-theme-primary));
  61. font-family: 'Georgia', serif;
  62. }
  63. .site-subtitle {
  64. font-size: 0.9rem;
  65. margin: 0;
  66. color: rgb(var(--v-theme-on-background));
  67. font-style: italic;
  68. }
  69. }
  70. .v-btn {
  71. color: rgb(var(--v-theme-on-background));
  72. }
  73. .contact-btn {
  74. background-color: rgb(var(--v-theme-primary));
  75. color: rgb(var(--v-theme-on-primary)) !important;
  76. font-weight: 500;
  77. border-radius: 4px;
  78. padding: 0 16px;
  79. }
  80. .icon-links {
  81. font-size: 14px;
  82. display: flex;
  83. flex-direction: row;
  84. align-items: center;
  85. > * {
  86. margin-left: 24px;
  87. @media (max-width: 540px) {
  88. margin-left: 12px;
  89. }
  90. }
  91. .logo {
  92. padding: 4px;
  93. }
  94. a {
  95. color: rgb(var(--v-theme-on-background--clickable));
  96. }
  97. }
  98. }
  99. </style>