77c2db672447bfb93c6e6ee0e6e3b65c634b9b0b3ab3962cae6e6b68d852202c084ed36e81ecaa5cb5ea26ad1b9a51f1da027c1bebb93930740cdafebf0480 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. @use 'sass:map';
  2. @use 'sass:math';
  3. @use 'sass:color';
  4. @use '../common/var.scss' as common;
  5. @use '../mixins/mixins.scss' as *;
  6. @use '../color/index.scss' as *;
  7. @use '../mixins/function.scss' as *;
  8. $colors: () !default;
  9. @each $type in common.$types {
  10. $colors: map.deep-merge(
  11. (
  12. $type: (
  13. 'base': map.get(common.$colors, $type, 'base'),
  14. ),
  15. ),
  16. $colors
  17. ) !global;
  18. }
  19. // https://sass-lang.com/documentation/values/maps#immutability
  20. // mix colors with white/black to generate light/dark level
  21. @mixin set-color-mix-level(
  22. $type,
  23. $number,
  24. $mode: 'light',
  25. $mix-color: $color-white
  26. ) {
  27. // hex mix color
  28. $colors: map.deep-merge(
  29. (
  30. $type: (
  31. '#{$mode}-#{$number}':
  32. roundColor(
  33. color.mix(
  34. $mix-color,
  35. map.get($colors, $type, 'base'),
  36. math.percentage(math.div($number, 10))
  37. )
  38. ),
  39. ),
  40. ),
  41. $colors
  42. ) !global;
  43. // for designer to view transparent
  44. // $colors: map.deep-merge(
  45. // (
  46. // $type: (
  47. // '#{$mode}-#{$number}':
  48. // rgba(map.get($colors, $type, 'base'), math.div(10 - $number, 10)),
  49. // ),
  50. // ),
  51. // $colors
  52. // ) !global;
  53. }
  54. // Background
  55. $bg-color: () !default;
  56. $bg-color: map.merge(
  57. (
  58. 'page': #0a0a0a,
  59. '': #141414,
  60. 'overlay': #1d1e1f,
  61. ),
  62. $bg-color
  63. );
  64. // dark-mode
  65. @each $type in common.$types {
  66. @for $i from 1 through 9 {
  67. @include set-color-mix-level($type, $i, 'light', map.get($bg-color, ''));
  68. }
  69. }
  70. @each $type in common.$types {
  71. @include set-color-mix-level($type, 2, 'dark', common.$color-white);
  72. }
  73. // border
  74. $border-color-base: #f5f8ff;
  75. $border-color: () !default;
  76. $border-color: map.merge(
  77. (
  78. 'darker': rgba($border-color-base, 0.35),
  79. 'dark': rgba($border-color-base, 0.3),
  80. '': rgba($border-color-base, 0.25),
  81. 'light': rgba($border-color-base, 0.2),
  82. 'lighter': rgba($border-color-base, 0.15),
  83. 'extra-light': rgba($border-color-base, 0.1),
  84. ),
  85. $border-color
  86. );
  87. // mix to hex to avoid overlay issues
  88. @each $key, $val in $border-color {
  89. $border-color: map.merge(
  90. $border-color,
  91. (
  92. $key: mix-overlay-color($val, map.get($bg-color, '')),
  93. )
  94. ) !global;
  95. }
  96. // Box-shadow
  97. $box-shadow: () !default;
  98. $box-shadow: map.merge(
  99. (
  100. '': (
  101. 0px 12px 32px 4px rgba(0, 0, 0, 0.36),
  102. 0px 8px 20px rgba(0, 0, 0, 0.72),
  103. ),
  104. 'light': (
  105. 0px 0px 12px rgba(0, 0, 0, 0.72),
  106. ),
  107. 'lighter': (
  108. 0px 0px 6px rgba(0, 0, 0, 0.72),
  109. ),
  110. 'dark': (
  111. 0px 16px 48px 16px rgba(0, 0, 0, 0.72),
  112. 0px 12px 32px #000000,
  113. 0px 8px 16px -8px #000000,
  114. ),
  115. ),
  116. $box-shadow
  117. );
  118. // fill
  119. $fill-color-base: #fafcff;
  120. $fill-color: () !default;
  121. $fill-color: map.merge(
  122. (
  123. 'darker': rgba($fill-color-base, 0.2),
  124. 'dark': rgba($fill-color-base, 0.16),
  125. '': rgba($fill-color-base, 0.12),
  126. 'light': rgba($fill-color-base, 0.08),
  127. 'lighter': rgba($fill-color-base, 0.04),
  128. 'extra-light': rgba($fill-color-base, 0.02),
  129. 'blank': transparent,
  130. ),
  131. $fill-color
  132. );
  133. // mix to hex to avoid overlay issues
  134. @each $key, $val in $fill-color {
  135. @if ($key != 'blank') {
  136. $fill-color: map.merge(
  137. $fill-color,
  138. (
  139. $key: mix-overlay-color($val, map.get($bg-color, '')),
  140. )
  141. ) !global;
  142. }
  143. }
  144. // text
  145. $text-color-base: #f0f5ff;
  146. $text-color: () !default;
  147. $text-color: map.merge(
  148. (
  149. 'primary': rgba($text-color-base, 0.95),
  150. 'regular': rgba($text-color-base, 0.85),
  151. 'secondary': rgba($text-color-base, 0.65),
  152. 'placeholder': rgba($text-color-base, 0.55),
  153. 'disabled': rgba($text-color-base, 0.4),
  154. ),
  155. $text-color
  156. );
  157. // mix to hex to avoid overlay issues
  158. @each $key, $val in $text-color {
  159. $text-color: map.merge(
  160. $text-color,
  161. (
  162. $key: mix-overlay-color($val, map.get($bg-color, '')),
  163. )
  164. ) !global;
  165. }
  166. // mask
  167. $mask-color: () !default;
  168. $mask-color: map.merge(
  169. (
  170. '': rgba(0, 0, 0, 0.8),
  171. 'extra-light': rgba(0, 0, 0, 0.3),
  172. ),
  173. $mask-color
  174. );
  175. // Button
  176. // css3 var in packages/theme-chalk/src/button.scss
  177. $button: () !default;
  178. $button: map.merge(
  179. (
  180. 'disabled-text-color': rgba(255, 255, 255, 0.5),
  181. ),
  182. $button
  183. );
  184. // card
  185. $card: () !default;
  186. $card: map.merge(
  187. (
  188. 'bg-color': getCssVar('bg-color', 'overlay'),
  189. ),
  190. $card
  191. );
  192. // Empty
  193. // css3 var in packages/theme-chalk/src/empty.scss
  194. $empty: () !default;
  195. $empty: map.merge(
  196. (
  197. 'fill-color-0': getCssVar('color-black'),
  198. 'fill-color-1': #4b4b52,
  199. 'fill-color-2': #36383d,
  200. 'fill-color-3': #1e1e20,
  201. 'fill-color-4': #262629,
  202. 'fill-color-5': #202124,
  203. 'fill-color-6': #212224,
  204. 'fill-color-7': #1b1c1f,
  205. 'fill-color-8': #1c1d1f,
  206. 'fill-color-9': #18181a,
  207. ),
  208. $empty
  209. );