fu-kit 0.6.2 → 0.7.0

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.
package/README.md CHANGED
@@ -8,9 +8,7 @@
8
8
 
9
9
  Lightweight cozy components library for Vue3.
10
10
 
11
- Non-buildable Vue3 SFC components built, mostly, to work with vite, but with some additional pain can works with vue-cli+webpack.
12
-
13
- Use it with caution. This is my play yard.
11
+ Use it with caution. This is my play yard.
14
12
 
15
13
  ## Standard Vue run sequence
16
14
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fu-kit",
3
- "version": "0.6.2",
3
+ "version": "0.7.0",
4
4
  "description": "",
5
5
  "main": "src/entry.js",
6
6
  "scripts": {
@@ -19,13 +19,11 @@
19
19
  "src/entry.js",
20
20
  "src/constants.js",
21
21
  "reset.scss",
22
- "root.scss",
22
+ "theme.scss",
23
23
  "scss.scss"
24
24
  ],
25
25
  "devDependencies": {
26
26
  "@vitejs/plugin-vue": "^1.9.3",
27
- "cross-env": "^7.0.3",
28
- "rimraf": "^3.0.2",
29
27
  "sass": "^1.26.5",
30
28
  "vite": "^2.6.4"
31
29
  },
@@ -36,10 +34,9 @@
36
34
  "node": ">=12"
37
35
  },
38
36
  "dependencies": {
39
- "lodash": "^4.17.21",
37
+ "a-signal": "^2.2.1",
40
38
  "vue": "^3.2.16",
41
39
  "vue-router": "^4.0.0-0",
42
- "vue-the-mask": "^0.11.1",
43
40
  "vue3-click-away": "^1.2.1"
44
41
  }
45
42
  }
package/reset.scss CHANGED
@@ -1,81 +1,92 @@
1
- @import "src/scss-kit/typo";
2
-
3
- body {
4
- margin: 0;
5
- padding: 0;
6
- color: var(--pal-text);
7
- }
8
-
9
- address, article, aside, blockquote, details, dialog, dd, div, dl, dt, fieldset, figcaption,
10
- figure, footer, form, hgroup, hr, li, main, nav,
11
- ol, p, pre, section, table, ul {
12
- margin: 0;
13
- padding: 0;
14
- box-sizing: border-box;
15
- font-family: var(--typo-font-text);
16
- line-height: 1.2;
17
- }
18
-
19
- h1, h2, h3, h4, h5, h6, header {
20
- font-family: var(--typo-font-heading);
21
- margin: 0;
22
- padding: 0;
23
- box-sizing: border-box;
24
- line-height: 1.2;
25
- }
26
-
27
- input, button, textarea, select, span, b, small {
28
- box-sizing: border-box;
29
- line-height: 1;
30
- font-family: var(--typo-font-text);
31
- font-size: inherit;
32
- }
33
-
34
- pre {
35
- font-family: var(--typo-font-mono);
36
- }
37
-
38
- h1 {
39
- @include typo(700);
40
- }
41
-
42
- h2 {
43
- @include typo(600);
44
- }
45
-
46
- h3 {
47
- @include typo(500);
48
- }
49
-
50
- h4 {
51
- @include typo(400);
52
- }
53
-
54
- h5 {
55
- @include typo(300);
56
- }
57
-
58
- p {
59
- @include typo(200);
60
- }
61
-
62
- small {
63
- @include typo(100);
64
- }
65
-
66
- label {
67
- @include typo(100);
68
- display: block;
69
- }
70
-
71
- a {
72
- color: var(--pal-link);
73
-
74
- &:active, &:focus {
75
- color: var(--pal-link-active);
76
- }
77
- }
78
-
79
- svg {
80
- fill: none;
81
- }
1
+ @import "src/scss-kit/typo";
2
+
3
+ body {
4
+ margin: 0;
5
+ padding: 0;
6
+ color: var(--pal-text);
7
+ }
8
+
9
+ address, article, aside, blockquote, details, dialog, dd, div, dl, dt, fieldset, figcaption,
10
+ figure, footer, form, hgroup, hr, li, main, nav,
11
+ ol, p, pre, section, table, ul {
12
+ margin: 0;
13
+ padding: 0;
14
+ box-sizing: border-box;
15
+ font-family: var(--typo-font-text);
16
+ line-height: 1.2;
17
+ }
18
+
19
+ h1, h2, h3, h4, h5, h6, header {
20
+ font-family: var(--typo-font-heading);
21
+ margin: 0;
22
+ padding: 0;
23
+ box-sizing: border-box;
24
+ line-height: 1.2;
25
+ }
26
+
27
+ input, button, textarea, select, span, b, small {
28
+ box-sizing: border-box;
29
+ line-height: 1;
30
+ font-family: var(--typo-font-text);
31
+ font-size: inherit;
32
+ }
33
+
34
+ pre {
35
+ font-family: var(--typo-font-mono);
36
+ }
37
+
38
+ h1 {
39
+ @include typo(700);
40
+ }
41
+
42
+ h2 {
43
+ @include typo(600);
44
+ }
45
+
46
+ h3 {
47
+ @include typo(500);
48
+ }
49
+
50
+ h4 {
51
+ @include typo(400);
52
+ }
53
+
54
+ h5 {
55
+ @include typo(300);
56
+ }
57
+
58
+ p {
59
+ @include typo(200);
60
+ }
61
+
62
+ small {
63
+ @include typo(100);
64
+ }
65
+
66
+ label {
67
+ @include typo(100);
68
+ display: block;
69
+ }
70
+
71
+ a {
72
+ color: var(--pal-link);
73
+
74
+ &:active {
75
+ color: var(--pal-link-active);
76
+ }
77
+
78
+ &:focus, &:hover {
79
+ color: var(--pal-link-hover);
80
+ text-decoration: underline;
81
+ }
82
+ }
83
+
84
+ svg {
85
+ fill: none;
86
+ }
87
+
88
+ hr {
89
+ border-width: 0 0 var(--ui-lt-border-width) 0;
90
+ border-color: var(--ui-pal-lateral);
91
+ margin: var(--hr-margin, spacing(200)) 0;
92
+ }
package/scss.scss CHANGED
@@ -1,4 +1,10 @@
1
+ @import "src/scss-kit/ui";
1
2
  @import "src/scss-kit/media";
