From 8c5ef2b58bfd2156a6ff208f362bb33131fc777b Mon Sep 17 00:00:00 2001 From: Maxiwee <81492222+maxiwee69@users.noreply.github.com> Date: Tue, 21 May 2024 12:44:04 +0200 Subject: [PATCH] chore: Update .htaccess to block access to .git directory and add custom 404 page --- .htaccess | 7 +- 404/.gitignore | 7 ++ 404/LICENSE | 19 +++ 404/README.md | 11 ++ 404/css/404.css | 25 ++++ 404/css/main.css | 68 ++++++++++ 404/css/reset.css | 57 +++++++++ 404/fallback.png | Bin 0 -> 65884 bytes 404/index.html | 21 ++++ 404/js/404.js | 312 ++++++++++++++++++++++++++++++++++++++++++++++ setup/index.html | 34 +++++ 11 files changed, 558 insertions(+), 3 deletions(-) create mode 100644 404/.gitignore create mode 100644 404/LICENSE create mode 100644 404/README.md create mode 100644 404/css/404.css create mode 100644 404/css/main.css create mode 100644 404/css/reset.css create mode 100644 404/fallback.png create mode 100644 404/index.html create mode 100644 404/js/404.js create mode 100644 setup/index.html diff --git a/.htaccess b/.htaccess index 306a8cc..f964248 100644 --- a/.htaccess +++ b/.htaccess @@ -1,3 +1,4 @@ -# Block access to .git directory -RedirectMatch 404 /\.git -Options -Indexes \ No newline at end of file +# Block access to .git directory +RedirectMatch 404 /\.git +Options -Indexes +ErrorDocument 404 /404/index.html \ No newline at end of file diff --git a/404/.gitignore b/404/.gitignore new file mode 100644 index 0000000..ec8e01f --- /dev/null +++ b/404/.gitignore @@ -0,0 +1,7 @@ +.DS_Store +.svn +log/*.log +tmp/** +dist +netmag_files +netmag.html diff --git a/404/LICENSE b/404/LICENSE new file mode 100644 index 0000000..28cfd7d --- /dev/null +++ b/404/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) 2011 Hakim El Hattab, http://hakim.se + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/404/README.md b/404/README.md new file mode 100644 index 0000000..23878e0 --- /dev/null +++ b/404/README.md @@ -0,0 +1,11 @@ +# 404 + +This 404 page was created for netmagazine.com. + +[Check out the demo](http://hakim.se/experiments/html5/404) or see how it looked in context on [netmagazine.com](http://hakim.se/experiments/html5/404/netmag.html). + +# License + +MIT licensed + +Copyright (C) 2011 Hakim El Hattab, http://hakim.se diff --git a/404/css/404.css b/404/css/404.css new file mode 100644 index 0000000..9adaadf --- /dev/null +++ b/404/css/404.css @@ -0,0 +1,25 @@ +#fof { + margin: 20px 0 120px; + text-align: center; +} + +#fof div { + position: fixed; + width: 100%; + height: 100%; + top: 0; + left: 0; + + background: #000; +} + +#fof canvas, +#fof img { + position: relative; + width: 960px; + height: 480px; + margin-bottom: 20px; + z-index: 1; + + background: #000; +} \ No newline at end of file diff --git a/404/css/main.css b/404/css/main.css new file mode 100644 index 0000000..f6c603c --- /dev/null +++ b/404/css/main.css @@ -0,0 +1,68 @@ +/** + * @author Hakim El Hattab + */ + + +/********************************************* + * GLOBAL STYLES + *********************************************/ + +html, body { + width: 100%; + height: 100%; + overflow: hidden; + + background: #000; + color: #000; + + font-family: 'Molengo', Arial, Helvetica, sans-serif; +} + + +/********************************************* + * EXPERIMENTS HEADER + *********************************************/ + +a { + color: rgb(220,200,150); +} + +header { + padding: 10px 0; + z-index: 999; + + height: 20px; + width: 100%; + + background: rgba(0,0,0,0.7); +} + +header>div { + float: right; + margin-right: 10px; +} + +header div.facebook-button { + top: 1px; +} + +header a { + float: left; + font-size: 14px; + color: #eee; + margin-left: 10px; +} + +/********************************************* + * CONTENTS + *********************************************/ + +#fof { + margin-top: 40px; + text-align: center; +} + + + + + diff --git a/404/css/reset.css b/404/css/reset.css new file mode 100644 index 0000000..68f227a --- /dev/null +++ b/404/css/reset.css @@ -0,0 +1,57 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} + + +/* HTML5BP: + These selection declarations have to be separate. + No text-shadow: twitter.com/miketaylr/status/12228805301 + Also: hot pink. */ +::-moz-selection{ background: #FF5E99; color:#fff; text-shadow: none; } +::selection { background:#FF5E99; color:#fff; text-shadow: none; } + diff --git a/404/fallback.png b/404/fallback.png new file mode 100644 index 0000000000000000000000000000000000000000..fd972e9f9348b049e0007591623c3b32ad09a913 GIT binary patch literal 65884 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 literal 0 HcmV?d00001 diff --git a/404/index.html b/404/index.html new file mode 100644 index 0000000..b4b58a8 --- /dev/null +++ b/404/index.html @@ -0,0 +1,21 @@ + + + + + + 404 + + + + + + +
+
+ +
+ + + + + \ No newline at end of file diff --git a/404/js/404.js b/404/js/404.js new file mode 100644 index 0000000..b499eb3 --- /dev/null +++ b/404/js/404.js @@ -0,0 +1,312 @@ + +/** + * Copyright (C) 2011 Hakim El Hattab, http://hakim.se + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @author Hakim El Hattab | http://hakim.se + */ +(function(){ + + var DISPLAY_WIDTH = 960, + DISPLAY_HEIGHT = 480, + DISPLAY_DURATION = 10, + OVERLAY_DURATION = 3; + + var mouse = { x: 0, y: 0 }, + container, + overlay, + overlayOpacity = 1, + canvas, + context, + startTime, + eyes; + + function initialize() { + container = document.getElementById( 'fof' ); + overlay = document.querySelector( '#fof>div' ); + canvas = document.querySelector( '#fof>canvas' ); + + if( canvas ) { + canvas.width = DISPLAY_WIDTH; + canvas.height = DISPLAY_HEIGHT; + + context = canvas.getContext( '2d' ); + + document.addEventListener( 'mousemove', function( event ) { + mouse.x = event.clientX; + mouse.y = event.clientY; + }, false ); + + eyes = [ + new Eye( canvas, 0.50, 0.50, 5.00, 0.10 ), + + new Eye( canvas, 0.19, 0.80, 0.88, 0.31 ), + new Eye( canvas, 0.10, 0.54, 0.84, 0.32 ), + new Eye( canvas, 0.81, 0.13, 0.63, 0.33 ), + new Eye( canvas, 0.89, 0.19, 0.58, 0.34 ), + new Eye( canvas, 0.40, 0.08, 0.97, 0.35 ), + new Eye( canvas, 0.64, 0.74, 0.57, 0.36 ), + new Eye( canvas, 0.41, 0.89, 0.56, 0.37 ), + new Eye( canvas, 0.92, 0.89, 0.75, 0.38 ), + new Eye( canvas, 0.27, 0.20, 0.87, 0.39 ), + new Eye( canvas, 0.17, 0.46, 0.68, 0.41 ), + new Eye( canvas, 0.71, 0.29, 0.93, 0.42 ), + new Eye( canvas, 0.84, 0.46, 0.54, 0.43 ), + new Eye( canvas, 0.93, 0.35, 0.63, 0.44 ), + new Eye( canvas, 0.77, 0.82, 0.85, 0.45 ), + new Eye( canvas, 0.36, 0.74, 0.90, 0.46 ), + new Eye( canvas, 0.13, 0.24, 0.85, 0.47 ), + new Eye( canvas, 0.58, 0.20, 0.77, 0.48 ), + new Eye( canvas, 0.55, 0.84, 0.87, 0.50 ), + ]; + + startTime = Date.now(); + + animate(); + } + else if( overlay ) { + overlay.parentElement.removeChild( overlay ); + } + } + + function animate() { + // The number of seconds that have passed since initialization + var seconds = ( Date.now() - startTime ) / 1000; + + // Out with the old ... + context.clearRect( 0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT ); + + // ... in with the new + for( var i = 0, len = eyes.length; i < len; i++ ) { + var eye = eyes[i]; + + if( seconds > eye.activationTime * DISPLAY_DURATION ) { + eye.activate(); + }; + + eye.update( mouse ); + } + + // Remove the overlay if its time has passed + if( seconds > OVERLAY_DURATION && overlay !== undefined ) { + + // Ease-in + overlayOpacity *= 0.94 + ( 0.055 * overlayOpacity ); + overlayOpacity = Math.max( overlayOpacity - 0.01, 0 ); + + overlay.style.opacity = overlayOpacity; + + if( overlayOpacity === 0 ) { + // We have no more use for the overlay, removing it ensures + // that we do not repeatedly enter this if statement + container.removeChild( overlay ); + + overlay = undefined; + } + } + + requestAnimFrame( animate ); + } + + window.addEventListener ? window.addEventListener( 'load', initialize, false ) : window.onload = initialize; + +})(); + + +function Eye( canvas, x, y, scale, time ) { + this.canvas = canvas; + this.context = this.canvas.getContext( '2d' ) + + // The time at which this eye will come alive + this.activationTime = time; + + // The speed at which the iris follows the mouse + this.irisSpeed = 0.01 + ( Math.random() * 0.2 ) / scale; + + // The speed at which the eye opens and closes + this.blinkSpeed = 0.2 + ( Math.random() * 0.2 ); + this.blinkInterval = 5000 + 5000 * ( Math.random() ); + + // Timestamp of the last blink + this.blinkTime = Date.now(); + + this.scale = scale; + this.size = 70 * scale; + + this.x = x * canvas.width; + this.y = y * canvas.height + ( this.size * 0.15 ); + + this.iris = { + x: this.x, + y: this.y - ( this.size * 0.1 ), + size: this.size * 0.2 + }; + + this.pupil = { + width: 2 * scale, + height: this.iris.size * 0.75 + }; + + this.exposure = { + top: 0.1 + ( Math.random() * 0.3 ), + bottom: 0.5 + ( Math.random() * 0.3 ), + current: 0, + target: 1 + }; + + // Affects the amount of inner shadow + this.tiredness = ( 0.5 - this.exposure.top ) + 0.1; + + this.isActive = false; + + this.activate = function() { + this.isActive = true; + } + + this.update = function( mouse ) { + if( this.isActive === true ) { + this.render( mouse ); + } + } + + this.render = function( mouse ) { + var time = Date.now(); + + if( this.exposure.current < 0.012 ) { + this.exposure.target = 1; + } + else if( time - this.blinkTime > this.blinkInterval ) { + this.exposure.target = 0; + this.blinkTime = time; + } + + this.exposure.current += ( this.exposure.target - this.exposure.current ) * this.blinkSpeed; + + // Eye left/right + var el = { x: this.x - ( this.size * 0.8 ), y: this.y - ( this.size * 0.1 ) }; + var er = { x: this.x + ( this.size * 0.8 ), y: this.y - ( this.size * 0.1 ) }; + + // Eye top/bottom + var et = { x: this.x, y: this.y - ( this.size * ( 0.5 + ( this.exposure.top * this.exposure.current ) ) ) }; + var eb = { x: this.x, y: this.y - ( this.size * ( 0.5 - ( this.exposure.bottom * this.exposure.current ) ) ) }; + + // Eye inner shadow top + var eit = { x: this.x, y: this.y - ( this.size * ( 0.5 + ( ( 0.5 - this.tiredness ) * this.exposure.current ) ) ) }; + + // Eye iris + var ei = { x: this.x, y: this.y - ( this.iris.size ) }; + + // Offset the iris depending on mouse position + var eio = { + x: ( mouse.x - ei.x ) / ( window.innerWidth - ei.x ), + y: ( mouse.y ) / ( window.innerHeight ) + }; + + // Apply the iris offset + ei.x += eio.x * 16 * Math.max( 1, this.scale * 0.4 ); + ei.y += eio.y * 10 * Math.max( 1, this.scale * 0.4 ); + + this.iris.x += ( ei.x - this.iris.x ) * this.irisSpeed; + this.iris.y += ( ei.y - this.iris.y ) * this.irisSpeed; + + // Eye fill drawing + this.context.fillStyle = 'rgba(255,255,255,1.0)'; + this.context.strokeStyle = 'rgba(100,100,100,1.0)'; + this.context.beginPath(); + this.context.lineWidth = 3; + this.context.lineJoin = 'round'; + this.context.moveTo( el.x, el.y ); + this.context.quadraticCurveTo( et.x, et.y, er.x, er.y ); + this.context.quadraticCurveTo( eb.x, eb.y, el.x, el.y ); + this.context.closePath(); + this.context.stroke(); + this.context.fill(); + + // Iris + this.context.save(); + this.context.globalCompositeOperation = 'source-atop'; + this.context.translate(this.iris.x*0.1,0); + this.context.scale(0.9,1); + this.context.strokeStyle = 'rgba(0,0,0,0.5)'; + this.context.fillStyle = 'rgba(130,50,90,0.9)'; + this.context.lineWidth = 2; + this.context.beginPath(); + this.context.arc(this.iris.x, this.iris.y, this.iris.size, 0, Math.PI*2, true); + this.context.fill(); + this.context.stroke(); + this.context.restore(); + + // Iris inner + this.context.save(); + this.context.shadowColor = 'rgba(255,255,255,0.5)'; + this.context.shadowOffsetX = 0; + this.context.shadowOffsetY = 0; + this.context.shadowBlur = 2 * this.scale; + this.context.globalCompositeOperation = 'source-atop'; + this.context.translate(this.iris.x*0.1,0); + this.context.scale(0.9,1); + this.context.fillStyle = 'rgba(255,255,255,0.2)'; + this.context.beginPath(); + this.context.arc(this.iris.x, this.iris.y, this.iris.size * 0.7, 0, Math.PI*2, true); + this.context.fill(); + this.context.restore(); + + // Pupil + this.context.save(); + this.context.globalCompositeOperation = 'source-atop'; + this.context.fillStyle = 'rgba(0,0,0,0.9)'; + this.context.beginPath(); + this.context.moveTo( this.iris.x, this.iris.y - ( this.pupil.height * 0.5 ) ); + this.context.quadraticCurveTo( this.iris.x + ( this.pupil.width * 0.5 ), this.iris.y, this.iris.x, this.iris.y + ( this.pupil.height * 0.5 ) ); + this.context.quadraticCurveTo( this.iris.x - ( this.pupil.width * 0.5 ), this.iris.y, this.iris.x, this.iris.y - ( this.pupil.height * 0.5 ) ); + this.context.fill(); + this.context.restore(); + + this.context.save(); + this.context.shadowColor = 'rgba(0,0,0,0.9)'; + this.context.shadowOffsetX = 0; + this.context.shadowOffsetY = 0; + this.context.shadowBlur = 10; + + // Eye top inner shadow + this.context.fillStyle = 'rgba(120,120,120,0.2)'; + this.context.beginPath(); + this.context.moveTo( el.x, el.y ); + this.context.quadraticCurveTo( et.x, et.y, er.x, er.y ); + this.context.quadraticCurveTo( eit.x, eit.y, el.x, el.y ); + this.context.closePath(); + this.context.fill(); + + this.context.restore(); + + } +} + +// shim with setTimeout fallback from http://paulirish.com/2011/requestanimationframe-for-smart-animating/ +window.requestAnimFrame = (function(){ + return window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function(/* function */ callback, /* DOMElement */ element){ + window.setTimeout(callback, 1000 / 60); + }; +})(); diff --git a/setup/index.html b/setup/index.html new file mode 100644 index 0000000..64bbc12 --- /dev/null +++ b/setup/index.html @@ -0,0 +1,34 @@ + + + + Lazy Site + + + +

Sorry, I was too lazy to actually make this a thing

+ Go back + + \ No newline at end of file