// _mists.scss — Mist list, detail, and explore pages (.ms-* prefix) // Covers: mist_explore.html, mist_list.html, mist_detail.html, // and fragments/mist_rows.html // ── Shared page wrapper ─────────────────────────────────────────────────────── .ms-page { display: flex; flex-direction: column; gap: var(--space-4); } // ── Shared card + button primitives ────────────────────────────────────────── .ms-card { background: var(--bg-surface); border: 1px solid var(--border-default); border-radius: var(--radius-md); overflow: hidden; } .ms-btn { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-family: var(--font-sans); font-weight: 500; padding: 5px 12px; border-radius: var(--radius-sm); border: 1px solid var(--border-default); cursor: pointer; text-decoration: none; transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast); white-space: nowrap; &--ghost { background: transparent; color: var(--text-secondary); &:hover { background: var(--bg-hover); color: var(--text-primary); border-color: var(--border-muted); } } &--primary { background: var(--color-success-bg); color: #fff; border-color: var(--color-success-bg); &:hover { background: #2ea043; border-color: #2ea043; } } &--sm { padding: 3px 8px; font-size: 11px; } } // ── Type chip (inline artifact-type label) ──────────────────────────────────── .ms-type-chip { display: inline-flex; align-items: center; font-size: 10px; font-family: var(--font-mono); font-weight: 600; padding: 2px 7px; border-radius: 4px; border: 1px solid currentColor; flex-shrink: 0; letter-spacing: 0.01em; } // ── Language badge ──────────────────────────────────────────────────────────── .ms-lang-badge { font-size: 10px; font-family: var(--font-mono); padding: 1px 6px; background: var(--bg-overlay); border: 1px solid var(--border-default); border-radius: 3px; color: var(--text-muted); } // ── Agent badge ─────────────────────────────────────────────────────────────── .ms-agent-badge { font-size: 10px; font-family: var(--font-mono); padding: 1px 6px; background: var(--agent-accent-bg); border: 1px solid rgba(167, 139, 250, 0.3); border-radius: 3px; color: var(--agent-accent); } // ── Signed badge ────────────────────────────────────────────────────────────── .ms-signed-badge { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-family: var(--font-mono); padding: 1px 6px; background: color-mix(in srgb, var(--color-success) 10%, transparent); border: 1px solid rgba(63, 185, 80, 0.35); border-radius: 3px; color: var(--color-success); } // ── Mist ID badge ───────────────────────────────────────────────────────────── .ms-mist-id-badge { font-size: 10px; font-family: var(--font-mono); padding: 1px 6px; background: var(--bg-overlay); border: 1px solid var(--border-default); border-radius: 3px; color: var(--text-muted); } // ── Meta dot separator ──────────────────────────────────────────────────────── .ms-meta-dot { color: var(--border-muted); user-select: none; } // ── Tag pill ────────────────────────────────────────────────────────────────── .ms-tag { display: inline-flex; align-items: center; font-size: 11px; padding: 2px 8px; background: var(--bg-overlay); border: 1px solid var(--border-default); border-radius: 12px; color: var(--text-muted); } // ── Symbol anchor span ──────────────────────────────────────────────────────── .ms-symbol-anchor { font-size: 11px; font-family: var(--font-mono); color: var(--text-muted); } // ──────────────────────────────────────────────────────────────────────────── // EXPLORE + LIST PAGES // ──────────────────────────────────────────────────────────────────────────── // ── Explore header ──────────────────────────────────────────────────────────── .ms-explore-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); } .ms-explore-title { font-size: var(--font-size-xl); font-weight: var(--font-weight-semibold); color: var(--text-primary); } .ms-explore-sub { font-size: 13px; color: var(--text-muted); margin-top: var(--space-1); max-width: 60ch; } // ── List header ─────────────────────────────────────────────────────────────── .ms-list-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; } .ms-list-title { font-size: var(--font-size-xl); font-weight: var(--font-weight-semibold); color: var(--text-primary); display: flex; align-items: center; gap: 6px; } .ms-list-owner-link { color: var(--text-primary); text-decoration: none; &:hover { color: var(--color-accent-link); } } .ms-list-sep { color: var(--text-muted); font-weight: 300; } .ms-list-sub { font-size: 13px; color: var(--text-muted); margin-top: var(--space-1); } .ms-list-header-actions { display: flex; align-items: center; gap: var(--space-2); } // ── Filter bar ──────────────────────────────────────────────────────────────── .ms-filter-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap; } .ms-filter-types { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; } .ms-type-filter { display: inline-flex; align-items: center; font-size: 12px; padding: 4px 12px; border-radius: 20px; border: 1px solid var(--border-default); color: var(--text-muted); text-decoration: none; transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast); &:hover { background: var(--bg-hover); color: var(--text-primary); border-color: var(--border-muted); } &--active { background: var(--bg-overlay); color: var(--text-primary); border-color: var(--border-muted); } } .ms-filter-right { display: flex; align-items: center; gap: var(--space-2); } .ms-count-label { font-size: 12px; color: var(--text-muted); } // ── Pagination ──────────────────────────────────────────────────────────────── .ms-pagination { display: flex; justify-content: center; padding: var(--space-4) 0; } // ── Mist rows list (fragment) ───────────────────────────────────────────────── .ms-list { display: flex; flex-direction: column; } .ms-row { display: flex; align-items: center; gap: var(--space-3); padding: 12px 16px; text-decoration: none; color: var(--text-secondary); border-bottom: 1px solid var(--border-subtle); transition: background var(--transition-fast); &:last-child { border-bottom: none; } &:hover { background: var(--bg-hover); } } .ms-row-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; } .ms-row-title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .ms-row-filename { font-family: var(--font-mono); font-size: 13px; font-weight: 600; color: var(--text-primary); } .ms-row-title-text { font-size: 13px; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ms-row-meta { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--text-muted); flex-wrap: wrap; } .ms-meta-owner { display: inline-flex; align-items: center; gap: 4px; color: var(--text-muted); } .ms-row-right { display: flex; align-items: center; gap: var(--space-3); flex-shrink: 0; } .ms-row-count { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-family: var(--font-mono); color: var(--text-muted); } .ms-row-chevron { color: var(--text-disabled); display: flex; align-items: center; } // ── Empty state ─────────────────────────────────────────────────────────────── .ms-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-3); padding: var(--space-12) var(--space-6); text-align: center; } .ms-empty-icon { color: var(--text-disabled); } .ms-empty-title { font-size: 15px; font-weight: var(--font-weight-semibold); color: var(--text-secondary); } .ms-empty-desc { font-size: 13px; color: var(--text-muted); max-width: 44ch; line-height: 1.6; code { font-family: var(--font-mono); font-size: 12px; padding: 1px 5px; background: var(--bg-overlay); border: 1px solid var(--border-default); border-radius: 3px; } } // ──────────────────────────────────────────────────────────────────────────── // DETAIL PAGE // ──────────────────────────────────────────────────────────────────────────── .ms-detail-page { display: flex; flex-direction: column; gap: var(--space-4); } // ── Detail header ───────────────────────────────────────────────────────────── .ms-detail-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-6); flex-wrap: wrap; padding-bottom: var(--space-4); border-bottom: 1px solid var(--border-subtle); } .ms-detail-header-left { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--space-2); } .ms-detail-header-right { display: flex; flex-direction: column; gap: var(--space-3); align-items: flex-end; } .ms-detail-breadcrumb { display: flex; align-items: center; gap: 5px; font-size: 14px; flex-wrap: wrap; } .ms-detail-owner { color: var(--color-accent-link); text-decoration: none; font-weight: 500; &:hover { text-decoration: underline; } } .ms-detail-sep { color: var(--text-muted); } .ms-detail-filename { font-family: var(--font-mono); font-size: 14px; font-weight: 600; color: var(--text-primary); } .ms-detail-title { font-size: var(--font-size-xl); font-weight: var(--font-weight-semibold); color: var(--text-primary); margin-top: var(--space-1); } .ms-detail-meta { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--text-muted); flex-wrap: wrap; } .ms-detail-description { font-size: 13px; color: var(--text-secondary); line-height: 1.65; max-width: 72ch; } .ms-detail-tags { display: flex; flex-wrap: wrap; gap: var(--space-2); } // ── Stats + actions ─────────────────────────────────────────────────────────── .ms-detail-stats { display: flex; gap: var(--space-4); } .ms-stat { display: flex; flex-direction: column; align-items: center; gap: 2px; } .ms-stat-value { font-family: var(--font-mono); font-size: 16px; font-weight: var(--font-weight-semibold); color: var(--text-primary); } .ms-stat-label { font-size: 11px; color: var(--text-muted); } .ms-detail-actions { display: flex; gap: var(--space-2); } // ── Two-column body ─────────────────────────────────────────────────────────── .ms-detail-body { display: grid; grid-template-columns: 1fr 280px; gap: var(--space-4); align-items: start; @media (max-width: 900px) { grid-template-columns: 1fr; } } .ms-detail-main { min-width: 0; } // ── Content card ────────────────────────────────────────────────────────────── .ms-content-card { background: var(--bg-surface); border: 1px solid var(--border-default); border-radius: var(--radius-md); overflow: hidden; } .ms-content-toolbar { display: flex; align-items: center; justify-content: space-between; padding: 8px 14px; border-bottom: 1px solid var(--border-subtle); background: var(--bg-overlay); } .ms-content-label { font-family: var(--font-mono); font-size: 12px; color: var(--text-muted); } .ms-content-actions { display: flex; gap: var(--space-2); } .ms-content-pre { margin: 0 !important; border-radius: 0 !important; font-size: 13px !important; line-height: 1.55 !important; max-height: 640px; overflow: auto; code { font-size: inherit !important; } } .ms-midi-placeholder { display: flex; flex-direction: column; align-items: center; gap: var(--space-3); padding: var(--space-10); color: var(--text-muted); text-align: center; } // ── Sidebar ─────────────────────────────────────────────────────────────────── .ms-detail-sidebar { display: flex; flex-direction: column; gap: var(--space-3); } .ms-sidebar-card { background: var(--bg-surface); border: 1px solid var(--border-default); border-radius: var(--radius-md); padding: 14px; display: flex; flex-direction: column; gap: 10px; &--embed { gap: 8px; } } .ms-sidebar-card-title { display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: var(--font-weight-semibold); color: var(--text-secondary); } .ms-sidebar-count { font-family: var(--font-mono); font-size: 11px; padding: 1px 5px; background: var(--bg-overlay); border-radius: 3px; color: var(--text-muted); } .ms-sidebar-link { font-size: 12px; color: var(--color-accent-link); text-decoration: none; display: flex; align-items: center; gap: 6px; &:hover { text-decoration: underline; } } .ms-sidebar-sub { font-size: 11px; color: var(--text-muted); } // ── Anchor list ─────────────────────────────────────────────────────────────── .ms-anchor-list { list-style: none; display: flex; flex-direction: column; gap: 5px; } .ms-anchor-item { display: flex; align-items: center; gap: 6px; } .ms-anchor-addr { font-family: var(--font-mono); font-size: 11px; color: var(--text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } // ── Forks list ──────────────────────────────────────────────────────────────── .ms-forks-list { list-style: none; display: flex; flex-direction: column; gap: 8px; li { display: flex; align-items: center; justify-content: space-between; gap: 8px; } } .ms-mini-avatar { width: 16px; height: 16px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 700; color: #fff; flex-shrink: 0; } // ── Embed snippets ──────────────────────────────────────────────────────────── .ms-embed-label { font-size: 10px; font-family: var(--font-mono); color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; margin-top: 4px; &:first-of-type { margin-top: 0; } } .ms-embed-snippet { position: relative; background: var(--bg-base); border: 1px solid var(--border-default); border-radius: 5px; padding: 8px 32px 8px 10px; overflow: hidden; cursor: pointer; &:hover { border-color: var(--border-muted); } } .ms-embed-code { font-family: var(--font-mono); font-size: 10px; color: var(--text-muted); word-break: break-all; white-space: pre-wrap; display: block; } .ms-embed-copy { position: absolute; top: 6px; right: 6px; background: var(--bg-overlay); border: 1px solid var(--border-default); border-radius: 3px; padding: 3px 5px; cursor: pointer; color: var(--text-muted); display: flex; align-items: center; transition: background var(--transition-fast), color var(--transition-fast); &:hover { background: var(--bg-hover); color: var(--text-primary); } } // ── Agent provenance rows ───────────────────────────────────────────────────── .ms-prov-row { display: flex; gap: 8px; font-size: 12px; align-items: baseline; } .ms-prov-key { font-family: var(--font-mono); font-size: 11px; color: var(--text-muted); flex-shrink: 0; min-width: 48px; } .ms-prov-val { font-family: var(--font-mono); font-size: 11px; color: var(--text-secondary); word-break: break-all; }