@basis-ng/styles 0.0.1-alpha.5 → 0.0.1-alpha.50

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,10 +1,47 @@
1
1
  {
2
2
  "name": "@basis-ng/styles",
3
- "version": "0.0.1-alpha.5",
3
+ "version": "0.0.1-alpha.50",
4
4
  "description": "CSS foundation for @basis-ng/primitives components",
5
5
  "main": "src/index.css",
6
6
  "exports": {
7
- ".": "./src/index.css"
7
+ ".": "./src/index.css",
8
+ "./alert": "./src/components/alert.component.css",
9
+ "./attached-box": "./src/components/attached-box.component.css",
10
+ "./badge": "./src/components/badge.component.css",
11
+ "./drawer": "./src/components/drawer.component.css",
12
+ "./button-group": "./src/components/button-group.component.css",
13
+ "./button": "./src/components/button.component.css",
14
+ "./checkbox": "./src/components/checkbox.component.css",
15
+ "./color-picker": "./src/components/color-picker.component.css",
16
+ "./icon": "./src/components/icon.component.css",
17
+ "./input-group": "./src/components/input-group.component.css",
18
+ "./input": "./src/components/input.component.css",
19
+ "./label": "./src/components/label.component.css",
20
+ "./menu-group": "./src/components/menu-group.component.css",
21
+ "./menu-item-checkbox": "./src/components/menu-item-checkbox.component.css",
22
+ "./menu-item-radio": "./src/components/menu-item-radio.component.css",
23
+ "./menu-item": "./src/components/menu-item.component.css",
24
+ "./menu-label": "./src/components/menu-label.component.css",
25
+ "./menu": "./src/components/menu.component.css",
26
+ "./option": "./src/components/option.component.css",
27
+ "./range": "./src/components/range.component.css",
28
+ "./row-item": "./src/components/row-item.component.css",
29
+ "./row": "./src/components/row.component.css",
30
+ "./search": "./src/components/search.component.css",
31
+ "./select": "./src/components/select.component.css",
32
+ "./select-content": "./src/components/select-content.component.css",
33
+ "./select-option": "./src/components/select-option.component.css",
34
+ "./sheet": "./src/components/sheet.component.css",
35
+ "./spinner": "./src/components/spinner.component.css",
36
+ "./switch": "./src/components/switch.component.css",
37
+ "./tab": "./src/components/tab.component.css",
38
+ "./table": "./src/components/table.component.css",
39
+ "./tabs": "./src/components/tabs.component.css",
40
+ "./textarea": "./src/components/textarea.component.css",
41
+ "./tooltip": "./src/components/tooltip.component.css",
42
+ "./tree-node": "./src/components/tree-node.component.css",
43
+ "./tree": "./src/components/tree.component.css",
44
+ "./dialog": "./src/components/dialog.component.css"
8
45
  },
9
46
  "files": [
10
47
  "src/**/*.css"
@@ -7,15 +7,9 @@ button[b-button] {
7
7
  box-sizing: border-box;
8
8
  gap: 0.5rem;
9
9
  position: relative;
10
- overflow: hidden;
11
- transition:
12
- background-color 0.2s,
13
- opacity 0.2s;
14
- font-size: 100%;
15
10
  border: none;
16
11
  text-decoration: none;
17
12
  font-family: 'Geist', sans-serif;
18
- --padding-inline-multiple: 1.5;
19
13
  --border-px: 0px;
20
14
 
21
15
  &:focus-visible {
@@ -28,6 +22,11 @@ button[b-button] {
28
22
  --border-px: 1px;
29
23
  }
30
24
 
25
+ &.primary,
26
+ &.secondary {
27
+ box-shadow: rgba(0, 0, 0, 0.04) 0px 2px 2px 0px;
28
+ }
29
+
31
30
  &.primary {
32
31
  background-color: var(--primary, #0a0a0a);
33
32
  color: var(--primary-foreground, #ffffff);
@@ -133,8 +132,10 @@ button[b-button] {
133
132
  }
134
133
 
135
134
  @media (width >= 768px) {
136
- &:active {
137
- transform: scale(0.98);
135
+ &.active {
136
+ &:active {
137
+ transform: scale(0.98);
138
+ }
138
139
  }
139
140
  }
140
141
  }
@@ -145,33 +146,36 @@ button[b-button] {
145
146
  pointer-events: none;
146
147
  }
147
148
 
148
- &.size-small {
149
- --vertical-padding: calc(0.5rem - (var(--border-px) * 2));
150
- --horizontal-padding: clamp(
151
- 0.75rem,
152
- calc(0.5rem + var(--radius, 0.5rem) / 2),
153
- 1.25rem
154
- );
155
- font-size: 0.875rem;
156
- padding: var(--vertical-padding) var(--horizontal-padding);
157
-
158
- &.equal-padding {
159
- padding: var(--vertical-padding);
149
+ &.size-1 {
150
+ padding: 0.215rem 0.5rem;
151
+ min-height: 1.714rem;
152
+ font-size: 0.857rem;
153
+
154
+ &.squared {
155
+ width: 1.714rem;
156
+ min-width: 1.714rem;
160
157
  }
161
158
  }
162
159
 
163
- &.size-default {
164
- --vertical-padding: calc(0.9rem - (var(--border-px) * 2));
165
- --horizontal-padding: clamp(
166
- 1rem,
167
- calc(0.75rem + var(--radius, 0.5rem) / 2),
168
- 1.5rem
169
- );
160
+ &.size-2 {
161
+ padding: 0.4rem 0.75rem;
162
+ min-height: 2.286rem;
170
163
  font-size: 1rem;
171
- padding: var(--vertical-padding) var(--horizontal-padding);
172
164
 
173
- &.equal-padding {
174
- padding: var(--vertical-padding);
165
+ &.squared {
166
+ width: 2.286rem;
167
+ min-width: 2.286rem;
168
+ }
169
+ }
170
+
171
+ &.size-3 {
172
+ padding: 0.608rem 1rem;
173
+ min-height: 2.857rem;
174
+ font-size: 1.143rem;
175
+
176
+ &.squared {
177
+ width: 2.857rem;
178
+ min-width: 2.857rem;
175
179
  }
176
180
  }
177
181
  }
@@ -0,0 +1,37 @@
1
+ b-card {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 1.5rem;
5
+ padding: 1.5rem;
6
+ background-color: var(--background);
7
+ border: 1px solid var(--border-color);
8
+ border-radius: var(--radius);
9
+
10
+ b-card-header {
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: 0.5rem;
14
+
15
+ b-card-title {
16
+ font-size: 1.3rem;
17
+ font-weight: bold;
18
+ }
19
+
20
+ b-card-description {
21
+ font-size: 1rem;
22
+ opacity: 0.7;
23
+ }
24
+ }
25
+
26
+ b-card-content {
27
+ display: flex;
28
+ flex-direction: column;
29
+ gap: 0.5rem;
30
+ }
31
+
32
+ b-card-footer {
33
+ display: flex;
34
+ justify-content: flex-end;
35
+ gap: 1rem;
36
+ }
37
+ }
@@ -0,0 +1,21 @@
1
+ ul[b-combobox-options] {
2
+ list-style: none;
3
+ padding: 0.2rem;
4
+ box-sizing: border-box;
5
+ margin: 0;
6
+ position: relative;
7
+ background: var(--background, #ffffff);
8
+ box-shadow: 0 0 0.25rem 0.125rem rgba(1, 1, 1, 0.01);
9
+ border-radius: clamp(0rem, var(--radius, 0.5rem), 0.5rem);
10
+ border: 1px solid
11
+ color-mix(
12
+ in srgb,
13
+ var(--foreground, #798194) 10%,
14
+ var(--background, #ffffff)
15
+ );
16
+ display: flex;
17
+ flex-direction: column;
18
+ gap: 0.2rem;
19
+ width: 100%;
20
+ overflow-y: auto;
21
+ }
@@ -0,0 +1,62 @@
1
+ b-combobox {
2
+ button {
3
+ display: flex;
4
+ justify-content: space-between !important;
5
+ align-items: center;
6
+ text-align: start;
7
+ padding-right: 0.5rem !important;
8
+ width: 100%;
9
+ gap: 0.3rem !important;
10
+ }
11
+ }
12
+
13
+ .cdk-overlay-pane b-command {
14
+ /* Overlay Animations */
15
+ opacity: 0;
16
+
17
+ &.b-overlay-bottom,
18
+ &.b-overlay-top,
19
+ &.b-overlay-left,
20
+ &.b-overlay-right {
21
+ transition:
22
+ transform 150ms ease-in-out,
23
+ opacity 150ms ease-in-out;
24
+ opacity: 1;
25
+ }
26
+
27
+ &.b-overlay-bottom {
28
+ transform: translateY(5px);
29
+
30
+ &.b-overlay-leave {
31
+ transform: translateY(0);
32
+ opacity: 0;
33
+ }
34
+ }
35
+
36
+ &.b-overlay-top {
37
+ transform: translateY(-5px);
38
+
39
+ &.b-overlay-leave {
40
+ transform: translateY(0);
41
+ opacity: 0;
42
+ }
43
+ }
44
+
45
+ &.b-overlay-left {
46
+ transform: translateX(-5px);
47
+
48
+ &.b-overlay-leave {
49
+ transform: translateX(0);
50
+ opacity: 0;
51
+ }
52
+ }
53
+
54
+ &.b-overlay-right {
55
+ transform: translateX(5px);
56
+
57
+ &.b-overlay-leave {
58
+ transform: translateX(0);
59
+ opacity: 0;
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,13 @@
1
+ ul[b-command-options] {
2
+ list-style: none;
3
+ box-sizing: border-box;
4
+ margin: 0;
5
+ position: relative;
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: 0.25rem;
9
+ width: 100%;
10
+ overflow-y: auto;
11
+ padding: 0;
12
+ scrollbar-width: thin;
13
+ }
@@ -0,0 +1,25 @@
1
+ b-command {
2
+ padding: 0.25rem;
3
+ box-sizing: border-box;
4
+ margin: 0;
5
+ position: relative;
6
+ background: var(--background, #ffffff);
7
+ box-shadow: 0 0 0.25rem 0.125rem rgba(1, 1, 1, 0.01);
8
+ border-radius: clamp(0rem, var(--radius, 0.5rem), 0.5rem);
9
+ border: 1px solid
10
+ color-mix(
11
+ in srgb,
12
+ var(--foreground, #798194) 10%,
13
+ var(--background, #ffffff)
14
+ );
15
+ display: flex;
16
+ flex-direction: column;
17
+ gap: 0.25rem;
18
+ width: 100%;
19
+
20
+ input {
21
+ &:focus-visible {
22
+ outline: none !important;
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,41 @@
1
+ b-dialog {
2
+ animation: b-dialog-enter 150ms ease-in-out;
3
+
4
+ &.leaving {
5
+ transform: scale(0.9);
6
+ opacity: 0;
7
+ transition:
8
+ transform 150ms ease-in-out,
9
+ opacity 150ms ease-in-out;
10
+ }
11
+ }
12
+
13
+ .b-dialog-backdrop {
14
+ background-color: rgba(0, 0, 0, 0.08);
15
+ animation: b-dialog-backdrop-enter 150ms ease-in-out;
16
+ }
17
+
18
+ :has(b-dialog.leaving) .b-dialog-backdrop {
19
+ opacity: 0;
20
+ transition: opacity 150ms ease-in-out;
21
+ }
22
+
23
+ @keyframes b-dialog-enter {
24
+ 0% {
25
+ opacity: 0;
26
+ transform: scale(0.9);
27
+ }
28
+ 100% {
29
+ opacity: 1;
30
+ transform: scale(1);
31
+ }
32
+ }
33
+
34
+ @keyframes b-dialog-backdrop-enter {
35
+ 0% {
36
+ opacity: 0;
37
+ }
38
+ 100% {
39
+ opacity: 1;
40
+ }
41
+ }
@@ -1,4 +1,4 @@
1
- b-bottom-sheet {
1
+ b-drawer {
2
2
  position: fixed;
3
3
  bottom: 0;
4
4
  left: 0;
@@ -44,6 +44,6 @@ b-bottom-sheet {
44
44
  }
45
45
  }
46
46
 
47
- html:has(b-bottom-sheet.open) {
47
+ html:has(b-drawer.open) {
48
48
  overflow: hidden;
49
49
  }
@@ -1,110 +1,78 @@
1
1
  b-input-group {
2
- --exterior-padding: clamp(
3
- 1rem,
4
- calc(0.75rem + var(--radius, 0.5rem) / 2),
5
- 1.3rem
6
- );
7
-
8
- width: 100%;
9
- background-color: var(--input-background);
10
- border-radius: var(--radius, 0.5rem);
11
- box-sizing: border-box;
12
- border-width: 1px;
13
- border-style: solid;
14
- border-color: var(--border-color, transparent);
15
- transition:
16
- opacity 0.2s,
17
- padding-top 0.2s,
18
- padding-bottom 0.2s,
19
- background-color 0.2s,
20
- border-color 0.2s;
21
- font-size: 1rem;
22
- color: var(--input-foreground, #798194);
23
2
  display: flex;
24
3
  align-items: center;
4
+ border-radius: var(--radius);
5
+ box-sizing: border-box;
6
+ background-color: var(--input-background);
7
+ border: 1px solid var(--border-color, transparent);
25
8
 
26
- &:has(> *.ng-invalid) {
27
- color: var(--error-foreground, #c40000ab);
28
- background-color: var(--error, #fff0f0);
29
- border-color: var(--error-border-color, #c40000ab);
9
+ input[b-input] {
10
+ border: none;
11
+ outline-width: 0 !important;
12
+ padding: 0 !important;
13
+ border-radius: 0 !important;
14
+ }
30
15
 
31
- i svg {
32
- stroke: var(--error-foreground, #c40000ab);
33
- }
16
+ input[b-input]:focus-visible {
17
+ outline: 2px solid var(--primary, #0a0a0a);
18
+ outline-offset: 2px;
34
19
 
35
- button {
36
- color: var(--error-foreground, #c40000ab);
37
- background-color: var(--error, #fff0f0);
20
+ &.ng-invalid {
21
+ outline-color: var(--error-foreground, #c40000ab);
38
22
  }
39
23
  }
40
24
 
41
- select,
42
- input,
43
- button,
44
- b-label input,
45
- b-label select {
46
- border-radius: 0px !important;
47
- border-width: 0px !important;
25
+ input[b-input]:disabled {
26
+ opacity: 0.5;
27
+ pointer-events: none;
48
28
  }
49
29
 
50
- &:not(:has(b-label)) select:not(:first-child),
51
- &:not(:has(b-label)) input:not(:first-child),
52
- button:not(:first-child),
53
- b-label:not(:first-child) input,
54
- b-label:not(:first-child) select {
55
- padding-left: 0.8rem !important;
56
- }
30
+ &:has(input[b-input].ng-invalid.ng-touched) {
31
+ color: var(--error-foreground);
32
+ background-color: var(--error);
33
+ border-color: var(--error-border-color);
57
34
 
58
- b-label:not(:first-child) label {
59
- left: 0.8rem !important;
60
- }
35
+ button[b-button] {
36
+ color: var(--error-foreground);
37
+ background-color: var(--error);
38
+ border: 1px solid var(--error-border-color);
39
+ }
61
40
 
62
- &:not(:has(b-label)) select:not(:last-child),
63
- &:not(:has(b-label)) input:not(:last-child),
64
- button:not(:last-child),
65
- b-label:not(:last-child) input,
66
- b-label:not(:last-child) select {
67
- padding-right: 0.8rem !important;
41
+ i svg {
42
+ stroke: var(--error-foreground);
43
+ }
68
44
  }
69
45
 
70
- input:first-child,
71
- button:first-child,
72
- b-label:first-child input,
73
- b-label:first-child select select:first-child,
74
- input:first-child,
75
- button:first-child,
76
- b-label:first-child input,
77
- b-label:first-child select {
78
- border-top-left-radius: var(--radius) !important;
79
- border-bottom-left-radius: var(--radius) !important;
46
+ &:has(.size-1) {
47
+ padding: 0.357rem 0.5rem;
48
+ height: 1.714rem;
49
+ gap: 0.5rem;
50
+ font-size: 0.857rem;
80
51
  }
81
52
 
82
- select:last-child,
83
- input:last-child,
84
- button:last-child,
85
- b-label:last-child input,
86
- b-label:last-child select {
87
- border-top-right-radius: var(--radius) !important;
88
- border-bottom-right-radius: var(--radius) !important;
53
+ &:has(.size-2) {
54
+ padding: 0.5rem 0.75rem;
55
+ height: 2.286rem;
56
+ gap: 0.75rem;
57
+ font-size: 1rem;
89
58
  }
90
59
 
91
- span:first-child,
92
- & > i:first-child {
93
- padding-inline: var(--exterior-padding) 0;
60
+ &:has(.size-3) {
61
+ padding: 0.786rem 1rem;
62
+ min-height: 2.857rem;
63
+ gap: 1rem;
64
+ font-size: 1.143rem;
94
65
  }
95
66
 
96
- span:last-child,
97
- & > i:last-child {
98
- padding-inline: 0 var(--exterior-padding);
67
+ &:has(button[b-button]:last-child) {
68
+ padding-right: 0.22rem;
99
69
  }
100
70
 
101
- button {
102
- height: 100%;
103
- max-height: 100%;
104
- font-size: 0.88rem;
71
+ &:has(button[b-button]:first-child) {
72
+ padding-left: 0.285rem;
105
73
  }
106
74
 
107
- button:active {
108
- transform: scale(1) !important;
75
+ button[b-button] {
76
+ border-radius: calc(var(--radius) - 0.2rem);
109
77
  }
110
78
  }
@@ -1,27 +1,18 @@
1
1
  input[b-input] {
2
- --horizontal-padding: clamp(
3
- 1rem,
4
- calc(0.75rem + var(--radius, 0.5rem) / 2),
5
- 1.5rem
6
- );
7
-
8
2
  width: 100%;
9
- min-height: 2.8rem;
10
3
  background-color: var(--input-background, #e0e0e0);
11
4
  border-radius: var(--radius, 0.5rem);
12
5
  box-sizing: border-box;
13
- padding: calc(0.9rem - 2px) var(--horizontal-padding);
14
6
  border-width: 1px;
15
7
  border-style: solid;
16
8
  border-color: var(--border-color, transparent);
17
9
  transition:
18
10
  opacity 0.2s,
19
- padding-top 0.2s,
20
- padding-bottom 0.2s,
21
11
  background-color 0.2s,
22
12
  border-color 0.2s;
23
13
  font-size: 1rem;
24
14
  color: var(--input-foreground, #798194);
15
+ font-family: 'Geist', sans-serif;
25
16
 
26
17
  &::-webkit-outer-spin-button,
27
18
  &::-webkit-inner-spin-button {
@@ -44,7 +35,7 @@ input[b-input] {
44
35
  opacity: 0.5;
45
36
  }
46
37
 
47
- &.ng-invalid {
38
+ &.ng-invalid.ng-touched {
48
39
  color: var(--error-foreground, #c40000ab);
49
40
  background-color: var(--error, #fff0f0);
50
41
  border-color: var(--error-border-color, #c40000ab);
@@ -58,13 +49,23 @@ input[b-input] {
58
49
  }
59
50
  }
60
51
 
61
- &.label-up {
62
- padding-top: 1.1rem;
63
- padding-bottom: 0.3rem;
64
- }
65
-
66
- &.disabled {
52
+ &:disabled {
67
53
  opacity: 0.5;
68
54
  pointer-events: none;
69
55
  }
56
+
57
+ &.size-1 {
58
+ padding: 0.357rem 0.5rem;
59
+ font-size: 0.857rem;
60
+ }
61
+
62
+ &.size-2 {
63
+ padding: 0.5rem 0.75rem;
64
+ font-size: 1rem;
65
+ }
66
+
67
+ &.size-3 {
68
+ padding: 0.786rem 1rem;
69
+ font-size: 1.143rem;
70
+ }
70
71
  }
@@ -1,9 +1,16 @@
1
- b-menu-item-checkbox {
1
+ button[b-menu-item-checkbox] {
2
2
  --horizontal-padding: clamp(
3
3
  1rem,
4
4
  calc(0.75rem + var(--radius, 0.5rem) / 2),
5
5
  1.5rem
6
6
  );
7
+ background: none;
8
+ color: inherit;
9
+ border: none;
10
+ padding: 0;
11
+ font: inherit;
12
+ cursor: pointer;
13
+ outline: inherit;
7
14
 
8
15
  display: flex;
9
16
  gap: 0.5rem;
@@ -1,9 +1,16 @@
1
- b-menu-item-radio {
1
+ button[b-menu-item-radio] {
2
2
  --horizontal-padding: clamp(
3
3
  1rem,
4
4
  calc(0.75rem + var(--radius, 0.5rem) / 2),
5
5
  1.5rem
6
6
  );
7
+ background: none;
8
+ color: inherit;
9
+ border: none;
10
+ padding: 0;
11
+ font: inherit;
12
+ cursor: pointer;
13
+ outline: inherit;
7
14
 
8
15
  display: flex;
9
16
  gap: 0.5rem;
@@ -15,6 +22,7 @@ b-menu-item-radio {
15
22
  align-items: center;
16
23
 
17
24
  &[aria-checked='true'],
25
+ &.active,
18
26
  &:hover {
19
27
  background-color: var(--input-background);
20
28
  }
@@ -1,9 +1,16 @@
1
- b-menu-item {
1
+ button[b-menu-item] {
2
2
  --horizontal-padding: clamp(
3
3
  1rem,
4
4
  calc(0.75rem + var(--radius, 0.5rem) / 2),
5
5
  1.5rem
6
6
  );
7
+ background: none;
8
+ color: inherit;
9
+ border: none;
10
+ padding: 0;
11
+ font: inherit;
12
+ cursor: pointer;
13
+ outline: inherit;
7
14
 
8
15
  display: flex;
9
16
  gap: 0.5rem;
@@ -11,7 +18,6 @@ b-menu-item {
11
18
  height: 2.5rem;
12
19
  border-radius: var(--radius);
13
20
  cursor: pointer;
14
- min-width: 100px;
15
21
  align-items: center;
16
22
 
17
23
  &:active,
@@ -8,18 +8,8 @@ b-menu {
8
8
  }
9
9
  }
10
10
 
11
- @keyframes fadeIn {
12
- 0% {
13
- opacity: 0;
14
- }
15
- 100% {
16
- opacity: 1;
17
- }
18
- }
19
-
20
11
  .cdk-overlay-container b-menu {
21
12
  border: 1px solid var(--border-color);
22
- animation: fadeIn 0.2s ease-in;
23
13
  background-color: var(--background);
24
14
 
25
15
  b-menu-item {