Add multi-tag filtering with active tag display, optimize directory browsing performance, and improve mobile editor UI

This commit is contained in:
2026-03-21 21:52:58 -04:00
parent 0ba58115a2
commit 7fbf0f07ef
5 changed files with 218 additions and 62 deletions
+91 -5
View File
@@ -84,6 +84,7 @@ a:hover {
.header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 10px 20px;
background: var(--bg-secondary);
@@ -93,6 +94,28 @@ a:hover {
transition: background 200ms ease;
}
.header-left {
display: flex;
align-items: center;
gap: 12px;
flex: 1;
min-width: 0;
}
.header-center {
display: flex;
justify-content: center;
flex: 2;
max-width: 600px;
}
.header-right {
display: flex;
justify-content: flex-end;
flex: 1;
min-width: 0;
}
.hamburger-btn {
display: none;
background: none;
@@ -114,7 +137,6 @@ a:hover {
font-size: 1.15rem;
color: var(--accent);
white-space: nowrap;
margin-right: auto;
display: flex;
align-items: center;
gap: 8px;
@@ -128,7 +150,7 @@ a:hover {
}
.search-wrapper {
flex: 1;
width: 100%;
max-width: 520px;
position: relative;
}
@@ -157,6 +179,38 @@ a:hover {
pointer-events: none;
}
.active-tags {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-top: 8px;
min-height: 0;
}
.active-tag {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 3px 8px;
background: var(--tag-bg);
color: var(--tag-text);
border-radius: 4px;
font-family: 'JetBrains Mono', monospace;
font-size: 0.75rem;
cursor: pointer;
transition: opacity 150ms ease;
}
.active-tag:hover {
opacity: 0.7;
}
.active-tag .remove-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 14px;
height: 14px;
}
.header-menu {
position: relative;
}
@@ -569,8 +623,15 @@ a:hover {
color: var(--tag-text);
border-radius: 4px;
font-family: 'JetBrains Mono', monospace;
font-size: 0.78rem;
font-size: 0.75rem;
margin-right: 6px;
margin-bottom: 4px;
cursor: pointer;
transition: opacity 150ms ease, transform 100ms ease;
}
.file-tag:hover {
opacity: 0.8;
transform: translateY(-1px);
}
.file-actions {
margin-top: 8px;
@@ -980,15 +1041,27 @@ a:hover {
.editor-header {
padding: 10px 12px;
position: sticky;
top: 0;
z-index: 10;
}
.editor-title {
font-size: 0.85rem;
}
.editor-actions {
gap: 6px;
}
.editor-btn {
font-size: 0.75rem;
padding: 5px 10px;
padding: 8px;
min-width: 36px;
}
.editor-btn-text {
display: none;
}
.editor-body {
@@ -1044,6 +1117,20 @@ body.resizing-v {
padding: 8px 10px;
}
.header-left {
flex: 0 0 auto;
gap: 8px;
}
.header-center {
flex: 1;
max-width: none;
}
.header-right {
flex: 0 0 auto;
}
.header-logo {
font-size: 0.95rem;
gap: 6px;
@@ -1051,7 +1138,6 @@ body.resizing-v {
.search-wrapper {
max-width: none;
flex: 1;
}
.search-wrapper input {