blob: 1bd094a3022fed989b8e9857829ec9461b20a3d7 [file]
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/widgets.dart';
/// Flutter code sample for [FontFeature].
void main() => runApp(const ExampleApp());
class ExampleApp extends StatelessWidget {
const ExampleApp({super.key});
static PageRoute<T> _pageRouteBuilder<T>(
RouteSettings settings,
WidgetBuilder builder,
) {
return PageRouteBuilder<T>(
settings: settings,
pageBuilder:
(
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
) => builder(context),
transitionsBuilder:
(
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child,
) => child,
);
}
@override
Widget build(BuildContext context) {
return WidgetsApp(
color: const Color(0xFFFFFFFF),
home: const ExampleWidget(),
pageRouteBuilder: _pageRouteBuilder,
);
}
}
const TextStyle titleStyle = TextStyle(
fontSize: 18,
fontFeatures: <FontFeature>[FontFeature.enable('smcp')],
color: Color(0xFF0000FF),
);
class ExampleWidget extends StatelessWidget {
const ExampleWidget({super.key});
Widget buildDivider() {
return const Padding(
padding: EdgeInsets.all(4),
child: ColoredBox(
color: Color(0xFF000000),
child: SizedBox(height: 4, width: double.infinity),
),
);
}
@override
Widget build(BuildContext context) {
// The Cardo, Milonga and Raleway Dots fonts can be downloaded from Google
// Fonts (https://www.google.com/fonts).
return Directionality(
textDirection: TextDirection.ltr,
child: Center(
child: Column(
mainAxisAlignment: .center,
children: <Widget>[
const Spacer(flex: 5),
Text('regular numbers have their place:', style: titleStyle),
const Text(
'The 1972 cup final was a 1-1 draw.',
style: TextStyle(fontFamily: 'Cardo', fontSize: 24),
),
const Spacer(),
Text(
'but old-style figures blend well with lower case:',
style: titleStyle,
),
const Text(
'The 1972 cup final was a 1-1 draw.',
style: TextStyle(
fontFamily: 'Cardo',
fontSize: 24,
fontFeatures: <FontFeature>[FontFeature.oldstyleFigures()],
),
),
const Spacer(),
buildDivider(),
const Spacer(),
Text(
'fractions look better with a custom ligature:',
style: titleStyle,
),
const Text(
'Add 1/2 tsp of flour and stir.',
style: TextStyle(
fontFamily: 'Milonga',
fontSize: 24,
fontFeatures: <FontFeature>[FontFeature.alternativeFractions()],
),
),
const Spacer(),
buildDivider(),
const Spacer(),
Text('multiple stylistic sets in one font:', style: titleStyle),
const Text(
'Raleway Dots',
style: TextStyle(fontFamily: 'Raleway Dots', fontSize: 48),
),
Text(
'Raleway Dots',
style: TextStyle(
fontFeatures: <FontFeature>[FontFeature.stylisticSet(1)],
fontFamily: 'Raleway Dots',
fontSize: 48,
),
),
const Spacer(flex: 5),
],
),
),
);
}
}