Font Awesome Build Awesome
Try SSR Server-side rendering (SSR) generates component HTML on the server before the page loads, improving SEO and initial load time. Use the switch to see Web Awesome components render with and without SSR.
Search this website ⌘KCtrl+K Light Dark System Docs Select Color Scheme Default Awesome Shoelace Active Brutalist Glossy Matter Mellow Playful Premium Tailspin Docs Select Theme View Project on GitHub Star Project on GitHub
Start Components Docs Help Pro
Login Log into your account
Web Awesome Font Awesome Build Awesome
Search this site… /
Try SSR Server-side rendering (SSR) generates component HTML on the server before the page loads, improving SEO and initial load time. Use the switch to see Web Awesome components render with and without SSR.
Light Dark System Docs Select Color Scheme Default Awesome Shoelace Active Brutalist Glossy Matter Mellow Playful Premium Tailspin Docs Select Theme

Getting Started

  • Installation
  • Usage
  • Forms
  • Localization
  • Frameworks
  • Using with AI
  • Figma Design Kit ProThis requires access to Web Awesome Pro
  • Server Rendering

Resources

  • Accessibility
  • Browser Support
  • Contributing
  • Patterns ProPatterns require access to Web Awesome Pro
  • Migrating from Shoelace
  • Visual Tests
  • Changelog
  • Help & Support

Theming & Utilities

  • Overview
  • Built-in Themes
  • Color Palettes
  • Design Tokens
  • Customizing & Theming
  • CSS Utilities

Actions

  • Button
  • Button Group
  • Copy Button
  • Dropdown
    • Dropdown Item

Forms

  • Checkbox
  • Checkbox Group
  • Color Picker
  • Combobox ProThis requires access to Web Awesome Pro
  • Date Input ProThis requires access to Web Awesome Pro
  • Date Picker ProThis requires access to Web Awesome Pro
  • File Input ProThis requires access to Web Awesome Pro
  • Input
  • Known Date
  • Number Input
  • OTP Input
  • Radio Group
    • Radio
  • Rating
  • Select
    • Option
  • Slider
  • Switch
  • Tag Input
  • Textarea
  • Time Input

Layout

  • Accordion
    • Accordion Item
  • Card
  • Details
  • Dialog
  • Divider
  • Drawer
  • Page
  • Scroller
  • Split Panel

Navigation

  • Breadcrumb
    • Breadcrumb Item
  • Pagination
  • Tab Group
    • Tab
    • Tab Panel
  • Tree
    • Tree Item

Feedback

  • Badge
  • Callout
  • Progress Bar
  • Progress Ring
  • Skeleton
  • Spinner
  • Tag
  • Toast
    • Toast Item
  • Tooltip

Media

  • Animated Image
  • Avatar
  • Carousel
    • Carousel Item
  • Comparison
  • Icon
  • Markdown
  • QR Code
  • Video ProThis requires access to Web Awesome Pro
  • Video Playlist ProThis requires access to Web Awesome Pro
  • Zoomable Frame

Data Viz ProThis requires access to Web Awesome Pro

  • Bar Chart
  • Bubble Chart
  • Data Grid
  • Doughnut Chart
  • Line Chart
  • Pie Chart
  • Polar Area Chart
  • Radar Chart
  • Scatter Chart
  • Sparkline
  • Advanced Usage

Helpers

  • Animation
  • Format Bytes
  • Format Date
  • Format Number
  • Include
  • Intersection Observer
  • Mutation Observer
  • Popover
  • Popup
  • Random Content
  • Relative Time
  • Resize Observer

Help & Support

  • About Web Awesome
  • Using Web Awesome
  • Troubleshooting
  • Licensing
  • Pro & Billing
  • Account & Workspaces
  • Get Help
On This Page...
  • About Web Awesome
  • Using Web Awesome
  • Troubleshooting
  • Licensing
  • Pro & Billing
  • Account & Workspaces
  • Get Help

Help & Support

Whatever you're running into with Web Awesome, this is the place to get unstuck. Search the answers below or browse by topic, from installing Core to managing Pro seats. And if you need a human, Get Help reaches us.

Filter Questions

