@appscode/design-system 1.0.43-alpha.16 → 1.0.43-alpha.20

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.
@@ -28,7 +28,7 @@
28
28
  .inner-header {
29
29
  position: sticky;
30
30
  top: 100px;
31
- background-color: #fff;
31
+ background-color: $ac-white;
32
32
  z-index: 997;
33
33
  }
34
34
  .ac-system-content {
@@ -701,6 +701,31 @@ $border_color_4: transparent transparent #585d6e transparent;
701
701
  // Status css
702
702
  // ac-footer sticky end
703
703
 
704
+ // terminal scss start
705
+ .ac-terminal {
706
+ padding: 3px;
707
+ position: fixed;
708
+ bottom: 0px;
709
+ height: 300px;
710
+ width: 100%;
711
+ background-color: $ac-white;
712
+ border: 1px solid var(--ac-white-light);
713
+
714
+ color: $ac-white;
715
+ z-index: 999;
716
+
717
+ .terminal-body {
718
+ font-family: "Inconsolata", monospace;
719
+ background-color: $ac-color-value;
720
+ height: 100%;
721
+ color: $ac-white;
722
+ strong {
723
+ color: $ac-white;
724
+ }
725
+ }
726
+ }
727
+ // terminal scss end
728
+
704
729
  /****************************************
705
730
  Responsive Classes
706
731
  *****************************************/
@@ -1,7 +1,5 @@
1
1
  // Typography
2
- @import url("https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto:ital,wght@0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap");
3
- // font rubik
4
- @import url("https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,800&display=swap");
2
+ @import url("https://fonts.googleapis.com/css2?family=Inconsolata:wght@200;300;400;500;600;700&family=Roboto:ital,wght@0,400;0,500;0,700;0,900;1,400;1,500;1,700&display=swap");
5
3
 
6
4
  $ac-family-heading: "Roboto", sans-serif;
7
5
  $ac-family-paragraph: "Roboto", sans-serif;
@@ -129,169 +127,6 @@ $ac-border: var(--ac-border);
129
127
  $dark-bg: var(--dark-bg);
130
128
  $dark-bg-light: var(--dark-bg-light);
131
129
 
132
- .is-dark-theme {
133
- --ac-white: #21272e;
134
- --ac-black: #b4c0cc;
135
- --ac-text-heading: #b4c0cc;
136
- --ac-text: #98a6b4;
137
- --ac-gray-light: #424242;
138
- --ac-gray-lightest: #777777;
139
- --ac-white-light: #3f3f3f;
140
- --ac-white-lighter: #2e323c;
141
- --ac-color-value: hsl(
142
- var(--font-hsl-hue),
143
- var(--font-hsl-saturation),
144
- calc(var(--font-hsl-lightness) + 60%)
145
- );
146
- }
147
-
148
- .is-dark-theme {
149
- --ac-border: #404040;
150
-
151
- body {
152
- background-color: $dark-bg;
153
-
154
- .ac-navbar-area {
155
- background-color: $dark-bg-light;
156
- --ac-white: #ffffff;
157
- --ac-white-lighter: #f1f1f1;
158
-
159
- .ac-navbar {
160
- .search-item {
161
- background-color: rgba(0, 0, 0, 0.2);
162
- }
163
-
164
- .ac-navbar-menu {
165
- .ac-menu-item {
166
- .quick-access {
167
- --ac-white: $dark-bg-light;
168
- }
169
-
170
- .ac-menu-content {
171
- background-color: $dark-bg-light;
172
-
173
- &::after {
174
- --ac-white: $dark-bg-light;
175
- }
176
-
177
- .user-profile-wrapper {
178
- --ac-white: $dark-bg-light;
179
- }
180
- }
181
- }
182
- }
183
- }
184
- }
185
-
186
- .ac-options {
187
- .options-items {
188
- --ac-white: $dark-bg-light;
189
- }
190
- }
191
-
192
- h6.wizard-title.has-line:after {
193
- --ac-input-bg-color: #555;
194
- }
195
-
196
- .ac-payment-card,
197
- .ac-single-card,
198
- .button.ac-button,
199
- .option-dots {
200
- --ac-white: #b4c0cc;
201
- }
202
-
203
- .tabs {
204
- a {
205
- border-bottom: 1px solid $ac-white-lighter;
206
- }
207
- }
208
-
209
- .nested-body {
210
- code {
211
- background-color: $dark-bg-light;
212
- }
213
- }
214
-
215
- .ac-single-input {
216
- input,
217
- .file-input,
218
- .ac-dropdown-content {
219
- background-color: transparent;
220
- }
221
-
222
- label {
223
- color: #999999;
224
- }
225
- }
226
-
227
- .ac-single-card {
228
- background-color: $dark-bg-light;
229
-
230
- &.style-three {
231
- background-color: $dark-bg-light;
232
- }
233
-
234
- .ac-card-body {
235
- p {
236
- color: #999999;
237
- }
238
- }
239
- }
240
-
241
- .information-center {
242
- .information-center-inner {
243
- .info-body {
244
- .block-list {
245
- background-color: $dark-bg-light;
246
- }
247
- }
248
- }
249
- }
250
-
251
- .single-subscription-card {
252
- background-color: $dark-bg-light;
253
- }
254
-
255
- .pricing-card-wrpper {
256
- &.offer-card {
257
- background-color: $dark-bg-light;
258
- }
259
-
260
- .ac-card {
261
- background-color: $dark-bg-light;
262
- }
263
- }
264
-
265
- .ac-certificate-info {
266
- --ac-bg-light-gray: $dark-bg-light;
267
- }
268
-
269
- // multiselect
270
- .multi-select-wrapper {
271
- // .multiselect .multiselect__tags {
272
- // --ac-border: #404040;
273
- // }
274
- .multiselect__content-wrapper {
275
- background-color: $dark-bg-light;
276
-
277
- .multiselect__content .multiselect__element .multiselect__option {
278
- color: #b4c0cc;
279
- }
280
-
281
- .multiselect__option--group {
282
- color: #b4c0cc;
283
- background-color: $dark-bg-light;
284
- }
285
-
286
- .multiselect__option--selected {
287
- color: #b4c0cc;
288
- background-color: $dark-bg-light;
289
- }
290
- }
291
- }
292
- }
293
- }
294
-
295
130
  /* Deafult Margin & Padding view-height & view-width */
296
131
  @for $i from 0 through 100 {
297
132
  .m-#{$i} {
@@ -1,5 +1,5 @@
1
- body,
2
- html {
1
+ html,
2
+ body {
3
3
  background-color: $ac-bg;
4
4
  font-family: $ac-family-paragraph;
5
5
  font-weight: 400;
@@ -0,0 +1,163 @@
1
+ $dark-bg: var(--dark-bg);
2
+ $dark-bg-light: var(--dark-bg-light);
3
+
4
+ .is-dark-theme {
5
+ --ac-white: #21272e;
6
+ --ac-black: #b4c0cc;
7
+ --ac-text-heading: #b4c0cc;
8
+ --ac-text: #98a6b4;
9
+ --ac-gray-light: #424242;
10
+ --ac-gray-lightest: #777777;
11
+ --ac-white-light: #3f3f3f;
12
+ --ac-white-lighter: #2e323c;
13
+ --ac-border: #404040;
14
+ --ac-bg-light-gray: #2e323c;
15
+ --ac-color-value: hsl(
16
+ var(--font-hsl-hue),
17
+ var(--font-hsl-saturation),
18
+ calc(var(--font-hsl-lightness) + 60%)
19
+ );
20
+
21
+ body {
22
+ background-color: $dark-bg;
23
+
24
+ .ac-navbar-area {
25
+ background-color: var(--dark-bg-light);
26
+ --ac-white: #ffffff;
27
+ --ac-white-lighter: #f1f1f1;
28
+
29
+ .ac-navbar {
30
+ .search-item {
31
+ background-color: rgba(0, 0, 0, 0.2);
32
+ }
33
+
34
+ .ac-navbar-menu {
35
+ .ac-menu-item {
36
+ .quick-access {
37
+ --ac-white: var(--dark-bg-light);
38
+ }
39
+
40
+ .ac-menu-content {
41
+ background-color: var(--dark-bg-light);
42
+
43
+ &::after {
44
+ --ac-white: var(--dark-bg-light);
45
+ }
46
+
47
+ .user-profile-wrapper {
48
+ --ac-white: var(--dark-bg-light);
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+
56
+ .ac-options {
57
+ .options-items {
58
+ --ac-white: var(--dark-bg-light);
59
+ }
60
+ }
61
+
62
+ h6.wizard-title.has-line:after {
63
+ --ac-input-bg-color: #555;
64
+ }
65
+
66
+ .ac-payment-card,
67
+ .ac-single-card,
68
+ .button.ac-button,
69
+ .option-dots {
70
+ --ac-white: #b4c0cc;
71
+ }
72
+
73
+ .tabs {
74
+ a {
75
+ border-bottom: 1px solid $ac-white-lighter;
76
+ }
77
+ }
78
+
79
+ .nested-body {
80
+ code {
81
+ background-color: var(--dark-bg-light);
82
+ }
83
+ }
84
+
85
+ .ac-single-input {
86
+ input,
87
+ .file-input,
88
+ .ac-dropdown-content {
89
+ background-color: transparent;
90
+ }
91
+
92
+ label {
93
+ color: #999999;
94
+ }
95
+ }
96
+
97
+ .ac-single-card {
98
+ background-color: var(--dark-bg-light);
99
+
100
+ &.style-three {
101
+ background-color: var(--dark-bg-light);
102
+ }
103
+
104
+ .ac-card-body {
105
+ p {
106
+ color: #999999;
107
+ }
108
+ }
109
+ }
110
+
111
+ .information-center {
112
+ .information-center-inner {
113
+ .info-body {
114
+ .block-list {
115
+ background-color: var(--dark-bg-light);
116
+ }
117
+ }
118
+ }
119
+ }
120
+
121
+ .single-subscription-card {
122
+ background-color: var(--dark-bg-light);
123
+ }
124
+
125
+ .pricing-card-wrpper {
126
+ &.offer-card {
127
+ background-color: var(--dark-bg-light);
128
+ }
129
+
130
+ .ac-card {
131
+ background-color: var(--dark-bg-light);
132
+ }
133
+ }
134
+
135
+ .ac-certificate-info {
136
+ --ac-bg-light-gray: var(--dark-bg-light);
137
+ }
138
+
139
+ // multiselect
140
+ .multi-select-wrapper {
141
+ // .multiselect .multiselect__tags {
142
+ // --ac-border: #404040;
143
+ // }
144
+ .multiselect__content-wrapper {
145
+ background-color: var(--dark-bg-light);
146
+
147
+ .multiselect__content .multiselect__element .multiselect__option {
148
+ color: #b4c0cc;
149
+ }
150
+
151
+ .multiselect__option--group {
152
+ color: #b4c0cc;
153
+ background-color: var(--dark-bg-light);
154
+ }
155
+
156
+ .multiselect__option--selected {
157
+ color: #b4c0cc;
158
+ background-color: var(--dark-bg-light);
159
+ }
160
+ }
161
+ }
162
+ }
163
+ }
@@ -134,7 +134,7 @@ AC Toast
134
134
  margin-bottom: 10px;
135
135
 
136
136
  * {
137
- color: #fff;
137
+ color: $ac-white;
138
138
  }
139
139
 
140
140
  p {
@@ -157,10 +157,10 @@ AC Toast
157
157
 
158
158
  button.close-button {
159
159
  border-radius: 0px;
160
- border-left: 1px solid #fff;
160
+ border-left: 1px solid $ac-white;
161
161
  background-color: transparent;
162
162
  border: none;
163
- color: #fff;
163
+ color: $ac-white;
164
164
  position: absolute;
165
165
  right: 0;
166
166
  top: 0;
@@ -169,7 +169,7 @@ AC Toast
169
169
  width: 30px;
170
170
  z-index: 1;
171
171
  cursor: pointer;
172
- border-left: 1px solid #fff;
172
+ border-left: 1px solid $ac-white;
173
173
  }
174
174
  }
175
175
 
@@ -8,8 +8,14 @@
8
8
  display: block;
9
9
  padding: 20px;
10
10
  border-radius: 4px;
11
+ border: 1px solid $ac-white-light;
11
12
  overflow: hidden;
12
- background-color: $ac-input-bg-color;
13
+ background-color: hsla(
14
+ var(--hsl-hue),
15
+ var(--hsl-saturation),
16
+ var(--hsl-lightness),
17
+ 0.03
18
+ );
13
19
  transition: 0.3s ease-in-out;
14
20
 
15
21
  &.is-selected {
@@ -44,6 +50,7 @@
44
50
  height: 10px;
45
51
  border-radius: 50%;
46
52
  right: 0;
53
+ top: 5px;
47
54
  }
48
55
  }
49
56
 
@@ -166,7 +173,7 @@
166
173
  }
167
174
 
168
175
  &:hover {
169
- box-shadow: 0px 8px 57px rgba(0, 0, 0, 0.16);
176
+ border: 1px solid $ac-primary;
170
177
 
171
178
  .ac-card-title {
172
179
  h4 {
@@ -230,6 +237,7 @@
230
237
  height: 10px;
231
238
  border-radius: 50%;
232
239
  right: 0;
240
+ top: 5px;
233
241
  }
234
242
  }
235
243
 
@@ -540,6 +548,7 @@ Responsive Classes
540
548
  }
541
549
  }
542
550
  }
551
+
543
552
  .ac-single-card {
544
553
  &.card-counter {
545
554
  .card-header {
@@ -29,7 +29,7 @@
29
29
 
30
30
  &.select:not(.is-multiple):not(.is-loading)::after {
31
31
  top: 50%;
32
- margin-top: -2px;
32
+ margin-top: 0px;
33
33
  }
34
34
  }
35
35
 
@@ -219,6 +219,15 @@
219
219
  }
220
220
  }
221
221
 
222
+ .ac-system-body.bb-user-management {
223
+ .tabs.ac-tabs.is-line {
224
+ margin-left: -20px;
225
+ position: sticky;
226
+ top: 50px;
227
+ z-index: 99;
228
+ background: $ac-white;
229
+ }
230
+ }
222
231
  /****************************************
223
232
  Responsive Classes
224
233
  *****************************************/
@@ -354,6 +354,109 @@
354
354
  }
355
355
 
356
356
  // widget menu end
357
+ // cluster switcher start
358
+ .ac-left-sidebar {
359
+ .ac-options.is-right {
360
+ .option-dots {
361
+ transition: 0.3s;
362
+ i.fa {
363
+ &.fa-angle-left {
364
+ font-size: 18px;
365
+ }
366
+ }
367
+ &:active {
368
+ i.fa {
369
+ background-color: $ac-white-lighter;
370
+ width: 25px;
371
+ height: 25px;
372
+ text-align: center;
373
+ line-height: 25px;
374
+ border-radius: 50%;
375
+ }
376
+ }
377
+ &:hover {
378
+ color: #333;
379
+ transform: scale(1.2);
380
+ }
381
+ }
382
+ }
383
+ $ac-cluster-switch-bg: #f4f6f9;
384
+ .is-cluster-logo {
385
+ display: flex;
386
+ align-items: center;
387
+ margin-left: -8px;
388
+ padding: 5px;
389
+ }
390
+ .multiselect {
391
+ height: 50px;
392
+ width: 234px;
393
+ left: 0px;
394
+ top: -5px;
395
+ .multiselect__select {
396
+ height: 50px;
397
+ top: 4px;
398
+ }
399
+ .multiselect__tags {
400
+ border: none !important;
401
+ background-color: $ac-cluster-switch-bg;
402
+ min-height: 54px;
403
+ border-radius: 0;
404
+ .multiselect__placeholder {
405
+ padding-top: 12px !important;
406
+ font-size: 14px;
407
+ }
408
+ .multiselect__input {
409
+ background-color: $ac-cluster-switch-bg !important;
410
+ top: 13px;
411
+ &::placeholder {
412
+ font-size: 12px;
413
+ font-weight: 500;
414
+ }
415
+ }
416
+ }
417
+ .multiselect__single {
418
+ background-color: $ac-cluster-switch-bg !important;
419
+ top: 14px !important;
420
+ img {
421
+ width: 20px;
422
+ margin-right: 8px;
423
+ }
424
+ span {
425
+ span {
426
+ overflow: hidden;
427
+ text-overflow: ellipsis;
428
+ display: -webkit-box;
429
+ line-clamp: 1;
430
+ -webkit-line-clamp: 1;
431
+ box-orient: vertical;
432
+ -webkit-box-orient: vertical;
433
+ }
434
+ }
435
+ }
436
+ }
437
+ .multiselect__content-wrapper {
438
+ .multiselect__content {
439
+ .multiselect__element {
440
+ .multiselect__option {
441
+ display: flex;
442
+ align-items: center;
443
+ font-size: 14px;
444
+ img {
445
+ width: 25px;
446
+ }
447
+ p {
448
+ font-weight: 500;
449
+ }
450
+ .location {
451
+ font-weight: 400;
452
+ opacity: 0.8;
453
+ }
454
+ }
455
+ }
456
+ }
457
+ }
458
+ }
459
+ // cluster switcher end
357
460
  /****************************************
358
461
  Responsive Classes
359
462
  *****************************************/
@@ -52,7 +52,7 @@
52
52
  color: $ac-white;
53
53
  font-size: $font-size-small;
54
54
  font-weight: 600;
55
- font-family: raleway;
55
+ font-family: $ac-family-heading;
56
56
  width: 100%;
57
57
  padding-left: 15px;
58
58
 
@@ -70,7 +70,7 @@
70
70
  font-size: 16px;
71
71
  color: #f99a00;
72
72
  font-weight: 500;
73
- font-family: Raleway;
73
+ font-family: $ac-family-heading;
74
74
  }
75
75
  }
76
76
  }
@@ -50,7 +50,7 @@
50
50
  padding: 0;
51
51
 
52
52
  h5 {
53
- font-family: Raleway;
53
+ font-family: $ac-family-heading;
54
54
  font-style: normal;
55
55
  font-weight: 600;
56
56
  font-size: 14px;
@@ -10,7 +10,7 @@
10
10
  border-radius: 4px !important;
11
11
 
12
12
  * {
13
- color: #fff !important;
13
+ color: $ac-white !important;
14
14
  }
15
15
 
16
16
  p {
@@ -1,18 +1,25 @@
1
1
  .single-team-card {
2
- background-color: $ac-white;
2
+ border: 1px solid $ac-white-light;
3
+ background-color: hsla(
4
+ var(--hsl-hue),
5
+ var(--hsl-saturation),
6
+ var(--hsl-lightness),
7
+ 0.03
8
+ );
3
9
  border-radius: 4px;
4
10
  overflow: hidden;
5
11
  transition: 0.3s ease-in-out;
6
12
 
7
13
  &:hover {
8
- box-shadow: $ac-shadow-1;
14
+ // box-shadow: $ac-shadow-1;
15
+ border: 1px solid $ac-primary;
16
+ background-color: $ac-white;
9
17
  }
10
18
 
11
19
  .card-header {
12
20
  display: flex;
13
21
  align-items: center;
14
22
  justify-content: space-between;
15
- background-color: $ac-white;
16
23
  padding: 15px 20px;
17
24
  border-bottom: 1px solid $ac-white-light;
18
25
  box-shadow: none;
@@ -81,11 +88,12 @@
81
88
  align-items: center;
82
89
  justify-content: space-around;
83
90
  list-style: none;
84
-
85
- li:not(:first-child) {
91
+ li {
92
+ &:not(:first-child) {
93
+ list-style: disc;
94
+ }
86
95
  font-size: $font-size-small;
87
96
  color: $ac-color-value;
88
- list-style: disc;
89
97
  }
90
98
  }
91
99
  }
@@ -111,7 +111,7 @@
111
111
  // preview laptop and mobile view
112
112
  .post-body-wrapper {
113
113
  display: grid;
114
- grid-template-columns: 35% 65%;
114
+ grid-template-columns: 50% 50%;
115
115
  grid-gap: 20px;
116
116
  background-color: $ac-white;
117
117
  padding: 20px;
@@ -10,7 +10,7 @@
10
10
  content: "";
11
11
  width: 100%;
12
12
  height: 100%;
13
- left: 0;
13
+ left: 15px;
14
14
  bottom: 0;
15
15
  background-image: url("~@appscode/design-system-images/icons/bb-large-icon.svg");
16
16
  background-size: cover;
@@ -25,7 +25,7 @@
25
25
  content: "";
26
26
  width: 100%;
27
27
  height: 100%;
28
- right: 0;
28
+ right: 15px;
29
29
  top: 0;
30
30
  background-size: cover;
31
31
  background-position: center;
@@ -1,113 +1,121 @@
1
- .user-profile-wrapper {
2
- .user-profile-photo {
3
- background-color: $ac-white;
4
- border-radius: 4px;
5
- overflow: hidden;
6
- padding: 10px;
7
- position: relative;
8
- z-index: 1;
9
- margin-bottom: 10px;
10
-
11
- .thumbnail {
12
- height: 240px;
13
- background-size: cover;
14
- background-position: center;
15
- background-color: $ac-gray-lightest;
16
- background-repeat: no-repeat;
17
- border-radius: 10px;
18
-
19
- &.profile-1 {
20
- background-image: url("~@appscode/design-system-images/icons/appscode-large-icon.jpg");
21
- }
22
- }
23
-
24
- .setting-button {
25
- position: absolute;
26
- left: 15px;
27
- top: 15px;
28
- font-size: 18px;
29
- color: $ac-white;
30
- background-color: transparent;
31
- border: none;
32
- cursor: pointer;
33
- }
34
- }
35
-
36
- .profile-information {
37
- .profile-top-info {
38
- display: flex;
39
- align-items: center;
40
- justify-content: space-between;
41
-
42
- h3 {
43
- font-size: 26px;
44
- line-height: 1.4;
45
-
46
- span {
47
- font-size: 14px;
48
- line-height: 1.5;
49
- font-weight: 400;
50
- display: block;
51
- color: $ac-color-text;
1
+ .ac-system-body.bb-user-management {
2
+ .user-profile-wrapper {
3
+ padding: 20px;
4
+ border-right: 1px solid $ac-white-light;
5
+ height: calc(100vh - 52px);
6
+ position: sticky;
7
+ top: 52px;
8
+
9
+ .user-profile-photo {
10
+ background-color: $ac-white;
11
+ border-radius: 4px;
12
+ overflow: hidden;
13
+ padding: 10px;
14
+ position: relative;
15
+ z-index: 1;
16
+ margin-bottom: 10px;
17
+
18
+ .thumbnail {
19
+ height: 240px;
20
+ background-size: cover;
21
+ background-position: center;
22
+ background-color: $ac-gray-lightest;
23
+ background-repeat: no-repeat;
24
+ border-radius: 10px;
25
+
26
+ &.profile-1 {
27
+ background-image: url("~@appscode/design-system-images/icons/appscode-large-icon.jpg");
52
28
  }
53
29
  }
54
- }
55
30
 
56
- .edit-icon {
57
- max-width: 16px;
58
- }
59
-
60
- p {
61
- font-size: 14px;
62
- color: $ac-color-text;
63
- line-height: 160%;
64
- margin-bottom: 20px;
31
+ .setting-button {
32
+ position: absolute;
33
+ left: 15px;
34
+ top: 15px;
35
+ font-size: 18px;
36
+ color: $ac-white;
37
+ background-color: transparent;
38
+ border: none;
39
+ cursor: pointer;
40
+ }
65
41
  }
66
42
 
67
- .social-links {
68
- margin-bottom: 20px;
69
-
70
- a {
71
- max-width: 26px;
72
- margin-right: 10px;
73
- display: inline-block;
43
+ .profile-information {
44
+ .profile-top-info {
45
+ display: flex;
46
+ align-items: center;
47
+ justify-content: space-between;
48
+ margin-bottom: 10px;
74
49
 
75
- &:last-child {
76
- margin-right: 0;
50
+ h3 {
51
+ font-size: 26px;
52
+ line-height: 1.4;
53
+
54
+ span {
55
+ font-size: 14px;
56
+ line-height: 1.5;
57
+ font-weight: 400;
58
+ display: block;
59
+ color: $ac-color-value;
60
+ }
77
61
  }
62
+ }
78
63
 
79
- img {
80
- width: 100%;
81
- }
64
+ .edit-icon {
65
+ max-width: 16px;
82
66
  }
83
- }
84
67
 
85
- .edit-profile {
86
- background-color: transparent;
87
- }
68
+ p {
69
+ font-size: 14px;
70
+ color: $ac-color-text;
71
+ line-height: 160%;
72
+ margin-bottom: 20px;
73
+ }
88
74
 
89
- .website-link {
90
- margin-top: 20px;
75
+ .social-links {
76
+ margin-bottom: 20px;
91
77
 
92
- a {
93
- color: $ac-primary;
94
- display: flex;
95
- align-items: center;
96
- margin-bottom: 10px;
78
+ a {
79
+ max-width: 26px;
80
+ margin-right: 10px;
81
+ display: inline-block;
97
82
 
98
- &:last-child {
99
- margin-bottom: 0;
100
- }
83
+ &:last-child {
84
+ margin-right: 0;
85
+ }
101
86
 
102
- img {
103
- max-width: 18px;
104
- margin-right: 10px;
87
+ img {
88
+ width: 100%;
89
+ }
90
+ }
91
+ }
92
+ .website-link {
93
+ margin-top: 20px;
94
+
95
+ a {
96
+ color: $ac-primary;
97
+ display: flex;
98
+ align-items: center;
99
+ margin-bottom: 10px;
100
+ font-size: 13px;
101
+ &:last-child {
102
+ margin-bottom: 0;
103
+ }
104
+
105
+ img {
106
+ max-width: 18px;
107
+ margin-right: 10px;
108
+ }
105
109
  }
106
110
  }
107
111
  }
108
112
  }
109
113
  }
110
114
 
115
+ .sign-up-notification {
116
+ border: 1px solid $ac-white-light;
117
+ padding: 20px;
118
+ }
111
119
  // circle type profile start
112
120
  .ac-profile-photo {
113
121
  figure {
package/main.scss CHANGED
@@ -7,6 +7,7 @@
7
7
 
8
8
  // BASE
9
9
  @import "~assets/design-system/base/utilities/initial-variables";
10
+ @import "~assets/design-system/base/utilities/dark-theme";
10
11
  @import "~assets/design-system/base/utilities/derived-variables";
11
12
  @import "~assets/design-system/base/utilities/typography";
12
13
  @import "~assets/design-system/base/utilities/default";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appscode/design-system",
3
- "version": "1.0.43-alpha.16",
3
+ "version": "1.0.43-alpha.20",
4
4
  "description": "A design system for Appscode websites and dashboards made using Bulma",
5
5
  "main": "main.scss",
6
6
  "scripts": {
@@ -0,0 +1,114 @@
1
+ <template>
2
+ <button v-if="themeMode" class="button ac-nav-button" @click="toggleTheme" :title="themeModeIconTooltip" >
3
+ <i :class="`fa ${themeModeIconClass} width-15`" />
4
+ </button>
5
+ </template>
6
+ <script>
7
+ export default {
8
+ data() {
9
+ return {
10
+ themeMode: "",
11
+ };
12
+ },
13
+
14
+ computed: {
15
+ // to set icon class for theme mode
16
+ themeModeIconClass() {
17
+ if(this.themeMode === "system") {
18
+ return "fa-desktop";
19
+ } else if(this.themeMode === "light") {
20
+ return "fa-sun-o";
21
+ } else if(this.themeMode === "dark") {
22
+ return "fa-moon-o";
23
+ }
24
+ },
25
+
26
+ // to set icon tooltip for theme mode
27
+ themeModeIconTooltip() {
28
+ if(this.themeMode === "system") {
29
+ return "System theme";
30
+ } else if(this.themeMode === "light") {
31
+ return "Light theme";
32
+ } else if(this.themeMode === "dark") {
33
+ return "Dark theme";
34
+ }
35
+ }
36
+ },
37
+
38
+ mounted() {
39
+ // get theme mode from localStorage or set default one
40
+ this.themeMode = localStorage.getItem("themeMode") || "light";
41
+ },
42
+
43
+ destroyed() {
44
+ this.removeColorSchemeEventListener();
45
+ },
46
+
47
+ watch: {
48
+ themeMode: {
49
+ handler(n) {
50
+ this.onThemeModeChange(n);
51
+ }
52
+ }
53
+ },
54
+
55
+ methods: {
56
+ // handle theme mode button click
57
+ toggleTheme() {
58
+ if(this.themeMode === "light")
59
+ this.themeMode = "dark";
60
+ else if(this.themeMode === "dark")
61
+ this.themeMode = "system";
62
+ else if(this.themeMode === "system")
63
+ this.themeMode = "light";
64
+ },
65
+
66
+ // triggered when theme mode is updated
67
+ onThemeModeChange(n) {
68
+ localStorage.setItem("themeMode", n);
69
+
70
+ let theme = n;
71
+ if(n === "system") {
72
+ const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
73
+ this.addColorSchemeEventListener();
74
+ theme = isDarkMode ? "dark" : "light";
75
+ } else {
76
+ this.removeColorSchemeEventListener();
77
+ }
78
+ this.$emit("set:theme", theme);
79
+ this.handleDarkThemeClass(theme);
80
+ },
81
+
82
+ // add proper css class to update the ui theme
83
+ handleDarkThemeClass(currentTheme) {
84
+ if(currentTheme === "light") {
85
+ document.documentElement.classList.remove("is-dark-theme");
86
+ } else {
87
+ document.documentElement.classList.add("is-dark-theme");
88
+ }
89
+ },
90
+
91
+ // add system theme listener event
92
+ addColorSchemeEventListener() {
93
+ window
94
+ .matchMedia("(prefers-color-scheme: dark)")
95
+ .addEventListener(
96
+ "change", this.handleSystemThemeChange
97
+ );
98
+ },
99
+
100
+ // remove system theme listener event
101
+ removeColorSchemeEventListener() {
102
+ window
103
+ .matchMedia("(prefers-color-scheme: dark)")
104
+ .removeEventListener(
105
+ "change", this.handleSystemThemeChange
106
+ );
107
+ },
108
+
109
+ handleSystemThemeChange() {
110
+ this.onThemeModeChange(this.themeMode);
111
+ },
112
+ }
113
+ }
114
+ </script>
@@ -0,0 +1,118 @@
1
+ <template>
2
+ <button v-if="themeMode" class="button ac-nav-button" @click="toggleTheme" :title="themeModeIconTooltip" >
3
+ <i :class="`fa ${themeModeIconClass} width-15`" />
4
+ </button>
5
+ </template>
6
+ <script>
7
+ import { defineComponent } from "vue";
8
+
9
+ export default defineComponent({
10
+ data() {
11
+ return {
12
+ themeMode: "",
13
+ };
14
+ },
15
+
16
+ emits: ['set:theme'],
17
+
18
+ computed: {
19
+ // to set icon class for theme mode
20
+ themeModeIconClass() {
21
+ if(this.themeMode === "system") {
22
+ return "fa-desktop";
23
+ } else if(this.themeMode === "light") {
24
+ return "fa-sun-o";
25
+ } else if(this.themeMode === "dark") {
26
+ return "fa-moon-o";
27
+ }
28
+ },
29
+
30
+ // to set icon tooltip for theme mode
31
+ themeModeIconTooltip() {
32
+ if(this.themeMode === "system") {
33
+ return "System theme";
34
+ } else if(this.themeMode === "light") {
35
+ return "Light theme";
36
+ } else if(this.themeMode === "dark") {
37
+ return "Dark theme";
38
+ }
39
+ }
40
+ },
41
+
42
+ mounted() {
43
+ // get theme mode from localStorage or set default one
44
+ this.themeMode = localStorage.getItem("themeMode") || "light";
45
+ },
46
+
47
+ destroyed() {
48
+ this.removeColorSchemeEventListener();
49
+ },
50
+
51
+ watch: {
52
+ themeMode: {
53
+ handler(n) {
54
+ this.onThemeModeChange(n);
55
+ }
56
+ }
57
+ },
58
+
59
+ methods: {
60
+ // handle theme mode button click
61
+ toggleTheme() {
62
+ if(this.themeMode === "light")
63
+ this.themeMode = "dark";
64
+ else if(this.themeMode === "dark")
65
+ this.themeMode = "system";
66
+ else if(this.themeMode === "system")
67
+ this.themeMode = "light";
68
+ },
69
+
70
+ // triggered when theme mode is updated
71
+ onThemeModeChange(n) {
72
+ localStorage.setItem("themeMode", n);
73
+
74
+ let theme = n;
75
+ if(n === "system") {
76
+ const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
77
+ this.addColorSchemeEventListener();
78
+ theme = isDarkMode ? "dark" : "light";
79
+ } else {
80
+ this.removeColorSchemeEventListener();
81
+ }
82
+ this.$emit("set:theme", theme);
83
+ this.handleDarkThemeClass(theme);
84
+ },
85
+
86
+ // add proper css class to update the ui theme
87
+ handleDarkThemeClass(currentTheme) {
88
+ if(currentTheme === "light") {
89
+ document.documentElement.classList.remove("is-dark-theme");
90
+ } else {
91
+ document.documentElement.classList.add("is-dark-theme");
92
+ }
93
+ },
94
+
95
+ // add system theme listener event
96
+ addColorSchemeEventListener() {
97
+ window
98
+ .matchMedia("(prefers-color-scheme: dark)")
99
+ .addEventListener(
100
+ "change", this.handleSystemThemeChange
101
+ );
102
+ },
103
+
104
+ // remove system theme listener event
105
+ removeColorSchemeEventListener() {
106
+ window
107
+ .matchMedia("(prefers-color-scheme: dark)")
108
+ .removeEventListener(
109
+ "change", this.handleSystemThemeChange
110
+ );
111
+ },
112
+
113
+ handleSystemThemeChange() {
114
+ this.onThemeModeChange(this.themeMode);
115
+ },
116
+ }
117
+ });
118
+ </script>