Topbar.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <template>
  2. <div class="topbar">
  3. <IdCard />
  4. <v-spacer />
  5. <div class="icon-links">
  6. <LanguageSelector class="mr-3" />
  7. <ThemeSwitcher />
  8. <nuxt-link
  9. href="https://github.com/olinox14"
  10. target="_blank"
  11. :aria-label="i18n.t('Find me on Github')"
  12. class="logo"
  13. >
  14. <v-icon>fab fa-github</v-icon>
  15. </nuxt-link>
  16. <nuxt-link
  17. href="https://stackoverflow.com/users/4279120/olinox14"
  18. target="_blank"
  19. :aria-label="i18n.t('Find me on Stackoverflow')"
  20. class="logo"
  21. >
  22. <v-icon>fab fa-stack-overflow</v-icon>
  23. </nuxt-link>
  24. <nuxt-link
  25. href="https://www.linkedin.com/in/olivier-massot-60b87b181"
  26. target="_blank"
  27. :aria-label="i18n.t('Find me on LinkedIn')"
  28. class="logo"
  29. >
  30. <v-icon>fab fa-linkedin</v-icon>
  31. </nuxt-link>
  32. </div>
  33. </div>
  34. </template>
  35. <script setup lang="ts">
  36. import ThemeSwitcher from "~/components/ThemeSwitcher.vue";
  37. import type {Ref} from "@vue/reactivity";
  38. const i18n = useI18n()
  39. </script>
  40. <style scoped lang="scss">
  41. .topbar {
  42. height: 64px;
  43. display: flex;
  44. flex-direction: row;
  45. margin: 0;
  46. padding: 18px;
  47. @media (max-width: 1280px) {
  48. margin: 0 10%;
  49. }
  50. @media (max-width: 600px) {
  51. margin: 0 5%;
  52. }
  53. .v-btn {
  54. color: rgb(var(--v-theme-on-background));
  55. }
  56. .icon-links {
  57. font-size: 14px;
  58. display: flex;
  59. flex-direction: row;
  60. align-items: center;
  61. > * {
  62. margin-left: 24px;
  63. @media (max-width: 540px) {
  64. margin-left: 4px;
  65. }
  66. }
  67. .logo {
  68. padding: 4px;
  69. }
  70. a {
  71. color: rgb(var(--v-theme-on-background--clickable));
  72. }
  73. }
  74. }
  75. </style>