astrum-ui 0.1.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.
@@ -0,0 +1,148 @@
1
+ .astrum-avatar {
2
+ --astrum-avatar-bg: #f4f4f4;
3
+ --astrum-avatar-icon: #ababab;
4
+ --astrum-avatar-overlay: rgba(0, 0, 0, 0.4);
5
+ --astrum-avatar-edit-icon: #ffffff;
6
+
7
+ position: relative;
8
+ cursor: pointer;
9
+ flex-shrink: 0;
10
+ transition: opacity 0.2s ease-out;
11
+ }
12
+
13
+ .astrum-avatar__body {
14
+ position: absolute;
15
+ inset: 0;
16
+ border-radius: 50%;
17
+ overflow: hidden;
18
+ }
19
+
20
+ .astrum-avatar__input {
21
+ position: absolute;
22
+ opacity: 0;
23
+ width: 0;
24
+ height: 0;
25
+ }
26
+
27
+ .astrum-avatar__image {
28
+ position: absolute;
29
+ inset: 0;
30
+ width: 100%;
31
+ height: 100%;
32
+ object-fit: cover;
33
+ display: block;
34
+ }
35
+
36
+ .astrum-avatar__placeholder {
37
+ position: absolute;
38
+ inset: 0;
39
+ width: 100%;
40
+ height: 100%;
41
+ background-color: var(--astrum-avatar-bg);
42
+ display: flex;
43
+ align-items: center;
44
+ justify-content: center;
45
+ }
46
+
47
+ .astrum-avatar__user-icon {
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: center;
51
+ color: var(--astrum-avatar-icon);
52
+ }
53
+
54
+ .astrum-avatar__user-icon svg {
55
+ width: 32px;
56
+ height: 32px;
57
+ }
58
+
59
+ .astrum-avatar__add-icon {
60
+ position: absolute;
61
+ top: 50%;
62
+ left: 50%;
63
+ transform: translate(-50%, -50%);
64
+ width: 32px;
65
+ height: 32px;
66
+ display: flex;
67
+ align-items: center;
68
+ justify-content: center;
69
+ z-index: 1;
70
+ opacity: 0;
71
+ transition: opacity 0.2s ease-out;
72
+ pointer-events: none;
73
+ color: var(--astrum-avatar-edit-icon);
74
+ }
75
+
76
+ .astrum-avatar__add-icon svg {
77
+ width: 32px;
78
+ height: 32px;
79
+ }
80
+
81
+ .astrum-avatar__overlay {
82
+ position: absolute;
83
+ inset: 0;
84
+ background: var(--astrum-avatar-overlay);
85
+ border-radius: 50%;
86
+ opacity: 0;
87
+ transition: opacity 0.2s ease-out;
88
+ pointer-events: none;
89
+ }
90
+
91
+ .astrum-avatar__edit-icon {
92
+ position: absolute;
93
+ top: 50%;
94
+ left: 50%;
95
+ transform: translate(-50%, -50%);
96
+ width: 32px;
97
+ height: 32px;
98
+ display: flex;
99
+ align-items: center;
100
+ justify-content: center;
101
+ z-index: 1;
102
+ opacity: 0;
103
+ transition: opacity 0.2s ease-out;
104
+ pointer-events: none;
105
+ color: var(--astrum-avatar-edit-icon);
106
+ }
107
+
108
+ .astrum-avatar__edit-icon svg {
109
+ width: 32px;
110
+ height: 32px;
111
+ }
112
+
113
+ .astrum-avatar--hovered .astrum-avatar__overlay {
114
+ opacity: 1;
115
+ }
116
+
117
+ .astrum-avatar--hovered .astrum-avatar__add-icon {
118
+ opacity: 1;
119
+ }
120
+
121
+ .astrum-avatar--hovered .astrum-avatar__edit-icon {
122
+ opacity: 1;
123
+ }
124
+
125
+ .astrum-avatar__remove-button {
126
+ position: absolute;
127
+ top: -2px;
128
+ right: -2px;
129
+ width: 20px;
130
+ height: 20px;
131
+ background: var(--astrum-avatar-edit-icon);
132
+ border-radius: 50%;
133
+ border: none;
134
+ display: flex;
135
+ align-items: center;
136
+ justify-content: center;
137
+ cursor: pointer;
138
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
139
+ z-index: 2;
140
+ padding: 0;
141
+ transition: opacity 0.2s ease-out;
142
+ color: #ea3b3d;
143
+ }
144
+
145
+ .astrum-avatar__remove-button svg {
146
+ width: 12px;
147
+ height: 12px;
148
+ }
@@ -0,0 +1,170 @@
1
+ .astrum-btn {
2
+ --astrum-primary: #2653f2;
3
+ --astrum-primary-white: #ffffff;
4
+ --astrum-hover-blue: #0431d0;
5
+ --astrum-gray-80: #575757;
6
+ --astrum-gray-60: #818181;
7
+ --astrum-gray-40: #ababab;
8
+ --astrum-gray-20: #d5d5d5;
9
+ --astrum-gray-5: #f4f4f4;
10
+
11
+ display: inline-flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ gap: 8px;
15
+ font-weight: 500;
16
+ line-height: 100%;
17
+ letter-spacing: 0;
18
+ border-radius: 8px;
19
+ border: none;
20
+ cursor: pointer;
21
+ transition: all ease-in-out 0.15s;
22
+ }
23
+
24
+ .astrum-btn:disabled {
25
+ cursor: not-allowed;
26
+ }
27
+
28
+ .astrum-btn-icon {
29
+ display: inline-flex;
30
+ align-items: center;
31
+ justify-content: center;
32
+ }
33
+
34
+ .astrum-btn-s {
35
+ padding: 8px 16px;
36
+ font-size: 14px;
37
+ }
38
+
39
+ .astrum-btn-m {
40
+ padding: 10px 20px;
41
+ font-size: 15px;
42
+ }
43
+
44
+ .astrum-btn-l {
45
+ padding: 12px 24px;
46
+ font-size: 18px;
47
+ }
48
+
49
+ .astrum-btn-icon-only.astrum-btn-s {
50
+ padding: 8px;
51
+ }
52
+
53
+ .astrum-btn-icon-only.astrum-btn-m {
54
+ padding: 10px;
55
+ }
56
+
57
+ .astrum-btn-icon-only.astrum-btn-l {
58
+ padding: 12px;
59
+ }
60
+
61
+ .astrum-btn-shape-square {
62
+ border-radius: 8px;
63
+ }
64
+
65
+ .astrum-btn-shape-circle {
66
+ border-radius: 50%;
67
+ }
68
+
69
+ .astrum-btn-primary {
70
+ background-color: var(--astrum-primary);
71
+ color: var(--astrum-primary-white);
72
+ }
73
+
74
+ .astrum-btn-primary:hover:not(:disabled) {
75
+ background-color: var(--astrum-hover-blue);
76
+ color: var(--astrum-primary-white);
77
+ }
78
+
79
+ .astrum-btn-primary:disabled {
80
+ background-color: var(--astrum-gray-20);
81
+ color: var(--astrum-gray-60);
82
+ }
83
+
84
+ .astrum-btn-outlined {
85
+ background-color: transparent;
86
+ color: var(--astrum-primary-white);
87
+ border: 1px solid var(--astrum-primary-white);
88
+ }
89
+
90
+ .astrum-btn-outlined:hover:not(:disabled) {
91
+ background-color: var(--astrum-primary-white);
92
+ border-color: var(--astrum-primary-white);
93
+ color: var(--astrum-hover-blue);
94
+ }
95
+
96
+ .astrum-btn-outlined:disabled {
97
+ background-color: transparent;
98
+ border-color: transparent;
99
+ color: var(--astrum-primary-white);
100
+ opacity: 0.4;
101
+ }
102
+
103
+ .astrum-btn-dashed {
104
+ background-color: transparent;
105
+ color: var(--astrum-gray-80);
106
+ border: 1px dashed var(--astrum-gray-60);
107
+ }
108
+
109
+ .astrum-btn-dashed:hover:not(:disabled) {
110
+ background-color: transparent;
111
+ border-color: var(--astrum-gray-80);
112
+ color: var(--astrum-gray-80);
113
+ }
114
+
115
+ .astrum-btn-dashed:disabled {
116
+ background-color: transparent;
117
+ border-color: transparent;
118
+ color: transparent;
119
+ }
120
+
121
+ .astrum-btn-grey {
122
+ background-color: var(--astrum-gray-5);
123
+ outline: 2px solid transparent;
124
+ color: var(--astrum-primary);
125
+ }
126
+
127
+ .astrum-btn-grey:hover:not(:disabled) {
128
+ outline-width: 2px;
129
+ outline-color: var(--astrum-primary);
130
+ background-color: var(--astrum-gray-5);
131
+ color: var(--astrum-primary);
132
+ }
133
+
134
+ .astrum-btn-grey:disabled {
135
+ background-color: var(--astrum-gray-20);
136
+ color: var(--astrum-gray-60);
137
+ }
138
+
139
+ .astrum-btn-white {
140
+ background-color: var(--astrum-primary-white);
141
+ outline: 2px solid transparent;
142
+ color: var(--astrum-primary);
143
+ }
144
+
145
+ .astrum-btn-white:hover:not(:disabled) {
146
+ outline-width: 2px;
147
+ outline-color: var(--astrum-primary);
148
+ background-color: var(--astrum-primary-white);
149
+ color: var(--astrum-primary);
150
+ }
151
+
152
+ .astrum-btn-white:disabled {
153
+ background-color: var(--astrum-gray-20);
154
+ color: var(--astrum-gray-60);
155
+ }
156
+
157
+ .astrum-btn-ghost {
158
+ background-color: transparent;
159
+ color: var(--astrum-gray-80);
160
+ }
161
+
162
+ .astrum-btn-ghost:hover:not(:disabled) {
163
+ background-color: transparent;
164
+ color: var(--astrum-primary);
165
+ }
166
+
167
+ .astrum-btn-ghost:disabled {
168
+ background-color: transparent;
169
+ color: var(--astrum-gray-40);
170
+ }
@@ -0,0 +1,112 @@
1
+ .astrum-checkbox {
2
+ --astrum-primary: #2653f2;
3
+ --astrum-primary-white: #ffffff;
4
+ --astrum-hover-blue: #0431d0;
5
+ --astrum-gray-20: #d5d5d5;
6
+ --astrum-gray-40: #ababab;
7
+ --astrum-gray-5: #f4f4f4;
8
+
9
+ display: inline-flex;
10
+ align-items: center;
11
+ gap: 8px;
12
+ cursor: pointer;
13
+ user-select: none;
14
+ position: relative;
15
+ }
16
+
17
+ .astrum-checkbox__input {
18
+ position: absolute;
19
+ opacity: 0;
20
+ width: 0;
21
+ height: 0;
22
+ }
23
+
24
+ .astrum-checkbox__box {
25
+ flex-shrink: 0;
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ border-radius: 3px;
30
+ border: 1px solid var(--astrum-gray-20);
31
+ background-color: var(--astrum-primary-white);
32
+ transition: background-color 0.2s ease-out, border-color 0.2s ease-out;
33
+ color: var(--astrum-primary-white);
34
+ }
35
+
36
+ .astrum-checkbox__icon {
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: center;
40
+ width: 12px;
41
+ height: 12px;
42
+ flex-shrink: 0;
43
+ }
44
+
45
+ .astrum-checkbox__icon svg {
46
+ width: 100%;
47
+ height: 100%;
48
+ }
49
+
50
+ .astrum-checkbox:not(.astrum-checkbox--checked):not(.astrum-checkbox--indeterminate) .astrum-checkbox__box {
51
+ background-color: var(--astrum-primary-white);
52
+ border-color: var(--astrum-gray-20);
53
+ }
54
+
55
+ @media (hover: hover) {
56
+ .astrum-checkbox:not(.astrum-checkbox--disabled):hover:not(.astrum-checkbox--checked):not(.astrum-checkbox--indeterminate) .astrum-checkbox__box {
57
+ border-color: var(--astrum-primary);
58
+ }
59
+ }
60
+
61
+ .astrum-checkbox--checked .astrum-checkbox__box,
62
+ .astrum-checkbox--indeterminate .astrum-checkbox__box {
63
+ border-color: transparent;
64
+ border-width: 1px;
65
+ background-color: var(--astrum-primary);
66
+ }
67
+
68
+ @media (hover: hover) {
69
+ .astrum-checkbox:not(.astrum-checkbox--disabled):hover.astrum-checkbox--checked .astrum-checkbox__box,
70
+ .astrum-checkbox:not(.astrum-checkbox--disabled):hover.astrum-checkbox--indeterminate .astrum-checkbox__box {
71
+ background-color: var(--astrum-hover-blue);
72
+ }
73
+ }
74
+
75
+ .astrum-checkbox--disabled {
76
+ cursor: not-allowed;
77
+ opacity: 0.4;
78
+ }
79
+
80
+ .astrum-checkbox--disabled .astrum-checkbox__box {
81
+ cursor: not-allowed;
82
+ }
83
+
84
+ .astrum-checkbox:not(.astrum-checkbox--checked):not(.astrum-checkbox--indeterminate).astrum-checkbox--disabled .astrum-checkbox__box {
85
+ border-color: var(--astrum-gray-5);
86
+ background-color: var(--astrum-primary-white);
87
+ }
88
+
89
+ .astrum-checkbox--s .astrum-checkbox__box {
90
+ width: 16px;
91
+ min-width: 16px;
92
+ height: 16px;
93
+ padding: 4px;
94
+ box-sizing: border-box;
95
+ }
96
+
97
+ .astrum-checkbox--s .astrum-checkbox__icon {
98
+ width: 10px;
99
+ height: 10px;
100
+ }
101
+
102
+ .astrum-checkbox--s .astrum-checkbox__icon svg {
103
+ transform: scale(0.85);
104
+ }
105
+
106
+ .astrum-checkbox--m .astrum-checkbox__box {
107
+ width: 20px;
108
+ min-width: 20px;
109
+ height: 20px;
110
+ padding: 4px;
111
+ box-sizing: border-box;
112
+ }
@@ -0,0 +1,63 @@
1
+ .astrum-chips {
2
+ --astrum-chips-default-bg: #f4f4f4;
3
+ --astrum-chips-default-text: #818181;
4
+
5
+ display: inline-flex;
6
+ align-items: center;
7
+ gap: 4px;
8
+ padding: 4px 8px;
9
+ border-radius: 4px;
10
+ border: none;
11
+ background-color: var(--astrum-chips-default-bg);
12
+ color: var(--astrum-chips-default-text);
13
+ font-size: 12px;
14
+ font-weight: 500;
15
+ line-height: 1.5;
16
+ cursor: pointer;
17
+ transition: background-color 0.15s, color 0.15s;
18
+ }
19
+
20
+ .astrum-chips:hover:not(:disabled) {
21
+ background-color: var(--astrum-chips-default-text);
22
+ color: #fff;
23
+ }
24
+
25
+ .astrum-chips:disabled {
26
+ opacity: 0.4;
27
+ background-color: var(--astrum-chips-default-bg);
28
+ color: var(--astrum-chips-default-text);
29
+ cursor: not-allowed;
30
+ }
31
+
32
+ .astrum-chips__text {
33
+ flex: 1;
34
+ min-width: 0;
35
+ }
36
+
37
+ .astrum-chips__remove {
38
+ display: flex;
39
+ align-items: center;
40
+ justify-content: center;
41
+ width: 16px;
42
+ height: 16px;
43
+ padding: 0;
44
+ margin: 0;
45
+ margin-left: -2px;
46
+ border: none;
47
+ background: transparent;
48
+ color: inherit;
49
+ cursor: pointer;
50
+ border-radius: 50%;
51
+ transition: background-color 0.15s;
52
+ flex-shrink: 0;
53
+ }
54
+
55
+ .astrum-chips:disabled .astrum-chips__remove {
56
+ cursor: not-allowed;
57
+ }
58
+
59
+ .astrum-chips--m {
60
+ padding: 6px 12px;
61
+ font-size: 14px;
62
+ gap: 6px;
63
+ }
@@ -0,0 +1,50 @@
1
+ .astrum-color-swatch-picker {
2
+ --astrum-primary-white: #ffffff;
3
+ display: flex;
4
+ flex-wrap: wrap;
5
+ gap: 8px;
6
+ }
7
+
8
+ .astrum-color-swatch-picker__swatch {
9
+ width: 28px;
10
+ height: 28px;
11
+ padding: 0;
12
+ border: none;
13
+ border-radius: 50%;
14
+ cursor: pointer;
15
+ background-color: var(--astrum-swatch-color);
16
+ box-shadow: none;
17
+ transition:
18
+ box-shadow 0.15s ease,
19
+ transform 0.15s ease;
20
+ display: flex;
21
+ align-items: center;
22
+ justify-content: center;
23
+ position: relative;
24
+ }
25
+
26
+ .astrum-color-swatch-picker__swatch:hover:not(:disabled)[data-hovered],
27
+ .astrum-color-swatch-picker__swatch[data-selected] {
28
+ box-shadow:
29
+ inset 0 0 0 2px var(--astrum-primary-white),
30
+ 0 0 0 2px var(--astrum-swatch-color);
31
+ }
32
+
33
+ .astrum-color-swatch-picker__swatch[data-selected] .astrum-color-swatch-picker__check {
34
+ opacity: 1;
35
+ }
36
+
37
+ .astrum-color-swatch-picker__check {
38
+ color: var(--astrum-primary-white);
39
+ opacity: 0;
40
+ pointer-events: none;
41
+ display: flex;
42
+ align-items: center;
43
+ justify-content: center;
44
+ transition: opacity 0.15s ease;
45
+ }
46
+
47
+ .astrum-color-swatch-picker__swatch:disabled {
48
+ cursor: not-allowed;
49
+ opacity: 0.5;
50
+ }
@@ -0,0 +1,191 @@
1
+ .astrum-file-upload {
2
+ --astrum-primary: #2653f2;
3
+ --astrum-primary-white: #ffffff;
4
+ --astrum-gray-5: #f4f4f4;
5
+ --astrum-gray-10: #ebebeb;
6
+ --astrum-gray-20: #d5d5d5;
7
+ --astrum-gray-40: #ababab;
8
+ --astrum-gray-60: #818181;
9
+ --astrum-gray-80: #575757;
10
+
11
+ position: relative;
12
+ display: flex;
13
+ flex-direction: column;
14
+ align-items: center;
15
+ justify-content: center;
16
+ gap: 16px;
17
+ padding: 32px;
18
+ border: 2px dashed var(--astrum-gray-20);
19
+ border-radius: 8px;
20
+ background-color: var(--astrum-gray-5);
21
+ transition: border-color 0.15s, background-color 0.15s;
22
+ cursor: pointer;
23
+ }
24
+
25
+ .astrum-file-upload__input {
26
+ position: absolute;
27
+ width: 1px;
28
+ height: 1px;
29
+ padding: 0;
30
+ margin: -1px;
31
+ overflow: hidden;
32
+ clip: rect(0, 0, 0, 0);
33
+ white-space: nowrap;
34
+ border: 0;
35
+ opacity: 0;
36
+ }
37
+
38
+ .astrum-file-upload--dragging {
39
+ border-color: var(--astrum-primary);
40
+ background-color: var(--astrum-gray-10);
41
+ }
42
+
43
+ .astrum-file-upload--disabled {
44
+ opacity: 0.5;
45
+ cursor: not-allowed;
46
+ }
47
+
48
+ .astrum-file-upload--compact {
49
+ padding: 12px 16px;
50
+ gap: 0;
51
+ min-height: 48px;
52
+ }
53
+
54
+ .astrum-file-upload__icon {
55
+ display: flex;
56
+ align-items: center;
57
+ justify-content: center;
58
+ color: var(--astrum-gray-40);
59
+ }
60
+
61
+ .astrum-file-upload__label {
62
+ font-family: "Involve", sans-serif;
63
+ font-size: 16px;
64
+ font-weight: 700;
65
+ line-height: 1.3;
66
+ color: var(--astrum-gray-80);
67
+ text-align: center;
68
+ }
69
+
70
+ .astrum-file-upload__description {
71
+ font-family: "Involve", sans-serif;
72
+ font-size: 12px;
73
+ font-weight: 500;
74
+ line-height: 1;
75
+ color: var(--astrum-gray-60);
76
+ text-align: center;
77
+ }
78
+
79
+ .astrum-file-upload__compact-content {
80
+ width: 100%;
81
+ display: flex;
82
+ align-items: center;
83
+ justify-content: center;
84
+ }
85
+
86
+ .astrum-file-upload__compact-text {
87
+ font-family: "Involve", sans-serif;
88
+ font-size: 15px;
89
+ font-weight: 500;
90
+ line-height: 1;
91
+ color: var(--astrum-gray-80);
92
+ text-align: center;
93
+ }
94
+
95
+ .astrum-file-upload__compact-link {
96
+ background: none;
97
+ border: none;
98
+ padding: 0;
99
+ margin: 0;
100
+ font-family: inherit;
101
+ font-size: inherit;
102
+ font-weight: inherit;
103
+ line-height: inherit;
104
+ color: var(--astrum-primary);
105
+ text-decoration: underline;
106
+ cursor: pointer;
107
+ transition: color 0.15s;
108
+ }
109
+
110
+ .astrum-file-upload__compact-link:hover:not(:disabled) {
111
+ color: var(--astrum-primary);
112
+ opacity: 0.8;
113
+ }
114
+
115
+ .astrum-file-upload__compact-link:disabled {
116
+ color: var(--astrum-gray-40);
117
+ cursor: not-allowed;
118
+ text-decoration: none;
119
+ }
120
+
121
+ .astrum-file-upload--compact.astrum-file-upload--dragging {
122
+ border-color: var(--astrum-primary);
123
+ }
124
+
125
+ .astrum-file-item {
126
+ display: flex;
127
+ align-items: center;
128
+ gap: 12px;
129
+ padding: 12px 16px;
130
+ border-radius: 8px;
131
+ background-color: var(--astrum-primary-white);
132
+ border: 1px solid var(--astrum-gray-20);
133
+ }
134
+
135
+ .astrum-file-item__icon {
136
+ flex-shrink: 0;
137
+ display: flex;
138
+ align-items: center;
139
+ justify-content: center;
140
+ width: 24px;
141
+ height: 24px;
142
+ color: var(--astrum-primary);
143
+ }
144
+
145
+ .astrum-file-item__content {
146
+ flex: 1;
147
+ min-width: 0;
148
+ display: flex;
149
+ flex-direction: column;
150
+ gap: 2px;
151
+ }
152
+
153
+ .astrum-file-item__name {
154
+ font-family: "Involve", sans-serif;
155
+ font-size: 14px;
156
+ font-weight: 400;
157
+ line-height: 1.4;
158
+ color: var(--astrum-gray-80);
159
+ overflow: hidden;
160
+ text-overflow: ellipsis;
161
+ white-space: nowrap;
162
+ }
163
+
164
+ .astrum-file-item__size {
165
+ font-family: "Involve", sans-serif;
166
+ font-size: 12px;
167
+ font-weight: 500;
168
+ line-height: 1;
169
+ color: var(--astrum-gray-60);
170
+ }
171
+
172
+ .astrum-file-item__remove {
173
+ flex-shrink: 0;
174
+ display: flex;
175
+ align-items: center;
176
+ justify-content: center;
177
+ width: 24px;
178
+ height: 24px;
179
+ padding: 0;
180
+ border: none;
181
+ background: transparent;
182
+ color: var(--astrum-gray-40);
183
+ cursor: pointer;
184
+ border-radius: 4px;
185
+ transition: background-color 0.15s, color 0.15s;
186
+ }
187
+
188
+ .astrum-file-item__remove:hover {
189
+ background-color: var(--astrum-gray-5);
190
+ color: var(--astrum-gray-80);
191
+ }