diff --git a/dashboard/habits.html b/dashboard/habits.html index 015901c..cba9669 100644 --- a/dashboard/habits.html +++ b/dashboard/habits.html @@ -31,15 +31,86 @@ } /* Filter bar */ + /* Filter/Search Bar - Collapsible */ .filter-bar { - display: flex; - gap: var(--space-3); - flex-wrap: wrap; margin-bottom: var(--space-4); - padding: var(--space-3); background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius-lg); + overflow: hidden; + } + + .filter-toolbar { + display: flex; + gap: var(--space-2); + padding: var(--space-2); + min-height: 40px; + } + + .filter-icon-btn { + display: flex; + align-items: center; + justify-content: center; + min-width: 44px; + min-height: 36px; + padding: var(--space-2); + border: 1px solid var(--border); + border-radius: var(--radius-md); + background: var(--bg-primary); + color: var(--text-muted); + cursor: pointer; + transition: all var(--transition-base); + } + + .filter-icon-btn:hover { + background: var(--bg-hover); + color: var(--text-primary); + border-color: var(--accent); + } + + .filter-icon-btn.active { + background: var(--accent); + color: white; + border-color: var(--accent); + } + + .search-container, .filter-container { + max-height: 0; + overflow: hidden; + transition: max-height 300ms ease, padding 300ms ease; + } + + .search-container.expanded { + max-height: 100px; + padding: 0 var(--space-3) var(--space-3) var(--space-3); + } + + .filter-container.expanded { + max-height: 500px; + padding: 0 var(--space-3) var(--space-3) var(--space-3); + } + + .search-input { + width: 100%; + padding: var(--space-2) var(--space-3); + border: 1px solid var(--border); + border-radius: var(--radius-md); + background: var(--bg-primary); + color: var(--text-primary); + font-size: var(--text-sm); + transition: all var(--transition-base); + } + + .search-input:focus { + outline: none; + border-color: var(--accent); + box-shadow: 0 0 0 2px var(--accent-alpha); + } + + .filter-options { + display: flex; + gap: var(--space-3); + flex-wrap: wrap; } .filter-group { @@ -47,6 +118,7 @@ flex-direction: column; gap: var(--space-1); min-width: 150px; + flex: 1; } .filter-label { @@ -79,7 +151,7 @@ } @media (max-width: 768px) { - .filter-bar { + .filter-options { flex-direction: column; } @@ -917,37 +989,57 @@