Avelero’s theming system lets you create digital product passports that match your brand identity. Customize colors, typography, logos, navigation, and content sections to deliver a consistent brand experience.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Avelero/avelero/llms.txt
Use this file to discover all available pages before exploring further.
Theme architecture
The theme system separates styles from configuration:Theme styles
Visual design elements that control how passports look:- Design tokens (colors, typography scales)
- Component style overrides
- Custom fonts (Google Fonts or self-hosted)
- Custom CSS stylesheets
Theme configuration
Content and behavior settings:- Branding assets (logos, images)
- Navigation menus (primary and secondary)
- CTA banner content and visibility
- Social media links
- Section visibility toggles
- Carousel configuration
This separation allows you to change visual design without affecting content, and vice versa. Theme changes apply to all passports immediately without republishing.
Design tokens
Design tokens are the foundation of your theme’s visual system.Color tokens
Define your brand’s color palette:- Colors cascade to all components automatically
- Change
primaryonce, updates all buttons, headers, and accents - Ensures visual consistency across passport pages
Typography tokens
Define text styles for different content types:h1,h2,h3,h4,h5,h6- Heading levelsbody- Default body textbody-sm- Smaller text (captions, labels)body-xs- Extra small text (metadata, fine print)
Component style overrides
Customize individual components beyond design tokens.Override structure
Each component class can override specific CSS properties:Component override example
Color values in overrides
Component colors can reference tokens or use explicit values: Token reference (recommended):background-color: var(--primary)
Explicit hex value:
background-color: #FF6B00
Use token references (
$primary) when you want changes to design tokens to cascade. Use explicit hex values (#FF6B00) for one-off overrides that shouldn’t change.Component class reference
Header components
Header components
header- Main header containerheader__text-logo- Text logo styling when no image logo is used
Product components
Product components
product__image- Main product imageproduct__title- Product name headingproduct__description- Product description textproduct__brand- Brand name displayproduct__show-more- Expand/collapse button for long descriptions
Product details components
Product details components
product-details- Details section container (border color inherited by rows)product-details__label- Detail row labelsproduct-details__value- Detail row values
Menu components
Menu components
Impact components
Impact components
impact-card- Environmental impact card containerimpact-card__title- Impact metric nameimpact-card__type- Impact type labelimpact-card__value- Numeric valueimpact-card__unit- Unit of measurementimpact-card__icon- Impact category icon
Materials components
Materials components
materials-card- Material card containermaterials-card__title- Material namematerials-card__percentage- Material percentagematerials-card__type- Material type/categorymaterials-card__certification- Certification badgematerials-card__certification-icon- Checkmark icon for certified materialsmaterials-card__certification-text- Certification name textmaterials-card__origin- Material origin/source
Journey components
Journey components
journey-card- Supply chain step cardjourney-card__title- Step namejourney-card__line- Visual connector line between stepsjourney-card__type- Process typejourney-card__operator- Operator/facility name
Carousel components
Carousel components
carousel__title- “Similar products” headingcarousel__nav-button- Previous/Next navigation buttonscarousel__nav-button-icon- Arrow icons in nav buttonscarousel__product-image- Product thumbnail imagescarousel__product-details- Product info containercarousel__product-name- Product name in carouselcarousel__product-price- Product price in carousel
Banner components
Banner components
Footer components
Footer components
Typescale selection
Apply a typography scale to a component:Using typescale
h2 typography token (fontSize, fontWeight, lineHeight, letterSpacing).
Custom fonts
Google Fonts
Use any font from Google Fonts:Browse Google Fonts
Visit fonts.google.com and select fonts.
Self-hosted custom fonts
Use your brand’s proprietary fonts:Font file requirements
Font file requirements
- Format:
.woff2(best compression and browser support) - Fallback: Include system font fallback (e.g.,
sans-serif) - Licensing: Ensure font license allows web embedding
- Optimization: Subset fonts to reduce file size
Custom CSS stylesheets
For advanced styling beyond component overrides:
Custom CSS example:
Custom styles
Theme configuration
Branding assets
Set your brand logo:Branding config
- Format: SVG, PNG, or JPG
- Recommended: SVG for scalability
- Max width: Auto-sized to fit header
- Transparent background recommended for PNG
Navigation menus
Configure primary and secondary menus:Menu config
- Primary menu: Displayed in header or expandable menu
- Secondary menu: Displayed in footer
- All links open in current window (add
target="_blank"in custom CSS if needed)
CTA banner
Add call-to-action banners to passports:CTA config
showHeadline,showSubline,showButton- Control which elements appear- Useful for A/B testing or seasonal campaigns
- Banner hidden automatically if
sections.showCTABanneris false
Social media links
Connect passports to social profiles:Social config
Section visibility
Control which sections appear on passports:Section visibility
Sections with no data are hidden automatically, even if visibility is enabled. For example, if a product has no environmental impact data, the impact section won’t display.
Materials section options
Customize materials display:Materials config
- When enabled, shows checkmark icon next to certified materials
- Visually emphasizes sustainable material choices
- Disable for minimal design aesthetic
Carousel configuration
Customize the similar products carousel:Carousel config
productCount- Number of products to show (default: 6)showPrice,showTitle- Toggle product info visibilityroundPrice- Round prices (50)includeIds- Specific product IDs to showexcludeIds- Product IDs to excludefilter- Filter criteria (tags, category, season, etc.)
Editing themes
Via dashboard
Via API
Update theme programmatically:Update config
brand.theme.get- Fetch current theme (styles + config)brand.theme.update- Update theme configuration
Theme styles are updated separately via the dashboard. API updates are for programmatic config changes (e.g., enabling/disabling sections based on data availability).
Theme preview
Test theme changes before publishing:
Preview limitations:
- Preview uses draft theme (not yet saved)
- Only you can see preview (not public)
- Preview expires after session ends
Theme revalidation
When theme changes are saved:- Database update - Theme config/styles saved to
brand_themetable - Cache invalidation - Passport pages revalidated automatically
- Immediate effect - Changes apply to all passports within seconds
Automatic revalidation
You don’t need to republish passports when updating themes. Changes propagate automatically.
Best practices
Use design tokens
Define colors and typography once in tokens, reference them in components. Makes global changes easier.
Test with real data
Preview theme with products that have varying data completeness to ensure graceful degradation.
Maintain accessibility
Ensure color contrast ratios meet WCAG AA (4.5:1 for body text, 3:1 for large text).
Optimize assets
Compress images and fonts. Use modern formats (WebP, WOFF2) for better performance.
Accessibility checklist
Color contrast
Color contrast
- Body text: 4.5:1 contrast ratio minimum
- Large text (18pt+): 3:1 contrast ratio minimum
- Use tools like WebAIM Contrast Checker
Font sizes
Font sizes
- Body text: Minimum 16px (1rem)
- Small text: Minimum 14px (0.875rem)
- Ensure text is readable on mobile devices
Focus states
Focus states
- Interactive elements must have visible focus indicators
- Don’t remove default outline without replacing
- Test keyboard navigation (Tab key)
Images
Images
- Ensure decorative images don’t convey critical info
- Product images have alt text from product data
- Logos use brand name as alt text
Database schema
Theme data is stored in thebrand_theme table:
Primary key. One theme per brand.
Theme styles object (design tokens, component overrides, custom fonts)
Theme configuration object (menus, banners, visibility, social links)
Google Fonts embed URL (if using Google Fonts)
CDN path to custom CSS stylesheet (if uploaded)
Next steps
Custom domains
Serve passports from your own domain to strengthen branding.
Brand customization
Learn more about brand-wide customization features.