@finqu/cool 1.2.0 → 1.2.3

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.
Files changed (60) hide show
  1. package/dist/css/cool-grid.css +2 -2
  2. package/dist/css/cool-grid.css.map +3 -3
  3. package/dist/css/cool-grid.min.css +1 -1
  4. package/dist/css/cool-grid.min.css.map +1 -1
  5. package/dist/css/cool-reboot.css +2 -2
  6. package/dist/css/cool-reboot.css.map +6 -6
  7. package/dist/css/cool-reboot.min.css +1 -1
  8. package/dist/css/cool-reboot.min.css.map +1 -1
  9. package/dist/css/cool.css +2668 -726
  10. package/dist/css/cool.css.map +18 -18
  11. package/dist/css/cool.min.css +2 -2
  12. package/dist/css/cool.min.css.map +1 -1
  13. package/dist/js/cool.bundle.js +119 -32
  14. package/dist/js/cool.bundle.js.map +1 -1
  15. package/dist/js/cool.bundle.min.js +2 -2
  16. package/dist/js/cool.bundle.min.js.map +1 -1
  17. package/dist/js/cool.esm.js +119 -32
  18. package/dist/js/cool.esm.js.map +1 -1
  19. package/dist/js/cool.esm.min.js +2 -2
  20. package/dist/js/cool.esm.min.js.map +1 -1
  21. package/dist/js/cool.js +119 -32
  22. package/dist/js/cool.js.map +1 -1
  23. package/dist/js/cool.min.js +2 -2
  24. package/dist/js/cool.min.js.map +1 -1
  25. package/html/dropdown-test.html +200 -0
  26. package/html/index.html +480 -5
  27. package/js/dist/collapse.js +1 -1
  28. package/js/dist/common.js +677 -545
  29. package/js/dist/common.js.map +1 -1
  30. package/js/dist/dropdown.js +3188 -1819
  31. package/js/dist/dropdown.js.map +1 -1
  32. package/js/dist/popover.js +1 -1
  33. package/js/dist/sectiontabs.js +1 -1
  34. package/js/dist/select.js +2842 -2649
  35. package/js/dist/select.js.map +1 -1
  36. package/js/dist/tooltip.js +1 -1
  37. package/js/src/common.js +8 -0
  38. package/js/src/dialog.js +6 -1
  39. package/js/src/dropdown.js +77 -5
  40. package/js/src/select.js +31 -31
  41. package/package.json +21 -21
  42. package/scss/_alert.scss +79 -82
  43. package/scss/_badge.scss +16 -22
  44. package/scss/_dialog.scss +1 -0
  45. package/scss/_dropdown.scss +1 -4
  46. package/scss/_frame.scss +23 -3
  47. package/scss/_functions.scss +10 -0
  48. package/scss/_images.scss +7 -1
  49. package/scss/_navbar.scss +40 -0
  50. package/scss/_section.scss +14 -0
  51. package/scss/_type.scss +37 -6
  52. package/scss/_variables.scss +4 -3
  53. package/scss/cool-grid.scss +1 -1
  54. package/scss/cool-reboot.scss +1 -1
  55. package/scss/cool.scss +1 -1
  56. package/scss/mixins/_alert-variant.scss +13 -28
  57. package/scss/mixins/_badge-variant.scss +27 -5
  58. package/scss/mixins/_text-truncate.scss +77 -4
  59. package/scss/utilities/_cursor.scss +2 -2
  60. package/scss/utilities/_text.scss +4 -2
package/scss/_frame.scss CHANGED
@@ -94,7 +94,7 @@
94
94
 
