Skip to main content

Page Weight Budget: sustainable web design example

A free, animated budget meter for performance dashboards, clean data style. Every colour, text and motion setting is a runtime input.

Updated October 2026

About the Page Weight Budget

The Page Weight Budget is a budget meter with a clean data look, made for performance dashboards. It animates a stacked bar by asset type that shrinks under the budget line, and a tap optimises the assets. It also has keyframes you can edit in the ExodeUI timeline: an entrance and an ambient float.

Runtime inputs for the Page Weight Budget

These 27 inputs, plus the replay and tap triggers, can be set from the customizer above, from the ExodeUI studio, or from your code while the element runs.

InputWhat it changesType
titleTitleText
imagesImages (KB)Number
scriptsJavaScript (KB)Number
fontsFonts (KB)Number
stylesCSS (KB)Number
budgetBudget (KB)Number
panelColorPanelColour
imgColorImages colourColour
jsColorJavaScript colourColour
fontColorFonts colourColour
cssColorCSS colourColour
overColorOver budgetColour
inkColorInkColour
radiusCorner radiusNumber
liftHover liftNumber
interactiveMouse interactionOn/off
tiltHover tilt (deg, 0 = off)Number
pressPress squishNumber
floatExtra idle float (px)Number
speedAnimation speedNumber
introEntrance animationOn/off
introStyleExtra entrance styleChoice
introDurationEntrance duration (s)Number
colorTweenColour change fade (s)Number
pageModePage backgroundChoice
pageTopPage colourColour
pageBottomPage gradient endColour

Add the Page Weight Budget to React or Next.js

  1. Open an element above and set its text, colours and motion, or keep the defaults.
  2. Download the .bexode file (or the customized .exode) and put it in your public folder.
  3. Install the runtime with npm i exodeui.
  4. Render it with ExodeUICanvas and pass your text, numbers and colours as inputs.
import { ExodeUICanvas } from 'exodeui';

export function PageWeightBudgetWidget({ data }) {
  return (
    <ExodeUICanvas
      src="/ui-trends/files/sustainable/03-page-weight.bexode"
      autoPlay
      style={{ width: 600, height: 400 }}
      inputs={{
        title: data.title,
        // every colour is an input too, for example a brand accent
        ...data.theme
      }}
    />
  );
}

Frequently asked questions

Is the Page Weight Budget element free?
Yes. You can preview it, customize it and download the .exode and .bexode files without paying. ExodeUI also has a free Community plan for editing it in the studio.
What does the Page Weight Budget do when tapped?
It optimises the assets. You can fire the same action from code with the tap input, and replay the entrance with the replay input.
Can I change the colours and text of the Page Weight Budget?
Yes. All 9 colours and every label are runtime inputs. Set them in the customizer above or pass them from your code; colour changes cross-fade.
Does it have keyframes I can edit?
Yes. The file has a keyframed entrance and an ambient float on the timeline, which you can edit in the ExodeUI Animate tab. Its own motion and interaction stay live and follow the speed input.
Does it work outside React?
The same file works with the other ExodeUI runtimes, including Vue, Svelte, Angular, Solid, React Native, SwiftUI and Flutter.