cwtch-ui/lib/themes/cwtch.dart

148 lines
5.7 KiB
Dart

import 'dart:ui';
import 'dart:core';
import 'package:flutter/material.dart';
import 'opaque.dart';
// hard coded fallback theme
// - Used if needed briefly at startup before themes loaded
// - Used as basis for other themes if they don't override all the colors
const cwtch_theme = "cwtch";
final Color darkGreyPurple = Color(0xFF281831);
final Color deepPurple = Color(0xFF422850);
final Color mauvePurple = Color(0xFF8E64A5);
final Color whiteishPurple = Color(0xFFE3DFE4);
final Color lightGrey = Color(0xFF9E9E9E);
final Color softGreen = Color(0xFFA0FFB0);
final Color softRed = Color(0xFFFFA0B0);
final Color whitePurple = Color(0xFFFFFDFF);
final Color softPurple = Color(0xFFFDF3FC);
final Color purple = Color(0xFFDFB9DE);
final Color brightPurple = Color(0xFFD1B0E0); // not in new: portrait badge color
final Color darkPurple = Color(0xFF350052);
final Color greyPurple = Color(0xFF775F84); // not in new: portrait borders
final Color pink = Color(0xFFE85DA1); // not in new: active button color
final Color hotPink = Color(0xFFD20070); // Color(0xFFD01972);
final Color softGrey = Color(0xFFB3B6B3); // not in new theme: blocked
OpaqueThemeType GetCwtchTheme(String mode) {
if (mode == mode_dark) {
return CwtchDark();
} else {
return CwtchLight();
}
}
class CwtchDark extends OpaqueThemeType {
static final Color background = darkGreyPurple;
static final Color header = darkGreyPurple;
static final Color userBubble = mauvePurple;
static final Color peerBubble = deepPurple;
static final Color font = whiteishPurple;
static final Color settings = whiteishPurple;
static final Color accent = hotPink;
get theme => cwtch_theme;
get mode => mode_dark;
get backgroundHilightElementColor => deepPurple;
get backgroundMainColor => background; // darkGreyPurple;
get backgroundPaneColor => header; //darkGreyPurple;
get defaultButtonColor => accent; //hotPink;
get defaultButtonDisabledColor => lightGrey;
get defaultButtonDisabledTextColor => darkGreyPurple;
get defaultButtonTextColor => whiteishPurple;
get dropShadowColor => mauvePurple;
get hilightElementColor => purple;
get mainTextColor => font; //whiteishPurple;
get messageFromMeBackgroundColor => userBubble; // mauvePurple;
get messageFromMeTextColor => font; //whiteishPurple;
get messageFromOtherBackgroundColor => peerBubble; //deepPurple;
get messageFromOtherTextColor => font; //whiteishPurple;
get messageSelectionColor => accent;
get portraitBackgroundColor => deepPurple;
get portraitBlockedBorderColor => lightGrey;
get portraitBlockedTextColor => lightGrey;
get portraitContactBadgeColor => hotPink;
get portraitContactBadgeTextColor => whiteishPurple;
get portraitOfflineBorderColor => purple;
get portraitOnlineBorderColor => whiteishPurple;
get portraitOnlineAwayColor => Color(0xFFFFF59D);
get portraitOnlineBusyColor => Color(0xFFEF9A9A);
get portraitProfileBadgeColor => hotPink;
get portraitProfileBadgeTextColor => whiteishPurple;
get scrollbarDefaultColor => purple;
get sendHintTextColor => mauvePurple;
get chatReactionIconColor => mauvePurple;
get textfieldBackgroundColor => deepPurple;
get textfieldBorderColor => deepPurple;
get textfieldErrorColor => hotPink;
get textfieldHintColor => mainTextColor;
get textfieldSelectionColor => accent;
get toolbarIconColor => settings; //whiteishPurple;
get topbarColor => header; //darkGreyPurple;
get menuBackgroundColor => accent;
get menuTextColor => darkGreyPurple;
get snackbarBackgroundColor => accent;
get snackbarTextColor => whitePurple;
get chatImageColor => purple;
}
class CwtchLight extends OpaqueThemeType {
static final Color background = whitePurple;
static final Color header = softPurple;
static final Color userBubble = purple;
static final Color peerBubble = softPurple;
static final Color font = darkPurple;
static final Color settings = darkPurple;
static final Color accent = hotPink;
get theme => cwtch_theme;
get mode => mode_light;
get backgroundHilightElementColor => softPurple;
get backgroundMainColor => background; //whitePurple;
get backgroundPaneColor => background; //whitePurple;
get defaultButtonColor => accent; // hotPink;
get defaultButtonDisabledColor => softGrey;
get defaultButtonTextColor => whitePurple; // ?
get dropShadowColor => purple;
get hilightElementColor => purple;
get mainTextColor => settings;
get messageFromMeBackgroundColor => userBubble; //brightPurple;
get messageFromMeTextColor => font; //mainTextColor;
get messageFromOtherBackgroundColor => peerBubble; //purple;
get messageFromOtherTextColor => font; //darkPurple;
get messageSelectionColor => accent;
get portraitBackgroundColor => softPurple;
get portraitBlockedBorderColor => softGrey;
get portraitBlockedTextColor => softGrey;
get portraitContactBadgeColor => accent;
get portraitContactBadgeTextColor => whitePurple;
get portraitOfflineBorderColor => greyPurple;
get portraitOnlineBorderColor => greyPurple;
get portraitOnlineAwayColor => Color(0xFFFFF59D);
get portraitOnlineBusyColor => Color(0xFFEF9A9A);
get portraitProfileBadgeColor => accent;
get portraitProfileBadgeTextColor => whitePurple;
get scrollbarDefaultColor => accent;
get sendHintTextColor => purple;
get chatReactionIconColor => purple;
get textfieldBackgroundColor => purple;
get textfieldBorderColor => purple;
get textfieldErrorColor => hotPink;
get textfieldHintColor => font;
get textfieldSelectionColor => accent;
get toolbarIconColor => settings; //darkPurple;
get topbarColor => header; //softPurple;
get menuBackgroundColor => accent;
get menuTextColor => whitePurple;
get snackbarBackgroundColor => accent;
get snackbarTextColor => whitePurple;
get chatImageColor => purple;
}