mtrl 0.0.3 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/package.json +1 -1
  2. package/src/components/button/styles.scss +198 -161
  3. package/src/components/checkbox/checkbox.js +3 -2
  4. package/src/components/checkbox/styles.scss +105 -55
  5. package/src/components/container/styles.scss +65 -58
  6. package/src/components/list/constants.js +0 -5
  7. package/src/components/list/list-item.js +12 -4
  8. package/src/components/list/list.js +11 -19
  9. package/src/components/list/styles.scss +240 -11
  10. package/src/components/menu/styles.scss +37 -30
  11. package/src/components/navigation/styles.scss +406 -6
  12. package/src/components/snackbar/styles.scss +46 -17
  13. package/src/components/switch/styles.scss +93 -46
  14. package/src/components/textfield/styles.scss +351 -5
  15. package/src/core/build/_ripple.scss +79 -0
  16. package/src/core/dom/create.js +0 -1
  17. package/src/core/layout/index.js +3 -1
  18. package/src/styles/abstract/_mixins.scss +9 -7
  19. package/src/styles/abstract/_theme.scss +157 -0
  20. package/src/styles/abstract/_variables.scss +72 -6
  21. package/src/styles/base/_reset.scss +86 -0
  22. package/src/styles/base/_typography.scss +155 -0
  23. package/src/styles/main.scss +104 -57
  24. package/src/styles/themes/_autumn.scss +81 -0
  25. package/src/styles/themes/_base-theme.scss +2 -27
  26. package/src/styles/themes/_baseline.scss +64 -39
  27. package/src/styles/themes/_forest.scss +46 -46
  28. package/src/styles/themes/_spring.scss +71 -0
  29. package/src/styles/themes/_summer.scss +82 -0
  30. package/src/styles/themes/_winter.scss +71 -0
  31. package/src/styles/utilities/_color.scss +154 -0
  32. package/src/styles/utilities/_flexbox.scss +194 -0
  33. package/src/styles/utilities/_spacing.scss +139 -0
  34. package/src/styles/utilities/_typography.scss +178 -0
  35. package/src/styles/utilities/_visibility.scss +142 -0
  36. package/src/components/list/styles/_list-item.scss +0 -142
  37. package/src/components/list/styles/_list.scss +0 -89
  38. package/src/components/list/styles/_variables.scss +0 -13
  39. package/src/components/navigation/styles/_bar.scss +0 -51
  40. package/src/components/navigation/styles/_base.scss +0 -129
  41. package/src/components/navigation/styles/_drawer.scss +0 -169
  42. package/src/components/navigation/styles/_rail.scss +0 -65
  43. package/src/components/textfield/styles/base.scss +0 -107
  44. package/src/components/textfield/styles/filled.scss +0 -58
  45. package/src/components/textfield/styles/outlined.scss +0 -66
@@ -1,78 +1,125 @@
1
1
  // src/styles/main.scss
2
2
 
3
- // Abstract
4
- @import 'abstract/variables';
5
- @import 'abstract/functions';
6
- @import 'abstract/mixins';
7
- @import 'abstract/theme';
3
+ // Abstract layer
4
+ @use 'abstract/base';
5
+ @use 'abstract/variables';
6
+ @use 'abstract/functions';
7
+ @use 'abstract/mixins';
8
+ @use 'abstract/theme';
9
+
10
+ // Themes
11
+ @use 'themes/index';
12
+
13
+ // Reset
14
+ @use 'base/reset';
15
+ @use 'base/typography';
8
16
 
9
17
  // Components
10
- @import '../components/button/styles';
18
+ @use '../components/button/styles';
19
+ @use '../components/checkbox/styles';
20
+ @use '../components/container/styles';
21
+ @use '../components/list/styles';
22
+ @use '../components/menu/styles';
23
+ @use '../components/navigation/styles';
24
+ @use '../components/snackbar/styles';
25
+ @use '../components/switch/styles';
26
+ @use '../components/textfield/styles';
27
+
28
+
29
+ @use '../core/build/ripple/ripple';
11
30
 
