World’s largest virtual agentic engineering & quality conference
CSS conic gradient works in Chrome 69+, Edge 79+, Firefox 83+, Safari 12.1+, Opera 56+, and Samsung Internet 10.1+. Learn the syntax, use cases, and issues.

Prince Dewani
Author

Rahul Mishra
Reviewer
Last Updated on: July 19, 2026
CSS conic gradient is a CSS Images Module Level 4 function that paints color transitions rotated around a center point. It works in Chrome 69+, Edge 79+, Firefox 83+, Safari 12.1+ on macOS and 12.2+ on iOS, Opera 56+, and Samsung Internet 10.1+, while Internet Explorer does not support it.
This guide covers what CSS conic gradient is, the browsers that support it, the syntax, the difference from radial-gradient, the use cases, and the known issues.
CSS conic gradient is a CSS function defined in the W3C CSS Images Module Level 4. It paints color stops rotated clockwise around a center point of the box, starting from the top by default. Pie charts, color wheels, and angular sweeps are the typical outputs.
Overview
Is conic-gradient Safe to Use in Production Today?
Yes. conic-gradient() ships by default in Chrome 69+, Edge 79+, Firefox 83+, Safari 12.1+, Opera 56+, and Samsung Internet 10.1+. Only Internet Explorer never supported it. Declare a flat background first as a fallback and you can use it safely across the modern web.
What Do Teams Most Often Get Wrong?
Two things: skipping the fallback (older or flag-gated builds render nothing), and treating a gradient pie chart as accessible. Screen readers do not interpret background images, so a data-bearing chart needs role="img" and an aria-label, or a real SVG. The accessibility section below shows the pattern.
How Do You Verify a Conic Gradient Renders Everywhere?
Because engines rasterize the sweep and handle interpolation differently, visual checks across real browsers matter. You can preview and screenshot your gradient across Chrome, Firefox, Safari, and Edge on TestMu AI's cross browser testing cloud to catch banding and fallback gaps before release.
CSS conic gradient has wide modern browser support but did not ship in Internet Explorer or in Safari before 12.1. Every Chromium-based browser, Firefox, and Safari supports the function on desktop and mobile today.
Chrome supports CSS conic gradient by default from Chrome 69 on Windows, macOS, Linux, ChromeOS, and Android. Chrome 59 to 68 had conic-gradient disabled by default behind the experimental Web Platform features flag, and Chrome 4 to 58 did not support the function at all. The newer color interpolation method syntax with in oklch and in hsl longer hue ships from Chrome 111.
Microsoft Edge supports CSS conic gradient by default from Edge 79 on Windows, macOS, and Linux. Legacy EdgeHTML 12 to 18 never shipped the function. Chromium-based Edge inherits the Blink implementation, so every release from Edge 79 onward matches Chrome on syntax, color stops, and the from and at keywords.
Firefox supports CSS conic gradient by default from Firefox 83 on Windows, macOS, Linux, and Android. Firefox 75 to 82 had it disabled by default behind the layout.css.conic-gradient.enabled preference, and Firefox 2 to 74 did not support the function. Firefox added the in oklch and longer-hue interpolation methods from Firefox 113.
Safari supports CSS conic gradient by default from Safari 12.1 on macOS and Safari 12.2 on iOS and iPadOS. WebKit was the first engine to ship the function. Safari 3.1 to 12 did not support conic-gradient on macOS, and Safari 16.2 added the in oklch and in hsl longer hue interpolation syntax to the function.
Opera supports CSS conic gradient by default from Opera 56 on desktop. Opera 46 to 55 had it disabled by default behind the same Blink runtime flag Chrome used, and Opera 9 to 45 did not support the function. Opera Mobile picks up support from Opera Mobile 80 on Android, and Opera Mini does not support conic-gradient on any version.
Samsung Internet supports CSS conic gradient by default from Samsung Internet 10.1 on Galaxy phones and tablets. Samsung Internet 4 to 9.2 did not support the function. The browser shares its rendering engine with Chrome on Android, so every Chromium-based release inherits the same syntax, color stop handling, and interpolation behavior as the matching Chrome version.
Chrome for Android supports CSS conic gradient by default from Chrome 69, and modern Android WebView matches the system Chrome version. The legacy Android Browser 2.1 to 4.4.4 did not support conic-gradient on Gingerbread, Ice Cream Sandwich, Jelly Bean, or KitKat. Devices on KitKat or older silently skip the rule and fall back to whatever flat background the page declared first.
Internet Explorer 6 through 11 do not support CSS conic gradient. Microsoft has retired Internet Explorer, and Trident never shipped any conic-gradient implementation. Pages that need to run on IE should either fall back to a flat background or render the gradient as an SVG image and reference it through background-image.
Note: CSS conic gradient renders differently across older Safari, Firefox, and legacy Android Browser builds. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
conic-gradient takes an optional starting angle, an optional center position, an optional color interpolation method, and a comma-separated list of angular color stops. Every clause except the color stops can be omitted, and the function defaults to a 0deg sweep centered on the box.
/* Color wheel using longer-hue interpolation */
.color-wheel {
background-image: conic-gradient(
in hsl longer hue,
hsl(0 100% 50%),
hsl(360 100% 50%)
);
border-radius: 50%;
width: 200px;
height: 200px;
}
/* Three-slice pie chart with hard color stops */
.pie {
background: conic-gradient(
#ef4444 0deg 90deg,
#3b82f6 90deg 210deg,
#facc15 210deg 360deg
);
border-radius: 50%;
width: 200px;
height: 200px;
}
/* Feature query fallback for older browsers */
.banner {
background: #1f2937;
}
@supports (background: conic-gradient(red, blue)) {
.banner {
background: conic-gradient(from 45deg, #1f2937, #4f46e5, #1f2937);
}
}For a precise reference, here is the formal grammar of the function as defined in the W3C CSS Images Module Level 4. Each token in angle brackets is a CSS formal type that expands into its own production.
conic-gradient() =
conic-gradient(
[ from <angle> ]? [ at <position> ]?,
<angular-color-stop-list>
)
<angular-color-stop-list> =
<angular-color-stop> , [ <angular-color-hint>? , <angular-color-stop> ]#
<angular-color-stop> = <color> [ <angle-percentage>{1,2} ]?
<angular-color-hint> = <angle-percentage>The same grammar applies to repeating-conic-gradient(), which simply tiles the resolved stop list across the full 360-degree sweep.
conic-gradient and radial-gradient are both CSS image functions that paint a multi-color background, but they sweep colors along different axes. The choice between them is driven by the visual outcome you need.
| Dimension | conic-gradient | radial-gradient |
|---|---|---|
| Color sweep direction | Rotates colors clockwise around a center point. | Transitions colors outward from a center point. |
| Visual analogy | Pie slice or clock-hand sweep. | Spotlight, vignette, or concentric ring. |
| Color stop position | Angles in deg, grad, rad, turn, or percent. | Lengths or percent along the radial axis. |
| Hard stops | Repeat the same angle on two color stops to create a slice boundary. | Repeat the same length to create a ring boundary. |
| Browser support | Chrome 69+, Edge 79+, Firefox 83+, Safari 12.1+. | Chrome 26+, Edge 12+, Firefox 16+, Safari 6.1+. |
| Best fit | Pie charts, color wheels, segmented progress rings. | Spotlights, soft vignettes, button highlights. |
conic-gradient ships in every modern browser, so design teams now use it as a first-class image source for any pattern that has a circular sweep. The most common production patterns are decorative rather than data-bearing.
Two patterns show off what the function can do beyond a basic sweep: moving the center with the at position syntax, and building a CSS-only checkerboard with hard color stops.
By default the sweep is centered. The at <position> clause moves the origin anywhere in the box, which is how you create an off-axis light-source or spotlight effect.
/* Center moved to the top-left quadrant */
.off-centered {
background: conic-gradient(
from 0deg at 25% 25%,
#f97316,
#7c3aed,
#f97316
);
}Hard color stops at quarter-turn boundaries produce a four-square tile; set a background-size and the tile repeats into a full checkerboard, no images and no extra markup.
/* Repeating checkerboard using hard stops */
.checkerboard {
background-image: conic-gradient(
#e5e7eb 0.25turn,
#ffffff 0.25turn 0.5turn,
#e5e7eb 0.5turn 0.75turn,
#ffffff 0.75turn
);
background-size: 40px 40px;
}This replaces the older two-linear-gradient checkerboard trick with a single, shorter declaration.
A conic gradient renders as a CSS background image, and assistive technologies and screen readers do not interpret background images. A pie chart or progress ring painted purely with conic-gradient is therefore invisible to a non-sighted user, it conveys no value, label, or structure. If the visual carries meaning, you must add it back with semantic HTML.
The minimum accessible pattern wraps the decorative element in a container with role="img" and a descriptive aria-label, so the browser exposes a single labeled image node to the accessibility tree:
<div
role="img"
aria-label="Pie chart showing 60% market share"
style="width:160px; height:160px; border-radius:50%;
background:conic-gradient(#2563eb 0 60%, #e5e7eb 60% 100%)">
</div>conic-gradient is in every modern browser, but the way each engine rasterizes the sweep, handles interpolation methods, and falls back on older devices still trips up production builds.
In my experience, the failure that bites teams the most is the missing fallback, where a designer ships a conic-gradient hero on a marketing page, the QA pipeline tests Chrome and Firefox only, and Safari 14 users on a still-shipped iPad get a transparent banner because the @supports block did not include a flat color first. Always declare a flat background, then the conic-gradient on the next line.
All CSS conic gradient version numbers and platform notes in this guide come from these primary sources:
Author
Prince Dewani is a Community Contributor at TestMu AI specializing in AI agents, software testing, QA, and SEO. He is certified in Selenium, Cypress, Playwright, Appium, Automation Testing, and KaneAI, and presented academic research on AI agents at PBCON-01. At TestMu AI, he has also carried out extensive cross-browser research on the support of modern web technologies such as WebGPU, WebAssembly, WebXR, WebGL2 and other web technologies, validating their compatibility and feature parity across major browsers and rendering engines through rigorous hands-on testing. Prince has hands-on experience building AI agent workflows using Anthropic Claude, Google Antigravity, n8n, LangChain, and other agentic frameworks, and works regularly with MCP and A2A protocols. He shares his work with 5,500+ QA engineers, developers, DevOps experts, tech leaders, and AI agent practitioners on LinkedIn.
Reviewer
Rahul Mishra is a Lead Member of Technical Staff at TestMu AI (formerly LambdaTest), leading frontend engineering and accessibility testing across the quality engineering platform. He mentors frontend engineers, runs code reviews and sprint planning, optimizes React.js rendering performance, and makes product features accessible to users with disabilities through WCAG and ADA-compliant accessibility audits. He brings 10+ years of experience across React.js, VueJS, TypeScript, Swift, Objective-C, and AWS, with earlier work as a Technical Lead at VectoScalar Technologies. Rahul holds a B.E. in Information Technology.
Did you find this page helpful?
More Related Blogs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance