The border-image-source property sets the image or gradient used as an element’s border artwork. It is the first piece of a border image: choose the source, then cut it with border-image-slice.
The value is none or any CSS <image> — typically url() or a linear-gradient(). When the source is none, the ordinary border-style frame shows instead.
Baseline · Widely available.
Not deprecated and not experimental. Available across browsers since July 2015. A source alone is not enough — you still need a border width and a slice.
A wrong path or failed load leaves you with the ordinary border (or nothing useful). Check the Network tab for a 404.
none
none restores the normal border
With border-image-source: none, border-style paints again. That is the default until you set a source.
reset
border resets the image
The border shorthand sets border-image back to none. Declare the source (and slice) after border.
slice
Gradients still need a slice
A gradient source without a sensible slice can look empty or odd. Start with border-image-slice: 1 for simple gradients.
Compatibility
Browser Support
border-image-source is a browser CSS property for decorative borders. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available
border-image-source
Chrome 15+, Firefox 15+, Safari 6+, Edge 12+, Internet Explorer 11+. Gradients as sources work in all modern browsers.
97%Global support
Google Chrome15+
Full support
Mozilla Firefox15+
Full support
Apple Safari6+
Full support
Microsoft Edge12+
Full support
Opera15+
Full support
Samsung Internet1.0+
Full support
Internet Explorer11
Full support
border-image-sourceWidely supported
Bottom line: Safe for production image and gradient frames. Pair the source with width and slice. It is not a runtime API.
Remember
Key Takeaways
Role: choose the image or gradient that becomes the border artwork.
Default:none. Not inherited. Falls back to normal border-style.
Needs partners: border width and usually border-image-slice.
Gradients count: any CSS <image>, including gradients, can be the source.
One line:border-image-source picks the artwork — then slice (and width) turn that artwork into a frame.
Frequently Asked Questions
It sets the image or gradient used as the border artwork. border-image-slice then divides that source into corners and edges.
The initial value is none. No border image is used, so the element shows its normal border-style instead.
Yes. Any CSS <image> works, including url(), linear-gradient(), and repeating-linear-gradient(). Gradients are a simple way to make a colorful frame without a file.
No. You also need a non-zero border-width and usually border-image-slice so the browser knows how to cut and paint the source.
The border image is turned off. The box falls back to the ordinary border drawn by border-style, border-width, and border-color.
It is Baseline Widely available: Chrome 15+, Firefox 15+, Safari 6+, Edge 12+, and Internet Explorer 11. It is a browser CSS property, not a Node.js feature.