12
- // Initialize theme
31
+ // Utilities
32
+ @use 'utilities/spacing';
33
+ @use 'utilities/visibility';
34
+ @use 'utilities/colors';
35
+ @use 'utilities/flexbox';
36
+ @use 'utilities/typography';
37
+
38
+ // Initialize theme system
13
39
  :root {
14
- @each $key, $value in $mtrl-sys-state {
15
- --mtrl-sys-state-#{$key}: #{$value};
40
+ // Apply the base theme CSS variables
41
+ @include theme.light-theme;
42
+
43
+ // State layer variables
44
+ @each $key, $value in theme.$mtrl-sys-state {
45
+ --#{base.$prefix}-sys-state-#{$key}: #{$value};
16
46
  }
17
47
 
18
- @each $key, $value in $mtrl-sys-motion {
19
- --mtrl-sys-motion-#{$key}: #{$value};
48
+ // Motion variables
49
+ @each $key, $value in theme.$mtrl-sys-motion {
50
+ --#{base.$prefix}-sys-motion-#{$key}: #{$value};
20
51
  }
21
52
 
22
- @each $key, $value in $mtrl-sys-shape {
23
- --mtrl-sys-shape-#{$key}: #{$value};
53
+ // Shape variables
54
+ @each $key, $value in theme.$mtrl-sys-shape {
55
+ --#{base.$prefix}-sys-shape-#{$key}: #{$value};
24
56
  }
25
57
 
26
- // // Default light theme colors
27
- // --mtrl-sys-color-primary: #6750A4;
28
- // --mtrl-sys-color-primary-rgb: 103, 80, 164;
29
- // --mtrl-sys-color-on-primary: #FFFFFF;
30
- // --mtrl-sys-color-primary-container: #EADDFF;
31
- // --mtrl-sys-color-on-primary-container: #21005D;
32
-
33
- // --mtrl-sys-color-secondary: #625B71;
34
- // --mtrl-sys-color-on-secondary: #FFFFFF;
35
- // --mtrl-sys-color-secondary-container: #E8DEF8;
36
- // --mtrl-sys-color-on-secondary-container: #1D192B;
37
-
38
- // --mtrl-sys-color-surface: #FFFBFE;
39
- // --mtrl-sys-color-on-surface: #1C1B1F;
40
- // --mtrl-sys-color-surface-container: #F3EDF7;
41
- // --mtrl-sys-color-on-surface-rgb: 28, 27, 31;
42
-
43
- // --mtrl-sys-color-outline: #79747E;
44
- // }
45
-
46
- // // Dark theme
47
- // [data-theme="dark"] {
48
- // --mtrl-sys-color-primary: #D0BCFF;
49
- // --mtrl-sys-color-primary-rgb: 208, 188, 255;
50
- // --mtrl-sys-color-on-primary: #381E72;
51
- // --mtrl-sys-color-primary-container: #4F378B;
52
- // --mtrl-sys-color-on-primary-container: #EADDFF;
53
-
54
- // --mtrl-sys-color-secondary: #CCC2DC;
55
- // --mtrl-sys-color-on-secondary: #332D41;
56
- // --mtrl-sys-color-secondary-container: #4A4458;
57
- // --mtrl-sys-color-on-secondary-container: #E8DEF8;
58
-
59
- // --mtrl-sys-color-surface: #1C1B1F;
60
- // --mtrl-sys-color-on-surface: #E6E1E5;
61
- // --mtrl-sys-color-surface-container: #211F26;
62
- // --mtrl-sys-color-on-surface-rgb: 230, 225, 229;
63
-
64
- // --mtrl-sys-color-outline: #938F99;
65
- // }
58
+ // Typography
59
+ @each $scale, $properties in variables.$typescale {
60
+ --#{base.$prefix}-sys-typescale-#{$scale}-font-family-name: #{nth(map-get($properties, font-family), 1)};
61
+ --#{base.$prefix}-sys-typescale-#{$scale}-font-family-fallback: #{if(length(map-get($properties, font-family)) > 1, nth(map-get($properties, font-family), 2), 'sans-serif')};
62
+ --#{base.$prefix}-sys-typescale-#{$scale}-font-size: #{map-get($properties, font-size)};
63
+ --#{base.$prefix}-sys-typescale-#{$scale}-line-height: #{map-get($properties, line-height)};
64
+ --#{base.$prefix}-sys-typescale-#{$scale}-letter-spacing: #{map-get($properties, letter-spacing)};
65
+ --#{base.$prefix}-sys-typescale-#{$scale}-font-weight: #{map-get($properties, font-weight)};
66
+ }
67
+ }
68
+
69
+ // Dark mode support
70
+ @media (prefers-color-scheme: dark) {
71
+ :root:not([data-theme]) {
72
+ @include theme.dark-theme;
73
+ }
74
+ }
66
75
 
67
76
  // Base styles
68
77
  body {
69
78
  margin: 0;
70
79
  padding: 0;
71
- background-color: var(--mtrl-sys-color-surface);
72
- color: var(--mtrl-sys-color-on-surface);
73
- font-family: var(--mtrl-sys-typescale-body-medium-font-family-name, 'Roboto'), sans-serif;
80
+ background-color: var(--#{base.$prefix}-sys-color-surface);
81
+ color: var(--#{base.$prefix}-sys-color-on-surface);
82
+ font-family: var(--#{base.$prefix}-sys-typescale-body-medium-font-family-name, 'Roboto'),
83
+ var(--#{base.$prefix}-sys-typescale-body-medium-font-family-fallback, sans-serif);
84
+ font-size: var(--#{base.$prefix}-sys-typescale-body-medium-font-size);
85
+ line-height: var(--#{base.$prefix}-sys-typescale-body-medium-line-height);
74
86
  -webkit-font-smoothing: antialiased;
75
87
  -moz-osx-font-smoothing: grayscale;
76
88
 
77
- @include motion-transition(background-color, color);
89
+ @include mixins.motion-transition(background-color, color);
90
+ }
91
+
92
+ // Ensure links have the correct contrast
93
+ a {
94
+ color: var(--#{base.$prefix}-sys-color-primary);
95
+ text-decoration: none;
96
+
97
+ &:hover {
98
+ text-decoration: underline;
99
+ }
100
+
101
+ &:focus-visible {
102
+ outline: 2px solid var(--#{base.$prefix}-sys-color-primary);
103
+ outline-offset: 2px;
104
+ }
105
+ }
106
+
107
+ // Focus styles for keyboard navigation
108
+ :focus-visible {
109
+ outline: 2px solid var(--#{base.$prefix}-sys-color-primary);
110
+ outline-offset: 2px;
111
+ }
112
+
113
+ // Use smooth scrolling for the page
114
+ html {
115
+ scroll-behavior: smooth;
116
+
117
+ @include mixins.reduced-motion {
118
+ scroll-behavior: auto;
119
+ }
120
+ }
121
+
122
+ // Set box-sizing for all elements
123
+ *, *::before, *::after {
124
+ box-sizing: border-box;
78
125
  }
@@ -0,0 +1,81 @@
1
+ // src/styles/themes/_autumn.scss
2
+ @use '../abstract/base' as *;
3
+ @use 'base-theme' as *;
4
+
5
+ @include create-theme('autumn') {
6
+ // Key colors with brown as primary and red as secondary
7
+ --#{$prefix}-sys-color-primary: #795548; // Rich brown as primary color
8
+ --#{$prefix}-sys-color-on-primary: #FFFFFF;
9
+ --#{$prefix}-sys-color-primary-container: #FFDCC7;
10
+ --#{$prefix}-sys-color-on-primary-container: #2C1500;
11
+
12
+ --#{$prefix}-sys-color-secondary: #A02A2A; // Autumn red as secondary
13
+ --#{$prefix}-sys-color-on-secondary: #FFFFFF;
14
+ --#{$prefix}-sys-color-secondary-container: #FFDAD4;
15
+ --#{$prefix}-sys-color-on-secondary-container: #410001;
16
+
17
+ --#{$prefix}-sys-color-tertiary: #4D6642; // Dark green like evergreen trees
18
+ --#{$prefix}-sys-color-on-tertiary: #FFFFFF;
19
+ --#{$prefix}-sys-color-tertiary-container: #CFE9BE;
20
+ --#{$prefix}-sys-color-on-tertiary-container: #0A2008;
21
+
22
+ --#{$prefix}-sys-color-quaternary: #8B6500; // Golden yellow like autumn leaves
23
+ --#{$prefix}-sys-color-on-quaternary: #FFFFFF;
24
+ --#{$prefix}-sys-color-quaternary-container: #FFDF8A;
25
+ --#{$prefix}-sys-color-on-quaternary-container: #2C1F00;
26
+
27
+ // Neutral colors with warm, earthy undertones
28
+ --#{$prefix}-sys-color-surface: #FFFBF7;
29
+ --#{$prefix}-sys-color-surface-dim: #EAD7CE;
30
+ --#{$prefix}-sys-color-surface-bright: #FFFBF7;
31
+ --#{$prefix}-sys-color-surface-container-lowest: #FFFFFF;
32
+ --#{$prefix}-sys-color-surface-container-low: #FFF0EA;
33
+ --#{$prefix}-sys-color-surface-container: #F5E1D7;
34
+ --#{$prefix}-sys-color-surface-container-high: #EFDBD1;
35
+ --#{$prefix}-sys-color-surface-container-highest: #E9D5CB;
36
+
37
+ --#{$prefix}-sys-color-on-surface: #201A17;
38
+ --#{$prefix}-sys-color-on-surface-variant: #53433C;
39
+
40
+ --#{$prefix}-sys-color-outline: #85736C;
41
+ --#{$prefix}-sys-color-outline-variant: #D7C1BA;
42
+
43
+ &[data-theme-mode="dark"] {
44
+ // Key colors
45
+ --#{$prefix}-sys-color-primary: #DDB995; // Softer brown
46
+ --#{$prefix}-sys-color-on-primary: #422B09;
47
+ --#{$prefix}-sys-color-primary-container: #5D3F1C;
48
+ --#{$prefix}-sys-color-on-primary-container: #FFDCC7;
49
+
50
+ --#{$prefix}-sys-color-secondary: #FFB4AB; // Vibrant red
51
+ --#{$prefix}-sys-color-on-secondary: #690004;
52
+ --#{$prefix}-sys-color-secondary-container: #93000A;
53
+ --#{$prefix}-sys-color-on-secondary-container: #FFDAD4;
54
+
55
+ --#{$prefix}-sys-color-tertiary: #B4CCA4; // Muted green
56
+ --#{$prefix}-sys-color-on-tertiary: #213515;
57
+ --#{$prefix}-sys-color-tertiary-container: #384F2B;
58
+ --#{$prefix}-sys-color-on-tertiary-container: #CFE9BE;
59
+
60
+ --#{$prefix}-sys-color-quaternary: #FFC147;
61
+ --#{$prefix}-sys-color-on-quaternary: #463300;
62
+ --#{$prefix}-sys-color-quaternary-container: #644900;
63
+ --#{$prefix}-sys-color-on-quaternary-container: #FFDF8A;
64
+
65
+ // Neutral colors
66
+ --#{$prefix}-sys-color-surface: #201A17;
67
+ --#{$prefix}-sys-color-surface-dim: #17120F;
68
+ --#{$prefix}-sys-color-surface-bright: #3D3631;
69
+ --#{$prefix}-sys-color-surface-container-lowest: #130E0B;
70
+ --#{$prefix}-sys-color-surface-container-low: #201A17;
71
+ --#{$prefix}-sys-color-surface-container: #241E1A;
72
+ --#{$prefix}-sys-color-surface-container-high: #2E2723;
73
+ --#{$prefix}-sys-color-surface-container-highest: #39322D;
74
+
75
+ --#{$prefix}-sys-color-on-surface: #EDE0D9;
76
+ --#{$prefix}-sys-color-on-surface-variant: #D7C1BA;
77
+
78
+ --#{$prefix}-sys-color-outline: #A08C85;
79
+ --#{$prefix}-sys-color-outline-variant: #53433C;
80
+ }
81
+ }
@@ -1,7 +1,6 @@
1
- // src/styles/themes/_default.scss
1
+ // src/styles/themes/_base-theme.scss
2
2
  @use '../abstract/base' as *;
3
3
 
4
-
5
4
  // Base theme definition with common properties and structure
6
5
  @mixin create-theme($name) {
7
6
  [data-theme="#{$name}"] {
@@ -22,28 +21,4 @@
22
21
  --#{$prefix}-sys-shape-corner-medium: 12px;
23
22
  --#{$prefix}-sys-shape-corner-large: 16px;
24
23
  --#{$prefix}-sys-shape-corner-extra-large: 28px;
25
- }
26
-
27
- :root {
28
- // Color scheme
29
- --#{$prefix}-sys-color-primary: #6750A4;
30
- --#{$prefix}-sys-color-primary-rgb: 103, 80, 164;
31
- --#{$prefix}-sys-color-on-primary: #FFFFFF;
32
- --#{$prefix}-sys-color-primary-container: #EADDFF;
33
- --#{$prefix}-sys-color-on-primary-container: #21005D;
34
-
35
- --#{$prefix}-sys-color-secondary: #625B71;
36
- --#{$prefix}-sys-color-on-secondary: #FFFFFF;
37
- --#{$prefix}-sys-color-secondary-container: #E8DEF8;
38
- --#{$prefix}-sys-color-on-secondary-container: #1D192B;
39
-
40
- --#{$prefix}-sys-color-surface: #FFFBFE;
41
- --#{$prefix}-sys-color-on-surface: #1C1B1F;
42
- --#{$prefix}-sys-color-on-surface-rgb: 28, 27, 31;
43
-
44
- --#{$prefix}-sys-color-outline: #79747E;
45
- }
46
-
47
- // [data-theme="dark"] {
48
- // @include dark-theme;
49
- // }
24
+ }
@@ -2,8 +2,8 @@
2
2
  @use '../abstract/base' as *;
3
3
  @use 'base-theme' as *;
4
4
 
5
- // Material Design 3 Baseline Theme
6
- @include create-theme('baseline') {
5
+ // Variables for light theme (default)
6
+ @mixin baseline-light-variables {
7
7
  // Key colors
8
8
  --#{$prefix}-sys-color-primary: #6750A4;
9
9
  --#{$prefix}-sys-color-on-primary: #FFFFFF;
@@ -47,44 +47,69 @@
47
47
  --#{$prefix}-sys-state-focus-state-layer-opacity: 0.12;
48
48
  --#{$prefix}-sys-state-pressed-state-layer-opacity: 0.12;
49
49
  --#{$prefix}-sys-state-dragged-state-layer-opacity: 0.16;
50
+ }
50
51
 
51
- &[data-theme-mode="dark"] {
52
- // Key colors
53
- --#{$prefix}-sys-color-primary: #D0BCFF;
54
- --#{$prefix}-sys-color-on-primary: #381E72;
55
- --#{$prefix}-sys-color-primary-container: #4F378B;
56
- --#{$prefix}-sys-color-on-primary-container: #EADDFF;
57
-
58
- --#{$prefix}-sys-color-secondary: #CCC2DC;
59
- --#{$prefix}-sys-color-on-secondary: #332D41;
60
- --#{$prefix}-sys-color-secondary-container: #4A4458;
61
- --#{$prefix}-sys-color-on-secondary-container: #E8DEF8;
62
-
63
- --#{$prefix}-sys-color-tertiary: #EFB8C8;
64
- --#{$prefix}-sys-color-on-tertiary: #492532;
65
- --#{$prefix}-sys-color-tertiary-container: #633B48;
66
- --#{$prefix}-sys-color-on-tertiary-container: #FFD8E4;
52
+ // Variables for dark theme
53
+ @mixin baseline-dark-variables {
54
+ // Key colors
55
+ --#{$prefix}-sys-color-primary: #D0BCFF;
56
+ --#{$prefix}-sys-color-on-primary: #381E72;
57
+ --#{$prefix}-sys-color-primary-container: #4F378B;
58
+ --#{$prefix}-sys-color-on-primary-container: #EADDFF;
59
+
60
+ --#{$prefix}-sys-color-secondary: #CCC2DC;
61
+ --#{$prefix}-sys-color-on-secondary: #332D41;
62
+ --#{$prefix}-sys-color-secondary-container: #4A4458;
63
+ --#{$prefix}-sys-color-on-secondary-container: #E8DEF8;
64
+
65
+ --#{$prefix}-sys-color-tertiary: #EFB8C8;
66
+ --#{$prefix}-sys-color-on-tertiary: #492532;
67
+ --#{$prefix}-sys-color-tertiary-container: #633B48;
68
+ --#{$prefix}-sys-color-on-tertiary-container: #FFD8E4;
67
69
 
68
- // Neutral colors
69
- --#{$prefix}-sys-color-surface: #1C1B1F;
70
- --#{$prefix}-sys-color-surface-dim: #141218;
71
- --#{$prefix}-sys-color-surface-bright: #3B383D;
72
- --#{$prefix}-sys-color-surface-container-lowest: #0F0D13;
73
- --#{$prefix}-sys-color-surface-container-low: #1D1B20;
74
- --#{$prefix}-sys-color-surface-container: #211F26;
75
- --#{$prefix}-sys-color-surface-container-high: #2B2930;
76
- --#{$prefix}-sys-color-surface-container-highest: #36343B;
77
-
78
- --#{$prefix}-sys-color-on-surface: #E6E1E5;
79
- --#{$prefix}-sys-color-on-surface-variant: #CAC4D0;
80
-
81
- // Additional colors
82
- --#{$prefix}-sys-color-outline: #938F99;
83
- --#{$prefix}-sys-color-outline-variant: #444746;
84
- --#{$prefix}-sys-color-shadow: #000000;
85
- --#{$prefix}-sys-color-scrim: #000000;
86
- --#{$prefix}-sys-color-inverse-surface: #E6E1E5;
87
- --#{$prefix}-sys-color-inverse-on-surface: #313033;
88
- --#{$prefix}-sys-color-inverse-primary: #6750A4;
70
+ // Neutral colors
71
+ --#{$prefix}-sys-color-surface: #1C1B1F;
72
+ --#{$prefix}-sys-color-surface-dim: #141218;
73
+ --#{$prefix}-sys-color-surface-bright: #3B383D;
74
+ --#{$prefix}-sys-color-surface-container-lowest: #0F0D13;
75
+ --#{$prefix}-sys-color-surface-container-low: #1D1B20;
76
+ --#{$prefix}-sys-color-surface-container: #211F26;
77
+ --#{$prefix}-sys-color-surface-container-high: #2B2930;
78
+ --#{$prefix}-sys-color-surface-container-highest: #36343B;
79
+
80
+ --#{$prefix}-sys-color-on-surface: #E6E1E5;
81
+ --#{$prefix}-sys-color-on-surface-variant: #CAC4D0;
82
+
83
+ // Additional colors
84
+ --#{$prefix}-sys-color-outline: #938F99;
85
+ --#{$prefix}-sys-color-outline-variant: #444746;
86
+ --#{$prefix}-sys-color-shadow: #000000;
87
+ --#{$prefix}-sys-color-scrim: #000000;
88
+ --#{$prefix}-sys-color-inverse-surface: #E6E1E5;
89
+ --#{$prefix}-sys-color-inverse-on-surface: #313033;
90
+ --#{$prefix}-sys-color-inverse-primary: #6750A4;
91
+ }
92
+
93
+ // Apply baseline light theme to :root by default
94
+ :root {
95
+ @include baseline-light-variables;
96
+
97
+ // Apply dark theme based on system preference
98
+ @media (prefers-color-scheme: dark) {
99
+ @include baseline-dark-variables;
100
+ }
101
+ }
102
+
103
+ // Dark theme class for manual switching
104
+ .dark-theme {
105
+ @include baseline-dark-variables;
106
+ }
107
+
108
+ // Make it available as a selectable theme
109
+ @include create-theme('baseline') {
110
+ @include baseline-light-variables;
111
+
112
+ &[data-theme-mode="dark"] {
113
+ @include baseline-dark-variables;
89
114
  }
90
115
  }
@@ -3,69 +3,69 @@
3
3
  @use 'base-theme' as *;
4
4
 
5
5
  @include create-theme('forest') {
6
- // Key colors generated from seed color #2E7D32
7
- --#{$prefix}-sys-color-primary: #146C2E;
6
+ // Key colors generated from seed color #4B5D3A (earthy forest green-brown)
7
+ --#{$prefix}-sys-color-primary: #3F4F2F;
8
8
  --#{$prefix}-sys-color-on-primary: #FFFFFF;
9
- --#{$prefix}-sys-color-primary-container: #9FF6A5;
10
- --#{$prefix}-sys-color-on-primary-container: #002107;
9
+ --#{$prefix}-sys-color-primary-container: #C1D1A8;
10
+ --#{$prefix}-sys-color-on-primary-container: #121D04;
11
11
 
12
- --#{$prefix}-sys-color-secondary: #516351;
12
+ --#{$prefix}-sys-color-secondary: #5D5242;
13
13
  --#{$prefix}-sys-color-on-secondary: #FFFFFF;
14
- --#{$prefix}-sys-color-secondary-container: #D4E8D2;
15
- --#{$prefix}-sys-color-on-secondary-container: #0F1F0F;
14
+ --#{$prefix}-sys-color-secondary-container: #E1D6C4;
15
+ --#{$prefix}-sys-color-on-secondary-container: #201A10;
16
16
 
17
- --#{$prefix}-sys-color-tertiary: #38656A;
17
+ --#{$prefix}-sys-color-tertiary: #486446;
18
18
  --#{$prefix}-sys-color-on-tertiary: #FFFFFF;
19
- --#{$prefix}-sys-color-tertiary-container: #BCEBF0;
20
- --#{$prefix}-sys-color-on-tertiary-container: #002023;
19
+ --#{$prefix}-sys-color-tertiary-container: #CAE7C3;
20
+ --#{$prefix}-sys-color-on-tertiary-container: #0A2010;
21
21
 
22
- // Neutral colors
23
- --#{$prefix}-sys-color-surface: #FBFDF7;
24
- --#{$prefix}-sys-color-surface-dim: #DBE5D8;
25
- --#{$prefix}-sys-color-surface-bright: #FBFDF7;
22
+ // Neutral colors with earthy undertones
23
+ --#{$prefix}-sys-color-surface: #FAF9F2;
24
+ --#{$prefix}-sys-color-surface-dim: #E0DFD5;
25
+ --#{$prefix}-sys-color-surface-bright: #FAF9F2;
26
26
  --#{$prefix}-sys-color-surface-container-lowest: #FFFFFF;
27
- --#{$prefix}-sys-color-surface-container-low: #F5F9F2;
28
- --#{$prefix}-sys-color-surface-container: #EFF4EC;
29
- --#{$prefix}-sys-color-surface-container-high: #E9EEE6;
30
- --#{$prefix}-sys-color-surface-container-highest: #E3E8E0;
27
+ --#{$prefix}-sys-color-surface-container-low: #F4F3EC;
28
+ --#{$prefix}-sys-color-surface-container: #EEEDDE;
29
+ --#{$prefix}-sys-color-surface-container-high: #E8E7D8;
30
+ --#{$prefix}-sys-color-surface-container-highest: #E2E1D2;
31
31
 
32
- --#{$prefix}-sys-color-on-surface: #191C19;
33
- --#{$prefix}-sys-color-on-surface-variant: #414942;
32
+ --#{$prefix}-sys-color-on-surface: #1B1C17;
33
+ --#{$prefix}-sys-color-on-surface-variant: #464840;
34
34
 
35
- --#{$prefix}-sys-color-outline: #717971;
36
- --#{$prefix}-sys-color-outline-variant: #C1C9C1;
35
+ --#{$prefix}-sys-color-outline: #767B6F;
36
+ --#{$prefix}-sys-color-outline-variant: #C9CCB7;
37
37
 
38
38
  &[data-theme-mode="dark"] {
39
39
  // Key colors
40
- --#{$prefix}-sys-color-primary: #83D989;
41
- --#{$prefix}-sys-color-on-primary: #003911;
42
- --#{$prefix}-sys-color-primary-container: #00531B;
43
- --#{$prefix}-sys-color-on-primary-container: #9FF6A5;
40
+ --#{$prefix}-sys-color-primary: #A5B58D;
41
+ --#{$prefix}-sys-color-on-primary: #213516;
42
+ --#{$prefix}-sys-color-primary-container: #324B23;
43
+ --#{$prefix}-sys-color-on-primary-container: #C1D1A8;
44
44
 
45
- --#{$prefix}-sys-color-secondary: #B8CCB7;
46
- --#{$prefix}-sys-color-on-secondary: #243424;
47
- --#{$prefix}-sys-color-secondary-container: #3A4B3A;
48
- --#{$prefix}-sys-color-on-secondary-container: #D4E8D2;
45
+ --#{$prefix}-sys-color-secondary: #C5BAAB;
46
+ --#{$prefix}-sys-color-on-secondary: #362F21;
47
+ --#{$prefix}-sys-color-secondary-container: #4A4231;
48
+ --#{$prefix}-sys-color-on-secondary-container: #E1D6C4;
49
49
 
50
- --#{$prefix}-sys-color-tertiary: #A0CFD4;
51
- --#{$prefix}-sys-color-on-tertiary: #003739;
52
- --#{$prefix}-sys-color-tertiary-container: #1E4D51;
53
- --#{$prefix}-sys-color-on-tertiary-container: #BCEBF0;
50
+ --#{$prefix}-sys-color-tertiary: #AECBA8;
51
+ --#{$prefix}-sys-color-on-tertiary: #123623;
52
+ --#{$prefix}-sys-color-tertiary-container: #2C4D34;
53
+ --#{$prefix}-sys-color-on-tertiary-container: #CAE7C3;
54
54
 
55
55
  // Neutral colors
56
- --#{$prefix}-sys-color-surface: #191C19;
57
- --#{$prefix}-sys-color-surface-dim: #101410;
58
- --#{$prefix}-sys-color-surface-bright: #373B37;
59
- --#{$prefix}-sys-color-surface-container-lowest: #0C100C;
60
- --#{$prefix}-sys-color-surface-container-low: #191C19;
61
- --#{$prefix}-sys-color-surface-container: #1D201D;
62
- --#{$prefix}-sys-color-surface-container-high: #272B27;
63
- --#{$prefix}-sys-color-surface-container-highest: #323532;
56
+ --#{$prefix}-sys-color-surface: #1B1C17;
57
+ --#{$prefix}-sys-color-surface-dim: #13140F;
58
+ --#{$prefix}-sys-color-surface-bright: #383932;
59
+ --#{$prefix}-sys-color-surface-container-lowest: #0F100B;
60
+ --#{$prefix}-sys-color-surface-container-low: #1B1C17;
61
+ --#{$prefix}-sys-color-surface-container: #1F201B;
62
+ --#{$prefix}-sys-color-surface-container-high: #292A25;
63
+ --#{$prefix}-sys-color-surface-container-highest: #34352F;
64
64
 
65
- --#{$prefix}-sys-color-on-surface: #E1E3E1;
66
- --#{$prefix}-sys-color-on-surface-variant: #C1C9C1;
65
+ --#{$prefix}-sys-color-on-surface: #E3E3DC;
66
+ --#{$prefix}-sys-color-on-surface-variant: #C9CCB7;
67
67
 
68
- --#{$prefix}-sys-color-outline: #8B938B;
69
- --#{$prefix}-sys-color-outline-variant: #414942;
68
+ --#{$prefix}-sys-color-outline: #929688;
69
+ --#{$prefix}-sys-color-outline-variant: #464840;
70
70
  }
71
71
  }
@@ -0,0 +1,71 @@
1
+ // src/styles/themes/_spring.scss
2
+ @use '../abstract/base' as *;
3
+ @use 'base-theme' as *;
4
+
5
+ @include create-theme('spring') {
6
+ // Key colors generated from seed color #76D275 (fresh spring green)
7
+ --#{$prefix}-sys-color-primary: #006E2B;
8
+ --#{$prefix}-sys-color-on-primary: #FFFFFF;
9
+ --#{$prefix}-sys-color-primary-container: #95F99A;
10
+ --#{$prefix}-sys-color-on-primary-container: #002108;
11
+
12
+ --#{$prefix}-sys-color-secondary: #526350;
13
+ --#{$prefix}-sys-color-on-secondary: #FFFFFF;
14
+ --#{$prefix}-sys-color-secondary-container: #D5E8CF;
15
+ --#{$prefix}-sys-color-on-secondary-container: #101F10;
16
+
17
+ --#{$prefix}-sys-color-tertiary: #386667;
18
+ --#{$prefix}-sys-color-on-tertiary: #FFFFFF;
19
+ --#{$prefix}-sys-color-tertiary-container: #BBECEE;
20
+ --#{$prefix}-sys-color-on-tertiary-container: #002021;
21
+
22
+ // Neutral colors
23
+ --#{$prefix}-sys-color-surface: #F8FFF3;
24
+ --#{$prefix}-sys-color-surface-dim: #D9E8D3;
25
+ --#{$prefix}-sys-color-surface-bright: #F8FFF3;
26
+ --#{$prefix}-sys-color-surface-container-lowest: #FFFFFF;
27
+ --#{$prefix}-sys-color-surface-container-low: #F2FAED;
28
+ --#{$prefix}-sys-color-surface-container: #ECF4E7;
29
+ --#{$prefix}-sys-color-surface-container-high: #E6EEE1;
30
+ --#{$prefix}-sys-color-surface-container-highest: #E0E8DB;
31
+
32
+ --#{$prefix}-sys-color-on-surface: #191D19;
33
+ --#{$prefix}-sys-color-on-surface-variant: #424940;
34
+
35
+ --#{$prefix}-sys-color-outline: #727970;
36
+ --#{$prefix}-sys-color-outline-variant: #C1C9BE;
37
+
38
+ &[data-theme-mode="dark"] {
39
+ // Key colors
40
+ --#{$prefix}-sys-color-primary: #79DC80;
41
+ --#{$prefix}-sys-color-on-primary: #003914;
42
+ --#{$prefix}-sys-color-primary-container: #00531F;
43
+ --#{$prefix}-sys-color-on-primary-container: #95F99A;
44
+
45
+ --#{$prefix}-sys-color-secondary: #B9CCB3;
46
+ --#{$prefix}-sys-color-on-secondary: #263424;
47
+ --#{$prefix}-sys-color-secondary-container: #3C4B3A;
48
+ --#{$prefix}-sys-color-on-secondary-container: #D5E8CF;
49
+
50
+ --#{$prefix}-sys-color-tertiary: #A0D0D2;
51
+ --#{$prefix}-sys-color-on-tertiary: #003738;
52
+ --#{$prefix}-sys-color-tertiary-container: #1F4E4F;
53
+ --#{$prefix}-sys-color-on-tertiary-container: #BBECEE;
54
+
55
+ // Neutral colors
56
+ --#{$prefix}-sys-color-surface: #121711;
57
+ --#{$prefix}-sys-color-surface-dim: #0D120C;
58
+ --#{$prefix}-sys-color-surface-bright: #2D3229;
59
+ --#{$prefix}-sys-color-surface-container-lowest: #0A0F09;
60
+ --#{$prefix}-sys-color-surface-container-low: #121711;
61
+ --#{$prefix}-sys-color-surface-container: #161B15;
62
+ --#{$prefix}-sys-color-surface-container-high: #20251E;
63
+ --#{$prefix}-sys-color-surface-container-highest: #2A2F27;
64
+
65
+ --#{$prefix}-sys-color-on-surface: #D9E3D4;
66
+ --#{$prefix}-sys-color-on-surface-variant: #C1C9BE;
67
+
68
+ --#{$prefix}-sys-color-outline: #8B9388;
69
+ --#{$prefix}-sys-color-outline-variant: #424940;
70
+ }
71
+ }