Aus öffentlichen Paketdaten erstellte Orientierung.
TDesign Flutter ist eine umfassende UI-Komponentenbibliothek, die von Tencent entwickelt wurde und für die Erstellung konsistenter und visuell ansprechender mobiler Anwendungen für Android, iOS, macOS, Windows und Linux konzipiert ist. Sie bietet eine reiche Auswahl an anpassbaren Widgets, die dem Design-System von TDesign folgen, um ein kohärentes Benutzererlebnis zu gewährleisten. Die Bibliothek lässt sich nahtlos über den Pub-Paketmanager in Flutter-Projekte integrieren und bietet umfangreiche Dokumentation sowie Quellcode auf GitHub. Ideal für Teams, die Wert auf Designkonsistenz und schnelle Entwicklung legen.
Anwendungsfälle
Cross-Platform-Mobilanwendungen erstellen
Konsistente Benutzeroberflächen in Unternehmensanwendungen erstellen
Schnellprototypen mit vorgefertigten Komponenten
Entwicklung von design-systemgesteuerten Schnittstellen
Verbesserung der UI-Konsistenz über Plattformen hinweg
Hauptmerkmale
vorgefertigte, wiederverwendbare Widgets
Plattformübergreifende Kompatibilität
Ausrichtung an das TDesign-Design-System
Umfangreiche Dokumentation
Open-Source auf GitHub
Geeignet für
Flutter-Entwickler bei Tencent oder ähnlichen Unternehmen
Teams, die TDesign-Designrichtlinien verwenden
Projekte, die eine schnelle UI-Entwicklung erfordern
Mobile-App-Teams konzentrieren sich auf Designkonsistenz
Entwickler, die mehrere Betriebssysteme ansprechen
Hinweise
Erfahrung mit den TDesign-Designprinzipien erforderlich
Kann zusätzliche Bundle-Größe verursachen
Begrenzte Anpassungsmöglichkeiten in frühen Versionen
Abhängig von externer Wartung
Am besten geeignet für großskalige oder unternehmensweite Anwendungen
Original-README
Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.
TDesign Flutter is a cross-platform UI component library based on Tencent's design system. Built with the Flutter framework, it enables rapid development of beautiful, consistent mobile/web applications with rich pre-built components and theme customization capabilities, supporting iOS, Android, and Web platforms.
🎉 Features
Provides Flutter UI component library following TDesign design specifications
Supports theme customization to match your App's design style
Includes a comprehensive Icon library with custom replacement support
Defines color groups according to TDesign specifications (viewable in TColors)
Real-time preview of default color values through the color declaration class
📱 Preview
Android: Scan the QR code to download the preview app
Configure theme styles (colors, font sizes, font styles, corner radius, shadows) through JSON files. Retrieve theme data using TTheme.of(context) or TTheme.defaultData().
Recommendation: Use TTheme.of(context) for components that should follow the local theme. Only use TTheme.defaultData() for components that don't need to follow local themes.
If you don't want to customize too many colors but still want a beautiful custom theme, the "Theme Generator" is a great choice.
Note: Since v0.2.6, the Theme Generator supports "Dark Mode". See Dark Mode for details.
Generate: Visit TDesign Theme Generator, click the theme generator below, select your desired colors in the generator on the right, and click download.
Convert: You will get a theme.css file. Place it in tdesign-component/example/shell/theme/, modify css2JsonTheme.dart with your file name, theme name, and output path to generate a theme.json file.
Apply: Load the theme JSON into TTheme, and your beautiful custom theme is ready.
Theme configurations generated by the Theme Generator support dark mode colors by default.
// ...// Set three properties in MaterialApp as follows. If you have custom theme properties, you can modify them using the copyWith() method.// Note: Theme switching needs to be implemented by the business side, e.g., using Provider. See tdesign-flutter/tdesign-component/example/lib/component_test/dark_test.dart for reference.MaterialApp(
theme: _themeData.systemThemeDataLight,
darkTheme: _themeData.systemThemeDataDark,
themeMode: themeModeProvider.themeMode,
// ...
)
🌍 Internationalization
TDesign Flutter does not have built-in internationalization, but supports integration with Flutter's i18n capabilities. You can extend the TResourceDelegate class, which abstracts all text resources inside the components, override the methods to get text for internationalization, and inject it via TTheme.setResourceBuilder.
var delegate = IntlResourceDelegate(context);
returnMaterialApp(
home: Builder(
builder: (context) {
// Set the text delegate. Internationalization only takes effect after MaterialApp is initialized, and context needs to be updated each time.TTheme.setResourceBuilder((context) => delegate..updateContext(context), needAlwaysBuild: true);
returnMyHomePage(
title: AppLocalizations.of(context)?.components ?? '',
);
},
),
// Set internationalization
locale: locale,
supportedLocales: AppLocalizations.supportedLocales,
localizationsDelegates: AppLocalizations.localizationsDelegates,
);