Files
Recordly/docs/figma-component-coverage.md
T

54 KiB

Recordly HeroUI — Figma component coverage

Open the editable Figma file

Audited 20 September 2026 against the recordly-heroui renderer. The file contains 254 native components, 6,986 editable component layers, 126 variables, an assembled editor and two structural wireframes. Variable-alias validation found no broken references.

Start here

Components are organized by controls, inspectors, timeline, recording, windows and popup families. Edit a main component to update its Figma instances. The full component/node index below links directly to each definition. This is an editable design handoff; Figma changes do not automatically rewrite the React project.

Scope and fidelity

  • Every one of the 91 original renderer TSX modules is accounted for below: 85 visual modules and 6 providers/bootstrap modules without standalone UI.
  • Includes basic and advanced inspectors, four background tabs, selected/unselected timeline blocks, annotations, waveform and keyframe details, project dialogs, export stages and errors, presets, announcement layouts, all recorder menus, recording/finalizing states, floating webcam preview, countdown, update notifications, and tooltips.
  • Controls, text, icons and waveform shapes are editable Figma layers. Filmstrip/preview footage and image assets retain bitmap media fills. These are fixture media, not editable video sequences.
  • The source uses SF Pro; the matching Figma faces are used. Menlo was unavailable in Figma and its small monospaced samples use JetBrains Mono Medium.
  • Context providers, event hooks, native operating-system file/device permission dialogs and runtime behavior have no independent Figma visual. Project-owned dialogs and device-selection menus are included.
  • Frame and Crop inspector identifiers currently resolve to Scene in the source. Their captured compatibility states reflect that behavior. Extensions are retained as a labelled legacy component, despite removal from active navigation.
  • Capture-only containers make otherwise hidden dialogs visible and expand inspector scroll areas. Preview menus and recording-only HUD branches preserve source JSX and original CSS with inert handlers. No capture controls are added to the shipping editor.

Source module coverage

Source Figma representation
src/App.tsx Editor screen, App / Startup
src/components/announcements/AnnouncementDialog.tsx Popup/announcement-popup, Announcement cover
src/components/announcements/EditorAnnouncementBanner.tsx Popup/announcement-banner
src/components/announcements/LiveAnnouncementNotifications.tsx Popup/announcement-notification
src/components/countdown/CountdownOverlay.tsx CountdownOverlay / 3 seconds
src/components/launch/HudWindow.tsx HudWindow / Idle, HUD — recording states
src/components/launch/LaunchWindow.tsx HudWindow / Idle, HUD — recording states, Popups — Recording
src/components/launch/MarqueeText.tsx MarqueeText
src/components/launch/RecordingControls.tsx RecordingControls / Recording, RecordingControls / Paused
src/components/launch/SourceSelector.tsx SourceSelectorContent / Sources, Popup/launch-sources
src/components/launch/UpdateToastWindow.tsx Windows & tooltips
src/components/launch/contexts/HudInteractionContext.tsx Provider/bootstrap only; represented through its rendered children.
src/components/launch/popovers/CountdownPopover.tsx Popup/launch-countdown
src/components/launch/popovers/LaunchPopoverCoordinator.tsx Provider/bootstrap only; represented through its rendered children.
src/components/launch/popovers/MicPopover.tsx Popup/launch-mic, Popup/launch-mic-devices
src/components/launch/popovers/MorePopover.tsx Popup/launch-more
src/components/launch/popovers/PopoverScaffold.tsx DropdownItem / Selected, MicDeviceRow / Selected and unselected, Popups — Recording
src/components/launch/popovers/ProjectPopover.tsx Popup/launch-projects
src/components/launch/popovers/SourcePopover.tsx Popup/launch-sources
src/components/launch/popovers/WebcamPopover.tsx Popup/launch-webcam, Popup/launch-webcam-devices
src/components/ui/accordion.tsx Accordion
src/components/ui/audio-level-meter.tsx App — Shared utilities
src/components/ui/button.tsx Button
src/components/ui/card.tsx Card
src/components/ui/choice-group.tsx ChoiceGroup
src/components/ui/color-picker.tsx ColorPalette, ColorControl, Popup/color
src/components/ui/content-clamp.tsx ContentClamp, Tooltip / Content clamp
src/components/ui/dialog.tsx Popup/dialog
src/components/ui/dropdown-menu.tsx Popup/dropdown
src/components/ui/input.tsx Input, TextArea
src/components/ui/item-content.tsx ItemContent
src/components/ui/label.tsx Label
src/components/ui/popover.tsx Popup/popover
src/components/ui/select.tsx Select, Popup/select
src/components/ui/separator.tsx Separator
src/components/ui/skeleton.tsx Skeleton
src/components/ui/slider.tsx Slider
src/components/ui/switch.tsx Switch
src/components/ui/tabs.tsx Tabs
src/components/ui/toast.tsx Popup/toast
src/components/ui/toggle-group.tsx ToggleGroup
src/components/ui/toggle.tsx Toggle
src/components/video-editor/AddCustomFontDialog.tsx Popup/font
src/components/video-editor/AnnotationOverlay.tsx Timeline — AnnotationOverlay
src/components/video-editor/AnnotationSettingsPanel.tsx App — Annotation controls
src/components/video-editor/ArrowSvgs.tsx AnnotationSettingsPanel / figure — all eight editable direction vectors
src/components/video-editor/CaptionListPanel.tsx CaptionListPanel / Editing
src/components/video-editor/CropControl.tsx CropControl
src/components/video-editor/EditorWindow.tsx Assembled editor
src/components/video-editor/ExportSettingsMenu.tsx ExportSettingsMenu / MP4, ExportSettingsMenu / GIF
src/components/video-editor/ExtensionManager.tsx ExtensionManager / Legacy
src/components/video-editor/FormatSelector.tsx FormatSelector / MP4, FormatSelector / GIF
src/components/video-editor/GifOptionsPanel.tsx GifOptionsPanel
src/components/video-editor/KeyboardShortcutsHelp.tsx Popup/keyboard-help
src/components/video-editor/PlaybackControls.tsx Timeline — PlaybackControls
src/components/video-editor/ProjectBrowserDialog.tsx App — Projects
src/components/video-editor/SettingsPanel.tsx Inspectors — all sections
src/components/video-editor/ShortcutsConfigDialog.tsx Popup/shortcuts
src/components/video-editor/SliderControl.tsx SliderControl
src/components/video-editor/TutorialHelp.tsx Popup/tutorial, Popup/feedback, Popup/keyboard-dialog, Editor/Header
src/components/video-editor/VideoEditor.tsx Assembled editor
src/components/video-editor/VideoPlayback.tsx Editor/Preview, Timeline — AnnotationOverlay
src/components/video-editor/WallpaperGrid.tsx WallpaperGrid
src/components/video-editor/WebcamCropControl.tsx WebcamCropControl
src/components/video-editor/layout/CropEditorDialog.tsx Popup/crop-dialog
src/components/video-editor/layout/EditorDialogs.tsx Popups — Dialogs
src/components/video-editor/layout/EditorExportMenu.tsx Popups — Export
src/components/video-editor/layout/EditorHeader.tsx Editor/Header
src/components/video-editor/layout/EditorLoadingSkeleton.tsx Popup/loading
src/components/video-editor/layout/EditorPresetMenu.tsx Popups — Presets & announcements
src/components/video-editor/layout/EditorPreviewPanel.tsx Editor/Preview, Popups — Preview
src/components/video-editor/layout/EditorShell.tsx Assembled editor
src/components/video-editor/layout/EditorSidebar.tsx Editor/Sidebar / Scene, Inspectors — all sections, Tooltip / Sidebar placement
src/components/video-editor/layout/EditorTimelinePanel.tsx Editor/Timeline, Timeline — TimelineEditor
src/components/video-editor/layout/EditorVideoPreview.tsx Editor/Preview
src/components/video-editor/timeline/Item.tsx Timeline — TimelineEditor — clip, zoom, annotation, caption and audio blocks
src/components/video-editor/timeline/Row.tsx Timeline — TimelineEditor — nested row layers
src/components/video-editor/timeline/TimelineEditor.tsx Timeline — TimelineEditor
src/components/video-editor/timeline/components/filmstrip/ClipFilmstrip.tsx Timeline — TimelineEditor — nested filmstrip media frames
src/components/video-editor/timeline/components/markers/KeyframeMarkers.tsx Default marker, Selected marker
src/components/video-editor/timeline/components/playhead/PlaybackCursor.tsx Timeline — TimelineEditor — nested playhead layers
src/components/video-editor/timeline/components/viewport/TimelineCanvas.tsx Timeline — TimelineEditor — nested track viewport layers
src/components/video-editor/timeline/components/waveform/AudioWaveform.tsx AudioWaveform / Normal, AudioWaveform / Normalized
src/components/video-editor/timeline/components/wrapper/TimelineWrapper.tsx Timeline — TimelineEditor — composition/context wrapper
src/contexts/I18nContext.tsx Provider/bootstrap only; represented through its rendered children.
src/contexts/ShortcutsContext.tsx Provider/bootstrap only; represented through its rendered children.
src/contexts/ThemeContext.tsx Provider/bootstrap only; represented through its rendered children.
src/main.tsx Provider/bootstrap only; represented through its rendered children.

