trying to sync with next

This commit is contained in:
Kelsey Jackson
2025-06-02 14:05:44 -05:00
1740 changed files with 838 additions and 9221 deletions

View File

@@ -9,6 +9,7 @@ on:
pull_request:
branches: [next]
jobs:
client_test:
runs-on: ubuntu-latest
@@ -30,10 +31,17 @@ jobs:
run: npm ci
- name: Lint
run: npm run prettier
working-directory: ./packages/webawesome
- name: Build
run: npm run build
working-directory: ./packages/webawesome
- name: Install Playwright
run: npx playwright install --with-deps
working-directory: ./packages/webawesome
- name: Run CSR tests
# FAIL_FAST to fail on first failing test.
run: FAIL_FAST="true" CSR_ONLY="true" npm run test
working-directory: ./packages/webawesome

View File

@@ -26,17 +26,17 @@ jobs:
cache: 'npm'
- name: Install dependencies
run: npm ci
# Just lint here too. Save some GH Action minutes and not need to use "depends_on" or anything.
- name: Lint
run: npm run prettier
- name: Build
run: npm run build
working-directory: ./packages/webawesome
- name: Install Playwright
run: npx playwright install --with-deps
working-directory: ./packages/webawesome
- name: Run SSR tests
# FAIL_FAST to fail on first failing test.
run: FAIL_FAST="true" SSR_ONLY="true" npm run test
working-directory: ./packages/webawesome

6
.gitignore vendored
View File

@@ -4,5 +4,9 @@ _site
dist/
dist-cdn/
node_modules
src/react
packages/**/*/src/react
cdn/
yarn.lock
_bundle_
/packages/webawesome-pro
/packages/webawesome-app

View File

@@ -31,6 +31,30 @@ If that's not what you're trying to do, the [documentation website](https://weba
Components are built with [LitElement](https://lit-element.polymer-project.org/), a custom elements base class that provides an intuitive API and reactive data binding. The build is a custom script with bundling powered by [esbuild](https://esbuild.github.io/).
### Understanding the Web Awesome monorepo
Web Awesome uses [NPM workspaces](https://docs.npmjs.com/cli/v11/using-npm/workspaces) for its monorepo structure and is fairly minimal in what it provides.
By using a NPM workspaces and a monorepo structure, we can get consistent builds, shared configurations, and reduced duplication across repositories which reduces regressions and forces consistency across `webawesome`, `webawesome-pro`, and `webawesome-app`.
Generally, if you plan to only work with the free version of `webawesome` it is easiest to go to `packages/webawesome` and run all commands from there.
### Where do NPM dependencies go?
Any dependencies intended to be used across all packages (IE: `prettier`, `eslint`) that are _NOT_ used at runtime should be in the root `devDependencies` of `package.json`.
```bash
npm install -D -w prettier
```
Any dependencies that will be used at runtime by a package should be part of the specific package's `"dependencies"` such as `lit`. This is required because if that dependency is not in the `packages/*/package.json`, it will not be installed when used via NPM.
Individual packages are also free to install devDependencies as needed as long as they are specific to that package only.
To do install a package specific to a package, change your working directory to that package's root
IE: `cd packages/webawesome && npm install <package-name>`
### Forking the Repo
Start by [forking the repo](https://github.com/shoelace-style/webawesome/fork) on GitHub, then clone it locally and install dependencies.
@@ -43,9 +67,10 @@ npm install
### Developing
Once you've cloned the repo, run the following command.
Once you've cloned the repo, run the following command from the respective directory within `packages/*`
```bash
cd packages/webawesome
npm start
```
@@ -56,6 +81,7 @@ This will spin up the dev server. After the initial build, a browser will open a
To generate a production build, run the following command.
```bash
cd packages/webawesome
npm run build
```
@@ -66,15 +92,24 @@ You can also run `npm run build:serve` to start an [`http-server`](https://www.n
To scaffold a new component, run the following command, replacing `wa-tag-name` with the desired tag name.
```bash
cd packages/webawesome
npm run create wa-tag-name
```
This will generate a source file, a stylesheet, and a docs page for you. When you start the dev server, you'll find the new component in the "Components" section of the sidebar.
### Adding additional packages
Right now the only additional packages are in private repositories.
To add additional packages from other repositories, run: `git clone <url> packages/<package-name>` to clone your repo into `packages/`.
Make sure to run `npm install` at the root of the monorepo after adding your package!
### Contributing
Web Awesome is an open source project and contributions are encouraged! If you're interesting in contributing, please review the [contribution guidelines](CONTRIBUTING.md) first.
## License
Web Awesome is available under the terms of the MIT license.
Web Awesome is available under the terms of the MIT license.

View File

@@ -1,237 +0,0 @@
---
title: Sample Documentation Page
description: A sample page for a documentation website using Web Awesome's page component.
layout: blank
eleventyExcludeFromCollections: true
---
<style>
wa-page {
--menu-width: 15rem;
--aside-width: 15rem;
}
wa-page[view='mobile'] {
--menu-width: auto;
--aside-width: auto;
}
wa-page[view='mobile'] [slot='aside'] {
display: none;
}
wa-page[view='mobile'] #brand-name {
display: none;
}
wa-page[view='mobile'] #search {
display: none;
}
[slot='banner'] {
--wa-color-text-link: var(--wa-color-neutral-on-loud);
background-color: var(--wa-color-neutral-fill-loud);
}
[slot='header'] {
--wa-link-decoration-default: none;
border-block-end: var(--wa-border-width-s) var(--wa-border-style) var(--wa-color-surface-border);
}
[slot*='header'] a {
font-weight: var(--wa-font-weight-action);
}
[slot='subheader'] {
background-color: var(--wa-color-surface-lowered);
border-block-end: var(--wa-border-width-s) var(--wa-border-style) var(--wa-color-surface-border);
}
[slot='navigation-header'] {
border-block-end: var(--wa-border-width-s) var(--wa-border-style) var(--wa-color-surface-border);
}
wa-page[view='desktop'] [slot*='navigation'] {
border-inline-end: var(--wa-border-width-s) var(--wa-border-style) var(--wa-color-surface-border);
}
[slot*='navigation'] a {
--wa-color-text-link: var(--wa-color-text-normal);
}
[slot='navigation-footer'] {
border-block-start: var(--wa-border-width-s) var(--wa-border-style) var(--wa-color-surface-border);
}
[slot='main-header'],
main,
[slot='main-footer'] {
max-inline-size: 60rem;
margin-inline: auto;
}
[slot='main-footer'] {
border-block-start: var(--wa-border-width-s) var(--wa-border-style) var(--wa-color-surface-border);
}
[slot='footer'] {
--wa-color-text-link: var(--wa-color-text-quiet);
background-color: var(--wa-color-surface-lowered);
font-size: var(--wa-font-size-s);
}
</style>
<wa-page mobile-breakpoint="920">
<div slot="banner" class="wa-body-s">
<a href="#" class="wa-cluster wa-align-items-baseline wa-gap-xs" style="flex-wrap: nowrap;">
<wa-icon name="gift"></wa-icon>
<span>Give a Hoot for the Holidays: Donate now and double your impact.</span>
</a>
</div>
<header slot="header" class="wa-split">
<div class="wa-cluster">
<wa-icon name="feather-pointed" style="color: var(--wa-color-brand-fill-loud); font-size: 1.5em;"></wa-icon>
<span id="brand-name" class="wa-heading-s">Audubon Worldwide</span>
<a href="#">Our Work</a>
<a href="#">About Us</a>
<a href="#">Discover</a>
<a href="#">Get Involved</a>
</div>
<div class="wa-cluster wa-gap-xs">
<wa-button size="small" variant="brand" appearance="outlined">Find Your Local Audubon</wa-button>
<wa-button size="small" variant="brand">Donate</wa-button>
</div>
</header>
<nav slot="subheader">
<div class="wa-cluster" style="flex-wrap: nowrap;">
<wa-icon-button data-toggle-nav name="bars" label="Menu"></wa-icon-button>
<wa-breadcrumb style="font-size: var(--wa-font-size-s);">
<wa-breadcrumb-item>Field Guides</wa-breadcrumb-item>
<wa-breadcrumb-item>Owls</wa-breadcrumb-item>
<wa-breadcrumb-item>Great Horned Owl</wa-breadcrumb-item>
</wa-breadcrumb>
</div>
<wa-input id="search" placeholder="Search" size="small" style="max-inline-size: 12rem;">
<wa-icon slot="prefix" name="magnifying-glass"></wa-icon>
</wa-input>
</nav>
<nav slot="navigation-header">
<div class="wa-flank">
<wa-avatar image="https://images.unsplash.com/photo-1544648720-132573cb590d?q=20" label=""></wa-avatar>
<div class="wa-stack wa-gap-3xs">
<span class="wa-heading-s">Great Horned Owl</span>
<span class="wa-caption-s" lang="la"><em>Bubo virginianus</em></span>
</div>
</div>
</nav>
<nav slot="navigation">
<a href="#identification">Identification</a>
<a href="#range">Range and Habitat</a>
<a href="#behavior">Behavior</a>
<a href="#conservation">Conservation</a>
</nav>
<nav slot="navigation-footer">
<a href="#" class="wa-flank" style="--flank-size: 1.25em;">
<wa-icon name="camera"></wa-icon>
<span>Photo Gallery</span>
</a>
<a href="#" class="wa-flank" style="--flank-size: 1.25em;">
<wa-icon name="map-location-dot"></wa-icon>
<span>Interactive Range Map</span>
</a>
</nav>
<header slot="main-header">
<div class="wa-flank:end wa-border-radius-l wa-dark" style="background-color: var(--wa-color-surface-lowered); --content-percentage: 35%; padding: var(--wa-space-m);">
<div class="wa-stack" style="margin: var(--wa-space-2xl);">
<h1>Great Horned Owl</h1>
<wa-divider></wa-divider>
<div class="wa-cluster wa-gap-xs">
<wa-tag size="small">Owls</wa-tag>
<wa-tag size="small">Birds of Prey</wa-tag>
<wa-tag size="small">Pleistocene Birds</wa-tag>
</div>
<div class="wa-flank">
<wa-icon name="ruler"></wa-icon>
<span class="wa-caption-m">L 21.5" | WS 48.5"</span>
</div>
<div class="wa-flank">
<wa-icon name="earth-americas"></wa-icon>
<span class="wa-caption-m">North America (Widespread), Central America (Limited), South America (Limited)</span>
</div>
<div class="wa-flank">
<wa-icon name="shield-heart"></wa-icon>
<span class="wa-caption-m">Least Concern</span>
</div>
</div>
<div class="wa-frame" style="wa-border-radius-l max-inline-size: 40ch;">
<img src="https://images.unsplash.com/photo-1544648720-132573cb590d?q=20" />
</div>
</div>
</header>
<main class="wa-body-l">
<h2 id="identification">Identification</h2>
<p>Lorem ipsum odor amet, consectetuer adipiscing elit. Eget habitant scelerisque lectus ultrices nascetur aliquet sapien primis. Cursus sapien fusce semper nulla elit sociosqu lectus per sem. Sem ad porttitor dictum nisl pharetra tortor convallis. Sit molestie hendrerit porta dictum tortor posuere euismod magna. Mauris suspendisse pharetra finibus; eleifend etiam ridiculus.</p>
<h2 id="range">Range and Habitat</h2>
<p>Diam sed ipsum pretium porttitor class cubilia elementum. Blandit felis ligula habitant ultricies vulputate rutrum lacus commodo pulvinar. Nostra semper placerat lectus in dis eu. Sagittis ipsum placerat rhoncus lacus id eget. Erat pharetra aptent enim, augue accumsan ultricies inceptos habitasse. Senectus id maximus parturient tellus; fermentum posuere vulputate luctus. Ac tempus dapibus vehicula ligula ullamcorper sit duis.</p>
<h2 id="behavior">Behavior</h2>
<p>Erat vitae luctus arcu taciti malesuada pretium arcu justo primis. Cubilia vitae maecenas congue velit id netus arcu. Dictum vel pellentesque taciti fermentum risus consectetur amet. Faucibus commodo habitasse sem maximus praesent purus, dignissim tristique porta. Platea magna justo ipsum ut metus ac facilisi. Imperdiet laoreet pharetra maximus lacus tortor suscipit. Nam quisque iaculis orci porttitor pellentesque rhoncus. Molestie sagittis tincidunt quisque nisi non urna conubia.</p>
<h2 id="conservation">Conservation</h2>
<p>Nullam magna quam quisque eu varius integer. Inceptos donec facilisi risus himenaeos semper mollis habitasse. Vehicula lacus vivamus euismod pharetra mollis dictum. Ante ex tortor elementum eleifend habitasse orci aliquam. Fames erat senectus fames etiam dapibus cursus.</p>
</main>
<footer slot="main-footer">
<section>
<h2 class="wa-heading-m">Sources</h2>
<ul class="wa-body-s">
<li><cite><a href="https://www.audubon.org/field-guide/bird/great-horned-owl" target="_blank" rel="noopener">Great Horned Owl</a></cite>, National Audubon Society. Retrieved 5 December 2024.</li>
<li><cite><a href="https://www.allaboutbirds.org/guide/Great_Horned_Owl/" target="_blank" rel="noopener">Great Horned Owl</a></cite>, All About Birds by CornellLab. Retrieved 5 December 2024.</li>
<li>Armistead, G. L. (2015). <cite>Field guide to birds of Pennsylvania</cite>. Scott & Nix, Inc.</li>
</ul>
</section>
</footer>
<aside slot="aside">
<h2 class="wa-heading-m">Discover More Birds</h2>
<wa-card>
<div slot="media" class="wa-frame">
<img src="https://images.unsplash.com/photo-1635254859323-65b78408dcca?q=20" alt="" />
</div>
<div class="wa-stack wa-gap-3xs">
<span class="wa-heading-s">Long-eared Owl</span>
<span class="wa-caption-s" lang="la"><em>Asio otus</em></span>
</div>
</wa-card>
<wa-card>
<div slot="media" class="wa-frame">
<img src="https://images.unsplash.com/photo-1661350356618-f5915c7b6a3c?q=20" alt="" />
</div>
<div class="wa-stack wa-gap-3xs">
<span class="wa-heading-s">Northen Hawk Owl</span>
<span class="wa-caption-s" lang="la"><em>Surnia ulula</em></span>
</div>
</wa-card>
<wa-card>
<div slot="media" class="wa-frame">
<img src="https://images.unsplash.com/photo-1660307777355-f08bced145d3?q=20" alt="" />
</div>
<div class="wa-stack wa-gap-3xs">
<span class="wa-heading-s">Golden Eagle</span>
<span class="wa-caption-s" lang="la"><em>Aquila chrysaetos</em></span>
</div>
</wa-card>
</aside>
<footer slot="footer" class="wa-grid wa-gap-xl">
<div class="wa-cluster" style="flex-wrap: nowrap;">
<wa-icon name="feather-pointed" style="font-size: 1.5em;"></wa-icon>
<span class="wa-heading-s">Audubon Worldwide</span>
</div>
<div class="wa-stack">
<h3 class="wa-heading-xs">Our Work</h3>
<a href="#">Habitat Restoration</a>
<a href="#">Migration Science</a>
<a href="#">Advocacy</a>
</div>
<div class="wa-stack">
<h3 class="wa-heading-xs">About Us</h3>
<a href="#">Our History</a>
<a href="#">Leadership</a>
<a href="#">Fiscal Reports</a>
</div>
<div class="wa-stack">
<h3 class="wa-heading-xs">Discover</h3>
<a href="#">Field Guides</a>
<a href="#">Photo Search</a>
<a href="#">Gear and Resources</a>
</div>
<div class="wa-stack">
<h3 class="wa-heading-xs">Get Involved</h3>
<a href="#">Adopt a Bird</a>
<a href="#">Your Local Audubon</a>
<a href="#">Youth Audubon Camps</a>
</div>
</footer>
</wa-page>

View File

@@ -1,400 +0,0 @@
---
title: Sample Media App Page
description: A sample page for a media app using Web Awesome's page component.
layout: blank
eleventyExcludeFromCollections: true
---
<wa-page class="wa-dark">
<header slot="header">
<div class="wa-cluster">
<wa-icon-button name="bars" label="Menu" data-toggle-nav></wa-icon-button>
<wa-icon name="record-vinyl" family="duotone"></wa-icon>
<span class="wa-heading-m">radiogaga</span>
</div>
<wa-input placeholder="Search" style="max-inline-size: 100%;">
<wa-icon slot="prefix" name="magnifying-glass" ></wa-icon>
</wa-input>
<div class="wa-cluster">
<wa-button appearance="outlined">Log In</wa-button>
<wa-button>Sign Up</wa-button>
</div>
</header>
<div slot="navigation-header" class="wa-split">
<h2 class="wa-heading-s">For You</h2>
<wa-icon-button id="settings" name="gear" label="Settings"></wa-icon-button>
</div>
<nav slot="navigation">
<h3 class="wa-heading-xs">Discover</h3>
<ul class="wa-stack wa-gap-0">
<li>
<a href="#" class="wa-flank">
<wa-icon name="house"></wa-icon>
<span>Home</span>
</a>
</li>
<li>
<a href="#" class="wa-flank">
<wa-icon name="sparkles"></wa-icon>
<span>New</span>
</a>
</li>
<li>
<a href="#" class="wa-flank">
<wa-icon name="tower-broadcast"></wa-icon>
<span>Stations</span>
</a>
</li>
</ul>
<h3 class="wa-heading-xs">Library</h3>
<ul class="wa-stack wa-gap-0">
<li>
<a href="#" class="wa-flank">
<wa-icon name="heart"></wa-icon>
<span>Favorites</span>
</a>
</li>
<li>
<a href="#" class="wa-flank">
<wa-icon name="list-music"></wa-icon>
<span>Playlists</span>
</a>
</li>
<li>
<a href="#" class="wa-flank">
<wa-icon name="microphone-stand"></wa-icon>
<span>Artists</span>
</a>
</li>
<li>
<a href="#" class="wa-flank">
<wa-icon name="grid-2"></wa-icon>
<span>Albums</span>
</a>
</li>
<li>
<a href="#" class="wa-flank">
<wa-icon name="podcast"></wa-icon>
<span>Podcasts</span>
</a>
</li>
</ul>
<h3 class="wa-heading-xs">Recently Played</h3>
<ul id="recent" class="wa-stack wa-gap-0">
<li>
<a href="#" class="wa-flank">
<wa-icon name="cassette-tape" style="background: var(--wa-color-red-90); color: var(--wa-color-red-60);"></wa-icon>
<span>Lo-Fi Station</span>
</a>
</li>
<li>
<a href="#" class="wa-flank">
<wa-icon name="face-awesome" style="background: var(--wa-color-blue-30); color: var(--wa-color-yellow-90);"></wa-icon>
<span>Podcast Awesome</span>
</a>
</li>
<li>
<a href="#" class="wa-flank">
<wa-icon name="seedling" style="background: var(--wa-color-green-70); color: var(--wa-color-green-90);"></wa-icon>
<div class="wa-stack wa-gap-0">
<span>Seasons</span>
<span class="wa-caption-s">Blister Soul</span>
</div>
</a>
</li>
</ul>
</nav>
<div slot="main-header">
<wa-icon-button id="back" name="chevron-left" label="Back"></wa-icon-button>
<wa-tooltip for="back" placement="bottom" distance="2">Back</wa-tooltip>
<div class="wa-cluster">
<wa-icon-button id="favorite" name="heart" variant="regular" label="Favorite"></wa-icon-button>
<wa-tooltip for="favorite" placement="bottom" distance="2">Favorite</wa-tooltip>
<wa-icon-button id="options" name="ellipsis" label="Options"></wa-icon-button>
<wa-tooltip for="options" placement="bottom" distance="2">Options</wa-tooltip>
</div>
</div>
<main>
<div class="wa-stack wa-gap-3xl">
<div class="wa-flank wa-gap-3xl" style="--flank-size: 35%; --content-percentage: 55%;">
<div class="wa-frame wa-border-radius-l" style="max-inline-size: 40ch;">
<img src="https://images.unsplash.com/photo-1732430579016-8d5e5ebd3c99?q=20" alt="Home for the Holidays album artwork" />
</div>
<div class="wa-split:column wa-align-items-start">
<div class="wa-stack" style="margin-block: auto;">
<h1 class="wa-heading-3xl">Home for the Holidays</h1>
<a href="#" class="wa-heading-m">The Shire Choir</a>
<div class="wa-cluster wa-caption-m wa-gap-2xs">
<span>Holiday</span>
<span>&bull;</span>
<span>2024</span>
<span>&bull;</span>
<span>12 songs, 41 minutes 9 seconds</span>
</div>
</div>
<div id="play-controls" class="wa-split wa-gap-xl">
<div class="wa-cluster wa-gap-xl">
<wa-icon-button name="play" label="Play"></wa-icon-button>
<wa-icon-button name="shuffle" label="Shuffle"></wa-icon-button>
</div>
<wa-icon-button name="plus" label="Add to Library"></wa-icon-button>
</div>
</div>
</div>
<ol class="wa-stack wa-gap-0">
<li class="wa-split">
<span class="wa-flank">
<wa-icon name="1"></wa-icon>
<span>Fa-La-La-Fellowship</span>
</span>
<span class="wa-cluster">
<span class="wa-caption-m">3:27</span>
<wa-icon-button name="ellipsis" label="Song Options"></wa-icon-button>
</span>
</li>
<li class="wa-split">
<span class="wa-flank">
<wa-icon name="2"></wa-icon>
<span>Sleigh Ride</span>
</span>
<span class="wa-cluster">
<span class="wa-caption-m">2:36</span>
<wa-icon-button name="ellipsis" label="Song Options"></wa-icon-button>
</span>
</li>
<li class="wa-split">
<span class="wa-flank">
<wa-icon name="3"></wa-icon>
<span>All I Want For Christmas Is Stew</span>
</span>
<span class="wa-cluster">
<span class="wa-caption-m">2:51</span>
<wa-icon-button name="ellipsis" label="Song Options"></wa-icon-button>
</span>
</li>
<li class="wa-split">
<span class="wa-flank">
<wa-icon name="4"></wa-icon>
<span>Rockin' Around the Christmas Ent</span>
</span>
<span class="wa-cluster">
<span class="wa-caption-m">3:05</span>
<wa-icon-button name="ellipsis" label="Song Options"></wa-icon-button>
</span>
</li>
<li class="wa-split">
<span class="wa-flank">
<wa-icon name="5"></wa-icon>
<span>Merry, Did You Know?</span>
</span>
<span class="wa-cluster">
<span class="wa-caption-m">1:56</span>
<wa-icon-button name="ellipsis" label="Song Options"></wa-icon-button>
</span>
</li>
<li class="wa-split">
<span class="wa-flank">
<wa-icon name="6"></wa-icon>
<span>Run Run Shadowfax</span>
</span>
<span class="wa-cluster">
<span class="wa-caption-m">3:32</span>
<wa-icon-button name="ellipsis" label="Song Options"></wa-icon-button>
</span>
</li>
<li class="wa-split">
<span class="wa-flank">
<wa-icon name="7"></wa-icon>
<span>You're a Mean One, Mr. Grima</span>
</span>
<span class="wa-cluster">
<span class="wa-caption-m">2:46</span>
<wa-icon-button name="ellipsis" label="Song Options"></wa-icon-button>
</span>
</li>
<li class="wa-split">
<span class="wa-flank">
<wa-icon name="8"></wa-icon>
<span>O Come, All Ye Faithful</span>
</span>
<span class="wa-cluster">
<span class="wa-caption-m">3:27</span>
<wa-icon-button name="ellipsis" label="Song Options"></wa-icon-button>
</span>
</li>
<li class="wa-split">
<span class="wa-flank">
<wa-icon name="9"></wa-icon>
<span>Do You Hear What I Hear</span>
</span>
<span class="wa-cluster">
<span class="wa-caption-m">2:13</span>
<wa-icon-button name="ellipsis" label="Song Options"></wa-icon-button>
</span>
</li>
<li class="wa-split">
<span class="wa-flank">
<span class="wa-cluster wa-gap-3xs">
<wa-icon name="1"></wa-icon>
<wa-icon name="0"></wa-icon>
</span>
<span>Carol of the Horns</span>
</span>
<span class="wa-cluster">
<span class="wa-caption-m">2:55</span>
<wa-icon-button name="ellipsis" label="Song Options"></wa-icon-button>
</span>
</li>
<li class="wa-split">
<span class="wa-flank">
<span class="wa-cluster wa-gap-3xs">
<wa-icon name="1"></wa-icon>
<wa-icon name="1"></wa-icon>
</span>
<span>Silent Night</span>
</span>
<span class="wa-cluster">
<span class="wa-caption-m">3:10</span>
<wa-icon-button name="ellipsis" label="Song Options"></wa-icon-button>
</span>
</li>
<li class="wa-split">
<span class="wa-flank">
<span class="wa-cluster wa-gap-3xs">
<wa-icon name="1"></wa-icon>
<wa-icon name="2"></wa-icon>
</span>
<span>Wizard Wonderland</span>
</span>
<span class="wa-cluster">
<span class="wa-caption-m">3:22</span>
<wa-icon-button name="ellipsis" label="Song Options"></wa-icon-button>
</span>
</li>
</ol>
</div>
</main>
<div slot="main-footer" class="wa-grid wa-gap-xl">
<h2 class="wa-heading-2xl">More You Might Like</h2>
<div class="wa-stack wa-gap-xs">
<div class="wa-frame wa-border-radius-l">
<img src="https://images.unsplash.com/photo-1675219119611-40323b738563?q=20" alt="" />
</div>
<span class="wa-heading-s">Festival of Lights</span>
<span class="wa-caption-s">Station</span>
</div>
<div class="wa-stack wa-gap-xs">
<div class="wa-frame wa-border-radius-l">
<img src="https://images.unsplash.com/photo-1481930916222-5ec4696fc0f2?q=20" alt="" />
</div>
<span class="wa-heading-s">Holiday Cheer</span>
<span class="wa-caption-s">Essential Playlist</span>
</div>
<div class="wa-stack wa-gap-xs">
<div class="wa-frame wa-border-radius-l">
<img src="https://images.unsplash.com/photo-1667514627762-521b1c815a89?q=20" alt="" />
</div>
<span class="wa-heading-s">Nursery Rhymes from the Shire</span>
<span class="wa-caption-s">The Shire Choir</span>
</div>
</div>
</wa-page>
<style>
wa-page {
--menu-width: 18rem;
--wa-tooltip-arrow-size: 0;
background-color: var(--wa-color-surface-lowered);
}
wa-page[view='mobile'] {
--menu-width: auto;
}
wa-page,
[slot='header'],
wa-page[view='desktop'] [slot*='navigation'] {
background-color: var(--wa-color-surface-lowered);
}
wa-page[view='mobile'] [slot*='navigation'] {
padding: 0;
}
wa-page::part(base) {
background-color: var(--wa-color-surface-lowered);
}
[slot='header'] {
background: linear-gradient(to bottom, var(--wa-color-surface-raised), var(--wa-color-surface-lowered));
}
[slot='navigation-header'],
[slot='main-header'] {
padding-block-end: 0;
}
[slot='navigation'] a {
--wa-color-text-link: var(--wa-color-text-normal);
--wa-link-decoration-default: none;
--wa-link-decoration-hover: none;
--flank-size: 2rem;
font-weight: var(--wa-font-weight-action);
gap: 0.5rem;
}
[slot='navigation'] ul {
list-style: none;
margin: 0;
}
[slot='navigation'] ul a {
border-radius: var(--wa-border-radius-m);
padding: var(--wa-space-xs);
}
[slot='navigation'] ul a:hover,
main ol li:hover {
background-color: color-mix(in oklab, var(--wa-color-surface-default), var(--wa-color-brand-fill-quiet));
}
[slot='navigation'] wa-icon {
align-items: center;
aspect-ratio: 1;
color: var(--wa-color-brand-fill-loud);
display: flex;
height: var(--flank-size);
justify-content: center;
}
[slot='navigation'] #recent wa-icon {
border-radius: var(--wa-border-radius-s);
}
[slot='main-header'] {
border-block-start: var(--wa-border-width-s) var(--wa-border-style) var(--wa-color-surface-border);
border-inline: var(--wa-border-width-s) var(--wa-border-style) var(--wa-color-surface-border);
border-radius: var(--wa-border-radius-l) var(--wa-border-radius-l) 0 0
}
main,
[slot*='main'] {
margin-inline: var(--wa-space-m);
}
main ol li {
padding: var(--wa-space-m);
}
main ol li .wa-flank {
--flank-size: 2rem;
}
main ol li:not(:first-child) {
border-block-start: var(--wa-border-width-s) var(--wa-border-style) var(--wa-color-surface-border);
}
main,
[slot='main-footer'] {
border-inline: var(--wa-border-width-s) var(--wa-border-style) var(--wa-color-surface-border);
}
main,
[slot='main-header'] {
background-color: var(--wa-color-surface-raised);
}
#play-controls wa-icon-button::part(base) {
border: var(--wa-border-width-l) var(--wa-border-style) currentColor;
border-radius: var(--wa-border-radius-circle);
font-size: 1.5rem;
}
#play-controls wa-icon-button[name="play"]::part(base) {
background-color: var(--wa-color-brand-fill-loud);
border: none;
color: var(--wa-color-brand-on-loud);
font-size: 3rem;
padding: 1.5rem;
}
</style>

View File

