Compare commits

..

231 Commits

Author SHA1 Message Date
semantic-release-bot d1816c1b6a chore(release): 3.21.0 [skip ci]
# [3.21.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.20.2...3.21.0) (2026-05-22)

### Bug Fixes

* **deps:** pin dependency @preline/collapse to 4.2.0 ([84e6b14](84e6b146c8))
* **deps:** update astro monorepo ([c92b1f2](c92b1f2801))
* **deps:** update dependency @iconify-json/simple-icons to v1.2.82 ([518777c](518777c5d4))
* **deps:** update dependency @iconify-json/simple-icons to v1.2.83 ([2bf8bee](2bf8bee7a1))
* **deps:** update dependency astro to v6.3.3 ([4ef9e92](4ef9e92d5d))
* **deps:** update dependency astro to v6.3.5 ([81cb4b2](81cb4b21af))
* **deps:** update dependency astro to v6.3.6 ([4ab3bd0](4ab3bd076f))
* **deps:** update dependency astro to v6.3.7 ([9b5317b](9b5317bec7))
* **deps:** update dependency marked to v18.0.4 ([df8a605](df8a60573a))
* **deps:** update dependency shiki to v4.1.0 ([b26605c](b26605cc3b))

### Features

* add compression features ([f279c58](f279c58b28))
* add custom font ([c7493ad](c7493ad09c))
* change collapse to preline ([b7787cb](b7787cb723))
* change font ([b42a697](b42a6974f6))
* change large card hover ([29017b1](29017b1d75))
* change timeline to preline ([3e5aa65](3e5aa65840))
* remove apps page ([34e39ac](34e39aca23))
* replace slider with preline marquee ([901a641](901a641b59))
* update background colors ([f71b28a](f71b28adf0))
* update preline ([d408309](d408309775))
2026-05-22 00:08:52 +00:00
alexlebens 89118578f5 Merge pull request 'chore(deps): update dependency typescript-eslint to v8.59.3' (#472) from main into release
release-image / build (push) Successful in 1m29s
release-image / guarddog (push) Successful in 1m47s
release-image / semantic-release (push) Successful in 47s
release-image / release-harbor (push) Successful in 10m34s
release-image / release-gitea (push) Successful in 6m52s
Reviewed-on: #472
2026-05-22 00:06:28 +00:00
alexlebens f279c58b28 feat: add compression features
test-build / guarddog (push) Successful in 2m16s
test-build / build (push) Successful in 3m5s
2026-05-21 19:02:12 -05:00
alexlebens ec59cad1a5 Merge pull request 'fix(deps): pin dependency @preline/collapse to 4.2.0' (#470) from renovate/pin-dependencies into main
test-build / guarddog (push) Successful in 1m6s
test-build / build (push) Successful in 1m30s
Reviewed-on: #470
2026-05-21 23:47:36 +00:00
renovate-bot 3af4a77674 Merge pull request 'fix(deps): update dependency astro to v6.3.7' (#471) from renovate/astro-monorepo into main
test-build / guarddog (push) Successful in 2m0s
test-build / build (push) Successful in 2m33s
2026-05-21 23:21:33 +00:00
renovate-bot 9b5317bec7 fix(deps): update dependency astro to v6.3.7
renovate/stability-days Updates have not met minimum release age requirement
test-build / guarddog (pull_request) Successful in 2m25s
test-build / build (pull_request) Successful in 2m36s
2026-05-21 23:21:08 +00:00
renovate-bot 84e6b146c8 fix(deps): pin dependency @preline/collapse to 4.2.0
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 2m37s
test-build / guarddog (pull_request) Successful in 2m44s
2026-05-21 23:20:59 +00:00
alexlebens b42a6974f6 feat: change font
test-build / guarddog (push) Successful in 1m10s
test-build / build (push) Successful in 1m33s
2026-05-21 18:17:00 -05:00
alexlebens 29017b1d75 feat: change large card hover
test-build / build (push) Successful in 1m36s
test-build / guarddog (push) Failing after 12m8s
2026-05-21 18:08:42 -05:00
alexlebens 3e5aa65840 feat: change timeline to preline 2026-05-21 17:53:28 -05:00
alexlebens b7787cb723 feat: change collapse to preline
test-build / build (push) Successful in 2m38s
test-build / guarddog (push) Successful in 1m21s
2026-05-21 16:50:53 -05:00
alexlebens 28ed0f2fa0 Merge pull request 'chore(deps): update docker/build-push-action action to v7.2.0' (#469) from renovate/docker-build-push-action-7.x into main
Reviewed-on: #469
2026-05-21 21:28:26 +00:00
alexlebens c7493ad09c feat: add custom font
test-build / guarddog (push) Successful in 1m14s
test-build / build (push) Successful in 1m56s
2026-05-21 16:22:19 -05:00
alexlebens 34e39aca23 feat: remove apps page 2026-05-21 16:01:33 -05:00
alexlebens f71b28adf0 feat: update background colors
test-build / guarddog (push) Successful in 1m12s
test-build / build (push) Successful in 1m30s
2026-05-21 15:57:34 -05:00
alexlebens 901a641b59 feat: replace slider with preline marquee
test-build / guarddog (push) Successful in 1m12s
test-build / build (push) Successful in 1m28s
2026-05-21 14:57:43 -05:00
renovate-bot 3e25b27c46 chore(deps): update docker/build-push-action action to v7.2.0
test-build / guarddog (pull_request) Successful in 1m32s
test-build / build (pull_request) Successful in 1m41s
2026-05-21 18:01:02 +00:00
alexlebens d408309775 feat: update preline 2026-05-20 20:19:53 -05:00
alexlebens 05c6ec41d4 Merge pull request 'fix(deps): update dependency shiki to v4.1.0' (#467) from renovate/shiki-monorepo into main
test-build / guarddog (push) Successful in 1m7s
test-build / build (push) Successful in 1m15s
Reviewed-on: #467
2026-05-21 01:17:28 +00:00
renovate-bot b26605cc3b fix(deps): update dependency shiki to v4.1.0
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 1m13s
test-build / build (pull_request) Failing after 12m49s
2026-05-21 00:03:03 +00:00
renovate-bot 7f91b3c8e8 Merge pull request 'fix(deps): update dependency astro to v6.3.6' (#468) from renovate/astro-monorepo into main
test-build / guarddog (push) Successful in 2m12s
test-build / build (push) Successful in 3m25s
2026-05-20 18:01:03 +00:00
renovate-bot 4ab3bd076f fix(deps): update dependency astro to v6.3.6
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 1m16s
test-build / guarddog (pull_request) Successful in 2m10s
2026-05-20 18:00:48 +00:00
alexlebens 58355e764e Merge pull request 'chore(deps): update dependency eslint to v10.4.0' (#462) from renovate/eslint-monorepo into main
test-build / build (push) Successful in 1m29s
test-build / guarddog (push) Successful in 2m24s
Reviewed-on: #462
2026-05-20 17:06:28 +00:00
renovate-bot 36cb8655c2 chore(deps): update dependency eslint to v10.4.0
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 2m15s
test-build / build (pull_request) Successful in 3m26s
2026-05-20 12:01:42 +00:00
renovate-bot 8b58fe33a8 Merge pull request 'fix(deps): update dependency marked to v18.0.4' (#466) from renovate/marked-18.x into main
test-build / guarddog (push) Successful in 1m58s
test-build / build (push) Successful in 2m8s
2026-05-20 06:02:04 +00:00
renovate-bot 8a41c2e8a4 Merge pull request 'fix(deps): update dependency @iconify-json/simple-icons to v1.2.83' (#465) from renovate/iconify-json-simple-icons-1.x into main
test-build / build (push) Successful in 1m31s
test-build / guarddog (push) Successful in 2m21s
2026-05-20 06:01:57 +00:00
renovate-bot df8a60573a fix(deps): update dependency marked to v18.0.4
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 1m34s
test-build / build (pull_request) Successful in 4m0s
2026-05-20 06:01:43 +00:00
renovate-bot 2bf8bee7a1 fix(deps): update dependency @iconify-json/simple-icons to v1.2.83
renovate/stability-days Updates have met minimum release age requirement
test-build / build (pull_request) Successful in 1m35s
test-build / guarddog (pull_request) Successful in 2m7s
2026-05-20 06:01:34 +00:00
renovate-bot c7e525ab4b Merge pull request 'fix(deps): update dependency astro to v6.3.5' (#464) from renovate/astro-monorepo into main
test-build / build (push) Successful in 1m21s
test-build / guarddog (push) Successful in 1m36s
2026-05-19 18:01:33 +00:00
renovate-bot 827c2afe47 Merge pull request 'chore(deps): update dependency typescript-eslint to v8.59.4' (#463) from renovate/typescript-eslint-monorepo into main
test-build / guarddog (push) Successful in 1m20s
test-build / build (push) Successful in 3m43s
2026-05-19 18:01:26 +00:00
renovate-bot 81cb4b21af fix(deps): update dependency astro to v6.3.5
renovate/stability-days Updates have met minimum release age requirement
test-build / build (pull_request) Successful in 1m44s
test-build / guarddog (pull_request) Successful in 2m25s
2026-05-19 18:01:23 +00:00
renovate-bot 9be8a64851 chore(deps): update dependency typescript-eslint to v8.59.4
renovate/stability-days Updates have met minimum release age requirement
test-build / build (pull_request) Successful in 4m6s
test-build / guarddog (pull_request) Successful in 5m32s
2026-05-19 18:01:05 +00:00
renovate-bot e161b786cc Merge pull request 'fix(deps): update dependency astro to v6.3.3' (#461) from renovate/astro-monorepo into main
test-build / guarddog (push) Successful in 2m18s
test-build / build (push) Successful in 2m28s
renovate / renovate (push) Successful in 1m11s
2026-05-15 18:02:42 +00:00
renovate-bot 4ef9e92d5d fix(deps): update dependency astro to v6.3.3
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 1m53s
test-build / build (pull_request) Successful in 3m0s
2026-05-15 18:02:24 +00:00
renovate-bot ee13896366 Merge pull request 'fix(deps): update astro monorepo' (#460) from renovate/astro-monorepo into main
test-build / guarddog (push) Successful in 2m10s
test-build / build (push) Successful in 3m48s
renovate / renovate (push) Successful in 2m33s
2026-05-14 18:03:13 +00:00
renovate-bot c92b1f2801 fix(deps): update astro monorepo
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 3m11s
test-build / build (pull_request) Successful in 3m39s
2026-05-14 18:02:17 +00:00
renovate-bot 858e4d484b Merge pull request 'chore(deps): update dependency bun to v1.3.14' (#459) from renovate/bun-1.x into main
renovate / renovate (push) Successful in 2m50s
2026-05-14 06:01:41 +00:00
renovate-bot 3b97243ca9 chore(deps): update dependency bun to v1.3.14
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 1m45s
test-build / build (pull_request) Successful in 2m36s
2026-05-14 06:01:26 +00:00
renovate-bot e71eb5100f Merge pull request 'fix(deps): update dependency @iconify-json/simple-icons to v1.2.82' (#458) from renovate/iconify-json-simple-icons-1.x into main
test-build / build (push) Successful in 1m41s
test-build / guarddog (push) Successful in 1m47s
renovate / renovate (push) Successful in 1m14s
2026-05-13 06:01:41 +00:00
renovate-bot 518777c5d4 fix(deps): update dependency @iconify-json/simple-icons to v1.2.82
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 1m38s
test-build / build (pull_request) Successful in 1m50s
2026-05-13 06:01:28 +00:00
renovate-bot 9b2bceba88 Merge pull request 'chore(deps): update dependency typescript-eslint to v8.59.3' (#457) from renovate/typescript-eslint-monorepo into main
test-build / guarddog (push) Successful in 1m22s
test-build / build (push) Successful in 1m45s
renovate / renovate (push) Successful in 1m16s
2026-05-12 18:02:08 +00:00
renovate-bot 57a2f1f11b chore(deps): update dependency typescript-eslint to v8.59.3
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 1m50s
test-build / build (pull_request) Successful in 7m0s
2026-05-12 18:01:58 +00:00
semantic-release-bot 217e0447a8 chore(release): 3.20.2 [skip ci]
## [3.20.2](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.20.1...3.20.2) (2026-05-10)

### Bug Fixes

* **content:** directus published update [skip ci] ([93708da](93708dac75))
2026-05-10 19:46:21 +00:00
gitea-bot 93708dac75 fix(content): directus published update [skip ci] 2026-05-10 19:45:55 +00:00
semantic-release-bot d9d935818c chore(release): 3.20.1 [skip ci]
## [3.20.1](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.20.0...3.20.1) (2026-05-10)

### Bug Fixes

* **content:** directus published update [skip ci] ([2ad4697](2ad4697825))
2026-05-10 00:44:44 +00:00
gitea-bot 2ad4697825 fix(content): directus published update [skip ci] 2026-05-10 00:44:22 +00:00
semantic-release-bot 5d37b99c80 chore(release): 3.20.0 [skip ci]
# [3.20.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.19.4...3.20.0) (2026-05-08)

### Bug Fixes

* **deps:** update astro monorepo ([e1339a5](e1339a53a2))
* **deps:** update dependency @iconify-json/simple-icons to v1.2.81 ([e0b72bf](e0b72bfcbd))
* **deps:** update dependency astro to v6.2.2 ([28724b4](28724b4024))

### Features

* allow processing svg ([20ef569](20ef5697f1))
* merge ([d56ea50](d56ea50663))
* reduce top transparency effect ([6815d5a](6815d5a68b))
2026-05-08 23:30:20 +00:00
alexlebens ec9518a236 Merge pull request 'main' (#454) from main into release
release-image / build (push) Successful in 1m48s
release-image / guarddog (push) Successful in 1m50s
release-image / semantic-release (push) Successful in 43s
release-image / release-harbor (push) Successful in 4m35s
release-image / release-gitea (push) Successful in 7m56s
Reviewed-on: #454
2026-05-08 23:27:56 +00:00
alexlebens d56ea50663 feat: merge
test-build / guarddog (push) Successful in 1m39s
test-build / build (push) Successful in 2m6s
renovate / renovate (push) Successful in 1m56s
2026-05-08 18:23:45 -05:00
alexlebens 20ef5697f1 feat: allow processing svg 2026-05-08 18:23:45 -05:00
renovate-bot e0b72bfcbd fix(deps): update dependency @iconify-json/simple-icons to v1.2.81 2026-05-08 18:23:45 -05:00
renovate-bot 28724b4024 fix(deps): update dependency astro to v6.2.2 2026-05-08 18:23:45 -05:00
renovate-bot 6520a0f50b chore(deps): update dependency typescript-eslint to v8.59.2 2026-05-08 18:23:44 -05:00
alexlebens f8c7c3f997 chore(deps): update deps 2026-05-08 18:23:44 -05:00
alexlebens 6815d5a68b feat: reduce top transparency effect 2026-05-08 18:23:44 -05:00
renovate-bot e1339a53a2 fix(deps): update astro monorepo 2026-05-08 18:23:44 -05:00
semantic-release-bot c3f521f80a chore(release): 3.19.4 [skip ci]
## [3.19.4](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.19.3...3.19.4) (2026-05-08)

### Bug Fixes

* **content:** directus published update [skip ci] ([457a896](457a8969f3))
2026-05-08 22:55:13 +00:00
gitea-bot 457a8969f3 fix(content): directus published update [skip ci] 2026-05-08 22:55:01 +00:00
semantic-release-bot a602f94270 chore(release): 3.19.3 [skip ci]
## [3.19.3](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.19.2...3.19.3) (2026-05-08)

### Bug Fixes

* **content:** directus published update [skip ci] ([8996928](8996928b1e))
2026-05-08 22:37:13 +00:00
gitea-bot 8996928b1e fix(content): directus published update [skip ci] 2026-05-08 22:36:56 +00:00
semantic-release-bot 0529e57ab9 chore(release): 3.19.2 [skip ci]
## [3.19.2](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.19.1...3.19.2) (2026-04-28)

### Bug Fixes

* **content:** directus published update [skip ci] ([a7be4ae](a7be4ae7a7))
2026-04-28 21:05:38 +00:00
gitea-bot a7be4ae7a7 fix(content): directus published update [skip ci] 2026-04-28 21:05:17 +00:00
semantic-release-bot f53f5bcfe4 chore(release): 3.19.1 [skip ci]
## [3.19.1](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.19.0...3.19.1) (2026-04-28)

### Bug Fixes

* **content:** directus published update [skip ci] ([9226512](922651232b))
2026-04-28 00:42:25 +00:00
gitea-bot 922651232b fix(content): directus published update [skip ci] 2026-04-28 00:42:11 +00:00
semantic-release-bot 3503441db3 chore(release): 3.19.0 [skip ci]
# [3.19.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.8...3.19.0) (2026-04-28)

### Bug Fixes

* **deps:** update dependency @iconify-json/simple-icons to v1.2.80 ([9dffaee](9dffaee53b))

### Features

* use ceiling for math instead of percision ([dd74d06](dd74d06c57))
2026-04-28 00:17:18 +00:00
alexlebens 1c2e2e840e Merge pull request 'main' (#446) from main into release
release-image / build (push) Successful in 1m52s
release-image / guarddog (push) Successful in 2m46s
release-image / semantic-release (push) Successful in 47s
release-image / release-harbor (push) Successful in 8m46s
release-image / release-gitea (push) Successful in 3m43s
Reviewed-on: #446
2026-04-28 00:13:47 +00:00
renovate-bot 20740e79c3 chore(deps): update dependency prettier-plugin-tailwindcss to v0.8.0
test-build / build (push) Successful in 1m33s
test-build / guarddog (push) Successful in 1m54s
renovate / renovate (push) Successful in 1m27s
2026-04-27 19:08:35 -05:00
renovate-bot 60948ffd1e chore(deps): update dependency typescript-eslint to v8.59.1 2026-04-27 19:08:35 -05:00
renovate-bot 9dffaee53b fix(deps): update dependency @iconify-json/simple-icons to v1.2.80 2026-04-27 19:08:35 -05:00
alexlebens dd74d06c57 feat: use ceiling for math instead of percision 2026-04-27 19:08:35 -05:00
semantic-release-bot ce6ce345c3 chore(release): 3.18.8 [skip ci]
## [3.18.8](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.7...3.18.8) (2026-04-27)

### Bug Fixes

* **content:** directus published update [skip ci] ([a1290e5](a1290e51ef))
2026-04-27 22:33:15 +00:00
gitea-bot a1290e51ef fix(content): directus published update [skip ci] 2026-04-27 22:33:01 +00:00
semantic-release-bot ebace86194 chore(release): 3.18.7 [skip ci]
## [3.18.7](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.6...3.18.7) (2026-04-27)

### Bug Fixes

* **content:** directus published update [skip ci] ([7a383f6](7a383f6344))
2026-04-27 01:58:09 +00:00
gitea-bot 7a383f6344 fix(content): directus published update [skip ci] 2026-04-27 01:57:21 +00:00
semantic-release-bot 42a8b408a5 chore(release): 3.18.6 [skip ci]
## [3.18.6](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.5...3.18.6) (2026-04-26)

### Bug Fixes

* **deps:** update astro monorepo ([5ec2cc6](5ec2cc6f31))
* **deps:** update dependency @iconify-json/simple-icons to v1.2.79 ([4090d4c](4090d4c849))
* **deps:** update dependency astro to v6.1.8 ([54047db](54047db5a8))
* **deps:** update dependency marked to v18.0.1 ([f52a34e](f52a34edd7))
* **deps:** update dependency marked to v18.0.2 ([1a2508c](1a2508c949))
* **deps:** update tailwindcss monorepo to v4.2.3 ([7a72b60](7a72b60098))
* **deps:** update tailwindcss monorepo to v4.2.4 ([a9de8c4](a9de8c442e))
2026-04-26 00:45:05 +00:00
alexlebens 7795accd5c Merge pull request 'main' (#442) from main into release
release-image / guarddog (push) Successful in 1m50s
release-image / build (push) Successful in 5m48s
release-image / semantic-release (push) Successful in 2m11s
release-image / release-harbor (push) Successful in 6m42s
release-image / release-gitea (push) Successful in 4m7s
Reviewed-on: #442
2026-04-26 00:37:40 +00:00
alexlebens 2211a76bba Merge pull request 'chore(deps): update dependency typescript-eslint to v8.59.0' (#437) from renovate/typescript-eslint-monorepo into main
test-build / guarddog (push) Successful in 4m19s
test-build / build (push) Successful in 6m47s
renovate / renovate (push) Successful in 46s
Reviewed-on: #437
2026-04-24 15:17:59 +00:00
renovate-bot 9e39296234 chore(deps): update dependency typescript-eslint to v8.59.0
renovate/stability-days Updates have met minimum release age requirement
test-build / build (pull_request) Successful in 1m37s
test-build / guarddog (pull_request) Successful in 2m21s
2026-04-24 12:02:05 +00:00
renovate-bot 0c86680712 Merge pull request 'chore(deps): update dependency prettier-plugin-tailwindcss to v0.7.3' (#441) from renovate/prettier-plugin-tailwindcss-0.x into main
test-build / build (push) Successful in 1m52s
test-build / guarddog (push) Successful in 3m8s
renovate / renovate (push) Successful in 1m44s
2026-04-24 06:02:37 +00:00
renovate-bot 12539342ec chore(deps): update dependency prettier-plugin-tailwindcss to v0.7.3
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 5m1s
test-build / guarddog (pull_request) Successful in 5m3s
2026-04-24 06:02:19 +00:00
renovate-bot c48545c452 Merge pull request 'fix(deps): update astro monorepo' (#440) from renovate/astro-monorepo into main
test-build / guarddog (push) Successful in 3m1s
test-build / build (push) Successful in 3m43s
renovate / renovate (push) Successful in 2m9s
2026-04-23 00:02:38 +00:00
renovate-bot 5ec2cc6f31 fix(deps): update astro monorepo
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 2m20s
test-build / guarddog (pull_request) Successful in 2m28s
2026-04-23 00:02:01 +00:00
renovate-bot cfb09dbdcf Merge pull request 'fix(deps): update tailwindcss monorepo to v4.2.4' (#439) from renovate/tailwindcss-monorepo into main
test-build / guarddog (push) Successful in 1m26s
test-build / build (push) Successful in 2m31s
renovate / renovate (push) Successful in 1m52s
2026-04-22 18:02:37 +00:00
renovate-bot a9de8c442e fix(deps): update tailwindcss monorepo to v4.2.4
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 2m16s
test-build / build (pull_request) Successful in 2m57s
2026-04-22 18:02:17 +00:00
renovate-bot 38dca4d820 Merge pull request 'fix(deps): update tailwindcss monorepo to v4.2.3' (#438) from renovate/tailwindcss-monorepo into main
test-build / guarddog (push) Successful in 58s
test-build / build (push) Successful in 2m54s
renovate / renovate (push) Successful in 1m43s
2026-04-22 00:03:52 +00:00
renovate-bot 7a72b60098 fix(deps): update tailwindcss monorepo to v4.2.3
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 1m55s
test-build / build (pull_request) Successful in 5m41s
2026-04-22 00:03:22 +00:00
renovate-bot 39cf74d795 Merge pull request 'chore(deps): update dependency bun to v1.3.13' (#436) from renovate/bun-1.x into main
renovate / renovate (push) Successful in 3m14s
2026-04-21 00:01:58 +00:00
renovate-bot 06b528e34d chore(deps): update dependency bun to v1.3.13
renovate/stability-days Updates have not met minimum release age requirement
test-build / guarddog (pull_request) Successful in 2m7s
test-build / build (pull_request) Successful in 4m6s
2026-04-21 00:01:45 +00:00
alexlebens 78a5f65470 Merge pull request 'chore(deps): update actions/setup-node action to v6.4.0' (#435) from renovate/actions-setup-node-6.x into main
renovate / renovate (push) Successful in 2m0s
Reviewed-on: #435
2026-04-20 21:57:49 +00:00
renovate-bot 33cb21a83b chore(deps): update actions/setup-node action to v6.4.0
test-build / guarddog (pull_request) Successful in 3m3s
test-build / build (pull_request) Successful in 6m2s
2026-04-20 06:01:43 +00:00
renovate-bot cc3a918981 Merge pull request 'fix(deps): update dependency @iconify-json/simple-icons to v1.2.79' (#434) from renovate/iconify-json-simple-icons-1.x into main
test-build / guarddog (push) Successful in 6m11s
test-build / build (push) Successful in 10m28s
renovate / renovate (push) Successful in 53s
2026-04-20 00:02:22 +00:00
renovate-bot 4090d4c849 fix(deps): update dependency @iconify-json/simple-icons to v1.2.79
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 6m10s
test-build / guarddog (pull_request) Successful in 6m17s
2026-04-20 00:02:10 +00:00
alexlebens 46bb296e69 Merge pull request 'chore(deps): update dependency node to v24.15.0' (#428) from renovate/node-24.x into main
renovate / renovate (push) Successful in 1m59s
Reviewed-on: #428
2026-04-19 22:44:16 +00:00
semantic-release-bot 36a2896eda chore(release): 3.18.5 [skip ci]
## [3.18.5](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.4...3.18.5) (2026-04-19)

### Bug Fixes

* **content:** directus published update [skip ci] ([a23a7af](a23a7afa6b))
2026-04-19 22:17:55 +00:00
gitea-bot a23a7afa6b fix(content): directus published update [skip ci] 2026-04-19 22:16:27 +00:00
renovate-bot 0db7e7f163 chore(deps): update dependency node to v24.15.0
test-build / guarddog (pull_request) Successful in 1m18s
test-build / build (pull_request) Successful in 4m2s
2026-04-19 06:02:49 +00:00
semantic-release-bot 5e6c5b5861 chore(release): 3.18.4 [skip ci]
## [3.18.4](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.3...3.18.4) (2026-04-19)

### Bug Fixes

* **content:** directus published update [skip ci] ([0bb6f91](0bb6f91205))
2026-04-19 02:18:29 +00:00
gitea-bot 0bb6f91205 fix(content): directus published update [skip ci] 2026-04-19 02:17:57 +00:00
semantic-release-bot c60821fc45 chore(release): 3.18.3 [skip ci]
## [3.18.3](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.2...3.18.3) (2026-04-19)

### Bug Fixes

* **content:** directus published update [skip ci] ([845cf53](845cf53c02))
2026-04-19 02:08:07 +00:00
gitea-bot 845cf53c02 fix(content): directus published update [skip ci] 2026-04-19 02:07:51 +00:00
renovate-bot 8d657bd528 Merge pull request 'fix(deps): update dependency marked to v18.0.2' (#433) from renovate/marked-18.x into main
test-build / guarddog (push) Successful in 1m7s
test-build / build (push) Successful in 1m38s
renovate / renovate (push) Successful in 1m38s
2026-04-19 00:02:50 +00:00
renovate-bot 1a2508c949 fix(deps): update dependency marked to v18.0.2
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 2m15s
test-build / guarddog (pull_request) Successful in 2m37s
2026-04-19 00:02:28 +00:00
renovate-bot 8c1b9a6239 Merge pull request 'fix(deps): update dependency astro to v6.1.8' (#432) from renovate/astro-monorepo into main
test-build / build (push) Has been cancelled
test-build / guarddog (push) Has been cancelled
2026-04-19 00:02:26 +00:00
renovate-bot 54047db5a8 fix(deps): update dependency astro to v6.1.8
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 2m15s
test-build / guarddog (pull_request) Successful in 2m51s
2026-04-19 00:02:12 +00:00
renovate-bot 7abb543adc Merge pull request 'fix(deps): update dependency marked to v18.0.1' (#431) from renovate/marked-18.x into main
test-build / build (push) Successful in 6m50s
test-build / guarddog (push) Successful in 7m35s
renovate / renovate (push) Successful in 1m49s
2026-04-18 06:03:05 +00:00
renovate-bot f52a34edd7 fix(deps): update dependency marked to v18.0.1
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 48s
test-build / build (pull_request) Successful in 2m4s
2026-04-18 06:02:43 +00:00
renovate-bot fb332279fe Merge pull request 'chore(deps): update dependency eslint to v10.2.1' (#430) from renovate/eslint-monorepo into main
test-build / build (push) Has been cancelled
test-build / guarddog (push) Has been cancelled
2026-04-18 06:02:40 +00:00
renovate-bot d7bfe9051f chore(deps): update dependency eslint to v10.2.1
renovate/stability-days Updates have not met minimum release age requirement
test-build / guarddog (pull_request) Successful in 2m2s
test-build / build (pull_request) Failing after 11m45s
2026-04-18 06:02:17 +00:00
alexlebens 87bd3a16b6 Merge pull request 'chore(deps): pin dependencies' (#427) from renovate/pin-dependencies into main
renovate / renovate (push) Successful in 2m11s
Reviewed-on: #427
2026-04-18 00:14:33 +00:00
renovate-bot bd54e684ad Merge pull request 'chore(deps): update dependency typescript to v6.0.3' (#429) from renovate/typescript-6.x into main
test-build / guarddog (push) Successful in 1m14s
test-build / build (push) Successful in 2m51s
2026-04-18 00:02:08 +00:00
renovate-bot a5c1d54068 chore(deps): update dependency typescript to v6.0.3
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 1m46s
test-build / build (pull_request) Successful in 6m29s
2026-04-18 00:01:44 +00:00
renovate-bot b4af6404ca chore(deps): pin dependencies
test-build / guarddog (pull_request) Successful in 6m0s
test-build / build (pull_request) Successful in 7m43s
2026-04-17 00:05:53 +00:00
alexlebens 7165e82520 Merge pull request 'ci: reconfigure' (#426) from main into release
Reviewed-on: #426
2026-04-16 16:41:43 +00:00
semantic-release-bot 1c3389658d chore(release): 3.18.2 [skip ci]
## [3.18.2](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.1...3.18.2) (2026-04-16)

### Bug Fixes

* **content:** directus published update [skip ci] ([29d3c01](29d3c01ace))
* **deps:** update astro monorepo ([38ccd67](38ccd671aa))
2026-04-16 16:41:15 +00:00
alexlebens 70779b5adf ci: reconfigure
renovate / renovate (push) Successful in 1m25s
2026-04-16 11:40:44 -05:00
gitea-bot 29d3c01ace fix(content): directus published update [skip ci] 2026-04-16 16:40:37 +00:00
alexlebens 7f5e4282d5 Merge pull request 'main' (#425) from main into release
release-image / debug (push) Successful in 29s
release-image / semantic-release (push) Has been cancelled
release-image / release-harbor (push) Has been cancelled
release-image / release-gitea (push) Has been cancelled
release-image / guarddog (push) Has been cancelled
release-image / build (push) Has been cancelled
Reviewed-on: #425
2026-04-16 16:31:41 +00:00
alexlebens a123e2b219 ci: reconfigure 2026-04-16 11:28:10 -05:00
alexlebens d05e517509 ci: reconfigure 2026-04-16 11:22:51 -05:00
alexlebens 175f917e6e ci: reconfigure 2026-04-16 11:22:51 -05:00
renovate-bot 38ccd671aa fix(deps): update astro monorepo 2026-04-16 11:22:51 -05:00
alexlebens 03d754b2a7 ci: reconfigure 2026-04-16 11:22:51 -05:00
alexlebens 95a9b90ffa ci: reconfigure 2026-04-16 11:22:51 -05:00
alexlebens 7c07384f97 ci: reconfigure 2026-04-16 11:22:51 -05:00
alexlebens 7784e0200e ci: reconfigure 2026-04-16 11:22:51 -05:00
renovate-bot bad6c0ba3d chore(deps): update dependency prettier to v3.8.3
renovate/stability-days Updates have not met minimum release age requirement
test-build / guarddog (pull_request) Successful in 3m25s
test-build / build (pull_request) Successful in 5m0s
2026-04-16 00:02:23 +00:00
semantic-release-bot 1a4e9e3c29 chore(release): 3.18.1 [skip ci]
## [3.18.1](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.0...3.18.1) (2026-04-14)

### Bug Fixes

* **deps:** update dependency @iconify-json/simple-icons to v1.2.78 ([7eb01be](7eb01bee58))
* **deps:** update dependency astro to v6.1.6 ([b6886aa](b6886aa7aa))
2026-04-14 00:35:14 +00:00
alexlebens 587f2b3849 Merge pull request 'main' (#422) from main into release
release-image / guarddog (push) Successful in 1m38s
release-image / build (push) Successful in 3m16s
release-image / semantic-release (push) Successful in 54s
release-image / release-harbor (push) Successful in 8m8s
release-image / release-gitea (push) Successful in 5m50s
Reviewed-on: #422
2026-04-14 00:31:20 +00:00
renovate-bot acf0e27639 Merge pull request 'fix(deps): update dependency astro to v6.1.6' (#421) from renovate/astro-monorepo into main
test-build / guarddog (push) Successful in 1m56s
test-build / build (push) Successful in 2m43s
renovate / renovate (push) Successful in 2m39s
2026-04-13 22:04:03 +00:00
renovate-bot b6886aa7aa fix(deps): update dependency astro to v6.1.6
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 3m12s
test-build / guarddog (pull_request) Successful in 3m41s
2026-04-13 22:03:09 +00:00
renovate-bot d4afd74c75 Merge pull request 'fix(deps): update dependency @iconify-json/simple-icons to v1.2.78' (#420) from renovate/iconify-json-simple-icons-1.x into main
test-build / build (push) Has been cancelled
test-build / guarddog (push) Has been cancelled
2026-04-13 22:03:06 +00:00
renovate-bot 7eb01bee58 fix(deps): update dependency @iconify-json/simple-icons to v1.2.78
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 2m47s
test-build / guarddog (pull_request) Successful in 2m40s
2026-04-13 22:02:57 +00:00
renovate-bot ff507805c2 Merge pull request 'chore(deps): update dependency typescript-eslint to v8.58.2' (#419) from renovate/typescript-eslint-monorepo into main
test-build / build (push) Has been cancelled
test-build / guarddog (push) Has been cancelled
2026-04-13 22:02:53 +00:00
renovate-bot 22c5de76c2 chore(deps): update dependency typescript-eslint to v8.58.2
renovate/stability-days Updates have not met minimum release age requirement
test-build / guarddog (pull_request) Successful in 1m27s
test-build / build (pull_request) Successful in 2m29s
2026-04-13 22:02:32 +00:00
semantic-release-bot de5adb17aa chore(release): 3.18.0 [skip ci]
# [3.18.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.17.0...3.18.0) (2026-04-12)

### Features

* updat to details ([dd0d001](dd0d001114))
2026-04-12 00:12:36 +00:00
alexlebens d9a428381e Merge pull request 'main' (#418) from main into release
release-image / build (push) Successful in 2m12s
release-image / guarddog (push) Successful in 2m54s
release-image / semantic-release (push) Successful in 42s
release-image / release-harbor (push) Successful in 6m24s
release-image / release-gitea (push) Successful in 5m55s
Reviewed-on: #418
2026-04-12 00:09:17 +00:00
alexlebens dd0d001114 feat: updat to details
test-build / build (push) Successful in 1m32s
test-build / guarddog (push) Successful in 2m5s
renovate / renovate (push) Successful in 1m8s
2026-04-11 18:49:56 -05:00
renovate-bot 38bc7bc2e9 Merge pull request 'chore(deps): update dependency prettier to v3.8.2' (#417) from renovate/prettier-3.x into main
test-build / guarddog (push) Successful in 54s
test-build / build (push) Successful in 2m18s
renovate / renovate (push) Successful in 53s
2026-04-11 06:01:32 +00:00
renovate-bot eb9f3d8cb0 chore(deps): update dependency prettier to v3.8.2
renovate/stability-days Updates have met minimum release age requirement
test-build / build (pull_request) Successful in 2m58s
test-build / guarddog (pull_request) Successful in 3m5s
2026-04-11 06:01:24 +00:00
renovate-bot e2e6de13bb Merge pull request 'chore(deps): update dependency bun to v1.3.12' (#416) from renovate/bun-1.x into main 2026-04-11 06:01:15 +00:00
renovate-bot d87103a330 chore(deps): update dependency bun to v1.3.12
renovate/stability-days Updates have met minimum release age requirement
test-build / build (pull_request) Successful in 2m2s
test-build / guarddog (pull_request) Successful in 3m22s
2026-04-11 06:01:06 +00:00
semantic-release-bot 6f7aa97a4c chore(release): 3.17.0 [skip ci]
# [3.17.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.16.1...3.17.0) (2026-04-10)

### Bug Fixes

* **deps:** update dependency @iconify-json/simple-icons to v1.2.77 ([6a9bb19](6a9bb19183))
* **deps:** update dependency @playform/compress to v0.2.3 ([78b81fe](78b81fe896))
* **deps:** update dependency astro to v6.1.3 ([3cd6e26](3cd6e26526))
* **deps:** update dependency astro to v6.1.4 ([fb4d04a](fb4d04ab95))
* **deps:** update dependency astro to v6.1.5 ([89cde5d](89cde5de53))
* **deps:** update dependency astro-compress to v2.4.1 ([a65222e](a65222e90e))
* **deps:** update dependency marked to v17.0.6 ([22ce17c](22ce17cbff))
* **deps:** update dependency marked to v18 ([3ebf411](3ebf41187b))

### Features

* update tsconfig for v8 ([3b28ae3](3b28ae3b5c))
2026-04-10 01:10:21 +00:00
alexlebens 94a37c2c89 Merge pull request 'main' (#415) from main into release
release-image / build (push) Successful in 1m55s
release-image / guarddog (push) Successful in 2m13s
release-image / semantic-release (push) Successful in 49s
release-image / release-harbor (push) Successful in 13m29s
release-image / release-gitea (push) Successful in 4m37s
Reviewed-on: #415
2026-04-10 01:07:39 +00:00
alexlebens 8928f606d8 Merge pull request 'chore(deps): update dependency eslint-plugin-astro to v1.7.0' (#414) from renovate/eslint-plugin-astro-1.x into main
test-build / guarddog (push) Successful in 3m17s
test-build / build (push) Successful in 1m29s
renovate / renovate (push) Successful in 1m20s
Reviewed-on: #414
2026-04-08 22:09:55 +00:00
renovate-bot 99fc1ffab9 chore(deps): update dependency eslint-plugin-astro to v1.7.0
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 1m33s
test-build / guarddog (pull_request) Successful in 1m40s
2026-04-08 21:39:25 +00:00
renovate-bot 687aaba784 Merge pull request 'fix(deps): update dependency astro to v6.1.5' (#413) from renovate/astro-monorepo into main
test-build / guarddog (push) Successful in 1m42s
test-build / build (push) Successful in 5m6s
2026-04-08 21:16:40 +00:00
renovate-bot 89cde5de53 fix(deps): update dependency astro to v6.1.5
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 2m14s
test-build / guarddog (pull_request) Successful in 2m12s
2026-04-08 21:16:23 +00:00
renovate-bot cd387d990c Merge pull request 'chore(deps): update dependency typescript-eslint to v8.58.1' (#412) from renovate/typescript-eslint-monorepo into main
test-build / build (push) Has been cancelled
test-build / guarddog (push) Has been cancelled
2026-04-08 21:16:20 +00:00
renovate-bot a7b658efe2 chore(deps): update dependency typescript-eslint to v8.58.1
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 2m7s
test-build / guarddog (pull_request) Successful in 2m36s
2026-04-08 21:15:53 +00:00
alexlebens ac441f8cef Merge pull request 'fix(deps): update dependency marked to v18' (#410) from renovate/marked-18.x into main
test-build / guarddog (push) Successful in 2m9s
test-build / build (push) Successful in 2m22s
Reviewed-on: #410
2026-04-08 21:13:51 +00:00
alexlebens fbedd7b783 Merge pull request 'fix(deps): update dependency @playform/compress to v0.2.3' (#408) from renovate/playform-compress-0.x into main
test-build / guarddog (push) Successful in 1m17s
test-build / build (push) Successful in 1m45s
Reviewed-on: #408
2026-04-08 21:09:52 +00:00
renovate-bot 78b81fe896 fix(deps): update dependency @playform/compress to v0.2.3
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 1m29s
test-build / build (pull_request) Successful in 1m51s
2026-04-08 18:01:24 +00:00
renovate-bot 3ebf41187b fix(deps): update dependency marked to v18
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 1m18s
test-build / build (pull_request) Successful in 1m28s
2026-04-08 12:02:21 +00:00
alexlebens 3b28ae3b5c feat: update tsconfig for v8
test-build / build (push) Successful in 1m31s
test-build / guarddog (push) Successful in 1m38s
renovate / renovate (push) Successful in 1m13s
2026-04-07 21:07:37 -05:00
renovate-bot b2f9d02384 Merge pull request 'fix(deps): update dependency astro-compress to v2.4.1' (#409) from renovate/astro-compress-2.x into main
test-build / guarddog (push) Successful in 8m21s
test-build / build (push) Failing after 12m51s
2026-04-08 00:03:33 +00:00
renovate-bot a65222e90e fix(deps): update dependency astro-compress to v2.4.1
renovate/stability-days Updates have not met minimum release age requirement
test-build / guarddog (pull_request) Successful in 7m3s
test-build / build (pull_request) Failing after 21m1s
2026-04-08 00:03:16 +00:00
renovate-bot c6daefa62e Merge pull request 'fix(deps): update dependency @iconify-json/simple-icons to v1.2.77' (#407) from renovate/iconify-json-simple-icons-1.x into main
test-build / build (push) Has been cancelled
test-build / guarddog (push) Has been cancelled
2026-04-08 00:02:52 +00:00
renovate-bot 6a9bb19183 fix(deps): update dependency @iconify-json/simple-icons to v1.2.77
renovate/stability-days Updates have not met minimum release age requirement
test-build / guarddog (pull_request) Successful in 46s
test-build / build (pull_request) Failing after 18m51s
2026-04-08 00:02:40 +00:00
renovate-bot 2cd4baf3d8 Merge pull request 'fix(deps): update dependency astro to v6.1.4' (#406) from renovate/astro-monorepo into main
test-build / guarddog (push) Successful in 10m4s
test-build / build (push) Successful in 17m38s
renovate / renovate (push) Successful in 3m20s
2026-04-07 15:24:25 +00:00
renovate-bot fb4d04ab95 fix(deps): update dependency astro to v6.1.4
renovate/stability-days Updates have met minimum release age requirement
test-build / build (pull_request) Failing after 2m7s
test-build / guarddog (pull_request) Successful in 5m2s
2026-04-07 15:23:53 +00:00
renovate-bot e76cfbcb75 Merge pull request 'fix(deps): update dependency marked to v17.0.6' (#405) from renovate/marked-17.x into main
test-build / build (push) Successful in 2m31s
test-build / guarddog (push) Successful in 2m16s
renovate / renovate (push) Successful in 2m40s
2026-04-06 00:02:32 +00:00
renovate-bot 22ce17cbff fix(deps): update dependency marked to v17.0.6
renovate/stability-days Updates have not met minimum release age requirement
test-build / guarddog (pull_request) Successful in 3m8s
test-build / build (pull_request) Successful in 5m23s
2026-04-06 00:02:15 +00:00
alexlebens 207b1da5c3 Merge pull request 'chore(deps): update dependency eslint to v10.2.0' (#404) from renovate/eslint-monorepo into main
test-build / guarddog (push) Successful in 56s
test-build / build (push) Successful in 1m53s
renovate / renovate (push) Successful in 2m14s
Reviewed-on: #404
2026-04-05 21:06:05 +00:00
renovate-bot 204f475478 chore(deps): update dependency eslint to v10.2.0
renovate/stability-days Updates have met minimum release age requirement
test-build / build (pull_request) Successful in 3m29s
test-build / guarddog (pull_request) Successful in 4m30s
2026-04-05 00:02:35 +00:00
renovate-bot 254d503d74 Merge pull request 'fix(deps): update dependency astro to v6.1.3' (#403) from renovate/astro-monorepo into main
test-build / guarddog (push) Successful in 50s
test-build / build (push) Successful in 2m23s
renovate / renovate (push) Successful in 1m8s
2026-04-03 00:02:27 +00:00
renovate-bot 3cd6e26526 fix(deps): update dependency astro to v6.1.3
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 35s
test-build / build (pull_request) Failing after 1m53s
2026-04-03 00:02:07 +00:00
semantic-release-bot 1602e25c81 chore(release): 3.16.1 [skip ci]
## [3.16.1](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.16.0...3.16.1) (2026-04-01)

### Bug Fixes

* **deps:** pin dependencies ([08f0ea5](08f0ea532a))
* **deps:** update astro monorepo ([dabc584](dabc58463b))
2026-04-01 22:35:58 +00:00
alexlebens a39e51e15b Merge pull request 'main' (#402) from main into release
release-image / guarddog (push) Successful in 5m1s
release-image / build (push) Successful in 8m5s
release-image / semantic-release (push) Successful in 6m37s
release-image / release-harbor (push) Successful in 10m41s
release-image / release-gitea (push) Successful in 3m10s
renovate / renovate (push) Successful in 1m58s
Reviewed-on: #402
2026-04-01 22:03:32 +00:00
alexlebens 87da868082 Merge pull request 'fix(deps): update astro monorepo (major)' (#389) from renovate/major-astro-monorepo into main
test-build / guarddog (push) Successful in 42s
test-build / build (push) Successful in 2m22s
Reviewed-on: #389
2026-04-01 22:00:06 +00:00
renovate-bot dabc58463b fix(deps): update astro monorepo
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 18s
test-build / build (pull_request) Successful in 1m57s
2026-04-01 21:54:08 +00:00
alexlebens 7086044417 Merge pull request 'fix(deps): pin dependencies' (#400) from renovate/pin-dependencies into main
test-build / guarddog (push) Successful in 26s
test-build / build (push) Successful in 2m9s
Reviewed-on: #400
2026-04-01 21:52:29 +00:00
renovate-bot 08f0ea532a fix(deps): pin dependencies
renovate/stability-days Updates have not met minimum release age requirement
test-build / guarddog (pull_request) Successful in 22s
test-build / build (pull_request) Successful in 2m37s
2026-04-01 21:40:55 +00:00
alexlebens 902842f980 ci: set to pin
test-build / guarddog (push) Successful in 28s
test-build / build (push) Successful in 3m57s
2026-04-01 16:38:50 -05:00
alexlebens 1af4a08f0e ci: add range strategy
test-build / guarddog (push) Successful in 2m45s
test-build / build (push) Has been cancelled
2026-04-01 16:35:24 -05:00
alexlebens ffbcf72d42 ci: set to debug log
renovate / renovate (push) Successful in 55s
2026-03-31 22:11:49 -05:00
semantic-release-bot 3e4511ef7d chore(release): 3.16.0 [skip ci]
# [3.16.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.15.2...3.16.0) (2026-03-26)

### Bug Fixes

* **content:** directus published update [skip ci] ([727fe58](727fe581d3))
* **content:** directus published update [skip ci] ([fa50cba](fa50cba596))
* **content:** directus published update [skip ci] ([e793fc5](e793fc56f1))
* **content:** directus published update [skip ci] ([e45c081](e45c081de3))
* **content:** directus published update [skip ci] ([7f12f54](7f12f54b86))
* **content:** directus published update [skip ci] ([ef6caec](ef6caec647))
* **content:** directus published update [skip ci] ([a43c606](a43c606b9d))
* **content:** directus published update [skip ci] ([fec5f19](fec5f19a70))
* **content:** directus published update [skip ci] ([8ebdd6c](8ebdd6c032))
* **content:** directus published update [skip ci] ([3f0c5df](3f0c5dfe1d))
* **content:** directus published update [skip ci] ([9035634](90356345e9))
* **content:** directus published update [skip ci] ([339ede3](339ede3797))
* **content:** directus published update [skip ci] ([71c5117](71c5117119))
* **content:** directus published update [skip ci] ([5db8c4e](5db8c4edd5))
* **content:** directus published update [skip ci] ([fd2dc6f](fd2dc6f07f))
* **content:** directus published update [skip ci] ([14c5d1e](14c5d1e580))
* **content:** directus published update [skip ci] ([08ce626](08ce626c91))
* **content:** directus published update [skip ci] ([07428b6](07428b6a6e))

### Features

* change check ([1550328](15503285fa))
* change check ([82ba7d4](82ba7d43b2))
* change schedule ([9ee9e6d](9ee9e6d6d0))
* change schedule ([be39b14](be39b144cd))
2026-03-26 01:52:56 +00:00
alexlebens 1dfca4be88 Merge pull request 'main' (#399) from main into release
release-image / guarddog (push) Successful in 23s
release-image / build (push) Successful in 1m19s
release-image / semantic-release (push) Successful in 36s
release-image / release-harbor (push) Successful in 4m41s
release-image / release-gitea (push) Successful in 7m31s
Reviewed-on: #399
2026-03-26 01:51:04 +00:00
alexlebens 20755a4dff Merge pull request 'chore(deps): update dependency typescript to v6' (#396) from renovate/typescript-6.x into main
test-build / build (push) Successful in 1m5s
test-build / guarddog (push) Successful in 1m41s
renovate / renovate (push) Successful in 1m32s
Reviewed-on: #396
2026-03-26 01:48:26 +00:00
gitea-bot 727fe581d3 fix(content): directus published update [skip ci] 2026-03-25 20:46:44 -05:00
alexlebens 88b0dcd0e6 Release (#391)
Reviewed-on: #391
2026-03-25 20:46:44 -05:00
gitea-bot fa50cba596 fix(content): directus published update [skip ci] 2026-03-25 20:46:44 -05:00
gitea-bot e793fc56f1 fix(content): directus published update [skip ci] 2026-03-25 20:46:44 -05:00
alexlebens bcadc0590e Release (#391)
Reviewed-on: #391
2026-03-25 20:46:44 -05:00
gitea-bot e45c081de3 fix(content): directus published update [skip ci] 2026-03-25 20:46:44 -05:00
alexlebens 23dd65b015 Release (#391)
Reviewed-on: #391
2026-03-25 20:46:44 -05:00
gitea-bot 7f12f54b86 fix(content): directus published update [skip ci] 2026-03-25 20:46:44 -05:00
alexlebens 06304112d6 Release (#391)
Reviewed-on: #391
2026-03-25 20:46:44 -05:00
gitea-bot ef6caec647 fix(content): directus published update [skip ci] 2026-03-25 20:46:44 -05:00
gitea-bot a43c606b9d fix(content): directus published update [skip ci] 2026-03-25 20:46:44 -05:00
alexlebens c8e6fc84e7 Release (#391)
Reviewed-on: #391
2026-03-25 20:46:44 -05:00
gitea-bot fec5f19a70 fix(content): directus published update [skip ci] 2026-03-25 20:46:44 -05:00
alexlebens 2736c2168e Release (#391)
Reviewed-on: #391
2026-03-25 20:46:44 -05:00
gitea-bot 8ebdd6c032 fix(content): directus published update [skip ci] 2026-03-25 20:46:44 -05:00
gitea-bot 3f0c5dfe1d fix(content): directus published update [skip ci] 2026-03-25 20:46:44 -05:00
alexlebens feb519c657 Release (#391)
Reviewed-on: #391
2026-03-25 20:46:44 -05:00
gitea-bot 90356345e9 fix(content): directus published update [skip ci] 2026-03-26 01:43:59 +00:00
alexlebens d6140cdd9b Release (#391)
Reviewed-on: #391
2026-03-26 01:43:59 +00:00
gitea-bot 339ede3797 fix(content): directus published update [skip ci] 2026-03-26 01:43:59 +00:00
gitea-bot 71c5117119 fix(content): directus published update [skip ci] 2026-03-26 01:43:59 +00:00
alexlebens fa66c30063 Release (#391)
Reviewed-on: #391
2026-03-26 01:43:59 +00:00
renovate-bot 85b9c44a2b chore(deps): update dependency node to v24.14.1 2026-03-26 01:43:59 +00:00
alexlebens 9ee9e6d6d0 feat: change schedule 2026-03-26 01:43:59 +00:00
gitea-bot 5db8c4edd5 fix(content): directus published update [skip ci] 2026-03-26 01:43:59 +00:00
alexlebens dbea502f90 Release (#391)
Reviewed-on: #391
2026-03-26 01:43:59 +00:00
alexlebens 15503285fa feat: change check 2026-03-26 01:43:59 +00:00
renovate-bot b9ce429b8d chore(deps): update dependency bun to v1.3.11 2026-03-26 01:43:59 +00:00
renovate-bot df167a9e1f chore(deps): update dhi.io/bun docker tag to v1.3.11 2026-03-26 01:43:59 +00:00
renovate-bot 0897cb25d5 chore(deps): update dependency typescript to v6
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 23s
test-build / build (pull_request) Successful in 1m3s
2026-03-26 00:01:45 +00:00
gitea-bot fd2dc6f07f fix(content): directus published update [skip ci] 2026-03-25 17:02:43 -05:00
alexlebens 2bdbc1f1f8 Release (#391)
Reviewed-on: #391
2026-03-25 17:02:43 -05:00
semantic-release-bot 9e2ef5c49b chore(release): 3.15.2 [skip ci]
## [3.15.2](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.15.1...3.15.2) (2026-03-25)

### Bug Fixes

* **content:** directus published update [skip ci] ([ec05c97](ec05c9741b))
2026-03-25 17:02:43 -05:00
gitea-bot 14c5d1e580 fix(content): directus published update [skip ci] 2026-03-25 17:02:43 -05:00
gitea-bot 08ce626c91 fix(content): directus published update [skip ci] 2026-03-25 17:02:43 -05:00
alexlebens 2c37362120 Release (#391)
Reviewed-on: #391
2026-03-25 17:02:43 -05:00
semantic-release-bot 8678debcb3 chore(release): 3.15.2 [skip ci]
## [3.15.2](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.15.1...3.15.2) (2026-03-25)

### Bug Fixes

* **content:** directus published update [skip ci] ([ec05c97](ec05c9741b))
2026-03-25 21:53:42 +00:00
gitea-bot ec05c9741b fix(content): directus published update [skip ci] 2026-03-25 21:52:48 +00:00
alexlebens 7d1cb5b6bf Merge pull request 'chore(deps): update dependency node to v24.14.1' (#397) from renovate/node-24.x into main
renovate / renovate (push) Successful in 1m7s
Reviewed-on: #397
2026-03-25 16:58:10 +00:00
renovate-bot 3bf446446a chore(deps): update dependency node to v24.14.1
test-build / guarddog (pull_request) Successful in 1m34s
test-build / build (pull_request) Successful in 2m16s
2026-03-25 06:01:23 +00:00
alexlebens be39b144cd feat: change schedule
renovate / renovate (push) Successful in 36s
2026-03-23 11:02:00 -05:00
semantic-release-bot 8e765f16f5 chore(release): 3.15.1 [skip ci]
## [3.15.1](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.15.0...3.15.1) (2026-03-21)

### Bug Fixes

* **content:** directus published update [skip ci] ([597e1c5](597e1c5924))
2026-03-22 23:15:56 -05:00
gitea-bot 07428b6a6e fix(content): directus published update [skip ci] 2026-03-22 23:15:56 -05:00
semantic-release-bot 2d9606fcef chore(release): 3.15.0 [skip ci]
# [3.15.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.14.0...3.15.0) (2026-03-18)

### Features

* specify boolean ([1236def](1236defba7))
2026-03-22 23:15:56 -05:00
semantic-release-bot 595072a9c6 chore(release): 3.14.0 [skip ci]
# [3.14.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.13.0...3.14.0) (2026-03-17)

### Features

* release for content ([abdb30b](abdb30b0e3))
2026-03-22 23:15:56 -05:00
alexlebens b7f0f03ca2 Release (#391)
Reviewed-on: #391
2026-03-22 23:15:56 -05:00
semantic-release-bot 6983e0abb0 chore(release): 3.15.1 [skip ci]
## [3.15.1](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.15.0...3.15.1) (2026-03-21)

### Bug Fixes

* **content:** directus published update [skip ci] ([597e1c5](597e1c5924))
2026-03-21 00:23:05 +00:00
gitea-bot 597e1c5924 fix(content): directus published update [skip ci] 2026-03-21 00:22:52 +00:00
alexlebens 82ba7d43b2 feat: change check
renovate / renovate (push) Successful in 39s
2026-03-20 19:02:37 -05:00
renovate-bot f6888f8bda Merge pull request 'chore(deps): update dependency bun to v1.3.11' (#395) from renovate/bun-1.x into main
renovate / renovate (push) Successful in 39s
2026-03-19 04:12:21 +00:00
renovate-bot dd0da551b3 chore(deps): update dependency bun to v1.3.11
renovate/stability-days Updates have not met minimum release age requirement
test-build / guarddog (pull_request) Successful in 21s
test-build / build (pull_request) Successful in 1m47s
2026-03-19 04:12:04 +00:00
alexlebens d576f9ab36 Merge pull request 'chore(deps): update dhi.io/bun docker tag to v1.3.11' (#394) from renovate/dhi.io-bun-1.x into main
test-build / guarddog (push) Successful in 26s
renovate / renovate (push) Has been cancelled
test-build / build (push) Successful in 1m40s
Reviewed-on: #394
2026-03-19 04:11:19 +00:00
renovate-bot 65abb422ba chore(deps): update dhi.io/bun docker tag to v1.3.11
test-build / guarddog (pull_request) Successful in 22s
test-build / build (pull_request) Successful in 1m33s
2026-03-19 00:01:57 +00:00
23 changed files with 1681 additions and 1715 deletions
+33 -29
View File
@@ -4,6 +4,10 @@ on:
push: push:
branches: branches:
- release - release
paths-ignore:
- '.gitea/**'
- '*.md'
- 'renovate.json'
workflow_dispatch: workflow_dispatch:
inputs: inputs:
@@ -18,25 +22,25 @@ jobs:
runs-on: ubuntu-js runs-on: ubuntu-js
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6 uses: actions/checkout@v6.0.2
with: with:
ref: release ref: release
- name: Set up Node - name: Set up Node
uses: actions/setup-node@v6 uses: actions/setup-node@v6.4.0
with: with:
node-version: 24.14.0 node-version: 24.15.0
- name: Set up Bun - name: Set up Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2.2.0
with: with:
bun-version: 1.3.10 bun-version: 1.3.14
- name: Install Dependencies - name: Install Dependencies
run: bun install --frozen-lockfile run: bun install --frozen-lockfile
- name: Cache Astro Build - name: Cache Astro Build
uses: actions/cache@v5 uses: actions/cache@v5.0.5
with: with:
path: | path: |
.astro .astro
@@ -71,14 +75,14 @@ jobs:
runs-on: ubuntu-js runs-on: ubuntu-js
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6 uses: actions/checkout@v6.0.2
with: with:
ref: release ref: release
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v6 uses: actions/setup-python@v6.2.0
with: with:
python-version: '3.12' python-version: '3.12.13'
- name: Install GuardDog - name: Install GuardDog
run: | run: |
@@ -108,35 +112,35 @@ jobs:
needs: [ build, guarddog ] needs: [ build, guarddog ]
runs-on: ubuntu-js runs-on: ubuntu-js
if: | if: |
github.event_name != 'workflow_dispatch' || (github.event_name == 'push') ||
inputs['directus-release'] == true (github.event_name == 'workflow_dispatch' && github.event.inputs['directus-release'] == 'true')
outputs: outputs:
new-release-published: ${{ steps.semantic.outputs.new-release-published }} new-release-published: ${{ steps.semantic.outputs.new-release-published }}
new-release-version: ${{ steps.semantic.outputs.new-release-version }} new-release-version: ${{ steps.semantic.outputs.new-release-version }}
new-release-git-tag: ${{ steps.semantic.outputs.new-release-git-tag }} new-release-git-tag: ${{ steps.semantic.outputs.new-release-git-tag }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6 uses: actions/checkout@v6.0.2
with: with:
fetch-depth: 0 fetch-depth: 0
token: ${{ secrets.BOT_TOKEN }} token: ${{ secrets.BOT_TOKEN }}
- name: Prepare Content Patch - name: Prepare Content Patch
if: inputs['directus-release'] == true if: github.event.inputs['directus-release'] == 'true'
run: | run: |
git config user.name "gitea-bot" git config user.name "gitea-bot"
git config user.email "gitea-bot@alexlebens.net" git config user.email "gitea-bot@alexlebens.net"
git commit --allow-empty -m "fix(content): directus published update [skip ci]" git commit --allow-empty -m "fix(content): directus published update [skip ci]"
- name: Set up Node - name: Set up Node
uses: actions/setup-node@v6 uses: actions/setup-node@v6.4.0
with: with:
node-version: 24.14.0 node-version: 24.15.0
- name: Set up Bun - name: Set up Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2.2.0
with: with:
bun-version: 1.3.10 bun-version: 1.3.14
- name: Install Dependencies - name: Install Dependencies
run: bun install --frozen-lockfile run: bun install --frozen-lockfile
@@ -156,19 +160,19 @@ jobs:
if: ${{ needs.semantic-release.outputs.new-release-published == 'true' }} if: ${{ needs.semantic-release.outputs.new-release-published == 'true' }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6 uses: actions/checkout@v6.0.2
with: with:
ref: release ref: release
- name: Login to Harbor Registry - name: Login to Harbor Registry
uses: docker/login-action@v4 uses: docker/login-action@v4.1.0
with: with:
registry: ${{ vars.REGISTRY_HOST }} registry: ${{ vars.REGISTRY_HOST }}
username: ${{ vars.REGISTRY_USER }} username: ${{ vars.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_SECRET }} password: ${{ secrets.REGISTRY_SECRET }}
- name: Login to Docker - name: Login to Docker
uses: docker/login-action@v4 uses: docker/login-action@v4.1.0
with: with:
registry: ${{ vars.DH_REGISTRY }} registry: ${{ vars.DH_REGISTRY }}
username: ${{ secrets.DH_USERNAME }} username: ${{ secrets.DH_USERNAME }}
@@ -181,7 +185,7 @@ jobs:
- name: Set up Docker Buildx - name: Set up Docker Buildx
id: buildx id: buildx
uses: docker/setup-buildx-action@v4 uses: docker/setup-buildx-action@v4.0.0
with: with:
driver: kubernetes driver: kubernetes
driver-opts: | driver-opts: |
@@ -196,7 +200,7 @@ jobs:
- name: Extract Metadata - name: Extract Metadata
id: meta id: meta
uses: docker/metadata-action@v6 uses: docker/metadata-action@v6.0.0
with: with:
images: | images: |
${{ vars.REGISTRY_HOST }}/images/site-profile ${{ vars.REGISTRY_HOST }}/images/site-profile
@@ -209,7 +213,7 @@ jobs:
type=semver,pattern={{major}},value=${{ needs.semantic-release.outputs.new-release-version }} type=semver,pattern={{major}},value=${{ needs.semantic-release.outputs.new-release-version }}
- name: Build and Push Image - name: Build and Push Image
uses: docker/build-push-action@v7 uses: docker/build-push-action@v7.2.0
with: with:
context: . context: .
push: true push: true
@@ -260,19 +264,19 @@ jobs:
needs.semantic-release.outputs.new-release-published == 'true' needs.semantic-release.outputs.new-release-published == 'true'
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6 uses: actions/checkout@v6.0.2
with: with:
ref: release ref: release
- name: Login to Gitea Registry - name: Login to Gitea Registry
uses: docker/login-action@v4 uses: docker/login-action@v4.1.0
with: with:
registry: ${{ vars.REPOSITORY_HOST }} registry: ${{ vars.REPOSITORY_HOST }}
username: ${{ gitea.actor }} username: ${{ gitea.actor }}
password: ${{ secrets.REPOSITORY_TOKEN }} password: ${{ secrets.REPOSITORY_TOKEN }}
- name: Login to Docker - name: Login to Docker
uses: docker/login-action@v4 uses: docker/login-action@v4.1.0
with: with:
registry: ${{ vars.DH_REGISTRY }} registry: ${{ vars.DH_REGISTRY }}
username: ${{ secrets.DH_USERNAME }} username: ${{ secrets.DH_USERNAME }}
@@ -285,7 +289,7 @@ jobs:
- name: Set up Docker Buildx - name: Set up Docker Buildx
id: buildx id: buildx
uses: docker/setup-buildx-action@v4 uses: docker/setup-buildx-action@v4.0.0
with: with:
driver: kubernetes driver: kubernetes
driver-opts: | driver-opts: |
@@ -300,7 +304,7 @@ jobs:
- name: Extract Metadata - name: Extract Metadata
id: meta id: meta
uses: docker/metadata-action@v6 uses: docker/metadata-action@v6.0.0
with: with:
images: | images: |
${{ vars.REPOSITORY_HOST }}/${{ gitea.repository }} ${{ vars.REPOSITORY_HOST }}/${{ gitea.repository }}
@@ -313,7 +317,7 @@ jobs:
type=semver,pattern={{major}},value=${{ needs.semantic-release.outputs.new-release-version }} type=semver,pattern={{major}},value=${{ needs.semantic-release.outputs.new-release-version }}
- name: Build and Push Image - name: Build and Push Image
uses: docker/build-push-action@v7 uses: docker/build-push-action@v7.2.0
with: with:
context: . context: .
push: true push: true
+3 -7
View File
@@ -2,11 +2,7 @@ name: renovate
on: on:
schedule: schedule:
- cron: '@daily' - cron: '0 */6 * * *'
push:
branches:
- main
workflow_dispatch: workflow_dispatch:
@@ -16,7 +12,7 @@ jobs:
container: ghcr.io/renovatebot/renovate:43 container: ghcr.io/renovatebot/renovate:43
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6 uses: actions/checkout@v6.0.2
- name: Renovate - name: Renovate
run: renovate run: renovate
@@ -26,7 +22,7 @@ jobs:
RENOVATE_REPOSITORIES: alexlebens/site-profile RENOVATE_REPOSITORIES: alexlebens/site-profile
RENOVATE_GIT_AUTHOR: Renovate Bot <renovate-bot@alexlebens.net> RENOVATE_GIT_AUTHOR: Renovate Bot <renovate-bot@alexlebens.net>
RENOVATE_REDIS_URL: ${{ vars.RENOVATE_REDIS_URL }} RENOVATE_REDIS_URL: ${{ vars.RENOVATE_REDIS_URL }}
LOG_LEVEL: info LOG_LEVEL: debug
RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }} RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }}
RENOVATE_GIT_PRIVATE_KEY: ${{ secrets.RENOVATE_GIT_PRIVATE_KEY }} RENOVATE_GIT_PRIVATE_KEY: ${{ secrets.RENOVATE_GIT_PRIVATE_KEY }}
RENOVATE_GITHUB_COM_TOKEN: ${{ secrets.RENOVATE_GITHUB_COM_TOKEN }} RENOVATE_GITHUB_COM_TOKEN: ${{ secrets.RENOVATE_GITHUB_COM_TOKEN }}
+9 -9
View File
@@ -17,23 +17,23 @@ jobs:
runs-on: ubuntu-js runs-on: ubuntu-js
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6 uses: actions/checkout@v6.0.2
- name: Set up Node - name: Set up Node
uses: actions/setup-node@v6 uses: actions/setup-node@v6.4.0
with: with:
node-version: 24.14.0 node-version: 24.15.0
- name: Set up Bun - name: Set up Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2.2.0
with: with:
bun-version: 1.3.10 bun-version: 1.3.14
- name: Install Dependencies - name: Install Dependencies
run: bun install --frozen-lockfile run: bun install --frozen-lockfile
- name: Cache Astro Build Cache - name: Cache Astro Build Cache
uses: actions/cache@v5 uses: actions/cache@v5.0.5
with: with:
path: | path: |
.astro .astro
@@ -67,12 +67,12 @@ jobs:
runs-on: ubuntu-js runs-on: ubuntu-js
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6 uses: actions/checkout@v6.0.2
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v6 uses: actions/setup-python@v6.2.0
with: with:
python-version: '3.12' python-version: '3.12.13'
- name: Install GuardDog - name: Install GuardDog
run: | run: |
+244
View File
@@ -1,3 +1,247 @@
# [3.21.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.20.2...3.21.0) (2026-05-22)
### Bug Fixes
* **deps:** pin dependency @preline/collapse to 4.2.0 ([84e6b14](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/84e6b146c89f7b7a94f64ef5e14d431f850eb2e9))
* **deps:** update astro monorepo ([c92b1f2](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/c92b1f2801e85c5782db29e9a75eb78df1a70a41))
* **deps:** update dependency @iconify-json/simple-icons to v1.2.82 ([518777c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/518777c5d4dcdde7690acea136ca23856db8ff1f))
* **deps:** update dependency @iconify-json/simple-icons to v1.2.83 ([2bf8bee](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/2bf8bee7a1d20e857cd95bcb1a61c5742cbe13b3))
* **deps:** update dependency astro to v6.3.3 ([4ef9e92](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/4ef9e92d5d84c9d69bf9e979435b85727fc622f1))
* **deps:** update dependency astro to v6.3.5 ([81cb4b2](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/81cb4b21aff6c9cc73dfba0a4f62ad75faa0d68e))
* **deps:** update dependency astro to v6.3.6 ([4ab3bd0](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/4ab3bd076fb06493a1a6b949dd745e6ef59e1fcd))
* **deps:** update dependency astro to v6.3.7 ([9b5317b](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/9b5317bec7dbd7f1092d18b8d70aed631942086b))
* **deps:** update dependency marked to v18.0.4 ([df8a605](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/df8a60573a70b73e60115cdf10c6c36518ae7bbe))
* **deps:** update dependency shiki to v4.1.0 ([b26605c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/b26605cc3be80d50881d9041dfb20be7ca1f3c8a))
### Features
* add compression features ([f279c58](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/f279c58b282fc1d24f6411548fbba1831e939a96))
* add custom font ([c7493ad](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/c7493ad09c5544090bd92c5fc219101a1f5f0b83))
* change collapse to preline ([b7787cb](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/b7787cb723b6a4dce0ef45e40d84be5869f1e6af))
* change font ([b42a697](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/b42a6974f62cb3aeb3e340d2daef2d621323a158))
* change large card hover ([29017b1](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/29017b1d75801f2142fee281b0ff7e164c4d134a))
* change timeline to preline ([3e5aa65](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/3e5aa658407290a65688e708509be9a724949646))
* remove apps page ([34e39ac](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/34e39aca23070f12cdd00a6774234e590f293156))
* replace slider with preline marquee ([901a641](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/901a641b59689e1a7a4278672b9a23386e8bdace))
* update background colors ([f71b28a](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/f71b28adf06779532b6303568a2b6e3b5020257a))
* update preline ([d408309](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/d408309775015ff30d1a0ddc7a5e095104e6c8bd))
## [3.20.2](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.20.1...3.20.2) (2026-05-10)
### Bug Fixes
* **content:** directus published update [skip ci] ([93708da](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/93708dac752e7fc001fc35d86145896fcfe474d1))
## [3.20.1](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.20.0...3.20.1) (2026-05-10)
### Bug Fixes
* **content:** directus published update [skip ci] ([2ad4697](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/2ad4697825060ecfabf515c45dc8d1acdc07c824))
# [3.20.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.19.4...3.20.0) (2026-05-08)
### Bug Fixes
* **deps:** update astro monorepo ([e1339a5](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e1339a53a2b4c7392991db2179aaf63be1e0e38b))
* **deps:** update dependency @iconify-json/simple-icons to v1.2.81 ([e0b72bf](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e0b72bfcbd89d195669666e01876b2ed50eafb5b))
* **deps:** update dependency astro to v6.2.2 ([28724b4](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/28724b40242d852f42298d0656a5da6e73a1884d))
### Features
* allow processing svg ([20ef569](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/20ef5697f15ff3d045dcd615eddc9887620ed9ea))
* merge ([d56ea50](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/d56ea50663f7fa3a4160ccbc34ac61ecc9838f03))
* reduce top transparency effect ([6815d5a](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/6815d5a68b4f44b1cfc920c32cf14b4e53b5c44f))
## [3.19.4](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.19.3...3.19.4) (2026-05-08)
### Bug Fixes
* **content:** directus published update [skip ci] ([457a896](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/457a8969f3460c5f6d1d652df9941ef56af7e215))
## [3.19.3](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.19.2...3.19.3) (2026-05-08)
### Bug Fixes
* **content:** directus published update [skip ci] ([8996928](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/8996928b1edddafa4585b604e52908dea05042ad))
## [3.19.2](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.19.1...3.19.2) (2026-04-28)
### Bug Fixes
* **content:** directus published update [skip ci] ([a7be4ae](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/a7be4ae7a78311f51f230fb6a7a24b1e751ed502))
## [3.19.1](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.19.0...3.19.1) (2026-04-28)
### Bug Fixes
* **content:** directus published update [skip ci] ([9226512](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/922651232bc3bd035dbc0f035f07c81775df97ca))
# [3.19.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.8...3.19.0) (2026-04-28)
### Bug Fixes
* **deps:** update dependency @iconify-json/simple-icons to v1.2.80 ([9dffaee](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/9dffaee53b84e91c9dd35576f141c23dc2b8e300))
### Features
* use ceiling for math instead of percision ([dd74d06](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/dd74d06c57c6277bb1c2af93cb98de51a4a2fbc2))
## [3.18.8](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.7...3.18.8) (2026-04-27)
### Bug Fixes
* **content:** directus published update [skip ci] ([a1290e5](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/a1290e51ef40a4f468b7a477826d48278fae75c1))
## [3.18.7](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.6...3.18.7) (2026-04-27)
### Bug Fixes
* **content:** directus published update [skip ci] ([7a383f6](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/7a383f6344509ff1acf8ebaac758dece6384c516))
## [3.18.6](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.5...3.18.6) (2026-04-26)
### Bug Fixes
* **deps:** update astro monorepo ([5ec2cc6](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/5ec2cc6f31915b98f80dd065b6a18d78d5064d0d))
* **deps:** update dependency @iconify-json/simple-icons to v1.2.79 ([4090d4c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/4090d4c84939f5296343ff924db5e898e82d2fac))
* **deps:** update dependency astro to v6.1.8 ([54047db](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/54047db5a8f7a05d12d6368e24d75015299a3c03))
* **deps:** update dependency marked to v18.0.1 ([f52a34e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/f52a34edd7f2f1284d36d98af9e155bf93c5b576))
* **deps:** update dependency marked to v18.0.2 ([1a2508c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/1a2508c949c677de3ac91eaf0123bf9caccbf2ea))
* **deps:** update tailwindcss monorepo to v4.2.3 ([7a72b60](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/7a72b60098015555d6b7f046afecf90334ae7c4c))
* **deps:** update tailwindcss monorepo to v4.2.4 ([a9de8c4](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/a9de8c442e28fe7928c89a338f2a93d7ca1fe654))
## [3.18.5](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.4...3.18.5) (2026-04-19)
### Bug Fixes
* **content:** directus published update [skip ci] ([a23a7af](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/a23a7afa6bb5fae0ce4a707df4eb1f9915ef0b51))
## [3.18.4](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.3...3.18.4) (2026-04-19)
### Bug Fixes
* **content:** directus published update [skip ci] ([0bb6f91](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/0bb6f9120528366cbe17ece5046e144f41955771))
## [3.18.3](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.2...3.18.3) (2026-04-19)
### Bug Fixes
* **content:** directus published update [skip ci] ([845cf53](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/845cf53c0270eb4c440f564fbec69626faca15b7))
## [3.18.2](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.1...3.18.2) (2026-04-16)
### Bug Fixes
* **content:** directus published update [skip ci] ([29d3c01](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/29d3c01acea33dd374eb8497f071471b3f9572f9))
* **deps:** update astro monorepo ([38ccd67](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/38ccd671aa7943d47980fdc1d84b6bf1b8c83c07))
## [3.18.1](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.18.0...3.18.1) (2026-04-14)
### Bug Fixes
* **deps:** update dependency @iconify-json/simple-icons to v1.2.78 ([7eb01be](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/7eb01bee58ddf5b1234fc8a6e104cc0e9d88f4bb))
* **deps:** update dependency astro to v6.1.6 ([b6886aa](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/b6886aa7aa0ee9d0a0b8729019baab08615de453))
# [3.18.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.17.0...3.18.0) (2026-04-12)
### Features
* updat to details ([dd0d001](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/dd0d0011143b5845591e2827e747c6422eaba176))
# [3.17.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.16.1...3.17.0) (2026-04-10)
### Bug Fixes
* **deps:** update dependency @iconify-json/simple-icons to v1.2.77 ([6a9bb19](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/6a9bb19183eabf01b32fc569c1206e54aa9cf714))
* **deps:** update dependency @playform/compress to v0.2.3 ([78b81fe](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/78b81fe89642fdd611d658f488dd24bbb9ad144f))
* **deps:** update dependency astro to v6.1.3 ([3cd6e26](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/3cd6e265264e94a03e0337a504650d89d35f8aea))
* **deps:** update dependency astro to v6.1.4 ([fb4d04a](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/fb4d04ab955c5ad366e2abb72f522b9793a7e3bf))
* **deps:** update dependency astro to v6.1.5 ([89cde5d](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/89cde5de537295ba5c41d9068924ecf5d76a1dfd))
* **deps:** update dependency astro-compress to v2.4.1 ([a65222e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/a65222e90e5c4acc611efa3a6b42afdd9ff72c17))
* **deps:** update dependency marked to v17.0.6 ([22ce17c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/22ce17cbff898f5014811a634848287f41d3eedd))
* **deps:** update dependency marked to v18 ([3ebf411](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/3ebf41187b6d9b3a7082ee5da1761afe0792d1bd))
### Features
* update tsconfig for v8 ([3b28ae3](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/3b28ae3b5cb4cfe29a75096da392f2d0f1a67ff4))
## [3.16.1](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.16.0...3.16.1) (2026-04-01)
### Bug Fixes
* **deps:** pin dependencies ([08f0ea5](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/08f0ea532a083783b06ffd4a327c6f5d1ae885da))
* **deps:** update astro monorepo ([dabc584](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/dabc58463bf046febbf96b3dd17ba7e36827af41))
# [3.16.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.15.2...3.16.0) (2026-03-26)
### Bug Fixes
* **content:** directus published update [skip ci] ([727fe58](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/727fe581d3906450d21e42d352fa34e6327f3a0d))
* **content:** directus published update [skip ci] ([fa50cba](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/fa50cba596eedd847efd282cb141ad26c007e7c2))
* **content:** directus published update [skip ci] ([e793fc5](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e793fc56f19fc6f96c3ec3280598e71ee71d5e92))
* **content:** directus published update [skip ci] ([e45c081](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e45c081de38ae0c48167df7560178170137e9ae0))
* **content:** directus published update [skip ci] ([7f12f54](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/7f12f54b86fb89f3ba5ed91b900fd43fb6839294))
* **content:** directus published update [skip ci] ([ef6caec](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ef6caec6476efc870a2e3b30c3b18e2f035eb980))
* **content:** directus published update [skip ci] ([a43c606](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/a43c606b9dc9991e1c066d2e264657ffbf19a83a))
* **content:** directus published update [skip ci] ([fec5f19](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/fec5f19a70a6f16f8cb4d88e74b795dacbda5406))
* **content:** directus published update [skip ci] ([8ebdd6c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/8ebdd6c032725f15b2f45331c227fe71a315894c))
* **content:** directus published update [skip ci] ([3f0c5df](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/3f0c5dfe1d40eb49d18f7d800d2005f2d505623a))
* **content:** directus published update [skip ci] ([9035634](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/90356345e96d96f110b174088071b11cd9981928))
* **content:** directus published update [skip ci] ([339ede3](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/339ede3797e51efc0f63c1d8dcc07eedf99be568))
* **content:** directus published update [skip ci] ([71c5117](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/71c511711916407b963ccd2e6c0571a814e348f3))
* **content:** directus published update [skip ci] ([5db8c4e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/5db8c4edd54a77fc18e29cc654c54b9745779679))
* **content:** directus published update [skip ci] ([fd2dc6f](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/fd2dc6f07f482903cd4edb47941420c0af807af9))
* **content:** directus published update [skip ci] ([14c5d1e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/14c5d1e580759987c27e91c98177ab8db26ce2c2))
* **content:** directus published update [skip ci] ([08ce626](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/08ce626c91aaf8fcea8240dbe580d50195a8a404))
* **content:** directus published update [skip ci] ([07428b6](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/07428b6a6e5e9b787835849766d46b56cc2812a7))
### Features
* change check ([1550328](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/15503285faff56680d1c4e62b4d97f5ab5a40eeb))
* change check ([82ba7d4](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/82ba7d43b2fead0ab10d41380a29317779948bf4))
* change schedule ([9ee9e6d](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/9ee9e6d6d0749a9dbfc2b9137b42039b19ac57df))
* change schedule ([be39b14](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/be39b144cde4ad278044dd7ab43661c8cb4e2603))
## [3.15.2](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.15.1...3.15.2) (2026-03-25)
### Bug Fixes
* **content:** directus published update [skip ci] ([ec05c97](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ec05c9741b7b149114107cdd644eb7a99cc34f4e))
## [3.15.1](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.15.0...3.15.1) (2026-03-21)
### Bug Fixes
* **content:** directus published update [skip ci] ([597e1c5](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/597e1c5924b4f42ec35264b0b0de4052a5c62a74))
# [3.15.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.14.0...3.15.0) (2026-03-18) # [3.15.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.14.0...3.15.0) (2026-03-18)
+2 -2
View File
@@ -1,5 +1,5 @@
ARG REGISTRY=dhi.io ARG REGISTRY=dhi.io
FROM ${REGISTRY}/bun:1.3.10-alpine3.22-dev AS builder FROM ${REGISTRY}/bun:1.3.11-alpine3.22-dev AS builder
WORKDIR /app WORKDIR /app
@@ -17,7 +17,7 @@ FROM build-deps AS build
COPY . . COPY . .
RUN bun run build RUN bun run build
FROM ${REGISTRY}/bun:1.3.10-alpine3.22 AS runtime FROM ${REGISTRY}/bun:1.3.11-alpine3.22 AS runtime
WORKDIR /app WORKDIR /app
COPY --from=prod-deps /app/node_modules /app/node_modules COPY --from=prod-deps /app/node_modules /app/node_modules
COPY --from=build /app/dist /app/dist COPY --from=build /app/dist /app/dist
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2025 Alex Lebens Copyright (c) 2026 Alex Lebens
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
+13 -4
View File
@@ -1,4 +1,4 @@
import { defineConfig } from 'astro/config'; import { defineConfig, fontProviders } from 'astro/config';
import node from '@astrojs/node'; import node from '@astrojs/node';
import sitemap from '@astrojs/sitemap'; import sitemap from '@astrojs/sitemap';
@@ -13,6 +13,7 @@ export default defineConfig({
site: getSiteURL(), site: getSiteURL(),
image: { image: {
dangerouslyProcessSVG: true,
remotePatterns: [ remotePatterns: [
{ protocol: 'https', hostname: '*.alexlebens.net' }, { protocol: 'https', hostname: '*.alexlebens.net' },
{ protocol: 'https', hostname: '*.jsdelivr.net' }, { protocol: 'https', hostname: '*.jsdelivr.net' },
@@ -23,6 +24,8 @@ export default defineConfig({
} }
}, },
prefetch: true,
integrations: [ integrations: [
sitemap(), sitemap(),
icon({ icon({
@@ -41,12 +44,12 @@ export default defineConfig({
}), }),
(await import('@playform/compress')).default({ (await import('@playform/compress')).default({
CSS: true, CSS: true,
JavaScript: false, JavaScript: true,
HTML: { HTML: {
'html-minifier-terser': { 'html-minifier-terser': {
collapseWhitespace: true, collapseWhitespace: true,
minifyCSS: false, minifyCSS: true,
minifyJS: false, minifyJS: true,
}, },
}, },
Image: false, Image: false,
@@ -54,6 +57,12 @@ export default defineConfig({
}), }),
], ],
fonts: [{
provider: fontProviders.fontsource(),
name: "Fredoka",
cssVariable: "--font-base",
}],
markdown: { markdown: {
syntaxHighlight: false, syntaxHighlight: false,
}, },
+1042 -1313
View File
File diff suppressed because it is too large Load Diff
+51 -50
View File
@@ -1,7 +1,7 @@
{ {
"name": "site-profile", "name": "site-profile",
"type": "module", "type": "module",
"version": "3.15.0", "version": "3.21.0",
"homepage": "https://www.alexlebens.dev", "homepage": "https://www.alexlebens.dev",
"bugs": { "bugs": {
"url": "https://gitea.alexlebens.dev/alexlebens/site-profile/issues", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/issues",
@@ -29,56 +29,57 @@
"lint:fix": "eslint --fix \"src/**/*.{js,ts,jsx,tsx,astro}\"" "lint:fix": "eslint --fix \"src/**/*.{js,ts,jsx,tsx,astro}\""
}, },
"dependencies": { "dependencies": {
"@astrojs/check": "^0.9.7", "@astrojs/check": "0.9.9",
"@astrojs/node": "^9.5.5", "@astrojs/node": "10.1.1",
"@astrojs/rss": "^4.0.17", "@astrojs/rss": "4.0.18",
"@astrojs/sitemap": "^3.7.1", "@astrojs/sitemap": "3.7.2",
"@directus/sdk": "^21.2.0", "@directus/sdk": "21.3.0",
"@iconify-json/mdi": "^1.2.3", "@iconify-json/mdi": "1.2.3",
"@iconify-json/pajamas": "^1.2.15", "@iconify-json/pajamas": "1.2.15",
"@iconify-json/simple-icons": "^1.2.74", "@iconify-json/simple-icons": "1.2.83",
"@playform/compress": "^0.2.2", "@playform/compress": "0.2.3",
"@swup/astro": "^1.8.0", "@preline/collapse": "4.2.0",
"@tailwindcss/postcss": "^4.2.1", "@swup/astro": "1.8.0",
"@tailwindcss/vite": "^4.2.1", "@tailwindcss/postcss": "4.3.0",
"@types/unist": "^3.0.3", "@tailwindcss/vite": "4.3.0",
"astro": "^5.18.1", "@types/unist": "3.0.3",
"astro-compress": "^2.4.0", "astro": "6.3.7",
"astro-icon": "^1.1.5", "astro-compress": "2.4.1",
"dayjs": "^1.11.20", "astro-icon": "1.1.5",
"markdown-it": "^14.1.1", "dayjs": "1.11.20",
"marked": "^17.0.4", "markdown-it": "14.1.1",
"marked-shiki": "^1.2.1", "marked": "18.0.4",
"mdast-util-to-string": "^4.0.0", "marked-shiki": "1.2.1",
"photoswipe": "^5.4.4", "mdast-util-to-string": "4.0.0",
"preline": "^4.1.2", "photoswipe": "5.4.4",
"reading-time": "^1.5.0", "preline": "4.2.0",
"sharp": "^0.34.5", "reading-time": "1.5.0",
"sharp-ico": "^0.1.5", "sharp": "0.34.5",
"shiki": "^4.0.2", "sharp-ico": "0.1.5",
"tailwindcss": "^4.2.1", "shiki": "4.1.0",
"ultrahtml": "^1.6.0" "tailwindcss": "4.3.0",
"ultrahtml": "1.6.0"
}, },
"devDependencies": { "devDependencies": {
"@saithodev/semantic-release-gitea": "^2.1.0", "@saithodev/semantic-release-gitea": "2.1.0",
"@semantic-release/changelog": "^6.0.3", "@semantic-release/changelog": "6.0.3",
"@semantic-release/commit-analyzer": "^13.0.1", "@semantic-release/commit-analyzer": "13.0.1",
"@semantic-release/git": "^10.0.1", "@semantic-release/git": "10.0.1",
"@semantic-release/npm": "^13.1.5", "@semantic-release/npm": "13.1.5",
"@semantic-release/release-notes-generator": "^14.1.0", "@semantic-release/release-notes-generator": "14.1.1",
"@tailwindcss/forms": "^0.5.11", "@tailwindcss/forms": "0.5.11",
"@tailwindcss/typography": "^0.5.19", "@tailwindcss/typography": "0.5.19",
"@types/markdown-it": "^14.1.2", "@types/markdown-it": "14.1.2",
"eslint": "^10.0.3", "eslint": "10.4.0",
"eslint-config-prettier": "^10.1.8", "eslint-config-prettier": "10.1.8",
"eslint-plugin-astro": "^1.6.0", "eslint-plugin-astro": "1.7.0",
"eslint-plugin-format": "^2.0.1", "eslint-plugin-format": "2.0.1",
"prettier": "^3.8.1", "prettier": "3.8.3",
"prettier-plugin-astro": "^0.14.1", "prettier-plugin-astro": "0.14.1",
"prettier-plugin-tailwindcss": "^0.7.2", "prettier-plugin-tailwindcss": "0.8.0",
"semantic-release": "^25.0.3", "semantic-release": "25.0.3",
"semantic-release-export-data": "^1.2.0", "semantic-release-export-data": "1.2.0",
"typescript": "^5.9.3", "typescript": "6.0.3",
"typescript-eslint": "^8.57.0" "typescript-eslint": "8.59.4"
} }
} }
+2 -1
View File
@@ -5,10 +5,11 @@
"mergeConfidence:all-badges", "mergeConfidence:all-badges",
":rebaseStalePrs" ":rebaseStalePrs"
], ],
"timezone": "US/Central", "timezone": "America/Chicago",
"labels": [], "labels": [],
"prHourlyLimit": 0, "prHourlyLimit": 0,
"prConcurrentLimit": 0, "prConcurrentLimit": 0,
"rangeStrategy": "pin",
"packageRules": [ "packageRules": [
{ {
"description": "Label dependency", "description": "Label dependency",
+1 -1
View File
@@ -30,7 +30,7 @@ const { post } = Astro.props;
inferSize={true} inferSize={true}
/> />
</div> </div>
<div class="flex flex-col justify-center bg-background-card md:bg-transparent group-hover:bg-neutral-100 md:group-hover:bg-transparent dark:group-hover:bg-neutral-800/90 md:dark:group-hover:bg-transparent rounded-b-2xl transition-all duration-300 p-6 gap-4"> <div class="card-base-hidden-md flex flex-col justify-center p-6 gap-4">
<h2 class="card-text-header"> <h2 class="card-text-header">
{post.title} {post.title}
</h2> </h2>
@@ -20,7 +20,7 @@ const { post } = Astro.props;
href={`/blog/${post.slug}`} href={`/blog/${post.slug}`}
data-astro-prefetch data-astro-prefetch
> >
<div class="flex flex-col bg-background-card md:bg-transparent group-hover:bg-neutral-100 md:group-hover:bg-transparent dark:group-hover:bg-neutral-800/90 md:dark:group-hover:bg-transparent rounded-b-2xl transition-all duration-300 p-6 gap-4"> <div class="card-base-hidden-md flex flex-col p-6 gap-4">
<h2 class="card-text-header"> <h2 class="card-text-header">
{post.title} {post.title}
</h2> </h2>
+111 -98
View File
@@ -18,15 +18,15 @@ const experiences = ((await directus.request(
<h3 class="smooth-reveal card-text-header flex relative items-center w-full gap-3 pb-10"> <h3 class="smooth-reveal card-text-header flex relative items-center w-full gap-3 pb-10">
Experience Experience
</h3> </h3>
<ul class="flex flex-col w-full ml-8 pr-8"> <ul class="flex flex-col w-full gap-8">
{experiences.map((experience: Experience) => { {experiences.map((experience: Experience, index: number) => {
const startYear = new Date(experience.startDate).getFullYear(); const startYear = new Date(experience.startDate).getFullYear();
const endYear = experience.endDate != null ? new Date(experience.endDate).getFullYear() : 'Present'; const endYear = experience.endDate != null ? new Date(experience.endDate).getFullYear() : 'Present';
return ( return (
<li class="relative"> <li class="smooth-reveal card-base-hidden flex gap-x-4 -mx-4 md:-mx-8 px-4 md:px-8 py-4 md:py-6">
<div class="smooth-reveal group relative grid sm:grid-cols-18 sm:gap-8 md:gap-6 pb-16"> <div class="w-28 md:w-32 text-end pt-1 shrink-0">
<header class="relative sm:col-span-3 text-header font-semibold text-lg mt-1"> <header class="text-sm md:text-base font-semibold text-header">
<time datetime={experience.startDate} data-title={experience.startDate}> <time datetime={experience.startDate} data-title={experience.startDate}>
{startYear} {startYear}
</time> </time>
@@ -35,115 +35,130 @@ const experiences = ((await directus.request(
{endYear} {endYear}
</time> </time>
</header> </header>
<div class="relative flex flex-col sm:col-span-12 pb-6"> </div>
<div class="absolute bg-accent -translate-x-[1.71rem] rounded-full h-2 w-2 mt-3"/> <div class="relative last:after:hidden after:absolute after:top-6 after:-bottom-2 md:after:-bottom-4 after:inset-s-3.5 after:w-px after:translate-x-[-0.5px] after:bg-divider">
<h3> <div class="relative z-10 size-7 flex justify-center items-center">
<div <div class="size-2 rounded-full bg-accent"></div>
class="inline-flex items-center text-2xl leading-tight font-semibold" </div>
aria-label="{position} - {company}" </div>
> <div class="grow pt-0.5">
<span class="text-header"> <h3>
{experience.position} <span>@</span> <div
{experience.url ? ( class="inline-flex items-center text-2xl leading-tight font-semibold"
<a aria-label="{position} - {company}"
class="hover:text-main" >
href={experience.url} <span class="text-header">
title={`Ver ${experience.name}`} {experience.position} <span>@</span>
target="_blank" {experience.url ? (
> <a
{experience.name} class="hover:text-main"
</a> href={experience.url}
) : ( title={`Ver ${experience.name}`}
<span>{experience.name}</span> target="_blank"
)} >
</span> {experience.name}
</div> </a>
</h3> ) : (
{(experience.location || experience.location_type) && ( <span>{experience.name}</span>
<div class="text-secondary text-sm"> )}
{experience.location} {experience.location && experience.location_type && '-'} {experience.location_type} </span>
</div> </div>
)} </h3>
<div class="text-md mt-4 flex flex-col gap-4" x-data="{ expanded: false }"> {(experience.location || experience.location_type) && (
{experience.summary && ( <div class="text-secondary text-sm">
{experience.location} {experience.location && experience.location_type && '-'} {experience.location_type}
</div>
)}
<div class="text-md mt-4 flex flex-col">
{experience.summary && (
<div class="flex flex-col gap-1 mb-4">
<h4 class="text-header font-semibold">
Summary:
</h4>
<ul class="flex flex-col text-primary list-disc gap-2 [&>li]:ml-4">
<li class="marker:text-main">
{experience.summary}
</li>
</ul>
</div>
)}
{(experience.responsibilities || experience.achievements) && (
<>
<div id={`hs-show-hide-collapse-heading-${index}`} class="hs-collapse hidden w-full overflow-hidden transition-[height] duration-500">
<div class="relative flex flex-col gap-4 pb-4">
{experience.responsibilities && (
<div class="flex flex-col gap-1"> <div class="flex flex-col gap-1">
<h4 class="text-header font-semibold"> <h4 class="text-header font-semibold">
Summary: Responsibilities:
</h4> </h4>
<ul class="flex flex-col text-primary list-disc gap-2 [&>li]:ml-4"> <ul class="flex flex-col text-primary list-disc gap-2 [&>li]:ml-4">
{experience.responsibilities.map(responsibility => (
<li class="marker:text-main"> <li class="marker:text-main">
{experience.summary} {responsibility}
</li> </li>
))}
</ul> </ul>
</div> </div>
)} )}
{(experience.responsibilities || experience.achievements) && ( {experience.achievements && (
<div class="relative flex flex-col gap-4" :class="expanded ? '' : 'mask-[linear-gradient(to_bottom,black_50%,transparent)]'" x-show="expanded" x-collapse.min.50px> <div class="flex flex-col gap-1">
{experience.responsibilities && ( <h4 class="text-header font-semibold">
<div class="flex flex-col gap-1"> Achievements:
<h4 class="text-header font-semibold"> </h4>
Responsibilities: <ul class="flex flex-col text-primary list-disc gap-2 [&>li]:ml-4">
</h4> {experience.achievements.map(achievement => (
<ul class="flex flex-col text-primary list-disc gap-2 [&>li]:ml-4"> <li class="marker:text-main">
{experience.responsibilities.map(responsibility => ( {achievement}
<li class="marker:text-main"> </li>
{responsibility} ))}
</li> </ul>
))}
</ul>
</div>
)}
{experience.achievements && (
<div class="flex flex-col gap-1">
<h4 class="text-header font-semibold">
Achievements:
</h4>
<ul class="flex flex-col text-primary list-disc gap-2 [&>li]:ml-4">
{experience.achievements.map(achievement => (
<li class="marker:text-main">
{achievement}
</li>
))}
</ul>
</div>
)}
</div> </div>
)}
<button @click="expanded = ! expanded" class="group/more flex items-center justify-center text-primary hover:text-primary-hover text-xs underline transition-all gap-1.5 w-fit cursor-pointer"> </div>
<span x-text="expanded ? 'Show less' : 'Show more'"> </div>
Show more <p class="mb-4">
</span> <button
type="button"
class="hs-collapse-toggle inline-flex items-center gap-x-1 text-sm rounded-lg text-primary hover:text-primary-hover disabled:opacity-50 disabled:pointer-events-none"
id={`hs-show-hide-collapse-${index}`}
aria-expanded="false"
aria-controls={`hs-show-hide-collapse-heading-${index}`}
data-hs-collapse={`#hs-show-hide-collapse-heading-${index}`}
>
<span class="hs-collapse-open:hidden">Read more</span>
<span class="hs-collapse-open:block hidden">Read less</span>
<svg <svg
class="group-hover/more:translate-y-0.5 ease-out duration-300 h-4 w-4" class="hs-collapse-open:rotate-180 shrink-0 size-4"
:class="{ 'rotate-180': expanded }"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none" fill="none"
stroke="currentColor" stroke="currentColor"
stroke-width="2" stroke-width="2"
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<polyline points="6 9 12 15 18 9" /> <path d="m6 9 6 6 6-6"/>
</svg> </svg>
</button> </button>
</p>
<ul </>
class="flex print:hidden flex-wrap gap-2 mt-2" )}
aria-label="Technologies used" <ul
> class="flex print:hidden flex-wrap gap-2"
{experience.skills && experience.skills.map(skill => { aria-label="Technologies used"
const iconName = skill.toLowerCase(); >
const skillName = skill.split(':')[1].replace(/^language-/, '').replace(/-/g, ' ').replace(/\b\w/g, (l) => l.toUpperCase()); {experience.skills && experience.skills.map(skill => {
return ( const iconName = skill.toLowerCase();
<li class="flex items-center bg-steel/20 dark:bg-bermuda/20 text-neutral-800 dark:text-neutral-200 text-xs rounded-md border border-solid border-steel/20 dark:border-bermuda/20 gap-1 px-2 py-0.5"> const skillName = skill.split(':')[1].replace(/^language-/, '').replace(/-/g, ' ').replace(/\b\w/g, (l) => l.toUpperCase());
<Icon name={`${iconName}`} class="h-4 w-4" /> <span>{skillName}</span> return (
</li> <li class="flex items-center bg-steel/20 dark:bg-bermuda/20 text-neutral-800 dark:text-neutral-200 text-xs rounded-md border border-solid border-steel/20 dark:border-bermuda/20 gap-1 px-2 py-0.5">
) <Icon name={`${iconName}`} class="h-4 w-4" /> <span>{skillName}</span>
})} </li>
</ul> )
)} })}
</div> </ul>
</div> </div>
</div> </div>
</li> </li>
@@ -152,8 +167,6 @@ const experiences = ((await directus.request(
</ul> </ul>
</section> </section>
<!-- Alpine Plugins --> <script>
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/collapse@3.x.x/dist/cdn.min.js"></script> import "@preline/collapse/index.js";
</script>
<!-- Alpine Core -->
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
+84 -117
View File
@@ -18,150 +18,117 @@ const skills = ((await directus.request(
<h3 class="smooth-reveal card-text-header flex relative items-center w-full gap-3 pb-5"> <h3 class="smooth-reveal card-text-header flex relative items-center w-full gap-3 pb-5">
Skills Skills
</h3> </h3>
<div> <div class="smooth-reveal relative flex flex-col gap-2 mask-[linear-gradient(to_right,transparent,black_10%,black_90%,transparent)] before:pointer-events-none before:absolute before:inset-y-0 before:inset-s-0 before:z-2 before:w-20 after:pointer-events-none after:absolute after:inset-y-0 after:inset-e-0 after:z-2 after:w-20">
<div class="tech-stack-slider relative overflow-hidden py-4 sm:py-8 mask-[linear-gradient(to_right,transparent,black_10%,black_90%,transparent)]"> <div class="flex">
<!-- Main slider container --> <div class="marquee-track-x animate-[marquee-x_120s_linear_infinite] hover:[animation-play-state:paused] flex w-max gap-4 py-10">
<div class="slider-track animate-slide flex"> <div class="flex gap-4">
{[...skills, ...skills, ...skills].map((skill: Skill) => { {[...skills, ...skills, ...skills].map((skill: Skill) => {
return ( return (
<div class="skill-card card-base transform hover:-translate-y-2 hover:scale-105 transition-all duration-300 mx-2 min-w-55 sm:mx-4 sm:min-w-70"> <figure class="skill-card card-base transform hover:-translate-y-2 hover:scale-105 transition-all duration-300 mx-2 min-w-55 sm:mx-4 sm:min-w-70">
<div class="p-4 sm:p-6"> <div class="p-4 sm:p-6">
<div class="flex items-center justify-between mb-4 sm:mb-6"> <div class="flex items-center justify-between mb-4 sm:mb-6">
<div class="flex items-center gap-2 sm:gap-4"> <div class="flex items-center gap-2 sm:gap-4">
<div class="flex items-center justify-center rounded-lg text-primary"> <div class="flex items-center justify-center rounded-lg text-primary">
<Icon name={skill.icon} class="h-8 w-8 sm:h-12 sm:w-12" /> <Icon name={skill.icon} class="h-8 w-8 sm:h-12 sm:w-12" />
</div>
<h3 class="text-neutral-900 dark:text-neutral-100 text-base font-semibold sm:text-xl">
{skill.title}
</h3>
</div> </div>
<h3 class="text-neutral-900 dark:text-neutral-100 text-base font-semibold sm:text-xl"> <span class=" bg-neutral-200 dark:bg-neutral-800 text-neutral-700 dark:text-neutral-300 font-mono text-xs sm:text-sm rounded-full px-2 sm:px-2.5 py-0.5 sm:py-1">
{skill.title} {skill.level}%
</h3> </span>
</div>
<div class="relative bg-stone-500/20 dark:bg-stone-500/20 rounded-full h-1.5 sm:h-2 w-full">
<div
class="progress-bar-animate bg-linear-to-r from-steel via-bermuda to-steel absolute top-0 left-0 h-full rounded-full transition-all duration-1000"
style={`width: ${skill.level}%`}
/>
</div>
<div class="flex justify-between text-secondary font-mono text-[10px] mt-1 sm:mt-2 sm:text-xs">
<span>Beginner</span>
<span>Advanced</span>
</div> </div>
<span class=" bg-neutral-200 dark:bg-neutral-800 text-neutral-700 dark:text-neutral-300 font-mono text-xs sm:text-sm rounded-full px-2 sm:px-2.5 py-0.5 sm:py-1">
{skill.level}%
</span>
</div> </div>
<div class="relative bg-stone-500/20 dark:bg-stone-500/20 rounded-full h-1.5 sm:h-2 w-full overflow-hidden"> </figure>
<div );
class="progress-bar-animate bg-linear-to-r from-steel via-bermuda to-steel absolute top-0 left-0 h-full rounded-full transition-all duration-1000" })}
style={`width: ${skill.level}%`}
/>
</div>
<div class="flex justify-between text-secondary font-mono text-[10px] mt-1 sm:mt-2 sm:text-xs">
<span>Beginner</span>
<span>Advanced</span>
</div>
</div>
</div> </div>
);
})}
</div> </div>
</div> </div>
</div> </div>
</section> </section>
<script> <script>
document.addEventListener('astro:page-load', () => { function initSkillCards() {
function setupInfiniteScroll() { const cards = document.querySelectorAll<HTMLElement>('.skill-card');
const cards = document.querySelectorAll('.skill-card'); if (!cards.length) return;
if (!cards.length) return;
}
setupInfiniteScroll(); cards.forEach((card) => {
// Desktop/Mouse events
const isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0; card.addEventListener('mouseenter', () => {
const cards = document.querySelectorAll('.skill-card'); card.style.setProperty('transition', 'transform 0.1s ease, box-shadow 0.1s ease', 'important');
if (!isTouchDevice) {
cards.forEach((card) => {
card.addEventListener('mousemove', (e) => {
const rect = card.getBoundingClientRect();
const x = e.clientX - rect.left;
const y = e.clientY - rect.top;
const centerX = rect.width / 2;
const centerY = rect.height / 2;
const angleX = (y - centerY) / 15;
const angleY = (centerX - x) / 15;
card.style.transform = `perspective(1000px) rotateX(${angleX}deg) rotateY(${angleY}deg) scale(1.08) translateZ(20px)`;
// Dynamic shadow based on tilt
const shadowX = (x - centerX) / 25;
const shadowY = (y - centerY) / 25;
card.style.boxShadow = `
${shadowX}px ${shadowY}px 20px rgba(0, 0, 0, 0.1),
0 10px 20px rgba(0, 0, 0, 0.05)
`;
});
card.addEventListener('mouseleave', () => {
card.style.transform = '';
card.style.boxShadow = '';
});
}); });
} else {
// Simpler effects for touch devices
cards.forEach((card) => {
card.addEventListener('touchstart', () => {
card.classList.add('is-touched');
});
card.addEventListener('touchend', () => { card.addEventListener('mousemove', (e: MouseEvent) => {
setTimeout(() => { const rect = card.getBoundingClientRect();
card.classList.remove('is-touched'); const x = e.clientX - rect.left;
}, 300); const y = e.clientY - rect.top;
});
const centerX = rect.width / 2;
const centerY = rect.height / 2;
const angleX = (y - centerY) / 15;
const angleY = (centerX - x) / 15;
card.style.setProperty('transform', `perspective(1000px) rotateX(${angleX}deg) rotateY(${angleY}deg) scale(1.08) translateZ(20px)`, 'important');
const shadowX = (x - centerX) / 25;
const shadowY = (y - centerY) / 25;
card.style.setProperty('box-shadow', `
${shadowX}px ${shadowY}px 20px rgba(0, 0, 0, 0.1),
0 10px 20px rgba(0, 0, 0, 0.05)
`, 'important');
}); });
}
}); card.addEventListener('mouseleave', () => {
card.style.removeProperty('transform');
card.style.removeProperty('box-shadow');
card.style.removeProperty('transition');
});
// Mobile/Touch events
card.addEventListener('touchstart', () => {
card.classList.add('is-touched');
}, { passive: true });
card.addEventListener('touchend', () => {
setTimeout(() => {
card.classList.remove('is-touched');
}, 300);
}, { passive: true });
});
}
// Run exactly once on initial load, and again if navigating via Astro View Transitions
initSkillCards();
document.addEventListener('astro:after-swap', initSkillCards);
</script> </script>
<style> <style>
/* Specific css to enable sliding effect */ /* Skill card effects */
.slider-track {
width: fit-content;
animation: scroll 40s linear infinite;
}
@keyframes scroll {
0% {
transform: translateX(0);
}
100% {
transform: translateX(calc(-220px * 6 - 16px * 6));
}
}
@media (min-width: 640px) {
.slider-track {
animation: scroll 80s linear infinite;
}
@keyframes scroll {
0% {
transform: translateX(0);
}
100% {
transform: translateX(calc(-280px * 6 - 32px * 6));
}
}
}
.tech-stack-slider:hover .slider-track {
animation-play-state: paused;
}
.skill-card { .skill-card {
transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275); transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
position: relative; position: relative;
overflow: hidden; overflow: hidden;
transform-style: preserve-3d;
will-change: transform;
} }
.skill-card:hover { .skill-card:hover {
z-index: 10; z-index: 10;
} }
/* Reduce animation complexity on mobile */
@media (max-width: 640px) { @media (max-width: 640px) {
.skill-card { .skill-card {
transition: transition:
@@ -75,7 +75,7 @@ const readingTime = getReadingTime(post.content || '');
</li> </li>
<li class="inline-flex items-center"> <li class="inline-flex items-center">
<span class="shrink-0 overflow-hidden"> <span class="shrink-0 overflow-hidden">
{readingTime.minutes.toPrecision(1)} minutes {Math.ceil(readingTime.minutes)} minutes
</span> </span>
</li> </li>
</ol> </ol>
-1
View File
@@ -13,7 +13,6 @@ export const NavigationLinks: NavigationLink[] = [
{ name: 'Home', url: '/' }, { name: 'Home', url: '/' },
{ name: 'Blog', url: '/blog/' }, { name: 'Blog', url: '/blog/' },
{ name: 'Categories', url: '/categories/' }, { name: 'Categories', url: '/categories/' },
{ name: 'Apps', url: '/apps/' },
{ name: 'About Me', url: '/about/' }, { name: 'About Me', url: '/about/' },
]; ];
+11 -16
View File
@@ -1,4 +1,6 @@
--- ---
import { Font } from "astro:assets";
import { readSingleton } from '@directus/sdk'; import { readSingleton } from '@directus/sdk';
import BaseHead from '@components/BaseHead.astro'; import BaseHead from '@components/BaseHead.astro';
@@ -38,6 +40,8 @@ const normalizeTitle = !title ? global.name : `${title} | ${global.name}`;
structuredData={structuredData} structuredData={structuredData}
/> />
<Font cssVariable="--font-base" />
<!-- Set Theme --> <!-- Set Theme -->
<script is:inline> <script is:inline>
const theme = (() => { const theme = (() => {
@@ -62,14 +66,14 @@ const normalizeTitle = !title ? global.name : `${title} | ${global.name}`;
<script <script
src="/vendor/preline/collapse2.1.0.min.js" src="/vendor/preline/collapse2.1.0.min.js"
is:inline is:inline
/> ></script>
<!-- Rybbit Tracking Snippet --> <!-- Rybbit Tracking Snippet -->
<script <script
src="https://rybbit.alexlebens.dev/api/script.js" src="https://rybbit.alexlebens.dev/api/script.js"
data-site-id={global.rybbit_site_id} data-site-id={global.rybbit_site_id}
defer defer
/> ></script>
</head> </head>
<body class="bg-background selection:bg-yellow-400 m-0 p-0 overflow-hidden"> <body class="bg-background selection:bg-yellow-400 m-0 p-0 overflow-hidden">
@@ -150,16 +154,16 @@ const normalizeTitle = !title ? global.name : `${title} | ${global.name}`;
-webkit-mask-image: linear-gradient( -webkit-mask-image: linear-gradient(
to bottom, to bottom,
transparent 0px, transparent 0px,
transparent 90px, transparent 84px,
black 140px, black 114px,
black 100% black 100%
); );
mask-image: linear-gradient( mask-image: linear-gradient(
to bottom, to bottom,
transparent 0px, transparent 0px,
transparent 90px, transparent 84px,
black 140px, black 114px,
black 100% black 100%
); );
@@ -171,7 +175,7 @@ const normalizeTitle = !title ? global.name : `${title} | ${global.name}`;
.bg { .bg {
animation: slide 25s ease-in-out infinite alternate; animation: slide 25s ease-in-out infinite alternate;
will-change: transform; will-change: transform;
background-image: linear-gradient(-55deg, var(--bg-primary) 33.3%, var(--bg-secondary) 33.3%, var(--bg-secondary) 66.6%, var(--bg-tertiary) 66.6%); background-image: linear-gradient(-55deg, var(--color-background-1) 33.3%, var(--color-background-2) 33.3%, var(--color-background-2) 66.6%, var(--color-background-3) 66.6%);
filter: blur(40px); filter: blur(40px);
top: 0; top: 0;
bottom: 0; bottom: 0;
@@ -180,15 +184,6 @@ const normalizeTitle = !title ? global.name : `${title} | ${global.name}`;
opacity: .5; opacity: .5;
position: fixed; position: fixed;
z-index: -1; z-index: -1;
--bg-primary: #e5e5e5;
--bg-secondary: #dce3eb;
--bg-tertiary: #f4f6f8;
}
:global(.dark) .bg {
--bg-primary: #3b3836;
--bg-secondary: #332f2e;
--bg-tertiary: #44403c;
} }
.bg2 { .bg2 {
-39
View File
@@ -1,39 +0,0 @@
---
import { readSingleton } from '@directus/sdk';
import HeroSection from '@components/sections/HeroSection.astro';
import ApplicationSection from '@components/sections/ApplicationSection.astro';
import BaseLayout from '@layouts/BaseLayout.astro';
import directus from '@lib/directus';
const global = await directus.request(readSingleton('site_global'));
---
<BaseLayout
title="Applications"
description={global.about_applications}
structuredData={{
'@context': 'https://schema.org',
'@type': 'WebPage',
inLanguage: 'en-US',
'@id': Astro.url.href,
url: Astro.url.href,
name: `Applications | ${global.name}`,
description: global.about_applications,
isPartOf: {
'@type': 'WebSite',
url: global.site_url,
name: global.name,
description: global.about,
},
}}
>
<HeroSection
title="Applications"
subTitle={global.about_applications}
/>
<ApplicationSection className="smooth-reveal-2" />
</BaseLayout>
+47 -6
View File
@@ -1,4 +1,5 @@
@import 'tailwindcss'; @import 'tailwindcss';
@import './utilities-buttons.css'; @import './utilities-buttons.css';
@import './utilities-cards.css'; @import './utilities-cards.css';
@import './utilities-misc.css'; @import './utilities-misc.css';
@@ -6,6 +7,11 @@
@plugin '@tailwindcss/typography'; @plugin '@tailwindcss/typography';
@plugin '@tailwindcss/forms'; @plugin '@tailwindcss/forms';
/* Preline */
@source "../../node_modules/@preline/collapse/*.js";
@import "../../node_modules/@preline/collapse/variants.css";
@import "../../node_modules/@preline/collapse/theme.css";
/* Dark mode support for Tailwind CSS v4 */ /* Dark mode support for Tailwind CSS v4 */
/* https://tailwindcss.com/docs/dark-mode */ /* https://tailwindcss.com/docs/dark-mode */
@custom-variant dark (&:where(.dark, .dark *)); @custom-variant dark (&:where(.dark, .dark *));
@@ -39,23 +45,31 @@
--color-secondary: light-dark(var(--color-neutral-500), var(--color-neutral-400)); --color-secondary: light-dark(var(--color-neutral-500), var(--color-neutral-400));
--color-secondary-hover: light-dark(var(--color-neutral-800), var(--color-neutral-200)); --color-secondary-hover: light-dark(var(--color-neutral-800), var(--color-neutral-200));
/* Object colors */ /* Background colors */
--color-background: light-dark(var(--color-neutral-200), var(--color-stone-700)); --color-background: light-dark(var(--color-neutral-200), var(--color-mist-800));
--color-background-accent: light-dark(color-mix(in srgb, var(--color-slate-300) 40%, transparent), color-mix(in srgb, var(--color-stone-800) 20%, transparent)); --color-background-accent: light-dark(color-mix(in srgb, var(--color-slate-300) 40%, transparent), color-mix(in srgb, var(--color-mist-900) 20%, transparent));
--color-background-card: light-dark(color-mix(in srgb, var(--color-neutral-100) 80%, transparent), color-mix(in srgb, var(--color-neutral-800) 60%, transparent)); --color-background-card: light-dark(color-mix(in srgb, var(--color-mist-100) 80%, transparent), color-mix(in srgb, var(--color-mist-900) 40%, transparent));
--color-background-1: light-dark(color-mix(in srgb, var(--color-mist-200) 75%, var(--color-slate-100)), color-mix(in srgb, var(--color-mist-700) 95%, var(--color-mist-950)));
--color-background-2: light-dark(color-mix(in srgb, var(--color-mist-400) 10%, var(--color-slate-100)), color-mix(in srgb, var(--color-mist-700) 80%, var(--color-mist-950)));
--color-background-3: light-dark(color-mix(in srgb, var(--color-mist-200) 85%, var(--color-slate-100)), color-mix(in srgb, var(--color-mist-700) 85%, var(--color-mist-950)));
/* Object colors */
--color-divider: light-dark(color-mix(in srgb, var(--color-slate-400) 40%, transparent), color-mix(in srgb, var(--color-neutral-500) 50%, transparent)); --color-divider: light-dark(color-mix(in srgb, var(--color-slate-400) 40%, transparent), color-mix(in srgb, var(--color-neutral-500) 50%, transparent));
/* Typography */ /* Typography */
--color-prose-blog-body: var(--color-neutral-700); --color-prose-blog-body: var(--color-neutral-700);
--color-prose-blog-headings: var(--color-neutral-900); --color-prose-blog-headings: var(--color-neutral-900);
--color-prose-blog-links: var(--color-orange-300); --color-prose-blog-links: var(--color-orange-300);
--color-prose-blog-invert-body: var(--color-neutral-400); --color-prose-blog-invert-body: var(--color-neutral-400);
--color-prose-blog-invert-headings: var(--color-neutral-200); --color-prose-blog-invert-headings: var(--color-neutral-200);
--radius-markdown-img: 0.5rem; --radius-markdown-img: 0.5rem;
/* Font */
--font-sans: var(--font-base);
/* Reveal Animations */ /* Reveal Animations */
--animate-reveal: reveal 0.8s ease forwards; --animate-reveal: reveal 0.8s ease forwards;
--animate-reveal-fade: reveal-fade 1.8s ease forwards; --animate-reveal-fade: reveal-fade 1.8s ease forwards;
@@ -74,7 +88,7 @@
:root { :root {
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
--theme-transition: 0.3s ease; --theme-transition: 0.3s ease;
} }
@@ -114,6 +128,33 @@
border-color var(--theme-transition); border-color var(--theme-transition);
} }
/* Preline marquee */
@keyframes marquee-x {
from {
transform: translateX(0);
}
to {
transform: translateX(calc(-50% - 0.5rem));
}
}
@keyframes marquee-y {
from {
transform: translateY(0);
}
to {
transform: translateY(calc(-50% - 0.5rem));
}
}
@media (prefers-reduced-motion: reduce) {
.marquee-track-x,
.marquee-track-y {
animation-duration: 1ms;
animation-iteration-count: 1;
}
}
/* Typography */ /* Typography */
.prose blockquote { .prose blockquote {
font-style: normal; font-style: normal;
+2 -2
View File
@@ -8,7 +8,7 @@
@utility button-base-hidden { @utility button-base-hidden {
@apply transition-all duration-300 @apply transition-all duration-300
border border-transparent border border-transparent
hover:bg-neutral-200 dark:hover:bg-neutral-700 hover:bg-mist-200 dark:hover:bg-mist-700
p-2 p-2
} }
@@ -41,7 +41,7 @@
@utility button-bg-neutral { @utility button-bg-neutral {
@apply transition-all duration-300 @apply transition-all duration-300
border border-neutral-100 dark:border-stone-500/20 border border-neutral-100 dark:border-mist-700/20
bg-background-card hover:bg-neutral-100 dark:hover:bg-neutral-800/90 bg-background-card hover:bg-neutral-100 dark:hover:bg-neutral-800/90
} }
+11 -4
View File
@@ -1,8 +1,8 @@
@utility card-base { @utility card-base {
@apply transition-all duration-300 @apply transition-all duration-300
rounded-xl rounded-xl
border border-neutral-100 dark:border-stone-500/20 border border-mist-100/20 dark:border-mist-700/20
bg-background-card hover:bg-neutral-100 dark:hover:bg-neutral-800/90 bg-background-card hover:bg-neutral-100 dark:hover:bg-mist-900/70
shadow-xs hover:shadow-md dark:shadow-md dark:hover:shadow-lg shadow-xs hover:shadow-md dark:shadow-md dark:hover:shadow-lg
} }
@@ -10,7 +10,14 @@
@apply transition-all duration-300 @apply transition-all duration-300
rounded-2xl rounded-2xl
border border-transparent border border-transparent
hover:bg-neutral-400/20 dark:hover:bg-neutral-800/40 hover:bg-mist-400/20 dark:hover:bg-mist-800/40
}
@utility card-base-hidden-md {
@apply transition-all duration-300
rounded-b-2xl
bg-background-card md:bg-transparent
group-hover:bg-neutral-100 md:group-hover:bg-transparent dark:group-hover:bg-mist-900/70 md:dark:group-hover:bg-transparent
} }
@utility card-hover-icon-color { @utility card-hover-icon-color {
@@ -21,7 +28,7 @@
@utility card-hover-icon-scale { @utility card-hover-icon-scale {
@apply transition-transform duration-300 will-change-transform @apply transition-transform duration-300 will-change-transform
drop-shadow-md dark:drop-shadow-xl dark:drop-shadow-neutral-500/60 drop-shadow-md dark:drop-shadow-xl dark:drop-shadow-mist-500/60
group-hover:scale-3d group-hover:scale-105 group-hover:scale-3d group-hover:scale-105
} }
+2 -2
View File
@@ -1,7 +1,7 @@
/* Nav */ /* Nav */
@utility nav-base { @utility nav-base {
@apply border border-neutral-100 dark:border-stone-500/20 @apply border border-mist-100/20 dark:border-mist-700/20
bg-neutral-100 dark:bg-neutral-800 bg-mist-100/80 dark:bg-mist-900/40
shadow-xs dark:shadow-md shadow-xs dark:shadow-md
} }
+10 -11
View File
@@ -4,19 +4,18 @@
"exclude": ["dist"], "exclude": ["dist"],
"compilerOptions": { "compilerOptions": {
"strictNullChecks": true, "strictNullChecks": true,
"baseUrl": ".",
"types": ["astro/client"], "types": ["astro/client"],
"paths": { "paths": {
"@/*": ["src/*"], "@/*": ["./src/*"],
"@src/*": ["src/*"], "@src/*": ["./src/*"],
"@lib/*": ["src/lib/*"], "@lib/*": ["./src/lib/*"],
"@components/*": ["src/components/*"], "@components/*": ["./src/components/*"],
"@content/*": ["src/content/*"], "@content/*": ["./src/content/*"],
"@layouts/*": ["src/layouts/*"], "@layouts/*": ["./src/layouts/*"],
"@styles/*": ["src/styles/*"], "@styles/*": ["./src/styles/*"],
"@pages/*": ["src/pages/*"], "@pages/*": ["./src/pages/*"],
"@support/*": ["src/scripts/*"], "@support/*": ["./src/scripts/*"],
"@images/*": ["src/images/*"] "@images/*": ["./src/images/*"]
} }
} }
} }