FLUTTER ECOSYSTEM

TesteurManiak/icon_decoration

為 Icon 小部件添加裝飾功能,包括陰影、邊框和漸變。

圖示裝飾 專案封面
Stars
25
Forks
3
最近推送(UTC)
2026年2月3日
專案狀態
未封存
Guillaume Roux GitHub avatar
GITHUB User

Guillaume Roux ↗

Flutter Software Engineer, co-organizer of Flutter Lyon

Veson NauticalLyon, France官方網站 ↗
語言DartHTML

技術主題

此儲存庫發佈的套件

使用的依賴

依賴清單 5 項
  • flutter{"sdk":"flutter"}
  • alchemist開發依賴{"git":{"url":"https://github.com/Betterment/alchemist.git","ref":"ab1f2eb49584339be119eaec28a5562f6b325cbc"}}
  • fd_lints開發依賴^2.3.0
  • flutter_test開發依賴{"sdk":"flutter"}
  • meta開發依賴^1.15.0

原始 README

以下為英文專案原文快照,最新內容請造訪 GitHub。

展開 / 收合專案 README

icon_decoration

Pub Version Test workflow Coverage Status

Add decoration capabilities to the Icon widget with borders and gradients. This new DecoratedIcon widget overlap itself with the base Icon widget to provide a more complete decoration system through a IconDecoration property.

Table of contents

Add to your project

Add dependency to your pubspec.yaml
icon_decoration: any
Import the package
import 'package:icon_decoration/icon_decoration.dart';

How to use

Add borders to icons
https://raw.githubusercontent.com/TesteurManiak/icon_decoration/refs/heads/main/screenshots/border_with_colorized_icon.png
DecoratedIcon(
    icon: Icon(Icons.favorite, color: Colors.green),
    decoration: IconDecoration(border: IconBorder()),
)
Add gradients to icons

Gradients are supported on Flutter Web only with the canvaskit renderer

https://raw.githubusercontent.com/TesteurManiak/icon_decoration/refs/heads/main/screenshots/base_gradient.png
DecoratedIcon(
    icon: Icon(Icons.all_inbox),
    decoration: IconDecoration(
        gradient: rainbowGradient,
    ),
)
Mix them all together
https://raw.githubusercontent.com/TesteurManiak/icon_decoration/refs/heads/main/screenshots/gradient_with_border_and_shadow.png
DecoratedIcon(
    icon: Icon(
        Icons.all_inbox,
        shadows: [
            Shadow(
                color: Colors.red,
                blurRadius: 3,
                offset: Offset(0, 2),
            ),
        ],
    ),
    decoration: IconDecoration(
        gradient: _rainbowGradient,
        border: IconBorder(),
    ),
)

Migration Guide

v2.0.0
  • Removed IconDecoration.shadows, use Icon.shadows instead.

Before

DecoratedIcon(
    icon: Icon(Icons.all_inbox),
    decoration: IconDecoration(
        shadows: [
            Shadow(
                color: Colors.red,
                blurRadius: 3,
                offset: Offset(0, 2),
            ),
        ],
    ),
)

After

Icon(
    Icons.all_inbox,
    shadows: [
        Shadow(
            color: Colors.red,
            blurRadius: 3,
            offset: Offset(0, 2),
        ),
    ],
),