@@ -1,211 +0,0 @@
---
title: Page
description: Pages offer an easy way to scaffold entire page layouts using minimal markup.
tags: [pro, organization, layout]
isPro: true
order: 0
---
The page component is designed to power full webpages. It is flexible enough to handle most modern designs and includes a simple mechanism for handling desktop and mobile navigation.
## Layout Anatomy
This image depicts a page's anatomy, including the default positions of each section. The labels represent the [named slots](#slots) you can use to populate them.
Most slots are optional. Slots that have no content will not be shown, allowing you to opt-in to just the sections you actually need.
{% include "page-demo.njk" %}
<!-- ![Screenshot of Layout Anatomy showing various slots](/assets/images/layout-anatomy.svg) -->
## Using `wa-page`
:::info
If you're not familiar with how slots work in HTML, you might want to [learn more about slots](/docs/usage/#slots) before using this component.
:::
A number of sections are available as part of the page component, most of which are optional. Content is populated by [slotting elements](/docs/usage/#slots) into various locations.
This component _does not_ implement any [content sectioning](https://developer.mozilla.org/en-US/docs/Web/HTML/Element#content_sectioning) or "semantic elements" internally (such as `<main>`, `<header>`, `<footer>`, etc.). Instead, we recommended that you slot in content sectioning elements wherever you feel they're appropriate.
When using `<wa-page>`, make sure to zero out all paddings and margins on `<html>` and `<body>`, otherwise you may see unexpected gaps. We highly recommend adding the following styles when using `<wa-page>`:
```css
html,
body {
min-height: 100%;
height: 100%;
padding: 0;
margin: 0;
}
```
:::info
If you use [native styles](/docs/utilities/native/), this is already taken care of.
:::
## Examples
:::warning
Open demos in a new tab to examine their behavior in different window sizes. The previews below use simulated zooming which, depending on your browser, may not be accurate.
:::
### Documentation
A sample documentation page using [all available slots](#slots). The navigation menu collapses into a drawer at a custom `mobile-breakpoint` of 920px. It can be opened using a button with `[data-toggle-nav]` that appears in the `subheader` slot. The `aside` slot is also hidden below 920px.
<p>
<wa-button href="/assets/examples/page/demo-1.html" target="_blank">
Open demo in a new window
</wa-button>
</p>
### Media
A sample media app page using `header`, `navigation-header`, `main-header`, and `main-footer` along with the default slot. The navigation menu collapses into a drawer at the default `mobile-breakpoint` and can be opened using a button with `[data-toggle-nav]` that appears in the `header` slot.
<p>
<wa-button href="/assets/examples/page/demo-2.html" target="_blank">
Open demo in a new window
</wa-button>
</p>
## Customization
### Sticky Sections
The following sections of a page are "sticky" by default, meaning they remain in position as the user scrolls.
- `banner`
- `header`
- `sub-header`
- `menu` (`navigation` itself is not sticky, but its parent `menu` is)
- `aside`
This is often desirable, but you can change this behavior using the `disable-sticky` attribute. Use a space-delimited list of names to tell the page which sections should not be sticky.
```html
<wa-page disable-sticky="header aside"> ... </wa-page>
```
### Skip To Content
The layout provides a "skip to content" link that's visually hidden until the user tabs into it. You don't have to do anything to configure this, unless you want to change the text displayed in the link. In that case, you can slot in your own text using the `skip-to-content` slot.
This example localizes the "skip to content" link for German users.
```html
<wa-page>
...
<span slot="skip-to-content">Zum Inhalt springen</span>
...
</wa-page>
```
### Responsiveness
A page isn't very opinionated when it comes to responsive behaviors, but there are tools in place to help make responsiveness easy.
#### Default Slot Styles
Each slot is a [flex container](https://developer.mozilla.org/en-US/docs/Glossary/Flex_Container) and specifies some flex properties so that your content is reasonably responsive by default.
The following slots specify `justify-content: space-between` and `flex-wrap: wrap` to evenly distribute child elements horizontally and allow them to wrap when space is limited.
- `header`
- `subheader`
- `main-header`
- `main-footer`
- `footer`
The following slots specify `flex-direction: column` to arrange child elements vertically.
- `navigation-header`
- `navigation` (or `menu`)
- `navigation-footer`
- `aside`
And the `banner` slot specifies `justify-content: center` to horizontally center its child elements.
You can override the default display and flex properties for each slot with your own CSS.
#### Responsive Navigation
When you use the `navigation` slot, your slotted content automatically collapses into a drawer on smaller screens. The breakpoint at which this occurs is `768px` by default, but you can change it using the `mobile-breakpoint` attribute, which takes either a number or a [CSS length](https://developer.mozilla.org/en-US/docs/Web/CSS/length).
```html
<wa-page mobile-breakpoint="600"> ... </wa-page>
```
By default, a "hamburger" button appears in the `header` slot to toggle the navigation menu on smaller screens. You can customize what this looks like by slotting your own button in the `toggle-navigation` slot or place the `data-toggle-nav` attribute on any button on your page. This _does not_ have to be a Web Awesome element.
The default button not be shown when using either of these methods — if you want to use multiple navigation toggles on your page, simply add the `data-toggle-nav` attribute to multiple elements.
```html
<wa-page mobile-breakpoint="600">
...
<wa-button data-toggle-nav>Menu</wa-button>
...
</wa-page>
```
Alternatively, you can apply `nav-state="open"` and `nav-state="closed"` to the layout component to show and hide the navigation, respectively.
```html
<wa-page nav-state="open"> ... </wa-page>
```
`<wa-page>` is given the attribute `view="mobile"` or `view="desktop"` when the viewport narrower or wider than the `mobile-breakpoint` value, respectively. You can leverage these attributes to change styles depending on the size of the viewport. This is especially useful to hide your `data-toggle-nav` button when the viewport is wider.
```css
wa-page[view='desktop'] [data-toggle-nav] {
display: none;
}
```
:::info
If you use [native styles](/docs/utilities/native/), this is already taken care for you, and the `data-toggle-nav` button is already hidden on wider screens.
:::
#### Custom Widths
You specify widths for some slots on your page with [CSS custom properties](#css-custom-properties) for `--menu-width`, `--main-width`, and `--aside-width`.
If you specify `--menu-width` to apply a specific width to your `navigation` slot, space will still be reserved on the page even below the `mobile-breakpoint`. To collapse this space on smaller screens, add the following code to your styles.
```css
wa-page[view='mobile'] {
--menu-width: auto;
}
```
You can use a similar approach for `--aside-width` to hide the `aside` slot on smaller screens. Be sure to also specify `display: none` for the slot:
```css
wa-page[view='mobile'] {
--aside-width: auto;
[slot='aside'] {
display: none;
}
}
```
### Spacing
A page specifies default `padding` within each slot and a `gap` between the slot's direct children. You can drop elements into any slot, and reasonable spacing is already applied for you.
You can override the default spacing for each slot with your own CSS. In this example, we're setting custom `gap` and `padding` for the `footer` slot.
```css
[slot="footer"] {
gap: var(--wa-space-xl);
padding: var(--wa-space-xl);
}
```
## Utility classes
[Native styles](/docs/utilities/native/) define a few useful defaults for `<wa-page>`, as well as two utility classes you can use for common responsive design tasks:
- `.wa-mobile-only` hides an element on the desktop view
- `.wa-desktop-only` hides an element on the mobile view

View File

@@ -1,66 +0,0 @@
body {
padding: 0;
margin: 0;
}
wa-page {
margin: var(--wa-space-xs);
margin-inline-start: 0;
&::part(base),
&::part(main),
&::part(navigation),
&::part(body) {
gap: var(--wa-space-xs);
}
}
:is([slot='banner'], [slot='header'], [slot='subheader'], [slot='footer'], [slot*='navigation'], [slot='menu']) {
margin-inline-start: var(--wa-space-xs);
}
.slot-content[slot='banner'],
.slot-content[slot='header'],
.slot-content[slot='subheader'] {
outline: 2px solid var(--wa-color-surface-default);
}
.slot-content {
padding: var(--wa-space-m);
border-radius: var(--wa-border-radius-m);
align-content: center;
justify-content: center;
text-align: center;
height: 100%;
box-sizing: border-box;
background: var(--wa-color-blue-80);
color: var(--wa-color-blue-20);
&[slot='banner'] {
background: var(--wa-color-blue-50);
color: white;
}
&[slot='header'] {
background: var(--wa-color-blue-60);
color: var(--wa-color-blue-10);
}
&[slot^='main'],
&[slot=''] {
background: var(--wa-color-gray-80);
color: var(--wa-color-gray-20);
}
&[slot^='navigation'] {
background: var(--wa-color-purple-80);
color: var(--wa-color-purple-20);
}
strong {
display: block;
}
&:not([slot='']) p {
display: none;
}
}

View File

@@ -1,23 +0,0 @@
#page_slots_demo {
display: flex;
flex-flow: column;
gap: 1em;
margin-bottom: var(--wa-space-xl);
fieldset .options {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(9em, 1fr));
gap: 0.2em 1em;
wa-checkbox {
white-space: nowrap;
}
p {
display: contents;
}
}
wa-viewport-demo {
}
}

View File

@@ -1,51 +0,0 @@
let container = document.getElementById('page_slots_demo');
let fieldset = container.querySelector('fieldset');
let iframe = container.querySelector('iframe');
let stylesheets = Array.from(document.querySelectorAll("link[rel=stylesheet][href^='/dist/']"))
.map(i => i.outerHTML)
.join('\n');
let includes = `${stylesheets}
<script src="/dist/webawesome.loader.js" type="module"></script>
<link rel="stylesheet" href="/docs/components/page/demo-page.css">`;
async function render() {
await customElements.whenDefined('wa-checkbox');
// Let checkboxes update their "state"
await Promise.allSettled(
Array.from(fieldset.querySelectorAll('wa-checkbox[name=slot]')).map(checkbox => {
return checkbox.updateComplete;
}),
);
let slots = Array.from(fieldset.querySelectorAll('wa-checkbox[name=slot]:state(checked)'));
let slotsHTML = slots
.map(slot => {
let name = slot.getAttribute('value');
let description = slot.getAttribute('data-description');
let tag = 'div';
if (name.endsWith('header')) {
tag = 'header';
}
if (name.endsWith('footer')) {
tag = 'footer';
}
return `<${tag} class="slot-content" slot="${name}">
<strong>${name || 'main <em>(default)</em>'}</strong>
<p>${description}</p>
</${tag}>`;
})
.join('\n');
let page = iframe.contentDocument?.querySelector('wa-page');
if (page) {
page.innerHTML = slotsHTML;
} else {
iframe.srcdoc = `${includes}<wa-page>${slotsHTML}</wa-page>`;
}
}
await render();
fieldset?.addEventListener('input', render);

View File

@@ -1,71 +0,0 @@
---
title: Viewport Demo
description: Viewport demos can be used to display an iframe as a resizable, zoomable preview.
tags: component
isPro: true
unpublished: true
---
```html {.example}
<wa-viewport-demo viewport="1200">
<iframe src="."></iframe>
</wa-viewport-demo>
```
:::warning
A lot of the functionality of this component will not work on cross-origin iframes.
:::
## Examples
### Arbitrary HTML content
You can render arbitrary HTML content in the iframe by using the `srcdoc` attribute:
```html {.example}
<wa-viewport-demo>
<iframe srcdoc="
&lt;button&gt;Click me!&lt;/button&gt;
"></iframe>
</wa-viewport-demo>
```
### Viewport Emulation
You can also provide a width value to emulate and it will be scaled accordingly:
```html {.example}
<wa-viewport-demo viewport="300">
<iframe srcdoc="
&lt;button&gt;Click me!&lt;/button&gt;
&lt;wa-button&gt;Click me!&lt;/wa-button&gt;
"></iframe>
</wa-viewport-demo>
```
By default, the viewport will be rendered to an initial 16:9 aspect ratio,
which can be changed via resizing.
You can customize this via the `--viewport-initial-aspect-ratio` property.
Or, you could add a height value:
```html {.example}
<wa-viewport-demo viewport="1600 x 1000">
<iframe srcdoc="
&lt;button&gt;Click me!&lt;/button&gt;
&lt;p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed maximus et tortor vel ullamcorper. Fusce tristique et justo quis auctor. In tristique dignissim dignissim. Fusce lacus urna, efficitur vel fringilla sed, hendrerit at ipsum. Donec suscipit ante ac ligula imperdiet varius. Aliquam ullamcorper augue sit amet lectus euismod finibus. Proin semper, diam at rhoncus posuere, diam dui semper turpis, ut faucibus mi ipsum nec ante. Morbi varius nibh ut facilisis varius. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce in blandit velit. Aliquam massa eros, commodo eu vestibulum a, faucibus non risus.
&lt;p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed maximus et tortor vel ullamcorper. Fusce tristique et justo quis auctor. In tristique dignissim dignissim. Fusce lacus urna, efficitur vel fringilla sed, hendrerit at ipsum. Donec suscipit ante ac ligula imperdiet varius. Aliquam ullamcorper augue sit amet lectus euismod finibus. Proin semper, diam at rhoncus posuere, diam dui semper turpis, ut faucibus mi ipsum nec ante. Morbi varius nibh ut facilisis varius. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce in blandit velit. Aliquam massa eros, commodo eu vestibulum a, faucibus non risus.
&lt;p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed maximus et tortor vel ullamcorper. Fusce tristique et justo quis auctor. In tristique dignissim dignissim. Fusce lacus urna, efficitur vel fringilla sed, hendrerit at ipsum. Donec suscipit ante ac ligula imperdiet varius. Aliquam ullamcorper augue sit amet lectus euismod finibus. Proin semper, diam at rhoncus posuere, diam dui semper turpis, ut faucibus mi ipsum nec ante. Morbi varius nibh ut facilisis varius. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce in blandit velit. Aliquam massa eros, commodo eu vestibulum a, faucibus non risus.
"></iframe>
</wa-viewport-demo>
```
## Roadmap
This component is a work in progress.
Some of the things that are not yet implemented are listed below.
It goes without saying that this list is a rough plan and subject to change.
- Non-linear zoom scale
- Extend to general content, not just iframes
- Styles for mobile and tablet frames and an attribute to switch between them
- Automatic iframe height

View File

@@ -1,5 +0,0 @@
---
title: Anodized
isPro: true
tags: pro
---

View File

@@ -1,5 +0,0 @@
---
title: Elegant
isPro: true
tags: pro
---

View File

@@ -1,5 +0,0 @@
---
title: Mild
isPro: true
tags: pro
---

View File

@@ -1,5 +0,0 @@
---
title: Natural
isPro: true
tags: pro
---

View File

@@ -1,5 +0,0 @@
---
title: Rudimentary
isPro: true
tags: pro
---

View File

@@ -1,5 +0,0 @@
---
title: Vogue
isPro: true
tags: pro
---

View File

@@ -1,76 +0,0 @@
---
title: Action Panel
description: 'Help users complete tasks efficiently with quick access to key actions.'
icon: action-panel
isPro: true
---
## Simple
```html {.example}
<wa-card style="max-width: 60ch; margin: auto">
<div class="wa-stack wa-align-items-start">
<h3 class="wa-heading-m">New Dashboard</h3>
<p>Arrange your data into a single view to monitor trends and track performance.</p>
<wa-button variant="brand" size="small">Build Dashboard</wa-button>
</div>
</wa-card>
```
## With Flanked Button
```html {.example}
<wa-card style="max-width: 60ch; margin: auto">
<div class="wa-flank:end">
<div class="wa-stack wa-gap-xs">
<h3 class="wa-heading-m">Query with SQL Runner</h3>
<p>Access your database to run ad hoc queries.</p>
</div>
<wa-button variant="brand" size="small">New Query</wa-button>
</div>
</wa-card>
```
## With Switch
```html {.example}
<wa-card style="max-width: 70ch; margin: auto">
<div class="wa-stack">
<div class="wa-flank:end">
<h3 id="auto-renew-label" class="wa-heading-m">Auto-renew</h3>
<wa-switch size="large" aria-labelledby="auto-renew-label"></wa-switch>
</div>
<p class="wa-body-s">
Automatically renew your subscription using your preferred payment method. We'll send you a reminder 30 days
before we draft your account.
</p>
</div>
</wa-card>
```
## Avatar and Quick actions
```html {.example}
<wa-card style="margin: 0 auto; max-width: 45ch;">
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1532202802379-df93d543bac3?q=80&w=2574&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="profile-image"
></wa-avatar>
<div class="wa-split">
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Super Dog</span>
<div class="wa-caption-m wa-cluster wa-gap-xs">
<span>Online</span>
<wa-icon name="circle" style="color: var(--wa-color-green); font-size: 10px;"></wa-icon>
</div>
</div>
<div class="wa-cluster" style="font-size: var(--wa-font-size-l);">
<wa-icon-button name="microphone" label="audio-input"></wa-icon-button>
<wa-icon-button name="headphones" label="audio-output"></wa-icon-button>
<wa-icon-button name="gear" label="settings"></wa-icon-button>
</div>
</div>
</div>
</wa-card>
```

View File

@@ -1,343 +0,0 @@
---
title: Activity Log
description: 'Track and organize recent user actions or events.'
---
## Simple
```html {.example}
<div class="wa-stack" style="max-width: 60ch; margin: auto">
<article class="wa-flank:end wa-align-items-baseline" style="--flank-size: 10ch">
<div class="wa-grid">
<div class="wa-cluster">
<wa-icon name="french-fries" fixed-width></wa-icon>
<span>Fast food</span>
</div>
<wa-relative-time sync></wa-relative-time>
</div>
<wa-tag variant="danger">- $5.00</wa-tag>
</article>
<wa-divider></wa-divider>
<article class="wa-flank:end wa-align-items-baseline" style="--flank-size: 10ch">
<div class="wa-grid">
<div class="wa-cluster">
<wa-icon name="piggy-bank" fixed-width></wa-icon>
<span>Refund</span>
</div>
<wa-relative-time date="2025-03-26T09:00:00-04:00"></wa-relative-time>
</div>
<wa-tag variant="success">+ $48.99</wa-tag>
</article>
<wa-divider></wa-divider>
<article class="wa-flank:end wa-align-items-baseline" style="--flank-size: 10ch">
<div class="wa-grid">
<div class="wa-cluster">
<wa-icon name="carrot" fixed-width></wa-icon>
<span>Groceries</span>
</div>
<wa-relative-time date="2025-03-24T09:00:00-04:00"></wa-relative-time>
</div>
<wa-tag variant="danger">- $115.37</wa-tag>
</article>
<wa-divider></wa-divider>
<article class="wa-flank:end wa-align-items-baseline" style="--flank-size: 10ch">
<div class="wa-grid">
<div class="wa-cluster">
<wa-icon name="shirt" fixed-width></wa-icon>
<span>Clothing</span>
</div>
<wa-relative-time date="2025-03-15T09:00:00-04:00"></wa-relative-time>
</div>
<wa-tag variant="danger">- $220.99</wa-tag>
</article>
</div>
```
## Timeline with Icons
```html {.example}
<div class="wa-stack wa-gap-3xs" style="max-width: 60ch; margin: auto">
<article class="wa-flank" style="flex-wrap: nowrap">
<wa-avatar style="--size: 2rem">
<wa-icon slot="icon" name="acorn"></wa-icon>
</wa-avatar>
<div class="wa-flank:end wa-gap-xs">
<span>Buried by <strong>squirrel</strong></span>
<wa-format-date date="2025-04-01" month="short" day="numeric"></wa-format-date>
</div>
</article>
<wa-divider orientation="vertical" style="margin-left: 1rem"></wa-divider>
<article class="wa-flank" style="flex-wrap: nowrap">
<wa-avatar style="--size: 2rem">
<wa-icon slot="icon" name="seedling"></wa-icon>
</wa-avatar>
<div class="wa-flank:end wa-gap-xs">
<span>Germinated in <strong>nutrient-rich soil</strong></span>
<wa-format-date date="2025-05-29" month="short" day="numeric"></wa-format-date>
</div>
</article>
<wa-divider orientation="vertical" style="margin-left: 1rem"></wa-divider>
<article class="wa-flank" style="flex-wrap: nowrap">
<wa-avatar style="--size: 2rem">
<wa-icon slot="icon" name="tree-deciduous"></wa-icon>
</wa-avatar>
<div class="wa-flank:end wa-gap-xs">
<span>Matured by <strong>water</strong> and <strong>sunlight</strong></span>
<wa-format-date date="2025-09-15" month="short" day="numeric"></wa-format-date>
</div>
</article>
<wa-divider orientation="vertical" style="margin-left: 1rem"></wa-divider>
<article class="wa-flank" style="flex-wrap: nowrap">
<wa-avatar style="--size: 2rem">
<wa-icon slot="icon" name="crate-apple"></wa-icon>
</wa-avatar>
<div class="wa-flank:end wa-gap-xs">
<span>Fruit harvested by <strong>you</strong></span>
<wa-format-date date="2025-10-18" month="short" day="numeric"></wa-format-date>
</div>
</article>
</div>
```
## With Expandable Details
```html {.example}
<wa-card style="max-width: 70ch; margin: auto">
<h3 class="wa-heading-m">Monthly Activity</h3>
<div class="wa-stack">
<wa-details>
<span class="wa-heading-m" slot="summary"> February </span>
<div class="wa-stack">
<article class="wa-flank">
<wa-icon style="font-size: var(--wa-font-size-l)" name="envelope" fixed-width></wa-icon>
<div class="wa-split">
<div class="wa-stack wa-gap-0">
<span class="wa-heading-s">Email blasts</span>
<div class="wa-cluster wa-gap-2xs">
<a href="#">Nick Burkhart</a><span>sent to</span><a href="#">likely customers</a>
</div>
</div>
<wa-format-date date="2025-02-28" month="short" day="numeric" class="wa-caption-m"></wa-format-date>
</div>
</article>
<wa-divider></wa-divider>
<article class="wa-flank">
<wa-icon style="font-size: var(--wa-font-size-l)" name="phone" fixed-width></wa-icon>
<div class="wa-split">
<div class="wa-stack wa-gap-0">
<span class="wa-heading-s">Spoke with the Pope</span>
<div class="wa-cluster wa-gap-2xs"><a href="#">Artur Fleck</a><span>for 1 hour</span></div>
</div>
<wa-format-date date="2025-02-23" month="short" day="numeric" class="wa-caption-m"></wa-format-date>
</div>
</article>
</div>
</wa-details>
<wa-details>
<span class="wa-heading-m" slot="summary"> March </span>
<div class="wa-stack">
<article class="wa-flank">
<wa-icon style="font-size: var(--wa-font-size-l)" name="video" fixed-width></wa-icon>
<div class="wa-split">
<div class="wa-stack wa-gap-0">
<span class="wa-heading-s">Zoom Call with Northeast office</span>
<div class="wa-cluster wa-gap-2xs"><a href="#">Axel Foley</a><span>for 47 minutes</span></div>
</div>
<wa-format-date date="2025-03-15" month="short" day="numeric" class="wa-caption-m"></wa-format-date>
</div>
</article>
<wa-divider></wa-divider>
<article class="wa-flank">
<wa-icon style="font-size: var(--wa-font-size-l)" name="calendar" fixed-width></wa-icon>
<div class="wa-split">
<div class="wa-stack wa-gap-0">
<span class="wa-heading-s">Scheduled birthday party</span>
<div class="wa-cluster wa-gap-2xs">
<a href="#">John Blaze</a><span>in</span><a href="#">Social Events</a>
</div>
</div>
<wa-format-date date="2025-03-03" month="short" day="numeric" class="wa-caption-m"></wa-format-date>
</div>
</article>
</div>
</wa-details>
<wa-details>
<span class="wa-heading-m" slot="summary"> April </span>
<div class="wa-stack">
<article class="wa-flank">
<wa-icon style="font-size: var(--wa-font-size-l)" family="brands" name="intercom" fixed-width></wa-icon>
<div class="wa-split">
<div class="wa-stack wa-gap-0">
<span class="wa-heading-s">Got new lead</span>
<div class="wa-cluster wa-gap-2xs"><a href="#">Jack Carter</a><span>on Intercom switchboard</span></div>
</div>
<wa-format-date date="2025-04-18" month="short" day="numeric" class="wa-caption-m"></wa-format-date>
</div>
</article>
<wa-divider></wa-divider>
<article class="wa-flank">
<wa-icon style="font-size: var(--wa-font-size-l)" name="list-check" fixed-width></wa-icon>
<div class="wa-split">
<div class="wa-stack wa-gap-0">
<span class="wa-heading-s">Completed Todo</span>
<div class="wa-cluster wa-gap-2xs">
<a href="#">Huey Freeman</a><span>marked complete on</span><a href="#">Daily Tasks</a>
</div>
</div>
<wa-format-date date="2025-04-02" month="short" day="numeric" class="wa-caption-m"></wa-format-date>
</div>
</article>
</div>
</wa-details>
</div>
</wa-card>
```
## Card Separated
```html {.example}
<div class="wa-stack" style="max-width: 45ch; margin: 0 auto;">
<div class="wa-stack">
<wa-card>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1559188286-a173792c8340?q=80&w=2906&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="profile image"
></wa-avatar>
<div class="wa-stack wa-gap-0">
<div class="wa-split">
<span class="wa-heading-s">Isaiah Hamilton</span>
<wa-relative-time class="wa-caption-s" date="2025-01-15T09:17:00-04:00"></wa-relative-time>
</div>
<p>Who's on first?</p>
<a href="#" class="wa-cluster wa-gap-2xs">
<wa-icon name="reply" family="sharp" variant="regular"></wa-icon>
<span>Reply</span>
</a>
</div>
</div>
</wa-card>
<div class="wa-flank wa-gap-xl">
<wa-divider orientation="vertical" style="height: auto; align-self: stretch"></wa-divider>
<ul class="wa-stack">
<li class="wa-stack wa-gap-2xs">
<wa-card>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1645288059073-af3e9eb62a29?q=80&w=2936&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="profile image"
></wa-avatar>
<div class="wa-stack wa-gap-0">
<div class="wa-split">
<span class="wa-heading-s">Melvin Hurst</span>
<wa-relative-time class="wa-caption-s" date="2025-02-15T09:17:00-04:00"></wa-relative-time>
</div>
<p>What's on second?</p>
<a href="#" class="wa-cluster wa-gap-2xs">
<wa-icon name="reply" family="sharp" variant="regular"></wa-icon>
<span>Reply</span>
</a>
</div>
</div>
</wa-card>
</li>
<li class="wa-stack wa-gap-2xs">
<wa-card>
<div class="wa-flank wa-align-items-start">
<wa-avatar
image="https://images.unsplash.com/photo-1674044494331-8db2ecf18d46?q=80&w=3019&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="profile image"
></wa-avatar>
<div class="wa-stack wa-gap-xs">
<div class="wa-split">
<span class="wa-heading-s">Vanessa Wright</span>
</div>
<wa-textarea size="small" aria-label="Add Your Comment"></wa-textarea>
</div>
</div>
</wa-card>
</li>
</ul>
</div>
</div>
</div>
```
## Divider Separated
```html {.example}
<wa-card style="max-width: 54ch; margin: 0 auto;">
<div slot="header" class="wa-split">
<div>
<span>Notifications</span>
<wa-badge appearance="filled" variant="success" pill>2</wa-badge>
</div>
<wa-icon name="close"></wa-icon>
</div>
<div class="wa-stack">
<article>
<div class="wa-flank wa-align-items-start">
<wa-avatar
image="https://images.unsplash.com/photo-1614807547811-4174d3582092?q=80&w=2932&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="profile image"
></wa-avatar>
<div class="wa-stack wa-gap-2xs">
<div class="wa-split">
<span><strong>Happy</strong> commented in <a href="#">Reporting Dashboard</a></span>
<wa-icon name="circle" style="color: var(--wa-color-green);"></wa-icon>
</div>
<div class="wa-split">
<span class="wa-caption-m">Friday 3:12PM</span>
<wa-relative-time class="wa-caption-m" date="2025-02-15T09:17:00-04:00"></wa-relative-time>
</div>
<wa-callout variant="neutral">
Really love this approach. I think this is the best solution for the sync issue.
</wa-callout>
</div>
</div>
<wa-divider></wa-divider>
</article>
<article>
<div class="wa-flank wa-align-items-start">
<wa-avatar
image="https://images.unsplash.com/photo-1613428800237-c86372070fab?q=80&w=3017&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="profile image"
></wa-avatar>
<div class="wa-stack wa-gap-2xs">
<div class="wa-split">
<span><strong>Charlotte</strong> followed you</span>
<wa-icon name="circle" style="color: var(--wa-color-green);"></wa-icon>
</div>
<div class="wa-split">
<span class="wa-caption-m">Friday 3:04PM</span>
<wa-relative-time class="wa-caption-m" date="2025-02-15T09:17:00-04:00"></wa-relative-time>
</div>
</div>
</div>
<wa-divider></wa-divider>
</article>
<article>
<div class="wa-flank wa-align-items-start">
<wa-avatar
image="https://images.unsplash.com/photo-1645288059073-af3e9eb62a29?q=80&w=2936&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="Profile image"
></wa-avatar>
<div class="wa-stack wa-gap-2xs">
<div class="wa-split">
<span><strong>Tavitian</strong> invited you to <a href="#">Homepage Redesign</a></span>
</div>
<div class="wa-split">
<span class="wa-caption-m">Friday 2:22PM</span>
<wa-relative-time class="wa-caption-m" date="2025-02-15T09:17:00-04:00"></wa-relative-time>
</div>
<div class="wa-cluster wa-gap-xs">
<wa-button appearance="outlined" size="small">Decline</wa-button>
<wa-button variant="brand" size="small">Accept</wa-button>
</div>
</div>
</div>
<wa-divider></wa-divider>
</article>
</div>
</wa-card>
```

View File

@@ -1,3 +0,0 @@
{
"tags": ["app"]
}

View File

@@ -1,191 +0,0 @@
---
title: Comments
description: 'Enable users to engage in discussions, provide feedback, or record their thoughts.'
isPro: true
---
## Card with Header & Footer
```html {.example}
<form style="max-width: 60ch; margin: auto">
<wa-card>
<div slot="header" id="comment-area-label">
<span class="wa-heading-s">Leave a Comment</span>
</div>
<wa-textarea aria-labelledby="comment-area-label"></wa-textarea>
<div slot="footer" class="wa-cluster" style="justify-content: flex-end">
<wa-button appearance="filled" size="small">
<wa-icon slot="prefix" name="paperclip" variant="solid"></wa-icon>
Attach a file
</wa-button>
<wa-button variant="brand" size="small">Comment</wa-button>
</div>
</wa-card>
</form>
```
## Card with Thread
```html {.example}
<wa-card style="max-width: 60ch; margin: auto">
<div class="wa-stack">
<h3 class="wa-heading-m">Comments</h3>
<wa-textarea aria-label="Comment"></wa-textarea>
<wa-button variant="brand">Add Comment</wa-button>
<wa-divider></wa-divider>
<ul class="wa-stack">
<li class="wa-stack wa-gap-2xs">
<div class="wa-flank">
<wa-avatar initials="RF" label="User avatar"></wa-avatar>
<div class="wa-cluster">
<strong>Robert Fox</strong>
<span class="wa-caption-m"
>commented <wa-relative-time date="2025-03-31T09:17:00-04:00"></wa-relative-time
></span>
</div>
</div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras convallis mollis nunc, vel tempor sem faucibus
nec. Suspendisse potenti. Pellentesque lobortis pulvinar nulla non tempor. Interdum et malesuada fames ac ante
ipsum primis in faucibus.
</p>
</li>
<div class="wa-flank wa-gap-xl">
<wa-divider orientation="vertical" style="height: auto; align-self: stretch"></wa-divider>
<ul class="wa-stack">
<li class="wa-stack wa-gap-2xs">
<div class="wa-flank">
<wa-avatar initials="VF" label="User avatar"></wa-avatar>
<div class="wa-cluster">
<strong>Virginia Woolf</strong>
<span class="wa-caption-m"
>commented <wa-relative-time date="2025-03-31T12:32:00-04:00"></wa-relative-time
></span>
</div>
</div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras convallis mollis nunc, vel tempor sem
faucibus nec.
</p>
</li>
<li class="wa-stack wa-gap-2xs">
<div class="wa-flank">
<wa-avatar initials="CV" label="User avatar"></wa-avatar>
<div class="wa-cluster">
<strong>Clarissa Vaughan</strong>
<span class="wa-caption-m">commented <wa-relative-time></wa-relative-time></span>
</div>
</div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras convallis mollis nunc, vel tempor sem
faucibus nec.
</p>
</li>
<li class="wa-cluster">
<wa-icon name="reply"></wa-icon>
<a href="">Leave a reply</a>
</li>
</ul>
</div>
</ul>
</div>
</wa-card>
```
## With Avatar & Additional Actions
```html {.example}
<div class="wa-align-items-start wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1438761681033-6461ffad8d80?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="User avatar"
></wa-avatar>
<div class="wa-stack wa-gap-s">
<wa-textarea placeholder="Add to the conversation..." aria-label="Add comment"></wa-textarea>
<div class="wa-split">
<div class="wa-cluster wa-gap-s">
<wa-icon-button name="paperclip" label="Attach File" id="attach-button"></wa-icon-button>
<wa-tooltip for="attach-button">Attach File</wa-tooltip>
<wa-icon-button name="face-smile" label="Add Sticker" id="sticker-button"></wa-icon-button>
<wa-tooltip for="sticker-button">Add Sticker</wa-tooltip>
</div>
<wa-button variant="brand">Comment</wa-button>
</div>
</div>
</div>
```
## Rich Card with Multiple Actions
```html {.example}
<wa-card style="max-width: 60ch; margin: auto">
<div slot="header">
<h3 class="wa-heading-s">I watched...</h3>
</div>
<div class="wa-stack">
<div class="wa-flank" style="--flank-size: 3rem">
<div class="wa-frame:portrait wa-border-radius-s">
<img
src="https://images.unsplash.com/photo-1607675742178-f616ae75044b?q=80&w=3435&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="the cover image for the film"
/>
</div>
<span class="wa-heading-l">Heretic</span>
</div>
<wa-divider></wa-divider>
<dl class="wa-split">
<dt>Date</dt>
<dd>
<wa-format-date
date="2025-03-13T00:00:00.000-04:00"
weekday="long"
month="long"
day="numeric"
year="numeric"
class="wa-caption-m"
></wa-format-date>
</dd>
</dl>
<wa-divider></wa-divider>
<div class="wa-split">
<wa-rating label="Rating"></wa-rating>
<wa-checkbox>Loved it!</wa-checkbox>
</div>
<wa-divider></wa-divider>
<wa-textarea placeholder="Add review..." aria-label="Add review"></wa-textarea>
</div>
<div slot="footer" class="wa-grid">
<wa-button appearance="outlined">Cancel</wa-button>
<wa-button variant="brand">Save</wa-button>
</div>
</wa-card>
```
## With Preview Pane
```html{.example}
<div style="max-width: 60ch; margin: 0 auto;">
<wa-card class="wa-border-radius-square">
<h3 class="wa-heading-m">Add a comment</h3>
<wa-tab-group>
<wa-tab panel="write">Write</wa-tab>
<wa-tab panel="preview">Preview</wa-tab>
<wa-tab-panel name="write">
<div class="wa-stack">
<div class="wa-cluster wa-gap-xs" style="justify-content: flex-end;">
<wa-icon-button name="link" label="add link"></wa-icon-button>
<wa-icon-button name="at" label="mention collaborator"></wa-icon-button>
<wa-icon-button name="hashtag" label="change heading"></wa-icon-button>
</div>
<wa-textarea aria-label="Add a comment"></wa-textarea>
</div>
</wa-tab-panel>
<wa-tab-panel name="preview">Your content will render here.</wa-tab-panel>
</wa-tab-group>
<div slot="footer" class="wa-cluster" style="justify-content: flex-end;">
<wa-button appearance="outlined" size="small">Post</wa-button>
</div>
</wa-card>
</div>
```

View File

@@ -1,205 +0,0 @@
---
title: Data Display
description: 'Convey insights, metrics, and aggregate data at a glance.'
isPro: true
---
## Simple
```html {.example}
<wa-card>
<div class="wa-grid wa-gap-3xl" style="--min-column-size: 24ch;">
<div class="wa-stack">
<div class="wa-split">
<div class="wa-cluster wa-gap-xs">
<wa-icon name="sack-dollar"></wa-icon>
<span>Incomes</span>
</div>
<div class="wa-cluster wa-gap-xs" style="color: var(--wa-color-green);">
<wa-icon name="arrow-trend-up"></wa-icon>
<wa-format-number class="wa-heading-s" type="percent" value=".475"></wa-format-number>
</div>
</div>
<wa-format-number
class="wa-heading-xl"
type="currency"
currency="USD"
value="175000000"
lang="en-US"
></wa-format-number>
</div>
<div class="wa-stack">
<div class="wa-split">
<div class="wa-cluster wa-gap-xs">
<wa-icon name="credit-card"></wa-icon>
<span>Expenses</span>
</div>
<div class="wa-cluster wa-gap-xs" style="color: var(--wa-color-red);">
<wa-icon name="arrow-trend-down"></wa-icon>
<wa-format-number class="wa-heading-s" type="percent" value=".27"></wa-format-number>
</div>
</div>
<wa-format-number
class="wa-heading-xl"
class="wa-heading-xl"
type="currency"
currency="USD"
value="289472"
lang="en-US"
></wa-format-number>
</div>
<div class="wa-stack">
<div class="wa-split">
<div class="wa-cluster wa-gap-xs">
<wa-icon name="seedling"></wa-icon>
<span>Investments</span>
</div>
<div class="wa-cluster wa-gap-xs" style="color: var(--wa-color-green);">
<wa-icon name="arrow-trend-up"></wa-icon>
<wa-format-number class="wa-heading-s" type="percent" value=".14"></wa-format-number>
</div>
</div>
<wa-format-number
class="wa-heading-xl"
class="wa-heading-xl"
type="currency"
currency="USD"
value="569213"
lang="en-US"
></wa-format-number>
</div>
<div class="wa-stack">
<div class="wa-split">
<div class="wa-cluster wa-gap-xs">
<wa-icon name="landmark"></wa-icon>
<span>Mortgages & Loans</span>
</div>
</div>
<wa-format-number
class="wa-heading-xl"
class="wa-heading-xl"
type="currency"
currency="USD"
value="23904"
lang="en-US"
></wa-format-number>
</div>
</div>
</wa-card>
```
## Cards with Avatars
```html {.example}
<div class="wa-grid" style="--min-column-size: 30ch">
<wa-card>
<div class="wa-flank wa-align-items-start">
<wa-avatar shape="rounded">
<wa-icon slot="icon" name="user-group"></wa-icon>
</wa-avatar>
<div class="wa-stack wa-gap-2xs">
<h3 class="wa-caption-m">Total Subscribers</h3>
<div class="wa-cluster wa-gap-xs">
<span class="wa-heading-l">81,779</span>
<wa-badge variant="success" appearance="filled outlined" pill>
<wa-icon fixed-width name="arrow-up" label="Up"></wa-icon>
212
</wa-badge>
</div>
</div>
</div>
</wa-card>
<wa-card>
<div class="wa-flank wa-align-items-start">
<wa-avatar shape="rounded">
<wa-icon slot="icon" name="envelope-open"></wa-icon>
</wa-avatar>
<div class="wa-stack wa-gap-2xs">
<h3 class="wa-caption-m">Open Rate</h3>
<div class="wa-cluster wa-gap-xs">
<span class="wa-heading-l">61.58%</span>
<wa-badge variant="success" appearance="filled outlined" pill>
<wa-icon fixed-width name="arrow-up" label="Up"></wa-icon>
4.5%
</wa-badge>
</div>
</div>
</div>
</wa-card>
<wa-card>
<div class="wa-flank wa-align-items-start">
<wa-avatar shape="rounded">
<wa-icon slot="icon" name="arrow-pointer"></wa-icon>
</wa-avatar>
<div class="wa-stack wa-gap-2xs">
<h3 class="wa-caption-m">Click Rate</h3>
<div class="wa-cluster wa-gap-xs">
<span class="wa-heading-l">25.74%</span>
<wa-badge variant="danger" appearance="filled outlined" pill>
<wa-icon fixed-width name="arrow-down" label="Down"></wa-icon>
2.1%
</wa-badge>
</div>
</div>
</div>
</wa-card>
</div>
```
## Condensed Card
```html {.example}
<wa-card style="max-width: 50ch; margin: auto">
<div slot="header" class="wa-split">
<h3 class="wa-heading-m"><span style="color: var(--wa-color-text-quiet)">query</span> getUser</h3>
<wa-icon-button id="go-to-query-button" name="chevron-right" label="Go to Query"></wa-icon-button>
<wa-tooltip for="go-to-query-button">Go to Query</wa-tooltip>
</div>
<div class="wa-stack wa-gap-xl">
<div class="wa-split wa-align-items-stretch">
<article class="wa-stack wa-align-items-start wa-gap-xs">
<h4 class="wa-caption-l">Cache Hit Rate</h4>
<div class="wa-cluster wa-heading-2xl">
<wa-progress-ring value="12.3" style="--size: 1em; --track-width: 0.125em"></wa-progress-ring>
<span>12.3%</span>
</div>
<wa-badge appearance="filled outlined" variant="danger"
><wa-icon name="arrow-down"></wa-icon> down from 19.6%</wa-badge
>
</article>
<article class="wa-stack wa-gap-xs wa-align-items-end">
<h4 class="wa-caption-l">Max CHR</h4>
<span class="wa-heading-2xl">72.6%</span>
<wa-badge appearance="filled outlined" variant="success"
><wa-icon name="sparkles"></wa-icon> CHR Impact +5.4%</wa-badge
>
</article>
</div>
<wa-divider></wa-divider>
<article class="wa-stack wa-gap-xl">
<div class="wa-stack wa-gap-xs">
<h4 class="wa-caption-l">Cacheable Bandwidth</h4>
<div class="wa-split">
<span class="wa-heading-2xl">90.5 GB</span>
<span class="wa-caption-xl">69.9%</span>
</div>
<wa-progress-bar value="30.1" label="Cached and non-cacheable bandwidth"></wa-progress-bar>
</div>
<dl class="wa-stack wa-caption-m">
<div class="wa-cluster">
<dt>Cached</dt>
<dd>12.8 GB (9.8%)</dd>
</div>
<div class="wa-cluster">
<dt>Non-Cacheable</dt>
<dd>26.3 GB (20.3%)</dd>
</div>
<div class="wa-cluster">
<dt>Total</dt>
<dd>129.6 GB</dd>
</div>
</dl>
</article>
</div>
</wa-card>
```

View File

@@ -1,261 +0,0 @@
---
title: Description List
description: 'Help users digest detailed information in a structured, easy-to-scan format.'
isPro: true
---
## Left Aligned
```html {.example}
<div class="wa-stack">
<h3 class="wa-heading-m">Applicant Info</h3>
<p class="wa-caption-m">Details about the applicant and attachments.</p>
<wa-divider></wa-divider>
<dl class="wa-stack wa-gap-2xl">
<div class="wa-flank" style="--flank-size: 20ch;">
<dt>Full name</dt>
<dd>Bucky Barnes</dd>
</div>
<div class="wa-flank" style="--flank-size: 20ch;">
<dt>Application for</dt>
<dd>Machine Learning Engineer</dd>
</div>
<div class="wa-flank" style="--flank-size: 20ch;">
<dt>Email address</dt>
<dd>winter_soldier@example.com</dd>
</div>
<div class="wa-flank" style="--flank-size: 20ch;">
<dt>Salary expectation</dt>
<dd>$240,000</dd>
</div>
<div class="wa-flank wa-align-items-start" style="--flank-size: 20ch;">
<dt>About</dt>
<dd>
After being lost in action and brainwashed into becoming Hydra's ruthless assassin, my journey is one of
redemption, healing, and reclaiming my true self. Though burdened with the weight of the past, I remain a fierce
warrior, loyal to those I love, and I'm always striving to atone for those dark days as the Winter Soldier.
</dd>
</div>
<div class="wa-flank wa-align-items-start" style="--flank-size: 20ch;">
<dt>Attachments</dt>
<dd>
<wa-card>
<div class="wa-stack">
<div class="wa-flank">
<wa-icon name="paperclip"></wa-icon>
<div class="wa-split">
<span class="wa-caption-m wa-cluster">
<span>bb_resume.pdf</span>
<span>2.4mb</span>
</span>
<wa-button appearance="plain" variant="brand" size="small">Download</wa-button>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-flank">
<wa-icon name="paperclip"></wa-icon>
<div class="wa-split">
<span class="wa-caption-m wa-cluster">
<span>bb_cover_letter.pdf</span>
<span>2.4mb</span>
</span>
<wa-button appearance="plain" variant="brand" size="small">Download</wa-button>
</div>
</div>
</div>
</wa-card>
</dd>
</div>
</dl>
</div>
```
## Two Column
```html{.example}
<div class="wa-stack">
<h2 class="wa-heading-m">Applicant Info</h2>
<p class="wa-caption-m">Details about the applicant and attachments.</p>
<wa-divider></wa-divider>
<dl class="wa-grid wa-gap-2xl" style="--min-column-size: 40ch;">
<div class="wa-stack wa-gap-xs">
<dt>Full name</dt>
<dd>Bucky Barnes</dd>
</div>
<div class="wa-stack wa-gap-xs">
<dt>Application for</dt>
<dd>Machine Learning Engineer</dd>
</div>
<div class="wa-stack wa-gap-xs">
<dt>Email address</dt>
<dd>winter_soldier@example.com</dd>
</div>
<div class="wa-stack wa-gap-xs">
<dt>Salary expectation</dt>
<dd>$240,000</dd>
</div>
<div class="wa-stack wa-gap-xs wa-span-grid">
<dt>About</dt>
<dd>After being lost in action and brainwashed into becoming Hydra's ruthless assassin, my journey is one of redemption, healing, and reclaiming my true self. Though burdened with the weight of the past, I remain a fierce warrior, loyal to those I love, and I'm always striving to atone for those dark days as the Winter Soldier.
</dd>
</div>
<div class="wa-stack wa-gap-xs wa-span-grid">
<dt>Attachments</dt>
<dd>
<wa-card>
<div>
<div class="wa-flank">
<wa-icon name="paperclip"></wa-icon>
<div class="wa-split">
<span class="wa-caption-m wa-cluster">
<span>bb_resume.pdf</span>
<span>2.4mb</span>
</span>
<wa-button appearance="plain" variant="brand" size="small">Download</wa-button>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-flank">
<wa-icon name="paperclip"></wa-icon>
<div class="wa-split">
<span class="wa-caption-m wa-cluster">
<span>bb_cover_letter.pdf</span>
<span>2.4mb</span>
</span>
<wa-button appearance="plain" variant="brand" size="small">Download</wa-button>
</div>
</div>
</div>
</wa-card>
</dd>
</div>
</dl>
</div>
```
## Left Aligned with Actions
```html {.example}
<div class="wa-stack">
<h3 class="wa-heading-m">Applicant Info</h3>
<p class="wa-caption-m">Details about the applicant and attachments.</p>
<wa-divider></wa-divider>
<dl class="wa-stack wa-gap-2xl">
<div class="wa-flank" style="--flank-size: 20ch;">
<dt>Full name</dt>
<div class="wa-flank:end">
<dd>Bucky Barnes</dd>
<wa-button appearance="plain" variant="brand" size="small">Edit</wa-button>
</div>
</div>
<div class="wa-flank" style="--flank-size: 20ch;">
<dt>Application for</dt>
<div class="wa-flank:end">
<dd>Machine Learning Engineer</dd>
<wa-button appearance="plain" variant="brand" size="small">Edit</wa-button>
</div>
</div>
<div class="wa-flank" style="--flank-size: 20ch;">
<dt>Email address</dt>
<div class="wa-flank:end">
<dd>winter_soldier@example.com</dd>
<wa-button appearance="plain" variant="brand" size="small">Edit</wa-button>
</div>
</div>
<div class="wa-flank" style="--flank-size: 20ch;">
<dt>Salary expectation</dt>
<div class="wa-flank:end">
<dd>$240,000</dd>
<wa-button appearance="plain" variant="brand" size="small">Edit</wa-button>
</div>
</div>
<div class="wa-flank wa-align-items-start" style="--flank-size: 20ch;">
<dt>About</dt>
<div class="wa-flank:end">
<dd>
After being lost in action and brainwashed into becoming Hydra's ruthless assassin, my journey is one of
redemption, healing, and reclaiming my true self. Though burdened with the weight of the past, I remain a
fierce warrior, loyal to those I love, and I'm always striving to atone for those dark days as the Winter
Soldier.
</dd>
<wa-button appearance="plain" variant="brand" size="small">Edit</wa-button>
</div>
</div>
<div class="wa-flank" style="--flank-size: 20ch;">
<dt>Attachments</dt>
<dd>
<wa-card>
<div class="wa-stack">
<div class="wa-flank">
<wa-icon name="paperclip"></wa-icon>
<div class="wa-split">
<span class="wa-caption-m wa-cluster">
<span>bb_resume.pdf</span>
<span>2.4mb</span>
</span>
<div class="wa-cluster wa-gap-2xs">
<wa-button appearance="plain" variant="brand" size="small">Download</wa-button>
<wa-divider orientation="vertical"></wa-divider>
<wa-button appearance="plain" variant="danger" size="small">Delete</wa-button>
</div>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-flank">
<wa-icon name="paperclip"></wa-icon>
<div class="wa-split">
<span class="wa-caption-m wa-cluster">
<span>bb_cover_letter.pdf</span>
<span>2.4mb</span>
</span>
<div class="wa-cluster wa-gap-2xs">
<wa-button appearance="plain" variant="brand" size="small">Download</wa-button>
<wa-divider orientation="vertical"></wa-divider>
<wa-button appearance="plain" variant="danger" size="small">Delete</wa-button>
</div>
</div>
</div>
</div>
</wa-card>
</dd>
</div>
</dl>
</div>
```
## Condensed
```html{.example}
<wa-card appearance="filled" style="max-width: 45ch; margin: auto">
<div class="wa-stack">
<div class="wa-split wa-align-items-start">
<dl class="wa-stack wa-gap-2xs">
<dt class="wa-heading-s">Amount</dt>
<dd class="wa-heading-l">$5,610.00</dd>
</dl>
<wa-badge appearance="filled outlined" variant="success">Paid</wa-badge>
</div>
<wa-divider></wa-divider>
<dl class="wa-stack">
<div class="wa-flank wa-align-items-stretch">
<dt><wa-icon name="user" label="Name" fixed-width></wa-icon></dt>
<dd>Sam Wilson</dd>
</div>
<div class="wa-flank wa-align-items-stretch">
<dt><wa-icon name="calendar-days" label="Date" fixed-width></wa-icon></dt>
<dd><wa-format-date date="2025-03-15"></wa-format-date></dd>
</div>
<div class="wa-flank wa-align-items-stretch">
<dt><wa-icon family="brands" name="cc-visa" label="Credit Card" fixed-width></wa-icon></dt>
<dd>Paid with Visa 1234</dd>
</div>
</dl>
</div>
<div slot="footer">
<a href="" class="wa-cluster wa-gap-2xs">
<span>Download Receipt</span>
<wa-icon name="arrow-right"></wa-icon>
</a>
</div>
</wa-card>
```

View File

@@ -1,222 +0,0 @@
---
title: Empty State
description: 'Guide users with helpful prompts and visuals when no content is available.'
isPro: true
---
## Simple
```html {.example}
<div class="wa-stack wa-align-items-center">
<wa-icon name="backpack" class="wa-caption-l" style="font-size: var(--wa-font-size-3xl)"></wa-icon>
<span class="wa-heading-m">No Kits</span>
<p class="wa-caption-l">Manage all of your project's icons in a kit.</p>
<wa-button>
<wa-icon slot="prefix" name="plus"></wa-icon>
Add Kit
</wa-button>
</div>
```
## With Interactive Placeholder
```html {.example}
<a href="" class="wa-stack wa-align-items-center wa-placeholder wa-link-plain" style="max-width: 60ch; margin: auto">
<wa-icon name="ufo-beam" class="wa-caption-l" family="sharp" style="font-size: var(--wa-font-size-3xl)"></wa-icon>
<p class="wa-heading-m">No Custom Icons</p>
<p style="text-align: center">Add your own icon or logo to get started.</p>
</a>
```
## With Templates
```html {.example}
<wa-card style="max-width: 70ch; margin: auto">
<div slot="header" class="wa-stack wa-gap-xs">
<h2 class="wa-heading-m">Projects</h2>
</div>
<div class="wa-stack wa-gap-xl">
<p class="wa-caption-m">
You havent created a project yet. Get started by selecting a template or start with a blank canvas.
</p>
<div class="wa-grid wa-gap-xl" style="--min-column-size: 30ch;">
<a href="" class="wa-flank wa-align-items-start wa-link-plain">
<wa-avatar
shape="rounded"
style="--background-color: var(--wa-color-yellow-90);color: var(--wa-color-yellow-40);"
>
<wa-icon slot="icon" name="note-sticky"></wa-icon>
</wa-avatar>
<div class="wa-stack wa-gap-2xs">
<span class="wa-align-items-center wa-cluster wa-gap-xs wa-heading-s">
Create a Quick Note <wa-icon name="arrow-right"></wa-icon>
</span>
<p class="wa-caption-m">Jot down any idea. Will it make sense later? Who knows.</p>
</div>
</a>
<a href="" class="wa-flank wa-align-items-start wa-link-plain">
<wa-avatar shape="rounded" style="--background-color: var(--wa-color-red-90);color: var(--wa-color-red-40);">
<wa-icon slot="icon" name="list-check"></wa-icon>
</wa-avatar>
<div class="wa-stack wa-gap-2xs">
<span class="wa-align-items-center wa-cluster wa-gap-xs wa-heading-s">
Create a Checklist <wa-icon name="arrow-right"></wa-icon>
</span>
<p class="wa-caption-m">The ultimate tool for looking busy.</p>
</div>
</a>
<a href="" class="wa-flank wa-align-items-start wa-link-plain">
<wa-avatar
shape="rounded"
style="--background-color: var(--wa-color-purple-90);color: var(--wa-color-purple-40);"
>
<wa-icon slot="icon" name="table-cells"></wa-icon>
</wa-avatar>
<div class="wa-stack wa-gap-2xs">
<span class="wa-align-items-center wa-cluster wa-gap-xs wa-heading-s">
Create a Spreadsheet <wa-icon name="arrow-right"></wa-icon>
</span>
<p class="wa-caption-m">Endless rows and columns of tiny, soul-crushing numbers.</p>
</div>
</a>
<a href="" class="wa-flank wa-align-items-start wa-link-plain">
<wa-avatar
shape="rounded"
style="--background-color: var(--wa-color-orange-90);color: var(--wa-color-orange-40);"
>
<wa-icon slot="icon" name="presentation-screen"></wa-icon>
</wa-avatar>
<div class="wa-stack wa-gap-2xs">
<span class="wa-align-items-center wa-cluster wa-gap-xs wa-heading-s">
Create a Slideshow <wa-icon name="arrow-right"></wa-icon>
</span>
<p class="wa-caption-m">Dramatic transitions make everything seem more official.</p>
</div>
</a>
<a href="" class="wa-flank wa-align-items-start wa-link-plain">
<wa-avatar
shape="rounded"
style="--background-color: var(--wa-color-green-90);color: var(--wa-color-green-40);"
>
<wa-icon slot="icon" name="pen-field"></wa-icon>
</wa-avatar>
<div class="wa-stack wa-gap-2xs">
<span class="wa-align-items-center wa-cluster wa-gap-xs wa-heading-s">
Create a Form <wa-icon name="arrow-right"></wa-icon>
</span>
<p class="wa-caption-m">Collect the deepest personal details and darkest secrets.</p>
</div>
</a>
<a href="" class="wa-flank wa-align-items-start wa-link-plain">
<wa-avatar shape="rounded" style="--background-color: var(--wa-color-blue-90);color: var(--wa-color-blue-40);">
<wa-icon slot="icon" name="image"></wa-icon>
</wa-avatar>
<div class="wa-stack wa-gap-2xs">
<span class="wa-align-items-center wa-cluster wa-gap-xs wa-heading-s">
Create a Photo Album <wa-icon name="arrow-right"></wa-icon>
</span>
<p class="wa-caption-m">Curate your best memories or most basic food pictures.</p>
</div>
</a>
</div>
</div>
<div slot="footer">
<a href="" class="wa-cluster wa-gap-xs">
<span>Or start with a blank canvas</span>
<wa-icon name="arrow-right"></wa-icon>
</a>
</div>
</wa-card>
```
## Add people
```html {.example}
<wa-card style="max-width: 60ch; margin: 0 auto;">
<div class="wa-stack wa-gap-xs">
<h3 class="wa-heading-m">Add team members</h3>
<p>This project is awful lonely. Invite some team members to liven up the joint.</p>
<div class="wa-flank:end wa-gap-xs"><wa-input></wa-input><wa-button>Invite</wa-button></div>
<div class="wa-stack">
<em class="wa-caption-l">Team members previously added to projects</em>
<wa-divider></wa-divider>
<section>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1614807547811-4174d3582092?q=80&w=2932&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="profile image"
></wa-avatar>
<div class="wa-split">
<div class="wa-stack wa-gap-0">
<span class="wa-heading-s">Earl Upton</span>
<span class="wa-caption-m">DevOps</span>
</div>
<wa-button appearance="plain">
<wa-icon name="user-plus" slot="prefix"></wa-icon>
Invite
</wa-button>
</div>
</div>
<wa-divider></wa-divider>
</section>
<section>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1613428800237-c86372070fab?q=80&w=3017&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
lable="profile image"
></wa-avatar>
<div class="wa-split">
<div class="wa-stack wa-gap-0">
<span class="wa-heading-s">Steamboat Willie</span>
<span class="wa-caption-m">Captain</span>
</div>
<wa-button appearance="plain">
<wa-icon name="user-plus" slot="prefix"></wa-icon>
Invite
</wa-button>
</div>
</div>
<wa-divider></wa-divider>
</section>
<section>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1678582967399-bf558533f5eb?q=80&w=3029&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="profile image"
></wa-avatar>
<div class="wa-split">
<div class="wa-stack wa-gap-0">
<span class="wa-heading-s">Melissa Eckers</span>
<span class="wa-caption-m">Cloud Engineer</span>
</div>
<wa-button appearance="plain">
<wa-icon name="user-plus" slot="prefix"></wa-icon>
Invite
</wa-button>
</div>
</div>
<wa-divider></wa-divider>
</section>
<section>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1559188286-a173792c8340?q=80&w=2906&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="profile image"
></wa-avatar>
<div class="wa-split">
<div class="wa-stack wa-gap-0">
<span class="wa-heading-s">Devin Shears</span>
<span class="wa-caption-m">UX Writer</span>
</div>
<wa-button appearance="plain">
<wa-icon name="user-plus" slot="prefix"></wa-icon>
Invite
</wa-button>
</div>
</div>
<wa-divider></wa-divider>
</section>
</div>
</div>
</wa-card>
```

View File

@@ -1,159 +0,0 @@
---
title: FAQ
description: 'Empower users to learn more with a structured list of questions and answers.'
isPro: true
---
## With Flanked Heading & Description
```html {.example}
<div class="wa-flank wa-align-items-start wa-gap-2xl" style="--flank-size: 35ch">
<div>
<h2>Frequently Asked Questions</h2>
<p>
Cant find an answer? Reach out to your local <a href="">Operator</a>, or contact <a href="">the Oracle</a>, and
enjoy a cookie. &#127850;
</p>
</div>
<dl class="wa-stack wa-gap-2xl">
<div class="wa-stack wa-gap-xs">
<dt>Is Zion actually real, or just another Matrix?</dt>
<dd>
Ah, the question that keeps redpills up at night. Sure, we escaped the first Matrix, but whos to say Zion isnt
just another layer of the simulation?
</dd>
</div>
<div class="wa-stack wa-gap-xs">
<dt>Why do the Agents always wear suits?</dt>
<dd>
Because nothing says "unstoppable digital enforcer" like a generic business professional aesthetic. Also,
intimidation. You ever try fighting someone in sunglasses and a tie? Its terrifying.
</dd>
</div>
<div class="wa-stack wa-gap-xs">
<dt>Can I go back into the Matrix once Im out?</dt>
<dd>
Technically, yes—via hacking in. Emotionally? That depends on how well you handle the knowledge that nothing
around you is real.
</dd>
</div>
</dl>
</div>
```
## With Expandable Answers
```html {.example}
<div class="wa-stack">
<h2>Frequently Asked Questions</h2>
<wa-details appearance="plain">
<h3 slot="summary" class="wa-heading-m" style="margin: 0">Is Zion actually real, or just another Matrix?</h3>
Ah, the question that keeps redpills up at night. Sure, we escaped the first Matrix, but whos to say Zion isnt
just another layer of the simulation?
</wa-details>
<wa-divider></wa-divider>
<wa-details appearance="plain">
<h3 slot="summary" class="wa-heading-m" style="margin: 0">Why do the Agents always wear suits?</h3>
Because nothing says "unstoppable digital enforcer" like a generic business professional aesthetic. Also,
intimidation. You ever try fighting someone in sunglasses and a tie? Its terrifying.
</wa-details>
<wa-divider></wa-divider>
<wa-details appearance="plain">
<h3 slot="summary" class="wa-heading-m" style="margin: 0">Can I go back into the Matrix once Im out?</h3>
Technically, yes—via hacking in. Emotionally? That depends on how well you handle the knowledge that nothing around
you is real.
</wa-details>
</div>
```
## Two Column
```html {.example}
<div class="wa-stack wa-gap-2xl">
<h2>Frequently Asked Questions</h2>
<dl class="wa-stack wa-gap-2xl">
<div class="wa-grid wa-gap-xs">
<dt class="wa-heading-m">Is Zion actually real, or just another Matrix?</dt>
<dd>
Ah, the question that keeps redpills up at night. Sure, we escaped the first Matrix, but whos to say Zion isnt
just another layer of the simulation?
</dd>
</div>
<wa-divider></wa-divider>
<div class="wa-grid wa-gap-xs">
<dt class="wa-heading-m">Why do the Agents always wear suits?</dt>
<dd>
Because nothing says "unstoppable digital enforcer" like a generic business professional aesthetic. Also,
intimidation. You ever try fighting someone in sunglasses and a tie? Its terrifying.
</dd>
</div>
<wa-divider></wa-divider>
<div class="wa-grid wa-gap-xs">
<dt class="wa-heading-m">Can I go back into the Matrix once Im out?</dt>
<dd>
Technically, yes—via hacking in. Emotionally? That depends on how well you handle the knowledge that nothing
around you is real.
</dd>
</div>
</dl>
</div>
```
## Multiple Columns
```html {.example}
<div>
<h2>Frequently Asked Questions</h2>
<dl class="wa-grid wa-gap-m" style="--min-column-size: 30ch;">
<div class="wa-stack wa-gap-xs">
<dt class="wa-heading-m">How often do you update your courses?</dt>
<dd>
A course is updated once there is a fundamental shift in the language or librarys underlying API. You can check
our <a href="#">workshop</a> list to see if a new version of a given course is on the schedule. You may also
write to us as <a href="#">support@frontendmasters.com</a> with suggestions for updates.
</dd>
</div>
<div class="wa-stack wa-gap-xs">
<dt class="wa-heading-m">Do you offer certificates of completion?</dt>
<dd>
You can download certificates of completion from the <a href="#">Completed Courses</a> list in your Learning
Library. Click the diploma icon next to the course to download the certificate in light or dark mode. A link to
your Public Profile is included on each certificate if youve created one. Public Profiles showcase your
learning journey and are a fantastic way to share progress with friends, co-workers, or employers. Public
Profiles are available to members with an active Frontend Masters subscription who have watched ten or more
hours of content. Visit the <a href="#">Public Profile</a> section in My Account to get started.
</dd>
</div>
<div class="wa-stack wa-gap-xs">
<dt class="wa-heading-m">Do you offer a free trial?</dt>
<dd>
<p>We offer a free trial to first-time subscribers. You can find more about the trial here.</p>
<p>We also have the following opportunities to learn for free:</p>
<ul>
<li>The online bootcamp is a free, two-week curriculum to get you started with web development.</li>
<li>You can create a free account to gain access to five full courses for free.</li>
</ul>
</dd>
</div>
<div class="wa-stack wa-gap-xs">
<dt class="wa-heading-m">Do you have discounts for students?</dt>
<dd>
We are part of the <a href="#">GitHub Student Developer Pack</a>, allowing students six months of free access to
the entire platform.
</dd>
</div>
<div class="wa-stack wa-gap-xs">
<dt class="wa-heading-m">How do I cancel my plan?</dt>
<dd>
You can cancel your Frontend Masters subscription by visiting the <a href="#">Subscription tab</a> in your My
Account area.
</dd>
</div>
</dl>
</div>
```

View File

@@ -1,590 +0,0 @@
---
title: Grid List
description: 'Improve browsing and selection by organizing data in a structured grid layout.'
isPro: true
---
## Cards with Footer Actions
```html {.example}
<div class="wa-grid" style="--min-column-size: 30ch;">
<wa-card>
<div class="wa-flank:end">
<div class="wa-stack wa-gap-xs">
<div class="wa-cluster wa-gap-xs">
<h3 class="wa-heading-s">Barklia Woofington</h3 class="wa-heading-s">
<wa-badge pill>Admin</wa-badge>
</div>
<span class="wa-caption-m">Canine Executive Officer</span>
</div>
<wa-avatar image="https://images.unsplash.com/photo-1593270379182-fe1b1f6d67e5?q=80&w=2175&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" label="Avatar of black and white Border Collie"></wa-avatar>
</div>
<div slot="footer" class="wa-grid wa-gap-xs" style="--min-column-size: 10ch;">
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="at"></wa-icon>
Email
</wa-button>
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="phone"></wa-icon>
Phone
</wa-button>
</div>
</wa-card>
<wa-card>
<div class="wa-flank:end">
<div class="wa-stack wa-gap-xs">
<div class="wa-cluster wa-gap-xs">
<h3 class="wa-heading-s">Maggie Pawsworth</h3 class="wa-heading-s">
<wa-badge pill>Admin</wa-badge>
</div>
<span class="wa-caption-m">Canine Fetch Officer</span>
</div>
<wa-avatar image="https://images.unsplash.com/photo-1514479425649-0981aca9fe41?q=80&w=3474&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" label="Avatar of black collie mix"></wa-avatar>
</div>
<div slot="footer" class="wa-grid wa-gap-xs" style="--min-column-size: 10ch;">
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="at"></wa-icon>
Email
</wa-button>
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="phone"></wa-icon>
Phone
</wa-button>
</div>
</wa-card>
<wa-card>
<div class="wa-flank:end">
<div class="wa-stack wa-gap-xs">
<h3 class="wa-heading-s">Rex Tailwag</h3 class="wa-heading-s">
<span class="wa-caption-m">Head of Security</span>
</div>
<wa-avatar image="https://images.unsplash.com/photo-1610968755695-d7fcb5fd4b92?q=80&w=2848&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" label="Avatar of black and tan German Shepherd"></wa-avatar>
</div>
<div slot="footer" class="wa-grid wa-gap-xs" style="--min-column-size: 10ch;">
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="at"></wa-icon>
Email
</wa-button>
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="phone"></wa-icon>
Phone
</wa-button>
</div>
</wa-card>
<wa-card>
<div class="wa-flank:end">
<div class="wa-stack wa-gap-xs">
<h3 class="wa-heading-s">Luna Sniffington</h3 class="wa-heading-s">
<span class="wa-caption-m">Hound Relations</span>
</div>
<wa-avatar image="https://images.unsplash.com/photo-1526440847959-4e38e7f00b04?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" label="Avatar of black and tan Yorkshire Terrier"></wa-avatar>
</div>
<div slot="footer" class="wa-grid wa-gap-xs" style="--min-column-size: 10ch;">
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="at"></wa-icon>
Email
</wa-button>
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="phone"></wa-icon>
Phone
</wa-button>
</div>
</wa-card>
<wa-card>
<div class="wa-flank:end">
<div class="wa-stack wa-gap-xs">
<h3 class="wa-heading-s">Charlie Drooler</h3 class="wa-heading-s">
<span class="wa-caption-m">Head of Sales</span>
</div>
<wa-avatar image="https://images.unsplash.com/photo-1554692844-6627ca340264?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" label="Avatar of tan and white corgi"></wa-avatar>
</div>
<div slot="footer" class="wa-grid wa-gap-xs" style="--min-column-size: 10ch;">
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="at"></wa-icon>
Email
</wa-button>
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="phone"></wa-icon>
Phone
</wa-button>
</div>
</wa-card>
<wa-card>
<div class="wa-flank:end">
<div class="wa-stack wa-gap-xs">
<h3 class="wa-heading-s">Daisy Zoomley</h3 class="wa-heading-s">
<span class="wa-caption-m">IT Support</span>
</div>
<wa-avatar image="https://images.unsplash.com/photo-1544378062-0b74cc8b4713?q=80&w=3648&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" label="Avatar of gray Weimaraner"></wa-avatar>
</div>
<div slot="footer" class="wa-grid wa-gap-xs" style="--min-column-size: 10ch;">
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="at"></wa-icon>
Email
</wa-button>
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="phone"></wa-icon>
Phone
</wa-button>
</div>
</wa-card>
</div>
```
## Cards with Footer Actions & Large Image
```html {.example}
<div class="wa-grid" style="--min-column-size: 29ch;">
<wa-card>
<div class="wa-stack wa-align-items-center wa-gap-xs">
<div class="wa-frame wa-border-radius-circle">
<img
src="https://images.unsplash.com/photo-1522075469751-3a6694fb2f61?q=80&w=2680&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
<h2 class="wa-heading-m">Scott Summers</h2>
<p class="wa-caption-l">DevOps</p>
</div>
<div slot="footer" class="wa-grid wa-gap-xs" style="--min-column-size: 10ch;">
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="at"></wa-icon>
Email
</wa-button>
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="phone"></wa-icon>
Phone
</wa-button>
</div>
</wa-card>
<wa-card>
<div class="wa-stack wa-align-items-center wa-gap-xs">
<div class="wa-frame wa-border-radius-circle">
<img
src="https://images.unsplash.com/photo-1559188286-a173792c8340?q=80&w=2906&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
<h2 class="wa-heading-m">Kaitlin Moore</h2>
<p class="wa-caption-l">Systems Engineer</p>
</div>
<div slot="footer" class="wa-grid wa-gap-xs" style="--min-column-size: 10ch;">
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="at"></wa-icon>
Email
</wa-button>
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="phone"></wa-icon>
Phone
</wa-button>
</div>
</wa-card>
<wa-card>
<div class="wa-stack wa-align-items-center wa-gap-xs">
<div class="wa-frame wa-border-radius-circle">
<img
src="https://images.unsplash.com/photo-1613428800237-c86372070fab?q=80&w=3017&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
<h2 class="wa-heading-m">Nessa Riley</h2>
<p class="wa-caption-l">Cloud Engineer</p>
</div>
<div slot="footer" class="wa-grid wa-gap-xs" style="--min-column-size: 10ch;">
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="at"></wa-icon>
Email
</wa-button>
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="phone"></wa-icon>
Phone
</wa-button>
</div>
</wa-card>
<wa-card>
<div class="wa-stack wa-align-items-center wa-gap-xs">
<div class="wa-frame wa-border-radius-circle">
<img
src="https://images.unsplash.com/photo-1645288059073-af3e9eb62a29?q=80&w=2936&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
<h2 class="wa-heading-m">Veronica Staley</h2>
<p class="wa-caption-l">Machine Learning Engineer</p>
</div>
<div slot="footer" class="wa-grid wa-gap-xs" style="--min-column-size: 10ch;">
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="at"></wa-icon>
Email
</wa-button>
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="phone"></wa-icon>
Phone
</wa-button>
</div>
</wa-card>
</div>
```
## with Images
```html {.example}
<div class="wa-grid">
<article class="wa-stack">
<div class="wa-frame wa-border-radius-l">
<img
src="https://images.unsplash.com/photo-1522075469751-3a6694fb2f61?q=80&w=2680&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
<div class="wa-stack wa-gap-3xs">
<span>Jeff Hanks</span>
<span>Product Designer</span>
</div>
<div class="wa-cluster wa-gap-3xs">
<wa-icon-button name="bluesky" family="brands" label="link to Blusky profile"></wa-icon-button>
<wa-icon-button name="dribbble" family="brands" label="link to Dribbble profile"></wa-icon-button>
</div>
</article>
<article class="wa-stack">
<div class="wa-frame wa-border-radius-l">
<img
src="https://images.unsplash.com/photo-1674044494331-8db2ecf18d46?q=80&w=3019&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
<div class="wa-stack wa-gap-3xs">
<span>Allen Bryant</span>
<span>Staff Engineer</span>
</div>
<div class="wa-cluster wa-gap-3xs">
<wa-icon-button name="bluesky" family="brands" label="link to Blusky profile"></wa-icon-button>
<wa-icon-button name="dribbble" family="brands" label="link to Dribbble profile"></wa-icon-button>
</div>
</article>
<article class="wa-stack">
<div class="wa-frame wa-border-radius-l">
<img
src="https://images.unsplash.com/photo-1645288059073-af3e9eb62a29?q=80&w=2936&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
<div class="wa-stack wa-gap-3xs">
<span>Mariah Greene</span>
<span>DevOps</span>
</div>
<div class="wa-cluster wa-gap-3xs">
<wa-icon-button name="bluesky" family="brands" label="link to Blusky profile"></wa-icon-button>
<wa-icon-button name="dribbble" family="brands" label="link to Dribbble profile"></wa-icon-button>
</div>
</article>
<article class="wa-stack">
<div class="wa-frame wa-border-radius-l">
<img
src="https://images.unsplash.com/photo-1613428800237-c86372070fab?q=80&w=3017&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
<div class="wa-stack wa-gap-3xs">
<span>Beverly Winslow</span>
<span>Design Systems Lead</span>
</div>
<div class="wa-cluster wa-gap-3xs">
<wa-icon-button name="bluesky" family="brands" label="link to Blusky profile"></wa-icon-button>
<wa-icon-button name="dribbble" family="brands" label="link to Dribbble profile"></wa-icon-button>
</div>
</article>
<article class="wa-stack">
<div class="wa-frame wa-border-radius-l">
<img
src="https://images.unsplash.com/photo-1614807547811-4174d3582092?q=80&w=2932&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
<div class="wa-stack wa-gap-3xs">
<span>Eric Masterson</span>
<span>Copy Writer</span>
</div>
<div class="wa-cluster wa-gap-3xs">
<wa-icon-button name="bluesky" family="brands" label="link to Blusky profile"></wa-icon-button>
<wa-icon-button name="dribbble" family="brands" label="link to Dribbble profile"></wa-icon-button>
</div>
</article>
<article class="wa-stack">
<div class="wa-frame wa-border-radius-l">
<img
src="https://images.unsplash.com/photo-1559188286-a173792c8340?q=80&w=2906&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
<div class="wa-stack wa-gap-3xs">
<span>Stephen Coffee</span>
<span>Visual Designer</span>
</div>
<div class="wa-cluster wa-gap-3xs">
<wa-icon-button name="bluesky" family="brands" label="link to Blusky profile"></wa-icon-button>
<wa-icon-button name="dribbble" family="brands" label="link to Dribbble profile"></wa-icon-button>
</div>
</article>
</div>
```
## Linked Cards with Options Menu
```html {.example}
<div class="wa-grid" style="--min-column-size: 25ch">
<wa-card>
<div class="wa-flank:end">
<a href="" class="wa-flank wa-link-plain">
<wa-avatar
shape="rounded"
style="--background-color: var(--wa-color-yellow-80); --text-color: var(--wa-color-yellow-40)"
>
<wa-icon slot="icon" name="pancakes"></wa-icon>
</wa-avatar>
<div class="wa-gap-2xs wa-stack">
<span class="wa-heading-s">Breakfast</span>
<span class="wa-caption-m">28 Items</span>
</div>
</a>
<wa-dropdown>
<wa-icon-button
id="more-actions-1"
slot="trigger"
name="ellipsis-vertical"
label="More actions"
></wa-icon-button>
<wa-menu>
<wa-menu-item>Copy link</wa-menu-item>
<wa-menu-item>Rename</wa-menu-item>
<wa-menu-item>Move to trash</wa-menu-item>
</wa-menu>
</wa-dropdown>
<wa-tooltip for="more-actions-1">More actions</wa-tooltip>
</div>
</wa-card>
<wa-card>
<div class="wa-flank:end">
<a href="" class="wa-flank wa-link-plain">
<wa-avatar
shape="rounded"
style="--background-color: var(--wa-color-orange-80); --text-color: var(--wa-color-orange-40)"
>
<wa-icon slot="icon" name="burger-cheese"></wa-icon>
</wa-avatar>
<div class="wa-gap-2xs wa-stack">
<span class="wa-heading-s">Lunch + Dinner</span>
<span class="wa-caption-m">40 Items</span>
</div>
</a>
<wa-dropdown>
<wa-icon-button
id="more-actions-2"
slot="trigger"
name="ellipsis-vertical"
label="More actions"
></wa-icon-button>
<wa-menu>
<wa-menu-item>Copy link</wa-menu-item>
<wa-menu-item>Rename</wa-menu-item>
<wa-menu-item>Move to trash</wa-menu-item>
</wa-menu>
</wa-dropdown>
<wa-tooltip for="more-actions-2">More actions</wa-tooltip>
</div>
</wa-card>
<wa-card>
<div class="wa-flank:end">
<a href="" class="wa-flank wa-link-plain">
<wa-avatar
shape="rounded"
style="--background-color: var(--wa-color-indigo-80); --text-color: var(--wa-color-indigo-40)"
>
<wa-icon slot="icon" name="martini-glass-citrus"></wa-icon>
</wa-avatar>
<div class="wa-gap-2xs wa-stack">
<span class="wa-heading-s">Beverages</span>
<span class="wa-caption-m">19 Items</span>
</div>
</a>
<wa-dropdown>
<wa-icon-button
id="more-actions-3"
slot="trigger"
name="ellipsis-vertical"
label="More actions"
></wa-icon-button>
<wa-menu>
<wa-menu-item>Copy link</wa-menu-item>
<wa-menu-item>Rename</wa-menu-item>
<wa-menu-item>Move to trash</wa-menu-item>
</wa-menu>
</wa-dropdown>
<wa-tooltip for="more-actions-3">More actions</wa-tooltip>
</div>
</wa-card>
<wa-card>
<div class="wa-flank:end">
<a href="" class="wa-flank wa-link-plain">
<wa-avatar
shape="rounded"
style="--background-color: var(--wa-color-pink-80); --text-color: var(--wa-color-pink-40)"
>
<wa-icon slot="icon" name="cake-slice"></wa-icon>
</wa-avatar>
<div class="wa-gap-2xs wa-stack">
<span class="wa-heading-s">Dessert</span>
<span class="wa-caption-m">11 Items</span>
</div>
</a>
<wa-dropdown>
<wa-icon-button
id="more-actions-4"
slot="trigger"
name="ellipsis-vertical"
label="More actions"
></wa-icon-button>
<wa-menu>
<wa-menu-item>Copy link</wa-menu-item>
<wa-menu-item>Rename</wa-menu-item>
<wa-menu-item>Move to trash</wa-menu-item>
</wa-menu>
</wa-dropdown>
<wa-tooltip for="more-actions-4">More actions</wa-tooltip>
</div>
</wa-card>
</div>
```
## Kanban
```html {.example}
<div>
<h2>Project #487</h2>
<div class="wa-grid wa-gap-2xl">
<div class="wa-stack">
<div class="wa-cluster wa-gap-s">
<span>Draft</span> <wa-badge appearance="filled outlined" variant="neutral">1</wa-badge>
</div>
<wa-card>
<div class="wa-flank:end">
<div class="wa-stack wa-gap-2xs">
<div class="wa-cluster wa-gap-2xs">
<span class="wa-heading-s">Unit Testing</span>
<wa-dropdown>
<wa-icon-button id="task-action-4" slot="trigger" name="ellipsis" label="More actions"></wa-icon-button>
<wa-menu>
<wa-menu-item>Copy link</wa-menu-item>
<wa-menu-item>Rename</wa-menu-item>
<wa-menu-item>Move to trash</wa-menu-item>
</wa-menu>
</wa-dropdown>
<wa-tooltip for="task-action-4">More actions</wa-tooltip>
</div>
<div class="wa-cluster wa-gap-2xs">
<wa-badge appearance="outlined" pill>DevOps</wa-badge>
<wa-badge variant="neutral" appearance="outlined" pill>Priority: Low</wa-badge>
</div>
</div>
<wa-avatar
image="https://images.unsplash.com/photo-1559188286-a173792c8340?q=80&w=2906&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="profile image"
></wa-avatar>
</div>
</wa-card>
<wa-button appearance="plain">
<wa-icon name="plus"></wa-icon>
Add Task
</wa-button>
</div>
<div class="wa-stack">
<div class="wa-cluster wa-gap-s">
<span>In Progress</span> <wa-badge appearance="filled outlined" variant="neutral">2</wa-badge>
</div>
<wa-card>
<div class="wa-flank:end">
<div class="wa-stack wa-gap-2xs">
<div class="wa-cluster wa-gap-2xs">
<span class="wa-heading-s">UX Audit</span>
<wa-dropdown>
<wa-icon-button id="task-action-2" slot="trigger" name="ellipsis" label="More actions"></wa-icon-button>
<wa-menu>
<wa-menu-item>Copy link</wa-menu-item>
<wa-menu-item>Rename</wa-menu-item>
<wa-menu-item>Move to trash</wa-menu-item>
</wa-menu>
</wa-dropdown>
<wa-tooltip for="task-action-2">More actions</wa-tooltip>
</div>
<div class="wa-cluster wa-gap-2xs">
<wa-badge appearance="outlined" pill>Design</wa-badge>
<wa-badge variant="warning" appearance="outlined" pill>Priority: Medium</wa-badge>
</div>
</div>
<wa-avatar
image="https://images.unsplash.com/photo-1613428800237-c86372070fab?q=80&w=3017&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="profile image"
></wa-avatar>
</div>
</wa-card>
<wa-card>
<div class="wa-flank:end">
<div class="wa-stack wa-gap-2xs">
<div class="wa-cluster wa-gap-2xs">
<span class="wa-heading-s">Visual Testing</span>
<wa-dropdown>
<wa-icon-button id="task-action-3" slot="trigger" name="ellipsis" label="More actions"></wa-icon-button>
<wa-menu>
<wa-menu-item>Copy link</wa-menu-item>
<wa-menu-item>Rename</wa-menu-item>
<wa-menu-item>Move to trash</wa-menu-item>
</wa-menu>
</wa-dropdown>
<wa-tooltip for="task-action-3">More actions</wa-tooltip>
</div>
<div class="wa-cluster wa-gap-2xs">
<wa-badge appearance="outlined" pill>Design</wa-badge>
<wa-badge variant="danger" appearance="outlined" pill>Priority: High</wa-badge>
</div>
</div>
<wa-avatar
image="https://images.unsplash.com/photo-1614807547811-4174d3582092?q=80&w=2932&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="profile image"
></wa-avatar>
</div>
</wa-card>
<wa-button appearance="plain">
<wa-icon name="plus"></wa-icon>
Add Task
</wa-button>
</div>
<div class="wa-stack">
<div class="wa-cluster wa-gap-s">
<span>Ready for Review</span> <wa-badge appearance="filled outlined" variant="neutral">1</wa-badge>
</div>
<wa-card>
<div class="wa-flank:end">
<div class="wa-stack wa-gap-2xs">
<div class="wa-cluster wa-gap-2xs">
<span class="wa-heading-s">Deploy Bug Fixes</span>
<wa-dropdown>
<wa-icon-button id="task-action-1" slot="trigger" name="ellipsis" label="More actions"></wa-icon-button>
<wa-menu>
<wa-menu-item>Copy link</wa-menu-item>
<wa-menu-item>Rename</wa-menu-item>
<wa-menu-item>Move to trash</wa-menu-item>
</wa-menu>
</wa-dropdown>
<wa-tooltip for="task-action-1">More actions</wa-tooltip>
</div>
<div class="wa-cluster wa-gap-2xs">
<wa-badge appearance="outlined" pill>Development</wa-badge>
<wa-badge variant="warning" appearance="outlined" pill>Priority: Medium</wa-badge>
</div>
</div>
<wa-avatar initials="KK" label="Avatar with initials: KK"></wa-avatar>
</div>
</wa-card>
<wa-button appearance="plain">
<wa-icon name="plus"></wa-icon>
Add Task
</wa-button>
</div>
</div>
</div>
```

View File

@@ -1,9 +0,0 @@
---
title: App
description: Pre-built action panels, data displays, and more ready to drop into your web app.
parent: patterns
layout: overview
override:tags: []
listChildren: true
isPro: false
---

View File

@@ -1,296 +0,0 @@
---
title: Leaderboard
description: 'Engage and motivate users by highlighting top performers, scores, and achievements.'
isPro: true
---
## Simple
```html {.example}
<div class="wa-stack">
<h3>Daily Crossword</h3>
<div class="wa-grid">
<wa-callout variant="warning" appearance="filled">
<wa-icon slot="icon" name="timer"></wa-icon>
<div class="wa-stack wa-gap-xs">
<span class="wa-heading-l">11h 54m 52s</span>
<span class="wa-caption-m">until play ends</span>
</div>
</wa-callout>
<wa-callout variant="neutral" appearance="filled">
<wa-icon slot="icon" name="user-group"></wa-icon>
<div class="wa-stack wa-gap-xs">
<span class="wa-heading-l">304</span>
<span class="wa-caption-m">players on this leaderboard</span>
</div>
</wa-callout>
</div>
<wa-card>
<div class="wa-stack">
<ol class="wa-stack">
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="1" fixed-width></wa-icon>
<wa-avatar>
<wa-icon slot="icon" name="hat-wizard"></wa-icon>
</wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>wordwiz</span>
<small class="wa-caption-l">00:01:41</small>
</div>
</li>
<wa-divider></wa-divider>
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="2" fixed-width></wa-icon>
<wa-avatar initials="A"></wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>acrossNdown</span>
<small class="wa-caption-l">00:01:58</small>
</div>
</li>
<wa-divider></wa-divider>
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="3" fixed-width></wa-icon>
<wa-avatar initials="X"></wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>XwordChamp</span>
<small class="wa-caption-l">00:02:14</small>
</div>
</li>
<wa-divider></wa-divider>
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="4" fixed-width></wa-icon>
<wa-avatar>
<wa-icon slot="icon" name="chess-knight"></wa-icon>
</wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>puzzlepoet</span>
<small class="wa-caption-l">00:02:16</small>
</div>
</li>
<wa-divider></wa-divider>
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="5" fixed-width></wa-icon>
<wa-avatar initials="R"></wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>RiddleMeThis</span>
<small class="wa-caption-l">00:02:34</small>
</div>
</li>
</ol>
</div>
<div slot="footer">
<a href="" class="wa-cluster wa-gap-xs wa-caption-m">
<span>View all standings</span>
<wa-icon name="arrow-right"></wa-icon>
</a>
</div>
</wa-card>
</div>
```
## Two Column
```html {.example}
<div class="wa-stack">
<h3>Collective Activity for Yesterday</h3>
<div class="wa-grid">
<wa-callout variant="neutral" appearance="filled">
<wa-icon slot="icon" name="book"></wa-icon>
<div class="wa-stack wa-gap-0">
<h4 class="wa-heading-xs">Items Studied</h4>
<div class="wa-heading-2xl">482,813</div>
</div>
</wa-callout>
<wa-callout variant="brand" appearance="filled">
<wa-icon slot="icon" name="diploma"></wa-icon>
<div class="wa-stack wa-gap-0">
<h4 class="wa-heading-xs">Items Mastered</h4>
<div class="wa-heading-2xl">67,106</div>
</div>
</wa-callout>
<wa-callout variant="success" appearance="filled">
<wa-icon slot="icon" name="wand-sparkles"></wa-icon>
<div class="wa-stack wa-gap-0">
<h4 class="wa-heading-xs">Items Created</h4>
<div class="wa-heading-2xl">2,080</div>
</div>
</wa-callout>
</div>
<div class="wa-grid">
<wa-card>
<div slot="header" class="wa-flank wa-gap-xl">
<wa-icon name="graduation-cap" class="wa-heading-xl"></wa-icon>
<span class="wa-gap-2xs wa-stack">
<h4>Study Leaders</h4>
<span class="wa-caption-m">Items mastered in the last 7 days</span>
</span>
</div>
<div class="wa-stack">
<ol class="wa-stack">
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="1" fixed-width></wa-icon>
<wa-avatar
image="https://images.unsplash.com/photo-1620428268482-cf1851a36764?q=80&w=3418&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
shape="rounded"
></wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>mitsuwo</span>
<small class="wa-caption-l">2,753</small>
</div>
</li>
<wa-divider></wa-divider>
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="2" fixed-width></wa-icon>
<wa-avatar
image="https://images.unsplash.com/photo-1639628735078-ed2f038a193e?q=80&w=3348&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
shape="rounded"
></wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>knowledgeninja</span>
<small class="wa-caption-l">2,298</small>
</div>
</li>
<wa-divider></wa-divider>
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="3" fixed-width></wa-icon>
<wa-avatar
image="https://images.unsplash.com/photo-1638803040283-7a5ffd48dad5?q=80&w=2592&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
shape="rounded"
></wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>NxtLvl</span>
<small class="wa-caption-l">2,008</small>
</div>
</li>
<wa-divider></wa-divider>
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="4" fixed-width></wa-icon>
<wa-avatar
image="https://images.unsplash.com/photo-1630549316063-7ae02749d2cc?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
shape="rounded"
></wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>brainiac</span>
<small class="wa-caption-l">1,954</small>
</div>
</li>
<wa-divider></wa-divider>
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="5" fixed-width></wa-icon>
<wa-avatar
image="https://images.unsplash.com/photo-1582845512747-e42001c95638?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
shape="rounded"
></wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>eduexplorer</span>
<small class="wa-caption-l">1,897</small>
</div>
</li>
</ol>
</div>
</wa-card>
<wa-card>
<div slot="header" class="wa-flank wa-gap-xl">
<wa-icon name="hat-wizard" class="wa-heading-xl"></wa-icon>
<span class="wa-gap-2xs wa-stack">
<h4>Creation Leaders</h4>
<span class="wa-caption-m">Items created in the last 7 days</span>
</span>
</div>
<div class="wa-stack">
<ol class="wa-stack">
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="1" fixed-width></wa-icon>
<wa-avatar
image="https://images.unsplash.com/photo-1630549316063-7ae02749d2cc?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
shape="rounded"
></wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>brainiac</span>
<small class="wa-caption-l">134</small>
</div>
</li>
<wa-divider></wa-divider>
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="2" fixed-width></wa-icon>
<wa-avatar
image="https://images.unsplash.com/photo-1546776230-bb86256870ce?q=80&w=3368&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
shape="rounded"
></wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>LessonLegend</span>
<small class="wa-caption-l">115</small>
</div>
</li>
<wa-divider></wa-divider>
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="3" fixed-width></wa-icon>
<wa-avatar
image="https://images.unsplash.com/photo-1620428268482-cf1851a36764?q=80&w=3418&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
shape="rounded"
></wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>mitsuwo</span>
<small class="wa-caption-l">98</small>
</div>
</li>
<wa-divider></wa-divider>
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="4" fixed-width></wa-icon>
<wa-avatar
image="https://images.unsplash.com/photo-1586374579358-9d19d632b6df?q=80&w=3387&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
shape="rounded"
></wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>wiswiz</span>
<small class="wa-caption-l">79</small>
</div>
</li>
<wa-divider></wa-divider>
<li class="wa-flank">
<div class="wa-cluster">
<wa-icon name="5" fixed-width></wa-icon>
<wa-avatar
image="https://images.unsplash.com/photo-1639628735078-ed2f038a193e?q=80&w=3348&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
shape="rounded"
></wa-avatar>
</div>
<div class="wa-split wa-gap-xs">
<span>knowledgeninja</span>
<small class="wa-caption-l">77</small>
</div>
</li>
</ol>
</div>
</wa-card>
</div>
</div>
```

View File

@@ -1,52 +0,0 @@
---
title: Pagination
description: 'Improve navigation and performance by breaking long lists or content into manageable pages.'
isPro: true
---
## Simple
```html {.example}
<div class="wa-stack">
<div class="wa-placeholder"></div>
<wa-divider></wa-divider>
<div class="wa-split">
<span class="wa-caption-l">Showing 1 to 10 of 50 Results</span>
<div class="wa-cluster wa-gap-xs">
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="chevron-left"></wa-icon>
Prev
</wa-button>
<wa-button appearance="outlined">
<wa-icon slot="suffix" name="chevron-right"></wa-icon>
Next
</wa-button>
</div>
</div>
</div>
```
## With Button Group
```html {.example}
<div class="wa-stack">
<div class="wa-placeholder"></div>
<wa-divider></wa-divider>
<div class="wa-split">
<span class="wa-caption-l">Showing 1 to 10 of 50 Results</span>
<wa-button-group orientation="horizontal">
<wa-button appearance="outlined">
<wa-icon name="chevron-left"></wa-icon>
</wa-button>
<wa-button appearance="accent" variant="brand">1</wa-button>
<wa-button appearance="outlined">2</wa-button>
<wa-button appearance="outlined">3</wa-button>
<wa-button appearance="outlined" disabled>...</wa-button>
<wa-button appearance="outlined">10</wa-button>
<wa-button appearance="outlined">
<wa-icon name="chevron-right"></wa-icon>
</wa-button>
</wa-button-group>
</div>
</div>
```

View File

@@ -1,248 +0,0 @@
---
title: Permissions
description: 'Permission patterns provide or restrict access to users.'
isPro: true
---
## With Form Inputs
```html {.example}
<wa-card style="max-width: 72ch; margin: 0 auto;">
<div slot="header" class="wa-split">
<h2 class="wa-heading-m">Invite Team Members</h2>
<wa-icon name="close"></wa-icon>
</div>
<div class="wa-stack wa-gap-2xl">
<div class="wa-align-items-end wa-flank:end wa-gap-2xs">
<wa-input label="Email" placeholder="contact@example.com"></wa-input>
<wa-button variant="success">Send Invite</wa-button>
</div>
<div class="wa-stack">
<span class="wa-heading-s">Project Members</span>
<div class="wa-stack wa-gap-xl">
<div class="wa-flank">
<wa-avatar
label="User avatar"
image="https://images.unsplash.com/photo-1580489944761-15a19d654956?q=80&w=1961&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
></wa-avatar>
<div class="wa-split">
<div class="wa-stack wa-gap-0">
<span class="wa-heading-xs">Jessica Jones</span>
<span class="wa-caption-m" style="word-break: break-word">jessica.jones@example.com</span>
</div>
<wa-select value="owner">
<wa-option value="owner">Owner</wa-option>
<wa-option value="admin">Admin</wa-option>
<wa-option value="can-edit">Can Edit</wa-option>
<wa-option value="view-only">View Only</wa-option>
</wa-select>
</div>
</div>
<div class="wa-flank">
<wa-avatar
label="User avatar"
image="https://images.unsplash.com/photo-1566492031773-4f4e44671857?q=80&w=2487&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
></wa-avatar>
<div class="wa-split">
<div class="wa-stack wa-gap-0">
<span class="wa-heading-xs">Foggy Nelson</span>
<span class="wa-caption-m" style="word-break: break-word">foggy.nelson@example.com</span>
</div>
<wa-select value="admin">
<wa-option value="owner">Owner</wa-option>
<wa-option value="admin">Admin</wa-option>
<wa-option value="can-edit">Can Edit</wa-option>
<wa-option value="view-only">View Only</wa-option>
</wa-select>
</div>
</div>
<div class="wa-flank">
<wa-avatar
label="User avatar"
image="https://images.unsplash.com/photo-1494790108377-be9c29b29330?q=80&w=2487&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
></wa-avatar>
<div class="wa-split">
<div class="wa-stack wa-gap-0">
<span class="wa-heading-xs">Karen Page</span>
<span class="wa-caption-m" style="word-break: break-word">karen.page@example.com</span>
</div>
<wa-select value="can-edit">
<wa-option value="owner">Owner</wa-option>
<wa-option value="admin">Admin</wa-option>
<wa-option value="can-edit">Can Edit</wa-option>
<wa-option value="view-only">View Only</wa-option>
</wa-select>
</div>
</div>
<div class="wa-flank">
<wa-avatar
label="User avatar"
image="https://images.unsplash.com/photo-1599566150163-29194dcaad36?q=80&w=2487&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
></wa-avatar>
<div class="wa-split">
<div class="wa-stack wa-gap-0">
<span class="wa-heading-xs">Matt Murdock</span>
<span class="wa-caption-m" style="word-break: break-word">matt.murdock@example.com</span>
</div>
<wa-select value="view-only">
<wa-option value="owner">Owner</wa-option>
<wa-option value="admin">Admin</wa-option>
<wa-option value="can-edit">Can Edit</wa-option>
<wa-option value="view-only">View Only</wa-option>
</wa-select>
</div>
</div>
</div>
</div>
<div class="wa-align-items-end wa-flank:end wa-gap-2xs">
<wa-input label="Share Link" value="https://sharelink3435re.com" disabled></wa-input>
<wa-button variant="brand" appearance="filled outlined">
<wa-icon slot="prefix" name="link" variant="solid"></wa-icon>
Copy Link
</wa-button>
</div>
</div>
</wa-card>
```
## Link Settings
```html {.example}
<wa-card style="max-width: 45ch; margin: 0 auto;">
<div class="wa-stack">
<h2 class="wa-heading-m">Manage Link</h2>
<wa-input label="Expiration Date" type="date"></wa-input>
<wa-radio-group label="Share Limit" orientation="horizontal" name="share-limit" value="0">
<wa-radio appearance="button" value="0">None</wa-radio>
<wa-radio appearance="button" value="5">5</wa-radio>
<wa-radio appearance="button" value="10">10</wa-radio>
<wa-radio appearance="button" value="50">50</wa-radio>
<wa-radio appearance="button" value="100">100</wa-radio>
</wa-radio-group>
<wa-divider></wa-divider>
<wa-switch hint="Members are removed after logging out." checked>Temporary Access</wa-switch>
<div class="wa-cluster wa-gap-xs" style="justify-content: flex-end">
<wa-button size="small" appearance="outlined" pill>Cancel</wa-button>
<wa-button size="small" variant="brand" pill>Generate</wa-button>
</div>
</div>
</wa-card>
```
## Role Settings
```html {.example}
<div style="max-width: 78ch; margin: 0 auto;">
<h2>Settings</h2>
<p>Update settings for this server.</p>
<wa-tab-group>
<wa-tab panel="general">
<div class="wa-cluster">
<wa-icon name="user"></wa-icon>
<span>User Permissions</span>
</div>
</wa-tab>
<wa-tab-panel name="general">
<wa-card>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1741289308283-feba56f857cc?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8MTl8fGJlYXJkfGVufDB8MnwwfHx8Mg%3D%3D"
alt="image avatar"
></wa-avatar>
<div class="wa-split">
<div class="wa-stack wa-gap-xs">
<span class="wa-heading-s">Kris Kringle</span>
<span class="wa-caption-m">Admin</span>
</div>
<wa-button appearance="plain">
<wa-icon slot="prefix" name="edit"></wa-icon>
Edit Profile
</wa-button>
</div>
</div>
</wa-card>
<table>
<thead>
<tr>
<th>Name</th>
<th>Role</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1579824894326-77ec5aaf8703?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8NDJ8fHJlaW5kZWVyfGVufDB8MnwwfHx8Mg%3D%3D"
></wa-avatar>
<span class="wa-caption-m">Dasher</span>
</div>
</td>
<td>
<wa-select value="moderator">
<wa-option value="moderator">Moderator</wa-option>
<wa-option value="contributor">Contributor</wa-option>
<wa-option value="reader">Reader</wa-option>
</wa-select>
</td>
</tr>
<tr>
<td>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1691065686144-916ff29d1b4f?q=80&w=2666&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
></wa-avatar>
<span class="wa-caption-m">Dancer</span>
</div>
</td>
<td>
<wa-select value="moderator">
<wa-option value="moderator">Moderator</wa-option>
<wa-option value="contributor">Contributor</wa-option>
<wa-option value="reader">Reader</wa-option>
</wa-select>
</td>
</tr>
<tr>
<td>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1616742618872-9e8a890d90b2?q=80&w=2712&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
></wa-avatar>
<span class="wa-caption-m">Prancer</span>
</div>
</td>
<td>
<wa-select value="contributor">
<wa-option value="moderator">Moderator</wa-option>
<wa-option value="contributor">Contributor</wa-option>
<wa-option value="reader">Reader</wa-option>
</wa-select>
</td>
</tr>
<tr>
<td>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1728290403857-1b7909db2baa?q=80&w=2680&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
></wa-avatar>
<span class="wa-caption-m">Vixen</span>
</div>
</td>
<td>
<wa-select value="reader">
<wa-option value="moderator">Moderator</wa-option>
<wa-option value="contributor">Contributor</wa-option>
<wa-option value="reader">Reader</wa-option>
</wa-select>
</td>
</tr>
</tbody>
</table>
</wa-tab-panel>
</wa-tab-group>
</div>
```

View File

@@ -1,170 +0,0 @@
---
title: Pricing
description: 'Help users make informed purchasing decisions with clear, structured pricing.'
isPro: true
---
## Three Tiers
```html {.example}
<div class="wa-grid">
<wa-card>
<div class="wa-stack">
<div class="wa-cluster wa-heading-l">
<wa-icon name="apple-core"></wa-icon>
<h3>Lite</h3>
</div>
<span class="wa-flank wa-align-items-baseline wa-gap-2xs">
<span class="wa-heading-2xl">$60</span>
<span class="wa-caption-l">per year</span>
</span>
<p class="wa-caption-l">An online-only plan for web-based projects.</p>
<wa-button variant="brand" appearance="outlined">Get Lite</wa-button>
</div>
<div slot="footer" class="wa-stack">
<h4 class="wa-heading-s">What You Get</h4>
<div class="wa-stack">
<div class="wa-flank">
<wa-icon name="user" fixed-width></wa-icon>
<span class="wa-caption-m">1 user</span>
</div>
<div class="wa-flank">
<wa-icon name="suitcase" fixed-width></wa-icon>
<span class="wa-caption-m">2 custom kits</span>
</div>
<div class="wa-flank">
<wa-icon name="chart-simple" fixed-width></wa-icon>
<span class="wa-caption-m">Up to 100k pageviews</span>
</div>
</div>
</div>
</wa-card>
<wa-card>
<div class="wa-stack">
<div class="wa-split">
<div class="wa-cluster wa-heading-l">
<wa-icon name="apple-whole"></wa-icon>
<h3>Pro</h3>
</div>
<wa-badge>Most Popular</wa-badge>
</div>
<span class="wa-flank wa-align-items-baseline wa-gap-2xs">
<span class="wa-heading-2xl">$120</span>
<span class="wa-caption-l">per year</span>
</span>
<p class="wa-caption-l">A great all-around plan for online or desktop use.</p>
<wa-button variant="brand">Get Pro</wa-button>
</div>
<div slot="footer" class="wa-stack">
<h4 class="wa-heading-s">What You Get</h4>
<div class="wa-stack">
<div class="wa-flank">
<wa-icon name="user" fixed-width></wa-icon>
<span class="wa-caption-m">5 users</span>
</div>
<div class="wa-flank">
<wa-icon name="suitcase" fixed-width></wa-icon>
<span class="wa-caption-m">20 custom kits</span>
</div>
<div class="wa-flank">
<wa-icon name="chart-simple" fixed-width></wa-icon>
<span class="wa-caption-m">Up to 1M pageviews</span>
</div>
<div class="wa-flank">
<wa-icon name="arrow-down-to-line" fixed-width></wa-icon>
<span class="wa-caption-m">Kit downloads</span>
</div>
<div class="wa-flank">
<wa-icon name="cloud-plus" fixed-width></wa-icon>
<span class="wa-caption-m">Cloud hosting</span>
</div>
</div>
</div>
</wa-card>
<wa-card>
<div class="wa-stack">
<div class="wa-cluster wa-heading-l">
<wa-icon name="crate-apple"></wa-icon>
<h3>Max</h3>
</div>
<span class="wa-flank wa-align-items-baseline wa-gap-2xs">
<span class="wa-heading-2xl">$600</span>
<span class="wa-caption-l">per year</span>
</span>
<p class="wa-caption-l">Our biggest plan with more of everything.</p>
<wa-button variant="brand" appearance="outlined">Get Max</wa-button>
</div>
<div slot="footer" class="wa-stack">
<h4 class="wa-heading-s">What You Get</h4>
<div class="wa-stack">
<div class="wa-flank">
<wa-icon name="user" fixed-width></wa-icon>
<span class="wa-caption-m">50 users</span>
</div>
<div class="wa-flank">
<wa-icon name="suitcase" fixed-width></wa-icon>
<span class="wa-caption-m">Unlimited custom kits</span>
</div>
<div class="wa-flank">
<wa-icon name="chart-simple" fixed-width></wa-icon>
<span class="wa-caption-m">Up to 10M pageviews</span>
</div>
<div class="wa-flank">
<wa-icon name="arrow-down-to-line" fixed-width></wa-icon>
<span class="wa-caption-m">Kit downloads</span>
</div>
<div class="wa-flank">
<wa-icon name="cloud-plus" fixed-width></wa-icon>
<span class="wa-caption-m">Cloud hosting</span>
</div>
</div>
</div>
</wa-card>
</div>
```
## Single Tier
```html {.example}
<wa-card>
<div class="wa-grid">
<div class="wa-stack">
<h3 class="wa-heading-l">Lifetime Membership</h3>
<p>
Learn at your own pace with expert-led content, exclusive resources, and a community of like-minded learners.
</p>
<wa-divider></wa-divider>
<h4 class="wa-heading-s">Membership Includes:</h4>
<div class="wa-grid">
<div class="wa-flank wa-gap-xs">
<wa-icon name="check"></wa-icon>
<span class="wa-caption-m">Private forum access</span>
</div>
<div class="wa-flank wa-gap-xs">
<wa-icon name="check"></wa-icon>
<span class="wa-caption-m">Priority admission to events</span>
</div>
<div class="wa-flank wa-gap-xs">
<wa-icon name="check"></wa-icon>
<span class="wa-caption-m">Yearly skill assessment</span>
</div>
<div class="wa-flank wa-gap-xs">
<wa-icon name="check"></wa-icon>
<span class="wa-caption-m">Members-only swag</span>
</div>
</div>
</div>
<wa-callout variant="neutral" appearance="filled">
<div class="wa-stack wa-align-items-center" style="justify-content: center">
<h4 class="wa-heading-s">Pay Once, Own it Forever</h4>
<div class="wa-cluster wa-align-items-baseline wa-gap-2xs">
<span class="wa-heading-3xl">$459</span>
<span>USD</span>
</div>
<wa-button variant="brand" style="width: 100%">Get Access</wa-button>
<small class="wa-caption-m">30-day money back guarantee</small>
</div>
</wa-callout>
</div>
</wa-card>
```

View File

@@ -1,55 +0,0 @@
---
title: Call To Action
description: 'Solicits a user to take action.'
parent: blog-news
icon: call-to-action
tags: blog-news
---
## Simple
```html {.example}
<div style="margin-block: var(--wa-space-4xl);">
<h2 class="wa-heading-3xl">Unlock Your Future: <br />Start Learning Web Development Today!</h2>
<div class="wa-cluster wa-gap-xs">
<wa-button>Get Started</wa-button>
<wa-button appearance="plain">Find out more <wa-icon slot="suffix" name="arrow-right"></wa-icon></wa-button>
</div>
</div>
```
## Centered
```html {.example}
<div class="wa-stack wa-align-items-center wa-gap-xl" style="margin-block: var(--wa-space-4xl);">
<h2 class="wa-heading-3xl" style="text-align: center">
Unlock Your Future: <br />Start Learning Web Development Today!
</h2>
<div class="wa-cluster wa-gap-xs">
<wa-button>Get Started</wa-button>
<wa-button appearance="plain">Find out more <wa-icon slot="suffix" name="arrow-right"></wa-icon></wa-button>
</div>
</div>
```
## 2 Column
```html {.example}
<div style="margin-block: var(--wa-space-4xl);">
<div class="wa-grid wa-align-items-center wa-gap-3xl">
<div class="wa-stack wa-gap-3xl">
<h2 class="wa-heading-3xl">Unlock Your Future: <br />Start Learning Web Development Today!</h2>
<div class="wa-cluster wa-gap-xs">
<wa-button>Get Started</wa-button>
<wa-button appearance="plain">Find out more <wa-icon slot="suffix" name="arrow-right"></wa-icon></wa-button>
</div>
</div>
<div class="wa-frame wa-border-radius-l">
<img
src="https://images.unsplash.com/photo-1586864387634-2f33030dab41?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt=""
/>
</div>
</div>
</div>
```

View File

@@ -1,143 +0,0 @@
---
title: Category List
description: 'Organize your site and allow readers to find the information they want.'
parent: blog-news
icon: category-list
tags: blog-news
---
## Grid
```html {.example}
<div class="wa-stack wa-gap-2xl wa-align-items-center">
<h2 class="wa-heading-2xl">Discover the Latest in...</h2>
<div>
<div class="wa-split">
<h3 class="wa-heading-l">Customer Service</h3>
<a class="wa-cluster wa-gap-2xs" href="#"><span>View More</span> <wa-icon name="arrow-right"></wa-icon></a>
</div>
<wa-divider></wa-divider>
<div class="wa-grid">
<a href="#">
<wa-card with-image style="height: 100%">
<img
slot="media"
src="https://images.unsplash.com/photo-1560264357-8d9202250f21?q=80&w=3000&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Group of customer service reps working on computers in a shared office space"
/>
<div class="wa-stack wa-gap-xs">
<span class="wa-caption-l">Articles</span>
<span class="wa-heading-m">Creating Memorable Customer Moments: The Secret Sauce to Loyalty</span>
</div>
</wa-card>
</a>
<a href="#">
<wa-card with-image style="height: 100%">
<img
slot="media"
src="https://images.unsplash.com/photo-1531403009284-440f080d1e12?q=80&w=5070&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="A hand pinching a pin on string, making connections between data on a corkboard"
/>
<div class="wa-stack wa-gap-xs">
<span class="wa-caption-l">Software & Systems</span>
<span class="wa-heading-m">Crafting a Seamless Customer Journey</span>
</div>
</wa-card>
</a>
<a href="#">
<wa-card with-image style="height: 100%">
<img
slot="media"
src="https://images.unsplash.com/photo-1561323587-7464f7689886?q=80&w=5070&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="A chess board with all pieces in starting position"
/>
<div class="wa-stack wa-gap-xs">
<span class="wa-caption-l">Engagement</span>
<span class="wa-heading-m">Customer Delight vs. Satisfaction: Whats the Real Goal?</span>
</div>
</wa-card>
</a>
</div>
</div>
<div>
<div class="wa-split">
<h3 class="wa-heading-l">Growth & Culture</h3>
<a class="wa-cluster wa-gap-2xs" href="#"><span>View More</span> <wa-icon name="arrow-right"></wa-icon></a>
</div>
<wa-divider></wa-divider>
<div class="wa-grid">
<a href="#">
<wa-card with-image style="height: 100%">
<img
slot="media"
src="https://images.unsplash.com/photo-1493599124325-e628361046af?q=80&w=4470&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Viewpoint from the middle of a forest, looking upwards towards the canopy of towering evergreen"
/>
<div class="wa-stack wa-gap-xs">
<span class="wa-caption-l">Hiring & Culture</span>
<span class="wa-heading-m">Scaling with Soul: How to Grow Without Losing Your Culture</span>
</div>
</wa-card>
</a>
<a href="#">
<wa-card with-image style="height: 100%">
<img
slot="media"
src="https://images.unsplash.com/photo-1466629437334-b4f6603563c5?q=80&w=4478&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Sunset over a vast grassy field with many prominent wind turbines"
/>
<div class="wa-stack wa-gap-xs">
<span class="wa-caption-l">Articles</span>
<span class="wa-heading-m">Culture Is Your Growth Engine: Why Values Drive Performance</span>
</div>
</wa-card>
</a>
<a href="#">
<wa-card with-image style="height: 100%">
<img
slot="media"
src="https://images.unsplash.com/photo-1455849318743-b2233052fcff?q=80&w=4469&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Viewpoint of two people side-by-side looking down towards their shoes, PASSION LED US HERE written on the sidewalk"
/>
<div class="wa-stack wa-gap-xs">
<span class="wa-caption-l">Behind the Scenes</span>
<span class="wa-heading-m">From Start-Up to Standout: Building a Culture That Attracts Top Talent</span>
</div>
</wa-card>
</a>
</div>
</div>
</div>
```
## Links with Background Images
```html {.example}
<div class="wa-stack wa-align">
<h2 class="wa-heading-2xl">Recipes</h2>
<div class="wa-grid">
<a
href="#"
class="wa-frame wa-align-items-center wa-border-radius-m wa-link-plain wa-heading-xl wa-dark"
style="padding: var(--wa-space-3xl);background-image:linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://images.unsplash.com/photo-1548340748-6d2b7d7da280?q=80&w=3027&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D');background-size: cover;background-position: center; text-align: center;"
>
Appetizers and Snacks
</a>
<a
href="#"
class="wa-frame wa-align-items-center wa-border-radius-m wa-link-plain wa-heading-xl wa-dark"
style="padding: var(--wa-space-3xl);background-image:linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://images.unsplash.com/photo-1644704265419-96ddaf628e71?q=80&w=5340&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D');background-size: cover;background-position: center; text-align: center"
>
Main Dishes
</a>
<a
href="#"
class="wa-frame wa-align-items-center wa-border-radius-m wa-link-plain wa-heading-xl wa-dark"
style="padding: var(--wa-space-3xl);background-image:linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://images.unsplash.com/photo-1551024506-0bccd828d307?q=80&w=3200&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D');background-size: cover;background-position: center; text-align: center;"
>
Desserts
</a>
</div>
<wa-button appearance="plain"><wa-icon slot="suffix" name="arrow-right"></wa-icon>View More Recipes</wa-button>
</div>
```

View File

@@ -1,167 +0,0 @@
---
title: Featured Post
description: 'Highlight important, timely, or high-impact content.'
parent: blog-news
tags:
---
## Single Column
```html {.example}
<div class="wa-stack wa-gap-2xl" style="max-width: 90ch; margin: 0 auto;">
<article class="wa-stack">
<div class="wa-grid wa-gap-2xl">
<div class="wa-frame wa-border-radius-l">
<img
src="https://images.unsplash.com/photo-1673255745677-e36f618550d1?q=80&w=5000&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Futuristic humanoid robot holding a metallic brain in its right hand"
/>
</div>
<div class="wa-stack">
<span><a href="#">Catherine Rigby</a> wrote</span>
<h2 class="wa-heading-3xl">How Artificial Intelligence Is Quietly Transforming Your Daily Life</h2>
<span>
<wa-format-date month="long" day="numeric" year="numeric"></wa-format-date> in
<a href="#">Artificial Intelligence</a>, <a href="#">Large Language Model</a>,
<a href="#">Machine Learning</a>
</span>
</div>
</div>
<p>From your morning playlist to your grocery list, AI is everywhere—and you might not even notice it.</p>
<wa-button href="#" appearance="filled" variant="brand">
Continue reading
<wa-icon name="arrow-right" slot="suffix"></wa-icon>
</wa-button>
</article>
<wa-divider></wa-divider>
<article class="wa-stack">
<span>
<a href="#">Freddie Smith</a><wa-format-date month="long" day="numeric" year="numeric"></wa-format-date> in
<a href="#">Artificial Intelligence</a>, <a href="#">Large Language Model</a>,
<a href="#">Machine Learning</a>
</span>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1654110455429-cf322b40a906?q=80&w=3178&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="Avatar of author"
></wa-avatar>
<h2 class="wa-heading-l">What Generative AI Means for Creativity, Work, and the Future of Content</h2>
</div>
</article>
<wa-divider></wa-divider>
<article class="wa-stack">
<span>
<a href="#">Michelle Starling</a><wa-format-date month="long" day="numeric" year="numeric"></wa-format-date> in
<a href="#">Artificial Intelligence</a>, <a href="#">Large Language Model</a>,
<a href="#">Machine Learning</a>
</span>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1586297135537-94bc9ba060aa?q=80&w=4000&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="Avatar of author"
></wa-avatar>
<h2 class="wa-heading-l">The Ethics of Intelligence: Whos Accountable When AI Gets It Wrong</h2>
</div>
</article>
</div>
```
## Two Column
```html {.example}
<div style="max-width: 84ch; margin: 0 auto;">
<div class="wa-gap-3xl wa-grid">
<div class="wa-stack">
<div class="wa-frame wa-border-radius-l">
<img
src="https://images.unsplash.com/photo-1741208296373-27b4438d0654?q=80&w=2794&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
<div>
<h2 class="wa-heading-l">Masters and Movements: A Journey Through Art Historys Most Defining Eras</h2>
<p class="wa-caption-l">
Discover the pivotal artists, styles, and moments that shaped the world of fine art—from the Renaissance to
the rise of modernism.
</p>
<span class="wa-cluster">
<a href="#">Stephanie Howard</a>
<wa-format-date month="long" day="numeric" date="2020-07-15T09:17:00-04:00"></wa-format-date> |
<wa-icon name="comment"></wa-icon> 3
</span>
</div>
</div>
<div class="wa-stack">
<span>Top Stories</span>
<ol class="wa-stack">
<li class="wa-stack">
<div class="wa-flank:end" style="--flank-size: 8ch">
<h3 class="wa-heading-m">How Fine Art Captures Emotion Beyond Words</h3>
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1717501219402-4444fcef55e7?q=80&w=4096&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="article thumbnail"
/>
</div>
</div>
<span class="wa-cluster">
<a href="#">Emma Wilson</a>
<wa-format-date month="long" day="numeric" date="2020-05-15T09:17:00-04:00"></wa-format-date> |
<wa-icon name="comment"></wa-icon> 20
</span>
</li>
<wa-divider></wa-divider>
<li class="wa-stack wa-gap-2xs">
<div class="wa-flank:end" style="--flank-size: 8ch">
<h3 class="wa-heading-m">From Brush to Pixel: The Evolving Identity of Fine Art in the Digital Age</h3>
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1697560415980-8cc04e055cdb?q=80&w=3600&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="article thumbnail"
/>
</div>
</div>
<span class="wa-cluster">
<a href="#">Eddie Kane</a>
<wa-format-date month="long" day="numeric" date="2020-04-15T09:17:00-04:00"></wa-format-date> |
<wa-icon name="comment"></wa-icon> 12
</span>
</li>
<wa-divider></wa-divider>
<li class="wa-stack wa-gap-2xs">
<div class="wa-flank:end" style="--flank-size: 8ch">
<h3 class="wa-heading-m">What Makes It Fine? Unpacking the Line Between Art and Craft</h3>
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1738533614668-0a1a2501a138?q=80&w=3464&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="article thumbnail"
/>
</div>
</div>
<span class="wa-cluster">
<a href="#">Gill Scott</a>
<wa-format-date month="long" day="numeric" date="2020-03-20T09:17:00-04:00"></wa-format-date> |
<wa-icon name="comment"></wa-icon> 8
</span>
</li>
<wa-divider></wa-divider>
<li class="wa-stack wa-gap-2xs">
<div class="wa-flank:end" style="--flank-size: 8ch">
<h3 class="wa-heading-m">Studio Stories: Inside the Creative Rituals of Contemporary Fine Artists</h3>
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1600999116700-5a50973983e8?q=80&w=2292&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="article thumbnail"
/>
</div>
</div>
<span class="wa-cluster">
<a href="#">Festus Armond</a>
<wa-format-date month="long" day="numeric" date="2020-02-20T09:17:00-04:00"></wa-format-date> |
<wa-icon name="comment"></wa-icon> 16
</span>
</li>
</ol>
</div>
</div>
</div>
```

View File

@@ -1,162 +0,0 @@
---
title: Footer
description: 'Provide useful information at the bottom of a webpage.'
parent: blog-news
tags: blog-news
---
## Simple
```html {.example}
<div class="wa-stack wa-gap-xl">
<div class="wa-split">
<div class="wa-cluster wa-gap-xs wa-heading-xl">
<wa-icon name="gears"></wa-icon>
<span>Widget UI</span>
</div>
<form class="wa-flank:end wa-gap-xs wa-align-items-end">
<wa-input placeholder="Enter your email" label="Stay in the Know" type="email"></wa-input>
<wa-button>Subscribe</wa-button>
</form>
</div>
<wa-divider></wa-divider>
<p style="text-align: right">© 2025 All rights reserved.</p>
</div>
```
## Centered
```html {.example}
<div class="wa-stack wa-align-items-center">
<div class="wa-cluster wa-gap-xl">
<a href="#">Home</a>
<a href="#">Get Started</a>
<a href="#">Services</a>
<a href="#">Portfolio</a>
</div>
<div class="wa-cluster wa-gap-s">
<a href="#"
><wa-icon-button
style="font-size: var(--wa-font-size-l);"
name="facebook"
family="brands"
label="Follow on Facebook"
href="#"
target="_blank"
></wa-icon-button
></a>
<a href="#"
><wa-icon-button
style="font-size: var(--wa-font-size-l);"
name="bluesky"
family="brands"
label="Follow on Bluesky"
href="#"
target="_blank"
></wa-icon-button
></a>
<a href="#"
><wa-icon-button
style="font-size: var(--wa-font-size-l);"
name="linkedin"
family="brands"
label="Follow on LinkedIn"
href="#"
target="_blank"
></wa-icon-button
></a>
<a href="#"
><wa-icon-button
style="font-size: var(--wa-font-size-l);"
name="envelope-open"
label="Email us"
href="#"
target="_blank"
></wa-icon-button
></a>
</div>
<p>© 2025 All Rights reserved.</p>
</div>
```
## Corporate
```html {.example}
<div>
<div class="wa-flank wa-align-items-baseline wa-gap-3xl" style="--flank-size: 36ch;">
<p>
We are committed to providing you with the best products and services. If you have any questions or need
assistance, feel free to reach out to our team. Stay connected with us through our social media channels for
updates, news, and more. Your satisfaction is our top priority, and we look forward to serving you again soon!
</p>
<div class="wa-grid">
<section class="wa-stack wa-gap-xs">
<h2 class="wa-heading-s">Links</h2>
<a href="#">Home</a>
<a href="#">Get Started</a>
<a href="#">Services</a>
<a href="#">Portfolio</a>
</section>
<section class="wa-stack wa-gap-xs">
<h2 class="wa-heading-s">Others</h2>
<a href="#">Corporate</a>
<a href="#">Terms of Service</a>
<a href="#">Privacy Policy</a>
</section>
<section class="wa-stack">
<h2 class="wa-heading-s">Social</h2>
<div class="wa-cluster">
<a href="#">
<wa-icon-button
style="font-size: var(--wa-font-size-l);"
name="facebook"
family="brands"
label="Follow on Facebook"
href="#"
target="_blank"
></wa-icon-button>
</a>
<a href="#">
<wa-icon-button
style="font-size: var(--wa-font-size-l);"
name="bluesky"
family="brands"
label="Follow on Bluesky"
href="#"
target="_blank"
></wa-icon-button>
</a>
<a href="#">
<wa-icon-button
style="font-size: var(--wa-font-size-l);"
name="linkedin"
family="brands"
label="Follow on LinkedIn"
href="#"
target="_blank"
></wa-icon-button>
</a>
<a href="#">
<wa-icon-button
style="font-size: var(--wa-font-size-l);"
name="envelope-open"
label="Email us"
href="#"
target="_blank"
></wa-icon-button>
</a>
</div>
</section>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-split">
<p>© 2025 All rights reserved.</p>
<wa-select label="Language" value="english">
<wa-option value="english">English</wa-option>
<wa-option value="spanish">Spanish</wa-option>
<wa-option value="french">French</wa-option>
</wa-select>
</div>
</div>
```

View File

@@ -1,9 +0,0 @@
---
title: Blog & News
description: 'Post lists, social sharing, paywalls, and more to bring your written content to the right audience.'
parent: patterns
layout: overview
override:tags: []
listChildren: true
isPro: false
---

View File

@@ -1,3 +0,0 @@
{
"tags": ["blog-news"]
}

View File

@@ -1,65 +0,0 @@
---
title: Sign Up & Login
description: 'Verify the identity of a user and ensures that only authorized individuals can access specific content, features, or account data.'
parent: blog-news
tags: blog-news
---
## Sign Up
```html {.example}
<wa-card style="max-width: 45ch; margin: 0 auto">
<div class="wa-stack">
<h2 class="wa-heading-m">Sign up with Email</h2>
<p>Let's get your account started. Enter your email below.</p>
<wa-input label="Email" type="email"></wa-input>
<wa-button>Continue</wa-button>
<p class="wa-caption-s">By clicking continue, you agree to our <a href="#">Terms of Service</a></p>
</div>
</wa-card>
```
## Login
```html {.example}
<wa-card style="max-width: 45ch; margin: 0 auto">
<div class="wa-stack">
<h2 class="wa-heading-m">Login</h2>
<wa-input label="Email" type="email"></wa-input>
<wa-input label="Password" type="password"></wa-input>
<a href="#">Having trouble signing in?</a>
<wa-button>Sign in</wa-button>
</div>
</wa-card>
```
## With Third Party Login
```html {.example}
<wa-card style="max-width: 45ch; margin: 0 auto">
<div class="wa-stack">
<h2 class="wa-heading-m">Login</h2>
<wa-input label="Email" type="email"></wa-input>
<wa-input label="Password" type="password"></wa-input>
<a href="#">Having trouble signing in?</a>
<wa-button>Sign in</wa-button>
<wa-divider></wa-divider>
<p>Or sign in with:</p>
<div class="wa-grid" style="--min-column-size: 12ch;">
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="google" family="brands"></wa-icon>
Google
</wa-button>
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="apple" family="brands"></wa-icon>
Apple ID
</wa-button>
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="facebook" family="brands"></wa-icon>
Facebook
</wa-button>
</div>
<p>Don't have an account? <a href="#">Create one</a></p>
</div>
</wa-card>
```

View File

@@ -1,125 +0,0 @@
---
title: Newsletter
description: 'Convert site visitors into engaged subscribers or customers.'
parent: blog-news
tags: blog-news
---
## Simple
```html{.example}
<wa-card style="margin: 0 auto; max-width: 45ch;">
<div class="wa-stack">
<h2 class="wa-heading-m" id="subscribe-label-1">Subscribe to our Newsletter</h2>
<p>To get the latest and most quality design resources</p>
<form class="wa-flank:end wa-gap-2xs">
<wa-input placeholder="email@example.com" aria-labelledby="subscribe-label-1"></wa-input>
<wa-button>Subscribe</wa-button>
</form>
</div>
</wa-card>
```
## 2 Column
```html{.example}
<wa-card style="margin: 0 auto; max-width: 75ch;">
<div class="wa-grid">
<div class="wa-stack wa-gap-2xs">
<h2 class="wa-heading-m" id="subscribe-label-2">Subscribe to our Newsletter</h2>
<p>To get the latest and most quality design resources</p>
</div>
<form class="wa-flank:end wa-gap-2xs">
<wa-input placeholder="email@example.com" aria-labelledby="subscribe-label-2"></wa-input>
<wa-button>Subscribe</wa-button>
</form>
</div>
</wa-card>
```
## With Incentives
```html {.example}
<wa-card style="margin: 0 auto; max-width: 75ch;">
<div class="wa-grid">
<dl class="wa-stack">
<div class="wa-cluster wa-gap-xs">
<dt><wa-icon name="calendar"></wa-icon></dt>
<dd>Daily news in your inbox</dd>
</div>
<div class="wa-cluster wa-gap-xs">
<dt><wa-icon name="trash"></wa-icon></dt>
<dd>Spam-free</dd>
</div>
<div class="wa-cluster wa-gap-xs">
<dt><wa-icon name="shield-halved"></wa-icon></dt>
<dd>The most trusted source in the industry</dd>
</div>
<div class="wa-cluster wa-gap-xs">
<dt><wa-icon name="user-xmark"></wa-icon></dt>
<dd>Easy to unsubscribe</dd>
</div>
</dl>
<div class="wa-stack">
<h2 class="wa-heading-m" id="subscribe-label-3">Subscribe to our Newsletter</h2>
<p>To get the latest and most quality design resources</p>
<form class="wa-flank:end wa-gap-2xs wa-align-items-end">
<wa-input placeholder="email@example.com" aria-labelledby="subscribe-label-3"></wa-input>
<wa-button>Subscribe</wa-button>
</form>
</div>
</div>
</wa-card>
```
## With Image card
```html {.example}
<wa-card with-image style="max-width: 45ch; margin: 0 auto">
<img
slot="media"
src="https://images.unsplash.com/photo-1595087012935-124877078142?q=80&w=2574&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="mailbox"
/>
<div class="wa-stack wa-gap-2xl">
<div class="wa-stack wa-align-items-center wa-gap-xs">
<h2 class="wa-heading-l">Subscribe!</h2>
<p class="wa-caption-l" style="text-align: center; word-break: break-word">
Get the best new products in your inbox, everyday. Get the latest content first.
</p>
</div>
<form class="wa-stack">
<wa-input placeholder="email@example.com" label="Sign up with email"></wa-input>
<wa-button appearance="filled" variant="brand">Sign up</wa-button>
</form>
</div>
</wa-card>
```
## 2 column
```html {.example}
<wa-card style="margin: 0 auto; max-width: 84ch;">
<div class="wa-grid wa-align-items-center">
<form class="wa-stack wa-align-items-center wa-gap-2xl">
<h2 class="wa-heading-xl" style="text-align: center;">Be the first to know</h2>
<p class="wa-caption-xl" style="text-align: center;">Don't miss out on exclusive savings, new arrivals, and more.</p>
<div class="wa-stack">
<wa-input label="Email address" required></wa-input>
<wa-input label="Phone number" type="tel" placeholder="(optional)"></wa-input>
<wa-checkbox>
<p class="wa-caption-s" style="margin: 0">Enter your mobile number and select to receive automated marketing text messages about new items, great savings and more. You understand that consent is not required to make a purchase. Message and data rates may apply. Message frequency varies. Wireless Carriers are not liable for delayed or undelivered messages. Text HELP for help and STOP to cancel. For questions, please <a href="#">contact us</a>. <a href="#">Terms</a></div>
</wa-checkbox>
</div>
<div class="wa-stack wa-align-items-center wa-gap-s" style="width: 100%;">
<wa-button appearance="outlined" style="width: 100%;">Sign up now</wa-button>
<wa-button href="#" appearance="plain" variant="brand" style="width: 100%;">No, thanks</wa-button>
</div>
</form>
<div class="wa-frame:portrait wa-border-radius-l">
<img src="https://images.unsplash.com/photo-1552558636-f6a8f071c2b3?q=80&w=2268&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" />
</div>
</div>
</wa-card>
```

View File

@@ -1,121 +0,0 @@
---
title: Paywall
description: 'Monetize value and encourage commitment from readers, viewers, or users.'
parent: blog-news
tags: blog-news
---
## Meter
```html {.example}
<div style="max-width: 45ch; margin: 0 auto;">
<wa-card>
<div class="wa-flank">
<wa-avatar
shape="rounded"
style="--background-color: var(--wa-color-purple-80); --text-color: var(--wa-color-purple-40)"
>
<wa-icon slot="icon" name="newspaper" family="regular"></wa-icon>
</wa-avatar>
<div class="wa-stack wa-gap-2xs">
<p>
You've read <span style="font-weight: var(--wa-font-weight-bold);">9 out of 10 articles</span> this month.
</p>
<p>Already a subscriber? <a href="#">Log in here</a>.</p>
<a href="#">Get Unlimited access for just 99¢</a>
</div>
</div>
</wa-card>
</div>
```
## Modal
```html {.example .viewport}
<wa-dialog without-header label="Subscribe or continue with ads" class="dialog-deny-close" style="--width: 90ch;" open>
<div class="wa-stack wa-gap-xl">
<h2 class="wa-heading-m">Want to subscribe or continue using our Products for free with ads?</h2>
<p>
Laws are changing in your region, so we're introducing a new choice about how we use your info for ads. You'll
learn more about what each option means for you before you confirm your choice.
</p>
<p>Your choice will apply to the <a href="#">accounts in this Accounts Center</a>.</p>
<div class="wa-grid">
<article class="wa-stack wa-gap-s">
<span class="wa-heading-s">Subscribe without ads</span>
<p>
Subscribe to our accounts without ads, starting at 5.99/month (inclusive of applicable taxes). Your info won't
be use for ads.
</p>
<wa-button variant="success">Subscribe</wa-button>
</article>
<article class="wa-stack wa-gap-s">
<span class="wa-heading-s">Free with ads</span>
<p>
Discover products and brands through personalized ads, while using your accounts for free. Your info will be
used for ads
</p>
<wa-button appearance="outlined">Use for Free</wa-button>
</article>
</div>
</div>
</wa-dialog>
<script>
const dialog = document.querySelector('.dialog-deny-close');
// Prevent the dialog from closing
dialog.addEventListener('wa-hide', event => {
if (event.detail.source.hasAttribute('open')) {
event.preventDefault();
}
});
</script>
```
## Footer
```html {.example .viewport}
<wa-drawer
without-header
label="Free article limit reached"
placement="bottom"
class="drawer-placement-bottom"
style="--size: 21rem;"
open
>
<div>
<h2 class="wa-heading-m">You've hit your free article limit.</h2>
<wa-divider></wa-divider>
<div class="wa-grid">
<div class="wa-stack wa-gap-s wa-align-items-start">
<span class="wa-heading-s">Standard Digital</span>
<span class="wa-heading-xl">$45/month</span>
<p style="text-wrap: pretty">
Essential digital access to quality journalism on any device. Makes a great gift.
</p>
<wa-button variant="brand">Select</wa-button>
<a href="#" class="wa-caption-m">What's Included?</a>
</div>
<div class="wa-stack wa-gap-s wa-align-items-start">
<span class="wa-heading-s">Premium Digital</span>
<span class="wa-heading-xl">$75/month</span>
<p style="text-wrap: pretty">
Complete digital access to quality journalism with expert analysis from industry leaders.
</p>
<wa-button variant="brand">Select</wa-button>
<a href="#" class="wa-caption-m">What's Included?</a>
</div>
</div>
</div>
</wa-drawer>
<script>
const drawer = document.querySelector('.drawer-placement-bottom');
// Prevent the drawer from closing
drawer.addEventListener('wa-hide', event => {
if (event.detail.source.hasAttribute('open')) {
event.preventDefault();
}
});
</script>
```

View File

@@ -1,292 +0,0 @@
---
title: Post Footer
description: 'Helps reduce bounce rate and keep users in your content loop.'
parent: blog-news
tags:
---
## Two Column
```html {.example}
<div class="wa-align-items-start wa-flank:end wa-gap-3xl" style="--flank-size: 40ch;">
<div class="wa-stack">
<span class="wa-heading-s">More in <a href="#" class="wa-link-plain">Politics</a></span>
<div class="wa-grid">
<a href="#" class="wa-stack wa-gap-xs wa-link-plain">
<div class="wa-frame">
<img
src="https://images.unsplash.com/photo-1580128637215-659d70729ad0?q=80&w=4637&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt=""
/>
</div>
<span class="wa-heading-m">FDR: The President Who Redefined American Leadership</span>
</a>
<a href="#" class="wa-stack wa-gap-xs wa-link-plain">
<div class="wa-frame">
<img
src="https://images.unsplash.com/photo-1719310215903-c39aaf139746?q=80&w=3520&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt=""
/>
</div>
<span class="wa-heading-m">The Rise of Populism: Global Trends and Local Consequences</span>
</a>
<a href="#" class="wa-stack wa-gap-xs wa-link-plain">
<div class="wa-frame">
<img
src="https://images.unsplash.com/photo-1587315214098-b132e659dda9?q=80&w=3024&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt=""
/>
</div>
<span class="wa-heading-m">From Ballots to Blockchain: The Future of Voting Technology</span>
</a>
<a href="#" class="wa-stack wa-gap-xs wa-link-plain">
<div class="wa-frame">
<img
src="https://images.unsplash.com/photo-1631540698890-6bfd5d47671a?q=80&w=4000&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt=""
/>
</div>
<span class="wa-heading-m">Why Every Vote Matters in a Democracy</span>
</a>
<a href="#" class="wa-stack wa-gap-xs wa-link-plain">
<div class="wa-frame">
<img
src="https://images.unsplash.com/photo-1681810553931-39b5bc2acf3d?q=80&w=3536&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt=""
/>
</div>
<span class="wa-heading-m">Power and Policy: How Political Agendas Shape Our Everyday Lives</span>
</a>
<a href="#" class="wa-stack wa-gap-xs wa-link-plain">
<div class="wa-frame">
<img
src="https://images.unsplash.com/photo-1681810546872-0f0e6eea6206?q=80&w=3617&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt=""
/>
</div>
<span class="wa-heading-m">Digital Democracy or Data Dystopia? Politics in the Age of Social Media</span>
</a>
</div>
</div>
<div class="wa-stack">
<span class="wa-heading-s">Top Stories</span>
<ul style="list-style-type: none;">
<li>
<a href="#" class="wa-stack wa-gap-2xs wa-link-plain">
<wa-format-date month="long" day="numeric" date="2020-07-15T09:17:00-04:00"></wa-format-date>
<h1 class="wa-heading-l">Why We Love Getting Lost: The Psychology of Wandering</h1>
</a>
<wa-divider></wa-divider>
</li>
<li>
<a href="#" class="wa-stack wa-gap-2xs wa-link-plain">
<wa-format-date month="long" day="numeric" date="2020-07-08T09:17:00-04:00"></wa-format-date>
<h1 class="wa-heading-l">Youve Been Scrolling for Hours: What Doomscrolling Does to Your Brain</h1>
</a>
<wa-divider></wa-divider>
</li>
<li>
<a href="#" class="wa-stack wa-gap-2xs wa-link-plain">
<wa-format-date month="long" day="numeric" date="2020-06-10T09:17:00-04:00"></wa-format-date>
<h1 class="wa-heading-l">The Salt Myth: What We Get Wrong About Flavor</h1>
</a>
<wa-divider></wa-divider>
</li>
<li>
<a href="#" class="wa-stack wa-gap-2xs wa-link-plain">
<wa-format-date month="long" day="numeric" date="2020-05-09T09:17:00-04:00"></wa-format-date>
<h1 class="wa-heading-l">Night Owls Unite: The Secret Productivity of the Late-Night Mind</h1>
</a>
<wa-divider></wa-divider>
</li>
</ul>
</div>
</div>
```
## With Share buttons and Carousel
```html {.example}
<div class="wa-stack" style="text-align: center;">
<div class="wa-stack wa-gap-2xl">
<h3 class="wa-heading-xl">Don't forget to share this post!</h3>
<div class="wa-cluster" style="justify-content: center;">
<span class="wa-align-items-center wa-stack wa-gap-2xs">
<wa-icon-button
style="font-size: var(--wa-font-size-2xl);"
name="facebook"
family="brands"
label="Share on Facebook"
href="#"
target="_blank"
></wa-icon-button>
<span class="wa-caption-s">Facebook</span>
</span>
<span class="wa-align-items-center wa-stack wa-gap-2xs">
<wa-icon-button
style="font-size: var(--wa-font-size-2xl);"
name="bluesky"
family="brands"
label="Share on Bluesky"
href="#"
target="_blank"
></wa-icon-button>
<span class="wa-caption-s">Bluesky</span>
</span>
<span class="wa-align-items-center wa-stack wa-gap-2xs">
<wa-icon-button
style="font-size: var(--wa-font-size-2xl);"
name="linkedin"
family="brands"
label="Share on LinkedIn"
href="#"
target="_blank"
></wa-icon-button>
<span class="wa-caption-s">LinkedIn</span>
</span>
<span class="wa-align-items-center wa-stack wa-gap-2xs">
<wa-icon-button
style="font-size: var(--wa-font-size-2xl);"
name="envelope-open"
label="Share with email"
href="#"
target="_blank"
></wa-icon-button>
<span class="wa-caption-s">Email</span>
</span>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-stack">
<h3 class="wa-heading-xl">Related Articles</h3>
<wa-carousel navigation pagination slides-per-page="3" slides-per-move="3" style="--aspect-ratio: initial">
<wa-carousel-item>
<a href="#" class="wa-link-plain">
<wa-card with-image>
<div class="wa-frame:landscape" slot="media">
<img
src="https://images.unsplash.com/photo-1490410006060-e1dc82ab0a70?q=80&w=5340&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Customer service reps"
/>
</div>
<div class="wa-stack wa-gap-xs">
<wa-format-date
class="wa-caption-l"
month="long"
day="numeric"
date="2024-06-15T09:17:00-04:00"
></wa-format-date>
<span class="wa-heading-m">Grids with Purpose: Mastering Layout in Web Design</span>
</div>
</wa-card>
</a>
</wa-carousel-item>
<wa-carousel-item>
<a href="#" class="wa-link-plain">
<wa-card with-image>
<div class="wa-frame:landscape" slot="media">
<img
src="https://images.unsplash.com/photo-1559757175-0eb30cd8c063?q=80&w=5231&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Customer service reps"
/>
</div>
<div class="wa-stack wa-gap-xs">
<wa-format-date
class="wa-caption-l"
month="long"
day="numeric"
date="2024-06-13T09:17:00-04:00"
></wa-format-date>
<span class="wa-heading-m">UI That Feels Right: The Psychology of Good Design</span>
</div>
</wa-card>
</a>
</wa-carousel-item>
<wa-carousel-item>
<a href="#" class="wa-link-plain">
<wa-card with-image>
<div class="wa-frame:landscape" slot="media">
<img
src="https://images.unsplash.com/photo-1581464668854-0da56c32393c?q=80&w=5340&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Customer service reps"
/>
</div>
<div class="wa-stack wa-gap-xs">
<wa-format-date
class="wa-caption-l"
month="long"
day="numeric"
date="2024-06-12T09:17:00-04:00"
></wa-format-date>
<span class="wa-heading-m">Design Is Never Done: Why Iteration Always Matters</span>
</div>
</wa-card>
</a>
</wa-carousel-item>
<wa-carousel-item>
<a href="#" class="wa-link-plain">
<wa-card with-image>
<div class="wa-frame:landscape" slot="media">
<img
src="https://images.unsplash.com/photo-1628595351029-c2bf17511435?q=80&w=5232&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Customer service reps"
/>
</div>
<div class="wa-stack wa-gap-xs">
<wa-format-date
class="wa-caption-l"
month="long"
day="numeric"
date="2024-06-11T09:17:00-04:00"
></wa-format-date>
<span class="wa-heading-m">Tiny Details Matter: The Power of Microinteractions</span>
</div>
</wa-card>
</a>
</wa-carousel-item>
<wa-carousel-item>
<a href="#" class="wa-link-plain">
<wa-card with-image>
<div class="wa-frame:landscape" slot="media">
<img
src="https://images.unsplash.com/photo-1576595580361-90a855b84b20?q=80&w=4032&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Customer service reps"
/>
</div>
<div class="wa-stack wa-gap-xs">
<wa-format-date
class="wa-caption-l"
month="long"
day="numeric"
date="2024-06-10T09:17:00-04:00"
></wa-format-date>
<span class="wa-heading-m">From Wireframe to Wow: Building Functional Design</span>
</div>
</wa-card>
</a>
</wa-carousel-item>
<wa-carousel-item>
<a href="#" class="wa-link-plain">
<wa-card with-image>
<div class="wa-frame:landscape" slot="media">
<img
src="https://images.unsplash.com/photo-1539541417736-3d44c90da315?q=80&w=5338&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Customer service reps"
/>
</div>
<div class="wa-stack wa-gap-xs">
<wa-format-date
class="wa-caption-l"
month="long"
day="numeric"
date="2024-06-09T09:17:00-04:00"
></wa-format-date>
<span class="wa-heading-m">Designing with Empathy: Creating for Real People</span>
</div>
</wa-card>
</a>
</wa-carousel-item>
</wa-carousel>
</div>
</div>
```

View File

@@ -1,74 +0,0 @@
---
title: Post Header
description: 'Post headers deliver visual impact and emotional engagement right at the start of the readers journey.'
parent: blog-news
tags:
---
## Simple
```html {.example}
<div class="wa-stack wa-gap-2xl">
<em
>File under <a href="#"><strong>Design</strong></a></em
>
<div class="wa-flank:end wa-align-items-end">
<h2 class="wa-heading-3xl">How to Earn a Living Selling Digital Products in 2025</h2>
<span>by <a href="#">Alphonso Roberts</a></span>
</div>
<div class="wa-frame:landscape wa-border-radius-l">
<img
src="https://images.unsplash.com/photo-1622737133809-d95047b9e673?q=80&w=5232&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="A collection of 3D shapes tumbling towards a blank surface"
/>
</div>
</div>
```
## With Avatar and Tags
```html {.example}
<div class="wa-stack wa-gap-xl">
<div class="wa-grid wa-align-items-center">
<div class="wa-stack wa-gap-2xl">
<h2 class="wa-heading-3xl">Understanding UX makes you a better [insert your job here]</h2>
<p class="wa-caption-xl" style="text-wrap: pretty">
User experience and accessibility isn't just for designers, it affects everyone. Understanding UX and Usability
can make you a better human.
</p>
<div class="wa-stack wa-gap-l">
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1728577740843-5f29c7586afe?q=80&w=4167&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="Avatar of author"
></wa-avatar>
<div class="wa-stack wa-gap-3xs">
<span class="wa-heading-m">Earl Tyler</span>
<span class="wa-caption-l wa-cluster wa-gap-xs"
><span>Published</span>
<wa-format-date
month="long"
day="numeric"
year="numeric"
date="2020-07-15T09:17:00-04:00"
></wa-format-date
></span>
</div>
</div>
<div class="wa-cluster wa-gap-2xs">
<wa-tag size="small" pill>Design</wa-tag>
<wa-tag size="small" pill>UX</wa-tag>
<wa-tag size="small" pill>Usability</wa-tag>
<wa-tag size="small" pill>Accessibility</wa-tag>
</div>
</div>
</div>
<div class="wa-frame wa-border-radius-l">
<img
src="https://images.unsplash.com/photo-1461709444300-a6217cec3dff?q=80&w=5346&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Five people's hands delicately holding colorful autumn leaves"
/>
</div>
</div>
</div>
```

View File

@@ -1,257 +0,0 @@
---
title: Post List
description: 'Organize and showcase content in a way that helps users discover, browse, and engage with articles.'
parent: blog-news
tags: blog-news
---
## Text Based
```html {.example}
<div class="wa-stack wa-gap-2xl" style="max-width: 60ch; margin: 0 auto;">
<div class="wa-split">
<h2 class="wa-heading-l">Trending Articles</h2>
<span class="wa-cluster">
<wa-icon name="search"></wa-icon>
<a href="#" class="wa-link-plain">See all</a>
</span>
</div>
<article class="wa-stack wa-gap-s">
<section class="wa-stack wa-gap-xs">
<h3 class="wa-heading-m"><a href="#" class="wa-link-plain">Worst Idioms</a></h3>
<span class="wa-caption-m">by <strong><em><a href="#">Paisley Darts</a></em></strong> • 4 min</span>
</section>
<p>"You can't have your cake and eat it too"... This one needs to be buried in a shallow grave.</p>
<a href="#" class="wa-cluster wa-gap-2xs"><span>Read More</span><wa-icon name="angle-right"></wa-icon></a>
<wa-divider></wa-divider>
</article>
<article class="wa-stack wa-gap-s">
<section class="wa-stack wa-gap-xs">
<h3 class="wa-heading-m">
<a href="#" class="wa-link-plain">Boost Your Productivity with These 5 Simple Habits</a>
</h3>
<span class="wa-caption-m">by <strong><em><a href="#">Michael Sur</a></em></strong> • 3 min</span>
</section>
<p>Small changes, big results—master the art of productivity in your daily routine.</p>
<a href="#" class="wa-cluster wa-gap-2xs"><span>Read More</span><wa-icon name="angle-right"></wa-icon></a>
<wa-divider></wa-divider>
</article>
<article class="wa-stack wa-gap-s">
<section class="wa-stack wa-gap-xs">
<h3 class="wa-heading-m">
<a href="#" class="wa-link-plain">Why Sustainable Fashion is the Future of the Industry</a>
</h3>
<span class="wa-caption-m">by <strong><em><a href="#">Stacy Magnolia</a></em></strong> • 7 min</span>
</section>
<p>From eco-friendly materials to ethical brands, sustainability is shaping the way we dress.</p>
<a href="#" class="wa-cluster wa-gap-2xs"><span>Read More</span><wa-icon name="angle-right"></wa-icon></a>
<wa-divider></wa-divider>
</article>
</div>
```
## Single Column with Images
```html {.example}
<div class="wa-stack" style="max-width: 78ch; margin: 0 auto;">
<div class="wa-split">
<h2 class="wa-heading-l">Trending Articles</h2>
<span class="wa-cluster">
<wa-icon name="search"></wa-icon>
<a href="#" class="wa-link-plain">See all</a>
</span>
</div>
<div class="wa-stack">
<article class="wa-flank:end wa-align-items-center">
<div class="wa-stack wa-gap-s wa-align-items-start">
<h3 class="wa-heading-m"><a href="#" class="wa-link-plain">Worst Idioms <span class="wa-caption-s">4 min</span></a></h3>
<div class="wa-stack wa-gap-2xs">
<p class="wa-caption-l">
"You can't have your cake and eat it too"... This one needs to be buried in a shallow grave.
</p>
<span class="wa-caption-m">by<a href="#"><strong><em> Paisley Darts</em></strong></a></span>
</div>
<wa-tag size="small" appearance="filled">Opinion</wa-tag>
</div>
<div class="wa-frame wa-border-radius-m" style="width: 10ch;">
<img
src="https://images.unsplash.com/photo-1720170060678-7c30a36937cd?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
</article>
<wa-divider></wa-divider>
<article class="wa-flank:end wa-align-items-center">
<div class="wa-stack wa-gap-s wa-align-items-start">
<h3 class="wa-heading-m">
<a href="#" class="wa-link-plain">Boost Your Productivity with These 5 Simple Habits <span class="wa-caption-s">3 min</span></a>
</h3>
<div class="wa-stack wa-gap-2xs">
<p class="wa-caption-l">"Small changes, big results—master the art of productivity in your daily routine.</p>
<span class="wa-caption-m">by<a href="#"><strong><em> Michael Sur</em></strong></a></span>
</div>
<div class="wa-cluster">
<wa-tag size="small" appearance="filled">Self Improvement</wa-tag>
</div>
</div>
<div class="wa-frame wa-border-radius-m" style="width: 10ch;">
<img
src="https://images.unsplash.com/photo-1507099985932-87a4520ed1d5?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
</article>
<wa-divider></wa-divider>
<article class="wa-flank:end wa-align-items-center">
<div class="wa-stack wa-gap-s wa-align-items-start">
<h3 class="wa-heading-m">
<a href="#" class="wa-link-plain">Sustainable Fashion Is the Future of the Industry <span class="wa-caption-s">7 min</span></a>
</h3>
<div class="wa-stack wa-gap-2xs">
<p class="wa-caption-l">
From eco-friendly materials to ethical brands, sustainability is shaping the way we dress.
</p>
<span class="wa-caption-m">by<a href="#"><strong><em> Stacy Magnolia</em></strong></a></span>
</div>
<div class="wa-cluster wa-gap-xs">
<wa-tag size="small" appearance="filled">Style</wa-tag
><wa-tag size="small" appearance="filled">Environmental</wa-tag>
</div>
</div>
<div class="wa-frame wa-border-radius-m" style="width: 10ch;">
<img
src="https://images.unsplash.com/photo-1631775512414-160ae648c209?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
</article>
<wa-divider></wa-divider>
<article class="wa-flank:end wa-align-items-center">
<div class="wa-stack wa-gap-s wa-align-items-start">
<h3 class="wa-heading-m"><a href="#" class="wa-link-plain">The Power of Mindfulness <span class="wa-caption-s">5 min</span></a></h3>
<div class="wa-stack wa-gap-2xs">
<p class="wa-caption-l">Discover how being present in the moment can lead to lasting mental well being.</p>
<span class="wa-caption-m">by<a href="#"><strong><em> Desean Ivy</em></strong></a></span>
</div>
<div class="wa-cluster wa-gap-xs">
<wa-tag size="small" appearance="filled">Meditation</wa-tag
><wa-tag size="small" appearance="filled">Self Care</wa-tag>
</div>
</div>
<div class="wa-frame wa-border-radius-m" style="width: 10ch;">
<img
src="https://images.unsplash.com/photo-1591228127791-8e2eaef098d3?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
</article>
<wa-divider></wa-divider>
</div>
</div>
```
## With Image Card
```html {.example}
<div class="wa-stack wa-align-items-center" style="max-width: 105ch; margin: 0 auto;">
<h2 class="wa-heading-l">Trending Articles</h2>
<wa-input placeholder="Search Articles">
<wa-icon name="search" slot="suffix"></wa-icon>
</wa-input>
<div class="wa-grid" style="--min-column-size: 40ch;">
<a href="#" class="wa-link-plain">
<wa-card with-image style="height: 100%">
<img
slot="media"
src="https://images.unsplash.com/photo-1720170060678-7c30a36937cd?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt=""
/>
<div class="wa-stack">
<h2 class="wa-heading-m">Worst Idioms</h2>
<p class="wa-caption-l">
"You can't have your cake and eat it too"... This one needs to be buried in a shallow grave.
</p>
<div class="wa-cluster wa-gap-s">
<wa-avatar
image="https://images.unsplash.com/photo-1522075469751-3a6694fb2f61?q=80&w=2680&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="author avatar"
></wa-avatar>
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Paisley Darts</span>
<wa-format-date class="wa-caption-s" month="long" day="numeric" date="2020-07-08T09:17:00-04:00"></wa-format-date>
</div>
</div>
</div>
</wa-card>
</a>
<a href="#" class="wa-link-plain">
<wa-card with-image style="height: 100%">
<img
slot="media"
src="https://images.unsplash.com/photo-1507099985932-87a4520ed1d5?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt=""
/>
<div class="wa-stack">
<h2 class="wa-heading-m">Boost Your Productivity with These 5 Simple Habits</h2>
<p class="wa-caption-l">Small changes, big results—master the art of productivity in your daily routine.</p>
<div class="wa-cluster wa-gap-s">
<wa-avatar
image="https://images.unsplash.com/photo-1535713875002-d1d0cf377fde?q=80&w=2680&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="author avatar"
></wa-avatar>
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Michael Sur</span>
<wa-format-date class="wa-caption-s" month="long" day="numeric" date="2020-06-20T09:17:00-04:00"></wa-format-date>
</div>
</div>
</div>
</wa-card>
</a>
<a href="#" class="wa-link-plain">
<wa-card with-image style="height: 100%">
<img
slot="media"
src="https://images.unsplash.com/photo-1631775512414-160ae648c209?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt=""
/>
<div class="wa-stack">
<h2 class="wa-heading-m">Sustainable Fashion Is the Future of the Industry</h2>
<p class="wa-caption-l">
From eco-friendly materials to ethical brands, sustainability is shaping the way we dress.
</p>
<div class="wa-cluster wa-gap-s">
<wa-avatar
image="https://images.unsplash.com/photo-1586297135537-94bc9ba060aa?q=80&w=2680&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="author avatar"
></wa-avatar>
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Stacy Magnolia</span>
<wa-format-date class="wa-caption-s" month="long" day="numeric" date="2020-05-03T09:17:00-04:00"></wa-format-date>
</div>
</div>
</div>
</wa-card>
</a>
<a href="#" class="wa-link-plain">
<wa-card with-image style="height: 100%">
<img
slot="media"
src="https://images.unsplash.com/photo-1591228127791-8e2eaef098d3?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt=""
/>
<div class="wa-stack">
<h2 class="wa-heading-m">The Power of Mindfulness</h2>
<p class="wa-caption-l">Discover how being present in the moment can lead to lasting mental well being.</p>
<div class="wa-cluster wa-gap-s">
<wa-avatar
image="https://images.unsplash.com/photo-1633332755192-727a05c4013d?q=80&w=2680&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
label="author avatar"
></wa-avatar>
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Desean Ivy</span>
<wa-format-date class="wa-caption-s" month="long" day="numeric" date="2020-04-12T09:17:00-04:00"></wa-format-date>
</div>
</div>
</div>
</wa-card>
</a>
</div>
<a href="#" class="wa-link-plain" style="text-align: center;">See All</a>
</div>
```

View File

@@ -1,130 +0,0 @@
---
title: Social Share
description: 'Allow users to easily share content with social networks and platform.'
parent: blog-news
tags: blog-news
---
## Horizontal
```html{.example}
<wa-card style="max-width: fit-content; margin: 0 auto;">
<div class="wa-stack">
<span class="wa-heading-s">Share Video</span>
<div class="wa-cluster">
<span class="wa-align-items-center wa-stack wa-gap-2xs">
<wa-icon-button style="font-size: var(--wa-font-size-2xl);" name="code" label="Embed video" href="#" target="_blank"></wa-icon-button>
<span class="wa-caption-s">Embed</span>
</span>
<span class="wa-align-items-center wa-stack wa-gap-2xs">
<wa-icon-button style="font-size: var(--wa-font-size-2xl);" name="facebook" family="brands" label="Share on Facebook" href="#" target="_blank"></wa-icon-button>
<span class="wa-caption-s">Facebook</span>
</span>
<span class="wa-align-items-center wa-stack wa-gap-2xs">
<wa-icon-button style="font-size: var(--wa-font-size-2xl);" name="bluesky" family="brands" label="Share on Bluesky" href="#" target="_blank"></wa-icon-button>
<span class="wa-caption-s">Bluesky</span>
</span>
<span class="wa-align-items-center wa-stack wa-gap-2xs">
<wa-icon-button style="font-size: var(--wa-font-size-2xl);" name="linkedin" family="brands" label="Share on LinkedIn" href="#" target="_blank"></wa-icon-button>
<span class="wa-caption-s">LinkedIn</span>
</span>
<span class="wa-align-items-center wa-stack wa-gap-2xs">
<wa-icon-button style="font-size: var(--wa-font-size-2xl);" name="envelope-open" label="Share with email" href="#" target="_blank"></wa-icon-button>
<span class="wa-caption-s">Email</span>
</span>
</div>
<wa-button appearance="outlined">
<wa-icon slot="prefix" name="link"></wa-icon>
Copy Link
</wa-button>
</div>
</wa-card>
```
## Vertical
```html{.example}
<wa-card class="wa-border-radius-pill" style="max-width: 8ch; margin: 0 auto;">
<div class="wa-stack">
<span class="wa-align-items-center wa-stack wa-gap-2xs">
<wa-icon-button style="font-size: var(--wa-font-size-2xl);" name="code" label="Embed video" href="#" target="_blank"></wa-icon-button>
<span class="wa-caption-s">Embed</span>
</span>
<span class="wa-align-items-center wa-stack wa-gap-2xs">
<wa-icon-button style="font-size: var(--wa-font-size-2xl);" name="facebook" family="brands" label="facebook" href="#" target="_blank"></wa-icon-button>
<span class="wa-caption-s">Facebook</span>
</span>
<span class="wa-align-items-center wa-stack wa-gap-2xs">
<wa-icon-button style="font-size: var(--wa-font-size-2xl);" name="bluesky" family="brands" label="bluesky" href="#" target="_blank"></wa-icon-button>
<span class="wa-caption-s">Bluesky</span>
</span>
<span class="wa-align-items-center wa-stack wa-gap-2xs">
<wa-icon-button style="font-size: var(--wa-font-size-2xl);" name="linkedin" family="brands" label="LinkedIn" href="#" target="_blank"></wa-icon-button>
<span class="wa-caption-s">LinkedIn</span>
</span>
<span class="wa-align-items-center wa-stack wa-gap-2xs">
<wa-icon-button style="font-size: var(--wa-font-size-2xl);" name="envelope-open" label="email" href="#" target="_blank"></wa-icon-button>
<span class="wa-caption-s">Email</span>
</span>
</div>
</wa-card>
```
## With Image Card
```html {.example}
<wa-card with-image style="max-width: 45ch; margin: 0 auto;">
<img
slot="media"
src="https://images.unsplash.com/photo-1578269174936-2709b6aeb913?q=80&w=2671&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Super special awesome trophy"
/>
<div class="wa-stack wa-align-items-center">
<div class="wa-stack wa-gap-2xs wa-align-items-center">
<h2 class="wa-heading-l">Flawless!</h2>
<span class="wa-caption-l"> 10 of 10</span>
</div>
<p style="text-align: center;">
You got a perfect score in this section. Tell your friends, family, really... just anyone who will listen.
</p>
<div class="wa-cluster" style="margin-top: var(--wa-font-size-xl);">
<wa-icon-button
slot="icon"
style="font-size: var(--wa-font-size-2xl);"
name="facebook"
family="brands"
label="Share on Facebook"
href="#"
target="_blank"
></wa-icon-button>
<wa-icon-button
slot="icon"
style="font-size: var(--wa-font-size-2xl);"
name="bluesky"
family="brands"
label="Share on Bluesky"
href="#"
target="_blank"
></wa-icon-button>
<wa-icon-button
slot="icon"
style="font-size: var(--wa-font-size-2xl);"
name="instagram"
family="brands"
label="Share on Instagram"
href="#"
target="_blank"
></wa-icon-button>
<wa-icon-button
slot="icon"
style="font-size: var(--wa-font-size-2xl);"
name="linkedin"
family="brands"
label="Share on LinkedIn"
href="#"
target="_blank"
></wa-icon-button>
</div>
</div>
</wa-card>
```

View File

@@ -1,10 +0,0 @@
---
title: Business
description: TODO
unpublished: true
isPro: true
---
TODO Page Description
## Examples

View File

@@ -1,84 +0,0 @@
---
title: Category Filter
description: 'Helps the user find the right products with filters to refine search results by specific attributes.'
icon: checkbox
isPro: true
---
## Sidebar with Checkboxes & Expandable Filters
```html {.example}
<h1>New Arrivals</h1>
<div class="wa-flank wa-align-items-start" style="--flank-size: 200px;">
<form class="wa-stack">
<wa-checkbox checked>All Products</wa-checkbox>
<wa-checkbox>Sale</wa-checkbox>
<wa-checkbox>Travel</wa-checkbox>
<wa-checkbox>Organization</wa-checkbox>
<wa-checkbox>Accessories</wa-checkbox>
<wa-details summary="Color" open>
<div class="wa-stack">
<wa-checkbox>White</wa-checkbox>
<wa-checkbox>Beige</wa-checkbox>
<wa-checkbox>Blue</wa-checkbox>
<wa-checkbox>Brown</wa-checkbox>
<wa-checkbox>Green</wa-checkbox>
</div>
</wa-details>
<wa-details summary="Category">
<div class="wa-stack">
<wa-checkbox>Outdoor</wa-checkbox>
<wa-checkbox>Indoor</wa-checkbox>
<wa-checkbox>All Weather</wa-checkbox>
</div>
</wa-details>
<wa-details summary="Size">
<div class="wa-stack">
<wa-checkbox>Small</wa-checkbox>
<wa-checkbox>Medium</wa-checkbox>
<wa-checkbox>Large</wa-checkbox>
<wa-checkbox>XL</wa-checkbox>
<wa-checkbox>XXL</wa-checkbox>
</div>
</wa-details>
</form>
<div class="wa-placeholder"></div>
</div>
</div>
```
## Sidebar with Dropdowns
```html {.example}
<h1>New Arrivals</h1>
<div class="wa-flank wa-align-items-start">
<div class="wa-stack">
<wa-select label="Product Type" placeholder="Products" value="all-products">
<wa-option value="all-products">All Products</wa-option>
<wa-option value="sale">Sale</wa-option>
<wa-option value="travel">Travel</wa-option>
<wa-option value="organization">Organization</wa-option>
<wa-option value="accessories">Accessories</wa-option>
</wa-select>
<wa-divider></wa-divider>
<wa-select label="Color" placeholder="Color" value="black" multiple>
<wa-option value="black">Black</wa-option>
<wa-option value="white">White</wa-option>
<wa-option value="gray">Gray</wa-option>
</wa-select>
<wa-select label="Category" placeholder="Category" value="outdoor" multiple>
<wa-option value="outdoor">Outdoor</wa-option>
<wa-option value="indoor">Indoor</wa-option>
<wa-option value="all-weather">All Weather</wa-option>
</wa-select>
<wa-select label="Size" placeholder="Size" value="xl xxl" multiple>
<wa-option value="s">Small</wa-option>
<wa-option value="m">Medium</wa-option>
<wa-option value="l">Large</wa-option>
<wa-option value="xl">XL</wa-option>
<wa-option value="xxl">XXL</wa-option>
</wa-select>
</div>
<div class="wa-placeholder"></div>
</div>
```

View File

@@ -1,166 +0,0 @@
---
title: Category Preview
description: 'Help shoppers discover your product offerings with showcases of product categories.'
icon: preview
isPro: true
---
## Split with Image Grid
```html {.example}
<div class="wa-flank wa-align-items-start" style="--flank-size: 20rem;">
<div class="wa-stack wa-gap-2xl">
<h2 class="wa-heading-xl">Casual Collection</h2>
<p class="wa-body-s">
Look good &mdash; without looking like you're trying too hard. Our casual collection includes laid back styles
that work in <em>almost</em> any situation.
</p>
<wa-button>View the Collection</wa-button>
</div>
<div class="wa-stack">
<div class="wa-frame:landscape wa-border-radius-s">
<img
src="https://images.unsplash.com/photo-1544441893-675973e31985?q=80&w=2340&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="An analog watch, cotton pants, crew neck tee, and pair of tennis shoes (Photograph by Mnz)"
/>
</div>
<div class="wa-grid">
<div class="wa-frame:landscape wa-border-radius-s">
<img
src="https://images.unsplash.com/photo-1548768041-2fceab4c0b85?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Stack of three folded solid color tees (Photograph by Mnz)"
/>
</div>
<div class="wa-frame:landscape wa-border-radius-s">
<img
src="https://images.unsplash.com/photo-1544441892-794166f1e3be?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Pair of bright white tennis shoes(Photograph by Mnz)"
/>
</div>
</div>
</div>
</div>
```
## Columns with Tall Images
```html {.example}
<div class="wa-stack">
<h2 class="wa-heading-xl">Shop by Category</h2>
<div class="wa-grid">
<a href="" class="wa-stack wa-link-plain">
<div class="wa-frame:portrait wa-border-radius-s">
<img
src="https://uploads.webawesome.com/organization.jpg"
alt="Inside of a closet filled with clothes on wooden hangers and integrated shelving with shoes"
/>
</div>
<span class="wa-caption-xl">Organization</span>
</a>
<a href="" class="wa-stack wa-link-plain">
<div class="wa-frame:portrait wa-border-radius-s">
<img
src="https://uploads.webawesome.com/bags.jpg"
alt="Young person hugging a small floral patterned book bag between their arms"
/>
</div>
<span class="wa-caption-xl">Bags</span>
</a>
<a href="" class="wa-stack wa-link-plain">
<div class="wa-frame:portrait wa-border-radius-s">
<img
src="https://uploads.webawesome.com/outdoor-2.jpg"
alt="Person in a mountain clearing wearing a waterproof hooded windbreaker in black and orange"
/>
</div>
<span class="wa-caption-xl">Outdoor</span>
</a>
</div>
</div>
```
## Columns with Cards
```html {.example}
<div class="wa-stack">
<div class="wa-split">
<h2 class="wa-heading-xl">Shop by Category</h2>
<a href="" class="wa-cluster">
<span>Browse All Categories</span>
<wa-icon name="arrow-right"></wa-icon>
</a>
</div>
<div class="wa-grid">
<a href="" class="wa-link-plain">
<wa-card style="height: 100%">
<img
slot="media"
src="https://img.fortawesome.com/cfa83f3c/outdoor-3x.jpg"
alt="Two hikers wearing long canvas pants, weatherproof jackets, and backpacks"
/>
<div class="wa-stack wa-gap-xs">
<span class="wa-heading-m">Outdoor</span>
<p class="wa-caption-m">Durable canvas gear for all conditions.</p>
</div>
</wa-card>
</a>
<a href="" class="wa-link-plain">
<wa-card style="height: 100%">
<img
slot="media"
src="https://img.fortawesome.com/cfa83f3c/home.jpg"
alt="Woman sitting on a couch in a bright home, wearing a thick knit sweater"
/>
<div class="wa-stack wa-gap-xs">
<span class="wa-heading-m">Home</span>
<p class="wa-caption-m">Cozy up on the couch and relax in soft cotton.</p>
</div>
</wa-card>
</a>
<a href="" class="wa-link-plain">
<wa-card style="height: 100%">
<img
slot="media"
src="https://img.fortawesome.com/cfa83f3c/fitness.jpg"
alt="Athlete training in fitted active wear tee and shorts"
/>
<div class="wa-stack wa-gap-xs">
<span class="wa-heading-m">Active</span>
<p class="wa-caption-m">Get fit in style with breathable poly blends.</p>
</div>
</wa-card>
</a>
</div>
</div>
```
## Square Image Grid
```html {.example}
<div class="wa-stack wa-gap-2xl">
<div class="wa-stack wa-gap-xs wa-align-items-center">
<h2 class="wa-heading-xl">New Arrivals</h2>
<p class="wa-caption-l">Explore brand new furniture to accentuate your home aesthetic &mdash; just for you.</p>
</div>
<div class="wa-grid">
<div class="wa-stack">
<div class="wa-frame wa-border-radius-m">
<img
src="https://uploads.webawesome.com/indoor-furniture.jpg"
alt="Sunny room with a mid-century modern couch, accent chair, and elegant lamp"
/>
</div>
<wa-button appearance="outlined">View Indoor Furniture</wa-button>
</div>
<div class="wa-stack">
<div class="wa-frame wa-border-radius-m">
<img
src="https://uploads.webawesome.com/outdoor-furniture.jpg"
alt="Covered patio with rustic wooden cabinets, writing desk, and stool"
/>
</div>
<wa-button appearance="outlined">View Outdoor Furniture</wa-button>
</div>
</div>
</div>
```

View File

@@ -1,262 +0,0 @@
---
title: Checkout Form
description: 'Let shoppers checkout with ease with streamlined forms to capture shipping and payment info.'
isPro: true
---
## Full Form with Order Summary Card
```html {.example}
<div class="wa-grid wa-gap-3xl">
<div class="wa-stack">
<h4>Contact</h4>
<wa-input type="email" label="Email Address"></wa-input>
<wa-divider></wa-divider>
<h4>Shipping</h4>
<wa-select label="Country" value="us">
<wa-option value="ca">Canada</wa-option>
<wa-option value="mx">Mexico</wa-option>
<wa-option value="us">United States</wa-option>
</wa-select>
<div class="wa-grid">
<wa-input label="First Name"></wa-input>
<wa-input label="Last Name"></wa-input>
</div>
<wa-input label="Company"></wa-input>
<wa-input label="Address"></wa-input>
<div class="wa-grid" style="--min-column-size: 10ch;">
<wa-input label="City"></wa-input>
<wa-input label="State"></wa-input>
<wa-input label="Postal Code"></wa-input>
</div>
<wa-input label="Phone"></wa-input>
<wa-divider></wa-divider>
<wa-radio-group label="Shipping Method" name="shipping-method" value="standard" orientation="horizontal">
<wa-radio value="standard" hint="7-10 business days">Standard</wa-radio>
<wa-radio value="express" hint="2-5 business days">Express</wa-radio>
</wa-radio-group>
<wa-divider></wa-divider>
<h4>Payment</h4>
<wa-radio-group label="Payment Method" name="payment-method" value="credit" orientation="horizontal">
<wa-radio value="credit">Credit Card</wa-radio>
<wa-radio value="paypal">Paypal</wa-radio>
</wa-radio-group>
<wa-input label="Card Number"></wa-input>
<wa-input label="Name on Card"></wa-input>
<div class="wa-grid">
<wa-input label="Expiration Date" placeholder="MM/YY"></wa-input>
<wa-input label="CVC"></wa-input>
</div>
</div>
<div class="wa-stack">
<h4>Order Summary</h4>
<wa-card>
<div class="wa-stack">
<div class="wa-flank wa-align-items-start" style="--flank-size: 7rem">
<div class="wa-frame wa-border-radius-s">
<img
src="https://images.unsplash.com/photo-1595950653106-6c9ebd614d3a?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w1OTAyOTl8MHwxfGFsbHx8fHx8fHx8fDE3MTg2NDM1MzB8&ixlib=rb-4.0.3&q=80&w=1080"
alt=""
/>
</div>
<div class="wa-stack wa-gap-xs">
<div class="wa-split">
<span class="wa-heading-s">Dolce Runners</span>
<wa-icon-button name="trash" label="Remove from cart"></wa-icon-button>
</div>
<span class="wa-caption-m">Cream/Seafoam</span>
<span class="wa-caption-m">12.5</span>
<div class="wa-split">
<span>$135.00</span>
<wa-select value="1" size="small" style="max-width: 8ch">
<wa-option value="1">1</wa-option>
<wa-option value="2">2</wa-option>
<wa-option value="3">3</wa-option>
</wa-select>
</div>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-flank wa-align-items-start" style="--flank-size: 7rem">
<div class="wa-frame wa-border-radius-s">
<img
src="https://images.unsplash.com/photo-1514989940723-e8e51635b782?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w1OTAyOTl8MHwxfGFsbHx8fHx8fHx8fDE3MTg2NDM1Njh8&ixlib=rb-4.0.3&q=80&w=1080"
alt=""
/>
</div>
<div class="wa-stack wa-gap-xs">
<div class="wa-split">
<span class="wa-heading-s">Dunk High</span>
<wa-icon-button name="trash" label="Remove from cart"></wa-icon-button>
</div>
<span class="wa-caption-m">Sand/Amber/Black</span>
<span class="wa-caption-m">12.5</span>
<div class="wa-split">
<span>$180.00</span>
<wa-select value="1" size="small" style="max-width: 8ch">
<wa-option value="1">1</wa-option>
<wa-option value="2">2</wa-option>
<wa-option value="3">3</wa-option>
</wa-select>
</div>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-flank wa-align-items-start" style="--flank-size: 7rem">
<div class="wa-frame wa-border-radius-s">
<img
src="https://images.unsplash.com/photo-1606107557195-0e29a4b5b4aa?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w1OTAyOTl8MHwxfGFsbHx8fHx8fHx8fDE3MTg2NDM2MTF8&ixlib=rb-4.0.3&q=80&w=1080"
alt=""
/>
</div>
<div class="wa-stack wa-gap-xs">
<div class="wa-split">
<span class="wa-heading-s">NB Runner</span>
<wa-icon-button name="trash" label="Remove from cart"></wa-icon-button>
</div>
<span class="wa-caption-m">Forrest Green</span>
<span class="wa-caption-m">12.5</span>
<div class="wa-split">
<span>$48.99</span>
<wa-select value="1" size="small" style="max-width: 8ch">
<wa-option value="1">1</wa-option>
<wa-option value="2">2</wa-option>
<wa-option value="3">3</wa-option>
</wa-select>
</div>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-stack">
<div class="wa-split wa-caption-m">
<span>Subtotal</span>
<span>$363.99</span>
</div>
<div class="wa-split wa-caption-m">
<span>Shipping</span>
<span>FREE</span>
</div>
<div class="wa-split wa-heading-m">
<span>Total</span>
<span>$363.99</span>
</div>
</div>
<wa-divider></wa-divider>
<wa-button variant="brand">Confirm Order</wa-button>
</div>
</wa-card>
</div>
</div>
```
## Short Form with Order Summary
```html {.example}
<div class="wa-grid wa-gap-3xl">
<div class="wa-stack wa-gap-xl">
<h2>Payment</h2>
<wa-input type="email" label="Email" placeholder="ex. tanderson@metacortex.com">
<wa-icon slot="prefix" name="envelope"></wa-icon>
</wa-input>
<wa-input label="Card Number" placeholder="1234 1234 1234 1234">
<wa-icon slot="prefix" name="credit-card"></wa-icon>
</wa-input>
<div class="wa-grid" style="--min-column-size: 12ch">
<wa-input label="Expiration" placeholder="MM/YY">
<wa-icon slot="prefix" name="calendar"></wa-icon>
</wa-input>
<wa-input label="CVC" placeholder="CVC">
<wa-icon slot="prefix" name="lock"></wa-icon>
</wa-input>
</div>
<wa-input label="Cardholder Name" placeholder="Thomas Anderson">
<wa-icon slot="prefix" name="user"></wa-icon>
</wa-input>
<div class="wa-grid" style="--min-column-size: 12ch">
<wa-select label="Country" value="us">
<wa-icon slot="prefix" name="globe"></wa-icon>
<wa-option value="ca">Canada</wa-option>
<wa-option value="us">United States</wa-option>
<wa-option value="mx">Mexico</wa-option>
</wa-select>
<wa-input label="ZIP" placeholder="12345">
<wa-icon slot="prefix" name="location-dot"></wa-icon>
</wa-input>
</div>
<wa-switch checked>Sign me up for more offers from this store</wa-switch>
<wa-button variant="brand">Pay Now</wa-button>
</div>
<div class="wa-stack wa-gap-xl">
<h2>Order Summary</h2>
<div class="wa-split">
<div class="wa-cluster">
<div class="wa-frame wa-border-radius-m" style="max-width: 4rem">
<img
src="https://images.unsplash.com/photo-1618677366787-9727aacca7ea?q=80&w=3255&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Glasses with black wire frames and dark tinted, circular lenses (Photograph by Colin Lloyd)"
/>
</div>
<strong>Morpheus</strong>
</div>
<div class="wa-cluster">
<wa-input type="number" value="1" style="max-width: 5rem"></wa-input>
<span>$120.00</span>
</div>
</div>
<div class="wa-split">
<div class="wa-cluster">
<div class="wa-frame wa-border-radius-m" style="max-width: 4rem">
<img
src="https://images.unsplash.com/photo-1511499767150-a48a237f0083?q=80&w=3558&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Glasses with rose gold wire frames and green tinted, circular lenses (Photograph by Charles Deluvio)"
/>
</div>
<div class="wa-stack wa-gap-3xs">
<strong>Seraph</strong>
<em class="wa-caption-m">Tinted</em>
</div>
</div>
<div class="wa-cluster">
<wa-input type="number" value="1" style="max-width: 5rem"></wa-input>
<span>$180.00</span>
</div>
</div>
<div class="wa-split">
<div class="wa-cluster">
<div class="wa-frame wa-border-radius-m" style="max-width: 4rem">
<img
src="https://images.unsplash.com/photo-1547104442-a40f335740cb?q=80&w=3348&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Glasses with tortoise shell half frames and large, rounded lenses (Photograph by Sincerely Media)"
/>
</div>
<div class="wa-stack wa-gap-3xs">
<strong>Keymaker</strong>
<em class="wa-caption-m">Glossy</em>
</div>
</div>
<div class="wa-cluster">
<wa-input type="number" value="1" style="max-width: 5rem"></wa-input>
<span>$50.00</span>
</div>
</div>
<div class="wa-flank:end">
<wa-input placeholder="Discount code or gift card"></wa-input>
<wa-button appearance="filled">Apply</wa-button>
</div>
<div class="wa-stack wa-gap-s">
<div class="wa-split">
<span>Subtotal</span>
<strong>$530.00</strong>
</div>
<div class="wa-split">
<span>Shipping</span>
<span>$8.00</span>
</div>
<div class="wa-split">
<strong>Total</strong>
<strong>$538.00</strong>
</div>
</div>
</div>
</div>
```

View File

@@ -1,3 +0,0 @@
{
"tags": ["ecommerce"]
}

View File

@@ -1,146 +0,0 @@
---
title: Incentives
description: 'Encourage shoppers to buy your products with value propositions, discounts, and promotions.'
isPro: true
---
## 3 Column
```html {.example}
<div class="wa-gap-3xl wa-stack" style="max-width: 960px; margin: 0 auto;">
<div class="wa-align-items-center wa-grid">
<div>
<span class="wa-heading-xl">Unlock your Superpower</span>
<p class="wa-caption-l">
Web development is like a superpower—you can turn your ideas into actual products online, and learning it from
home means you dont need a fancy degree or expensive tuition to start building your future.
</p>
</div>
<div class="wa-frame wa-border-radius-l">
<img
src="https://images.unsplash.com/photo-1551981878-4c70c3e64135?q=80&w=2960&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
</div>
<div class="wa-grid">
<div class="wa-stack wa-gap-xs">
<wa-icon name="briefcase" variant="light" style="font-size: 32px;"></wa-icon>
<span class="wa-heading-s">Career Opportunities</span>
<p class="wa-caption-m">
Mastering web development can lead to high-paying jobs, freelancing gigs, or even launching your own business or
app.
</p>
</div>
<div class="wa-stack wa-gap-xs">
<wa-icon name="laptop-code" variant="light" style="font-size: 32px;"></wa-icon>
<span class="wa-heading-s">Flexibility of Online Learning</span>
<p class="wa-caption-m">
Perfect for people balancing school, work, or other responsibilities—no need to attend in-person classes
</p>
</div>
<div class="wa-stack wa-gap-xs">
<wa-icon name="palette" variant="light" style="font-size: 32px;"></wa-icon>
<span class="wa-heading-s">Creative & Practical Skillset</span>
<p class="wa-caption-m">
You can build real, functional things like personal portfolios, blogs, or web apps—and immediately see your
progress.
</p>
</div>
</div>
</div>
```
## 2 Column with Cards
```html {.example}
<div class="wa-grid" style="--min-column-size: 24ch;">
<wa-card>
<div class="wa-flank">
<div>
<wa-icon name="hands" style="font-size: 2.5rem;"></wa-icon>
</div>
<div class="wa-gap-s wa-stack">
<span class="wa-heading-m">Hands-on training</span>
<p class="wa-caption-l">Upskill effectively with AI-powered coding exercises, practice tests, and quizzes.</p>
</div>
</div>
</wa-card>
<wa-card>
<div class="wa-flank">
<div>
<wa-icon name="medal" style="font-size: 2.5rem;"></wa-icon>
</div>
<div class="wa-gap-s wa-stack">
<span class="wa-heading-m">Certification prep</span>
<p class="wa-caption-l">
Prep for industry-recognized certifications by solving real-world challenges and earn badges along the way
</p>
</div>
</div>
</wa-card>
<wa-card>
<div class="wa-flank">
<div>
<wa-icon name="chart-line" style="font-size: 2.5rem;"></wa-icon>
</div>
<div class="wa-gap-s wa-stack">
<div class="wa-split wa-gap-2xs">
<span class="wa-heading-m">Insights and analytics</span>
<wa-badge appearance="filled outlined" variant="warning">Pro Plan</wa-badge>
</div>
<p class="wa-caption-l">
Fast-track goals with advanced insights plus a dedicated customer success team to help drive effective
learning.
</p>
</div>
</div>
</wa-card>
<wa-card>
<div class="wa-flank">
<div>
<wa-icon name="puzzle-piece" style="font-size: 2.5rem;"></wa-icon>
</div>
<div class="wa-gap-s wa-stack">
<div class="wa-split wa-gap-2xs">
<span class="wa-heading-m">Customizable content</span>
<wa-badge appearance="filled outlined" variant="warning">Pro Plan</wa-badge>
</div>
<p class="wa-caption-l">
Create tailored learning paths for team and organization goals and even host your own content and resources.
</p>
</div>
</div>
</wa-card>
</div>
```
## 4 Column
```html {.example}
<div>
<div class="wa-grid" style="--min-column-size: 16ch;">
<div class="wa-stack wa-gap-xs">
<wa-icon family="duotone" name="magnifying-glass" style="font-size: var(--wa-font-size-2xl);"></wa-icon>
<span class="wa-heading-s">In-Demand Skills</span>
<p class="wa-caption-m">Learn skills that lead to well-paying jobs, freelance work, or remote opportunities.</p>
</div>
<div class="wa-stack wa-gap-xs">
<wa-icon family="duotone" name="chalkboard-user" style="font-size: var(--wa-font-size-2xl);"></wa-icon>
<span class="wa-heading-s">Learn Anytime, Anywhere</span>
<p class="wa-caption-m">
Flexible learning fits into any schedule—perfect for students, parents, or full-time workers.
</p>
</div>
<div class="wa-stack wa-gap-xs">
<wa-icon family="duotone" name="people-arrows" style="font-size: var(--wa-font-size-2xl);"></wa-icon>
<span class="wa-heading-s">Build and Launch Your Own Projects</span>
<p class="wa-caption-m">Youre not just learning theory—youre creating real, functional websites and apps.</p>
</div>
<div class="wa-stack wa-gap-xs">
<wa-icon family="duotone" name="code" style="font-size: var(--wa-font-size-2xl);"></wa-icon>
<span class="wa-heading-s">Low-Cost Entry</span>
<p class="wa-caption-m">You dont need a tech degree or expensive tools to get started</p>
</div>
</div>
</div>
```

View File

@@ -1,8 +0,0 @@
---
title: Ecommerce
description: Pre-built product overviews, shopping carts, and more to help you build high-converting storefronts.
parent: patterns
layout: overview
override:tags: []
isPro: false
---

View File

@@ -1,250 +0,0 @@
---
title: Order History
description: 'Empower your customers to view past purchases and track upcoming orders with comprehensive order histories.'
isPro: true
---
## List
```html {.example}
<div class="wa-stack wa-gap-2xl">
<h2>Order History</h2>
<p class="wa-caption-m">Check the status of recent orders, manage returns, and download invoices.</p>
<dl class="wa-split">
<span class="wa-stack wa-gap-0">
<dt>Order number</dt>
<dd>WU88191111</dd>
</span>
<span class="wa-stack wa-gap-0">
<dt>Date placed</dt>
<dd>January 22, 2021</dd>
</span>
<span class="wa-stack wa-gap-0">
<dt>Total amount</dt>
<dd>$590.00</dd>
</span>
<span class="wa-cluster">
<wa-button variant="neutral" appearance="outlined">View Order</wa-button>
<wa-button variant="neutral" appearance="outlined">View Invoice</wa-button>
</span>
</dl>
<wa-divider></wa-divider>
<div class="wa-flank" style="--flank-size: 12rem">
<div class="wa-frame wa-border-radius-s" style="aspect-ratio: 3 / 2">
<img src="https://img.fortawesome.com/cfa83f3c/light-fixtures.jpg" alt="" />
</div>
<div class="wa-stack">
<div class="wa-split">
<span><strong>Dome Light Fixtures</strong></span>
<span><strong>$215.00</strong></span>
</div>
<p class="wa-caption-m">
Illuminate your space with elegance and style with stunning Dome Light Fixtures. The shape of these lights
complements both modern and traditional interiors.
</p>
<div class="wa-split">
<wa-badge appearance="filled" variant="success">Delivered</wa-badge>
<div class="wa-cluster">
<wa-button size="small" appearance="plain" variant="neutral">View Product</wa-button>
<wa-button size="small" appearance="accent" variant="brand">Buy Again</wa-button>
</div>
</div>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-flank" style="--flank-size: 12rem">
<div class="wa-frame wa-border-radius-s" style="aspect-ratio: 3 / 2">
<img src="https://img.fortawesome.com/cfa83f3c/modern-chair.jpg" alt="" />
</div>
<div class="wa-stack">
<div class="wa-split">
<span><strong>Reading Chair</strong></span>
<span><strong>$115.00</strong></span>
</div>
<p class="wa-caption-m">
Add a pop of color and a touch of elegance to any room with our Reading Chair featuring vibrant yellow fabric
upholstery.
</p>
<div class="wa-split">
<wa-badge appearance="filled" variant="brand">Out for delivery</wa-badge>
<div class="wa-cluster">
<wa-button size="small" appearance="plain" variant="neutral">View Product</wa-button>
<wa-button size="small" appearance="accent" variant="brand">Buy Again</wa-button>
</div>
</div>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-flank" style="--flank-size: 12rem">
<div class="wa-frame wa-border-radius-s" style="aspect-ratio: 3 / 2">
<img src="https://img.fortawesome.com/cfa83f3c/sofa.jpg" alt="" />
</div>
<div class="wa-stack">
<div class="wa-split">
<span><strong>Custom Sofa</strong></span>
<span><strong>$260.00</strong></span>
</div>
<p class="wa-caption-m">
Experience luxury and comfort like never before with our Custom Sofa, designed to elevate any living space. This
sofa features exquisite velvet upholstery for an air of sophistication.
</p>
<div class="wa-split">
<wa-badge appearance="filled" variant="neutral">Preparing to ship</wa-badge>
<div class="wa-cluster">
<wa-button size="small" appearance="plain" variant="neutral">View Product</wa-button>
<wa-button size="small" appearance="accent" variant="brand">Buy Again</wa-button>
</div>
</div>
</div>
</div>
</div>
```
## Invoice Table
```html {.example}
<div class="wa-stack wa-gap-2xl">
<wa-callout appearance="filled" variant="neutral">
<div class="wa-flank:end wa-align-items-center">
<dl class="wa-grid">
<div class="wa-stack wa-gap-0">
<dt>Date Placed</dt>
<dd>
<wa-format-date date="2021-01-22" month="long" day="numeric" year="numeric"></wa-format-date>
</dd>
</div>
<div class="wa-stack wa-gap-0">
<dt>Order Number</dt>
<dd>WU88191111</dd>
</div>
<div class="wa-stack wa-gap-0">
<dt>Total Amount</dt>
<dd>$590.00</dd>
</div>
</dl>
<wa-button>View Invoice</wa-button>
</div>
</wa-callout>
<table>
<thead>
<tr>
<th>Product</th>
<th>Price</th>
<th>Status</th>
<th>Info</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="wa-cluster wa-align-items-start">
<div class="wa-frame:landscape wa-border-radius-s" style="max-width: 8rem">
<img src="https://img.fortawesome.com/cfa83f3c/light-fixtures.jpg" alt="" />
</div>
<span>Dome Light Fixtures</span>
</div>
</td>
<td>$215.00</td>
<td>Delivered Jan 25, 2021</td>
<td><a href="">View</a></td>
</tr>
<tr>
<td>
<div class="wa-cluster wa-align-items-start">
<div class="wa-frame:landscape wa-border-radius-s" style="max-width: 8rem">
<img src="https://img.fortawesome.com/cfa83f3c/modern-chair.jpg" alt="" />
</div>
<span>Reading Chair</span>
</div>
</td>
<td>$115.00</td>
<td>Delivered Jan 25, 2021</td>
<td><a href="">View</a></td>
</tr>
<tr>
<td>
<div class="wa-cluster wa-align-items-start">
<div class="wa-frame:landscape wa-border-radius-s" style="max-width: 8rem">
<img src="https://img.fortawesome.com/cfa83f3c/sofa.jpg" alt="" />
</div>
<span>Custom Sofa</span>
</div>
</td>
<td>$260.00</td>
<td>Delivered Jan 25, 2021</td>
<td><a href="">View</a></td>
</tr>
</tbody>
</table>
</div>
```
## Card separated
```html {.example}
<div class="wa-stack" style="max-width: 60ch; margin: 0 auto;">
<wa-card>
<div class="wa-flank:end">
<div class="wa-stack">
<div class="wa-cluster wa-gap-xs">
<wa-avatar shape="rounded" label="Avatar with an image icon">
<wa-icon slot="icon" family="brands" name="amazon"></wa-icon>
</wa-avatar>
<span class="wa-heading-s">Amazon</span>
</div>
<div class="wa-stack wa-gap-xs">
<span>Expected Tomorrow</span>
<wa-progress-bar value="75" label="delivery progress" style="height: 0.5rem;"></wa-progress-bar>
</div>
</div>
<div class="wa-frame wa-border-radius-m" style="max-width: 6rem;">
<img
src="https://images.unsplash.com/photo-1589810635657-232948472d98?q=80&w=2680&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
</div>
</wa-card>
<wa-card>
<div class="wa-flank:end">
<div class="wa-stack">
<div class="wa-cluster wa-gap-xs">
<wa-avatar shape="rounded" label="Avatar with an image icon">
<wa-icon slot="icon" family="sharp" variant="light" name="shirt"></wa-icon>
</wa-avatar>
<span class="wa-heading-s">T-shirt Depot</span>
</div>
<div class="wa-stack wa-gap-xs">
<span>Out for Delivery</span>
<wa-progress-bar value="95" label="delivery progress" style="height: 0.5rem;"></wa-progress-bar>
</div>
</div>
<div class="wa-frame wa-border-radius-m" style="max-width: 6rem;">
<img
src="https://images.unsplash.com/photo-1576566588028-4147f3842f27?q=80&w=2400&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
</div>
</wa-card>
<wa-card>
<div class="wa-flank:end">
<div class="wa-stack">
<div class="wa-cluster wa-gap-xs">
<wa-avatar shape="rounded" label="Avatar with an image icon">
<wa-icon slot="icon" variant="duotone" name="gamepad-modern"></wa-icon>
</wa-avatar>
<span class="wa-heading-s">Game Theory</span>
</div>
<div class="wa-stack wa-gap-xs">
<span>Shipping Soon</span>
<wa-progress-bar value="15" label="delivery progress" style="height: 0.5rem;"></wa-progress-bar>
</div>
</div>
<div class="wa-frame wa-border-radius-m" style="max-width: 6rem;">
<img
src="https://images.unsplash.com/photo-1627421383054-488d9c9828f5?q=80&w=2960&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
/>
</div>
</div>
</wa-card>
</div>
```

View File

@@ -1,284 +0,0 @@
---
title: Order Summary
description: 'Give shoppers confidence in their purchases with summaries of everything included in their order.'
isPro: true
---
## Simple
```html {.example}
<div class="wa-stack wa-gap-xl">
<wa-callout variant="success">
<em>Payment Successful</em>
<wa-icon slot="icon" name="circle-check"></wa-icon>
</wa-callout>
<wa-card>
<div class="wa-stack wa-gap-xl">
<h2>Thank you for ordering from us!</h2>
<p class="wa-caption-l">We're processing your order now. A confirmation email will be sent to you momentarily!</p>
<dl class="wa-cluster">
<dt>Order #</dt>
<dd>49548790-24545</dd>
</dl>
<wa-divider></wa-divider>
<div class="wa-flank:end wa-align-items-start wa-gap-xl" style="--flank-size: 14em">
<div class="wa-stack wa-gap-xl">
<ul class="wa-stack wa-gap-xl">
<li class="wa-flank wa-align-items-start">
<div class="wa-frame wa-border-radius-s">
<img src="https://uploads.webawesome.com/vase-1.jpg" alt="" />
</div>
<div class="wa-split">
<span class="wa-heading-s">Spotted Flower Pot</span>
<span>$75.00</span>
</div>
</li>
<wa-divider></wa-divider>
<li class="wa-flank wa-align-items-start">
<div class="wa-frame wa-border-radius-s">
<img src="https://uploads.webawesome.com/decorative-vase.jpg" alt="" />
</div>
<div class="wa-split">
<span class="wa-heading-s">Decorative Vase</span>
<span>$51.00</span>
</div>
</li>
</ul>
<wa-divider></wa-divider>
<dl class="wa-stack wap-gap-2xs wa-caption-l">
<div class="wa-split">
<dt>Subtotal</dt>
<dd>$126.00</dd>
</div>
<div class="wa-split">
<dt>Shipping</dt>
<dd>$8.00</dd>
</div>
<div class="wa-split">
<dt>Taxes</dt>
<dd>$6.40</dd>
</div>
<div class="wa-split">
<dt>Total</dt>
<dd>$140.40</dd>
</div>
</dl>
</div>
<wa-callout variant="neutral" appearance="filled">
<dl class="wa-stack" style="margin: 0">
<dt>Shipping Address</dt>
<dd>
<address class="wa-stack wa-gap-2xs">
<span>Donna Noble</span>
<span>56 Front Street</span>
<span>Las Cruces, NM 56929</span>
</address>
</dd>
<dt>Payment Information</dt>
<dd class="wa-flank wa-gap-s">
<wa-icon label="Visa" class="wa-body-xl" family="brands" name="cc-visa" style="color: #224DBA;"></wa-icon>
<span>Ending with 9065</span>
</dd>
</dl>
</wa-callout>
</div>
</div>
</wa-card>
<wa-button size="large" variant="brand" appearance="plain">
<wa-icon slot="suffix" name="arrow-right" variant="solid"></wa-icon>
Continue Shopping
</wa-button>
</div>
```
## With Details
```html {.example}
<div class="wa-stack">
<h2>Order Details</h2>
<div class="wa-split">
<div class="wa-cluster">
<span
>Order placed
<wa-format-date date="2025-02-26T09:00:00-04:00" month="long" day="numeric" year="numeric"></wa-format-date
></span>
<wa-divider orientation="vertical"></wa-divider>
<span>Order # 45646456-4656-4542</span>
</div>
<wa-button size="small" appearance="outlined" pill>View Invoice</wa-button>
</div>
<wa-card>
<div class="wa-split wa-align-items-start">
<div class="wa-stack">
<h3 class="wa-heading-s">Shipping Address</h3>
<address class="wa-stack wa-gap-xs wa-caption-m">
<span>Johnny Blaze</span>
<span>200 Park Avenue</span>
<span>Manhattan, NY 45789-3412</span>
<span>United States</span>
</address>
<wa-button size="small" appearance="outlined" pill>Change</wa-button>
</div>
<div class="wa-stack">
<h3 class="wa-heading-s">Payment Method</h3>
<div class="wa-flank wa-gap-s">
<wa-icon class="wa-body-xl" family="brands" name="cc-visa" style="color: #224DBA;"></wa-icon>
<span class="wa-caption-m">Visa ending in 9542</span>
</div>
</div>
<div class="wa-stack">
<h3 class="wa-heading-s">Order Summary</h3>
<dl class="wa-stack wa-gap-xs wa-caption-m">
<div class="wa-split">
<dt>Item(s) Subtotal</dt>
<dd>$39.00</dd>
</div>
<div class="wa-split">
<dt>Shipping & Handling</dt>
<dd>$0.00</dd>
</div>
<div class="wa-split">
<dt>Pre-tax Total</dt>
<dd>$39.00</dd>
</div>
<div class="wa-split">
<dt>Tax</dt>
<dd>$39.00</dd>
</div>
<wa-divider></wa-divider>
<div class="wa-split wa-body-m">
<dt>Grand Total</dt>
<dd>$39.00</dd>
</div>
</dl>
</div>
</div>
</wa-card>
<wa-card>
<div class="wa-flank:end wa-align-items-start" style="--flank-size: 12rem">
<div class="wa-stack">
<h3 class="wa-heading-s">Arriving Saturday</h3>
<div class="wa-flank wa-align-items-start">
<div class="wa-frame wa-border-radius-s">
<img src="https://uploads.webawesome.com/sparkling-water.jpg" alt="" />
</div>
<div class="wa-stack">
<a href="" class="wa-caption-m">Mineragua Sparkling Water 12 Count</a>
<span class="wa-caption-s">Sold by: <a href="">Mineragua</a></span>
<div class="wa-cluster">
<span class="wa-heading-s">$39.00</span>
<wa-button appearance="outlined" size="small" pill>
<wa-icon slot="prefix" name="rotate" variant="solid"></wa-icon>
Buy Again
</wa-button>
</div>
</div>
</div>
</div>
<div class="wa-stack wa-gap-xs">
<wa-button size="small" variant="brand" pill>Track Package</wa-button>
<wa-button size="small" appearance="outlined" variant="neutral" pill>Cancel Item(s)</wa-button>
<wa-button size="small" appearance="outlined" variant="neutral" pill>Ask Question</wa-button>
<wa-button size="small" appearance="outlined" variant="neutral" pill>Write Review</wa-button>
</div>
</div>
</wa-card>
</div>
```
## With Status & Description
```html {.example}
<div class="wa-stack wa-gap-xl">
<div class="wa-split">
<div class="wa-cluster">
<h2>Order #7093</h2>
<a href="">View Invoice</a>
</div>
<p class="wa-caption-m">
Order placed
<wa-format-date date="2025-06-12T09:00:00-04:00" month="long" day="numeric" year="numeric"></wa-format-date>
</p>
</div>
<wa-card>
<div class="wa-flank wa-align-items-start">
<div class="wa-frame wa-border-radius-s">
<img src="https://uploads.webawesome.com/vase-1.jpg" alt="" />
</div>
<div class="wa-stack wa-align-items-start wa-gap-s">
<div class="wa-split wa-gap-s">
<h3 class="wa-heading-m">Spotted Flower Pot</h3>
<span>$75.00</span>
</div>
<p class="wa-caption-m">Wood fired, salt glaze</p>
<wa-tag variant="success" appearance="filled" size="small">Delivered</wa-tag>
</div>
</div>
</wa-card>
<wa-card>
<div class="wa-flank wa-align-items-start">
<div class="wa-frame wa-border-radius-s">
<img src="https://uploads.webawesome.com/decorative-vase.jpg" alt="" />
</div>
<div class="wa-stack wa-align-items-start wa-gap-s">
<div class="wa-split wa-gap-s">
<h3 class="wa-heading-m">Decorative Vase</h3>
<span>$51.00</span>
</div>
<p class="wa-caption-m">High quality Japanese Kutani-yaki ceramic-ware</p>
<wa-tag variant="neutral" appearance="filled" size="small">Shipping Soon</wa-tag>
</div>
</div>
</wa-card>
<wa-card>
<div class="wa-flank wa-align-items-start">
<div class="wa-frame wa-border-radius-s">
<img src="https://uploads.webawesome.com/cuong-duyen-ceramic.jpg" alt="" />
</div>
<div class="wa-stack wa-align-items-start wa-gap-s">
<div class="wa-split wa-gap-s">
<h3 class="wa-heading-m">Cuong Duyen Ceramic</h3>
<span>$48.00</span>
</div>
<p class="wa-caption-m">Koishiwara-yaki style with crystalline glaze</p>
<wa-tag variant="brand" appearance="filled" size="small">Out for Delivery</wa-tag>
</div>
</div>
</wa-card>
<wa-divider></wa-divider>
<wa-callout variant="neutral" appearance="filled">
<div class="wa-grid">
<div class="wa-stack">
<h3 class="wa-heading-s">Shipping Address</h3>
<address class="wa-stack wa-gap-xs wa-caption-m">
<span>Donna Noble</span>
<span>56 Front Street</span>
<span>Las Cruces, NM 56929</span>
</address>
</div>
<div class="wa-stack">
<h3 class="wa-heading-s">Order Summary</h3>
<dl class="wa-stack wa-gap-xs wa-caption-m">
<div class="wa-split">
<dt>Item(s) Subtotal</dt>
<dd>$174.00</dd>
</div>
<div class="wa-split">
<dt>Shipping & Handling</dt>
<dd>$0.00</dd>
</div>
<div class="wa-split">
<dt>Tax</dt>
<dd>$17.40</dd>
</div>
<wa-divider></wa-divider>
<div class="wa-split wa-body-m">
<dt>Total</dt>
<dd>$191.40</dd>
</div>
</dl>
</div>
</div>
</wa-callout>
</div>
```

View File

@@ -1,195 +0,0 @@
---
title: Product Lists
description: 'Let shoppers browse and compare products with detailed lists of the products in your store.'
isPro: true
---
## Simple Grid with Ratings
```html {.example}
<div class="wa-grid wa-gap-2xl">
<a class="wa-stack wa-align-items-center wa-gap-xs wa-link-plain" href="">
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1633933329864-5d4c4423ad54?q=80&w=3387&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Bunch of fresh basil leaves with purple veins (Photograph by Svitlana)"
/>
</div>
<strong>Basil</strong>
<wa-rating label="Rating" size="small" readonly value="5"></wa-rating>
<span class="wa-caption-m">41 Reviews</span>
<strong>$8.59</strong>
</a>
<a class="wa-stack wa-align-items-center wa-gap-xs wa-link-plain" href="">
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1662892194342-f95c33cc16e3?q=80&w=3000&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Bunch of cut chamomile blooms (Photograph by Rootnot Creations)"
/>
</div>
<strong>Chamomile</strong>
<wa-rating label="Rating" size="small" readonly value="3"></wa-rating>
<span class="wa-caption-m">17 Reviews</span>
<strong>$10.29</strong>
</a>
<a class="wa-stack wa-align-items-center wa-gap-xs wa-link-plain" href="">
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1636396279461-f875646332d9?q=80&w=3360&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Canvas bundle of cut lavender blooms (Photograph by volant)"
/>
</div>
<strong>Lavender</strong>
<wa-rating label="Rating" size="small" readonly value="4"></wa-rating>
<span class="wa-caption-m">29 Reviews</span>
<strong>$9.99</strong>
</a>
<a class="wa-stack wa-align-items-center wa-gap-xs wa-link-plain" href="">
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1501085934018-450c8e615dbc?q=80&w=3387&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Blooming marjoram plant (Photograph by Monika Grabkowska)"
/>
</div>
<strong>Marjoram</strong>
<wa-rating label="Rating" size="small" readonly value="4"></wa-rating>
<span class="wa-caption-m">11 Reviews</span>
<strong>$8.59</strong>
</a>
<a class="wa-stack wa-align-items-center wa-gap-xs wa-link-plain" href="">
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1688633767797-455f59c98272?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Group of mature oregano plants (Photograph Nikolett Emmert)"
/>
</div>
<strong>Oregano</strong>
<wa-rating label="Rating" size="small" readonly value="5"></wa-rating>
<span class="wa-caption-m">38 Reviews</span>
<strong>$8.59</strong>
</a>
<a class="wa-stack wa-align-items-center wa-gap-xs wa-link-plain" href="">
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1603109731710-dba41b1096a7?q=80&w=2259&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Cluster of peppermint plants (Photograph by Josefin)"
/>
</div>
<strong>Peppermint</strong>
<wa-rating label="Rating" size="small" readonly value="5"></wa-rating>
<span class="wa-caption-m">26 Reviews</span>
<strong>$9.99</strong>
</a>
<a class="wa-stack wa-align-items-center wa-gap-xs wa-link-plain" href="">
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1726994803809-0e065bd4b25b?q=80&w=3387&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Mature rosemary stems (Photograph by 360floralflaves)"
/>
</div>
<strong>Rosemary</strong>
<wa-rating label="Rating" size="small" readonly value="4"></wa-rating>
<span class="wa-caption-m">34 Reviews</span>
<strong>$8.59</strong>
</a>
<a class="wa-stack wa-align-items-center wa-gap-xs wa-link-plain" href="">
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1659834742696-44573974981b?q=80&w=3542&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Group of sage plants (Photograph by Susie Burleson)"
/>
</div>
<strong>Sage</strong>
<wa-rating label="Rating" size="small" readonly value="5"></wa-rating>
<span class="wa-caption-m">24 Reviews</span>
<strong>$9.29</strong>
</a>
</div>
```
## Even Card Grid with Details
```html {.example}
<div class="wa-grid" style="--min-column-size: 50ch">
<div class="wa-grid">
<a href="" class="wa-link-plain">
<wa-card style="height: 100%;">
<img
slot="media"
src="https://images.unsplash.com/photo-1622445272461-c6580cab8755?q=80&w=3387&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Man in a relaxed fit, white, crew neck t-shirt (Photography by Mediamodifier)"
/>
<div class="wa-stack">
<div class="wa-flank:end wa-align-items-start wa-heading-m">
<span>Plain Classic Tee</span>
<span>$24</span>
</div>
<p class="wa-caption-m">
Keep it casual or dress it up. Soft, 100% cotton with a crew neckline, perfect for any occasion.
</p>
<em class="wa-caption-m">8 colors</em>
</div>
</wa-card>
</a>
<a href="" class="wa-link-plain">
<wa-card style="height: 100%;">
<img
slot="media"
src="https://images.unsplash.com/photo-1554568218-0f1715e72254?q=80&w=3387&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Woman in a light heather t-shirt printed with sharp black ink (Photograph by Christian Bolt)"
/>
<div class="wa-stack">
<div class="wa-flank:end wa-align-items-start wa-heading-m">
<span>One-color Graphic Tee</span>
<span>$32</span>
</div>
<p class="wa-caption-m">
Your own spin on our classic tee. Hand screen printed for the ultimate accuracy and quality.
</p>
<em class="wa-caption-m">6 colors</em>
</div>
</wa-card>
</a>
</div>
<div class="wa-grid">
<a href="" class="wa-link-plain">
<wa-card style="height: 100%;">
<img
slot="media"
src="https://images.unsplash.com/photo-1567098260939-5d9cee055592?q=80&w=2832&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Man in a black t-shirt printed with many-colored gradients (Photograph by Marcel)"
/>
<div class="wa-stack">
<div class="wa-flank:end wa-align-items-start wa-heading-m">
<span>Multi-color Graphic Tee</span>
<span>$36</span>
</div>
<p class="wa-caption-m">
Make a statement. Screen printed with vibrant, quality inks to last wash after wash.
</p>
<em class="wa-caption-m">4 colors</em>
</div>
</wa-card>
</a>
<a href="" class="wa-link-plain">
<wa-card style="height: 100%;">
<img
slot="media"
src="https://images.unsplash.com/photo-1709185727063-c3caae752a64?q=80&w=3387&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Woman in a black t-shirt with a bright white logo printed on the pocket (Photograph by SASI)"
/>
<div class="wa-stack">
<div class="wa-flank:end wa-align-items-start wa-heading-m">
<span>Pocket Graphic Tee</span>
<span>$29</span>
</div>
<p class="wa-caption-m">
Go classic with a bit of your own flair. Screen printed, eye-catching detail on the pocket.
</p>
<em class="wa-caption-m">6 colors</em>
</div>
</wa-card>
</a>
</div>
</div>
```

View File

@@ -1,469 +0,0 @@
---
title: Product Overview
description: 'Showcase your products with overviews including images, ratings, features, options, and more.'
isPro: true
---
## Split with Image
```html {.example}
<div class="wa-grid wa-gap-2xl">
<div class="wa-stack wa-gap-2xl">
<h2>San Ignacio Pache</h2>
<p>
A smooth, balanced Arabica varietal, grown and roasted on the Guerrero family's farm. Rich caramel and malt
flavors blend with bright citrus for a complex brew suitable for drip, pour over, espresso, or however you take
your coffee.
</p>
<div class="wa-stack">
<wa-select label="Bag Size" value="12oz">
<wa-option value="12oz">12 oz &ndash; $19.95</wa-option>
<wa-option value="3lb">3 lb &ndash; $72.00</wa-option>
<wa-option value="5lb">5 lb &ndash; $99.75</wa-option>
</wa-select>
<wa-select label="Bean Type" value="whole">
<wa-option value="whole">Whole</wa-option>
<wa-option value="drip">Drip Grind</wa-option>
<wa-option value="espresso">Espresso Grind</wa-option>
</wa-select>
</div>
<div class="wa-stack">
<div class="wa-flank">
<wa-input type="number" aria-label="Quantity" value="1" min="1" style="max-width: 8ch"></wa-input>
<wa-button variant="brand">
<wa-icon slot="prefix" name="basket-shopping"></wa-icon>
Add to Basket
</wa-button>
</div>
<div class="wa-flank wa-caption-m">
<wa-icon name="truck"></wa-icon>
<span>Free shipping on orders over $60</span>
</div>
</div>
<dl class="wa-grid">
<div class="wa-flank">
<wa-avatar>
<wa-icon slot="icon" name="coffee-bean"></wa-icon>
</wa-avatar>
<div class="wa-stack wa-gap-0">
<dt>Roast</dt>
<dd>Medium</dd>
</div>
</div>
<div class="wa-flank">
<wa-avatar>
<wa-icon slot="icon" name="earth-americas"></wa-icon>
</wa-avatar>
<div class="wa-stack wa-gap-0">
<dt>Origin</dt>
<dd>San Ignacio, Peru</dd>
</div>
</div>
<div class="wa-flank">
<wa-avatar>
<wa-icon slot="icon" name="sun-haze"></wa-icon>
</wa-avatar>
<div class="wa-stack wa-gap-0">
<dt>Process</dt>
<dd>Washed</dd>
</div>
</div>
<div class="wa-flank">
<wa-avatar>
<wa-icon slot="icon" name="mug-hot"></wa-icon>
</wa-avatar>
<div class="wa-stack wa-gap-0">
<dt>Tasting Notes</dt>
<dd>Caramel, malt, orange</dd>
</div>
</div>
</dl>
</div>
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1600396538702-d234dbb79139?q=80&w=3833&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Whole roasted coffee beans (Photograph by Jocelyn Morales)"
/>
</div>
</div>
```
## With Image Grid
```html {.example}
<div class="wa-stack wa-gap-2xl">
<wa-breadcrumb>
<wa-breadcrumb-item>Clothing</wa-breadcrumb-item>
<wa-breadcrumb-item>Women's</wa-breadcrumb-item>
<wa-breadcrumb-item>Shirts &amp; Tops</wa-breadcrumb-item>
</wa-breadcrumb>
<div class="wa-grid wa-gap-xs" style="--min-column-size: 10ch">
<div class="wa-frame" style="height: 100%; width: 100%">
<img
class="wa-border-radius-s"
src="https://images.unsplash.com/photo-1614792568992-ded1c487c1dd?q=80&w=2487&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="(Photograph by Patrick Perkins)"
/>
</div>
<div class="wa-grid wa-gap-xs">
<div class="wa-frame" style="aspect-ratio: 3 / 2">
<img
class="wa-border-radius-s"
src="https://images.unsplash.com/photo-1614725078749-29c421fd0e51?q=80&w=2487&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="(Photograph by Patrick Perkins)"
/>
</div>
<div class="wa-frame" style="aspect-ratio: 3 / 2">
<img
class="wa-border-radius-s"
src="https://images.unsplash.com/photo-1614725808713-e6bbe418fc5d?q=80&w=2487&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="(Photograph by Patrick Perkins)"
/>
</div>
</div>
<div class="wa-frame" style="height: 100%; width: 100%">
<img
class="wa-border-radius-s"
src="https://images.unsplash.com/photo-1614725078379-9d1330a08c95?q=80&w=2487&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="(Photograph by Patrick Perkins)"
/>
</div>
</div>
<div class="wa-grid wa-gap-xl" style="--min-column-size: 30ch">
<h2 class="wa-heading-l">Cropped Fitted Tank Top</h2>
<span class="wa-body-xl">$59</span>
</div>
<div class="wa-grid wa-gap-xl" style="--min-column-size: 30ch">
<div class="wa-stack wa-gap-xl">
<div class="wa-cluster">
<wa-rating label="Rating" readonly value="3.5"></wa-rating>
<a href="">117 Reviews</a>
</div>
<p>
Made with a breathable, stretchy fabric blend for unparalleled comfort and flattering style. Pairs perfectly
with your favorite high-waisted jeans for lazy summer weekends or lively nights out.
</p>
<div class="wa-stack wa-gap-xs">
<h3 class="wa-heading-xs">Good to Know</h3>
<p class="wa-body-xs">
95% cotton, 5% elastane. Our tops are pre-shrunk to ensure a consistent fit with no surprises. Machine wash
cold. Tumble dry low.
</p>
</div>
</div>
<div class="wa-stack">
<wa-radio-group label="Color" name="color" value="black" orientation="horizontal">
<wa-radio appearance="button" id="radio-black" value="black">
<wa-icon name="square" label="Black" style="color: black;"></wa-icon>
<wa-tooltip for="radio-black">Black</wa-tooltip>
</wa-radio>
<wa-radio appearance="button" id="radio-gray" value="gray">
<wa-icon name="square" label="Gray" style="color: gray;"></wa-icon>
<wa-tooltip for="radio-gray">Gray</wa-tooltip>
</wa-radio>
<wa-radio appearance="button" id="radio-indigo" value="indigo">
<wa-icon name="square" label="Indigo" style="color: indigo;"></wa-icon>
<wa-tooltip for="radio-indigo">Indigo</wa-tooltip>
</wa-radio>
<wa-radio appearance="button" id="radio-olive" value="olive">
<wa-icon name="square" label="Olive" style="color: olive;"></wa-icon>
<wa-tooltip for="radio-olive">Olive</wa-tooltip>
</wa-radio>
</wa-radio-group>
<wa-radio-group label="Size" name="size" value="s" orientation="horizontal">
<wa-radio appearance="button" value="xs">XS</wa-radio>
<wa-radio appearance="button" value="s">S</wa-radio>
<wa-radio appearance="button" value="m">M</wa-radio>
<wa-radio appearance="button" value="l">L</wa-radio>
<wa-radio appearance="button" value="xl">XL</wa-radio>
</wa-radio-group>
<wa-button variant="brand">
<wa-icon slot="prefix" name="cart-plus" variant="solid"></wa-icon>
Add to Cart
</wa-button>
</div>
</div>
</div>
```
## With Tiered Images
```html {.example}
<div class="wa-stack wa-gap-2xl">
<wa-breadcrumb>
<wa-breadcrumb-item>Clothing</wa-breadcrumb-item>
<wa-breadcrumb-item>Men's</wa-breadcrumb-item>
<wa-breadcrumb-item>Shirts &amp; Tops</wa-breadcrumb-item>
</wa-breadcrumb>
<div class="wa-grid wa-gap-2xl" style="--min-column-size: 35ch">
<div class="wa-stack wa-gap-xs">
<img
class="wa-border-radius-s"
src="https://images.unsplash.com/photo-1630643583573-c68623718072?q=80&w=3387&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="(Photograph by Gervyn Louis)"
/>
<div class="wa-grid wa-gap-xs" style="--min-column-size: 0ch">
<img
class="wa-border-radius-s"
src="https://images.unsplash.com/photo-1571666274590-f8cc87006500?q=80&w=3387&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="(Photograph by Gervyn Louis)"
/>
<img
class="wa-border-radius-s"
src="https://images.unsplash.com/photo-1630643591760-a6ed60ef499f?q=80&w=3387&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="(Photograph by Gervyn Louis)"
/>
</div>
</div>
<div class="wa-stack">
<div class="wa-split">
<h2 class="wa-heading-l">Graphic Cutoff Tee</h2>
<span class="wa-body-xl">$65</span>
</div>
<div class="wa-split">
<div class="wa-cluster">
<wa-rating label="Rating" readonly value="4.2"></wa-rating>
<span>4.2</span>
</div>
<a href="#">144 Reviews</a>
</div>
<wa-radio-group label="Color" name="color" value="black" orientation="horizontal">
<wa-radio appearance="button" value="black">
<wa-icon slot="prefix" name="shirt" style="color: black;"></wa-icon>
Vintage Black
</wa-radio>
<wa-radio appearance="button" value="gray">
<wa-icon slot="prefix" name="shirt" style="color: gray;"></wa-icon>
Faded Gray
</wa-radio>
</wa-radio-group>
<wa-radio-group label="Size" name="size" value="s" orientation="horizontal">
<wa-radio appearance="button" value="xs">XS</wa-radio>
<wa-radio appearance="button" value="s">S</wa-radio>
<wa-radio appearance="button" value="m">M</wa-radio>
<wa-radio appearance="button" value="l">L</wa-radio>
<wa-radio appearance="button" value="xl">XL</wa-radio>
</wa-radio-group>
<wa-button variant="brand">
<wa-icon slot="prefix" name="bag-shopping" variant="solid"></wa-icon>
Add to Bag
</wa-button>
<wa-divider></wa-divider>
<h3 class="wa-heading-s">Description</h3>
<p>
Stay cool, <em>slay</em> cool. Train hard and recover in style with this ultra-breathable cutoff tee. Made from
100% organic, quick-drying cotton to keep the air flowing whether you're lifting, sprinting, or crushing HIIT
sessions.
</p>
<wa-divider></wa-divider>
<h3 class="wa-heading-s">Highlights</h3>
<div class="wa-grid">
<wa-card class="wa-span-grid">
<div class="wa-stack">
<wa-icon name="hand-holding-heart"></wa-icon>
<h4 class="wa-heading-s">People and Planet First</h4>
<p class="wa-caption-m">
Ethical production, fair wages, and sustainable materials empower every part of our supply chain.
</p>
</div>
</wa-card>
<wa-card>
<div class="wa-stack">
<wa-icon name="earth-americas"></wa-icon>
<h4 class="wa-heading-s">International Shipping</h4>
<p class="wa-caption-m">Wherever you are, your order will meet you there.</p>
</div>
</wa-card>
<wa-card>
<div class="wa-stack">
<wa-icon name="arrow-right-arrow-left"></wa-icon>
<h4 class="wa-heading-s">90-day Returns</h4>
<p class="wa-caption-m">Not happy? Return your item and get a full refund.</p>
</div>
</wa-card>
</div>
</div>
</div>
</div>
```
## With Carousel and Collapsible Details
```html {.example}
<div class="wa-stack wa-gap-2xl">
<wa-carousel pagination navigation loop style="--aspect-ratio: 3 / 2;">
<wa-carousel-item>
<img
src="https://images.unsplash.com/photo-1601379327928-bedfaf9da2d0?q=80&w=3456&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Four folded and stacked knit sweaters in three colors (Photograph by Tijana Drndarski)"
/>
</wa-carousel-item>
<wa-carousel-item>
<img
src="https://images.unsplash.com/photo-1519804270019-39e929a7afb5?q=80&w=3774&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Knit sweater in sand color full view, showing waffle knit pattern, relaxed fit, and crew neckline (Photograph by Jonathan Zerger)"
/>
</wa-carousel-item>
<wa-carousel-item>
<img
src="https://images.unsplash.com/photo-1519805614447-6f49142e6697?q=80&w=3633&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Knit sweater in sand color shoulder detail, showing relaxed fit on broader shoulders (Photograph by Jonathan Zerger)"
/>
</wa-carousel-item>
<wa-carousel-item>
<img
src="https://images.unsplash.com/photo-1522230130022-498e355165c5?q=80&w=3774&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Knit sweater in sand color sleeve detail, showing loose fit around the arms (Photograph by Jonathan Zerger)"
/>
</wa-carousel-item>
</wa-carousel>
<div class="wa-grid wa-gap-2xl" style="--min-column-size: 30ch;">
<div class="wa-stack">
<div class="wa-split">
<h3>Pullover Sweater</h3>
<span class="wa-body-xl">$140</span>
</div>
<wa-rating label="Rating" precision="0.5" value="4.5" readonly></wa-rating>
<p>
Wrap yourself in warmth and effortless style with this wool knit Pullover Sweater. Designed for unparalleled
comfort. The relaxed fit and classic crew neckline make it a versatile staple for layering or wearing solo.
</p>
<wa-radio-group label="Color" name="color" value="sand" orientation="horizontal">
<wa-radio appearance="button" value="sand">
<wa-icon slot="prefix" name="circle" style="color: burlywood;"></wa-icon>
Sand
</wa-radio>
<wa-radio appearance="button" value="shale">
<wa-icon slot="prefix" name="circle" style="color: silver;"></wa-icon>
Shale
</wa-radio>
<wa-radio appearance="button" value="slate">
<wa-icon slot="prefix" name="circle" style="color: dimgray;"></wa-icon>
Slate
</wa-radio>
</wa-radio-group>
<wa-radio-group label="Size" name="size" value="s" orientation="horizontal">
<wa-radio appearance="button" value="xs">XS</wa-radio>
<wa-radio appearance="button" value="s">S</wa-radio>
<wa-radio appearance="button" value="m">M</wa-radio>
<wa-radio appearance="button" value="l">L</wa-radio>
<wa-radio appearance="button" value="xl">XL</wa-radio>
</wa-radio-group>
<wa-button variant="brand">Add to Cart</wa-button>
</div>
<div class="wa-stack">
<wa-details summary="Size and Fit" open>
<ul class="wa-body-s">
<li>True to size with a relaxed fit</li>
<li>Fits all shoulder shapes, broad to narrow</li>
<li>No pinching in the arms or irritating seams</li>
<li>Ribbed cuffs and hem</li>
</ul>
</wa-details>
<wa-details summary="Materials and Care">
<ul class="wa-body-s">
<li>Durable Merino and Yak wool blend</li>
<li>Machine wash cold on delicate cycle</li>
<li>Lay flat to dry</li>
<li>Made with <wa-icon name="heart" label="love"></wa-icon> in Bentonville, USA</li>
</ul>
</wa-details>
<wa-details summary="Shipping">
<ul class="wa-body-s">
<li>Flat $9 shipping free for orders under $200.</li>
<li>Free shipping on orders over $200, anywhere in the world.</li>
</ul>
</wa-details>
</div>
</div>
</div>
```
## With Tabs
```html {.example}
<div class="wa-flank:end wa-align-items-start wa-gap-2xl" style="--flank-size: 30ch">
<div class="wa-stack">
<img
class="wa-border-radius-l"
src="https://img.fortawesome.com/cfa83f3c/icon-grid-wallpaper.png"
alt="Sample of 48 line-style icons"
/>
<wa-tab-group>
<wa-tab panel="license">License</wa-tab>
<wa-tab panel="faq">FAQ</wa-tab>
<wa-tab-panel name="license">
<p class="wa-body-s">
Your purchase includes a perpetual Font Awesome Pro License to use Classic Light icons on unlimited projects.
<a href="">Read the full license terms.</a>
</p>
</wa-tab-panel>
<wa-tab-panel name="faq">
<dl class="wa-stack wa-body-s">
<dt>Do I need to renew my subscription to receive fixes?</dt>
<dd>
We split up Font Awesome releases into regular updates and bug-fix updates. With a Font Awesome Pro plan
that has a perpetual license, you'll always be entitled to bug-fix updates for your last version, even after
your subscription has expired.
</dd>
<dt>Can I use Font Awesome Pro in themes, plug-ins, or open source projects?</dt>
<dd>
For themes and open source projects, right now it's best to just use Font Awesome Free. We are working a
better solution, so feel free to get in touch if you have thoughts.
</dd>
<dt>Do you offer enterprise licenses for Font Awesome Pro?</dt>
<dd>
We don't currently offer Enterprise-level licenses, but we may do so in the future. Get in touch if
interested.
</dd>
</dl>
</wa-tab-panel>
</wa-tab-group>
</div>
<div class="wa-stack wa-gap-l">
<wa-badge appearance="filled">Sale</wa-badge>
<h2>Icon Pack: Classic Light</h2>
<p class="wa-body-l">Easy, readable icons with a lighter touch.</p>
<div class="wa-cluster wa-gap-xs wa-body-l">
<s>$60</s>
<strong>$49</strong>
</div>
<wa-button variant="brand" size="large">
<wa-icon slot="prefix" name="arrow-down-to-line" variant="solid"></wa-icon>
Get Icons
</wa-button>
<wa-divider></wa-divider>
<h3 class="wa-heading-m">What's in the Pack</h3>
<ul class="wa-stack wa-gap-xs">
<li class="wa-flank">
<wa-icon name="badge-check"></wa-icon>
<span>3,323 icons</span>
</li>
<li class="wa-flank">
<wa-icon name="badge-check"></wa-icon>
<span>Pre-bundled Font Awesome kit</span>
</li>
<li class="wa-flank">
<wa-icon name="badge-check"></wa-icon>
<span>Ligature-based desktop font files</span>
</li>
<li class="wa-flank">
<wa-icon name="badge-check"></wa-icon>
<span>Individual SVGs + SVG sprites</span>
</li>
<li class="wa-flank">
<wa-icon name="badge-check"></wa-icon>
<span>Web fonts + SVG framework</span>
</li>
<li class="wa-flank">
<wa-icon name="badge-check"></wa-icon>
<span>SCSS/LESS CSS preprocessor files</span>
</li>
<li class="wa-flank">
<wa-icon name="badge-check"></wa-icon>
<span>Perpetual Pro license</span>
</li>
</ul>
</div>
</div>
```

View File

@@ -1,165 +0,0 @@
---
title: Product Preview
description: 'Give shoppers a quick look at your products as they browse with modal previews.'
icon: preview
isPro: true
---
## With Product Options
```html {.example}
<wa-card>
<div class="wa-split" slot="header">
<h3 class="wa-heading-l">Stan Smith® Camo Tongue Tee</h3>
<wa-icon-button name="close" label="Close Preview"></wa-icon-button>
</div>
<div class="wa-grid wa-gap-xl">
<div class="wa-frame wa-border-radius-l" style="aspect-ratio: auto">
<img
src="https://images.unsplash.com/photo-1660997351262-6c31d8a35b6c?q=80&w=2000&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Stan Smith graphic crew-neck tee in honeydew color"
/>
</div>
<div class="wa-split:column wa-align-items-stretch wa-gap-xl">
<div class="wa-stack wa-gap-xl">
<div class="wa-cluster">
<span class="wa-heading-2xl">$32</span>
<wa-divider orientation="vertical"></wa-divider>
<wa-rating label="Rating" value="3.75" readonly></wa-rating>
<a href="" class="wa-caption-m">36 Reviews</a>
</div>
<p>An ode to the “Sneaker that go with everything” …even this tee.</p>
<wa-divider></wa-divider>
<div class="wa-stack wa-gap-s">
<h4 class="wa-heading-s">Categories</h4>
<div class="wa-cluster wa-gap-2xs">
<a href=""><wa-tag appearance="outlined" size="small" pill>Men's</wa-tag></a>
<a href=""><wa-tag appearance="outlined" size="small" pill>Sneakers</wa-tag></a>
<a href=""><wa-tag appearance="outlined" size="small" pill>Tees</wa-tag></a>
<a href=""><wa-tag appearance="outlined" size="small" pill>Lifestyle</wa-tag></a>
<a href=""><wa-tag appearance="outlined" size="small" pill>Fashion</wa-tag></a>
<a href=""><wa-tag appearance="outlined" size="small" pill>Casual</wa-tag></a>
<a href=""><wa-tag appearance="outlined" size="small" pill>Stan Smith</wa-tag></a>
<a href=""><wa-tag appearance="outlined" size="small" pill>Tennis</wa-tag></a>
<a href=""><wa-tag appearance="outlined" size="small" pill>Sports</wa-tag></a>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-stack wa-gap-s">
<wa-select label="Color" value="honeydew">
<wa-option value="hotpink">
<wa-icon slot="prefix" name="circle" style="color: hotpink;"></wa-icon>
Hot Pink
</wa-option>
<wa-option value="honeydew">
<wa-icon slot="prefix" name="circle" style="color: honeydew;"></wa-icon>
Honeydew
</wa-option>
<wa-option value="coral">
<wa-icon slot="prefix" name="circle" style="color: lightcoral;"></wa-icon>
Coral
</wa-option>
<wa-option value="wheat">
<wa-icon slot="prefix" name="circle" style="color: wheat;"></wa-icon>
Wheat
</wa-option>
<wa-option value="lilac">
<wa-icon slot="prefix" name="circle" style="color: #C8A2C8;"></wa-icon>
Lilac
</wa-option>
<wa-option value="burnt-orange">
<wa-icon slot="prefix" name="circle" style="color: #FF5733"></wa-icon>
Burnt Orange
</wa-option>
</wa-select>
<wa-select label="Size" value="large">
<wa-option value="small">Small</wa-option>
<wa-option value="medium">Medium</wa-option>
<wa-option value="large">Large</wa-option>
<wa-option value="xl">XL</wa-option>
<wa-option value="xxl">XXL</wa-option>
</wa-select>
</div>
</div>
<wa-button variant="brand">
Add to Cart
<wa-icon slot="suffix" name="cart-shopping" variant="solid"></wa-icon>
</wa-button>
</div>
</div>
</wa-card>
```
## With Description & Details
```html {.example}
<wa-card>
<div class="wa-split" slot="header">
<h3 class="wa-heading-l">Champion® Crossbody Bag</h3>
<wa-icon-button name="close" label="Close Preview"></wa-icon-button>
</div>
<div class="wa-grid wa-gap-xl">
<div class="wa-frame wa-border-radius-l" style="aspect-ratio: auto">
<img
src="https://images.unsplash.com/photo-1643467358005-899641cab7b5?q=80&w=2487&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="Black weatherproof crossbody bag with two large zipper pockets"
/>
</div>
<div class="wa-split:column wa-align-items-stretch wa-gap-xl">
<div class="wa-stack wa-gap-xl">
<div class="wa-split wa-align-items-start">
<span class="wa-heading-2xl">$40</span>
<wa-icon-button id="favorite" label="Favorite" name="heart" variant="regular"></wa-icon-button>
<wa-tooltip for="favorite">Add to Favorites</wa-tooltip>
</div>
<div class="wa-split">
<div class="wa-cluster wa-gap-xs">
<span>3.9</span>
<wa-rating value="3.9" readonly></wa-rating>
</div>
<a href="">See 512 Reviews</a>
</div>
<wa-divider></wa-divider>
<wa-callout size="small">
<wa-icon slot="icon" name="circle-info" variant="regular"></wa-icon>
You purchased this item on
<wa-format-date date="2023-02-20T09:00:00-04:00" month="long" day="numeric" year="numeric"></wa-format-date>
</wa-callout>
<div class="wa-gap-xs wa-stack">
<h4 class="wa-heading-m">About</h4>
<p class="wa-body-s">
The Champion® Crossbody Bag is crafted for the trendsetter. Its sleek silhouette, paired with a tonal
branded adjustable sling strap, ensures you look effortlessly cool no matter where you go.
</p>
</div>
<wa-divider></wa-divider>
<div class="wa-gap-xs wa-stack">
<h4 class="wa-heading-m">Details</h4>
<dl class="wa-grid" style="--min-column-size: 15ch">
<div class="wa-gap-2xs wa-stack">
<dt class="wa-body-s">Care Instructions</dt>
<dd class="wa-caption-m">Hand Wash Only</dd>
</div>
<div class="wa-gap-2xs wa-stack">
<dt class="wa-body-s">Origin</dt>
<dd class="wa-caption-m">Imported</dd>
</div>
<div class="wa-gap-2xs wa-stack">
<dt class="wa-body-s">Country of Origin</dt>
<dd class="wa-caption-m">China</dd>
</div>
</dl>
</div>
</div>
<div class="wa-flank:end wa-align-items-end">
<wa-button variant="brand" size="medium">
<wa-icon slot="suffix" name="cart-shopping" variant="solid"></wa-icon>Add to Cart
</wa-button>
<wa-button appearance="outlined" size="medium">
<wa-icon slot="suffix" name="arrow-right" variant="solid"></wa-icon>View Full Details
</wa-button>
</div>
</div>
</div>
</wa-card>
```

View File

@@ -1,274 +0,0 @@
---
title: Product Reviews
description: 'Help shoppers make informed decisions with ratings, reviews, and testimonials from your customers.'
isPro: true
---
## Multi column
```html {.example}
<div style="max-width: 960px; margin: 0 auto;">
<span class="wa-heading-m">Recent Reviews</span>
<wa-divider></wa-divider>
<div class="wa-flank wa-gap-s" style="--flank-size: 20%">
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Viktor Vaughn</span>
<wa-relative-time date="2020-07-15T09:17:00-04:00" class="wa-caption-m"></wa-relative-time>
</div>
<div class="wa-flank">
<wa-rating label="Rating" readonly value="5"></wa-rating>
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Solid treadmill for home workouts!</span>
<p>
Best treadmill I've ever owned! It has a sleek design, and the features are top-notch. I use it daily for my
cardio workouts, and the motor is powerful enough to keep up with my running. Its easy to adjust the speed
and incline, and the display is clear and simple to read. Worth every penny!
</p>
</div>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-flank wa-gap-s" style="--flank-size: 20%">
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Ben Grimm</span>
<wa-relative-time date="2020-07-15T09:17:00-04:00" class="wa-caption-m"></wa-relative-time>
</div>
<div class="wa-flank">
<wa-rating label="Rating" readonly value="4"></wa-rating>
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Good value, a few minor flaws</span>
<p>
Decent treadmill for the price, but I feel like the belt could be a little wider for comfort. The cushioning
is good, but sometimes I experience a slight wobble when running at high speeds. For casual walking, it's
fine, but Im not sure its built for intense runners.
</p>
</div>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-flank wa-gap-s" style="--flank-size: 20%">
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Johnny Storm</span>
<wa-relative-time date="2020-07-15T09:17:00-04:00" class="wa-caption-m"></wa-relative-time>
</div>
<div class="wa-flank">
<wa-rating label="Rating" readonly value="4"></wa-rating>
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Decent, but could use upgrades</span>
<p>
This treadmill has been a great addition to my home gym. It's sturdy, easy to use, and I like that it tracks
my steps and heart rate. The only downside is that it's a bit bulky, so I had to rearrange my space to make
room for it. Overall, I'm happy with the performance and would recommend it.
</p>
</div>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-flank wa-gap-s" style="--flank-size: 20%">
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Sue Storm</span>
<wa-relative-time date="2020-07-15T09:17:00-04:00" class="wa-caption-m"></wa-relative-time>
</div>
<div class="wa-flank">
<wa-rating label="Rating" readonly value="4"></wa-rating>
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Perfect for small spaces</span>
<p>
I absolutely love my new treadmill! Its perfect for my daily workouts. The setup was quick, and its so quiet
that I can use it while watching TV without any interruptions. The different incline levels really help mix up
my routine, and the built-in programs keep things interesting. Highly recommend for anyone looking to stay fit
at home!
</p>
</div>
</div>
</div>
</div>
```
## With Ratings Distribution
```html {.example}
<div style="max-width: 960px; margin: 0 auto;">
<div class="wa-align-items-start wa-flank wa-gap-2xl">
<div class="wa-gap-s wa-stack">
<span class="wa-heading-m">Customer Reviews</span>
<div class="wa-stack wa-gap-xs">
<wa-rating label="Rating" precision="0.5" value="4.6" size="small"></wa-rating>
<span class="wa-caption-m">Based on 1624 reviews</span>
</div>
<div class="wa-stack">
<span class="wa-cluster wa-gap-2xs">
<span>5</span>
<wa-icon name="star" style="font-size: 12px;"></wa-icon>
<wa-progress-bar value="63" label="Upload progress" style="height: 6px; width: 50%"></wa-progress-bar>
<wa-format-number type="percent" value=".63"></wa-format-number>
</span>
<span class="wa-cluster wa-gap-2xs">
<span>4</span>
<wa-icon name="star" style="font-size: 12px;"></wa-icon>
<wa-progress-bar value="17" label="Upload progress" style="height: 6px; width: 50%"></wa-progress-bar>
<wa-format-number type="percent" value=".17"></wa-format-number>
</span>
<span class="wa-cluster wa-gap-2xs">
<span>3</span>
<wa-icon name="star" style="font-size: 12px;"></wa-icon>
<wa-progress-bar value="15" label="Upload progress" style="height: 6px; width: 50%"></wa-progress-bar>
<wa-format-number type="percent" value=".15"></wa-format-number>
</span>
<span class="wa-cluster wa-gap-2xs">
<span>2</span>
<wa-icon name="star" style="font-size: 12px;"></wa-icon>
<wa-progress-bar value="3" label="Upload progress" style="height: 6px; width: 50%"></wa-progress-bar>
<wa-format-number type="percent" value=".03"></wa-format-number>
</span>
<span class="wa-cluster wa-gap-2xs">
<span>1</span>
<wa-icon name="star" style="font-size: 12px;"></wa-icon>
<wa-progress-bar value="2" label="Upload progress" style="height: 6px; width: 50%"></wa-progress-bar>
<wa-format-number type="percent" value=".02"></wa-format-number>
</span>
</div>
</div>
<div>
<div>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1494790108377-be9c29b29330?q=80&w=2574&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
></wa-avatar>
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Michelle Jasper</span>
<wa-rating label="Rating" precision="0.5" value="2.5"></wa-rating>
</div>
</div>
<p>
I bought this grow light for my herbs and succulents, and wow—what a difference. After just a week, my basil
perked up, and new leaves started popping up. Super easy to set up and doesnt get too hot. Highly recommend
for anyone growing indoors!
</p>
</div>
<wa-divider></wa-divider>
<div>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1599566150163-29194dcaad36?q=80&w=2574&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
></wa-avatar>
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Doug Michaels</span>
<wa-rating label="Rating" precision="0.5" value="2.5"></wa-rating>
</div>
</div>
<p>
This light really helps my plants grow during the winter months. The brightness is strong, and I love the
adjustable height. The only downside is the timer—it resets if you unplug it. Otherwise, great value for the
price!
</p>
</div>
<wa-divider></wa-divider>
<div>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1580489944761-15a19d654956?q=80&w=2561&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
></wa-avatar>
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Stephanie Hurst</span>
<wa-rating label="Rating" precision="0.5" value="2.5"></wa-rating>
</div>
</div>
<p>
I dont get much natural light in my apartment, so this grow light has been a game-changer. Im using it for
my small tomato plants and some lettuce, and theyre growing faster than expected. Plus, the light isnt too
harsh on the eyes
</p>
</div>
<wa-divider></wa-divider>
<div>
<div class="wa-flank">
<wa-avatar
image="https://images.unsplash.com/photo-1566492031773-4f4e44671857?q=80&w=2574&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
></wa-avatar>
<div class="wa-stack wa-gap-2xs">
<span class="wa-heading-s">Miles Rogers</span>
<wa-rating label="Rating" precision="0.5" value="2.5"></wa-rating>
</div>
</div>
<p>
Ive tried a few grow lights, and this one is my favorite. It stays cool, uses less power, and my peace lilies
and spider plants are growing beautifully. I just wish it came in more color options for the stand, but
performance-wise, its excellent.
</p>
</div>
</div>
</div>
</div>
```
## Two Column
```html {.example}
<div class="wa-stack" style="max-width: 960px; margin: 0 auto;">
<div class="wa-flank wa-align-items-center">
<div class="wa-stack wa-align-items-center wa-gap-xs">
<wa-avatar
label="User avatar"
image="https://images.unsplash.com/photo-1607746882042-944635dfe10e?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
></wa-avatar>
<p>Ripley</p>
<div>
<wa-icon-button name="thumbs-up" label="I don't like this review"></wa-icon-button>
<wa-icon-button name="thumbs-down" label="I like this review"></wa-icon-button>
</div>
</div>
<div>
<wa-rating label="Rating" precision="0.5" value="5" readonly></wa-rating>
<p>
I recently purchased the Modern Sofa Couch, and I couldn't be happier with my decision! The process from
ordering to delivery was smooth and hassle-free
</p>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-flank wa-align-items-center">
<div class="wa-stack wa-align-items-center wa-gap-xs">
<wa-avatar
label="User avatar"
image="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?q=80&w=2574&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
></wa-avatar>
<p>Kane</p>
<div>
<wa-icon-button name="thumbs-up" label="I don't like this review"></wa-icon-button>
<wa-icon-button name="thumbs-down" label="I like this review"></wa-icon-button>
</div>
</div>
<div>
<wa-rating label="Rating" precision="0.5" value="3.4" readonly></wa-rating>
<p>
The cushions are soft yet supportive, and the sectional layout gives plenty of space to stretch out. Its
perfect for movie nights or just lounging with a good book.
</p>
</div>
</div>
<wa-divider></wa-divider>
<div class="wa-flank wa-align-items-center">
<div class="wa-stack wa-align-items-center wa-gap-xs">
<wa-avatar
label="User avatar"
image="https://images.unsplash.com/photo-1728577740843-5f29c7586afe?q=80&w=2680&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
></wa-avatar>
<p>Parker</p>
<div>
<wa-icon-button name="thumbs-up" label="I don't like this review"></wa-icon-button>
<wa-icon-button name="thumbs-down" label="I like this review"></wa-icon-button>
</div>
</div>
<div>
<wa-rating label="Rating" precision="0.5" value="3.8" readonly></wa-rating>
<p>
The leather is high quality, but its a little firmer than I thought. That said, after sitting on it for a
while, it does soften up and feels more comfortable. Its perfect if youre looking for a more structured
seating experience.
</p>
</div>
</div>
<wa-divider></wa-divider>
</div>
```

View File

@@ -1,289 +0,0 @@
---
title: Shopping Cart
description: 'Give shoppers an overview of selected items with shopping carts that let them edit items and proceed to checkout.'
isPro: true
---
## Two Columns with Summary Card
```html {.example}
<div class="wa-stack wa-gap-2xl">
<h2>Shopping Cart</h2>
<div class="wa-grid wa-align-items-start wa-gap-2xl">
<div class="wa-stack wa-gap-xl">
<article class="wa-flank wa-gap-xl" style="--flank-size: 8rem">
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1523381294911-8d3cead13475?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w1OTAyOTl8MHwxfGFsbHx8fHx8fHx8fDE3MTg2NDIzNDd8&ixlib=rb-4.0.3&q=80&w=1080"
alt=""
/>
</div>
<div class="wa-flank:end wa-align-items-baseline">
<div class="wa-stack wa-gap-xs">
<h3 class="wa-heading-s">Classic Tee</h3>
<span class="wa-caption-m">Sage Green</span>
<span class="wa-caption-m">Large</span>
<span>$20.00</span>
</div>
<wa-icon-button name="xmark" label="Remove" id="remove-1"></wa-icon-button>
<wa-tooltip for="remove-1">Remove</wa-tooltip>
</div>
</article>
<article class="wa-flank wa-gap-xl" style="--flank-size: 8rem">
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1564859227552-81fde4a1df0b?q=80&w=2671&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt=""
/>
</div>
<div class="wa-flank:end wa-align-items-baseline">
<div class="wa-stack wa-gap-xs">
<h3 class="wa-heading-s">RVCA Graphic</h3>
<span class="wa-caption-m">White</span>
<span class="wa-caption-m">Large</span>
<span>$25.00</span>
</div>
<wa-icon-button name="xmark" label="Remove" id="remove-2"></wa-icon-button>
<wa-tooltip for="remove-2">Remove</wa-tooltip>
</div>
</article>
<article class="wa-flank wa-gap-xl" style="--flank-size: 8rem">
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1503341733017-1901578f9f1e?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt=""
/>
</div>
<div class="wa-flank:end wa-align-items-baseline">
<div class="wa-stack wa-gap-xs">
<h3 class="wa-heading-s">Stay Wild Graphic</h3>
<span class="wa-caption-m">Black</span>
<span class="wa-caption-m">Large</span>
<span>$18.00</span>
</div>
<wa-icon-button name="xmark" label="Remove" id="remove-3"></wa-icon-button>
<wa-tooltip for="remove-3">Remove</wa-tooltip>
</div>
</article>
</div>
<wa-card>
<div slot="header">
<h3 class="wa-heading-m">Order Summary</h3>
</div>
<div class="wa-stack">
<div class="wa-split">
<span class="wa-caption-l">Subtotal</span>
<strong>$63.00</strong>
</div>
<wa-divider></wa-divider>
<div class="wa-split">
<span class="wa-caption-l">Shipping</span>
<strong>$5.00</strong>
</div>
<wa-divider></wa-divider>
<div class="wa-split">
<span class="wa-caption-l">Tax</span>
<strong>$5.50</strong>
</div>
<wa-divider></wa-divider>
<div class="wa-split wa-body-l">
<span>Total</span>
<strong>$73.50</strong>
</div>
<wa-button variant="brand">Checkout</wa-button>
</div>
</wa-card>
</div>
</div>
</div>
```
## Single Column
```html {.example}
<div class="wa-stack wa-gap-2xl" style="max-width: 60ch; margin: auto">
<h2>Your Cart</h2>
<wa-divider></wa-divider>
<article class="wa-flank" style="--flank-size: 12rem">
<div class="wa-frame wa-border-radius-m" style="aspect-ratio: 3 / 2">
<img
src="https://images.unsplash.com/photo-1594787317357-dcda50fd1d78?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w1OTAyOTl8MHwxfGFsbHx8fHx8fHx8fDE3MTg2NDI4MDd8&ixlib=rb-4.0.3&q=80&w=1080"
alt=""
/>
</div>
<div class="wa-split:column wa-align-items-stretch wa-gap-xs">
<div class="wa-stack wa-gap-xs">
<span class="wa-split wa-gap-xs">
<h3 class="wa-heading-m">Convertible</h3>
<span>$32.00</span>
</span>
<wa-tag size="small" variant="neutral" appearance="filled" pill style="width: fit-content">Cherry Red</wa-tag>
</div>
<div class="wa-split">
<wa-badge appearance="filled" variant="success">In Stock</wa-badge>
<wa-button appearance="plain" size="small" variant="danger">
<wa-icon slot="suffix" name="trash"></wa-icon>
Remove
</wa-button>
</div>
</div>
</article>
<wa-divider></wa-divider>
<article class="wa-flank" style="--flank-size: 12rem">
<div class="wa-frame wa-border-radius-m" style="aspect-ratio: 3 / 2">
<img
src="https://images.unsplash.com/photo-1597670250484-0e9aff7f8804?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w1OTAyOTl8MHwxfGFsbHx8fHx8fHx8fDE3MTg2NDI4NTB8&ixlib=rb-4.0.3&q=80&w=1080"
alt=""
/>
</div>
<div class="wa-split:column wa-align-items-stretch wa-gap-xs">
<div class="wa-stack wa-gap-xs">
<span class="wa-split wa-gap-xs">
<h3 class="wa-heading-m">Racers (3 Pack)</h3>
<span>$80.00</span>
</span>
<wa-tag size="small" variant="neutral" appearance="filled" pill style="width: fit-content"
>Assorted Colors</wa-tag
>
</div>
<div class="wa-split">
<wa-badge appearance="filled" variant="success">In Stock</wa-badge>
<wa-button appearance="plain" size="small" variant="danger">
<wa-icon slot="suffix" name="trash"></wa-icon>
Remove
</wa-button>
</div>
</div>
</article>
<wa-divider></wa-divider>
<article class="wa-flank" style="--flank-size: 12rem">
<div class="wa-frame wa-border-radius-m" style="aspect-ratio: 3 / 2">
<img
src="https://images.unsplash.com/photo-1594787826350-19386fdb2363?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w1OTAyOTl8MHwxfGFsbHx8fHx8fHx8fDE3MTg2NDI4ODV8&ixlib=rb-4.0.3&q=80&w=1080"
alt=""
/>
</div>
<div class="wa-split:column wa-align-items-stretch wa-gap-xs">
<div class="wa-stack wa-gap-xs">
<span class="wa-split wa-gap-xs">
<h3 class="wa-heading-m">Volkswagen T2</h3>
<span>$60.00</span>
</span>
<wa-tag size="small" variant="neutral" appearance="filled" pill style="width: fit-content">Red/White</wa-tag>
</div>
<div class="wa-split">
<wa-badge appearance="filled" variant="warning">Low Stock</wa-badge>
<wa-button appearance="plain" size="small" variant="danger">
<wa-icon slot="suffix" name="trash"></wa-icon>
Remove
</wa-button>
</div>
</div>
</article>
<wa-divider></wa-divider>
<div class="wa-stack">
<div class="wa-split">
<h3 class="wa-heading-m">Subtotal</h3>
<span class="wa-body-l">$172.00</span>
</div>
<span class="wa-caption-m">Shipping and taxes calculated at checkout</span>
<wa-button size="large" variant="brand">Checkout</wa-button>
<div class="cluster">
<span class="wa-caption-m">Not quite ready?</span>
<wa-button appearance="plain" size="small" variant="brand">
Continue Shopping
<wa-icon name="arrow-right"></wa-icon>
</wa-button>
</div>
</div>
</div>
```
## Drawer
```html {.example .viewport}
<wa-drawer label="Shopping Cart" open>
<div class="wa-stack">
<article class="wa-flank" style="--flank-size: 6rem">
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1704677982224-89cd6d039fa6?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w1OTAyOTl8MHwxfGFsbHx8fHx8fHx8fDE3MTg2NDEwOTJ8&ixlib=rb-4.0.3&q=80&w=1080"
alt=""
/>
</div>
<div class="wa-stack wa-gap-2xs">
<div class="wa-split wa-gap-2xs">
<strong>AJ1 Low</strong>
<strong>$170.00</strong>
</div>
<span class="wa-caption-m">Multi-color</span>
<div class="wa-split wa-gap-2xs">
<span class="wa-body-s">Qty: 1</span>
<wa-button appearance="plain" size="small">Remove</wa-button>
</div>
</div>
</article>
<wa-divider></wa-divider>
<article class="wa-flank" style="--flank-size: 6rem">
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1672908615254-71a0b373eaba?q=80&w=3560&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="(Photograph by Hamed darzi)"
/>
</div>
<div class="wa-stack wa-gap-2xs">
<div class="wa-split wa-gap-2xs">
<strong>The Trails</strong>
<strong>$35.00</strong>
</div>
<span class="wa-caption-m">Twilight Blue</span>
<div class="wa-split wa-gap-2xs">
<span class="wa-body-s">Qty: 1</span>
<wa-button appearance="plain" size="small">Remove</wa-button>
</div>
</div>
</article>
<wa-divider></wa-divider>
<article class="wa-flank" style="--flank-size: 6rem">
<div class="wa-frame wa-border-radius-m">
<img
src="https://images.unsplash.com/photo-1693443687750-611ad77f3aba?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="(Photograph by tian dayong)"
/>
</div>
<div class="wa-stack wa-gap-2xs">
<div class="wa-split wa-gap-2xs">
<strong>Outcast 2-pack</strong>
<strong>$27.00</strong>
</div>
<span class="wa-caption-m">Black / White</span>
<div class="wa-split wa-gap-2xs">
<span class="wa-body-s">Qty: 1</span>
<wa-button appearance="plain" size="small">Remove</wa-button>
</div>
</div>
</article>
</div>
<div slot="footer" class="wa-stack" style="width: 100%">
<div class="wa-split">
<strong>Subtotal</strong>
<strong>$232.00</strong>
</div>
<span class="wa-caption-m">Shipping and taxes calculated at checkout.</span>
<wa-button variant="brand">Checkout</wa-button>
<wa-button appearance="plain" size="small" variant="brand">
Continue Shopping
<wa-icon name="arrow-right"></wa-icon>
</wa-button>
</div>
</wa-drawer>
<wa-button>Show Drawer</wa-button>
<script>
const drawer = document.getElementById('shopping-card-drawer');
const openButton = drawer.nextElementSibling;
openButton.addEventListener('click', () => (drawer.open = true));
</script>
```

View File

@@ -1,74 +0,0 @@
---
title: Store Navigation
description: 'Help shoppers explore categories and find products with all of the links they need to navigate your store.'
unpublished: true
isPro: true
---
## Popup Menu
```html {.example}
<wa-dropdown>
<wa-button slot="trigger" caret>Shop</wa-button>
<wa-menu class="mm-grid">
<div>
<wa-menu-label>Shop by Department</wa-menu-label>
<wa-menu-item value="apple">Mens</wa-menu-item>
<wa-menu-item value="banana">Womens</wa-menu-item>
<wa-menu-item value="orange">Kids</wa-menu-item>
<wa-menu-item value="orange">
Infants
<wa-menu slot="submenu">
<wa-menu-item value="uppercase">Newborns</wa-menu-item>
<wa-menu-item value="lowercase">6 Months</wa-menu-item>
<wa-menu-item value="capitalize">12 Months</wa-menu-item>
</wa-menu>
</wa-menu-item>
<wa-menu-item value="orange">Big & Tall</wa-menu-item>
</div>
<div>
<wa-menu-label>Shop by Category</wa-menu-label>
<wa-menu-item value="apple">Shirts</wa-menu-item>
<wa-menu-item value="banana">Pants</wa-menu-item>
<wa-menu-item value="orange">Shoes</wa-menu-item>
</div>
<div>
<wa-menu-label>Just Arrived</wa-menu-label>
<wa-menu-item>
<a href="#">
<img
style="width: 100%; max-width: 200px;"
src="https://images.unsplash.com/photo-1523381294911-8d3cead13475?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w1OTAyOTl8MHwxfGFsbHx8fHx8fHx8fDE3MTg2NDIzNDd8&ixlib=rb-4.0.3&q=80&w=1080"
/>
</a>
</wa-menu-item>
</div>
<wa-menu-item style="grid-column: 1/-1;">
<div style="display: flex; justify-content: space-between; align-items: center;">
<p style="margin:0;">footer with something cool in it</p>
<wa-button variant="brand" size="small">Signup now</wa-button>
</div>
</wa-menu-item>
</wa-menu>
</wa-dropdown>
<style>
.mm-grid {
display: grid;
grid-template-columns: repeat(3, auto);
gap: 1rem;
.card-overview small {
color: var(--wa-color-text-quiet);
}
.card-overview [slot='footer'] {
display: flex;
justify-content: space-between;
align-items: center;
}
}
</style>
```

View File

@@ -1,10 +0,0 @@
---
title: Business
description: TODO
unpublished: true
isPro: true
---
TODO Page Description
## Examples

View File

@@ -1,10 +0,0 @@
---
title: Entertainment
description: TODO
unpublished: true
isPro: true
---
TODO Page Description
## Examples

View File

@@ -1,28 +0,0 @@
---
title: Patterns
description: Patterns are reusable UI solutions to common design problems, ready to copy and paste into any project.
layout: overview
override:tags: []
isPro: false
---
<div class="max-line-length">
{% markdown %}
## What's a Pattern?
A pattern is a code snippet composed of components, style utilities, and native HTML that you can copy and paste into any project that uses Web Awesome.
It's a chunk of a user interface, rather than a single component, that allows you to implement UI solutions without designing something from scratch.
Patterns are designed according to proven usability practices so they're responsive, accessible, and cohesive out-of-the-box. Importantly, patterns don't handle business logic or functionality like form submissions, data processing, encryption, etc. It's up to you to implement the logic you need for your project.
Patterns are written as standard HTML, so you can use them just as you would any ol' HTML and customize them to fit your specific needs.
## Using Patterns
To use a pattern in your project, refer to each pattern's docs for a copyable code snippet. Paste the snippet wherever you'd like the pattern to appear in your project.
Because patterns use a combination of Web Awesome features, they work best when you have [native styles](/docs/utilities/native), [style utilities](/docs/utilities), and a [theme](/docs/themes) installed in addition to Web Awesome [components](/docs/components). Refer to the [Installation page](/docs/) to set up all of these features in your project.
{% endmarkdown %}
</div>

View File

@@ -1,12 +0,0 @@
---
title: Ecommerce
description: ''
icon: checkbox
isPro: true
---
<p>
<wa-button href="/assets/examples/layouts/ecommerce-1.html" target="_blank">
Open demo in a new window
</wa-button>
</p>

View File

@@ -1,10 +0,0 @@
---
title: Membership
description: TODO
unpublished: true
isPro: true
---
TODO Page Description
## Examples

View File

@@ -1,180 +0,0 @@
---
title: News
description: TODO
unpublished: true
isPro: true
---
TODO Page Description
## Examples
### Paywall
```html {.example}
<div>
<wa-dialog label="You've run out of free articles..." class="dialog-header">
<wa-button href="#">Register</wa-button>
Already a subscriber? <a href="#">Login</a>
</wa-dialog>
<wa-button>Open Paywall</wa-button>
<script>
const dialog = document.querySelector('.dialog-header');
const openButton = dialog.nextElementSibling;
openButton.addEventListener('click', () => (dialog.open = true));
</script>
</div>
```
## Related articles
```html {.example}
<div>
<wa-card>
<div class="card-body">
<div style="border-bottom: 1px solid var(--wa-color-surface-border);margin-bottom: 1rem; padding-bottom: 1rem;">
<img src="https://img.fortawesome.com/cfa83f3c/article-flower.jpg" alt="" />
<h2 style="margin-bottom: var(--wa-space-s);">Title</h2>
<p style="margin-bottom: var(--wa-space-3xs);">
Fusce lectus lorem, tincidunt non semper sit amet, laoreet vitae nunc. Morbi egestas, libero vitae elementum
pretium, nibh ipsum faucibus lacus, id pretium urna ligula eu mauris. Aliquam erat volutpat. Mauris pharetra
lacus rhoncus ligula bibendum, at consectetur erat auctor.
</p>
<span style="font-size: small;font-weight: 600;font-style: italic;">sub-title</span>
</div>
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;">
<div>
<img src="https://img.fortawesome.com/cfa83f3c/article-flower.jpg" alt="" />
<p style="margin-bottom: var(--wa-space-3xs);">
Etiam et tincidunt est, sollicitudin fermentum ligula. Class aptent taciti sociosqu ad litora torquent per
conubia nostra, per inceptos himenaeos. Ut suscipit libero at velit fringilla, ac pretium lorem rutrum. Cras
luctus blandit semper.
</p>
<span style="font-size: small;font-weight: 600;font-style: italic;">sub-title</span>
</div>
<div>
<img src="https://img.fortawesome.com/cfa83f3c/article-flower.jpg" alt="" />
<p style="margin-bottom: var(--wa-space-3xs);">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris in fringilla ante. In mattis sapien ac
aliquet mattis.
</p>
<span style="font-size: small;font-weight: 600;font-style: italic;">sub-title</span>
</div>
</div>
</div>
</wa-card>
</div>
```
## Footer
```html {.example}
<div class="news-footer">
<div class="container">
<!-- <div class="logo"> <wa-icon name="user-secret"></wa-icon> <h1 style="--wa-space-xl: 0;">Daily Snoop</h1></div> -->
<div class="nav">
<section>
<h4 style="--wa-space-xl: 0;">News</h4>
<ul>
<li><a href="#">U.S.</a></li>
<li><a href="#">World</a></li>
<li><a href="#">Politics</a></li>
<li><a href="#">Education</a></li>
<li><a href="#">Sports</a></li>
<li><a href="#">Business</a></li>
<li><a href="#">Tech</a></li>
<li><a href="#">Science</a></li>
</ul>
</section>
<section>
<h4 style="--wa-space-xl: 0;">Arts</h4>
<ul>
<li><a href="#">Book Review</a></li>
<li><a href="#">Dance</a></li>
<li><a href="#">Movies</a></li>
<li><a href="#">Pop Culture</a></li>
</ul>
</section>
<section>
<h4 style="--wa-space-xl: 0;">Subscriptions</h4>
<ul class="list">
<li>
<a href="#"><wa-icon fixed-width name="game-board-simple"></wa-icon> Crossword</a>
</li>
<li>
<a href="#"><wa-icon fixed-width name="paper-plane"></wa-icon> Newsletters</a>
</li>
<li>
<a href="#"><wa-icon fixed-width name="microphone-lines"></wa-icon> Podcast</a>
</li>
</ul>
</section>
</div>
<div class="social">
<a href="">
<wa-icon family="brands" name="bluesky"></wa-icon>
</a>
<a href="">
<wa-icon family="brands" name="instagram"></wa-icon>
</a>
<a href="">
<wa-icon family="brands" name="facebook"></wa-icon>
</a>
<a href="">
<wa-icon family="brands" name="mastodon"></wa-icon>
</a>
</div>
<div>
<img src="https://img.fortawesome.com/cfa83f3c/app_store.svg" alt="" />
<img src="https://img.fortawesome.com/cfa83f3c/google_play.svg" alt="" />
</div>
<div class="legal">&#169; 2024 All rights reserved.</div>
</div>
</div>
<style>
.news-footer {
.container {
max-width: 960px;
margin: auto;
}
.logo {
display: flex;
align-items: center;
}
.nav {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
.nav ul {
list-style-type: none;
margin-left: 0;
}
.social a {
text-decoration: none;
display: inline-block;
}
.social a:not(:last-child) {
margin-right: 1rem;
}
section ul li a {
display: flex;
align-items: center;
text-decoration: none;
--wa-color-text-link: var(--wa-color-gray-20);
wa-icon {
margin-right: 0.5rem;
}
}
}
</style>
```

View File

@@ -1,10 +0,0 @@
---
title: Non-profit
description: TODO
unpublished: true
isPro: true
---
TODO Page Description
## Examples

View File

@@ -1,6 +0,0 @@
{
"layout": "patterns.njk",
"tags": ["patterns"],
"wide": true,
"isPro": true
}

View File

@@ -1,10 +0,0 @@
---
title: Portfolio
description: TODO
unpublished: true
isPro: true
---
TODO Page Description
## Examples

View File

@@ -1,10 +0,0 @@
---
title: Product Landing
description: TODO
unpublished: true
isPro: true
---
TODO Page Description
## Examples

View File

@@ -1,9 +0,0 @@
---
title: Active
description: Energetic and tactile, always in motion.
isPro: true
tags: pro
fonts:
body: Inter
dimension: Subtle
---

View File

@@ -1,10 +0,0 @@
---
title: Brutalist
description: Sharp, square, and unapologetically bold.
isPro: true
tags: pro
fonts:
body: Space Grotesk
heading: IBM Plex Sans Condensed
code: Space Mono
---

View File

@@ -1,7 +0,0 @@
---
title: Custom
description: Your very own custom theme.
isPro: true
tags: pro
order: 98
---

View File

@@ -1,8 +0,0 @@
---
title: Glossy
description: Bustling with plenty of luster and shine.
isPro: true
tags: pro
fonts:
body: Figtree
---

View File

@@ -1,88 +0,0 @@
---
title: Matter
description: Digital design inspired by the real world.
isPro: true
tags: pro
fonts:
body: 'Wix Madefor Text'
code: Roboto Mono
longform: Roboto Serif
---
Set the page theme to "{{ title }}" from the top right to preview the following examples.
## Floating Labels
This theme implements "floating labels" for `wa-input`, `wa-textarea`, `wa-select`,
which makes labels look like placeholders when the input is empty, does not have an actual placeholder, and is not focused.
```html {.example}
<wa-input label="What is your name?"></wa-input>
<br>
<wa-input label="What is your name?" appearance="filled"></wa-input>
```
## Ripple Effect
This theme implements a ripple effect for buttons, including native buttons.
Click on the following buttons to observe it:
```html {.example}
<wa-button variant="brand">Button</wa-button>
<button class="wa-brand">Button</button>
```
### Customization
You can use several properties to customize the ripple effect.
These properties can be set on any ancestor, including the root element:
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `--wa-ripple-start-radius` | `<length>` | `0.1em` | The starting radius of the ripple effect. |
| `--wa-ripple-start-opacity` | `<number>` | `0.1` | The starting opacity of the ripple effect. |
| `--wa-ripple-duration` | `<time>` | `calc(2 * var(--wa-transition-slow))` | The duration of the ripple effect transition. |
Any of these can be used to disable the ripple effect:
```css
--wa-ripple-start-radius: 0em;
```
```css
--wa-ripple-start-opacity: 0;
```
```css
--wa-ripple-duration: 0s;
```
These properties would only work on the button itself:
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `--wa-ripple-center-x` | `<percentage>` | `50%` | The x-coordinate of the ripple center point as a percentage of the button width. |
| `--wa-ripple-center-y` | `<percentage>` | `50%` | The y-coordinate of the ripple center point as a percentage of the button height. |
### Ripple Center Point
By default the ripple effect starts from the center of the button.
If you want it to start from the position the button was clicked, you can use this JS snippet:
```js
document.addEventListener("mousedown", evt => {
let target = evt.target;
if (!target.matches?.('wa-button, button')) {
return;
}
let rect = target.getBoundingClientRect();
let x = (evt.clientX - rect.left) / rect.width;
let y = (evt.clientY - rect.top) / rect.height;
target.style.setProperty("--mouse-local-x", x);
target.style.setProperty("--mouse-local-y", y);
});
```

View File

@@ -1,9 +0,0 @@
---
title: Mellow
description: Soft and soothing, like a lazy Sunday morning.
isPro: true
fonts:
body: Mulish
heading: Lora
longform: Lora
---

View File

@@ -1,11 +0,0 @@
---
title: Playful
description: Cheerful and engaging, like a playground on screen.
isPro: true
tags: pro
dimension: Smooth
fonts:
body: Nunito
heading: Fredoka
code: Azeret Mono
---

View File

@@ -1,10 +0,0 @@
---
title: Premium
description: The ultimate in sophistication and style.
isPro: true
tags: pro
fonts:
body: DM Sans
heading: Playfair Display
longform: Playfair
---

View File

@@ -1,8 +0,0 @@
---
title: Tailspin
description: Like a bird in flight, guiding you from there to here.
isPro: true
tags: pro
fonts:
body: Inter
---

46
package-lock.json generated
View File

@@ -1,22 +1,16 @@
{
"name": "@shoelace-style/webawesome",
"name": "@webawesome/monorepo",
"version": "3.0.0-alpha.13",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@shoelace-style/webawesome",
"name": "@webawesome/monorepo",
"version": "3.0.0-alpha.13",
"license": "MIT",
"dependencies": {
"@ctrl/tinycolor": "^4.1.0",
"@floating-ui/dom": "^1.6.13",
"@shoelace-style/animations": "^1.2.0",
"@shoelace-style/localize": "^3.2.1",
"composed-offset-position": "^0.0.6",
"lit": "^3.2.1",
"qr-creator": "^1.0.0"
},
"workspaces": [
"packages/*"
],
"devDependencies": {
"@11ty/eleventy": "3.0.0",
"@custom-elements-manifest/analyzer": "^0.10.4",
@@ -60,7 +54,6 @@
"marked": "^11.1.0",
"node-html-parser": "^6.1.13",
"npm-check-updates": "^17.1.11",
"nunjucks": "^3.2.4",
"ora": "^8.1.1",
"pascal-case": "^3.1.2",
"playwright": "^1.49.1",
@@ -2491,6 +2484,10 @@
"resolved": "https://registry.npmjs.org/@shoelace-style/localize/-/localize-3.2.1.tgz",
"integrity": "sha512-r4C9C/5kSfMBIr0D9imvpRdCNXtUNgyYThc4YlS6K5Hchv1UyxNQ9mxwj+BTRH2i1Neits260sR3OjKMnplsFA=="
},
"node_modules/@shoelace-style/webawesome": {
"resolved": "packages/webawesome",
"link": true
},
"node_modules/@sindresorhus/is": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz",
@@ -13005,6 +13002,12 @@
"node": ">=0.8.0"
}
},
"node_modules/style-observer": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/style-observer/-/style-observer-0.0.7.tgz",
"integrity": "sha512-t75H3CRy+vd5q3yqyrf/De4tkz33hPQTiCcfh0NTesI5G7kJnZ227LEYTwqjKTtaFOCJvqZcYFHpJlF8bsk3bQ==",
"license": "MIT"
},
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -13965,6 +13968,25 @@
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
},
"packages/webawesome": {
"name": "@shoelace-style/webawesome",
"version": "3.0.0-alpha.13",
"license": "MIT",
"dependencies": {
"@ctrl/tinycolor": "^4.1.0",
"@floating-ui/dom": "^1.6.13",
"@shoelace-style/animations": "^1.2.0",
"@shoelace-style/localize": "^3.2.1",
"composed-offset-position": "^0.0.6",
"lit": "^3.2.1",
"qr-creator": "^1.0.0",
"style-observer": "^0.0.7"
},
"devDependencies": {},
"engines": {
"node": ">=14.17.0"
}
}
}
}

