summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyren223 <contact@kyren.codes>2026-10-09 18:00:00 +0300
committerKyren223 <contact@kyren.codes>2026-10-09 18:00:00 +0300
commit8a0ee33521c39cda1d337992d5e28e09d1f3c915 (patch)
tree0f1d7e5548e682960f3e892b784bc55989773194
parent26ac862befb195a9e03e0d554dbe1480d2e55775 (diff)
Changes
-rw-r--r--public/style.css80
-rw-r--r--website.go10
-rw-r--r--website.templ35
-rw-r--r--website_templ.go224
4 files changed, 269 insertions, 80 deletions
diff --git a/public/style.css b/public/style.css
index 11879d3..240e2d6 100644
--- a/public/style.css
+++ b/public/style.css
@@ -209,6 +209,9 @@
.inset-x-\[0\.3rem\] {
inset-inline: 0.3rem;
}
+ .top-1 {
+ top: var(--spacing);
+ }
.top-1\/2 {
top: calc(1 / 2 * 100%);
}
@@ -242,6 +245,9 @@
.left-\[0\.625rem\] {
left: 0.625rem;
}
+ .z-10 {
+ z-index: 10;
+ }
.col-span-2 {
grid-column: span 2 / span 2;
}
@@ -431,13 +437,29 @@
.flex-1 {
flex: 1;
}
+ .flex-shrink {
+ flex-shrink: 1;
+ }
.shrink-0 {
flex-shrink: 0;
}
+ .border-collapse {
+ border-collapse: collapse;
+ }
+ .-translate-y-1 {
+ --tw-translate-y: calc(var(--spacing) * -1);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
.-translate-y-1\/2 {
--tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
translate: var(--tw-translate-x) var(--tw-translate-y);
}
+ .scale-150 {
+ --tw-scale-x: 150%;
+ --tw-scale-y: 150%;
+ --tw-scale-z: 150%;
+ scale: var(--tw-scale-x) var(--tw-scale-y);
+ }
.transform {
transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
}
@@ -646,6 +668,9 @@
.bg-\[var\(--text\)\] {
background-color: var(--text);
}
+ .bg-black {
+ background-color: var(--color-black);
+ }
.bg-black\/20 {
background-color: color-mix(in srgb, #000 20%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@@ -658,6 +683,9 @@
background-color: color-mix(in oklab, var(--color-black) 30%, transparent);
}
}
+ .bg-white {
+ background-color: var(--color-white);
+ }
.bg-white\/\[0\.03\] {
background-color: color-mix(in srgb, #fff 3%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@@ -709,6 +737,9 @@
.p-\[3vw\] {
padding: 3vw;
}
+ .px-3 {
+ padding-inline: calc(var(--spacing) * 3);
+ }
.px-3\.5 {
padding-inline: calc(var(--spacing) * 3.5);
}
@@ -974,6 +1005,9 @@
.no-underline {
text-decoration-line: none;
}
+ .underline {
+ text-decoration-line: underline;
+ }
.opacity-0 {
opacity: 0%;
}
@@ -984,6 +1018,10 @@
}
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
+ .outline {
+ outline-style: var(--tw-outline-style);
+ outline-width: 1px;
+ }
.transition-colors {
transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -1038,6 +1076,18 @@
background-color: color-mix(in oklab, var(--primary) 25%, transparent) !important;
}
}
+ .after\:absolute::after {
+ content: var(--tw-content);
+ position: absolute;
+ }
+ .after\:inset-0::after {
+ content: var(--tw-content);
+ inset: 0px;
+ }
+ .after\:z-0::after {
+ content: var(--tw-content);
+ z-index: 0;
+ }
@media (hover: hover) {
.hover\:bg-\(--alt\)\/25:hover {
background-color: var(--alt);
@@ -1287,6 +1337,21 @@
inherits: false;
initial-value: 0;
}
+@property --tw-scale-x {
+ syntax: "*";
+ inherits: false;
+ initial-value: 1;
+}
+@property --tw-scale-y {
+ syntax: "*";
+ inherits: false;
+ initial-value: 1;
+}
+@property --tw-scale-z {
+ syntax: "*";
+ inherits: false;
+ initial-value: 1;
+}
@property --tw-rotate-x {
syntax: "*";
inherits: false;
@@ -1390,10 +1455,20 @@
inherits: false;
initial-value: 0 0 #0000;
}
+@property --tw-outline-style {
+ syntax: "*";
+ inherits: false;
+ initial-value: solid;
+}
@property --tw-duration {
syntax: "*";
inherits: false;
}
+@property --tw-content {
+ syntax: "*";
+ initial-value: "";
+ inherits: false;
+}
@keyframes pulse {
50% {
opacity: 0.5;
@@ -1405,6 +1480,9 @@
--tw-translate-x: 0;
--tw-translate-y: 0;
--tw-translate-z: 0;
+ --tw-scale-x: 1;
+ --tw-scale-y: 1;
+ --tw-scale-z: 1;
--tw-rotate-x: initial;
--tw-rotate-y: initial;
--tw-rotate-z: initial;
@@ -1428,7 +1506,9 @@
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-offset-shadow: 0 0 #0000;
+ --tw-outline-style: solid;
--tw-duration: initial;
+ --tw-content: "";
}
}
}
diff --git a/website.go b/website.go
index d64eab5..5c0fa1f 100644
--- a/website.go
+++ b/website.go
@@ -270,18 +270,16 @@ var projects = []Project{
Title: "Krypton",
Category: "Programming Language Compiler",
Desc: "A modern Minecraft creator event. As a developer, I helped with minor improvements to the cosmetics system. ",
- Icon: IconCpu("text-[#F5A670] self-center"),
- // Icon: IconKrypton(),
+ // Icon: IconCpu("text-[#F5A670] self-center"),
+ Icon: IconKrypton(),
Tags: []ProjectTag{
- // {"Programming Language", Color("--extra")},
- // {"Compiler", Color("--extra")},
{"C", Color("text-[#5C6CC1]")},
{"LLVM", Color("text-[#FFFFFF]")},
// {"Java", Color("#F5A670")},
},
Links: []ProjectLink{
- {IconGit("text-[#F5A670]"), "Git", "https://"},
- {IconGithub("text-(--secondary)"), "GitHub", "https://github.com/kyren223/"},
+ {IconReleases("text-[#FF8019]"), "Releases", "https://"},
+ {IconDocs("text-[#00ADD7]"), "Documentation", "/projects/krypton"},
},
},
diff --git a/website.templ b/website.templ
index 53992f7..4a0471b 100644
--- a/website.templ
+++ b/website.templ
@@ -310,12 +310,12 @@ templ FlagshipProject(project Project, extra string) {
<div class="flex flex-col gap-4 flex-1 min-w-0">
<div class="flex flex-wrap items-baseline gap-x-[1ch] gap-y-[0.4rem]">
@project.Icon
- <a href={ templ.SafeURL("/projects/" + project.Slug) } class="text-[170%] font-bold text-(--accent) hover:underline">{ project.Title }</a>
+ <a href={ templ.SafeURL("/projects/" + project.Slug) } class="text-[170%] font-bold text-(--accent) hover:underline after:absolute after:inset-0 after:z-0">{ project.Title }</a>
<span class="text-[85%] text-(--primary)">{ project.Category }</span>
for _, tag := range project.Tags {
<code class={ "text-[75%] px-[0.4rem] inline-block rounded-[0.3rem] border-[0.01rem] bg-(--alt)/25" + " " + tag.Color }>{ tag.Name }</code>
}
- <span class="ml-auto flex items-center self-center">
+ <span class="ml-auto flex items-center self-center relative z-10">
for _, link := range project.Links {
@IconLink(link.URL, link.Label, "") {
@link.Icon
@@ -325,7 +325,7 @@ templ FlagshipProject(project Project, extra string) {
</div>
<p class="leading-relaxed max-w-3xl">{ project.Desc }</p>
if len(flagship.Downloads) > 0 || flagship.Version != "" {
- <div class="flex flex-wrap items-center gap-x-4 gap-y-2">
+ <div class="flex flex-wrap items-center gap-x-4 gap-y-2 relative z-10">
if versionBeforeDownloads {
@VersionTag(project)
}
@@ -349,7 +349,7 @@ templ FlagshipProject(project Project, extra string) {
}
</div>
if flagship.Snippet != "" {
- <div class="shrink-0 self-start flex flex-col gap-[0.5rem] p-[1rem] rounded-[0.4rem] bg-black/30">
+ <div class="shrink-0 self-start flex flex-col gap-[0.5rem] p-[1rem] rounded-[0.4rem] bg-black/30 relative z-10">
<span class="text-[75%] text-(--alt)">example</span>
@CopyPre(flagship.Snippet, "text-[80%] leading-[normal]") {
{ flagship.Snippet }
@@ -418,8 +418,13 @@ templ IconExternal(color string) {
}
templ IconKrypton() {
- @Icon("text-[#00f1ff]") {
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-dot preview-icon"><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="12" r="10"></circle></svg>
+ @Icon("text-[#00f1ff] scale-150") {
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="24" height="24" fill="none" stroke="currentColor">
+ <!-- Outer Circle -->
+ <circle cx="50" cy="50" r="42" stroke-width="6"></circle>
+ <!-- Inner Dot -->
+ <circle cx="50" cy="50" r="16" fill="currentColor" stroke="none"></circle>
+ </svg>
}
// { "\uf192" }
}
@@ -430,15 +435,15 @@ templ ProjectItem(project Project, extra string) {
<div class="flex flex-col gap-[0.0625rem] w-full">
<div class="flex flex-wrap items-baseline gap-x-[1ch] gap-y-[0.4rem]">
@project.Icon
- <a href={ templ.SafeURL("/projects/" + project.Slug) } class="text-[130%] font-bold text-(--accent)">{ project.Title }</a>
+ <a href={ templ.SafeURL("/projects/" + project.Slug) } class="text-[130%] font-bold text-(--accent) after:absolute after:inset-0 after:z-0">{ project.Title }</a>
<span class="text-[80%] text-(--primary)">{ project.Category }</span>
for _, tag := range project.Tags {
<code class={ "text-[75%] px-[0.4rem] inline-block rounded-[0.3rem] border-[0.01rem] bg-(--alt)/25" + " " + tag.Color }>{ tag.Name }</code>
}
// for _, tag := range project.Tags {
- // <code class="text-[75%] px-[0.4rem] inline-block rounded-[0.3rem] bg-(--extra)/70 text-(--background)">{ tag }</code>
+ // <code class="text-[75%] px-[0.4rem] inline-block rounded-[0.3rem] bg-(--extra)/70 text-(--background)">{ tag }</code>
// }
- <span class="ml-auto flex items-center self-center">
+ <span class="ml-auto flex items-center self-center relative z-10">
for _, link := range project.Links {
@IconLink(link.URL, link.Label, "") {
@link.Icon
@@ -652,6 +657,18 @@ templ IconJetbrains(color string) {
}
}
+templ IconDocs(color string) {
+ @Icon(color) {
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open preview-icon"><path d="M12 5v16"></path><path d="M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z"></path></svg>
+ }
+}
+
+templ IconReleases(color string) {
+ @Icon(color) {
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tags preview-icon"><path d="M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z"></path><path d="M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193"></path><circle cx="10.5" cy="6.5" r=".5" fill="currentColor"></circle></svg>
+ }
+}
+
func row(icon func(color string) templ.Component, color, label, value string) FetchRow {
return FetchRow{Icon: icon(color), Color: color, Label: label, Value: value}
}
diff --git a/website_templ.go b/website_templ.go
index 2d834a2..6c11d53 100644
--- a/website_templ.go
+++ b/website_templ.go
@@ -1524,14 +1524,14 @@ func FlagshipProject(project Project, extra string) templ.Component {
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "\" class=\"text-[170%] font-bold text-(--accent) hover:underline\">")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "\" class=\"text-[170%] font-bold text-(--accent) hover:underline after:absolute after:inset-0 after:z-0\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var72 string
templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.JoinStringErrs(project.Title)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 313, Col: 137}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 313, Col: 176}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var72))
if templ_7745c5c3_Err != nil {
@@ -1591,7 +1591,7 @@ func FlagshipProject(project Project, extra string) templ.Component {
return templ_7745c5c3_Err
}
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "<span class=\"ml-auto flex items-center self-center\">")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "<span class=\"ml-auto flex items-center self-center relative z-10\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -1637,7 +1637,7 @@ func FlagshipProject(project Project, extra string) templ.Component {
return templ_7745c5c3_Err
}
if len(flagship.Downloads) > 0 || flagship.Version != "" {
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "<div class=\"flex flex-wrap items-center gap-x-4 gap-y-2\">")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "<div class=\"flex flex-wrap items-center gap-x-4 gap-y-2 relative z-10\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -1711,7 +1711,7 @@ func FlagshipProject(project Project, extra string) templ.Component {
return templ_7745c5c3_Err
}
if flagship.Snippet != "" {
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "<div class=\"shrink-0 self-start flex flex-col gap-[0.5rem] p-[1rem] rounded-[0.4rem] bg-black/30\"><span class=\"text-[75%] text-(--alt)\">example</span>")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "<div class=\"shrink-0 self-start flex flex-col gap-[0.5rem] p-[1rem] rounded-[0.4rem] bg-black/30 relative z-10\"><span class=\"text-[75%] text-(--alt)\">example</span>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -2206,13 +2206,13 @@ func IconKrypton() templ.Component {
}()
}
ctx = templ.InitializeContext(ctx)
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-dot preview-icon\"><circle cx=\"12\" cy=\"12\" r=\"1\"></circle><circle cx=\"12\" cy=\"12\" r=\"10\"></circle></svg>")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\"><!-- Outer Circle --><circle cx=\"50\" cy=\"50\" r=\"42\" stroke-width=\"6\"></circle><!-- Inner Dot --><circle cx=\"50\" cy=\"50\" r=\"16\" fill=\"currentColor\" stroke=\"none\"></circle></svg>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
return nil
})
- templ_7745c5c3_Err = Icon("text-[#00f1ff]").Render(templ.WithChildren(ctx, templ_7745c5c3_Var104), templ_7745c5c3_Buffer)
+ templ_7745c5c3_Err = Icon("text-[#00f1ff] scale-150").Render(templ.WithChildren(ctx, templ_7745c5c3_Var104), templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -2272,20 +2272,20 @@ func ProjectItem(project Project, extra string) templ.Component {
var templ_7745c5c3_Var107 templ.SafeURL
templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL("/projects/" + project.Slug))
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 433, Col: 57}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 438, Col: 57}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var107))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 120, "\" class=\"text-[130%] font-bold text-(--accent)\">")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 120, "\" class=\"text-[130%] font-bold text-(--accent) after:absolute after:inset-0 after:z-0\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var108 string
templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(project.Title)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 433, Col: 121}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 438, Col: 160}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108))
if templ_7745c5c3_Err != nil {
@@ -2298,7 +2298,7 @@ func ProjectItem(project Project, extra string) templ.Component {
var templ_7745c5c3_Var109 string
templ_7745c5c3_Var109, templ_7745c5c3_Err = templ.JoinStringErrs(project.Category)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 434, Col: 65}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 439, Col: 65}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var109))
if templ_7745c5c3_Err != nil {
@@ -2334,7 +2334,7 @@ func ProjectItem(project Project, extra string) templ.Component {
var templ_7745c5c3_Var112 string
templ_7745c5c3_Var112, templ_7745c5c3_Err = templ.JoinStringErrs(tag.Name)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 436, Col: 136}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 441, Col: 136}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var112))
if templ_7745c5c3_Err != nil {
@@ -2345,7 +2345,7 @@ func ProjectItem(project Project, extra string) templ.Component {
return templ_7745c5c3_Err
}
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "<span class=\"ml-auto flex items-center self-center\">")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "<span class=\"ml-auto flex items-center self-center relative z-10\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -2380,7 +2380,7 @@ func ProjectItem(project Project, extra string) templ.Component {
var templ_7745c5c3_Var114 string
templ_7745c5c3_Var114, templ_7745c5c3_Err = templ.JoinStringErrs(project.Desc)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 449, Col: 40}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 454, Col: 40}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var114))
if templ_7745c5c3_Err != nil {
@@ -2571,7 +2571,7 @@ func NotFoundPage(style Style, path string) templ.Component {
var templ_7745c5c3_Var123 string
templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.JoinStringErrs(path)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 484, Col: 20}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 489, Col: 20}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var123))
if templ_7745c5c3_Err != nil {
@@ -2584,7 +2584,7 @@ func NotFoundPage(style Style, path string) templ.Component {
var templ_7745c5c3_Var124 string
templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.JoinStringErrs(path[1:])
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 485, Col: 32}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 490, Col: 32}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var124))
if templ_7745c5c3_Err != nil {
@@ -2619,7 +2619,7 @@ func NotFoundPage(style Style, path string) templ.Component {
var templ_7745c5c3_Var126 string
templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinStringErrs(">")
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 491, Col: 17}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 496, Col: 17}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126))
if templ_7745c5c3_Err != nil {
@@ -2644,7 +2644,7 @@ func NotFoundPage(style Style, path string) templ.Component {
var templ_7745c5c3_Var128 string
templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinStringErrs("cd -")
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 494, Col: 16}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 499, Col: 16}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128))
if templ_7745c5c3_Err != nil {
@@ -2663,7 +2663,7 @@ func NotFoundPage(style Style, path string) templ.Component {
var templ_7745c5c3_Var129 string
templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.JoinStringErrs(">")
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 502, Col: 17}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 507, Col: 17}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var129))
if templ_7745c5c3_Err != nil {
@@ -2688,7 +2688,7 @@ func NotFoundPage(style Style, path string) templ.Component {
var templ_7745c5c3_Var131 string
templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.JoinStringErrs("cd $HOME")
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 505, Col: 20}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 510, Col: 20}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var131))
if templ_7745c5c3_Err != nil {
@@ -3555,6 +3555,100 @@ func IconJetbrains(color string) templ.Component {
})
}
+func IconDocs(color string) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var168 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var168 == nil {
+ templ_7745c5c3_Var168 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ templ_7745c5c3_Var169 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-book-open preview-icon\"><path d=\"M12 5v16\"></path><path d=\"M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z\"></path></svg>")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return nil
+ })
+ templ_7745c5c3_Err = Icon(color).Render(templ.WithChildren(ctx, templ_7745c5c3_Var169), templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return nil
+ })
+}
+
+func IconReleases(color string) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var170 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var170 == nil {
+ templ_7745c5c3_Var170 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ templ_7745c5c3_Var171 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-tags preview-icon\"><path d=\"M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z\"></path><path d=\"M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193\"></path><circle cx=\"10.5\" cy=\"6.5\" r=\".5\" fill=\"currentColor\"></circle></svg>")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return nil
+ })
+ templ_7745c5c3_Err = Icon(color).Render(templ.WithChildren(ctx, templ_7745c5c3_Var171), templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return nil
+ })
+}
+
func row(icon func(color string) templ.Component, color, label, value string) FetchRow {
return FetchRow{Icon: icon(color), Color: color, Label: label, Value: value}
}
@@ -3599,30 +3693,30 @@ func Fastfetch(rows []FetchRow) templ.Component {
}()
}
ctx = templ.InitializeContext(ctx)
- templ_7745c5c3_Var168 := templ.GetChildren(ctx)
- if templ_7745c5c3_Var168 == nil {
- templ_7745c5c3_Var168 = templ.NopComponent
+ templ_7745c5c3_Var172 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var172 == nil {
+ templ_7745c5c3_Var172 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, "<div style=\"\n\t\tdisplay: grid;\n\t\tgrid-template-columns: auto auto auto 1fr;\n\t\talign-items: center;\n\t\tcolumn-gap: 1ch;\n\t\tline-height: normal;\n\t\">")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "<div style=\"\n\t\tdisplay: grid;\n\t\tgrid-template-columns: auto auto auto 1fr;\n\t\talign-items: center;\n\t\tcolumn-gap: 1ch;\n\t\tline-height: normal;\n\t\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
for i, row := range rows {
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, "<span class=\"text-(--alt)\">")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "<span class=\"text-(--alt)\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- var templ_7745c5c3_Var169 string
- templ_7745c5c3_Var169, templ_7745c5c3_Err = templ.JoinStringErrs(branch(i, len(rows)))
+ var templ_7745c5c3_Var173 string
+ templ_7745c5c3_Var173, templ_7745c5c3_Err = templ.JoinStringErrs(branch(i, len(rows)))
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 694, Col: 52}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 711, Col: 52}
}
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var169))
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var173))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "</span>")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, "</span>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -3630,69 +3724,69 @@ func Fastfetch(rows []FetchRow) templ.Component {
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- var templ_7745c5c3_Var170 = []any{row.Color, "font-bold"}
- templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var170...)
+ var templ_7745c5c3_Var174 = []any{row.Color, "font-bold"}
+ templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var174...)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "<span class=\"")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "<span class=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- var templ_7745c5c3_Var171 string
- templ_7745c5c3_Var171, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var170).String())
+ var templ_7745c5c3_Var175 string
+ templ_7745c5c3_Var175, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var174).String())
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 1, Col: 0}
}
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var171)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var175)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, "\">")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- var templ_7745c5c3_Var172 string
- templ_7745c5c3_Var172, templ_7745c5c3_Err = templ.JoinStringErrs(row.Label)
+ var templ_7745c5c3_Var176 string
+ templ_7745c5c3_Var176, templ_7745c5c3_Err = templ.JoinStringErrs(row.Label)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 696, Col: 53}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 713, Col: 53}
}
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var172))
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var176))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "</span> <span id=\"")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "</span> <span id=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- var templ_7745c5c3_Var173 string
- templ_7745c5c3_Var173, templ_7745c5c3_Err = templ.ResolveAttributeValue(row.Label)
+ var templ_7745c5c3_Var177 string
+ templ_7745c5c3_Var177, templ_7745c5c3_Err = templ.ResolveAttributeValue(row.Label)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 697, Col: 23}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 714, Col: 23}
}
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var173)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var177)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "\">")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- var templ_7745c5c3_Var174 string
- templ_7745c5c3_Var174, templ_7745c5c3_Err = templ.JoinStringErrs(row.Value)
+ var templ_7745c5c3_Var178 string
+ templ_7745c5c3_Var178, templ_7745c5c3_Err = templ.JoinStringErrs(row.Value)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 697, Col: 37}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 714, Col: 37}
}
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var174))
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var178))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "</span>")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, "</span>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "</div>")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, "</div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -3716,38 +3810,38 @@ func Icon(color string) templ.Component {
}()
}
ctx = templ.InitializeContext(ctx)
- templ_7745c5c3_Var175 := templ.GetChildren(ctx)
- if templ_7745c5c3_Var175 == nil {
- templ_7745c5c3_Var175 = templ.NopComponent
+ templ_7745c5c3_Var179 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var179 == nil {
+ templ_7745c5c3_Var179 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
- var templ_7745c5c3_Var176 = []any{"shrink-0", Color(color), "self-center"}
- templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var176...)
+ var templ_7745c5c3_Var180 = []any{"shrink-0", Color(color), "self-center"}
+ templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var180...)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, "<svg width=\"1.1em\" height=\"1.1em\" class=\"")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 167, "<svg width=\"1.1em\" height=\"1.1em\" class=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- var templ_7745c5c3_Var177 string
- templ_7745c5c3_Var177, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var176).String())
+ var templ_7745c5c3_Var181 string
+ templ_7745c5c3_Var181, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var180).String())
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `website.templ`, Line: 1, Col: 0}
}
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var177)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var181)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, "\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 168, "\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templ_7745c5c3_Var175.Render(ctx, templ_7745c5c3_Buffer)
+ templ_7745c5c3_Err = templ_7745c5c3_Var179.Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 167, "</svg>")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 169, "</svg>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}