diff --git a/lib/themes/juniper.dart b/lib/themes/juniper.dart new file mode 100644 index 00000000..1ea17ae4 --- /dev/null +++ b/lib/themes/juniper.dart @@ -0,0 +1,63 @@ +import 'dart:ui'; +import 'dart:core'; + +import 'package:cwtch/themes/cwtch.dart'; +import 'package:flutter/material.dart'; + +import 'opaque.dart'; + +const juniper_theme = "juniper"; + +OpaqueThemeType GetJuniperTheme(String mode) { + // there is only one juniper theme + return Juniper(); +} + +class Juniper extends CwtchDark { + static final Color background = Color(0xFF1B1B1B); + static final Color backgroundAlt = Color(0xFF494949); + static final Color header = Color(0xFF1B1B1B); + static final Color userBubble = Color(0xFF373737); + static final Color peerBubble = Color(0xFF494949); + static final Color font = Color(0xFFFFFFFF); + static final Color settings = Color(0xFFFFFDFF); + static final Color accent = Color(0xFF9E6A56); + static final Color accentAlt = Color(0xFF845A48); + + + get theme => juniper_theme; + get mode => mode_dark; + + get backgroundMainColor => background; // darkGreyPurple; + get backgroundPaneColor => header; //darkGreyPurple; + get topbarColor => header; //darkGreyPurple; + get mainTextColor => font; //whiteishPurple; + get defaultButtonColor => accent; //hotPink; + get textfieldHintColor => mainTextColor; //TODO pick + get toolbarIconColor => settings; //whiteishPurple; + get messageFromMeBackgroundColor => userBubble; // mauvePurple; + get messageFromMeTextColor => font; //whiteishPurple; + get messageFromOtherBackgroundColor => peerBubble; //deepPurple; + get messageFromOtherTextColor => font; //whiteishPurple; + get textfieldBackgroundColor => peerBubble; + get textfieldBorderColor => userBubble; + get backgroundHilightElementColor => accent; + + get sendHintTextColor => accentAlt; + get hilightElementColor => accentAlt; + get defaultButtonTextColor => mainTextColor; + get defaultButtonDisabledColor => peerBubble; + get defaultButtonDisabledTextColor => peerBubble; + get textfieldErrorColor => accent; + get scrollbarDefaultColor => accent; + get portraitBackgroundColor => header; + get portraitOnlineBorderColor => font; + get portraitOfflineBorderColor => peerBubble; + get portraitBlockedBorderColor => peerBubble; + get portraitBlockedTextColor => peerBubble; + get portraitContactBadgeColor => accent; + get portraitContactBadgeTextColor => mainTextColor; + get portraitProfileBadgeColor => accent; + get portraitProfileBadgeTextColor => mainTextColor; + get dropShadowColor => accentAlt; +} diff --git a/lib/themes/opaque.dart b/lib/themes/opaque.dart index a5bc6f93..34fef3c8 100644 --- a/lib/themes/opaque.dart +++ b/lib/themes/opaque.dart @@ -2,6 +2,7 @@ import 'dart:ui'; import 'dart:core'; import 'package:cwtch/themes/cwtch.dart'; +import 'package:cwtch/themes/juniper.dart'; import 'package:cwtch/themes/mermaid.dart'; import 'package:cwtch/themes/neon1.dart'; import 'package:cwtch/themes/pumpkin.dart'; @@ -21,6 +22,7 @@ const mode_dark = "dark"; final themes = { cwtch_theme: {mode_light: CwtchLight(), mode_dark: CwtchDark()}, ghost_theme: {mode_light: GhostLight(), mode_dark: GhostDark()}, + juniper_theme: {mode_light: Juniper(), mode_dark: Juniper()}, mermaid_theme: {mode_light: MermaidLight(), mode_dark: MermaidDark()}, midnight_theme: {mode_light: MidnightLight(), mode_dark: MidnightDark()}, neon1_theme: {mode_light: Neon1Light(), mode_dark: Neon1Dark()}, diff --git a/lib/views/globalsettingsview.dart b/lib/views/globalsettingsview.dart index 102855d6..29c45fd8 100644 --- a/lib/views/globalsettingsview.dart +++ b/lib/views/globalsettingsview.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'dart:math'; import 'package:cwtch/cwtch_icons_icons.dart'; import 'package:cwtch/models/servers.dart'; +import 'package:cwtch/themes/juniper.dart'; import 'package:cwtch/widgets/folderpicker.dart'; import 'package:cwtch/themes/cwtch.dart'; import 'package:cwtch/themes/ghost.dart'; @@ -676,6 +677,8 @@ String getThemeName(context, String theme) { return AppLocalizations.of(context)!.themeNameVampire; case witch_theme: return AppLocalizations.of(context)!.themeNameWitch; + case juniper_theme: + return "Juniper"; // Juniper is a noun, and doesn't get subject to translation... } return theme; }