slint/internal/compiler/widgets/material/styling.slint
2025-02-25 07:25:31 +00:00

90 lines
4.7 KiB
Text

// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
import { ColorSchemeSelector } from "color-scheme.slint";
// typo settings
struct TextStyle {
font-size: relative-font-size,
font-weight: int}
export global MaterialFontSettings {
out property <TextStyle> label-large: { font-size: 14 * 0.0625rem, font-weight: 500 };
out property <TextStyle> label-medium: { font-size: 12 * 0.0625rem, font-weight: 500 };
out property <TextStyle> body-large: { font-size: 16 * 0.0625rem, font-weight: 400 };
out property <TextStyle> body-small: { font-size: 12 * 0.0625rem, font-weight: 400 };
out property <TextStyle> title-small: { font-size: 14 * 0.0625rem, font-weight: 500 };
out property <TextStyle> headline-large: {
font-size: 32 * 0.0625rem,
font-weight: 500
};
}
export global Elevation {
out property <length> level0: 0px;
out property <length> level1: 1px;
out property <length> level2: 2px;
}
export global MaterialPalette {
// base palette
out property <brush> background: !root.dark-color-scheme ? #f8f3f9 : #2a282d;
out property <brush> foreground: !root.dark-color-scheme ? #1C1B1F : #E6E1E5;
out property <brush> alternate-background: !root.dark-color-scheme ? #FFFBFE : #1C1B1F;
out property <brush> alternate-foreground: !root.dark-color-scheme ? #1C1B1F : #E6E1E5;
out property <brush> control-background: !root.dark-color-scheme ? #E8DEF8 : #4A4458;
out property <brush> control-foreground: !root.dark-color-scheme ? #1E192B : #E8DEF8;
out property <brush> accent-background: !root.dark-color-scheme ? #6750A4 : #D0BCFF;
out property <brush> accent-foreground: !root.dark-color-scheme ? #FFFFFF : #371E73;
out property <brush> selection-background: !root.dark-color-scheme ? #6750A44D : #D0BCFF4D;
out property <brush> selection-foreground: !root.dark-color-scheme ? #1C1B1F : #E6E1E5;
out property <brush> border: !root.dark-color-scheme ? #79747E : #938F99;
// additional palette
out property <brush> control-background-variant: !root.dark-color-scheme ? #E7E0EC.darker(0.2) : #49454F;
out property <brush> control-foreground-variant: !root.dark-color-scheme ? #49454E : #CAC4D0;
out property <brush> control-background-tint: !root.dark-color-scheme ? #6750A4 : #D0BCFF;
out property <brush> accent-container: !root.dark-color-scheme ? #4F378B : #4F378B;
out property <brush> accent-ripple: !root.dark-color-scheme ? #D0BCFF : #6750A4;
out property <brush> shadow: #000000.with_alpha(0.3);
out property <brush> border-variant: !root.dark-color-scheme ? #C4C7C5 : #444746;
out property <brush> foreground-alt: !root.dark-color-scheme ? #1C1B1F : #E6E1E5;
out property <brush> secondary-ripple: !root.dark-color-scheme ? #fffc : #000000;
out property <brush> surface-container: !root.dark-color-scheme ? #F3EDF7 : #211F26;
out property <brush> surface-container-high: !root.dark-color-scheme ? #ECE6F0 : #2B2930;
out property <brush> surface-container-highest: !root.dark-color-scheme ? #E6E0E9 : #36343B;
out property <brush> tertiary-container: !root.dark-color-scheme ? #FFD8E4 : #633B48;
out property <brush> on-tertiary-container: !root.dark-color-scheme ? #31111D : #FFD8E4;
out property <brush> state-default: dark-color-scheme ? #E6E0E9 : #1D1B20;
out property <brush> state-secondary: dark-color-scheme ? #D0BCFF : #6750A4;
out property <brush> state-tertiary: dark-color-scheme ? #381E72 : #FFFFFF;
in-out property <ColorScheme> color-scheme: ColorSchemeSelector.color-scheme;
property <bool> dark-color-scheme: {
if (color-scheme == ColorScheme.unknown) {
return SlintInternal.color-scheme == ColorScheme.dark;
}
return color-scheme == ColorScheme.dark;
}
}
export global Icons {
out property <image> arrow-downward: @image-url("_arrow-downward.svg");
out property <image> arrow-drop-down: @image-url("_arrow-drop-down.svg");
out property <image> arrow-drop-up: @image-url("_arrow-drop-up.svg");
out property <image> arrow-upward: @image-url("_arrow-upward.svg");
out property <image> check-mark: @image-url("_check-mark.svg");
out property <image> expand-more: @image-url("_expand-more.svg");
out property <image> keyboard: @image-url("_keyboard.svg");
out property <image> clock: @image-url("_clock.svg");
out property <image> arrow-back: @image-url("_arrow_back.svg");
out property <image> arrow-forward: @image-url("_arrow_forward.svg");
out property <image> edit: @image-url("_edit.svg");
out property <image> calendar: @image-url("_calendar.svg");
}
export global MaterialSizeSettings {
out property <length> item-height: 48px;
}