diff --git a/Gemfile b/Gemfile index 3b5134d..9ffd013 100644 --- a/Gemfile +++ b/Gemfile @@ -3,3 +3,11 @@ source "https://rubygems.org" gem "jekyll", "~> 4.2.2" gem "webrick", "~> 1.8" + +gem "csv", "~> 3.3" + +gem "logger", "~> 1.7" + +gem "base64", "~> 0.3.0" + +gem "bigdecimal", "~> 3.3" diff --git a/Gemfile.lock b/Gemfile.lock index fe082dc..256b139 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,12 +3,17 @@ GEM specs: addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) + base64 (0.3.0) + bigdecimal (3.3.1) colorator (1.1.0) concurrent-ruby (1.3.5) + csv (3.3.5) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) + eventmachine (1.2.7) eventmachine (1.2.7-x86-mingw32) + ffi (1.17.2-x64-mingw-ucrt) ffi (1.17.2-x86-mingw32) forwardable-extended (2.6.0) http_parser.rb (0.8.0) @@ -41,6 +46,7 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) + logger (1.7.0) mercenary (0.4.0) pathutil (0.16.2) forwardable-extended (~> 2.6) @@ -59,10 +65,15 @@ GEM webrick (1.9.1) PLATFORMS + x64-mingw-ucrt x86-mingw32 DEPENDENCIES + base64 (~> 0.3.0) + bigdecimal (~> 3.3) + csv (~> 3.3) jekyll (~> 4.2.2) + logger (~> 1.7) webrick (~> 1.8) BUNDLED WITH diff --git a/_events/new_year_2026.html b/_events/new_year_2026.html new file mode 100644 index 0000000..8073aa8 --- /dev/null +++ b/_events/new_year_2026.html @@ -0,0 +1,132 @@ +--- +layout: base +title: New Year, New You? +subtitle: Burst From Your Cocoon! +open: Jan 1st - Jan 22nd +style: src/css/events/ny-26.css +started: false +permalink: /events/new_year_2026.html +--- + +
+
+
+

{{ page.title }}

+

{{ page.subtitle }}

+

{{ page.open }}

+
+
+ +
+
+

Prompts

+

You can do one or both of them!

+
+
+
+

Blog / Page

+

+ Make a page or write a blog post that explores + a reflection on past decisions (good or bad), + or brainstorms / shares plans for the future. +

+
+
+

Pixel Art

+

+ Customize your own Butterfly or Moth! +

+

+ You can make them static or animated. + Why not put a jar for it on your site too! +

+

+ Get the assets and code here +

+
+
+ + Submit
Entry
+
+ Credits + +
+
+
+ + + + + + diff --git a/_events/new_year_2026.md b/_events/new_year_2026.md deleted file mode 100644 index d308143..0000000 --- a/_events/new_year_2026.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: base -title: New Year, New You? -subtitle: Burst From Your Cocoon! -style: ny-26 -started: false ---- - -to be announced diff --git a/_layouts/base.html b/_layouts/base.html index 2f6d745..25fc368 100644 --- a/_layouts/base.html +++ b/_layouts/base.html @@ -3,7 +3,11 @@ + {% if page.style %} + + {% else %} + {% endif %} {{ page.title }} diff --git a/_layouts/event.html b/_layouts/event.html index 2a53d05..5d60d73 100644 --- a/_layouts/event.html +++ b/_layouts/event.html @@ -1,7 +1,7 @@ --- layout: base --- -
+

{{ page.title }}

