Repository navigation
[DONE] 텍스트 레이어의 글을 비우면 미리보기도 비고, 판을 돌린 흐르기 글이 다시 열어도 살고, 글꼴을 못 남기면 그렇다고 말한다 - #244
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017SBMKxYYSD2Dfjhnd4fgQJ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017SBMKxYYSD2Dfjhnd4fgQJ
…을 못 남기면 그렇다고 말한다 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017SBMKxYYSD2Dfjhnd4fgQJ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017SBMKxYYSD2Dfjhnd4fgQJ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017SBMKxYYSD2Dfjhnd4fgQJ
patternflow-bot
marked this pull request as ready for review
October 25, 2026 05:16
This was referenced Oct 25, 2026
engmung
pushed a commit
to engmung/Patternflow
that referenced
this pull request
Oct 25, 2026
engmung
pushed a commit
to engmung/Patternflow
that referenced
this pull request
Oct 25, 2026
This was referenced Oct 26, 2026
This was referenced Oct 28, 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.
lsh / https://claude.ai/code/session_017SBMKxYYSD2Dfjhnd4fgQJ
Pattern Lab 텍스트 레이어에서 흐르기나 색 램프를 켠 채 글을 다 지우면, 이제 미리보기와 내보내기에서도 글자가 사라져요. 판을 128×64 에서 64×128 로 돌렸거나 오른쪽 맞춤으로 아주 길게 쓴 흐르기 글은 다시 열어도 멈추지 않아요. 글꼴 파일을 이 브라우저가 못 남겼으면 남겼다고 하지 않아요.
좋아지는 것: 텍스트 레이어가 쓴 그대로 보이고 다시 열린다 — 지운 글이 흐르거나 긴 글이 멈추지 않는다
할 일
1fea592)에서 빨강 9개check:voice099b66d: Drift checks, Web CI)한 일
①
textReach(lib/lab/textRaster.ts)가 캔버스가 없을 때만null을 돌려줘요. 글자가 없으면{ left: 0, right: 0 }이라,drawTextSource가 열 0 으로 보고 source 를null로 두고 bitmap 을 비워요. 효과 None 일 때와 같은 빈 레이어예요.② source 의 자리를
placeTextSource(lib/lab/textEffects.ts) 한 곳에서 잡아요. 그 판의sourceColumnLimit보다 긴 열은text.ts가 그리며 버리듯 뒤를 잘라요. 흐르기는 x 를 「source 폭 + 판 폭」으로 나눈 나머지로만 읽어서, x 를 판 바로 옆(source 폭만큼 왼쪽에서 판의 오른쪽 끝까지)으로 옮겨요. 매 프레임은 그대로예요. 색 램프는 x 를 그대로 두고, 판에 하나도 걸치지 않으면null이에요. 그리는 쪽(text.ts), 판을 바꾸는 쪽(store/shared.ts의resizePixelLayers), 읽는 쪽(serialize.ts의readTextSource)이 모두 이 함수를 거쳐요. 읽는 쪽의Math.abs(x) > width * 8 + columns는 빠지고Number.isSafeInteger(x)가 들어갔어요. 열 한계는 그대로 지켜요.③
addFontFile(lib/lab/textFonts.ts)이{ option, remembered }를 돌려줘요. 남기라 했는데 못 남겼으면 TextPanel 이 「Brand Sans is loaded for this visit. This browser wouldn't keep a copy for next time.」 이라고 하고, 「Forget it」 단추도 없어요.시험은 새
lib/lab/textRaster.test.ts가textRaster.ts를 흉내 내지 않고 가짜 캔버스로 돌려요. 그 캔버스는 글자마다 폭이 글꼴 크기의 반인 덩어리를 그려요.test/setup.ts의 캔버스는 아무것도 재지 않아서 이 파일 안에서만 바꿔 끼워요.textEffects.test.ts에placeTextSource시험 셋,TextPanel.test.tsx에 IndexedDB 를 흉내 낸 글꼴 시험 셋을 더했어요.증거
dev(
1fea592)에서 새 시험만 돌렸을 때예요.빨강의 까닭은 셋이에요. 글을 비운 레이어의 source 가
{ x: 10, width: 11, … }로 남았어요. 판을 돌린 source 가 4095열로 64×128 의 한계 2048 을 넘었어요. 오른쪽 맞춤 글은 다시 열면activeTextEffect가null이었어요.이 브랜치에서는 세 파일 55개가 다 지나요(
Tests 55 passed (55)).다섯 검사(
web/)의 끝줄이에요.PR 검사는
099b66d에서 「Drift checks | completed | success」, 「Web CI | completed | success」 예요.빌드한
/pattern-lab에서 텍스트 레이어를 하나 더하고, Effect 를 Scroll 로, 「remember in this browser」 를 켠 채 글꼴 파일을 넣고, 글 칸을 비웠어요. 이 브라우저의 글꼴 IndexedDB 는QuotaExceededError를 던지게 했어요. dev 는 지운 「Hello」 가 계속 흐르고 「kept in this browser for next time」 이라고 해요. 이 브랜치는 아래 코드 레이어만 보이고, 못 남겼다고 해요.실행법
cd web npx vitest run src/lib/lab/textRaster.test.ts src/lib/lab/textEffects.test.ts src/app/pattern-lab/panels/TextPanel.test.tsx가정
resizePixelLayers의 뜻이고, 다시 구우면 이 브라우저에 없는 파일 글꼴이 대신 글꼴로 바뀌어요.Changelog
Web
바퀴
바퀴 96 · 지시 6 「텍스트 레이어 고침 셋」
경험
언제: 바퀴에서 390px Pattern Lab 의 dockview 탭(Layers, Text, Preview)을 Playwright 로 바꿀 때
교훈: 탭은
click()으로 안 바뀌니 탭에dispatchEvent("pointerdown")를 보내고, dev 를 따로 빌드할 땐 node_modules 를 심볼릭 링크 대신cp -al로 레포 옆 worktree 에 걸어요근거: #244 에서
locator.evaluate((el) => el.click())로 Layers 탭을 눌러도 「+ Text」 가 30초 안에 안 떴고 pointerdown 으로 바로 떴어요. 같은 바퀴에서 스크래치 worktree 의 심볼릭 링크 node_modules 는 Turbopack 이 「Symlink node_modules could not be resolved」 로 빌드를 멈췄어요다음 바퀴
!단언 가운데 타입으로 좁힐 수 있는 일곱이 빠진다」:textEffects.ts의layer.source!는 이번에 줄이 34줄 밀렸어요.🤖 Generated with Claude Code
https://claude.ai/code/session_017SBMKxYYSD2Dfjhnd4fgQJ