Skip to content

gtk-flutter/libadwaita

Repository files navigation

Libadwaita ❤️ Flutter

CI GitHub Super-Linter

Pub.dev License Maintainer

Libadwaita's widgets for Flutter. Following Gnome HIG and available on all platforms.

libadwaita example screenshot

NOTE: For getting colors from gtk 3.0 theme use version <=0.9.8+1

Features

  • Various Libadwaita widgets ported to flutter
  • Some new widgets are also available, Check example for more info
  • Compatible with various packages

Usage

  • This only provides widgets, for theming you should consider adwaita or yaru package.
  • If you want custom titlebar then you can follow the steps for that on libadwaita_bitsdojo package.
  • Here is the list of widgets imported from libadwaita library : widgets.dart.

See the example app in the example folder for more info.

Documentation

AdwHeaderBar

There are 6 types of AdwHeaderBar constructor:

If you want to use default adwaita style window icons or icons using window_decorations package then you have to use any one of the following HeaderBar's:

Widget Docs
AdwHeaderBar Default HeaderBar
AdwHeaderBar.bitsdojo HeaderBar to be used with bitsdojo package
AdwHeaderBar.nativeshell HeaderBar to be used with nativeshell package

If you want to have a custom icon for window button then you have to use any one of the following HeaderBar's:

Widget Docs
AdwHeaderBar.custom HeaderBar with custom icon
AdwHeaderBar.customBitsdojo HeaderBar to be used with bitsdojo package with custom icon
AdwHeaderBar.customNativeshell HeaderBar to be used with nativeshell package with custom icon

Relavant Links

Additional information

This package works great with

adwaita / yaru
For theming

Optional packages

For Adwaita Icons

Can be used with

  • AdwHeaderBar.bitsdojo
  • AdwHeaderBar.customBitsdojo

Example:

import 'package:libadwaita_bitsdojo/libadwaita_bitsdojo.dart';

AdwHeaderBar.bitsdojo(
  ...
  appWindow: appWindow,
  ...
)

Example:

import 'package:libadwaita_searchbar/libadwaita_searchbar.dart';

bool searchedTerm = '';

AdwSearchBar(
    suggestions: const ['Hi', 'Hello'],
    onSubmitted: (str) => setState(() => searchedTerm = str),
    controller: const TextEditingController(),
)

Can be used with

  • AdwHeaderBar.nativeshell
  • AdwHeaderBar.customNativeshell

Example:

import 'package:nativeshell/nativeshell.dart';

AdwHeaderBar.nativeshell(
  ...
  window: Window.of(context),
  ...
)

Can be used with

  • AdwHeaderBar
  • AdwHeaderBar.bitsdojo
  • AdwHeaderBar.nativeshell

Example:

import 'package:window_decorations/window_decorations.dart';

AdwHeaderBar(
  ...
  windowDecor: windowDecor,
  ...
)

Classic API Docs

License

LGPL v3 / GNU LESSER GENERAL PUBLIC LICENSE v3

TLDR;

  • You are free to use this package in whatever app you want,
  • If you improve the package then you should submit your patches / improvements to this repository.