Skip to Content

Is it gray or grey in CSS?

Is it gray or grey in CSS?

The spelling of the color gray (or grey) is a common source of confusion for web developers and designers. Both spellings refer to the same pale shade between black and white, but gray is the preferred spelling in American English, while grey is preferred in British English. This discrepancy extends to CSS color names as well, with both gray and grey available as valid keyword values. So which spelling should you use for CSS properties like color, background-color, border-color etc.? Let’s take a closer look at the gray vs grey question in CSS syntax.

Gray vs Grey in CSS Color Names

CSS supports 140 standard color names that can be used instead of hex codes or RGB/HSL values. This includes basic color terms like red, green, blue, as well as more specific shades like orchid, goldenrod, cadetblue etc. Both gray and grey are included in the CSS color name spec:

gray #808080
grey #808080

As you can see, gray and grey refer to exactly the same color – a medium shade of gray with the hex value #808080. So in terms of the visual result, choosing gray or grey will make no difference at all.

However, there are still a few factors to consider when deciding which spelling to use:

– **Coding conventions** – Most US style guides prefer gray for CSS code. Grey may be frowned upon by fellow developers or linting tools.

– **Consistency** – Pick one spelling and stick to it throughout the codebase for consistency. Avoid mixing gray and grey.

– **Audience** – If building a website for a British audience, grey may be a better choice.

So in summary, while both gray and grey work, gray is the conventional spelling for CSS in the US. The key is to choose one or the other and use it consistently.

Using Gray and Grey in CSS

The gray and grey color names can be used anywhere a standard CSS color value is allowed. Here are some examples:

**Text Color**

p {
color: gray; /* or color: grey; */

**Background Color**

.box {
background-color: grey; /* or background-color: gray; */

**Border Color**

button {
border: 1px solid gray; /* or border: 1px solid grey; */

**Shadow Color**

.card {
box-shadow: 3px 3px 10px grey; /* or box-shadow: 3px 3px 10px gray; */

**Outline Color**

input:focus {
outline: 2px solid grey; /* or outline: 2px solid gray; */

So gray or grey can be used anywhere a standard color value is valid in CSS. This includes properties like:

– color
– background-color
– border-color
– outline-color
– box-shadow
– fill (for SVG elements)
– stroke (for SVG shapes)

The choice comes down to coding conventions and consistency.

Gray vs Grey in CSS Filter Functions

In addition to the standard color names, CSS also supports gray() and grey() filter functions. These let you apply grayscale effects to other colors.

For example:

img {
filter: grayscale(100%); /* Turn image black & white */

img {
filter: gray(50%); /* Make image 50% grayscaled */

img {
filter: grey(80%); /* 80% grayscale with grey() */

Much like the color names, gray() and grey() work identically for applying grayscale filters in CSS. The only difference is spelling.

However, the gray()/grey() functions offer more flexibility than just the #808080 medium gray provided by the color keywords. By passing in a percentage, you can apply lighter or darker shades of gray:

/* 10% gray */
filter: gray(10%);

/* 30% gray */
filter: gray(30%);

/* 60% gray */
filter: gray(60%);

/* 100% gray (black) */
filter: gray(100%);

This allows you to dial in specific shades of gray/grey for a grayscale filter effect.

So in summary:

– gray() and grey() work the same way
– Supports percentages for lighter/darker shades
– Provides more flexibility than gray/grey color names

Again coding conventions should guide which spelling you choose.

Browser Support for Gray and Grey

Given that gray and grey refer to the same exact color, they have identical browser support:

Browser Support
Chrome 1+
Edge 12+
Firefox 1+
Safari 1+
Opera 3.5+

All major browsers support both gray and grey color names. So there are no browser compatibility concerns when choosing one over the other.

The gray()/grey() filter functions are also well supported:

Browser Support
Chrome 57+
Edge 79+
Firefox 70+
Safari 12+
Opera 44+

Browser support is excellent for gray()/grey() across modern browsers. So feel free to use these filters without worrying about compatibility.

In summary, all major browsers support both spellings equally well, so browser compatibility should not factor into your decision between gray and grey.

Gray vs Grey: Best Practices

Based on the points discussed, here are some best practices when it comes to choosing gray or grey for CSS code:

– **Prefer gray** – Most US style guides list gray as the preferred spelling for CSS.

– **Be consistent** – Pick gray or grey and stick with it throughout your code. Don’t mix and match.

– **Match audience** – For UK sites, grey may be a better choice.

– **Use gray()** – The gray() filter function offers the most flexibility.

– **Consult guides** – Follow your project/company’s specific style guide.

– **Ignore browsers** – All browsers support both spellings, so don’t worry about compatibility.

Adhering to these guidelines will help keep your use of gray/grey consistent, readable and conventionally correct.


While gray and grey refer to the exact same color in CSS, the choice between these two spellings can cause confusion. Remember that gray is conventional for CSS in the US, while grey is preferred in Britain. To keep your code clear, pick one spelling and stick to it consistently throughout your CSS. The browser support for both terms is excellent, so you don’t need to worry about compatibility. Use the flexible gray()/grey() filters where finer control over grayscale shades is needed. With these tips in mind, you can make an informed decision on whether to use gray or grey in your CSS code.