mirror of
https://codeberg.org/vlw/vlw.se.git
synced 2025-09-13 21:13:40 +02:00
feat: add archived page disclaimer
This commit is contained in:
parent
895ca23909
commit
04d392cd5f
6 changed files with 73 additions and 30 deletions
|
@ -137,12 +137,19 @@ section.featured featured-item .actions {
|
|||
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);
|
||||
|
@ -153,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;
|
||||
}
|
||||
}
|
16
public/assets/css/pages/work/archive.css
Normal file
16
public/assets/css/pages/work/archive.css
Normal file
|
@ -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;
|
||||
}
|
4
public/assets/js/pages/work/archive.js
Normal file
4
public/assets/js/pages/work/archive.js
Normal file
|
@ -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();
|
||||
}
|
|
@ -49,20 +49,8 @@
|
|||
<p>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.</p>
|
||||
<div class="actions">
|
||||
<a href="https://codeberg.org/vlw/vlw.se"><button class="inline">
|
||||
<p>read more</p>
|
||||
<?= VV::embed("public/assets/media/icons/chevron.svg") ?>
|
||||
</button></a>
|
||||
</div>
|
||||
</featured-item>
|
||||
<featured-item>
|
||||
<div class="title">
|
||||
<?= VV::embed("public/assets/media/icons/vw.svg") ?>
|
||||
</div>
|
||||
<h3>Silly dabbles</h3>
|
||||
<p>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.</p>
|
||||
<div class="actions">
|
||||
<a href="/playground"><button class="inline">
|
||||
<p>playground</p>
|
||||
<?= VV::embed("public/assets/media/icons/codeberg.svg") ?>
|
||||
<p>view source</p>
|
||||
<?= VV::embed("public/assets/media/icons/chevron.svg") ?>
|
||||
</button></a>
|
||||
</div>
|
||||
|
@ -81,6 +69,24 @@
|
|||
</button></a>
|
||||
</div>
|
||||
</featured-item>
|
||||
<featured-item>
|
||||
<div class="title">
|
||||
<h3>🍰</h3>
|
||||
</div>
|
||||
<h3>Still Alive</h3>
|
||||
<p>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.</p>
|
||||
<div class="actions">
|
||||
<a href="https://blob.vlw.se/0195b948-8cd3-7d7f-8b21-e992a621a4c1.webm" target="_blank"><button class="inline">
|
||||
<?= VV::embed("public/assets/media/icons/star.svg") ?>
|
||||
<p>demo video</p>
|
||||
<?= VV::embed("public/assets/media/icons/chevron.svg") ?>
|
||||
</button></a>
|
||||
<a href="https://codeberg.org/vlw/still-alive" target="_blank"><button class="inline collapse">
|
||||
<p>view source</p>
|
||||
<?= VV::embed("public/assets/media/icons/codeberg.svg") ?>
|
||||
</button></a>
|
||||
</div>
|
||||
</featured-item>
|
||||
</section>
|
||||
<section class="heading">
|
||||
<h1>web highligts</h1>
|
||||
|
@ -88,36 +94,28 @@
|
|||
<section class="featured">
|
||||
<featured-item>
|
||||
<div class="title">
|
||||
<a href="https://icellate.srv.vlw.se" target="_blank"><img src="/assets/media/img/preview-icellate.avif"></a>
|
||||
<a href="/work/archive?href=https://icellate.srv.vlw.se"><img src="/assets/media/img/preview-icellate.avif"></a>
|
||||
</div>
|
||||
<h3>Website for iCellate Medical</h3>
|
||||
<p><?= (new Work("icellate/website"))->summary() ?></p>
|
||||
<div class="actions">
|
||||
<a href="https://icellate.srv.vlw.se" target="_blank"><button class="inline">
|
||||
<a href="/work/archive?href=https://icellate.srv.vlw.se"><button class="inline">
|
||||
<?= VV::embed("public/assets/media/icons/star.svg") ?>
|
||||
<p>open</p>
|
||||
<?= VV::embed("public/assets/media/icons/chevron.svg") ?>
|
||||
</button></a>
|
||||
<a href="/work/icellate/website"><button class="inline">
|
||||
<p>read more</p>
|
||||
<p>preview</p>
|
||||
<?= VV::embed("public/assets/media/icons/chevron.svg") ?>
|
||||
</button></a>
|
||||
</div>
|
||||
</featured-item>
|
||||
<featured-item>
|
||||
<div class="title">
|
||||
<a href="https://genemate.srv.vlw.se" target="_blank"><img src="/assets/media/img/preview-genemate.avif"></a>
|
||||
<a href="/work/archive?href=https://genemate.srv.vlw.se"><img src="/assets/media/img/preview-genemate.avif"></a>
|
||||
</div>
|
||||
<h3>Website for GeneMate by iCellate</h3>
|
||||
<p><?= (new Work("icellate/genemate"))->summary() ?></p>
|
||||
<div class="actions">
|
||||
<a href="https://genemate.srv.vlw.se" target="_blank"><button class="inline">
|
||||
<a href="/work/archive?href=https://genemate.srv.vlw.se"><button class="inline">
|
||||
<?= VV::embed("public/assets/media/icons/star.svg") ?>
|
||||
<p>open</p>
|
||||
<?= VV::embed("public/assets/media/icons/chevron.svg") ?>
|
||||
</button></a>
|
||||
<a href="/work/icellate/genemate"><button class="inline">
|
||||
<p>read more</p>
|
||||
<p>preview</p>
|
||||
<?= VV::embed("public/assets/media/icons/chevron.svg") ?>
|
||||
</button></a>
|
||||
</div>
|
||||
|
|
12
public/work/archive.php
Normal file
12
public/work/archive.php
Normal file
|
@ -0,0 +1,12 @@
|
|||
<style><?= VV::css("public/assets/css/pages/work/archive") ?></style>
|
||||
<section>
|
||||
<h1>This is an archived website!</h1>
|
||||
<p>You're about to view an archived version of this website on my domain. Everything you see, and all features that are available on the archived website have been recreated to simulate the real behavior as closely as possible. Some features can unfortunately not be simulated properly and have been disabled completely. No actions you take on this website have any real effects.</p>
|
||||
</section>
|
||||
<section>
|
||||
<a href="<?= $_GET["href"] ?? "" ?>" target="_blank"><button class="inline solid">
|
||||
<p>Proceed to website</p>
|
||||
<?= VV::embed("public/assets/media/icons/chevron.svg") ?>
|
||||
</button></a>
|
||||
</section>
|
||||
<script><?= VV::js("public/assets/js/pages/work/archive") ?></script>
|
|
@ -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 {
|
||||
|
|
Loading…
Add table
Reference in a new issue