← Back to all briefs
CSS60s read

Chrome 147 Ships border-shape and Element-Scoped View Transitions

Two long-awaited CSS features landed in Chrome 147: border-shape for non-rectangular element borders, and element-scoped view transitions that animate individual components without full-page transitions. Here's how they work and what they replace.

Chrome 147 shipped in April 2026 with two CSS features that replace patterns frontend developers have been hacking around for years: border-shape for non-rectangular borders, and element-scoped view transitions for per-component animation control.

border-shape: borders that aren't rectangles

For years, if you wanted a border that followed a non-rectangular shape, you needed SVG, clip-path hacks, or pseudo-element trickery. Now it's native CSS:

.card {
  border: 2px solid var(--brand);
  border-shape: polygon(0 0, 100% 10%, 95% 100%, 5% 95%);
}

.tag {
  border-shape: shape(from 0 20%, to 100% 20%, via ellipse 50% 50%);
  border: 1px solid currentColor;
}

The border-shape property accepts the same values as clip-path (polygon, circle, ellipse, shape(), path()) and draws the border along that contour , with proper corner joins, miter limits, and dashed/dotted styles.

Element-scoped view transitions

Previously, view transitions applied to the entire document, useful for MPA navigation but overkill for a single component's state change. Now you can scope them to any element:

// Animate just this list when items reorder
const list = document.querySelector('.task-list');
list.startViewTransition(() => {
  sortTasks(newOrder);
});
/* Named transition groups within the scoped element */
.task-item {
  view-transition-name: var(--task-id);
}

This replaces a whole category of JavaScript animation libraries for list reordering, filter changes, tab switches, and any component-level state transition.

Also in Chrome 147

Browser support snapshot

Feature Chrome Firefox Safari
border-shape 147 , ,
Element view transitions 147 , ,
contrast-color() 147 ✅
Anchor positioning 🟡 Interop 2026 🟡 Interop 2026

The bottom line

border-shape and element-scoped view transitions remove two more reasons to reach for JavaScript positioning and animation libraries. They're Chrome-only for now, but both are likely Interop candidates. Use them as progressive enhancements with fallbacks today.