1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// 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/cupertino.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
test('CupertinoTextTheme matches Apple Design resources', () {
// Check the default cupertino text theme against the style values
// Values derived from https://developer.apple.com/design/resources/.
const CupertinoTextThemeData theme = CupertinoTextThemeData();
const FontWeight normal = FontWeight.normal;
const FontWeight regular = FontWeight.w400;
const FontWeight medium = FontWeight.w500;
const FontWeight semiBold = FontWeight.w600;
const FontWeight bold = FontWeight.w700;
// TextStyle 17 -0.41
expect(theme.textStyle.fontSize, 17);
expect(theme.textStyle.fontFamily, '.SF Pro Text');
expect(theme.textStyle.letterSpacing, -0.41);
expect(theme.textStyle.fontWeight, null);
// ActionTextStyle 17 -0.41
expect(theme.actionTextStyle.fontSize, 17);
expect(theme.actionTextStyle.fontFamily, '.SF Pro Text');
expect(theme.actionTextStyle.letterSpacing, -0.41);
expect(theme.actionTextStyle.fontWeight, null);
// TextStyle 17 -0.41
expect(theme.tabLabelTextStyle.fontSize, 10);
expect(theme.tabLabelTextStyle.fontFamily, '.SF Pro Text');
expect(theme.tabLabelTextStyle.letterSpacing, -0.24);
expect(theme.tabLabelTextStyle.fontWeight, medium);
// NavTitle SemiBold 17 -0.41
expect(theme.navTitleTextStyle.fontSize, 17);
expect(theme.navTitleTextStyle.fontFamily, '.SF Pro Text');
expect(theme.navTitleTextStyle.letterSpacing, -0.41);
expect(theme.navTitleTextStyle.fontWeight, semiBold);
// NavLargeTitle Bold 34 0.41
expect(theme.navLargeTitleTextStyle.fontSize, 34);
expect(theme.navLargeTitleTextStyle.fontFamily, '.SF Pro Display');
expect(theme.navLargeTitleTextStyle.letterSpacing, 0.41);
expect(theme.navLargeTitleTextStyle.fontWeight, bold);
// Picker Regular 21 -0.6
expect(theme.pickerTextStyle.fontSize, 21);
expect(theme.pickerTextStyle.fontFamily, '.SF Pro Display');
expect(theme.pickerTextStyle.letterSpacing, -0.6);
expect(theme.pickerTextStyle.fontWeight, regular);
// DateTimePicker Normal 21
expect(theme.dateTimePickerTextStyle.fontSize, 21);
expect(theme.dateTimePickerTextStyle.fontFamily, '.SF Pro Display');
expect(theme.dateTimePickerTextStyle.letterSpacing, null);
expect(theme.dateTimePickerTextStyle.fontWeight, normal);
});
}