View File

@@ -1,78 +1,24 @@
{
"name": "@shoelace-style/webawesome",
"name": "@webawesome/monorepo",
"private": true,
"description": "A forward-thinking library of web components.",
"version": "3.0.0-alpha.13",
"homepage": "https://webawesome.com/",
"author": "Web Awesome",
"license": "MIT",
"customElements": "dist/custom-elements.json",
"web-types": "./dist/web-types.json",
"type": "module",
"types": "dist/webawesome.d.ts",
"jsdelivr": "./dist/webawesome.loader.js",
"exports": {
".": {
"types": "./dist/webawesome.d.ts",
"import": "./dist/webawesome.js"
},
"./dist/custom-elements.json": "./dist/custom-elements.json",
"./dist/webawesome.js": "./dist/webawesome.js",
"./dist/webawesome.loader.js": "./dist/webawesome.loader.js",
"./dist/themes": "./dist/themes",
"./dist/themes/*": "./dist/themes/*",
"./dist/components": "./dist/components",
"./dist/components/*": "./dist/components/*",
"./dist/react": "./dist/react/index.js",
"./dist/react/*": "./dist/react/*",
"./dist/translations": "./dist/translations",
"./dist/translations/*": "./dist/translations/*"
},
"files": [
"dist",
"cdn"
"workspaces": [
"packages/*"
],
"keywords": [
"web components",
"custom elements",
"components"
],
"repository": {
"type": "git",
"url": "git+https://github.com/shoelace-style/webawesome.git"
},
"bugs": {
"url": "https://github.com/shoelace-style/webawesome/issues"
},
"scripts": {
"start": "node scripts/build.js --develop",
"start:alpha": "echo 'This command has been deprecated. Use: \"npm start\"\n'",
"build": "node scripts/build.js",
"build:serve": "npm run build && npx http-server _site -p 4000",
"publish-alpha-cdn": "./publish-alpha-cdn.sh",
"create": "plop --plopfile scripts/plop/plopfile.js",
"test": "CSR_ONLY=\"true\" web-test-runner --group default",
"test:component": "CSR_ONLY=\"true\" web-test-runner -- --watch --group",
"test:contrast": "node scripts/color-palette-contrast-test.js",
"test:watch": "web-test-runner --watch --group default",
"prettier": "prettier --check --log-level=warn .",
"prettier:fix": "prettier --write --log-level=warn .",
"spellcheck": "cspell \"**/*.{js,ts,json,html,css,md}\" --no-progress",
"verify": "npm run prettier && npm run build && npm run test",
"prepublishOnly": "npm run verify",
"check-updates": "npx npm-check-updates --interactive --format group"
"check-updates": "npx npm-check-updates --interactive --format group",
"start": "cd packages/webawesome && npm run start",
"start:pro": "cd packages/webawesome-pro && npm run start"
},
"engines": {
"node": ">=14.17.0"
},
"dependencies": {
"@ctrl/tinycolor": "^4.1.0",
"@floating-ui/dom": "^1.6.13",
"@shoelace-style/animations": "^1.2.0",
"@shoelace-style/localize": "^3.2.1",
"composed-offset-position": "^0.0.6",
"lit": "^3.2.1",
"qr-creator": "^1.0.0"
},
"dependencies": {},
"devDependencies": {
"@11ty/eleventy": "3.0.0",
"@custom-elements-manifest/analyzer": "^0.10.4",
@@ -116,7 +62,6 @@
"marked": "^11.1.0",
"node-html-parser": "^6.1.13",
"npm-check-updates": "^17.1.11",
"nunjucks": "^3.2.4",
"ora": "^8.1.1",
"pascal-case": "^3.1.2",
"playwright": "^1.49.1",
@@ -142,3 +87,4 @@
]
}
}

