feather_core

Core primitives, models, enums, and utilities that power the Feather ecosystem. This package is a pure Dart library and is consumed by packages such as feather_ui, feather_generator, feather_cli, and the catalog website.

Features

  • Widget metadata annotations to describe pages, blocks, and components.
  • Strongly-typed enums for scopes, types, and categories.
  • Models for file and widget metadata serialization.
  • File and project utilities (detect Flutter projects, find project root, safe file creation) with structured logging.

Install

Add to your Dart/Flutter package:

dependencies:
  feather_core: any

Then import it:

import 'package:feather_core/feather_core.dart';

Usage

1) Describe components with annotations

Use the provided metadata annotations to describe pages, blocks, and components. These are used by generators and registries to index and scaffold UI.

import 'package:feather_core/feather_core.dart';

@ComponentMeta(
  id: 'feather_btn_01',
  name: 'Feather Button',
  description: 'A Feather demo button.',
  types: [ComponentType.interactive],
  categories: [ComponentCategory.button],
  screens: [Screens.mobile, Screens.desktop],
)
class FeatherButton extends StatelessWidget {}

See: lib/src/annotations/widget_annotations.dart

Contributing

Contributions are welcome! Please see the root repository’s CONTRIBUTING.md for guidelines.

License

This package is released under the MIT License. See the root LICENSE.