diff --git a/public/assets/css/pages/work.css b/public/assets/css/pages/work.css index 0cb02c4..d634bfb 100644 --- a/public/assets/css/pages/work.css +++ b/public/assets/css/pages/work.css @@ -128,19 +128,28 @@ section.featured featured-item .title svg { fill: var(--color-accent); } -/* ### Languages */ - -/* ### Actions */ +section.featured featured-item img { + width: 100%; + border-radius: 4px; +} section.featured featured-item .actions { - gap: 5px; + gap: var(--padding); + width: 100%; display: flex; + flex-direction: column; padding-top: var(--padding); margin-top: auto; } /* # Size queries */ +@media (min-width: 400px) { + section.featured featured-item .actions { + flex-direction: row; + } +} + @media (min-width: 600px) { section.hero { grid-template-columns: repeat(2, 1fr); @@ -151,4 +160,8 @@ section.featured featured-item .actions { section.featured { grid-template-columns: repeat(3, 1fr); } + + section.featured featured-item .actions button.collapse p { + display: none; + } } \ No newline at end of file diff --git a/public/assets/css/pages/work/archive.css b/public/assets/css/pages/work/archive.css new file mode 100644 index 0000000..1e71dc1 --- /dev/null +++ b/public/assets/css/pages/work/archive.css @@ -0,0 +1,16 @@ +/* # Overrides */ + +:root { + --primer-color-accent: 3, 255, 219; + --color-accent: rgb(var(--primer-color-accent)); + --hue-accent: 90deg; +} + +vv-shell { + display: flex; + flex-direction: column; + gap: var(--padding); + width: 100%; + max-width: 1200px; + overflow-x: initial; +} \ No newline at end of file diff --git a/public/assets/js/pages/work/archive.js b/public/assets/js/pages/work/archive.js new file mode 100644 index 0000000..12bc846 --- /dev/null +++ b/public/assets/js/pages/work/archive.js @@ -0,0 +1,4 @@ +// Redirect to work page if no href is defined +if (!new URLSearchParams(window.location.search).has("href")) { + new vv.Navigation("/work").navigate(); +} \ No newline at end of file diff --git a/public/assets/media/img/preview-deltaco.avif b/public/assets/media/img/preview-deltaco.avif new file mode 100644 index 0000000..85a0e33 Binary files /dev/null and b/public/assets/media/img/preview-deltaco.avif differ diff --git a/public/assets/media/img/preview-genemate.avif b/public/assets/media/img/preview-genemate.avif new file mode 100644 index 0000000..ad2eb34 Binary files /dev/null and b/public/assets/media/img/preview-genemate.avif differ diff --git a/public/assets/media/img/preview-icellate.avif b/public/assets/media/img/preview-icellate.avif new file mode 100644 index 0000000..67b403f Binary files /dev/null and b/public/assets/media/img/preview-icellate.avif differ diff --git a/public/work.php b/public/work.php index a33f801..e4b83e5 100644 --- a/public/work.php +++ b/public/work.php @@ -49,20 +49,8 @@

Can I put my own website here, is that cheating? Maybe, but I think this site counts as the most important thing I've personally created. I've only used my own libraries and frameworks to create this website, so it kind of works as a live demonstration of many of my web projects bundled together.

-
- - -
- -
-

Silly dabbles

-

I create silly things for fun to challenge myself sometimes, and putting them all on the timeline is not right. So I made an appropriately-themed and named page to highlight most of my "what if I could" projects.

-
-
@@ -83,35 +71,60 @@
- +

🍰

+
+

Still Alive

+

I recreated the end credits from the video game Portal using pure JavaScript and browser windows. It was created using my old [abandoned] animation library and some patience. It's not perfect, it notably has a few time-drifting issues.

+
+ + +
+
+ +
+

web highligts

+
+ + \ No newline at end of file diff --git a/src/Database/Models/Work/Work.php b/src/Database/Models/Work/Work.php index c94f643..f591789 100644 --- a/src/Database/Models/Work/Work.php +++ b/src/Database/Models/Work/Work.php @@ -16,6 +16,8 @@ require_once VV::root("src/Database/Models/Work/Action.php"); class Work extends Model { + public const DATE_FORMAT = "Y-m-d"; + public function __construct(public readonly string $id) { parent::__construct(Endpoints::WORK, [ WorkTable::ID->value => $this->id @@ -34,8 +36,8 @@ return $this->get(WorkTable::SUMMARY->value); } - public function created(): DateTimeImmutable { - return new DateTimeImmutable($this->get(WorkTable::CREATED->value)); + public function created(): \DateTimeImmutable { + return new \DateTimeImmutable($this->get(WorkTable::CREATED->value)); } public function tags(): array {