app.blade.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. {{-- api-v12/resources/views/library/layouts/app.blade.php --}}
  2. <!doctype html>
  3. <html lang="zh">
  4. <head>
  5. <meta charset="utf-8" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
  7. <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  8. <title>@yield('title', '巴利书库')</title>
  9. @stack('styles')
  10. @vite(['resources/css/main.css', 'resources/js/app.js'])
  11. <link href="https://cdn.jsdelivr.net/npm/@tabler/core@latest/dist/css/tabler.min.css" rel="stylesheet" />
  12. <link href="https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@latest/tabler-icons.min.css" rel="stylesheet" />
  13. <script src="https://cdn.jsdelivr.net/npm/@tabler/core@1.3.2/dist/js/tabler.min.js"></script>
  14. <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
  15. </head>
  16. <body>
  17. <div class="page">
  18. <x-library.header />
  19. @yield('hero')
  20. <div class="page-wrapper">
  21. @yield('content')
  22. </div>
  23. </div>
  24. <script>
  25. // Hamburger Menu Toggle
  26. (function() {
  27. const btn = document.getElementById('bcHamburger');
  28. const overlay = document.getElementById('bcOverlay');
  29. const drawer = document.getElementById('bcDrawer');
  30. const close = document.getElementById('bcDrawerClose');
  31. if (!btn) return;
  32. function open() {
  33. drawer.classList.add('open');
  34. overlay.classList.add('open');
  35. }
  36. function shut() {
  37. drawer.classList.remove('open');
  38. overlay.classList.remove('open');
  39. }
  40. btn.addEventListener('click', open);
  41. overlay.addEventListener('click', shut);
  42. close.addEventListener('click', shut);
  43. drawer.querySelectorAll('a').forEach(a => {
  44. a.addEventListener('click', shut);
  45. });
  46. })();
  47. const mobileOverlay = document.getElementById('mobileOverlay');
  48. function toggleMenu() {
  49. mobileMenu.classList.toggle('active');
  50. mobileOverlay.classList.toggle('active');
  51. hamburgerBtn.classList.toggle('active');
  52. }
  53. hamburgerBtn.addEventListener('click', toggleMenu);
  54. mobileOverlay.addEventListener('click', toggleMenu);
  55. // Close menu when clicking on a link
  56. document.querySelectorAll('.mobile-nav-item a').forEach(link => {
  57. link.addEventListener('click', () => {
  58. toggleMenu();
  59. });
  60. });
  61. </script>
  62. @stack('scripts')
  63. </body>
  64. </html>