Midsummer
Fruit
Comics & original characters / A MIDSUMMER FRUIT TOOL

Comic Name Lettering & Bubble Fit Planner

Try character names in real browser-rendered dialogue bubbles. Compare full and short addresses, letter case, local generic fonts, word or grapheme wrapping and supplied sound-effect collisions while keeping the complete identity intact.

✳ Free to useBrowser-local savingOriginal fiction
YOUR SPECIALIST WORKBENCHRuns locally · No sign-up
A SMALL START, YOUR OWN DIRECTION

Try a complete example first.

See what the tool makes, then change the names or rules that matter to your story.

Bam Vale remains the character’s full identity. Its short uppercase address BAM matches the supplied effect token; compare a full introduction and clearer voice cue before deciding whether the name needs changing.

Uses the visible fictional setup and replaces the form settings. Your saved library is unchanged. Examples are editorial drafts; trying a setup creates fresh candidates.

Start with the identities you already know.

Measures actual local browser advance widths and renders corresponding line boxes with separate width/height checks. Combines side-by-side character comparison and supplied effect collisions in one workspace, instead of substituting a static character budget.

Try a fictional starter above, or open Edit names & rules to use your own source settings. Your spelling and relationship choices remain yours.

Story settings & practical comparisons

BAM

Lettering sheet bam · Bam: passenger; Tavi: driver; Elin: bystander and practical helper

Bam Vale remains the character’s full identity. Its short uppercase address BAM matches the supplied effect token; compare a full introduction and clearer voice cue before deciding whether the name needs changing. Reproduce the BAM effect cue, then compare full form, local fonts and bubble space. Keep the identities and Tavi’s driver role intact.

Exact parameters used by this story
letteringPeople
bam | Bam Vale | Bam | passenger tavi | Tavi Hale | Tavi | driver
letteringForm
short
letteringCase
uppercase
letteringTemplate
{name}, there's room here.
letteringWidth
190
letteringHeight
100
letteringPadding
12
letteringFontSize
22
letteringFontFamily
sans-serif
letteringLineHeight
1.3
letteringBreak
words
letteringEffects
BAM, CLANG, WHOOSH
Full identities in the bubble

BAM VALE

Authored practice · editorial review pending; separate from the public story.

  • BAM VALE · BAM VALE, there's room here.
  • TAVI HALE · TAVI HALE, there's room here.

Lettering sheet bam

A full name changes the actual text measured inside the bubble instead of only relabelling the preview. Inspect rendered wrapping after the browser measures the current font.

Exact practice settings
letteringPeople
bam | Bam Vale | Bam | passenger tavi | Tavi Hale | Tavi | driver
letteringForm
full
letteringCase
uppercase
letteringTemplate
{name}, there's room here.
letteringWidth
250
letteringHeight
100
letteringPadding
12
letteringFontSize
22
letteringFontFamily
sans-serif
letteringLineHeight
1.3
letteringBreak
words
letteringEffects
BAM, CLANG, WHOOSH
A wider bubble for the same call

BAM

Authored practice · editorial review pending; separate from the public story.

  • BAM · BAM, there's room here.
  • TAVI · TAVI, there's room here.

Lettering sheet bam

The visible line layout changes with usable width and height while the selected name remains unchanged. A stored snapshot records its measurement method; it is not a drawing-quality certificate.

Exact practice settings
letteringPeople
bam | Bam Vale | Bam | passenger tavi | Tavi Hale | Tavi | driver
letteringForm
short
letteringCase
uppercase
letteringTemplate
{name}, there's room here.
letteringWidth
260
letteringHeight
120
letteringPadding
12
letteringFontSize
22
letteringFontFamily
sans-serif
letteringLineHeight
1.3
letteringBreak
words
letteringEffects
BAM, CLANG, WHOOSH

Favorites and history are stored only in this browser. Clearing browser data can remove them. Export a backup.

What this workbench actually controls

Measures actual local browser advance widths and renders corresponding line boxes with separate width/height checks. Combines side-by-side character comparison and supplied effect collisions in one workspace, instead of substituting a static character budget.

Dedicated inputs

