NavBar.vue 997 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <script setup lang="ts">
  2. import NavBarTitle from './NavBarTitle.vue'
  3. import NavLinks from './NavLinks.vue'
  4. import ToggleSideBarButton from './ToggleSideBarButton.vue'
  5. defineEmits(['toggle'])
  6. </script>
  7. <template>
  8. <header class="nav-bar">
  9. <ToggleSideBarButton @toggle="$emit('toggle')" />
  10. <NavBarTitle />
  11. <div class="flex-grow" />
  12. <div class="nav">
  13. <NavLinks />
  14. </div>
  15. <slot name="search" />
  16. </header>
  17. </template>
  18. <style scoped>
  19. .nav-bar {
  20. position: fixed;
  21. top: 0;
  22. right: 0;
  23. left: 0;
  24. z-index: var(--z-index-navbar);
  25. display: flex;
  26. justify-content: space-between;
  27. align-items: center;
  28. border-bottom: 1px solid var(--c-divider);
  29. padding: 0.7rem 1.5rem 0.7rem 4rem;
  30. height: var(--header-height);
  31. background-color: var(--c-bg);
  32. }
  33. @media (min-width: 720px) {
  34. .nav-bar {
  35. padding: 0.7rem 1.5rem;
  36. }
  37. }
  38. .flex-grow {
  39. flex-grow: 1;
  40. }
  41. .nav {
  42. display: none;
  43. }
  44. @media (min-width: 720px) {
  45. .nav {
  46. display: block;
  47. }
  48. }
  49. </style>