@oardi/css-utils 0.38.0 → 0.39.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oardi/css-utils",
3
- "version": "0.38.0",
3
+ "version": "0.39.0",
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",
package/readme.md CHANGED
@@ -40,12 +40,12 @@ This will render a centered text:
40
40
  ### Use predefined component classes
41
41
 
42
42
  ```html
43
- <button class="btn btn-primary">some button text</button>
43
+ <button class="btn btn-solid btn-primary">some button text</button>
44
44
  ```
45
45
 
46
46
  will render as:
47
47
 
48
- <button class="btn btn-primary">some button text</button>
48
+ <button class="btn btn-solid btn-primary">some button text</button>
49
49
 
50
50
  ### Maintainer
51
51
 
@@ -36,8 +36,7 @@
36
36
  transition:
37
37
  color var(--button-transition-duration),
38
38
  background-color var(--button-transition-duration),
39
- border-color var(--button-transition-duration),
40
- outline-color var(--button-transition-duration);
39
+ border-color var(--button-transition-duration);
41
40
 
42
41
  -webkit-tap-highlight-color: transparent;
43
42
  touch-action: manipulation; // ios fix
@@ -57,9 +56,7 @@
57
56
  }
58
57
 
59
58
  &:disabled,
60
- &[disabled],
61
- &[disabled]:hover,
62
- &[disabled]:focus {
59
+ &[disabled] {
63
60
  cursor: not-allowed;
64
61
  pointer-events: none;
65
62
  box-shadow: none;
@@ -75,6 +72,7 @@
75
72
  .btn-#{$name} {
76
73
  --button-color: var(--#{$name});
77
74
  --button-color-hover: var(--#{$name}-hover);
75
+ --button-color-active: var(--#{$name}-active);
78
76
  --button-color-rgb: var(--#{$name}-rgb);
79
77
  --button-on-color: var(--on-#{$name});
80
78
  }
@@ -86,14 +84,19 @@
86
84
  background-color: var(--button-color);
87
85
  border-color: var(--button-color);
88
86
 
89
- &:hover,
90
- &:active {
87
+ &:hover {
91
88
  background-color: var(--button-color-hover);
92
89
  border-color: var(--button-color-hover);
93
90
  }
94
91
 
92
+ &.active,
93
+ &:active {
94
+ background-color: var(--button-color-active);
95
+ border-color: var(--button-color-active);
96
+ }
97
+
95
98
  &:focus-visible {
96
- outline: var(--button-focus-outline-width) solid rgba(var(--button-color-rgb), 0.5);
99
+ outline: var(--button-focus-outline-width) var(--button-focus-outline-style) rgba(var(--button-color-rgb), 0.5);
97
100
  }
98
101
  }
99
102
 
@@ -103,18 +106,25 @@
103
106
  background-color: transparent;
104
107
  border-color: var(--button-color);
105
108
 
106
- &:hover,
107
- &:active {
109
+ &:hover {
108
110
  color: var(--button-on-color);
109
111
  fill: var(--button-on-color);
110
112
  background-color: var(--button-color-hover);
111
113
  border-color: var(--button-color-hover);
112
114
  }
113
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
+
114
124
  &:focus-visible {
115
125
  color: var(--button-on-color);
116
126
  fill: var(--button-on-color);
117
- outline: var(--button-focus-outline-width) solid rgba(var(--button-color-rgb), 0.5);
127
+ outline: var(--button-focus-outline-width) var(--button-focus-outline-style) rgba(var(--button-color-rgb), 0.5);
118
128
  background-color: var(--button-color);
119
129
  border-color: var(--button-color);
120
130
  }
@@ -129,12 +139,13 @@
129
139
  border-color: transparent;
130
140
 
131
141
  &:hover,
142
+ &.active,
132
143
  &:active {
133
144
  background-color: var(--button-highlight);
134
145
  }
135
146
 
136
147
  &:focus-visible {
137
- outline: var(--button-focus-outline-width) solid rgba(var(--button-color-rgb), 0.5);
148
+ outline: var(--button-focus-outline-width) var(--button-focus-outline-style) rgba(var(--button-color-rgb), 0.5);
138
149
  }
139
150
  }
140
151
 
@@ -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,12 +8,17 @@
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);
11
12
 
12
13
  color: var(--font-color);
13
14
  border: 1px solid var(--expansion-panel-border-color);
14
15
  border-radius: var(--border-radius);
15
16
  background-color: var(--expansion-panel-header-bg-color);
16
- transition: var(--transition-color);
17
+
18
+ transition:
19
+ color var(--expansion-panel-transition-duration),
20
+ background-color var(--expansion-panel-transition-duration),
21
+ border-color var(--expansion-panel-transition-duration);
17
22
 
18
23
  &:focus {
19
24
  outline: var(--focus-outline);
@@ -22,6 +22,8 @@ $sizes: (
22
22
  --icon-button-svg-width: 18px;
23
23
  --icon-button-svg-height: 18px;
24
24
 
25
+ --icon-button-transition-duration: var(--transition-duration, 0.2s);
26
+
25
27
  padding: var(--icon-button-padding);
26
28
  min-width: var(--icon-button-min-width);
27
29
  width: var(--icon-button-width);
@@ -39,7 +41,11 @@ $sizes: (
39
41
  fill: var(--font-color);
40
42
  color: var(--font-color);
41
43
 
42
- transition: var(--transition-color);
44
+ transition:
45
+ color var(--icon-button-transition-duration),
46
+ background-color var(--icon-button-transition-duration),
47
+ border-color var(--icon-button-transition-duration);
48
+
43
49
  -webkit-tap-highlight-color: transparent;
44
50
  touch-action: manipulation; // ios fix
45
51
 
@@ -73,6 +79,7 @@ $sizes: (
73
79
  }
74
80
 
75
81
  // sizes
82
+ // change to use css vars
76
83
  @each $name, $value in $sizes {
77
84
  .icon-btn-#{$name} {
78
85
  min-width: $value;
@@ -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%),
@@ -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
- }
19
-
20
- @each $name, $value in map.get(theme.$theme, on-colors) {
21
- --#{$name}: #{$value};
14
+ $base: map.get($value, base);
15
+ $hover: map.get($value, hover);
16
+ $active: map.get($value, active);
17
+ $on: map.get($value, on);
18
+
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,12 @@
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
+ --focus-outline-error: 2px solid rgba(var(--error-rgb), 0.5);
57
56
  --focus-offset: 0px;
58
57
 
59
58
  --container: 900px;
60
59
 
61
60
  --transition-duration: 0.2s;
62
- --transition-color: color 0.4s, background-color 0.4s;
63
61
 
64
62
  --bg-opacity: 1;
65
63
  }