Characters and their display forms
1–8 lines: character ID | optional full identity | optional short address | optional passenger/driver/bystander scene role. Three-cell rows default to passenger. Blank names generate identities; blank short forms use the first word. Roles affect only the private bus-scene illustration.
Address in the bubble
Choose the complete or separate familiar form without changing the stored identity.
Display lettering case
Change only the displayed address. Expanded address max100 characters; complete expanded line max200.
Dialogue around the name
One {name} token, up to120 characters. No other braces, pipes or newlines. The named character can be the addressee; this does not assign the speaking role.
Intended bubble width (px)
80–480 including1px border and padding. A large preview scales to fit a phone while retaining its intended measurements.
Intended bubble height (px)
50–320 including border and padding. Width and line-box height are checked independently.
Type size (px)
12–40. The local measurement element and preview request matching400-weight type settings.
Requested local font family
Browser-resolved generic font; no font downloads, uploads or installed-font inventory. Another device can resolve a different face.
Inner padding (px)
4–30 on each side;1px is also reserved at each border edge.
Line-height multiplier
1–2 times type size. Measures line boxes, not every glyph’s painted outline.
Wrapping rule
words preserves space-delimited words; graphemes allows breaks between complete combined-character groups. Review name splits manually.
Effects to compare with addresses
Optional comma-separated list, up to12 tokens of30 characters. Matching ignores case/punctuation and preserves accents. A match is a review cue, not a name ban.

Naming constraints

  • Keep full and familiar forms per character ID; reserve fixed names before generating blanks. Display changes never mutate the identity.
  • Expand exactly one explicit name token, bounding uppercase expansion and total dialogue before measuring or saving.
  • Measure actual candidate lines in the browser-resolved400-weight generic font with normal kerning; never multiply characters by an average width.
  • Subtract padding and1px borders; preserve words or split at grapheme boundaries, checking advance widths and line-box height separately.
  • Compare whole displayed addresses against supplied effects using declared case/punctuation normalization. No global effect database is implied.
  • Unavailable DOM measurement/segmentation preserves names and source settings with an explicit unmeasured state. Snapshots remain device-dependent.

Result dimensions

canonical identity and familiar form · formatted address and dialogue · browser advance-width measurements when available · line breaks and width/height findings · responsive bubble preview · supplied effect matches · resolved source and optional measurement snapshot

Compare workbench capabilities →
A FEW CONSIDERED BEGINNINGS

BAM

Bam Vale remains the character’s full identity. Its short uppercase address BAM matches the supplied effect token; compare a full introduction and clearer voice cue before deciding whether the name needs changing.

“Bam!”From The Spare Seat · original fiction
AN ORIGINAL MIDSUMMER FRUIT STORY

The Spare Seat

On the evening before a familiar driver changes routes, a quiet cinema worker carries an invitation he has twice failed to offer. A name mistaken for a door noise, trailing tape and a spare seat give him room to ask clearly.

Characters & relationships in this story

Bam Vale · Cinema worker carrying a prepared invitation · Address: Bam Vale as complete reference; Bam in a nearby call

Tavi Hale · Driver starting an early route tomorrow · Address: Tavi Hale on the card and invitation; Tavi in the accepted exchange

Elin · Cinema visitor and occasional volunteer carrying a cake box · Address: Elin

Bam Vale ↔ Tavi Hale: Regular passenger and driver move toward an explicitly offered meeting beyond the route

Elin ↔ Bam Vale: A practical tape request puts him close enough to begin a conversation

Tavi Hale ↔ Bam Vale: A full introduction and ordinary short call give the quiet person a clear place in the scene

Editorial demonstration · human review pending. Characters and events are fictional. Creative name explanations are not etymologies.

A name above the opening door

“Bam!”

The bus door had not struck the shelter. Nothing had fallen from the roof. Tavi Hale was calling the man standing beneath the timetable, who had been watching a reflection in the road so intently that he had failed to notice the bus arrive.

Bam Vale raised his hand. The other hand stayed in his coat pocket, protecting a piece of paper he had folded until it would fit beside his keys. He climbed aboard and paid his fare with the careful expression of somebody performing the only part of an evening he had properly rehearsed.

“Bam Vale,” Tavi said, softer now. “I thought you were waiting for something else.”

“Just this.”

It was not a useful answer. He looked toward the empty seats and chose the one nearest the middle door. From there he could see the back of her head and the route number reflected in the glass. He could also get off without passing her again if he changed his mind.