2
3
  @import "src/scss-kit/colors";
3
4
  @import "src/scss-kit/typo";
4
- @import "src/scss-kit/ui";
5
+
6
+ @import "src/scss-kit/pal_light";
7
+ @import "src/scss-kit/pal_dark";
8
+ @import "src/scss-kit/pal_fu";
9
+
10
+ @import "src/scss-kit/typo_default";
@@ -153,7 +153,7 @@ export default defineComponent({
153
153
  }
154
154
 
155
155
  &:hover:not(&._disabled) &_box {
156
- box-shadow: 0 5px 12px -4px rgb(var(--rgb-dark), 0.2);
156
+ box-shadow: 0 5px 12px -4px rgb(var(--rgb-front), 0.2);
157
157
  }
158
158
 
159
159
  &:hover {
@@ -117,7 +117,7 @@ export default {
117
117
  }
118
118
 
119
119
  &._select &-item {
120
- color: var(--pal-white);
120
+ color: var(--pal-front);
121
121
  background: var(--pal-primary);
122
122
  }
123
123
 
@@ -126,7 +126,7 @@ export default {
126
126
  }
127
127
 
128
128
  input:focus ~ &._cursor &-item {
129
- border-bottom-color: var(--pal-black);
129
+ border-bottom-color: var(--pal-front);
130
130
  }
131
131
  }
132
132
  }
