// Flutter code sample for {{element}}

{{description}}

import 'package:flutter/widgets.dart';

{{code-imports}}

void main() => runApp(new MyApp());

/// This Widget is the main application widget.
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return WidgetsApp(
      title: 'Flutter Code Sample',
      builder: (BuildContext context, Widget navigator) {
        return MyStatelessWidget();
      },
      color: const Color(0xffffffff),
    );
  }
}

{{code-preamble}}

/// This is the stateless widget that the main application instantiates.
class MyStatelessWidget extends StatelessWidget {
  MyStatelessWidget({Key key}) : super(key: key);

  @override
  {{code}}
}