They knew each other in the narrow way people can know someone after hundreds of ordinary encounters. Tavi knew that Bam worked at the little cinema above the harbor and sometimes carried a ladder onto the bus. Bam knew that Tavi liked the poster with the enormous yellow moon, because she had mentioned it while he was trying to stop the ladder knocking against the fare box.

He did not know whether she liked supper after a late shift. He did not know whether an invitation from a regular passenger would be welcome. The paper in his pocket contained two drawn chairs and a suggestion which had sounded simple at his kitchen table.

Tomorrow she would begin driving the early hill route. The evening bus would belong to somebody else. Bam had congratulated her when she told him about the change. Then he had spent two days discovering how much of a relationship could hide inside the assumption that there would always be another ordinary encounter.

The passenger who heard a door

At the next stop a woman boarded carrying a striped cake box. Her name was Elin, and she came to the cinema most Thursdays with a group who argued affectionately about where to sit. She sometimes covered a volunteer shift when the group stayed for the later film. She recognized Bam after setting the box on her knees.

“I heard the crash,” she said. “Thought the door had caught your bag.”

“That was my name.”

She looked toward Tavi, then back at him. “Oh. Of course.”

He smiled before she could feel foolish. He had a quiet voice and a name people sometimes performed as though it came with its own percussion. At work, the new volunteer had once written BAM in enormous capitals on the duty list and added three energetic lines around it. Bam had asked for a smaller version because the other names looked as though they were hiding from his.

Elin shifted the cake box to the seat beside her. She was bringing it to her sister's house on the upper road. The lid had come loose, and she asked whether Bam had any tape. He usually did. He worked at a place where posters and temporary signs produced a steady demand for small pieces of adhesive.

He took the folded invitation from his pocket while looking for the roll. Elin caught a glimpse of the outside before he turned it over. TAVI HALE had been written across the fold, in the same neat capitals he used for the cinema schedule.

She accepted the tape without asking about the paper. He appreciated this so much that he used more tape on the cake box than its lid required. When he finished, the striped handles stood up like a pair of startled ears.

“Very secure,” Elin said.

“It could travel farther than the upper road.”

She laughed, then rested one hand on the lid. The bus moved away from the harbor lights. Bam put the invitation back in his pocket, this time on top of the keys where the corners would not be pressed into it.

Names on the things they carried

From his seat Bam could see the small name card beside the driver's window. Tavi Hale. He had first learned the full form from that card, although he had heard other drivers call her Tavi while changing shifts. He had been careful with the surname on his invitation, wanting the address to feel considered rather than borrowed from somebody else's familiarity.

Now it looked strangely official. He imagined her opening a request about a route timetable and finding two drawn chairs instead. He almost took out the pencil he carried for correcting poster dates. Then he left it where it was. He could explain an invitation when he gave it to someone. It did not need to survive every possible reading on its own.

At the cinema, full names belonged on the volunteer board and booking notes. Shorter calls crossed the room when somebody needed a hand. He knew how to move between the two without thinking until the person mattered to him. Then every form became a choice he could spend an evening postponing.

Elin's stop approached. She gathered the cake box, thanked him for the tape and waited while the bus came to rest. Before stepping down, she turned toward his seat.

“Bam, could you come to the front for a moment?”

He stood too quickly. She pointed to the loose end of tape trailing from his coat pocket. It had caught the corner of the seat. He freed it and wound it back around the roll while she held the door area clear of the box.

“There,” she said. “Now you won't have to leave your pocket behind.”

Tavi was smiling when he looked up. Elin stepped onto the pavement, carrying the cake with both hands. Bam found himself near the front of the bus with the invitation in his pocket and no convincing reason to hurry back to the middle.

The spare seat

“There's room here,” Tavi said, nodding toward the seat behind the partition. “Your tape can have the window side.”

He sat. The shelter at Elin's stop moved behind them, then the lit window of a small shop, then a row of garden walls. Tavi kept her attention on the road. Bam found it easier to speak when he was not being watched for the next thing he might say.

He asked what time she would begin the hill route. She told him. Earlier than he usually began his day, later than she had once imagined anybody could consider morning. She was looking forward to finishing while the afternoon still contained usable hours.

“You can go places that are open,” Bam said.

