accrete 0.0.47__py3-none-any.whl → 0.0.49__py3-none-any.whl

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 (190) hide show
  1. accrete/contrib/ui/elements.py +5 -4
  2. accrete/contrib/ui/static/bulma/LICENSE +1 -1
  3. accrete/contrib/ui/static/bulma/README.md +56 -52
  4. accrete/contrib/ui/static/bulma/bulma.scss +4 -0
  5. accrete/contrib/ui/static/bulma/css/bulma.css +19282 -8696
  6. accrete/contrib/ui/static/bulma/css/bulma.css.map +1 -1
  7. accrete/contrib/ui/static/bulma/css/bulma.min.css +3 -1
  8. accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.min.css +3 -0
  9. accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.min.css.map +1 -0
  10. accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.min.css +3 -0
  11. accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.min.css.map +1 -0
  12. accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.min.css +3 -0
  13. accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.min.css.map +1 -0
  14. accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.min.css +3 -0
  15. accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.min.css.map +1 -0
  16. accrete/contrib/ui/static/bulma/package.json +25 -20
  17. accrete/contrib/ui/static/bulma/sass/_index.scss +10 -0
  18. accrete/contrib/ui/static/bulma/sass/base/_index.scss +6 -0
  19. accrete/contrib/ui/static/bulma/sass/base/animations.scss +15 -0
  20. accrete/contrib/ui/static/bulma/sass/base/generic.scss +239 -0
  21. accrete/contrib/ui/static/bulma/sass/base/minireset.scss +92 -0
  22. accrete/contrib/ui/static/bulma/sass/base/skeleton.scss +126 -0
  23. accrete/contrib/ui/static/bulma/sass/components/_index.scss +13 -0
  24. accrete/contrib/ui/static/bulma/sass/components/breadcrumb.scss +139 -0
  25. accrete/contrib/ui/static/bulma/sass/components/card.scss +162 -0
  26. accrete/contrib/ui/static/bulma/sass/components/dropdown.scss +188 -0
  27. accrete/contrib/ui/static/bulma/sass/components/menu.scss +165 -0
  28. accrete/contrib/ui/static/bulma/sass/components/message.scss +183 -0
  29. accrete/contrib/ui/static/bulma/sass/components/modal.scss +164 -0
  30. accrete/contrib/ui/static/bulma/sass/components/navbar.scss +788 -0
  31. accrete/contrib/ui/static/bulma/sass/components/pagination.scss +379 -0
  32. accrete/contrib/ui/static/bulma/sass/components/panel.scss +218 -0
  33. accrete/contrib/ui/static/bulma/sass/components/tabs.scss +273 -0
  34. accrete/contrib/ui/static/bulma/sass/elements/_index.scss +16 -0
  35. accrete/contrib/ui/static/bulma/sass/elements/block.scss +6 -0
  36. accrete/contrib/ui/static/bulma/sass/elements/box.scss +59 -0
  37. accrete/contrib/ui/static/bulma/sass/elements/button.scss +640 -0
  38. accrete/contrib/ui/static/bulma/sass/elements/content.scss +283 -0
  39. accrete/contrib/ui/static/bulma/sass/elements/delete.scss +6 -0
  40. accrete/contrib/ui/static/bulma/sass/elements/icon.scss +67 -0
  41. accrete/contrib/ui/static/bulma/sass/elements/image.scss +62 -0
  42. accrete/contrib/ui/static/bulma/sass/elements/loader.scss +15 -0
  43. accrete/contrib/ui/static/bulma/sass/elements/notification.scss +105 -0
  44. accrete/contrib/ui/static/bulma/sass/elements/progress.scss +115 -0
  45. accrete/contrib/ui/static/bulma/sass/elements/table.scss +261 -0
  46. accrete/contrib/ui/static/bulma/sass/elements/tag.scss +219 -0
  47. accrete/contrib/ui/static/bulma/sass/elements/title.scss +128 -0
  48. accrete/contrib/ui/static/bulma/sass/form/_index.scss +9 -0
  49. accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.scss +32 -0
  50. accrete/contrib/ui/static/bulma/sass/form/file.scss +330 -0
  51. accrete/contrib/ui/static/bulma/sass/form/input-textarea.scss +123 -0
  52. accrete/contrib/ui/static/bulma/sass/form/select.scss +143 -0
  53. accrete/contrib/ui/static/bulma/sass/form/shared.scss +172 -0
  54. accrete/contrib/ui/static/bulma/sass/form/tools.scss +341 -0
  55. accrete/contrib/ui/static/bulma/sass/grid/_index.scss +5 -0
  56. accrete/contrib/ui/static/bulma/sass/grid/columns-v2.scss +957 -0
  57. accrete/contrib/ui/static/bulma/sass/grid/columns.scss +877 -0
  58. accrete/contrib/ui/static/bulma/sass/grid/grid.scss +209 -0
  59. accrete/contrib/ui/static/bulma/sass/helpers/_index.scss +15 -0
  60. accrete/contrib/ui/static/bulma/sass/helpers/aspect-ratio.scss +10 -0
  61. accrete/contrib/ui/static/bulma/sass/helpers/border.scss +15 -0
  62. accrete/contrib/ui/static/bulma/sass/helpers/color.scss +364 -0
  63. accrete/contrib/ui/static/bulma/sass/helpers/flexbox.scss +62 -0
  64. accrete/contrib/ui/static/bulma/sass/helpers/float.scss +28 -0
  65. accrete/contrib/ui/static/bulma/sass/helpers/gap.scss +24 -0
  66. accrete/contrib/ui/static/bulma/sass/helpers/other.scss +19 -0
  67. accrete/contrib/ui/static/bulma/sass/helpers/overflow.scss +21 -0
  68. accrete/contrib/ui/static/bulma/sass/helpers/position.scss +19 -0
  69. accrete/contrib/ui/static/bulma/sass/helpers/spacing.scss +64 -0
  70. accrete/contrib/ui/static/bulma/sass/helpers/typography.scss +168 -0
  71. accrete/contrib/ui/static/bulma/sass/helpers/visibility.scss +221 -0
  72. accrete/contrib/ui/static/bulma/sass/layout/_index.scss +9 -0
  73. accrete/contrib/ui/static/bulma/sass/layout/container.scss +51 -0
  74. accrete/contrib/ui/static/bulma/sass/layout/footer.scss +23 -0
  75. accrete/contrib/ui/static/bulma/sass/layout/hero.scss +270 -0
  76. accrete/contrib/ui/static/bulma/sass/layout/level.scss +107 -0
  77. accrete/contrib/ui/static/bulma/sass/layout/media.scss +106 -0
  78. accrete/contrib/ui/static/bulma/sass/layout/section.scss +34 -0
  79. accrete/contrib/ui/static/bulma/sass/themes/_index.scss +35 -0
  80. accrete/contrib/ui/static/bulma/sass/themes/dark.scss +56 -0
  81. accrete/contrib/ui/static/bulma/sass/themes/light.scss +145 -0
  82. accrete/contrib/ui/static/bulma/sass/themes/setup.scss +174 -0
  83. accrete/contrib/ui/static/bulma/sass/utilities/_index.scss +7 -0
  84. accrete/contrib/ui/static/bulma/sass/utilities/controls.scss +85 -0
  85. accrete/contrib/ui/static/bulma/sass/utilities/css-variables.scss +425 -0
  86. accrete/contrib/ui/static/bulma/sass/utilities/derived-variables.scss +112 -0
  87. accrete/contrib/ui/static/bulma/sass/utilities/extends.scss +34 -0
  88. accrete/contrib/ui/static/bulma/sass/utilities/functions.scss +258 -0
  89. accrete/contrib/ui/static/bulma/sass/utilities/initial-variables.scss +155 -0
  90. accrete/contrib/ui/static/bulma/sass/utilities/mixins.scss +460 -0
  91. accrete/contrib/ui/static/bulma/versions/bulma-no-dark-mode.scss +19 -0
  92. accrete/contrib/ui/static/bulma/versions/bulma-no-helpers-prefixed.scss +13 -0
  93. accrete/contrib/ui/static/bulma/versions/bulma-no-helpers.scss +11 -0
  94. accrete/contrib/ui/static/bulma/versions/bulma-prefixed.scss +6 -0
  95. accrete/contrib/ui/static/css/accrete.css +19988 -7778
  96. accrete/contrib/ui/static/css/accrete.css.map +1 -1
  97. accrete/contrib/ui/static/css/accrete.scss +204 -186
  98. accrete/contrib/ui/static/css/fa.css +9 -0
  99. accrete/contrib/ui/static/js/filter.js +2 -2
  100. accrete/contrib/ui/static/webfonts/fa-brands-400.ttf +0 -0
  101. accrete/contrib/ui/static/webfonts/fa-brands-400.woff2 +0 -0
  102. accrete/contrib/ui/static/webfonts/fa-regular-400.ttf +0 -0
  103. accrete/contrib/ui/static/webfonts/fa-regular-400.woff2 +0 -0
  104. accrete/contrib/ui/static/webfonts/fa-solid-900.ttf +0 -0
  105. accrete/contrib/ui/static/webfonts/fa-solid-900.woff2 +0 -0
  106. accrete/contrib/ui/static/webfonts/fa-v4compatibility.ttf +0 -0
  107. accrete/contrib/ui/static/webfonts/fa-v4compatibility.woff2 +0 -0
  108. accrete/contrib/ui/templates/ui/detail.html +1 -1
  109. accrete/contrib/ui/templates/ui/form.html +1 -1
  110. accrete/contrib/ui/templates/ui/layout.html +13 -11
  111. accrete/contrib/ui/templates/ui/partials/filter.html +3 -3
  112. accrete/contrib/ui/templates/ui/partials/form_modal.html +4 -2
  113. accrete/contrib/ui/templates/ui/partials/header.html +28 -5
  114. accrete/contrib/ui/templates/ui/table.html +1 -1
  115. accrete/contrib/ui/templatetags/accrete_ui.py +1 -1
  116. accrete/contrib/user/templates/user/accrete_navbar_end_dropdown.html +1 -2
  117. {accrete-0.0.47.dist-info → accrete-0.0.49.dist-info}/METADATA +19 -19
  118. accrete-0.0.49.dist-info/RECORD +224 -0
  119. {accrete-0.0.47.dist-info → accrete-0.0.49.dist-info}/WHEEL +1 -1
  120. accrete/contrib/ui/static/bulma/bulma.sass +0 -10
  121. accrete/contrib/ui/static/bulma/css/bulma-rtl.css +0 -11851
  122. accrete/contrib/ui/static/bulma/css/bulma-rtl.css.map +0 -1
  123. accrete/contrib/ui/static/bulma/css/bulma-rtl.min.css +0 -1
  124. accrete/contrib/ui/static/bulma/sass/base/_all.sass +0 -6
  125. accrete/contrib/ui/static/bulma/sass/base/animations.sass +0 -5
  126. accrete/contrib/ui/static/bulma/sass/base/generic.sass +0 -145
  127. accrete/contrib/ui/static/bulma/sass/base/helpers.sass +0 -1
  128. accrete/contrib/ui/static/bulma/sass/base/minireset.sass +0 -79
  129. accrete/contrib/ui/static/bulma/sass/components/_all.sass +0 -15
  130. accrete/contrib/ui/static/bulma/sass/components/breadcrumb.sass +0 -77
  131. accrete/contrib/ui/static/bulma/sass/components/card.sass +0 -103
  132. accrete/contrib/ui/static/bulma/sass/components/dropdown.sass +0 -83
  133. accrete/contrib/ui/static/bulma/sass/components/level.sass +0 -79
  134. accrete/contrib/ui/static/bulma/sass/components/media.sass +0 -59
  135. accrete/contrib/ui/static/bulma/sass/components/menu.sass +0 -59
  136. accrete/contrib/ui/static/bulma/sass/components/message.sass +0 -101
  137. accrete/contrib/ui/static/bulma/sass/components/modal.sass +0 -117
  138. accrete/contrib/ui/static/bulma/sass/components/navbar.sass +0 -446
  139. accrete/contrib/ui/static/bulma/sass/components/pagination.sass +0 -167
  140. accrete/contrib/ui/static/bulma/sass/components/panel.sass +0 -121
  141. accrete/contrib/ui/static/bulma/sass/components/tabs.sass +0 -176
  142. accrete/contrib/ui/static/bulma/sass/elements/_all.sass +0 -16
  143. accrete/contrib/ui/static/bulma/sass/elements/box.sass +0 -26
  144. accrete/contrib/ui/static/bulma/sass/elements/button.sass +0 -357
  145. accrete/contrib/ui/static/bulma/sass/elements/container.sass +0 -29
  146. accrete/contrib/ui/static/bulma/sass/elements/content.sass +0 -162
  147. accrete/contrib/ui/static/bulma/sass/elements/form.sass +0 -1
  148. accrete/contrib/ui/static/bulma/sass/elements/icon.sass +0 -46
  149. accrete/contrib/ui/static/bulma/sass/elements/image.sass +0 -73
  150. accrete/contrib/ui/static/bulma/sass/elements/notification.sass +0 -52
  151. accrete/contrib/ui/static/bulma/sass/elements/other.sass +0 -31
  152. accrete/contrib/ui/static/bulma/sass/elements/progress.sass +0 -73
  153. accrete/contrib/ui/static/bulma/sass/elements/table.sass +0 -134
  154. accrete/contrib/ui/static/bulma/sass/elements/tag.sass +0 -140
  155. accrete/contrib/ui/static/bulma/sass/elements/title.sass +0 -70
  156. accrete/contrib/ui/static/bulma/sass/form/_all.sass +0 -9
  157. accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.sass +0 -22
  158. accrete/contrib/ui/static/bulma/sass/form/file.sass +0 -184
  159. accrete/contrib/ui/static/bulma/sass/form/input-textarea.sass +0 -66
  160. accrete/contrib/ui/static/bulma/sass/form/select.sass +0 -88
  161. accrete/contrib/ui/static/bulma/sass/form/shared.sass +0 -60
  162. accrete/contrib/ui/static/bulma/sass/form/tools.sass +0 -215
  163. accrete/contrib/ui/static/bulma/sass/grid/_all.sass +0 -5
  164. accrete/contrib/ui/static/bulma/sass/grid/columns.sass +0 -513
  165. accrete/contrib/ui/static/bulma/sass/grid/tiles.sass +0 -36
  166. accrete/contrib/ui/static/bulma/sass/helpers/_all.sass +0 -12
  167. accrete/contrib/ui/static/bulma/sass/helpers/color.sass +0 -39
  168. accrete/contrib/ui/static/bulma/sass/helpers/flexbox.sass +0 -35
  169. accrete/contrib/ui/static/bulma/sass/helpers/float.sass +0 -10
  170. accrete/contrib/ui/static/bulma/sass/helpers/other.sass +0 -14
  171. accrete/contrib/ui/static/bulma/sass/helpers/overflow.sass +0 -2
  172. accrete/contrib/ui/static/bulma/sass/helpers/position.sass +0 -7
  173. accrete/contrib/ui/static/bulma/sass/helpers/spacing.sass +0 -31
  174. accrete/contrib/ui/static/bulma/sass/helpers/typography.sass +0 -103
  175. accrete/contrib/ui/static/bulma/sass/helpers/visibility.sass +0 -122
  176. accrete/contrib/ui/static/bulma/sass/layout/_all.sass +0 -6
  177. accrete/contrib/ui/static/bulma/sass/layout/footer.sass +0 -11
  178. accrete/contrib/ui/static/bulma/sass/layout/hero.sass +0 -153
  179. accrete/contrib/ui/static/bulma/sass/layout/section.sass +0 -17
  180. accrete/contrib/ui/static/bulma/sass/utilities/_all.sass +0 -9
  181. accrete/contrib/ui/static/bulma/sass/utilities/animations.sass +0 -1
  182. accrete/contrib/ui/static/bulma/sass/utilities/controls.sass +0 -49
  183. accrete/contrib/ui/static/bulma/sass/utilities/derived-variables.sass +0 -114
  184. accrete/contrib/ui/static/bulma/sass/utilities/extends.sass +0 -25
  185. accrete/contrib/ui/static/bulma/sass/utilities/functions.sass +0 -135
  186. accrete/contrib/ui/static/bulma/sass/utilities/initial-variables.sass +0 -79
  187. accrete/contrib/ui/static/bulma/sass/utilities/mixins.sass +0 -303
  188. accrete/contrib/ui/static/css/accrete.css.bak +0 -156
  189. accrete-0.0.47.dist-info/RECORD +0 -197
  190. {accrete-0.0.47.dist-info → accrete-0.0.49.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,425 @@
1
+ @use "sass:color";
2
+ @use "sass:list";
3
+ @use "sass:map";
4
+ @use "sass:math";
5
+
6
+ @use "initial-variables" as iv;
7
+ @use "functions" as fn;
8
+
9
+ @function buildVarName($name, $prefix: "", $suffix: "") {
10
+ @return "--#{iv.$cssvars-prefix}#{$prefix}#{$name}#{$suffix}";
11
+ }
12
+
13
+ @function buildHslaString($name, $l, $a: 1) {
14
+ $lightness: getVar($name, "", "-l");
15
+ @if ($l) {
16
+ $lightness: $l;
17
+ }
18
+ @return "hsla(#{getVar($name, '', '-h')}, #{getVar($name, '', '-s')}, #{$lightness}, #{$a})";
19
+ }
20
+
21
+ @function getVar($name, $prefix: "", $suffix: "") {
22
+ $varName: buildVarName($name, $prefix, $suffix);
23
+ @return var(#{$varName});
24
+ }
25
+
26
+ @function getVarWithBackup($name, $backup, $prefix: "", $suffix: "") {
27
+ $varName: buildVarName($name, $prefix, $suffix);
28
+ $backupName: buildVarName($backup, $prefix, $suffix);
29
+ @return var(#{$varName}, var(#{$backupName}));
30
+ }
31
+
32
+ @function getRgbaVar($name, $alpha, $prefix: "", $suffix: "") {
33
+ $varName: buildVarName($name, $prefix, $suffix);
34
+ @return unquote("rgba(var(#{$varName}), #{$alpha})");
35
+ }
36
+
37
+ @mixin register-var($name, $value, $prefix: "", $suffix: "") {
38
+ $varName: buildVarName($name, $prefix, $suffix);
39
+ #{$varName}: #{$value};
40
+ }
41
+
42
+ @mixin register-vars($vars, $prefix: "", $suffix: "") {
43
+ @each $name, $value in $vars {
44
+ @include register-var($name, $value, $prefix, $suffix);
45
+ }
46
+ }
47
+
48
+ @mixin register-rgb($name, $value) {
49
+ @include register-var(
50
+ $name,
51
+ (red($value), green($value), blue($value)),
52
+ "",
53
+ "-rgb"
54
+ );
55
+ }
56
+
57
+ @mixin register-hsl($name, $value) {
58
+ @include register-var($name, round(hue($value)), "", "-h");
59
+ @include register-var($name, round(saturation($value)), "", "-s");
60
+ @include register-var($name, round(lightness($value)), "", "-l");
61
+ }
62
+
63
+ @mixin generate-on-scheme-colors($name, $base, $scheme-main) {
64
+ // Accessibility Contrast System
65
+ $scheme-main-brightness: fn.bulmaColorBrightness($scheme-main);
66
+ $on-scheme-color: $base;
67
+ $fg-lum: fn.bulmaColorLuminance($on-scheme-color);
68
+ $bg-lum: fn.bulmaColorLuminance($scheme-main);
69
+ $ratio: 0;
70
+ $found-decent-color: false;
71
+
72
+ @if ($fg-lum > $bg-lum) {
73
+ @for $i from 0 through 20 {
74
+ $ratio: math.div(($fg-lum + 0.05), ($bg-lum + 0.05));
75
+
76
+ @if $ratio > 5 {
77
+ $found-decent-color: true;
78
+ } @else {
79
+ $on-scheme-color: lighten($on-scheme-color, 5%);
80
+ $fg-lum: fn.bulmaColorLuminance($on-scheme-color);
81
+ }
82
+ }
83
+ } @else {
84
+ @for $i from 0 through 20 {
85
+ $ratio: math.div(($bg-lum + 0.05), ($fg-lum + 0.05));
86
+
87
+ @if $ratio > 5 {
88
+ $found-decent-color: true;
89
+ } @else {
90
+ $on-scheme-color: darken($on-scheme-color, 5%);
91
+ $fg-lum: fn.bulmaColorLuminance($on-scheme-color);
92
+ }
93
+ }
94
+ }
95
+
96
+ $on-scheme-lightness: lightness($on-scheme-color);
97
+ @include register-var($name, $on-scheme-lightness, "", "-on-scheme-l");
98
+ $on-scheme-l: getVar($name, "", "-on-scheme-l");
99
+ @include register-var(
100
+ "#{$name}-on-scheme",
101
+ buildHslaString($name, $on-scheme-l)
102
+ );
103
+ }
104
+
105
+ @mixin v1-generate-on-scheme-colors($name, $base, $scheme-main) {
106
+ // Accessibility Contrast System
107
+ $scheme-main-brightness: fn.bulmaColorBrightness($scheme-main);
108
+ $on-scheme-color: $base;
109
+
110
+ @if ($scheme-main-brightness == "bright") {
111
+ @while (fn.bulmaEnoughContrast($on-scheme-color, #fff) == false) {
112
+ // We're on a light background, so we'll darken the test color step by step.
113
+ $on-scheme-color: darken($on-scheme-color, 5%);
114
+ }
115
+ } @else {
116
+ @while (fn.bulmaEnoughContrast($on-scheme-color, #000) == false) {
117
+ // We're on a dark background, so we'll lighten the test color step by step.
118
+ $on-scheme-color: lighten($on-scheme-color, 5%);
119
+ }
120
+ }
121
+
122
+ $on-scheme-lightness: lightness($on-scheme-color);
123
+ @include register-var($name, $on-scheme-lightness, "", "-on-scheme-l");
124
+ }
125
+
126
+ @mixin register-base-color($name, $base) {
127
+ $hsla: buildHslaString($name, getVar($name, "", "-l"));
128
+ @include register-var($name, $hsla);
129
+ @include register-var($name, $hsla, "", "-base"); // Just for reference
130
+ @include register-rgb($name, $base);
131
+ @include register-hsl($name, $base);
132
+ }
133
+
134
+ @mixin generate-basic-palette($name, $base, $invert: null) {
135
+ @include register-base-color($name, $base);
136
+
137
+ @if $invert {
138
+ @include register-var($name, lightness($invert), "", "-invert-l");
139
+ @include register-var("#{$name}-invert", $invert);
140
+ }
141
+ }
142
+
143
+ @mixin generate-color-palette(
144
+ $name,
145
+ $base,
146
+ $scheme-main-l: 100%,
147
+ $invert: null,
148
+ $light: null,
149
+ $dark: null
150
+ ) {
151
+ $h: round(hue($base)); // Hue
152
+ $s: round(saturation($base)); // Saturation
153
+ $l: round(lightness($base)); // Lightness
154
+ $base-lum: fn.bulmaColorLuminance($base);
155
+ $l-base: round($l % 10); // Get lightness second digit: 53% -> 3%
156
+ $l-0: 0%; // 5% or less
157
+ $l-5: 5%; // More than 5%
158
+ $a: 1; // Alpha
159
+ $base-digits: "00";
160
+
161
+ // Calculate digits like "40" for the scheme-main
162
+ $scheme-l-0: 0%;
163
+ $scheme-l-base: round($scheme-main-l % 10);
164
+ $closest-5: math.round(math.div($scheme-main-l, 5)) * 5;
165
+ $pct-to-int: math.div($closest-5, 100%) * 100;
166
+ $scheme-main-digits: #{$pct-to-int};
167
+
168
+ // === STEP 1 ===
169
+ // Register the base colors
170
+ @include register-base-color($name, $base);
171
+
172
+ // === STEP 2 ===
173
+ // Generating 20 shades of the color
174
+
175
+ // 00: 0%, 1%, 2%
176
+ // 05: 3%, 4%, 5%, 6%, 7%
177
+ // 10: 8%, 9%
178
+
179
+ @if ($l-base < 3%) {
180
+ $l-0: $l-base;
181
+ $l-5: $l-base + 5%;
182
+ } @else if ($l-base < 8%) {
183
+ // $l-0: math.max($l-base - 5%, 0%);
184
+ $l-0: $l-base - 5%;
185
+ $l-5: $l-base;
186
+ } @else {
187
+ // $l-0: math.max($l-base - 10%, 0%);
188
+ $l-0: $l-base - 10%;
189
+ $l-5: $l-base - 5%;
190
+ }
191
+
192
+ $shades: ();
193
+
194
+ @for $i from 0 through 9 {
195
+ // if $l-base = 3%, then we get 3%, 13%, 23%, 33% etc.
196
+ $color-l-0: math.max($l-0 + $i * 10, 0%);
197
+
198
+ // if $l-base = 3%, then we get 8%, 18%, 28%, 38% etc.
199
+ $color-l-5: $l-5 + $i * 10;
200
+
201
+ $shades: map.set($shades, "#{$i}0", $color-l-0);
202
+ $shades: map.set($shades, "#{$i}5", $color-l-5);
203
+
204
+ @include register-var($name, $color-l-0, "", "-#{$i}0-l");
205
+ @include register-var($name, $color-l-5, "", "-#{$i}5-l");
206
+
207
+ @if $color-l-0 == $l {
208
+ $base-digits: "#{$i}0";
209
+ } @else if $color-l-5 == $l {
210
+ $base-digits: "#{$i}5";
211
+ }
212
+ }
213
+
214
+ $shades: map.set($shades, "100", 100%);
215
+ @include register-var($name, 100%, "", "-100-l");
216
+
217
+ // === STEP 3 ===
218
+ // Find accessible color combinations
219
+
220
+ $combos: ();
221
+
222
+ @each $digits-bg, $bg-l in $shades {
223
+ $background: hsl($h, $s, $bg-l);
224
+ $bg-lum: fn.bulmaColorLuminance($background);
225
+ $bg-is-light: $bg-lum > 0.55;
226
+ $candidates: ();
227
+ $found: false;
228
+
229
+ // If the background color is the base color
230
+ @if $bg-l == $l {
231
+ $base-digits: $digits-bg;
232
+
233
+ // Even if the base color as a background
234
+ // doesn't have an appropriate foreground,
235
+ // we still add to the list of "valid" contrast combos for now.
236
+ @if $bg-is-light {
237
+ $combos: map.set($combos, $base-digits, "10");
238
+ } @else {
239
+ $combos: map.set($combos, $base-digits, "100");
240
+ }
241
+ }
242
+
243
+ // We capture all contrast ratios for any given background
244
+ // using all foreground options
245
+ $current-best-digits: "00";
246
+ $current-best-ratio: 0;
247
+
248
+ @each $digits-fg, $fg-l in $shades {
249
+ $foreground: hsl($h, $s, $fg-l);
250
+ $ratio: 0;
251
+ $is-light-fg: false;
252
+
253
+ // Source: https://www.w3.org/TR/WCAG20-TECHS/G17.html
254
+ $fg-lum: fn.bulmaColorLuminance($foreground);
255
+
256
+ @if (lightness($foreground) > lightness($background)) {
257
+ $is-light-fg: true;
258
+ $ratio: math.div(($fg-lum + 0.05), ($bg-lum + 0.05));
259
+ } @else {
260
+ $ratio: math.div(($bg-lum + 0.05), ($fg-lum + 0.05));
261
+ }
262
+
263
+ @if $ratio > 7 {
264
+ $candidates: list.append(
265
+ $candidates,
266
+ fn.bulmaStringToNumber($digits-fg)
267
+ );
268
+
269
+ @if ($is-light-fg) {
270
+ @if (not $found) {
271
+ // Store the background/foreground combination
272
+ $combos: map.set($combos, $digits-bg, $digits-fg);
273
+ $current-best-digits: $digits-fg;
274
+ $current-best-ratio: $ratio;
275
+ $found: true;
276
+ }
277
+ } @else {
278
+ $combos: map.set($combos, $digits-bg, $digits-fg);
279
+ $current-best-digits: $digits-fg;
280
+ $current-best-ratio: $ratio;
281
+ }
282
+ }
283
+ }
284
+
285
+ // We haven't found a decent ratio
286
+ @each $digits-fg, $fg-l in $shades {
287
+ @if (map.has-key($combos, $digits-bg) == false) {
288
+ @if ($bg-is-light) {
289
+ // Light background so we set a dark foreground
290
+ $combos: map.set($combos, $digits-bg, "00");
291
+ } @else {
292
+ // Dark background so we set a light foreground
293
+ $combos: map.set($combos, $digits-bg, "100");
294
+ }
295
+ }
296
+ }
297
+ }
298
+
299
+ // The output needs to be:
300
+ // --bulma-primary-invert-l: var(--bulma-primary-100-l);
301
+
302
+ @each $bg, $fg in $combos {
303
+ // Just using this loop to register all 20 digits
304
+ $bg-l: getVar($name, "", "-#{$bg}-l");
305
+ @include register-var("#{$name}-#{$bg}", buildHslaString($name, $bg-l));
306
+
307
+ // Register the lightness
308
+ @include register-var(
309
+ $name,
310
+ getVar($name, "", "-#{$fg}-l"),
311
+ "",
312
+ "-#{$bg}-invert-l"
313
+ );
314
+
315
+ // Resiter the color using that lightness
316
+ $bg-invert-l: getVar($name, "", "-#{$bg}-invert-l");
317
+ @include register-var(
318
+ "#{$name}-#{$bg}-invert",
319
+ buildHslaString($name, $bg-invert-l)
320
+ );
321
+ }
322
+
323
+ // If an invert color is provided by the user
324
+ @if $invert {
325
+ @include register-var($name, lightness($invert), "", "-invert-l");
326
+ @include register-var("#{$name}-invert", $invert);
327
+ } @else {
328
+ $base-invert-l-digits: map.get($combos, $base-digits);
329
+ @include register-var(
330
+ $name,
331
+ getVar($name, "", "-#{$base-invert-l-digits}-l"),
332
+ "",
333
+ "-invert-l"
334
+ );
335
+
336
+ $base-invert-l: getVar($name, "", "-invert-l");
337
+ @include register-var(
338
+ "#{$name}-invert",
339
+ buildHslaString($name, $base-invert-l)
340
+ );
341
+ }
342
+
343
+ // Good color on light background (90% lightness)
344
+ @if $light and $dark {
345
+ @include register-var($name, lightness($light), "", "-light-l");
346
+ @include register-var($name, lightness($light), "", "-dark-invert-l");
347
+ @include register-var("#{$name}-light", $light);
348
+ @include register-var("#{$name}-dark-invert", $light);
349
+
350
+ @include register-var($name, lightness($dark), "", "-dark-l");
351
+ @include register-var($name, lightness($dark), "", "-light-invert-l");
352
+ @include register-var("#{$name}-dark", $dark);
353
+ @include register-var("#{$name}-light-invert", $dark);
354
+ } @else {
355
+ @include register-var($name, getVar($name, "", "-90-l"), "", "-light-l");
356
+
357
+ $light-l: getVar($name, "", "-light-l");
358
+ @include register-var("#{$name}-light", buildHslaString($name, $light-l));
359
+
360
+ $light-invert-l-digits: map.get($combos, "90");
361
+ @include register-var(
362
+ $name,
363
+ getVar($name, "", "-#{$light-invert-l-digits}-l"),
364
+ "",
365
+ "-light-invert-l"
366
+ );
367
+
368
+ $light-invert-l: getVar($name, "", "-light-invert-l");
369
+ @include register-var(
370
+ "#{$name}-light-invert",
371
+ buildHslaString($name, $light-invert-l)
372
+ );
373
+
374
+ // Good color on dark background (10% lightness)
375
+ @include register-var($name, getVar($name, "", "-10-l"), "", "-dark-l");
376
+
377
+ $dark-l: getVar($name, "", "-dark-l");
378
+ @include register-var("#{$name}-dark", buildHslaString($name, $dark-l));
379
+
380
+ $dark-invert-l-digits: map.get($combos, "10");
381
+ @include register-var(
382
+ $name,
383
+ getVar($name, "", "-#{$dark-invert-l-digits}-l"),
384
+ "",
385
+ "-dark-invert-l"
386
+ );
387
+
388
+ $dark-invert-l: getVar($name, "", "-dark-invert-l");
389
+ @include register-var(
390
+ "#{$name}-dark-invert",
391
+ buildHslaString($name, $dark-invert-l)
392
+ );
393
+
394
+ // Soft and Bold colors
395
+ $soft-l: getVar("soft-l");
396
+ $soft-invert-l: getVar("soft-invert-l");
397
+ $bold-l: getVar("bold-l");
398
+ $bold-invert-l: getVar("bold-invert-l");
399
+ @include register-var("#{$name}-soft", buildHslaString($name, $soft-l));
400
+ @include register-var("#{$name}-bold", buildHslaString($name, $bold-l));
401
+ @include register-var(
402
+ "#{$name}-soft-invert",
403
+ buildHslaString($name, $soft-invert-l)
404
+ );
405
+ @include register-var(
406
+ "#{$name}-bold-invert",
407
+ buildHslaString($name, $bold-invert-l)
408
+ );
409
+ }
410
+ }
411
+
412
+ @mixin bulma-theme($name) {
413
+ [data-#{iv.$class-prefix}theme="#{$name}"],
414
+ .#{iv.$class-prefix}theme-#{$name} {
415
+ @content;
416
+ }
417
+ }
418
+
419
+ @mixin system-theme($name) {
420
+ @media (prefers-color-scheme: #{$name}) {
421
+ :root {
422
+ @content;
423
+ }
424
+ }
425
+ }
@@ -0,0 +1,112 @@
1
+ @use "initial-variables" as iv;
2
+ @use "functions" as fn;
3
+
4
+ // Scheme colors
5
+
6
+ $scheme-main: iv.$white !default;
7
+ $scheme-main-bis: iv.$white-bis !default;
8
+ $scheme-main-ter: iv.$white-ter !default;
9
+ $scheme-invert: iv.$black !default;
10
+ $scheme-invert-bis: iv.$black-bis !default;
11
+ $scheme-invert-ter: iv.$black-ter !default;
12
+
13
+ // Text colors
14
+
15
+ $text: iv.$grey-dark !default;
16
+ $text-invert: fn.bulmaFindColorInvert($text) !default;
17
+ $text-weak: iv.$grey !default;
18
+ $text-strong: iv.$grey-darker !default;
19
+
20
+ // Status colors
21
+
22
+ $primary: iv.$turquoise !default;
23
+ $info: iv.$cyan !default;
24
+ $success: iv.$green !default;
25
+ $warning: iv.$yellow !default;
26
+ $danger: iv.$red !default;
27
+ $light: iv.$white-ter !default;
28
+ $dark: iv.$grey-darker !default;
29
+
30
+ // Link colors
31
+
32
+ $link: iv.$blue !default;
33
+
34
+ // Decorative colors
35
+
36
+ $background: iv.$white-ter !default;
37
+ $border: iv.$grey-lighter !default;
38
+ $border-weak: iv.$grey-lightest !default;
39
+
40
+ // Code colors
41
+
42
+ $code: iv.$red !default;
43
+ $code-background: $background !default;
44
+
45
+ $pre: $text !default;
46
+ $pre-background: $background !default;
47
+
48
+ // Typography
49
+
50
+ $family-primary: iv.$family-sans-serif !default;
51
+ $family-secondary: iv.$family-sans-serif !default;
52
+ $family-code: iv.$family-monospace !default;
53
+
54
+ $size-small: iv.$size-7 !default;
55
+ $size-normal: iv.$size-6 !default;
56
+ $size-medium: iv.$size-5 !default;
57
+ $size-large: iv.$size-4 !default;
58
+
59
+ // Effects
60
+
61
+ $shadow-color: iv.$black !default;
62
+
63
+ // Lists and maps
64
+ $custom-colors: null !default;
65
+ $custom-shades: null !default;
66
+
67
+ $colors: fn.mergeColorMaps(
68
+ (
69
+ "white": (
70
+ iv.$white,
71
+ iv.$black,
72
+ ),
73
+ "black": (
74
+ iv.$black,
75
+ iv.$white,
76
+ ),
77
+ "light": (
78
+ $light,
79
+ $dark,
80
+ ),
81
+ "dark": (
82
+ $dark,
83
+ $light,
84
+ ),
85
+ "text": $text,
86
+ "primary": $primary,
87
+ "link": $link,
88
+ "info": $info,
89
+ "success": $success,
90
+ "warning": $warning,
91
+ "danger": $danger,
92
+ ),
93
+ $custom-colors
94
+ ) !default;
95
+
96
+ $shades: fn.mergeColorMaps(
97
+ (
98
+ "black-bis": iv.$black-bis,
99
+ "black-ter": iv.$black-ter,
100
+ "grey-darker": iv.$grey-darker,
101
+ "grey-dark": iv.$grey-dark,
102
+ "grey": iv.$grey,
103
+ "grey-light": iv.$grey-light,
104
+ "grey-lighter": iv.$grey-lighter,
105
+ "white-ter": iv.$white-ter,
106
+ "white-bis": iv.$white-bis,
107
+ ),
108
+ $custom-shades
109
+ ) !default;
110
+
111
+ $sizes: iv.$size-1 iv.$size-2 iv.$size-3 iv.$size-4 iv.$size-5 iv.$size-6
112
+ iv.$size-7 !default;
@@ -0,0 +1,34 @@
1
+ @use "controls";
2
+ @use "mixins";
3
+
4
+ %arrow {
5
+ @include mixins.arrow;
6
+ }
7
+
8
+ %block {
9
+ @include mixins.block;
10
+ }
11
+
12
+ %control {
13
+ @include controls.control;
14
+ }
15
+
16
+ %delete {
17
+ @include mixins.delete;
18
+ }
19
+
20
+ %loader {
21
+ @include mixins.loader;
22
+ }
23
+
24
+ %overlay {
25
+ @include mixins.overlay;
26
+ }
27
+
28
+ %reset {
29
+ @include mixins.reset;
30
+ }
31
+
32
+ %unselectable {
33
+ @include mixins.unselectable;
34
+ }