Skip to content

Commit b6ea34d

Browse files
lcharetteCopilot
andcommitted
Replace uk-sticky with CSS position: sticky on header
UIkit's uk-sticky initializer runs after DOM parse (deferred module script) and inserts a placeholder <div> to reserve space, causing a visible layout reflow/FOUC in production. Replace the uk-sticky wrapper div with a CSS-only approach: apply position: sticky; top: 0; z-index: 980 to the <header> element via the .uf-sticky-header class. No JS DOM mutation occurs on init, eliminating the flicker entirely. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent cb5da9f commit b6ea34d

2 files changed

Lines changed: 30 additions & 22 deletions

File tree

app/assets/theme.less

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,16 @@
1313
@import 'css/sidebar.less';
1414
@import 'css/pager.less';
1515

16+
/**
17+
* Sticky header — replaces uk-sticky to avoid FOUC from JS-driven placeholder insertion.
18+
* UIkit's z-index for sticky elements is 980; match it here.
19+
*/
20+
.uf-sticky-header {
21+
position: sticky;
22+
top: 0;
23+
z-index: 980;
24+
}
25+
1626
/**
1727
* Override Pink Cupcake default variables
1828
*/
Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,22 @@
1-
<header>
2-
<div uk-sticky="sel-target: .uk-navbar-container; cls-active: uk-navbar-sticky">
3-
<div class="uk-container uk-navbar-container uk-container-expand">
4-
<nav class="uk-navbar" uk-navbar>
5-
<div class="uk-navbar-left">
6-
<ul class="uk-navbar-nav uk-hidden@m">
7-
<li>
8-
<a href="#offcanvas-sidebar" uk-toggle class="uk-navbar-item">
9-
<i class="fa-solid fa-bars"></i>
10-
</a>
11-
</li>
12-
</ul>
13-
<!-- <a href="{{ urlFor('index', [], [], '/') }}" class="uk-navbar-item uk-logo">{{site.title}}</a> -->
14-
<a href="https://www.userfrosting.com" class="uk-navbar-item uk-logo">{{site.title}}</a>
15-
</div>
16-
<div class="uk-navbar-right uk-visible@m">
17-
<ul class="uk-navbar-nav">
18-
{% include "content/navigation/navbar.html.twig" %}
19-
</ul>
20-
</div>
21-
</nav>
22-
</div>
1+
<header class="uf-sticky-header">
2+
<div class="uk-container uk-navbar-container uk-container-expand">
3+
<nav class="uk-navbar" uk-navbar>
4+
<div class="uk-navbar-left">
5+
<ul class="uk-navbar-nav uk-hidden@m">
6+
<li>
7+
<a href="#offcanvas-sidebar" uk-toggle class="uk-navbar-item">
8+
<i class="fa-solid fa-bars"></i>
9+
</a>
10+
</li>
11+
</ul>
12+
<!-- <a href="{{ urlFor('index', [], [], '/') }}" class="uk-navbar-item uk-logo">{{site.title}}</a> -->
13+
<a href="https://www.userfrosting.com" class="uk-navbar-item uk-logo">{{site.title}}</a>
14+
</div>
15+
<div class="uk-navbar-right uk-visible@m">
16+
<ul class="uk-navbar-nav">
17+
{% include "content/navigation/navbar.html.twig" %}
18+
</ul>
19+
</div>
20+
</nav>
2321
</div>
2422
</header>

0 commit comments

Comments
 (0)