diff --git a/packages/webawesome/docs/_includes/theming/color-palettes.njk b/packages/webawesome/docs/_includes/theming/color-palettes.njk
index cdc6314f6..c15c9f754 100644
--- a/packages/webawesome/docs/_includes/theming/color-palettes.njk
+++ b/packages/webawesome/docs/_includes/theming/color-palettes.njk
@@ -6,27 +6,8 @@
Color Palette
- {%- for palette in themer.palettes -%}
- {%- if not palette.isPro -%}
-
-
-
{{ palette.name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {%- else -%}
- {% raw %}{%- if currentUser.hasPro -%}{% endraw %}
+ {%- for palette in themer.palettes -%}
+ {%- if not palette.isPro -%}
{{ palette.name }}
@@ -44,20 +25,39 @@
- {% raw %}{%- endif -%}{% endraw %}
- {%- endif -%}
- {%- endfor -%}
-
+ {%- else -%}
+ {% raw %}{%- if currentUser.hasPro -%}{% endraw %}
+
+
+
{{ palette.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% raw %}{%- endif -%}{% endraw %}
+ {%- endif -%}
+ {%- endfor -%}
+
-
+
{%- for color in themer.colors -%}
-
-
{{ color }}
-
+
+
{{ color }}
+
{%- for tint in themer.tints -%}
diff --git a/packages/webawesome/docs/_includes/theming/variants.njk b/packages/webawesome/docs/_includes/theming/variants.njk
new file mode 100644
index 000000000..8f1678894
--- /dev/null
+++ b/packages/webawesome/docs/_includes/theming/variants.njk
@@ -0,0 +1,27 @@
+{% set colorVariants = ["brand", "neutral", "success", "warning", "danger"] %}
+
+
+ {%- for colorVariant in colorVariants -%}
+
+
{{ colorVariant }}
+
+ {%- for tint in themer.tints -%}
+
+ --wa-color-{{ colorVariant }}-{{ tint }}
+
+ {%- endfor -%}
+
+
+ {%- endfor -%}
+
+
+
\ No newline at end of file
diff --git a/packages/webawesome/docs/assets/styles/docs.css b/packages/webawesome/docs/assets/styles/docs.css
index ce4f633ec..f1ab411b7 100644
--- a/packages/webawesome/docs/assets/styles/docs.css
+++ b/packages/webawesome/docs/assets/styles/docs.css
@@ -629,6 +629,68 @@ table.colors {
--icon-color: var(--wa-color-success-fill-quiet);
}
+/* Theming */
+
+.color-scale.wa-flank {
+ --flank-size: 6ch;
+ --content-percentage: 88%;
+ --reserved-tint-space: calc(var(--wa-font-size-xs) + var(--wa-space-xs)); /* TODO: rename */
+ margin-bottom: var(--reserved-tint-space);
+
+ .color-swatches.wa-grid {
+ --min-column-size: 2.5rem;
+ grid-row-gap: calc(var(--reserved-tint-space) + var(--wa-space-xs));
+ }
+
+ .color-name {
+ font-weight: var(--wa-font-weight-bold);
+ text-transform: capitalize;
+ font-size: var(--wa-font-size-s);
+ color: var(--wa-color-text-normal);
+ }
+
+ wa-copy-button.color-swatch {
+ padding: 0;
+ aspect-ratio: 1;
+ position: relative;
+
+ &::before {
+ content: var(--tint);
+ position: absolute;
+ bottom: calc(-1 * var(--reserved-tint-space));
+ left: 50%;
+ transform: translateX(-50%);
+ font-size: var(--wa-font-size-xs);
+ line-height: 1;
+ color: var(--wa-color-text-quiet);
+ text-align: center;
+ z-index: 2;
+ }
+
+ &::part(button) {
+ width: 100%;
+ height: 100%;
+ cursor: pointer;
+ background-color: var(--color);
+ border-radius: var(--wa-border-radius-s);
+ transition: transform 0.1s ease, box-shadow 0.1s ease;
+ }
+
+ &:hover::part(button) {
+ transform: scale(1.075);
+ box-shadow: var(--wa-shadow-s);
+ z-index: 1;
+ position: relative;
+ }
+
+ &::part(copy-icon),
+ &::part(success-icon),
+ &::part(error-icon) {
+ visibility: hidden;
+ }
+ }
+}
+
/* Layout Examples */
.layout-example-boundary {
border: var(--wa-border-width-s) dashed var(--wa-color-neutral-border-normal);
diff --git a/packages/webawesome/docs/docs/theming/index.md b/packages/webawesome/docs/docs/theming/index.md
index 53828aa28..753ab1f27 100644
--- a/packages/webawesome/docs/docs/theming/index.md
+++ b/packages/webawesome/docs/docs/theming/index.md
@@ -6,16 +6,18 @@ layout: page-outline
Web Awesome themes apply a cohesive look and feel across the entire library. A theme is a collection of predefined CSS custom properties that cover a range of styles from colors to transitions. We call these CSS custom properties design tokens.
-There are 3 pre-made Free themes to choose from and an additional 8 pre-made themes in Web Awesome Pro. You can also build your own manually with CSS or with our Pro Theme Builder.
+There are 11 handcrafted themes to choose from; 3 are free to use with an additional 9 available in Web Awesome Pro. You can also build your own manually with CSS or with our Pro Theme Builder.
## Key Concepts
-### Color Palettes
+Themes are made up of several layers of increasing specificity, each represented by a CSS class on the document.
+
+### Color Palette
`.wa-palette-{name}`
Color palettes give you a full spectrum of colors to use in your project. A color palette defines 10 hues — red, orange, yellow, green, cyan, blue, indigo, purple, pink, and gray — each with 11 tints. Tints are assigned numbers that correlate to their lightness.
-There are 3 Free color palettes to choose from and an additional 6 color palettes in Web Awesome Pro.
+There are 9 specially crafted color palettes; 3 are free to use with an additional 6 available in Web Awesome Pro.
{% include 'theming/color-palettes.njk' %}
@@ -33,7 +35,7 @@ Variants convey a specific meaning through color. There are five variants:
Brand and neutral are used by nearly every element, component, and pattern across the library. Success, warning, and danger are used selectively by components that could benefit from semantic reinforcement, such as buttons and callouts.
-TODO: Add variant scale preview
+{% include 'theming/variants.njk' %}
Any hue from a color palette can be assigned to a variant. Each variant is determined by `class="wa-{variant}-{hue}"` on the `` element. If no class is specified:
- **Brand** defaults to **blue**
@@ -42,16 +44,16 @@ Any hue from a color palette can be assigned to a variant. Each variant is deter
- **Warning** defaults to **yellow**
- **Danger** defaults to **red**
-### Themes
+### Theme Styles
`.wa-theme-{name}`
-Themes assign specific tints from your chosen variant colors — along with qualities like fonts, borders, space, and shadows — to design tokens that style elements and components. Themes may also contain custom CSS overrides to change the default look of components.
+Theme styles assign specific tints from your chosen variant colors — along with qualities like fonts, borders, space, and shadows — to design tokens that style elements and components. Themes may also contain custom CSS overrides to change the default look of components.
TODO: Add theme preview
Your theme is determined by `class="wa-theme-{name}"` on the `` element. If no class is specified, the default theme is used.
-### Light and Dark Modes
+### Light and Dark Mode
`.wa-light` | `.wa-dark`
Every theme is designed to adapt to light and dark mode. Light mode styles are applied by default, but you can apply a specific color scheme to an entire page or just a section with `class="wa-light"` or `class="wa-dark"`.
@@ -150,7 +152,7 @@ systemDark.addEventListener('change', applyDark);
applyDark();
```
-## Bringing it Together
+## Using Themes
TODO