From 0eb7b00bca9e1322eceecada86098d8b34f98fc5 Mon Sep 17 00:00:00 2001 From: Cobular <22972550+Cobular@users.noreply.github.com> Date: Tue, 21 Apr 2020 21:01:04 -0700 Subject: [PATCH] Add masonry, partly styled --- about.html | 12 +++++ contact.html | 12 +++++ css/breakpoint-helpers.css | 3 ++ css/index.css | 40 ----------------- css/index.css.map | 7 --- css/main.css | 54 +++++++++++++++++++++++ css/masonry.css | 41 +++++++++++++++++ images/codedaysd.png | Bin 0 -> 37394 bytes images/foresightsports.png | Bin 0 -> 11083 bytes index.html | 45 ++++++++++++++++++- notes.txt | 18 ++++++++ sass/breakpoint-helpers.scss | 83 +++++++++++++++++++++++++++++++++++ sass/index.sass | 40 ----------------- sass/main.sass | 57 ++++++++++++++++++++++++ sass/masonry.sass | 50 +++++++++++++++++++++ scripts/hover_bounce.js | 78 ++++++++++++++++++++++++++++++++ scripts/masonry_conf.js | 8 ++++ 17 files changed, 459 insertions(+), 89 deletions(-) create mode 100644 css/breakpoint-helpers.css delete mode 100644 css/index.css delete mode 100644 css/index.css.map create mode 100644 css/main.css create mode 100644 css/masonry.css create mode 100644 images/codedaysd.png create mode 100644 images/foresightsports.png create mode 100644 notes.txt create mode 100644 sass/breakpoint-helpers.scss delete mode 100644 sass/index.sass create mode 100644 sass/main.sass create mode 100644 sass/masonry.sass create mode 100644 scripts/hover_bounce.js create mode 100644 scripts/masonry_conf.js diff --git a/about.html b/about.html index dd44924..56a4575 100644 --- a/about.html +++ b/about.html @@ -2,9 +2,21 @@ + About Me + + +
+ Jake Cover +
+ Home + Contact + About + GitHub +
+
\ No newline at end of file diff --git a/contact.html b/contact.html index 27bd9fb..060414a 100644 --- a/contact.html +++ b/contact.html @@ -2,9 +2,21 @@ + Contact Me + + +
+ Jake Cover +
+ Home + Contact + About + GitHub +
+
\ No newline at end of file diff --git a/css/breakpoint-helpers.css b/css/breakpoint-helpers.css new file mode 100644 index 0000000..8d35839 --- /dev/null +++ b/css/breakpoint-helpers.css @@ -0,0 +1,3 @@ + + +/*# sourceMappingURL=breakpoint-helpers.css.map */ diff --git a/css/index.css b/css/index.css deleted file mode 100644 index 445d0e6..0000000 --- a/css/index.css +++ /dev/null @@ -1,40 +0,0 @@ -.header { - overflow: hidden; - background-color: lightgrey; - padding: 20px 10px; } - -.header a { - float: left; - color: black; - text-align: center; - padding: 12px; - text-decoration: none; - font-size: 18px; - line-height: 25px; - border-radius: 4px; } - -.header a.name { - font-size: 25px; - font-weight: bold; } - -.header a:hover { - background-color: #dddddd; - color: black; } - -.header a:active { - background-color: dodgerblue; - color: white; } - -.header-right { - float: right; } - -@media screen and (max-width: 500px) { - .header a { - float: none; - display: block; - text-align: left; } - - .header-right { - float: none; } } - -/*# sourceMappingURL=index.css.map */ diff --git a/css/index.css.map b/css/index.css.map deleted file mode 100644 index 5424a77..0000000 --- a/css/index.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ -"version": 3, -"mappings": "AAEA,OAAO;EACL,QAAQ,EAAE,MAAM;EAChB,gBAAgB,EAAE,SAAS;EAC3B,OAAO,EAAE,SAAS;;AAEpB,SAAS;EACP,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,IAAI;EACb,eAAe,EAAE,IAAI;EACrB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,aAAa,EAAE,GAAG;;AAEpB,cAAc;EACZ,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;;AAEnB,eAAe;EACb,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,KAAK;;AAEd,gBAAgB;EACd,gBAAgB,EAAE,UAAU;EAC5B,KAAK,EAAE,KAAK;;AAEd,aAAa;EACX,KAAK,EAAE,KAAK;;AAEd,oCAA4C;EAC1C,SAAS;IACP,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,IAAI;;EAElB,aAAa;IACX,KAAK,EAAE,IAAI", -"sources": ["../sass/index.sass"], -"names": [], -"file": "index.css" -} diff --git a/css/main.css b/css/main.css new file mode 100644 index 0000000..67f33b7 --- /dev/null +++ b/css/main.css @@ -0,0 +1,54 @@ +@import url("https://fonts.googleapis.com/css2?family=Fira+Code&family=Montserrat:wght@400;600;700&display=swap"); +.header { + overflow: hidden; + background-color: #f1f1f1; + padding: 15px 10px; + font-family: "Fira Code", monospace; + border-radius: 3px; } + +.header a { + float: left; + color: black; + text-align: center; + padding: 7px 12px; + text-decoration: none; + font-size: 18px; + line-height: 25px; + border-radius: 4px; } + +.header a.name { + font-size: 25px; + font-weight: 600; } + +.header a:hover { + background-color: #dddddd; + color: black; } + +.header a:active { + background-color: dodgerblue; + color: white; } + +.header-right { + float: right; } + +@media (max-width: 575px) { + .header a { + float: none; + display: block; + text-align: left; } + + .header-right { + float: none; } } +.page { + background-color: rgba(240, 240, 240, 0.94); + height: fit-content; + padding: 10px; + margin-top: 10px; + font-family: "Montserrat", sans-serif; } + +@media (min-width: 992px) { + .page { + width: 80%; + margin: 10px auto auto; } } + +/*# sourceMappingURL=main.css.map */ diff --git a/css/masonry.css b/css/masonry.css new file mode 100644 index 0000000..fd825a9 --- /dev/null +++ b/css/masonry.css @@ -0,0 +1,41 @@ +.grid-item { + width: 240px; + margin-bottom: 10px; + padding: 5px; + box-sizing: border-box; + height: 200px; + transition: 0.22s all; } + +.grid { + margin: 0 auto; + transition: 0.2s all; } + +.grid-item--tall3 { + height: 300px; } + +.grid-item--tall4 { + height: 400px; } + +.grid-item--width2 { + background-color: #81d4fa; + width: 490px; } + +.grid-item--image { + width: fit-content; + height: fit-content; } + +@media (max-width: 575px) { + .grid-item--width2 { + width: 100%; } } +.blur-me { + filter: grayscale(20%) blur(0.7px) brightness(94%); + opacity: 0.8; + box-shadow: none; } + +.grid:hover .grid-item:hover { + filter: blur(0px); + opacity: 1; } + .grid:hover .grid-item:hover > img { + filter: drop-shadow(0px 2px 3px rgba(0, 0, 0, 0.25)); } + +/*# sourceMappingURL=masonry.css.map */ diff --git a/images/codedaysd.png b/images/codedaysd.png new file mode 100644 index 0000000000000000000000000000000000000000..11daedf9539a9923342c3bd4a7957fec7830cf04 GIT binary patch literal 37394 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 Jake Cover - + + -
+
Jake Cover
@@ -19,5 +20,45 @@ GitHub
+
+
+ +
+ Distest +
+ +
+ CodeDay SD Logo +
+ +
+ SRND +
+ +
+ ScoreSaber Installer +
+ +
+ ForeSight Sports Logo0 +
+ +
ReplyBot
+
+
+ + + + + \ No newline at end of file diff --git a/notes.txt b/notes.txt new file mode 100644 index 0000000..c5c7bdc --- /dev/null +++ b/notes.txt @@ -0,0 +1,18 @@ +http://www.alexafalcone.com/ +http://gudh.github.io/ihover/dist/index.html#circle10 +http://gudh.github.io/ihover/dist/index.html#circle13 +http://gudh.github.io/ihover/dist/index.html#circle17 +http://gudh.github.io/ihover/dist/index.html#square3 +http://gudh.github.io/ihover/dist/index.html#square6 +http://gudh.github.io/ihover/dist/index.html#square12 +https://codepen.io/honglio/pen/FKyxG +https://codepen.io/russpate/pen/qRaepv --- Requires the whole area to be blurred +https://codepen.io/Mamboleoo/pen/XgBvrJ --- +https://codepen.io/cassidoo/pen/RZOWQb +https://codepen.io/Sherpa23/pen/rKvJXg !! +https://codepen.io/markmead/pen/MqmOVB !! +https://codepen.io/ViktorKorolyuk/pen/GYGwpv +https://ianlunn.github.io/Hover/ (border section) +https://codepen.io/bhautikbharadava/full/OdPzdW (gives borders too) +https://tympanus.net/Development/ProximityFeedback/index5.html +https://tympanus.net/Development/ProximityFeedback/index7.html (scroll icon) \ No newline at end of file diff --git a/sass/breakpoint-helpers.scss b/sass/breakpoint-helpers.scss new file mode 100644 index 0000000..c8a7c47 --- /dev/null +++ b/sass/breakpoint-helpers.scss @@ -0,0 +1,83 @@ +// A map of breakpoints. +$breakpoints: ( + xs: 576px, + sm: 768px, + md: 992px, + lg: 1200px +); + + // Respond above. +@mixin respond-above($breakpoint) { + +// If the breakpoint exists in the map. + @if map-has-key($breakpoints, $breakpoint) { + + // Get the breakpoint value. + $breakpoint-value: map-get($breakpoints, $breakpoint); + + // Write the media query. + @media (min-width: $breakpoint-value) { + @content; + } + + // If the breakpoint doesn't exist in the map. + } @else { + + // Log a warning. + @warn 'Invalid breakpoint: #{$breakpoint}.'; + } +} + +@mixin respond-below($breakpoint) { + + // If the breakpoint exists in the map. + @if map-has-key($breakpoints, $breakpoint) { + + // Get the breakpoint value. + $breakpoint-value: map-get($breakpoints, $breakpoint); + + // Write the media query. + @media (max-width: ($breakpoint-value - 1)) { + @content; + } + + // If the breakpoint doesn't exist in the map. + } @else { + + // Log a warning. + @warn 'Invalid breakpoint: #{$breakpoint}.'; + } +} + +@mixin respond-between($lower, $upper) { + + // If both the lower and upper breakpoints exist in the map. + @if map-has-key($breakpoints, $lower) and map-has-key($breakpoints, $upper) { + + // Get the lower and upper breakpoints. + $lower-breakpoint: map-get($breakpoints, $lower); + $upper-breakpoint: map-get($breakpoints, $upper); + + // Write the media query. + @media (min-width: $lower-breakpoint) and (max-width: ($upper-breakpoint - 1)) { + @content; + } + + // If one or both of the breakpoints don't exist. + } @else { + + // If lower breakpoint is invalid. + @if (map-has-key($breakpoints, $lower) == false) { + + // Log a warning. + @warn 'Your lower breakpoint was invalid: #{$lower}.'; + } + + // If upper breakpoint is invalid. + @if (map-has-key($breakpoints, $upper) == false) { + + // Log a warning. + @warn 'Your upper breakpoint was invalid: #{$upper}.'; + } + } +} \ No newline at end of file diff --git a/sass/index.sass b/sass/index.sass deleted file mode 100644 index 95abfd3..0000000 --- a/sass/index.sass +++ /dev/null @@ -1,40 +0,0 @@ -$mobile-break: 500px - -.header - overflow: hidden - background-color: lightgrey - padding: 20px 10px - -.header a - float: left - color: black - text-align: center - padding: 12px - text-decoration: none - font-size: 18px - line-height: 25px - border-radius: 4px - -.header a.name - font-size: 25px - font-weight: bold - -.header a:hover - background-color: #dddddd - color: black - -.header a:active - background-color: dodgerblue - color: white - -.header-right - float: right - -@media screen and (max-width: $mobile-break) - .header a - float: none - display: block - text-align: left - - .header-right - float: none diff --git a/sass/main.sass b/sass/main.sass new file mode 100644 index 0000000..43c9667 --- /dev/null +++ b/sass/main.sass @@ -0,0 +1,57 @@ +@import "breakpoint-helpers" +@import url('https://fonts.googleapis.com/css2?family=Fira+Code&family=Montserrat:wght@400;600;700&display=swap') + +.header + overflow: hidden + background-color: #f1f1f1 + padding: 15px 10px + font-family: "Fira Code", monospace + border-radius: 3px + +.header a + float: left + color: black + text-align: center + padding: 7px 12px + text-decoration: none + font-size: 18px + line-height: 25px + border-radius: 4px + +.header a.name + font-size: 25px + font-weight: 600 + +.header a:hover + background-color: #dddddd + color: black + +.header a:active + background-color: dodgerblue + color: white + +.header-right + float: right + +@include respond-below(xs) + .header a + float: none + display: block + text-align: left + + .header-right + float: none + + +.page + background-color: rgba(240, 240, 240, 0.94) + height: fit-content + padding: 10px + margin-top: 10px + font-family: 'Montserrat', sans-serif + +@include respond-above(md) + .page + width: 80% + margin: 10px auto auto + diff --git a/sass/masonry.sass b/sass/masonry.sass new file mode 100644 index 0000000..34cf0bc --- /dev/null +++ b/sass/masonry.sass @@ -0,0 +1,50 @@ +@import "breakpoint-helpers" + +.grid-item + //background-color: coral + width: 240px + margin-bottom: 10px + padding: 5px + box-sizing: border-box + height: 200px + //box-shadow: 0 2px 3px 0px rgba(0,0,0,0.25) + transition: 0.22s all + + +.grid + margin: 0 auto + transition: .2s all + +.grid-item--tall3 + height: 300px + +.grid-item--tall4 + height: 400px + + +.grid-item--width2 + background-color: #81d4fa + width: 490px + +.grid-item--image + width: fit-content + height: fit-content + +@include respond-below(xs) + .grid-item--width2 + width: 100% + +.blur-me + filter: grayscale(20%) blur(0.7px) brightness(94%) + opacity: .8 + //transform: scale(.995) + box-shadow: none + +.grid:hover .grid-item:hover + //transform: scale(1.005) + filter: blur(0px) + opacity: 1 + //box-shadow: 0 8px 20px 0px rgba(0,0,0,0.125) + + > img + filter: drop-shadow(0px 2px 3px rgba(0,0,0,0.25)) diff --git a/scripts/hover_bounce.js b/scripts/hover_bounce.js new file mode 100644 index 0000000..54e3adf --- /dev/null +++ b/scripts/hover_bounce.js @@ -0,0 +1,78 @@ +class HoverButton { + constructor(el) { + this.el = el; + this.hover = false; + this.calculatePosition(); + this.attachEventsListener(); + } + + attachEventsListener() { + window.addEventListener('mousemove', e => this.onMouseMove(e)); + window.addEventListener('resize', e => this.calculatePosition(e)); + } + + calculatePosition() { + TweenMax.set(this.el, { + x: 0, + y: 0, + scale: 1 + }); + const box = this.el.getBoundingClientRect(); + this.x = box.left + (box.width * 0.5); + this.y = box.top + (box.height * 0.5); + this.width = box.width; + this.height = box.height; + } + + onMouseMove(e) { + let hover = false; + let hoverArea = (this.hover ? 0.5 : 0.5); // (detach, attach) + let x = e.clientX - this.x; + let y = e.clientY - this.y; + let distance = Math.sqrt( x*x + y*y ); + if (distance < (this.width * hoverArea)) { + hover = true; + if (!this.hover) { + this.hover = true; + } + this.onHover(e.clientX, e.clientY); + } + + if(!hover && this.hover) { + this.onLeave(); + this.hover = false; + } + } + + onHover(x, y) { + TweenMax.to(this.el, 0.05, { + x: (x - this.x) * 0.05, + y: (y - this.y) * 0.05, + scale: 1.00, + ease: Power2.easeOut + }); + this.el.style.zIndex = 10; + } + onLeave() { + TweenMax.to(this.el, 0.7, { + x: 0, + y: 0, + scale: 1, + ease: Elastic.easeOut.config(1.2, 0.4) + }); + this.el.style.zIndex = 1; + } +} + +const btn1 = document.querySelector('.grid-item:nth-child(1)'); +new HoverButton(btn1); +const btn2 = document.querySelector('.grid-item:nth-child(2)'); +new HoverButton(btn2); +const btn3 = document.querySelector('.grid-item:nth-child(3)'); +new HoverButton(btn3); +const btn4 = document.querySelector('.grid-item:nth-child(4)'); +new HoverButton(btn4); +const btn5 = document.querySelector('.grid-item:nth-child(5)'); +new HoverButton(btn5); +const btn6 = document.querySelector('.grid-item:nth-child(6)'); +new HoverButton(btn6); diff --git a/scripts/masonry_conf.js b/scripts/masonry_conf.js new file mode 100644 index 0000000..eb4e5f3 --- /dev/null +++ b/scripts/masonry_conf.js @@ -0,0 +1,8 @@ +var elem = document.querySelector('.grid'); +var msnry = new Masonry( elem, { + // options + itemSelector: '.grid-item', + columnWidth: 240, + gutter: 10, + fitWidth: true +}); \ No newline at end of file