diff --git a/src/screens/EmailListScreen.tsx b/src/screens/EmailListScreen.tsx
index a713daee..3c95066d 100644
--- a/src/screens/EmailListScreen.tsx
+++ b/src/screens/EmailListScreen.tsx
@@ -92,6 +92,7 @@ const EmailRow = React.memo(function EmailRow({
onLongPress={handleLongPress}
delayLongPress={300}
>
+ {unread && }
{selectionMode && (
{selected ? (
@@ -1365,6 +1366,19 @@ function makeStyles(c: ThemePalette) {
},
emailRowPressed: { backgroundColor: c.surface },
emailRowSelected: { backgroundColor: c.selection },
+ // Mirrors the webmail's unread indicator: an 8px filled circle at the row's
+ // start edge, vertically centered (email-list-item.tsx, fill-unread). The
+ // weight/color change alone is too subtle on some device fonts (#27).
+ unreadDot: {
+ position: 'absolute',
+ left: 4,
+ top: '50%',
+ marginTop: -4,
+ width: 8,
+ height: 8,
+ borderRadius: 4,
+ backgroundColor: c.unread,
+ },
rowCheckboxWrap: {
width: 16,
height: componentSizes.avatarMd,
diff --git a/src/screens/UnifiedInboxScreen.tsx b/src/screens/UnifiedInboxScreen.tsx
index 9b4b0929..b5796730 100644
--- a/src/screens/UnifiedInboxScreen.tsx
+++ b/src/screens/UnifiedInboxScreen.tsx
@@ -96,6 +96,7 @@ export default function UnifiedInboxScreen({ navigation }: Props) {
onPress={() => onOpen(item)}
style={({ pressed }) => [styles.row, pressed && styles.rowPressed]}
>
+ {unread && }