// Copyright 2013 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. part of dart.ui; /// Whether to slant the glyphs in the font enum FontStyle { /// Use the upright glyphs normal, /// Use glyphs designed for slanting italic, } /// The thickness of the glyphs used to draw the text class FontWeight { /// Thin, the least thick static const FontWeight w100 = const FontWeight._(0); /// Extra-light static const FontWeight w200 = const FontWeight._(1); /// Light static const FontWeight w300 = const FontWeight._(2); /// Normal / regular / plain static const FontWeight w400 = const FontWeight._(3); /// Medium static const FontWeight w500 = const FontWeight._(4); /// Semi-bold static const FontWeight w600 = const FontWeight._(5); /// Bold static const FontWeight w700 = const FontWeight._(6); /// Extra-bold static const FontWeight w800 = const FontWeight._(7); /// Black, the most thick static const FontWeight w900 = const FontWeight._(8); /// The default font weight. static const FontWeight normal = w400; /// A commonly used font weight that is heavier than normal. static const FontWeight bold = w700; /// A list of all the font weights. static const List values = const [ w100, w200, w300, w400, w500, w600, w700, w800, w900 ]; /// The encoded integer value of this font weight. final int index; const FontWeight._(this.index); @override String toString() { return const { 0: 'FontWeight.w100', 1: 'FontWeight.w200', 2: 'FontWeight.w300', 3: 'FontWeight.w400', 4: 'FontWeight.w500', 5: 'FontWeight.w600', 6: 'FontWeight.w700', 7: 'FontWeight.w800', 8: 'FontWeight.w900', }[index]; } } enum TextAlign { /// Align the text on the left edge of the container. left, /// Align the text on the right edge of the container. right, /// Align the text in the center of the container. center, /// Stretch lines of text that end with a soft line break to fill the width of /// the container. /// /// Lines that end with hard line breaks are aligned towards the [start] edge. justify, /// Align the text on the leading edge of the container. /// /// For left-to-right text ([TextDirection.ltr]), this is the left edge. /// /// For right-to-left text ([TextDirection.rtl]), this is the right edge. start, /// Align the text on the trailing edge of the container. /// /// For left-to-right text ([TextDirection.ltr]), this is the right edge. /// /// For right-to-left text ([TextDirection.rtl]), this is the left edge. end, } /// A horizontal line used for aligning text. enum TextBaseline { /// The horizontal line used to align the bottom of glyphs for alphabetic characters. alphabetic, /// The horizontal line used to align ideographic characters. ideographic, } enum TextDirection { /// The text flows from right to left (e.g. Arabic, Hebrew). rtl, /// The text flows from left to right (e.g., English, French). ltr, }