@e3c-summer-worker/navigation

2.3.4 • Public • Published

Navigations

Making our custom headers is a bit involved. We have to copy a lot of HTML code into the scripts, and it's confusing and difficult to debug if something changes and goes wrong, especially if our only text editor is the one built into Squarespace.

Making the navigation in another component where you ethen import it is easier to debug and move around; you copy less code between pages and the development process is better if you're using something like VSCode.

We are using this folder to specifically host the desktop and mobile navigation component, that goes inside #headerNav and #sidecarNav in the Squarespace page, respectively.

The header code in public/index.html is almost exactly what you'd see copy and pasted into Squarespace (instead of importing the local .js file we use JSDelivr, and we need to add the contents in and styles.css.

Note that we are using yarn workspaces, so the installations will be mostly consolidated at a top-level node_modules/ folder.

Important

The site.css is the squarespace compiled css, and the styles.css are our styles.

Local Development

yarn
yarn start

Note that the styles will be quite a bit different than production, this is because I only copied a subset of the HTML into our public/ html file. The important thing is that the navigation bar is functional.

Also, when you switch to Desktop to Mobile view, refresh the page to get the functional navigation bars. Not sure why this is the case, maybe I didn't download all the files.

Production Build

yarn build

Usage

V2

In v2, only the import is needed.

<script src="https://cdn.jsdelivr.net/npm/@e3c-summer-worker/navigation@2/build/navigation.js"></script>

V1

<script src="https://cdn.jsdelivr.net/npm/@e3c-summer-worker/navigation@1/build/mobilenav-elm.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@e3c-summer-worker/navigation@1/build/desktopnav-elm.js"></script>
<script>
    window.onload = function () {
        // desktop navigation
        const headerNav = document.getElementById('headerNav');
        const app_d = Elm.DesktopNav.init({ node: headerNav });

        // mobile navigation
        const sidecarNav = document.getElementById('sidecarNav');
        const app_m = Elm.MobileNav.init({ node: sidecarNav });
    }
</script>

Readme

Keywords

none

Package Sidebar

Install

npm i @e3c-summer-worker/navigation

Weekly Downloads

0

Version

2.3.4

License

none

Unpacked Size

478 kB

Total Files

5

Last publish

Collaborators

  • e3c-summer-worker