diff --git a/web/src/components/TopNav.jsx b/web/src/components/TopNav.jsx
index 14dc938..d2e7e8c 100644
--- a/web/src/components/TopNav.jsx
+++ b/web/src/components/TopNav.jsx
@@ -31,7 +31,6 @@ import {
import { FaEdge } from "react-icons/fa";
import tangledLogo from "../assets/tangled.svg";
import { getUnreadNotificationCount } from "../api/client";
-import logo from "../assets/logo.svg";
const isFirefox =
typeof navigator !== "undefined" && /Firefox/i.test(navigator.userAgent);
diff --git a/web/src/css/annotations.css b/web/src/css/annotations.css
index 77584e2..1dc6022 100644
--- a/web/src/css/annotations.css
+++ b/web/src/css/annotations.css
@@ -163,7 +163,7 @@
gap: 8px;
padding-left: 0;
max-width: 100%;
- overflow: hidden;
+ overflow: visible;
}
.annotation-source {
diff --git a/web/src/css/cards.css b/web/src/css/cards.css
index 9b4cfb9..f6a2826 100644
--- a/web/src/css/cards.css
+++ b/web/src/css/cards.css
@@ -71,6 +71,7 @@
margin: 0;
display: -webkit-box;
-webkit-line-clamp: 2;
+ line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
@@ -82,6 +83,7 @@
margin: 0;
display: -webkit-box;
-webkit-line-clamp: 2;
+ line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
@@ -96,10 +98,16 @@
}
.bookmark-card:hover {
- z-index: 100 !important;
+ z-index: 10;
overflow: visible !important;
}
+.bookmark-card.has-open-menu,
+.annotation-card.has-open-menu,
+.card.has-open-menu {
+ z-index: 200 !important;
+}
+
.bookmark-site {
display: flex;
align-items: center;
@@ -125,6 +133,7 @@
margin: 0;
display: -webkit-box;
-webkit-line-clamp: 2;
+ line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
diff --git a/web/src/css/feed.css b/web/src/css/feed.css
index 0d25e8b..5f987ee 100644
--- a/web/src/css/feed.css
+++ b/web/src/css/feed.css
@@ -47,15 +47,17 @@
border: 1px solid var(--border);
border-radius: var(--radius-lg);
position: relative;
- overflow: hidden;
+ overflow: visible;
}
.feed > *:last-child {
border-bottom: 1px solid var(--border);
}
-.feed > *:hover {
- z-index: 10;
+.feed > *.has-open-menu,
+.feed > *:focus-within {
+ z-index: 200 !important;
+ overflow: visible !important;
}
.feed-page {
diff --git a/web/src/css/layout.css b/web/src/css/layout.css
index e5620df..0bb49fa 100644
--- a/web/src/css/layout.css
+++ b/web/src/css/layout.css
@@ -13,7 +13,7 @@
@media (max-width: 1024px) {
.app-layout {
- grid-template-columns: 240px 1fr;
+ grid-template-columns: 220px 1fr;
}
}
@@ -44,8 +44,7 @@
.layout-mode-topnav .app-layout {
grid-template-columns: 1fr;
- max-width: 1600px;
- margin: 0 auto;
+ max-width: 100%;
height: auto;
overflow: visible;
}
@@ -60,8 +59,43 @@
}
.layout-mode-topnav .main-content > * {
- max-width: 1200px;
+ max-width: 1100px;
margin: 0 auto;
+ padding: 32px 32px 80px;
+}
+
+@media (min-width: 1400px) {
+ .layout-mode-topnav .main-content > * {
+ max-width: 1300px;
+ }
+}
+
+@media (min-width: 1700px) {
+ .layout-mode-topnav .main-content > * {
+ max-width: 1500px;
+ }
+}
+
+@media (max-width: 768px) {
+ .layout-mode-topnav .app-layout {
+ grid-template-columns: 1fr;
+ max-width: none;
+ height: auto;
+ overflow: visible;
+ }
+
+ .layout-mode-topnav .top-nav {
+ display: none;
+ }
+
+ .layout-mode-topnav .main-content {
+ padding: 16px 12px 100px;
+ }
+
+ .layout-mode-topnav .main-content > * {
+ max-width: 100%;
+ padding: 0 4px;
+ }
}
.top-nav-inner {
@@ -237,7 +271,7 @@
border-radius: var(--radius-lg);
padding: 6px;
box-shadow: var(--shadow-lg);
- z-index: 200;
+ z-index: 100;
}
.dropdown-right {
@@ -335,15 +369,16 @@
width: 100%;
padding: 0;
overflow-y: auto;
+ overflow-x: hidden;
height: 100%;
scrollbar-width: thin;
scrollbar-color: var(--bg-hover) transparent;
}
.main-content > * {
- max-width: 800px;
+ max-width: 100%;
margin: 0 auto;
- padding: 32px 32px 80px;
+ padding: 32px 40px 80px;
}
.main-content::-webkit-scrollbar {
@@ -424,11 +459,7 @@
-webkit-backdrop-filter: blur(12px);
border-top: 1px solid var(--border);
padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
- z-index: 100;
-}
-
-.mobile-bottom-nav {
- display: none;
+ z-index: 200;
justify-content: space-around;
align-items: center;
}
@@ -574,12 +605,13 @@
}
.main-content > * {
- padding: 0;
+ padding: 0 4px;
+ max-width: 100%;
}
.feed-container {
border-radius: var(--radius-md);
- padding: 4px;
+ padding: 0;
}
}
@@ -601,7 +633,7 @@
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.5);
- z-index: 150;
+ z-index: 300;
backdrop-filter: blur(2px);
-webkit-backdrop-filter: blur(2px);
animation: fadeIn 0.15s ease-out;
@@ -616,7 +648,7 @@
border: 1px solid var(--border);
border-radius: var(--radius-xl);
padding: 6px;
- z-index: 151;
+ z-index: 301;
box-shadow: var(--shadow-2xl);
animation: mobileMenuSlide 0.2s cubic-bezier(0.16, 1, 0.3, 1);
display: flex;
diff --git a/web/src/css/modals.css b/web/src/css/modals.css
index 90ee00e..5dd820c 100644
--- a/web/src/css/modals.css
+++ b/web/src/css/modals.css
@@ -6,7 +6,7 @@
align-items: center;
justify-content: center;
padding: var(--spacing-md);
- z-index: 100;
+ z-index: 500;
animation: fadeIn 0.15s ease-out;
}
diff --git a/web/src/css/utilities.css b/web/src/css/utilities.css
index 1e44cd5..854c9ed 100644
--- a/web/src/css/utilities.css
+++ b/web/src/css/utilities.css
@@ -539,21 +539,17 @@
.share-menu-container {
position: relative;
- z-index: 50;
}
.share-menu {
- position: absolute;
- top: 100%;
- right: 0;
- margin-top: 8px;
background: var(--bg-elevated);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-lg);
- min-width: 200px;
+ min-width: 220px;
+ max-width: calc(100vw - 32px);
padding: 8px;
- z-index: 1000;
+ z-index: 9999;
animation: fadeInUp 0.15s ease;
}
diff --git a/web/src/pages/Login.jsx b/web/src/pages/Login.jsx
index aa2e124..1efe5f6 100644
--- a/web/src/pages/Login.jsx
+++ b/web/src/pages/Login.jsx
@@ -3,7 +3,6 @@ import { Link } from "react-router-dom";
import { useAuth } from "../context/AuthContext";
import { searchActors, startLogin } from "../api/client";
import { AtSign } from "lucide-react";
-import logo from "../assets/logo.svg";
import SignUpModal from "../components/SignUpModal";
export default function Login() {
diff --git a/web/src/pages/Profile.jsx b/web/src/pages/Profile.jsx
index a3fba01..ed24d76 100644
--- a/web/src/pages/Profile.jsx
+++ b/web/src/pages/Profile.jsx
@@ -41,23 +41,6 @@ function LinkIconComponent({ url }) {
}
}
-function KeyIcon({ size = 16 }) {
- return (
-
- );
-}
-
export default function Profile() {
const { handle: routeHandle } = useParams();
const { user, loading: authLoading } = useAuth();
@@ -425,11 +408,3 @@ export default function Profile() {
- );
-}
diff --git a/web/src/pages/Settings.jsx b/web/src/pages/Settings.jsx
index cac21d9..9ce956f 100644
--- a/web/src/pages/Settings.jsx
+++ b/web/src/pages/Settings.jsx
@@ -3,7 +3,7 @@ import { getAPIKeys, createAPIKey, deleteAPIKey } from "../api/client";
import { useTheme } from "../context/ThemeContext";
import { useAuth } from "../context/AuthContext";
import { Navigate } from "react-router-dom";
-import { Monitor, Columns, Layout } from "lucide-react";
+import { Columns, Layout } from "lucide-react";
function KeyIcon({ size = 16 }) {
return (