@oardi/css-utils 0.38.1 → 0.39.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oardi/css-utils",
3
- "version": "0.38.1",
3
+ "version": "0.39.1",
4
4
  "author": "Ardian Shala",
5
5
  "homepage": "https://css-utils.oardi.com",
6
6
  "description": "Powerful set of semantic css classes with support for breakpoints, directions and spacings",
@@ -11,7 +11,7 @@
11
11
 
12
12
  --button-font-size: var(--font-size);
13
13
  --button-padding-y: 0.25rem;
14
- --button-padding-x: 0.9rem;
14
+ --button-padding-x: 1rem;
15
15
 
16
16
  --button-disabled-font-color: var(--disabled-font-color);
17
17
  --button-disabled-bg-color: var(--disabled-bg-color);
@@ -72,6 +72,7 @@
72
72
  .btn-#{$name} {
73
73
  --button-color: var(--#{$name});
74
74
  --button-color-hover: var(--#{$name}-hover);
75
+ --button-color-active: var(--#{$name}-active);
75
76
  --button-color-rgb: var(--#{$name}-rgb);
76
77
  --button-on-color: var(--on-#{$name});
77
78
  }
@@ -83,13 +84,17 @@
83
84
  background-color: var(--button-color);
84
85
  border-color: var(--button-color);
85
86
 
86
- &:hover,
87
- &.active,
88
- &:active {
87
+ &:hover {
89
88
  background-color: var(--button-color-hover);
90
89
  border-color: var(--button-color-hover);
91
90
  }
92
91
 
92
+ &.active,
93
+ &:active {
94
+ background-color: var(--button-color-active);
95
+ border-color: var(--button-color-active);
96
+ }
97
+
93
98
  &:focus-visible {
94
99
  outline: var(--button-focus-outline-width) var(--button-focus-outline-style) rgba(var(--button-color-rgb), 0.5);
95
100
  }
@@ -101,15 +106,21 @@
101
106
  background-color: transparent;
102
107
  border-color: var(--button-color);
103
108
 
104
- &:hover,
105
- &.active,
106
- &:active {
109
+ &:hover {
107
110
  color: var(--button-on-color);
108
111
  fill: var(--button-on-color);
109
112
  background-color: var(--button-color-hover);
110
113
  border-color: var(--button-color-hover);
111
114
  }
112
115
 
116
+ &.active,
117
+ &:active {
118
+ color: var(--button-on-color);
119
+ fill: var(--button-on-color);
120
+ background-color: var(--button-color-active);
121
+ border-color: var(--button-color-active);
122
+ }
123
+
113
124
  &:focus-visible {
114
125
  color: var(--button-on-color);
115
126
  fill: var(--button-on-color);
@@ -7,6 +7,7 @@
7
7
  --chip-border-radius: 16px;
8
8
  --chip-border-width: var(--border-width);
9
9
  --chip-highlight: var(--highlight);
10
+ --chip-transition-duration: var(--transition-duration, 0.2s);
10
11
 
11
12
  display: inline-flex;
12
13
  border-width: var(--chip-border-width);
@@ -15,7 +16,12 @@
15
16
  border-color: transparent;
16
17
  color: var(--font-color);
17
18
  font-size: var(--chip-label-font-size);
18
- transition: var(--transition-color);
19
+
20
+ transition:
21
+ color var(--chip-transition-duration),
22
+ background-color var(--chip-transition-duration),
23
+ border-color var(--chip-transition-duration);
24
+
19
25
  -webkit-tap-highlight-color: transparent;
20
26
  touch-action: manipulation; // ios fix
21
27
 
@@ -8,15 +8,25 @@
8
8
  --expansion-panel-inner-padding: 1.25rem;
9
9
  --expansion-panel-border-color: var(--border-color);
10
10
  --expansion-panel-header-bg-color: var(--bg-surface);
11
+ --expansion-panel-transition-duration: var(--transition-duration, 0.2s);
12
+
13
+ --expansion-panel-focus-outline-width: var(--focus-outline-width);
14
+ --expansion-panel-focus-outline-style: var(--focus-outline-style);
15
+ --expansion-panel-focus-outline-color: var(--focus-outline-color);
11
16
 
12
17
  color: var(--font-color);
13
18
  border: 1px solid var(--expansion-panel-border-color);
14
19
  border-radius: var(--border-radius);
15
20
  background-color: var(--expansion-panel-header-bg-color);
16
- transition: var(--transition-color);
21
+
22
+ transition:
23
+ color var(--expansion-panel-transition-duration),
24
+ background-color var(--expansion-panel-transition-duration),
25
+ border-color var(--expansion-panel-transition-duration);
17
26
 
18
27
  &:focus {
19
- outline: var(--focus-outline);
28
+ outline: var(--expansion-panel-focus-outline-width) var(--expansion-panel-focus-outline-style)
29
+ var(--expansion-panel-focus-outline-color);
20
30
  outline-offset: var(--focus-offset);
21
31
  }
22
32
 
@@ -2,10 +2,15 @@
2
2
  --input-bg-color: var(--bg-surface);
3
3
  --input-border-width: var(--border-width);
4
4
  --input-border-color: var(--border-color);
5
+
5
6
  --form-control-disabled-font-color: var(--disabled-font-color);
6
7
  --form-control-disabled-bg-color: var(--disabled-bg-color);
7
8
  --form-control-disabled-border-color: var(--disabled-border-color);
8
9
 
10
+ --form-control-focus-outline-width: var(--focus-outline-width);
11
+ --form-control-focus-outline-style: var(--focus-outline-style);
12
+ --form-control-focus-outline-color: var(--focus-outline-color);
13
+
9
14
  display: block;
10
15
  width: 100%;
11
16
  max-width: 100%;
@@ -26,7 +31,8 @@
26
31
  &:focus {
27
32
  background-color: var(--input-bg-color);
28
33
  border-color: var(--primary-hover);
29
- outline: var(--focus-outline);
34
+ outline: var(--form-control-focus-outline-width) var(--form-control-focus-outline-style)
35
+ var(--form-control-focus-outline-color);
30
36
  outline-offset: var(--focus-offset);
31
37
  }
32
38
 
@@ -111,7 +117,8 @@ textarea.form-control {
111
117
  }
112
118
 
113
119
  &:focus {
114
- outline: var(--focus-outline);
120
+ outline: var(--form-control-focus-outline-width) var(--form-control-focus-outline-style)
121
+ var(--form-control-focus-outline-color);
115
122
  outline-offset: var(--focus-offset);
116
123
  }
117
124
 
@@ -18,10 +18,13 @@ $sizes: (
18
18
 
19
19
  --icon-button-focus-outline-width: var(--focus-outline-width);
20
20
  --icon-button-focus-outline-style: var(--focus-outline-style);
21
+ --icon-button-focus-outline-color: var(--focus-outline-color);
21
22
 
22
23
  --icon-button-svg-width: 18px;
23
24
  --icon-button-svg-height: 18px;
24
25
 
26
+ --icon-button-transition-duration: var(--transition-duration, 0.2s);
27
+
25
28
  padding: var(--icon-button-padding);
26
29
  min-width: var(--icon-button-min-width);
27
30
  width: var(--icon-button-width);
@@ -39,7 +42,11 @@ $sizes: (
39
42
  fill: var(--font-color);
40
43
  color: var(--font-color);
41
44
 
42
- transition: var(--transition-color);
45
+ transition:
46
+ color var(--icon-button-transition-duration),
47
+ background-color var(--icon-button-transition-duration),
48
+ border-color var(--icon-button-transition-duration);
49
+
43
50
  -webkit-tap-highlight-color: transparent;
44
51
  touch-action: manipulation; // ios fix
45
52
 
@@ -6,6 +6,8 @@
6
6
  overflow-y: visible;
7
7
 
8
8
  .tab {
9
+ --tab-transition-duration: var(--transition-duration, 0.2s);
10
+
9
11
  color: var(--font-color);
10
12
  background-color: var(--tab-bg-color, var(--bg-surface));
11
13
  text-align: center;
@@ -14,7 +16,10 @@
14
16
  border-bottom: 3px solid var(--tab-border-color, var(--border-color));
15
17
  flex: 1 0 auto;
16
18
 
17
- transition: var(--transition-color);
19
+ transition:
20
+ color var(--tab-transition-duration),
21
+ background-color var(--tab-transition-duration),
22
+ border-color var(--tab-transition-duration);
18
23
 
19
24
  &.active {
20
25
  color: var(--primary);
@@ -46,11 +51,16 @@
46
51
  }
47
52
 
48
53
  .tab-content {
54
+ --tab-content-transition-duration: var(--transition-duration, 0.2s);
55
+
49
56
  display: none;
50
57
  padding: 20px;
51
58
  background-color: var(--tab-content-bg-color, var(--bg-surface));
52
59
 
53
- transition: var(--transition-color);
60
+ transition:
61
+ color var(--tab-content-transition-duration),
62
+ background-color var(--tab-content-transition-duration),
63
+ border-color var(--tab-content-transition-duration);
54
64
 
55
65
  &.active {
56
66
  display: block;
package/scss/theme.scss CHANGED
@@ -4,22 +4,48 @@ $spacer: 1rem;
4
4
 
5
5
  $default-theme: (
6
6
  colors: (
7
- 'primary': #9163e7,
8
- 'secondary': #595959,
9
- 'success': #16a085,
10
- 'warning': #ffc557,
11
- 'error': #eb4242,
12
- 'white': #ffffff,
13
- 'black': #000000,
14
- ),
15
- on-colors: (
16
- 'on-primary': #ffffff,
17
- 'on-secondary': #ffffff,
18
- 'on-success': #ffffff,
19
- 'on-warning': #ffffff,
20
- 'on-error': #ffffff,
21
- 'on-white': #000000,
22
- 'on-black': #ffffff,
7
+ 'primary': (
8
+ base: #9163e7,
9
+ hover: #7e4fdb,
10
+ active: #6f3bd2,
11
+ on: #ffffff,
12
+ ),
13
+ 'secondary': (
14
+ base: #595959,
15
+ hover: #4d4d4d,
16
+ active: #414141,
17
+ on: #ffffff,
18
+ ),
19
+ 'success': (
20
+ base: #16a085,
21
+ hover: #138f77,
22
+ active: #0f7e69,
23
+ on: #ffffff,
24
+ ),
25
+ 'warning': (
26
+ base: #ffc557,
27
+ hover: #f0b84f,
28
+ active: #e0a843,
29
+ on: #000000,
30
+ ),
31
+ 'error': (
32
+ base: #eb4242,
33
+ hover: #d73a3a,
34
+ active: #c73232,
35
+ on: #ffffff,
36
+ ),
37
+ 'white': (
38
+ base: #ffffff,
39
+ hover: #f2f2f2,
40
+ active: #e6e6e6,
41
+ on: #000000,
42
+ ),
43
+ 'black': (
44
+ base: #000000,
45
+ hover: #1a1a1a,
46
+ active: #333333,
47
+ on: #ffffff,
48
+ ),
23
49
  ),
24
50
  grays: (
25
51
  50: hsl(0, 0%, 5%),
@@ -72,6 +72,10 @@ h6,
72
72
  a {
73
73
  --link-font-color: var(--primary);
74
74
 
75
+ --link-focus-outline-width: var(--focus-outline-width);
76
+ --link-focus-outline-style: var(--focus-outline-style);
77
+ --link-focus-outline-color: var(--focus-outline-color);
78
+
75
79
  color: var(--link-font-color);
76
80
  fill: var(--link-font-color);
77
81
 
@@ -82,7 +86,7 @@ a {
82
86
  }
83
87
 
84
88
  &:focus {
85
- outline: var(--focus-outline);
89
+ outline: var(--link-focus-outline-width) var(--link-focus-outline-style) var(--link-focus-outline-color);
86
90
  outline-offset: var(--focus-offset);
87
91
  }
88
92
  }
@@ -11,14 +11,16 @@
11
11
 
12
12
  :root {
13
13
  @each $name, $value in map.get(theme.$theme, colors) {
14
- --#{$name}: #{$value};
15
- --#{$name}-rgb: #{to-rgb-string($value)};
16
- --#{$name}-hover: #{color.adjust($value, $lightness: -10%)};
17
- --text-#{$name}: #{$value};
18
- }
14
+ $base: map.get($value, base);
15
+ $hover: map.get($value, hover);
16
+ $active: map.get($value, active);
17
+ $on: map.get($value, on);
19
18
 
20
- @each $name, $value in map.get(theme.$theme, on-colors) {
21
- --#{$name}: #{$value};
19
+ --#{$name}: #{$base};
20
+ --#{$name}-hover: #{$hover};
21
+ --#{$name}-active: #{$active};
22
+ --#{$name}-rgb: #{to-rgb-string($base)};
23
+ --on-#{$name}: #{$on};
22
24
  }
23
25
 
24
26
  @each $name, $value in map.get(theme.$theme, grays) {
@@ -29,9 +31,6 @@
29
31
  --spacer-#{$name}: #{$value};
30
32
  }
31
33
 
32
- --white: #ffffff;
33
- --black: #000000;
34
-
35
34
  --bg-surface: var(--white);
36
35
  --body-bg-color: var(--white);
37
36
  --font-color: var(--gray-100);
@@ -53,13 +52,13 @@
53
52
  --focus-outline-color: rgba(var(--primary-rgb), 0.5);
54
53
  --focus-outline-style: solid;
55
54
  --focus-outline-width: 2px;
56
- --focus-outline-error: 2px solid var(--error-light);
55
+ // create focus outline for every theme color
56
+ --focus-outline-error: var(--focus-outline-width) var(focus-outline-style) rgba(var(--error-rgb), 0.5);
57
57
  --focus-offset: 0px;
58
58
 
59
59
  --container: 900px;
60
60
 
61
61
  --transition-duration: 0.2s;
62
- --transition-color: color 0.4s, background-color 0.4s;
63
62
 
64
63
  --bg-opacity: 1;
65
64
  }