blob: 37fc466ccd6682975cdd957f2179438af20ac3b2 [file] [log] [blame]
// Copyright 2019 The Flutter team. 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/material.dart';
import 'package:gallery/l10n/gallery_localizations.dart';
// BEGIN typographyDemo
class _TextStyleItem extends StatelessWidget {
const _TextStyleItem({
Key key,
@required this.name,
@required this.style,
@required this.text,
}) : assert(name != null),
assert(style != null),
assert(text != null),
super(key: key);
final String name;
final TextStyle style;
final String text;
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 16),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
width: 72,
child: Text(name, style: Theme.of(context).textTheme.caption),
),
Expanded(
child: Text(text, style: style),
),
],
),
);
}
}
class TypographyDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
final textTheme = Theme.of(context).textTheme;
final styleItems = <Widget>[
_TextStyleItem(
name: 'Display 4',
style: textTheme.display4,
text: 'Light 96sp',
),
_TextStyleItem(
name: 'Display 3',
style: textTheme.display3,
text: 'Light 60sp',
),
_TextStyleItem(
name: 'Display 2',
style: textTheme.display2,
text: 'Regular 48sp',
),
_TextStyleItem(
name: 'Display 1',
style: textTheme.display1,
text: 'Regular 34sp',
),
_TextStyleItem(
name: 'Headline',
style: textTheme.headline,
text: 'Regular 24sp',
),
_TextStyleItem(
name: 'Title',
style: textTheme.title,
text: 'Medium 20sp',
),
_TextStyleItem(
name: 'Subhead',
style: textTheme.subhead,
text: 'Regular 16sp',
),
_TextStyleItem(
name: 'Subtitle',
style: textTheme.subtitle,
text: 'Medium 14sp',
),
_TextStyleItem(
name: 'Body 1',
style: textTheme.body1,
text: 'Regular 16sp',
),
_TextStyleItem(
name: 'Body 2',
style: textTheme.body2,
text: 'Regular 14sp',
),
_TextStyleItem(
name: 'Button',
style: textTheme.button,
text: 'MEDIUM (ALL CAPS) 14sp',
),
_TextStyleItem(
name: 'Caption',
style: textTheme.caption,
text: 'Regular 12sp',
),
_TextStyleItem(
name: 'Overline',
style: textTheme.overline,
text: 'REGULAR (ALL CAPS) 10sp',
),
];
return Scaffold(
appBar: AppBar(
title: Text(GalleryLocalizations.of(context).demoTypographyTitle),
),
body: Scrollbar(child: ListView(children: styleItems)),
);
}
}
// END