mirror of
https://gitlab.com/veilid/veilidchat.git
synced 2025-07-22 06:08:54 -04:00
checkpoint
This commit is contained in:
parent
c516323e7d
commit
31f562119a
70 changed files with 1174 additions and 817 deletions
52
lib/theme/models/theme_preference.dart
Normal file
52
lib/theme/models/theme_preference.dart
Normal file
|
@ -0,0 +1,52 @@
|
|||
import 'package:change_case/change_case.dart';
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'theme_preference.freezed.dart';
|
||||
part 'theme_preference.g.dart';
|
||||
|
||||
// Theme supports light and dark mode, optionally selected by the
|
||||
// operating system
|
||||
enum BrightnessPreference {
|
||||
system,
|
||||
light,
|
||||
dark;
|
||||
|
||||
factory BrightnessPreference.fromJson(dynamic j) =>
|
||||
BrightnessPreference.values.byName((j as String).toCamelCase());
|
||||
|
||||
String toJson() => name.toPascalCase();
|
||||
}
|
||||
|
||||
// Theme supports multiple color variants based on 'Radix'
|
||||
enum ColorPreference {
|
||||
// Radix Colors
|
||||
scarlet,
|
||||
babydoll,
|
||||
vapor,
|
||||
gold,
|
||||
garden,
|
||||
forest,
|
||||
arctic,
|
||||
lapis,
|
||||
eggplant,
|
||||
lime,
|
||||
grim,
|
||||
// Accessible Colors
|
||||
contrast;
|
||||
|
||||
factory ColorPreference.fromJson(dynamic j) =>
|
||||
ColorPreference.values.byName((j as String).toCamelCase());
|
||||
String toJson() => name.toPascalCase();
|
||||
}
|
||||
|
||||
@freezed
|
||||
class ThemePreferences with _$ThemePreferences {
|
||||
const factory ThemePreferences({
|
||||
required BrightnessPreference brightnessPreference,
|
||||
required ColorPreference colorPreference,
|
||||
required double displayScale,
|
||||
}) = _ThemePreferences;
|
||||
|
||||
factory ThemePreferences.fromJson(dynamic json) =>
|
||||
_$ThemePreferencesFromJson(json as Map<String, dynamic>);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue