PackageTrack
Sign in Get early access

tdesign_flutter

Tencent TDesign UI component library of Flutter, suitable for use in mobile projects.

0.2.7 2.6K downloads/mo #4865 most downloaded on pub.dev Tencent/tdesign-flutter

What this package is like to depend on

Last release 24 days ago

31 Jul 2026

Ships fairly regularly

a new release about every 2 months

Nearly every release is documented

notes for 25 of 25 stable releases

2 versions withdrawn

withdrawn after publishing

3 years old

28 releases · first in 2023

4 releases in the last 12 months

see the full history below

Release timeline

28 releases · Nov 2023 to Jul 2026
2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 28
  1. 1.0.0-alpha.1 31 Jul 2026 pre-release
    Release notes

    TDesign Flutter v1 迁移指南

    0.2.71.0.0-alpha.1 · main@36af3143develop@1f527212

    Warning

    Alpha 期间 API 和视觉仍可能调整,请锁定精确版本。

    升级前必读

    environment:
      sdk: ">=3.8.0 <4.0.0"
      flutter: ">=3.32.0"
    dependencies:
      tdesign_flutter: 1.0.0-alpha.1
    • 统一从 package:tdesign_flutter/tdesign_flutter.dart 导入;不要深层导入 lib/src
    • 公开类从 TD* 改为 T*,无 v0 兼容层;TDIcons.* 改为 TIcons.*
    • 选择类组件更多改为受控模式;Picker、Calendar、Cascader 的标题、确认和 Popup 由业务组合。

    统一控制契约

    范围 用户要做的事
    受控状态 value 是唯一真值,在 onChanged 中回写;部分组件无回调即禁用
    Controller 谁创建谁释放;不在 build 中创建;同一 Controller 不绑定多个组件
    Overlay 从目标 Theme/Navigator 子树的 context 调用;异步前检查 mounted;按需设置 useRootNavigator
    应用样式 Token 通过 TThemeBuilder.light/dark 接入
    组件样式 全局/局部使用对应 T*ThemeData,局部覆盖使用 mergeExtension
    单实例样式 使用显式参数或 Flutter 标准样式对象;内容使用 Widget 槽位/builder
    实例显式参数
      > 组件 ThemeData
      > 用户显式设置的 Flutter 子树主题
      > 用户显式设置的 Material 主题
      > TDesign Token
    

    Flutter/M3 隐式默认值不参与解析。禁止用 copyWith(extensions: [...]) 覆盖整个扩展列表,也不要把数据、内容、回调或 Controller 放入 ThemeData。

    组件速查

    :需重写调用;:需调整参数/状态;:主要是改名/主题迁移。下表不重复列出通用的 TD* → T*

    组件 风险 迁移动作
    ActionSheet 重建 item/分组;样式转 TActionSheetThemeData
    Avatar 换用图片/文字/图标槽位
    BackTop 替换形状枚举与 ThemeData
    Badge 使用 labelvariantchild;按需设 showZero
    Button text/onTap/disabled 改为 child/onPressed/null。单例样式用 ButtonStyle,公共样式用 TButtonThemeData
    Calendar 时间戳 List<int> 改为 List<DateTime> 受控值,内建 Popup/时间选择移除。业务需回写 value,并自行组合标题和确认操作
    Cascader List<Map> 改为 TCascaderOption 树,组件改为严格受控。业务需维护并回写选中路径
    Cell TDCellStyle 转槽位和 TCellThemeData
    Checkbox 回写受控值;替换尺寸/内容 builder
    Collapse 回写展开值;样式转 TCollapseThemeData
    DateTimePicker TDDatePicker/TDPicker.showDatePicker 改为纯选择的 TDateTimePicker。用 mode/value/start/end/steps 表达列与边界,弹层/确认外置
    Dialog Input/Image/Alert 等多套类型统一为 TDialog + TDialogAction。输入、图片和自定义内容改用 Widget 槽位
    Divider 替换 layout/align 枚举与 ThemeData
    Drawer 替换 placement/item 回调;回归安全区
    DropdownMenu 旧内建选项模型改为 item + panel builder。业务自行管理面板草稿、确认和取消状态
    Empty 替换 variant;图片/操作用槽位
    FAB 样式转 TFabThemeData;回归拖拽边界
    Footer 替换 variant 和链接槽位
    Form TDFormValidation 改为 TFormRule,FormItem 值与 builder 契约调整。需重接校验时机和错误展示
    Icon TDIcons.*TIcons.*;不再依赖主包图标字体
    Image 替换 variant 和加载/失败槽位
    ImageViewer 移除对旧 Swiper 的参数透传。改用 itemBuilder/新页码回调,回归动态数据和关闭生命周期
    Indexes 替换索引/锚点类型;回归滚动
    Input 保留业务 controller/focusNode;公共样式转 ThemeData
    Link 替换配色/尺寸/变体;内容用槽位
    Loading 替换 size/icon 枚举;样式转 ThemeData
    Message 移除 MessageLink/MessageMarquee;内容改用 Widget
    NavBar 替换 item action;回归安全区/边框
    NoticeBar 移除 Style 类;样式转 ThemeData,点击用 tap target
    Picker 旧 MultiPicker/TDPicker.show* 改为 TPickerOption + columns/linked 受控模型。header、取消、确认和 Popup 由业务组合
    Popover 替换 placement/回调;样式转 ThemeData
    Popup 旧 Panel/Route 入口统一为 TPopupOptions + TPopupHandle。top/bottom 默认高 240,left/right 默认宽 280,center 默认 240×240,显式尺寸优先
    Progress 替换 variant/labelPosition;回归 button/micro 事件
    Radio 回写受控值;替换尺寸/内容 builder
    Rate 回写分值;自定义图标改用 builder
    Refresh 替换类型名与 ThemeData
    Result 替换 variant;图标/标题/操作用槽位
    Search 重接输入回调;公共样式转 ThemeData
    SideBar 移除旧 Controller;改用受控选中值
    Skeleton RowCol 旧类型改为 TSkeletonLayout/Blockdelay 改为 Duration。可使用预设 variant 或重建 block 布局
    Slider 替换单值/区间值契约;回写受控值
    Stepper 替换 size/variant;按新 value/callback 迁移
    Steps 替换 item/direction/status 类型
    SwipeCell 左右 Widget 参数改为 panel/action/side/motion 模型。需重建操作列表并处理开关状态回调
    Swiper 移除旧第三方 Swiper 透传,改为自有 TSwiper。需迁移 Controller、autoplay、pagination 和 pageEffect
    Switch 回写 value;样式转 TSwitchThemeData
    TabBar TDBottomTabBar*TTabBar*;重建 item/variant/badge
    Table TDTableCol/Empty 改为泛型列与 Widget 空态。业务需回写排序和选择状态
    Tabs 改用 TTabsBar/TTabsBarView/TTab。需同步 controller/index,并回归 Tab 与 View 联动
    Tag 移除 Style 类;样式转 ThemeData,回写选中态
    Text 替换 Text/Span/Configuration;回归文本继承
    Textarea 保留业务 controller/focusNode;样式转 ThemeData
    Theme 应用入口用 TThemeBuilder;局部覆盖用 mergeExtension
    TimeCounter 改用 status/builder/新 Controller;由创建方释放
    Toast 替换 show/close 与图文方向;使用正确 context
    TreeSelect 重建选项数据和受控值;回归动态更新
    Upload 转换文件/状态模型和回调;回归权限/失败流程

    验收

    先处理高风险组件,再在深浅色、窄屏、大字号、RTL、键盘、系统返回和动态数据下回归。

    详细迁移指南将在后续文档列出。

    Open source →
  2. 0.2.7 21 Jan 2026
    Release notes

    🌈 0.2.7

    🚀 Features
    TDInput: TDInput密文模式下支持粘贴 @jflin19990707 (#827)
    TDDropdownMenu: TDDropdownMenu的arrowIcon颜色可自定义 @jflin19990707 (#831)
    TDInput: TDInput高度自适应 @jflin19990707 (#840)
    TDCalendar: 允许月历控件在拖动后返回当前月份,用于延迟加载月份改变数据 @rxnh8256 (#816)
    TDActionSheetItem: 支持设置cell描述信息的能力 @leenc123 (#811)
    TDBottomTabBar: tabbar新增indicatorAnimation动画属性 @journeyding (#848)

    🐞 Bug Fixes
    TDPopup: 底部弹出popup重绘问题 @jflin19990707 (#826)
    TDropdownMenu: TDropdownMenu分组菜单多选模式下的返回值bug @jflin19990707 (#828)
    TDTable: TDTable中TDTableCol的索引BUG @jflin19990707 (#830)
    TDTreeSelect: 树形选择器异步数据更新后能重新渲染;二级菜单文字过长处理一下;TDSelectOption中的value改为dynamic类型 @jflin19990707 (#834)
    TDToast: TDToast过长溢出问题 @jflin19990707 (#839)
    TDDropdownItem: TDDropdownItem不兼容TDMultiCascader @jflin19990707 (#846)
    TDCalendar: 自定义日期单元格组件移除padding,使之沾满并覆盖默认选中样式从而实现自定义选中以及当前日期的样式问题,并增加日期锚点属性来实现自动滚动到锚点位置 @leenc123 (#808)
    DropdownMenu: 修复 item 的 label 过长时导致显示不完全的 bug @edram (#823)
    TDRadio、TDCheckbox: 单选框、多选框多列展示问题 @jflin19990707 (#841)
    TDNavBar: 优化标题栏返回图标 支持暗黑模式 @sinianbao (#844)

    🚧 Others
    docs: 更新主题生成器文档,添加视频演示链接 @RSS1102 (#833)

    Open source →
    Release notes

    🚀 Features

    • TDInput: TDInput密文模式下支持粘贴 @jflin19990707 (#827)
    • TDDropdownMenu: TDDropdownMenu的arrowIcon颜色可自定义 @jflin19990707 (#831)
    • TDInput: TDInput高度自适应 @jflin19990707 (#840)
    • TDCalendar: 允许月历控件在拖动后返回当前月份,用于延迟加载月份改变数据 @rxnh8256 (#816)
    • TDActionSheetItem: 支持设置cell描述信息的能力 @leenc123 (#811)
    • TDBottomTabBar: tabbar新增indicatorAnimation动画属性 @journeyding (#848)

    🐞 Bug Fixes

    • TDPopup: 底部弹出popup重绘问题 @jflin19990707 (#826)
    • TDropdownMenu: TDropdownMenu分组菜单多选模式下的返回值bug @jflin19990707 (#828)
    • TDTable: TDTable中TDTableCol的索引BUG @jflin19990707 (#830)
    • TDTreeSelect: 树形选择器异步数据更新后能重新渲染;二级菜单文字过长处理一下;TDSelectOption中的value改为dynamic类型 @jflin19990707 (#834)
    • TDToast: TDToast过长溢出问题 @jflin19990707 (#839)
    • TDDropdownItem: TDDropdownItem不兼容TDMultiCascader @jflin19990707 (#846)
    • TDCalendar: 自定义日期单元格组件移除padding,使之沾满并覆盖默认选中样式从而实现自定义选中以及当前日期的样式问题,并增加日期锚点属性来实现自动滚动到锚点位置 @leenc123 (#808)
    • DropdownMenu: 修复 item 的 label 过长时导致显示不完全的 bug @edram (#823)
    • TDRadioTDCheckbox: 单选框、多选框多列展示问题 @jflin19990707 (#841)
    • TDNavBar: 优化标题栏返回图标 支持暗黑模式 @sinianbao (#844)

    🚧 Others

    • docs: 更新主题生成器文档,添加视频演示链接 @RSS1102 (#833)
    Open source →
  3. 0.2.6 14 Nov 2025
    Release notes

    🌈 0.2.6 2025-11-14

    🚀 Features

    🐞 Bug Fixes

    📝 Documentation

    🚧 Others

    • 组件全面适配深色模式,优化调整组件样式(实验版) @runoob-coder (#744)
    • demo: 优化调整demo示例项目及代码演示,升级 Android 构建配置和依赖项以兼容在flutter 3.16.9至最新版(3.35.5)下运行,调整web预览iframe样式去除顶部边距 @runoob-coder (#744)
    • web: 覆盖web依赖项,解决与flutter_localizations的版本冲突问题,兼容flutter之前版本 @runoob-coder (#744)
    Open source →
    Release notes

    🚀 Features

    • TDNoticeBar: Added content property, deprecated and compatible with the original context property @runoob-coder (#744)
    • TDButton: Added gradient color background @jflin19990707 (#773)
    • TDToast: TDToast supports displaying multiple toasts @jflin19990707 (#780)
    • TDUpload: Added custom upload listener @leenc123 (#775)
    • TDTable: Added custom footer property @leenc123 (#776)

    🐞 Bug Fixes

    • TDMultiCascader: Fixed initialIndexes parameter not taking effect @epoll-j (#752)
    • TDDialog: Fixed button text overflow issue @jflin19990707 (#772)
    • TDDateTimePicker: Changed English configuration for date, hour, minute, second to abbreviations @jflin19990707 (#770)
    • TDCell: Fixed overflow issue when note is too long @jflin19990707 (#769)
    • TDCell: Fixed alignment issue between icon and text in the cell @runoob-coder (#789)
    • TDProgress: Fixed style issue when progress bar changes @runoob-coder (#744)

    📝 Documentation

    • docs: Optimized document format and content @runoob-coder (#744)

    🚧 Others

    • Components fully adapted to dark mode, optimized and adjusted component styles (experimental version) @runoob-coder (#744)
    • demo: Optimized and adjusted demo example project and code demonstrations, upgraded Android build configuration and dependencies to be compatible with Flutter from 3.16.9 to the latest version (3.35.5), adjusted web preview iframe style to remove top margin @runoob-coder (#744)
    • web: Overridden web dependencies, resolved version conflict with flutter_localizations, compatible with previous Flutter versions @runoob-coder (#744)
    Open source →
  4. 0.2.5 17 Sep 2025
    Release notes

    🌈 0.2.5 2025-09-12

    🐞 Bug Fixes

    🚧 Others

    Open source →
    Release notes

    🐞 Bug Fixes

    • TDPopover: Added custom corner radius property @jflin19990707 (#727)
    • TDForm: Added custom background color property for form, button part can be optional @jflin19990707 (#730)
    • TDConfirmDialog: Dialog supports custom width, buttons added custom style properties @jflin19990707 (#724)
    • TDPicker: Supports initialization and subsequent dynamic loading of appropriate data, fixes stuttering issues @123dw-bot (#728)
    • TDSideBar: Added custom unselected color property @jflin19990707 (#723)

    🚧 Others

    • docs: Optimized repository size @RSS1102
    Open source →
  5. 0.2.4 14 Aug 2025
    Release notes

    🌈 0.2.4 2025-08-14

    🚀 Features

    • TDUpload: 支持设置多图间距和对其方式 @CyJaySong (#677)
    • TDTreeSelect: 新增自定义宽度和最大行数字段,修复第二级宽度固定,长文本溢出问题 @123dw-bot (#694)
    • TDDropdownMenu: 增加TDDropdownItemController,允许外部重置和更改下拉选项 @Luozf12345 (#697)
    • TDStepper:Stepper增加controller参数,可用于实时修改value @Luozf12345 (#699)

    🐞 Bug Fixes

    • TDIndexes: 修复自定义索引无法响应点击事件 @epoll-j (#692)
    • TDPopup: 修复close方法触发两次bug @epoll-j (#690)
    • TDSideBar:修复TDSideBar组件初始化后children无法更新的问题 @Luozf12345 (#698)

    🚧 Others

    • 其他:恢复对flutter SDK 3.32版本的默认适配
    Open source →
    Release notes

    🚀 Features

    • TDUpload: Support setting image spacing and alignment @cyjaysong (#677)
    • TDTreeSelect: Added custom width and max lines fields, fixed fixed width for second level and long text overflow issues @123dw-bot (#694)
    • TDDropdownMenu: Added TDDropdownItemController to allow external reset and change of dropdown options @Luozf12345 (#697)
    • TDStepper: Added controller parameter to Stepper for real-time value modification @Luozf12345 (#699)

    🐞 Bug Fixes

    • TDIndexes: Fixed issue where custom indexes could not respond to click events @epoll-j (#692)
    • TDPopup: Fixed bug where close method was triggered twice @epoll-j (#690)
    • TDSideBar: Fixed issue where children of TDSideBar component could not be updated after initialization @Luozf12345 (#698)

    🚧 Others

    • Misc: Restored default adaptation for flutter SDK version 3.32
    Open source →
  6. 0.2.3 10 Jul 2025
    Release notes

    🌈 0.2.3 2025-07-09

    🚀 Features

    🐞 Bug Fixes

    Open source →
    Release notes

    🚀 Features

    • TDPicker: Supports prioritizing the retention of cascaded option values when switching @epoll-j (#666)
    • TDTable: Supports default row selection @ccXxx1aoBai (#665)
    • TDCalendar: Adds custom date cell functionality @epoll-j (#667)
    • TDForm: Adds Form component @shizhe2018 @SimonWuZY (#620)
    • TDTable: Separates TDTableCol attribute configuration and empty data configuration @ccXxx1aoBai (#665)

    🐞 Bug Fixes

    • TDTable: Fixes the issue with unselected icon display in table headers and the selection state problem under disabled conditions @ccXxx1aoBai (#665)
    • TDTable: Fixes the empty data issue in tables @ccXxx1aoBai (#671)
    • TDDialog: Fixes the issue where dialogs block the keyboard @jflin19990707 (#669)
    • TDCollapse: Updates the demo page name for collapse @jflin19990707 (#670)
    • TDDropdownMenu: Fixes the incorrect popup position calculation in nested routing scenarios @hcanyz (#648)
    Open source →
  7. 0.2.2 13 Jun 2025
    Release notes

    🌈 0.2.2

    2025-06-13

    🚀 Features
    TDTable: 支持表格行选择、自定义行高 @ccXxx1aoBai (#594)
    TDTreeSelect: 支持局部多选 @epoll-j (#587)
    TDCell: 支持自定义高度,底部分割线 @ccXxx1aoBai (#611)
    TDNoticeBar: 支持自定义文字行数 @ccXxx1aoBai (#611)
    TDBottomTabBar: TDButtonBottomTabBar 中的 onTap 支持重复点击 @epoll-j @RSS1102(#586)
    TDBottomTabBar: 实现点击水波纹效果 @RSS1102 (#626)
    TDAvatar 增加自定义BoxFit参数 @shizhe2018 (#633)

    🐞 Bug Fixes
    TDDatePicker: 修复时间选择器分钟级时间数据展示问题- 优化小时、分钟、秒的选择范围计算逻辑 @epoll-j (#585)
    TDSearchBar: 支持设置onTapOutside回调 @CyJaySong (#608)
    TDDropdownMenu: 支持修改选中icon颜色 @jflin19990707 (#631)
    TDTabBar: fix:TDBottomTabBarBasicType.iconText模式下,text icon 冲突问题 @jflin19990707 (#628)
    TDEmpty: 支持操作按钮自定义样式 @jflin19990707 (#624)
    TDToast: toast支持自定义文案 @jflin19990707 (#625)
    TDPopup: 修改_measureChildHeight方法用于修复child无法修改弹窗高度 @Jzow (#591)
    TDCascader 修改查询data数据为空状态处理 @shizhe2018 (#635)

    🚧 Others
    [其他]适配flutter 3.32版本 @Luozf12345 (#636)

    Open source →
    Release notes

    🚀 Features

    • TDTable: Added support for row selection and custom row height. @ccXxx1aoBai (#594)
    • TDTreeSelect: Added partial multi-selection support. @epoll-j (#587)
    • TDCell: Added support for custom height and bottom divider. @ccXxx1aoBai (#611)
    • TDNoticeBar: Added support for custom number of text lines. @ccXxx1aoBai (#611)
    • TDBottomTabBar: Made onTap in TDButtonBottomTabBar support repeated clicks. @epoll-j @RSS1102 (#586)
    • TDBottomTabBar: Implemented tap ripple effects. @RSS1102 (#626)
    • TDAvatar: Added custom BoxFit parameter. @shizhe2018 (#633)

    🐞 Bug Fixes

    • TDDatePicker: Fixed minute-level time display issue and optimized hour/minute/second range calculation logic. @epoll-j (#585)
    • TDSearchBar: Added onTapOutside callback support. @cyjaysong (#608)
    • TDDropdownMenu: Added support for modifying selected icon color. @jflin19990707 (#631)
    • TDTabBar: Fixed text-icon conflict in TDBottomTabBarBasicType.iconText mode. @jflin19990707 (#628)
    • TDEmpty: Added custom styling support for action buttons. @jflin19990707 (#624)
    • TDToast: Added custom text support for toast. @jflin19990707 (#625)
    • TDPopup: Modified _measureChildHeight method to fix inability to adjust popup height via child component. @Jzow (#591)
    • TDCascader: Fixed empty state handling for query data. @shizhe2018 (#635)

    🚧 Others

    • Adapted for Flutter 3.32 version. @Luozf12345 (#636)
    Open source →
  8. 0.2.1 13 Jun 2025 withdrawn

    Nothing published for this version

  9. 0.2.0 08 May 2025
    Release notes

    🌈 0.2.0
    2025-05-08

    🚀 Features
    TDCellGroup: 添加单元格组标题背景颜色titleBackgroundColor属性. @runoob-coder (#539)
    TDLink: link参数链接对象LinkObj替换为MessageLink,调整TDLink样式,新增点击回调; @runoob-coder (#554)
    TDBottomTabBar: 新增自定义标题支持到步骤条组件 @RSS1102 (#576)
    TDSlider: 添加滑块点击事件 onTap @RSS1102 (#527)
    TDCascader: 添加右上角"确定"按钮,支持选择任意选项 @Luozf12345
    ImageViewer: 支持单张图片删除 @ccXxx1aoBai (#581)
    TDPopup: 为Popup组件添加标题、左文本、右文本和关闭按钮自定义尺寸属性 @Jzow (#582)
    TDBottomTabBarTabConfig: 添加长按 tab 触发事件onLongPress @RSS1102 (#580)

    🐞 Bug Fixes
    TDFooter: 修复页脚链接模式时内容溢出问题 @runoob-coder (#554)
    TDUpload: 修复文件大小限制错误 @epoll-j (#544)
    TDImageViewer: 增加Swiper组件属性透传,增加点击事件及部分样式属性,支持自定义按钮 @ccXxx1aoBai (#561)
    TDSlider: 修复是胶囊类型且有区间时,滑块无法拖动到边缘以及数值和刻度展示问题 @qfish (#567)
    TDInput: 修复非中文标签Input框宽度计算缺陷 @Jzow (#564)
    TDPopup: 修复无法通过child中的height来修改弹出层高度 @Jzow (#571)
    TDDropdownMenu: 修复特定情况下的单选失效 @1jialong (#575)
    TDToast: 修复Toast多行文字不生效的问题 @Luozf12345
    TDPopup: 修复Popup外层没有Scaffold时展示文字有横线的问题 @Luozf12345

    🚧 Others
    TDFooter: 重构 TDFooter 组件;将 LinkObj 类移除,直接使用 TDLink 类;移除了 isWithUnderline 参数,改为在 TDLink 中设置链接样式; @runoob-coder (#554)

    Open source →
    Release notes

    🚀 Features

    • TDCellGroup: Added titleBackgroundColor property for cell group title background color. @runoob-coder (#539)
    • TDLink: Replaced link parameter LinkObj with MessageLink, adjusted TDLink styles, and added click callback. @runoob-coder (#554)
    • TDBottomTabBar: Added custom title support for step bar component. @RSS1102 (#576)
    • TDSlider: Added slider tap event onTap. @RSS1102 (#527)
    • TDCascader: Added "Confirm" button at top-right corner to support selecting any option. @Luozf12345
    • ImageViewer: Added single image deletion support. @ccXxx1aoBai (#581)
    • TDPopup: Added custom size properties for popup title, left text, right text, and close button. @Jzow (#582)
    • TDBottomTabBarTabConfig: Added onLongPress event triggered by long-pressing tabs. @RSS1102 (#580)

    🐞 Bug Fixes

    • TDFooter: Fixed content overflow issue in link mode. @runoob-coder (#554)
    • TDUpload: Fixed file size limit error. @epoll-j (#544)
    • TDImageViewer: Added Swiper component property passthrough, click events, and style properties; supports custom buttons. @ccXxx1aoBai (#561)
    • TDSlider: Fixed edge drag failure and value/scale display issues in capsule type with range. @qfish (#567)
    • TDInput: Fixed width calculation defect for non-Chinese label input fields. @Jzow (#564)
    • TDPopup: Fixed inability to modify popup height via height in child component. @Jzow (#571)
    • TDDropdownMenu: Fixed single-select failure in specific scenarios. @1jialong (#575)
    • TDToast: Fixed multi-line text display issue. @Luozf12345
    • TDPopup: Fixed horizontal line display issue when popup lacks outer Scaffold. @Luozf12345

    🚧 Others

    • TDFooter: Refactored TDFooter component; Removed LinkObj class and directly used TDLink class; Removed isWithUnderline parameter (link styles now set in TDLink). @runoob-coder (#554)
    Open source →
  10. 0.1.9 31 Mar 2025
    Release notes

    🌈 0.1.9 2025-03-31

    🚀 Features

    • TDProgress: 新增Progress 进度条组件 @CORCTON (#307)
    • TDMessage: 新增Message 全局提示组件 @chendingya (#316)
    • TDSkeleton: 新增Skeleton 骨架屏组件 @Ezer015 (#317)
    • TDFooter: 新增Footer 页脚组件 @chendingya (#224)
    • TDPopover: 新增Popover 弹出气泡组件 @ccXxx1aoBai (#435)
    • TDSwitch: 添加自定义“开/关”字体大小 @shinyina (#217)
    • TDDatePicker: filterItems 参数添加,可自定义显示那些选项;itemBuilder 参数添加,用于自定义item @hkaikai (#426)
    • TDDrawer: 新建TDDrawerWidget组件,可用于Scaffold中的drawer属性 @hkaikai (#445)
    • TDTable: 自定义列返回当前行号 @ccXxx1aoBai (#457)
    • TDUpload: upload组件支持宽高设置和快速替换配置 @HubuHito (#462)
    • TDButton: 添加按钮图标位置属性 @epoll-j (#463)
    • TDDropdownMenu: 支持单选(multiple == false)模式下,分栏(optionsColumns > 1)展示选项 @hkaikai (#502)
    • TDActionSheet: 新增动作面板组件 @hkaikai (#485)
    • TDPicker: 增加customSelectWidget参数 @epoll-j (#495)
    • TDSlider: 增加修改滑轨颜色参数 @epoll-j (#506)
    • TDCalendar: 添加动画滚动日历选中值位置 @hkaikai (#509)
    • TDStep: 新增CustomContent参数支持Step的Content可以自定义内容 @Jzow (#452)
    • TDTag: 新增fixedWidth参数固定宽度属性,可自定义Tag的宽度,修复TextOverflow.ellipsis溢出title问题 @Jzow (#496)
    • TDPopup: 为底部浮层面板添加了边缘拖动控制 @Jzow (#514)
    • TDBadge: Badge设置封顶的数字值 @chendingya (#302)
    • TDToast:带图标类型支持设置文字行数 @ccXxx1aoBai (#481)

    🐞 Bug Fixes

    • TDRefreshHeader: 升级easy refresh到最新版本,兼容v2和v3写法;交互同步其他移动端平台 @hkaikai (#438)
    • TDCell: 修复无默认样式情况下点击空白区域无反应问题;TDCellStyle默认构造方法提供context参数,可以构建默认样式;完善demo自定义样式用法 @hkaikai (#448)
    • TDTable: 解决空数据图片无法显示问题 @ccXxx1aoBai (#451)
    • TDTabBar: labelStyle、unselectedLabelStyle支持自定义Label的文字大小 @hkaikai (#453)
    • TDCalendar: 修复定位到最后一个月时,无法定位问题 @hkaikai (#449)
    • TDBottomTabBar: 修复capsule类型无法设置背景色 @epoll-j (#497)
    • TDCalendar: 确定按钮添加国际化 @hkaikai (#505)
    • TDUpload: 新增onMaxLimitReached函数修复自定义处理文件数量超过最大限制的Bug @Jzow (#474)
    • TDInput: 新增_getTextWidth函数获取文本实际宽度和点击文本触发事件,修复buildNormalInput文本显示不全 @Jzow (#475)
    • TDImage: 移除自定义宽和自定义高必填,以及默认高度和宽度尺寸72约束,让布局系统自动计算高度 @Jzow (#499)
    • TDConfirmDialog: 新增布局约束和滚动支持动态计算最大高度,修复渲染失败Bug @Jzow (#510)
    • TDDrawer: 新增_deleteRouter()在close函数中的调用强制清除路由,修复关闭路由无法再次打开Bug @Jzow (#512)
    • TDText: 3.22鸿蒙版本text,组件不居中问题 @duleigiser (#437)
    • TDAlertDialog: fix 按钮样式没有铺满 @lvjs (#460)

    🚧 Others

    • TDSlider: 演示代码拆分 @iamitis (#245)
    • “关于我们”页面增加发版日期 @iamitis (#304)
    • Doc: 更新README文件英文,新增License文件和Issue Doc模板 @Jzow (#458)
    Open source →
    Release notes

    🚀 Features

    • TDProgress: Added Progress component @CORCTON (#307)
    • TDMessage: Added Message (Global Prompt) component @chendingya (#316)
    • TDSkeleton: Added Skeleton component @Ezer015 (#317)
    • TDFooter: Added Footer component @chendingya (#224)
    • TDPopover: Added Popover (Popup Bubble) component @ccXxx1aoBai (#435)
    • TDSwitch: Added custom "ON/OFF" font size support @shinyina (#217)
    • TDDatePicker: Added filterItems parameter for custom display options and itemBuilder for custom item rendering @hkaikai (#426)
    • TDDrawer: Created TDDrawerWidget component compatible with Scaffold's drawer property @hkaikai (#445)
    • TDTable: Custom columns now return current row number @ccXxx1aoBai (#457)
    • TDUpload: Added width/height settings and quick replacement configuration support @HubuHito (#462)
    • TDButton: Added icon position property @epoll-j (#463)
    • TDDropdownMenu: Supported single-select mode (multiple == false) with multi-column display (optionsColumns > 1) @hkaikai (#502)
    • TDActionSheet: Added Action Sheet component @hkaikai (#485)
    • TDPicker: Added customSelectWidget parameter @epoll-j (#495)
    • TDSlider: Added track color modification parameter @epoll-j (#506)
    • TDCalendar: Added animated scrolling to selected value position @hkaikai (#509)
    • TDStep: Added CustomContent parameter for Step content customization @Jzow (#452)
    • TDTag: Added fixedWidth parameter and fixed TextOverflow.ellipsis title overflow issue @Jzow (#496)
    • TDPopup: Added edge drag control for bottom panel @Jzow (#514)
    • TDBadge: Added capped numeric value setting for Badge @chendingya (#302)
    • TDToast: Added multi-line text support for icon-type toasts @ccXxx1aoBai (#481)

    🐞 Bug Fixes

    • TDRefreshHeader: Upgraded Easy Refresh to latest version, improved compatibility between v2/v3 syntax @hkaikai (#438)
    • TDCell: Fixed unresponsive click in blank area without default style; Improved default style construction and demo usage @hkaikai (#448)
    • TDTable: Fixed empty data image display issue @ccXxx1aoBai (#451)
    • TDTabBar: Added labelStyle and unselectedLabelStyle support for custom font sizes @hkaikai (#453)
    • TDCalendar: Fixed positioning issue when scrolling to last month @hkaikai (#449)
    • TDBottomTabBar: Fixed background color setting for capsule type @epoll-j (#497)
    • TDCalendar: Added localization for confirm button @hkaikai (#505)
    • TDUpload: Added onMaxLimitReached callback to handle file limit overflow @Jzow (#474)
    • TDInput: Added _getTextWidth function and click event to fix incomplete text display @Jzow (#475)
    • TDImage: Removed mandatory custom width/height constraints (default 72px) for layout auto-calculation @Jzow (#499)
    • TDConfirmDialog: Added layout constraints and dynamic max-height calculation with scroll support @Jzow (#510)
    • TDDrawer: Added _deleteRouter() call in close function to force clear routes @Jzow (#512)
    • TDText: Fixed text alignment issue in HarmonyOS 3.22 @duleigiser (#437)
    • TDAlertDialog: Fixed button style not filling width @lvjs (#460)

    🚧 Others

    • TDSlider: Demo code splitting @iamitis (#245)
    • Added release date to "About Us" page @iamitis (#304)
    • Doc: Updated README English version, added License file and Issue Doc templates @Jzow (#458)
    Open source →
  11. 0.1.8 30 Dec 2024
    Release notes

    🚀 Features

    • TDUpload: Added Upload component @TingShine (#405)
    • SearchBar: Added keyboard action type @ccXxx1aoBai (#366)
    • Cell: CellGroup added style control parameters: cardBorderRadius (card mode border radius), cardPadding (card mode padding), titlePadding (title padding) @hkaikai (#409)
    • DropdownMenu: Added decorator configuration: decoration, which can customize menu color and border @hkaikai (#408)
    • ImageViewer: Supports displaying image titles @ccXxx1aoBai (#411)
    • Calendar: Added monthTitleBuilder parameter @hkaikai (#419)
    • Calendar: Added pickerHeight, pickerItemCount parameters to control the height of the time selection component @hkaikai (#421)
    • Toast: Supports customizing the overlay background color @ccXxx1aoBai (#423)
    • Rate: Supports disabled parameter @hkaikai (#357)
    • Calendar: Modified CalendarBuilder return value to Widget @Luozf12345 (#396)
    • SearchBar: Added read-only attribute and click event @shizhe2018 (#393)
    • Dialog: TDDialogButtonOptions added font size attribute @shizhe2018 (#381)
    • DateTimePicker: Added time unit display attribute @shizhe2018 (#383)
    • Input: Added additionInfo left and right display position @shizhe2018 (#401)

    🐞 Bug Fixes

    • NoticeBar: Fixed the issue of abnormal text display on the web @ccXxx1aoBai (#351)
    • Rate: Fixed the issue where the onChange event was not triggered when clicking the tooltip in half selection @hkaikai (#361)
    • Calendar: Fixed the issue of inaccurate scroll position due to inconsistent number of rows in the month date @hkaikai (#363)
    • Calendar: Optimized the issue of rendering lag caused by too large min and max @hkaikai (#363)
    • Input: Fixed the issue where the dividing line and content were not aligned when setting contentPadding @epoll-j (#365)
    • Table: Fixed the issue of overflow when setting the width of fixed columns @ccXxx1aoBai (#370)
    • Popup: Fixed the issue of delay in closing when clicking on the overlay @hkaikai (#380)
    • Cascader: Added the function of clicking to select the first layer @shizhe2018 (#355)
    • DateTimePicker: Added restrictions on hours, minutes, and seconds @shizhe2018 (#362)
    • Textarea: Optimized the update of word limit changes @shizhe2018 (#385)
    • TabBar: Fixed the issue where labelStyle and unselectedLabelStyle did not take effect @shizhe2018 (#399)
    • Picker: Fixed the issue of unable to select color when sliding in multi-layer pop-up @shizhe2018 (#413)
    • SearchBar: Fixed the issue of SearchBar jittering at the default position when focusing, and the cursor not being centered @Luozf12345 (#417)
    • Dialog: Modified Dialog to only pass contentWidget, no need to pass title and content @Luozf12345 (#418)
    • TDBottomTabBar: Fixed the issue of bottom overflow by 2.5 pixels in iconText mode @epoll-j (#422)

    🚧 Others

    • Adapted to FlutterSdk3.25, the minimum supported version has been adjusted to 3.16.0 @shizhe2018 (#378)
    • Modified Example English version copy @shizhe2018 (#382)
    • Upgraded flutter_slidable version @Luozf12345 (#407)
    • Added component search function to demo @Luozf12345 (#410)
    • Updated Icons @Luozf12345 (#420)
    Open source →
  12. 0.1.7 16 Oct 2024
    Release notes

    🚀 Features

    • TDNoticeBar: Added noticeBar component @ccXxx1aoBai (#162)
    • Result: Added Result component @shinyina (#220)
    • TimeCounter: Timer component supports time display beyond conversion units, original TDCountDown component renamed to TimeCounter @hkaikai (#272)
    • Calendar: Added Calendar component @hkaikai (#271)
    • Indexes: Added Indexes component @hkaikai (#321)
    • Table: Added table component @ccXxx1aoBai (#244)
    • Rate: Added Rate component @hkaikai (#338)
    • Dialog: Supports custom content padding and buttons @ccXxx1aoBai (#289)
    • Drawer: Supports controlling the visibility of the divider, custom drawer background color, and controlling the display of the last divider @ccXxx1aoBai (#278)
    • DropdownMenu: Added control parameters for icon/width/height/icon and text alignment @hkaikai (#297)
    • Search: Added action and onActionClick properties @Ezer015 (#263)
    • Avatar: Added onTap event @ccXxx1aoBai (#344)
    • TDDropdownMenu: Added tabBarFlex parameter to TDDropdownItem to control width ratio @hkaikai (#338)
    • SearchBar: Feature/td searchbarfix added cursor height property @shizhe2018 (#337)
    • TimeCounter: Added forward timing function @epoll-j (#246)
    • NavBar: [NavBar] supports setting bottom shadow @ccXxx1aoBai (#284)
    • Cell: Added custom padding parameter @epoll-j (#276)
    • Input: Added onTapOutside callback @epoll-j (#280)
    • Picker: Added custom leftText, rightText @epoll-j (#301)
    • Slider: Feature/tdslider added text wrapping function @shizhe2018 (#329)
    • Radio: Feature/tdRadioGroup added built-in line wrapping, set number of rows and columns @shizhe2018 (#331)
    • Dialog: Added custom input box @shizhe2018 (#333)
    • TDNavBar: Added flexibleSpace parameter @Luozf12345 (#341)
    • TDSearch: Added search box focus acquisition and clear events @Luozf12345 (#342)

    🐞 Bug Fixes

    • ImageViewer: Fixed defaultIndex invalid issue @ccXxx1aoBai (#292)
    • TimeCounter: Fixed issue where it could not be reset repeatedly @hkaikai (#272)
    • DropdownMenu: Adjusted popup layer logic, fixed issue where back button could not be listened to @hkaikai (#297)
    • DatePicker: Removed monitoring on year, month, and day when destroyed to avoid memory leaks; added onSelectedItemChanged event @hkaikai (#300)
    • SideBar: Fixed issue where custom selected style text was not centered @ccXxx1aoBai (#313)
    • Popup: Fixed issue where multiple returns occurred when quickly clicking the mask @ccXxx1aoBai (#318)
    • ImageViewer: Fixed issue where deleting the first image caused display anomalies @ccXxx1aoBai (#322)
    • SideBar: Fixed issue where delayed loading components caused anchor point function anomalies @ccXxx1aoBai (#343)
    • TDDropdownMenu: Optimized menu display text to show ellipsis when exceeding display limit @hkaikai (#338)
    • NoticeBar: Fixed issue where it could not follow the theme color @ccXxx1aoBai (#350)
    • Button: Fixed overflow issue when setting shape to square or circle @epoll-j (#257)
    • Slider: Bugfix: Fixed issue where tb_slider setState did not update @arvinwli (#298)
    • Cascader: Fixed list sorting issue @shizhe2018 (#303)
    • Popup: Fixed issue where the keyboard would cover the input box in the Popup @epoll-j (#264)
    • Cascader: Fixed linkage time limit range logic @shizhe2018 (#242)
    • Loading: Fixed issue where dismissing Loading immediately after showing did not take effect @Luozf12345 (#340)

    🚧 Others

    • fix: remove useless output. @Ives7 (#311)
    Open source →
  13. 0.1.6 24 Jul 2024
    Release notes

    🚀 Features

    • Cell: Added Cell component @hkaikai (#150)
    • Drawer: Added Drawer component @hkaikai (#178)
    • SwipeCell: Added SwipeCell component @hkaikai (#218)
    • Steps: Added Steps component @aaronmhl (#199)
    • ImageViewer: Added ImageViewer component @ccXxx1aoBai (#187)
    • Cascader: Added Cascader component @shizhe2018 (#195)
    • Fab: Added Fab component @TingShine (#239)
    • BackTop: Added BackTop component @TingShine (#239)
    • TreeSelect: Added TreeSelect component @TingShine (#239)
    • Collapse: Added Collapse component @dorayx (#239)
    • Input: Added inputAction API to support setting keyboard actions; added spacer API to customize component spacing @ccXxx1aoBai (#184)
    • Text: Added global font configuration and the ability to load web fonts @Luozf12345 (#232)
    • CountDown: Added start/reset/pause/resume control functions @hkaikai (#175)
    • Popup: Supported position and size settings @hkaikai (#191)

    🐞 Bug Fixes

    • Toast: Fixed the issue where the duration attribute was ineffective @ccXxx1aoBai (#167)
    • Input: Fixed the label overflow issue @ccXxx1aoBai (#184)
    • Tabs: For the tabs component, outlineType 'capsule' now supports setting selected and unselected tab background colors, and outlineType 'card' supports setting the selected tab background color @ccXxx1aoBai
    • Button: Fixed the issue where properties could not be changed under the setState method @shizhe2018 (#201)
    • SearchBar: Added a controller to the search bar, allowing external clearing of search text @shizhe2018 (#194)
    • Slider: Added custom Decoration styles @shizhe2018 (#198)
    • Empty: Added text size style API @shizhe2018 (#219)
    • Dialog: Added input type background @shizhe2018 (#238)

    🚧 Others

    • HarmonyOS compilation support @hkaikai (#233)
    • Modified theme adaptation tool @Luozf12345
    • Added GitHub links for complete pages in demo code @Luozf12345
    Open source →
  14. 0.1.5 31 May 2024
    Release notes

    🚀 Features

    • TDDropdownMenu:
      • add: Added TDDropdownMenu dropdown menu component @hkaikai
    • TDTextarea:
      • add: Added Textarea multiline text box component @hkaikai
    • TDBottomTabBar:
      • add: Support for custom background color and distance between icon and text (#138)
      • add: TDBottomTabBar supports externally setting currentIndex (#110)
    • TDBadge:
      • add: TDBadge badge visibility setting when value is 0 @ccXxx1aoBai
    • TDRadio:
      • add: TDRadio added custom background color and text color @ccXxx1aoBai (#135)
      • add: Added API to remove left margin (#128)
    • TDCheckbox:
      • add: TDCheckbox added custom text color
      • add: Added API to remove left margin
    • TDImage:
      • add: Added Image.file (#133)
      • add: Allow external customization of TDImage's fit method (#114)
    • TDInput:
      • add: Added custom size for Input clear button (#147)
      • add: Added left margin for label text (#147)
      • add: Added rightWidget for carType type (#147)
    • TDDivider:
      • add: Added text style size setting for divider component (#134)
    • TDToast:
      • add: Toast added attribute for custom text length (#148)
    • TDSideBar:
      • add: Added selected style (#69)
      • add: Added custom text padding (#67)

    🐞 Bug Fixes

    • TDButton:
      • fix: Added mounted judgment before setState() (#122)
    • TDDialog:
      • fix: Modified Dialog to only auto-close when no action is set, if action is set, closing time is handled by the business itself (#117)

    🚧 Others

    • Added international language adaptation function
    • Adapted to 3.16 text centering, added TDTextConfig usage document
    Open source →
  15. 0.1.4 08 Apr 2024
    Release notes

    🚀 Features

    • TDCountDown:
      • add: Added TDCountDown countdown component @hkaikai
    • TDTheme:
      • add: Modified the theme implementation method, supporting ref attribute for custom mapping
      • add: Added default number font numberFontFamily
    • TDText:
      • add: Added TDText force center switch kTextForceVerticalCenterEnable, which can globally disable forced centering to prevent excessive text offset after flutter 3.16 version (#35)
    • TDBottomTabBar:
      • add: Added custom background color feature (#55)
    • TDCheckbox:
      • add: TDCheckbox and TDRadio support custom colors (#57)
      • add: TDCheckbox and TDRadio support custom font sizes (#66)
    • TDTabBar:
      • add: TDTabBar adds custom settings for divider color and height (#71)
    • TDSwitch:
      • add: TDSwitch supports custom "on/off" text (#73)
    • TDDialog:
      • add: Added custom title alignment and content Widget feature (#58)

    🐞 Bug Fixes

    • TDSlider:
      • fix: Fixed an issue where TDSlider setting showThumbValue does not work.
    • TDButton:
      • fix: Fixed an issue where the external setting of the theme color for TDButton does not take effect (#54)
    • TDInput:
      • fix: Fixed an issue where TDInput's showBottomDivider does not work (#70)
      • fix: Removed the invalid height API of TDInput, use SizedBox to modify the height (#70)

    🚧 Others

    • Example application, added a button to modify the theme, can quickly modify the theme color
    Open source →
  16. 0.1.3 15 Mar 2024
    Release notes

    🚀 Features

    • TDButton:
      • add: Support for customizing the corner radius size through TDButtonStyle.radius
    • TDPicker:
      • add: Picker component scrolling on PC now supports mouse dragging
      • add: For TDPicker and TDDatePicker components, the onConfirm no longer defaults to pop up the component internally, allowing external customization; when OnCancel is not empty, the component will not automatically pop.
    • TDSwitch:
      • add: onChanged now supports externally specifying whether to consume the event. If it has been consumed, it will no longer be processed internally (#27)
    • TDBottomTabBar:
      • add: Added custom label text style, optimized labText and icon parameter passing (#49)

    🐞 Bug Fixes

    • TDNavBar:
      • fix: The height of NavBar is now obtained in real time to prevent it from not being available at the beginning (#34)
    • TDDialog:
      • fix: The contentColor parameter in DialogInfo was not passed in (#37)
    • TDButton:
      • fix: The click disable effect of TDButton is invalid (#44)
    • TDInput:
      • fix: The delete button inside does not automatically refresh (#30)
      • fix: Fixed the mutual exclusion problem between the length of the input content and inputFormatters (#38)
    • TDAlertDialog:
      • fix: The operation of the default button of the component is open (#40)
    • TDRadio:
      • fix: Horizontal arrangement will force the addition of an underline (#40)
    • TDTabBar:
      • fix: The indicatorColor does not take effect (#31)

    🚧 Others

    • Optimized the performance of commonly used components such as TDButton, TDText, TDTheme, etc.
    Open source →
  17. 0.1.2 08 Jan 2024
    Release notes

    🚀 Features

    • TDImage:
      • add: Added FitWidth type to the image, modified the corresponding Demo page (#14)
    • TDLoading:
      • add: Added methods for showing and hiding loading (#15)
    • TDPopup:
      • add: Added support for customizing the round corners (#17)
    • TDAvatar:
      • add: When the avatar type is character or icon, support for customizing the background color is added (#20)

    🐞 Bug Fixes

    • TDBottomTabBar:
      • Added a safe area, fixed (#1)
    • TDButton:
      • update widget: Button's disable status can be updated
      • fix: Button click state is too short (#13)
    • TDSwiper:
      • fix: Adapted swiper vertical dot bar style (#19)
    • TDInput:
      • fix: The setting of leftLabelStyle does not take effect when type is TDInputType.twoLine (#21)

    🚧 Others

    • The minimum compatible version has been changed to 3.7.0 (#3)
    Open source →
  18. 0.1.1 06 Dec 2023
    Release notes
    • reset code style, can run on 3.7.x
    Open source →
  19. 0.1.0 06 Dec 2023 withdrawn
    Release notes
    • publisher to pub.dev stable
    Open source →
  20. 0.0.9 06 Dec 2023
    Release notes
    • update code style
    Open source →
  21. 0.0.8 06 Dec 2023
    Release notes
    • update License
    Open source →
  22. 0.0.7 06 Dec 2023
    Release notes
    • update example main.dart
    Open source →
  23. 0.0.6 06 Dec 2023
    Release notes
    • update slider component, make it is not depend on flutter sdk version
    Open source →
  24. 0.0.5 05 Dec 2023
    Release notes
    • publisher to pub.dev
    Open source →
  25. 0.0.4 01 Dec 2023
    Release notes
    • fix some bugs
    Open source →
  26. 0.0.3 16 Nov 2023
    Release notes
    • delete default value of TDText's package prop, allow set it null value
    Open source →
  27. 0.0.2 04 Nov 2023
    Release notes
    • update ReadMe.md, modify export file is 'tdesign_flutter.dart'
    Open source →
  28. 0.0.1 04 Nov 2023
    Release notes
    • the first version, add button,text and other components.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive