diff --git a/css/app.css b/css/app.css index eff8043..d21a23a 100644 --- a/css/app.css +++ b/css/app.css @@ -289,6 +289,7 @@ select:focus { border-color: var(--accent); } border-radius: 3px; letter-spacing: 0.08em; text-transform: uppercase; + text-align: center; } .badge.deployed { background: var(--accent2); color: var(--accent); } diff --git a/tests/helpers.test.js b/tests/helpers.test.js index dc3a809..69008a6 100644 --- a/tests/helpers.test.js +++ b/tests/helpers.test.js @@ -1,5 +1,7 @@ // @vitest-environment jsdom import { describe, it, expect } from 'vitest' +import { readFileSync } from 'fs' +import { join } from 'path' // ── esc() ───────────────────────────────────────────────────────────────────── // Mirrors the implementation in ui.js exactly (DOM-based). @@ -112,3 +114,16 @@ describe('fmtDateFull', () => { expect(fmtDateFull('')).toBe('—') }) }) + +// ── CSS regressions ─────────────────────────────────────────────────────────── + +const css = readFileSync(join(__dirname, '../css/app.css'), 'utf8') + +describe('CSS regressions', () => { + it('.badge has text-align: center so state labels are not left-skewed on cards', () => { + // Regression: badges rendered left-aligned inside the card's flex-end column. + // Without text-align: center, short labels (e.g. "deployed") appear + // left-justified inside their pill rather than centred. + expect(css).toMatch(/\.badge\s*\{[^}]*text-align\s*:\s*center/s) + }) +})