Files
webawesome/docs/index.md
Konnor Rogers 79bafc513a 11ty for webawesome-app (#803)
* working on integration

* 11ty for webawesome + app

* add flashes

* additional changes

* prettier

* add note about nunjucks

* prettier
2025-03-18 13:04:24 -04:00

388 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Web Awesome
description: Build better with Web Awesome, the open source library of web components from Font Awesome.
layout: page
---
<style>
.title,
.anchor-heading a,
#outline-expandable {
display: none;
}
wa-page > main {
--content-width: 56rem;
--content-padding-inline: 2rem;
--content-flow-spacing: 4rem;
max-width: 100%;
padding: 0 !important;
& p, h1, h2, h3, h4, h5, h6 {
margin: 0;
}
}
/** this technically relies on insertion order. */
@media screen and (max-width: 768px) {
wa-page > main {
--content-flow-spacing: 3rem !important;
}
}
.brand-font {
font-family: cera-round-pro;
}
.emphasis {
position: relative;
&::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
background-color: var(--wa-brand-orange);
border-radius: var(--wa-border-radius-pill);
width: 100%;
height: 0.1em;
}
}
.hero-background {
background-color: var(--wa-brand-orange);
background-image: linear-gradient(color-mix(in oklab, var(--wa-brand-orange), orangered 40%) 1px, transparent 1px), linear-gradient(90deg, color-mix(in oklab, var(--wa-brand-orange), orangered 40%) 1px, transparent 1px);
background-size: 2rem 2rem;
color: white;
padding: calc(var(--content-flow-spacing) * 1.875) 0 var(--content-flow-spacing) 0;
}
.hero-content {
max-width: var(--content-width);
margin-inline: auto;
padding-inline: var(--content-padding-inline);
& > * + * {
margin-block-start: 2rem;
}
& h1 {
font-size: clamp(2.5625rem, 13vw, 3.25rem);
}
& .emphasis::after {
background-color: var(--wa-brand-grey);
}
& .wa-crown svg {
width: 4rem;
& path {
fill: white;
}
}
}
.hero-cta {
display: flex;
align-items: center;
gap: 1.5rem;
flex-wrap: wrap;
background-color: var(--wa-brand-grey);
border-radius: 0.75rem;
font-size: 0.875rem;
padding: 1.5rem;
& > *:first-child {
flex: 1 1 67%;
}
& wa-button {
--border-color: black;
--border-width: 0.125rem;
box-shadow: 0 0.25rem 0 0 var(--border-color);
flex: 1 1 auto;
height: 2.5rem;
&:active:not([disabled]) {
box-shadow: 0 0 0 0 transparent;
transform: translateY(0.25rem);
}
}
}
.home-wrapper {
max-width: var(--content-width);
margin-block: var(--content-flow-spacing);
margin-inline: auto;
padding-inline: var(--content-padding-inline);
}
.home-wrapper > * + * {
margin-block-start: var(--content-flow-spacing);
}
.summary {
background-color: var(--wa-brand-grey);
border-radius: 1.125rem;
color: white;
padding: var(--content-flow-spacing);
& > * + * {
margin-block-start: 2rem;
}
& .grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(30ch, 100%), 1fr));
gap: 2rem;
& h3 {
font-size: 1rem;
}
& p {
font-size: 0.875rem;
}
}
}
.split-block {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(30ch, 100%), 1fr));
column-gap: 4rem;
row-gap: 2rem;
align-items: center;
& > * > * + * {
margin-block-start: 1rem;
}
}
.link-panel {
background-color: var(--wa-color-neutral-fill-quiet);
border-radius: 0.75rem;
padding: 1.25rem;
& h3 {
font-size: 1rem;
}
& .icon-heading wa-icon {
background-color: var(--wa-color-neutral-fill-loud);
color: var(--wa-color-neutral-on-loud);
}
& p {
font-size: 0.875rem;
}
}
.icon-heading {
display: flex;
align-items: center;
gap: 1rem;
margin-block-end: 1rem;
& wa-icon {
display: flex;
align-items: center;
justify-content: center;
background-color: var(--wa-brand-orange);
color: white;
border-radius: 0.25rem;
aspect-ratio: 1;
padding: 0.5em;
}
& h3 {
font-size: 1rem;
}
}
footer {
display: flex;
flex-direction: column;
gap: 1rem;
font-size: 0.875rem;
& .wa-crown svg {
width: 2rem;
}
& .tagline {
font-size: 1rem;
}
& .attribution {
align-self: flex-start;
& .button-list {
display: flex;
flex-wrap: wrap;
flex: 1 1 auto;
gap: 0.5rem;
}
& wa-button {
height: 1.5rem;
font-size: 0.75rem;
}
}
}
.alpha-notice {
display: flex;
flex-wrap: wrap;
gap: 1rem;
& > * {
flex-basis: calc(((30ch * 2 + 1rem) - 100%) * 999);
}
& > * {
flex-grow: 2;
}
& > * + * {
flex-grow: 1;
}
& wa-callout,
& wa-button::part(base) {
height: 100%;
width: 100%;
}
}
wa-button.tile::part(base) {
border-color: var(--wa-color-surface-border);
border-radius: 0.75rem;
color: var(--wa-color-text-normal);
display: block;
height: 100%;
line-height: var(--wa-line-height-normal);
padding: 1.25rem;
text-align: left;
white-space: wrap;
}
wa-button.tile::part(suffix) {
display: none;
}
wa-button.tile {
width: 100%;
height: 100%;
& h3 {
font-size: 1rem;
}
& .icon-heading + wa-icon {
color: var(--wa-color-text-quiet);
}
& p {
font-size: 0.875rem;
font-weight: var(--wa-font-weight-normal);
}
&::part(label) {
width: 100%;
}
}
wa-callout {
--spacing: 1.25rem;
height: 100%;
& .icon-heading wa-icon {
background-color: var(--wa-color-warning-fill-normal);
color: var(--wa-color-warning-on-normal);
}
& p {
font-size: 0.875rem;
}
}
</style>
<div class="hero-background">
<div class="hero-content">
<div class="wa-crown">
{% include "logo-simple.njk" %}
</div>
<h1 class="brand-font">Make something <span class="emphasis">awesome</span> with open-source web components</h1>
<div class="hero-cta">
<span><em>Psst!</em> You can pre-order Web Awesome Pro at a low, guaranteed-for-life price &mdash; but not for long. Get in while the gettins good.</span>
<wa-button class="wa-dark" size="small" href="https://www.kickstarter.com/projects/fontawesome/web-awesome">
<wa-icon slot="prefix" name="person-running"></wa-icon>
Pre-order WA Pro
</wa-button>
</div>
</div>
</div>
<div class="home-wrapper">
<div class="alpha-notice">
<div>
<wa-callout variant="warning">
<div class="icon-heading">
<wa-icon name="triangle-exclamation" variant="regular" fixed-width></wa-icon>
<h3>You're in alpha territory</h3>
</div>
<p>What you see may not be perfect (we're only humans!) and is subject to change. We encourage you to <a href="https://github.com/shoelace-style/webawesome-alpha/issues">report bugs</a> or <a href="https://github.com/shoelace-style/webawesome-alpha/discussions">ask for help</a>!</p>
</wa-callout>
</div>
<div>
<wa-button href="/docs/installation" appearance="outlined" class="tile">
<div style="display: flex; justify-content: space-between; align-items: center; margin-block-end: 1rem;">
<div class="icon-heading" style="margin-block-end: 0;">
<wa-icon name="pen-ruler" fixed-width></wa-icon>
<h3>Get started</h3>
</div>
<wa-icon name="arrow-right" fixed-width></wa-icon>
</div>
<p>Check out our installation guide to start building with Web Awesome.</p>
</wa-button>
</div>
</div>
<wa-divider></wa-divider>
<div class="summary">
<h2 class="brand-font">What's <span class="emphasis">Web</span> Awesome?</h2>
<p>Web Awesome is the biggest open-source library of meticulously designed, highly customizable, and framework-agnostic UI components.</p>
<div class="grid">
<div>
<div class="icon-heading">
<wa-icon name="code" fixed-width></wa-icon>
<h3>Entirely native</h3>
</div>
<p>Built on web standards to last for years to come. No excess tooling. No third-party bloat.</p>
</div>
<div>
<div class="icon-heading">
<wa-icon name="palette" fixed-width></wa-icon>
<h3>Fully customizable</h3>
</div>
<p>Show off your own style with components that consistently adapt to your theme.</p>
</div>
<div>
<div class="icon-heading">
<wa-icon name="wheelchair-move" fixed-width></wa-icon>
<h3>Accessibility forward</h3>
</div>
<p>Build a website that everyone can use. Designed to be inclusive and usable by everyone.</p>
</div>
<div>
<div class="icon-heading">
<wa-icon name="handshake-simple" fixed-width></wa-icon>
<h3>Proudly open source</h3>
</div>
<p>Use Web Awesome Free however you like. Always free, always open source.</p>
</div>
</div>
</div>
<div class="split-block">
<div>
<h2 class="brand-font"><span class="emphasis">You</span> put the awesome in Web Awesome</h2>
<p>Web Awesome started as an open-source project fueled by contributions from an engaged community of developers, and we want to keep it that way. The core of Web Awesome is — and always will be — free and open source.</p>
<p>Whether youre a developer, designer, or budding tech nerd, we want you a part of the conversation.</p>
</div>
<div>
<div class="link-panel">
<div class="icon-heading">
<wa-icon name="envelope-open" fixed-width></wa-icon>
<h3>Get in touch</h3>
</div>
<p>Have a question? Want to share your feedback? Just stopping by to say 'hi'? Email us at <a href="mailto:hello@webawesome.com">hello@webawesome.com</a>.</p>
</div>
<div class="link-panel">
<div class="icon-heading">
<wa-icon name="hashtag" fixed-width></wa-icon>
<h3>Follow us</h3>
</div>
<p>Keep up with Web Awesome through updates, announcements, and polls. Find us on <a href="https://x.com/webawesomer">Twitter (X)</a> and <a href="https://www.instagram.com/web.awesome">Instagram</a>.</p>
</div>
</div>
</div>
<wa-divider></wa-divider>
<footer>
<div class="wa-crown">
{% include "logo-simple.njk" %}
</div>
<div class="split-block">
<div>
<strong class="brand-font tagline">Let's Make Something Awesome</strong>
<p>Web Awesome is the design system platform and open source library of web components from your fellow nerds at <a href="https://www.fontawesome.com/">Font Awesome</a>.</p>
</div>
<div class="attribution">
<span>Special thanks</span>
<div class="button-list">
<wa-button appearance="filled" pill href="https://lit.dev/">Lit</wa-button>
<wa-button appearance="filled" pill href="https://github.com/open-wc/custom-elements-manifest">Custom Elements Manifest</wa-button>
<wa-button appearance="filled" pill href="https://www.11ty.dev/">11ty</wa-button>
<wa-button appearance="filled" pill href="https://floating-ui.com/">Floating UI</wa-button>
<wa-button appearance="filled" pill href="https://animate.style/">animate.css</wa-button>
<wa-button appearance="filled" pill href="https://lunrjs.com/">Lunr</wa-button>
</div>
</div>
</div>
<div>
&copy; Fonticons, Inc.
</div>
</footer>
</div>