-
Notifications
You must be signed in to change notification settings - Fork 7
/
chat_theme.dart
95 lines (66 loc) · 2.4 KB
/
chat_theme.dart
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import 'package:flutter/material.dart';
/// Dark
const dark = Color(0xff1f1c38);
/// N0
const neutral0 = Color(0xff1d1c21);
/// N2
const neutral2 = Color(0xff9e9cab);
/// N7
const neutral7 = Color(0xffffffff);
/// N7 with opacity
const neutral7WithOpacity = Color(0x80ffffff);
/// Primary
const primary = Color(0xff6f61e8);
/// Secondary
const secondary = Color(0xfff5f5f7);
/// Secondary dark
const secondaryDark = Color(0xff2b4250);
/// Base chat theme containing all required properties to make a theme.
/// Extend this class if you want to create a custom theme.
@immutable
abstract class ChatTheme {
/// Creates a new chat theme based on provided colors and text styles.
const ChatTheme();
/// Text padding to it's container
double get textMessagePadding;
/// Message inset, can be used to have padding between messages
EdgeInsets get messageInset;
/// Used as a background color of a chat widget
Color get backgroundColor;
/// Border radius of message container
double get messageBorderRadius;
/// Primary color, used as a background of outgoing messages
Color get primaryColor;
/// Body text style used for displaying text on different types
/// of received messages
TextStyle get incomingMessageBodyTextStyle;
TextStyle get incomingChatTextTime;
TextStyle get outgoingChatTextTime;
TextStyle get htmlWidgetTextTime;
TextStyle get imageWidgetTextTime;
/// Secondary color, used as a background of incoming messages
Color get secondaryColor;
/// Body text style used for displaying text on different types
/// of sent messages
TextStyle get outgoingMessageBodyTextStyle;
// Image Message Styles
/// Image borderRadius
BorderRadius get imageBorderRadius;
// Carousel Message Styles
/// Carousel container decoration
BoxDecoration get carouselBoxDecoration;
/// Title text style used for displaying text on Carousel widget
TextStyle get carouselTitleTextStyle;
/// Subtitle text style used for displaying text on Carousel widget
TextStyle get carouselSubtitleTextStyle;
/// Button style used on Carousel widget
ButtonStyle get carouselButtonStyle;
// Quick Reply Message Style
/// Button style used on QuickReply widget
ButtonStyle get quickReplyButtonStyle;
// HTML Message Style
/// Color on p, h1, h2, h3, h4, h5 elements.
Color get htmlTextColor;
/// FontFamily on p, h1, h2, h3, h4, h5 elements.
String? get htmlTextFontFamily;
}