Created
January 19, 2024 16:48
-
-
Save fredgrott/b6976af34d363ed9792c9b8cd1bf2eb9 to your computer and use it in GitHub Desktop.
surface color role extension
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Copyright 2024 Fredrick Allan Grott. All rights reserved. | |
// Use of this source code is governed by a BSD-style | |
// license that can be found in the LICENSE file. | |
import 'package:flutter/material.dart'; | |
import 'package:material_color_utilities/material_color_utilities.dart'; | |
/// Material Design 3 breaking change is that surfaces | |
/// get color tones thus depreciating the need for elevation | |
/// overlays. | |
/// Those being depreciated are: | |
/// surface tint colors | |
/// elevation overlays | |
/// opacity overlays | |
/// backgroundColor | |
/// onBackgroundColor | |
/// surfaceVariant | |
/// Per issue 115912, see | |
/// https://github.com/flutter/flutter/issues/115912 | |
/// | |
/// This is meant to be used with my PaneContainer. | |
/// | |
/// | |
/// | |
/// @author Fredrick Allan Grott | |
extension SurfaceColorRolesExtension on Color { | |
getSurface(Color seed, bool darkMode){ | |
CorePalette p = CorePalette.of(seed.value); | |
return Color(p.neutral.get(darkMode ? 6 :98)); | |
} | |
getSurfaceDim(Color seed, bool darkMode) { | |
CorePalette p = CorePalette.of(seed.value); | |
return Color(p.neutral.get(darkMode ? 6: 87)); | |
} | |
getSurfaceBright(Color seed, bool darkMode) { | |
CorePalette p = CorePalette.of(seed.value); | |
return Color(p.neutral.get(darkMode ? 24: 98)); | |
} | |
getSurfaceContainerLowest(Color seed, bool darkMode) { | |
CorePalette p = CorePalette.of(seed.value); | |
return Color(p.neutral.get(darkMode ? 4: 100)); | |
} | |
getSurfaceContainerLow(Color seed, bool darkMode) { | |
CorePalette p = CorePalette.of(seed.value); | |
return Color(p.neutral.get(darkMode ? 10: 96)); | |
} | |
getSurfaceContainer(Color seed, bool darkMode) { | |
CorePalette p = CorePalette.of(seed.value); | |
return Color(p.neutral.get(darkMode ? 12: 94)); | |
} | |
getSurfaceContainerHigh(Color seed, bool darkMode) { | |
CorePalette p = CorePalette.of(seed.value); | |
return Color(p.neutral.get(darkMode ? 17: 92)); | |
} | |
getSurfaceContainerHighest(Color seed, bool darkMode) { | |
CorePalette p = CorePalette.of(seed.value); | |
return Color(p.neutral.get(darkMode ? 22 : 90)); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment