shadcn_ui-getting-started
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseShadcn UI for Flutter — Getting Started
Flutter版Shadcn UI — 入门指南
Instructions
操作步骤
Installation
安装
From the project root:
bash
flutter pub add shadcn_uiOr add to :
pubspec.yamlyaml
dependencies:
shadcn_ui: ^0.2.4 # use latest version从项目根目录执行:
bash
flutter pub add shadcn_ui或者添加到文件中:
pubspec.yamlyaml
dependencies:
shadcn_ui: ^0.2.4 # 使用最新版本Shadcn only (pure)
仅使用Shadcn(纯模式)
Use for apps that use only Shadcn UI components (no Material/Cupertino):
ShadAppdart
import 'package:shadcn_ui/shadcn_ui.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
Widget build(BuildContext context) {
return ShadApp();
}
}For declarative routing use .
ShadApp.router如果应用仅使用Shadcn UI组件(不使用Material/Cupertino),请使用:
ShadAppdart
import 'package:shadcn_ui/shadcn_ui.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
Widget build(BuildContext context) {
return ShadApp();
}
}如需声明式路由,请使用。
ShadApp.routerShadcn + Material
Shadcn + Material
Use with to wrap and use shadcn and Material together. Wrap the app with in the builder:
ShadApp.customappBuilderMaterialAppShadAppBuilderdart
import 'package:shadcn_ui/shadcn_ui.dart';
import 'package:flutter/material.dart';
return ShadApp.custom(
themeMode: ThemeMode.dark,
darkTheme: ShadThemeData(
brightness: Brightness.dark,
colorScheme: const ShadSlateColorScheme.dark(),
),
appBuilder: (context) {
return MaterialApp(
theme: Theme.of(context),
builder: (context, child) {
return ShadAppBuilder(child: child!);
},
);
},
);Use when using the Router API.
MaterialApp.routerShadApp builds a default Material from (fontFamily, extensions, colorScheme mapping, dividerTheme, textSelectionTheme, iconTheme, scrollbarTheme). Override with without losing shadcn defaults.
ThemeDataShadThemeDataTheme.of(context).copyWith(...)使用配合来包裹,实现Shadcn与Material的协同使用。在builder中用包裹应用:
ShadApp.customappBuilderMaterialAppShadAppBuilderdart
import 'package:shadcn_ui/shadcn_ui.dart';
import 'package:flutter/material.dart';
return ShadApp.custom(
themeMode: ThemeMode.dark,
darkTheme: ShadThemeData(
brightness: Brightness.dark,
colorScheme: const ShadSlateColorScheme.dark(),
),
appBuilder: (context) {
return MaterialApp(
theme: Theme.of(context),
builder: (context, child) {
return ShadAppBuilder(child: child!);
},
);
},
);使用Router API时,请使用。
MaterialApp.routerShadApp会基于生成默认的Material (包括字体家族、扩展、配色方案映射、分割线主题、文本选择主题、图标主题、滚动条主题)。可通过进行重写,且不会丢失Shadcn的默认配置。
ShadThemeDataThemeDataTheme.of(context).copyWith(...)Shadcn + Cupertino
Shadcn + Cupertino
Use inside for Cupertino + shadcn:
CupertinoAppappBuilderdart
import 'package:shadcn_ui/shadcn_ui.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
return ShadApp.custom(
themeMode: ThemeMode.dark,
darkTheme: ShadThemeData(
brightness: Brightness.dark,
colorScheme: const ShadSlateColorScheme.dark(),
),
appBuilder: (context) {
return CupertinoApp(
theme: CupertinoTheme.of(context),
localizationsDelegates: const [
DefaultMaterialLocalizations.delegate,
DefaultCupertinoLocalizations.delegate,
DefaultWidgetsLocalizations.delegate,
],
builder: (context, child) {
return ShadAppBuilder(child: child!);
},
);
},
);Use for Router-based navigation. Override Cupertino theme with .
CupertinoApp.routerCupertinoTheme.of(context).copyWith(...)在中使用,实现Cupertino与Shadcn的协同使用:
appBuilderCupertinoAppdart
import 'package:shadcn_ui/shadcn_ui.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
return ShadApp.custom(
themeMode: ThemeMode.dark,
darkTheme: ShadThemeData(
brightness: Brightness.dark,
colorScheme: const ShadSlateColorScheme.dark(),
),
appBuilder: (context) {
return CupertinoApp(
theme: CupertinoTheme.of(context),
localizationsDelegates: const [
DefaultMaterialLocalizations.delegate,
DefaultCupertinoLocalizations.delegate,
DefaultWidgetsLocalizations.delegate,
],
builder: (context, child) {
return ShadAppBuilder(child: child!);
},
);
},
);如需基于Router的导航,请使用。可通过重写Cupertino主题。
CupertinoApp.routerCupertinoTheme.of(context).copyWith(...)Bundled packages
捆绑包
Shadcn UI re-exports these packages; no extra imports needed:
- flutter_animate — Animations; components accept for customization.
List<Effect> - lucide_icons_flutter — Icons via (e.g.
LucideIcons). Browse at https://lucide.dev/icons/LucideIcons.activity - two_dimensional_scrollables — Used by .
ShadTable - intl — i18n and message translation.
- universal_image — Multiple image formats; used by .
ShadAvatar
Shadcn UI会重新导出以下包,无需额外导入:
- flutter_animate — 动画库;组件支持通过进行自定义。
List<Effect> - lucide_icons_flutter — 通过使用图标(例如
LucideIcons)。可在https://lucide.dev/icons/浏览图标。LucideIcons.activity - two_dimensional_scrollables — 供使用。
ShadTable - intl — 国际化与消息翻译。
- universal_image — 支持多种图片格式;供使用。
ShadAvatar
Submit your app
提交你的应用
To add your app to the showcase: open the GitHub template and fill the form.
如需将你的应用添加到展示区:打开GitHub模板并填写表单。