fix(droid-control): align top row of ASCII DROID wordmark (MB-19) - #37
Merged
Conversation
The wordmark art is an indented template literal terminated by .trim(), which stripped the leading newline AND the first row's 2-space indent. Every other row kept its indent, so with whiteSpace: 'pre' the top bar of each letter rendered 2 columns left of the letter body. Replace .trim() with .replace(/^\n/, '').trimEnd() to preserve the first row's indent. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
factory-davidgu
approved these changes
Aug 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
What
In the showcase outro, the top row of the ASCII DROID wordmark renders two columns left of the rows below, so the top bar of every letter overhangs the letter body.
Why
DROID_ASCIIis an indented template literal closed with.trim(), which strips the leading newline and the first row's two-space indent. Rows 2-7 keep their indent, andwhiteSpace: 'pre'renders the mismatch verbatim.How
Replace
.trim()with.replace(/^\n/, '').trimEnd(), which drops only the leading newline and trailing whitespace while preserving the first row's indent.Visual Evidence
Outro still rendered from this branch (
--frame=480 --props='{"clipDuration":10}'): the top row of each letter now aligns with the letter body.Repro Recipe
Open
out/wordmark.png(the final outro frame with the wordmark fully faded in). Onmasterthe top row of each letter sits two columns left of the letter body; on this branch it aligns. The explicitclipDurationprop is required because the default-props duration math (10s clip fallback inlib/duration.ts) and the component's 60s fallback disagree, which pushes the outro past the end of the composition; that mismatch predates this PR.Related Issue
Closes MB-19
Reviewer Guide
Diff shape: 100%
DroidWordmark.tsx, one expression.Review depth: Skim — single-line fix with the cause spelled out in the commit body.
Read order:
plugins/droid-control/remotion/src/components/DroidWordmark.tsx:10— the template-literal terminator is the whole change.Risk & Impact
Low risk — isolated to the outro wordmark string. No timing, layout, or API changes beyond the restored indent.
Verification
Behavior verified. Outro still rendered from this branch shows the top row aligned with the letter bodies (screenshot attached above) verified @ 5e5b618.
Regression coverage. N/A — pure string-literal fix; no test harness exists in the remotion package (no jest/vitest config).
Not tested. Full Showcase video render (still capture covers the changed surface; the wordmark is static once faded in).
Standard validators. typecheck (
tsc --noEmit) and slop-scan delta clean; no format/lint/test tooling configured in this repo.