“That's the plan.”

He heard an invitation to ask a better question and mistook it for a demand to produce the perfect one. There were restaurants near the harbor, a small garden above the library, a café whose chairs he had already drawn without asking whether she liked sitting in cafés.

Tavi mentioned that she had never seen the yellow-moon film. She had only seen his poster. He said the cinema was showing it again next week. Then he began explaining the screening times instead of asking whether she would like to come.

Halfway through the third time, she said, “I can read the board, Bam.”

He stopped. There was no sharpness in it. She was leaving him an opening which did not need another row of numbers.

“I know.”

The road rose toward the turning place. He looked at his coat pocket and could see the corner of the invitation without reaching inside. For two earlier journeys he had taken this bus specifically to ask her. On both he had left with information he already knew.

This evening, at least, his tape had achieved something he had not managed by planning.

At the end of the route

The turning place had a low wall, a view of the harbor and a bench which always looked recently wet. Tavi brought the bus to its final stop and completed the small tasks that belonged to finishing the run. Bam waited until she turned away from the controls before taking out the paper.

“I wondered if you would like to stop somewhere that isn't a bus stop,” he said.

The sentence sounded prepared because it was. He decided to let it be prepared. He had drawn the chairs, chosen the day and worried about the address. Pretending to have thought of the invitation casually would make the effort itself something he was ashamed to offer.

He handed her the folded paper. Tavi read her full name across the outside and ran a thumb along the crease before opening it. Inside were the two chairs, a little round table and the date of an afternoon when he would be free. He had written supper first, crossed it out and put a late lunch above it after remembering her new hours.

“You changed the meal,” she said.

“I changed the time. The food remains a question.”

She studied the chairs. One had been drawn slightly larger because he had begun that side first. He had worried about making them equal and finally stopped before the paper became too rubbed to use.

“Which one's mine?”

“Whichever you like.”

She pointed to the larger one. “I spend enough time in a seat somebody else chose.”

He laughed. Until that moment he had been waiting for her answer so carefully that he had almost missed the way she was giving it. She took the pencil when he offered it and added a time beside the date.

“The café above the library?” she asked. “They have a terrace if it stays dry.”

He knew the café. He had walked past it that morning while carrying a rolled poster, imagining himself sitting somewhere entirely different with the same person. He said yes before explaining any of this.

The address she kept

Tavi folded the invitation along its original crease. Her full name returned to the outside, while the chairs and the new time disappeared safely inside it. She put it into her bag beside the little notebook where she kept things unrelated to routes.

“You could have asked at the harbor,” she said.

“I was going to.”

“Last week?”

He looked at her. She nodded toward his coat. She had seen the paper before, or something like it, on another evening when he had asked whether the bus still stopped outside the cinema. It always had.

“I thought you might be trying to report a lost item.”

“In a way.”

Then he shook his head, laughing at himself before a small honest answer could turn into a performance. “No. I wanted to ask you to lunch, and I kept making it a timetable question.”

She said she was glad the paper had eventually arrived. She did not tell him that she had known what he meant all along. She had not. For a while she had wondered whether he wanted a temporary bus notice displayed at the cinema. They could be familiar with one another and still need a clear question.

They walked down to the low wall while she waited for the person collecting her. From there Bam could see the cinema's poster case as a narrow light. The enormous moon was invisible at that distance. He could identify the place because he knew where it stood.

Tavi asked whether he had chosen the film. He told her which volunteer had suggested it, and about an argument over whether its long quiet scene needed music. She wanted to hear the rest. He found himself describing the people who worked there, using their actual names instead of grouping them under the useful word volunteers.

When a car turned into the stopping place, she picked up her bag and checked that the invitation remained inside.

“See you, Bam.”

He heard his name plainly, at an ordinary volume, with an afternoon attached to it.

A place on another day

On the walk home he bought no new paper. There was a stationery shop still lit near the corner, and for a moment he imagined drawing a cleaner invitation, with equal chairs and a time placed correctly on the first attempt. Then he kept walking. Tavi had the version on which she had written an answer.

The next evening another driver took the harbor route. Bam arrived with a ladder and introduced himself as Bam Vale before asking where it could stand without blocking the aisle. The driver found a place. There was no need for the bus to recognize him as an old regular before they could solve an ordinary problem.

