In this PR we add icon buttons in the header to quickly access the my contact page, Forgejo-, and Codeberg profile. I drew a Forgejo and Codeberg logo that I'm not 100% satisfied with. The buttons have a `title` attribute now which explains what the buttons represent. However, I would like to reuse the tooltip hover effect from the contact and about page. These effects are now repeating themselves on both pages, so we should merge them into a partial that can be included on each page, or just load it with the shell element.
<video src="/attachments/12429d26-cbfa-4e63-8ecd-fb1d1d270932" title="Inspelning 2026-04-05 140702" controls></video>
_The `title` tooltip is not visible in the recording, but they're there._

Reviewed-on: https://codeberg.org/vlw/vlw.se/pulls/73
In this PR we move all of the CSS and JavaScript assets from the public assets directory to a new directory in the project root. The main reason for this is that I would like to believe this makes them easier to find. Since all CSS and JS is bundled with each page anyways there is no need to access these directly from a public directory. The main argument against this I think would be "transparency". We already run this site with `display_php_source=true` in Vegvisir (so page source code can be inspected by appending `.php` to the end of a url. But there is of course no reason to trust that it's the actual source code.
Reviewed-on: https://codeberg.org/vlw/vlw.se/pulls/72
In this PR we remove the loading spinner that we have between page loads. It might seem like a good thing to have, but the `vv-loading` attribute in the version of Vegvisir this site is running is broken and only displays the spinner for a few frames regardless if the page has been loaded or not. We really need #66. When that finally happens, I will design a better loading screen anyways.
Reviewed-on: https://codeberg.org/vlw/vlw.se/pulls/67

In this PR we add some simple main page navigation buttons that appear in the header on screen sizes that can accommodate them. The header looked pretty empty before on desktop screens, so this at least adds some functionality to that space.
Reviewed-on: https://codeberg.org/vlw/vlw.se/pulls/58
Closes#17
Also fixed this placeholder text contrast issue in Safari

to:

Reviewed-on: https://codeberg.org/vlw/vlw.se/pulls/38
More changes to the about page texts and also made the "interests explosion" effect center on pointer position instead of center of span, which caused some glitchy looking behavior when the text wraps. Also added "digital archiving" to the interests list!
Reviewed-on: https://codeberg.org/vlw/vlw.se/pulls/32
This PR refactors some texts on the about page (again), and also a adds two new endpoints for a database table that I have now made public that tracks the coffee cups I've had. The endpoint itself is not public now but I might make a page (something like `/about/coffee`) that presents it in a not-ugly way.
Reviewed-on: https://codeberg.org/vlw/vlw.se/pulls/28
The PR is a huge refactor of all Reflect and Vegvisir code. I've merged the API and "Front-end" codebases together into the same root, this will allow for both Reflect and Vegvisir to use the same resources. Not only that, but I've also added proper database modeling with actual OOP inheritance for database tables.
Reviewed-on: https://codeberg.org/vlw/vlw.se/pulls/23
Redesign of the buttons I use on the site here and there. This changes all: `button.inline` and `button.inline.solid`
I think the new buttons look more "cutesy" or "cozy" with my hand drawn little icons, soft gradients and shadows, and larger size.
# Old



# New



Reviewed-on: https://codeberg.org/vlw/vlw.se/pulls/22
Replaces this section on the `/about` page:

with:

I will replace and fix the colors of the buttons after #15 is merged.
Reviewed-on: https://codeberg.org/vlw/vlw.se/pulls/14
This PR adds basic support for the upcoming release Vegvisir 3.1
Reviewed-on: https://codeberg.org/vlw/vlw.se/pulls/11
Co-authored-by: Victor Westerlund <victor.vesterlund@gmail.com>
Co-committed-by: Victor Westerlund <victor.vesterlund@gmail.com>