diff --git a/_pages/index.md b/_pages/index.md index 41fede8..66fa70d 100644 --- a/_pages/index.md +++ b/_pages/index.md @@ -3,6 +3,7 @@ layout: default title: ~rodrick style: default extra: saved-theme="dark" +permalink: / --- Hewwo! I'm [Rodrick](https://shroom.ink)! diff --git a/src/css/events/ny-26.css b/src/css/events/ny-26.css new file mode 100644 index 0000000..64de77d --- /dev/null +++ b/src/css/events/ny-26.css @@ -0,0 +1,281 @@ +@import url(https://fonts.bunny.net/css?family=indie-flower:400|pangolin:400); + +:root { + --font : 'Pangolin', handwriting; + --font-heading : 'Pangolin', handwriting; + --font-color : #3C2B2A; + --font-size : calc(1rem + (1vw / 12)); + --img-rope : url("../../img/new_year_26/rope.webp"); + --img-sign-b : url("../../img/new_year_26/sign_bottom.webp"); + --img-sign-t : url("../../img/new_year_26/sign_top.webp"); + --img-stump : url("../../img/new_year_26/tree_stump.webp"); + --img-forest : url("../../img/new_year_26/forest.webp"); + --img-jar : url("../../img/new_year_26/jar.png"); + --img-paper : url("../../img/new_year_26/paper.webp"); + --img-note : url("../../img/new_year_26/note.webp"); + --bg-gradient : linear-gradient(180deg,rgba(53, 7, 99, .3) 28%, rgba(207, 106, 29, .3) 100%); +} + +h1, h2, h3, h4, h5, h6 { + font-family: var(--font-heading); + text-align: center; +} + +a { color: rgba(53, 7, 99); } +a:hover { color: rgba(207, 106, 29); } + +.note { + background-image: var(--img-note); + background-size: contain; + background-repeat: no-repeat; + background-position: center; + color: white; + + display: block; + width: 100%; + height: calc(100px - 1em); + text-align: center; + padding: 1em 0 0 0; + font-size: 1.3em; + text-decoration: none; + cursor: pointer; +} + +.note:hover { color: #ffffff88; } + +html, body { + margin: 0; + font-size: var(--font-size); + font-family: var(--font); + color: var(--font-color); + text-shadow: 0 1px 0 #F9EDD4, 0 -1px 0 black; +} + +html { + display: grid; + grid-auto-rows: 1fr; + height: 100%; +} + +body { + display: grid; + grid-template-columns: 1fr 1fr; + grid-template-rows: 1fr; + grid-template-areas: "main jar"; + + background-image: var(--bg-gradient), var(--img-forest); + background-position: center, bottom; + background-size: cover; +} + +#page { + grid-area: main; + display: grid; + grid-template-rows: 28% 59% 13%; + width: 80%; + height: calc(100% - 2em); + max-height: 100%; + margin: auto; + padding-top: 2em; + + background-image: var(--img-rope), var(--img-rope); + background-repeat: no-repeat; + background-size: auto 100%; + background-position: left, right; +} + +header { + background-image: var(--img-sign-t); + background-repeat: no-repeat; + background-size: 100%; +} + +hgroup { + margin: 5px; + text-align: center; +} + +h1 { + margin: .3em 0 5px 0; +} + +hgroup p { + font-size: 1.4em; + margin-top: 5px; +} + +main { + background-image: var(--img-sign-b); + background-repeat: no-repeat; + background-size: 100%; + padding: .5em; + height: 100%; + max-height: 500px; + overflow: auto; + scrollbar-color: white #B48976; + scrollbar-gutter: stable; +} + +main hgroup h2, +main hgroup p { + margin: 0; +} + +.grid { + display: grid; + grid-template-columns: 1fr 1fr; + grid-gap: 1em; + padding: 0 .5em; +} + +.grid h3 { margin-bottom: 0; } +.grid p { + line-height: 1.6; + margin-top: 5px; +} + +#stump { + grid-area: jar; + display: grid; + justify-items: center; + align-items: start; + background-image: var(--img-stump); + background-repeat: no-repeat; + background-size: 100%; + background-position: center bottom; +} + +#jar { + border-image: var(--img-jar) 32 + fill / 96px / 32px; + height: 60%; + width: 50%; + margin-top: 3em; + padding-top: 2em; + image-rendering: pixelated; + + display: grid; + grid-template-columns: 1fr 1fr; + overflow: auto; + scrollbar-color: white #B48976; +} + +#submit, +#tutorial { + display: none; + position:absolute; + z-index: 12; + width: 100%; + height: 100%; + background: var(--bg-gradient); + justify-items: center; + align-items: center; +} + +#submit:target, +#tutorial:target { + display: grid; +} + +.paper { + display: block; + aspect-ratio: 4 / 3; + min-width: 50%; + margin: auto; + + background-image: var(--img-paper); + background-repeat: no-repeat; + background-size: contain; + background-position: center; +} + +.paper .inner { + display: block; + padding: 18% 15% 15% 18%; + height: calc(100% - (3em + 2em)); +} + +.paper .inner { + display: grid; + grid-template-rows: 90% 10%; +} + +.paper .form { + height: 100%; + overflow: auto; + scrollbar-color: white #B48976; +} + +/* Butterflies and Moths */ + +.insect { + image-rendering: pixelated; + overflow: hidden; + width: 100%; +} + +.insect img { margin: 0; } + +.moth { aspect-ratio: 74 / 36 !important; } +.moth .wing { aspect-ratio: 37 / 36 !important; } +.butterfly { aspect-ratio: 76 / 47 !important; } +.butterfly .wing { aspect-ratio: 38 / 47 !important; } + + +.insect .body { + z-index: 6; + width: 100%; +} + +.insect .wings { + position: relative; + top: -106%; + + display: grid; + width: 100%; + height: 100%; + grid-template-columns: 1fr 1fr; + grid-template-rows: 1fr; +} + +.insect .left, +.insect .right { + display: grid; + width: 100%; + grid-template-columns: 1fr; + grid-template-rows: 1fr; +} + +.insect .wing { + width: 100%; +} +.insect .top { + z-index: 8; + position: relative; +} +.insect .bottom { + z-index: 7; + position: relative; + top: calc(100% * -1); +} + +.insect .left .wing { transform-origin: right center;} +.insect .right .wing { transform-origin: left center; } +.insect .top { + animation: flutter 300ms infinite; +} +.insect .bottom { + animation: flutter_offset 300ms infinite; +} + +@keyframes flutter { + 0% { transform: rotateY(0); } + 45% { transform: rotateY(70deg); } + 95%, 100% { transform: rotateY(0); } +} + +@keyframes flutter_offset { + 0%, 5% { transform: rotateY(0); } + 50% { transform: rotateY(70deg); } + 100% { transform: rotateY(0); } +} diff --git a/src/img/new_year_26/Butterfly.aseprite b/src/img/new_year_26/Butterfly.aseprite new file mode 100644 index 0000000..6090beb Binary files /dev/null and b/src/img/new_year_26/Butterfly.aseprite differ diff --git a/src/img/new_year_26/Butterfly.png b/src/img/new_year_26/Butterfly.png new file mode 100644 index 0000000..a24403d Binary files /dev/null and b/src/img/new_year_26/Butterfly.png differ diff --git a/src/img/new_year_26/Butterfly_Body.png b/src/img/new_year_26/Butterfly_Body.png new file mode 100644 index 0000000..6f3ba4c Binary files /dev/null and b/src/img/new_year_26/Butterfly_Body.png differ diff --git a/src/img/new_year_26/Butterfly_Wing_Bottom_Left.png b/src/img/new_year_26/Butterfly_Wing_Bottom_Left.png new file mode 100644 index 0000000..d08568d Binary files /dev/null and b/src/img/new_year_26/Butterfly_Wing_Bottom_Left.png differ diff --git a/src/img/new_year_26/Butterfly_Wing_Bottom_Right.png b/src/img/new_year_26/Butterfly_Wing_Bottom_Right.png new file mode 100644 index 0000000..d9d0566 Binary files /dev/null and b/src/img/new_year_26/Butterfly_Wing_Bottom_Right.png differ diff --git a/src/img/new_year_26/Butterfly_Wing_Top_Left.png b/src/img/new_year_26/Butterfly_Wing_Top_Left.png new file mode 100644 index 0000000..3ecbe7c Binary files /dev/null and b/src/img/new_year_26/Butterfly_Wing_Top_Left.png differ diff --git a/src/img/new_year_26/Butterfly_Wing_Top_Right.png b/src/img/new_year_26/Butterfly_Wing_Top_Right.png new file mode 100644 index 0000000..59b86a9 Binary files /dev/null and b/src/img/new_year_26/Butterfly_Wing_Top_Right.png differ diff --git a/src/img/new_year_26/Moth.aseprite b/src/img/new_year_26/Moth.aseprite new file mode 100644 index 0000000..d09f6f9 Binary files /dev/null and b/src/img/new_year_26/Moth.aseprite differ diff --git a/src/img/new_year_26/Moth.png b/src/img/new_year_26/Moth.png new file mode 100644 index 0000000..05c7b1f Binary files /dev/null and b/src/img/new_year_26/Moth.png differ diff --git a/src/img/new_year_26/Moth_Body.png b/src/img/new_year_26/Moth_Body.png new file mode 100644 index 0000000..c81df83 Binary files /dev/null and b/src/img/new_year_26/Moth_Body.png differ diff --git a/src/img/new_year_26/Moth_Wing_Bottom_Left.png b/src/img/new_year_26/Moth_Wing_Bottom_Left.png new file mode 100644 index 0000000..13fa2a8 Binary files /dev/null and b/src/img/new_year_26/Moth_Wing_Bottom_Left.png differ diff --git a/src/img/new_year_26/Moth_Wing_Bottom_Right.png b/src/img/new_year_26/Moth_Wing_Bottom_Right.png new file mode 100644 index 0000000..8a00ffc Binary files /dev/null and b/src/img/new_year_26/Moth_Wing_Bottom_Right.png differ diff --git a/src/img/new_year_26/Moth_Wing_Top_Left.png b/src/img/new_year_26/Moth_Wing_Top_Left.png new file mode 100644 index 0000000..1a344e7 Binary files /dev/null and b/src/img/new_year_26/Moth_Wing_Top_Left.png differ diff --git a/src/img/new_year_26/Moth_Wing_Top_Right.png b/src/img/new_year_26/Moth_Wing_Top_Right.png new file mode 100644 index 0000000..628f26e Binary files /dev/null and b/src/img/new_year_26/Moth_Wing_Top_Right.png differ diff --git a/src/img/new_year_26/forest.jpg b/src/img/new_year_26/forest.jpg new file mode 100644 index 0000000..58acb25 Binary files /dev/null and b/src/img/new_year_26/forest.jpg differ diff --git a/src/img/new_year_26/forest.webp b/src/img/new_year_26/forest.webp new file mode 100644 index 0000000..d133dbf Binary files /dev/null and b/src/img/new_year_26/forest.webp differ diff --git a/src/img/new_year_26/jar.aseprite b/src/img/new_year_26/jar.aseprite new file mode 100644 index 0000000..521ea36 Binary files /dev/null and b/src/img/new_year_26/jar.aseprite differ diff --git a/src/img/new_year_26/jar.png b/src/img/new_year_26/jar.png new file mode 100644 index 0000000..ed08913 Binary files /dev/null and b/src/img/new_year_26/jar.png differ diff --git a/src/img/new_year_26/note.webp b/src/img/new_year_26/note.webp new file mode 100644 index 0000000..53c5825 Binary files /dev/null and b/src/img/new_year_26/note.webp differ diff --git a/src/img/new_year_26/paper.webp b/src/img/new_year_26/paper.webp new file mode 100644 index 0000000..d446a05 Binary files /dev/null and b/src/img/new_year_26/paper.webp differ diff --git a/src/img/new_year_26/rope.webp b/src/img/new_year_26/rope.webp new file mode 100644 index 0000000..3368c53 Binary files /dev/null and b/src/img/new_year_26/rope.webp differ diff --git a/src/img/new_year_26/sign_bottom.png b/src/img/new_year_26/sign_bottom.png new file mode 100644 index 0000000..2c9f2f4 Binary files /dev/null and b/src/img/new_year_26/sign_bottom.png differ diff --git a/src/img/new_year_26/sign_bottom.webp b/src/img/new_year_26/sign_bottom.webp new file mode 100644 index 0000000..38b1e14 Binary files /dev/null and b/src/img/new_year_26/sign_bottom.webp differ diff --git a/src/img/new_year_26/sign_top.png b/src/img/new_year_26/sign_top.png new file mode 100644 index 0000000..fdc21d4 Binary files /dev/null and b/src/img/new_year_26/sign_top.png differ diff --git a/src/img/new_year_26/sign_top.webp b/src/img/new_year_26/sign_top.webp new file mode 100644 index 0000000..2aa7420 Binary files /dev/null and b/src/img/new_year_26/sign_top.webp differ diff --git a/src/img/new_year_26/tree_stump.webp b/src/img/new_year_26/tree_stump.webp new file mode 100644 index 0000000..7b26efa Binary files /dev/null and b/src/img/new_year_26/tree_stump.webp differ diff --git a/src/img/new_year_26/tree_stump_full.png b/src/img/new_year_26/tree_stump_full.png new file mode 100644 index 0000000..32e0c01 Binary files /dev/null and b/src/img/new_year_26/tree_stump_full.png differ