blue-web 1.17.6 → 1.17.7

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.17.6 (https://bruegmann.github.io/blue-web)
2
+ * Blue Web v1.17.7 (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
 
@@ -20,6 +20,9 @@
20
20
  --side-width: var(--blue-sidebar-width);
21
21
  --toggler-size: var(--blue-menu-item-height);
22
22
 
23
+ --blue-menu-item-indicator-bg: #{color-contrast($sidebar-bg, $sidebar-indicator-color)};
24
+ --bs-link-hover-color: #{color-contrast($sidebar-bg, $link-hover-color)};
25
+
23
26
  height: 100dvh;
24
27
  position: relative;
25
28
  display: grid;
@@ -39,6 +42,13 @@
39
42
  }
40
43
  }
41
44
 
45
+ @include color-mode(dark, false) {
46
+ .blue-layout {
47
+ --blue-menu-item-indicator-bg: #{$sidebar-indicator-color-dark};
48
+ --bs-link-hover-color: #{color-contrast($sidebar-bg, $link-hover-color-dark)};
49
+ }
50
+ }
51
+
42
52
  @media (width >= 64rem) {
43
53
  .blue-layout {
44
54
  &:has(> .blue-layout-state-expand:checked) {
@@ -98,7 +108,6 @@
98
108
  grid-area: side;
99
109
  overflow: auto;
100
110
  background: inherit;
101
- overflow-y: auto;
102
111
  }
103
112
 
104
113
  @media (width < 64rem) {
@@ -126,6 +135,9 @@
126
135
 
127
136
  .blue-layout-body {
128
137
  --spacing: 0.25rem;
138
+ --blue-menu-item-indicator-bg: #{$sidebar-indicator-color};
139
+ --bs-link-hover-color: #{$link-hover-color};
140
+
129
141
  width: calc(100% - var(--spacing) * 2);
130
142
  height: calc(100% - var(--spacing));
131
143
  margin-left: auto;
@@ -138,6 +150,13 @@
138
150
  border-radius: var(--bs-border-radius-lg);
139
151
  }
140
152
 
153
+ @include color-mode(dark, false) {
154
+ .blue-layout-body {
155
+ --blue-menu-item-indicator-bg: #{$sidebar-indicator-color-dark};
156
+ --bs-link-hover-color: #{$link-hover-color-dark};
157
+ }
158
+ }
159
+
141
160
  .blue-layout-overlay {
142
161
  position: fixed;
143
162
  z-index: var(--base-z-index);
@@ -1,193 +1,179 @@
1
- @keyframes blue-menu-item-indicator-in-from-side {
2
- from {
3
- transform: translateX(-100%);
4
- }
5
- to {
6
- transform: translateX(1);
7
- }
8
- }
9
-
10
- @keyframes blue-menu-item-indicator-in-from-below {
11
- from {
12
- transform: translateY(100%);
13
- }
14
- to {
15
- transform: translateY(1);
16
- }
17
- }
18
-
19
- .blue-menu-item {
20
- transition:
21
- width 0.5s,
22
- background-color 0.3s,
23
- color 0.15s,
24
- box-shadow 0.3s,
25
- opacity 0.3s !important;
26
-
27
- @media (prefers-reduced-motion) {
28
- transition: none !important;
29
- }
30
-
31
- border: none;
32
- box-shadow: none;
33
- background-image: none;
34
-
35
- &:focus {
36
- box-shadow: none;
37
- }
38
-
39
- &:focus-visible {
40
- &,
41
- &.active {
42
- box-shadow: inset 0 0 0 0.25rem color-mix(in srgb, currentColor 15%, transparent);
43
- }
44
- }
45
- }
46
-
47
- .blue-menu-item-icon {
48
- display: inline-block;
49
-
50
- & > * {
51
- display: block;
52
- width: 1.5rem;
53
- }
54
- }
55
-
56
- .blue-menu-item-icon.iconForActive {
57
- display: none;
58
- }
59
-
60
- .blue-menu-item.active {
61
- .blue-menu-item-icon.hasIconForActive {
62
- display: none;
63
- }
64
- .blue-menu-item-icon.iconForActive {
65
- display: inline-block;
66
- }
67
- }
68
-
69
- .blue-menu-item-dropdown {
70
- margin-left: 1rem;
71
- animation: blue-menu-item-dropdown 0.15s;
72
-
73
- @media (prefers-reduced-motion) {
74
- animation-duration: 0s;
75
- }
76
-
77
- position: relative;
78
-
79
- &::before {
80
- content: "";
81
- position: absolute;
82
- top: 0.125rem;
83
- right: 0.125rem;
84
- bottom: 0.125rem;
85
- left: 0.125rem;
86
- border-radius: $border-radius;
87
- box-shadow: $box-shadow;
88
- border: 1px solid color-mix(in srgb, currentColor 15%, transparent);
89
- background-color: var(--blue-menu-item-dropdown-bg);
90
- }
91
-
92
- &[popover] {
93
- position: fixed;
94
- margin: 0;
95
- padding: 0;
96
- z-index: 1000;
97
- border: none;
98
- background: transparent;
99
- border-radius: calc(#{$border-radius} + 0.1rem);
100
- box-shadow: $box-shadow;
101
- }
102
- }
103
-
104
- .blue-menu-item-dropdown-caret.blue-caret {
105
- display: none;
106
- position: absolute;
107
- right: 1.5rem;
108
- top: 50%;
109
- transform: translateY(-50%);
110
- align-items: center;
111
- }
112
-
113
- .blue-menu-item {
114
- color: inherit;
115
- width: auto;
116
- height: $normal-size;
117
- font-size: $bla-btn-font-size;
118
- display: flex;
119
- align-items: center;
120
- border-color: transparent;
121
- --bs-btn-padding-x: 0.437rem;
122
- @include slide-transition();
123
-
124
- &::before {
125
- content: "";
126
- position: absolute;
127
- top: 0.125rem;
128
- right: 0.125rem;
129
- bottom: 0.125rem;
130
- left: 0.125rem;
131
- background-color: currentColor;
132
- border-radius: $border-radius;
133
- transform: scale(0.9);
134
- opacity: 0;
135
- transition: all 0.2s;
136
-
137
- @media (prefers-reduced-motion) {
138
- transition: none;
139
- }
140
- }
141
-
142
- &[draggable] {
143
- cursor: grab;
144
-
145
- &:active {
146
- box-shadow: inset 0 0 0.25rem;
147
- }
148
- }
149
-
150
- &:hover,
151
- &:active,
152
- &.highlighted,
153
- &:has(+ :popover-open) {
154
- color: inherit;
155
- border-color: transparent;
156
-
157
- &::before {
158
- transform: scale(1);
159
- opacity: 0.25;
160
- }
161
- }
162
-
163
- &.highlighted,
164
- &:has(+ :popover-open) {
165
- &::before {
166
- opacity: 0.16;
167
- }
168
- }
169
-
170
- &:hover,
171
- &:active {
172
- &::before {
173
- opacity: 0.25;
174
- }
175
- }
176
-
177
- &.active::after {
178
- @include blue-menu-item-indicator();
179
- }
180
-
181
- & > * + .blue-menu-item-label {
182
- margin-left: 0.5rem;
183
- }
184
- }
185
-
186
- .blue-menu-item-wrapper {
187
- display: contents;
188
- }
189
-
190
- .blue-menu-item-dropdown > .blue-menu-item-wrapper > .blue-menu-item,
191
- .blue-menu-item-dropdown > .blue-menu-item {
192
- width: 100%;
193
- }
1
+ @keyframes blue-menu-item-indicator-in-from-side {
2
+ from {
3
+ transform: translateX(-100%);
4
+ }
5
+ to {
6
+ transform: translateX(1);
7
+ }
8
+ }
9
+
10
+ @keyframes blue-menu-item-indicator-in-from-below {
11
+ from {
12
+ transform: translateY(100%);
13
+ }
14
+ to {
15
+ transform: translateY(1);
16
+ }
17
+ }
18
+
19
+ .blue-menu-item {
20
+ transition:
21
+ width 0.5s,
22
+ background-color 0.3s,
23
+ color 0.15s,
24
+ box-shadow 0.3s,
25
+ opacity 0.3s !important;
26
+
27
+ @media (prefers-reduced-motion) {
28
+ transition: none !important;
29
+ }
30
+
31
+ border: none;
32
+ box-shadow: none;
33
+ background-image: none;
34
+
35
+ &:focus {
36
+ box-shadow: none;
37
+ }
38
+
39
+ &:focus-visible {
40
+ &,
41
+ &.active {
42
+ box-shadow: inset 0 0 0 0.25rem color-mix(in srgb, currentColor 15%, transparent);
43
+ }
44
+ }
45
+ }
46
+
47
+ .blue-menu-item-icon {
48
+ display: inline-block;
49
+
50
+ & > * {
51
+ display: block;
52
+ width: 1.5rem;
53
+ }
54
+ }
55
+
56
+ .blue-menu-item-icon.iconForActive {
57
+ display: none;
58
+ }
59
+
60
+ .blue-menu-item.active {
61
+ .blue-menu-item-icon.hasIconForActive {
62
+ display: none;
63
+ }
64
+ .blue-menu-item-icon.iconForActive {
65
+ display: inline-block;
66
+ }
67
+ }
68
+
69
+ .blue-menu-item-dropdown {
70
+ margin-left: 1rem;
71
+ animation: blue-menu-item-dropdown 0.15s;
72
+
73
+ @media (prefers-reduced-motion) {
74
+ animation-duration: 0s;
75
+ }
76
+
77
+ position: relative;
78
+
79
+ &::before {
80
+ content: "";
81
+ position: absolute;
82
+ top: 0.125rem;
83
+ right: 0.125rem;
84
+ bottom: 0.125rem;
85
+ left: 0.125rem;
86
+ border-radius: $border-radius;
87
+ box-shadow: $box-shadow;
88
+ border: 1px solid color-mix(in srgb, currentColor 15%, transparent);
89
+ background-color: var(--blue-menu-item-dropdown-bg);
90
+ }
91
+
92
+ &[popover] {
93
+ position: fixed;
94
+ margin: 0;
95
+ padding: 0;
96
+ z-index: 1000;
97
+ border: none;
98
+ background: transparent;
99
+ border-radius: calc(#{$border-radius} + 0.1rem);
100
+ box-shadow: $box-shadow;
101
+ }
102
+ }
103
+
104
+ .blue-menu-item-dropdown-caret.blue-caret {
105
+ display: none;
106
+ position: absolute;
107
+ right: 1.5rem;
108
+ top: 50%;
109
+ transform: translateY(-50%);
110
+ align-items: center;
111
+ }
112
+
113
+ .blue-menu-item {
114
+ color: inherit;
115
+ width: auto;
116
+ height: $normal-size;
117
+ font-size: $bla-btn-font-size;
118
+ display: flex;
119
+ align-items: center;
120
+ border-color: transparent;
121
+ --bs-btn-padding-x: 0.437rem;
122
+ @include slide-transition();
123
+
124
+ &::before {
125
+ @include blue-menu-item-background();
126
+ }
127
+
128
+ &[draggable] {
129
+ cursor: grab;
130
+
131
+ &:active {
132
+ box-shadow: inset 0 0 0.25rem;
133
+ }
134
+ }
135
+
136
+ &:hover,
137
+ &:active,
138
+ &.highlighted,
139
+ &:has(+ :popover-open) {
140
+ color: inherit;
141
+ border-color: transparent;
142
+
143
+ &::before {
144
+ transform: scale(1);
145
+ opacity: 0.25;
146
+ }
147
+ }
148
+
149
+ &.highlighted,
150
+ &:has(+ :popover-open) {
151
+ &::before {
152
+ opacity: 0.16;
153
+ }
154
+ }
155
+
156
+ &:hover,
157
+ &:active {
158
+ &::before {
159
+ opacity: 0.25;
160
+ }
161
+ }
162
+
163
+ &.active::after {
164
+ @include blue-menu-item-indicator();
165
+ }
166
+
167
+ & > * + .blue-menu-item-label {
168
+ margin-left: 0.5rem;
169
+ }
170
+ }
171
+
172
+ .blue-menu-item-wrapper {
173
+ display: contents;
174
+ }
175
+
176
+ .blue-menu-item-dropdown > .blue-menu-item-wrapper > .blue-menu-item,
177
+ .blue-menu-item-dropdown > .blue-menu-item {
178
+ width: 100%;
179
+ }
@@ -1,80 +1,88 @@
1
- // Customize style of Bootstrap's nav-underline
2
- .nav-underline {
3
- .nav-link {
4
- --#{$prefix}nav-link-color: var(--#{$prefix}list-group-action-color);
5
- }
6
-
7
- .nav-link:hover,
8
- .nav-link:focus {
9
- border-bottom-color: transparent;
10
- }
11
-
12
- .nav-link.active,
13
- .show > .nav-link,
14
- .blue-tab:checked {
15
- &::after {
16
- @include blue-menu-item-indicator();
17
- @include blue-menu-item-indicator-horizontal();
18
- }
19
-
20
- position: relative;
21
- font-weight: var(--blue-tabs-underline-active-font-weight, $font-weight-base);
22
- border-bottom-color: transparent;
23
- color: var(--bs-nav-underline-link-active-color);
24
- }
25
- }
26
-
27
- .nav-underline .blue-tabs {
28
- display: flex;
29
- flex-wrap: wrap;
30
- flex-direction: row;
31
- }
32
-
33
- .blue-tab {
34
- // Unsetting to solve issues in Safari
35
- width: unset;
36
- height: unset;
37
- border-radius: unset;
38
-
39
- position: relative;
40
- order: 0;
41
- user-select: none;
42
- -webkit-appearance: none;
43
- appearance: none;
44
-
45
- @if ($enable-button-pointers) {
46
- cursor: pointer;
47
- }
48
- }
49
-
50
- .blue-tab::before {
51
- content: attr(aria-label);
52
- }
53
-
54
- .blue-tab-content {
55
- display: none;
56
- order: 1;
57
- width: 100%;
58
- }
59
-
60
- input.blue-tab:checked + .blue-tab-content {
61
- display: block;
62
- }
63
-
64
- .blue-tabs.nav-tabs {
65
- border-bottom: none;
66
-
67
- .blue-tab-content {
68
- border-top: var(--#{$prefix}nav-tabs-border-width) solid var(--#{$prefix}nav-tabs-border-color);
69
- }
70
-
71
- .blue-tab:checked {
72
- color: var(--bs-nav-tabs-link-active-color);
73
- background-color: var(--bs-nav-tabs-link-active-bg);
74
- border-color: var(--bs-nav-tabs-link-active-border-color);
75
- }
76
- }
77
-
78
- .blue-tabs.nav-underline {
79
- row-gap: 0;
80
- }
1
+ // Customize style of Bootstrap's nav-underline
2
+ .nav-underline {
3
+ .nav-link {
4
+ --#{$prefix}nav-link-color: var(--#{$prefix}list-group-action-color);
5
+ }
6
+
7
+ .nav-link:hover,
8
+ .nav-link:focus {
9
+ &::after {
10
+ @include blue-menu-item-indicator();
11
+ @include blue-menu-item-indicator-horizontal();
12
+ opacity: 0.25;
13
+ }
14
+
15
+ position: relative;
16
+ border-bottom-color: transparent;
17
+ }
18
+
19
+ .nav-link.active,
20
+ .show > .nav-link,
21
+ .blue-tab:checked {
22
+ &::after {
23
+ @include blue-menu-item-indicator();
24
+ @include blue-menu-item-indicator-horizontal();
25
+ opacity: 1;
26
+ }
27
+
28
+ position: relative;
29
+ font-weight: var(--blue-tabs-underline-active-font-weight, $font-weight-base);
30
+ border-bottom-color: transparent;
31
+ color: currentColor;
32
+ }
33
+ }
34
+
35
+ .nav-underline .blue-tabs {
36
+ display: flex;
37
+ flex-wrap: wrap;
38
+ flex-direction: row;
39
+ }
40
+
41
+ .blue-tab {
42
+ // Unsetting to solve issues in Safari
43
+ width: unset;
44
+ height: unset;
45
+ border-radius: unset;
46
+
47
+ position: relative;
48
+ order: 0;
49
+ user-select: none;
50
+ -webkit-appearance: none;
51
+ appearance: none;
52
+
53
+ @if ($enable-button-pointers) {
54
+ cursor: pointer;
55
+ }
56
+ }
57
+
58
+ .blue-tab::before {
59
+ content: attr(aria-label);
60
+ }
61
+
62
+ .blue-tab-content {
63
+ display: none;
64
+ order: 1;
65
+ width: 100%;
66
+ }
67
+
68
+ input.blue-tab:checked + .blue-tab-content {
69
+ display: block;
70
+ }
71
+
72
+ .blue-tabs.nav-tabs {
73
+ border-bottom: none;
74
+
75
+ .blue-tab-content {
76
+ border-top: var(--#{$prefix}nav-tabs-border-width) solid var(--#{$prefix}nav-tabs-border-color);
77
+ }
78
+
79
+ .blue-tab:checked {
80
+ color: var(--bs-nav-tabs-link-active-color);
81
+ background-color: var(--bs-nav-tabs-link-active-bg);
82
+ border-color: var(--bs-nav-tabs-link-active-border-color);
83
+ }
84
+ }
85
+
86
+ .blue-tabs.nav-underline {
87
+ row-gap: 0;
88
+ }
@@ -56,9 +56,9 @@ $sidebar-deep-bg: darken($sidebar-bg, 4%) !default;
56
56
  $sidebar-color: color-contrast($sidebar-bg, $gray-900) !default;
57
57
  $sidebar-color-dark: color-contrast($sidebar-bg-dark, $gray-900) !default;
58
58
 
59
- // Color of indicator for active sidebar item.
60
- $sidebar-indicator-color: #{var(--bs-primary)} !default;
61
- $sidebar-indicator-color-dark: #{var(--bs-primary-text-emphasis)} !default;
59
+ // Color of indicator for active menu item in sidebar.
60
+ $sidebar-indicator-color: $primary !default;
61
+ $sidebar-indicator-color-dark: $white !default;
62
62
 
63
63
  // Background of search control in sidebar.
64
64
  $sidebar-search-bg: $input-bg !default;