diff --git a/src/components/FloatingActions.astro b/src/components/FloatingActions.astro new file mode 100644 index 0000000..985bf79 --- /dev/null +++ b/src/components/FloatingActions.astro @@ -0,0 +1,224 @@ +
+ + + +
+ + + + diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index e555598..66bacf7 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -3,6 +3,7 @@ import Footer from "@/components/Footer.astro"; import Header from "@/components/Header.astro"; import { ClientRouter } from "astro:transitions"; import SEO from "@/components/SEO.astro"; +import FloatingActions from "@/components/FloatingActions.astro"; const { pageTitle, @@ -23,48 +24,7 @@ const { {pageTitle} -
- - - -
+
@@ -81,184 +41,4 @@ const { width: 100%; height: 100%; } - - .floating-actions { - position: fixed; - right: 1.25rem; - bottom: 1.25rem; - display: flex; - flex-direction: column; - gap: 0.75rem; - z-index: 1000; - } - - #theme-toggle-fab, - #back-to-top { - width: 3rem; - height: 3rem; - border: #a7a7a7 1.5px solid; - border-radius: 999px; - background: rgba(255, 255, 255, 0.92); - color: #222; - /* box-shadow: 0 4px 14px rgba(0, 0, 0, 0.16); */ - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - backdrop-filter: blur(6px); - } - - #theme-toggle-fab { - position: relative; - } - - #theme-toggle-fab { - position: relative; - } - - .theme-toggle-icon { - width: 1.2rem; - height: 1.2rem; - fill: currentColor; - } - - .theme-toggle-icon .sun, - .theme-toggle-icon .moon { - transform-origin: center; - transition: - opacity 0.2s ease, - transform 0.2s ease; - } - - .theme-toggle-icon .sun { - opacity: 1; - transform: scale(1) rotate(0deg); - } - - .theme-toggle-icon .moon { - opacity: 0; - transform: scale(0.75) rotate(-20deg); - } - - :global(.dark) .theme-toggle-icon .sun { - opacity: 0; - transform: scale(0.75) rotate(20deg); - } - - :global(.dark) .theme-toggle-icon .moon { - opacity: 1; - transform: scale(1) rotate(0deg); - } - - #theme-toggle-fab, - #back-to-top { - /* opacity: 0; */ - visibility: hidden; - transform: translateY(150px); - transition: - opacity 0.2s ease, - transform 0.27s ease, - visibility 0.2s ease; - } - - #theme-toggle-fab.show, - #back-to-top.show { - opacity: 1; - visibility: visible; - transform: translateY(0); - } - - #theme-toggle-fab.show:hover, - #back-to-top.show:hover { - transform: translateY(-2px); - } - - :global(.dark) #theme-toggle-fab, - :global(.dark) #back-to-top { - background: rgba(34, 34, 34, 0.92); - color: #f5f5f5; - box-shadow: 0 4px 14px rgba(0, 0, 0, 0.32); - border: #515151 2px solid; - } - - @media (max-width: 640px) { - .floating-actions { - right: 1rem; - bottom: 1rem; - gap: 0.65rem; - } - - #theme-toggle-fab, - #back-to-top { - width: 2.75rem; - height: 2.75rem; - } - } - -