@oardi/css-utils 0.51.0 → 0.53.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.51.0",
3
+ "version": "0.53.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",
@@ -1,21 +1,17 @@
1
- @use 'sass:map';
2
-
3
1
  @layer components {
4
2
  .breadcrumb {
5
- --breadcrumb-padding-x: 0;
6
- --breadcrumb-padding-y: 0;
7
- --breadcrumb-margin-bottom: var(--spacer-3);
3
+ --breadcrumb-padding-x: var(--spacer-0);
4
+ --breadcrumb-padding-y: var(--spacer-0);
8
5
  --breadcrumb-divider-color: var(--text-subtle);
9
6
  --breadcrumb-item-padding-x: var(--spacer-2);
10
- --breadcrumb-item-active-color: var(--text-color-muted);
7
+ --breadcrumb-item-active-color: var(--text-muted);
11
8
 
12
9
  display: flex;
13
10
  flex-wrap: wrap;
14
11
  padding: var(--breadcrumb-padding-y) var(--breadcrumb-padding-x);
15
- margin-bottom: var(--breadcrumb-margin-bottom);
16
- font-size: var(--breadcrumb-font-size);
12
+ margin-bottom: var(--breadcrumb-margin-bottom, var(--spacer-3));
13
+ font-size: var(--breadcrumb-font-size, var(--font-size));
17
14
  list-style: none;
18
- border-radius: var(--breadcrumb-border-radius);
19
15
 
20
16
  .breadcrumb-item {
21
17
  &.active {
@@ -23,11 +19,11 @@
23
19
  }
24
20
 
25
21
  & + .breadcrumb-item {
26
- padding-left: var(--breadcrumb-item-padding-x);
22
+ padding-inline-start: var(--breadcrumb-item-padding-x);
27
23
 
28
24
  &::before {
29
- float: left;
30
- padding-right: var(--breadcrumb-item-padding-x);
25
+ display: inline-block;
26
+ padding-inline-end: var(--breadcrumb-item-padding-x);
31
27
  color: var(--breadcrumb-divider-color);
32
28
  content: var(--breadcrumb-divider, '/');
33
29
  }
@@ -9,16 +9,18 @@
9
9
  --button-focus-outline-width: var(--focus-outline-width);
10
10
  --button-focus-outline-style: var(--focus-outline-style);
11
11
  --button-focus-outline-color: var(--focus-outline-color);
12
+ --button-focus-outline-offset: var(--focus-outline-color);
12
13
 
13
14
  --button-font-size: var(--font-size);
14
- --button-padding-y: 0.25rem;
15
- --button-padding-x: 1rem;
15
+ --button-padding-y: var(--spacer-1);
16
+ --button-padding-x: var(--spacer-3);
16
17
 
17
18
  --button-disabled-text-color: var(--disabled-text-color);
18
19
  --button-disabled-bg-color: var(--disabled-bg-color);
19
20
  --button-disabled-border-color: var(--disabled-border-color);
20
21
 
21
22
  --button-transition-duration: var(--transition-duration, 0.2s);
23
+ --button-transition-easing: var(--transition-easing);
22
24
 
23
25
  font-size: var(--button-font-size);
24
26
  display: inline-flex;
@@ -35,10 +37,10 @@
35
37
  fill: currentColor;
36
38
 
37
39
  transition:
38
- color var(--button-transition-duration) ease,
39
- background-color var(--button-transition-duration) ease,
40
- box-shadow var(--button-transition-duration) ease,
41
- border-color var(--button-transition-duration) ease;
40
+ color var(--button-transition-duration) var(--button-transition-easing),
41
+ background-color var(--button-transition-duration) var(--button-transition-easing),
42
+ box-shadow var(--button-transition-duration) var(--button-transition-easing),
43
+ border-color var(--button-transition-duration) var(--button-transition-easing);
42
44
 
43
45
  -webkit-tap-highlight-color: transparent;
44
46
  touch-action: manipulation; // ios fix
@@ -55,11 +57,12 @@
55
57
  &:focus-visible {
56
58
  outline: var(--button-focus-outline-width) var(--button-focus-outline-style)
57
59
  var(--button-focus-outline-color);
58
- outline-offset: var(--focus-offset);
60
+ outline-offset: var(--button-focus-outline-offset);
59
61
  }
60
62
 
61
63
  &:disabled,
62
- &[disabled] {
64
+ &[disabled],
65
+ &.disabled {
63
66
  cursor: not-allowed;
64
67
  pointer-events: none;
65
68
  box-shadow: none;
@@ -82,7 +85,6 @@
82
85
 
83
86
  .btn-solid {
84
87
  color: var(--button-on-color);
85
- fill: var(--button-on-color);
86
88
  background-color: var(--button-color);
87
89
  border-color: var(--button-color);
88
90
 
@@ -105,13 +107,11 @@
105
107
 
106
108
  .btn-outline {
107
109
  color: var(--button-color);
108
- fill: var(--button-color);
109
110
  background-color: transparent;
110
111
  border-color: var(--button-color);
111
112
 
112
113
  &:hover {
113
114
  color: var(--button-on-color);
114
- fill: var(--button-on-color);
115
115
  background-color: var(--button-color-hover);
116
116
  border-color: var(--button-color-hover);
117
117
  }
@@ -119,26 +119,23 @@
119
119
  &.active,
120
120
  &:active {
121
121
  color: var(--button-on-color);
122
- fill: var(--button-on-color);
123
122
  background-color: var(--button-color-active);
124
123
  border-color: var(--button-color-active);
125
124
  }
126
125
 
127
126
  &:focus-visible {
128
- color: var(--button-on-color);
129
- fill: var(--button-on-color);
127
+ // color: var(--button-on-color);
130
128
  outline: var(--button-focus-outline-width) var(--button-focus-outline-style)
131
129
  rgba(var(--button-color-rgb), 0.5);
132
- background-color: var(--button-color);
133
- border-color: var(--button-color);
130
+ // background-color: var(--button-color);
131
+ // border-color: var(--button-color);
134
132
  }
135
133
  }
136
134
 
137
135
  .btn-text {
138
- --button-highlight: var(--highlight);
136
+ --button-highlight: var(--bg-highlight);
139
137
 
140
138
  color: var(--button-color);
141
- fill: var(--button-color);
142
139
  background-color: transparent;
143
140
  border-color: transparent;
144
141
 
@@ -155,14 +152,20 @@
155
152
  }
156
153
 
157
154
  .btn-xs {
158
- --button-padding-y: 0.15rem;
159
- --button-padding-x: 0.5rem;
160
- --button-font-size: 0.75rem;
155
+ --button-padding-y: var(--spacer-0);
156
+ --button-padding-x: var(--spacer-2);
157
+ --button-font-size: var(--font-size-xs);
161
158
  }
162
159
 
163
160
  .btn-sm {
164
- --button-padding-y: 0.2rem;
165
- --button-padding-x: 0.75rem;
166
- --button-font-size: 0.875rem;
161
+ --button-padding-y: var(--spacer-1);
162
+ --button-padding-x: var(--spacer-2);
163
+ --button-font-size: var(--font-size-sm);
164
+ }
165
+
166
+ .btn-lg {
167
+ --button-padding-y: var(--spacer-2);
168
+ --button-padding-x: var(--spacer-4);
169
+ --button-font-size: var(--font-size-lg);
167
170
  }
168
171
  }
@@ -1,7 +1,9 @@
1
1
  @layer components {
2
2
  .card {
3
3
  --card-header-padding: var(--spacer-3) var(--spacer-3) 0 var(--spacer-3);
4
- --card-header-border-bottom: 0;
4
+ --card-header-border-bottom-width: 0;
5
+ --card-header-border-bottom-color: var(--card-border-color);
6
+ --card-body-padding-top-after-header: var(--spacer-1);
5
7
  --card-body-padding: var(--spacer-3);
6
8
  --card-bg-color: var(--bg-surface);
7
9
  --card-border-width: var(--border-width);
@@ -9,43 +11,57 @@
9
11
  --card-border-radius: var(--border-radius);
10
12
  --card-bg-hover-color: var(--bg-surface-hover);
11
13
  --card-title-spacer-y: var(--spacer-2);
12
- --card-subtitle-color: var(--text-color-muted);
14
+ --card-subtitle-color: var(--text-muted);
13
15
 
14
16
  --card-transition-duration: var(--transition-duration, 0.2s);
17
+ --card-transition-easing: var(--transition-easing);
15
18
 
16
19
  background-color: var(--card-bg-color);
17
20
  border: var(--card-border-width) solid var(--card-border-color);
18
21
  border-radius: var(--card-border-radius);
19
22
 
20
23
  transition:
21
- color var(--card-transition-duration) ease,
22
- background-color var(--card-transition-duration) ease,
23
- box-shadow var(--card-transition-duration) ease,
24
- border-color var(--card-transition-duration) ease;
24
+ color var(--card-transition-duration) var(--card-transition-easing),
25
+ background-color var(--card-transition-duration) var(--card-transition-easing),
26
+ box-shadow var(--card-transition-duration) var(--card-transition-easing),
27
+ border-color var(--card-transition-duration) var(--card-transition-easing);
25
28
 
26
- &.action:hover {
27
- background-color: var(--card-bg-hover-color);
29
+ &.card-action {
30
+ cursor: pointer;
31
+
32
+ &:hover {
33
+ background-color: var(--card-bg-hover-color);
34
+ }
28
35
  }
29
36
 
30
37
  .card-title {
38
+ margin-top: 0;
31
39
  margin-bottom: var(--card-title-spacer-y);
32
40
  }
33
41
 
34
42
  .card-subtitle {
35
43
  color: var(--card-subtitle-color);
36
- margin-top: calc(-0.5 * var(--card-title-spacer-y));
44
+ margin-top: 0;
37
45
  margin-bottom: var(--card-title-spacer-y);
38
46
  }
39
47
 
48
+ .card-title + .card-subtitle {
49
+ margin-top: calc(-0.5 * var(--card-title-spacer-y));
50
+ }
51
+
40
52
  .card-header {
41
53
  padding: var(--card-header-padding);
42
- border-bottom: var(--card-header-border-bottom);
54
+ border-bottom: var(--card-header-border-bottom-width) solid var(--card-header-border-bottom-color);
43
55
 
44
- --card-title-spacer-y: 0;
56
+ --card-title-spacer-y: 0.5rem;
45
57
  }
46
58
 
47
59
  .card-body {
48
60
  padding: var(--card-body-padding);
49
61
  }
62
+
63
+ .card-header + .card-body {
64
+ padding-top: var(--card-body-padding-top-after-header);
65
+ }
50
66
  }
51
67
  }
@@ -1,66 +1,63 @@
1
1
  @use 'sass:map';
2
- @use '../theme.scss';
2
+ @use '../theme.scss' as theme;
3
3
 
4
4
  @layer components {
5
- %chip-base {
6
- --chip-label-font-size: 0.9rem;
7
- --chip-label-padding: 0 7px;
8
- --chip-border-radius: 16px;
5
+ .chip {
6
+ --chip-color: var(--primary);
7
+ --chip-color-hover: var(--primary-hover);
8
+ --chip-color-active: var(--primary-active);
9
+ --chip-on-color: var(--on-primary);
10
+
11
+ --chip-font-size: var(--font-size-sm);
12
+ --chip-padding-y: var(--spacer-0);
13
+ --chip-padding-x: var(--spacer-2);
14
+ --chip-border-radius: 9999px;
9
15
  --chip-border-width: var(--border-width);
10
- --chip-highlight: var(--highlight);
11
- --chip-transition-duration: var(--transition-duration, 0.2s);
16
+
17
+ --chip-highlight: var(--bg-highlight);
18
+
19
+ --chip-disabled-text-color: var(--disabled-text-color);
20
+ --chip-disabled-bg-color: var(--disabled-bg-color);
21
+ --chip-disabled-border-color: var(--disabled-border-color);
22
+
23
+ --chip-transition-duration: var(--transition-duration);
24
+ --chip-transition-easing: var(--transition-easing);
12
25
 
13
26
  display: inline-flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ gap: var(--spacer-1);
30
+ padding: var(--chip-padding-y) var(--chip-padding-x);
14
31
  border-width: var(--chip-border-width);
15
32
  border-style: solid;
16
- background-color: transparent;
17
33
  border-color: transparent;
34
+ border-radius: var(--chip-border-radius);
35
+ background-color: transparent;
18
36
  color: var(--text-color);
19
- font-size: var(--chip-label-font-size);
37
+ fill: currentColor;
38
+ font-size: var(--chip-font-size);
39
+ line-height: var(--line-height);
40
+ text-decoration: none;
41
+ white-space: nowrap;
42
+ touch-action: manipulation;
43
+ -webkit-tap-highlight-color: transparent;
20
44
 
21
45
  transition:
22
- color var(--chip-transition-duration) ease,
23
- background-color var(--chip-transition-duration) ease,
24
- box-shadow var(--chip-transition-duration) ease,
25
- border-color var(--chip-transition-duration) ease;
26
-
27
- -webkit-tap-highlight-color: transparent;
28
- touch-action: manipulation; // ios fix
46
+ color var(--chip-transition-duration) var(--chip-transition-easing),
47
+ background-color var(--chip-transition-duration) var(--chip-transition-easing),
48
+ box-shadow var(--chip-transition-duration) var(--chip-transition-easing),
49
+ border-color var(--chip-transition-duration) var(--chip-transition-easing);
29
50
 
30
51
  &:hover {
31
52
  cursor: pointer;
32
53
  text-decoration: none;
33
- }
34
-
35
- &.disabled:hover,
36
- .disabled:focus {
37
- cursor: not-allowed;
38
- }
39
- }
40
-
41
- .chip {
42
- @extend %chip-base;
43
-
44
- border-radius: var(--chip-border-radius);
45
- line-height: var(--line-height);
46
-
47
- &:hover {
48
54
  background-color: var(--chip-highlight);
49
55
  border-color: var(--chip-highlight);
50
56
  }
51
57
 
52
- &.disabled,
53
- &.disabled:hover {
54
- color: var(--disabled-text-color);
55
- outline: 0;
56
- background-color: var(--disabled-bg-color);
57
- border-color: var(--disabled-border-color);
58
- }
59
-
60
58
  .chip-label {
61
59
  display: inline-flex;
62
60
  flex-shrink: 0;
63
- padding: var(--chip-label-padding);
64
61
  margin: 0;
65
62
 
66
63
  & > * {
@@ -72,29 +69,60 @@
72
69
 
73
70
  @each $name, $value in map.get(theme.$theme, colors) {
74
71
  .chip-#{$name} {
75
- color: var(--on-#{$name});
76
- fill: var(--on-#{$name});
77
- background-color: var(--#{$name});
78
- border-color: var(--#{$name});
79
-
80
- &:hover,
81
- &:active {
82
- background-color: var(--#{$name}-hover);
83
- border-color: var(--#{$name}-hover);
84
- }
72
+ --chip-color: var(--#{$name});
73
+ --chip-color-hover: var(--#{$name}-hover);
74
+ --chip-color-active: var(--#{$name}-active);
75
+ --chip-on-color: var(--on-#{$name});
85
76
  }
77
+ }
86
78
 
87
- .chip-#{$name}-outline {
88
- color: var(--#{$name});
89
- background-color: transparent;
90
- border-color: var(--#{$name});
79
+ .chip-solid {
80
+ color: var(--chip-on-color);
81
+ background-color: var(--chip-color);
82
+ border-color: var(--chip-color);
91
83
 
92
- &:hover,
93
- &:active {
94
- color: var(--on-#{$name});
95
- background-color: var(--#{$name}-hover);
96
- border-color: var(--#{$name}-hover);
97
- }
84
+ &:hover,
85
+ &:active {
86
+ color: var(--chip-on-color);
87
+ background-color: var(--chip-color-hover);
88
+ border-color: var(--chip-color-hover);
89
+ }
90
+ }
91
+
92
+ .chip-outline {
93
+ color: var(--chip-color);
94
+ background-color: transparent;
95
+ border-color: var(--chip-color);
96
+
97
+ &:hover,
98
+ &:active {
99
+ color: var(--chip-on-color);
100
+ background-color: var(--chip-color-hover);
101
+ border-color: var(--chip-color-hover);
102
+ }
103
+ }
104
+
105
+ .chip-text {
106
+ color: var(--chip-color);
107
+ background-color: transparent;
108
+ border-color: transparent;
109
+
110
+ &:hover,
111
+ &:active {
112
+ background-color: var(--chip-highlight);
113
+ }
114
+ }
115
+
116
+ .chip {
117
+ &.disabled,
118
+ &:disabled,
119
+ &[disabled] {
120
+ cursor: not-allowed;
121
+ pointer-events: none;
122
+ outline: 0;
123
+ color: var(--chip-disabled-text-color);
124
+ background-color: var(--chip-disabled-bg-color);
125
+ border-color: var(--chip-disabled-border-color);
98
126
  }
99
127
  }
100
128
  }
@@ -1,38 +1,60 @@
1
1
  @layer components {
2
2
  .drawer {
3
- --drawer-border-right-color: var(--border-color);
3
+ --drawer-width: 20rem;
4
+ --drawer-z-index: 1045;
5
+
4
6
  --drawer-bg-color: var(--bg-surface);
5
7
 
8
+ --drawer-border-width: var(--border-width);
9
+ --drawer-border-color: var(--border-color);
10
+
11
+ --drawer-header-padding-y: var(--spacer-2);
12
+ --drawer-header-padding-x: var(--spacer-3);
13
+
14
+ --drawer-body-padding: var(--spacer-3);
15
+
16
+ --drawer-transition-duration: var(--transition-duration);
17
+ --drawer-transition-easing: var(--transition-easing);
18
+
19
+ position: fixed;
20
+ inset-block: 0;
21
+ inset-inline-start: 0;
22
+ z-index: var(--drawer-z-index);
6
23
  display: flex;
7
24
  flex-direction: column;
8
- position: fixed;
9
- top: 0;
10
- left: -100%;
25
+ justify-content: flex-start;
26
+ width: min(var(--drawer-width), 100%);
11
27
  height: 100dvh;
12
- width: min(20rem, 100%);
13
- z-index: 1045;
14
- border-right: 1px solid var(--drawer-border-right-color);
15
- justify-content: start;
16
28
  background-color: var(--drawer-bg-color);
17
- transition: left 250ms ease-out;
29
+ border-inline-end: var(--drawer-border-width) solid var(--drawer-border-color);
30
+ transform: translateX(-100%);
18
31
 
19
- &.open ~ .overlay {
20
- display: block;
32
+ transition: transform var(--drawer-transition-duration) var(--drawer-transition-easing);
33
+
34
+ &.is-open {
35
+ transform: translateX(0);
21
36
  }
22
37
 
23
- &.open {
24
- left: 0;
38
+ &.is-open ~ .overlay {
39
+ display: block;
25
40
  }
26
41
 
27
- .drawer-title-container {
42
+ .drawer-header {
28
43
  display: flex;
29
- padding: 0.5rem 1rem;
30
44
  align-items: center;
45
+ padding: var(--drawer-header-padding-y) var(--drawer-header-padding-x);
46
+ }
47
+
48
+ .drawer-title {
49
+ display: flex;
50
+ flex: 1;
51
+ margin: 0;
52
+ }
31
53
 
32
- .drawer-title {
33
- display: flex;
34
- flex: 1;
35
- }
54
+ .drawer-body {
55
+ flex: 1;
56
+ padding: var(--drawer-body-padding);
57
+ overflow: auto;
36
58
  }
37
59
  }
38
60
  }