jscom_ice 0.0.7 → 0.0.8
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.
- checksums.yaml +4 -4
- data/_includes/scripts.html +3 -0
- data/_sass/base/_base.scss +5 -0
- data/_sass/component/_navbar.scss +13 -1
- data/_sass/component/_posts.scss +2 -1
- data/_sass/layout/_footer.scss +1 -0
- data/assets/js/navbar.js +55 -0
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 63550921535bf31bd3e23e7b372d28af6f21cdb3b6e1661dc54142fc4d92309b
|
|
4
|
+
data.tar.gz: b00543909cf338ffde1f89f3ebe9cb7a876147ef0dfd99ed94dc9dbf3135f769
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7abc2c41ae5910cc660d4b0feab2f2b9baab04f4909855a35b7ccd50e5ed91d9aebc57cca93d054bde17b8325b6cb92ac8e8a390550c123b9ca0a83874663a7b
|
|
7
|
+
data.tar.gz: caadf1f9bbe501c2fedda2d8e7c935497516603e711e7ca5a8e9172afe4f3c6b746ffc5fd587cff9443d184c7acc61c409018fc8410b1879128f7f26180f6201
|
data/_includes/scripts.html
CHANGED
|
@@ -12,5 +12,8 @@ Scripts that are loaded throughout the website
|
|
|
12
12
|
|
|
13
13
|
<script src="/assets/js/bootstrap.js"></script>
|
|
14
14
|
|
|
15
|
+
<!-- Navbar scroll behavior -->
|
|
16
|
+
<script src="/assets/js/navbar.js"></script>
|
|
17
|
+
|
|
15
18
|
<!-- TODO contact form page & move this to more local include? (it's only needed on 1 page)-->
|
|
16
19
|
<!--<script src="/assets/js/contact.js"></script>-->
|
data/_sass/base/_base.scss
CHANGED
|
@@ -107,6 +107,9 @@ body {
|
|
|
107
107
|
flex-direction: column;
|
|
108
108
|
min-height: 100vh;
|
|
109
109
|
|
|
110
|
+
// Account for fixed navbar height
|
|
111
|
+
padding-top: 56px; // Standard Bootstrap navbar height
|
|
112
|
+
|
|
110
113
|
img {
|
|
111
114
|
width: 100%;
|
|
112
115
|
height: auto;
|
|
@@ -154,6 +157,8 @@ body {
|
|
|
154
157
|
a {
|
|
155
158
|
// Link Colors
|
|
156
159
|
color: $darker-text-link-blue;
|
|
160
|
+
transition: color 0.2s ease, opacity 0.2s ease;
|
|
161
|
+
|
|
157
162
|
&:hover,
|
|
158
163
|
&:active,
|
|
159
164
|
&:focus {
|
|
@@ -1,17 +1,29 @@
|
|
|
1
1
|
// Navbar
|
|
2
2
|
.navbar {
|
|
3
3
|
border-color: $dark-light;
|
|
4
|
-
position: relative;
|
|
4
|
+
// position: relative; // Removed - let Bootstrap's fixed-top handle positioning
|
|
5
5
|
|
|
6
6
|
margin-right: auto;
|
|
7
7
|
margin-left: auto;
|
|
8
8
|
border-bottom: 1px solid $dark-smoke;
|
|
9
9
|
|
|
10
|
+
// Smooth transitions for all state changes
|
|
11
|
+
transition: background-color 0.3s ease, box-shadow 0.3s ease, border-bottom 0.3s ease, padding 0.3s ease;
|
|
12
|
+
|
|
13
|
+
// Scrolled state - solid background with shadow
|
|
14
|
+
&.navbar-scrolled {
|
|
15
|
+
background-color: rgba(33, 37, 41, 0.98) !important; // Dark semi-transparent
|
|
16
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
|
|
17
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
|
|
18
|
+
backdrop-filter: blur(10px);
|
|
19
|
+
-webkit-backdrop-filter: blur(10px);
|
|
20
|
+
}
|
|
10
21
|
|
|
11
22
|
.nav-link:not(:last-child) {
|
|
12
23
|
//font-size: 18px;
|
|
13
24
|
color: whitesmoke;
|
|
14
25
|
opacity: .7;
|
|
26
|
+
transition: opacity 0.2s ease, color 0.2s ease;
|
|
15
27
|
}
|
|
16
28
|
.nav-link {
|
|
17
29
|
&:hover {
|
data/_sass/component/_posts.scss
CHANGED
data/_sass/layout/_footer.scss
CHANGED
data/assets/js/navbar.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Navbar scroll behavior
|
|
3
|
+
* Adds sticky styling to navbar when user scrolls down
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(function() {
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
// Configuration
|
|
10
|
+
const SCROLL_THRESHOLD = 50; // pixels before navbar changes
|
|
11
|
+
const NAVBAR_CLASS_SCROLLED = 'navbar-scrolled';
|
|
12
|
+
|
|
13
|
+
// Get navbar element
|
|
14
|
+
const navbar = document.querySelector('.navbar');
|
|
15
|
+
|
|
16
|
+
if (!navbar) {
|
|
17
|
+
return; // Exit if no navbar found
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Track scroll position
|
|
21
|
+
let lastScroll = 0;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Handle scroll events
|
|
25
|
+
*/
|
|
26
|
+
function handleScroll() {
|
|
27
|
+
const currentScroll = window.pageYOffset || document.documentElement.scrollTop;
|
|
28
|
+
|
|
29
|
+
if (currentScroll > SCROLL_THRESHOLD) {
|
|
30
|
+
// User has scrolled down - add solid background
|
|
31
|
+
navbar.classList.add(NAVBAR_CLASS_SCROLLED);
|
|
32
|
+
} else {
|
|
33
|
+
// At top of page - use transparent background
|
|
34
|
+
navbar.classList.remove(NAVBAR_CLASS_SCROLLED);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
lastScroll = currentScroll;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Throttle scroll events for better performance
|
|
41
|
+
let ticking = false;
|
|
42
|
+
|
|
43
|
+
window.addEventListener('scroll', function() {
|
|
44
|
+
if (!ticking) {
|
|
45
|
+
window.requestAnimationFrame(function() {
|
|
46
|
+
handleScroll();
|
|
47
|
+
ticking = false;
|
|
48
|
+
});
|
|
49
|
+
ticking = true;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
// Check scroll position on load
|
|
54
|
+
handleScroll();
|
|
55
|
+
})();
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jscom_ice
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- John Sosoka
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2025-10-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: jekyll
|
|
@@ -120,6 +120,7 @@ files:
|
|
|
120
120
|
- assets/js/bootstrap.min.js
|
|
121
121
|
- assets/js/bootstrap.min.js.map
|
|
122
122
|
- assets/js/jquery-3.7.0.min.js
|
|
123
|
+
- assets/js/navbar.js
|
|
123
124
|
- assets/js/popper.min.js
|
|
124
125
|
homepage: https://github.com/johnsosoka/jscom-ice
|
|
125
126
|
licenses:
|
|
@@ -140,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
140
141
|
- !ruby/object:Gem::Version
|
|
141
142
|
version: '0'
|
|
142
143
|
requirements: []
|
|
143
|
-
rubygems_version: 3.
|
|
144
|
+
rubygems_version: 3.4.19
|
|
144
145
|
signing_key:
|
|
145
146
|
specification_version: 4
|
|
146
147
|
summary: Simple Dark Jekyll Theme
|