Topbar.vue 1.7 KB

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