diff --git a/docs/theming/Color.md b/docs/theming/Color.md
index 54b1121ea..f5b74e3f8 100644
--- a/docs/theming/Color.md
+++ b/docs/theming/Color.md
@@ -2,11 +2,117 @@
title: "Color Theming"
layout: detail
section: theming
-excerpt: "Color Theming (TODO)"
+excerpt: "Color Theming"
iconId: color
path: /theming/color/
-->
# Color Theming
-TODO
+The Material Design color system can be used to create a color scheme that
+reflects your brand or style.
+
+The Material Design color system uses an organized approach to applying color to
+your UI. In this system, two theme colors are selected to express different
+parts of a UI: a primary color and a secondary color. Material components use
+these theme colors and their variations to style their individual backgrounds,
+text, and more.
+
+## Design & API Documentation
+
+- [Material Design guidelines:
+ Color](https://material.io/go/design-color-theming/)
+
+
+## Usage
+
+All Material Design components use a `Widget.MaterialComponents` style, and
+these styles reference color attributes from the Material Design theme
+(`Theme.MaterialComponents`). So, it is easy to re-color attributes across your
+app by simply modifying the color attributes in your theme. These attributes
+are:
+
+* `colorPrimary`, `colorPrimaryDark`, `colorPrimaryLight`
+* `colorSecondary`, `colorSecondaryDark`, `colorSecondaryLight`
+
+By changing `colorPrimary` and `colorSecondary` (along with their dark and light
+variants), you can easily change the style of all the Material components to
+which your theme is applied.
+
+Furthermore, if you want to change the mapping for a component completely, e.g.
+you want to change MaterialButton so that it uses `colorPrimary` for its
+background tint rather than `colorSecondary`, all you would have to do is define
+your own button style that extends from a Material Design style and set the
+mapping yourself:
+
+```
+
+```
+
+Then, you can apply this style to individual buttons directly, or apply it to
+all of your buttons by setting the `materialButtonStyle` attribute in your
+theme:
+
+```
+
+```
+
+## Coming Soon
+
+We will be updating our color theming to make component colors much more easily
+themeable app-wide.
+
+In a future update, our themes and components will be updated to reference a
+**new set of color theming attributes**. Then, all you need to do is update the
+hexidecimal color values for these attributes and you can:
+
+* adjust your component colors
+* switch between dark and light themes
+* ensure accessible color combinations across your app
+
+The new color theme will be based around a primary and secondary color. To
+select primary and secondary colors, and generate variations of each, use the
+[Material palette generator](https://material.io/color/), Material Plugin for
+Sketch, or 2014 Material Design palettes.
+
+The full list of new attribute names will be as follows:
+
+| Attribute name | Description |
+| ----------------------- | ------------------------------------------------- |
+| `colorPrimary` | Displayed most frequently across your app. |
+| `colorPrimaryVariant` | A tonal variation of primary color. |
+| `colorSecondary` | Accents select parts of your UI. \ |
+: : _If not provided, use primary._ :
+| `colorSecondaryVariant` | A tonal variation of secondary color. |
+| `colorBackground` | The underlying color of an app’s content. \ |
+: : _Typically the background color of scrollable :
+: : content._ :
+| `colorError` | The color used to indicate error status. |
+| `colorSurface` | The color of surfaces such as cards, sheets, |
+: : menus. :
+| `colorOnPrimary` | A color that passes accessibility guidelines for |
+: : text/iconography when drawn on top of primary. :
+| `colorOnSecondary` | A color that passes accessibility guidelines for |
+: : text/iconography when drawn on top of secondary. :
+| `colorOnBackground` | A color that passes accessibility guidelines for |
+: : text/iconography when drawn on top of background. :
+| `colorOnError` | A color that passes accessibility guidelines for |
+: : text/iconography when drawn on top of error. :
+| `colorOnSurface` | A color that passes accessibility guidelines for |
+: : text/iconography when drawn on top of surface. :
+
+Surface, background, and error colors typically do not represent brand. Surface
+colors typically map to components such as cards, sheets, and menus. The
+background color is typically found behind scrollable content. Error color is
+the indication of errors within components such as text fields.
+
+For `colorOnPrimary`, `colorOnSecondary`, etc., these colors must pass contrast
+accessibility guidelines when drawn on top of their corresponding color
+attributes. Material components will then use these attributes such that the
+color combinations remain accessible in any component state.