webf-native-ui-dev
10
总安装量
7
周安装量
#29735
全站排名
安装命令
npx skills add https://github.com/first-fluke/fullstack-starter --skill webf-native-ui-dev
Agent 安装分布
claude-code
5
antigravity
4
windsurf
3
cursor
3
codex
3
Skill 文档
WebF Native UI Dev
This skill guides the development of custom native UI components for WebF (Web on Flutter). It bridges Flutter widgets to standard HTML custom elements.
Concept
WebF allows you to render HTML/CSS using Flutter’s rendering engine. This skill helps you expose complex Flutter widgets as <custom-element> tags usable in HTML.
Workflow
- Create Flutter Widget: Build the widget using standard Flutter code.
- Define Element Class: Create a class extending
WidgetElement. - Register Custom Element: Use
defineCustomElementto map the tag name to the class.
Example
import 'package:webf/webf.dart';
import 'package:flutter/material.dart';
// 1. Define the Element
class FlutterButtonElement extends WidgetElement {
FlutterButtonElement(BindingContext? context) : super(context);
Widget build(BuildContext context, List<Widget> children) {
return ElevatedButton(
onPressed: () {
// Dispatch custom event to JS
dispatchEvent(Event('click'));
},
child: Text(getAttribute('label') ?? 'Click Me'),
);
}
}
// 2. Register (usually in main.dart)
void main() {
WebF.defineCustomElement('flutter-button', (context) => FlutterButtonElement(context));
runApp(MyApp());
}
Usage in HTML
<flutter-button label="Submit Order" id="btn"></flutter-button>
<script>
document.getElementById('btn').addEventListener('click', () => {
console.log('Button clicked via Flutter!');
});
</script>
Best Practices
- Attributes: Map HTML attributes to Widget properties.
- Events: Dispatch standard DOM events from Flutter user interactions.
- Performance: Avoid heavy computations in the
buildmethod; use state management.