diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 5b5416b..36fad85 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1198,9 +1198,9 @@ export const App: React.FC = () => { className={`tab-btn ${activeTab === 'triage' ? 'tab-btn-active' : ''}`} > - 0 ? 'pr-3' : ''}`}> + Triage - + @@ -1223,9 +1223,9 @@ export const App: React.FC = () => { className={`tab-btn ${activeTab === 'tasks' ? 'tab-btn-active' : ''}`} > - 0 ? 'pr-3' : ''}`}> + Aufgaben - + @@ -1237,9 +1237,9 @@ export const App: React.FC = () => { className={`tab-btn ${activeTab === 'lists' ? 'tab-btn-active' : ''}`} > - 0 ? 'pr-3' : ''}`}> + Listen - + diff --git a/frontend/src/components/CountBadge.tsx b/frontend/src/components/CountBadge.tsx index f512dde..b411566 100644 --- a/frontend/src/components/CountBadge.tsx +++ b/frontend/src/components/CountBadge.tsx @@ -4,14 +4,16 @@ interface CountBadgeProps { count: number | undefined | null; // accent: something waits for you (nav bar); muted: plain amount (tabs, lists) variant?: 'accent' | 'muted'; - // corner: notification badge on the top right of the nearest `relative` parent - position?: 'inline' | 'corner'; + // corner: notification badge on the top right of the nearest `relative` parent (icons); + // text: right after a label, raised and hanging a little over its last letter (tabs, nav bar) + position?: 'inline' | 'corner' | 'text'; showZero?: boolean; className?: string; // e.g. to fine-tune the corner offset } // Full class names: Tailwind drops component classes it cannot find literally in the source const VARIANT_CLASS = { accent: 'count-badge-accent', muted: 'count-badge-muted' }; +const POSITION_CLASS = { inline: '', corner: 'count-badge-corner', text: 'count-badge-text' }; // The one counter of the app (Doku/ui-patterns.md); hides itself at 0 unless showZero export const CountBadge: React.FC = ({ @@ -25,7 +27,7 @@ export const CountBadge: React.FC = ({ const label = count > 99 ? '99+' : String(count); return ( {label} diff --git a/frontend/src/features/lists/SharedListsView.tsx b/frontend/src/features/lists/SharedListsView.tsx index 88752d8..d09e1dc 100644 --- a/frontend/src/features/lists/SharedListsView.tsx +++ b/frontend/src/features/lists/SharedListsView.tsx @@ -1063,9 +1063,9 @@ export const SharedListsView: React.FC = ({ onRefreshGloba > {lst.icon} {/* Counter on the label, like in the nav bar */} - 0 ? 'pr-3' : ''}`}> + {lst.title} - + = ({ }`} > {/* Counter on the label, like in the nav bar */} - + Alle Aufgaben - + @@ -1825,9 +1825,9 @@ export const TasksView: React.FC = ({ className="h-full px-3 text-xs font-medium flex items-center gap-1.5 rounded-btn" > {tl.icon} - + {tl.title} - + {(() => { diff --git a/frontend/src/features/workspace/WorkspaceView.tsx b/frontend/src/features/workspace/WorkspaceView.tsx index 9708483..fa478bf 100644 --- a/frontend/src/features/workspace/WorkspaceView.tsx +++ b/frontend/src/features/workspace/WorkspaceView.tsx @@ -1623,9 +1623,9 @@ export const WorkspaceView: React.FC = ({ }`} > - 0 ? 'pr-3' : ''}`}> + To-Dos - + @@ -1642,9 +1642,9 @@ export const WorkspaceView: React.FC = ({ }`} > - 0 ? 'pr-3' : ''}`}> + Hashtags - + diff --git a/frontend/src/index.css b/frontend/src/index.css index c1c62f2..7d2f5d0 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -339,6 +339,14 @@ body { /* ring in the page colour keeps the badge readable on top of borders */ box-shadow: 0 0 0 2px var(--bg-app); } + /* In the text flow right after a label: only the ring hangs over the last letter (2 px), however many + digits; wider numbers make the tab wider instead of covering more of the word */ + .count-badge-text { + position: relative; + top: -0.375rem; + z-index: 1; + box-shadow: 0 0 0 2px var(--bg-app); + } .badge-ok { display: inline-flex;