Native component index

Each row is a Figma component definition. Button names include their containing style family to distinguish repeated size/state names.

Icons

Component Node
Icon / Plus 16:5
Icon / Trash 16:8
Icon / Play 16:11
Icon / Pause 16:14
Icon / Scissors 16:17
Icon / Volume2 16:20
Icon / Undo2 16:23
Icon / Redo2 16:26
Icon / ChevronDown 16:29
Icon / Settings2 16:32
Icon / MousePointer 16:35
Icon / Type 16:38
Icon / Camera 16:41
Icon / Image 16:44
Icon / Download 16:47

Button

Component Node
default / Size=sm, State=Default 19:20
default / Size=sm, State=Disabled 19:23
default / Size=default, State=Default 19:26
default / Size=default, State=Disabled 19:29
default / Size=lg, State=Default 19:32
default / Size=lg, State=Disabled 19:35
default / Size=icon, State=Default 19:40
default / Size=icon, State=Disabled 19:45
secondary / Size=sm, State=Default 19:48
secondary / Size=sm, State=Disabled 19:51
secondary / Size=default, State=Default 19:54
secondary / Size=default, State=Disabled 19:57
secondary / Size=lg, State=Default 19:60
secondary / Size=lg, State=Disabled 19:63
secondary / Size=icon, State=Default 19:68
secondary / Size=icon, State=Disabled 19:73
outline / Size=sm, State=Default 19:76
outline / Size=sm, State=Disabled 19:79
outline / Size=default, State=Default 19:82
outline / Size=default, State=Disabled 19:85
outline / Size=lg, State=Default 19:88
outline / Size=lg, State=Disabled 19:91
outline / Size=icon, State=Default 19:96
outline / Size=icon, State=Disabled 19:101
ghost / Size=sm, State=Default 19:104
ghost / Size=sm, State=Disabled 19:107
ghost / Size=default, State=Default 19:110
ghost / Size=default, State=Disabled 19:113
ghost / Size=lg, State=Default 19:116
ghost / Size=lg, State=Disabled 19:119
ghost / Size=icon, State=Default 19:124
ghost / Size=icon, State=Disabled 19:129
destructive / Size=sm, State=Default 19:132
destructive / Size=sm, State=Disabled 19:135
destructive / Size=default, State=Default 19:138
destructive / Size=default, State=Disabled 19:141
destructive / Size=lg, State=Default 19:144
destructive / Size=lg, State=Disabled 19:147
destructive / Size=icon, State=Default 19:152
destructive / Size=icon, State=Disabled 19:157
destructive-soft / Size=sm, State=Default 19:160
destructive-soft / Size=sm, State=Disabled 19:163
destructive-soft / Size=default, State=Default 19:166
destructive-soft / Size=default, State=Disabled 19:169
destructive-soft / Size=lg, State=Default 19:172
destructive-soft / Size=lg, State=Disabled 19:175
destructive-soft / Size=icon, State=Default 19:180
destructive-soft / Size=icon, State=Disabled 19:185
link / Size=sm, State=Default 19:188
link / Size=sm, State=Disabled 19:191
link / Size=default, State=Default 19:194
link / Size=default, State=Disabled 19:197
link / Size=lg, State=Default 19:200
link / Size=lg, State=Disabled 19:203
link / Size=icon, State=Default 19:208
link / Size=icon, State=Disabled 19:213

Input

Component Node
State=Default 22:5
State=Disabled 22:8
State=Filled 22:11

TextArea

Component Node
TextArea 22:30

Switch

Component Node
State=Off 23:8
State=On 23:14
State=Disabled 23:20

Slider

Component Node
State=Single 24:8
State=Range 24:16
State=Disabled 24:22

Toggle

Component Node
State=Default 28:5
State=Selected 28:8
State=Disabled 28:11

ToggleGroup

Component Node
ToggleGroup 28:35

ChoiceGroup

Component Node
ChoiceGroup 28:44

Tabs

Component Node
Tabs 28:57

Select

Component Node
Select 28:64

Card

Component Node
Card 30:14

Accordion

Component Node
State=Expanded 30:25
State=Collapsed 30:31

Label

Component Node
Label 30:50

Separator

Component Node
Separator 30:53

Skeleton

