blob: fc552f176996e54d5475824e9b677a387ab5bc70 [file] [log] [blame]
// Copyright 2018 The Fuchsia 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/material.dart';
import 'package:meta/meta.dart';
/// Function that returns a stylized widget with the specified text and
/// color.
typedef TextBuilder = Widget Function(
BuildContext context, String text, Color color);
/// Text overlaid over another copy of text with shadow color.
class ShadowedText extends StatelessWidget {
/// Function that returns the text widget
final TextBuilder textBuilder;
/// Text to display
final String text;
/// Shadow color
final Color shadowColor;
/// Text color
final Color textColor;
/// Constructor
const ShadowedText({
@required this.textBuilder,
@required this.text,
@required this.shadowColor,
@required this.textColor,
}) : assert(textBuilder != null),
assert(text != null),
assert(shadowColor != null),
assert(textColor != null);
@override
Widget build(BuildContext context) {
return new Stack(
fit: StackFit.passthrough,
children: <Widget>[
new Transform(
transform: new Matrix4.translationValues(2.0, 2.0, 0.0),
child: textBuilder(context, text, shadowColor),
),
textBuilder(context, text, textColor),
],
);
}
}