95
95
  .content-inner {
96
96
  position: relative;
97
- margin: 10px 0;
97
+ margin: 20px 0;
98
98
  overflow: visible;
99
99
 
100
100
  @include media-breakpoint-up(md) {
@@ -105,7 +105,7 @@
105
105
  .content-header {
106
106
  position: relative;
107
107
  width: 100%;
108
- margin: 10px 0;
108
+ margin: 20px 0;
109
109
 
110
110
  & + .content-inner {
111
111
  margin-top: 0;
@@ -132,6 +132,16 @@
132
132
 
133
133
  .content-header-secondary-actions {
134
134
  font-size: 0;
135
+
136
+ &.has-content {
137
+ margin-top: 20px;
138
+ margin-bottom: 20px;
139
+
140
+ @include media-breakpoint-up(md) {
141
+ margin-top: 10px;
142
+ margin-bottom: 0;
143
+ }
144
+ }
135
145
  }
136
146
  }
137
147
  }
@@ -492,7 +502,7 @@
492
502
  .content-header {
493
503
  position: relative;
494
504
  width: 100%;
495
- margin: 10px 0;
505
+ margin: 20px 0;
496
506
 
497
507
  @include media-breakpoint-up(md) {
498
508
  margin: 20px 0;
@@ -519,6 +529,16 @@
519
529
 
520
530
  .content-header-secondary-actions {
521
531
  font-size: 0;
532
+
533
+ &.has-content {
534
+ margin-top: 20px;
535
+ margin-bottom: 20px;
536
+
537
+ @include media-breakpoint-up(md) {
538
+ margin-top: 10px;
539
+ margin-bottom: 0;
540
+ }
541
+ }
522
542
  }
523
543
  }
524
544
  }
@@ -111,4 +111,14 @@
111
111
 
112
112
  @warn "Unknown `#{$key}` in $theme-colors.";
113
113
  @return null;
114
+ }
115
+
116
+ // Strip unit
117
+ @function strip-unit($number) {
118
+
119
+ @if type-of($number) == 'number' and not unitless($number) {
120
+ @return $number / ($number * 0 + 1);
121
+ }
122
+
123
+ @return $number;
114
124
  }
package/scss/_images.scss CHANGED
@@ -281,6 +281,8 @@ html.dom-ready {
281
281
  opacity: 1;
282
282
  vertical-align: middle;
283
283
  transition: opacity 0.4s;
284
+ width: 30px;
285
+ height: 30px;
284
286
  }
285
287
 
286
288
  &.has-icon {
@@ -314,6 +316,11 @@ html.dom-ready {
314
316
  }
315
317
  }
316
318
 
319
+ // Showcase
320
+ .img-showcase {
321
+ box-shadow: 0 10px 20px -15px hsla(0, 0%, 25%, 1);
322
+ border-radius: 5px;
323
+ }
317
324
 
318
325
  // Image fluid
319
326
  .img-fluid {
@@ -324,7 +331,6 @@ html.dom-ready {
324
331
  height: auto;
325
332
  }
326
333
 
327
-
328
334
  // Image Circle
329
335
  .img-circle {
330
336
  border-radius: 50%;
package/scss/_navbar.scss CHANGED
@@ -210,10 +210,50 @@ html.dom-ready {
210
210
  .img-bordered {
211
211
  border-color: $navbar-color;
212
212
  }
213
+
214
+ &.pulse {
215
+ position: relative;
216
+
217
+ &:after {
218
+ content: " ";
219
+ position: absolute;
220
+ top: calc(50% - #{$navbar-item-icon-size / 2});
221
+ left: calc(50% - #{$navbar-item-icon-size / 2});
222
+ display: block;
223
+ width: $navbar-item-icon-size;
224
+ height: $navbar-item-icon-size;
225
+ border-radius: 50%;
226
+ cursor: pointer;
227
+ box-shadow: 0 0 0 rgba($navbar-pulse-shadow-color, 0.4);
228
+ animation: navbar-item-pulse 2s 10;
229
+ }
230
+
231
+ &:hover {
232
+ animation: none;
233
+ }
234
+ }
235
+
236
+ .pulse:hover {
237
+ animation: none;
238
+ }
213
239
  }
214
240
 
215
241
  .nav-dropdown {
216
242
  height: 100%;
217
243
  }
218
244
  }
245
+ }
246
+
247
+ @keyframes navbar-item-pulse {
248
+ 0% {
249
+ box-shadow: 0 0 0 0 rgba($navbar-pulse-shadow-color, 0.4);
250
+ }
251
+
252
+ 70% {
253
+ box-shadow: 0 0 0 10px rgba($navbar-pulse-shadow-color, 0);
254
+ }
255
+
256
+ 100% {
257
+ box-shadow: 0 0 0 0 rgba($navbar-pulse-shadow-color, 0);
258
+ }
219
259
  }
@@ -44,6 +44,15 @@
44
44
  }
45
45
  }
46
46
 
47
+ // Hover
48
+ &.section-hover {
49
+ transition: box-shadow 0.1s linear;
50
+
51
+ &:hover {
52
+ box-shadow: $section-hover-box-shadow;
53
+ }
54
+ }
55
+
47
56
  // Guide
48
57
  &.section-guide {
49
58
  &:not(.show-more) {
@@ -685,6 +694,11 @@
685
694
  &.section-collapse {
686
695
  position: relative;
687
696
  transition: padding .35s ease, margin .35s ease;
697
+ overflow: hidden;
698
+
699
+ &.show {
700
+ overflow: visible;
701
+ }
688
702
 
689
703
  .collapse {
690
704
  left: $section-padding;
package/scss/_type.scss CHANGED
@@ -11,16 +11,40 @@ h1, h2, h3, h4, h5, h6,
11
11
  color: $headings-color;
12
12
  }
13
13
 
14
- h1, .h1 { font-size: $h1-font-size; }
15
- h2, .h2 { font-size: $h2-font-size; }
16
- h3, .h3 { font-size: $h3-font-size; }
17
- h4, .h4 { font-size: $h4-font-size; }
18
- h5, .h5 { font-size: $h5-font-size; }
19
- h6, .h6 { font-size: $h6-font-size; }
14
+ h1, .h1 {
15
+ font-size: $h1-font-size;
16
+ @include text-truncate-generate($font-size: $h1-font-size, $line-height: $headings-line-height);
17
+ }
18
+
19
+ h2, .h2 {
20
+ font-size: $h2-font-size;
21
+ @include text-truncate-generate($font-size: $h2-font-size, $line-height: $headings-line-height);
22
+ }
23
+
24
+ h3, .h3 {
25
+ font-size: $h3-font-size;
26
+ @include text-truncate-generate($font-size: $h3-font-size, $line-height: $headings-line-height);
27
+ }
28
+
29
+ h4, .h4 {
30
+ font-size: $h4-font-size;
31
+ @include text-truncate-generate($font-size: $h4-font-size, $line-height: $headings-line-height);
32
+ }
33
+
34
+ h5, .h5 {
35
+ font-size: $h5-font-size;
36
+ @include text-truncate-generate($font-size: $h5-font-size, $line-height: $headings-line-height);
37
+ }
38
+
39
+ h6, .h6 {
40
+ font-size: $h6-font-size;
41
+ @include text-truncate-generate($font-size: $h6-font-size, $line-height: $headings-line-height);
42
+ }
20
43
 
21
44
  .lead {
22
45
  font-size: $lead-font-size;
23
46
  font-weight: $lead-font-weight;
47
+ @include text-truncate-generate($font-size: $lead-font-size);
24
48
  }
25
49
 
26
50
 
@@ -29,21 +53,28 @@ h6, .h6 { font-size: $h6-font-size; }
29
53
  font-size: $display1-size;
30
54
  font-weight: $display1-weight;
31
55
  line-height: $display-line-height;
56
+ @include text-truncate-generate($font-size: $display1-size, $line-height: $display-line-height);
32
57
  }
58
+
33
59
  .display-2 {
34
60
  font-size: $display2-size;
35
61
  font-weight: $display2-weight;
36
62
  line-height: $display-line-height;
63
+ @include text-truncate-generate($font-size: $display2-size, $line-height: $display-line-height);
37
64
  }
65
+
38
66
  .display-3 {
39
67
  font-size: $display3-size;
40
68
  font-weight: $display3-weight;
41
69
  line-height: $display-line-height;
70
+ @include text-truncate-generate($font-size: $display3-size, $line-height: $display-line-height);
42
71
  }
72
+
43
73
  .display-4 {
44
74
  font-size: $display4-size;
45
75
  font-weight: $display4-weight;
46
76
  line-height: $display-line-height;
77
+ @include text-truncate-generate($font-size: $display4-size, $line-height: $display-line-height);
47
78
  }
48
79
 
49
80
 
@@ -195,7 +195,7 @@ $navbar-item-min-width: 45px;
195
195
  $navbar-item-padding-x: 8px;
196
196
  $navbar-item-font-size: 14px;
197
197
  $navbar-item-icon-size: 20px;
198
-
198
+ $navbar-pulse-shadow-color: lighten($navbar-color, 10%);
199
199
 
200
200
  // Frame
201
201
  $frame-enable: true !default;
@@ -291,7 +291,7 @@ $display3-weight: 300 !default;
291
291
  $display4-weight: 300 !default;
292
292
  $display-line-height: $headings-line-height !default;
293
293
 
294
- $lead-font-size: calc(#{$font-size-base * 1.25}) !default;
294
+ $lead-font-size: $font-size-base * 1.25 !default;
295
295
  $lead-font-weight: 300 !default;
296
296
 
297
297
  $small-font-size: 80% !default;
@@ -593,7 +593,7 @@ $dropdown-link-hover-color: darken(color('grey-darkest'), 5%) !
593
593
  $dropdown-link-hover-bg: color('grey-lightest') !default;
594
594
 
595
595
  $dropdown-link-active-color: color('grey-darkest') !default;
596
- $dropdown-link-active-bg: color('blue') !default;
596
+ $dropdown-link-active-bg: color('blue-light') !default;
597
597
 
598
598
  $dropdown-link-disabled-color: color('grey-darker') !default;
599
599
 
@@ -634,6 +634,7 @@ $section-padding: spacer(3) !default;
634
634
  $section-bg: color('white') !default;
635
635
  $section-color: $body-color !default;
636
636
  $section-box-shadow: 0 1px 2px #cccccc, 0 0 0 1px #eeeeee !default;
637
+ $section-hover-box-shadow: 0 1px 4px #cccccc, 0 0 0 1px #dddddd !default;
637
638
  $section-divider-color: color('grey-light') !default;
638
639
 
639
640
  $section-header-font-family: $font-family-base !default;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Cool UI - Grid v1.0.0 (https://finqu.fi)
2
+ * Cool UI - Grid v1.2.3 (https://finqu.fi)
3
3
  * Copyright 2019 Finqu Oy.
4
4
  * Licensed under the ISC license - (http://opensource.org/licenses/ISC)
5
5
  * Forked from Bootstrap, licensed MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Cool UI - Reboot v1.0.0 (https://finqu.fi)
2
+ * Cool UI - Reboot v1.2.3 (https://finqu.fi)
3
3
  * Copyright 2019 Finqu Oy.
4
4
  * Licensed under the ISC license - (http://opensource.org/licenses/ISC)
5
5
  * Forked from Bootstrap, licensed MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
package/scss/cool.scss CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Cool UI v1.0.0 (https://finqu.fi)
2
+ * Cool UI v1.2.3 (https://finqu.fi)
3
3
  * Copyright 2019 Finqu Oy.
4
4
  * Licensed under the ISC license - (http://opensource.org/licenses/ISC)
5
5
  * Forked from Bootstrap, licensed MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
@@ -2,39 +2,24 @@
2
2
  // ---------------------------------------------------------------------------------------------------------------
3
3
 
4
4
  @mixin alert-variant($color) {
5
+ border-top-color: $color;
6
+ background-color: fade-out($color, 0.9);
5
7
 
6
- border-color: $color;
8
+ .alert-icon {
9
+ border: 1px solid $color;
10
+ box-shadow: 0 0 0 0.2em fade-out($color, 0.7);
7
11
 
8
- & > .alert-content-container > .alert-content > strong {
9
- color: $color;
10
- }
11
-
12
- &:not(.alert-fill-bg) > .alert-icon {
13
- padding: 0 15px;
14
- width: 55px;
15
- color: color-yiq($color);
16
-
17
- &:after {
18
- width: 49px;
19
- background-color: $color;
12
+ .icon {
13
+ color: $color;
20
14
  }
21
15
  }
16
+ }
22
17
 
23
- &.alert-fill-bg {
24
- & > .alert-icon {
25
- color: color-yiq($color);
26
- &:after {
27
- background-color: $color;
28
- }
29
- }
30
-
31
- & > .alert-content-container {
32
- background-color: $color;
33
- color: color-yiq($color);
18
+ @mixin alert-icon-variant($color) {
19
+ border: 1px solid $color;
20
+ box-shadow: 0 0 0 0.2em fade-out($color, 0.7);
34
21
 
35
- & > .alert-content > strong {
36
- color: color-yiq($color);
37
- }
38
- }
22
+ .icon {
23
+ color: $color;
39
24
  }
40
25
  }
@@ -1,14 +1,36 @@
1
1
  // Badge variant
2
2
  // ---------------------------------------------------------------------------------------------------------------
3
+ @mixin badge-variant($color, $background: mix($color, white, 10%)) {
4
+ border-color: $color;
5
+ background-color: $background;
6
+ color: color-yiq($background);
3
7
 
4
- @mixin badge-variant($color) {
8
+ .alert-icon {
9
+ border: 1px solid $color;
10
+ box-shadow: 0 0 0 0.2em fade-out($color, 0.7);
5
11
 
6
- background: $color;
7
- color: color-yiq($color);
8
- border: 1px solid $color;
12
+ .icon {
13
+ color: $color;
14
+ }
15
+ }
9
16
  }
10
17
 
11
18
  @mixin badge-outline-variant($color) {
19
+ border-color: $color;
20
+ background: transparent;
12
21
 
13
- border: 1px solid $color;
22
+ @if lightness($color) > 80 {
23
+ color: $grey-500;
24
+ } @else {
25
+ color: $color;
26
+ }
27
+
28
+ .alert-icon {
29
+ border: 1px solid $color;
30
+ box-shadow: 0 0 0 0.2em fade-out($color, 0.7);
31
+
32
+ .icon {
33
+ color: $color;
34
+ }
35
+ }
14
36
  }
@@ -1,8 +1,81 @@
1
1
  // Text truncate
2
2
  // ---------------------------------------------------------------------------------------------------------------
3
3
 
4
- @mixin text-truncate {
5
- overflow: hidden;
6
- text-overflow: ellipsis;
7
- white-space: nowrap;
4
+ @mixin text-truncate-adjust($lines: 1, $font-size: $font-size-base, $line-height: $line-height-base, $fixed-height: false) {
5
+
6
+ -webkit-box-orient: vertical;
7
+ -webkit-line-clamp: $lines;
8
+
9
+ @if $fixed-height {
10
+ height: floor($font-size * $line-height) * $lines;
11
+ }
12
+
13
+ &.text-truncate-fixed {
14
+ height: floor($font-size * $line-height) * $lines;
15
+ }
16
+
17
+ &:after {
18
+ width: floor($font-size * $line-height) * 4;
19
+ height: floor($font-size * $line-height);
20
+ }
21
+
22
+ & small,
23
+ &.small {
24
+
25
+ @if $fixed-height {
26
+ height: floor($font-size * strip-unit($small-font-size) / 100 * $line-height) * $lines;
27
+ }
28
+
29
+ &.text-truncate-fixed {
30
+ height: floor($font-size * strip-unit($small-font-size) / 100 * $line-height) * $lines;
31
+ }
32
+
33
+ &:after {
34
+ width: floor($font-size * strip-unit($small-font-size) / 100 * $line-height) * 4;
35
+ height: floor($font-size * strip-unit($small-font-size) / 100 * $line-height);
36
+ }
37
+ }
38
+ }
39
+
40
+ @mixin text-truncate-generate($font-size: $font-size-base, $line-height: $line-height-base, $fixed-height: false) {
41
+
42
+ & {
43
+ @include text-truncate-adjust(1);
44
+
45
+ &.text-truncate-lines-2 {
46
+ @include text-truncate-adjust(2);
47
+ }
48
+
49
+ &.text-truncate-lines-3 {
50
+ @include text-truncate-adjust(3);
51
+ }
52
+
53
+ &.text-truncate-lines-4 {
54
+ @include text-truncate-adjust(4);
55
+ }
56
+
57
+ &.text-truncate-lines-5 {
58
+ @include text-truncate-adjust(5);
59
+ }
60
+ }
61
+ }
62
+
63
+ @mixin text-truncate($font-size: $font-size-base, $line-height: $line-height-base, $fixed-height: false) {
64
+
65
+ display: -webkit-box !important;
66
+ overflow: hidden !important;
67
+ text-overflow: ellipsis !important;
68
+ position: relative !important;
69
+
70
+ &:after {
71
+ position: absolute;
72
+ right: 0;
73
+ bottom: 0;
74
+ content: '';
75
+ max-height: 100%;
76
+ background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,1));
77
+ pointer-events: none;
78
+ }
79
+
80
+ @include text-truncate-generate($font-size, $line-height, $fixed-height);
8
81
  }
@@ -2,11 +2,11 @@
2
2
  // ---------------------------------------------------------------------------------------------------------------
3
3
 
4
4
  .c-default {
5
- cursor: default;
5
+ cursor: default !important;
6
6
  }
7
7
 
8
8
  .c-pointer {
9
- cursor: pointer;
9
+ cursor: pointer !important;
10
10
  }
11
11
 
12
12
  .c-sortable {
@@ -42,7 +42,6 @@
42
42
  }
43
43
  }
44
44
 
45
-
46
45
  // Transform
47
46
  .text-lowercase {
48
47
  text-transform: lowercase !important;
@@ -60,7 +59,6 @@
60
59
  text-transform: none !important;
61
60
  }
62
61
 
63
-
64
62
  // Decoration
65
63
  .text-underline {
66
64
  text-decoration: underline !important;
@@ -79,6 +77,10 @@
79
77
  @include text-emphasis-variant(".text-#{$color}", $value);
80
78
  }
81
79
 
80
+ // Truncate
81
+ .text-truncate {
82
+ @include text-truncate();
83
+ }
82
84
 
83
85
  // Misc
84
86
  .text-hide {