Initial commit: NexusArchitect Professional Workstation Overhaul

This commit is contained in:
Debian
2026-04-24 20:27:22 +02:00
commit f3e94c4f42
193 changed files with 5809 additions and 0 deletions
@@ -0,0 +1,11 @@
<button class="nexus-btn @Class" @onclick="OnClick" disabled="@Disabled" @attributes="AdditionalAttributes">
@ChildContent
</button>
@code {
[Parameter] public RenderFragment? ChildContent { get; set; }
[Parameter] public string Class { get; set; } = string.Empty;
[Parameter] public EventCallback<Microsoft.AspNetCore.Components.Web.MouseEventArgs> OnClick { get; set; }
[Parameter] public bool Disabled { get; set; }
[Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object>? AdditionalAttributes { get; set; }
}
@@ -0,0 +1,35 @@
.nexus-btn {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 44px;
min-height: 44px;
padding: 0.5rem 1rem;
background-color: var(--nexus-card);
color: var(--nexus-neon);
border: 1px solid var(--nexus-neon);
font-family: var(--nexus-font-sans);
font-weight: 500;
font-size: 1rem;
border-radius: 8px;
cursor: pointer;
transition: all 0.2s ease;
box-shadow: 0 0 5px rgba(0, 255, 153, 0.1);
}
.nexus-btn:hover:not(:disabled) {
background-color: rgba(0, 255, 153, 0.1);
box-shadow: 0 0 15px rgba(0, 255, 153, 0.3);
}
.nexus-btn:active:not(:disabled) {
transform: scale(0.98);
}
.nexus-btn:disabled {
opacity: 0.5;
cursor: not-allowed;
border-color: #555;
color: #555;
box-shadow: none;
}
@@ -0,0 +1,40 @@
<svg class="nexus-icon @Class" viewBox="0 0 24 24" fill="currentColor" width="@Size" height="@Size" @attributes="AdditionalAttributes">
@switch (Name.ToLowerInvariant())
{
case "robot":
<path d="M12 2a2 2 0 0 1 2 2c0 .74-.4 1.39-1 1.73V7h5a2 2 0 0 1 2 2v2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2v2a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-2a2 2 0 0 1-2-2v-2a2 2 0 0 1 2-2V9c0-1.1.9-2 2-2h5V5.73c-.6-.34-1-.99-1-1.73a2 2 0 0 1 2-2zM8 11v4h8v-4H8zm-2 0H4v4h2v-4zm14 0h-2v4h2v-4z" />
break;
case "play":
<path d="M8 5v14l11-7z" />
break;
case "check":
<path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" />
break;
case "search":
<circle cx="11" cy="11" r="8" /><path d="m21 21-4.3-4.3" />
break;
case "message-square":
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" />
break;
case "settings":
<path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z" /><circle cx="12" cy="12" r="3" />
break;
case "bookmark":
<path d="m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z" />
break;
case "target":
<circle cx="12" cy="12" r="10" /><circle cx="12" cy="12" r="6" /><circle cx="12" cy="12" r="2" />
break;
default:
<!-- Fallback circle -->
<circle cx="12" cy="12" r="10" />
break;
}
</svg>
@code {
[Parameter] public string Name { get; set; } = string.Empty;
[Parameter] public string Size { get; set; } = "24";
[Parameter] public string Class { get; set; } = string.Empty;
[Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object>? AdditionalAttributes { get; set; }
}

After

Width:  |  Height:  |  Size: 2.3 KiB

@@ -0,0 +1,10 @@
.nexus-icon {
display: inline-block;
vertical-align: middle;
transition: fill 0.2s ease, filter 0.2s ease;
}
.neon-glow {
fill: var(--nexus-neon);
filter: drop-shadow(0 0 4px var(--nexus-neon));
}
@@ -0,0 +1,25 @@
<div class="nexus-typography @VariantCssClass @Class" @attributes="AdditionalAttributes">
@ChildContent
</div>
@code {
[Parameter] public RenderFragment? ChildContent { get; set; }
[Parameter] public string Class { get; set; } = string.Empty;
[Parameter] public TypographyVariant Variant { get; set; } = TypographyVariant.UI;
[Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object>? AdditionalAttributes { get; set; }
private string VariantCssClass => Variant switch
{
TypographyVariant.Heading => "nexus-heading",
TypographyVariant.Ebook => "nexus-ebook",
TypographyVariant.UI => "nexus-ui",
_ => "nexus-ui"
};
public enum TypographyVariant
{
Heading,
Ebook,
UI
}
}
@@ -0,0 +1,27 @@
.nexus-typography {
margin: 0;
}
.nexus-heading {
font-family: var(--nexus-font-sans);
font-size: 2rem;
font-weight: 600;
color: white;
margin-bottom: 1rem;
}
.nexus-ebook {
font-family: var(--nexus-font-serif);
font-size: 1.125rem;
line-height: 1.65;
color: #1a1a1a;
margin-bottom: 1.5rem;
font-weight: 300;
}
.nexus-ui {
font-family: var(--nexus-font-sans);
font-size: 1rem;
color: #cccccc;
}