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%);