From: Sam White <webmaster@ycra.org.uk> Date: Fri, 10 Sep 2021 17:38:47 +0000 (+0000) Subject: Added initial basic version of website. X-Git-Url: https://git.dalvak.com/public/?a=commitdiff_plain;h=62769a42ea216d89dd5686db978a9461eb17c0d7;p=ycra.git Added initial basic version of website. --- 62769a42ea216d89dd5686db978a9461eb17c0d7 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..052fd12 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +public_html/includes/config.php +public_html/dev +public_html/error_log +public_html/*/error_log diff --git a/public_html/.htaccess b/public_html/.htaccess new file mode 100644 index 0000000..17c6ad5 --- /dev/null +++ b/public_html/.htaccess @@ -0,0 +1,19 @@ +# .htaccess Apache overrides file. + +# Rewrite rules. +RewriteEngine on + +# Temporary redirect to HTTPS +RewriteCond %{HTTPS} off +RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L] + +# QR code temporary redirects. +RewriteRule "^qr/sign-up$" "/index.html" [R,L] +RewriteRule "^qr/useful-links$" "/index.html" [R,L] + +# php -- BEGIN cPanel-generated handler, do not edit +# Set the âea-php80â package as the default âPHPâ programming language. +<IfModule mime_module> + AddHandler application/x-httpd-ea-php80 .php .php8 .phtml +</IfModule> +# php -- END cPanel-generated handler, do not edit diff --git a/public_html/css/bio.css b/public_html/css/bio.css new file mode 100644 index 0000000..cb4db65 --- /dev/null +++ b/public_html/css/bio.css @@ -0,0 +1,8 @@ +div.bio img { + float: left; + padding-right: 1em; +} +/* Keep sections separate when floating occurs. */ +.clear { + clear: both; +} diff --git a/public_html/css/common.css b/public_html/css/common.css new file mode 100644 index 0000000..7d1c652 --- /dev/null +++ b/public_html/css/common.css @@ -0,0 +1,91 @@ +/* + * Generic styling common to all website pages. + */ +@import url('https://rsms.me/inter/inter.css'); +html { font-family: 'Inter', sans-serif; } +@supports (font-variation-settings: normal) { + html { font-family: 'Inter var', sans-serif; } +} + +body { + margin: 0; + padding: 0; + min-height: 100vh; + + /* Fix footer at bottom on short pages. */ + display: flex; + flex-direction: column; +} + +/* Sections of page containing text. */ +div#page-content { + /* Centre text and pad from page top and sides. */ + margin: 0 auto; + padding: 1% 10%; +} + +/* Justify text in paragraphs. */ +div#page-content p { + text-align: justify; +} + +/* Appropriately pad page sections. */ +div.section { + padding: 1% 0; +} + +/* General styling for tables. */ +table { + /* Centre tables. */ + margin: 0 auto; + width: 100%; +} + +th,td{ + text-align: center; + padding: 0.5em; +} + +/* Styling for figures and captions.*/ +figure { + display: table; +} +figure figcaption { + display: table-caption; + caption-side: bottom; + text-align: justify; +} + +footer { + padding: 2em; + + background-color: #202020; + color: white; + + text-align: center; + font-size: 75%; + + /* Fix footer at bottom of short pages.*/ + margin-top: auto; +} + +footer a:link { + color: cyan; +} + +/* Conditional styling for small screen devices. */ +@media screen and (max-width: 800px){ + /* Reduce padding as screen is smaller. */ + div#page-content { + padding: 0.7% 4%; + } + + figure { + padding: 0; + margin: auto; + } + + th,td { + padding: 0.1em; + } +} diff --git a/public_html/css/fontello.css b/public_html/css/fontello.css new file mode 100644 index 0000000..9ebed4c --- /dev/null +++ b/public_html/css/fontello.css @@ -0,0 +1,58 @@ +@font-face { + font-family: 'fontello'; + src: url('../font/fontello.eot?34085483'); + src: url('../font/fontello.eot?34085483#iefix') format('embedded-opentype'), + url('../font/fontello.woff2?34085483') format('woff2'), + url('../font/fontello.woff?34085483') format('woff'), + url('../font/fontello.ttf?34085483') format('truetype'), + url('../font/fontello.svg?34085483#fontello') format('svg'); + font-weight: normal; + font-style: normal; +} +/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ +/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ +/* +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: 'fontello'; + src: url('../font/fontello.svg?34085483#fontello') format('svg'); + } +} +*/ +[class^="icon-"], [class*=" icon-"] { + font-family: "fontello"; + font-style: normal; + font-weight: normal; + speak: never; + + display: inline-block; + text-decoration: inherit; + width: 1em; + /*margin-right: .2em;*/ + text-align: center; + /* opacity: .8; */ + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + + /* fix buttons height, for twitter bootstrap */ + line-height: 1em; + + /* Animation center compensation - margins should be symmetric */ + /* remove if not needed */ + /*margin-left: .2em;*/ + + /* you can be more comfortable with increased icons size */ + /* font-size: 120%; */ + + /* Font smoothing. That was taken from TWBS */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ +} + +/*.icon-menu:before { content: '\2630'; } *//* 'â°' */ +/*.icon-cancel:before { content: '\2716'; } *//* 'â' */ diff --git a/public_html/css/navbar.css b/public_html/css/navbar.css new file mode 100644 index 0000000..37460a9 --- /dev/null +++ b/public_html/css/navbar.css @@ -0,0 +1,228 @@ +/* + * Styling for main page banner + */ + +nav { + /* Declare navbar colours. */ + --main-navbar-back: #42ADDB; + /*--main-navbar-back: #68246D;*/ + --sub-navbar-back: #3080A2; + /*--sub-navbar-back: #4B1B4E;*/ + --main-navbar-active: var(--sub-navbar-back); + /*--sub-navbar-active: #38133B;*/ + --sub-navbar-active: #00405C; + --navbar-links: white; + + /* Set height and padding of logo. + * + * If the sum of the combined height and vertical + * padding is greater than 1em + 2 * var(--link-vpadding) + * this will dictate the main navbar height. + * + * Make sure units are always specified (even when + * the variable height is zero). + * */ + --logo-height: 5em; + --logo-top-padding: 0.3em; + --logo-bottom-padding: 0.2em; + + /* Set vertical padding (both top and bottom) for links. + * + * If 1em + 2 * var(--link-vpadding) is greater than the + * sum of the height and vertical logo padding this will + * dictate the main navbar height. + */ + --link-vpadding: 1em; +} + +nav.navbar { + /* Give navbars a fixed position across page. */ + position:sticky; + margin: 0; + padding: 0; + + /* Draw over other objects. */ + z-index: 100; + + /* Use flexbox to position children (logo and ul). */ + display: flex; + + font-weight: bold; +} + +nav.navbar ul { + padding: 0; + margin: 0; + + /* Use flexbox to position children (navigation link li). */ + display: flex; + justify-content: space-between; + + list-style-type: none; +} + +nav.navbar li { + /* Stretch each link vertically to fill li element. */ + display: flex; +} + +nav.navbar li a { + /* Space links. */ + padding: var(--link-vpadding) 1em; + + /* Put link text at centre of link element. */ + display: flex; + align-items: center; + + /* Set line-height to font-size to allow sub-navbar position determination.*/ + line-height: 1.2em; + + text-decoration: none; + color: var(--navbar-links); + text-align: center; +} + +nav#mainnav { + /* Fix navbar position at top of page. */ + top: 0; + + /* Colouring. */ + background-color: var(--main-navbar-back); +} + + +/* Highlight links to current page and section. */ +nav#mainnav li a.nav-active { + background-color: var(--main-navbar-active); +} +nav#subnav li a.nav-active { + background-color: var(--sub-navbar-active); +} + + +nav#mainnav a.logo { + /* Align logo in centre of navbar link and adapt to logo height. */ + display: flex; + align-items: center; +} + +/* Size and positioning of logo. */ +nav#mainnav a.logo img{ + height: var(--logo-height); + /* Give logo some space to breathe. */ + padding: var(--logo-top-padding) 0.5em var(--logo-bottom-padding) 0.3em; +} + +nav#subnav { + /* Fix sub-navbar below main navbar. */ + top: max(calc(1em + 2 * var(--link-vpadding)), + calc(var(--logo-height) + + var(--logo-top-padding) + + var(--logo-bottom-padding) + ) + ); + + /* Colouring. */ + background-color: var(--sub-navbar-back); +} + +/* Inset sub-navbar links from edge of page.*/ +nav#subnav ul { + margin-left: 2%; +} + +/* Quotes styling. */ +nav div#quotes { + /* Vertically align quotes.*/ + display: flex; + flex-direction: column; + justify-content: center; + + /* Put quotes on right hand side of navigation bar. */ + margin-left: auto; + + /* Pad appropriately. */ + padding: 1% 2%; + + /* Prevent quotes from affecting navigation controls.*/ + max-width: 30%; + + /* Style text. */ + color: var(--navbar-links); + text-align: center; + font-weight: normal; + font-style: italic; +} + +/* Hide collapsible menu checkbox. */ +input#menutoggle { + display: none; +} + +/* Style collapsible menu icons. */ +label[for=menutoggle] { + /* Hide by default. */ + display:none; + + margin: 2% 10% 2% auto; + + /* Make mouse pointer behave like this is clickable link. */ + cursor: pointer; + + color: var(--navbar-links); +} + +/* Put collapse control on same line as logo. */ +nav.navbar div#topline { + display: flex; + flex-direction: row; + align-items: center; +} + +/* Conditional styling for small screen devices. */ +@media screen and (max-width: 990px){ + /* Align navbar elements vertically. */ + nav.navbar, nav.navbar * { + flex-direction: column; + } + + /* Hide subnavigation bar. */ + nav#subnav { + display: none; + } + + /* Allow quotes to take up all of screen width. */ + nav div#quotes { + max-width: 100%; + } + + /* Show collapsible navigation bar. */ + label[for=menutoggle] { + display: block; + font-size: calc(var(--logo-height)*0.5); + } + + /* Show burger icon and close icon at appropriate times. */ + label[for=menutoggle] span#menuclose{ + display:none; + } + input#menutoggle:checked + div#topline label[for=menutoggle] span#menubars{ + display: none; + } + input#menutoggle:checked + div#topline label[for=menutoggle] span#menuclose{ + display: block; + } + + /* Display and hide navigation links when appropriate. */ + nav#mainnav ul { + display: none; + } + input#menutoggle:checked ~ ul { + display: block; + } + + nav #quotes { + margin-left: auto; + margin-right: auto; + } +} diff --git a/public_html/font/fontello-7a886015/LICENSE.txt b/public_html/font/fontello-7a886015/LICENSE.txt new file mode 100644 index 0000000..8fa3da3 --- /dev/null +++ b/public_html/font/fontello-7a886015/LICENSE.txt @@ -0,0 +1,12 @@ +Font license info + + +## Font Awesome + + Copyright (C) 2016 by Dave Gandy + + Author: Dave Gandy + License: SIL () + Homepage: http://fortawesome.github.com/Font-Awesome/ + + diff --git a/public_html/font/fontello-7a886015/README.txt b/public_html/font/fontello-7a886015/README.txt new file mode 100644 index 0000000..d870892 --- /dev/null +++ b/public_html/font/fontello-7a886015/README.txt @@ -0,0 +1,75 @@ +This webfont is generated by https://fontello.com open source project. + + +================================================================================ +Please, note, that you should obey original font licenses, used to make this +webfont pack. Details available in LICENSE.txt file. + +- Usually, it's enough to publish content of LICENSE.txt file somewhere on your + site in "About" section. + +- If your project is open-source, usually, it will be ok to make LICENSE.txt + file publicly available in your repository. + +- Fonts, used in Fontello, don't require a clickable link on your site. + But any kind of additional authors crediting is welcome. +================================================================================ + + +Comments on archive content +--------------------------- + +- /font/* - fonts in different formats + +- /css/* - different kinds of css, for all situations. Should be ok with + twitter bootstrap. Also, you can skip <i> style and assign icon classes + directly to text elements, if you don't mind about IE7. + +- demo.html - demo file, to show your webfont content + +- LICENSE.txt - license info about source fonts, used to build your one. + +- config.json - keeps your settings. You can import it back into fontello + anytime, to continue your work + + +Why so many CSS files ? +----------------------- + +Because we like to fit all your needs :) + +- basic file, <your_font_name>.css - is usually enough, it contains @font-face + and character code definitions + +- *-ie7.css - if you need IE7 support, but still don't wish to put char codes + directly into html + +- *-codes.css and *-ie7-codes.css - if you like to use your own @font-face + rules, but still wish to benefit from css generation. That can be very + convenient for automated asset build systems. When you need to update font - + no need to manually edit files, just override old version with archive + content. See fontello source code for examples. + +- *-embedded.css - basic css file, but with embedded WOFF font, to avoid + CORS issues in Firefox and IE9+, when fonts are hosted on the separate domain. + We strongly recommend to resolve this issue by `Access-Control-Allow-Origin` + server headers. But if you ok with dirty hack - this file is for you. Note, + that data url moved to separate @font-face to avoid problems with <IE9, when + string is too long. + +- animate.css - use it to get ideas about spinner rotation animation. + + +Attention for server setup +-------------------------- + +You MUST setup server to reply with proper `mime-types` for font files - +otherwise some browsers will fail to show fonts. + +Usually, `apache` already has necessary settings, but `nginx` and other +webservers should be tuned. Here is list of mime types for our file extensions: + +- `application/vnd.ms-fontobject` - eot +- `application/x-font-woff` - woff +- `application/x-font-ttf` - ttf +- `image/svg+xml` - svg diff --git a/public_html/font/fontello-7a886015/config.json b/public_html/font/fontello-7a886015/config.json new file mode 100644 index 0000000..f91ae79 --- /dev/null +++ b/public_html/font/fontello-7a886015/config.json @@ -0,0 +1,22 @@ +{ + "name": "", + "css_prefix_text": "icon-", + "css_use_suffix": false, + "hinting": true, + "units_per_em": 1000, + "ascent": 850, + "glyphs": [ + { + "uid": "559647a6f430b3aeadbecd67194451dd", + "css": "menu", + "code": 9776, + "src": "fontawesome" + }, + { + "uid": "5211af474d3a9848f67f945e2ccaf143", + "css": "cancel", + "code": 10006, + "src": "fontawesome" + } + ] +} \ No newline at end of file diff --git a/public_html/font/fontello-7a886015/css/animation.css b/public_html/font/fontello-7a886015/css/animation.css new file mode 100644 index 0000000..ac5a956 --- /dev/null +++ b/public_html/font/fontello-7a886015/css/animation.css @@ -0,0 +1,85 @@ +/* + Animation example, for spinners +*/ +.animate-spin { + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + -webkit-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; + display: inline-block; +} +@-moz-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -moz-transform: rotate(359deg); + -o-transform: rotate(359deg); + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@-webkit-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -moz-transform: rotate(359deg); + -o-transform: rotate(359deg); + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@-o-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -moz-transform: rotate(359deg); + -o-transform: rotate(359deg); + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@-ms-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -moz-transform: rotate(359deg); + -o-transform: rotate(359deg); + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes spin { + 0% { + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -moz-transform: rotate(359deg); + -o-transform: rotate(359deg); + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/public_html/font/fontello-7a886015/css/fontello-codes.css b/public_html/font/fontello-7a886015/css/fontello-codes.css new file mode 100644 index 0000000..dab9a28 --- /dev/null +++ b/public_html/font/fontello-7a886015/css/fontello-codes.css @@ -0,0 +1,3 @@ + +.icon-menu:before { content: '\2630'; } /* 'â°' */ +.icon-cancel:before { content: '\2716'; } /* 'â' */ diff --git a/public_html/font/fontello-7a886015/css/fontello-embedded.css b/public_html/font/fontello-7a886015/css/fontello-embedded.css new file mode 100644 index 0000000..09cf536 --- /dev/null +++ b/public_html/font/fontello-7a886015/css/fontello-embedded.css @@ -0,0 +1,61 @@ +@font-face { + font-family: 'fontello'; + src: url('../font/fontello.eot?51145827'); + src: url('../font/fontello.eot?51145827#iefix') format('embedded-opentype'), + url('../font/fontello.svg?51145827#fontello') format('svg'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'fontello'; + src: url('data:application/octet-stream;base64,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') format('woff'), + url('data:application/octet-stream;base64,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') format('truetype'); +} +/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ +/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ +/* +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: 'fontello'; + src: url('../font/fontello.svg?51145827#fontello') format('svg'); + } +} +*/ + +[class^="icon-"]:before, [class*=" icon-"]:before { + font-family: "fontello"; + font-style: normal; + font-weight: normal; + speak: never; + + display: inline-block; + text-decoration: inherit; + width: 1em; + margin-right: .2em; + text-align: center; + /* opacity: .8; */ + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + + /* fix buttons height, for twitter bootstrap */ + line-height: 1em; + + /* Animation center compensation - margins should be symmetric */ + /* remove if not needed */ + margin-left: .2em; + + /* you can be more comfortable with increased icons size */ + /* font-size: 120%; */ + + /* Font smoothing. That was taken from TWBS */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ +} + +.icon-menu:before { content: '\2630'; } /* 'â°' */ +.icon-cancel:before { content: '\2716'; } /* 'â' */ diff --git a/public_html/font/fontello-7a886015/css/fontello-ie7-codes.css b/public_html/font/fontello-7a886015/css/fontello-ie7-codes.css new file mode 100644 index 0000000..b369515 --- /dev/null +++ b/public_html/font/fontello-7a886015/css/fontello-ie7-codes.css @@ -0,0 +1,3 @@ + +.icon-menu { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '☰ '); } +.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '✖ '); } diff --git a/public_html/font/fontello-7a886015/css/fontello-ie7.css b/public_html/font/fontello-7a886015/css/fontello-ie7.css new file mode 100644 index 0000000..a11b500 --- /dev/null +++ b/public_html/font/fontello-7a886015/css/fontello-ie7.css @@ -0,0 +1,14 @@ +[class^="icon-"], [class*=" icon-"] { + font-family: 'fontello'; + font-style: normal; + font-weight: normal; + + /* fix buttons height */ + line-height: 1em; + + /* you can be more comfortable with increased icons size */ + /* font-size: 120%; */ +} + +.icon-menu { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '☰ '); } +.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '✖ '); } diff --git a/public_html/font/fontello-7a886015/css/fontello.css b/public_html/font/fontello-7a886015/css/fontello.css new file mode 100644 index 0000000..afff4bc --- /dev/null +++ b/public_html/font/fontello-7a886015/css/fontello.css @@ -0,0 +1,58 @@ +@font-face { + font-family: 'fontello'; + src: url('../font/fontello.eot?34085483'); + src: url('../font/fontello.eot?34085483#iefix') format('embedded-opentype'), + url('../font/fontello.woff2?34085483') format('woff2'), + url('../font/fontello.woff?34085483') format('woff'), + url('../font/fontello.ttf?34085483') format('truetype'), + url('../font/fontello.svg?34085483#fontello') format('svg'); + font-weight: normal; + font-style: normal; +} +/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ +/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ +/* +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: 'fontello'; + src: url('../font/fontello.svg?34085483#fontello') format('svg'); + } +} +*/ +[class^="icon-"]:before, [class*=" icon-"]:before { + font-family: "fontello"; + font-style: normal; + font-weight: normal; + speak: never; + + display: inline-block; + text-decoration: inherit; + width: 1em; + margin-right: .2em; + text-align: center; + /* opacity: .8; */ + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + + /* fix buttons height, for twitter bootstrap */ + line-height: 1em; + + /* Animation center compensation - margins should be symmetric */ + /* remove if not needed */ + margin-left: .2em; + + /* you can be more comfortable with increased icons size */ + /* font-size: 120%; */ + + /* Font smoothing. That was taken from TWBS */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ +} + +/*.icon-menu:before { content: '\2630'; } *//* 'â°' */ +/*.icon-cancel:before { content: '\2716'; } *//* 'â' */ diff --git a/public_html/font/fontello-7a886015/demo.html b/public_html/font/fontello-7a886015/demo.html new file mode 100644 index 0000000..34d39f3 --- /dev/null +++ b/public_html/font/fontello-7a886015/demo.html @@ -0,0 +1,223 @@ +<!DOCTYPE html> +<html> + <head> + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]--> + <meta charset="UTF-8"> + <style> + html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + } + a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; + } + a:hover, + a:active { + outline: 0; + } + input { + margin: 0; + font-size: 100%; + vertical-align: middle; + *overflow: visible; + line-height: normal; + } + input::-moz-focus-inner { + padding: 0; + border: 0; + } + body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 20px; + color: #333; + background-color: #fff; + } + a { + color: #08c; + text-decoration: none; + } + a:hover { + color: #005580; + text-decoration: underline; + } + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + line-height: 0; + } + .row:after { + clear: both; + } + .span3 { + float: left; + min-height: 1px; + margin-left: 20px; + width: 220px; + } + .container { + width: 940px; + margin-right: auto; + margin-left: auto; + *zoom: 1; + } + .container:before, + .container:after { + display: table; + content: ""; + line-height: 0; + } + .container:after { + clear: both; + } + small { + font-size: 85%; + } + h1 { + margin: 10px 0; + font-family: inherit; + font-weight: bold; + line-height: 20px; + color: inherit; + text-rendering: optimizelegibility; + line-height: 40px; + font-size: 38.5px; + } + h1 small { + font-weight: normal; + line-height: 1; + color: #999; + font-size: 24.5px; + } + + body { + margin-top: 90px; + } + .header { + position: fixed; + top: 0; + left: 50%; + margin-left: -480px; + background-color: #fff; + border-bottom: 1px solid #ddd; + padding-top: 10px; + z-index: 10; + } + .footer { + color: #ddd; + font-size: 12px; + text-align: center; + margin-top: 20px; + } + .footer a { + color: #ccc; + text-decoration: underline; + } + .the-icons { + font-size: 14px; + line-height: 24px; + } + .switch { + position: absolute; + right: 0; + bottom: 10px; + color: #666; + } + .switch input { + margin-right: 0.3em; + } + .codesOn .i-name { + display: none; + } + .codesOn .i-code { + display: inline; + } + .i-code { + display: none; + } + @font-face { + font-family: 'fontello'; + src: url('./font/fontello.eot?17156154'); + src: url('./font/fontello.eot?17156154#iefix') format('embedded-opentype'), + url('./font/fontello.woff?17156154') format('woff'), + url('./font/fontello.ttf?17156154') format('truetype'), + url('./font/fontello.svg?17156154#fontello') format('svg'); + font-weight: normal; + font-style: normal; + } + .demo-icon { + font-family: "fontello"; + font-style: normal; + font-weight: normal; + speak: never; + + display: inline-block; + text-decoration: inherit; + width: 1em; + margin-right: .2em; + text-align: center; + /* opacity: .8; */ + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + + /* fix buttons height, for twitter bootstrap */ + line-height: 1em; + + /* Animation center compensation - margins should be symmetric */ + /* remove if not needed */ + margin-left: .2em; + + /* You can be more comfortable with increased icons size */ + /* font-size: 120%; */ + + /* Font smoothing. That was taken from TWBS */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ + } + </style> + <link rel="stylesheet" href="css/animation.css"><!--[if IE 7]><link rel="stylesheet" href="css/" + font.fontname + "-ie7.css"><![endif]--> + <script> + function toggleCodes(on) { + var obj = document.getElementById('icons'); + + if (on) { + obj.className += ' codesOn'; + } else { + obj.className = obj.className.replace(' codesOn', ''); + } + } + </script> + </head> + <body> + <div class="container header"> + <h1>fontello <small>font demo</small></h1> + <label class="switch"> + <input type="checkbox" onclick="toggleCodes(this.checked)">show codes + </label> + </div> + <div class="container" id="icons"> + <div class="row"> + <div class="span3" title="Code: 0x2630"> + <i class="demo-icon icon-menu">☰</i> <span class="i-name">icon-menu</span><span class="i-code">0x2630</span> + </div> + <div class="span3" title="Code: 0x2716"> + <i class="demo-icon icon-cancel">✖</i> <span class="i-name">icon-cancel</span><span class="i-code">0x2716</span> + </div> + </div> + <div class="container footer">Generated by <a href="https://fontello.com">fontello.com</a></div> + </body> +</html> diff --git a/public_html/font/fontello-7a886015/font/fontello.eot b/public_html/font/fontello-7a886015/font/fontello.eot new file mode 100644 index 0000000..3048c87 Binary files /dev/null and b/public_html/font/fontello-7a886015/font/fontello.eot differ diff --git a/public_html/font/fontello-7a886015/font/fontello.svg b/public_html/font/fontello-7a886015/font/fontello.svg new file mode 100644 index 0000000..c45cb7e --- /dev/null +++ b/public_html/font/fontello-7a886015/font/fontello.svg @@ -0,0 +1,14 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata>Copyright (C) 2021 by original authors @ fontello.com</metadata> +<defs> +<font id="fontello" horiz-adv-x="1000" > +<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" /> +<missing-glyph horiz-adv-x="1000" /> +<glyph glyph-name="menu" unicode="☰" d="M857 100v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 25t25 11h785q15 0 26-11t10-25z m0 286v-72q0-14-10-25t-26-10h-785q-15 0-25 10t-11 25v72q0 14 11 25t25 10h785q15 0 26-10t10-25z m0 285v-71q0-14-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 26t25 10h785q15 0 26-10t10-26z" horiz-adv-x="857.1" /> + +<glyph glyph-name="cancel" unicode="✖" d="M724 112q0-22-15-38l-76-76q-16-15-38-15t-38 15l-164 165-164-165q-16-15-38-15t-38 15l-76 76q-16 16-16 38t16 38l164 164-164 164q-16 16-16 38t16 38l76 76q16 16 38 16t38-16l164-164 164 164q16 16 38 16t38-16l76-76q15-15 15-38t-15-38l-164-164 164-164q15-15 15-38z" horiz-adv-x="785.7" /> +</font> +</defs> +</svg> diff --git a/public_html/font/fontello-7a886015/font/fontello.ttf b/public_html/font/fontello-7a886015/font/fontello.ttf new file mode 100644 index 0000000..07a8ca0 Binary files /dev/null and b/public_html/font/fontello-7a886015/font/fontello.ttf differ diff --git a/public_html/font/fontello-7a886015/font/fontello.woff b/public_html/font/fontello-7a886015/font/fontello.woff new file mode 100644 index 0000000..d46a600 Binary files /dev/null and b/public_html/font/fontello-7a886015/font/fontello.woff differ diff --git a/public_html/font/fontello-7a886015/font/fontello.woff2 b/public_html/font/fontello-7a886015/font/fontello.woff2 new file mode 100644 index 0000000..6119336 Binary files /dev/null and b/public_html/font/fontello-7a886015/font/fontello.woff2 differ diff --git a/public_html/font/fontello.eot b/public_html/font/fontello.eot new file mode 100644 index 0000000..3048c87 Binary files /dev/null and b/public_html/font/fontello.eot differ diff --git a/public_html/font/fontello.svg b/public_html/font/fontello.svg new file mode 100644 index 0000000..c45cb7e --- /dev/null +++ b/public_html/font/fontello.svg @@ -0,0 +1,14 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata>Copyright (C) 2021 by original authors @ fontello.com</metadata> +<defs> +<font id="fontello" horiz-adv-x="1000" > +<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" /> +<missing-glyph horiz-adv-x="1000" /> +<glyph glyph-name="menu" unicode="☰" d="M857 100v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 25t25 11h785q15 0 26-11t10-25z m0 286v-72q0-14-10-25t-26-10h-785q-15 0-25 10t-11 25v72q0 14 11 25t25 10h785q15 0 26-10t10-25z m0 285v-71q0-14-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 26t25 10h785q15 0 26-10t10-26z" horiz-adv-x="857.1" /> + +<glyph glyph-name="cancel" unicode="✖" d="M724 112q0-22-15-38l-76-76q-16-15-38-15t-38 15l-164 165-164-165q-16-15-38-15t-38 15l-76 76q-16 16-16 38t16 38l164 164-164 164q-16 16-16 38t16 38l76 76q16 16 38 16t38-16l164-164 164 164q16 16 38 16t38-16l76-76q15-15 15-38t-15-38l-164-164 164-164q15-15 15-38z" horiz-adv-x="785.7" /> +</font> +</defs> +</svg> diff --git a/public_html/font/fontello.ttf b/public_html/font/fontello.ttf new file mode 100644 index 0000000..07a8ca0 Binary files /dev/null and b/public_html/font/fontello.ttf differ diff --git a/public_html/font/fontello.woff b/public_html/font/fontello.woff new file mode 100644 index 0000000..d46a600 Binary files /dev/null and b/public_html/font/fontello.woff differ diff --git a/public_html/font/fontello.woff2 b/public_html/font/fontello.woff2 new file mode 100644 index 0000000..6119336 Binary files /dev/null and b/public_html/font/fontello.woff2 differ diff --git a/public_html/font/fontello.zip b/public_html/font/fontello.zip new file mode 100644 index 0000000..09e0cc8 Binary files /dev/null and b/public_html/font/fontello.zip differ diff --git a/public_html/images/founding-members/charlie-linford.jpg b/public_html/images/founding-members/charlie-linford.jpg new file mode 100644 index 0000000..037deac Binary files /dev/null and b/public_html/images/founding-members/charlie-linford.jpg differ diff --git a/public_html/images/founding-members/elena-brake.jpg b/public_html/images/founding-members/elena-brake.jpg new file mode 100644 index 0000000..57ce08a Binary files /dev/null and b/public_html/images/founding-members/elena-brake.jpg differ diff --git a/public_html/images/founding-members/elisha-small.jpg b/public_html/images/founding-members/elisha-small.jpg new file mode 100644 index 0000000..66b34f7 Binary files /dev/null and b/public_html/images/founding-members/elisha-small.jpg differ diff --git a/public_html/images/founding-members/emily-hall.jpg b/public_html/images/founding-members/emily-hall.jpg new file mode 100644 index 0000000..adc5de6 Binary files /dev/null and b/public_html/images/founding-members/emily-hall.jpg differ diff --git a/public_html/images/founding-members/josephine-leggett.jpg b/public_html/images/founding-members/josephine-leggett.jpg new file mode 100644 index 0000000..6778dd1 Binary files /dev/null and b/public_html/images/founding-members/josephine-leggett.jpg differ diff --git a/public_html/images/founding-members/matthew-jerome.jpg b/public_html/images/founding-members/matthew-jerome.jpg new file mode 100644 index 0000000..8ced58c Binary files /dev/null and b/public_html/images/founding-members/matthew-jerome.jpg differ diff --git a/public_html/images/founding-members/sam-white.jpg b/public_html/images/founding-members/sam-white.jpg new file mode 100644 index 0000000..ac504b6 Binary files /dev/null and b/public_html/images/founding-members/sam-white.jpg differ diff --git a/public_html/images/logo/logo.png b/public_html/images/logo/logo.png new file mode 100644 index 0000000..f68fb11 Binary files /dev/null and b/public_html/images/logo/logo.png differ diff --git a/public_html/images/logo/text.png b/public_html/images/logo/text.png new file mode 100644 index 0000000..a895cd2 Binary files /dev/null and b/public_html/images/logo/text.png differ diff --git a/public_html/images/logo/y.png b/public_html/images/logo/y.png new file mode 100644 index 0000000..68304f8 Binary files /dev/null and b/public_html/images/logo/y.png differ diff --git a/public_html/includes/html-templating.php b/public_html/includes/html-templating.php new file mode 100644 index 0000000..aac4210 --- /dev/null +++ b/public_html/includes/html-templating.php @@ -0,0 +1,27 @@ +<?php +/* + * Functions for printing common HTML boilerplate using PHP. + */ +require_once('includes/utils.php'); +require_once('includes/config.php'); + +/** + * Print HTML to include stylesheet with filename $name.css using appropriate + * version control GET parameters. + * + * @param string $name + * @return void + */ +function stylesheet($name) { + $rel_path = "css/$name.css"; + $suffix = cache_control_suffix($rel_path);?> + <link rel="stylesheet" type="text/css" <?php + href($rel_path . $suffix);?>"><?php +} + +function javascript($name) { + $rel_path = "js/$name.js"; + $suffix = cache_control_suffix($rel_path);?> + <script type="text/javascript" <?php + src($rel_path . $suffix);?>"></script><?php +} diff --git a/public_html/includes/navbar.php b/public_html/includes/navbar.php new file mode 100644 index 0000000..283b13a --- /dev/null +++ b/public_html/includes/navbar.php @@ -0,0 +1,63 @@ +<?php +require_once('includes/utils.php'); +require_once('includes/html-templating.php'); + +function get_menu_pages() { + return [ + 'home' => [ 'name' => 'Home', + 'path' => 'index.php' + ], + /* + 'about' => [ 'name' => 'About', + 'path' => '#' + ], + 'join' => [ 'name' => 'Join', + 'path' => '#' + ], + 'links' => [ 'name' => 'Useful Links', + 'path' => '#' + ], + 'register' => [ 'name' => 'Register', + 'path' => '#' + ], + 'login' => [ 'name' => 'Login', + 'path' => '#' + ]*/ + ]; +} + +function navbar() { + $pages = get_menu_pages();?> + <nav class="navbar" id="mainnav"> + <!-- Control which makes collapsible navbar work. --> + <input type="checkbox" id="menutoggle" /> + + <!-- Div for aligning logo and collapsible navbar icons. --> + <div id="topline"> + <a class="logo" <?php href('index.php');?>> + <img alt="YCRA logo" <?php src('images/logo/logo.png');?> /> + </a> + + <!-- Display elements for collapsible navbar. --> + <label for="menutoggle"> + <span class="icon-menubars" id="menubars">☰</span> + <span class="icon-menuclose" id="menuclose">✖</span> + </label> + </div> + <ul><?php + foreach ($pages as $k=>$page) {?> + <li> + <a <?php href($page['path']);?> <?php + if ($_SERVER['REQUEST_URI'] == rel_url($page['path'])) {?> + class="nav-active"<?php + }?>><?php + esc($page['name']);?> + </a> + </li><?php + }?> + </ul> + </nav> + <!--nav class="navbar" id="subnav"> + <ul><li><a href="#">About</a></li></ul> + </nav--><?php +}?> diff --git a/public_html/includes/template.php b/public_html/includes/template.php new file mode 100644 index 0000000..38ab376 --- /dev/null +++ b/public_html/includes/template.php @@ -0,0 +1,41 @@ +<?php +require_once('includes/utils.php'); +require_once('includes/html-templating.php'); +require_once('includes/navbar.php'); +?> +<!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8" /> + + <!-- Set FavIcon --> + <link rel="icon" type="image/png" href="images/logo/y.png" /> + + <?php + // Stylesheets. + stylesheet('common'); + stylesheet('navbar'); + stylesheet('fontello'); + if (function_exists('additional_stylesheets')) additional_stylesheets(); + + javascript('scroll');?> + + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title> + YCRA<?php + if (function_exists('page_title')) esc(' | ' . page_title());?> + </title> + </head> + <body><?php + navbar();?> + <div id="page-content"><?php + content();?> + </div> + <footer> + <p>© Young Change Ringers Association 2021. All rights reserved.</p> + <p>Website maintained by <a href="mailto:web@ycra.org.uk">Sam White</a>.</p> + <p><a href="#top">Go to Top of Page</a></p> + </footer> + </body> +</html> diff --git a/public_html/includes/utils.php b/public_html/includes/utils.php new file mode 100644 index 0000000..ee5bb6c --- /dev/null +++ b/public_html/includes/utils.php @@ -0,0 +1,46 @@ +<?php +require_once('includes/config.php'); + +/** + * Escape HTML tags in the passed string. + * + * @param string $s + * @return string + */ +function esc_str($s) { + return htmlspecialchars($s, ENT_COMPAT, 'UTF-8'); +} +function esc($s) { + echo esc_str($s); +} + +// URL helper functions. +function rel_url($path) { + return get_config()['site_root'] . $path; +} +function abs_url($path) { + return 'https://ycra.org.uk' . rel_url($path); +} +function href($path) { + echo 'href="'; + esc(rel_url($path)); + echo '"'; +} +function src($path) { + echo 'src="'; + esc(rel_url($path)); + echo '"'; +} + +/** Return cache control file suffix for file at $path + * + * @param string $path Relative file path. + * + * @return string Suffix to append to resource URI. + */ +function cache_control_suffix($path) { + $doc_root = $_SERVER['DOCUMENT_ROOT']; + $site_root = get_config()['site_root']; + $modified = date('Ymd-His', filemtime($doc_root . $site_root . $path)); + return "?v=$modified"; +} diff --git a/public_html/index.html.old b/public_html/index.html.old new file mode 100644 index 0000000..0f71281 --- /dev/null +++ b/public_html/index.html.old @@ -0,0 +1,10 @@ +<!DOCTYPE html> +<html> + <head> + <title>Young Change Ringers Association</title> + </head> + <body> + <h1>Young Change Ringers Association</h1> + <p>Coming soon...</p> + </body> +</html> diff --git a/public_html/index.php b/public_html/index.php new file mode 100644 index 0000000..45bfa78 --- /dev/null +++ b/public_html/index.php @@ -0,0 +1,109 @@ +<?php +require_once('includes/utils.php'); +require_once('includes/html-templating.php'); +require_once('includes/navbar.php'); + + +function bio($name, $img_path, $description) {?> + <div class="bio"> + <h3><?php esc($name);?></h3> + <img alt="<?php esc($name);?> portrait" + <?php src("images/$img_path");?> /> + <?php echo $description;?> + </div> + <div class="clear"></div><?php +} + +function founding_member_bio($name, $why_create) { + $desc = '<h4>Why did you want to create the YCRA?</h4>' + . "<p>$why_create</p>"; + return bio($name, + 'founding-members/'.strtolower(str_replace(' ', '-', $name)).'.jpg', + $desc); +} + +function additional_stylesheets() { + stylesheet('bio'); +} + +function content() {?> + <div class="section"> + <h1>Young Change Ringers Association</h1> + + <p>The Young Change Ringers Association (YCRA) is a non-territorial + association for anyone young enough to handle a bell, up to the age of 30. + We aim to be an Association for young ringers, by young ringers.</p> + + <p>For more information about us check out our article on + <a href="https://bb.ringingworld.co.uk/issues/2021/820">page 2021/820</a> of + <i><a href="https://ringingworld.co.uk/">The Ringing World</a></i>.</p> + + <p>Alternatively, come and speak to us on the 11th of September at the + <a href="https://rwnyc.ringingworld.co.uk/">Ringing World National Youth + Contest</a> in Worcester.</p> + + <!--p>The primary aims are to:</p> + + <ul> + <li>Promote young ringing.</li> + <li>Recruit ringers.</li> + <li>Support the development of young ringers.</li> + </ul--> + </div> + + <div class="section" id="core-7"> + <h2>Who are the founding members?</h2> + + <?php + $why_create = "I came to the realisation that there were ringers in my area I had + never heard of, and that this wasn't just a one off. I wanted to help + connect young ringers together so they can derive as much happiness from + ringing as I do! Plus, I want people to ring with when I'm old."; + founding_member_bio('Matthew Jerome', $why_create); + + $why_create = "I haven't had a lot of chance to participate in many youth ringing + activities in the county so I wanted to be a part of something that would + give me, and others, this opportunity."; + founding_member_bio('Elisha Small', $why_create); + + $why_create = "I was excited about getting involved with YCRA and helping to secure + the future of ringing. Young people are the ringing leaders of the future! + I had been looking for ways to connect with other young ringers for a + while and the opportunity to get involved with YCRA was too good to miss!"; + founding_member_bio('Elena Brake', $why_create); + + $why_create = "The ringing community is unlike any other, and I believe that it's + crucial that we allow young ringers to connect and develop as human + beings. If anything, it's for the survival of our art. Young ringers are + our future tower captains, teachers, and committee members â the ringing + community need to give them the space and tools so that they can, one day, + fill those roles. I believe that the YCRA will do just that, with the + mentoring scheme being a good opportunity to ease young ringers into roles + of responsibility whilst, at the same time, providing a support network."; + founding_member_bio('Emily Hall', $why_create); + + $why_create = "As someone without a <q>ringing family</q>, I was + really lucky to find a group of friends who supported me in ringing and + helped me navigate ringing etiquette. I wanted to help create a group that + would create a safe space for other young ringers to find friends + like I did."; + founding_member_bio('Josephine Leggett', $why_create); + + $why_create = "It's a great way to get more kids involved in the larger + ringing community so that everyone has the opportunities that some of us + take for granted."; + founding_member_bio('Charlie Linford', $why_create); + + $why_create = "To help other young ringers find a group of like-minded + people to help, support and encourage them while learning to ring. I was + fortunate enough to have this while ringing at university (and when I went + to ring elsewhere over the summer) and it is definitely one of the main + reasons I enjoy ringing so much."; + founding_member_bio('Sam White', $why_create);?> + </div> + + <?php +} + +require_once('includes/template.php'); +?> diff --git a/public_html/js/scroll.js b/public_html/js/scroll.js new file mode 100644 index 0000000..3f9d9f7 --- /dev/null +++ b/public_html/js/scroll.js @@ -0,0 +1,36 @@ +/* + * Scroll to selected navigation link location. +*/ + +document.querySelectorAll('a[href^="#"]').forEach(anchor => { + // for every in-page link + anchor.addEventListener('click', function(e) { + // Stop the default behaviour. + e.preventDefault(); + + // Get body position relative to user's viewport. + var bodyPosition = document.body.getBoundingClientRect().top; + + // Handle requests to scroll to top of page. + if (this.getAttribute('href') == "#top") + elementPosition = bodyPosition; + else + { + // Get element to scroll to and position relative to viewport. + var element = document.querySelector(this.getAttribute('href')); + var elementPosition = element.getBoundingClientRect().top; + } + + // Get position to scroll to relative to top of page, compensating height + // of navbars. + var headerOffset = document.getElementById('mainnav').scrollHeight + + document.getElementById('subnav').scrollHeight; + var offsetPosition = elementPosition - bodyPosition - headerOffset; + + // Scroll. + window.scrollTo({ + top: offsetPosition, + behavior: "smooth" + }); + }); +}); diff --git a/public_html/js/scrollactivehighlight.js b/public_html/js/scrollactivehighlight.js new file mode 100644 index 0000000..fdd16db --- /dev/null +++ b/public_html/js/scrollactivehighlight.js @@ -0,0 +1,76 @@ +/* + * Sets navigation item to active if in view. +*/ + +/* Return the percentage of the elem given visible to the user. Accounts for + * header offset if provided. */ +function getPercentVisible(elem, headerOffset = 0) +{ + var elementHeight = elem.clientHeight; + + /* Find location of top and bottom of element bounding box relative to top + * of viewport accounting for header offset given. */ + var rect = elem.getBoundingClientRect(); + var elemTop = rect.top - headerOffset; + var elemBottom = rect.bottom - headerOffset; + + // Viewport height excluding headers. + var viewHeight = window.innerHeight - headerOffset; + + /* Determine pixels of element visible. */ + var amountVisble = 0; + // Element not in view. + if (elemBottom <= 0 || elemTop >= viewHeight) + amountVisible = 0; + // Top of element not in view. + else if (elemTop < 0 && elemBottom > 0) + amountVisible = elemBottom; + // Element fills entire view. + else if (elemTop < 0 && elemBottom > viewHeight) + amountVisible = viewHeight; + // Whole element in view. + else if (elemTop >= 0 && elemBottom <= viewHeight) + amountVisible = elementHeight; + // Bottom of element not in view. + else if (elemTop >= 0 && elemBottom > viewHeight) + amountVisible = viewHeight - elemTop; + + // Return the percentage of the element in view. + return amountVisible / elementHeight * 100; +} + + +// Get all sub-navbar elements. +var subnavbarElem = document.querySelectorAll("nav#subnav a"); + +// Get height of header. +var headerOffset = document.getElementById('mainnav').offsetHeight + + document.getElementById('subnav').offsetHeight; + +// Run whenever page is scrolled. +window.addEventListener('scroll', function (event) { + // Create 2D array. + vis = new Array(2); + vis[0] = new Array(subnavbarElem.length); + vis[1] = new Array(subnavbarElem.length); + + // For each subnavbar element. + for (var i = 0; i < subnavbarElem.length; i++) + { + // Remove any already set active classes. + subnavbarElem[i].classList.remove("active"); + + // Get the section element the navbar link refers to. + sectionId = subnavbarElem[i].getAttribute('href'); + section = document.querySelector(sectionId); + + // Store the navbar link element and the percentage of the section visible. + vis[0][i] = subnavbarElem[i]; + vis[1][i] = getPercentVisible(section, headerOffset); + } + + // Find index of element with greatest percentage visible and make this the active element. + let imax = vis[1].indexOf(Math.max(...vis[1])); + vis[0][imax].classList.add("active"); +}, false); +