@@ -54,7 +54,9 @@ export default defineComponent({
54
54
  overflow: auto;
55
55
  max-width: 100%;
56
56
  background: var(--pal-block);
57
- border: 1px solid var(--pal-block-border);
57
+ border-width: 1px;
58
+ border-style: solid;
59
+ border-color: var(--pal-block-border, black);
58
60
  border-radius: var(--ui-lt-border-radius);
59
61
 
60
62
  --ui-scroll-bg: var(--pal-block);
@@ -79,7 +79,7 @@ export default defineComponent({
79
79
  @include ellipsis();
80
80
 
81
81
  --ui-lt-h: 2em;
82
- --ui-pal: var(--pal-light);
82
+ --ui-pal: var(--pal-grey900);
83
83
 
84
84
  &._hot {
85
85
  color: var(--pal-positive);
@@ -94,8 +94,8 @@ export default defineComponent({
94
94
  background: var(--ui-pal-bg);
95
95
  margin-top: spacing(200);
96
96
  z-index: var(--lt-z-pop);
97
- background: var(--pal-white);
98
- box-shadow: 0 3px 11px rgba(var(--rgb-black), 0.2);
97
+ background: var(--pal-bg);
98
+ box-shadow: 0 3px 11px rgba(var(--rgb-front), 0.2);
99
99
 
100
100
  &:not(._right) {
101
101
  left: 0;
@@ -18,19 +18,6 @@
18
18
  stroke-linejoin="round"
19
19
  stroke-width="2" />
20
20
  </symbol>
21
-
22
- <symbol id="gear" viewBox="0 0 24 24">
23
- <path d="M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z"
24
- stroke="var(--icon-color, currentColor)"
25
- stroke-linecap="round"
26
- stroke-linejoin="round"
27
- stroke-width="2" />
28
- <path d="M19.4 15C19.2669 15.3016 19.2272 15.6362 19.286 15.9606C19.3448 16.285 19.4995 16.5843 19.73 16.82L19.79 16.88C19.976 17.0657 20.1235 17.2863 20.2241 17.5291C20.3248 17.7719 20.3766 18.0322 20.3766 18.295C20.3766 18.5578 20.3248 18.8181 20.2241 19.0609C20.1235 19.3037 19.976 19.5243 19.79 19.71C19.6043 19.896 19.3837 20.0435 19.1409 20.1441C18.8981 20.2448 18.6378 20.2966 18.375 20.2966C18.1122 20.2966 17.8519 20.2448 17.6091 20.1441C17.3663 20.0435 17.1457 19.896 16.96 19.71L16.9 19.65C16.6643 19.4195 16.365 19.2648 16.0406 19.206C15.7162 19.1472 15.3816 19.1869 15.08 19.32C14.7842 19.4468 14.532 19.6572 14.3543 19.9255C14.1766 20.1938 14.0813 20.5082 14.08 20.83V21C14.08 21.5304 13.8693 22.0391 13.4942 22.4142C13.1191 22.7893 12.6104 23 12.08 23C11.5496 23 11.0409 22.7893 10.6658 22.4142C10.2907 22.0391 10.08 21.5304 10.08 21V20.91C10.0723 20.579 9.96512 20.258 9.77251 19.9887C9.5799 19.7194 9.31074 19.5143 9 19.4C8.69838 19.2669 8.36381 19.2272 8.03941 19.286C7.71502 19.3448 7.41568 19.4995 7.18 19.73L7.12 19.79C6.93425 19.976 6.71368 20.1235 6.47088 20.2241C6.22808 20.3248 5.96783 20.3766 5.705 20.3766C5.44217 20.3766 5.18192 20.3248 4.93912 20.2241C4.69632 20.1235 4.47575 19.976 4.29 19.79C4.10405 19.6043 3.95653 19.3837 3.85588 19.1409C3.75523 18.8981 3.70343 18.6378 3.70343 18.375C3.70343 18.1122 3.75523 17.8519 3.85588 17.6091C3.95653 17.3663 4.10405 17.1457 4.29 16.96L4.35 16.9C4.58054 16.6643 4.73519 16.365 4.794 16.0406C4.85282 15.7162 4.81312 15.3816 4.68 15.08C4.55324 14.7842 4.34276 14.532 4.07447 14.3543C3.80618 14.1766 3.49179 14.0813 3.17 14.08H3C2.46957 14.08 1.96086 13.8693 1.58579 13.4942C1.21071 13.1191 1 12.6104 1 12.08C1 11.5496 1.21071 11.0409 1.58579 10.6658C1.96086 10.2907 2.46957 10.08 3 10.08H3.09C3.42099 10.0723 3.742 9.96512 4.0113 9.77251C4.28059 9.5799 4.48572 9.31074 4.6 9C4.73312 8.69838 4.77282 8.36381 4.714 8.03941C4.65519 7.71502 4.50054 7.41568 4.27 7.18L4.21 7.12C4.02405 6.93425 3.87653 6.71368 3.77588 6.47088C3.67523 6.22808 3.62343 5.96783 3.62343 5.705C3.62343 5.44217 3.67523 5.18192 3.77588 4.93912C3.87653 4.69632 4.02405 4.47575 4.21 4.29C4.39575 4.10405 4.61632 3.95653 4.85912 3.85588C5.10192 3.75523 5.36217 3.70343 5.625 3.70343C5.88783 3.70343 6.14808 3.75523 6.39088 3.85588C6.63368 3.95653 6.85425 4.10405 7.04 4.29L7.1 4.35C7.33568 4.58054 7.63502 4.73519 7.95941 4.794C8.28381 4.85282 8.61838 4.81312 8.92 4.68H9C9.29577 4.55324 9.54802 4.34276 9.72569 4.07447C9.90337 3.80618 9.99872 3.49179 10 3.17V3C10 2.46957 10.2107 1.96086 10.5858 1.58579C10.9609 1.21071 11.4696 1 12 1C12.5304 1 13.0391 1.21071 13.4142 1.58579C13.7893 1.96086 14 2.46957 14 3V3.09C14.0013 3.41179 14.0966 3.72618 14.2743 3.99447C14.452 4.26276 14.7042 4.47324 15 4.6C15.3016 4.73312 15.6362 4.77282 15.9606 4.714C16.285 4.65519 16.5843 4.50054 16.82 4.27L16.88 4.21C17.0657 4.02405 17.2863 3.87653 17.5291 3.77588C17.7719 3.67523 18.0322 3.62343 18.295 3.62343C18.5578 3.62343 18.8181 3.67523 19.0609 3.77588C19.3037 3.87653 19.5243 4.02405 19.71 4.21C19.896 4.39575 20.0435 4.61632 20.1441 4.85912C20.2448 5.10192 20.2966 5.36217 20.2966 5.625C20.2966 5.88783 20.2448 6.14808 20.1441 6.39088C20.0435 6.63368 19.896 6.85425 19.71 7.04L19.65 7.1C19.4195 7.33568 19.2648 7.63502 19.206 7.95941C19.1472 8.28381 19.1869 8.61838 19.32 8.92V9C19.4468 9.29577 19.6572 9.54802 19.9255 9.72569C20.1938 9.90337 20.5082 9.99872 20.83 10H21C21.5304 10 22.0391 10.2107 22.4142 10.5858C22.7893 10.9609 23 11.4696 23 12C23 12.5304 22.7893 13.0391 22.4142 13.4142C22.0391 13.7893 21.5304 14 21 14H20.91C20.5882 14.0013 20.2738 14.0966 20.0055 14.2743C19.7372 14.452 19.5268 14.7042 19.4 15V15Z"
29
- stroke="var(--icon-color, currentColor)"
30
- stroke-linecap="round"
31
- stroke-linejoin="round"
32
- stroke-width="2" />
33
- </symbol>
34
21
  </svg>
35
22
  </template>
36
23
 
@@ -66,7 +66,7 @@ export default defineComponent({
66
66
  position: relative;
67
67
  margin: auto;
68
68
  border-radius: var(--ui-lt-border-radius);
69
- background: var(--pal-white);
69
+ background: var(--pal-front);
70
70
  max-width: 100vw;
71
71
 
72
72
  &-close {
@@ -4,7 +4,7 @@
4
4
  :value="modelValue"
5
5
  class="ui-select_select"
6
6
  v-bind="{ ...$attrs, class: undefined }"
7
- @input="$emit('update:modelValue', $event.target.value)"
7
+ @input.stop="$emit('update:modelValue', $event.target.value)"
8
8
  >
9
9
  <slot />
10
10
  </select>
@@ -68,11 +68,17 @@ export default defineComponent({
68
68
  cursor: not-allowed;
69
69
  color: var(--ui-pal-disabled-border);
70
70
  }
71
+
72
+ &:deep(option) {
73
+ line-height: var(--ui-lt-h);
74
+ background: var(--ui-pal-bg);
75
+ color: var(--ui-pal-text);
76
+ }
71
77
  }
72
78
 
73
79
  &:hover {
74
80
  outline: none;
75
- box-shadow: 0 5px 12px -4px rgb(var(--rgb-dark), 0.2);
81
+ box-shadow: 0 5px 12px -4px rgb(var(--rgb-front), 0.2);
76
82
  }
77
83
 
78
84
  &:focus-within {
@@ -202,7 +202,7 @@ export default defineComponent({
202
202
  transition-property: border-color, box-shadow;
203
203
  height: var(--ui-lt-h);
204
204
  position: relative;
205
- background: var(--ui-pal-bg);
205
+ background-color: var(--ui-pal-bg);
206
206
 
207
207
  &_input {
208
208
  @include typo(200);
@@ -269,6 +269,7 @@ export default defineComponent({
269
269
  font-family: var(--typo-font-ui);
270
270
  background: transparent;
271
271
  outline: none;
272
+ color: var(--ui-pal-text);
272
273
 
273
274
  &:hover {
274
275
  background-color: var(--ui-pal-lateral);
@@ -293,7 +294,7 @@ export default defineComponent({
293
294
 
294
295
  &:hover {
295
296
  outline: none;
296
- box-shadow: 0 5px 12px -4px rgb(var(--rgb-dark), 0.2);
297
+ box-shadow: 0 5px 12px -4px rgb(var(--rgb-front), 0.2);
297
298
  }
298
299
 
299
300
  &:focus-within {
@@ -78,7 +78,7 @@ html {
78
78
  bottom: 0;
79
79
  border-top-left-radius: var(--lt-border-radius);
80
80
  border-bottom-left-radius: var(--lt-border-radius);
81
- background: var(--pal-white);
81
+ background: var(--pal-front);
82
82
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.25);
83
83
  max-width: var(--ui-sidebar-max-w);
84
84
  min-width: var(--ui-sidebar-min-w);
@@ -63,7 +63,7 @@ export default defineComponent({
63
63
  transition-timing-function: ease-in-out;
64
64
  transition-property: border-color, box-shadow;
65
65
  height: var(--ui-lt-h);
66
- background: var(--pal-white);
66
+ background: var(--ui-pal-bg);
67
67
 
68
68
  &_input {
69
69
  @include typo(200);
@@ -103,7 +103,7 @@ export default defineComponent({
103
103
 
104
104
  &:hover {
105
105
  outline: none;
106
- box-shadow: 0 5px 12px -4px rgb(var(--rgb-dark), 0.2);
106
+ box-shadow: 0 5px 12px -4px rgb(var(--rgb-front), 0.2);
107
107
  }
108
108
 
109
109
  &:focus-within {
@@ -100,7 +100,7 @@ export default defineComponent({
100
100
 
101
101
  &:hover {
102
102
  outline: none;
103
- box-shadow: 0 5px 12px -4px rgb(var(--rgb-dark), 0.2);
103
+ box-shadow: 0 5px 12px -4px rgb(var(--rgb-front), 0.2);
104
104
  }
105
105
 
106
106
  &:focus-within {
package/src/entry.js CHANGED
@@ -1,7 +1,9 @@
1
1
  /* eslint-disable import/prefer-default-export */
2
+
2
3
  export { default as UiButton } from './components/UiButton.vue'
3
4
  export { default as UiButtonLink } from './components/UiButtonLink.vue'
4
5
  export { default as UiCodeView } from './components/UiCodeView.vue'
6
+ export { default as UiCodeInput } from './components/UiCodeInput.vue'
5
7
  export { default as UiCopy } from './components/UiCopy.vue'
6
8
  export { default as UiSelect } from './components/UiSelect.vue'
7
9
  export { default as UiSelectX } from './components/UiSelectX.vue'
@@ -15,3 +17,5 @@ export { default as UiDropdownItem } from './components/UiDropdownItem.vue'
15
17
  export { default as UiIconProvider } from './components/UiIconProvider.vue'
16
18
  export { default as UiIcon } from './components/UiIcon.vue'
17
19
  export { default as UiProgressRadial } from './components/UiProgressRadial.vue'
20
+
21
+ export { default as browserTheme } from './utils/browserTheme.js'
@@ -0,0 +1,73 @@
1
+ @import "colors";
2
+
3
+ @mixin pal_dark {
4
+ --rgb-back: #{hex2rgb(#000000)};
5
+ --rgb-grey100: #{hex2rgb(#1a1e21)};
6
+ --rgb-grey200: #{hex2rgb(#252b2f)};
7
+ --rgb-grey300: #{hex2rgb(#2c3338)};
8
+ --rgb-grey400: #{hex2rgb(#3e434b)};
9
+ --rgb-grey500: #{hex2rgb(#666a75)};
10
+ --rgb-grey600: #{hex2rgb(#A5A5A5)};
11
+ --rgb-grey700: #{hex2rgb(#BFBFBF)};
12
+ --rgb-grey800: #{hex2rgb(#DCDCDC)};
13
+ --rgb-grey900: #{hex2rgb(#FAFAFA)};
14
+ --rgb-front: #{hex2rgb(#FFFFFF)};
15
+
16
+ --rgb-primary: #{hex2rgb(#0095ff)};
17
+ --rgb-secondary: #{hex2rgb(#4179a2)};
18
+ --rgb-positive: #{hex2rgb(#3e9400)};
19
+ --rgb-warning: #{hex2rgb(#ff7300)};
20
+ --rgb-negative: #{hex2rgb(#ff3535)};
21
+
22
+ --rgb-link: #{hex2rgb(#0072bd)};
23
+ --rgb-link-active: #{hex2rgb(#0095ff)};
24
+ --rgb-link-hover: #{hex2rgb(#0095ff)};
25
+ --rgb-link-visited: #{hex2rgb(#6250ff)};
26
+
27
+ --pal-back: rgb(var(--rgb-back));
28
+ --pal-grey100: rgb(var(--rgb-grey100));
29
+ --pal-grey200: rgb(var(--rgb-grey200));
30
+ --pal-grey300: rgb(var(--rgb-grey300));
31
+ --pal-grey400: rgb(var(--rgb-grey400));
32
+ --pal-grey500: rgb(var(--rgb-grey500));
33
+ --pal-grey600: rgb(var(--rgb-grey600));
34
+ --pal-grey700: rgb(var(--rgb-grey700));
35
+ --pal-grey800: rgb(var(--rgb-grey800));
36
+ --pal-grey900: rgb(var(--rgb-grey900));
37
+ --pal-front: rgb(var(--rgb-front));
38
+
39
+ --pal-primary: rgb(var(--rgb-primary));
40
+ --pal-secondary: rgb(var(--rgb-secondary));
41
+ --pal-positive: rgb(var(--rgb-positive));
42
+ --pal-warning: rgb(var(--rgb-warning));
43
+ --pal-negative: rgb(var(--rgb-negative));
44
+
45
+ --pal-acc-primary: rgb(var(--rgb-front));
46
+ --pal-acc-secondary: rgb(var(--rgb-front));
47
+ --pal-acc-positive: rgb(var(--rgb-front));
48
+ --pal-acc-warning: rgb(var(--rgb-front));
49
+ --pal-acc-negative: rgb(var(--rgb-front));
50
+
51
+ --pal-text: rgb(var(--rgb-grey900));
52
+ --pal-text-dimm: rgb(var(--rgb-grey600));
53
+ --pal-block: rgb(var(--rgb-grey100));
54
+ --pal-block-border: rgb(var(--rgb-grey200));
55
+ --pal-bg: rgb(var(--rgb-grey200));
56
+ --pal-overlay: rgba(var(--rgb-grey500), 0.2);
57
+
58
+ --pal-link: rgb(var(--rgb-link));
59
+ --pal-link-active: rgb(var(--rgb-link-active));
60
+ --pal-link-hover: rgb(var(--rgb-link-hover));
61
+ --pal-link-visited: rgb(var(--rgb-link-visited));
62
+
63
+ --ui-rgb: var(--rgb-primary);
64
+ --ui-pal: var(--pal-primary);
65
+ --ui-pal-bg: var(--pal-grey100);
66
+ --ui-pal-acc: var(--pal-acc-primary);
67
+ --ui-pal-lateral: var(--pal-grey300);
68
+ --ui-pal-text: var(--pal-front);
69
+ --ui-pal-text-select: var(--pal-front);
70
+ --ui-pal-placeholder: var(--pal-grey400);
71
+ --ui-pal-disabled: var(--pal-grey300);
72
+ --ui-pal-disabled-border: var(--pal-grey500);
73
+ }
@@ -0,0 +1,73 @@
1
+ @import "colors";
2
+
3
+ @mixin pal_fu {
4
+ --rgb-back: #{hex2rgb(#000000)};
5
+ --rgb-grey100: #{hex2rgb(#1a1e21)};
6
+ --rgb-grey200: #{hex2rgb(#252b2f)};
7
+ --rgb-grey300: #{hex2rgb(#2c3338)};
8
+ --rgb-grey400: #{hex2rgb(#3e434b)};
9
+ --rgb-grey500: #{hex2rgb(#666a75)};
10
+ --rgb-grey600: #{hex2rgb(#A5A5A5)};
11
+ --rgb-grey700: #{hex2rgb(#BFBFBF)};
12
+ --rgb-grey800: #{hex2rgb(#DCDCDC)};
13
+ --rgb-grey900: #{hex2rgb(#FAFAFA)};
14
+ --rgb-front: #{hex2rgb(#FFFFFF)};
15
+
16
+ --rgb-primary: #{hex2rgb(#ff7300)};
17
+ --rgb-secondary: #{hex2rgb(#ff4400)};
18
+ --rgb-positive: #{hex2rgb(#ffecdd)};
19
+ --rgb-warning: #{hex2rgb(#ffc500)};
20
+ --rgb-negative: #{hex2rgb(#ff3535)};
21
+
22
+ --rgb-link: #{hex2rgb(#0072bd)};
23
+ --rgb-link-active: #{hex2rgb(#0095ff)};
24
+ --rgb-link-hover: #{hex2rgb(#0095ff)};
25
+ --rgb-link-visited: #{hex2rgb(#6250ff)};
26
+
27
+ --pal-back: rgb(var(--rgb-back));
28
+ --pal-grey100: rgb(var(--rgb-grey100));
29
+ --pal-grey200: rgb(var(--rgb-grey200));
30
+ --pal-grey300: rgb(var(--rgb-grey300));
31
+ --pal-grey400: rgb(var(--rgb-grey400));
32
+ --pal-grey500: rgb(var(--rgb-grey500));
33
+ --pal-grey600: rgb(var(--rgb-grey600));
34
+ --pal-grey700: rgb(var(--rgb-grey700));
35
+ --pal-grey800: rgb(var(--rgb-grey800));
36
+ --pal-grey900: rgb(var(--rgb-grey900));
37
+ --pal-front: rgb(var(--rgb-front));
38
+
39
+ --pal-primary: rgb(var(--rgb-primary));
40
+ --pal-secondary: rgb(var(--rgb-secondary));
41
+ --pal-positive: rgb(var(--rgb-positive));
42
+ --pal-warning: rgb(var(--rgb-warning));
43
+ --pal-negative: rgb(var(--rgb-negative));
44
+
45
+ --pal-acc-primary: rgb(var(--rgb-front));
46
+ --pal-acc-secondary: rgb(var(--rgb-front));
47
+ --pal-acc-positive: rgb(var(--rgb-back));
48
+ --pal-acc-warning: rgb(var(--rgb-front));
49
+ --pal-acc-negative: rgb(var(--rgb-front));
50
+
51
+ --pal-text: rgb(var(--rgb-grey900));
52
+ --pal-text-dimm: rgb(var(--rgb-grey600));
53
+ --pal-block: rgb(var(--rgb-grey100));
54
+ --pal-block-border: rgb(var(--rgb-grey200));
55
+ --pal-bg: rgb(var(--rgb-grey200));
56
+ --pal-overlay: rgba(var(--rgb-grey500), 0.2);
57
+
58
+ --pal-link: rgb(var(--rgb-link));
59
+ --pal-link-active: rgb(var(--rgb-link-active));
60
+ --pal-link-hover: rgb(var(--rgb-link-hover));
61
+ --pal-link-visited: rgb(var(--rgb-link-visited));
62
+
63
+ --ui-rgb: var(--rgb-primary);
64
+ --ui-pal: var(--pal-primary);
65
+ --ui-pal-bg: var(--pal-grey100);
66
+ --ui-pal-acc: var(--pal-acc-primary);
67
+ --ui-pal-lateral: var(--pal-grey300);
68
+ --ui-pal-text: var(--pal-front);
69
+ --ui-pal-text-select: var(--pal-front);
70
+ --ui-pal-placeholder: var(--pal-grey400);
71
+ --ui-pal-disabled: var(--pal-grey300);
72
+ --ui-pal-disabled-border: var(--pal-grey500);
73
+ }
@@ -0,0 +1,73 @@
1
+ @import "colors";
2
+
3
+ @mixin pal_light {
4
+ --rgb-back: #{hex2rgb(#FFFFFF)};
5
+ --rgb-grey100: #{hex2rgb(#FAFAFA)};
6
+ --rgb-grey200: #{hex2rgb(#DCDCDC)};
7
+ --rgb-grey300: #{hex2rgb(#BFBFBF)};
8
+ --rgb-grey400: #{hex2rgb(#A5A5A5)};
9
+ --rgb-grey500: #{hex2rgb(#6C6C6C)};
10
+ --rgb-grey600: #{hex2rgb(#515151)};
11
+ --rgb-grey700: #{hex2rgb(#363636)};
12
+ --rgb-grey800: #{hex2rgb(#1C1C1C)};
13
+ --rgb-grey900: #{hex2rgb(#151515)};
14
+ --rgb-front: #{hex2rgb(#000000)};
15
+
16
+ --rgb-primary: #{hex2rgb(#0095ff)};
17
+ --rgb-secondary: #{hex2rgb(#131315)};
18
+ --rgb-positive: #{hex2rgb(#3e9400)};
19
+ --rgb-warning: #{hex2rgb(#ff7300)};
20
+ --rgb-negative: #{hex2rgb(#ff3535)};
21
+
22
+ --rgb-link: #{hex2rgb(#0072bd)};
23
+ --rgb-link-active: #{hex2rgb(#0095ff)};
24
+ --rgb-link-hover: #{hex2rgb(#0095ff)};
25
+ --rgb-link-visited: #{hex2rgb(#6250ff)};
26
+
27
+ --pal-back: rgb(var(--rgb-back));
28
+ --pal-grey100: rgb(var(--rgb-grey100));
29
+ --pal-grey200: rgb(var(--rgb-grey200));
30
+ --pal-grey300: rgb(var(--rgb-grey300));
31
+ --pal-grey400: rgb(var(--rgb-grey400));
32
+ --pal-grey500: rgb(var(--rgb-grey500));
33
+ --pal-grey600: rgb(var(--rgb-grey600));
34
+ --pal-grey700: rgb(var(--rgb-grey700));
35
+ --pal-grey800: rgb(var(--rgb-grey800));
36
+ --pal-grey900: rgb(var(--rgb-grey900));
37
+ --pal-front: rgb(var(--rgb-front));
38
+
39
+ --pal-primary: rgb(var(--rgb-primary));
40
+ --pal-secondary: rgb(var(--rgb-secondary));
41
+ --pal-positive: rgb(var(--rgb-positive));
42
+ --pal-warning: rgb(var(--rgb-warning));
43
+ --pal-negative: rgb(var(--rgb-negative));
44
+
45
+ --pal-acc-primary: rgb(var(--rgb-back));
46
+ --pal-acc-secondary: rgb(var(--rgb-back));
47
+ --pal-acc-positive: rgb(var(--rgb-back));
48
+ --pal-acc-warning: rgb(var(--rgb-back));
49
+ --pal-acc-negative: rgb(var(--rgb-back));
50
+
51
+ --pal-text: rgb(var(--rgb-grey900));
52
+ --pal-text-dimm: rgb(var(--rgb-grey600));
53
+ --pal-block: rgb(var(--rgb-grey200));
54
+ --pal-block-border: rgb(var(--rgb-grey300));
55
+ --pal-bg: rgb(var(--rgb-back));
56
+ --pal-overlay: rgba(var(--rgb-grey500), 0.2);
57
+
58
+ --pal-link: rgb(var(--rgb-link));
59
+ --pal-link-active: rgb(var(--rgb-link-active));
60
+ --pal-link-hover: rgb(var(--rgb-link-hover));
61
+ --pal-link-visited: rgb(var(--rgb-link-visited));
62
+
63
+ --ui-rgb: var(--rgb-primary);
64
+ --ui-pal: var(--pal-primary);
65
+ --ui-pal-bg: var(--pal-bg);
66
+ --ui-pal-acc: var(--pal-acc-primary);
67
+ --ui-pal-lateral: rgb(var(--rgb-grey200));
68
+ --ui-pal-text: rgb(var(--rgb-front));
69
+ --ui-pal-text-select: rgb(var(--rgb-back));
70
+ --ui-pal-placeholder: rgb(var(--rgb-grey300));
71
+ --ui-pal-disabled: rgb(var(--rgb-grey100));
72
+ --ui-pal-disabled-border: rgb(var(--rgb-grey300));
73
+ }
@@ -0,0 +1,71 @@
1
+ $spacing_growth_k: 2;
2
+
3
+ @mixin typo_default {
4
+ --ui-lt-h: 36px;
5
+ --ui-lt-h-sub: 22px;
6
+ --ui-lt-check-border-width: 2px;
7
+ --ui-switch-h: 24px;
8
+ --ui-switch-w: 38px;
9
+ --ui-check-size: 20px;
10
+ --ui-check-border-w: 2px;
11
+ --ui-lt-border-style: solid;
12
+ --ui-lt-border-width: 1px;
13
+ --ui-lt-border-radius: var(--lt-border-radius-inner);
14
+ --ui-lt-disabled-border-style: dashed;
15
+
16
+ --ui-scroll-bg: inherit;
17
+ --ui-scroll-width: 8px;
18
+
19
+ --ui-dropdown-max-height: 30vh;
20
+
21
+ --typo-font-text: Helvetica, 'Segoe UI', San Francisco, Roboto, Lucida Sans;
22
+ --typo-font-heading: var(--typo-font-text);
23
+ --typo-font-ui: var(--typo-font-text);
24
+ --typo-font-mono: monospace;
25
+
26
+ // font-sizes
27
+ --typo-h100: 12px;
28
+ --typo-h200: 14px;
29
+ --typo-h300: 16px;
30
+ --typo-h400: 18px;
31
+ --typo-h500: 22px;
32
+ --typo-h600: 26px;
33
+ --typo-h700: 30px;
34
+ --typo-h800: 36px;
35
+ --typo-h900: 42px;
36
+
37
+ // line heights
38
+ --typo-lh100: 14px;
39
+ --typo-lh200: 16px;
40
+ --typo-lh300: 18px;
41
+ --typo-lh400: 22px;
42
+ --typo-lh500: 24px;
43
+ --typo-lh600: 36px;
44
+ --typo-lh700: 42px;
45
+ --typo-lh800: 48px;
46
+ --typo-lh900: 64px;
47
+
48
+ // spacing vars
49
+
50
+ --lt-sp100: #{$spacing_growth_k * 1}px; // =
51
+ --lt-sp200: #{$spacing_growth_k * 2}px; // ==
52
+ --lt-sp300: #{$spacing_growth_k * 3}px; // ===
53
+ --lt-sp400: #{$spacing_growth_k * 5}px; // =====
54
+ --lt-sp500: #{$spacing_growth_k * 8}px; // ========
55
+ --lt-sp600: #{$spacing_growth_k * 11}px; // ===========
56
+ --lt-sp700: #{$spacing_growth_k * 15}px; // ===============
57
+ --lt-sp800: #{$spacing_growth_k * 21}px; // =====================
58
+ --lt-sp900: #{$spacing_growth_k * 28}px; // ============================
59
+
60
+ --lt-border-radius: 0px;
61
+ --lt-border-radius-inner: 0px;
62
+
63
+ --lt-z-1: 1;
64
+ --lt-z-back: -1;
65
+ --lt-z-pop: 1000;
66
+ --lt-z-nav: 2000;
67
+ --lt-z-modal-backdrop: 3000;
68
+ --lt-z-modal: 3001;
69
+
70
+ --ui-transition: linear 120ms;
71
+ }
@@ -0,0 +1,26 @@
1
+ import Signal from 'a-signal'
2
+
3
+ const SYS_THEMES = Object.freeze({
4
+ LIGHT: 'light',
5
+ DARK: 'dark',
6
+ AUTO: '',
7
+ })
8
+
9
+ const query = window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null
10
+
11
+ const change = new Signal({ memorable: true, late: true })
12
+
13
+ const doResolve = () => {
14
+ const theme = query && query.matches ? SYS_THEMES.DARK : SYS_THEMES.LIGHT
15
+ change.emit(theme)
16
+ }
17
+
18
+ if (query) {
19
+ query.addEventListener('change', doResolve)
20
+ } else {
21
+ console.warn(`Theme detection is not supported by your browser! (window.matchMedia)`)
22
+ }
23
+
24
+ doResolve()
25
+
26
+ export default { change, SYS_THEMES, doResolve }
package/root.scss DELETED
@@ -1,146 +0,0 @@
1
- @import "src/scss-kit/typo";
2
- @import "src/scss-kit/colors";
3
-
4
- html {
5
- // RAW RGB VALUES
6
- --rgb-white: #{hex2rgb(#FFFFFF)};
7
- --rgb-light: #{hex2rgb(#FAFAFA)};
8
- --rgb-grey100: #{hex2rgb(#F4F4F4)};
9
- --rgb-grey200: #{hex2rgb(#DCDCDC)};
10
- --rgb-grey300: #{hex2rgb(#BFBFBF)};
11
- --rgb-grey400: #{hex2rgb(#A5A5A5)};
12
- --rgb-grey500: #{hex2rgb(#878787)};
13
- --rgb-grey600: #{hex2rgb(#6C6C6C)};
14
- --rgb-grey700: #{hex2rgb(#515151)};
15
- --rgb-grey800: #{hex2rgb(#363636)};
16
- --rgb-grey900: #{hex2rgb(#1C1C1C)};
17
- --rgb-dark: #{hex2rgb(#151515)};
18
- --rgb-black: #{hex2rgb(#000000)};
19
-
20
- --rgb-brand: #{hex2rgb(#0095ff)};
21
- --rgb-primary: #{hex2rgb(#0095ff)};
22
- --rgb-secondary: #{hex2rgb(#131315)};
23
- --rgb-positive: #{hex2rgb(#3e9400)};
24
- --rgb-warning: #{hex2rgb(#ff7300)};
25
- --rgb-negative: #{hex2rgb(#ff3535)};
26
- --rgb-link: #{hex2rgb(#0095ff)};
27
-
28
- // Format palette colors: "--pal-{code}": #RGB
29
-
30
- --pal-white: rgb(var(--rgb-white));
31
- --pal-light: rgb(var(--rgb-light));
32
- --pal-grey100: rgb(var(--rgb-grey100));
33
- --pal-grey200: rgb(var(--rgb-grey200));
34
- --pal-grey300: rgb(var(--rgb-grey300));
35
- --pal-grey400: rgb(var(--rgb-grey400));
36
- --pal-grey500: rgb(var(--rgb-grey500));
37
- --pal-grey600: rgb(var(--rgb-grey600));
38
- --pal-grey700: rgb(var(--rgb-grey700));
39
- --pal-grey800: rgb(var(--rgb-grey800));
40
- --pal-grey900: rgb(var(--rgb-grey900));
41
- --pal-dark: rgb(var(--rgb-dark));
42
- --pal-black: rgb(var(--rgb-black));
43
-
44
- --pal-brand: rgb(var(--rgb-brand));
45
- --pal-primary: rgb(var(--rgb-primary));
46
- --pal-secondary: rgb(var(--rgb-secondary));
47
- --pal-positive: rgb(var(--rgb-positive));
48
- --pal-warning: rgb(var(--rgb-warning));
49
- --pal-negative: rgb(var(--rgb-negative));
50
-
51
- --pal-acc-brand: rgb(var(--rgb-white));
52
- --pal-acc-primary: rgb(var(--rgb-white));
53
- --pal-acc-secondary: rgb(var(--rgb-white));
54
- --pal-acc-positive: rgb(var(--rgb-white));
55
- --pal-acc-warning: rgb(var(--rgb-white));
56
- --pal-acc-negative: rgb(var(--rgb-white));
57
-
58
- --pal-text: rgb(var(--rgb-grey700));
59
- --pal-text-dimm: rgb(var(--rgb-grey600));
60
- --pal-block: rgb(var(--rgb-grey100));
61
- --pal-block-border: rgb(var(--rgb-grey200));
62
- --pal-bg: rgb(var(--rgb-white));
63
- --pal-overlay: rgba(var(--rgb-grey500), 0.2);
64
- --pal-link: rgb(var(--rgb-primary));
65
- --pal-link-active: rgb(var(--rgb-brand));
66
-
67
- --ui-rgb: var(--rgb-primary);
68
- --ui-pal: var(--pal-primary);
69
- --ui-pal-bg: var(--pal-bg);
70
- --ui-pal-acc: var(--pal-acc-primary);
71
- --ui-pal-lateral: rgb(var(--rgb-grey200));
72
- --ui-pal-text: rgb(var(--rgb-dark));
73
- --ui-pal-text-select: rgb(var(--rgb-light));
74
- --ui-pal-placeholder: rgb(var(--rgb-grey300));
75
- --ui-pal-disabled: rgb(var(--rgb-grey100));
76
- --ui-pal-disabled-border: rgb(var(--rgb-grey300));
77
-
78
- --ui-lt-h: 36px;
79
- --ui-lt-h-sub: 22px;
80
- --ui-lt-check-border-width: 2px;
81
- --ui-switch-h: 24px;
82
- --ui-switch-w: 38px;
83
- --ui-check-size: 20px;
84
- --ui-check-border-w: 2px;
85
- --ui-lt-border-style: solid;
86
- --ui-lt-border-width: 2px;
87
- --ui-lt-border-radius: var(--lt-border-radius-inner);
88
- --ui-lt-disabled-border-style: dashed;
89
-
90
- --ui-scroll-bg: inherit;
91
- --ui-scroll-width: 8px;
92
-
93
- --ui-dropdown-max-height: 30vh;
94
-
95
- --typo-font-text: Helvetica, 'Segoe UI', San Francisco, Roboto, Lucida Sans;
96
- --typo-font-heading: var(--typo-font-text);
97
- --typo-font-ui: var(--typo-font-text);
98
- --typo-font-mono: monospace;
99
-
100
- // font-size
101
- // format font-size vars: "--lt-{code}": 14px;
102
- --typo-h100: 12px;
103
- --typo-h200: 14px;
104
- --typo-h300: 16px;
105
- --typo-h400: 18px;
106
- --typo-h500: 22px;
107
- --typo-h600: 26px;
108
- --typo-h700: 30px;
109
- --typo-h800: 36px;
110
- --typo-h900: 42px;
111
-
112
- // line-height vars (typo usually has the same number part)
113
- // format font-size vars: "--typo-{code}": 14px;
114
- --typo-lh100: 14px;
115
- --typo-lh200: 16px;
116
- --typo-lh300: 18px;
117
- --typo-lh400: 22px;
118
- --typo-lh500: 24px;
119
- --typo-lh600: 36px;
120
- --typo-lh700: 42px;
121
- --typo-lh800: 48px;
122
- --typo-lh900: 64px;
123
-
124
- // spacing vars
125
- --lt-sp100: 2px;
126
- --lt-sp200: 4px;
127
- --lt-sp300: 8px;
128
- --lt-sp400: 16px;
129
- --lt-sp500: 32px;
130
- --lt-sp600: 64px;
131
- --lt-sp700: 128px;
132
- --lt-sp800: 256px;
133
- --lt-sp900: 512px;
134
-
135
- --lt-border-radius: 0px;
136
- --lt-border-radius-inner: 0px;
137
-
138
- --lt-z-1: 1;
139
- --lt-z-back: -1;
140
- --lt-z-pop: 1000;
141
- --lt-z-nav: 2000;
142
- --lt-z-modal-backdrop: 3000;
143
- --lt-z-modal: 3001;
144
-
145
- --ui-transition: linear 120ms;
146
- }