Only # and [ lines are skipped now; full-line parentheticals are real
lyrics (MF DOOM's whole style) and get analyzed, sid'd, and rhymed.
Inline-paren ad-lib handling (rhyme internally, never claim the end
slot) is unchanged.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The export now mirrors render() — per-token fills scaled by strength,
rhyming words tinted in their family color, sub-word tail underlines,
gray unanswered endings, near-miss dotted marks, plus the existing
alliteration/rhythm/header styling.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
setEmphasis clears when the rhyme toggle is off, so hovering doesn't
light a family or show the inspector with the rhyme layer disabled.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rhyming words now take a quiet tint of their family hue (28-60% toward
the color by strength, mixed with ink for legibility) on top of the
soft block fill — both channels at once: the block groups, the tinted
glyphs carry the color. The sub-word underline still marks the exact
rhyme. Subtle enough to read through.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Hovering a rhyming word brightens its family's chips (CSS class
toggles, no re-render, smooth .2s transition); moving onto plain text
or off the editor falls back to the caret's family. Additive only —
nothing dims. Unified the caret spotlight and hover onto one
activeFam path.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Hovering a word now brightens its whole rhyme family (dark ink on lit
chips) plus the margin bracket — same as the caret spotlight, but
following the mouse so you can sweep a verse. The weave/constellation
overlay was tried (threads, taper, forks, dots) and cut: every step
revealed it was more than the page wanted. Hover-illuminate is the
clean version.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Click a rhyme and a soft thread of light weaves under the text through
every member of its family — a spine following the line-ending rhymes
with internal rhymes forking off, drawn-in on click, nodes sized by
each word's strength, anchored to the rhyming tail. Renders beneath
the glyphs (z-index 0) with a gentle gaussian glow so it reads as
light from underneath, not a stroke on top.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Strength is now per token, not per family — a word that only slant-
matches its family (placement riding creation/elation's -ation core)
caps at 0.6 while the perfect anchors stay at 1.0. The gradient now
lives within a single color, showing each word's own grip on the rhyme.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The fill (and tail underline) now scale through a per-group strength
from the founding key: perfect 1.0, multisyllabic .82, consonant-
backed .7, vowel slant .6, consonance .55, weak ending .5. So the
page reads rhyme quality as a smooth brightness ramp, not just
perfect-vs-slant — the feature, deepened.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
A line ending that rhymes with nothing but sits one phoneme from
another ending in the stanza (hand/bond — one vowel apart) gets a
dotted gold underline: a tiny edit would lock it. Restricted to
genuinely-open endings, so it never duplicates the slant/consonance
detection (which already catches same-vowel near-rhymes).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Whole rhyming word fills dimly; a bright underline marks just the
rhyming part (tonight -> under 'ight'), so the precise interlock shows
without the fill looking ragged when the phoneme->letter guess is a
letter off. Removed 'scheme' from the toolbar readout.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
#4: caret in a colored word names its family in the readout —
"rhymes ay t — night, light, flight". The colors stop being a mystery.
#5: slant rhymes render at 62% of a perfect rhyme's fill, so the page
shows match strength, not just match presence.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Lines starting with # render bold and a touch brighter (a title, not
just a dim note); ( and [ annotation lines stay dim. Export matches.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Clicking into a colored word brightens its whole rhyme family (dark
ink on lit chips) and draws a soft rounded bracket in the left gutter
spanning the family's lines — rhyme and alliteration each get their
own bracket, gated to their toggle. No dimming of the rest; additive.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Python diss put pink on five different families: 18 families, 12
colors, and the assignment kept grabbing low indices so one hue piled
up. Now 16 colors (added cyan, amber, lavender, emerald) and each
family takes the globally least-used non-adjacent color, so hues
spread evenly — no color repeats more than twice on a dense page.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
At 85% fill the off-white text washed out; the focused family's
glyphs flip to dark (like the primary button) with a touch of weight.
Possible because the highlight layer owns glyph color.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The full color field stays put; the family under the caret glows
~1.8x (capped at 60%). Additive, not subtractive.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Click into any colored word and every other family dims to a whisper
(22% of normal); the caret's rhyme thread stays lit across the whole
draft. Caret anywhere else restores the full field. No toggle — it
follows where you are. Smallest covering token wins (word over
phrase), recomputed after each analysis since gids shift.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
r9/r10/r11 were a pale pink, a second teal, and a second orange — now
rose, indigo, and chartreuse. Color assignment stops being gid % 12:
each family picks the first hue not worn by families on its own or
neighboring lines, so similar colors never sit next to each other.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Internals 19% (phrases 14%), ends stay 34%, export matches. On long
documents the overlay layers get a tail spacer equalizing their
scroll height with the editor's, so deep scroll positions can't clamp
and slide the colors off the visible text.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The caret-line readout already gives syllables on demand; a number on
every line was furniture.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Share covers it (Notes, Files, anywhere), and drag-drop import remains
the way back in. Toolbar: Copy · Save PNG · Share + toggles.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Apple offers no content-accepting Notes URL scheme; the native share
sheet is the real path — Notes, Messages, Mail, one tap. Button only
appears where navigator.share exists (Safari, iOS, Android).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Two sub-tabs under the lookup input: Explore (associations, describes,
synonyms — the meaning side) and Wordplay (rhymes, near, multis — the
sound side). Readout and history shared; switching repaints from the
cached entry.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
What the word summons (Datamuse rel_trg): rain -> showers, monsoon,
shine, hail. The theme-building lens, first in the entry.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Multis: dictionary search by vowel skeleton — single words and
two-word combos matching the target's run from its stressed anchor
(charisma -> little/women/business; vacation plans -> information
back). Perfect rhymes excluded; phrases supported as targets; new
"multis" row in the rhymes section. Indexes warm at boot.
- Counts toggle: syllables per line in dim digits at the editor's
right edge, wrap-safe and live; carried into the PNG export.
- Suffix fusion: multi families whose vowel keys are end-aligned
containments merge (back pocket / rap profit / off it / still in
office = one Em chain), with trailing schwas stripped before
comparison; the longest end token now owns the scheme slot.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The grey wrap targeted a renderer shape that no longer exists and
silently no-opped; it now applies at the real line-append point, and
the editor selection rule is un-nested for parser safety.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Same-vowel perfect families fuse when both live at line ends:
blood/mud + thugs/drugs (+does/love/enough) read as Kanye's one AH
chain; mid-line families keep their codas distinct
- Annotation lines (#, [, ( starts) render in a dim ink — the
highlight layer now owns the glyph color (textarea text is
transparent over it), in the editor and the PNG export
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Third extractor: the knowledge panel's standalone "Lyrics" header
through the Source:/Songwriters: footer — everything after (result
snippets, videos, People-also-search-for) drops. Requires both
markers, so a poem with a "Lyrics" line passes through whole.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Google's lyrics box ships U+2028/U+2029 between lines, which a
textarea collapses — verses arrived as one giant line. All line-
separator flavors (CR, CRLF, LS, PS, NEL, VT, FF) normalize to \n,
and the Lyrics/Songwriters/Musixmatch furniture strips with the rest.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Second extractor alongside the Genius one: quoted-title headers up
top plus a Thanks-to/Writer(s)/licensed-by footer mark the envelope;
both header and footer evidence are required, so quoted lines in your
own writing never trigger it.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The more… expanders are gone — describes, rhymes, and synonyms render
in full and the entry just scrolls. Smart paste inserts through the
undo-aware path so Cmd+Z cleanly un-pastes.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
A full select-all paste (nav, bio, Q&A, credits, translations) now
reduces to the block between the first [Section] header and the
Embed/About footer, with "You might also like" recommendation inserts
dropped through to the next section. Lyrics-only pastes — with or
without [tags] — pass through untouched.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Curly apostrophes broke phonetic tokenization (don't -> don + t);
pasted and dropped-in text now normalizes quotes/nbsp and drops
Genius-style cruft lines (Contributors, "... Lyrics" headers,
Translations, You might also like, Source:, Embed).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
One lookup renders the whole entry — phonetic readout as a plain
header (card chrome and dismiss gone), describes, rhymes by syllable
(+near), synonyms always fully expanded — with collapsed sections
behind "more…", a clickable history trail, and lookups firing as you
type (Go button and mode seg removed).
Multi-word lookups work: phrases read straight through for the
phonetic readout, rhyme on their final word (labeled), and hit
WordNet compounds for synonyms (new york -> Empire State).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Single-vowel perfect families whose coda classes nest fuse into one
chain: wrist (IH S T) hubs this (IH S) and shit (IH T), which ride
as slant satellites — Logic's hook reads as one color
- Final s/z voicing neutralizes in coda classes and weak-ending keys:
vamonos rhymes dominoes
- The drafts bar wraps instead of scrolling, so many drafts stay
visible
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Beats: every pattern gets an 808 bass line (pitch-glide sine, per-
style note movement), trap/halftime get layered claps, lo-fi/jazz get
open hats, hats humanize velocity. Two new styles (Halftime, Dembow),
a tap-tempo button, and a four-dot beat indicator synced to the bar.
Cadence: flexible monosyllables (x) read as stressed, so contours
differing only in flex positions join one flow family.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Line-height returns to 1.9 by default; the roomy 2.35 line box (and
its tall caret) only applies while the rhythm dots need the space.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The rhythm layer now keeps dots over the unchanged prefix of an
edited line (same logic as the rhyme fills) instead of blanking the
whole line until re-analysis.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Two starred ideas, zero new chrome:
- Rhythm dots take a shared color when 2+ lines have the identical
stress contour (5+ syllables) — flow rhymes, visible
- Line-endings with no rhyme partner get a faint gray fill in the
rhyme layer: the open loops that show where to strike next
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Drafts escape localStorage — a Save .txt button downloads the current
draft (named after its first line), and dropping text files anywhere
on the page turns each into a new draft tab.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
First in the toggle row, on by default; the export honors it. Rhythm
dots and alliteration underlines are independent layers, so any
combination works (e.g. rhythm-only for a clean flow view).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Rhyme/synonym chips already in your draft get a gold tick
- Word card shows WordNet sense count (3+) — double-entendre fuel
- "alliteration" toggle underlines words sharing an initial sound
(locally clustered, 3+ words), in the editor and the PNG export:
fills = tail sound, underlines = head sound
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Inline (parentheticals) are delivery, not text — they no longer rhyme
or steal the line-ending slot ("...bunch (yeah)" rhymes on bunch).
The readout leads with "bar 3/16" for the caret's place in its verse.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
WYSIWYG: PNG line spacing widens to fit, dots centered under each
word in ink, same notation as the editor.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>