blue-web 1.1.1 → 1.2.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/dist/style.scss CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Blue Web v1.1.1 (https://bruegmann.github.io/blue-web)
2
+ * Blue Web v1.2.0 (https://bruegmann.github.io/blue-web)
3
3
  * Licensed under GNU General Public License v3.0 (https://github.com/bruegmann/blue-web/blob/master/LICENSE).
4
4
  */
5
5
 
@@ -25,6 +25,7 @@
25
25
  @import "./styles/_router";
26
26
  @import "./styles/_status";
27
27
  @import "./styles/_layout";
28
+ @import "./styles/menu-item";
28
29
  @import "./styles/_sidebar";
29
30
  @import "./styles/_search";
30
31
  @import "./styles/action-menu";
@@ -14,3 +14,8 @@ $link-hover-decoration: underline !default;
14
14
 
15
15
  $font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI Variable Display", "Segoe UI", Roboto, Oxygen-Sans,
16
16
  Ubuntu, Cantarell, "Helvetica Neue", sans-serif !default;
17
+
18
+ // Tint focus border and shadow in primary color.
19
+ // In a future Bootstrap release, this might not be necessary anymore.
20
+ $focus-ring-color: #{rgba(var(--bs-primary-rgb), 25%)} !default;
21
+ $input-focus-border-color: #{rgba(var(--bs-primary-rgb), 50%)} !default;
@@ -36,7 +36,9 @@
36
36
  }
37
37
 
38
38
  &:not(.open) {
39
- .blue-sidebar-visible-on-open {
39
+ .blue-sidebar-visible-on-open,
40
+ .blue-sidebar-d-flex-on-open,
41
+ .blue-sidebar-d-block-on-open {
40
42
  display: none !important;
41
43
  }
42
44
 
@@ -44,6 +46,14 @@
44
46
  animation: fade-in 1s;
45
47
  }
46
48
  }
49
+
50
+ &:not(.expandSidebar):not(.open) .blue-sidebar {
51
+ .blue-sidebar-top,
52
+ .blue-menu,
53
+ .blue-sidebar-bottom {
54
+ @include blue-menu-item-dropdown-for-shrunk-sidebar();
55
+ }
56
+ }
47
57
  }
48
58
 
49
59
  .blue-sidebar-toggler {
@@ -0,0 +1,3 @@
1
+ .blue-menu-item-wrapper {
2
+ display: contents;
3
+ }
@@ -14,7 +14,9 @@
14
14
  }
15
15
 
16
16
  &:not(.open) {
17
- .blue-sidebar-visible-on-open {
17
+ .blue-sidebar-visible-on-open,
18
+ .blue-sidebar-d-flex-on-open,
19
+ .blue-sidebar-d-block-on-open {
18
20
  display: none !important;
19
21
  }
20
22
 
@@ -21,3 +21,88 @@
21
21
  height: 0.25rem;
22
22
  animation: blue-menu-item-indicator-in-from-below 0.2s ease-in-out;
23
23
  }
24
+
25
+ @mixin blue-menu-item-dropdown-for-shrunk-sidebar() {
26
+ & > .blue-menu-item-wrapper {
27
+ display: block;
28
+ position: relative;
29
+
30
+ &:not(:has(.blue-menu-item-dropdown)) > .blue-menu-item:hover {
31
+ .blue-menu-item-label {
32
+ &::before,
33
+ & {
34
+ animation: tips-horz 150ms cubic-bezier(0.5, 0, 0.6, 1.3) 1ms forwards;
35
+ }
36
+
37
+ &::before {
38
+ content: "";
39
+ display: block;
40
+ position: absolute;
41
+ border: 5px solid transparent;
42
+ z-index: 1001;
43
+
44
+ top: 50%;
45
+ border-left-width: 0;
46
+ border-right-color: var(--bs-tooltip-bg, #353539);
47
+ left: calc(0em - 5px);
48
+ transform: translate(0.5em, -50%);
49
+ opacity: 0;
50
+ }
51
+
52
+ display: block;
53
+ text-transform: none;
54
+ line-height: 1;
55
+ font-size: 0.9em;
56
+ -webkit-user-select: none;
57
+ user-select: none;
58
+ pointer-events: none;
59
+ position: absolute;
60
+ font-family: var(--bs-font-sans-serif);
61
+ text-align: center;
62
+ min-width: 3em;
63
+ max-width: var(--bs-tooltip-max-width, 21em);
64
+ padding: var(--bs-tooltip-padding-y, 1ch) var(--bs-tooltip-padding-x, 1.5ch);
65
+ border-radius: var(--bs-tooltip-border-radius, 0.3em);
66
+ box-shadow: 0 1em 2em -0.5em rgba(0, 0, 0, 0.35);
67
+ background: var(--bs-tooltip-bg, #353539);
68
+ color: var(--bs-tooltip-color, #fff);
69
+ z-index: 1000;
70
+ width: auto;
71
+ top: 50%;
72
+ left: calc(100% + 5px);
73
+ transform: translate(-0.5em, -50%);
74
+ overflow: visible;
75
+ opacity: 0;
76
+ }
77
+ }
78
+
79
+ & > .blue-menu-item-dropdown,
80
+ & > .blue-outside > .blue-menu-item-dropdown {
81
+ @extend .ms-1;
82
+ @extend .rounded;
83
+ @extend .shadow;
84
+ @extend .blue-menu-item-dropdown-from-start;
85
+ @extend .blue-sidebar-state;
86
+ @extend .open;
87
+
88
+ position: absolute;
89
+ top: 0;
90
+ width: $bla-sidebar-width;
91
+ left: $normal-size;
92
+ max-height: calc(100vh - (var(--offset-top, 0px) + 1rem));
93
+ overflow-y: auto;
94
+ overflow-x: hidden;
95
+ background-color: var(--blue-sidebar-bg);
96
+
97
+ &::before {
98
+ content: none;
99
+ }
100
+ }
101
+
102
+ &:has(.blue-menu-item-dropdown) {
103
+ & > .blue-menu-item {
104
+ @extend .highlighted;
105
+ }
106
+ }
107
+ }
108
+ }
@@ -7,11 +7,21 @@
7
7
  display: none !important;
8
8
  }
9
9
 
10
- .blue-sidebar-visible-on-open {
10
+ .blue-sidebar-visible-on-open,
11
+ .blue-sidebar-d-flex-on-open,
12
+ .blue-sidebar-d-block-on-open {
11
13
  animation: fade-in 1s;
14
+ }
15
+
16
+ .blue-sidebar-visible-on-open,
17
+ .blue-sidebar-d-flex-on-open {
12
18
  display: flex !important;
13
19
  }
14
20
 
21
+ .blue-sidebar-d-block-on-open {
22
+ display: block !important;
23
+ }
24
+
15
25
  .blue-menu-item-label {
16
26
  display: inline-block;
17
27
  }
@@ -199,3 +209,18 @@
199
209
  transform: translateY(1);
200
210
  }
201
211
  }
212
+
213
+ .blue-sidebar-visible-on-open,
214
+ .blue-sidebar-d-flex-on-open,
215
+ .blue-sidebar-d-block-on-open {
216
+ display: none !important;
217
+ }
218
+
219
+ .blue-sidebar.open .blue-sidebar-visible-on-open,
220
+ .blue-sidebar.open .blue-sidebar-d-flex-on-open {
221
+ display: flex !important;
222
+ }
223
+
224
+ .blue-sidebar.open .blue-sidebar-d-block-on-open {
225
+ display: block !important;
226
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blue-web",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "description": "UI components built on top of Bootstrap 5",
5
5
  "license": "LGPL-3.0-or-later",
6
6
  "homepage": "https://bruegmann.github.io/blue-web/v1",