Marketing

FAQ

Two-column frequently asked questions section with support callout.

Open Markdown
Questions, answered

Everything you need to build with confidence.

The short version: Proa gives your team polished primitives, the source code, and a Rust-first path to production.

Proa renders typed Rust components directly to HTML. You keep the familiar composition and styling model while avoiding a mandatory client runtime for static product surfaces.
Yes. Source delivered under the applicable Free or Pro UI Pro license lives with your application, so your team can change markup, recipes, tokens, and behavior as the product evolves.
Yes. Keep static content on the synchronous rendering path, then introduce focused rsjs islands for stateful controls such as pickers, menus, and complex forms.
The components use semantic theme tokens and typed recipes, making it straightforward to map your colors, radius, spacing, and interaction states without rebuilding each primitive.
Accessible semantics are part of each component's API and tests. Active subscribers receive ongoing component improvements, fixes, new blocks, and implementation guidance.
Your commercial license defines the covered team and products. The source-first workflow keeps everyone aligned in the same repository and review process.
FreeFAQ

Two-column frequently asked questions section with support callout.

Browse block source
faq.rs
// SPDX-FileCopyrightText: 2026 Proa Labs, Inc.
// SPDX-License-Identifier: (MIT OR Apache-2.0) AND MIT

// Adapted from MIT-licensed sources:
// - Tailark, `packages/mist-kit/blocks/faqs/two/index.tsx`
//   https://github.com/tailark/blocks @ 8eadeb3389ccccc4bfc4a10bca959c1b39e47b71 (MIT License)
// - TWBlocks, `blocks/faq/faq1.tsx`
//   https://github.com/tommyjepsen/twblocks @ ff88cb951dab0dc01198b6570ec5f5cf21250d45 (MIT License)
//! FAQ block — split introduction and a Proa CSS-only accordion.

use proa_macros::html_sync;
use proa_ui::{
    AccordionCSSOnly, AccordionCSSOnlyItem, AccordionCSSOnlyMode, Badge, BadgeVariant, Button,
    ButtonVariant,
};

/// The `name` every item shares. In multiple mode it groups the disclosures
/// without making them mutually exclusive, and it has to match the accordion's
/// own `name` or the group breaks apart.
const GROUP: &str = "faq-block";

struct Entry {

Search

Type at least 2 characters

Customize

Make it yours

Palette

Radius

Overview
Components
Settings

Build your own

Themed Proa UI surface

Preview
Components52
RecipesTyped
customer-portal