At the cinema, he took down an out-of-date notice and replaced it with the yellow-moon screening time. On the volunteer board, somebody had left space beside his Saturday shift. He wrote that he would be away for the afternoon and arranged a swap with Elin.

She asked whether he needed more tape for any important parcels. He said the parcel had been delivered. She accepted this with the same tact she had offered on the bus, then asked him to hold the ladder while she checked the top corner of the poster.

Later he found a short message from Tavi confirming the café. It began with his full name in mock formality, followed by a drawing of the larger chair. Under it she had written: I have chosen my seat.

He answered in the ordinary way he would have thought too small before the invitation had been offered: See you there, Tavi.

The naming notebook

Give the sound a person to belong to

The opening call can first resemble an impact because the bus door and BAM arrive together. Tavi’s quieter full reference and Elin’s correction give it a specific person without requiring another given name. A comic can make that ambiguity deliberate, but the reader needs enough information to recover the intended address. Separate the character named in a line from the voice producing it: Bam may be called while Tavi speaks. An effect-list match locates this possible ambiguity; it does not declare the name unsuitable or provide its etymology.

An invitation earns the shorter call

Bam’s wish is concrete: invite Tavi to meet away from the route before their familiar evenings stop coinciding. The folded paper, keys, tape and seat keep the wish active while he delays asking. Full Tavi Hale outside the fold makes the invitation considered and slightly formal; the final ordinary Tavi belongs to an exchange she has answered. Typography alone cannot provide that emotional turn. The call works because an offered meeting, a chosen chair and a specific time have changed what the two people can expect from the next encounter.

Measure a line, then read the scene

Try complete and familiar forms inside the actual dialogue template. A full reference can help orientation while taking more bubble space. Preserve words where a split would make a surname look like another voice; review grapheme breaks manually. The preview measures browser-resolved advance widths and line boxes, so findings remain tied to that font request and device. Preserve the complete identity and staging role when saving. A private alternative strip lets you consider another address without rewriting this public story or treating its local measurement as universal reader comprehension.

Give an address a person and a place in the scene. The same printed word can function as voice or effect.

Compare actual rendered dialogue, then deliberately change bubble space, line breaks or type settings and reread the picture.

Retain a full first reference when it helps orientation; try familiar calls after the relationship has become clear.

Inspect the intended output scale with readers. Measurements locate decisions without certifying pronunciation, accessibility or emotional clarity.

BAM: Bam Vale remains the character’s full identity. Its short uppercase address BAM matches the supplied effect token; compare a full introduction and clearer voice cue before deciding whether the name needs changing. Reproduce the BAM effect cue, then compare full form, local fonts and bubble space. Keep the identities and Tavi’s driver role intact.

BEFORE YOU CHOOSE

Questions from the workbench

Why do equally long names wrap differently?

Proportional fonts assign different glyph sequences different advance widths. This tool measures the complete rendered line using the requested browser font; equal character counts do not establish equal width.

Does an effect match mean the character must be renamed?

No. BAM is both an address and a supplied effect token in this example. A full introduction, clear voice placement or another display form may resolve the moment. The exact-match cue cannot predict every ambiguous reading.

Is the named character always speaking?

No. “Bam, wait” addresses Bam. The source ID identifies the name being tested; choosing who speaks and where the bubble belongs remains the author’s staging decision.

Why is fit sometimes unavailable?

A server or unsupported browser cannot supply the requested DOM measurement or segmentation. Names and source settings remain, with no estimated fit substituted. Word-preserving mode does not require grapheme segmentation.

Will a saved line fit every device?

No. A snapshot retains a local generic font request and its measured line boxes. Another browser can resolve a different face; regenerate and inspect the intended publication output.

Practical naming reading

Scope & sources

Human-unreviewed original fiction and a local lettering aid. Measurements cover advance widths/line boxes, not every ink boundary or reader response. Font resolution and glyph coverage vary by device. No font assets redistributed, pronunciation analysis, speech service, availability lookup or external AI. Regenerate saved snapshots after device/font changes.

Midsummer Fruit original creative dataset · CC0-1.0
Original word selections, fictional combinations, explanatory content and narrative; not researched etymology. Internal spelling and structural review only; cultural authenticity not established.

↑ Back to naming tool