Flutter图标库插件jaspr_lucide_icons的使用

Flutter图标库插件jaspr_lucide_icons的使用


安装

首先,确保你已经安装了Dart SDK。然后通过以下命令安装jaspr_lucide_icons插件:

dart pub add jaspr_lucide_icons

你也可以使用流行的包管理工具进行安装:

  • pnpm:

    pnpm install lucide
    
  • yarn:

    yarn add lucide
    
  • npm:

    npm install lucide
    

使用

在你的Jaspr项目中使用Lucide图标时,首先需要导入jaspr_lucide_icons并将其作为根应用文件的最后一部分包含进来。

以下是一个完整的示例代码:

import 'package:jaspr/jaspr.dart';
import 'package:jaspr_lucide_icons/jaspr_lucide_icons.dart';
import 'package:jaspr_router/jaspr_router.dart';
import 'components/header.dart';
import 'pages/about.dart';
import 'pages/home.dart';

class App extends StatelessComponent {
  const App({super.key});

  @override
  Iterable<Component> build(BuildContext context) sync* {
    yield div(classes: 'main', [
      const Header(),
      Router(routes: [
        Route(path: '/', title: 'Home', builder: (context, state) => const Home()),
        Route(path: '/about', title: 'About', builder: (context, state) => const About()),
      ]),
    ]);
    yield importLucideIcons(mode: Mode.development); // 在开发模式下加载图标
  }

  @css
  static final styles = [
    css('.main', [
      css('&').box(height: 100.vh).flexbox(direction: FlexDirection.column, wrap: FlexWrap.wrap),
      css('section').flexItem(flex: Flex(grow: 1)).flexbox(
        direction: FlexDirection.column,
        justifyContent: JustifyContent.center,
        alignItems: AlignItems.center,
      ),
    ]),
  ];
}

示例:在组件中使用Lucide图标

以下是如何在一个Jaspr组件中使用Lucide图标的示例:

import 'package:jaspr/jaspr.dart';
import 'package:jaspr_lucide_icons/jaspr_lucide_icons.dart';

@client
class About extends StatelessComponent {
  const About({super.key});

  @override
  Iterable<Component> build(BuildContext context) sync* {
    yield section([
      ol([
        li([
          h3([lucideIcon('book-open', color: Colors.blue), text(' Documentation')]),
          text('Jaspr的官方文档提供了所有你需要的信息来开始使用。'),
        ]),
        li([
          h3([lucideIcon('message-circle-more', color: Colors.black), text(' 社区')]),
          text('遇到问题了吗?请在官方Discord服务器上提问。'),
        ]),
        li([
          h3([lucideIcon('package', color: Colors.black), text(' 生态系统')]),
          text('获取官方的Jaspr包和集成,例如jaspr_router、jaspr_tailwind或jaspr_riverpod。'),
          text('在pub.dev上查找与Jaspr相关的包,使用#jaspr主题标签。'),
        ]),
        li([
          h3([lucideIcon('heart', color: Colors.black), text(' 支持Jaspr')]),
          text('如果你喜欢Jaspr,请在GitHub上给我们点赞,并告诉你的朋友。'),
        ]),
      ]),
    ]);
  }

  @css
  static final styles = [
    css('ol').box(maxWidth: 500.px),
  ];
}

Lucide图标定义

以下是lucideIcon函数的定义:

Component lucideIcon(
  String icon, {
  Key? key,
  Unit? width,
  Unit? height,
  Unit? size,
  Color? color,
  String? className,
  String? style,
  Unit? strokeWidth,
  String? id,
  Map<String, String>? attributes,
});

持续集成

jaspr_lucide_icons 插件内置了一个由 GitHub Actions 提供支持的工作流,确保每次提交或推送时代码都会自动格式化、lint 和测试。该项目使用 Very Good Analysis 进行严格分析,并通过 Very Good Workflows 强制执行代码覆盖率。


运行测试

要运行所有单元测试并生成覆盖率报告,请执行以下步骤:

dart pub global activate coverage 1.2.0
dart test --coverage=coverage
dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info
genhtml coverage/lcov.info -o coverage/
open coverage/index.html

示例项目结构

当你将 jaspr_lucide_icons 集成到项目中时,保持清晰的项目结构非常重要。以下是一个示例项目结构:

/your_project
|-- lib/
|   |-- components/
|   |   |-- header.dart
|   |-- pages/
|   |   |-- home.dart
|   |   |-- about.dart
|   |-- app.dart
|   |-- main.dart
|-- pubspec.yaml
|-- README.md

更多关于Flutter图标库插件jaspr_lucide_icons的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter图标库插件jaspr_lucide_icons的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


jaspr_lucide_icons 是一个为 Jaspr 框架设计的图标库插件,它基于 Lucide 图标集。Jaspr 是一个类似于 Flutter 的 Web 框架,旨在提供类似 Flutter 的开发体验,并且可以与 Dart 生态系统无缝集成。

安装 jaspr_lucide_icons

要使用 jaspr_lucide_icons,首先需要在你的 pubspec.yaml 文件中添加依赖项:

dependencies:
  jaspr: ^0.1.0
  jaspr_lucide_icons: ^0.1.0

然后运行 flutter pub getdart pub get 来安装依赖。

使用 jaspr_lucide_icons

安装完成后,你可以在你的 Jaspr 应用中使用 Lucide 图标。以下是一个简单的示例:

import 'package:jaspr/jaspr.dart';
import 'package:jaspr_lucide_icons/jaspr_lucide_icons.dart';

class MyApp extends StatelessComponent {
  @override
  Iterable<Component> build(BuildContext context) sync* {
    yield div(children: [
      Icon(LucideIcons.home, size: 24), // 使用 home 图标
      Icon(LucideIcons.settings, size: 24), // 使用 settings 图标
      Icon(LucideIcons.user, size: 24), // 使用 user 图标
    ]);
  }
}

void main() {
  runApp(MyApp());
}

可用的图标

jaspr_lucide_icons 提供了 Lucide 图标集中的所有图标。你可以在 Lucide 官方网站 上查看所有可用的图标及其名称。在代码中,你可以通过 LucideIcons 类来访问这些图标。

例如:

  • LucideIcons.home
  • LucideIcons.settings
  • LucideIcons.user
  • LucideIcons.alertCircle
  • LucideIcons.arrowRight
  • 等等。

自定义图标大小和颜色

你可以通过 sizecolor 参数来自定义图标的大小和颜色:

Icon(LucideIcons.home, size: 32, color: Colors.blue);
回到顶部