Component Node
Skeleton 30:57

App — Shared utilities

Component Node
ColorPalette 35:368
ColorControl 35:379
ContentClamp 35:383
ItemContent 35:390
AudioLevelMeter / 12 35:395
AudioLevelMeter / 72 35:400
AudioLevelMeter / 94 35:405

App — Projects

Component Node
ProjectBrowserDialog / Populated 35:432
ProjectBrowserDialog / Empty 35:443
ExtensionManager / Legacy 35:454

App — Export controls

Component Node
FormatSelector / MP4 35:472
FormatSelector / GIF 35:489
GifOptionsPanel 35:519
ExportSettingsMenu / MP4 35:586
ExportSettingsMenu / GIF 35:642

App — Preview controls

Component Node
SliderControl 35:655
WebcamCropControl 35:674
CropControl 35:690
WallpaperGrid 35:713
CaptionListPanel / Editing 35:748

App — Annotation controls

Component Node
AnnotationSettingsPanel / text 35:879
AnnotationSettingsPanel / figure 35:986
AnnotationSettingsPanel / blur 35:1098
AnnotationSettingsPanel / image 35:1159

App — Recording & sources

Component Node
RecordingControls / Recording 35:1191
RecordingControls / Paused 35:1222
SourceSelectorContent / Sources 35:1255
SourceSelectorContent / Empty 35:1260
SourceSelectorContent / Loading 35:1265
DropdownItem / Selected 35:1280
MicDeviceRow / Selected and unselected 35:1301
MarqueeText 35:1306

Popups — Recording

Component Node
Popup/launch-mic-devices 38:37
Popup/launch-webcam-devices 38:67
Popup/launch-countdown 38:97
Popup/launch-mic 38:113
Popup/launch-webcam 38:122
Popup/launch-more 38:236
Popup/launch-sources 38:255
Popup/launch-projects 38:279

Popups — Dialogs

Component Node
Popup/project-save 38:307
Popup/project-saving 38:334
Popup/unsaved-changes 38:353
Popup/native-capture-unavailable 38:368
Popup/feedback 38:415
Popup/keyboard-dialog 38:493
Popup/tutorial 38:556
Popup/dialog 38:573
Popup/font 38:605
Popup/shortcuts 38:701
Popup/crop-dialog 38:731

Popups — Controls & feedback

Component Node
Popup/select 38:759
Popup/popover 38:769
Popup/dropdown 38:783
Popup/toast 38:794
Popup/keyboard-help 38:853
Popup/color 38:886
Popup/loading 38:957

Inspectors — all sections

Component Node
Inspector/scene / Basic 41:116
Inspector/scene / Advanced 41:283
Inspector/frame / Basic 41:398
Inspector/frame / Advanced 41:565
Inspector/crop / Basic 41:680
Inspector/crop / Advanced 41:847
Inspector/cursor / Basic 41:932
Inspector/cursor / Advanced 41:1115
Inspector/captions / Basic 41:1177
Inspector/captions / Advanced 41:1300
Inspector/caption / Basic 41:1337
Inspector/caption / Advanced 41:1374
Inspector/webcam / Basic 41:1451
Inspector/webcam / Advanced 41:1600
Inspector/settings / Basic 41:1668
Inspector/settings / Advanced 41:1839
Inspector/zoom / Basic 41:1878
Inspector/zoom / Advanced 41:1930
Inspector/clip / Basic 41:1957
Inspector/clip / Advanced 41:1984
Inspector/audio / Basic 41:2016
Inspector/audio / Advanced 41:2048
Inspector/extensions / Basic 41:2163
Inspector/extensions / Advanced 41:2330
Inspector/Background / Image 41:2444
Inspector/Background / Video 41:2497
Inspector/Background / Color 41:2575
Inspector/Background / Gradient 41:2661
Inspector/Zoom / Manual 41:2713
Inspector/Clip / Muted and speed override 41:2742
Inspector/Captions / Model unavailable 41:2804
Inspector/Captions / Downloading model 41:2868
Inspector/Captions / Model ready 41:2930
Inspector/Captions / Generating 41:2998
Inspector/Captions / Download error 41:3060
Inspector/Webcam / Empty 41:3131
Inspector/Cursor / Hidden 41:3216
Inspector/Zoom / No selection 41:3220
Inspector/Clip / No selection 41:3240
Inspector/Audio / No selection 41:3265

Timeline — TimelineEditor

Component Node
TimelineEditor / clip selected 41:3712
TimelineEditor / zoom selected 41:3812
TimelineEditor / annotation selected 41:3912
TimelineEditor / audio selected 41:4012
TimelineEditor / caption selected 41:4112
TimelineEditor / Empty 41:4124

Timeline — PlaybackControls

Component Node
PlaybackControls / Paused 41:4149
PlaybackControls / Playing 41:4173
PlaybackControls / Muted 41:4197

Timeline — AnnotationOverlay

Component Node
AnnotationOverlay / text / Default 41:4205
AnnotationOverlay / text / Selected 41:4219
AnnotationOverlay / figure / Default 41:4226
AnnotationOverlay / figure / Selected 41:4240
AnnotationOverlay / image / Default 41:4245
AnnotationOverlay / image / Selected 41:4257
AnnotationOverlay / blur / Default 41:4262
AnnotationOverlay / blur / Selected 41:4274

Popups — Export

Component Node
Popup/export-settings-mp4 41:4357
Popup/export-settings-gif 41:4413
Popup/export-preparing 41:4431
Popup/export-rendering 41:4452
Popup/export-audio 41:4473
Popup/export-finalizing 41:4491
Popup/export-muxing 41:4509
Popup/export-saving 41:4527
Popup/export-success 41:4541
Popup/export-error 41:4553
Popup/export-pending-save 41:4567
Popup/export-legacy 41:4590

Popups — Presets & announcements

Component Node
Popup/presets-empty 41:4611
Popup/presets-saved 41:4649
Popup/announcement-popup 41:4683
Popup/announcement-banner 41:4701
Popup/announcement-notification 41:4713
Popup/toolbar-aspect-ratio 41:4757
Popup/announcement-cover 51:37

Windows & tooltips

Component Node
UpdateToastWindow / Available 41:4778
UpdateToastWindow / Downloading 41:4803
UpdateToastWindow / Ready 41:4823
UpdateToastWindow / Check error 41:4843
UpdateToastWindow / Download error 41:4863
UpdateToastWindow / Experimental 41:4886
UpdateToastWindow / Preview 41:4909
CountdownOverlay / 3 seconds 41:4916
HudWindow / Idle 41:4968
App / Startup 41:4977
Tooltip / Content clamp 41:4981
Tooltip / Sidebar placement 41:4985

Popups — Preview

Component Node
Popup/aspect-ratio 41:5017
Popup/add-layer 41:5025
Popup/preview-volume 41:5034

HUD — recording states

Component Node
HUD / Finalizing recording 46:18
HUD / Floating webcam preview 46:23
HUD / Recording 46:61

Timeline — KeyframeMarkers

Component Node
State=Default 52:7
State=Selected 52:9

Timeline — AudioWaveform

Component Node
AudioWaveform / Normal 55:6
AudioWaveform / Normalized 55:9

Editor — shell & screen

Component Node
Editor/Header 32:391
Editor/Sidebar / Scene 32:630
Editor/Preview 32:887
Editor/Timeline 32:986

Reproducible capture fixtures

Entry Coverage
design-library.html Primitive controls and variants
design-capture.html?windowType=editor Actual assembled renderer
design-app-catalog.html Shared app controls, source lists and annotation inspectors
design-app-catalog.html?view=all-states 26 popup and dialog states
design-inspector-catalog.html 40 inspector/background states
design-timeline-catalog.html Timeline, playback and annotation overlays
design-timeline-details.html Explicit waveform peaks and keyframe markers
design-extra-catalog.html Export, preset and announcement states; legacy toolbar
design-extra-catalog.html?view=announcement-cover Cover-media announcement
design-preview-menus.html Aspect ratio, Add Layer and volume menus
design-window-catalog.html Seven update states, countdown, idle HUD, startup and tooltips
design-hud-branches.html Finalizing recorder and floating webcam/recording HUD
design-window-capture.html Individual window state verification through the live bridge path

The capture entry points load the existing test bridge and fixture media. The renderer-only development server must be running to use them. They are separate from the production index.html entry.

Validation

  • TypeScript and targeted lint pass for source changes and all capture fixtures.
  • Timeline/deletion changes: 135 focused unit tests and 13 browser regressions passed.
  • Controlled and live update-window paths were rendered successfully; the window/detail galleries reported no JavaScript errors.
  • Figma audit checks native component/layer counts, variable aliases and fonts. Visual QA corrected capture artifacts in slider borders, tooltip sizing and popup envelopes. Raw and failed intermediate capture frames were removed after conversion.

Compatibility toolbar, unmounted ruler and marker-overlay source files were removed on 20 September 2026. Their earlier Figma captures are historical, not current app surfaces.