Развевающееся Дерево Пользовательских Цветов

#flutter #object #colors #tree

Вопрос:

Новичок в Flutter и пытаюсь включить дерево, которое я использовал для цветов на веб-сайте, в качестве полезных цветов в Flutter. До сих пор мне удавалось создавать собственные цвета, но только путем их индивидуального объявления.

 class AppColors {
  final boo = const Color.fromRGBO(0, 32, 255, 1);

  const AppColors();
}

class AppTheme {
  static const colors = AppColors();
}
 

Это я использую в приложении через AppTheme.colors.boo

Что я хочу сделать, так это использовать всю мою цветовую схему в качестве дерева, с помощью которого я могу выбрать любой цвет, который я хочу, из схемы. Вот базовый репозиторий в JSON (я не собираюсь конвертировать из json, просто понимаю, как это сделать в Flutter (очень новый, но хорошо понимаю JS)).

 {
    "background": {
        "solid": {
            "light": "255, 255 ,255, 1",
            "dark": "0, 0 ,0, 1"
        },
        "light": {
            "primary": "255, 255, 255, 0.84",
            "secondary": "240, 240, 248, 0.84",
            "tertiary": "224, 224, 232, 0.84"
        },
        "dark": {
            "primary": "0, 0, 0, 0.84",
            "secondary": "32, 32, 40, 0.84",
            "tertiary": "64, 64, 72, 0.84"
        }
    },
 

Затем, чтобы иметь возможность использовать их в моем приложении, AppTheme.colors.background.solid например.

Я ценю, что это довольно фундаментальные проблемы, с которыми я сталкиваюсь, но это мой способ обучения.

Один из способов, который я нашел, заключается в следующем:

 class AppColors {
  final backgroundSolid = const Color.fromRGBO(255, 255, 255, 1);
  final backgroundPrimary = const Color.fromRGBO(255, 255, 255, 0.84);
  final backgroundSecondary = const Color.fromRGBO(240, 240, 248, 0.84);
  final backgroundTertiary = const Color.fromRGBO(224, 224, 232, 0.84);

  const AppColors();
}

class AppTheme {
  static const colors = AppColors();
}
 

Является ли это разумным подходом?

Комментарии:

1. Вы можете посмотреть (Документ с темой flutter)[ flutter.dev/документы/кулинарная книга/дизайн/темы] , чтобы узнать, как вы можете настроить цвета для всего приложения и использовать их с Theme.of(контекст).

2. Кроме того, вы можете посмотреть на шаблоны дизайна материалов, чтобы увидеть, как Flutter использует цвета и другие тематические конфигурации через приложение

3. Спасибо. Я взглянул, но я эффективно пытаюсь дать пользовательские ключи для своих цветов, которые, судя по тому, что я вижу, кажутся невозможными с помощью этого средства.

4. @GuilhermeGabanelli Было бы это плохим способом сделать это: расширение цветов приложений на купертинотематических данных { Color get BackgroundSolid { return Color.fromRGBO(255, 255, 255, 1); } ….

5. Или, скорее: (уточняющий вопрос)