jenkins b66c762f5d hermes(webui): add HUX card UI models with contract-locked suites
Standalone per-card browser model/security/view modules for HUX-01..10
plus node+pytest suites that read the hux.v1 contract schemas directly.
Reconciled drift found on integration: the activity model now accepts
all 32 hux.event.v1 kinds (delegation.*, memory.suppressed,
memory.retrieval_removed, budget.exhausted, side_effect.*), the
autonomy model carries the external_side_effect capability, and the
foundation boundary test now asserts the shipped static HUX surface
exists on disk and that images never bake activated HUX_FLAGS.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BvMSXH8VH2tMWXanb8SJdf
2026-08-24 04:12:03 -03:00

155 lines
3.0 KiB
CSS

.hux-research {
--research-border: color-mix(in srgb, currentColor 16%, transparent);
display: grid;
gap: 1.25rem;
min-width: 0;
}
.hux-research h2,
.hux-research h3,
.hux-research h4,
.hux-research p {
margin-block: .25rem;
}
.hux-research-strip,
.hux-research-view {
border: 1px solid var(--research-border);
border-radius: .8rem;
padding: 1rem;
}
.hux-research-strip > header,
.hux-research-view > header,
.hux-research-notebook > header {
align-items: start;
display: flex;
justify-content: space-between;
}
.hux-research-strip ul,
.hux-research-layout ul,
.hux-research-notebook ol {
list-style: none;
margin: 0;
padding: 0;
}
.hux-research-citation {
border-top: 1px solid var(--research-border);
}
.hux-research-citation > button {
align-items: start;
display: flex;
gap: .75rem;
padding-block: .85rem;
text-align: start;
width: 100%;
}
.hux-research-citation > button span,
.hux-research-source header,
.hux-research-layout nav button {
display: grid;
gap: .2rem;
}
.hux-research-citation[data-support="contradicts"],
.hux-research-citation[data-support="unverified"] {
border-inline-start: .2rem solid currentColor;
padding-inline-start: .7rem;
}
.hux-research-passages,
.hux-research-sources,
.hux-research-notebook-grid {
display: grid;
gap: .75rem;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}
.hux-research-passage,
.hux-research-source,
.hux-research-notebook-grid > section {
border: 1px solid var(--research-border);
border-radius: .55rem;
margin: 0;
overflow-wrap: anywhere;
padding: .8rem;
}
.hux-research-passage blockquote {
margin: 0 0 .5rem;
white-space: pre-wrap;
}
.hux-research-source dl {
display: grid;
gap: .35rem;
}
.hux-research-source dl div {
display: grid;
grid-template-columns: 6rem minmax(0, 1fr);
}
.hux-research-source dt {
font-weight: 600;
}
.hux-research-layout {
display: grid;
gap: 1rem;
grid-template-columns: minmax(12rem, 20rem) minmax(0, 1fr);
margin-top: 1rem;
}
.hux-research-layout nav {
border-inline-end: 1px solid var(--research-border);
padding-inline-end: 1rem;
}
.hux-research-layout nav button {
padding: .65rem;
text-align: start;
width: 100%;
}
.hux-research-layout nav button[aria-current="page"] {
outline: 2px solid currentColor;
outline-offset: -2px;
}
.hux-research-error,
.hux-research-warning {
border-inline-start: .25rem solid currentColor;
padding: .65rem .85rem;
}
@media (max-width: 48rem) {
.hux-research-layout {
grid-template-columns: 1fr;
}
.hux-research-layout nav {
border-block-end: 1px solid var(--research-border);
border-inline-end: 0;
padding-block-end: 1rem;
padding-inline-end: 0;
}
.hux-research-notebook > header {
flex-direction: column;
}
}
@media (prefers-reduced-motion: reduce) {
.hux-research *,
.hux-research *::before,
.hux-research *::after {
scroll-behavior: auto !important;
transition-duration: .01ms !important;
}
}