v148 · CSS · UA stylesheet
Compatibility Lab
Live CSS.supports() probes that tell you exactly what your current browser reports — then a before/after rendering toggle so you can see the practical difference. The matrix shows which browser versions removed the UA rule.
CSS.supports() results — this browser
Probing…
Live rendering probe
A 1×1 hidden table is injected, its border-color computed style read back. If the UA used to pin it to grey, we'll see rgb(128,128,128); otherwise the inherited text colour shows through.
—
Before / After toggle
Switch between the Chrome 148 behaviour (borders inherit from currentColor) and a simulation of the old UA rule (border-color: gray forced on every cell).
Chrome 148 — no border-color declaration, inherits from color
Wrapper: color #0044cc
| Feature | Chrome | Firefox | Safari |
|---|---|---|---|
| UA border-color removed | 148+ | All | All |
| currentColor default | 148+ | All | All |
| Explicit override needed | <148 | Never | Never |
Border colour is inheriting from the wrapper's
color: #0044cc — no border-color declaration anywhere.Browser compatibility matrix
| Browser | UA rule removed | Version | Notes |
|---|---|---|---|
| Chrome / Chromium | Yes | 148+ | Shipped stable May 2025 |
| Edge (Chromium) | Yes | 148+ | Follows Chromium |
| Firefox | Yes | All | Never had the forced-gray rule |
| Safari / WebKit | Yes | All | Never had the forced-gray rule |
| Chrome <148 | No | <148 | UA pins border-color to gray |
The old UA rule
/* Chromium UA stylesheet — pre-148 */
table {
border-color: gray;
}
td, th {
border-color: gray;
}
/* Chrome 148+ — these rules are gone.
border-color now falls through to currentColor
just like any other element. */
Migration guide
/* If you relied on the grey default and want it back: */
table, tr, th, td {
border-color: gray; /* explicit, works everywhere */
}
/* If you want borders to follow text colour (the new default): */
table, tr, th, td {
/* nothing needed in Chrome 148+ */
/* for older Chrome, add: border-color: currentColor; */
}
/* Safe cross-browser fix (explicit is always safe): */
table, tr, th, td {
border-color: currentColor;
}
implementation reference
Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