View File

@@ -4,8 +4,11 @@ import { customElementVsCodePlugin } from 'custom-element-vs-code-integration';
import { parse } from 'comment-parser';
import fs from 'fs';
import { pascalCase } from 'pascal-case';
import * as url from 'url';
import * as path from "node:path"
const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
const packageData = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
const packageData = JSON.parse(fs.readFileSync(path.join(__dirname, 'package.json'), 'utf8'));
const { name, description, version, author, homepage, license } = packageData;
const outdir = 'dist-cdn';
@@ -183,3 +186,4 @@ export default {
// })
],
};

View File

@@ -1,4 +1,5 @@
import * as path from 'node:path';
import * as fs from "node:fs"
import { anchorHeadingsPlugin } from './_utils/anchor-headings.js';
import { codeExamplesPlugin } from './_utils/code-examples.js';
import { copyCodePlugin } from './_utils/copy-code.js';
@@ -33,22 +34,22 @@ const globalData = {
},
};
export default function (eleventyConfig) {
export default async function (eleventyConfig) {
/**
* If you plan to add or remove any of these extensions, make sure to let either Konnor or Cory know as these
* passthrough extensions will also need to be updated in the Web Awesome App.
* If you plan to add or remove any of these extensions, make sure to let either Konnor or Cory know as these passthrough extensions
* will also need to be updated in the Web Awesome App.
*/
const passThroughExtensions = ['js', 'css', 'png', 'svg', 'jpg', 'mp4'];
const baseDir = process.env.BASE_DIR || 'docs';
const passThrough = [...passThroughExtensions.map(ext => path.join(baseDir, '**/*.' + ext))];
const docsDir = path.join(process.env.BASE_DIR || ".", 'docs');
const passThrough = [...passThroughExtensions.map(ext => path.join(docsDir, '**/*.' + ext))];
/**
* This is the guard we use for now to make sure our final built files don't need a 2nd pass by the server. This keeps
* us able to still deploy the bare HTML files on Vercel until the app is ready.
* This is the guard we use for now to make sure our final built files dont need a 2nd pass by the server. This keeps us able to still deploy the bare HTML files on Vercel until the app is ready.
*/
const serverBuild = process.env.WEBAWESOME_SERVER === 'true';
// Add template data
for (let name in globalData) {
eleventyConfig.addGlobalData(name, globalData[name]);
}
@@ -157,15 +158,6 @@ export default function (eleventyConfig) {
]),
);
eleventyConfig.addPreprocessor('unpublished', '*', (data, content) => {
if (data.unpublished && process.env.ELEVENTY_RUN_MODE === 'build') {
// Exclude "unpublished" pages from final builds.
return false;
}
return content;
});
// Build the search index
eleventyConfig.addPlugin(
searchPlugin({
@@ -184,9 +176,9 @@ export default function (eleventyConfig) {
// eleventyConfig.addPlugin(formatCodePlugin());
// }
eleventyConfig.addPassthroughCopy({
'docs/assets': 'assets',
});
let assetsDir = path.join(process.env.BASE_DIR || "docs", "assets")
fs.cpSync(assetsDir, path.join(eleventyConfig.directories.output, "assets"), { recursive: true })
for (let glob of passThrough) {
eleventyConfig.addPassthroughCopy(glob);
@@ -216,14 +208,16 @@ export default function (eleventyConfig) {
// componentModules,
// });
// }
return {
markdownTemplateEngine: 'njk',
dir: {
input: 'docs',
includes: '_includes',
layouts: '_layouts',
},
templateFormats: ['njk', 'md'],
};
}
export const config = {
markdownTemplateEngine: 'njk',
dir: {
input: 'docs',
includes: '_includes',
layouts: '_layouts',
},
templateFormats: ['njk', 'md'],
}

View File

@@ -2,12 +2,15 @@
* @module components Fetches components from custom-elements.json and exposes them in a saner format.
*/
import { readFileSync } from 'fs';
import { dirname, resolve } from 'path';
import { join, dirname, resolve } from 'path';
import { fileURLToPath } from 'url';
const __dirname = dirname(fileURLToPath(import.meta.url));
const customElementsJSON = process.env.DIST_DIR
? join(process.env.DIST_DIR, "custom-elements.json")
: resolve(__dirname, '../../dist/custom-elements.json')
const manifest = JSON.parse(readFileSync(resolve(__dirname, '../../dist/custom-elements.json'), 'utf-8'));
const manifest = JSON.parse(readFileSync(customElementsJSON), 'utf-8');
const components = manifest.modules.flatMap(module => {
return module.declarations
@@ -73,3 +76,4 @@ components.sort((a, b) => {
});
export default components;

View File

@@ -30,6 +30,21 @@
{# Web Awesome #}
<script type="module" src="/dist/webawesome.loader.js"></script>
{# Fallback loading when using the free repo #}
<link rel="preconnect" href="https://early.webawesome.com">
<script type="module">
document.addEventListener("wa-discovery-complete", loadLayout)
function loadLayout () {
if (!customElements.get("wa-page")) {
import("https://early.webawesome.com/webawesome@3.0.0-alpha.13/dist/components/page/page.js")
.catch((e) => {
console.error(e)
// known errors with dual registration. This is only a thing in the free repo.
})
}
}
</script>
<script type="module" src="/assets/scripts/theme-picker.js"></script>
{# Preset Theme #}
{% if noTheme %}

View File

Before

Width:  |  Height:  |  Size: 742 B

After

Width:  |  Height:  |  Size: 742 B

View File

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

Some files were not shown because too many files have changed in this diff Show More