콘텐츠로 이동

0.4.0 마이그레이션 가이드

0.4.0에서 이 저장소의 서드파티가 아닌 공개 심볼 전부에 LH 접두사를 통일적으로 부여하여, plus 저장소의 docs/project/development-guide.md에 있는 패밀리 명명 규칙에 맞췄습니다(배경은 명명 규칙을 참고).

전부 식별자 수준의 기계적 치환이며, 동작은 변하지 않고 내보내기 경로도 변하지 않습니다. 각 UI 라이브러리(plus / vue2 / uniapp)는 이미 개명을 동기화했습니다; 독립 사용자는 아래 매핑에 따라 import를 수정하세요.

이전 새 소속
ThemePreset LhThemePreset theme
ThemePresetName LhThemePresetName theme
ThemeVars LhThemeVars theme
SxProps LhSxProps core/shared/sx
DOMRectLike LhDOMRectLike core/shared/popper
ComputePositionOptions LhComputePositionOptions core/shared/popper
PopperPosition LhPopperPosition core/shared/popper
PtAttrs LhPtAttrs core/shared/pt
SanitizeNumberOptions LhSanitizeNumberOptions core/shared/sanitize
VirtualRange LhVirtualRange core/shared/virtual
AxisRange LhAxisRange core/shared
LocalePath LhLocalePath locales
Leaves LhLeaves types/locale
LocaleOptions LhLocaleOptions types/locale
이전 새 소속
DEFAULT_THEME LH_THEME_DEFAULT core/config
DEFAULT_DRAWER_DIRECTION LH_DRAWER_DIRECTION_DEFAULT core/drawer
DEFAULT_DRAWER_SIZE LH_DRAWER_SIZE_DEFAULT core/drawer
DEFAULT_DROPDOWN_PLACEMENT LH_DROPDOWN_PLACEMENT_DEFAULT core/dropdown
DROPDOWN_TRIGGERS LH_DROPDOWN_TRIGGERS core/dropdown
DEFAULT_POPCONFIRM_TYPE LH_POPCONFIRM_TYPE_DEFAULT core/popconfirm
DEFAULT_POPCONFIRM_PLACEMENT LH_POPCONFIRM_PLACEMENT_DEFAULT core/popconfirm
POPOVER_TRIGGERS LH_POPOVER_TRIGGERS core/popover
DEFAULT_POPOVER_PLACEMENT LH_POPOVER_PLACEMENT_DEFAULT core/popover
THEME_PRESETS LH_THEME_PRESETS theme
PRESET_THEME_STYLE_ID LH_PRESET_THEME_STYLE_ID theme

주의: 기본값 상수는 LH_<모듈>_<개념>_DEFAULT(DEFAULT가 뒤)이지, LH_DEFAULT_<...>가 아닙니다.

테마 프리셋 객체: 소문자 → LhXxx

섹션 제목: “테마 프리셋 객체: 소문자 → LhXxx”
이전 새
cerblue LhCerblue
songhua LhSonghua
zhusha LhZhusha
shuimo LhShuimo
golden LhGolden

아래 심볼은 원래 이름을 유지하며, 마이그레이션 시 건드리지 마세요:

심볼 이유
zhCN / enUS 표준 locale 명명이자, 세 UI 라이브러리의 공개 API로서 재내보내기됨
프리셋 이름의 문자열 값(name: 'cerblue' 등) 사용자가 ConfigProvider의 theme에 작성하는 설정값이며, 바꾸면 모든 하위 설정이 망가짐
함수명(getThemeVars / sxToStyle 등) 이번에는 상수 / 타입 / 인터페이스 / 클래스만 수렴함
// ✅ 마이그레이션 후
import { LH_THEME_PRESETS, LhCerblue, getThemeVars } from '@lh-ui/share/theme'
import type { LhThemePreset, LhSxProps } from '@lh-ui/share/core/shared/sx'
const preset: LhThemePreset = LhCerblue
getThemeVars('cerblue') // 문자열 값은 변하지 않음
// before
import { THEME_PRESETS, PRESET_THEME_STYLE_ID } from '@lh-ui/share/theme'
import type { SxProps, ThemeVars } from '@lh-ui/share'
// after
import { LH_THEME_PRESETS, LH_PRESET_THEME_STYLE_ID } from '@lh-ui/share/theme'
import type { LhSxProps, LhThemeVars } from '@lh-ui/share'

개명 외에, 0.4.0에는 다음과 같은 대기 중인 체인지셋이 포함되어 있습니다:

  • 로컬 연동과 스타일 거버넌스(minor) —— 패밀리 구성 alias 메커니즘, verify:styles의 6개 항목 검증 정착
  • 3개 저장소 감사 수정(minor)
  • 높이 토큰 전문 작업(minor) —— --lh-control-height-* 토큰을 새로 만들어 컨트롤의 바깥 높이를 통일, 시각적 파괴적 변화: 아래 “컨트롤 높이 변화” 참고
  • divider 세로 지원 문구(minor) —— 세로 구분선의 기본 슬롯 문구를 지원하고, aria-orientation="vertical"이 이제 접근 가능해짐
  • GUI 회귀 결함 묶음(patch) —— Form 필수 문구의 우선순위(사용자 정의 message가 더 이상 합성 규칙에 삼켜지지 않음), 어두운 주색 프리셋의 명도 올리기(水墨 (수묵) 등 프리셋의 주요 버튼이 어두운색에서 더 이상 거의 보이지 않음) 등
  • date-picker 순환 의존성 철거(patch) —— formatDate / parseDate를 core/shared/date로 내리고, logic ↔ adapter의 이진 순환을 단방향으로 해체
  • divider 테두리 스타일과 단위 테스트(patch)
  • 폼 컨트롤 가운데 정렬 수정(patch)
  • steps 제목 줄바꿈과 말줄임(patch)
  • hairline 표시 규칙 폐지(patch) —— uniapp v3 px 직접 출력으로, 새로 추가하는 1px 테두리에는 더 이상 /* hairline */ 표시가 필요 없음(기존 65곳의 표시는 일반 주석으로 보존)
  • 문서 사이트(minor) —— 지금 읽고 있는 이 사이트

--lh-control-height-{mini,small,medium,large,x-large} 토큰을 새로 만들었고(의미는 컨트롤의 바깥 높이 border-box), 모든 폼 컨트롤이 이 토큰을 참조하도록 바꾸었습니다. 이전에는 대부분의 컨트롤이 box-sizing: border-box를 선언하지 않았는데, 바깥 높이 기준으로 통일한 후 아래 컨트롤들의 실제 렌더링 높이가 낮아졌습니다:

컨트롤 변화
input padding에서 파생되던 것을 고정 높이로 변경: mini 28→20, small 32→24, medium 39→32, large 50→40
기타 폼 컨트롤 같은 높이 단계 그룹으로 통일, 같은 폼 안에 섞여도 수직 중심과 베이스라인이 정렬됨

이것은 시각 수준의 파괴입니다(DOM 구조와 API는 변하지 않음). 프로젝트에 옛 픽셀값에 대한 스냅샷 테스트나 고정 높이 레이아웃이 있다면 회귀 확인이 필요합니다.

Copyright © 2024-2026 FengMo WenXue