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;