diff --git a/docs/docs/components/callout.md b/docs/docs/components/callout.md
index 7e1863950..11021e56f 100644
--- a/docs/docs/components/callout.md
+++ b/docs/docs/components/callout.md
@@ -58,6 +58,71 @@ Set the `variant` attribute to change the callout's variant.
```
+### Appearance
+
+Use the `appearance` attribute to change the callout's visual appearance (the default is `outlined filled`).
+
+```html {.example}
+
+
+ This accent callout is also outlined
+
+
+
+
+
+
+ This accent callout draws attention without an outline
+
+
+
+
+
+
+ This callout is both filled and outlined
+
+
+
+
+
+
+ This callout is only filled
+
+
+
+
+
+
+ Here's an outlined callout
+
+
+
+
+
+
+ No bells and whistles on this plain callout
+
+```
+
+### Sizes
+
+Use the `size` attribute to change a callout's size.
+
+```html {.example}
+
+
+ This is meant to be very emphasized.
+
+
+
+ Normal-sized callout.
+
+
+
+ Just a small tip!
+
+```
+
### Without Icons
Icons are optional. Simply omit the `icon` slot if you don't want them.
diff --git a/src/components/callout/callout.css b/src/components/callout/callout.css
index efc3a76d0..c9c39b983 100644
--- a/src/components/callout/callout.css
+++ b/src/components/callout/callout.css
@@ -8,13 +8,17 @@
align-items: stretch;
border-radius: var(--wa-panel-border-radius);
background-color: var(--background-color, var(--wa-color-fill-quiet));
- border-color: var(--border-color, var(--wa-color-border-quiet));
+ border-color: var(--border-color, transparent);
border-style: var(--wa-panel-border-style);
border-width: var(--wa-panel-border-width);
color: var(--text-color, var(--wa-color-on-normal));
padding: var(--spacing);
}
+:host([appearance~='accent']) {
+ font-weight: var(--wa-font-weight-semibold);
+}
+
[part~='icon'] {
flex: 0 0 auto;
display: flex;
diff --git a/src/components/callout/callout.ts b/src/components/callout/callout.ts
index dae596097..ccbf3102e 100644
--- a/src/components/callout/callout.ts
+++ b/src/components/callout/callout.ts
@@ -1,6 +1,8 @@
import { html } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import WebAwesomeElement from '../../internal/webawesome-element.js';
+import appearanceStyles from '../../styles/utilities/appearance.css';
+import sizeStyles from '../../styles/utilities/size.css';
import variantStyles from '../../styles/utilities/variants.css';
import styles from './callout.css';
@@ -22,11 +24,23 @@ import styles from './callout.css';
*/
@customElement('wa-callout')
export default class WaCallout extends WebAwesomeElement {
- static shadowStyle = [variantStyles, styles];
+ static shadowStyle = [variantStyles, appearanceStyles, sizeStyles, styles];
/** The callout's theme variant. */
@property({ reflect: true }) variant: 'brand' | 'success' | 'neutral' | 'warning' | 'danger' = 'brand';
+ /** The callout's visual appearance. */
+ @property({ reflect: true }) appearance:
+ | 'accent'
+ | 'filled'
+ | 'outlined'
+ | 'plain'
+ | 'outlined filled'
+ | 'outlined accent' = 'outlined filled';
+
+ /** The callout's size. */
+ @property({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';
+
render() {
return html`
diff --git a/src/styles/utilities/appearance.css b/src/styles/utilities/appearance.css
index 539bb2803..54e5ca00d 100644
--- a/src/styles/utilities/appearance.css
+++ b/src/styles/utilities/appearance.css
@@ -39,6 +39,8 @@
.wa-plain,
:host([appearance~='plain']) {
--background-color: transparent;
+ --text-color: var(--wa-color-on-quiet);
+
--background-color-hover: var(--wa-color-fill-quiet);
--background-color-active: color-mix(in oklab, var(--background-color-hover), transparent 20%);