使用 Material 3,colorSchemeSeed 可用于设置整个应用程序的颜色。这适用于红色、蓝色和绿色等颜色。如果保留默认值,颜色将为紫色。当尝试使用黑色作为种子时,颜色默认为紫色。 拥有 Material 3 应用程序的最佳方式是什么,但应用程序主题的颜色是纯黑和白(在浅色和深色模式下)?
最简单的方法是手动设置 ThemeData colorScheme。 这是针对浅色主题的,您只需设置 Brightness.dark 并交换黑色和白色即可获得深色主题
ThemeData(
useMaterial3: true,
colorScheme: ColorScheme(
brightness: Brightness.light,
primary: Colors.black,
onPrimary: Colors.white,
secondary: Colors.white,
onSecondary: Colors.black,
error: Colors.red,
onError: Colors.white,
background: Colors.white,
onBackground: Colors.black,
surface: Colors.white,
onSurface: Colors.black,
),
textTheme: textTheme,
)
为了进一步构建seanyyyyy回答的内容,我通过以下主题输入归档了我想要的黑白外观。
final Map<int, Color> color = {
50: const Color.fromRGBO(0, 0, 0, .1),
100: const Color.fromRGBO(0, 0, 0, .2),
200: const Color.fromRGBO(0, 0, 0, .3),
300: const Color.fromRGBO(0, 0, 0, .4),
400: const Color.fromRGBO(0, 0, 0, .5),
500: const Color.fromRGBO(0, 0, 0, .6),
600: const Color.fromRGBO(0, 0, 0, .7),
700: const Color.fromRGBO(0, 0, 0, .8),
800: const Color.fromRGBO(0, 0, 0, .9),
900: const Color.fromRGBO(0, 0, 0, 1),
};
final Map<int, Color> colorWhite = {
50: const Color.fromRGBO(255, 255, 255, .1),
100: const Color.fromRGBO(255, 255, 255, .2),
200: const Color.fromRGBO(255, 255, 255, .3),
300: const Color.fromRGBO(255, 255, 255, .4),
400: const Color.fromRGBO(255, 255, 255, .5),
500: const Color.fromRGBO(255, 255, 255, .6),
600: const Color.fromRGBO(255, 255, 255, .7),
700: const Color.fromRGBO(255, 255, 255, .8),
800: const Color.fromRGBO(255, 255, 255, .9),
900: const Color.fromRGBO(255, 255, 255, 1),
};
theme: ThemeData(
useMaterial3: true,
brightness: Brightness.light,
colorScheme: ColorScheme.light(
secondaryContainer: Colors.grey,
primary: MaterialColor(0xFF000000, color),
surface: MaterialColor(0xFFFFFFFF, colorWhite),
surfaceVariant: MaterialColor(0xFFFFFFFF, colorWhite),
onSurface: Colors.black,
),
tabBarTheme: TabBarTheme(
labelColor: MaterialColor(0xFF000000, color),
),
appBarTheme: AppBarTheme(
iconTheme: IconThemeData(
color: MaterialColor(0xFF000000, color),
)),
primarySwatch: MaterialColor(0xFF000000, color),
visualDensity: VisualDensity.adaptivePlatformDensity,
),
darkTheme: ThemeData(
useMaterial3: true,
brightness: Brightness.dark,
colorScheme: ColorScheme.dark(
primary:MaterialColor(0xFFFFFFFF, colorWhite),
secondary:Colors.lightBlue,
tertiary: Colors.lightBlue,
),
tabBarTheme: TabBarTheme(
labelColor: MaterialColor(0xFFFFFFFF, colorWhite),
),
appBarTheme: AppBarTheme(
iconTheme: IconThemeData(
color: MaterialColor(0xFFFFFFFF, colorWhite),
)),
primarySwatch: MaterialColor(0xFFFFFFFF, colorWhite),
visualDensity: VisualDensity.adaptivePlatformDensity,
),
超级信息我一直在寻找这个,我正在尝试在我的figma设计中实现它。
问题,我是否需要在 json 文件中执行此操作并导入到材料 3,我尝试过,但不起作用。这是M3的颜色导出文件。
{
"seed": "#6750A4",
"name": "material-theme",
"description": "TYPE: BASELINE",
"baseline": true,
"extendedColors": [],
"coreColors": {
"primary": "#6750A4"
},
"schemes": {
"light": {
"primary": "#6750A4",
"onPrimary": "#FFFFFF",
"primaryContainer": "#EADDFF",
"onPrimaryContainer": "#21005D",
"primaryFixed": "#EADDFF",
"onPrimaryFixed": "#21005D",
"primaryFixedDim": "#D0BCFF",
"onPrimaryFixedVariant": "#4F378B",
"secondary": "#625B71",
"onSecondary": "#FFFFFF",
"secondaryContainer": "#E8DEF8",
"onSecondaryContainer": "#1D192B",
"secondaryFixed": "#E8DEF8",
"onSecondaryFixed": "#1D192B",
"secondaryFixedDim": "#CCC2DC",
"onSecondaryFixedVariant": "#4A4458",
"tertiary": "#7D5260",
"onTertiary": "#FFFFFF",
"tertiaryContainer": "#FFD8E4",
"onTertiaryContainer": "#31111D",
"tertiaryFixed": "#FFD8E4",
"onTertiaryFixed": "#31111D",
"tertiaryFixedDim": "#EFB8C8",
"onTertiaryFixedVariant": "#633B48",
"error": "#B3261E",
"onError": "#FFFFFF",
"errorContainer": "#F9DEDC",
"onErrorContainer": "#410E0B",
"outline": "#79747E",
"background": "#FEF7FF",
"onBackground": "#1D1B20",
"surface": "#FEF7FF",
"onSurface": "#1D1B20",
"surfaceVariant": "#E7E0EC",
"onSurfaceVariant": "#49454F",
"inverseSurface": "#322F35",
"inverseOnSurface": "#F5EFF7",
"inversePrimary": "#D0BCFF",
"shadow": "#000000",
"surfaceTint": "#6750A4",
"outlineVariant": "#CAC4D0",
"scrim": "#000000",
"surfaceContainerHighest": "#E6E0E9",
"surfaceContainerHigh": "#ECE6F0",
"surfaceContainer": "#F3EDF7",
"surfaceContainerLow": "#F7F2FA",
"surfaceContainerLowest": "#FFFFFF",
"surfaceBright": "#FEF7FF",
"surfaceDim": "#DED8E1"
},
"dark": {
"primary": "#D0BCFF",
"onPrimary": "#381E72",
"primaryContainer": "#4F378B",
"onPrimaryContainer": "#EADDFF",
"primaryFixed": "#EADDFF",
"onPrimaryFixed": "#21005D",
"primaryFixedDim": "#D0BCFF",
"onPrimaryFixedVariant": "#4F378B",
"secondary": "#CCC2DC",
"onSecondary": "#332D41",
"secondaryContainer": "#4A4458",
"onSecondaryContainer": "#E8DEF8",
"secondaryFixed": "#E8DEF8",
"onSecondaryFixed": "#1D192B",
"secondaryFixedDim": "#CCC2DC",
"onSecondaryFixedVariant": "#4A4458",
"tertiary": "#EFB8C8",
"onTertiary": "#492532",
"tertiaryContainer": "#633B48",
"onTertiaryContainer": "#FFD8E4",
"tertiaryFixed": "#FFD8E4",
"onTertiaryFixed": "#31111D",
"tertiaryFixedDim": "#EFB8C8",
"onTertiaryFixedVariant": "#633B48",
"error": "#F2B8B5",
"onError": "#601410",
"errorContainer": "#8C1D18",
"onErrorContainer": "#F9DEDC",
"outline": "#938F99",
"background": "#141218",
"onBackground": "#E6E0E9",
"surface": "#141218",
"onSurface": "#E6E0E9",
"surfaceVariant": "#49454F",
"onSurfaceVariant": "#CAC4D0",
"inverseSurface": "#E6E0E9",
"inverseOnSurface": "#322F35",
"inversePrimary": "#6750A4",
"shadow": "#000000",
"surfaceTint": "#D0BCFF",
"outlineVariant": "#49454F",
"scrim": "#000000",
"surfaceContainerHighest": "#36343B",
"surfaceContainerHigh": "#2B2930",
"surfaceContainer": "#211F26",
"surfaceContainerLow": "#1D1B20",
"surfaceContainerLowest": "#0F0D13",
"surfaceBright": "#3B383E",
"surfaceDim": "#141218"
}
},
"palettes": {
"primary": {
"0": "#000000",
"10": "#21005D",
"20": "#381E72",
"30": "#4F378B",
"40": "#6750A4",
"50": "#7F67BE",
"60": "#9A82DB",
"70": "#B69DF8",
"80": "#D0BCFF",
"90": "#EADDFF",
"95": "#F6EDFF",
"99": "#FFFBFE",
"100": "#FFFFFF"
},
"secondary": {
"0": "#000000",
"10": "#1D192B",
"20": "#332D41",
"30": "#4A4458",
"40": "#625B71",
"50": "#7A7289",
"60": "#958DA5",
"70": "#B0A7C0",
"80": "#CCC2DC",
"90": "#E8DEF8",
"95": "#F6EDFF",
"99": "#FFFBFE",
"100": "#FFFFFF"
},
"tertiary": {
"0": "#000000",
"10": "#31111D",
"20": "#492532",
"30": "#633B48",
"40": "#7D5260",
"50": "#986977",
"60": "#B58392",
"70": "#D29DAC",
"80": "#EFB8C8",
"90": "#FFD8E4",
"95": "#FFECF1",
"99": "#FFFBFA",
"100": "#FFFFFF"
},
"error": {
"0": "#000000",
"10": "#410E0B",
"20": "#601410",
"30": "#8C1D18",
"40": "#B3261E",
"50": "#DC362E",
"60": "#E46962",
"70": "#EC928E",
"80": "#F2B8B5",
"90": "#F9DEDC",
"95": "#FCEEEE",
"99": "#FFFBF9",
"100": "#FFFFFF"
},
"neutral": {
"0": "#000000",
"4": "#0F0D13",
"6": "#141218",
"10": "#1D1B20",
"12": "#211F26",
"17": "#2B2930",
"20": "#322F35",
"22": "#36343B",
"24": "#3B383E",
"30": "#48464C",
"40": "#605D64",
"50": "#79767D",
"60": "#938F96",
"70": "#AEA9B1",
"80": "#CAC5CD",
"87": "#DED8E1",
"90": "#E6E0E9",
"92": "#ECE6F0",
"94": "#F3EDF7",
"95": "#F5EFF7",
"96": "#F7F2FA",
"98": "#FEF7FF",
"99": "#FFFBFF",
"100": "#FFFFFF"
},
"neutralVariant": {
"0": "#000000",
"10": "#1D1A22",
"20": "#322F37",
"30": "#49454F",
"40": "#605D66",
"50": "#79747E",
"60": "#938F99",
"70": "#AEA9B4",
"80": "#CAC4D0",
"90": "#E7E0EC",
"95": "#F5EEFA",
"99": "#FFFBFE",
"100": "#FFFFFF"
}
},
"styles": {
"display": {
"large": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Regular",
"fontWeight": 400,
"fontSize": 57,
"lineHeight": 64,
"letterSpacing": -0.25
},
"medium": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Regular",
"fontWeight": 400,
"fontSize": 45,
"lineHeight": 52,
"letterSpacing": 0
},
"small": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Regular",
"fontWeight": 400,
"fontSize": 36,
"lineHeight": 44,
"letterSpacing": 0
}
},
"headline": {
"large": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Regular",
"fontWeight": 400,
"fontSize": 32,
"lineHeight": 40,
"letterSpacing": 0
},
"medium": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Regular",
"fontWeight": 400,
"fontSize": 28,
"lineHeight": 36,
"letterSpacing": 0
},
"small": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Regular",
"fontWeight": 400,
"fontSize": 24,
"lineHeight": 32,
"letterSpacing": 0
}
},
"body": {
"large": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Regular",
"fontWeight": 400,
"fontSize": 16,
"lineHeight": 24,
"letterSpacing": 0.5
},
"medium": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Regular",
"fontWeight": 400,
"fontSize": 14,
"lineHeight": 20,
"letterSpacing": 0.25
},
"small": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Regular",
"fontWeight": 400,
"fontSize": 12,
"lineHeight": 16,
"letterSpacing": 0.4000000059604645
}
},
"label": {
"large": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Medium",
"fontWeight": 500,
"fontSize": 14,
"lineHeight": 20,
"letterSpacing": 0.10000000149011612
},
"medium": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Medium",
"fontWeight": 500,
"fontSize": 12,
"lineHeight": 16,
"letterSpacing": 0.5
},
"small": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Medium",
"fontWeight": 500,
"fontSize": 11,
"lineHeight": 16,
"letterSpacing": 0.5
}
},
"title": {
"large": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Regular",
"fontWeight": 400,
"fontSize": 22,
"lineHeight": 28,
"letterSpacing": 0
},
"medium": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Medium",
"fontWeight": 500,
"fontSize": 16,
"lineHeight": 24,
"letterSpacing": 0.15000000596046448
},
"small": {
"fontFamilyName": "Roboto",
"fontFamilyStyle": "Medium",
"fontWeight": 500,
"fontSize": 14,
"lineHeight": 20,
"letterSpacing": 0.10000000149011612
}
}
},
"customColors": []
}
有没有办法将代码添加到此或更改为黑白。谢谢