"""Nexusmon Community - the public ring around the sealed core."""
from __future__ import annotations
from typing import Any
import gradio as gr
COMMUNITY_FIELDS = (
"one signal",
"one symbol",
"one safe question",
"one ritual note",
"one public idea",
)
def _clean(text: str) -> str:
return " ".join((text or "").strip().split())
def _short(text: Any, limit: int = 92) -> str:
value = str(text).strip()
if len(value) <= limit:
return value
return value[: max(0, limit - 3)].rstrip() + "..."
def _community_signal(theme: str) -> str:
topic = _clean(theme) or "one public signal"
return "\n".join(
[
"### Public signal",
f"- **Theme:** {_short(topic, 72)}",
"- **Reading:** the community ring is awake.",
"- **Tone:** mythic, deliberate, sealed at the core.",
"",
"### Veil check",
"- Keep it public-safe.",
"- Keep the engine hidden.",
"- Keep the language custom, not generic.",
"",
"### Resonance matrix",
f"- **Normal:** {_short(topic, 60)}",
"- **Strange:** a symbol, omen, or fragment",
"- **Secret:** a meaning only the public ring can hold",
"",
"### Next move",
"Post one thing that feels like a signal from the outer membrane.",
]
)
def _hero_html() -> str:
return """
nexusmon community
A public ring for signals, stories, and safe rituals.
This is the outer circle around Nexusmon: creative, intentional, and
alive without opening the sealed engine underneath.
public shell
mythic and minimal
sealed at the core
anomaly-led, not generic
"""
def _atlas_html() -> str:
return """
Ring
Public constellation
Mode
Creative, ritual, safe
Boundary
Engine stays sealed
"""
def build_ui() -> gr.Blocks:
theme = gr.themes.Base(
primary_hue=gr.themes.Color(
c50="#e7fbff",
c100="#c7f4ff",
c200="#96e9ff",
c300="#5fd6ff",
c400="#2cc2ff",
c500="#00aef2",
c600="#008fcc",
c700="#006fa0",
c800="#0a567f",
c900="#0a3e5b",
c950="#08283b",
),
secondary_hue=gr.themes.Color(
c50="#fff7df",
c100="#ffe9ad",
c200="#ffd56d",
c300="#ffc63b",
c400="#ffb200",
c500="#e29a00",
c600="#b87900",
c700="#8f5d00",
c800="#6d4700",
c900="#4f3300",
c950="#2d1e00",
),
neutral_hue=gr.themes.colors.slate,
font=[gr.themes.GoogleFont("Space Grotesk"), "system-ui", "sans-serif"],
font_mono=[gr.themes.GoogleFont("IBM Plex Mono"), "monospace"],
).set(
body_background_fill="#050812",
body_text_color="#e8f4ff",
block_background_fill="#09101b",
block_border_width="1px",
block_border_color="rgba(120, 200, 255, 0.18)",
input_background_fill="#0f1524",
input_border_color="rgba(56, 189, 248, 0.22)",
button_primary_background_fill="#00aef2",
button_primary_text_color="#08131d",
)
css = """
body {
background:
radial-gradient(circle at 10% 10%, rgba(0, 174, 242, 0.16), transparent 24%),
radial-gradient(circle at 90% 0%, rgba(110, 79, 255, 0.16), transparent 22%),
radial-gradient(circle at 50% 120%, rgba(224, 76, 255, 0.12), transparent 26%),
linear-gradient(180deg, #050812 0%, #040711 46%, #03050c 100%);
color: #e8f4ff;
}
body::before {
content: "";
position: fixed;
inset: 0;
pointer-events: none;
background-image:
linear-gradient(rgba(120, 200, 255, 0.06) 1px, transparent 1px),
linear-gradient(90deg, rgba(120, 200, 255, 0.04) 1px, transparent 1px);
background-size: 100% 28px, 28px 100%;
mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.45), transparent 92%);
opacity: 0.55;
}
.gradio-container {
max-width: 1260px !important;
}
.nx-hero {
display: grid;
grid-template-columns: 84px minmax(0, 1fr) 280px;
gap: 1rem;
align-items: center;
border: 1px solid rgba(120, 200, 255, 0.18);
border-radius: 26px;
padding: 1.25rem 1.3rem;
margin-bottom: 1rem;
background:
radial-gradient(circle at top left, rgba(0, 174, 242, 0.2), transparent 34%),
radial-gradient(circle at 84% 10%, rgba(110, 79, 255, 0.18), transparent 26%),
linear-gradient(180deg, rgba(10, 14, 24, 0.98), rgba(8, 10, 16, 0.98));
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.03), 0 28px 92px rgba(0, 0, 0, 0.45);
overflow: hidden;
position: relative;
}
.nx-hero::after {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background:
linear-gradient(115deg, transparent 0%, rgba(255, 255, 255, 0.05) 48%, transparent 60%);
opacity: 0.18;
transform: translateX(-28%);
animation: nxSweep 12s ease-in-out infinite;
}
.nx-eye {
width: 76px;
height: 76px;
border-radius: 50%;
border: 1px solid rgba(120, 200, 255, 0.28);
background:
radial-gradient(circle at center, #00d9ff 0 5px, transparent 6px),
radial-gradient(circle at center, rgba(0, 217, 255, 0.18) 0 20px, transparent 21px),
radial-gradient(circle at center, rgba(110, 79, 255, 0.25) 0 33px, transparent 34px),
linear-gradient(180deg, rgba(12, 18, 29, 1), rgba(7, 11, 18, 1));
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 0 36px rgba(0, 217, 255, 0.12);
animation: nxPulse 4s ease-in-out infinite;
}
.nx-sigil {
text-transform: uppercase;
letter-spacing: 0.34em;
font-size: 0.68rem;
color: #87dfff;
margin-bottom: 0.45rem;
}
.nx-title {
margin: 0;
font-size: clamp(2.4rem, 4.6vw, 4.8rem);
line-height: 0.92;
color: #f4fbff;
text-wrap: balance;
}
.nx-sub {
margin: 0.8rem 0 0;
color: #b7c7dd;
font-size: 1rem;
max-width: 50rem;
}
.nx-hero-side {
display: grid;
gap: 0.45rem;
align-self: stretch;
padding-left: 0.2rem;
}
.nx-kicker {
text-transform: uppercase;
letter-spacing: 0.2em;
font-size: 0.74rem;
color: #9db4cb;
}
.nx-stat {
padding: 0.55rem 0.7rem;
border-radius: 13px;
background: rgba(10, 16, 28, 0.82);
border: 1px solid rgba(120, 200, 255, 0.14);
color: #d9f4ff;
font-size: 0.84rem;
}
.nx-atlas {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 0.65rem;
margin-bottom: 0.95rem;
}
.nx-atlas-card {
border-radius: 18px;
border: 1px solid rgba(120, 200, 255, 0.14);
padding: 0.9rem 0.95rem;
background:
linear-gradient(180deg, rgba(13, 18, 30, 0.85), rgba(8, 10, 16, 0.92));
box-shadow: 0 20px 64px rgba(0, 0, 0, 0.25);
}
.nx-atlas-label {
display: block;
color: #8ca6be;
font-size: 0.72rem;
text-transform: uppercase;
letter-spacing: 0.12em;
margin-bottom: 0.25rem;
}
.nx-atlas-value {
display: block;
color: #eff9ff;
font-size: 0.92rem;
}
.nx-panel {
position: relative;
overflow: hidden;
border-radius: 20px;
padding: 1rem 1.05rem 0.95rem;
background:
linear-gradient(180deg, rgba(10, 14, 24, 0.92), rgba(8, 10, 16, 0.95));
border: 1px solid rgba(120, 200, 255, 0.16);
box-shadow: 0 24px 72px rgba(0, 0, 0, 0.3);
}
.nx-panel::before {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background: radial-gradient(circle at top left, rgba(0, 174, 242, 0.12), transparent 36%);
}
.nx-terminal textarea {
min-height: 196px !important;
font-family: "IBM Plex Mono", monospace !important;
background: linear-gradient(180deg, rgba(4, 10, 16, 0.98), rgba(6, 12, 19, 0.98)) !important;
border: 1px solid rgba(0, 174, 242, 0.15) !important;
color: #e8f4ff !important;
}
.nx-note {
margin-top: 0.7rem;
color: #89a6c4;
font-size: 0.84rem;
}
button, .gr-button {
border-radius: 999px !important;
background: linear-gradient(90deg, #00aef2, #6e4fff) !important;
color: #07111b !important;
border: 0 !important;
font-weight: 700 !important;
letter-spacing: 0.08em;
text-transform: uppercase;
box-shadow: 0 16px 36px rgba(0, 174, 242, 0.22);
}
button:hover, .gr-button:hover {
filter: brightness(1.08);
transform: translateY(-1px);
}
@keyframes nxPulse {
0%, 100% { transform: scale(0.96); opacity: 0.78; }
50% { transform: scale(1.12); opacity: 1; }
}
@keyframes nxSweep {
0%, 70% { transform: translateX(-28%); opacity: 0.08; }
85% { opacity: 0.2; }
100% { transform: translateX(28%); opacity: 0.06; }
}
"""
with gr.Blocks(theme=theme, css=css, title="Nexusmon Community", analytics_enabled=False) as demo:
gr.HTML(_hero_html())
gr.HTML(_atlas_html())
with gr.Row(equal_height=True):
with gr.Column(scale=5, min_width=360):
with gr.Group(elem_classes=["nx-panel"]):
gr.Markdown("### Cast a signal")
gr.Markdown(
"Drop one theme, one idea, or one post direction. The page returns a tiny public-safe signal."
)
theme_input = gr.Textbox(
label="Theme",
lines=3,
placeholder="Example: ritual launch note, fan art, community question, weekly recap",
)
spark_btn = gr.Button("Cast signal", variant="primary")
spark_out = gr.Markdown()
with gr.Column(scale=3, min_width=300):
with gr.Group(elem_classes=["nx-panel"]):
gr.Markdown("### Community oath")
gr.Markdown(
"- keep it creative\n"
"- keep it respectful\n"
"- keep the core sealed\n"
"- share outcomes, not secrets"
)
with gr.Row(equal_height=True):
with gr.Column(scale=1, min_width=320):
with gr.Group(elem_classes=["nx-panel"]):
gr.Markdown("### What stays sealed")
gr.Markdown(
"- engine details\n"
"- operator keys\n"
"- hidden routes\n"
"- training data\n"
"- private deployment details"
)
with gr.Column(scale=1, min_width=320):
with gr.Group(elem_classes=["nx-panel"]):
gr.Markdown("### Anomaly matrix")
gr.Markdown(
"| State | Public reading |\n"
"| --- | --- |\n"
"| Normal | Clean community note |\n"
"| Strange | Fragment, symbol, or omen |\n"
"| Secret | Meaning hidden in plain sight |\n"
"\n"
"Use it to shape posts, prompts, and public rituals."
)
gr.Markdown(
""
"Nexusmon Community · public by design · sealed at the core"
"
"
)
spark_btn.click(fn=_community_signal, inputs=theme_input, outputs=spark_out)
theme_input.submit(fn=_community_signal, inputs=theme_input, outputs=spark_out)
return demo
demo = build_ui()
demo.queue()
if __name__ == "__main__":
demo.launch()