fix: bell badge sizing, text contrast, and empty timestamp display
- .tile-bell: inline-flex badge (min-width:16px height:16px) so it's a circle for single digits, pill for '9+'; was display:inline so width/height were ignored → oval shape - .tile-bell color: #0D1117 (dark on amber) — was inheriting muted gray from .tile-meta, making count illegible - formatTimestamp(null): return '' instead of em-dash '—' which rendered as a confusing glyph in the tile meta area
This commit is contained in:
+1
-1
@@ -6,7 +6,7 @@
|
|||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
function formatTimestamp(ts) {
|
function formatTimestamp(ts) {
|
||||||
if (ts == null) return '\u2014';
|
if (ts == null) return '';
|
||||||
const diff = Math.floor(Date.now() / 1000 - ts);
|
const diff = Math.floor(Date.now() / 1000 - ts);
|
||||||
if (diff < 60) return `${diff}s ago`;
|
if (diff < 60) return `${diff}s ago`;
|
||||||
if (diff < 3600) return `${Math.floor(diff / 60)}m ago`;
|
if (diff < 3600) return `${Math.floor(diff / 60)}m ago`;
|
||||||
|
|||||||
+14
-6
@@ -182,15 +182,23 @@ body {
|
|||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Bell dot */
|
/* Bell notification badge */
|
||||||
.tile-bell {
|
.tile-bell {
|
||||||
width: 8px;
|
display: inline-flex;
|
||||||
height: 8px;
|
align-items: center;
|
||||||
border-radius: 50%;
|
justify-content: center;
|
||||||
|
min-width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
padding: 0 3px;
|
||||||
|
border-radius: 8px;
|
||||||
background: var(--bell);
|
background: var(--bell);
|
||||||
animation: bell-pulse 1.4s ease-in-out infinite;
|
color: #0D1117;
|
||||||
margin-right: 6px;
|
font-size: 9px;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
margin-right: 6px;
|
||||||
|
animation: bell-pulse 1.4s ease-in-out infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes bell-pulse {
|
@keyframes bell-pulse {
|
||||||
|
|||||||
@@ -62,8 +62,8 @@ test('app.js exports all 7 pure functions', () => {
|
|||||||
|
|
||||||
// --- formatTimestamp ---
|
// --- formatTimestamp ---
|
||||||
|
|
||||||
test('formatTimestamp returns em-dash for null', () => {
|
test('formatTimestamp returns empty string for null', () => {
|
||||||
assert.strictEqual(app.formatTimestamp(null), '\u2014');
|
assert.strictEqual(app.formatTimestamp(null), '');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('formatTimestamp returns seconds ago for timestamp < 60s ago', () => {
|
test('formatTimestamp returns seconds ago for timestamp < 60s ago', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user