Getting Started Frameworks Contributing Core vs Pro Seats Refunds

About Web Awesome

Link to This Section

What Web Awesome is, how the open source project works, and where Pro fits in.

What is Web Awesome?

Link to This Section

Web Awesome is an open source library of UI components from the team at Font Awesome. It's built on standard web components, so it works with any framework, and it works in plain HTML with no framework at all. The core of it is free and always will be. Start with the Installation Guide.

How does Web Awesome relate to Font Awesome and Shoelace?

Link to This Section

Web Awesome comes from the team at Font Awesome, and it's the next major version of Shoelace. If you have a working Shoelace 2.x project, the migration guide walks through the upgrade component by component.

Where's the source code, and can I fork it?

Link to This Section

On GitHub, at shoelace-style/webawesome. Core is MIT-licensed, so forking it, patching it, and self-hosting your own build are all fine. We ask that you keep the MIT copyright and permission notice with anything you pass along, and that you don't pass your fork off as Web Awesome itself.

How can I contribute to Web Awesome?

Link to This Section

There are plenty of ways to contribute, and most of them aren't code: a well-written bug report, a fix to the documentation, triaging issues, answering someone's question in the community chat. If you do want to send code, open an issue first (unless it's something small like a typo) and point your pull request at the next branch. The contributing guide covers the rest, including what makes a bug report easy to act on.

How do I report a security issue?

Link to This Section

There's a security policy for exactly this. It names the address to write to and the subject line that flags your report as a security issue. We'll respond as soon as we can and keep you updated while it's being handled.

What's the difference between Core and Pro?

Link to This Section

Core is the free, open source library, and it's the whole foundation: components, themes, color palettes, native styles, and CSS utilities. Pro builds on top of it with:

  • Pro components, themes, and color palettes
  • The Theme Builder and color tools
  • Design patterns and the Figma Design Kit
  • A perpetual license and support from our team

The side-by-side comparison covers every row.

Do I need Pro to use Web Awesome at all?

Link to This Section

Web Awesome Core is free, open source, and always will be. You can get started right away. Pro adds the extras: more components, themes, patterns, the Figma Design Kit, and support from our team. And going Pro is what keeps Core free.

Which browsers does Web Awesome support?

Link to This Section
  • Browsers: the latest two major versions of Chrome, Safari, Edge, Firefox, and Opera
  • Screen readers we test with: NVDA in Chrome and Firefox, VoiceOver in Safari

Our Browser Support Policy has the details, including how we handle older browsers.

Is Web Awesome accessible?

Link to This Section

Accessibility isn't binary, so there's no honest yes-or-no here. What we can commit to: everything we build is developed with accessibility in mind, and we test and improve every component as best we can. But accessible building blocks won't make the rest of your page compliant on their own. Our Accessibility Commitment explains the whole position.

Can AI tools use the Web Awesome docs?

Link to This Section

Yes, in two machine-readable formats. There's an Agent Skill for tools that support it, which loads only the documentation the task at hand needs, and an llms.txt file with the full API reference in one text file. Both are generated with every build, so they land in your node_modules when you install from npm. The llms.txt format is still experimental, so let us know how it goes. Start at Using Web Awesome with AI.

Using Web Awesome

Link to This Section

Installing, frameworks, theming, and everyday questions about building with it.

Should I use the CDN or npm?

Link to This Section

The CDN is the easiest way to start: paste a couple of lines into your <head> and you can use any component. Install from npm instead if you'd rather import components in your JavaScript, since importing only the ones you use keeps your bundle as small as possible. You can also download the files and self-host them. The Installation Guide walks through all three.

I'm coming from Shoelace. Where do I start?

Link to This Section

The migration guide is written for exactly this. It starts with the mechanical find-and-replace (@shoelace-style/shoelace to @awesome.me/webawesome, then sl- to wa- across elements, events, and CSS variables), then walks component by component through what actually changed. Track your progress with the interactive checklist, or hand the mechanical passes to a coding agent using the prompt the guide provides. Its Frequent Gotchas section collects the surprises we hear about most.

Does Web Awesome work with React, Vue, Angular, or Svelte?

Link to This Section

All four, plus Vue 2, Astro, Express, and 11ty. Web Awesome is built on standard web components, so it works with any framework. The setup differs a little by framework:

  • React 19 and up needs no wrappers; React 18 and below use our legacy wrappers
  • Angular needs the custom elements schema
  • Vue needs its custom-element config
  • Svelte needs two-way binding done by hand

Pick yours on the Frameworks page, which links to a guide for each, with the known limitations.

How do I change how components look?

Link to This Section

Start with a theme. A theme, a color palette, and variant colors stack into the overall look, and you mix and match them with classes on your <html> element. To go further, override Web Awesome's --wa- design tokens in your own stylesheet. No preprocessor required. For one component at a time, Customizing & Theming covers CSS parts, custom properties, and custom states.

Can I use my Font Awesome Pro icons with Web Awesome?

Link to This Section

Yes. Provide your Font Awesome kit code with the data-fa-kit-code attribute or the setKitCode() method, then use your Pro and Pro+ icons through <wa-icon>. Both snippets are on the Installation Guide.

Does Web Awesome work with server-side rendering?

Link to This Section

It does, but it's experimental, partly because Lit's SSR package is too. The goal today is to reduce layout shifting and show a rough approximation of each component until its JavaScript is ready, not to make components work without JavaScript. The SSR guide covers setup and lists the known issues, which are worth a read before you commit.

Can I add or fix a translation?

Link to This Section

Please do. Translations live in src/translations in the GitHub repo, and you can edit them right there in the browser if you'd rather not clone anything. Send it as a pull request when you're done. Regional translations are welcome too, so a German (Switzerland) file is worth submitting even when a German one already exists. One thing worth knowing before you start: this mechanism translates what's inside our components, not the content of your app. Localization has the full picture.

Troubleshooting

Link to This Section

Something looks off or stopped working? Start here.

Why isn't my icon showing up?

Link to This Section

A blank space means the name didn't resolve to an SVG. Without a library attribute, <wa-icon> looks the name up in the default library, which is Font Awesome's free icons, so a name borrowed from another set won't be found. Check yours against Font Awesome's icon search. The other two usual suspects are a custom library that hasn't registered yet and a URL the browser refused, since icons load over CORS. Whichever it is, the icon fires a wa-error event when a fetch fails, so listen for that to catch any of them. If you're pulling from another set on purpose, register it with registerIconLibrary() and point the icon at it with library.

Why do styles flash before components load?

Link to This Section

That's a flash of undefined custom elements: the browser paints your markup before the component definitions have registered. Add class="wa-cloak" to the wrapper you want held back, or to <html> for the whole page, and it stays hidden until the elements inside are ready. The reveal takes care of itself. The autoloader strips the class when it finishes, and without the autoloader a two-second timeout does the revealing instead, so a slow network or a broken script never leaves you staring at a blank screen. If your JavaScript reads properties or calls methods on first load, wait for the elements too: customElements.whenDefined() for one component, allDefined() for every Web Awesome element in the DOM. Reducing FOUCE covers cloaking and a helper for Turbo apps; Usage covers the waiting.

Why are form submissions missing my fields?

Link to This Section

Check for a missing name. Web Awesome's form controls are form-associated custom elements, so they submit with a <form> the way native controls do: new FormData(form) reads them, form.checkValidity() includes them, form.reset() resets them. That also means the native rule applies: a control without a name attribute never lands in the submitted data. Add one to every <wa-input>, <wa-select>, <wa-checkbox>, and friend you expect to read back. Form Controls covers the rest, including validation.

Why doesn't dark mode work?

Link to This Section

Light mode applies by default, and dark mode is a class you add: class="wa-dark" on <html> for the whole page, or on any section to darken just that part. If you're coming from another library, make sure you swapped its color-scheme class name for this one. Don't put wa-dark (or wa-light, or wa-invert) directly on a component, though. Those classes reset the variant color tokens on whatever element they land on, which stomps the component's own variant styles. Put the class on a wrapper instead. Light and Dark Mode has the snippet for detecting the system preference and toggling.

Why don't my style overrides take effect?

Link to This Section

Most component styles live inside a shadow root, where your page CSS can't select them at all. What your CSS can win is the handful of things that reach across the boundary. Where both can target the same element, the browser ranks the outer page above the shadow tree before specificity even comes up, so a plain rule in your own stylesheet already beats the component's. Most of the !important declarations you're carrying can probably go. For everything sealed inside, Customizing & Theming covers the CSS parts, custom properties, and custom states each component exposes on purpose.

Cascade layers are the other thing worth checking. Some Web Awesome styles ship in cascade layers, and unlayered CSS beats every layer no matter the specificity. If your overrides sit inside a layer of your own, they lose to any unlayered rule on the page. Move them out of the layer.

Licensing

Link to This Section

What you can and can't do with Core and Pro, in plain language.

What does the MIT license let me do with Core?

Link to This Section

Just about anything. Core is MIT-licensed: use it, modify it, self-host it, embed it in web, mobile, and desktop apps, in personal or commercial projects. When you distribute copies or substantial portions, include the MIT copyright and permission notice. What you can't do is pass off modified components as the original Web Awesome, or use our name and logos in a way that implies endorsement.

Can I use Core in commercial projects?

Link to This Section

Yes. Core's MIT license covers commercial and open source projects alike, with no additional permissions needed. You can even sell copies. Just include the MIT copyright and permission notice with anything you distribute.

Do I need a separate license for every project?

Link to This Section

No. One subscription covers unlimited projects. Seats count people, not websites, so ship as much as you like.

Can I use Pro on client projects?

Link to This Section

Absolutely. Client work, commercial products, anything you build for someone else. The only wrinkle: if your client's own team wants to keep building with Pro after you hand off, they need seats of their own.

Can I use Pro in open source projects or templates I sell?

Link to This Section

That's the one place Pro can't go. No redistributing Pro components, no selling templates that are mostly Web Awesome. Use Web Awesome Core for that instead. It's MIT-licensed and made for exactly this. Full details in the Pro License.

Pro & Billing

Link to This Section

Seats, subscriptions, payments, invoices, and refunds.

How many people does one subscription cover?

Link to This Section

As many seats as you buy. One seat, one person. Pick any number from 1 to 99 at checkout and invite your team from your workspace.

Who on my team needs a seat?

Link to This Section

Anyone who designs or builds with Pro: dropping components into pages, editing themes, working from the Figma Design Kit. People who just use what you ship (clients, stakeholders, end users) don't need one.

Can I add seats later?

Link to This Section

Yep. Start small, add seats from your workspace settings whenever you need to, and put people in them right away.

Can I reassign seats as my team changes?

Link to This Section

Seats belong to the subscription, not to any one person. When someone leaves, free up their seat and hand it to the next hire. Here's how that works in your workspace.

How does billing work?

Link to This Section

You pay per seat, once a year. The monthly prices you see are just there to make comparing easier. Your subscription renews annually until you cancel.

What payment methods do you accept?

Link to This Section

Credit and debit cards, bank debits and redirects, and digital wallets like Apple Pay, Google Pay, and Alipay, all through Stripe at checkout.

How do I see what my next charge will be?

Link to This Section

Your workspace's Billing & Subscription tab shows it before it lands: the amount, how many seats, the price per seat, and the renewal date. Any discount you have is already worked in, and account credit shows on its own line. Your subscription renews once a year until you cancel. Owners and anyone with the billing role can see that tab.

Where do I find my invoices and receipts?

Link to This Section

They're in Stripe, and the way in is your workspace's Billing & Subscription tab: open the Stripe billing portal from there and your invoice history sits next to your payment method. Only the workspace owner and anyone with the billing role can see that tab, so if that's not you, ask one of them for a copy. Even after your subscription ends, that tab still gets you to your old invoices.

Can I get a refund?

Link to This Section

Within 30 days of purchase, as long as you haven't downloaded any Pro components or software yet. After that, purchases are final. The Limited Refund Policy has the specifics.

How do I cancel my subscription?

Link to This Section
  1. Open your workspace and go to the Billing & Subscription tab.
  2. Choose Manage Subscription in Stripe, and cancel from there.

Canceling doesn't cut you off right away. Your subscription runs to the end of the period you've already paid for, and the billing tab shows a Canceling badge with the date it ends. After that, you keep the last Pro version you had access to. If any of it looks wrong, get in touch and we'll walk you through it.

What happens to my work if I stop subscribing?

Link to This Section

Everything you shipped stays shipped. The perpetual license is yours to keep: the last Pro version released while you were subscribed stays yours to use, on as many projects as you like, forever. What stops is new components and updates.

My org or project has a lot of folks! Can you help?

Link to This Section

For 5 or more seats we'll build a plan around your team: custom pricing, tailored Pro assets and services, and An Actual Human™ to help. Tell us a bit about your team and we'll take it from there: get in touch.

Account & Workspaces

Link to This Section

Signing in, workspaces, and managing your team's seats.

I can't log in. What do I do?

Link to This Section

Start with a password reset. If your address hasn't been verified yet, an account exists but nobody has claimed it, so head to Claim Your Account. If you get past your password and land on a one-time code prompt, that's two-factor authentication, and it has its own way out. If none of that works, get in touch and we'll get you back in.

I lost my two-factor device. How do I recover my account?

Link to This Section

Use the recovery code you saved when you turned two-factor authentication on. It's the only way back in on your own. Log in as usual, then choose "using your recovery code" at the one-time code prompt to reach the recovery form. A valid code logs you in and switches two-factor authentication off completely, so turn it back on from Account Settings once your new device is ready.

Why can't I access Pro? It says my seat is in another workspace.

Link to This Section

Pro follows the workspace you're working in, not your login, so a Pro page stops you whenever the active workspace isn't the one holding your seat. The page that stops you names the right workspace and gives you a Switch button that carries you on to where you were headed. If the message instead says the workspace has Pro but you aren't in one of its seats, an owner needs to move you to a role that uses a seat. And if you're an owner who handed your own seat back, get in touch to reclaim it.

How do I reassign a seat to someone else?

Link to This Section

Seats belong to the subscription, not to any one person, so it's two moves: remove the person in the seat, then invite their replacement. Owners and admins do both from the Workspace tab. Removing someone ends their access right away and frees the seat, and their projects stay in the workspace. The invitation holds the seat from the moment it goes out, and the role you pick decides whether it uses one: Member and Admin do, Billing doesn't.

How do I change workspace owners?

Link to This Section

There's no self-serve transfer yet, so get in touch and we'll do it for you. Tell us the workspace name, who should take it over, and whether the billing email in Stripe should change too.

How do I see or delete the data you have about me?

Link to This Section

Deleting your account is self-serve: from Account Settings, the Delete Account button opens a dialog and you confirm with your current password. There's no undo, so ask for your export first if you want one. Exports aren't self-serve, and the Personal Data section on that same page has a Contact Us button that reaches our support team. Our Privacy Policy covers what we do collect and where to send privacy questions and complaints.

Nothing here matches that.

Search the Whole Site / Get Help from Our Team

Get Help

Link to This Section

Pick the channel that fits what you need. Each one reaches us.

Bugs & Feature Requests

Reproducible bugs and ideas belong on GitHub, where we can triage and track them.

Report a Bug Request a Feature

Community & Discussion

Ask questions, share what you're building, and chat live with other developers on Discord.

Join the Server

Anything Else

Account access, billing, or private matters. Email reaches our support team directly.

Get Help via Email
Go Make Something Awesome
Version 3.13.0 © Fonticons, Inc.
  • Terms
  • Privacy
  • Refunds
  • Core License
  • Pro License

Quick Links

  • Components
  • CSS Utilities
  • Theming
  • Using with AI
  • Changelog
  • Help & Support

Recent Searches

    D'oh! No results for “”

    Suggest on GitHub Ask on Discord
    Navigate Select
    Close Esc

    We Have Cookies…

    We use cookies to make webawesome.com work better by storing limited information about your usage.

    We value your privacy, so we won't use them for evil or ask you to join the dark side.

    Customize
    Necessary Only Accept All
    Strictly Necessary
    Required to make the site function correctly — cannot be turned off
    Functionality Analytics
    Cancel Confirm Cookie Choices