Changelog | CoUI
본문으로 건너뛰기
LogoCoUI

Changelog

패키지별 릴리스 노트와 정확한 버전 참조

목차

CoUI는 release-please로 패키지별 독립 버전을 관리합니다(coui_flutter / coui_web / coui_core 등). 아래 미리보기는 빌드 시점에 각 패키지의 실제 CHANGELOG.md를 읽어 렌더하므로 항상 최신 릴리스와 일치합니다 — 손으로 옮겨 적은 텍스트가 아닙니다.

전체 이력은 GitHub에서 확인하세요:

저장소 루트의 CHANGELOG.md는 보관용입니다. 지금 릴리스되는 패키지별 CHANGELOG(위 링크)가 항상 최신입니다 — 루트 파일은 패키지 분리 이전 이력이 남아있어 여기서 참고용으로만 확인하세요.

coui_flutter#

현재 버전:

0.179.0

git 태그 (ref: 값):

coui_flutter-v0.179.0
0.179.02026-11-04

⚠ BREAKING CHANGES

  • **core,flutter,web,figma:** TextField 계열 값 · 자리표시자 글자의 줄 높이가 140% 에서 역할 값(Body/Medium · Body/Large 150%)으로 바뀌고, 한 줄 입력 상자는 모든 크기에서 크기 단 높이에 글줄을 세로 가운데로 둔다 — TextField · Select 의 sm 은 33.6 에서 32 로, TextField xs 는 29.6 에서 24 로 낮아지고(md 40 · lg 48 · xl 56 · xl2 64 는 그대로), 여러 줄 TextField 는 줄마다 1.4 높아지며, NumberInput 값 글자가 Label/Large(Medium)에서 Body/Medium(Regular)으로 바뀌고, Flutter 의 가운데 정렬 TextField 값이 0.5px 오른쪽으로 옮겨진다. 이전 렌더가 필요하면 `textFieldStyle: CoreTextFieldStyle(padding: <크기 행 패딩>, baseTextStyle: CoreTextStyle.token(CoreTextStyles.bodyMedium).copyWith(lineHeight: CoreLineHeight.h140))` 를 넘긴다(NumberInput 값은 `fieldStyle: CoreTextFieldStyle(valueStyle: CoreTextStyle.token(CoreTextStyles.labelLarge))`).

버그 수정

  • **core,flutter,web,figma:** 선택된 비활성 목적지가 선택 표시를 흐리게 남기고, Web 포커스 8% 레이어가 실제로 칠해진다 (#6003) (899539d)
  • **core,flutter,web,figma:** 한 줄 입력 상자를 크기 단 높이에 두고 값 글자는 역할 줄 높이로 세로 가운데에 그린다 (#6009) (6991716)
  • **core,flutter,web:** Dark 상태 아이콘 500 · SidebarItem 선택 배경 surfaceContainer · Stat filled surfaceContainerLow (#6015) (ef150af)
  • **figma:** NavigationBar 의 비활성 · 포커스 멤버는 포커스 링을 그리지 않는다 (Part of #5740) (#6006) (c1e5618)
  • **i10n,flutter,web,figma:** 커맨드 푸터의 ↑ ↓ 한 쌍 라벨을 양방향 '이동'(commandMove)으로 바꾼다 (#6014) (f397cca)
0.178.02026-11-04

⚠ BREAKING CHANGES

  • **core,flutter,web,figma:** labelMode 를 주지 않은 NavigationBar · NavigationBarItem(mode: bar)이 아이콘만 그리던 것에서 모든 목적지에 라벨을 그리도록 바뀐다(바 높이 80 은 그대로, 이전 모습은 labelMode: CoreNavigationLabelMode.none 으로 되돌리며 이때 목적지는 64×40 · 바 56 · 터치 영역 48 이다). indicator fill 의 쌓인 목적지는 surfaceContainerHigh 타일 대신 primaryContainer 알약으로 선택을 그리고 selectedBackgroundColor 를 읽지 않으며(알약 색은 selectedIconAnchorColor), 선택된 목적지도 hover · focus · pressed 상태 레이어를 받는다.

기능

  • **core:** ✨ RichEditor 리디자인 — 툴바를 입력 칸 테두리 안으로 · 구분선 · trailing 슬롯 (#5989) (2b0cee1)

버그 수정

  • **core,flutter,web,figma:** DatePicker 설명 문구는 활성에서 on-surface-subtle, 비활성에서 disabled-content 로 칠한다 (Part of #5881) (#5977) (6a6ab63)
  • **core,flutter,web,figma:** FileInput 설명 문구 Regular · 제목 on-surface · 설명 on-surface-subtle (#5996) (871e6dd)
  • **core,flutter,web,figma:** NavigationBar 포커스 링을 타일과 동심으로 맞추고 캔버스 예시를 결정대로 그린다 (Part of #5740) (#5999) (fd848b5)
  • **core,flutter,web,figma:** NavigationBar 하단 바 기본 라벨 · 세 라벨 배치의 primaryContainer 선택 · 선택 위 상태 레이어 (#6002) (183029c)
  • **core,flutter,web,figma:** TimePicker 예시 · 구분자, FileInput 문구, ColorPicker 예시 값 (#5993) (0c7b23e)
  • **core:** Stat sm 값 글자의 굵기 덧씌움을 지워 titleLarge 역할 그대로 그린다 (#5978) (67776d9)
  • **figma:** ObjectInput 칸 48 · ChipInput 칩 지우기 버튼 16 · 아이콘 12 (#5991) (e8461ae)
0.177.12026-11-02

버그 수정

  • **flutter:** Alert — 아이콘 크기는 토큰 크기로 넘긴다 (테마 배율을 두 번 곱하던 것) (#5970) (88be141)
  • **flutter:** Avatar — 이니셜은 OS 글자 배율을 받지 않는다 (원 안에서 두 줄로 접혀 잘리던 것) (#5973) (457d3d4)
  • **flutter:** TextArea · TextField — 두께 0 테두리는 그리지 않는다 (머리카락 선으로 그려지던 것) (#5976) (73f0ed2)
0.177.02026-11-02

기능

  • **flutter:** RichEditorToolbar — 서식 툴바를 편집기 밖에서 쓴다 (RichEditorController 에 묶는 단독 위젯) (#5964) (993f057)

버그 수정

  • **core,flutter,web,figma:** 캔버스 확인 뒤 입력 계열 여백 · 비활성 색을 맞춘다 (Part of #5831) (#5953) (2dd894e)
  • **core,flutter,web,figma:** BottomSheet 의 액션 영역은 바탕 없이 아래에 고정되고, 위 구분선은 내용이 이어질 때만 보인다 (Part of #5833) (#5955) (c89d47f)
  • **core,flutter,web,figma:** RadialProgress xl 글자 · Loading dots 물결 · Status busy 막대 끝 (Part of #5879) (#5956) (de63db8)
  • **flutter:** EmptyState — 하한 높이는 안쪽 여백을 포함한다 (normal 304 → 240, large 320 → 240) (#5961) (2cd392d)
0.176.02026-11-01

⚠ BREAKING CHANGES

  • **core,flutter,web,docs:** CoreRichEditorFormat.shortcut 이 nullable 이 되고 enum 에 heading1–3 · image 가 추가되어, shortcut 을 null 확인 없이 읽는 코드와 이 enum 을 exhaustive switch 하는 코드는 새 값을 처리해야 한다.

기능

  • **core,flutter,web,docs:** RichEditor — H1–H3 제목과 서버 연동 이미지 업로드 · 삭제 (#5943) (538bba5)
  • **core,flutter,web,figma,docs:** TimePicker · ToggleGroup — 칸 hover 를 상태 레이어로 (Part of #5881) (#5938) (274b0d4)
  • **core,flutter,web,figma,docs:** TimePicker AM/PM 을 세로 ToggleGroup 으로 (Part of #5881) (#5939) (ad25b8e)
  • **core,flutter,web,figma,docs:** ToggleGroup — 세로 방향(direction) 추가 (Part of #5881) (#5932) (14af131)

버그 수정

  • **core,flutter,web,figma:** Fab 액션 항목 행 모서리를 8 로 되돌림 (Part of #5883) (#5931) (b894798)
  • **core,flutter,web,figma:** MultipleChoice 미선택 칩 neutral·low · Slider 부모 폭 고정 (Part of #5880) (#5937) (f367d82)
  • **core,flutter,web,figma:** StarRating 표시만 반 단계 · MultipleChoice 선택 칩 Emphasis low (Part of #5880) (#5930) (7fb21ab)

coui_web#

현재 버전:

0.177.0

git 태그 (ref: 값):

coui_web-v0.177.0
0.177.02026-11-04

⚠ BREAKING CHANGES

  • **core,flutter,web,figma:** TextField 계열 값 · 자리표시자 글자의 줄 높이가 140% 에서 역할 값(Body/Medium · Body/Large 150%)으로 바뀌고, 한 줄 입력 상자는 모든 크기에서 크기 단 높이에 글줄을 세로 가운데로 둔다 — TextField · Select 의 sm 은 33.6 에서 32 로, TextField xs 는 29.6 에서 24 로 낮아지고(md 40 · lg 48 · xl 56 · xl2 64 는 그대로), 여러 줄 TextField 는 줄마다 1.4 높아지며, NumberInput 값 글자가 Label/Large(Medium)에서 Body/Medium(Regular)으로 바뀌고, Flutter 의 가운데 정렬 TextField 값이 0.5px 오른쪽으로 옮겨진다. 이전 렌더가 필요하면 `textFieldStyle: CoreTextFieldStyle(padding: <크기 행 패딩>, baseTextStyle: CoreTextStyle.token(CoreTextStyles.bodyMedium).copyWith(lineHeight: CoreLineHeight.h140))` 를 넘긴다(NumberInput 값은 `fieldStyle: CoreTextFieldStyle(valueStyle: CoreTextStyle.token(CoreTextStyles.labelLarge))`).

버그 수정

  • **core,flutter,web,figma:** 선택된 비활성 목적지가 선택 표시를 흐리게 남기고, Web 포커스 8% 레이어가 실제로 칠해진다 (#6003) (899539d)
  • **core,flutter,web,figma:** 한 줄 입력 상자를 크기 단 높이에 두고 값 글자는 역할 줄 높이로 세로 가운데에 그린다 (#6009) (6991716)
  • **core,flutter,web:** Dark 상태 아이콘 500 · SidebarItem 선택 배경 surfaceContainer · Stat filled surfaceContainerLow (#6015) (ef150af)
  • **i10n,flutter,web,figma:** 커맨드 푸터의 ↑ ↓ 한 쌍 라벨을 양방향 '이동'(commandMove)으로 바꾼다 (#6014) (f397cca)
0.176.02026-11-04

⚠ BREAKING CHANGES

  • **core,flutter,web,figma:** labelMode 를 주지 않은 NavigationBar · NavigationBarItem(mode: bar)이 아이콘만 그리던 것에서 모든 목적지에 라벨을 그리도록 바뀐다(바 높이 80 은 그대로, 이전 모습은 labelMode: CoreNavigationLabelMode.none 으로 되돌리며 이때 목적지는 64×40 · 바 56 · 터치 영역 48 이다). indicator fill 의 쌓인 목적지는 surfaceContainerHigh 타일 대신 primaryContainer 알약으로 선택을 그리고 selectedBackgroundColor 를 읽지 않으며(알약 색은 selectedIconAnchorColor), 선택된 목적지도 hover · focus · pressed 상태 레이어를 받는다.

기능

  • **core:** ✨ RichEditor 리디자인 — 툴바를 입력 칸 테두리 안으로 · 구분선 · trailing 슬롯 (#5989) (2b0cee1)

버그 수정

  • **core,flutter,web,figma:** DatePicker 설명 문구는 활성에서 on-surface-subtle, 비활성에서 disabled-content 로 칠한다 (Part of #5881) (#5977) (6a6ab63)
  • **core,flutter,web,figma:** FileInput 설명 문구 Regular · 제목 on-surface · 설명 on-surface-subtle (#5996) (871e6dd)
  • **core,flutter,web,figma:** NavigationBar 포커스 링을 타일과 동심으로 맞추고 캔버스 예시를 결정대로 그린다 (Part of #5740) (#5999) (fd848b5)
  • **core,flutter,web,figma:** NavigationBar 하단 바 기본 라벨 · 세 라벨 배치의 primaryContainer 선택 · 선택 위 상태 레이어 (#6002) (183029c)
  • **core,flutter,web,figma:** TimePicker 예시 · 구분자, FileInput 문구, ColorPicker 예시 값 (#5993) (0c7b23e)
  • **core:** Stat sm 값 글자의 굵기 덧씌움을 지워 titleLarge 역할 그대로 그린다 (#5978) (67776d9)
0.175.12026-11-02

버그 수정

  • **core,flutter,web,figma:** 캔버스 확인 뒤 입력 계열 여백 · 비활성 색을 맞춘다 (Part of #5831) (#5953) (2dd894e)
  • **core,flutter,web,figma:** BottomSheet 의 액션 영역은 바탕 없이 아래에 고정되고, 위 구분선은 내용이 이어질 때만 보인다 (Part of #5833) (#5955) (c89d47f)
  • **core,flutter,web,figma:** RadialProgress xl 글자 · Loading dots 물결 · Status busy 막대 끝 (Part of #5879) (#5956) (de63db8)
0.175.02026-11-01

⚠ BREAKING CHANGES

  • **core,flutter,web,docs:** CoreRichEditorFormat.shortcut 이 nullable 이 되고 enum 에 heading1–3 · image 가 추가되어, shortcut 을 null 확인 없이 읽는 코드와 이 enum 을 exhaustive switch 하는 코드는 새 값을 처리해야 한다.

기능

  • **core,flutter,web,docs:** RichEditor — H1–H3 제목과 서버 연동 이미지 업로드 · 삭제 (#5943) (538bba5)
  • **core,flutter,web,figma,docs:** TimePicker · ToggleGroup — 칸 hover 를 상태 레이어로 (Part of #5881) (#5938) (274b0d4)
  • **core,flutter,web,figma,docs:** TimePicker AM/PM 을 세로 ToggleGroup 으로 (Part of #5881) (#5939) (ad25b8e)
  • **core,flutter,web,figma,docs:** ToggleGroup — 세로 방향(direction) 추가 (Part of #5881) (#5932) (14af131)

버그 수정

  • **core,flutter,web,figma:** DatePicker 설명 문구를 12(bodyXs)로 (Part of #5881) (#5929) (774ac57)
  • **core,flutter,web,figma:** Fab 액션 항목 행 모서리를 8 로 되돌림 (Part of #5883) (#5931) (b894798)
  • **core,flutter,web,figma:** MultipleChoice 미선택 칩 neutral·low · Slider 부모 폭 고정 (Part of #5880) (#5937) (f367d82)
  • **core,flutter,web,figma:** StarRating 표시만 반 단계 · MultipleChoice 선택 칩 Emphasis low (Part of #5880) (#5930) (7fb21ab)
0.174.02026-11-01

⚠ BREAKING CHANGES

  • **core,flutter,web,figma,docs:** Basic 의 showTrailingIcon 기본값이 false 에서 true 로 바뀌어 trailing 이 없는 Basic 은 이제 chevron-right 를 그리고, Stat 의 기본 variant 도 filled 에서 outlined 로 바뀌어 variant 를 적지 않은 Stat 은 outline-variant 선으로 그려진다. 옛 모습은 Basic(showTrailingIcon: false) 와 Stat(variant: CoreStatVariant.filled) 로 되돌린다.
  • **core,flutter,web,figma,docs:** EmptyState 의 기본 variant 가 compact 에서 normal 로 바뀌어 variant 를 적지 않은 EmptyState 의 패딩 · 최소 높이 · 글자 크기가 달라지고, 모든 변형의 아이콘 크기와 neutral 아이콘 색(on-surface-subtle → on-surface-variant)이 바뀌며 아이콘이 원형 상자에 담긴다. 이전 모양이 필요하면 variant: CoreEmptyStateVariant.compact 를 명시한다.

기능

  • **core,flutter,web,docs:** RichEditor — 서식 툴바가 붙은 WYSIWYG Markdown 글·댓글 작성기 (#5871) (edba9b7)
  • **core,flutter,web,figma,docs:** ✨ 표시 카드 정리 — DescriptionCard · Basic · Stat 리디자인 (#5832) (#5837) (cc7b345)
  • **core,flutter,web,figma,docs:** ✨ EmptyState — success 톤 · large 변형 · 원형 아이콘 상자, 기본 변형은 normal (#5836) (ad3b421)
  • **core,flutter,web,figma,docs:** 입력 계열 확장 리디자인 — ItemPicker · MultiAnswerCard · FormattedInput · ObjectInput · PhoneInput · ChipInput · Sortable (#5831) (#5838) (2f54389)
  • **core,flutter,web,figma,docs:** Autocomplete 일치 구간 강조와 Popup 테두리 outline-variant (Part of #5881) (#5905) (0e43b4c)
  • **core,flutter,web,figma,docs:** ColorPicker 리디자인 — 모드 탭을 ToggleGroup 으로, 핸들 · 빈 스와치 · 한 줄 최근 색 (Part of #5881) (#5906) (7225a1c)
  • **core,flutter,web,figma,docs:** DatePicker · DateRangePicker — 트리거를 읽기 전용 TextField 로 (Part of #5881) (#5927) (ccddaf3)
  • **core,flutter,web,figma,docs:** FileInput 구조 — 원형 아이콘 상자, 제목·안내문 묶음, 여백 32/24 (Part of #5881) (#5910) (06e729b)
  • **core,flutter,web,figma,docs:** FileInput 점선 6/4 · outline-variant 와 DatePicker 트리거 포커스 primary (Part of #5881) (#5904) (7ee6a5b)
  • **core,flutter,web,figma,docs:** Filter 가 ToggleGroup 을 합성한다 — 구분선 · 비활성 · 안쪽 여백 3 (Part of #5881) (#5907) (5c6e0d3)
  • **core,flutter,web,figma,docs:** MultipleChoice 가 Chip 을 합성한다 — 옵션 32 높이 · 8 간격 (Part of #5880) (#5902) (a1659ea)
  • **core,flutter,web,figma,docs:** Popup 테두리 AppBar 유리 예외 · NavigationMenu 테두리 · Autocomplete 강조 행 · Filter 구분선 간격 (Part of #5881) (#5909) (8ffddc5)
  • **core,flutter,web,figma,docs:** TimePicker — 트리거는 부모 폭 채움, 시·분 칸 64×56 · 편집 칸은 primary-container 면 (Part of #5881) (#5911) (fc7114c)
  • **core,flutter,web,figma,docs:** TimePicker — 트리거를 읽기 전용 TextField 로, AM/PM 을 ToggleGroup 으로 (Part of #5881) (#5908) (079675d)
  • **core,flutter,web,figma,docs:** ToggleGroup — 묶음 토글을 공용 컴포넌트로 더한다 (Part of #5881) (#5903) (1c058d0)
  • **core,flutter,web,figma,docs:** ToggleGroup 크기 단계 md/sm — 판 안 토글은 sm (Part of #5881) (#5913) (e7e3d50)
  • **core,flutter,web,figma,docs:** ToggleGroup 폭 채움 옵션과 ColorPicker 핸들 · 막대 테두리 확정 반영 (Part of #5881) (#5912) (51220b6)
  • **core,flutter,web,figma:** Slider 슬롯 · 손잡이 그림자 · 손잡이 포커스 링과 StarRating 별 · 크기 · 값 표시를 사본에 맞춘다 (Part of #5880) (#5901) (5702584)
  • **core:** BottomActionBar 에 weighted · icon · summary 배치를 더한다 (#5870) (5822157)
  • **core:** BottomSheet 를 더한다 (Part of #5833) (#5874) (53f8ef9)
  • **core:** Calendar · Autocomplete · FileInput 모양을 사본에 맞춘다 (Part of #5881) (#5894) (b055710)
  • **core:** Drawer 뒤 화면이 기본으로 물러나지 않는다 (Part of #5833) (#5892) (fb07816)
  • **core:** Drawer 옆 패널을 400 폭 · 안쪽 한 변 경계로 바꾸고 하단 영역을 더한다 (Part of #5833) (#5875) (fd62739)
  • **core:** Fab 메뉴 패널 여백을 목록 여백 6 으로 맞춘다 (Part of #5883) (#5899) (00bc31b)
  • **core:** Filter 를 묶음 토글 기준으로 맞추고 초기화 버튼을 맨 뒤로 옮긴다 (Part of #5881) (#5891) (f7df1af)
  • **core:** Indicator 가 배지 둘레(surface 2px)를 그린다 (Part of #5879) (#5888) (0c509a6)
  • **core:** ItemPicker 비활성 행 글자와 체크가 비활성 전경색을 쓴다 (#5865) (35ada10)
  • **core:** Loading dots · bar · pulse 모양을 사본대로 맞춘다 (Part of #5879) (#5893) (be78898)
  • **core:** OptionItem · OptionList 를 더한다 (Part of #5833) (#5872) (176fa23)
  • **core:** PhoneInput 번호 칸 여백을 읽기 방향 14 / 12 로 둔다 (#5864) (08d7416)
  • **core:** Progress 라벨 굵기와 칸 간격을 사본에 맞춘다 (Part of #5879) (#5886) (6b0e49a)
  • **core:** RadialProgress 에 Size · Tone, Loading 에 Tone 을 더하고 Progress 불확정 폭을 맞춘다 (Part of #5879) (#5890) (8bda125)
  • **core:** Resizable 상태별 선과 포커스 링, Popup 여백 프리셋을 더한다 (Part of #5883) (#5887) (d91afff)
  • **core:** Slider · Range 사본 값을 맞춘다 (Part of #5880) (#5898) (0482e75)
  • **core:** Sortable 비활성 전경색 (#5866) (56eea2f)
  • **core:** Status 막대 길이 · 라벨 색 · offline 링 색을 디자이너 확인 값으로 맞춘다 (Part of #5879) (#5900) (73b2fda)
  • **core:** Status 접속 상태와 ValidationBadge 크기를 사본에 맞추고 Indicator 둘레 반경을 Core 로 올린다 (Part of #5879) (#5896) (f21ba09)
  • **core:** TabPane 앞 · 뒤 슬롯 아이콘을 16 으로 맞춘다 (Part of #5882) (#5895) (3cb74c6)
  • **core:** TabPane boxed 를 밑줄 탭 + 카드로 바꾸고 editorStrip 값을 맞춘다 (Part of #5882) (#5889) (85d0678)

버그 수정

  • **core,flutter,web,docs:** Dock 막대는 내용이 크면 자란다 — height 는 최소 높이다 (#5858) (99a567a)
  • **core,flutter,web,figma:** 비활성 Filter 의 구분선을 disabled-outline 으로 그린다 (Part of #5881) (#5919) (c833dc2)
  • **core,flutter,web,figma:** 비활성 TimePicker · DatePicker 의 아이콘이 필드의 비활성 색을 따른다 (Part of #5881) (#5916) (68d664b)
  • **core,flutter,web,figma:** DatePicker 오류 문구를 12 크기로 그리고 비활성이면 disabled-content 로 그린다 (Part of #5881) (#5925) (0000878)
  • **core,flutter,web,figma:** FileInput 높이 224(파일 행 기본 숨김)와 비활성 면 · 테두리 · 내용 disabled 토큰 (Part of #5881) (#5921) (a90d8ef)
  • **core,flutter,web,figma:** FileInput 드래그 중 업로드 아이콘이 primary 로 칠해진다 (Part of #5881) (#5924) (b74b4ca)
  • **core,flutter,web,figma:** TimePicker 활성 시계 아이콘이 on-surface-variant 를 그린다 (Part of #5881) (#5920) (46368b1)
  • **core,web,docs:** Safari 에서 서리·음영이 유리의 흐림을 지우지 않게 한다 — WebKit 은 첫 페인트부터, 그 밖은 런타임이 알린 뒤 두 항을 뺀다 (#5855) (ceb99ce)
  • **core:** DatePicker 활성 달력 아이콘이 on-surface-variant 를 그린다 (Part of #5881) (#5922) (7cd5739)
  • **core:** PhoneInput 번호 칸 여백을 읽기 방향 12 / 14 로 바로잡는다 (#5869) (7d3ae10)
  • **guard:** recognize nested item picker icon override (#5843) (8026ccb)
  • preserve text selection alpha and hide OTP buffer selection (#5840) (a044ade)
  • **web,docs:** 중첩된 SwipeActions 행의 액션은 바깥 행의 호출자 핸들러에 닿지 않는다 (#5846) (228b251)
  • **web:** preserve FormattedInput placeholder color overrides (#5848) (ac95d88)

리팩터링

  • **core,flutter,web,figma,docs:** ContextMenu 들어 올림의 시각 값을 CoreContextMenuStyle 필드로 옮긴다 (#5860) (7bc0a70)

coui_core#

현재 버전:

0.177.0

git 태그 (ref: 값):

coui_core-v0.177.0
0.177.02026-11-04

⚠ BREAKING CHANGES

  • **core,flutter,web,figma:** TextField 계열 값 · 자리표시자 글자의 줄 높이가 140% 에서 역할 값(Body/Medium · Body/Large 150%)으로 바뀌고, 한 줄 입력 상자는 모든 크기에서 크기 단 높이에 글줄을 세로 가운데로 둔다 — TextField · Select 의 sm 은 33.6 에서 32 로, TextField xs 는 29.6 에서 24 로 낮아지고(md 40 · lg 48 · xl 56 · xl2 64 는 그대로), 여러 줄 TextField 는 줄마다 1.4 높아지며, NumberInput 값 글자가 Label/Large(Medium)에서 Body/Medium(Regular)으로 바뀌고, Flutter 의 가운데 정렬 TextField 값이 0.5px 오른쪽으로 옮겨진다. 이전 렌더가 필요하면 `textFieldStyle: CoreTextFieldStyle(padding: <크기 행 패딩>, baseTextStyle: CoreTextStyle.token(CoreTextStyles.bodyMedium).copyWith(lineHeight: CoreLineHeight.h140))` 를 넘긴다(NumberInput 값은 `fieldStyle: CoreTextFieldStyle(valueStyle: CoreTextStyle.token(CoreTextStyles.labelLarge))`).

버그 수정

  • **core,flutter,web,figma:** 선택된 비활성 목적지가 선택 표시를 흐리게 남기고, Web 포커스 8% 레이어가 실제로 칠해진다 (#6003) (899539d)
  • **core,flutter,web,figma:** 한 줄 입력 상자를 크기 단 높이에 두고 값 글자는 역할 줄 높이로 세로 가운데에 그린다 (#6009) (6991716)
  • **core,flutter,web:** Dark 상태 아이콘 500 · SidebarItem 선택 배경 surfaceContainer · Stat filled surfaceContainerLow (#6015) (ef150af)
0.176.02026-11-04

⚠ BREAKING CHANGES

  • **core,flutter,web,figma:** labelMode 를 주지 않은 NavigationBar · NavigationBarItem(mode: bar)이 아이콘만 그리던 것에서 모든 목적지에 라벨을 그리도록 바뀐다(바 높이 80 은 그대로, 이전 모습은 labelMode: CoreNavigationLabelMode.none 으로 되돌리며 이때 목적지는 64×40 · 바 56 · 터치 영역 48 이다). indicator fill 의 쌓인 목적지는 surfaceContainerHigh 타일 대신 primaryContainer 알약으로 선택을 그리고 selectedBackgroundColor 를 읽지 않으며(알약 색은 selectedIconAnchorColor), 선택된 목적지도 hover · focus · pressed 상태 레이어를 받는다.

기능

  • **core:** ✨ RichEditor 리디자인 — 툴바를 입력 칸 테두리 안으로 · 구분선 · trailing 슬롯 (#5989) (2b0cee1)

버그 수정

  • **core,flutter,web,figma:** DatePicker 설명 문구는 활성에서 on-surface-subtle, 비활성에서 disabled-content 로 칠한다 (Part of #5881) (#5977) (6a6ab63)
  • **core,flutter,web,figma:** FileInput 설명 문구 Regular · 제목 on-surface · 설명 on-surface-subtle (#5996) (871e6dd)
  • **core,flutter,web,figma:** NavigationBar 포커스 링을 타일과 동심으로 맞추고 캔버스 예시를 결정대로 그린다 (Part of #5740) (#5999) (fd848b5)
  • **core,flutter,web,figma:** NavigationBar 하단 바 기본 라벨 · 세 라벨 배치의 primaryContainer 선택 · 선택 위 상태 레이어 (#6002) (183029c)
  • **core,flutter,web,figma:** TimePicker 예시 · 구분자, FileInput 문구, ColorPicker 예시 값 (#5993) (0c7b23e)
  • **core:** Stat sm 값 글자의 굵기 덧씌움을 지워 titleLarge 역할 그대로 그린다 (#5978) (67776d9)
  • **figma:** PhoneInput 번호 칸 · ChipInput 힌트 색 · 세그먼트와 피커 값의 자간을 코드와 맞춘다 (Part of #5831 · #5881) (#5997) (884ee65)
0.175.12026-11-02

버그 수정

  • **core,flutter,web,figma:** 캔버스 확인 뒤 입력 계열 여백 · 비활성 색을 맞춘다 (Part of #5831) (#5953) (2dd894e)
  • **core,flutter,web,figma:** BottomSheet 의 액션 영역은 바탕 없이 아래에 고정되고, 위 구분선은 내용이 이어질 때만 보인다 (Part of #5833) (#5955) (c89d47f)
  • **core,flutter,web,figma:** RadialProgress xl 글자 · Loading dots 물결 · Status busy 막대 끝 (Part of #5879) (#5956) (de63db8)
0.175.02026-11-01

⚠ BREAKING CHANGES

  • **core,flutter,web,docs:** CoreRichEditorFormat.shortcut 이 nullable 이 되고 enum 에 heading1–3 · image 가 추가되어, shortcut 을 null 확인 없이 읽는 코드와 이 enum 을 exhaustive switch 하는 코드는 새 값을 처리해야 한다.

기능

  • **core,flutter,web,docs:** RichEditor — H1–H3 제목과 서버 연동 이미지 업로드 · 삭제 (#5943) (538bba5)
  • **core,flutter,web,figma,docs:** TimePicker · ToggleGroup — 칸 hover 를 상태 레이어로 (Part of #5881) (#5938) (274b0d4)
  • **core,flutter,web,figma,docs:** TimePicker AM/PM 을 세로 ToggleGroup 으로 (Part of #5881) (#5939) (ad25b8e)
  • **core,flutter,web,figma,docs:** ToggleGroup — 세로 방향(direction) 추가 (Part of #5881) (#5932) (14af131)

버그 수정

  • **core,flutter,web,figma:** DatePicker 설명 문구를 12(bodyXs)로 (Part of #5881) (#5929) (774ac57)
  • **core,flutter,web,figma:** Fab 액션 항목 행 모서리를 8 로 되돌림 (Part of #5883) (#5931) (b894798)
  • **core,flutter,web,figma:** MultipleChoice 미선택 칩 neutral·low · Slider 부모 폭 고정 (Part of #5880) (#5937) (f367d82)
  • **core,flutter,web,figma:** StarRating 표시만 반 단계 · MultipleChoice 선택 칩 Emphasis low (Part of #5880) (#5930) (7fb21ab)
0.174.02026-11-01

⚠ BREAKING CHANGES

  • **core,flutter,web,figma,docs:** Basic 의 showTrailingIcon 기본값이 false 에서 true 로 바뀌어 trailing 이 없는 Basic 은 이제 chevron-right 를 그리고, Stat 의 기본 variant 도 filled 에서 outlined 로 바뀌어 variant 를 적지 않은 Stat 은 outline-variant 선으로 그려진다. 옛 모습은 Basic(showTrailingIcon: false) 와 Stat(variant: CoreStatVariant.filled) 로 되돌린다.
  • **core,flutter,web,figma,docs:** EmptyState 의 기본 variant 가 compact 에서 normal 로 바뀌어 variant 를 적지 않은 EmptyState 의 패딩 · 최소 높이 · 글자 크기가 달라지고, 모든 변형의 아이콘 크기와 neutral 아이콘 색(on-surface-subtle → on-surface-variant)이 바뀌며 아이콘이 원형 상자에 담긴다. 이전 모양이 필요하면 variant: CoreEmptyStateVariant.compact 를 명시한다.

기능

  • **core,flutter,web,docs:** RichEditor — 서식 툴바가 붙은 WYSIWYG Markdown 글·댓글 작성기 (#5871) (edba9b7)
  • **core,flutter,web,figma,docs:** ✨ 표시 카드 정리 — DescriptionCard · Basic · Stat 리디자인 (#5832) (#5837) (cc7b345)
  • **core,flutter,web,figma,docs:** ✨ EmptyState — success 톤 · large 변형 · 원형 아이콘 상자, 기본 변형은 normal (#5836) (ad3b421)
  • **core,flutter,web,figma,docs:** 입력 계열 확장 리디자인 — ItemPicker · MultiAnswerCard · FormattedInput · ObjectInput · PhoneInput · ChipInput · Sortable (#5831) (#5838) (2f54389)
  • **core,flutter,web,figma,docs:** Autocomplete 일치 구간 강조와 Popup 테두리 outline-variant (Part of #5881) (#5905) (0e43b4c)
  • **core,flutter,web,figma,docs:** ColorPicker 리디자인 — 모드 탭을 ToggleGroup 으로, 핸들 · 빈 스와치 · 한 줄 최근 색 (Part of #5881) (#5906) (7225a1c)
  • **core,flutter,web,figma,docs:** DatePicker · DateRangePicker — 트리거를 읽기 전용 TextField 로 (Part of #5881) (#5927) (ccddaf3)
  • **core,flutter,web,figma,docs:** FileInput 구조 — 원형 아이콘 상자, 제목·안내문 묶음, 여백 32/24 (Part of #5881) (#5910) (06e729b)
  • **core,flutter,web,figma,docs:** FileInput 점선 6/4 · outline-variant 와 DatePicker 트리거 포커스 primary (Part of #5881) (#5904) (7ee6a5b)
  • **core,flutter,web,figma,docs:** Filter 가 ToggleGroup 을 합성한다 — 구분선 · 비활성 · 안쪽 여백 3 (Part of #5881) (#5907) (5c6e0d3)
  • **core,flutter,web,figma,docs:** MultipleChoice 가 Chip 을 합성한다 — 옵션 32 높이 · 8 간격 (Part of #5880) (#5902) (a1659ea)
  • **core,flutter,web,figma,docs:** Popup 테두리 AppBar 유리 예외 · NavigationMenu 테두리 · Autocomplete 강조 행 · Filter 구분선 간격 (Part of #5881) (#5909) (8ffddc5)
  • **core,flutter,web,figma,docs:** TimePicker — 트리거는 부모 폭 채움, 시·분 칸 64×56 · 편집 칸은 primary-container 면 (Part of #5881) (#5911) (fc7114c)
  • **core,flutter,web,figma,docs:** TimePicker — 트리거를 읽기 전용 TextField 로, AM/PM 을 ToggleGroup 으로 (Part of #5881) (#5908) (079675d)
  • **core,flutter,web,figma,docs:** ToggleGroup — 묶음 토글을 공용 컴포넌트로 더한다 (Part of #5881) (#5903) (1c058d0)
  • **core,flutter,web,figma,docs:** ToggleGroup 크기 단계 md/sm — 판 안 토글은 sm (Part of #5881) (#5913) (e7e3d50)
  • **core,flutter,web,figma,docs:** ToggleGroup 폭 채움 옵션과 ColorPicker 핸들 · 막대 테두리 확정 반영 (Part of #5881) (#5912) (51220b6)
  • **core,flutter,web,figma:** Slider 슬롯 · 손잡이 그림자 · 손잡이 포커스 링과 StarRating 별 · 크기 · 값 표시를 사본에 맞춘다 (Part of #5880) (#5901) (5702584)
  • **core:** BottomActionBar 에 weighted · icon · summary 배치를 더한다 (#5870) (5822157)
  • **core:** BottomSheet 를 더한다 (Part of #5833) (#5874) (53f8ef9)
  • **core:** Calendar · Autocomplete · FileInput 모양을 사본에 맞춘다 (Part of #5881) (#5894) (b055710)
  • **core:** CoUI Light 상태색 on-container 글자를 s800 에서 s700 으로 올린다 (#5876) (6822c61)
  • **core:** Drawer 뒤 화면이 기본으로 물러나지 않는다 (Part of #5833) (#5892) (fb07816)
  • **core:** Drawer 옆 패널을 400 폭 · 안쪽 한 변 경계로 바꾸고 하단 영역을 더한다 (Part of #5833) (#5875) (fd62739)
  • **core:** Fab 메뉴 패널 여백을 목록 여백 6 으로 맞춘다 (Part of #5883) (#5899) (00bc31b)
  • **core:** Filter 를 묶음 토글 기준으로 맞추고 초기화 버튼을 맨 뒤로 옮긴다 (Part of #5881) (#5891) (f7df1af)
  • **core:** Indicator 가 배지 둘레(surface 2px)를 그린다 (Part of #5879) (#5888) (0c509a6)
  • **core:** ItemPicker 비활성 행 글자와 체크가 비활성 전경색을 쓴다 (#5865) (35ada10)
  • **core:** Loading dots · bar · pulse 모양을 사본대로 맞춘다 (Part of #5879) (#5893) (be78898)
  • **core:** OptionItem · OptionList 를 더한다 (Part of #5833) (#5872) (176fa23)
  • **core:** PhoneInput 국가 목록의 국기를 선택기와 같은 14 로 그린다 (Part of #5884) (#5885) (bb1808f)
  • **core:** PhoneInput 번호 칸 여백을 읽기 방향 14 / 12 로 둔다 (#5864) (08d7416)
  • **core:** Progress 라벨 굵기와 칸 간격을 사본에 맞춘다 (Part of #5879) (#5886) (6b0e49a)
  • **core:** RadialProgress 에 Size · Tone, Loading 에 Tone 을 더하고 Progress 불확정 폭을 맞춘다 (Part of #5879) (#5890) (8bda125)
  • **core:** Resizable 상태별 선과 포커스 링, Popup 여백 프리셋을 더한다 (Part of #5883) (#5887) (d91afff)
  • **core:** Slider · Range 사본 값을 맞춘다 (Part of #5880) (#5898) (0482e75)
  • **core:** Sortable 비활성 전경색 (#5866) (56eea2f)
  • **core:** Status 막대 길이 · 라벨 색 · offline 링 색을 디자이너 확인 값으로 맞춘다 (Part of #5879) (#5900) (73b2fda)
  • **core:** Status 접속 상태와 ValidationBadge 크기를 사본에 맞추고 Indicator 둘레 반경을 Core 로 올린다 (Part of #5879) (#5896) (f21ba09)
  • **core:** TabPane 앞 · 뒤 슬롯 아이콘을 16 으로 맞춘다 (Part of #5882) (#5895) (3cb74c6)
  • **core:** TabPane boxed 를 밑줄 탭 + 카드로 바꾸고 editorStrip 값을 맞춘다 (Part of #5882) (#5889) (85d0678)

버그 수정

  • **core,flutter,docs:** 유리 팝오버는 페이드 중에도 배경 흐림을 지킨다 — 패널을 감싸지 않고 재질을 페이드한다 (#5856) (4b835bc)
  • **core,flutter,web,docs:** Dock 막대는 내용이 크면 자란다 — height 는 최소 높이다 (#5858) (99a567a)
  • **core,flutter,web,figma:** 비활성 Filter 의 구분선을 disabled-outline 으로 그린다 (Part of #5881) (#5919) (c833dc2)
  • **core,flutter,web,figma:** 비활성 TimePicker · DatePicker 의 아이콘이 필드의 비활성 색을 따른다 (Part of #5881) (#5916) (68d664b)
  • **core,flutter,web,figma:** DatePicker 오류 문구를 12 크기로 그리고 비활성이면 disabled-content 로 그린다 (Part of #5881) (#5925) (0000878)
  • **core,flutter,web,figma:** FileInput 높이 224(파일 행 기본 숨김)와 비활성 면 · 테두리 · 내용 disabled 토큰 (Part of #5881) (#5921) (a90d8ef)
  • **core,flutter,web,figma:** FileInput 드래그 중 업로드 아이콘이 primary 로 칠해진다 (Part of #5881) (#5924) (b74b4ca)
  • **core,flutter,web,figma:** TimePicker 활성 시계 아이콘이 on-surface-variant 를 그린다 (Part of #5881) (#5920) (46368b1)
  • **core,web,docs:** Safari 에서 서리·음영이 유리의 흐림을 지우지 않게 한다 — WebKit 은 첫 페인트부터, 그 밖은 런타임이 알린 뒤 두 항을 뺀다 (#5855) (ceb99ce)
  • **core:** DatePicker 활성 달력 아이콘이 on-surface-variant 를 그린다 (Part of #5881) (#5922) (7cd5739)
  • **core:** PhoneInput 번호 칸 여백을 읽기 방향 12 / 14 로 바로잡는다 (#5869) (7d3ae10)

리팩터링

  • **core,flutter,web,figma,docs:** ContextMenu 들어 올림의 시각 값을 CoreContextMenuStyle 필드로 옮긴다 (#5860) (7bc0a70)

특정 버전에 고정하기#

설치 가이드의 git: 의존성에 ref:를 추가하면 그 태그가 가리키는 커밋에 고정됩니다:

dependencies:
  coui_flutter:
    git:
      url: https://github.com/coco-de/coui.git
      path: packages/coui_flutter
      ref: coui_flutter-v0.128.1 # 예시 — 위 coui_flutter "git 태그" 값으로 교체

ref:를 생략하면 main의 최신 커밋을 그대로 추적합니다(브레이킹 체인지가 예고 없이 들어올 수 있음).

과거 릴리스 문서 (버전 스위처)#

헤더의 버전 메뉴로 과거 릴리스 시점에 정적으로 빌드해 둔 문서 사이트 스냅샷을 열람할 수 있습니다 — 오래된 ref:에 고정한 프로젝트가 지금 문서가 아니라 그 당시 실제 API를 확인할 수 있게 하기 위해서입니다. 각 스냅샷은 그 태그의 소스에서 독립적으로 빌드한 완전한 사이트이며, 지금 문서를 필터링한 결과가 아닙니다.

이 아카이브는 CoUI의 릴리스 태그 전체(수백 개)를 소급 백필하지 않습니다 — 배포마다 모든 과거 버전을 다시 빌드하는 비용이 너무 크고, 오래된 태그 다수는 지금 툴체인으로 재현을 보장할 수 없는 시절의 것이기 때문입니다. 대신 이 기능이 생긴 시점부터 앞으로, 관리자가 스냅샷을 남기기로 한 릴리스만 누적됩니다(빌드 스크립트: tool/build_version_snapshot.sh) — 대부분의 버전드 문서 도구가 쓰는 "여기서부터 추적 시작" 방식과 같습니다. 메뉴에 아직 항목이 없다면 첫 스냅샷이 아직 만들어지지 않은 것입니다.