Skip to content

Commit ffa7ea4

Browse files
committed
[refactor] improve header shade logic
1 parent c012a47 commit ffa7ea4

6 files changed

Lines changed: 29 additions & 21 deletions

File tree

src/css/header.css

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
display: flex;
44
flex-direction: row;
55
z-index: var(--z-index-header);
6+
pointer-events: none;
7+
}
8+
9+
.is-header-shade-show .header {
10+
pointer-events: all;
611
}
712

813
.is-header-area-alignment-horizontal-left .header {
@@ -39,20 +44,19 @@
3944
height: 100%;
4045
top: 0;
4146
left: 0;
47+
opacity: 0;
4248
pointer-events: none;
49+
transition: background-color var(--layout-animation-speed-slow) ease-in-out, border-radius var(--layout-animation-speed-fast) ease-in-out;
4350
}
4451

4552
.is-header-radius .header-shade {
4653
border-radius: calc(var(--theme-radius) * 4);
4754
}
4855

49-
.is-header-shade-show .header-shade {
50-
background-color: rgba(var(--header-shade-color), var(--header-shade-opacity));
51-
}
52-
56+
.is-header-shade-style-always .header-shade,
5357
.is-header-shade-style-scroll .header-shade {
54-
transition: background-color var(--layout-animation-speed-slow) ease-in-out;
55-
animation: none;
58+
background-color: rgba(var(--header-shade-color));
59+
opacity: var(--header-shade-opacity);
5660
}
5761

5862
.is-header-border-top .header-shade {
@@ -67,6 +71,7 @@
6771
padding: calc(var(--layout-gutter) * var(--layout-padding-multiplier));
6872
position: relative;
6973
width: var(--header-area-width);
74+
pointer-events: none;
7075
}
7176

7277
.is-header-border-top .header-area {
@@ -109,7 +114,6 @@
109114
flex-direction: row;
110115
flex-wrap: wrap;
111116
align-items: stretch;
112-
pointer-events: none;
113117
}
114118

115119
.is-header-item-alignment-horizontal-left .header-item-grid {

src/css/variables.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
--theme-shade-20: 250, 250, 250;
2828
/* header */
2929
--header-area-width: 100%;
30-
--header-shade-color: transparent;
30+
--header-shade-color: var(--theme-gray-01);
3131
--header-shade-opacity: 0.95;
3232
--header-search-width: 0%;
3333
--header-border-top: 0;

src/js/control.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2320,11 +2320,8 @@ var control = (function() {
23202320
};
23212321
var _shade = function() {
23222322
helper.removeClass(html, "is-header-shade-show");
2323-
helper.removeClass(html, "is-header-shade-style-always");
2324-
helper.removeClass(html, "is-header-shade-style-scroll");
23252323
if (state.get().header.shade.show) {
23262324
helper.addClass(html, "is-header-shade-show");
2327-
helper.addClass(html, "is-header-shade-style-" + state.get().header.shade.style);
23282325
};
23292326
if (state.get().header.radius) {
23302327
helper.addClass(html, "is-header-radius");

src/js/header.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -81,28 +81,35 @@ var header = (function() {
8181
var scrollTop = document.documentElement.scrollTop;
8282
var scrollHeight = document.documentElement.scrollHeight;
8383
var innerHeight = window.innerHeight;
84+
// if shade show
8485
if (state.get().header.shade.show) {
86+
// shade always
8587
if (state.get().header.shade.style == "always") {
86-
html.style.setProperty("--header-shade-color", "var(--theme-gray-01)");
88+
helper.removeClass(html, "is-header-shade-style-scroll");
89+
helper.addClass(html, "is-header-shade-style-always");
90+
// shade scroll
8791
} else if (state.get().header.shade.style == "scroll") {
92+
helper.removeClass(html, "is-header-shade-style-always");
93+
// check header position
8894
if (state.get().layout.order == "headerLink") {
95+
// check scroll position
8996
if (scrollTop > fontSize * 2) {
90-
html.style.setProperty("--header-shade-color", "var(--theme-gray-01)");
97+
helper.addClass(html, "is-header-shade-style-scroll");
9198
} else {
92-
html.style.setProperty("--header-shade-color", "transparent");
99+
helper.removeClass(html, "is-header-shade-style-scroll");
93100
};
94101
} else if (state.get().layout.order == "linkHeader") {
102+
// check scroll position
95103
if (scrollTop < (scrollHeight - innerHeight) - (fontSize * 2)) {
96-
html.style.setProperty("--header-shade-color", "var(--theme-gray-01)");
104+
helper.addClass(html, "is-header-shade-style-scroll");
97105
} else {
98-
html.style.setProperty("--header-shade-color", "transparent");
106+
helper.removeClass(html, "is-header-shade-style-scroll");
99107
};
100108
};
101-
} else {
102-
html.style.setProperty("--header-shade-color", "transparent");
103109
};
104110
} else {
105-
html.style.setProperty("--header-shade-color", "transparent");
111+
helper.removeClass(html, "is-header-shade-style-scroll");
112+
helper.removeClass(html, "is-header-shade-style-always");
106113
};
107114
};
108115

src/js/version.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
var version = (function() {
22

3-
var current = "3.23.1";
3+
var current = "3.24.0";
44

55
var compare = function(a, b) {
66
var pa = a.split(".");

src/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "nightTab",
33
"short_name": "nightTab",
44
"description": "A neutral new tab page accented with a chosen colour. Customise the layout, style, background and bookmarks in nightTab.",
5-
"version": "3.23.1",
5+
"version": "3.24.0",
66
"manifest_version": 2,
77
"chrome_url_overrides": {
88
"newtab": "index.html"

0 commit comments

Comments
 (0)