mirror of
https://github.com/openclaw/clawhub.git
synced 2026-08-14 08:52:21 +00:00
Constrain the mobile app-category strip to the available content width while preserving internal horizontal scrolling. Scope the CSS regression contract to the exact nested mobile rule.
33872 lines
686 KiB
CSS
33872 lines
686 KiB
CSS
@import "tailwindcss";
|
|
@import "tw-animate-css";
|
|
@import "./publisher-profile.css";
|
|
@import "@fontsource/bricolage-grotesque/latin.css";
|
|
@import "@fontsource/manrope/latin.css";
|
|
@import "@fontsource/ibm-plex-mono/latin.css";
|
|
|
|
@theme {
|
|
/* Colors — core palette */
|
|
--color-bg: var(--bg);
|
|
--color-bg-soft: var(--bg-soft);
|
|
--color-surface: var(--surface);
|
|
--color-surface-muted: var(--surface-muted);
|
|
--color-nav-bg: var(--nav-bg);
|
|
--color-ink: var(--ink);
|
|
--color-ink-soft: var(--ink-soft);
|
|
--color-accent: var(--accent);
|
|
--color-accent-fg: var(--accent-fg);
|
|
--color-accent-deep: var(--accent-deep);
|
|
--color-seafoam: var(--seafoam);
|
|
--color-gold: var(--gold);
|
|
--color-line: var(--line);
|
|
--color-border-ui: var(--border-ui);
|
|
--color-border-ui-hover: var(--border-ui-hover);
|
|
--color-border-ui-active: var(--border-ui-active);
|
|
|
|
/* Colors — status */
|
|
--color-status-success-bg: var(--status-success-bg);
|
|
--color-status-success-fg: var(--status-success-fg);
|
|
--color-status-warning-bg: var(--status-warning-bg);
|
|
--color-status-warning-fg: var(--status-warning-fg);
|
|
--color-status-error-bg: var(--status-error-bg);
|
|
--color-status-error-fg: var(--status-error-fg);
|
|
|
|
/* Colors — form controls */
|
|
--color-input-border: var(--input-border);
|
|
--color-input-bg: var(--input-bg);
|
|
--color-input-placeholder: var(--input-placeholder);
|
|
--color-input-focus-border: var(--input-focus-border);
|
|
--color-input-focus-ring: var(--input-focus-ring);
|
|
--color-label-fg: var(--label-fg);
|
|
|
|
/* Colors — interactive states */
|
|
--color-hover-bg: var(--hover-bg);
|
|
--color-active-bg: var(--active-bg);
|
|
|
|
/* Colors — overlay */
|
|
--color-overlay-bg: var(--overlay-bg);
|
|
|
|
/* Spacing scale */
|
|
--spacing-space-1: var(--space-1);
|
|
--spacing-space-2: var(--space-2);
|
|
--spacing-space-3: var(--space-3);
|
|
--spacing-space-4: var(--space-4);
|
|
--spacing-space-5: var(--space-5);
|
|
--spacing-space-6: var(--space-6);
|
|
--spacing-space-7: var(--space-7);
|
|
--spacing-space-8: var(--space-8);
|
|
|
|
/* Typography scale */
|
|
--font-size-fs-xs: var(--fs-xs);
|
|
--font-size-fs-sm: var(--fs-sm);
|
|
--font-size-fs-base: var(--fs-base);
|
|
--font-size-fs-md: var(--fs-md);
|
|
--font-size-fs-lg: var(--fs-lg);
|
|
--font-size-fs-xl: var(--fs-xl);
|
|
--font-size-fs-2xl: var(--fs-2xl);
|
|
--font-size-fs-3xl: var(--fs-3xl);
|
|
|
|
/* Radii */
|
|
--radius-lg: var(--r-lg);
|
|
--radius-md: var(--r-md);
|
|
--radius-sm: var(--r-sm);
|
|
--radius-pill: var(--r-pill);
|
|
|
|
/* Fonts */
|
|
--font-display: var(--font-display);
|
|
--font-body: var(--font-body);
|
|
--font-mono: var(--font-mono);
|
|
|
|
/* Layout widths */
|
|
--width-page-max: var(--page-max);
|
|
--width-page-narrow: var(--page-narrow);
|
|
--width-page-min: var(--page-min);
|
|
|
|
/* Shadows */
|
|
--shadow-default: var(--shadow);
|
|
--shadow-dialog: var(--shadow-dialog);
|
|
--shadow-hover: var(--shadow-hover);
|
|
}
|
|
|
|
@variant dark (&:where([data-theme-resolved="dark"], [data-theme-resolved="dark"] *));
|
|
|
|
:root {
|
|
color-scheme: dark;
|
|
|
|
/* Legacy application aliases backed by the canonical design system. */
|
|
--bg: var(--oc-bg-page);
|
|
--bg-soft: var(--oc-bg-surface);
|
|
--bg-glow-1: #101012;
|
|
--bg-glow-2: #141416;
|
|
--surface: var(--oc-bg-elevated);
|
|
--surface-muted: var(--oc-bg-surface);
|
|
--nav-bg: var(--oc-bg-page);
|
|
--ink: var(--oc-text-primary);
|
|
--ink-soft: var(--oc-text-secondary);
|
|
--accent: var(--oc-accent-primary);
|
|
--accent-fg: var(--oc-text-on-accent);
|
|
--accent-deep: var(--oc-accent-primary-hover);
|
|
--accent-subtle: var(--oc-surface-accent-soft);
|
|
--seafoam: var(--oc-accent-secondary);
|
|
--diff-added: var(--oc-diff-added);
|
|
--diff-added-strong: var(--oc-diff-added-strong);
|
|
--diff-removed: var(--oc-diff-removed);
|
|
--diff-removed-strong: var(--oc-diff-removed-strong);
|
|
--diff-diagonal: #a1a1a118;
|
|
--diff-border: rgba(255, 255, 255, 0.1);
|
|
--diff-line-number: #6b6b6b;
|
|
--diff-scrollbar-rgb: 161, 161, 161;
|
|
--gold: #fbbf24;
|
|
--line: var(--oc-border-subtle);
|
|
--border-ui: var(--oc-border-subtle);
|
|
--border-ui-hover: color-mix(in srgb, var(--oc-text-primary) 20%, transparent);
|
|
--border-ui-active: var(--oc-border-accent);
|
|
--shadow: var(--oc-shadow-md);
|
|
|
|
/* Status colors — subtle, polished */
|
|
--status-success-bg: var(--oc-status-success-bg);
|
|
--status-success-fg: var(--oc-status-success-fg);
|
|
--status-warning-bg: var(--oc-status-warning-bg);
|
|
--status-warning-fg: var(--oc-status-warning-fg);
|
|
--status-error-bg: var(--oc-status-error-bg);
|
|
--status-error-fg: var(--oc-status-error-fg);
|
|
--official-bg: var(--oc-status-info-bg);
|
|
--official-fg: var(--oc-status-info-fg);
|
|
--official-border: color-mix(in srgb, var(--oc-status-info-fg) 30%, var(--oc-border-subtle));
|
|
|
|
/* Form controls — crisp, modern */
|
|
--input-border: var(--oc-input-border);
|
|
--input-bg: var(--oc-input-bg);
|
|
--input-placeholder: var(--oc-input-placeholder);
|
|
--input-focus-border: var(--oc-input-focus-border);
|
|
--input-focus-ring: var(--oc-input-focus-ring);
|
|
--label-fg: var(--oc-text-secondary);
|
|
|
|
/* Interactive states */
|
|
--hover-bg: var(--oc-surface-interactive);
|
|
--active-bg: var(--oc-surface-accent-soft);
|
|
|
|
/* Overlay */
|
|
--overlay-bg: var(--oc-surface-overlay);
|
|
|
|
/* Shadows — refined depth */
|
|
--shadow-dialog: var(--oc-shadow-lg);
|
|
--shadow-hover: var(--oc-shadow-md);
|
|
--shadow-card: var(--oc-shadow-sm);
|
|
|
|
/* Layout widths */
|
|
--page-max: 1536px;
|
|
--page-narrow: 900px;
|
|
--page-min: 320px;
|
|
|
|
--site-header-height: calc(52px + 24px);
|
|
|
|
/* Spacing scale */
|
|
--space-1: var(--oc-space-1);
|
|
--space-2: var(--oc-space-2);
|
|
--space-3: var(--oc-space-3);
|
|
--space-4: var(--oc-space-4);
|
|
--space-5: var(--oc-space-5);
|
|
--space-6: var(--oc-space-6);
|
|
--space-7: var(--oc-space-7);
|
|
--space-8: var(--oc-space-8);
|
|
|
|
/* Typography scale — refined */
|
|
--fs-xs: var(--oc-font-size-xs);
|
|
--fs-sm: var(--oc-font-size-sm);
|
|
--fs-base: var(--oc-font-size-base);
|
|
--fs-md: var(--oc-font-size-md);
|
|
--fs-lg: var(--oc-font-size-lg);
|
|
--fs-xl: var(--oc-font-size-xl);
|
|
--fs-2xl: var(--oc-font-size-2xl);
|
|
--fs-3xl: var(--oc-font-size-3xl);
|
|
|
|
/* Unified radius — one consistent size everywhere */
|
|
--r-lg: var(--oc-radius-surface);
|
|
--r-md: var(--oc-radius-surface);
|
|
--r-sm: var(--oc-radius-control);
|
|
--r-xs: var(--oc-radius-inset);
|
|
--r-pill: var(--oc-radius-control);
|
|
|
|
/* Modern typography — clean and readable */
|
|
--font-display: var(--oc-font-display);
|
|
--font-body: var(--oc-font-body);
|
|
--font-mono: var(--oc-font-mono);
|
|
|
|
/* Metric trend sparklines */
|
|
--metric-trend-line: color-mix(in srgb, #8eb8e8 78%, var(--ink));
|
|
--metric-trend-area: color-mix(in srgb, #8eb8e8 20%, transparent);
|
|
--metric-trend-marker: color-mix(in srgb, #8eb8e8 42%, transparent);
|
|
}
|
|
|
|
/* Light theme — OpenClaw black, white, red */
|
|
[data-theme-family="claw"][data-theme-resolved="light"] {
|
|
color-scheme: light;
|
|
--bg: var(--oc-bg-page);
|
|
--bg-soft: var(--oc-bg-surface);
|
|
--surface: var(--oc-bg-elevated);
|
|
--surface-muted: var(--oc-bg-surface);
|
|
--nav-bg: var(--oc-bg-page);
|
|
--ink: var(--oc-text-primary);
|
|
--ink-soft: var(--oc-text-secondary);
|
|
--accent: var(--oc-accent-primary);
|
|
--accent-fg: var(--oc-text-on-accent);
|
|
--accent-deep: var(--oc-accent-primary-hover);
|
|
--accent-subtle: var(--oc-surface-accent-soft);
|
|
--line: var(--oc-border-subtle);
|
|
--border-ui: var(--oc-border-subtle);
|
|
--border-ui-hover: color-mix(in srgb, var(--oc-text-primary) 20%, transparent);
|
|
--border-ui-active: var(--oc-border-accent);
|
|
|
|
/* Status colors — light */
|
|
--status-success-bg: var(--oc-status-success-bg);
|
|
--status-success-fg: var(--oc-status-success-fg);
|
|
--status-warning-bg: var(--oc-status-warning-bg);
|
|
--status-warning-fg: var(--oc-status-warning-fg);
|
|
--status-error-bg: var(--oc-status-error-bg);
|
|
--status-error-fg: var(--oc-status-error-fg);
|
|
--official-bg: var(--oc-status-info-bg);
|
|
--official-fg: var(--oc-status-info-fg);
|
|
--official-border: color-mix(in srgb, var(--oc-status-info-fg) 26%, var(--oc-border-subtle));
|
|
|
|
/* Form controls — light */
|
|
--input-border: var(--oc-input-border);
|
|
--input-bg: var(--oc-input-bg);
|
|
--input-placeholder: var(--oc-input-placeholder);
|
|
--input-focus-border: var(--oc-input-focus-border);
|
|
--input-focus-ring: var(--oc-input-focus-ring);
|
|
--label-fg: var(--oc-text-secondary);
|
|
|
|
/* Interactive states — light */
|
|
--hover-bg: var(--oc-surface-interactive);
|
|
--active-bg: var(--oc-surface-accent-soft);
|
|
|
|
/* Overlay — light */
|
|
--overlay-bg: var(--oc-surface-overlay);
|
|
|
|
/* Shadows — light */
|
|
--shadow: var(--oc-shadow-md);
|
|
--shadow-dialog: var(--oc-shadow-lg);
|
|
--shadow-hover: var(--oc-shadow-md);
|
|
--shadow-card: var(--oc-shadow-sm);
|
|
|
|
/* Metric trend sparklines */
|
|
--metric-trend-line: color-mix(in srgb, #4a7fd0 84%, var(--ink));
|
|
--metric-trend-area: color-mix(in srgb, #4a7fd0 14%, transparent);
|
|
--metric-trend-marker: color-mix(in srgb, #4a7fd0 30%, transparent);
|
|
|
|
/* Diff viewer — muted, readable in light mode */
|
|
--diff-added: #16a34a;
|
|
--diff-added-strong: #15803d;
|
|
--diff-removed: #e57373;
|
|
--diff-removed-strong: #dc2626;
|
|
--diff-diagonal: #5252520a;
|
|
--diff-border: rgba(0, 0, 0, 0.08);
|
|
--diff-line-number: #9ca3af;
|
|
--diff-scrollbar-rgb: 115, 115, 115;
|
|
}
|
|
|
|
@media (prefers-color-scheme: light) {
|
|
[data-theme-family="claw"][data-theme-mode="system"] {
|
|
color-scheme: light;
|
|
--bg: var(--oc-bg-page);
|
|
--bg-soft: var(--oc-bg-surface);
|
|
--surface: var(--oc-bg-elevated);
|
|
--surface-muted: var(--oc-bg-surface);
|
|
--nav-bg: var(--oc-bg-page);
|
|
--ink: var(--oc-text-primary);
|
|
--ink-soft: var(--oc-text-secondary);
|
|
--accent: var(--oc-accent-primary);
|
|
--accent-fg: var(--oc-text-on-accent);
|
|
--accent-deep: var(--oc-accent-primary-hover);
|
|
--accent-subtle: var(--oc-surface-accent-soft);
|
|
--line: var(--oc-border-subtle);
|
|
--border-ui: var(--oc-border-subtle);
|
|
--border-ui-hover: color-mix(in srgb, var(--oc-text-primary) 20%, transparent);
|
|
--border-ui-active: var(--oc-border-accent);
|
|
|
|
/* Status colors — light */
|
|
--status-success-bg: var(--oc-status-success-bg);
|
|
--status-success-fg: var(--oc-status-success-fg);
|
|
--status-warning-bg: var(--oc-status-warning-bg);
|
|
--status-warning-fg: var(--oc-status-warning-fg);
|
|
--status-error-bg: var(--oc-status-error-bg);
|
|
--status-error-fg: var(--oc-status-error-fg);
|
|
--official-bg: var(--oc-status-info-bg);
|
|
--official-fg: var(--oc-status-info-fg);
|
|
--official-border: color-mix(in srgb, var(--oc-status-info-fg) 26%, var(--oc-border-subtle));
|
|
|
|
/* Form controls — light */
|
|
--input-border: var(--oc-input-border);
|
|
--input-bg: var(--oc-input-bg);
|
|
--input-placeholder: var(--oc-input-placeholder);
|
|
--input-focus-border: var(--oc-input-focus-border);
|
|
--input-focus-ring: var(--oc-input-focus-ring);
|
|
--label-fg: var(--oc-text-secondary);
|
|
|
|
/* Interactive states — light */
|
|
--hover-bg: var(--oc-surface-interactive);
|
|
--active-bg: var(--oc-surface-accent-soft);
|
|
|
|
/* Overlay — light */
|
|
--overlay-bg: var(--oc-surface-overlay);
|
|
|
|
/* Shadows — light */
|
|
--shadow: var(--oc-shadow-md);
|
|
--shadow-dialog: var(--oc-shadow-lg);
|
|
--shadow-hover: var(--oc-shadow-md);
|
|
--shadow-card: var(--oc-shadow-sm);
|
|
|
|
/* Metric trend sparklines */
|
|
--metric-trend-line: color-mix(in srgb, #4a7fd0 84%, var(--ink));
|
|
--metric-trend-area: color-mix(in srgb, #4a7fd0 14%, transparent);
|
|
--metric-trend-marker: color-mix(in srgb, #4a7fd0 30%, transparent);
|
|
|
|
/* Diff viewer — muted, readable in light mode */
|
|
--diff-added: #16a34a;
|
|
--diff-added-strong: #15803d;
|
|
--diff-removed: #e57373;
|
|
--diff-removed-strong: #dc2626;
|
|
--diff-diagonal: #5252520a;
|
|
--diff-border: rgba(0, 0, 0, 0.08);
|
|
--diff-line-number: #9ca3af;
|
|
--diff-scrollbar-rgb: 115, 115, 115;
|
|
}
|
|
}
|
|
|
|
pre,
|
|
code,
|
|
.code-block {
|
|
font-size: 14px;
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
font-family: var(--font-body);
|
|
color: var(--ink);
|
|
background: var(--bg);
|
|
min-height: 100vh;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
font-size: var(--fs-base);
|
|
letter-spacing: -0.01em;
|
|
}
|
|
|
|
html {
|
|
scrollbar-gutter: stable;
|
|
}
|
|
|
|
[data-sonner-toast][data-styled="true"] .clawhub-toast-close {
|
|
top: 50% !important;
|
|
right: 14px !important;
|
|
left: auto !important;
|
|
width: 24px !important;
|
|
height: 24px !important;
|
|
border: 0 !important;
|
|
border-radius: var(--oc-radius-control) !important;
|
|
background: transparent !important;
|
|
color: var(--oc-text-muted) !important;
|
|
transform: translateY(-50%) !important;
|
|
}
|
|
|
|
[data-sonner-toast][data-styled="true"] .clawhub-toast-close:hover {
|
|
background: var(--oc-surface-interactive) !important;
|
|
color: var(--oc-text-primary) !important;
|
|
}
|
|
|
|
[data-sonner-toast][data-styled="true"] .clawhub-toast-close:focus-visible {
|
|
background: var(--oc-surface-interactive) !important;
|
|
box-shadow: 0 0 0 2px var(--oc-focus-ring) !important;
|
|
color: var(--oc-text-primary) !important;
|
|
}
|
|
|
|
/*
|
|
* Radix UI (react-remove-scroll) locks body scroll when a dropdown/dialog/popover
|
|
* opens and, to prevent the scrollbar from disappearing visibly, injects a
|
|
* dynamic stylesheet that sets `padding-right: <scrollbar-width>px !important`
|
|
* on `body[data-scroll-locked]`. We already reserve a stable scrollbar gutter
|
|
* globally via `scrollbar-gutter: stable` on <html>, so Radix's compensation is
|
|
* double-work and ends up shifting the whole page ~15px to the left for the
|
|
* duration the overlay is open — producing a visible horizontal "jump".
|
|
*
|
|
* We neutralize the compensation, but Radix's rule *also* uses `!important`
|
|
* and is injected into <head> at runtime (i.e. after our stylesheet), so a
|
|
* plain `body[data-scroll-locked]` selector would tie on specificity and lose
|
|
* on source order. We therefore prefix `html` to raise specificity (0,1,2 vs
|
|
* Radix's 0,1,1), guaranteeing we win regardless of inject order.
|
|
*/
|
|
html body[data-scroll-locked] {
|
|
padding-right: 0 !important;
|
|
margin-right: 0 !important;
|
|
}
|
|
|
|
a {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
a:hover {
|
|
color: inherit;
|
|
text-decoration: underline;
|
|
text-underline-offset: 2px;
|
|
}
|
|
|
|
a.card:hover,
|
|
a.skill-card:hover,
|
|
a.skill-list-item:hover,
|
|
a.home-quick-link:hover,
|
|
a.home-category-card:hover,
|
|
a.home-v2-c-card:hover,
|
|
a.home-v2-cat-item:hover,
|
|
a.home-v2-trend-card:hover,
|
|
a.dashboard-import-banner-action:hover {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.settings-sidebar-link:hover {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.settings-org-logo .marketplace-icon {
|
|
width: 100%;
|
|
height: 100%;
|
|
border-radius: inherit;
|
|
}
|
|
|
|
/* Global focus indicator for keyboard navigation */
|
|
:focus-visible {
|
|
outline: 2px solid var(--accent);
|
|
outline-offset: 2px;
|
|
border-radius: 2px;
|
|
}
|
|
|
|
.catalog-topic-input:focus-visible {
|
|
outline: none;
|
|
}
|
|
|
|
.sr-only {
|
|
position: absolute;
|
|
width: 1px;
|
|
height: 1px;
|
|
padding: 0;
|
|
margin: -1px;
|
|
overflow: hidden;
|
|
clip: rect(0, 0, 0, 0);
|
|
white-space: nowrap;
|
|
border-width: 0;
|
|
}
|
|
|
|
code {
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.app-shell {
|
|
position: relative;
|
|
min-width: var(--page-min);
|
|
min-height: 100vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.app-shell:has(
|
|
.skill-detail-page,
|
|
.plugin-detail-page,
|
|
.security-audit-page,
|
|
.publisher-profile-route,
|
|
.dashboard-route
|
|
)::before {
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
left: 0;
|
|
z-index: 0;
|
|
pointer-events: none;
|
|
content: "";
|
|
height: 620px;
|
|
background:
|
|
radial-gradient(
|
|
ellipse 58% 34% at 48% 0%,
|
|
color-mix(in srgb, #8f1d24 18%, transparent) 0%,
|
|
transparent 62%
|
|
),
|
|
radial-gradient(
|
|
ellipse 44% 26% at 28% 8%,
|
|
color-mix(in srgb, #d34848 8%, transparent) 0%,
|
|
transparent 68%
|
|
);
|
|
}
|
|
|
|
.app-shell:has(.dashboard-route)::before {
|
|
height: 520px;
|
|
background:
|
|
radial-gradient(
|
|
ellipse 52% 30% at 52% 0%,
|
|
color-mix(in srgb, #6478ff 7%, transparent) 0%,
|
|
transparent 64%
|
|
),
|
|
radial-gradient(
|
|
ellipse 42% 24% at 30% 6%,
|
|
color-mix(in srgb, var(--ink) 5%, transparent) 0%,
|
|
transparent 68%
|
|
);
|
|
}
|
|
|
|
.app-shell:has(.dashboard-route--welcome)::before {
|
|
height: 640px;
|
|
background:
|
|
radial-gradient(
|
|
ellipse 52% 40% at 46% 2%,
|
|
color-mix(in srgb, #6472c9 8%, transparent) 0%,
|
|
transparent 72%
|
|
),
|
|
radial-gradient(
|
|
ellipse 40% 32% at 68% 12%,
|
|
color-mix(in srgb, #53618f 5%, transparent) 0%,
|
|
transparent 74%
|
|
),
|
|
radial-gradient(
|
|
ellipse 36% 28% at 26% 18%,
|
|
color-mix(in srgb, #7180b5 4%, transparent) 0%,
|
|
transparent 76%
|
|
);
|
|
filter: blur(26px);
|
|
opacity: 0.86;
|
|
transform: translate3d(-1%, -1%, 0) scale(1.1);
|
|
transform-origin: 50% 12%;
|
|
animation: dashboard-welcome-wash-drift 36s linear infinite;
|
|
will-change: transform;
|
|
}
|
|
|
|
.app-shell:has(.dashboard-route--welcome) {
|
|
overflow-x: clip;
|
|
}
|
|
|
|
@keyframes dashboard-welcome-wash-drift {
|
|
0% {
|
|
transform: translate3d(-1%, -1%, 0) scale(1.1);
|
|
}
|
|
|
|
25% {
|
|
transform: translate3d(1%, -0.5%, 0) scale(1.12);
|
|
}
|
|
|
|
50% {
|
|
transform: translate3d(1%, 1%, 0) scale(1.1);
|
|
}
|
|
|
|
75% {
|
|
transform: translate3d(-1%, 0.5%, 0) scale(1.12);
|
|
}
|
|
|
|
100% {
|
|
transform: translate3d(-1%, -1%, 0) scale(1.1);
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.app-shell:has(.dashboard-route--welcome)::before {
|
|
animation: none;
|
|
}
|
|
}
|
|
|
|
[data-theme-resolved="light"]
|
|
.app-shell:has(
|
|
.skill-detail-page,
|
|
.plugin-detail-page,
|
|
.security-audit-page,
|
|
.publisher-profile-route,
|
|
.dashboard-route
|
|
)::before {
|
|
display: none;
|
|
}
|
|
|
|
.app-shell:has(
|
|
.skill-detail-page,
|
|
.plugin-detail-page,
|
|
.security-audit-page,
|
|
.publisher-profile-route,
|
|
.dashboard-route
|
|
)
|
|
.navbar.navbar-calm {
|
|
background: transparent;
|
|
}
|
|
|
|
.app-shell:has(
|
|
.skill-detail-page,
|
|
.plugin-detail-page,
|
|
.security-audit-page,
|
|
.publisher-profile-route,
|
|
.dashboard-route
|
|
)
|
|
.navbar.navbar-calm.navbar-calm-scrolled {
|
|
background: color-mix(in srgb, var(--nav-bg) 78%, transparent);
|
|
}
|
|
|
|
.app-shell main {
|
|
position: relative;
|
|
flex: 1;
|
|
padding-bottom: clamp(72px, 9vw, 128px);
|
|
}
|
|
|
|
.site-footer {
|
|
padding: var(--space-3) var(--space-5);
|
|
margin-top: auto;
|
|
background: var(--surface);
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.site-footer-inner {
|
|
width: 100%;
|
|
padding: 0 var(--space-5);
|
|
}
|
|
|
|
.site-footer-divider {
|
|
height: 1px;
|
|
background: var(--line);
|
|
margin: var(--space-5) 0;
|
|
}
|
|
|
|
.site-footer-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 24px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.site-footer-copy {
|
|
font-size: var(--fs-sm);
|
|
color: var(--ink-soft);
|
|
text-align: center;
|
|
flex: 1;
|
|
}
|
|
|
|
.site-footer-copy a {
|
|
color: var(--accent);
|
|
text-decoration: none;
|
|
font-weight: 500;
|
|
transition: opacity 0.15s ease;
|
|
}
|
|
|
|
.site-footer-copy a:hover {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.section-cta {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
margin-top: 18px;
|
|
}
|
|
|
|
.navbar {
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 10;
|
|
background: var(--nav-bg);
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.app-shell:has(
|
|
.skill-detail-page,
|
|
.plugin-detail-page,
|
|
.security-audit-page,
|
|
.publisher-profile-route,
|
|
.dashboard-route
|
|
)
|
|
.navbar {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.navbar-inner {
|
|
width: 100%;
|
|
max-width: var(--page-max);
|
|
margin: 0 auto;
|
|
padding: 0 var(--space-5);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.navbar-top {
|
|
display: grid;
|
|
grid-template-columns: max-content max-content minmax(220px, 1fr) auto;
|
|
align-items: center;
|
|
column-gap: 16px;
|
|
row-gap: 10px;
|
|
padding: 12px 0;
|
|
min-height: 62px;
|
|
}
|
|
|
|
.navbar-search {
|
|
width: 100%;
|
|
max-width: none;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
background: color-mix(in srgb, var(--surface) 92%, transparent);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-btn);
|
|
padding: 0 18px;
|
|
height: 32px;
|
|
transition:
|
|
border-color 0.15s ease,
|
|
box-shadow 0.15s ease,
|
|
background 0.15s ease;
|
|
}
|
|
|
|
.navbar-search-wrap {
|
|
position: relative;
|
|
min-width: 0;
|
|
}
|
|
|
|
.navbar-search:focus-within {
|
|
border-color: var(--input-focus-border);
|
|
background: var(--surface);
|
|
box-shadow: 0 0 0 2px var(--input-focus-ring);
|
|
}
|
|
|
|
.navbar-search-icon {
|
|
color: var(--ink-soft);
|
|
opacity: 0.6;
|
|
flex-shrink: 0;
|
|
width: 20px;
|
|
height: 20px;
|
|
transition:
|
|
color 0.15s ease,
|
|
opacity 0.15s ease;
|
|
}
|
|
|
|
.navbar-search:focus-within .navbar-search-icon {
|
|
color: var(--accent);
|
|
opacity: 1;
|
|
}
|
|
|
|
.navbar-search-input {
|
|
all: unset;
|
|
flex: 1;
|
|
font-size: 0.95rem;
|
|
color: var(--ink);
|
|
min-width: 0;
|
|
}
|
|
|
|
.navbar-search-input::-webkit-search-cancel-button,
|
|
.navbar-search-input::-webkit-search-decoration {
|
|
display: none;
|
|
-webkit-appearance: none;
|
|
}
|
|
|
|
.navbar-search-input::placeholder {
|
|
color: var(--ink-soft);
|
|
font-size: 0.86rem;
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.navbar-search-typeahead {
|
|
position: absolute;
|
|
z-index: 50;
|
|
top: calc(100% + 8px);
|
|
left: 0;
|
|
right: 0;
|
|
overflow: hidden;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
background: var(--surface);
|
|
box-shadow: var(--oc-shadow-lg);
|
|
}
|
|
|
|
.navbar-search-typeahead-section + .navbar-search-typeahead-section {
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.navbar-search-typeahead-heading {
|
|
padding: 8px 12px;
|
|
background: var(--surface-muted);
|
|
color: var(--ink);
|
|
font-size: var(--fs-sm);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.navbar-search-typeahead-row {
|
|
all: unset;
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
width: 100%;
|
|
min-height: 44px;
|
|
padding: 8px 12px;
|
|
border-top: 1px solid var(--line);
|
|
color: var(--ink);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.navbar-search-typeahead-row:hover,
|
|
.navbar-search-typeahead-row.is-active {
|
|
background: var(--surface-muted);
|
|
}
|
|
|
|
.navbar-search-typeahead-row.is-footer {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.navbar-search-typeahead-icon {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 24px;
|
|
height: 24px;
|
|
border-radius: var(--oc-radius-inset);
|
|
background: var(--oc-surface-accent-soft);
|
|
color: var(--accent);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 700;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.navbar-search-typeahead-copy {
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-width: 0;
|
|
flex: 1;
|
|
}
|
|
|
|
.navbar-search-typeahead-title,
|
|
.navbar-search-typeahead-meta {
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.navbar-search-typeahead-title {
|
|
font-size: var(--fs-sm);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.navbar-search-typeahead-meta {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
}
|
|
|
|
.navbar-search-typeahead-meta:has(.navbar-search-typeahead-publisher) {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.navbar-search-typeahead-publisher,
|
|
.navbar-search-typeahead-package {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.navbar-search-typeahead-separator {
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.navbar-search-typeahead-meta .official-badge {
|
|
width: 15px;
|
|
height: 15px;
|
|
border: 0;
|
|
background: transparent;
|
|
}
|
|
|
|
.navbar-search-typeahead-meta .official-badge svg {
|
|
width: 13px;
|
|
height: 13px;
|
|
}
|
|
|
|
.navbar-search-typeahead-status {
|
|
padding: 12px;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.navbar-search-home {
|
|
justify-content: space-between;
|
|
cursor: pointer;
|
|
color: var(--ink-soft);
|
|
font: inherit;
|
|
}
|
|
|
|
.navbar-search-home-copy {
|
|
flex: 1;
|
|
min-width: 0;
|
|
text-align: left;
|
|
color: inherit;
|
|
}
|
|
|
|
.navbar-search-home-kbd {
|
|
font-size: 0.75rem;
|
|
font-weight: 600;
|
|
color: inherit;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.navbar-search-mobile-trigger {
|
|
display: none;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 36px;
|
|
height: 36px;
|
|
border-radius: var(--r-pill);
|
|
border: 1px solid var(--line);
|
|
background: var(--surface);
|
|
cursor: pointer;
|
|
color: var(--ink-soft);
|
|
transition: border-color 0.15s ease;
|
|
}
|
|
|
|
.navbar-search-mobile-trigger:hover {
|
|
border-color: var(--border-ui-hover);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.navbar-search-mobile {
|
|
display: none;
|
|
align-items: center;
|
|
gap: 8px;
|
|
background: var(--surface-muted);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-pill);
|
|
padding: 0 14px;
|
|
height: 36px;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.navbar-search-mobile-wrap {
|
|
display: none;
|
|
position: relative;
|
|
}
|
|
|
|
.navbar-search-mobile-overlay {
|
|
display: none;
|
|
}
|
|
|
|
.navbar-search-mobile-clear {
|
|
appearance: none;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex: 0 0 auto;
|
|
width: auto;
|
|
height: 100%;
|
|
padding: 0;
|
|
border: 0;
|
|
background: transparent;
|
|
color: color-mix(in srgb, var(--ink) 74%, var(--ink-soft));
|
|
font: inherit;
|
|
font-size: 0.8125rem;
|
|
font-weight: 650;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.navbar-search-mobile-clear:hover {
|
|
color: color-mix(in srgb, var(--ink) 88%, var(--ink-soft));
|
|
}
|
|
|
|
.navbar-tabs {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-start;
|
|
gap: 4px;
|
|
overflow-x: auto;
|
|
scrollbar-width: none;
|
|
-ms-overflow-style: none;
|
|
border-top: 1px solid var(--line);
|
|
padding: 6px 0;
|
|
}
|
|
|
|
.navbar-tabs::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.navbar-top-links {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: flex-start;
|
|
gap: 4px;
|
|
min-width: 0;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.navbar-top-links .navbar-tab {
|
|
min-height: 32px;
|
|
padding: 7px 10px;
|
|
}
|
|
|
|
.navbar-tabs-primary,
|
|
.navbar-tabs-secondary {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 2px;
|
|
}
|
|
|
|
.navbar-tabs-secondary {
|
|
margin-left: 8px;
|
|
padding-left: 12px;
|
|
border-left: 1px solid var(--line);
|
|
}
|
|
|
|
.navbar-tab {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 10px 16px;
|
|
font-size: var(--fs-sm);
|
|
font-weight: 500;
|
|
color: var(--ink-soft);
|
|
border-radius: var(--r-sm);
|
|
white-space: nowrap;
|
|
transition: all 0.15s ease;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.navbar-tab:hover {
|
|
color: var(--ink);
|
|
background: var(--surface-muted);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.navbar-tab:hover svg {
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.navbar-tab.active,
|
|
.navbar-tab[data-status="active"] {
|
|
color: var(--ink);
|
|
font-weight: 600;
|
|
background: color-mix(in srgb, var(--accent) 16%, transparent);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.navbar-tab.active svg,
|
|
.navbar-tab[data-status="active"] svg {
|
|
opacity: 1;
|
|
color: var(--accent);
|
|
}
|
|
|
|
.navbar-tab-secondary {
|
|
font-size: var(--fs-xs);
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.navbar-tab-secondary:hover {
|
|
opacity: 1;
|
|
}
|
|
|
|
.navbar-tab-secondary.active,
|
|
.navbar-tab-secondary[data-status="active"] {
|
|
opacity: 1;
|
|
}
|
|
|
|
.brand {
|
|
font-family: var(--font-display);
|
|
font-size: var(--fs-md);
|
|
font-weight: 700;
|
|
letter-spacing: -0.02em;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
color: var(--ink);
|
|
min-width: 0;
|
|
line-height: 1;
|
|
}
|
|
|
|
.brand-name {
|
|
display: inline-flex;
|
|
min-width: 6.5ch;
|
|
}
|
|
|
|
.brand-mark {
|
|
width: 32px;
|
|
height: 32px;
|
|
border-radius: var(--r-sm);
|
|
display: grid;
|
|
place-items: center;
|
|
overflow: hidden;
|
|
background: transparent;
|
|
box-shadow:
|
|
inset 0 0 0 1px color-mix(in srgb, var(--ink) 8%, transparent),
|
|
0 1px 2px rgba(0, 0, 0, 0.1),
|
|
0 2px 6px rgba(0, 0, 0, 0.05);
|
|
transition: box-shadow 0.2s ease;
|
|
}
|
|
|
|
.brand-mark img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
border-radius: var(--r-sm);
|
|
transform: translateZ(0);
|
|
}
|
|
|
|
.nav-links {
|
|
display: flex;
|
|
gap: 2px;
|
|
font-size: 0.9rem;
|
|
color: var(--ink-soft);
|
|
align-items: center;
|
|
}
|
|
|
|
.nav-links a {
|
|
padding: 7px 12px;
|
|
border-radius: var(--r-sm);
|
|
transition:
|
|
color 0.15s ease,
|
|
background 0.15s ease;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.nav-links a:hover {
|
|
color: var(--ink);
|
|
background: color-mix(in srgb, var(--ink) 6%, transparent);
|
|
}
|
|
|
|
.nav-links a.active,
|
|
.nav-links a[data-status="active"] {
|
|
color: var(--ink);
|
|
font-weight: 600;
|
|
background: color-mix(in srgb, var(--ink) 7%, transparent);
|
|
}
|
|
|
|
.nav-mobile {
|
|
display: none;
|
|
}
|
|
|
|
.mobile-nav-sheet {
|
|
width: min(86vw, 320px);
|
|
}
|
|
|
|
.mobile-nav-section {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.mobile-nav-section + .mobile-nav-section {
|
|
padding-top: 12px;
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.mobile-nav-appearance-section {
|
|
justify-items: start;
|
|
}
|
|
|
|
.mobile-nav-appearance-section .navbar-theme-switcher {
|
|
--navbar-theme-seg: 34px;
|
|
justify-content: flex-start;
|
|
gap: var(--navbar-theme-gap);
|
|
width: var(--navbar-theme-expanded-w);
|
|
}
|
|
|
|
.mobile-nav-appearance-section .navbar-theme-switcher-btn:not(.is-active) {
|
|
max-width: var(--navbar-theme-seg);
|
|
opacity: 1;
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.mobile-nav-appearance-section
|
|
.navbar-theme-switcher:not(:hover):not(:focus-within)
|
|
.navbar-theme-switcher-btn:not(.is-active) {
|
|
max-width: var(--navbar-theme-seg);
|
|
opacity: 1;
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.mobile-nav-section-title {
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
letter-spacing: 0.06em;
|
|
text-transform: uppercase;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.mobile-nav-brand {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.mobile-nav-brand-mark {
|
|
width: 28px;
|
|
height: 28px;
|
|
border-radius: var(--r-sm);
|
|
display: grid;
|
|
place-items: center;
|
|
overflow: hidden;
|
|
background: transparent;
|
|
box-shadow:
|
|
inset 0 0 0 1px color-mix(in srgb, var(--ink) 8%, transparent),
|
|
0 1px 2px rgba(0, 0, 0, 0.08);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.mobile-nav-brand-mark-image {
|
|
width: 32px;
|
|
height: 32px;
|
|
object-fit: cover;
|
|
border-radius: 0;
|
|
transform: translateZ(0);
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.mobile-nav-brand-name {
|
|
display: inline-flex;
|
|
min-width: 0;
|
|
}
|
|
|
|
.mobile-nav-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
min-height: 44px;
|
|
padding: 10px 12px;
|
|
border-radius: var(--r-sm);
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
background: transparent;
|
|
border: 1px solid transparent;
|
|
text-align: left;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.mobile-nav-link:hover {
|
|
background: var(--hover-bg);
|
|
border-color: var(--line);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.mobile-nav-link-external {
|
|
margin-left: auto;
|
|
color: var(--oc-text-muted);
|
|
}
|
|
|
|
.nav-mobile-trigger {
|
|
position: relative;
|
|
width: 38px;
|
|
height: 38px;
|
|
border-radius: var(--r-pill);
|
|
border: 1px solid var(--line);
|
|
background: var(--surface);
|
|
display: grid;
|
|
place-items: center;
|
|
cursor: pointer;
|
|
transition:
|
|
transform 0.2s ease,
|
|
box-shadow 0.2s ease;
|
|
}
|
|
|
|
.nav-mobile-trigger::after {
|
|
content: "";
|
|
position: absolute;
|
|
inset: -3px;
|
|
border-radius: var(--r-pill);
|
|
}
|
|
|
|
.nav-mobile-trigger:hover {
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 10px 18px rgba(255, 255, 255, 0.18);
|
|
}
|
|
|
|
.nav-mobile-trigger:focus-visible {
|
|
outline: 3px solid rgba(255, 255, 255, 0.35);
|
|
outline-offset: 3px;
|
|
}
|
|
|
|
.nav-actions {
|
|
display: flex;
|
|
gap: 14px;
|
|
align-items: center;
|
|
justify-self: end;
|
|
min-width: 0;
|
|
}
|
|
|
|
.github-sign-in-button {
|
|
height: 32px !important;
|
|
min-height: 32px !important;
|
|
padding: 0 12px !important;
|
|
gap: 8px !important;
|
|
border-color: var(--border-ui) !important;
|
|
background: transparent !important;
|
|
color: var(--ink) !important;
|
|
font-size: 0.86rem !important;
|
|
font-weight: 650 !important;
|
|
line-height: 1 !important;
|
|
box-shadow: none !important;
|
|
}
|
|
|
|
.github-sign-in-button:hover:not(:disabled) {
|
|
border-color: color-mix(in srgb, var(--ink) 24%, var(--border-ui)) !important;
|
|
background: var(--surface-muted) !important;
|
|
color: var(--ink) !important;
|
|
}
|
|
|
|
.github-sign-in-button .github-sign-in-logo {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
.auth-loading-placeholder {
|
|
display: inline-flex;
|
|
width: 150px;
|
|
border: 1px solid var(--border-ui) !important;
|
|
border-radius: var(--r-btn);
|
|
background: var(--surface-muted) !important;
|
|
pointer-events: none;
|
|
opacity: 0.45;
|
|
}
|
|
|
|
.sign-in-full-copy {
|
|
display: inline-block;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.sign-in-compact-copy {
|
|
display: none;
|
|
}
|
|
|
|
.user-trigger {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
height: 32px;
|
|
border: 1px solid var(--line);
|
|
background: var(--surface);
|
|
padding: 0 10px 0 4px;
|
|
border-radius: var(--r-btn);
|
|
cursor: pointer;
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
transition:
|
|
border-color 0.15s ease,
|
|
box-shadow 0.15s ease;
|
|
}
|
|
|
|
.user-trigger:hover {
|
|
border-color: color-mix(in srgb, var(--ink) 20%, var(--line));
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
|
|
}
|
|
|
|
.user-trigger img,
|
|
.user-menu-fallback {
|
|
width: 24px;
|
|
height: 24px;
|
|
border-radius: 50%;
|
|
display: grid;
|
|
place-items: center;
|
|
background: rgba(255, 255, 255, 0.2);
|
|
color: var(--accent-deep);
|
|
font-weight: 700;
|
|
font-size: 0.95rem;
|
|
}
|
|
|
|
.user-trigger-handle {
|
|
font-family: var(--font-body);
|
|
font-size: var(--fs-sm);
|
|
font-weight: 600;
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
.user-menu-chevron {
|
|
color: var(--ink-soft);
|
|
flex-shrink: 0;
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.user-dropdown-content {
|
|
overflow: hidden;
|
|
border-radius: var(--r-md) !important;
|
|
background-clip: padding-box;
|
|
}
|
|
|
|
/* Remove global link underline and focus outline from user dropdown items */
|
|
.user-dropdown-content a,
|
|
.user-dropdown-content a:hover {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.user-dropdown-content [data-slot="dropdown-menu-item"]:focus-visible {
|
|
outline: none;
|
|
}
|
|
|
|
[data-theme-resolved="light"]
|
|
.user-dropdown-content
|
|
[data-slot="dropdown-menu-item"]:not(.user-dropdown-theme-button):where(
|
|
:hover,
|
|
:focus,
|
|
[data-highlighted]
|
|
) {
|
|
background: var(--hover-bg);
|
|
}
|
|
|
|
.user-dropdown-theme-row {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 4px;
|
|
}
|
|
|
|
.user-dropdown-theme-button {
|
|
min-width: 0;
|
|
justify-content: center;
|
|
padding-inline: 0;
|
|
}
|
|
|
|
.user-dropdown-theme-button[data-status="active"] {
|
|
background: color-mix(in srgb, var(--accent) 12%, transparent);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.navbar-theme-switcher {
|
|
--navbar-theme-ease: cubic-bezier(0.4, 0, 0.2, 1);
|
|
--navbar-theme-pad: 3px;
|
|
--navbar-theme-gap: 2px;
|
|
--navbar-theme-outer-r: var(--oc-radius-control);
|
|
--navbar-theme-inner-r: var(--oc-radius-inset);
|
|
--navbar-theme-seg: 26px;
|
|
--navbar-theme-collapsed-w: calc(var(--navbar-theme-seg) + var(--navbar-theme-pad) * 2);
|
|
--navbar-theme-expanded-w: calc(
|
|
var(--navbar-theme-seg) * 3 + var(--navbar-theme-gap) * 2 + var(--navbar-theme-pad) * 2
|
|
);
|
|
box-sizing: border-box;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-shrink: 0;
|
|
gap: 0;
|
|
width: var(--navbar-theme-collapsed-w);
|
|
height: var(--navbar-theme-collapsed-w);
|
|
padding: var(--navbar-theme-pad);
|
|
border: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
|
|
border-radius: var(--navbar-theme-outer-r);
|
|
background: color-mix(in srgb, var(--surface) 95%, transparent);
|
|
overflow: hidden;
|
|
transition:
|
|
width 0.22s var(--navbar-theme-ease),
|
|
gap 0.22s var(--navbar-theme-ease),
|
|
border-color 0.18s ease,
|
|
background 0.18s ease;
|
|
}
|
|
|
|
.navbar-theme-switcher-skeleton {
|
|
display: inline-flex;
|
|
flex: 0 0 auto;
|
|
width: 32px;
|
|
height: 32px;
|
|
border: 1px solid color-mix(in srgb, var(--ink) 8%, transparent);
|
|
border-radius: var(--oc-radius-control);
|
|
background: linear-gradient(
|
|
90deg,
|
|
color-mix(in srgb, var(--surface-muted) 78%, transparent),
|
|
color-mix(in srgb, var(--line) 64%, transparent),
|
|
color-mix(in srgb, var(--surface-muted) 78%, transparent)
|
|
);
|
|
background-size: 220% 100%;
|
|
animation: skeleton-shimmer 1.15s ease-in-out infinite;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.navbar-theme-switcher-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex: 0 0 auto;
|
|
width: var(--navbar-theme-seg);
|
|
min-width: 0;
|
|
max-width: var(--navbar-theme-seg);
|
|
height: var(--navbar-theme-seg);
|
|
padding: 0;
|
|
border: none;
|
|
border-radius: var(--navbar-theme-inner-r);
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
overflow: hidden;
|
|
transition:
|
|
max-width 0.22s var(--navbar-theme-ease),
|
|
opacity 0.18s var(--navbar-theme-ease),
|
|
color 0.15s ease,
|
|
background 0.15s ease;
|
|
}
|
|
|
|
.navbar-theme-switcher-btn svg {
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.navbar-theme-switcher-btn.is-active {
|
|
color: var(--ink);
|
|
background: color-mix(in srgb, var(--ink) 10%, transparent);
|
|
opacity: 1;
|
|
}
|
|
|
|
.navbar-theme-switcher:hover,
|
|
.navbar-theme-switcher:focus-within {
|
|
justify-content: flex-start;
|
|
gap: var(--navbar-theme-gap);
|
|
width: var(--navbar-theme-expanded-w);
|
|
border-color: color-mix(in srgb, var(--ink) 16%, transparent);
|
|
background: var(--surface-muted);
|
|
}
|
|
|
|
.navbar-theme-switcher-btn:hover,
|
|
.navbar-theme-switcher-btn:focus-visible {
|
|
color: var(--ink);
|
|
background: color-mix(in srgb, var(--ink) 8%, transparent);
|
|
}
|
|
|
|
.navbar-theme-switcher-btn.is-active:hover,
|
|
.navbar-theme-switcher-btn.is-active:focus-visible {
|
|
background: color-mix(in srgb, var(--ink) 14%, transparent);
|
|
}
|
|
|
|
.navbar-theme-switcher-btn:focus-visible {
|
|
outline: 2px solid var(--input-focus-border);
|
|
outline-offset: 1px;
|
|
}
|
|
|
|
@media (hover: hover) {
|
|
.navbar-theme-switcher:not(:hover):not(:focus-within) .navbar-theme-switcher-btn:not(.is-active) {
|
|
max-width: 0;
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.navbar-theme-switcher:hover .navbar-theme-switcher-btn:not(.is-active),
|
|
.navbar-theme-switcher:focus-within .navbar-theme-switcher-btn:not(.is-active) {
|
|
max-width: var(--navbar-theme-seg);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@media (hover: none) {
|
|
.navbar-theme-switcher {
|
|
justify-content: flex-start;
|
|
gap: var(--navbar-theme-gap);
|
|
width: var(--navbar-theme-expanded-w);
|
|
}
|
|
|
|
.navbar-theme-switcher-btn:not(.is-active) {
|
|
max-width: var(--navbar-theme-seg);
|
|
opacity: 1;
|
|
pointer-events: auto;
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.navbar-theme-switcher,
|
|
.navbar-theme-switcher-btn {
|
|
transition-duration: 0.01ms;
|
|
}
|
|
|
|
.navbar-theme-switcher-skeleton {
|
|
animation: none;
|
|
}
|
|
}
|
|
|
|
/* @deprecated — use <Button> from components/ui/button.tsx */
|
|
.btn {
|
|
border: 1px solid var(--border-ui);
|
|
padding: 10px 16px;
|
|
border-radius: var(--r-md);
|
|
background: var(--surface);
|
|
font-family: var(--font-body);
|
|
font-weight: 500;
|
|
font-size: var(--fs-sm);
|
|
color: var(--ink);
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 8px;
|
|
white-space: nowrap;
|
|
cursor: pointer;
|
|
min-height: 36px;
|
|
transition: all 0.15s ease;
|
|
}
|
|
|
|
.btn:hover {
|
|
border-color: var(--border-ui-hover);
|
|
background: var(--hover-bg);
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.btn:disabled {
|
|
cursor: not-allowed;
|
|
opacity: 0.5;
|
|
transform: none;
|
|
}
|
|
|
|
.btn-primary {
|
|
background: var(--accent);
|
|
color: var(--accent-fg);
|
|
border: 1px solid var(--accent);
|
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.btn-primary:hover {
|
|
background: var(--accent-deep);
|
|
border-color: var(--accent-deep);
|
|
box-shadow: 0 4px 12px rgba(220, 38, 38, 0.3);
|
|
}
|
|
|
|
.hero {
|
|
position: relative;
|
|
overflow: hidden;
|
|
padding: 72px 28px 56px;
|
|
}
|
|
|
|
.hero-inner {
|
|
max-width: var(--page-max);
|
|
margin: 0 auto;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
|
|
gap: 40px;
|
|
align-items: center;
|
|
transition:
|
|
grid-template-columns 0.45s cubic-bezier(0.2, 0.9, 0.2, 1),
|
|
gap 0.45s cubic-bezier(0.2, 0.9, 0.2, 1);
|
|
}
|
|
|
|
.hero-copy {
|
|
max-height: 640px;
|
|
overflow: hidden;
|
|
min-width: 0;
|
|
transition:
|
|
opacity 0.35s ease,
|
|
transform 0.35s ease,
|
|
max-height 0.35s ease;
|
|
}
|
|
|
|
.hero.search-mode .hero-inner {
|
|
grid-template-columns: 0fr minmax(0, 1fr);
|
|
gap: 0px;
|
|
}
|
|
|
|
.hero.search-mode .hero-copy {
|
|
opacity: 0;
|
|
transform: translateY(-12px);
|
|
max-height: 0;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.hero-title {
|
|
font-family: var(--font-display);
|
|
font-size: clamp(2.6rem, 4vw, 4rem);
|
|
letter-spacing: -0.03em;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.hero-subtitle {
|
|
font-size: 1.1rem;
|
|
color: var(--ink-soft);
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.hero-card {
|
|
background: var(--bg-soft);
|
|
border-radius: var(--r-lg);
|
|
padding: 24px;
|
|
box-shadow: var(--shadow);
|
|
border: 1px solid var(--line);
|
|
}
|
|
|
|
.hero-search-card {
|
|
transition:
|
|
transform 0.35s ease,
|
|
box-shadow 0.35s ease;
|
|
}
|
|
|
|
.hero.search-mode .hero-search-card {
|
|
transform: scale(1.01);
|
|
box-shadow: 0 22px 46px rgba(29, 26, 23, 0.16);
|
|
}
|
|
|
|
.hero-badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
background: rgba(255, 255, 255, 0.12);
|
|
color: var(--accent-deep);
|
|
border-radius: var(--r-pill);
|
|
padding: 6px 12px;
|
|
font-weight: 600;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.section {
|
|
width: 100%;
|
|
max-width: var(--page-max);
|
|
margin: 0 auto;
|
|
padding: var(--space-5) var(--space-5) var(--space-7);
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.section.detail-page-section {
|
|
max-width: 1296px;
|
|
padding-right: 48px;
|
|
padding-left: 48px;
|
|
padding-top: calc(var(--space-5) + 16px);
|
|
}
|
|
|
|
.section.detail-page-section:is(.skill-detail-page, .plugin-detail-page) {
|
|
padding-top: calc(var(--space-5) + clamp(20px, 2.2vw, 32px));
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.section.detail-page-section {
|
|
padding-right: 20px;
|
|
padding-left: 20px;
|
|
}
|
|
}
|
|
|
|
.security-scanner-layout {
|
|
display: grid;
|
|
width: 100%;
|
|
grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
|
|
gap: var(--space-5);
|
|
}
|
|
|
|
.security-scan-hero {
|
|
display: grid;
|
|
gap: 30px;
|
|
min-width: 0;
|
|
padding: 8px 0 clamp(24px, 4vw, 44px);
|
|
}
|
|
|
|
.security-audit-eyebrow {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.72rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.12em;
|
|
line-height: 1.2;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.security-scan-hero-heading {
|
|
display: grid;
|
|
width: 100%;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.security-scan-hero-title-row {
|
|
display: flex;
|
|
width: 100%;
|
|
align-items: center;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.security-audit-sidebar-actions {
|
|
width: 100%;
|
|
}
|
|
|
|
.security-audit-sidebar-action-status {
|
|
width: 100%;
|
|
}
|
|
|
|
.security-scan-hero-subtext {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-md);
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.security-scan-hero-subtext span:last-child {
|
|
min-width: 0;
|
|
}
|
|
|
|
.security-report-section {
|
|
max-width: 1360px;
|
|
padding-top: clamp(20px, 3vw, 40px);
|
|
}
|
|
|
|
.security-report-shell {
|
|
display: grid;
|
|
gap: 20px;
|
|
}
|
|
|
|
.security-report-layout {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
|
|
gap: clamp(28px, 5vw, 72px);
|
|
align-items: start;
|
|
}
|
|
|
|
.security-report-main {
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: clamp(40px, 5vw, 56px);
|
|
}
|
|
|
|
.security-report-header {
|
|
display: grid;
|
|
gap: 18px;
|
|
padding-bottom: 22px;
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.security-report-heading {
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.security-report-badges {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.security-report-heading h1 {
|
|
margin: 0;
|
|
font-family: var(--font-display);
|
|
font-size: clamp(2.6rem, 5.2vw, 4.5rem);
|
|
line-height: 1.05;
|
|
font-weight: 800;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.security-report-verdict-line {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 12px;
|
|
max-width: 820px;
|
|
color: var(--ink-soft);
|
|
font-size: 0.98rem;
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.security-report-verdict-line span:last-child {
|
|
min-width: 0;
|
|
}
|
|
|
|
.security-report-overview-body {
|
|
display: grid;
|
|
gap: 14px;
|
|
max-width: 980px;
|
|
}
|
|
|
|
.security-report-overview-body p {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.95rem;
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.security-report-panel {
|
|
display: grid;
|
|
gap: 28px;
|
|
}
|
|
|
|
.security-report-panel-compact {
|
|
gap: 12px;
|
|
}
|
|
|
|
.security-report-panel-body .agentic-risk-findings > .scan-findings-title {
|
|
margin: 0;
|
|
font-family: var(--font-display);
|
|
font-size: 1.35rem;
|
|
line-height: 1.15;
|
|
color: var(--ink);
|
|
text-transform: none;
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
.security-report-panel-header {
|
|
padding-bottom: 12px;
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.security-report-panel-header .skill-install-panel-title {
|
|
font-size: var(--font-size-fs-xl);
|
|
line-height: 1.15;
|
|
font-weight: 760;
|
|
}
|
|
|
|
.security-report-panel-title-row {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skillspector-attribution {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
color: var(--ink-soft);
|
|
font-size: 0.72rem;
|
|
font-weight: 650;
|
|
line-height: 1;
|
|
text-transform: none;
|
|
}
|
|
|
|
.skillspector-nvidia-mark {
|
|
width: 16px;
|
|
height: 16px;
|
|
object-fit: contain;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.skillspector-findings-block {
|
|
display: grid;
|
|
gap: 18px;
|
|
}
|
|
|
|
.skillspector-checks {
|
|
display: grid;
|
|
gap: 10px;
|
|
margin-top: 28px;
|
|
}
|
|
|
|
.skillspector-findings-block + .skillspector-checks {
|
|
margin-top: 44px;
|
|
}
|
|
|
|
.skillspector-checks + .skillspector-findings-block {
|
|
margin-top: 44px;
|
|
}
|
|
|
|
.skillspector-subsection-title {
|
|
color: var(--ink);
|
|
font-size: 1.1rem;
|
|
font-weight: 720;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.skillspector-checks-list {
|
|
display: grid;
|
|
gap: 0;
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style: none;
|
|
}
|
|
|
|
.skillspector-check-row {
|
|
display: grid;
|
|
align-items: center;
|
|
grid-template-columns: 24px minmax(170px, max-content) minmax(0, 1fr);
|
|
gap: 10px 14px;
|
|
padding: 8px 0;
|
|
}
|
|
|
|
.skillspector-check-row-flagged .skillspector-check-category {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.skillspector-check-icon {
|
|
width: 18px;
|
|
height: 18px;
|
|
align-self: center;
|
|
color: var(--status-success-fg);
|
|
stroke-width: 2.2;
|
|
}
|
|
|
|
.skillspector-check-icon-flagged {
|
|
color: var(--status-warning-fg);
|
|
}
|
|
|
|
.skillspector-check-icon-unknown {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.skillspector-check-category {
|
|
color: var(--ink);
|
|
font-size: 0.95rem;
|
|
font-weight: 650;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.skillspector-check-patterns {
|
|
color: var(--ink-soft);
|
|
font-size: 14px;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.skillspector-checks-toggle {
|
|
width: fit-content;
|
|
border: 0;
|
|
background: transparent;
|
|
padding: 4px 0;
|
|
color: var(--ink);
|
|
font-size: 0.88rem;
|
|
font-weight: 700;
|
|
line-height: 1.3;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.skillspector-checks-toggle:hover,
|
|
.skillspector-checks-toggle:focus-visible {
|
|
color: var(--accent);
|
|
outline: none;
|
|
}
|
|
|
|
@media (max-width: 720px) {
|
|
.skillspector-check-row {
|
|
align-items: center;
|
|
grid-template-columns: 24px minmax(0, 1fr);
|
|
gap: 4px 12px;
|
|
}
|
|
|
|
.skillspector-check-patterns {
|
|
grid-column: 2;
|
|
}
|
|
}
|
|
|
|
.security-report-title-info-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 24px;
|
|
height: 24px;
|
|
border: 1px solid transparent;
|
|
border-radius: 999px;
|
|
color: var(--ink-soft);
|
|
text-decoration: none;
|
|
transition:
|
|
border-color 0.16s ease,
|
|
color 0.16s ease,
|
|
background-color 0.16s ease;
|
|
}
|
|
|
|
.security-report-title-info-link:hover,
|
|
.security-report-title-info-link:focus-visible {
|
|
border-color: transparent;
|
|
background: transparent;
|
|
color: var(--ink);
|
|
outline: none;
|
|
}
|
|
|
|
.security-report-title-tooltip {
|
|
max-width: 320px;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.security-audit-scanner-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-start;
|
|
flex-wrap: wrap;
|
|
gap: 10px 12px;
|
|
}
|
|
|
|
.security-report-panel-body .clawscan-risk-review {
|
|
gap: 26px;
|
|
margin-top: 0;
|
|
}
|
|
|
|
.security-report-panel-body-findings {
|
|
padding-top: 12px;
|
|
}
|
|
|
|
.security-report-panel-body .clawscan-scope-note {
|
|
display: none;
|
|
}
|
|
|
|
.security-report-panel-body .clawscan-risk-buckets {
|
|
grid-template-columns: 1fr;
|
|
gap: 14px;
|
|
}
|
|
|
|
.security-report-panel-body .clawscan-risk-bucket {
|
|
padding: 16px 20px;
|
|
}
|
|
|
|
.security-report-panel-body .agentic-risk-findings {
|
|
gap: 40px;
|
|
}
|
|
|
|
.security-report-panel-body .agentic-risk-finding-groups {
|
|
display: grid;
|
|
gap: 32px;
|
|
}
|
|
|
|
.security-report-panel-body .agentic-risk-finding-group {
|
|
display: grid;
|
|
gap: 14px;
|
|
}
|
|
|
|
.security-report-panel-body .agentic-risk-finding-group-header {
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.security-report-panel-body .agentic-risk-finding-group-header .clawscan-risk-bucket-label {
|
|
font-family: var(--font-display);
|
|
font-size: 1.05rem;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.security-report-panel-body .agentic-risk-finding-group-header p {
|
|
margin: 0;
|
|
max-width: 980px;
|
|
color: var(--ink-soft);
|
|
font-size: 0.88rem;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.security-report-sidebar {
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: 14px;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.security-scanner-skeleton,
|
|
.security-scanner-skeleton * {
|
|
min-width: 0;
|
|
}
|
|
|
|
.security-scanner-skeleton .security-scan-hero {
|
|
padding-top: 0;
|
|
}
|
|
|
|
.security-report-skeleton-panel {
|
|
gap: 18px;
|
|
}
|
|
|
|
.security-report-skeleton-sidebar {
|
|
align-self: start;
|
|
}
|
|
|
|
.security-report-sidebar .sidebar-metadata-compact > .sidebar-metadata-grid:first-child {
|
|
min-height: auto;
|
|
}
|
|
|
|
.security-report-sidebar .sidebar-metadata-row-inline {
|
|
padding-block: 12px;
|
|
}
|
|
|
|
.security-report-sidebar .sidebar-metadata-grid .sidebar-metadata-row-inline {
|
|
flex-wrap: wrap;
|
|
row-gap: 4px;
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.security-report-sidebar .sidebar-metadata-grid {
|
|
grid-template-columns: 1fr;
|
|
gap: 0;
|
|
}
|
|
|
|
.security-report-sidebar .sidebar-metadata-grid .sidebar-metadata-row + .sidebar-metadata-row {
|
|
padding-left: 0;
|
|
}
|
|
}
|
|
|
|
.security-report-badge-list {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
}
|
|
|
|
.security-audit-empty-detail {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.92rem;
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.security-audit-external-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
width: fit-content;
|
|
margin-top: 18px;
|
|
color: var(--ink);
|
|
font-size: 0.88rem;
|
|
font-weight: 720;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.security-audit-external-link:hover,
|
|
.security-audit-external-link:focus-visible {
|
|
color: var(--ink);
|
|
text-decoration: underline;
|
|
text-underline-offset: 3px;
|
|
}
|
|
|
|
.vt-advisory-finding {
|
|
display: grid;
|
|
max-width: 980px;
|
|
}
|
|
|
|
.vt-advisory-finding p {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.95rem;
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.static-analysis-findings {
|
|
display: grid;
|
|
gap: 32px;
|
|
}
|
|
|
|
.static-analysis-finding {
|
|
display: grid;
|
|
gap: 18px;
|
|
}
|
|
|
|
.static-analysis-finding:not(:last-child) {
|
|
padding-bottom: 32px;
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.static-analysis-finding-header {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 12px;
|
|
}
|
|
|
|
.static-analysis-finding-header h3 {
|
|
margin: 0;
|
|
}
|
|
|
|
.static-analysis-finding-details {
|
|
display: grid;
|
|
gap: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.static-analysis-finding-details > div {
|
|
display: grid;
|
|
align-items: center;
|
|
grid-template-columns: minmax(140px, 190px) minmax(0, 1fr);
|
|
gap: clamp(18px, 3.5vw, 52px);
|
|
padding: 12px 0;
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.static-analysis-finding-details > div:last-child {
|
|
border-bottom: 0;
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
.static-analysis-finding-details dt {
|
|
color: var(--ink);
|
|
font-size: 0.86rem;
|
|
font-weight: 680;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.static-analysis-finding-details dd {
|
|
min-width: 0;
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.88rem;
|
|
line-height: 1.55;
|
|
}
|
|
|
|
@media (max-width: 1100px) {
|
|
.security-report-layout {
|
|
grid-template-columns: 1fr;
|
|
gap: 32px;
|
|
}
|
|
|
|
.security-report-sidebar {
|
|
order: -1;
|
|
position: static;
|
|
padding: 0 0 20px;
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.security-report-metadata {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 18px 24px;
|
|
}
|
|
|
|
.security-report-panel-body .clawscan-risk-buckets {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.static-analysis-finding-details > div {
|
|
grid-template-columns: 1fr;
|
|
gap: 8px;
|
|
}
|
|
|
|
.security-report-skeleton-layout {
|
|
gap: 26px;
|
|
}
|
|
|
|
.security-report-skeleton-sidebar {
|
|
padding: 0 0 18px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.security-audit-scanner-header {
|
|
align-items: center;
|
|
}
|
|
|
|
.security-report-sidebar {
|
|
padding: 22px 0;
|
|
}
|
|
|
|
.security-report-metadata {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.security-audit-page-skeleton .security-report-main {
|
|
gap: 30px;
|
|
}
|
|
|
|
.security-report-skeleton-panel {
|
|
gap: 14px;
|
|
}
|
|
}
|
|
|
|
.upload-shell {
|
|
position: relative;
|
|
}
|
|
|
|
.upload-page {
|
|
position: relative;
|
|
}
|
|
|
|
.upload-page::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: -80px 0 auto;
|
|
height: 220px;
|
|
pointer-events: none;
|
|
background:
|
|
radial-gradient(circle at 22% 40%, rgba(255, 118, 84, 0.14), transparent 58%),
|
|
radial-gradient(circle at 78% 0%, rgba(255, 177, 136, 0.08), transparent 45%);
|
|
}
|
|
|
|
.upload-page-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-end;
|
|
gap: 16px;
|
|
margin-bottom: 18px;
|
|
}
|
|
|
|
.upload-page-title {
|
|
margin: 0;
|
|
font-family: var(--font-display);
|
|
font-size: clamp(1.9rem, 3.2vw, 2.7rem);
|
|
letter-spacing: -0.03em;
|
|
}
|
|
|
|
.upload-page-subtitle {
|
|
margin: 8px 0 0;
|
|
max-width: 640px;
|
|
color: var(--ink-soft);
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.upload-page .upload-grid {
|
|
grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
|
|
gap: 18px;
|
|
}
|
|
|
|
.upload-panel {
|
|
border-radius: calc(var(--r-md) + 2px);
|
|
border-color: rgba(255, 118, 84, 0.22);
|
|
background:
|
|
linear-gradient(180deg, rgba(255, 255, 255, 0.76), rgba(255, 249, 245, 0.66)), var(--surface);
|
|
box-shadow:
|
|
0 18px 44px rgba(16, 10, 6, 0.08),
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.48);
|
|
gap: 10px;
|
|
}
|
|
|
|
.upload-panel-title {
|
|
margin: 0 0 6px;
|
|
font-family: var(--font-display);
|
|
font-size: 1.16rem;
|
|
letter-spacing: -0.01em;
|
|
}
|
|
|
|
/* @deprecated — use <Label> from components/ui/label.tsx */
|
|
.form-label {
|
|
font-size: 0.74rem;
|
|
letter-spacing: 0.14em;
|
|
text-transform: uppercase;
|
|
color: rgba(70, 95, 113, 0.9);
|
|
font-weight: 700;
|
|
}
|
|
|
|
/* @deprecated — use <Input> from components/ui/input.tsx */
|
|
.form-input {
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
border: 1px solid rgba(29, 59, 78, 0.22);
|
|
border-radius: var(--r-sm);
|
|
padding: 13px 14px;
|
|
min-height: 44px;
|
|
color: var(--ink);
|
|
background: rgba(255, 255, 255, 0.94);
|
|
transition:
|
|
border-color 0.18s ease,
|
|
box-shadow 0.18s ease,
|
|
background 0.18s ease;
|
|
}
|
|
|
|
.form-input::placeholder {
|
|
color: rgba(88, 115, 133, 0.72);
|
|
}
|
|
|
|
.form-input:focus {
|
|
outline: none;
|
|
border-color: color-mix(in srgb, var(--accent) 70%, white);
|
|
box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);
|
|
}
|
|
|
|
.form-input#changelog {
|
|
min-height: 146px;
|
|
resize: vertical;
|
|
}
|
|
|
|
.upload-dropzone {
|
|
border: 1.5px dashed rgba(255, 118, 84, 0.5);
|
|
border-radius: calc(var(--r-md) + 1px);
|
|
padding: 14px;
|
|
background: linear-gradient(145deg, rgba(255, 245, 239, 0.85), rgba(255, 255, 255, 0.72));
|
|
cursor: pointer;
|
|
transition:
|
|
border-color 0.18s ease,
|
|
box-shadow 0.18s ease,
|
|
transform 0.18s ease;
|
|
}
|
|
|
|
.upload-dropzone:hover {
|
|
border-color: rgba(229, 94, 60, 0.68);
|
|
box-shadow: 0 16px 30px rgba(255, 118, 84, 0.15);
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.upload-dropzone.is-dragging {
|
|
border-color: rgba(229, 94, 60, 0.92);
|
|
box-shadow:
|
|
0 18px 38px rgba(255, 118, 84, 0.28),
|
|
0 0 0 3px rgba(255, 118, 84, 0.18);
|
|
background: linear-gradient(145deg, rgba(255, 238, 228, 0.95), rgba(255, 248, 244, 0.92));
|
|
}
|
|
|
|
.upload-file-input {
|
|
position: absolute;
|
|
width: 1px;
|
|
height: 1px;
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.upload-dropzone-copy {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.plugin-dropzone-art {
|
|
width: 52px;
|
|
height: 52px;
|
|
border-radius: 16px;
|
|
display: grid;
|
|
place-items: center;
|
|
color: #999999;
|
|
background: linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(255, 231, 220, 0.88));
|
|
border: 1px solid rgba(255, 118, 84, 0.22);
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.upload-dropzone-title-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
align-items: baseline;
|
|
}
|
|
|
|
.upload-dropzone-title-row strong {
|
|
font-family: var(--font-display);
|
|
letter-spacing: -0.015em;
|
|
font-size: 1.02rem;
|
|
}
|
|
|
|
.upload-dropzone-count {
|
|
font-family: var(--font-mono);
|
|
color: var(--ink-soft);
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.upload-dropzone-hint {
|
|
color: var(--ink-soft);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.upload-picker-btn {
|
|
justify-content: center;
|
|
border-radius: var(--r-sm);
|
|
border: 1px solid rgba(255, 118, 84, 0.4);
|
|
background: linear-gradient(140deg, rgba(255, 255, 255, 0.92), rgba(255, 245, 238, 0.88));
|
|
color: #999999;
|
|
font-weight: 700;
|
|
width: fit-content;
|
|
padding-inline: 14px;
|
|
}
|
|
|
|
.upload-picker-btn:hover {
|
|
border-color: rgba(229, 94, 60, 0.72);
|
|
box-shadow: 0 10px 20px rgba(255, 118, 84, 0.18);
|
|
}
|
|
|
|
.plugin-dropzone-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
}
|
|
|
|
.plugin-dropzone-secondary {
|
|
background: transparent;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.plugin-publish-form {
|
|
transition:
|
|
opacity 0.18s ease,
|
|
filter 0.18s ease,
|
|
border-color 0.18s ease,
|
|
box-shadow 0.18s ease;
|
|
}
|
|
|
|
.plugin-publish-form.is-locked {
|
|
opacity: 0.58;
|
|
filter: saturate(0.75);
|
|
}
|
|
|
|
.plugin-publish-lock-note {
|
|
font-size: 0.9rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.plugin-publish-lock-note.is-ready {
|
|
color: #818181;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.plugin-publish-form.is-locked .plugin-publish-lock-note {
|
|
color: var(--ink);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.publish-empty-main {
|
|
min-height: clamp(660px, 62vh, 1090px);
|
|
padding-top: 34px;
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
.publish-empty-container {
|
|
display: flex;
|
|
width: 901px;
|
|
max-width: 100%;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 24px;
|
|
}
|
|
|
|
.publish-empty-header {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
width: 100%;
|
|
align-items: center;
|
|
column-gap: 0;
|
|
}
|
|
|
|
.publish-empty-heading {
|
|
display: flex;
|
|
min-width: 0;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 6px;
|
|
}
|
|
|
|
.publish-empty-heading h1,
|
|
.publish-empty-heading p {
|
|
margin: 0;
|
|
}
|
|
|
|
.publish-empty-upload-card {
|
|
display: flex;
|
|
height: 260px;
|
|
width: 100%;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 12px;
|
|
margin-bottom: 0;
|
|
padding: 20px;
|
|
border-color: color-mix(in srgb, var(--oc-text-primary) 10%, transparent);
|
|
background: color-mix(in srgb, var(--oc-bg-elevated) 82%, transparent);
|
|
}
|
|
|
|
.publish-empty-dropzone {
|
|
min-height: 0;
|
|
flex: 1 1 auto;
|
|
align-self: stretch;
|
|
justify-content: center;
|
|
gap: 12px;
|
|
padding: 36px 28px;
|
|
border-color: color-mix(in srgb, var(--oc-text-primary) 12%, transparent);
|
|
background: color-mix(in srgb, var(--oc-bg-surface) 44%, transparent);
|
|
}
|
|
|
|
.publish-empty-dropzone[data-dragging="true"] {
|
|
border-color: color-mix(in srgb, var(--oc-accent-primary) 72%, transparent);
|
|
background: color-mix(in srgb, var(--oc-accent-primary) 6%, var(--oc-bg-surface));
|
|
}
|
|
|
|
.publish-empty-actions {
|
|
align-self: center;
|
|
justify-self: end;
|
|
}
|
|
|
|
.publish-empty-container > form {
|
|
width: 100%;
|
|
}
|
|
|
|
.publish-empty-skill-form > .publish-empty-upload-card ~ * {
|
|
display: none;
|
|
}
|
|
|
|
.publish-empty-upload-content {
|
|
min-height: 0;
|
|
width: 100%;
|
|
flex: 1 1 auto;
|
|
align-self: stretch;
|
|
gap: 0;
|
|
}
|
|
|
|
.publish-skill-main {
|
|
padding-block: 40px 128px;
|
|
}
|
|
|
|
.publish-skill-header {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: var(--oc-space-4);
|
|
margin-bottom: var(--oc-space-5);
|
|
}
|
|
|
|
.publish-skill-heading {
|
|
display: flex;
|
|
min-width: 0;
|
|
flex-direction: column;
|
|
gap: var(--oc-space-1);
|
|
}
|
|
|
|
.publish-skill-heading h1,
|
|
.publish-skill-heading p {
|
|
margin: 0;
|
|
}
|
|
|
|
.publish-skill-actions {
|
|
justify-self: end;
|
|
}
|
|
|
|
.publish-skill-files {
|
|
border-radius: var(--oc-radius-surface);
|
|
}
|
|
|
|
.publish-skill-files-header {
|
|
min-height: 66px;
|
|
padding: var(--oc-space-4);
|
|
}
|
|
|
|
.publish-skill-files-body {
|
|
margin-top: 0;
|
|
border-radius: 0;
|
|
background: var(--oc-bg-elevated);
|
|
}
|
|
|
|
.publish-skill-file-row {
|
|
min-height: 40px;
|
|
border-radius: var(--oc-radius-inset);
|
|
background: color-mix(in srgb, var(--oc-bg-surface) 84%, var(--oc-bg-elevated));
|
|
}
|
|
|
|
.publish-skill-section {
|
|
padding: var(--oc-space-5);
|
|
}
|
|
|
|
.publish-skill-section-content {
|
|
gap: var(--oc-space-5);
|
|
}
|
|
|
|
.publish-skill-primary-grid {
|
|
row-gap: var(--oc-space-5);
|
|
}
|
|
|
|
.publish-skill-metadata textarea {
|
|
min-height: 100px;
|
|
resize: vertical;
|
|
}
|
|
|
|
.publish-skill-metadata
|
|
.catalog-metadata-fields[data-presentation="publish"]
|
|
.catalog-metadata-field:first-child
|
|
.catalog-metadata-field-header {
|
|
display: grid;
|
|
grid-template-columns: auto auto minmax(0, 1fr);
|
|
align-items: center;
|
|
column-gap: var(--oc-space-2);
|
|
}
|
|
|
|
.publish-skill-metadata
|
|
.catalog-metadata-fields[data-presentation="publish"]
|
|
.catalog-metadata-field:first-child
|
|
.catalog-metadata-field-actions {
|
|
display: contents;
|
|
}
|
|
|
|
.publish-skill-metadata
|
|
.catalog-metadata-fields[data-presentation="publish"]
|
|
.catalog-metadata-field:first-child
|
|
.catalog-metadata-field-actions
|
|
> button {
|
|
grid-column: 3;
|
|
justify-self: end;
|
|
}
|
|
|
|
.publish-skill-metadata
|
|
.catalog-metadata-fields[data-presentation="publish"]
|
|
.catalog-metadata-field:first-child
|
|
.catalog-metadata-field-actions
|
|
> span {
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
}
|
|
|
|
.publish-skill-license-acceptance {
|
|
min-height: 44px;
|
|
align-items: center;
|
|
border-radius: var(--oc-radius-inset);
|
|
background: var(--oc-bg-surface);
|
|
}
|
|
|
|
.publish-skill-license-acceptance input {
|
|
margin-top: 0;
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.publish-skill-main {
|
|
padding-block: 24px 80px;
|
|
}
|
|
|
|
.publish-skill-header {
|
|
grid-template-columns: 1fr;
|
|
align-items: flex-start;
|
|
margin-bottom: var(--oc-space-5);
|
|
}
|
|
|
|
.publish-skill-actions {
|
|
justify-self: start;
|
|
}
|
|
|
|
.publish-skill-section {
|
|
padding: var(--oc-space-4);
|
|
}
|
|
|
|
.publish-skill-submit {
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.publish-skill-submit > button {
|
|
width: 100%;
|
|
}
|
|
|
|
.publish-empty-main {
|
|
min-height: 560px;
|
|
padding-top: 24px;
|
|
}
|
|
|
|
.publish-empty-container {
|
|
width: 100%;
|
|
gap: 20px;
|
|
}
|
|
|
|
.publish-empty-header {
|
|
grid-template-columns: 1fr;
|
|
align-items: flex-start;
|
|
row-gap: 16px;
|
|
}
|
|
|
|
.publish-empty-upload-card {
|
|
height: 248px;
|
|
padding: 16px;
|
|
}
|
|
|
|
.publish-empty-dropzone {
|
|
padding: 28px 20px;
|
|
}
|
|
|
|
.publish-empty-actions {
|
|
align-self: flex-start;
|
|
justify-self: start;
|
|
}
|
|
}
|
|
|
|
.skill-publish-share-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 0;
|
|
min-width: 0;
|
|
padding-inline: 4px;
|
|
}
|
|
|
|
.publish-field-group {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.publish-field-label-row {
|
|
display: flex;
|
|
align-items: baseline;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.publish-field-label-row > span {
|
|
flex: 0 0 auto;
|
|
color: var(--ink-soft);
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.publish-field-help {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.86rem;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.plugin-upload-summary {
|
|
border-top: 1px solid rgba(255, 118, 84, 0.16);
|
|
padding-top: 12px;
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.plugin-upload-summary.is-ready {
|
|
border-radius: 16px;
|
|
padding: 14px;
|
|
border: 1px solid rgba(43, 198, 164, 0.24);
|
|
background: linear-gradient(135deg, rgba(43, 198, 164, 0.08), rgba(255, 255, 255, 0.6));
|
|
}
|
|
|
|
.plugin-upload-summary-row {
|
|
display: flex;
|
|
align-items: baseline;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
}
|
|
|
|
.plugin-upload-summary-row strong {
|
|
font-family: var(--font-display);
|
|
letter-spacing: -0.015em;
|
|
}
|
|
|
|
.plugin-upload-summary-copy {
|
|
color: var(--ink-soft);
|
|
font-size: 0.92rem;
|
|
}
|
|
|
|
.plugin-upload-summary.is-ready .plugin-upload-summary-copy {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.plugin-upload-summary-tags {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.upload-file-list {
|
|
border-top: 1px solid rgba(255, 118, 84, 0.16);
|
|
padding-top: 10px;
|
|
max-height: 248px;
|
|
overflow: auto;
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.upload-file-row {
|
|
font-family: var(--font-mono);
|
|
font-size: 0.79rem;
|
|
line-height: 1.45;
|
|
border-radius: 10px;
|
|
border: 1px solid rgba(255, 118, 84, 0.18);
|
|
background: rgba(255, 255, 255, 0.55);
|
|
padding: 6px 9px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.validation-list {
|
|
margin: 0;
|
|
padding-left: 18px;
|
|
display: grid;
|
|
gap: 5px;
|
|
color: var(--ink-soft);
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.upload-submit-row {
|
|
grid-column: 1 / -1;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
border-radius: var(--r-md);
|
|
border: 1px solid rgba(255, 118, 84, 0.24);
|
|
background:
|
|
linear-gradient(120deg, rgba(255, 243, 236, 0.74), rgba(255, 255, 255, 0.76)), var(--surface);
|
|
box-shadow:
|
|
0 16px 34px rgba(16, 10, 6, 0.08),
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.5);
|
|
padding: 12px 14px;
|
|
}
|
|
|
|
.upload-submit-notes {
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.upload-submit-btn {
|
|
border-radius: var(--r-sm);
|
|
min-width: min(210px, 100%);
|
|
justify-content: center;
|
|
padding: 12px 22px;
|
|
font-size: 0.96rem;
|
|
box-shadow:
|
|
0 10px 22px rgba(229, 94, 60, 0.26),
|
|
inset 0 1px 0 rgba(255, 214, 198, 0.42);
|
|
}
|
|
|
|
.upload-license-card {
|
|
display: grid;
|
|
gap: 10px;
|
|
padding: 14px;
|
|
border-radius: 16px;
|
|
border: 1px solid rgba(255, 118, 84, 0.2);
|
|
background: rgba(255, 249, 245, 0.72);
|
|
}
|
|
|
|
.upload-license-pill {
|
|
width: fit-content;
|
|
padding: 6px 12px;
|
|
border-radius: var(--r-pill);
|
|
background: rgba(255, 255, 255, 0.16);
|
|
color: var(--accent-deep);
|
|
font-size: 0.78rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.04em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.upload-license-copy {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.upload-license-check {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 10px;
|
|
color: var(--ink);
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.upload-license-check input {
|
|
margin-top: 3px;
|
|
}
|
|
|
|
.upload-submit-btn:not(:disabled):hover {
|
|
transform: translateY(-1px);
|
|
box-shadow:
|
|
0 16px 28px rgba(229, 94, 60, 0.32),
|
|
inset 0 1px 0 rgba(255, 214, 198, 0.52);
|
|
}
|
|
|
|
.error {
|
|
color: #999999;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.upload-header {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
justify-content: space-between;
|
|
gap: 24px;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.upload-kicker {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
font-weight: 600;
|
|
color: var(--accent-deep);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.16em;
|
|
font-size: 0.7rem;
|
|
}
|
|
|
|
.upload-title {
|
|
font-family: var(--font-display);
|
|
font-size: clamp(2.2rem, 3.5vw, 3rem);
|
|
letter-spacing: -0.03em;
|
|
margin: 8px 0 10px;
|
|
}
|
|
|
|
.upload-subtitle {
|
|
color: var(--ink-soft);
|
|
max-width: 560px;
|
|
line-height: 1.6;
|
|
margin: 0;
|
|
}
|
|
|
|
.upload-badge {
|
|
background: var(--surface-muted);
|
|
color: #999999;
|
|
border-radius: var(--r-pill);
|
|
padding: 12px 18px;
|
|
font-weight: 700;
|
|
box-shadow: 0 12px 24px rgba(255, 255, 255, 0.18);
|
|
text-align: center;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
}
|
|
|
|
.upload-badge-sub {
|
|
font-size: 0.7rem;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.upload-card {
|
|
background: linear-gradient(180deg, var(--surface) 0%, var(--surface-muted) 100%);
|
|
border-radius: calc(var(--r-lg) + 2px);
|
|
border: 1px solid color-mix(in srgb, var(--accent) 20%, transparent);
|
|
padding: 24px;
|
|
box-shadow: 0 24px 60px rgba(17, 36, 47, 0.14);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 24px;
|
|
}
|
|
|
|
.upload-grid {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1.1fr) minmax(260px, 0.7fr);
|
|
gap: 28px;
|
|
}
|
|
|
|
.upload-fields {
|
|
display: grid;
|
|
gap: 14px;
|
|
}
|
|
|
|
.upload-field {
|
|
display: grid;
|
|
gap: 10px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.upload-field-header {
|
|
display: flex;
|
|
align-items: baseline;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
}
|
|
|
|
.upload-field span {
|
|
font-size: 0.9rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.upload-field-hint {
|
|
font-size: 0.82rem;
|
|
color: rgba(74, 103, 121, 0.82);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.upload-input {
|
|
border: 1px solid rgba(30, 57, 74, 0.2);
|
|
border-radius: var(--r-md);
|
|
padding: 12px 14px;
|
|
background: #141414;
|
|
box-shadow:
|
|
inset 0 0 0 1px rgba(255, 255, 255, 0.85),
|
|
inset 0 1px 6px rgba(255, 255, 255, 0.08);
|
|
}
|
|
|
|
.upload-input:focus {
|
|
border-color: rgba(255, 255, 255, 0.6);
|
|
box-shadow:
|
|
0 0 0 2px rgba(255, 255, 255, 0.2),
|
|
inset 0 0 0 1px rgba(255, 255, 255, 0.8);
|
|
}
|
|
|
|
.upload-row {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
|
|
gap: 16px;
|
|
}
|
|
|
|
.upload-side {
|
|
display: grid;
|
|
gap: 16px;
|
|
align-content: start;
|
|
}
|
|
|
|
.dropzone {
|
|
border: 2px dashed rgba(255, 255, 255, 0.5);
|
|
border-radius: 16px;
|
|
padding: 20px;
|
|
background: var(--surface);
|
|
display: grid;
|
|
gap: 12px;
|
|
text-align: center;
|
|
cursor: pointer;
|
|
transition:
|
|
transform 0.2s ease,
|
|
box-shadow 0.2s ease,
|
|
border-color 0.2s ease;
|
|
}
|
|
|
|
.dropzone:hover {
|
|
transform: translateY(-2px);
|
|
box-shadow: 0 18px 30px rgba(255, 255, 255, 0.15);
|
|
}
|
|
|
|
.dropzone.is-dragging {
|
|
border-color: var(--accent);
|
|
box-shadow: 0 20px 40px rgba(255, 255, 255, 0.25);
|
|
background: var(--surface-muted);
|
|
}
|
|
|
|
.dropzone-icon {
|
|
width: 54px;
|
|
height: 54px;
|
|
border-radius: 16px;
|
|
margin: 0 auto;
|
|
display: grid;
|
|
place-items: center;
|
|
font-size: 1.4rem;
|
|
background: var(--ink-soft);
|
|
color: white;
|
|
box-shadow: inset 0 0 0 3px rgba(255, 255, 255, 0.4);
|
|
}
|
|
|
|
.dropzone-input {
|
|
display: none;
|
|
}
|
|
|
|
.dropzone-button {
|
|
all: unset;
|
|
display: grid;
|
|
gap: 12px;
|
|
text-align: center;
|
|
cursor: pointer;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.dropzone-button:focus-visible {
|
|
outline: 3px solid rgba(255, 255, 255, 0.35);
|
|
outline-offset: 6px;
|
|
border-radius: 18px;
|
|
}
|
|
|
|
.upload-summary {
|
|
border-radius: var(--r-md);
|
|
background: rgba(255, 255, 255, 0.7);
|
|
border: 1px solid rgba(29, 26, 23, 0.08);
|
|
padding: 16px;
|
|
display: grid;
|
|
gap: 10px;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.upload-requirement {
|
|
padding: 6px 12px;
|
|
border-radius: var(--r-pill);
|
|
background: rgba(255, 255, 255, 0.12);
|
|
color: #999999;
|
|
font-weight: 600;
|
|
width: fit-content;
|
|
}
|
|
|
|
.upload-requirement.ok {
|
|
background: rgba(43, 198, 164, 0.18);
|
|
color: #818181;
|
|
}
|
|
|
|
.upload-filelist {
|
|
display: grid;
|
|
gap: 6px;
|
|
max-height: 220px;
|
|
overflow: auto;
|
|
}
|
|
|
|
.upload-filelist .upload-file {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
font-size: 0.85rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.upload-file span:first-child {
|
|
flex: 1;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.upload-remove {
|
|
border: none;
|
|
background: transparent;
|
|
color: var(--accent-deep);
|
|
font-weight: 600;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.upload-remove:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.upload-more {
|
|
font-size: 0.8rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.upload-muted {
|
|
color: var(--ink-soft);
|
|
margin: 0;
|
|
}
|
|
|
|
.upload-notes {
|
|
background: #141414;
|
|
border: 1px solid rgba(255, 255, 255, 0.12);
|
|
border-radius: var(--r-md);
|
|
padding: 18px;
|
|
font-size: 0.85rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.upload-notes ul {
|
|
padding-left: 18px;
|
|
margin: 8px 0 0;
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.upload-footer {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.upload-validation {
|
|
display: grid;
|
|
gap: 6px;
|
|
font-size: 0.85rem;
|
|
color: #999999;
|
|
}
|
|
|
|
.upload-validation-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.upload-validation-item::before {
|
|
content: "•";
|
|
}
|
|
|
|
.upload-ready {
|
|
font-size: 0.9rem;
|
|
font-weight: 600;
|
|
color: #818181;
|
|
}
|
|
|
|
.upload-error {
|
|
color: #aaaaaa;
|
|
}
|
|
|
|
.section-title {
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-lg);
|
|
font-weight: 600;
|
|
margin-bottom: var(--space-2);
|
|
}
|
|
|
|
.section-subtitle {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
margin-bottom: var(--space-4);
|
|
}
|
|
|
|
.skill-summary-block {
|
|
margin-bottom: var(--space-4);
|
|
display: grid;
|
|
gap: 8px;
|
|
justify-items: start;
|
|
}
|
|
|
|
.skill-summary-line {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.skill-summary-line .skill-summary-inline-code {
|
|
padding: 0.12em 0.35em;
|
|
border-radius: var(--r-xs);
|
|
background: color-mix(in srgb, var(--surface-muted) 74%, var(--ink) 6%);
|
|
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--line) 56%, transparent);
|
|
box-decoration-break: clone;
|
|
-webkit-box-decoration-break: clone;
|
|
font-size: 0.88em;
|
|
font-family: var(--font-mono);
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.skill-summary-line.line-clamp-2 {
|
|
display: -webkit-box;
|
|
overflow: hidden;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
}
|
|
|
|
.skill-summary-toggle {
|
|
appearance: none;
|
|
border: 0;
|
|
padding: 0;
|
|
background: transparent;
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
font: inherit;
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
line-height: 1.2;
|
|
cursor: pointer;
|
|
text-decoration: underline;
|
|
text-underline-offset: 3px;
|
|
}
|
|
|
|
.skill-summary-toggle:hover,
|
|
.skill-summary-toggle:focus-visible {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr));
|
|
gap: 16px;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.stars-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
padding-bottom: 16px;
|
|
}
|
|
|
|
.stars-header-title {
|
|
min-width: 0;
|
|
}
|
|
|
|
.stars-header-controls {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.stars-sort-trigger {
|
|
width: 168px;
|
|
}
|
|
|
|
.stars-view-tabs .publisher-filter-tab {
|
|
width: 34px;
|
|
height: 34px;
|
|
justify-content: center;
|
|
padding: 0;
|
|
}
|
|
|
|
.stars-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 16px;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.stars-card-shell {
|
|
position: relative;
|
|
min-width: 0;
|
|
}
|
|
|
|
.stars-card-shell .skill-card {
|
|
height: 100%;
|
|
}
|
|
|
|
.stars-card-shell .skill-card-footer {
|
|
padding-right: 44px;
|
|
}
|
|
|
|
.stars-card-unstar {
|
|
position: absolute;
|
|
right: 12px;
|
|
bottom: 12px;
|
|
z-index: 1;
|
|
}
|
|
|
|
@media (max-width: 1024px) {
|
|
.stars-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.stars-header {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
}
|
|
|
|
.stars-header-title {
|
|
font-size: var(--fs-2xl);
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.stars-header-controls {
|
|
display: block;
|
|
width: 100%;
|
|
}
|
|
|
|
.stars-sort-trigger {
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.stars-view-tabs {
|
|
display: none;
|
|
}
|
|
|
|
.stars-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
.skills-header-top {
|
|
margin-bottom: 22px;
|
|
}
|
|
|
|
.skills-container {
|
|
max-width: 900px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.skills-header {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
justify-content: space-between;
|
|
gap: 14px;
|
|
flex-wrap: wrap;
|
|
margin-bottom: 22px;
|
|
}
|
|
|
|
.skills-toolbar {
|
|
display: grid;
|
|
gap: 10px;
|
|
padding: 15px 16px;
|
|
border-radius: var(--r-md);
|
|
border: 1px solid var(--border-ui);
|
|
background: linear-gradient(135deg, var(--surface), var(--surface-muted));
|
|
margin-bottom: 22px;
|
|
}
|
|
|
|
.skills-search {
|
|
display: flex;
|
|
align-items: center;
|
|
border-radius: var(--r-pill);
|
|
border: 1px solid var(--border-ui);
|
|
background: rgba(255, 255, 255, 0.45);
|
|
padding: 10px 14px;
|
|
}
|
|
|
|
.skills-search-input {
|
|
border: none;
|
|
outline: none;
|
|
width: 100%;
|
|
font-size: 0.95rem;
|
|
background: transparent;
|
|
}
|
|
|
|
.skills-toolbar-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-start;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.plugins-toolbar-top {
|
|
display: flex;
|
|
gap: 10px;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.plugins-toolbar-top .skills-search {
|
|
flex: 1;
|
|
}
|
|
|
|
.plugins-toolbar-top .btn {
|
|
white-space: nowrap;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.plugins-type-tabs {
|
|
display: inline-flex;
|
|
border-radius: var(--r-pill);
|
|
border: 1px solid var(--border-ui);
|
|
background: var(--surface-muted);
|
|
padding: 3px;
|
|
gap: 2px;
|
|
}
|
|
|
|
.plugins-type-tab {
|
|
border: none;
|
|
background: transparent;
|
|
padding: 6px 14px;
|
|
border-radius: var(--r-pill);
|
|
font-weight: 600;
|
|
font-size: 0.88rem;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
transition:
|
|
background 0.15s ease,
|
|
color 0.15s ease,
|
|
box-shadow 0.15s ease;
|
|
}
|
|
|
|
.plugins-type-tab:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.plugins-type-tab.is-active {
|
|
background: var(--surface);
|
|
color: var(--ink);
|
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
|
|
}
|
|
|
|
.skills-sort {
|
|
appearance: none;
|
|
border: 1px solid var(--border-ui);
|
|
border-radius: var(--r-pill);
|
|
padding: 10px 20px 10px 14px;
|
|
background: rgba(255, 255, 255, 0.45)
|
|
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236b5549' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")
|
|
no-repeat right 7px center;
|
|
background-size: 10px;
|
|
color: var(--ink);
|
|
font-weight: 650;
|
|
font-size: 0.9rem;
|
|
cursor: pointer;
|
|
width: fit-content;
|
|
}
|
|
|
|
.skills-dir,
|
|
.skills-view {
|
|
border: 1px solid var(--border-ui);
|
|
border-radius: var(--r-pill);
|
|
padding: 10px 12px;
|
|
background: rgba(255, 255, 255, 0.45);
|
|
color: var(--ink);
|
|
font-weight: 700;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.skills-view.is-active {
|
|
background: linear-gradient(180deg, rgba(255, 142, 111, 0.24), rgba(255, 255, 255, 0.16));
|
|
border-color: var(--border-ui-active);
|
|
color: var(--ink);
|
|
box-shadow: inset 0 1px 0 rgba(255, 244, 240, 0.7);
|
|
}
|
|
|
|
.skills-list {
|
|
display: grid;
|
|
gap: 0;
|
|
border-radius: var(--r-md);
|
|
border: 1px solid var(--line);
|
|
overflow: hidden;
|
|
background: var(--surface);
|
|
}
|
|
|
|
.skills-table {
|
|
border-radius: var(--r-md);
|
|
border: 1px solid var(--line);
|
|
overflow: hidden;
|
|
background: var(--surface);
|
|
}
|
|
|
|
.skills-table-header {
|
|
display: grid;
|
|
grid-template-columns: minmax(160px, 1fr) minmax(0, 2fr) 120px 140px;
|
|
gap: 12px;
|
|
padding: 10px 18px;
|
|
font-size: 0.78rem;
|
|
font-weight: 650;
|
|
color: var(--ink-soft);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.04em;
|
|
border-bottom: 1px solid var(--line);
|
|
background: rgba(42, 31, 25, 0.03);
|
|
}
|
|
|
|
.skills-table-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(160px, 1fr) minmax(0, 2fr) 120px 140px;
|
|
gap: 12px;
|
|
padding: 12px 18px;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
border-bottom: 1px solid var(--line);
|
|
transition: background 0.15s ease;
|
|
align-items: center;
|
|
}
|
|
|
|
.skills-table-row:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.skills-table-row:hover {
|
|
background: rgba(255, 255, 255, 0.07);
|
|
}
|
|
|
|
.skills-table-name {
|
|
font-family: var(--font-display);
|
|
font-size: 0.95rem;
|
|
font-weight: 600;
|
|
letter-spacing: -0.01em;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skills-table-name > span:first-child {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 6px;
|
|
flex-wrap: wrap;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.skills-table-summary {
|
|
color: var(--ink-soft);
|
|
font-size: 0.85rem;
|
|
line-height: 1.4;
|
|
overflow: hidden;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 3;
|
|
-webkit-box-orient: vertical;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skills-table-author {
|
|
font-size: 0.85rem;
|
|
color: var(--ink-soft);
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skills-table-stats {
|
|
display: flex;
|
|
gap: 10px;
|
|
font-size: 0.82rem;
|
|
color: var(--ink-soft);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skills-table-version {
|
|
font-size: 0.85rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
@media (max-width: 860px) {
|
|
.skills-table-header,
|
|
.skills-table-row {
|
|
grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) 100px;
|
|
}
|
|
.skills-table-stats {
|
|
display: none;
|
|
}
|
|
.skills-table-header span:last-child {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.skills-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 14px;
|
|
padding: 14px 18px;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
border-bottom: 1px solid var(--line);
|
|
transition: background 0.15s ease;
|
|
}
|
|
|
|
.skills-row:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.skills-row:hover {
|
|
background: rgba(255, 255, 255, 0.07);
|
|
}
|
|
|
|
.skills-row-main {
|
|
display: grid;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skills-row-title {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 10px;
|
|
flex-wrap: wrap;
|
|
font-family: var(--font-display);
|
|
font-size: 1.1rem;
|
|
letter-spacing: -0.02em;
|
|
}
|
|
|
|
.skills-row-slug {
|
|
font-family: var(--font-mono);
|
|
font-size: 0.85rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.skills-row-summary {
|
|
color: var(--ink-soft);
|
|
font-size: 0.95rem;
|
|
line-height: 1.45;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
}
|
|
|
|
.skills-row-owner {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
font-size: 0.82rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.skills-row-metrics {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 14px;
|
|
font-family: var(--font-mono);
|
|
font-size: 0.85rem;
|
|
color: var(--ink-soft);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skills-row-metrics span {
|
|
display: inline-flex;
|
|
gap: 6px;
|
|
align-items: center;
|
|
}
|
|
|
|
/* @deprecated — use <Card> from components/ui/card.tsx */
|
|
.card {
|
|
width: 100%;
|
|
background: var(--surface);
|
|
border-radius: var(--r-md);
|
|
border: 1px solid var(--line);
|
|
padding: 18px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 14px;
|
|
box-sizing: border-box;
|
|
box-shadow: var(--shadow-card);
|
|
}
|
|
|
|
@keyframes shimmer {
|
|
0% {
|
|
background-position: -200% 0;
|
|
}
|
|
100% {
|
|
background-position: 200% 0;
|
|
}
|
|
}
|
|
|
|
.loading-indicator {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
font-weight: 650;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
/* Skeleton loader rows */
|
|
|
|
.skeleton-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
overflow: hidden;
|
|
background: var(--surface);
|
|
}
|
|
|
|
.skeleton-row {
|
|
display: grid;
|
|
grid-template-columns: 42px minmax(0, 1fr);
|
|
gap: 14px;
|
|
align-items: start;
|
|
padding: 14px 18px;
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.skeleton-row:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.skeleton-icon {
|
|
width: 42px;
|
|
height: 42px;
|
|
border-radius: 12px;
|
|
background: var(--surface-muted);
|
|
opacity: 0.55;
|
|
}
|
|
|
|
.skeleton-row-body {
|
|
display: grid;
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
.skeleton-bar {
|
|
height: 10px;
|
|
border-radius: var(--r-sm);
|
|
background: var(--surface-muted);
|
|
opacity: 0.5;
|
|
}
|
|
|
|
.skeleton-bar-sm {
|
|
height: 10px;
|
|
width: 60%;
|
|
}
|
|
|
|
.skeleton-bar-lg {
|
|
height: 14px;
|
|
width: 84%;
|
|
}
|
|
|
|
.skeleton-bar-xs {
|
|
height: 8px;
|
|
width: 42%;
|
|
}
|
|
|
|
.skeleton-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
|
gap: 16px;
|
|
}
|
|
|
|
.skeleton-card {
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
padding: 22px;
|
|
background: var(--surface);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
min-height: 160px;
|
|
}
|
|
|
|
.loading-indicator::before {
|
|
content: "";
|
|
width: 14px;
|
|
height: 14px;
|
|
border-radius: var(--r-pill);
|
|
border: 2px solid rgba(255, 255, 255, 0.25);
|
|
border-top-color: var(--accent);
|
|
animation: spin 0.9s linear infinite;
|
|
}
|
|
|
|
.skill-card {
|
|
min-height: 160px;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.plugin-card {
|
|
min-height: 180px;
|
|
transition:
|
|
transform 0.2s ease,
|
|
box-shadow 0.2s ease;
|
|
}
|
|
|
|
.skill-card,
|
|
.skill-list-item,
|
|
.publisher-card,
|
|
.home-v2-listing-row,
|
|
.home-v2-listing-card,
|
|
.home-v2-popular-publisher-card {
|
|
-webkit-tap-highlight-color: transparent;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-card:hover,
|
|
.skill-card:active,
|
|
.skill-list-item:hover,
|
|
.skill-list-item:active,
|
|
.publisher-card:hover,
|
|
.publisher-card:active,
|
|
.home-v2-listing-row:hover,
|
|
.home-v2-listing-row:active,
|
|
.home-v2-listing-card:hover,
|
|
.home-v2-listing-card:active,
|
|
.home-v2-popular-publisher-card:hover,
|
|
.home-v2-popular-publisher-card:active {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-card:hover {
|
|
border-color: var(--border-ui-hover);
|
|
transform: translateY(-2px);
|
|
box-shadow: var(--shadow-hover);
|
|
}
|
|
|
|
.skill-card-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
}
|
|
|
|
.skill-card-identity {
|
|
display: grid;
|
|
gap: 2px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-card-owner-row {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-card-owner {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
color: color-mix(in srgb, var(--ink-soft) 82%, transparent);
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
line-height: 1.25;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skill-card-tags {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
}
|
|
|
|
.tag-compact {
|
|
padding: 4px 10px;
|
|
font-size: var(--fs-xs);
|
|
border-radius: var(--r-sm);
|
|
}
|
|
|
|
.skills-row-meta {
|
|
font-size: var(--fs-xs);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.skill-card-title {
|
|
font-family: var(--font-display);
|
|
font-size: var(--fs-md);
|
|
font-weight: 600;
|
|
margin: 0;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
letter-spacing: -0.01em;
|
|
}
|
|
|
|
.marketplace-icon {
|
|
--marketplace-icon-accent: var(--accent);
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: var(--oc-radius-inset);
|
|
flex: 0 0 auto;
|
|
background: color-mix(in srgb, var(--marketplace-icon-accent) 10%, var(--surface));
|
|
border: 1px solid color-mix(in srgb, var(--marketplace-icon-accent) 12%, var(--line));
|
|
color: var(--marketplace-icon-accent);
|
|
overflow: hidden;
|
|
transition:
|
|
transform 0.15s ease,
|
|
box-shadow 0.15s ease;
|
|
}
|
|
|
|
.marketplace-icon:hover {
|
|
transform: scale(1.02);
|
|
box-shadow: 0 4px 12px color-mix(in srgb, var(--marketplace-icon-accent) 20%, transparent);
|
|
}
|
|
|
|
.marketplace-icon.marketplace-icon-image-backed,
|
|
.marketplace-icon.marketplace-icon-image-backed:hover {
|
|
background: #fff;
|
|
border-color: rgb(0 0 0 / 14%);
|
|
border-radius: var(--oc-radius-control);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.marketplace-icon-muted,
|
|
.marketplace-icon-muted:hover {
|
|
background: color-mix(in srgb, var(--ink) 4%, transparent);
|
|
border-color: color-mix(in srgb, var(--ink) 7%, transparent);
|
|
color: var(--ink-soft);
|
|
transform: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.marketplace-icon-xs {
|
|
width: 26px;
|
|
height: 26px;
|
|
}
|
|
|
|
.marketplace-icon-xs.marketplace-icon-user {
|
|
border-radius: var(--oc-radius-round);
|
|
}
|
|
|
|
.marketplace-icon-sm {
|
|
width: 44px;
|
|
height: 44px;
|
|
}
|
|
|
|
.marketplace-icon-md {
|
|
width: 52px;
|
|
height: 52px;
|
|
}
|
|
|
|
.marketplace-icon-user {
|
|
border-radius: var(--oc-radius-round);
|
|
}
|
|
|
|
.marketplace-icon-glyph {
|
|
width: 22px;
|
|
height: 22px;
|
|
}
|
|
|
|
.marketplace-icon-xs .marketplace-icon-glyph {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.marketplace-icon-md .marketplace-icon-glyph {
|
|
width: 26px;
|
|
height: 26px;
|
|
}
|
|
|
|
.marketplace-icon-image {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
display: block;
|
|
}
|
|
|
|
.skill-card-summary {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.5;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.skill-card-footer {
|
|
margin-top: auto;
|
|
}
|
|
|
|
.browse-results-grid {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card {
|
|
display: grid;
|
|
min-height: 0;
|
|
align-content: start;
|
|
gap: 12px;
|
|
padding: 16px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--hv2-radius-lg, var(--r-md));
|
|
background: color-mix(in srgb, var(--surface) 94%, transparent);
|
|
color: inherit;
|
|
box-shadow: none;
|
|
transition:
|
|
border-color 0.16s ease,
|
|
background 0.16s ease,
|
|
transform 0.16s ease;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card:hover {
|
|
border-color: color-mix(in srgb, var(--ink-soft) 22%, var(--line));
|
|
background: color-mix(in srgb, var(--surface) 98%, transparent);
|
|
box-shadow: none;
|
|
transform: none;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-header {
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr);
|
|
align-items: center;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-header .marketplace-icon {
|
|
--marketplace-icon-accent: var(--ink-soft) !important;
|
|
--marketplace-icon-wash: transparent !important;
|
|
width: 34px;
|
|
height: 34px;
|
|
border-radius: var(--oc-radius-inset);
|
|
background: color-mix(in srgb, var(--ink) 4%, transparent) !important;
|
|
border: 1px solid color-mix(in srgb, var(--ink) 7%, transparent) !important;
|
|
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
|
|
box-shadow: none;
|
|
transform: none;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-header .marketplace-icon-glyph {
|
|
width: 17px;
|
|
height: 17px;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-header .marketplace-icon-image {
|
|
filter: grayscale(1) brightness(1.18);
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-title {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
font-family: inherit;
|
|
font-size: 15px;
|
|
font-weight: 600;
|
|
line-height: 1.25;
|
|
letter-spacing: -0.01em;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
-webkit-line-clamp: unset;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-identity,
|
|
.browse-page .browse-results-grid .skill-card-owner-row {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .official-badge svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-summary {
|
|
min-height: calc(1.5em * 2);
|
|
color: var(--ink-soft);
|
|
font-size: 13px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-tags {
|
|
align-items: center;
|
|
gap: 7px;
|
|
min-height: 0;
|
|
}
|
|
|
|
.skill-card-tag-category {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
color: color-mix(in srgb, var(--ink-soft) 82%, transparent);
|
|
font-size: 12px;
|
|
font-weight: 400;
|
|
line-height: 1.3;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skill-card-tag-category svg {
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.skill-card-tag-separator {
|
|
flex: 0 0 auto;
|
|
width: 1px;
|
|
height: 12px;
|
|
background: color-mix(in srgb, var(--line) 82%, transparent);
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-footer {
|
|
margin-top: auto;
|
|
padding-top: 12px;
|
|
border-top: 1px solid color-mix(in srgb, var(--line) 65%, transparent);
|
|
}
|
|
|
|
.skill-card-bottom-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-card-bottom-meta {
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-card-category {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-self: end;
|
|
gap: 5px;
|
|
min-width: 0;
|
|
color: color-mix(in srgb, var(--ink-soft) 78%, transparent);
|
|
font-size: 12px;
|
|
font-weight: 400;
|
|
line-height: 1.25;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skill-card-category svg {
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-grid-meta {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 12px;
|
|
align-items: center;
|
|
min-width: 0;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-grid-meta > .user-badge {
|
|
grid-column: 1 / -1;
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
color: var(--hv2-text-tertiary, var(--ink-soft));
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-grid-meta .user-avatar {
|
|
width: 20px;
|
|
height: 20px;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-grid-meta .user-handle {
|
|
max-width: 24ch;
|
|
color: inherit;
|
|
font-family: inherit;
|
|
font-size: inherit;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-updated {
|
|
grid-column: 1;
|
|
grid-row: 1;
|
|
min-width: 0;
|
|
color: var(--hv2-text-tertiary, var(--ink-soft));
|
|
font-size: 12px;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-grid-meta .skill-stats-triplet {
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
justify-self: end;
|
|
gap: 16px;
|
|
color: var(--hv2-text-tertiary, var(--ink-soft));
|
|
font-size: 12px;
|
|
line-height: 1.25;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-card-footer-rows {
|
|
gap: 8px;
|
|
}
|
|
|
|
.browse-page .browse-results-grid .skill-list-item-meta {
|
|
justify-content: flex-start;
|
|
min-width: 0;
|
|
max-width: none;
|
|
margin-top: 0;
|
|
text-align: left;
|
|
}
|
|
|
|
@media (max-width: 960px) {
|
|
.browse-results-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 560px) {
|
|
.browse-results-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
.skill-card-spaced-footer .skill-card-footer {
|
|
margin-top: auto;
|
|
}
|
|
|
|
.skill-card-footer-inline {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
}
|
|
|
|
.skill-card-footer-rows {
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
gap: 6px;
|
|
align-items: start;
|
|
}
|
|
|
|
.skill-card-spaced-footer .skill-card-footer-rows {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
}
|
|
|
|
.skill-card-footer-rows .stat {
|
|
justify-self: end;
|
|
}
|
|
|
|
.skill-card-spaced-footer .skill-card-footer-rows .stat {
|
|
align-self: stretch;
|
|
margin-top: 0;
|
|
padding-top: 0;
|
|
}
|
|
|
|
.skill-card-statline,
|
|
.skill-stats-triplet,
|
|
.skill-stats-item {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.skill-card-statline {
|
|
width: 100%;
|
|
flex-wrap: wrap;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
}
|
|
|
|
.skill-card-updated {
|
|
color: color-mix(in srgb, var(--ink-soft) 78%, var(--surface));
|
|
}
|
|
|
|
.skill-card-statline-dot,
|
|
.skill-stats-dot {
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
}
|
|
|
|
.skill-stats-triplet {
|
|
gap: 6px;
|
|
}
|
|
|
|
.skill-stats-item {
|
|
gap: 4px;
|
|
}
|
|
|
|
.user-badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.user-badge-prefix {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.user-avatar {
|
|
width: 22px;
|
|
height: 22px;
|
|
border-radius: 999px;
|
|
overflow: hidden;
|
|
display: grid;
|
|
place-items: center;
|
|
border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
|
|
background: color-mix(in srgb, var(--accent) 10%, transparent);
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.user-avatar-img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
display: block;
|
|
}
|
|
|
|
.user-avatar-fallback {
|
|
font-family: var(--font-display);
|
|
font-size: 0.82rem;
|
|
font-weight: 680;
|
|
color: color-mix(in srgb, var(--ink) 86%, transparent);
|
|
}
|
|
|
|
.user-handle {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
font-family: var(--font-mono);
|
|
font-size: 0.82rem;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
max-width: 18ch;
|
|
}
|
|
|
|
.user-name {
|
|
font-family: var(--font-display);
|
|
font-size: 0.88rem;
|
|
letter-spacing: -0.01em;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
max-width: 28ch;
|
|
min-width: 0;
|
|
}
|
|
|
|
.user-name-sep {
|
|
color: var(--ink-soft);
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.user-handle-muted {
|
|
color: var(--ink-soft);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.user-handle:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.user-badge-link {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.user-badge-link:hover,
|
|
.user-badge-link:focus-visible {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.user-badge-link:hover .user-name,
|
|
.user-badge-link:focus-visible .user-name,
|
|
.user-badge-link:hover .user-handle,
|
|
.user-badge-link:focus-visible .user-handle {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.user-badge-md .user-avatar {
|
|
width: 32px;
|
|
height: 32px;
|
|
}
|
|
|
|
.user-badge-md .user-handle {
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.skill-hero-title > .section-subtitle,
|
|
.skill-summary-block > .section-subtitle {
|
|
font-size: 14px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.hero-install {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.install-switcher {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.install-switcher-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 14px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.install-switcher-toggle {
|
|
display: inline-flex;
|
|
border-radius: var(--r-pill);
|
|
padding: 4px;
|
|
border: 1px solid var(--border-ui);
|
|
background: color-mix(in srgb, var(--accent) 9%, transparent);
|
|
}
|
|
|
|
.install-switcher-pill {
|
|
appearance: none;
|
|
border: none;
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
font: inherit;
|
|
font-weight: 650;
|
|
font-size: 0.85rem;
|
|
padding: 6px 10px;
|
|
border-radius: var(--r-pill);
|
|
cursor: pointer;
|
|
transition:
|
|
background 0.18s ease,
|
|
color 0.18s ease;
|
|
}
|
|
|
|
.install-switcher-pill:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.install-switcher-pill.is-active {
|
|
background: color-mix(in srgb, var(--accent) 22%, transparent);
|
|
color: var(--accent-deep);
|
|
}
|
|
|
|
.hero-install-code {
|
|
border: 1px solid var(--line);
|
|
background: var(--surface-muted);
|
|
border-radius: 12px;
|
|
padding: 12px 14px;
|
|
font-size: 0.9rem;
|
|
line-height: 1.55;
|
|
color: var(--ink);
|
|
font-family: var(--font-mono);
|
|
overflow-x: hidden;
|
|
margin: 0;
|
|
text-align: left;
|
|
font-variant-ligatures: none;
|
|
font-feature-settings:
|
|
"liga" 0,
|
|
"calt" 0;
|
|
white-space: pre-wrap;
|
|
overflow-wrap: anywhere;
|
|
word-break: break-word;
|
|
tab-size: 2;
|
|
box-shadow: inset 0 1px 0 color-mix(in srgb, var(--ink) 8%, transparent);
|
|
}
|
|
|
|
/* @deprecated — use <Badge> from components/ui/badge.tsx */
|
|
.tag {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 4px 10px;
|
|
border-radius: var(--r-sm);
|
|
border: 1px solid var(--line);
|
|
background: var(--surface-muted);
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 500;
|
|
font-family: var(--font-body);
|
|
transition: all 0.15s ease;
|
|
}
|
|
|
|
.tag:hover {
|
|
border-color: var(--border-ui-hover);
|
|
color: var(--ink);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .tag {
|
|
background: var(--surface);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.skill-actions {
|
|
display: flex;
|
|
gap: 10px;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
}
|
|
|
|
.report-dialog-backdrop {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 80;
|
|
display: grid;
|
|
place-items: center;
|
|
padding: 20px;
|
|
background: rgba(21, 24, 35, 0.42);
|
|
backdrop-filter: blur(3px);
|
|
}
|
|
|
|
.report-dialog {
|
|
width: min(100%, 560px);
|
|
display: grid;
|
|
gap: 12px;
|
|
padding: 20px;
|
|
border-radius: var(--r-md);
|
|
border: 1px solid var(--line);
|
|
background: var(--surface);
|
|
box-shadow: 0 24px 50px rgba(18, 22, 34, 0.24);
|
|
}
|
|
|
|
.report-dialog-form {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.report-dialog-textarea {
|
|
width: 100%;
|
|
resize: vertical;
|
|
min-height: 120px;
|
|
max-height: max(200px, 40vh);
|
|
border-radius: 12px;
|
|
border: 1px solid var(--line);
|
|
background: var(--surface-muted);
|
|
color: var(--ink);
|
|
font: inherit;
|
|
padding: 12px;
|
|
}
|
|
|
|
.report-dialog-textarea:focus-visible {
|
|
outline: 2px solid rgba(255, 255, 255, 0.35);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.report-dialog-error {
|
|
margin: 0;
|
|
color: #b30000;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.report-dialog-actions {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: 10px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.star-toggle {
|
|
width: 44px;
|
|
height: 44px;
|
|
border-radius: 50%;
|
|
border: 1px solid rgba(255, 255, 255, 0.35);
|
|
background: rgba(255, 255, 255, 0.12);
|
|
color: var(--accent-deep);
|
|
display: grid;
|
|
place-items: center;
|
|
cursor: pointer;
|
|
transition:
|
|
transform 0.2s ease,
|
|
box-shadow 0.2s ease,
|
|
background 0.2s ease;
|
|
}
|
|
|
|
.star-toggle span {
|
|
font-size: 1.25rem;
|
|
}
|
|
|
|
.star-toggle:hover {
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 10px 18px rgba(255, 255, 255, 0.2);
|
|
}
|
|
|
|
.star-toggle.is-active {
|
|
background: var(--accent);
|
|
color: var(--accent-fg);
|
|
border-color: var(--accent-deep);
|
|
}
|
|
|
|
.star-toggle:focus-visible {
|
|
outline: 3px solid rgba(255, 255, 255, 0.35);
|
|
outline-offset: 3px;
|
|
}
|
|
|
|
.highlight-toggle {
|
|
width: 36px;
|
|
height: 36px;
|
|
border-radius: 50%;
|
|
border: 1px solid rgba(43, 198, 164, 0.45);
|
|
background: rgba(43, 198, 164, 0.14);
|
|
color: #818181;
|
|
display: grid;
|
|
place-items: center;
|
|
cursor: pointer;
|
|
transition:
|
|
transform 0.2s ease,
|
|
box-shadow 0.2s ease,
|
|
background 0.2s ease;
|
|
}
|
|
|
|
.highlight-toggle span {
|
|
font-size: 1.05rem;
|
|
}
|
|
|
|
.highlight-toggle:hover {
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 10px 18px rgba(43, 198, 164, 0.2);
|
|
}
|
|
|
|
.highlight-toggle.is-active {
|
|
background: rgba(43, 198, 164, 0.28);
|
|
border-color: rgba(43, 198, 164, 0.7);
|
|
}
|
|
|
|
.highlight-toggle:focus-visible {
|
|
outline: 3px solid rgba(43, 198, 164, 0.3);
|
|
outline-offset: 3px;
|
|
}
|
|
|
|
.stat {
|
|
display: flex;
|
|
gap: 10px;
|
|
align-items: center;
|
|
font-size: 0.9rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.search-bar {
|
|
display: flex;
|
|
gap: 12px;
|
|
padding: 14px 18px;
|
|
border-radius: var(--r-md);
|
|
border: 1px solid var(--line);
|
|
background: var(--surface);
|
|
align-items: center;
|
|
}
|
|
|
|
.hero.search-mode .search-bar {
|
|
padding: 18px 20px;
|
|
}
|
|
|
|
.hero.search-mode .search-input {
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
@media (max-width: 860px) {
|
|
.hero-inner {
|
|
grid-template-columns: 1fr;
|
|
transition: none;
|
|
}
|
|
|
|
.hero.search-mode .hero-inner {
|
|
grid-template-columns: 1fr;
|
|
gap: 24px;
|
|
}
|
|
}
|
|
|
|
.skill-detail-stack {
|
|
display: grid;
|
|
gap: 16px;
|
|
max-width: 100%;
|
|
overflow-x: clip;
|
|
}
|
|
|
|
.skill-settings-page {
|
|
gap: 28px;
|
|
}
|
|
|
|
.skill-settings-page-header {
|
|
display: grid;
|
|
gap: 16px;
|
|
padding: 8px 0 0;
|
|
}
|
|
|
|
.skill-settings-back-link {
|
|
display: inline-flex;
|
|
width: fit-content;
|
|
align-items: center;
|
|
gap: 8px;
|
|
color: var(--ink-soft);
|
|
font-size: 0.9rem;
|
|
font-weight: 700;
|
|
text-decoration: none;
|
|
transition:
|
|
color 0.15s ease,
|
|
transform 0.15s ease;
|
|
}
|
|
|
|
.skill-settings-back-link:hover {
|
|
color: var(--ink);
|
|
transform: translateX(-2px);
|
|
}
|
|
|
|
.skill-settings-page-title {
|
|
margin: 0;
|
|
color: var(--ink);
|
|
font-family: var(--font-display);
|
|
font-size: clamp(1.9rem, 3vw, 2.75rem);
|
|
font-weight: 800;
|
|
line-height: 1.05;
|
|
}
|
|
|
|
.skill-settings-page-title-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.skill-settings-new-version-button {
|
|
width: fit-content;
|
|
}
|
|
|
|
.skill-settings-page-divider {
|
|
width: 100%;
|
|
margin: 0;
|
|
border: 0;
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.skill-hero {
|
|
display: grid;
|
|
gap: 16px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.detail-layout {
|
|
display: grid;
|
|
gap: var(--space-4);
|
|
min-width: 0;
|
|
}
|
|
|
|
.detail-main,
|
|
.detail-sidebar {
|
|
display: flex;
|
|
min-width: 0;
|
|
flex-direction: column;
|
|
gap: var(--space-4);
|
|
}
|
|
|
|
.detail-sidebar {
|
|
align-self: start;
|
|
}
|
|
|
|
.detail-sidebar .detail-meta-bar {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.detail-sidebar .meta-bar-stats,
|
|
.detail-sidebar .meta-bar-details,
|
|
.detail-sidebar .meta-bar-footer {
|
|
flex: 0 1 auto;
|
|
padding: 0;
|
|
border: 0;
|
|
}
|
|
|
|
.detail-sidebar .meta-bar-details,
|
|
.detail-sidebar .meta-bar-footer {
|
|
padding-top: var(--space-3);
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.detail-sidebar .meta-bar-footer {
|
|
padding-left: 0;
|
|
}
|
|
|
|
.detail-sidebar .meta-bar-footer > .btn {
|
|
width: 100%;
|
|
margin-left: 0;
|
|
}
|
|
|
|
@media (min-width: 1080px) {
|
|
.detail-layout:has(.detail-sidebar) {
|
|
grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
|
|
align-items: start;
|
|
}
|
|
|
|
.detail-sidebar {
|
|
position: sticky;
|
|
top: 96px;
|
|
}
|
|
}
|
|
|
|
/* ── Plugin Detail Page ── */
|
|
|
|
.plugin-detail-header {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 16px;
|
|
}
|
|
|
|
.plugin-detail-meta {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-version-badge {
|
|
display: inline-block;
|
|
margin-left: 10px;
|
|
padding: 2px 10px;
|
|
font-size: 0.78rem;
|
|
font-weight: 600;
|
|
border-radius: 999px;
|
|
background: var(--surface-muted);
|
|
color: var(--ink-soft);
|
|
vertical-align: middle;
|
|
letter-spacing: 0.01em;
|
|
}
|
|
|
|
.plugin-meta-row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 6px 10px;
|
|
margin-top: 4px;
|
|
}
|
|
|
|
.plugin-meta-link {
|
|
font-size: 0.85rem;
|
|
color: var(--accent);
|
|
text-decoration: none;
|
|
}
|
|
.plugin-meta-link:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.plugin-install-section {
|
|
margin-top: 16px;
|
|
}
|
|
|
|
.plugin-install-stack {
|
|
display: grid;
|
|
gap: var(--space-4);
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-detail-page .skill-hero-main-extra {
|
|
gap: var(--space-7);
|
|
overflow-x: clip;
|
|
}
|
|
|
|
.plugin-install-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 10px 14px;
|
|
border-radius: 8px;
|
|
background: var(--surface-muted);
|
|
border: 1px solid var(--line);
|
|
}
|
|
|
|
.plugin-install-code {
|
|
flex: 1;
|
|
min-width: 0;
|
|
margin: 0;
|
|
padding: 0;
|
|
font-size: 0.88rem;
|
|
line-height: 1.5;
|
|
background: none;
|
|
border: none;
|
|
color: var(--ink);
|
|
overflow-x: auto;
|
|
white-space: pre;
|
|
}
|
|
|
|
.plugin-release-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
margin-top: 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.plugin-section-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.plugin-section-title {
|
|
font-size: 1rem;
|
|
font-weight: 600;
|
|
margin: 0;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.plugin-sidebar-stack {
|
|
display: grid;
|
|
gap: 40px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-tab-panel {
|
|
display: grid;
|
|
gap: 18px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-validation-panel {
|
|
display: grid;
|
|
gap: var(--space-6);
|
|
margin-bottom: var(--space-4);
|
|
border: 1px solid color-mix(in srgb, var(--line) 92%, transparent);
|
|
border-radius: var(--radius-md);
|
|
background: var(--surface);
|
|
padding: var(--space-5);
|
|
scroll-margin-top: var(--space-6);
|
|
}
|
|
|
|
.plugin-validation-overview {
|
|
display: grid;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.plugin-validation-panel-title-row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: var(--space-2) var(--space-3);
|
|
}
|
|
|
|
.plugin-validation-panel-title-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: var(--space-2) var(--space-3);
|
|
margin-left: auto;
|
|
}
|
|
|
|
.plugin-validation-panel-title {
|
|
margin: 0;
|
|
min-width: 0;
|
|
color: var(--ink);
|
|
font-size: 1.02rem;
|
|
font-weight: 750;
|
|
line-height: 1.3;
|
|
letter-spacing: -0.01em;
|
|
}
|
|
|
|
.plugin-validation-panel-stats {
|
|
display: inline-flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 4px;
|
|
white-space: nowrap;
|
|
padding: 2px 10px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
|
|
border-radius: var(--radius-pill);
|
|
background: color-mix(in srgb, var(--surface-muted) 42%, transparent);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.plugin-validation-panel-stat {
|
|
font-size: 0.74rem;
|
|
font-weight: 600;
|
|
line-height: 1.35;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.plugin-validation-panel-stat.is-muted {
|
|
font-weight: 500;
|
|
opacity: 0.72;
|
|
}
|
|
|
|
.plugin-validation-panel-stats-sep {
|
|
color: var(--ink-soft);
|
|
opacity: 0.38;
|
|
font-size: 0.74rem;
|
|
line-height: 1;
|
|
user-select: none;
|
|
}
|
|
|
|
.plugin-validation-summary-hint {
|
|
margin: 0;
|
|
max-width: 62ch;
|
|
color: var(--ink-soft);
|
|
font-size: 0.84rem;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.plugin-validation-summary-hint strong {
|
|
color: var(--ink);
|
|
font-weight: 650;
|
|
}
|
|
|
|
.plugin-validation-actions {
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-validation-summary-hint + .plugin-validation-actions {
|
|
margin-top: var(--space-3);
|
|
}
|
|
|
|
.plugin-validation-actions-row {
|
|
--plugin-validation-toolbar-height: 2.5rem;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: flex-end;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.plugin-validation-command-block {
|
|
display: flex;
|
|
flex: 1 1 16rem;
|
|
flex-direction: column;
|
|
gap: var(--space-2);
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-validation-toolbar {
|
|
display: flex;
|
|
flex: 1 1 auto;
|
|
align-items: center;
|
|
min-width: 0;
|
|
height: var(--plugin-validation-toolbar-height);
|
|
min-height: var(--plugin-validation-toolbar-height);
|
|
border: 1px solid color-mix(in srgb, var(--line) 52%, transparent);
|
|
border-radius: var(--radius-sm);
|
|
background: color-mix(in srgb, var(--surface-muted) 14%, transparent);
|
|
padding: var(--space-2) var(--space-3);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .plugin-validation-toolbar {
|
|
border-color: color-mix(in srgb, var(--line) 44%, transparent);
|
|
background: color-mix(in srgb, var(--surface-muted) 10%, var(--bg) 90%);
|
|
}
|
|
|
|
.plugin-validation-toolbar-label {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.74rem;
|
|
font-weight: 500;
|
|
line-height: 1.3;
|
|
opacity: 0.82;
|
|
}
|
|
|
|
.plugin-validation-toolbar-cli {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
min-width: 0;
|
|
width: 100%;
|
|
}
|
|
|
|
.plugin-validation-toolbar.is-multi-target {
|
|
height: auto;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.plugin-validation-toolbar.is-multi-target .plugin-validation-toolbar-cli {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.plugin-validation-toolbar.is-multi-target .plugin-validation-command {
|
|
white-space: pre-wrap;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.plugin-validation-toolbar-copy.skill-install-copy-button {
|
|
flex: 0 0 auto;
|
|
width: 2rem;
|
|
min-width: 2rem;
|
|
height: 2rem;
|
|
min-height: 2rem;
|
|
padding: 0;
|
|
justify-content: center;
|
|
border: 0 !important;
|
|
background: transparent;
|
|
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.plugin-validation-toolbar-copy.skill-install-copy-button:hover:not(:disabled),
|
|
.plugin-validation-toolbar-copy.skill-install-copy-button:hover:not(:disabled) {
|
|
border: 0 !important;
|
|
background: transparent;
|
|
color: var(--ink);
|
|
box-shadow: none;
|
|
}
|
|
|
|
[data-theme-resolved="light"]
|
|
.plugin-validation-toolbar-copy.skill-install-copy-button:hover:not(:disabled) {
|
|
border-color: transparent;
|
|
background: transparent;
|
|
}
|
|
|
|
.plugin-validation-toolbar-copy.skill-install-copy-button:focus-visible {
|
|
outline: 2px solid var(--oc-focus-ring);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.plugin-validation-toolbar-agent {
|
|
display: flex;
|
|
flex: 0 0 auto;
|
|
align-self: flex-end;
|
|
align-items: center;
|
|
height: var(--plugin-validation-toolbar-height);
|
|
}
|
|
|
|
.plugin-validation-panel-agent.skill-install-copy-button {
|
|
flex: 0 0 auto;
|
|
height: var(--plugin-validation-toolbar-height);
|
|
min-height: var(--plugin-validation-toolbar-height);
|
|
max-height: var(--plugin-validation-toolbar-height);
|
|
padding-top: 0;
|
|
padding-bottom: 0;
|
|
white-space: nowrap;
|
|
border-color: color-mix(in srgb, var(--line) 78%, transparent);
|
|
background: color-mix(in srgb, var(--surface-muted) 34%, transparent);
|
|
color: var(--ink);
|
|
box-shadow: inset 0 1px 0 color-mix(in srgb, white 5%, transparent);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .plugin-validation-panel-agent.skill-install-copy-button {
|
|
border-color: color-mix(in srgb, var(--line) 70%, transparent);
|
|
background: color-mix(in srgb, var(--surface-muted) 18%, var(--bg) 82%);
|
|
box-shadow: inset 0 1px 0 color-mix(in srgb, white 72%, transparent);
|
|
}
|
|
|
|
.plugin-validation-panel-agent.skill-install-copy-button:hover:not(:disabled),
|
|
.plugin-validation-panel-agent.skill-install-copy-button:focus-visible {
|
|
border-color: color-mix(in srgb, var(--line) 92%, var(--accent) 8%);
|
|
background: color-mix(in srgb, var(--surface-muted) 48%, transparent);
|
|
}
|
|
|
|
.plugin-validation-command {
|
|
flex: 1;
|
|
min-width: 0;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
padding: 0;
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-mono);
|
|
font-size: 0.74rem;
|
|
line-height: 1.45;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.plugin-validation-panel-findings {
|
|
display: grid;
|
|
gap: var(--space-6);
|
|
padding-top: var(--space-5);
|
|
border-top: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
|
|
}
|
|
|
|
.plugin-validation-findings-group {
|
|
display: grid;
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
.plugin-validation-group-label {
|
|
margin: 0;
|
|
padding: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.68rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.07em;
|
|
line-height: 1.3;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.plugin-validation-group-label.is-error {
|
|
color: color-mix(in srgb, var(--status-error-fg) 68%, var(--ink-soft));
|
|
}
|
|
|
|
.plugin-validation-group-label.is-warning {
|
|
color: color-mix(in srgb, var(--status-warning-fg) 68%, var(--ink-soft));
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.plugin-validation-panel-title-row {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.plugin-validation-panel-title-actions {
|
|
margin-left: 0;
|
|
}
|
|
|
|
.plugin-validation-actions-row {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.plugin-validation-command-block {
|
|
flex: 1 1 100%;
|
|
}
|
|
|
|
.plugin-validation-toolbar-agent {
|
|
flex: 0 0 auto;
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.plugin-validation-panel-agent.skill-install-copy-button {
|
|
align-self: stretch;
|
|
width: 100%;
|
|
height: auto;
|
|
min-height: var(--plugin-validation-toolbar-height);
|
|
max-height: none;
|
|
padding-top: 0.375rem;
|
|
padding-bottom: 0.375rem;
|
|
justify-content: center;
|
|
}
|
|
|
|
.plugin-validation-command {
|
|
white-space: normal;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-list {
|
|
gap: 0;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
border-radius: var(--radius-sm);
|
|
}
|
|
|
|
.plugin-validation-panel-findings:has(.plugin-warning-item-details) .plugin-warning-list {
|
|
gap: 0;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-item {
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
padding: 0;
|
|
gap: 0;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-list > :not(:first-child) {
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-item.plugin-warning-item-details {
|
|
padding: 0;
|
|
gap: 0;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-item.plugin-warning-item-details[open] {
|
|
background: color-mix(in srgb, var(--surface-muted) 42%, var(--bg-soft));
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-list > .plugin-warning-item-details[open],
|
|
.plugin-validation-panel .plugin-warning-list > .plugin-warning-item-details[open] + * {
|
|
border-top-color: transparent;
|
|
}
|
|
|
|
.plugin-warning-item-summary {
|
|
width: 100%;
|
|
padding: var(--space-3);
|
|
cursor: pointer;
|
|
list-style: none;
|
|
user-select: none;
|
|
background: transparent;
|
|
transition: background-color 120ms ease;
|
|
}
|
|
|
|
.plugin-warning-item-summary::-webkit-details-marker {
|
|
display: none;
|
|
}
|
|
|
|
.plugin-warning-item-summary::marker {
|
|
content: "";
|
|
}
|
|
|
|
.plugin-warning-item-summary:hover,
|
|
.plugin-warning-item-summary:focus-visible {
|
|
background: color-mix(in srgb, var(--surface-muted) 60%, transparent);
|
|
outline: none;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-item-summary:hover,
|
|
.plugin-validation-panel .plugin-warning-item-summary:focus-visible {
|
|
background: color-mix(in srgb, var(--surface-muted) 34%, transparent);
|
|
}
|
|
|
|
.plugin-warning-item-details[open] > .plugin-warning-item-summary {
|
|
background: color-mix(in srgb, var(--surface-muted) 65%, transparent);
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-item-details[open] > .plugin-warning-item-summary {
|
|
background: color-mix(in srgb, var(--surface-muted) 72%, var(--bg-soft));
|
|
border-bottom: none;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-item-details[open] > .plugin-warning-item-summary:hover,
|
|
.plugin-validation-panel
|
|
.plugin-warning-item-details[open]
|
|
> .plugin-warning-item-summary:focus-visible {
|
|
background: color-mix(in srgb, var(--surface-muted) 78%, var(--bg-soft));
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-item-details[open] > .plugin-warning-item-body {
|
|
background: transparent;
|
|
}
|
|
|
|
.plugin-warning-item-expand-chevron {
|
|
flex-shrink: 0;
|
|
align-self: center;
|
|
color: var(--ink-soft);
|
|
transition:
|
|
transform 120ms ease,
|
|
color 120ms ease;
|
|
}
|
|
|
|
.plugin-warning-item-summary:hover .plugin-warning-item-expand-chevron,
|
|
.plugin-warning-item-summary:focus-visible .plugin-warning-item-expand-chevron {
|
|
color: color-mix(in srgb, var(--ink) 78%, var(--ink-soft));
|
|
}
|
|
|
|
.plugin-warning-item-details[open] .plugin-warning-item-expand-chevron {
|
|
transform: rotate(90deg);
|
|
}
|
|
|
|
.plugin-warning-item-body {
|
|
display: grid;
|
|
gap: var(--space-2);
|
|
padding: 0 var(--space-3) var(--space-3) calc(var(--space-3) + 18px);
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-item-body {
|
|
padding-top: var(--space-3);
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-item-main {
|
|
padding: var(--space-3);
|
|
}
|
|
|
|
.plugin-warning-item-lead {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-warning-severity-dot {
|
|
flex-shrink: 0;
|
|
align-self: flex-start;
|
|
width: 8px;
|
|
height: 8px;
|
|
margin-top: 0.38em;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.plugin-warning-severity-dot.is-error {
|
|
background: var(--status-error-fg);
|
|
}
|
|
|
|
.plugin-warning-severity-dot.is-destructive {
|
|
background: var(--status-error-fg);
|
|
}
|
|
|
|
.plugin-warning-severity-dot.is-warning {
|
|
background: var(--status-warning-fg);
|
|
}
|
|
|
|
.plugin-warning-severity-dot.is-pending {
|
|
background: var(--oc-text-muted);
|
|
}
|
|
|
|
.plugin-warning-item-copy {
|
|
display: grid;
|
|
flex: 1;
|
|
gap: 4px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-warning-item-title-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
min-width: 0;
|
|
width: 100%;
|
|
}
|
|
|
|
.plugin-warning-item-title-row > .plugin-warning-item-expand-chevron {
|
|
flex-shrink: 0;
|
|
align-self: center;
|
|
margin-inline-start: auto;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-item-message {
|
|
margin: 0;
|
|
flex: 1 1 auto;
|
|
min-width: 0;
|
|
max-width: none;
|
|
color: var(--ink);
|
|
font-size: 0.84rem;
|
|
font-weight: 500;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.plugin-warning-priority-badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-shrink: 0;
|
|
align-self: center;
|
|
padding: 1px 6px;
|
|
border-radius: 999px;
|
|
font-size: 0.64rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.02em;
|
|
line-height: 1;
|
|
}
|
|
|
|
.plugin-warning-priority-badge.is-error {
|
|
color: var(--status-error-fg);
|
|
background: color-mix(in srgb, var(--status-error-bg) 80%, transparent);
|
|
}
|
|
|
|
.plugin-warning-priority-badge.is-warning {
|
|
color: var(--status-warning-fg);
|
|
background: color-mix(in srgb, var(--status-warning-bg) 80%, transparent);
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-item-meta {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
margin: 0;
|
|
min-width: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.76rem;
|
|
font-weight: 400;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.plugin-warning-item-meta-text {
|
|
flex: 1;
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-item-code {
|
|
display: inline;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-mono);
|
|
font-size: 0.76rem;
|
|
font-weight: 400;
|
|
line-height: 1.35;
|
|
text-overflow: ellipsis;
|
|
vertical-align: baseline;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-fix-guide {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-3);
|
|
width: 100%;
|
|
padding: 8px 10px;
|
|
border: 1px solid color-mix(in srgb, var(--status-success-fg) 30%, var(--line));
|
|
border-radius: var(--radius-sm);
|
|
background: color-mix(in srgb, var(--status-success-fg) 5%, transparent);
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-fix-guide-copy {
|
|
display: grid;
|
|
flex: 1;
|
|
gap: 4px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-fix-guide-label {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
margin: 0;
|
|
color: color-mix(in srgb, var(--status-success-fg) 74%, var(--ink));
|
|
font-size: 0.78rem;
|
|
font-weight: 650;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-fix-copy {
|
|
margin: 0;
|
|
max-width: none;
|
|
color: var(--ink-soft);
|
|
font-size: 0.8rem;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-fix-link {
|
|
flex-shrink: 0;
|
|
color: var(--official-fg);
|
|
font-weight: 500;
|
|
text-decoration: none;
|
|
white-space: nowrap;
|
|
transition: color 120ms ease;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-fix-link:hover,
|
|
.plugin-validation-panel .plugin-warning-fix-link:focus-visible {
|
|
color: color-mix(in srgb, var(--official-fg) 72%, var(--ink));
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-meta-group {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: var(--space-2) var(--space-3);
|
|
margin: var(--space-2) 0 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-meta-field {
|
|
display: inline-flex;
|
|
align-items: baseline;
|
|
gap: 0.35rem;
|
|
margin: 0;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-meta-key {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.76rem;
|
|
font-weight: 500;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-meta-value {
|
|
margin: 0;
|
|
color: color-mix(in srgb, var(--ink-soft) 92%, var(--ink));
|
|
font-size: 0.76rem;
|
|
font-weight: 500;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-evidence-block {
|
|
display: grid;
|
|
gap: 2px;
|
|
margin-top: var(--space-3);
|
|
padding-top: var(--space-2);
|
|
border-top: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-mono);
|
|
font-size: 0.72rem;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-evidence-label {
|
|
margin: 0 0 2px;
|
|
color: var(--ink-soft);
|
|
font-family: var(--oc-font-body);
|
|
font-size: 0.76rem;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-evidence-line + .plugin-warning-evidence-line {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-evidence-more {
|
|
margin: 2px 0 0;
|
|
color: var(--ink-soft);
|
|
font-family: var(--oc-font-body);
|
|
font-size: 0.7rem;
|
|
}
|
|
|
|
.plugin-manifest-section {
|
|
display: grid;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.plugin-manifest-section h3 {
|
|
margin: 0;
|
|
color: var(--ink);
|
|
font-size: 0.95rem;
|
|
font-weight: 750;
|
|
}
|
|
|
|
.plugin-manifest-list {
|
|
display: grid;
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
.plugin-manifest-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: var(--space-3);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-md);
|
|
background: var(--surface);
|
|
padding: var(--space-3);
|
|
}
|
|
|
|
.plugin-manifest-row-main {
|
|
display: grid;
|
|
gap: 0.2rem;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-manifest-row-main code {
|
|
width: fit-content;
|
|
max-width: 100%;
|
|
overflow-wrap: anywhere;
|
|
border-radius: 4px;
|
|
background: var(--surface-muted);
|
|
padding: 0.125rem 0.35rem;
|
|
color: var(--ink);
|
|
font-size: 0.82rem;
|
|
}
|
|
|
|
.plugin-manifest-row-main p,
|
|
.plugin-manifest-row-main span {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.84rem;
|
|
}
|
|
|
|
.plugin-manifest-badges,
|
|
.plugin-manifest-chip-list {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.plugin-manifest-row {
|
|
grid-template-columns: 1fr;
|
|
align-items: start;
|
|
}
|
|
}
|
|
|
|
.plugin-warning-list {
|
|
display: grid;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.plugin-warning-item {
|
|
display: grid;
|
|
gap: var(--space-2);
|
|
border: 1px solid color-mix(in srgb, var(--line) 92%, transparent);
|
|
border-radius: var(--radius-md);
|
|
background: color-mix(in srgb, var(--surface-muted) 18%, transparent);
|
|
padding: var(--space-3);
|
|
}
|
|
|
|
.plugin-warning-item.plugin-warning-item-details {
|
|
padding: 0;
|
|
gap: 0;
|
|
}
|
|
|
|
.plugin-warning-item.is-error,
|
|
.plugin-warning-item.is-warning {
|
|
background: color-mix(in srgb, var(--surface-muted) 18%, transparent);
|
|
}
|
|
|
|
.plugin-validation-panel .plugin-warning-item,
|
|
.plugin-validation-panel .plugin-warning-item.is-error,
|
|
.plugin-validation-panel .plugin-warning-item.is-warning {
|
|
background: transparent;
|
|
}
|
|
|
|
.plugin-warning-item-main {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: start;
|
|
gap: var(--space-4);
|
|
}
|
|
|
|
.plugin-warning-item-copy {
|
|
display: grid;
|
|
gap: 4px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-warning-item-tags {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.78rem;
|
|
font-weight: 500;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.plugin-warning-item-kicker {
|
|
margin: 0;
|
|
flex: 1 1 auto;
|
|
min-width: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.76rem;
|
|
font-weight: 600;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.plugin-warning-item-kicker.is-error {
|
|
color: color-mix(in srgb, var(--status-error-fg) 72%, var(--ink-soft));
|
|
}
|
|
|
|
.plugin-warning-item-kicker.is-warning {
|
|
color: color-mix(in srgb, var(--status-warning-fg) 72%, var(--ink-soft));
|
|
}
|
|
|
|
.plugin-warning-item-code {
|
|
display: block;
|
|
flex: 0 0 auto;
|
|
max-width: 11rem;
|
|
overflow-wrap: anywhere;
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-mono);
|
|
font-size: 0.72rem;
|
|
font-weight: 500;
|
|
line-height: 1.35;
|
|
text-align: right;
|
|
}
|
|
|
|
.plugin-warning-item-message {
|
|
margin: 0;
|
|
max-width: none;
|
|
color: var(--ink);
|
|
font-size: 0.9rem;
|
|
font-weight: 600;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.plugin-warning-fix-guide {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-3);
|
|
width: 100%;
|
|
padding: 8px 10px;
|
|
border: 1px solid color-mix(in srgb, var(--status-success-fg) 30%, var(--line));
|
|
border-radius: var(--radius-sm);
|
|
background: color-mix(in srgb, var(--status-success-fg) 5%, transparent);
|
|
}
|
|
|
|
.plugin-warning-fix-guide-copy {
|
|
display: grid;
|
|
flex: 1;
|
|
gap: 4px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-warning-fix-guide-label {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
margin: 0;
|
|
color: color-mix(in srgb, var(--status-success-fg) 74%, var(--ink));
|
|
font-size: 0.78rem;
|
|
font-weight: 650;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.plugin-warning-fix-copy {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.8rem;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.plugin-warning-fix-lead {
|
|
color: var(--ink);
|
|
font-weight: 650;
|
|
}
|
|
|
|
.plugin-warning-meta-group {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: var(--space-2) var(--space-3);
|
|
margin: var(--space-2) 0 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.plugin-warning-meta-field {
|
|
display: inline-flex;
|
|
align-items: baseline;
|
|
gap: 0.35rem;
|
|
margin: 0;
|
|
}
|
|
|
|
.plugin-warning-meta-key {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.76rem;
|
|
font-weight: 500;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.plugin-warning-meta-value {
|
|
margin: 0;
|
|
color: color-mix(in srgb, var(--ink-soft) 92%, var(--ink));
|
|
font-size: 0.76rem;
|
|
font-weight: 500;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.plugin-warning-evidence-block {
|
|
display: grid;
|
|
gap: 4px;
|
|
margin-top: var(--space-3);
|
|
padding-top: var(--space-3);
|
|
border-top: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-mono);
|
|
font-size: 0.74rem;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.plugin-warning-evidence-label {
|
|
margin: 0 0 2px;
|
|
color: var(--ink-soft);
|
|
font-family: var(--oc-font-body);
|
|
font-size: 0.76rem;
|
|
font-weight: 500;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.plugin-warning-evidence-line + .plugin-warning-evidence-line {
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.plugin-warning-evidence-more {
|
|
margin: 4px 0 0;
|
|
color: var(--ink-soft);
|
|
font-family: var(--oc-font-body);
|
|
font-size: 0.72rem;
|
|
}
|
|
|
|
.plugin-warning-fix {
|
|
display: grid;
|
|
gap: var(--space-2);
|
|
border-radius: var(--radius-sm);
|
|
padding: var(--space-3);
|
|
}
|
|
|
|
.plugin-warning-fix-heading {
|
|
margin: 0;
|
|
color: var(--ink);
|
|
font-size: 0.8rem;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.plugin-warning-fix p {
|
|
margin: 0;
|
|
max-width: 68ch;
|
|
color: var(--ink);
|
|
font-size: 0.88rem;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.plugin-warning-fix-link {
|
|
flex-shrink: 0;
|
|
color: var(--official-fg);
|
|
font-size: 0.84rem;
|
|
font-weight: 650;
|
|
text-decoration: none;
|
|
white-space: nowrap;
|
|
transition: color 120ms ease;
|
|
}
|
|
|
|
.plugin-warning-fix-link:hover,
|
|
.plugin-warning-fix-link:focus-visible {
|
|
color: color-mix(in srgb, var(--official-fg) 72%, var(--ink));
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.plugin-warning-fix a:not(.plugin-warning-fix-link) {
|
|
justify-self: start;
|
|
color: var(--accent);
|
|
font-size: 0.88rem;
|
|
font-weight: 700;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.plugin-warning-fix a:not(.plugin-warning-fix-link):hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.plugin-publish-error-text {
|
|
color: var(--status-error-fg);
|
|
font-size: 0.9rem;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.plugin-publish-error-panel {
|
|
display: grid;
|
|
gap: var(--space-3);
|
|
width: min(100%, 720px);
|
|
border: 1px solid color-mix(in srgb, var(--status-error-fg) 30%, var(--line));
|
|
border-radius: var(--radius-md);
|
|
background: var(--status-error-bg);
|
|
padding: var(--space-4);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.plugin-publish-error-heading {
|
|
display: grid;
|
|
gap: var(--space-1);
|
|
}
|
|
|
|
.plugin-publish-error-heading strong {
|
|
color: var(--status-error-fg);
|
|
font-size: 0.92rem;
|
|
}
|
|
|
|
.plugin-publish-error-heading span {
|
|
color: var(--ink-soft);
|
|
font-size: 0.86rem;
|
|
}
|
|
|
|
.plugin-publish-error-table-wrap {
|
|
overflow-x: auto;
|
|
border: 1px solid color-mix(in srgb, var(--status-error-fg) 20%, var(--line));
|
|
border-radius: var(--radius-sm);
|
|
background: var(--surface);
|
|
}
|
|
|
|
.plugin-publish-error-table {
|
|
width: 100%;
|
|
min-width: 420px;
|
|
border-collapse: collapse;
|
|
font-size: 0.84rem;
|
|
}
|
|
|
|
.plugin-publish-error-table th,
|
|
.plugin-publish-error-table td {
|
|
border-bottom: 1px solid var(--line);
|
|
padding: 0.65rem 0.75rem;
|
|
text-align: left;
|
|
vertical-align: top;
|
|
}
|
|
|
|
.plugin-publish-error-table th {
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
font-size: 0.72rem;
|
|
font-weight: 800;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.plugin-publish-error-table tr:last-child td {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.plugin-publish-error-table code {
|
|
border-radius: 4px;
|
|
background: var(--surface-muted);
|
|
padding: 0.125rem 0.35rem;
|
|
color: var(--ink);
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.plugin-tab-panel-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
}
|
|
|
|
.plugin-tab-panel-header h2 {
|
|
margin: 0;
|
|
color: var(--ink);
|
|
font-size: 1rem;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.plugin-sidebar-tag-list {
|
|
display: grid;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-kv-grid {
|
|
display: grid;
|
|
gap: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.plugin-kv-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(132px, 0.34fr) minmax(0, 1fr);
|
|
gap: var(--space-3);
|
|
align-items: baseline;
|
|
padding: var(--space-3) 0;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
|
|
}
|
|
|
|
.plugin-kv-row:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.plugin-kv-label {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
font-weight: 650;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.plugin-kv-label-inner {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-kv-icon {
|
|
flex-shrink: 0;
|
|
color: color-mix(in srgb, var(--ink-soft) 90%, transparent);
|
|
}
|
|
|
|
.plugin-kv-value {
|
|
margin: 0;
|
|
min-width: 0;
|
|
color: var(--ink);
|
|
font-size: var(--fs-sm);
|
|
font-weight: 500;
|
|
line-height: 1.55;
|
|
overflow-wrap: anywhere;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.plugin-kv-value--mono {
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 500;
|
|
letter-spacing: -0.01em;
|
|
}
|
|
|
|
.plugin-kv-value--hash {
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 500;
|
|
line-height: 1.45;
|
|
padding: var(--space-2) var(--space-3);
|
|
border: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
|
|
border-radius: var(--r-sm);
|
|
background: color-mix(in srgb, var(--surface-muted) 82%, var(--bg-soft));
|
|
word-break: break-all;
|
|
}
|
|
|
|
.plugin-tag-list {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
}
|
|
|
|
.plugin-external-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
color: inherit;
|
|
text-decoration: none;
|
|
text-decoration-color: currentColor;
|
|
text-underline-offset: 0.18em;
|
|
word-break: break-all;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.plugin-external-link svg {
|
|
flex: 0 0 auto;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.plugin-external-link:hover,
|
|
.plugin-external-link:focus-visible {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.plugin-external-link:hover svg,
|
|
.plugin-external-link:focus-visible svg {
|
|
color: currentColor;
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.plugin-kv-row {
|
|
grid-template-columns: 1fr;
|
|
gap: var(--space-1);
|
|
align-items: start;
|
|
}
|
|
.plugin-install-bar {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
.plugin-install-code {
|
|
font-size: 0.82rem;
|
|
}
|
|
.plugin-release-row {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
}
|
|
}
|
|
|
|
/* ── End Plugin Detail ── */
|
|
|
|
.skill-owner-tools {
|
|
display: grid;
|
|
gap: 14px;
|
|
}
|
|
|
|
.skill-owner-tools-grid {
|
|
display: grid;
|
|
gap: 14px;
|
|
grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
|
|
}
|
|
|
|
.skill-admin-panel {
|
|
display: grid;
|
|
width: 100%;
|
|
gap: 0;
|
|
}
|
|
|
|
.skill-admin-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) minmax(320px, 50%);
|
|
gap: clamp(32px, 5vw, 96px);
|
|
align-items: start;
|
|
padding: 34px 0;
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.skill-admin-row-copy {
|
|
display: grid;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-admin-row-copy h3 {
|
|
margin: 0;
|
|
color: var(--ink);
|
|
font-size: 1rem;
|
|
font-weight: 700;
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.skill-admin-row-copy p {
|
|
max-width: 560px;
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.95rem;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.skill-admin-row-controls {
|
|
display: grid;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
justify-self: end;
|
|
width: 100%;
|
|
}
|
|
|
|
.skill-admin-control-line {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 10px;
|
|
align-items: center;
|
|
}
|
|
|
|
.skill-admin-row > [data-slot="button"],
|
|
.skill-admin-row-controls > [data-slot="button"] {
|
|
justify-self: start;
|
|
}
|
|
|
|
.skill-admin-row > [data-slot="button"] {
|
|
justify-self: end;
|
|
}
|
|
|
|
.summary-settings-editor {
|
|
display: grid;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
justify-self: end;
|
|
width: 100%;
|
|
}
|
|
|
|
.summary-settings-editor textarea {
|
|
min-height: 96px;
|
|
}
|
|
|
|
.summary-settings-footer {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
}
|
|
|
|
.summary-settings-meta {
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
font-size: 0.78rem;
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.summary-settings-error {
|
|
margin: 0;
|
|
color: var(--status-error-fg);
|
|
font-size: 0.86rem;
|
|
font-weight: 650;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
@media (max-width: 820px) {
|
|
.skill-owner-tools-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.skill-admin-panel {
|
|
max-width: none;
|
|
}
|
|
|
|
.skill-admin-row {
|
|
grid-template-columns: 1fr;
|
|
gap: 14px;
|
|
}
|
|
|
|
.skill-admin-row-controls {
|
|
justify-self: stretch;
|
|
width: 100%;
|
|
}
|
|
|
|
.skill-admin-control-line {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.summary-settings-editor {
|
|
justify-self: stretch;
|
|
width: 100%;
|
|
}
|
|
|
|
.summary-settings-footer {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
}
|
|
}
|
|
|
|
.skill-hero-layout {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
align-items: start;
|
|
gap: 24px;
|
|
min-width: 0;
|
|
}
|
|
|
|
@media (min-width: 901px) {
|
|
.skill-hero-layout.has-sidebar {
|
|
grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
|
|
column-gap: clamp(56px, 7vw, 96px);
|
|
row-gap: 64px;
|
|
}
|
|
|
|
.skill-hero-layout.has-sidebar > .skill-hero-main {
|
|
grid-column: 1;
|
|
}
|
|
|
|
.skill-hero-layout.has-sidebar > .skill-hero-lower.has-sidebar {
|
|
grid-column: 1 / -1;
|
|
grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
|
|
column-gap: clamp(56px, 7vw, 96px);
|
|
}
|
|
|
|
.skill-hero-lower.has-sidebar > .skill-hero-main-extra {
|
|
grid-column: 1;
|
|
}
|
|
|
|
.skill-hero-lower.has-sidebar > .skill-hero-sidebar {
|
|
grid-column: 2;
|
|
}
|
|
}
|
|
|
|
.skill-hero-main {
|
|
display: grid;
|
|
gap: 20px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-hero-lower {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 40px;
|
|
align-items: start;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-hero-lower.has-sidebar {
|
|
--detail-hero-summary-content-height: 40px;
|
|
--detail-hero-summary-row-padding-bottom: 12px;
|
|
--detail-hero-summary-row-block-size: calc(
|
|
var(--detail-hero-summary-content-height) + var(--detail-hero-summary-row-padding-bottom)
|
|
);
|
|
grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
|
|
gap: clamp(56px, 7vw, 96px);
|
|
}
|
|
|
|
.skill-hero-main-extra {
|
|
display: grid;
|
|
gap: 66px;
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
overflow-x: clip;
|
|
overflow-y: visible;
|
|
}
|
|
|
|
.skill-hero-main-extra > * {
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.skill-hero-action-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr));
|
|
gap: 16px;
|
|
align-items: stretch;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-hero-action-grid > * {
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-hero-title {
|
|
display: grid;
|
|
gap: 18px;
|
|
min-width: 0;
|
|
flex: 1 1 min(360px, 100%);
|
|
}
|
|
|
|
.skill-hero-title-row {
|
|
display: flex;
|
|
width: 100%;
|
|
margin-bottom: -4px;
|
|
align-items: center;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.skill-hero-heading-stack {
|
|
display: grid;
|
|
width: 100%;
|
|
justify-items: start;
|
|
gap: 18px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-hero-breadcrumbs {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
font-size: 12px;
|
|
font-weight: 520;
|
|
}
|
|
|
|
:is(.skill-detail-page, .plugin-detail-page) .skill-hero-breadcrumbs {
|
|
display: none;
|
|
}
|
|
|
|
.skill-hero-breadcrumbs a,
|
|
.skill-hero-breadcrumbs span {
|
|
min-width: 0;
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-hero-breadcrumbs a:hover {
|
|
color: var(--ink);
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.skill-hero-breadcrumbs a:last-child {
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skill-sidebar-star-band .skill-sidebar-star-action {
|
|
display: inline-flex;
|
|
width: fit-content;
|
|
max-width: 100%;
|
|
justify-content: flex-start;
|
|
min-height: var(--detail-hero-summary-content-height, 40px);
|
|
padding: 0;
|
|
color: var(--ink-soft);
|
|
font-weight: 620;
|
|
}
|
|
|
|
.detail-hero-summary-row {
|
|
display: flex;
|
|
align-items: center;
|
|
box-sizing: border-box;
|
|
width: 100%;
|
|
min-height: var(--detail-hero-summary-row-block-size, 52px);
|
|
padding-bottom: var(--detail-hero-summary-row-padding-bottom, 12px);
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.skill-sidebar-star-band.detail-hero-summary-row {
|
|
padding-inline: 2px;
|
|
}
|
|
|
|
.skill-sidebar-star-band .skill-sidebar-star-action:hover,
|
|
.skill-sidebar-star-band .skill-sidebar-star-action:focus-visible {
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.plugin-install-card-header.detail-hero-summary-row {
|
|
flex-direction: row;
|
|
align-items: center;
|
|
gap: 12px;
|
|
}
|
|
|
|
.plugin-downloads-metric-value-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-downloads-metric-content {
|
|
flex: 1 1 auto;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-sidebar-download-actions {
|
|
display: flex;
|
|
flex: 0 0 auto;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 8px;
|
|
}
|
|
|
|
.plugin-sidebar-download-actions .plugin-sidebar-download-button {
|
|
width: auto;
|
|
flex: 0 0 auto;
|
|
justify-content: center;
|
|
min-height: 32px;
|
|
padding: 5px 10px;
|
|
gap: 6px;
|
|
font-size: 0.78rem;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.plugin-sidebar-download-actions .plugin-sidebar-download-button svg {
|
|
color: color-mix(in srgb, var(--ink-soft) 84%, transparent);
|
|
}
|
|
|
|
.sidebar-metadata-compact
|
|
> .sidebar-metadata-row:not(.sidebar-metadata-row-large):has(.plugin-sidebar-download-actions) {
|
|
gap: 0;
|
|
padding-block: 12px;
|
|
}
|
|
|
|
.sidebar-metadata-compact
|
|
> .sidebar-metadata-row:not(.sidebar-metadata-row-large):has(.plugin-sidebar-download-actions)
|
|
.sidebar-metadata-label {
|
|
display: none;
|
|
}
|
|
|
|
.sidebar-metadata-compact
|
|
> .sidebar-metadata-row:not(.sidebar-metadata-row-large):has(.plugin-sidebar-download-actions)
|
|
.plugin-sidebar-download-actions,
|
|
.sidebar-metadata-compact
|
|
> .sidebar-metadata-row:not(.sidebar-metadata-row-large):has(.plugin-sidebar-download-actions)
|
|
.plugin-sidebar-download-button {
|
|
width: 100%;
|
|
justify-content: center;
|
|
}
|
|
|
|
.sidebar-metadata-row-large:has(.plugin-downloads-metric-value-row) {
|
|
gap: 10px;
|
|
}
|
|
|
|
.sidebar-metadata-row-large:has(.plugin-downloads-metric-value-row) .sidebar-metadata-value {
|
|
width: 100%;
|
|
}
|
|
|
|
.sidebar-metadata-row-large:has(.metric-trend-card) .plugin-downloads-metric-value-row {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.skill-hero-creator {
|
|
display: inline-flex;
|
|
min-width: 0;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.skill-hero-title > .skill-summary-block:has(+ .skill-hero-creator) {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.skill-hero-creator .user-badge,
|
|
.skill-hero-creator .user-badge-link {
|
|
display: inline-grid;
|
|
grid-template-columns: auto minmax(0, 1fr);
|
|
grid-template-rows: auto auto;
|
|
column-gap: 10px;
|
|
row-gap: 2px;
|
|
align-items: center;
|
|
min-width: 0;
|
|
color: var(--ink-soft);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-hero-creator .user-badge-link {
|
|
border-radius: var(--r-pill);
|
|
padding: 4px 10px 4px 4px;
|
|
margin-left: -4px;
|
|
transition:
|
|
background-color 0.18s ease,
|
|
color 0.18s ease;
|
|
}
|
|
|
|
.skill-hero-creator .user-badge-link .user-avatar {
|
|
transition:
|
|
border-color 0.18s ease,
|
|
box-shadow 0.18s ease;
|
|
}
|
|
|
|
.skill-hero-creator .user-badge-link .user-name,
|
|
.skill-hero-creator .user-badge-link .user-handle {
|
|
transition: color 0.18s ease;
|
|
}
|
|
|
|
.skill-hero-creator .user-avatar {
|
|
grid-column: 1;
|
|
grid-row: 1 / span 2;
|
|
align-self: center;
|
|
}
|
|
|
|
.skill-hero-creator .user-name-row {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
align-self: center;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-hero-creator .user-name {
|
|
color: var(--ink);
|
|
font-weight: 680;
|
|
font-size: 0.88rem;
|
|
line-height: 1.15;
|
|
}
|
|
|
|
.skill-hero-creator .official-badge-icon-only {
|
|
flex: 0 0 auto;
|
|
color: var(--official-fg);
|
|
}
|
|
|
|
.skill-hero-creator .user-name-sep {
|
|
display: none;
|
|
}
|
|
|
|
.skill-hero-creator .user-handle {
|
|
grid-column: 2;
|
|
grid-row: 2;
|
|
color: var(--ink-soft);
|
|
font-weight: 560;
|
|
font-size: 0.8rem;
|
|
line-height: 1.15;
|
|
}
|
|
|
|
.skill-hero-creator .user-badge-link:hover,
|
|
.skill-hero-creator .user-badge-link:focus-visible {
|
|
background: var(--hover-bg);
|
|
text-decoration: none;
|
|
outline: none;
|
|
}
|
|
|
|
.skill-hero-creator .user-badge-link:focus-visible {
|
|
box-shadow: 0 0 0 2px color-mix(in srgb, var(--ink) 14%, transparent);
|
|
}
|
|
|
|
.skill-hero-creator .user-badge-link:hover .user-avatar,
|
|
.skill-hero-creator .user-badge-link:focus-visible .user-avatar {
|
|
border-color: color-mix(in srgb, var(--ink-soft) 42%, var(--line));
|
|
box-shadow: 0 0 0 1px color-mix(in srgb, var(--ink) 6%, transparent);
|
|
}
|
|
|
|
.skill-hero-creator .user-badge-link:hover .user-name,
|
|
.skill-hero-creator .user-badge-link:focus-visible .user-name {
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-hero-creator .user-badge-link:hover .user-handle,
|
|
.skill-hero-creator .user-badge-link:focus-visible .user-handle {
|
|
color: color-mix(in srgb, var(--ink) 68%, var(--ink-soft));
|
|
text-decoration: none;
|
|
}
|
|
|
|
.plugin-catalog-empty-alert {
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 10px;
|
|
width: 100%;
|
|
max-width: 100%;
|
|
min-width: 0;
|
|
padding: 9px 10px;
|
|
border: 1px solid color-mix(in srgb, #f6c76a 24%, var(--line));
|
|
border-radius: var(--r-sm);
|
|
background: color-mix(in srgb, #f6c76a 8%, var(--surface));
|
|
color: var(--ink);
|
|
}
|
|
|
|
.plugin-catalog-empty-alert--hero {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
width: 100%;
|
|
max-width: 100%;
|
|
padding: 2px 0 0;
|
|
border: none;
|
|
background: transparent;
|
|
gap: 10px;
|
|
}
|
|
|
|
.plugin-detail-page .skill-hero-heading-stack:has(.plugin-catalog-empty-alert--hero) {
|
|
gap: 12px;
|
|
}
|
|
|
|
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-visibility {
|
|
width: fit-content;
|
|
padding: 0;
|
|
border: none;
|
|
color: var(--ink-soft);
|
|
font-size: 0.68rem;
|
|
font-weight: 600;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.plugin-catalog-empty-alert-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-row {
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-icon {
|
|
width: 18px;
|
|
height: 18px;
|
|
background: transparent;
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
}
|
|
|
|
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-icon svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.plugin-catalog-empty-alert-title {
|
|
min-width: 0;
|
|
color: var(--ink);
|
|
font-size: 0.8rem;
|
|
font-weight: 650;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-cta {
|
|
height: auto;
|
|
min-height: 0;
|
|
margin-left: 0;
|
|
padding: 0;
|
|
gap: 4px;
|
|
border: none !important;
|
|
background: transparent !important;
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg)) !important;
|
|
font-size: 0.75rem;
|
|
font-weight: 600;
|
|
text-decoration: none;
|
|
text-underline-offset: 3px;
|
|
}
|
|
|
|
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-cta:hover,
|
|
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-cta:focus-visible {
|
|
border: none !important;
|
|
background: transparent !important;
|
|
color: var(--ink) !important;
|
|
text-decoration: underline;
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.plugin-catalog-empty-alert-row {
|
|
flex-wrap: wrap;
|
|
row-gap: 6px;
|
|
}
|
|
|
|
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-cta {
|
|
margin-left: 24px;
|
|
}
|
|
}
|
|
|
|
.plugin-catalog-empty-alert-icon {
|
|
display: grid;
|
|
width: 28px;
|
|
height: 28px;
|
|
place-items: center;
|
|
border-radius: 999px;
|
|
background: color-mix(in srgb, #f6c76a 12%, transparent);
|
|
color: color-mix(in srgb, #f6c76a 74%, var(--ink));
|
|
}
|
|
|
|
.plugin-catalog-empty-alert-copy {
|
|
display: grid;
|
|
gap: 2px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-catalog-empty-alert-heading {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
font-size: 0.84rem;
|
|
font-weight: 700;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.plugin-catalog-empty-alert-visibility {
|
|
width: fit-content;
|
|
max-width: 100%;
|
|
padding: 2px 6px;
|
|
border: 1px solid color-mix(in srgb, var(--ink-soft) 14%, transparent);
|
|
border-radius: 999px;
|
|
color: var(--ink-soft);
|
|
font-size: 0.68rem;
|
|
font-weight: 650;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.plugin-catalog-empty-alert-copy p {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.78rem;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.plugin-catalog-empty-alert-cta {
|
|
height: 30px;
|
|
padding-inline: 10px;
|
|
}
|
|
|
|
.plugin-catalog-empty-alert-cta:hover,
|
|
.plugin-catalog-empty-alert-cta:focus-visible {
|
|
border-color: color-mix(in srgb, #f6c76a 38%, var(--line));
|
|
background: color-mix(in srgb, #f6c76a 12%, var(--surface-muted));
|
|
color: var(--ink);
|
|
}
|
|
|
|
.plugin-catalog-metadata-dialog {
|
|
width: min(calc(100vw - 32px), 520px);
|
|
gap: 18px;
|
|
padding: 20px;
|
|
}
|
|
|
|
.plugin-catalog-metadata-dialog .catalog-metadata-settings-editor {
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-catalog-metadata-dialog .catalog-metadata-fields {
|
|
grid-template-columns: 1fr;
|
|
gap: 14px;
|
|
}
|
|
|
|
.plugin-catalog-metadata-dialog .summary-settings-footer {
|
|
align-items: center;
|
|
}
|
|
|
|
.skill-page-title {
|
|
margin: 0;
|
|
font-family: var(--font-display);
|
|
font-size: clamp(1.9rem, 3.45vw, 2.25rem);
|
|
line-height: 1.05;
|
|
font-weight: 700;
|
|
color: var(--ink);
|
|
text-wrap: balance;
|
|
}
|
|
|
|
.skill-title-actions {
|
|
display: flex;
|
|
flex: 0 0 auto;
|
|
gap: 10px;
|
|
margin-left: auto;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.skill-management-toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
width: 100%;
|
|
min-height: 32px;
|
|
padding: 0 2px 8px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 60%, transparent);
|
|
}
|
|
|
|
.skill-management-toolbar-alert {
|
|
display: flex;
|
|
align-items: center;
|
|
flex: 1 1 auto;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-management-toolbar-inner {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 4px;
|
|
flex: 0 0 auto;
|
|
margin-left: auto;
|
|
}
|
|
|
|
.skill-management-toolbar-action {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-height: 32px !important;
|
|
height: auto;
|
|
padding: 5px 10px !important;
|
|
border: 0;
|
|
border-radius: var(--r-btn);
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
font: inherit;
|
|
font-size: 0.78rem !important;
|
|
font-weight: 650 !important;
|
|
line-height: 1;
|
|
cursor: pointer;
|
|
text-decoration: none;
|
|
white-space: nowrap;
|
|
transition:
|
|
color 0.15s,
|
|
background 0.15s;
|
|
}
|
|
|
|
.skill-management-toolbar-action svg {
|
|
color: color-mix(in srgb, var(--ink-soft) 84%, transparent);
|
|
}
|
|
|
|
.skill-management-toolbar-action:hover,
|
|
.skill-management-toolbar-action:focus-visible {
|
|
color: var(--ink);
|
|
background: color-mix(in srgb, var(--ink-soft) 10%, transparent);
|
|
text-decoration: none;
|
|
outline: none;
|
|
}
|
|
|
|
.skill-management-toolbar-action:hover svg,
|
|
.skill-management-toolbar-action:focus-visible svg {
|
|
color: color-mix(in srgb, var(--ink) 72%, var(--ink-soft));
|
|
}
|
|
|
|
.skill-management-toolbar-action-subtle {
|
|
color: color-mix(in srgb, var(--ink-soft) 64%, var(--bg));
|
|
}
|
|
|
|
.skill-title-badges {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
align-self: center;
|
|
}
|
|
|
|
.skill-category-chip {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
width: fit-content;
|
|
min-height: 28px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
|
|
border-radius: var(--r-pill);
|
|
padding: 4px 10px;
|
|
background: color-mix(in srgb, var(--surface-muted) 76%, transparent);
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
letter-spacing: 0;
|
|
text-decoration: none;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.skill-category-chip:hover {
|
|
border-color: color-mix(in srgb, var(--ink-soft) 36%, var(--line));
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-hero-taxonomy-row {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--space-3);
|
|
min-width: 0;
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
font-size: 12px;
|
|
line-height: 1;
|
|
}
|
|
|
|
.skill-hero-taxonomy-prefix {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.skills-sh-sync-source-label {
|
|
color: inherit;
|
|
font-weight: 520;
|
|
}
|
|
|
|
.skills-sh-sync-source {
|
|
color: inherit;
|
|
text-decoration: underline;
|
|
text-underline-offset: 3px;
|
|
}
|
|
|
|
.skills-sh-sync-source:hover,
|
|
.skills-sh-sync-source:focus-visible {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.skill-category-meta-list {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--space-5);
|
|
min-width: 0;
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
}
|
|
|
|
.skill-category-meta-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
font-size: 12px;
|
|
font-weight: 520;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-category-meta-link:hover,
|
|
.skill-category-meta-link:focus-visible {
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-category-icon {
|
|
width: 14px;
|
|
height: 14px;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.skill-hero-taxonomy-separator {
|
|
width: 1px;
|
|
height: 14px;
|
|
flex: 0 0 auto;
|
|
background: color-mix(in srgb, var(--ink-soft) 28%, transparent);
|
|
}
|
|
|
|
.skill-hero-topic-list {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-hero-topic {
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
font-size: 12px;
|
|
font-weight: 520;
|
|
line-height: 1;
|
|
white-space: nowrap;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-hero-topic:hover,
|
|
.skill-hero-topic:focus-visible {
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
}
|
|
|
|
@media (max-width: 600px) {
|
|
.skill-hero-taxonomy-row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
row-gap: 10px;
|
|
}
|
|
|
|
.skill-hero-taxonomy-separator {
|
|
display: none;
|
|
}
|
|
|
|
.skill-hero-topic-list {
|
|
flex-basis: 100%;
|
|
}
|
|
}
|
|
|
|
.skill-settings-link {
|
|
align-self: center;
|
|
}
|
|
|
|
.skill-hero-note {
|
|
font-size: 0.9rem;
|
|
color: var(--ink);
|
|
max-width: 560px;
|
|
padding: 8px 12px;
|
|
border-radius: 12px;
|
|
background: rgba(255, 255, 255, 0.08);
|
|
border: 1px solid rgba(255, 255, 255, 0.18);
|
|
}
|
|
|
|
.skill-visibility-alert {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
margin: 0;
|
|
min-width: 0;
|
|
color: var(--status-error-fg);
|
|
font-size: 0.8125rem;
|
|
font-weight: 550;
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.skill-visibility-alert > svg {
|
|
flex: 0 0 auto;
|
|
color: var(--status-error-fg);
|
|
}
|
|
|
|
.skill-visibility-alert > span {
|
|
min-width: 0;
|
|
}
|
|
|
|
.tag-accent {
|
|
background: rgba(255, 255, 255, 0.16);
|
|
color: var(--accent-deep);
|
|
}
|
|
|
|
.skill-hero-top {
|
|
display: grid;
|
|
gap: 16px;
|
|
}
|
|
|
|
/* Removed two-column layout for .skill-hero-top.has-plugin so that
|
|
<SkillInstallSurface /> and sibling panels span the full hero width
|
|
directly below the title/description instead of being squeezed into
|
|
a narrow right column. */
|
|
|
|
.skill-hero-content {
|
|
display: grid;
|
|
gap: 16px;
|
|
}
|
|
|
|
.bundle-card {
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
padding: 20px;
|
|
background: var(--surface);
|
|
box-shadow: 0 18px 30px rgba(37, 31, 26, 0.08);
|
|
}
|
|
|
|
.bundle-header {
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.bundle-title {
|
|
font-family: var(--font-display);
|
|
font-size: 1.05rem;
|
|
letter-spacing: -0.015em;
|
|
}
|
|
|
|
.bundle-subtitle {
|
|
font-size: 0.88rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.bundle-includes {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.bundle-includes span {
|
|
padding: 6px 12px;
|
|
border-radius: var(--r-pill);
|
|
border: 1px solid var(--line);
|
|
background: var(--surface-muted);
|
|
color: var(--ink);
|
|
font-size: 0.76rem;
|
|
font-weight: 650;
|
|
letter-spacing: 0.01em;
|
|
}
|
|
|
|
.bundle-section {
|
|
display: grid;
|
|
gap: 8px;
|
|
padding: 10px 12px;
|
|
border-radius: 14px;
|
|
background: var(--surface-muted);
|
|
border: 1px solid var(--line);
|
|
}
|
|
|
|
.bundle-card .hero-install-code {
|
|
white-space: pre-wrap;
|
|
overflow-wrap: anywhere;
|
|
word-break: break-word;
|
|
text-align: left;
|
|
font-variant-ligatures: none;
|
|
font-feature-settings:
|
|
"liga" 0,
|
|
"calt" 0;
|
|
}
|
|
|
|
.bundle-section-title {
|
|
font-size: 0.9rem;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.bundle-meta {
|
|
display: grid;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.bundle-meta .stat,
|
|
.bundle-meta strong,
|
|
.bundle-meta span {
|
|
min-width: 0;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.bundle-details summary {
|
|
cursor: pointer;
|
|
font-weight: 650;
|
|
list-style: none;
|
|
}
|
|
|
|
.bundle-details summary::-webkit-details-marker {
|
|
display: none;
|
|
}
|
|
|
|
.bundle-details summary::before {
|
|
content: "▸";
|
|
display: inline-block;
|
|
margin-right: 8px;
|
|
color: var(--accent-deep);
|
|
}
|
|
|
|
.bundle-details[open] summary::before {
|
|
content: "▾";
|
|
}
|
|
|
|
.skill-hero-sidebar {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-hero-sidebar-stack {
|
|
display: grid;
|
|
gap: 24px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-hero-sidebar > .card {
|
|
width: 100%;
|
|
}
|
|
|
|
.skill-hero-sidebar .skill-install-panel {
|
|
width: 100%;
|
|
padding: 18px;
|
|
}
|
|
|
|
.skill-hero-sidebar .skill-install-panel-copy {
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.skill-hero-sidebar .skill-install-command {
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.skills-sh-security-audits {
|
|
display: grid;
|
|
gap: 8px;
|
|
padding: 18px 0;
|
|
border-top: 1px solid var(--line);
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.skills-sh-security-audits h2 {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-family: inherit;
|
|
font-size: 0.86rem;
|
|
font-weight: 700;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.skills-sh-security-audit-list {
|
|
display: grid;
|
|
}
|
|
|
|
.skills-sh-security-audit-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
min-height: 36px;
|
|
padding: 8px 0;
|
|
color: var(--ink);
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skills-sh-security-audit-verdict {
|
|
flex: 0 0 auto;
|
|
border-radius: var(--oc-radius-control);
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
a.skills-sh-security-audit-row:hover,
|
|
a.skills-sh-security-audit-row:focus-visible {
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
background: var(--hover-bg);
|
|
}
|
|
|
|
.skills-sh-content-note {
|
|
margin: 0;
|
|
padding-bottom: 14px;
|
|
color: var(--ink-soft);
|
|
font-size: 0.72rem;
|
|
}
|
|
|
|
.skill-sidebar-actions {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.skill-sidebar-actions-primary {
|
|
gap: 8px;
|
|
}
|
|
|
|
.skill-sidebar-actions-secondary {
|
|
margin-top: 0;
|
|
padding-top: 10px;
|
|
}
|
|
|
|
.skill-hero-sidebar-stack
|
|
> .sidebar-metadata:has(+ .skill-sidebar-actions-secondary)
|
|
> .sidebar-metadata-row:last-child,
|
|
.skill-hero-sidebar-stack
|
|
> .sidebar-metadata:has(+ .skill-sidebar-actions-secondary)
|
|
> .sidebar-metadata-grid:last-child
|
|
.sidebar-metadata-row {
|
|
padding-bottom: 10px;
|
|
}
|
|
|
|
.skill-sidebar-action-button {
|
|
width: 100%;
|
|
justify-content: center;
|
|
}
|
|
|
|
.skill-sidebar-actions-secondary .skill-sidebar-action-button {
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.skill-sidebar-actions-secondary .skill-sidebar-action-link {
|
|
color: color-mix(in srgb, var(--ink-soft) 72%, var(--bg));
|
|
font-weight: 560;
|
|
}
|
|
|
|
.skill-sidebar-actions-secondary .skill-sidebar-action-link:hover,
|
|
.skill-sidebar-actions-secondary .skill-sidebar-action-link:focus-visible {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.skill-sidebar-action-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
width: fit-content;
|
|
padding: 0;
|
|
border: 0;
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
font: inherit;
|
|
font-size: 0.875rem;
|
|
font-weight: 600;
|
|
line-height: 1.2;
|
|
cursor: pointer;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-sidebar-action-link:hover,
|
|
.skill-sidebar-action-link:focus-visible {
|
|
color: var(--ink);
|
|
text-decoration: underline;
|
|
text-underline-offset: 3px;
|
|
outline: none;
|
|
}
|
|
|
|
.skill-sidebar-action-button:hover:not(:disabled),
|
|
.skill-sidebar-action-button:focus-visible:not(:disabled) {
|
|
border-color: color-mix(in srgb, var(--ink-soft) 36%, var(--line)) !important;
|
|
}
|
|
|
|
.skill-sidebar-action-divider {
|
|
border: 0;
|
|
border-top: 1px solid var(--line);
|
|
margin: 6px 0;
|
|
width: 100%;
|
|
}
|
|
|
|
.detail-mobile-master-tabs,
|
|
.detail-mobile-master-panel-content {
|
|
display: contents;
|
|
}
|
|
|
|
.detail-sidebar-stats {
|
|
display: contents;
|
|
}
|
|
|
|
.detail-mobile-master-tab-list,
|
|
.detail-mobile-master-stats {
|
|
display: none;
|
|
}
|
|
|
|
.detail-mobile-master-tab-list[hidden],
|
|
.detail-mobile-master-panel[hidden],
|
|
.skill-hero-creator[hidden] {
|
|
display: none !important;
|
|
}
|
|
|
|
.security-audit-sidebar-label {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.security-audit-sidebar-info {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 18px;
|
|
height: 18px;
|
|
padding: 0;
|
|
border: 0;
|
|
background: transparent;
|
|
color: inherit;
|
|
}
|
|
|
|
.security-audit-sidebar-value {
|
|
display: block;
|
|
min-width: 0;
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
border-radius: var(--r-sm);
|
|
}
|
|
|
|
.security-audit-sidebar-value:hover,
|
|
.security-audit-sidebar-value:focus-visible {
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
outline: none;
|
|
}
|
|
|
|
.security-audit-sidebar-value-row {
|
|
display: grid;
|
|
align-items: center;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 12px;
|
|
min-width: 0;
|
|
border-radius: var(--r-sm);
|
|
padding: 8px 10px;
|
|
margin: -2px 0 -6px -10px;
|
|
transition:
|
|
background-color 0.16s ease,
|
|
box-shadow 0.16s ease;
|
|
}
|
|
|
|
.security-audit-sidebar-value:hover .security-audit-sidebar-value-row,
|
|
.security-audit-sidebar-value:focus-visible .security-audit-sidebar-value-row {
|
|
background: color-mix(in srgb, var(--surface-muted) 78%, transparent);
|
|
box-shadow: 0 0 0 1px color-mix(in srgb, var(--line) 58%, transparent);
|
|
}
|
|
|
|
.security-audit-sidebar-value-row .security-audit-meter {
|
|
min-width: 0;
|
|
}
|
|
|
|
.security-audit-sidebar-verdict {
|
|
min-width: 0;
|
|
color: var(--ink);
|
|
font-size: 1rem;
|
|
font-weight: 700;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.security-audit-meter {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 6px;
|
|
height: 6px;
|
|
}
|
|
|
|
.security-audit-meter span {
|
|
border-radius: var(--r-pill);
|
|
background: color-mix(in srgb, var(--ink-soft) 24%, var(--line));
|
|
}
|
|
|
|
.security-audit-meter[data-level="1"] span:first-child {
|
|
background: #ef7777;
|
|
}
|
|
|
|
.security-audit-meter[data-level="2"] span:nth-child(-n + 2) {
|
|
background: #f1b85a;
|
|
}
|
|
|
|
.security-audit-meter[data-level="3"] span {
|
|
background: #79e68e;
|
|
}
|
|
|
|
.skill-hero-sidebar-meta {
|
|
display: grid;
|
|
gap: 0;
|
|
}
|
|
|
|
.skill-sidebar-item {
|
|
display: grid;
|
|
gap: 2px;
|
|
padding: 8px 0;
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
.skill-sidebar-item:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.skill-sidebar-label {
|
|
font-size: 0.72rem;
|
|
font-weight: 600;
|
|
letter-spacing: 0.06em;
|
|
text-transform: uppercase;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.skill-sidebar-value {
|
|
font-size: 0.84rem;
|
|
color: var(--ink);
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.sidebar-metadata,
|
|
.skill-sidebar-stats {
|
|
display: grid;
|
|
gap: 0;
|
|
min-width: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.sidebar-metadata-grid,
|
|
.skill-sidebar-stat-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 0;
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.sidebar-metadata-row,
|
|
.skill-sidebar-stat-row {
|
|
display: grid;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
padding: 18px 2px;
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.sidebar-metadata > .sidebar-metadata-row:last-child,
|
|
.sidebar-metadata > .sidebar-metadata-grid:last-child,
|
|
.skill-sidebar-stats > .skill-sidebar-stat-row:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.sidebar-metadata-grid .sidebar-metadata-row,
|
|
.skill-sidebar-stat-grid .skill-sidebar-stat-row {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.sidebar-metadata-grid .sidebar-metadata-row + .sidebar-metadata-row,
|
|
.skill-sidebar-stat-grid .skill-sidebar-stat-row + .skill-sidebar-stat-row {
|
|
padding-left: 20px;
|
|
}
|
|
|
|
.sidebar-metadata-row-large .sidebar-metadata-value,
|
|
.skill-sidebar-stat-row-large strong {
|
|
font-size: 1.65rem;
|
|
}
|
|
|
|
.sidebar-metadata-label,
|
|
.skill-sidebar-stat-label {
|
|
color: var(--ink-soft);
|
|
font-size: 0.92rem;
|
|
font-weight: 700;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.sidebar-metadata-value,
|
|
.skill-sidebar-stat-row strong {
|
|
min-width: 0;
|
|
margin: 0;
|
|
color: var(--ink);
|
|
font-size: 1.08rem;
|
|
font-weight: 700;
|
|
line-height: 1.2;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.sidebar-metadata-value .user-badge,
|
|
.sidebar-metadata-value .user-name,
|
|
.sidebar-metadata-value .user-handle {
|
|
font-size: inherit;
|
|
font-weight: inherit;
|
|
}
|
|
|
|
.sidebar-metadata-value .user-handle-muted {
|
|
font-size: 14px;
|
|
}
|
|
|
|
.sidebar-metadata-value .user-badge-link {
|
|
margin: -4px -8px;
|
|
padding: 4px 8px;
|
|
border-radius: var(--r-pill);
|
|
transition:
|
|
background-color 0.15s ease,
|
|
color 0.15s ease;
|
|
}
|
|
|
|
.sidebar-metadata-value .user-badge-link:hover,
|
|
.sidebar-metadata-value .user-badge-link:focus-visible {
|
|
background: color-mix(in srgb, var(--surface) 72%, transparent);
|
|
outline: none;
|
|
}
|
|
|
|
.sidebar-metadata-value .user-badge-link:hover .user-name,
|
|
.sidebar-metadata-value .user-badge-link:focus-visible .user-name,
|
|
.sidebar-metadata-value .user-badge-link:hover .user-handle,
|
|
.sidebar-metadata-value .user-badge-link:focus-visible .user-handle {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.sidebar-metadata-compact .sidebar-metadata-row {
|
|
gap: 7px;
|
|
padding: 16px 2px;
|
|
}
|
|
|
|
.sidebar-metadata-compact > .sidebar-metadata-row:first-child {
|
|
box-sizing: border-box;
|
|
padding-top: 0;
|
|
}
|
|
|
|
.skill-hero-sidebar-stack:has(.skill-sidebar-star-band)
|
|
.sidebar-metadata-compact
|
|
> .sidebar-metadata-row:first-child,
|
|
.skill-hero-sidebar-stack:has(.skill-sidebar-star-band)
|
|
.sidebar-metadata-compact
|
|
> .sidebar-metadata-grid:first-child
|
|
.sidebar-metadata-row:first-child {
|
|
min-height: 0;
|
|
padding-top: var(--space-4);
|
|
}
|
|
|
|
.sidebar-metadata-compact .sidebar-metadata-label {
|
|
font-size: 0.86rem;
|
|
}
|
|
|
|
.sidebar-metadata-compact .sidebar-metadata-value {
|
|
font-size: 1rem;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.sidebar-metadata-value .official-badge {
|
|
width: auto;
|
|
height: auto;
|
|
border: 0;
|
|
background: transparent;
|
|
}
|
|
|
|
.sidebar-metadata-value .official-badge svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.sidebar-metadata-compact .sidebar-metadata-grid .sidebar-metadata-row + .sidebar-metadata-row {
|
|
padding-left: 18px;
|
|
}
|
|
|
|
.sidebar-metadata-row-inline {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.sidebar-metadata-row-inline .sidebar-metadata-label {
|
|
flex: 0 0 auto;
|
|
margin: 0;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.sidebar-metadata-row-inline .sidebar-metadata-value {
|
|
flex: 1 1 auto;
|
|
min-width: 0;
|
|
font-size: 0.92rem;
|
|
font-weight: 600;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.sidebar-metadata-inline-text {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.sidebar-metadata-inline {
|
|
display: inline-flex;
|
|
min-width: 0;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.activity-metric-label {
|
|
display: inline-flex;
|
|
min-width: 0;
|
|
align-items: center;
|
|
gap: 6px;
|
|
}
|
|
|
|
.activity-metric-tooltip {
|
|
max-width: 260px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.downloads-metric-label-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.downloads-metric-tabs {
|
|
display: flex;
|
|
align-items: center;
|
|
flex: 0 0 auto;
|
|
gap: 14px;
|
|
margin-left: auto;
|
|
}
|
|
|
|
.detail-inline-tab {
|
|
border: none;
|
|
background: none;
|
|
padding: 0 2px 3px;
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
white-space: nowrap;
|
|
border-bottom: 2px solid transparent;
|
|
transition:
|
|
color 0.15s ease,
|
|
border-color 0.15s ease;
|
|
}
|
|
|
|
.detail-inline-tab:hover,
|
|
.detail-inline-tab:focus-visible {
|
|
color: var(--ink);
|
|
outline: none;
|
|
}
|
|
|
|
.detail-inline-tab.is-active {
|
|
color: var(--ink);
|
|
border-bottom-color: var(--ink);
|
|
}
|
|
|
|
.sidebar-metadata-row-large .sidebar-metadata-label:has(.downloads-metric-label-row) {
|
|
width: 100%;
|
|
}
|
|
|
|
.sidebar-metadata-row-large:has(.metric-trend-card) {
|
|
gap: calc(var(--space-2) + 2px);
|
|
padding-block: calc(var(--space-4) + 2px);
|
|
}
|
|
|
|
.metric-trend-card {
|
|
display: grid;
|
|
gap: calc(var(--space-2) + 2px);
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.metric-trend-card-skeleton {
|
|
height: 58px;
|
|
}
|
|
|
|
.metric-trend-value-row {
|
|
display: flex;
|
|
align-items: baseline;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
}
|
|
|
|
.metric-trend-value-row strong {
|
|
color: var(--ink);
|
|
font-size: inherit;
|
|
font-weight: inherit;
|
|
line-height: 1;
|
|
}
|
|
|
|
.metric-trend-point-label {
|
|
color: var(--ink-muted);
|
|
font-size: 0.8125rem;
|
|
font-weight: 500;
|
|
line-height: 1.2;
|
|
text-align: right;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.metric-trend-chart {
|
|
display: block;
|
|
width: 100%;
|
|
height: 34px;
|
|
color: var(--metric-trend-line, color-mix(in srgb, #6b9fd4 76%, var(--ink)));
|
|
outline: none;
|
|
touch-action: pan-y;
|
|
}
|
|
|
|
.metric-trend-chart:focus-visible {
|
|
outline: 2px solid var(--input-focus-border);
|
|
outline-offset: 3px;
|
|
}
|
|
|
|
.metric-trend-area {
|
|
fill: var(--metric-trend-area, color-mix(in srgb, #6b9fd4 18%, transparent));
|
|
}
|
|
|
|
.metric-trend-line {
|
|
fill: none;
|
|
stroke: currentColor;
|
|
stroke-linecap: round;
|
|
stroke-linejoin: round;
|
|
stroke-width: 2;
|
|
}
|
|
|
|
.metric-trend-marker-line {
|
|
stroke: var(--metric-trend-marker, color-mix(in srgb, #6b9fd4 36%, transparent));
|
|
stroke-width: 1.5;
|
|
}
|
|
|
|
.metric-trend-skeleton-total,
|
|
.metric-trend-skeleton-label,
|
|
.metric-trend-skeleton-chart {
|
|
display: block;
|
|
border-radius: 999px;
|
|
background: linear-gradient(
|
|
90deg,
|
|
color-mix(in srgb, var(--ink) 8%, transparent),
|
|
color-mix(in srgb, var(--ink) 14%, transparent),
|
|
color-mix(in srgb, var(--ink) 8%, transparent)
|
|
);
|
|
background-size: 200% 100%;
|
|
animation: skeleton-shimmer 1.15s ease-in-out infinite;
|
|
}
|
|
|
|
.metric-trend-skeleton-total {
|
|
width: 54px;
|
|
height: 18px;
|
|
}
|
|
|
|
.metric-trend-skeleton-label {
|
|
width: 112px;
|
|
height: 14px;
|
|
}
|
|
|
|
.metric-trend-skeleton-chart {
|
|
width: 100%;
|
|
height: 34px;
|
|
border-radius: 6px;
|
|
}
|
|
|
|
.security-audit-latest-time {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.95rem;
|
|
font-weight: 600;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.security-audit-latest-time svg {
|
|
color: var(--ink-muted);
|
|
}
|
|
|
|
.security-audit-latest-time > span:last-child {
|
|
min-width: 0;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.security-audit-action-icon,
|
|
.security-audit-rescan-icon {
|
|
width: 14px;
|
|
height: 14px;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.security-audit-rescan-error {
|
|
color: var(--oc-status-error-fg);
|
|
font-size: 0.78rem;
|
|
font-weight: 650;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.skill-action-count {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-width: 1.75em;
|
|
height: 1.45em;
|
|
margin-left: 6px;
|
|
padding: 0 0.5em;
|
|
border-radius: var(--r-pill);
|
|
background: color-mix(in srgb, currentColor 12%, transparent);
|
|
font-size: 13px;
|
|
font-weight: 750;
|
|
line-height: 1;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.skill-hero-inline-meta {
|
|
display: grid;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-hero-stats-row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 4px 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-hero-meta-row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 8px 14px;
|
|
min-width: 0;
|
|
margin-top: 2px;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.skill-hero-meta-item {
|
|
display: inline-flex;
|
|
align-items: baseline;
|
|
flex-wrap: wrap;
|
|
gap: 4px;
|
|
min-width: 0;
|
|
font-size: 0.82rem;
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.skill-hero-meta-label {
|
|
color: var(--ink-soft);
|
|
font-weight: 520;
|
|
}
|
|
|
|
.skill-hero-meta-link {
|
|
color: var(--accent);
|
|
font-weight: 560;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-hero-meta-link:hover,
|
|
.skill-hero-meta-link:focus-visible {
|
|
color: var(--accent);
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.skill-hero-meta-version {
|
|
color: var(--ink-soft);
|
|
font-weight: 520;
|
|
}
|
|
|
|
.skill-hero-badges {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
align-items: center;
|
|
}
|
|
|
|
.official-badge-icon {
|
|
color: currentColor;
|
|
}
|
|
|
|
.owner-official-icon {
|
|
display: inline-flex;
|
|
flex: 0 0 auto;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: var(--official-fg);
|
|
}
|
|
|
|
.official-badge {
|
|
flex: 0 0 auto;
|
|
display: inline-flex;
|
|
width: 18px;
|
|
height: 18px;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-pill);
|
|
background: var(--official-bg);
|
|
color: var(--official-fg);
|
|
border-color: var(--official-border);
|
|
line-height: 1;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.official-badge svg {
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
.browse-page .official-badge {
|
|
width: auto;
|
|
height: auto;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
color: var(--official-fg);
|
|
}
|
|
|
|
.browse-page .official-badge svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
.browse-page .skill-list-item .official-badge svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.skill-hero-scan-row {
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.skill-install-surface {
|
|
display: grid;
|
|
gap: 16px;
|
|
}
|
|
|
|
.skill-install-panel {
|
|
display: grid;
|
|
gap: 16px;
|
|
padding: 20px;
|
|
border-radius: var(--radius-md);
|
|
border: 1px solid var(--line);
|
|
background:
|
|
linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, white), var(--surface)),
|
|
var(--surface);
|
|
box-shadow: var(--shadow-card);
|
|
min-width: 0;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .skill-install-panel {
|
|
border-color: var(--line);
|
|
background: var(--surface);
|
|
}
|
|
|
|
.skill-install-panel-header {
|
|
display: grid;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-install-kicker {
|
|
margin: 0;
|
|
font-size: 0.72rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.16em;
|
|
text-transform: uppercase;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.skill-install-panel-title {
|
|
margin: 0;
|
|
font-size: 1.08rem;
|
|
font-weight: 700;
|
|
color: var(--ink);
|
|
text-wrap: balance;
|
|
}
|
|
|
|
.skill-install-panel-copy {
|
|
margin: 0;
|
|
max-width: 52ch;
|
|
font-size: 0.92rem;
|
|
line-height: 1.55;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.skill-install-panel-copy code {
|
|
display: inline-block;
|
|
border-radius: 999px;
|
|
padding: 2px 8px;
|
|
background: rgba(255, 255, 255, 0.08);
|
|
color: var(--ink);
|
|
font-family: var(--font-mono);
|
|
font-size: 0.82rem;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .skill-install-panel-copy code {
|
|
background: rgba(15, 12, 10, 0.08);
|
|
}
|
|
|
|
.skill-install-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.skill-install-prompt-trigger {
|
|
min-height: 46px;
|
|
border: 1px solid rgba(0, 0, 0, 0.7);
|
|
border-radius: 999px;
|
|
background: #0e0e10;
|
|
color: #f8f2e9;
|
|
padding-inline: 18px;
|
|
box-shadow: 0 12px 28px rgba(0, 0, 0, 0.16);
|
|
transition:
|
|
transform 0.18s ease,
|
|
box-shadow 0.18s ease,
|
|
border-color 0.18s ease,
|
|
background-color 0.18s ease;
|
|
touch-action: manipulation;
|
|
}
|
|
|
|
.skill-install-prompt-trigger:hover {
|
|
border-color: rgba(0, 0, 0, 0.82);
|
|
background: #161619;
|
|
}
|
|
|
|
.skill-install-copy-button:not(.skill-install-command-inline-button) {
|
|
border-color: rgba(255, 255, 255, 0.12);
|
|
background: rgba(255, 255, 255, 0.02);
|
|
color: var(--ink);
|
|
transition:
|
|
transform 0.18s ease,
|
|
border-color 0.18s ease,
|
|
background-color 0.18s ease,
|
|
box-shadow 0.18s ease;
|
|
touch-action: manipulation;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .skill-install-copy-button:not(.skill-install-command-inline-button) {
|
|
border-color: rgba(15, 12, 10, 0.12);
|
|
background: rgba(255, 255, 255, 0.62);
|
|
}
|
|
|
|
.skill-install-copy-button:not(.skill-install-command-inline-button)[data-copy-state="copied"] {
|
|
border-color: rgba(34, 197, 94, 0.36);
|
|
color: var(--status-success-fg);
|
|
}
|
|
|
|
.skill-install-copy-button:not(.skill-install-command-inline-button)[data-copy-state="failed"] {
|
|
border-color: rgba(239, 68, 68, 0.32);
|
|
color: var(--status-error-fg);
|
|
}
|
|
|
|
.skill-install-menu {
|
|
max-width: 280px;
|
|
}
|
|
|
|
.skill-install-menu-copy {
|
|
display: grid;
|
|
gap: 2px;
|
|
}
|
|
|
|
.skill-install-menu-label {
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.skill-install-menu-description {
|
|
font-size: 0.78rem;
|
|
font-weight: 500;
|
|
line-height: 1.4;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.skill-install-copy-feedback {
|
|
/*
|
|
* Force the feedback line onto its own row inside `.skill-install-actions`
|
|
* regardless of the current string length. The feedback text changes between
|
|
* short ("Previewing Install Only.") and longer ("Install & Setup prompt
|
|
* copied.") states; without `flex-basis: 100%` the long state can push past
|
|
* the container width and wrap below the trigger button, causing the whole
|
|
* panel to visibly reflow vertically every time the user picks a prompt mode.
|
|
* Pinning the row makes the layout stable — only the `<pre>` preview below
|
|
* is allowed to grow/shrink with content.
|
|
*/
|
|
flex-basis: 100%;
|
|
min-height: 1.25rem;
|
|
font-size: 0.82rem;
|
|
font-weight: 600;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.skill-install-preview-meta {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.skill-install-preview-label,
|
|
.skill-install-command-label {
|
|
margin: 0;
|
|
font-size: 0.76rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.12em;
|
|
text-transform: uppercase;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.skill-install-preview-mode {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
border-radius: 999px;
|
|
padding: 6px 10px;
|
|
background: rgba(255, 255, 255, 0.08);
|
|
color: var(--ink);
|
|
font-size: 0.82rem;
|
|
font-weight: 700;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .skill-install-preview-mode {
|
|
background: rgba(15, 12, 10, 0.08);
|
|
}
|
|
|
|
.skill-install-prompt-preview,
|
|
.skill-install-command {
|
|
margin: 0;
|
|
min-width: 0;
|
|
overflow-x: auto;
|
|
border-radius: var(--radius-md);
|
|
border: 1px solid var(--line);
|
|
background: var(--surface-muted);
|
|
color: var(--ink);
|
|
padding: 16px 18px;
|
|
font-family: var(--font-mono);
|
|
font-size: 0.82rem;
|
|
line-height: 1.7;
|
|
white-space: pre-wrap;
|
|
overflow-wrap: anywhere;
|
|
word-break: break-word;
|
|
font-variant-numeric: tabular-nums;
|
|
box-shadow: none;
|
|
}
|
|
|
|
/*
|
|
* Keep the prompt preview at a stable height so that switching between
|
|
* "Install Only" and "Install & Setup" does not shift the surrounding
|
|
* layout. The setup prompt is noticeably longer than the install-only
|
|
* prompt; without a min-height the whole panel (and its neighbour CLI
|
|
* panel, since they share a grid row) visibly jumps on every toggle.
|
|
* Only applied to the prompt preview — the CLI `<pre>` blocks stay
|
|
* content-sized to avoid unnecessary blank space.
|
|
*/
|
|
.skill-install-prompt-preview {
|
|
min-height: 22em;
|
|
}
|
|
|
|
.skill-install-command-card {
|
|
display: grid;
|
|
gap: 18px;
|
|
min-width: 0;
|
|
padding: 0;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.skill-install-command-header {
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .skill-install-command-card {
|
|
background: transparent;
|
|
}
|
|
|
|
.skill-install-command-copy {
|
|
display: grid;
|
|
gap: 4px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-install-command-wrap {
|
|
position: relative;
|
|
display: grid;
|
|
min-width: 0;
|
|
width: 100%;
|
|
}
|
|
|
|
.skill-install-command-shell {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 8px;
|
|
width: 100%;
|
|
max-width: 100%;
|
|
min-width: 0;
|
|
box-sizing: border-box;
|
|
overflow-x: hidden;
|
|
overflow-y: visible;
|
|
border-radius: var(--radius-md);
|
|
border: 1px solid var(--line);
|
|
background: var(--surface-muted);
|
|
padding: 16px 62px 16px 18px;
|
|
}
|
|
|
|
.skill-install-command-shell-cli {
|
|
--install-command-line-height: 1.5;
|
|
align-items: center;
|
|
}
|
|
|
|
.skill-install-command-prompt {
|
|
flex: 0 0 auto;
|
|
align-self: center;
|
|
font-family: var(--font-mono);
|
|
font-size: 0.82rem;
|
|
line-height: var(--install-command-line-height, 1.5);
|
|
color: color-mix(in srgb, var(--ink-soft) 70%, transparent);
|
|
user-select: none;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.skill-install-command-wrap .skill-install-command-verb {
|
|
color: color-mix(in srgb, var(--ink-soft) 70%, transparent);
|
|
}
|
|
|
|
.skill-install-command-wrap .skill-install-command-target {
|
|
color: var(--ink);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .skill-install-command-shell {
|
|
border-color: var(--line);
|
|
background: var(--surface-muted);
|
|
}
|
|
|
|
.skill-install-command-wrap .skill-install-command {
|
|
display: flex;
|
|
flex: 1 1 auto;
|
|
align-items: center;
|
|
width: auto;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow-x: hidden;
|
|
overflow-y: visible;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
padding: 0;
|
|
margin: 0;
|
|
font-size: 0.82rem;
|
|
line-height: var(--install-command-line-height, 1.5);
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skill-install-command-wrap .skill-install-command code {
|
|
display: block;
|
|
overflow-x: hidden;
|
|
overflow-y: visible;
|
|
line-height: var(--install-command-line-height, 1.5);
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skill-install-command-wrap .skill-install-prompt-compact {
|
|
display: block;
|
|
align-self: stretch;
|
|
line-height: 1.7;
|
|
}
|
|
|
|
.skill-install-command-wrap .skill-install-prompt-compact code {
|
|
line-height: 1.7;
|
|
}
|
|
|
|
.skill-install-command-reveal {
|
|
--install-command-enter-x: 10px;
|
|
transition:
|
|
opacity 170ms cubic-bezier(0.23, 1, 0.32, 1),
|
|
transform 170ms cubic-bezier(0.23, 1, 0.32, 1),
|
|
filter 170ms cubic-bezier(0.23, 1, 0.32, 1);
|
|
will-change: opacity, transform, filter;
|
|
}
|
|
|
|
.skill-install-command-reveal[data-direction="left"] {
|
|
--install-command-enter-x: -10px;
|
|
}
|
|
|
|
@starting-style {
|
|
.skill-install-command-reveal {
|
|
opacity: 0;
|
|
transform: translateX(var(--install-command-enter-x));
|
|
filter: blur(4px);
|
|
}
|
|
}
|
|
|
|
.skill-install-command-wrap .skill-install-prompt-compact {
|
|
overflow: visible;
|
|
text-overflow: clip;
|
|
white-space: pre-wrap;
|
|
overflow-wrap: break-word;
|
|
word-break: normal;
|
|
}
|
|
|
|
.skill-install-command-wrap .skill-install-prompt-compact code {
|
|
overflow: visible;
|
|
text-overflow: clip;
|
|
white-space: pre-wrap;
|
|
overflow-wrap: break-word;
|
|
word-break: normal;
|
|
}
|
|
|
|
.skill-install-command-inline-button.skill-install-copy-button {
|
|
position: absolute;
|
|
right: 10px;
|
|
border: 0 !important;
|
|
background: transparent !important;
|
|
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
|
|
box-shadow: none;
|
|
transition: color 0.18s ease !important;
|
|
}
|
|
|
|
.skill-install-command-shell-cli .skill-install-command-inline-button.skill-install-copy-button {
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
}
|
|
|
|
.skill-install-command-shell:not(.skill-install-command-shell-cli)
|
|
.skill-install-command-inline-button.skill-install-copy-button {
|
|
top: 12px;
|
|
transform: none;
|
|
}
|
|
|
|
.skill-install-command-inline-button.skill-install-copy-button:hover:not(:disabled),
|
|
.skill-install-command-inline-button.skill-install-copy-button:focus-visible {
|
|
border: 0 !important;
|
|
background: transparent !important;
|
|
color: var(--ink);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.skill-install-command-shell-cli
|
|
.skill-install-command-inline-button.skill-install-copy-button:hover:not(:disabled),
|
|
.skill-install-command-shell-cli
|
|
.skill-install-command-inline-button.skill-install-copy-button:focus-visible {
|
|
transform: translateY(-50%);
|
|
}
|
|
|
|
.skill-install-command-shell-cli
|
|
.skill-install-command-inline-button.skill-install-copy-button[data-copy-state="copied"],
|
|
.skill-install-command-shell-cli
|
|
.skill-install-command-inline-button.skill-install-copy-button[data-copy-state="failed"] {
|
|
transform: translateY(-50%);
|
|
}
|
|
|
|
.skill-install-command-inline-button.skill-install-copy-button[data-copy-state="copied"] {
|
|
border: 0 !important;
|
|
background: transparent !important;
|
|
color: var(--status-success-fg);
|
|
}
|
|
|
|
.skill-install-command-inline-button.skill-install-copy-button[data-copy-state="failed"] {
|
|
border: 0 !important;
|
|
background: transparent !important;
|
|
color: var(--status-error-fg);
|
|
}
|
|
|
|
.skill-install-command-caption {
|
|
margin: 0;
|
|
font-size: 0.84rem;
|
|
line-height: 1.45;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.skill-install-command-tooltip {
|
|
max-width: min(720px, calc(100vw - 32px));
|
|
padding: 10px 12px;
|
|
}
|
|
|
|
.skill-install-command-tooltip code {
|
|
display: block;
|
|
max-height: 320px;
|
|
overflow: auto;
|
|
white-space: pre-wrap;
|
|
overflow-wrap: anywhere;
|
|
font-family: var(--font-mono);
|
|
font-size: 0.78rem;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.install-switcher-toggle {
|
|
--install-switcher-active-index: 0;
|
|
position: relative;
|
|
display: inline-flex;
|
|
width: fit-content;
|
|
align-items: center;
|
|
gap: 4px;
|
|
border-radius: var(--r-btn);
|
|
border: 1px solid color-mix(in srgb, var(--line) 88%, transparent);
|
|
background: color-mix(in srgb, var(--surface-muted) 78%, var(--bg));
|
|
padding: 4px;
|
|
}
|
|
|
|
.install-switcher-toggle[data-active="prompt"] {
|
|
--install-switcher-active-index: 1;
|
|
}
|
|
|
|
.install-switcher-toggle::before {
|
|
position: absolute;
|
|
inset-block: 4px;
|
|
left: 4px;
|
|
width: calc((100% - 12px) / 2);
|
|
border-radius: calc(var(--r-btn) - 4px);
|
|
background: color-mix(in srgb, var(--surface-muted) 70%, var(--ink) 8%);
|
|
content: "";
|
|
transform: translateX(calc(var(--install-switcher-active-index) * (100% + 4px)));
|
|
transition: transform 190ms cubic-bezier(0.23, 1, 0.32, 1);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .install-switcher-toggle {
|
|
border-color: color-mix(in srgb, var(--line) 92%, transparent);
|
|
background: color-mix(in srgb, var(--surface-muted) 72%, var(--bg));
|
|
}
|
|
|
|
.install-switcher-pill {
|
|
position: relative;
|
|
z-index: 1;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-width: 64px;
|
|
min-height: 32px;
|
|
border: none;
|
|
border-radius: calc(var(--r-btn) - 4px);
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
padding: 0 14px;
|
|
font-family: var(--font-body);
|
|
font-size: 0.78rem;
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
text-transform: none;
|
|
transition: color 160ms ease;
|
|
touch-action: manipulation;
|
|
}
|
|
|
|
.install-switcher-pill:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.install-switcher-pill:focus-visible {
|
|
outline: 2px solid var(--accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.install-switcher-pill.is-active,
|
|
.install-switcher-pill[aria-selected="true"] {
|
|
background: transparent;
|
|
color: var(--ink);
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* Skill/plugin install card — flat CLI | Prompt text toggle */
|
|
.skill-install-command-card .skill-install-tab-toggle {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0;
|
|
padding: 0;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: none;
|
|
}
|
|
|
|
.skill-install-command-card .skill-install-tab {
|
|
appearance: none;
|
|
border: 0;
|
|
cursor: pointer;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-height: 24px;
|
|
padding: 4px 8px;
|
|
border-radius: 0;
|
|
background: none;
|
|
color: var(--ink-soft);
|
|
font-family: inherit;
|
|
font-size: 0.72rem;
|
|
font-weight: 650;
|
|
letter-spacing: -0.01em;
|
|
line-height: 1;
|
|
transition: color 0.15s ease;
|
|
}
|
|
|
|
.skill-install-command-card .skill-install-tab + .skill-install-tab {
|
|
position: relative;
|
|
}
|
|
|
|
.skill-install-command-card .skill-install-tab + .skill-install-tab::before {
|
|
content: "";
|
|
position: absolute;
|
|
left: 0;
|
|
top: 50%;
|
|
width: 1px;
|
|
height: 12px;
|
|
transform: translateY(-50%);
|
|
background: color-mix(in srgb, var(--ink-soft) 45%, transparent);
|
|
}
|
|
|
|
.skill-install-command-card .skill-install-tab:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.skill-install-command-card .skill-install-tab.is-active {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.skill-install-command-card .skill-install-tab:focus-visible {
|
|
outline: 2px solid color-mix(in srgb, var(--ink) 35%, transparent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.skill-install-prompt-trigger,
|
|
.skill-install-copy-button,
|
|
.skill-install-command-reveal,
|
|
.skill-install-tab,
|
|
.install-switcher-toggle::before,
|
|
.install-switcher-pill {
|
|
transition: none;
|
|
transform: none;
|
|
filter: none;
|
|
}
|
|
}
|
|
|
|
/* Skill/plugin detail mobile stack — max-width 900px; desktop sidebar starts at 901px */
|
|
@media (max-width: 900px) {
|
|
.skill-detail-page,
|
|
.plugin-detail-page {
|
|
--detail-mobile-surface-radius: var(--r-md);
|
|
--detail-mobile-surface-padding: 14px;
|
|
--detail-mobile-surface-border: 1px solid var(--line);
|
|
--detail-mobile-surface-bg: color-mix(in srgb, var(--surface) 92%, transparent);
|
|
}
|
|
|
|
.skill-hero {
|
|
gap: 12px;
|
|
}
|
|
|
|
.skill-hero-layout.has-sidebar {
|
|
gap: 16px;
|
|
}
|
|
|
|
.skill-hero-main {
|
|
gap: 14px;
|
|
}
|
|
|
|
.skill-hero-title {
|
|
gap: 12px;
|
|
}
|
|
|
|
.skill-hero-heading-stack {
|
|
gap: 10px;
|
|
}
|
|
|
|
.skill-hero-layout.has-sidebar .skill-summary-block {
|
|
max-width: none;
|
|
margin-bottom: 0;
|
|
gap: 4px;
|
|
}
|
|
|
|
.skill-hero-lower {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.skill-hero-lower.has-sidebar {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 12px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.skill-hero-sidebar,
|
|
.skill-hero-main-extra {
|
|
display: contents;
|
|
}
|
|
|
|
.skill-sidebar-mobile-priority {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.detail-sidebar-stats {
|
|
display: none;
|
|
}
|
|
|
|
.plugin-detail-page .skill-hero-sidebar-stack {
|
|
display: none;
|
|
}
|
|
|
|
.detail-mobile-install {
|
|
order: 1;
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-detail-page .detail-mobile-install {
|
|
margin-top: 14px;
|
|
}
|
|
|
|
.detail-mobile-install .skill-install-command-card {
|
|
--detail-mobile-install-border: color-mix(in srgb, var(--ink-soft) 30%, transparent);
|
|
position: relative;
|
|
isolation: isolate;
|
|
gap: 12px;
|
|
padding: var(--detail-mobile-surface-padding);
|
|
border: 0;
|
|
border-radius: var(--detail-mobile-surface-radius) var(--detail-mobile-surface-radius) 0 0;
|
|
background: transparent;
|
|
}
|
|
|
|
.detail-mobile-install .skill-install-command-card::before {
|
|
position: absolute;
|
|
inset: 0;
|
|
z-index: 0;
|
|
border-radius: inherit;
|
|
background: linear-gradient(180deg, var(--detail-mobile-surface-bg) 0%, transparent 100%);
|
|
content: "";
|
|
pointer-events: none;
|
|
}
|
|
|
|
.detail-mobile-install .skill-install-command-card::after {
|
|
position: absolute;
|
|
inset: 0;
|
|
z-index: 0;
|
|
border: 1px solid var(--detail-mobile-install-border);
|
|
border-bottom: 0;
|
|
border-radius: inherit;
|
|
content: "";
|
|
pointer-events: none;
|
|
-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 38%, transparent 100%);
|
|
mask-image: linear-gradient(to bottom, #000 0%, #000 38%, transparent 100%);
|
|
}
|
|
|
|
.detail-mobile-install .skill-install-command-card > * {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.detail-mobile-install .skill-install-command-header {
|
|
padding-bottom: 12px;
|
|
border-bottom-color: transparent;
|
|
background: linear-gradient(
|
|
90deg,
|
|
transparent,
|
|
color-mix(in srgb, var(--line) 62%, transparent) 12%,
|
|
color-mix(in srgb, var(--line) 62%, transparent) 88%,
|
|
transparent
|
|
)
|
|
bottom / 100% 1px no-repeat;
|
|
}
|
|
|
|
.detail-mobile-install .skill-install-command-shell {
|
|
border-color: color-mix(in srgb, var(--line) 72%, transparent);
|
|
background: color-mix(in srgb, var(--surface-muted) 76%, var(--bg));
|
|
padding: 12px 52px 12px 14px;
|
|
}
|
|
|
|
.detail-mobile-install .skill-install-command-shell-cli {
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
.skills-sh-detail-page .detail-mobile-install .skill-install-command-shell-cli {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.skills-sh-detail-page .detail-mobile-install .skill-install-command-prompt {
|
|
align-self: flex-start;
|
|
}
|
|
|
|
.skills-sh-detail-page
|
|
.detail-mobile-install
|
|
.skill-install-command-shell-cli
|
|
.skill-install-command,
|
|
.skills-sh-detail-page
|
|
.detail-mobile-install
|
|
.skill-install-command-shell-cli
|
|
.skill-install-command
|
|
code {
|
|
white-space: pre-wrap;
|
|
overflow-wrap: anywhere;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.detail-mobile-install .skill-install-command-shell-cli .skill-install-command,
|
|
.detail-mobile-install .skill-install-command-shell-cli .skill-install-command code {
|
|
white-space: nowrap;
|
|
overflow-wrap: normal;
|
|
word-break: normal;
|
|
}
|
|
|
|
.detail-mobile-install .skill-install-command-shell-cli .skill-install-command-inline-button {
|
|
top: 50%;
|
|
right: 10px;
|
|
margin-top: 0;
|
|
transform: translateY(-50%);
|
|
flex: none;
|
|
justify-content: center;
|
|
}
|
|
|
|
.detail-mobile-install .skill-install-command-shell:not(.skill-install-command-shell-cli) {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
padding: 12px 48px 12px 14px;
|
|
}
|
|
|
|
.detail-mobile-install
|
|
.skill-install-command-shell:not(.skill-install-command-shell-cli)
|
|
.skill-install-command {
|
|
display: block;
|
|
flex: none;
|
|
width: 100%;
|
|
max-width: 100%;
|
|
min-width: 0;
|
|
white-space: pre-wrap;
|
|
overflow-wrap: break-word;
|
|
word-break: normal;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
.detail-mobile-install
|
|
.skill-install-command-shell:not(.skill-install-command-shell-cli)
|
|
.skill-install-command
|
|
code {
|
|
display: block;
|
|
width: 100%;
|
|
max-width: 100%;
|
|
white-space: pre-wrap;
|
|
overflow-wrap: break-word;
|
|
word-break: normal;
|
|
}
|
|
|
|
.detail-mobile-install
|
|
.skill-install-command-shell:not(.skill-install-command-shell-cli)
|
|
.skill-install-command-inline-button {
|
|
position: absolute;
|
|
top: 12px;
|
|
right: 10px;
|
|
align-self: auto;
|
|
width: auto;
|
|
margin-top: 0;
|
|
transform: none;
|
|
}
|
|
|
|
.skill-hero-main-extra
|
|
> :not(.detail-mobile-tabs):not(.detail-mobile-related):not(.detail-mobile-install):not(
|
|
.detail-mobile-master-tabs
|
|
) {
|
|
order: 0;
|
|
}
|
|
|
|
.detail-mobile-deferred {
|
|
order: 3;
|
|
margin-top: 0;
|
|
border: var(--detail-mobile-surface-border);
|
|
border-radius: var(--detail-mobile-surface-radius);
|
|
background: var(--detail-mobile-surface-bg);
|
|
}
|
|
|
|
.detail-mobile-tabs {
|
|
order: 4;
|
|
margin-top: 4px;
|
|
}
|
|
|
|
.detail-mobile-related {
|
|
order: 5;
|
|
margin-top: 4px;
|
|
}
|
|
|
|
.skill-hero-main-extra {
|
|
gap: 14px;
|
|
}
|
|
|
|
.plugin-detail-page .skill-hero-main-extra {
|
|
gap: var(--space-5);
|
|
}
|
|
|
|
.skill-hero-sidebar-stack {
|
|
order: 2;
|
|
width: 100%;
|
|
gap: 10px;
|
|
}
|
|
|
|
:is(.skill-detail-page, .plugin-detail-page) .skill-summary-block {
|
|
margin-top: 4px;
|
|
}
|
|
|
|
:is(.skill-detail-page, .plugin-detail-page) .skill-hero-creator {
|
|
margin-top: 18px;
|
|
}
|
|
|
|
.skill-detail-page .skill-hero-creator {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
width: 100%;
|
|
gap: 12px;
|
|
}
|
|
|
|
.skill-detail-page .skill-hero-creator .user-badge,
|
|
.skill-detail-page .skill-hero-creator .user-badge-link {
|
|
flex: 1 1 auto;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-detail-page .skill-hero-creator-star {
|
|
display: flex;
|
|
flex: 0 0 auto;
|
|
align-items: center;
|
|
margin-left: auto;
|
|
}
|
|
|
|
.skill-detail-page .skill-hero-creator-star .skill-sidebar-star-action {
|
|
min-height: 0;
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.skill-detail-page .skill-hero-creator-star .skill-sidebar-star-action:hover,
|
|
.skill-detail-page .skill-hero-creator-star .skill-sidebar-star-action:focus-visible {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-detail-page .skill-hero-lower.has-sidebar {
|
|
order: 3;
|
|
display: grid;
|
|
gap: 12px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.detail-mobile-master-tabs {
|
|
order: 3;
|
|
display: grid;
|
|
gap: 12px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.detail-mobile-master-tab-list {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 0;
|
|
min-width: 0;
|
|
width: 100%;
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.detail-mobile-master-tab {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-width: 0;
|
|
min-height: 44px;
|
|
margin-bottom: -1px;
|
|
border: 0;
|
|
border-bottom: 2px solid transparent;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
padding: 0 12px;
|
|
font: inherit;
|
|
font-size: 0.9rem;
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
text-align: center;
|
|
transition:
|
|
border-color 150ms ease,
|
|
background-color 150ms ease,
|
|
color 150ms ease,
|
|
transform 150ms ease;
|
|
}
|
|
|
|
.detail-mobile-master-tab:hover,
|
|
.detail-mobile-master-tab:focus-visible {
|
|
color: var(--ink);
|
|
outline: none;
|
|
}
|
|
|
|
.detail-mobile-master-tab:focus-visible {
|
|
box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 38%, transparent);
|
|
}
|
|
|
|
.detail-mobile-master-tab:active {
|
|
transform: none;
|
|
}
|
|
|
|
.detail-mobile-master-tab.is-active {
|
|
border-bottom-color: var(--ink);
|
|
background: transparent;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.detail-mobile-master-panel {
|
|
min-width: 0;
|
|
}
|
|
|
|
.detail-mobile-master-panel-content {
|
|
display: grid;
|
|
gap: 14px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.detail-mobile-master-stats {
|
|
display: grid;
|
|
gap: 0;
|
|
width: 100%;
|
|
min-width: 0;
|
|
padding: var(--detail-mobile-surface-padding);
|
|
border: var(--detail-mobile-surface-border);
|
|
border-radius: var(--detail-mobile-surface-radius);
|
|
background: var(--detail-mobile-surface-bg);
|
|
}
|
|
|
|
.skill-detail-page .skill-detail-tabs-card.detail-mobile-tabs .tab-header {
|
|
gap: 8px;
|
|
padding: 10px var(--detail-mobile-surface-padding);
|
|
border-bottom: 0;
|
|
overflow-x: auto;
|
|
background: transparent;
|
|
}
|
|
|
|
.skill-detail-page .skill-detail-tabs-card.detail-mobile-tabs .tab-button {
|
|
flex: 0 0 auto;
|
|
justify-content: center;
|
|
min-height: 32px;
|
|
margin: 0;
|
|
padding: 0 10px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
|
|
border-radius: 999px;
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
font-size: 0.82rem;
|
|
}
|
|
|
|
.skill-detail-page .skill-detail-tabs-card.detail-mobile-tabs .tab-button.is-active {
|
|
border-color: color-mix(in srgb, var(--ink-soft) 30%, var(--line));
|
|
background: color-mix(in srgb, var(--surface-muted) 82%, transparent);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.skill-detail-page .skill-detail-tabs-card.detail-mobile-tabs .skill-diff-tab-body {
|
|
overflow: visible;
|
|
padding: 0;
|
|
border: 0;
|
|
background: transparent;
|
|
}
|
|
|
|
.skill-sidebar-creator-metadata .sidebar-metadata-row {
|
|
padding-block: 8px;
|
|
}
|
|
|
|
.detail-mobile-deferred-summary {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
padding: 12px var(--detail-mobile-surface-padding);
|
|
cursor: pointer;
|
|
color: var(--ink);
|
|
font-size: 0.92rem;
|
|
font-weight: 600;
|
|
list-style: none;
|
|
}
|
|
|
|
.detail-mobile-deferred-summary::-webkit-details-marker {
|
|
display: none;
|
|
}
|
|
|
|
.detail-mobile-deferred-summary::after {
|
|
content: "";
|
|
flex: 0 0 auto;
|
|
width: 7px;
|
|
height: 7px;
|
|
border-right: 1.5px solid currentColor;
|
|
border-bottom: 1.5px solid currentColor;
|
|
transform: rotate(45deg);
|
|
opacity: 0.55;
|
|
transition: transform 0.16s ease;
|
|
}
|
|
|
|
.detail-mobile-deferred[open] .detail-mobile-deferred-summary::after {
|
|
transform: rotate(-135deg) translateY(2px);
|
|
}
|
|
|
|
.detail-mobile-deferred-body {
|
|
padding: 0 var(--detail-mobile-surface-padding) var(--detail-mobile-surface-padding);
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.detail-mobile-deferred-body .skill-sidebar-deferred-metadata > .sidebar-metadata-row:first-child,
|
|
.detail-mobile-deferred-body
|
|
.skill-sidebar-deferred-metadata
|
|
> .sidebar-metadata-grid:first-child
|
|
.sidebar-metadata-row:first-child {
|
|
padding-top: 10px;
|
|
}
|
|
|
|
.detail-mobile-deferred-body .skill-sidebar-actions-secondary {
|
|
margin-top: 4px;
|
|
padding-top: 0;
|
|
border-top: 0;
|
|
}
|
|
|
|
.skill-sidebar-actions-primary {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 8px;
|
|
}
|
|
|
|
.skill-sidebar-actions-secondary {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 8px;
|
|
padding-top: 0;
|
|
border-top: 0;
|
|
}
|
|
|
|
.skill-sidebar-actions-secondary > :only-child {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.skill-sidebar-action-button {
|
|
min-height: 40px !important;
|
|
padding-top: 8px !important;
|
|
padding-bottom: 8px !important;
|
|
justify-content: center;
|
|
}
|
|
|
|
.skill-action-count {
|
|
height: 1.35em;
|
|
margin-left: 4px;
|
|
padding: 0 0.45em;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.sidebar-metadata-compact .sidebar-metadata-row,
|
|
.skill-hero-sidebar .sidebar-metadata-row {
|
|
gap: 4px;
|
|
padding: 10px 0;
|
|
}
|
|
|
|
.sidebar-metadata-compact > .sidebar-metadata-row:first-child {
|
|
min-height: auto;
|
|
}
|
|
|
|
.sidebar-metadata-compact .sidebar-metadata-grid .sidebar-metadata-row,
|
|
.skill-hero-sidebar .sidebar-metadata-grid .sidebar-metadata-row {
|
|
padding: 10px 0;
|
|
}
|
|
|
|
.sidebar-metadata-compact .sidebar-metadata-grid .sidebar-metadata-row + .sidebar-metadata-row {
|
|
padding-left: 14px;
|
|
}
|
|
|
|
.sidebar-metadata-row-large .sidebar-metadata-value {
|
|
font-size: 1.35rem;
|
|
line-height: 1.15;
|
|
}
|
|
|
|
.metric-trend-card {
|
|
gap: calc(var(--space-1) + 2px);
|
|
}
|
|
|
|
.sidebar-metadata-row-large:has(.metric-trend-card) {
|
|
gap: var(--space-2);
|
|
padding-block: var(--space-3);
|
|
}
|
|
|
|
.downloads-metric-tabs {
|
|
gap: 10px;
|
|
}
|
|
|
|
.detail-inline-tab {
|
|
font-size: 11px;
|
|
}
|
|
|
|
.metric-trend-chart {
|
|
height: 22px;
|
|
}
|
|
|
|
.metric-trend-card-skeleton {
|
|
height: 38px;
|
|
}
|
|
|
|
.metric-trend-point-label {
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
.security-audit-sidebar-value-row {
|
|
gap: 8px;
|
|
padding: 4px 8px;
|
|
margin: 0;
|
|
}
|
|
|
|
.security-audit-sidebar-verdict {
|
|
font-size: 0.92rem;
|
|
}
|
|
|
|
.security-audit-meter {
|
|
height: 5px;
|
|
gap: 4px;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 901px) {
|
|
.detail-mobile-deferred,
|
|
.detail-mobile-deferred-desktop {
|
|
display: contents;
|
|
}
|
|
|
|
.detail-mobile-deferred-summary {
|
|
display: none;
|
|
}
|
|
|
|
.detail-mobile-deferred-body {
|
|
display: contents;
|
|
}
|
|
|
|
.detail-mobile-deferred:not([open]) > .detail-mobile-deferred-body {
|
|
display: contents !important;
|
|
}
|
|
|
|
.detail-mobile-master-panel-content[hidden] {
|
|
display: contents !important;
|
|
}
|
|
|
|
.skill-sidebar-mobile-priority {
|
|
display: contents;
|
|
}
|
|
|
|
.skill-hero-sidebar,
|
|
.skill-hero-main-extra {
|
|
display: revert;
|
|
}
|
|
|
|
.skill-hero-sidebar {
|
|
display: flex;
|
|
}
|
|
|
|
.skill-hero-main-extra {
|
|
display: grid;
|
|
}
|
|
|
|
.skill-hero-lower.has-sidebar {
|
|
display: grid;
|
|
flex-direction: unset;
|
|
}
|
|
|
|
.skill-hero-sidebar-stack {
|
|
gap: 0;
|
|
}
|
|
|
|
.skill-hero-lower.has-sidebar .detail-hero-summary-row {
|
|
height: var(--detail-hero-summary-row-block-size);
|
|
min-height: var(--detail-hero-summary-row-block-size);
|
|
}
|
|
|
|
.skill-install-command-header.detail-hero-summary-row {
|
|
flex-wrap: nowrap;
|
|
}
|
|
}
|
|
|
|
.detail-skeleton-mobile-creator {
|
|
display: none;
|
|
gap: 8px;
|
|
}
|
|
|
|
.detail-skeleton,
|
|
.detail-skeleton * {
|
|
min-width: 0;
|
|
}
|
|
|
|
.detail-skeleton .skill-hero-title-row {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 12px;
|
|
}
|
|
|
|
.detail-skeleton-install-tabs {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.detail-skeleton-tabs {
|
|
width: 100%;
|
|
}
|
|
|
|
.detail-skeleton-tabs .tab-header {
|
|
flex-wrap: nowrap;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.detail-skeleton-tabs .tab-body {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.detail-skeleton .skill-install-command-inline-button {
|
|
width: auto;
|
|
}
|
|
|
|
.detail-skeleton-deferred-summary {
|
|
display: none;
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.detail-skeleton-mobile-creator {
|
|
display: inline-flex;
|
|
}
|
|
|
|
.detail-skeleton-deferred[data-kind="skill"] {
|
|
display: none;
|
|
}
|
|
|
|
.detail-skeleton-deferred[data-kind="plugin"] {
|
|
border: var(--detail-mobile-surface-border);
|
|
border-radius: var(--detail-mobile-surface-radius);
|
|
background: var(--detail-mobile-surface-bg);
|
|
}
|
|
|
|
.detail-skeleton-deferred[data-kind="plugin"] .detail-skeleton-deferred-summary {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
padding: 12px var(--detail-mobile-surface-padding);
|
|
}
|
|
|
|
.detail-skeleton-deferred[data-kind="plugin"] .detail-skeleton-deferred-body {
|
|
display: none;
|
|
}
|
|
|
|
.detail-skeleton .skill-hero-lower.has-sidebar {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.detail-skeleton .skill-hero-main-extra,
|
|
.detail-skeleton .skill-hero-sidebar {
|
|
display: contents;
|
|
}
|
|
|
|
.detail-skeleton-tabs .tab-header {
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.detail-skeleton .skill-install-command-header {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.detail-skeleton .skill-install-command-shell {
|
|
padding-right: 58px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.detail-skeleton .skill-hero-breadcrumbs {
|
|
gap: 6px;
|
|
}
|
|
|
|
.detail-skeleton .skill-hero-title-row {
|
|
gap: 10px;
|
|
}
|
|
|
|
.detail-skeleton-install-tabs {
|
|
width: 100%;
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.detail-skeleton-tabs .tab-header {
|
|
gap: 10px;
|
|
}
|
|
|
|
.detail-skeleton-tabs .tab-body {
|
|
padding-right: var(--detail-mobile-surface-padding);
|
|
padding-left: var(--detail-mobile-surface-padding);
|
|
}
|
|
}
|
|
|
|
/* Legacy compatibility — keep for any existing references */
|
|
.skill-hero-cta {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-end;
|
|
gap: 10px;
|
|
}
|
|
|
|
.skill-hero-cta .btn {
|
|
width: 100%;
|
|
justify-content: center;
|
|
}
|
|
|
|
.skill-version-pill {
|
|
display: grid;
|
|
gap: 4px;
|
|
padding: 10px 14px;
|
|
border-radius: 16px;
|
|
border: 1px solid var(--line);
|
|
background: var(--surface-muted);
|
|
text-align: right;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-version-label {
|
|
font-size: 0.68rem;
|
|
letter-spacing: 0.12em;
|
|
text-transform: uppercase;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.skill-tag-row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
align-items: center;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-tag-history {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.skill-tag-history-label {
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.tag-meta {
|
|
font-size: 0.72rem;
|
|
font-weight: 600;
|
|
color: inherit;
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.tag-delete {
|
|
all: unset;
|
|
cursor: pointer;
|
|
font-size: 0.85rem;
|
|
line-height: 1;
|
|
opacity: 0.5;
|
|
padding: 0 2px;
|
|
margin-left: -2px;
|
|
border-radius: 3px;
|
|
transition: opacity 0.15s;
|
|
}
|
|
|
|
.tag-delete:hover {
|
|
opacity: 1;
|
|
}
|
|
|
|
.tag-form {
|
|
display: grid;
|
|
grid-template-columns: minmax(140px, 1fr) minmax(160px, 1fr) auto;
|
|
gap: 10px;
|
|
align-items: center;
|
|
}
|
|
|
|
.skill-hero-panels {
|
|
display: grid;
|
|
gap: 14px;
|
|
grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
|
|
}
|
|
|
|
.skill-panel {
|
|
display: grid;
|
|
gap: 10px;
|
|
padding: 14px;
|
|
border-radius: 16px;
|
|
border: 1px solid var(--line);
|
|
background: var(--surface-muted);
|
|
}
|
|
|
|
.skill-panel-body {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.related-skills-section {
|
|
display: grid;
|
|
gap: 16px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.related-skills-section-compact {
|
|
gap: 10px;
|
|
}
|
|
|
|
.related-skills-section-compact .related-skills-header {
|
|
align-items: baseline;
|
|
gap: 12px;
|
|
padding-bottom: 4px;
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.related-skills-section-compact .related-skills-title {
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-body);
|
|
font-weight: 700;
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
.related-skills-footer {
|
|
display: flex;
|
|
justify-content: center;
|
|
min-width: 0;
|
|
padding-top: 6px;
|
|
}
|
|
|
|
.related-skills-section-compact .related-skills-footer {
|
|
padding-top: 4px;
|
|
}
|
|
|
|
.related-skills-category-link {
|
|
width: auto;
|
|
min-height: 30px !important;
|
|
padding: 0 11px !important;
|
|
gap: 6px !important;
|
|
border: 1px solid color-mix(in srgb, var(--line) 88%, transparent) !important;
|
|
border-radius: var(--r-btn);
|
|
background: color-mix(in srgb, var(--surface-muted) 32%, transparent) !important;
|
|
color: var(--ink-soft) !important;
|
|
font-family: var(--font-body);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 550 !important;
|
|
letter-spacing: -0.01em;
|
|
box-shadow: none;
|
|
transition:
|
|
border-color 160ms ease-out,
|
|
background-color 160ms ease-out,
|
|
color 160ms ease-out,
|
|
box-shadow 160ms ease-out,
|
|
transform 120ms ease-out;
|
|
}
|
|
|
|
.related-skills-category-link svg {
|
|
opacity: 0.72;
|
|
transition: opacity 160ms ease-out;
|
|
}
|
|
|
|
.related-skills-category-link:hover:not(:disabled),
|
|
.related-skills-category-link:focus-visible:not(:disabled) {
|
|
border-color: color-mix(in srgb, var(--ink-soft) 24%, var(--line)) !important;
|
|
background: color-mix(in srgb, var(--surface-muted) 68%, var(--hover-bg)) !important;
|
|
color: var(--ink) !important;
|
|
box-shadow: var(--shadow-card);
|
|
}
|
|
|
|
.related-skills-category-link:hover:not(:disabled) svg,
|
|
.related-skills-category-link:focus-visible:not(:disabled) svg {
|
|
opacity: 1;
|
|
}
|
|
|
|
.related-skills-category-link:active:not(:disabled) {
|
|
transform: scale(0.98);
|
|
}
|
|
|
|
.related-skills-header {
|
|
display: flex;
|
|
align-items: end;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
padding-bottom: 14px;
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.related-skills-title {
|
|
margin: 0;
|
|
color: var(--ink);
|
|
font-family: var(--font-display);
|
|
font-size: var(--fs-2xl);
|
|
font-weight: 700;
|
|
line-height: 1.2;
|
|
letter-spacing: -0.01em;
|
|
}
|
|
|
|
.related-skills-list {
|
|
display: grid;
|
|
min-width: 0;
|
|
border-top: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
|
|
}
|
|
|
|
.related-skills-section-compact .related-skills-list {
|
|
border-top: 0;
|
|
}
|
|
|
|
.related-skill-row {
|
|
display: grid;
|
|
grid-template-columns: 34px minmax(0, 1fr) minmax(180px, 0.34fr);
|
|
gap: 16px;
|
|
align-items: center;
|
|
min-width: 0;
|
|
padding: 18px 0;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.related-skills-section-compact .related-skill-row {
|
|
grid-template-columns: 34px minmax(0, 1fr) auto;
|
|
gap: 12px;
|
|
margin-inline: -10px;
|
|
padding: 14px 10px;
|
|
border-radius: var(--r-sm);
|
|
transition: background-color 120ms ease;
|
|
}
|
|
|
|
.related-skills-section-compact .related-skill-row:hover {
|
|
background: color-mix(in srgb, var(--surface-muted) 82%, transparent);
|
|
}
|
|
|
|
.related-skills-section-compact .related-skill-row:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.related-skill-row:hover .related-skill-name {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.related-skill-row:hover {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.related-skill-icon {
|
|
display: flex;
|
|
align-self: start;
|
|
}
|
|
|
|
.related-skill-icon .marketplace-icon,
|
|
.related-skill-icon .marketplace-icon:hover {
|
|
width: 34px;
|
|
height: 34px;
|
|
border: 1px solid color-mix(in srgb, var(--ink) 8%, transparent);
|
|
border-radius: var(--oc-radius-inset);
|
|
background: color-mix(in srgb, var(--ink) 4%, transparent) !important;
|
|
color: var(--ink-soft);
|
|
box-shadow: none;
|
|
pointer-events: none;
|
|
transform: none;
|
|
transition: none;
|
|
--marketplace-icon-accent: var(--ink-soft);
|
|
--marketplace-icon-wash: transparent;
|
|
}
|
|
|
|
.related-skill-icon .marketplace-icon-glyph,
|
|
.related-skill-icon .marketplace-icon-image {
|
|
width: 17px;
|
|
height: 17px;
|
|
filter: grayscale(1) brightness(1.18);
|
|
}
|
|
|
|
.related-skill-copy {
|
|
display: grid;
|
|
gap: 5px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.related-skill-title-line {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.related-skill-name {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
color: var(--ink);
|
|
font-family: var(--font-display);
|
|
font-size: var(--fs-md);
|
|
font-weight: 600;
|
|
line-height: 1.25;
|
|
letter-spacing: -0.01em;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.related-skill-summary {
|
|
display: -webkit-box;
|
|
min-width: 0;
|
|
margin: 0;
|
|
overflow: hidden;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.45;
|
|
-webkit-box-orient: vertical;
|
|
-webkit-line-clamp: 1;
|
|
}
|
|
|
|
.related-skills-section-compact .related-skill-summary {
|
|
font-size: 12px;
|
|
}
|
|
|
|
.related-skill-owner {
|
|
min-width: 0;
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-xs);
|
|
line-height: 1.3;
|
|
text-align: right;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.related-skill-owner-inline {
|
|
overflow: hidden;
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
font-family: var(--font-mono);
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
line-height: 1.2;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.related-skill-stats {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 12px;
|
|
color: var(--ink-soft);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.related-skill-stat {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 6px;
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
line-height: 1;
|
|
}
|
|
|
|
.related-skill-row-skeleton {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.related-skill-icon-skeleton,
|
|
.related-skill-title-skeleton,
|
|
.related-skill-summary-skeleton,
|
|
.related-skill-owner-skeleton {
|
|
display: block;
|
|
overflow: hidden;
|
|
border-radius: var(--r-sm);
|
|
background: linear-gradient(
|
|
90deg,
|
|
color-mix(in srgb, var(--surface-muted) 70%, transparent),
|
|
color-mix(in srgb, var(--line) 72%, transparent),
|
|
color-mix(in srgb, var(--surface-muted) 70%, transparent)
|
|
);
|
|
background-size: 220% 100%;
|
|
animation: skeleton-shimmer 1.15s ease-in-out infinite;
|
|
}
|
|
|
|
.related-skill-icon-skeleton {
|
|
width: 34px;
|
|
height: 34px;
|
|
border-radius: var(--oc-radius-inset);
|
|
}
|
|
|
|
.related-skill-title-skeleton {
|
|
width: min(260px, 70%);
|
|
height: 20px;
|
|
}
|
|
|
|
.related-skill-summary-skeleton {
|
|
width: min(520px, 86%);
|
|
height: 16px;
|
|
}
|
|
|
|
.related-skill-owner-skeleton {
|
|
justify-self: end;
|
|
width: min(190px, 100%);
|
|
height: 18px;
|
|
}
|
|
|
|
.skill-install-tabs {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tab-body.skill-install-tabs {
|
|
color: var(--ink);
|
|
font-weight: 400;
|
|
overflow-x: visible;
|
|
}
|
|
|
|
.requirements-panel-title,
|
|
.file-list-header .section-title,
|
|
.skill-versions-header h2 {
|
|
margin: 0;
|
|
color: var(--ink);
|
|
font-family: var(--font-display);
|
|
font-size: 1.05rem;
|
|
font-weight: 650;
|
|
line-height: 1.25;
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
.requirements-section h4,
|
|
.requirements-subsection h5 {
|
|
margin: 0;
|
|
color: var(--ink);
|
|
font-family: var(--font-display);
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
.requirements-env-row p,
|
|
.requirements-muted {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.requirements-section {
|
|
display: grid;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
padding: 16px 0 0;
|
|
border-top: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
|
|
}
|
|
|
|
.requirements-panel-title + .requirements-section {
|
|
margin-top: -2px;
|
|
}
|
|
|
|
.requirements-section h4 {
|
|
font-size: var(--fs-sm);
|
|
font-weight: 650;
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.requirements-subsection {
|
|
display: grid;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.requirements-subsection + .requirements-subsection {
|
|
margin-top: 6px;
|
|
}
|
|
|
|
.requirements-subsection h5 {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 650;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.requirements-token-list {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.requirements-token-list-alternatives {
|
|
gap: 6px;
|
|
}
|
|
|
|
.requirements-token-group {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.requirements-token,
|
|
.requirements-badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
width: fit-content;
|
|
max-width: 100%;
|
|
min-height: 24px;
|
|
border: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
|
|
border-radius: 999px;
|
|
background: color-mix(in srgb, var(--ink) 5%, transparent);
|
|
color: var(--ink);
|
|
font-family: var(--font-mono);
|
|
font-size: 0.78rem;
|
|
font-weight: 600;
|
|
line-height: 1.2;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.requirements-token {
|
|
padding: 4px 9px;
|
|
}
|
|
|
|
.requirements-token-separator {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
line-height: 1;
|
|
}
|
|
|
|
.requirements-path-list,
|
|
.requirements-install-row,
|
|
.requirements-env-list,
|
|
.requirements-link-list {
|
|
display: grid;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.requirements-path-token,
|
|
.requirements-code-block {
|
|
width: 100%;
|
|
min-width: 0;
|
|
overflow-wrap: anywhere;
|
|
word-break: break-word;
|
|
white-space: pre-wrap;
|
|
}
|
|
|
|
.requirements-path-token {
|
|
color: var(--ink);
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.requirements-code-block {
|
|
margin: 0;
|
|
padding: 14px 16px;
|
|
border: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
|
|
border-radius: var(--r-sm);
|
|
background: color-mix(in srgb, var(--ink) 6%, transparent);
|
|
color: var(--ink);
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.requirements-code-block code {
|
|
white-space: inherit;
|
|
}
|
|
|
|
.requirements-link-token {
|
|
display: grid;
|
|
gap: 4px;
|
|
min-width: 0;
|
|
width: fit-content;
|
|
max-width: 100%;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.45;
|
|
text-decoration: none;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.requirements-link-token:hover,
|
|
.requirements-link-token:focus-visible {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.requirements-link-token span {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 650;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.requirements-link-token code {
|
|
color: inherit;
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.45;
|
|
white-space: normal;
|
|
overflow-wrap: anywhere;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.requirements-link-token:hover code,
|
|
.requirements-link-token:focus-visible code {
|
|
text-decoration: underline;
|
|
text-decoration-thickness: 1px;
|
|
text-underline-offset: 3px;
|
|
}
|
|
|
|
.requirements-dependency-meta {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 7px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.requirements-env-row {
|
|
display: grid;
|
|
gap: 7px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.requirements-env-main {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 7px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.requirements-env-main code {
|
|
color: var(--ink);
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-sm);
|
|
font-weight: 650;
|
|
line-height: 1.25;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.requirements-badge {
|
|
padding: 3px 8px;
|
|
color: var(--ink-soft);
|
|
font-family: var(--oc-font-body);
|
|
font-size: 0.72rem;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.requirements-badge-required {
|
|
border-color: color-mix(in srgb, #f6c76a 28%, transparent);
|
|
background: color-mix(in srgb, #f6c76a 11%, transparent);
|
|
color: color-mix(in srgb, #f6c76a 78%, var(--ink));
|
|
}
|
|
|
|
.requirements-badge-optional,
|
|
.requirements-badge-not-declared {
|
|
border-color: color-mix(in srgb, var(--ink-soft) 14%, transparent);
|
|
background: color-mix(in srgb, var(--ink-soft) 7%, transparent);
|
|
}
|
|
|
|
.requirements-badge-primary {
|
|
border-color: color-mix(in srgb, #7dd3fc 26%, transparent);
|
|
background: color-mix(in srgb, #7dd3fc 10%, transparent);
|
|
color: color-mix(in srgb, #7dd3fc 72%, var(--ink));
|
|
}
|
|
|
|
.skill-install-command {
|
|
width: min(100%, 520px);
|
|
}
|
|
|
|
.skill-diff-skeleton {
|
|
container-type: inline-size;
|
|
container-name: diff-skeleton;
|
|
display: grid;
|
|
gap: var(--space-4);
|
|
min-height: 530px;
|
|
}
|
|
|
|
.diff-skeleton-toolbar {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: end;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.diff-skeleton-version-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr);
|
|
align-items: end;
|
|
gap: var(--space-2);
|
|
min-width: 0;
|
|
}
|
|
|
|
.diff-skeleton-field {
|
|
display: grid;
|
|
grid-template-rows: 12px 44px;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.diff-skeleton-label {
|
|
width: 76px;
|
|
height: 12px;
|
|
}
|
|
|
|
.diff-skeleton-label-short {
|
|
width: 32px;
|
|
}
|
|
|
|
.diff-skeleton-control,
|
|
.diff-skeleton-swap,
|
|
.diff-skeleton-toggle,
|
|
.diff-skeleton-file-select,
|
|
.diff-skeleton-arrow,
|
|
.diff-skeleton-badge,
|
|
.diff-skeleton-count {
|
|
border-radius: 12px;
|
|
}
|
|
|
|
.diff-skeleton-control,
|
|
.diff-skeleton-swap {
|
|
width: 100%;
|
|
height: 44px;
|
|
}
|
|
|
|
.diff-skeleton-view {
|
|
grid-template-rows: 12px 36px;
|
|
}
|
|
|
|
.diff-skeleton-toggle {
|
|
width: 170px;
|
|
height: 36px;
|
|
}
|
|
|
|
.diff-skeleton-file-bar {
|
|
display: grid;
|
|
grid-template-columns: 32px minmax(180px, 1fr) 32px 78px minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.diff-skeleton-arrow {
|
|
width: 32px;
|
|
height: 32px;
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.diff-skeleton-file-select {
|
|
width: 100%;
|
|
height: 40px;
|
|
}
|
|
|
|
.diff-skeleton-badge {
|
|
width: 72px;
|
|
height: 22px;
|
|
border-radius: var(--r-pill);
|
|
}
|
|
|
|
.diff-skeleton-count {
|
|
grid-column: 6;
|
|
width: 78px;
|
|
height: 12px;
|
|
justify-self: end;
|
|
}
|
|
|
|
.diff-skeleton-editor {
|
|
display: grid;
|
|
grid-template-columns: 58px minmax(0, 1fr);
|
|
min-height: 420px;
|
|
overflow: hidden;
|
|
border: 1px solid var(--line);
|
|
border-radius: 14px;
|
|
background: color-mix(in srgb, var(--surface) 82%, transparent);
|
|
}
|
|
|
|
.diff-skeleton-gutter,
|
|
.diff-skeleton-code {
|
|
display: grid;
|
|
align-content: start;
|
|
gap: 13px;
|
|
padding-top: 18px;
|
|
}
|
|
|
|
.diff-skeleton-gutter {
|
|
justify-items: end;
|
|
padding-right: 12px;
|
|
border-right: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
|
|
}
|
|
|
|
.diff-skeleton-gutter > div {
|
|
width: 16px;
|
|
height: 10px;
|
|
}
|
|
|
|
.diff-skeleton-code {
|
|
padding-inline: 18px;
|
|
}
|
|
|
|
.diff-skeleton-code > div {
|
|
max-width: 100%;
|
|
height: 10px;
|
|
}
|
|
|
|
@container diff-skeleton (max-width: 768px) {
|
|
.diff-skeleton-toolbar {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.diff-skeleton-view {
|
|
width: fit-content;
|
|
}
|
|
|
|
.diff-skeleton-file-bar {
|
|
grid-template-columns: 32px minmax(0, 1fr) 32px auto minmax(0, 1fr);
|
|
}
|
|
|
|
.diff-skeleton-count {
|
|
grid-column: 5;
|
|
}
|
|
}
|
|
|
|
.diff-card {
|
|
--diff-control-radius: 12px;
|
|
--diff-panel-radius: 14px;
|
|
--diff-segment-radius: 10px;
|
|
container-type: inline-size;
|
|
container-name: diff;
|
|
gap: var(--space-4);
|
|
}
|
|
|
|
.diff-card-embedded {
|
|
display: grid;
|
|
padding: 0;
|
|
background: transparent;
|
|
border: none;
|
|
gap: var(--space-4);
|
|
}
|
|
|
|
.diff-card-embedded .diff-toolbar {
|
|
padding-bottom: 0;
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.diff-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
gap: 16px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.diff-toolbar {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: end;
|
|
gap: var(--space-3);
|
|
padding: 0 0 var(--space-3);
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.diff-version-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
|
|
gap: var(--space-2);
|
|
align-items: end;
|
|
flex: 1 1 260px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.diff-field {
|
|
display: grid;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.diff-version-row > .diff-field {
|
|
grid-template-rows: 16px 44px;
|
|
}
|
|
|
|
.diff-field-label {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 650;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.diff-select-control {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
min-width: 0;
|
|
height: 44px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--diff-control-radius);
|
|
background: color-mix(in srgb, var(--surface) 76%, transparent);
|
|
color: var(--ink-soft);
|
|
transition:
|
|
border-color 150ms ease,
|
|
background-color 150ms ease,
|
|
color 150ms ease;
|
|
}
|
|
|
|
.diff-select-control:hover {
|
|
border-color: var(--border-ui-hover);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.diff-select-control:focus-within {
|
|
border-color: var(--border-ui-active);
|
|
color: var(--ink);
|
|
outline: 2px solid color-mix(in srgb, var(--ink) 18%, transparent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.diff-version-select,
|
|
.diff-file-select {
|
|
appearance: none;
|
|
min-width: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
min-height: 0;
|
|
padding: 0 42px 0 14px;
|
|
background: transparent;
|
|
color: currentColor;
|
|
font-size: 0.9375rem;
|
|
font-weight: 600;
|
|
line-height: 1.25;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.diff-select-chevron {
|
|
position: absolute;
|
|
top: 50%;
|
|
right: 14px;
|
|
flex-shrink: 0;
|
|
opacity: 0.7;
|
|
pointer-events: none;
|
|
transform: translateY(-50%);
|
|
}
|
|
|
|
.diff-toggle-group {
|
|
position: relative;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 4px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 88%, transparent);
|
|
border-radius: 12px;
|
|
background: color-mix(in srgb, var(--surface-muted) 78%, var(--bg));
|
|
margin: 0;
|
|
min-inline-size: 0;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.diff-toggle {
|
|
position: relative;
|
|
z-index: 1;
|
|
border: none;
|
|
background: transparent;
|
|
min-height: 28px;
|
|
padding: 0 10px;
|
|
border-radius: 8px;
|
|
font-weight: 700;
|
|
font-size: var(--fs-xs);
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
white-space: nowrap;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
transition:
|
|
color 0.15s ease,
|
|
background 0.15s ease;
|
|
}
|
|
|
|
.diff-toggle:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.diff-toggle.is-active {
|
|
background: color-mix(in srgb, var(--surface-muted) 70%, var(--ink) 8%);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.diff-toggle:focus-visible {
|
|
outline: 2px solid var(--accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.diff-swap {
|
|
align-self: end;
|
|
flex-shrink: 0;
|
|
width: 44px;
|
|
min-width: 44px;
|
|
height: 44px;
|
|
min-height: 44px;
|
|
border-radius: var(--diff-control-radius) !important;
|
|
}
|
|
|
|
.diff-view-field {
|
|
grid-template-rows: 16px 44px;
|
|
}
|
|
|
|
.diff-layout {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 10px;
|
|
align-items: start;
|
|
}
|
|
|
|
.diff-file-select-wrap {
|
|
position: sticky;
|
|
top: 64px;
|
|
z-index: 4;
|
|
display: block;
|
|
grid-column: 1 / -1;
|
|
padding: 4px 0;
|
|
background: color-mix(in srgb, var(--bg) 96%, transparent);
|
|
}
|
|
|
|
.diff-file-review-bar {
|
|
display: grid;
|
|
grid-template-columns: minmax(220px, 1fr) auto auto;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.diff-file-navigation {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.diff-file-navigation.has-multiple-files {
|
|
grid-template-columns: 32px minmax(0, 1fr) 32px;
|
|
}
|
|
|
|
.diff-file-select-control {
|
|
height: 40px;
|
|
}
|
|
|
|
.diff-file-review-context,
|
|
.diff-file-review-actions,
|
|
.diff-hunk-navigation,
|
|
.diff-line-stats {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.diff-file-review-context {
|
|
gap: 8px;
|
|
}
|
|
|
|
.diff-file-review-context .diff-pill {
|
|
align-self: center;
|
|
}
|
|
|
|
.diff-line-stats {
|
|
gap: 6px;
|
|
font-family: var(--font-mono);
|
|
font-size: 0.72rem;
|
|
font-weight: 700;
|
|
font-variant-numeric: tabular-nums;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.diff-line-additions {
|
|
color: var(--status-success-fg);
|
|
}
|
|
|
|
.diff-line-deletions {
|
|
color: var(--status-error-fg);
|
|
}
|
|
|
|
.diff-file-review-actions {
|
|
justify-content: flex-end;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.diff-file-count {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-variant-numeric: tabular-nums;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.diff-hunk-navigation {
|
|
gap: 4px;
|
|
}
|
|
|
|
.diff-review-icon-button {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 32px;
|
|
min-width: 32px;
|
|
height: 32px;
|
|
min-height: 32px;
|
|
padding: 0;
|
|
border: 1px solid color-mix(in srgb, var(--line) 88%, transparent);
|
|
border-radius: 8px;
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
transition:
|
|
border-color 150ms ease,
|
|
background-color 150ms ease,
|
|
color 150ms ease;
|
|
}
|
|
|
|
.diff-review-icon-button:hover:not(:disabled) {
|
|
border-color: var(--border-ui-hover);
|
|
background: color-mix(in srgb, var(--ink) 5%, transparent);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.diff-review-icon-button:focus-visible {
|
|
outline: 2px solid var(--accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.diff-review-icon-button:disabled {
|
|
opacity: 0.34;
|
|
cursor: default;
|
|
}
|
|
|
|
.diff-file-select {
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
@container diff (max-width: 768px) {
|
|
.diff-toolbar {
|
|
grid-template-columns: 1fr;
|
|
align-items: start;
|
|
}
|
|
|
|
.diff-version-row {
|
|
flex-basis: auto;
|
|
width: 100%;
|
|
}
|
|
|
|
.diff-toggle-group {
|
|
justify-self: start;
|
|
}
|
|
|
|
.diff-layout {
|
|
grid-template-columns: 1fr;
|
|
gap: 10px;
|
|
}
|
|
|
|
.diff-file-review-bar {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
}
|
|
|
|
.diff-file-navigation {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.diff-monaco {
|
|
min-height: 280px;
|
|
max-height: min(52vh, 420px);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 920px) {
|
|
.diff-layout {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.diff-monaco {
|
|
max-height: 300px;
|
|
}
|
|
}
|
|
|
|
.diff-pill {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
font-size: 0.7rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
font-weight: 700;
|
|
padding: 4px 8px;
|
|
border-radius: var(--r-pill);
|
|
align-self: start;
|
|
}
|
|
|
|
.diff-pill-added {
|
|
background: var(--status-success-bg);
|
|
color: var(--status-success-fg);
|
|
}
|
|
|
|
.diff-pill-removed {
|
|
background: var(--status-error-bg);
|
|
color: var(--status-error-fg);
|
|
}
|
|
|
|
.diff-pill-changed {
|
|
background: var(--status-warning-bg);
|
|
color: var(--status-warning-fg);
|
|
}
|
|
|
|
.diff-pill-same {
|
|
background: color-mix(in srgb, var(--surface-muted) 84%, transparent);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.diff-view {
|
|
position: relative;
|
|
min-height: 360px;
|
|
}
|
|
|
|
.diff-monaco {
|
|
height: 420px;
|
|
border-radius: var(--diff-panel-radius);
|
|
border: 1px solid var(--line);
|
|
overflow: hidden;
|
|
background: var(--surface);
|
|
}
|
|
|
|
.diff-monaco .monaco-editor .line-insert,
|
|
.diff-monaco .monaco-editor .char-insert,
|
|
.diff-monaco .monaco-editor .line-delete,
|
|
.diff-monaco .monaco-editor .char-delete,
|
|
.diff-monaco .monaco-diff-editor .line-insert,
|
|
.diff-monaco .monaco-diff-editor .char-insert,
|
|
.diff-monaco .monaco-diff-editor .line-delete,
|
|
.diff-monaco .monaco-diff-editor .char-delete {
|
|
border: none !important;
|
|
box-shadow: none !important;
|
|
}
|
|
|
|
.diff-monaco .monaco-diff-editor .monaco-sash,
|
|
.diff-monaco .monaco-diff-editor .sash {
|
|
background: var(--diff-border) !important;
|
|
}
|
|
|
|
.diff-monaco .monaco-diff-editor .monaco-sash:hover,
|
|
.diff-monaco .monaco-diff-editor .sash:hover {
|
|
background: var(--border-ui) !important;
|
|
}
|
|
|
|
.diff-monaco .monaco-diff-editor .diffOverview {
|
|
background: rgba(var(--diff-scrollbar-rgb), 0.08) !important;
|
|
}
|
|
|
|
.diff-monaco .monaco-diff-editor .diffOverview .diffViewport,
|
|
.diff-monaco .monaco-diff-editor .diffViewport {
|
|
background: rgba(var(--diff-scrollbar-rgb), 0.2) !important;
|
|
background-color: rgba(var(--diff-scrollbar-rgb), 0.2) !important;
|
|
}
|
|
|
|
.diff-monaco .monaco-diff-editor .diffOverview .diffViewport:hover,
|
|
.diff-monaco .monaco-diff-editor .diffViewport:hover {
|
|
background: rgba(var(--diff-scrollbar-rgb), 0.28) !important;
|
|
background-color: rgba(var(--diff-scrollbar-rgb), 0.28) !important;
|
|
}
|
|
|
|
.diff-monaco .monaco-diff-editor .diffOverview .diffViewport:active,
|
|
.diff-monaco .monaco-diff-editor .diffViewport:active {
|
|
background: rgba(var(--diff-scrollbar-rgb), 0.36) !important;
|
|
background-color: rgba(var(--diff-scrollbar-rgb), 0.36) !important;
|
|
}
|
|
|
|
.diff-monaco .monaco-scrollable-element.modified-in-monaco-diff-editor .slider,
|
|
.diff-monaco .monaco-scrollable-element.modified-in-monaco-diff-editor .slider.active {
|
|
background: rgba(var(--diff-scrollbar-rgb), 0.22) !important;
|
|
background-color: rgba(var(--diff-scrollbar-rgb), 0.22) !important;
|
|
}
|
|
|
|
.diff-monaco .monaco-scrollable-element.modified-in-monaco-diff-editor .slider:hover {
|
|
background: rgba(var(--diff-scrollbar-rgb), 0.3) !important;
|
|
background-color: rgba(var(--diff-scrollbar-rgb), 0.3) !important;
|
|
}
|
|
|
|
.diff-monaco .scrollbar.vertical,
|
|
.diff-monaco .monaco-scrollable-element .scrollbar.vertical,
|
|
.diff-monaco .invisible.scrollbar.vertical.fade {
|
|
background: transparent !important;
|
|
}
|
|
|
|
.diff-monaco .scrollbar.vertical > .slider,
|
|
.diff-monaco .monaco-scrollable-element .scrollbar.vertical > .slider,
|
|
.diff-monaco .invisible.scrollbar.vertical.fade > .slider,
|
|
.diff-monaco .scrollbar.vertical > .slider:hover,
|
|
.diff-monaco .monaco-scrollable-element .scrollbar.vertical > .slider:hover,
|
|
.diff-monaco .invisible.scrollbar.vertical.fade > .slider:hover,
|
|
.diff-monaco .scrollbar.vertical > .slider.active,
|
|
.diff-monaco .monaco-scrollable-element .scrollbar.vertical > .slider.active,
|
|
.diff-monaco .invisible.scrollbar.vertical.fade > .slider.active {
|
|
background: rgba(var(--diff-scrollbar-rgb), 0.24) !important;
|
|
background-color: rgba(var(--diff-scrollbar-rgb), 0.24) !important;
|
|
}
|
|
|
|
.diff-monaco .monaco-diff-editor .diffOverview canvas.diffOverviewRuler,
|
|
.diff-monaco .monaco-diff-editor .diffOverview canvas.original.diffOverviewRuler,
|
|
.diff-monaco .monaco-diff-editor .diffOverview canvas.modified.diffOverviewRuler {
|
|
opacity: 1 !important;
|
|
}
|
|
|
|
[data-theme-resolved="dark"] .diff-monaco .monaco-diff-editor .diffOverview {
|
|
background: rgba(var(--diff-scrollbar-rgb), 0.12) !important;
|
|
}
|
|
|
|
[data-theme-resolved="dark"] .diff-monaco .monaco-diff-editor .diffOverview .diffViewport,
|
|
[data-theme-resolved="dark"] .diff-monaco .monaco-diff-editor .diffViewport {
|
|
background: rgba(var(--diff-scrollbar-rgb), 0.28) !important;
|
|
background-color: rgba(var(--diff-scrollbar-rgb), 0.28) !important;
|
|
}
|
|
|
|
[data-theme-resolved="dark"] .diff-monaco .monaco-diff-editor .diffOverview .diffViewport:hover,
|
|
[data-theme-resolved="dark"] .diff-monaco .monaco-diff-editor .diffViewport:hover {
|
|
background: rgba(var(--diff-scrollbar-rgb), 0.36) !important;
|
|
background-color: rgba(var(--diff-scrollbar-rgb), 0.36) !important;
|
|
}
|
|
|
|
[data-theme-resolved="dark"] .diff-monaco .scrollbar.vertical > .slider,
|
|
[data-theme-resolved="dark"] .diff-monaco .monaco-scrollable-element .scrollbar.vertical > .slider,
|
|
[data-theme-resolved="dark"] .diff-monaco .invisible.scrollbar.vertical.fade > .slider,
|
|
[data-theme-resolved="dark"] .diff-monaco .scrollbar.vertical > .slider:hover,
|
|
[data-theme-resolved="dark"]
|
|
.diff-monaco
|
|
.monaco-scrollable-element
|
|
.scrollbar.vertical
|
|
> .slider:hover,
|
|
[data-theme-resolved="dark"] .diff-monaco .invisible.scrollbar.vertical.fade > .slider:hover,
|
|
[data-theme-resolved="dark"] .diff-monaco .scrollbar.vertical > .slider.active,
|
|
[data-theme-resolved="dark"]
|
|
.diff-monaco
|
|
.monaco-scrollable-element
|
|
.scrollbar.vertical
|
|
> .slider.active,
|
|
[data-theme-resolved="dark"] .diff-monaco .invisible.scrollbar.vertical.fade > .slider.active {
|
|
background: rgba(var(--diff-scrollbar-rgb), 0.32) !important;
|
|
background-color: rgba(var(--diff-scrollbar-rgb), 0.32) !important;
|
|
}
|
|
|
|
[data-theme-resolved="dark"]
|
|
.diff-monaco
|
|
.monaco-scrollable-element.modified-in-monaco-diff-editor
|
|
.slider,
|
|
[data-theme-resolved="dark"]
|
|
.diff-monaco
|
|
.monaco-scrollable-element.modified-in-monaco-diff-editor
|
|
.slider.active {
|
|
background: rgba(var(--diff-scrollbar-rgb), 0.3) !important;
|
|
background-color: rgba(var(--diff-scrollbar-rgb), 0.3) !important;
|
|
}
|
|
|
|
[data-theme-resolved="dark"]
|
|
.diff-monaco
|
|
.monaco-scrollable-element.modified-in-monaco-diff-editor
|
|
.slider:hover {
|
|
background: rgba(var(--diff-scrollbar-rgb), 0.38) !important;
|
|
background-color: rgba(var(--diff-scrollbar-rgb), 0.38) !important;
|
|
}
|
|
|
|
.diff-empty {
|
|
border-radius: var(--diff-panel-radius);
|
|
border: 1px dashed var(--line);
|
|
padding: 20px;
|
|
color: var(--ink-soft);
|
|
background: var(--surface-muted);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.diff-loading {
|
|
position: absolute;
|
|
bottom: 12px;
|
|
right: 16px;
|
|
font-size: var(--fs-xs);
|
|
color: var(--ink-soft);
|
|
background: color-mix(in srgb, var(--surface) 92%, transparent);
|
|
border-radius: var(--r-pill);
|
|
padding: 6px 10px;
|
|
border: 1px solid var(--line);
|
|
}
|
|
|
|
.tab-card {
|
|
display: grid;
|
|
gap: 18px;
|
|
max-width: 100%;
|
|
overflow: visible;
|
|
}
|
|
|
|
.tab-header {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 22px;
|
|
padding: 0;
|
|
border-bottom: 1px solid var(--line);
|
|
background: var(--bg);
|
|
overflow: visible;
|
|
scrollbar-width: none;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.tab-header::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.tab-button {
|
|
border: none;
|
|
border-bottom: 2px solid transparent;
|
|
background: transparent;
|
|
padding: 10px 0;
|
|
margin-bottom: -1px;
|
|
border-radius: 0;
|
|
font-weight: 600;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
min-height: 44px;
|
|
white-space: nowrap;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tab-button.is-active {
|
|
color: var(--ink);
|
|
border-bottom-color: currentColor;
|
|
}
|
|
|
|
.tab-body {
|
|
display: grid;
|
|
gap: 20px;
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
overflow-x: hidden;
|
|
border: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
|
|
border-radius: var(--r-lg);
|
|
padding: 22px;
|
|
background: color-mix(in srgb, var(--surface-muted) 58%, var(--bg));
|
|
}
|
|
|
|
.tab-body.skill-diff-tab-body {
|
|
gap: 0;
|
|
overflow: visible;
|
|
padding: 0;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
}
|
|
|
|
.tab-body .markdown {
|
|
line-height: 1.75;
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.skill-readme-body .markdown p {
|
|
font-size: 14px;
|
|
line-height: 1.68;
|
|
}
|
|
|
|
.skill-card-info-callout {
|
|
margin: 0;
|
|
padding: 0 0 var(--space-3);
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.skill-card-info-callout summary {
|
|
width: fit-content;
|
|
color: var(--ink-soft);
|
|
font-weight: 650;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.skill-card-info-callout p {
|
|
max-width: 76ch;
|
|
margin: var(--space-2) 0 0;
|
|
}
|
|
|
|
.skill-card-info-callout a {
|
|
color: var(--ink);
|
|
font-weight: 650;
|
|
text-decoration: underline;
|
|
text-underline-offset: 2px;
|
|
}
|
|
|
|
.skill-card-info-callout a:hover,
|
|
.skill-card-info-callout a:focus-visible {
|
|
color: var(--ink);
|
|
text-decoration-thickness: 2px;
|
|
}
|
|
|
|
.skill-card-tab-body {
|
|
gap: var(--space-5);
|
|
}
|
|
|
|
.skill-card-document {
|
|
display: grid;
|
|
gap: var(--space-5);
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-card-document-title-markdown h1 {
|
|
margin: 0;
|
|
padding: 0;
|
|
border: 0;
|
|
font-size: var(--fs-xl);
|
|
}
|
|
|
|
.skill-card-document-title-markdown > :not(h1) {
|
|
margin-top: var(--space-2);
|
|
}
|
|
|
|
.skill-card-meta-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
|
|
gap: var(--space-4);
|
|
margin: 0;
|
|
padding: var(--space-4) 0;
|
|
border-top: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
|
|
}
|
|
|
|
.skill-card-meta-row {
|
|
display: grid;
|
|
gap: 5px;
|
|
align-content: start;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-card-meta-label {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 650;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.skill-card-meta-value {
|
|
margin: 0;
|
|
min-width: 0;
|
|
color: var(--ink);
|
|
font-size: var(--fs-sm);
|
|
font-weight: 600;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.skill-card-meta-markdown > :first-child,
|
|
.skill-card-section-markdown > :first-child {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.skill-card-meta-markdown > :last-child,
|
|
.skill-card-section-markdown > :last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.skill-card-meta-markdown p,
|
|
.skill-card-section-markdown p {
|
|
margin-block: var(--space-2);
|
|
}
|
|
|
|
.skill-card-overview,
|
|
.skill-card-section,
|
|
.skill-card-review,
|
|
.skill-card-output,
|
|
.skill-card-references {
|
|
display: grid;
|
|
gap: var(--space-3);
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-card-section,
|
|
.skill-card-review,
|
|
.skill-card-output,
|
|
.skill-card-references {
|
|
padding-top: var(--space-5);
|
|
border-top: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
|
|
}
|
|
|
|
.skill-card-section-header {
|
|
margin: 0;
|
|
padding: 0;
|
|
border: 0;
|
|
color: var(--ink);
|
|
font-family: var(--font-display);
|
|
font-size: var(--fs-md);
|
|
font-weight: 750;
|
|
letter-spacing: 0;
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.skill-card-section-markdown {
|
|
width: min(100%, 80ch);
|
|
color: var(--ink);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.65;
|
|
}
|
|
|
|
.skill-card-section-markdown :is(h2, h3, h4) {
|
|
display: none;
|
|
}
|
|
|
|
.skill-card-section-markdown hr {
|
|
display: none;
|
|
}
|
|
|
|
.skill-card-tab-body .skill-card-document-title-markdown hr,
|
|
.skill-card-tab-body .skill-card-meta-markdown hr,
|
|
.skill-card-tab-body .skill-card-section-markdown hr {
|
|
display: none;
|
|
}
|
|
|
|
.skill-card-risk-list {
|
|
display: grid;
|
|
gap: var(--space-4);
|
|
width: min(100%, 88ch);
|
|
}
|
|
|
|
.skill-card-risk-pair {
|
|
display: grid;
|
|
gap: 0;
|
|
padding-left: var(--space-3);
|
|
}
|
|
|
|
.skill-card-risk-row {
|
|
position: relative;
|
|
display: grid;
|
|
grid-template-columns: 76px minmax(0, 1fr);
|
|
gap: var(--space-3);
|
|
align-items: start;
|
|
}
|
|
|
|
.skill-card-risk-row::before {
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
left: calc(-1 * var(--space-3));
|
|
width: 2px;
|
|
content: "";
|
|
}
|
|
|
|
.skill-card-risk-row-risk {
|
|
padding-bottom: var(--space-2);
|
|
}
|
|
|
|
.skill-card-risk-row-risk::before {
|
|
border-radius: 999px 999px 0 0;
|
|
background: color-mix(in srgb, var(--ink-soft) 58%, var(--line));
|
|
}
|
|
|
|
.skill-card-risk-row-risk:last-child {
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
.skill-card-risk-row-risk:last-child::before {
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.skill-card-risk-row-mitigation::before {
|
|
border-radius: 0 0 999px 999px;
|
|
background: color-mix(in srgb, var(--ink-soft) 26%, var(--line));
|
|
}
|
|
|
|
.skill-card-risk-copy {
|
|
max-width: 80ch;
|
|
color: var(--ink);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.skill-card-risk-copy p {
|
|
margin: 0;
|
|
}
|
|
|
|
.skill-card-review-label {
|
|
padding-top: 2px;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 700;
|
|
line-height: 1.3;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.skill-card-risk-row-risk .skill-card-review-label {
|
|
color: color-mix(in srgb, var(--ink) 64%, var(--ink-soft));
|
|
}
|
|
|
|
.skill-card-risk-row-mitigation .skill-card-review-label {
|
|
color: color-mix(in srgb, var(--ink-soft) 82%, transparent);
|
|
}
|
|
|
|
.skill-card-risk-row-mitigation .skill-card-risk-copy {
|
|
color: color-mix(in srgb, var(--ink) 86%, var(--ink-soft));
|
|
}
|
|
|
|
.skill-card-ethics {
|
|
display: grid;
|
|
gap: var(--space-2);
|
|
width: min(100%, 88ch);
|
|
padding-top: var(--space-4);
|
|
border-top: 1px solid color-mix(in srgb, var(--line) 64%, transparent);
|
|
}
|
|
|
|
.skill-card-ethics h3 {
|
|
margin: 0;
|
|
color: var(--ink);
|
|
font-size: var(--fs-sm);
|
|
font-weight: 700;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.skill-card-output-grid {
|
|
display: grid;
|
|
gap: 0;
|
|
width: min(100%, 88ch);
|
|
margin: 0;
|
|
}
|
|
|
|
.skill-card-output-row {
|
|
display: grid;
|
|
grid-template-columns: 112px minmax(0, 1fr);
|
|
gap: var(--space-4);
|
|
align-items: start;
|
|
padding: var(--space-3) 0;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 62%, transparent);
|
|
}
|
|
|
|
.skill-card-output-row:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.skill-card-output-row dt {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 650;
|
|
}
|
|
|
|
.skill-card-output-row dd {
|
|
margin: 0;
|
|
color: var(--ink);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.skill-card-output-types {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
}
|
|
|
|
.skill-card-output-types > span {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
min-height: 24px;
|
|
padding: 3px 8px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
|
|
border-radius: var(--r-pill);
|
|
background: color-mix(in srgb, var(--ink) 3.5%, transparent);
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
line-height: 1;
|
|
}
|
|
|
|
.skill-card-document a {
|
|
color: var(--ink);
|
|
text-decoration-color: color-mix(in srgb, var(--ink-soft) 58%, transparent);
|
|
text-underline-offset: 3px;
|
|
}
|
|
|
|
.skill-card-document a:hover,
|
|
.skill-card-document a:focus-visible {
|
|
color: var(--ink);
|
|
text-decoration-color: currentColor;
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.skill-card-meta-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.skill-card-risk-row,
|
|
.skill-card-output-row {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: var(--space-1);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 420px) {
|
|
.skill-card-meta-grid {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
}
|
|
|
|
.skill-files-panel {
|
|
padding: 18px;
|
|
}
|
|
|
|
.file-list {
|
|
position: relative;
|
|
display: grid;
|
|
gap: 10px;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.file-list-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
box-sizing: border-box;
|
|
min-height: 34px;
|
|
padding: 0 2px;
|
|
}
|
|
|
|
.file-list-count {
|
|
color: var(--ink-soft);
|
|
font-size: 0.78rem;
|
|
line-height: 1;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.file-list-body {
|
|
display: grid;
|
|
gap: 1px;
|
|
max-width: 100%;
|
|
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
|
|
border-radius: var(--r-md);
|
|
background: color-mix(in srgb, var(--surface-muted) 42%, transparent);
|
|
padding: 6px;
|
|
}
|
|
|
|
.file-browser {
|
|
display: grid;
|
|
gap: 18px;
|
|
}
|
|
|
|
.file-tree-group {
|
|
display: grid;
|
|
gap: 1px;
|
|
}
|
|
|
|
.file-tree-directory,
|
|
.file-tree-file {
|
|
--file-tree-indent: calc(var(--file-tree-level, 0) * 18px);
|
|
display: grid;
|
|
grid-template-columns: 16px minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-height: 32px;
|
|
padding: 5px 8px 5px calc(8px + var(--file-tree-indent));
|
|
border-radius: 8px;
|
|
color: var(--ink-soft);
|
|
font-size: 0.86rem;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.file-tree-directory {
|
|
color: color-mix(in srgb, var(--ink-soft) 88%, var(--ink));
|
|
font-weight: 650;
|
|
}
|
|
|
|
.file-tree-directory svg,
|
|
.file-tree-file svg {
|
|
color: color-mix(in srgb, var(--ink-soft) 78%, transparent);
|
|
}
|
|
|
|
.file-tree-file {
|
|
width: 100%;
|
|
border: 0;
|
|
background: transparent;
|
|
text-align: left;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.file-tree-file:hover,
|
|
.file-tree-file:focus-visible {
|
|
background: color-mix(in srgb, var(--ink) 5%, transparent);
|
|
color: var(--ink);
|
|
outline: none;
|
|
}
|
|
|
|
.file-tree-file.is-primary {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.file-tree-file.is-primary svg {
|
|
color: color-mix(in srgb, var(--ink-soft) 42%, var(--ink));
|
|
}
|
|
|
|
.file-tree-file.is-primary .file-tree-name {
|
|
font-weight: 600;
|
|
}
|
|
|
|
.file-tree-name {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.file-tree-name-wrap {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.file-tree-main-badge {
|
|
flex: 0 0 auto;
|
|
padding: 2px 6px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 86%, transparent);
|
|
border-radius: var(--r-pill);
|
|
background: color-mix(in srgb, var(--ink) 3.5%, transparent);
|
|
color: color-mix(in srgb, var(--ink-soft) 88%, var(--ink));
|
|
font-size: 0.68rem;
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
}
|
|
|
|
.file-row-button {
|
|
width: 100%;
|
|
border: 1px solid var(--line);
|
|
background: var(--surface-muted);
|
|
text-align: left;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.file-row-button:focus-visible {
|
|
outline: 3px solid rgba(255, 255, 255, 0.25);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.file-row-button.is-active {
|
|
border-color: var(--ink);
|
|
box-shadow: 0 8px 18px rgba(29, 26, 23, 0.12);
|
|
}
|
|
|
|
.file-viewer {
|
|
border-radius: 16px;
|
|
border: 1px solid var(--line);
|
|
background: var(--surface);
|
|
display: grid;
|
|
grid-template-rows: auto auto auto;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.file-viewer.is-loading {
|
|
grid-template-rows: auto 1fr auto;
|
|
}
|
|
|
|
.file-viewer.is-loading .file-viewer-body-loading {
|
|
display: flex;
|
|
flex-direction: column;
|
|
max-height: none;
|
|
min-height: 0;
|
|
}
|
|
|
|
.file-viewer-skeleton {
|
|
display: flex;
|
|
flex: 1;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
min-height: 100%;
|
|
}
|
|
|
|
.file-viewer-skeleton-line,
|
|
.file-viewer-skeleton-fill,
|
|
.file-viewer-skeleton-hash {
|
|
border-radius: var(--r-xs);
|
|
background: linear-gradient(
|
|
90deg,
|
|
color-mix(in srgb, var(--ink) 7%, transparent),
|
|
color-mix(in srgb, var(--ink) 14%, transparent),
|
|
color-mix(in srgb, var(--ink) 7%, transparent)
|
|
);
|
|
background-size: 200% 100%;
|
|
animation: skeleton-shimmer 1.15s ease-in-out infinite;
|
|
}
|
|
|
|
.file-viewer-skeleton-line {
|
|
display: block;
|
|
height: 11px;
|
|
}
|
|
|
|
.file-viewer-skeleton-line:nth-child(3n + 1) {
|
|
width: 96%;
|
|
}
|
|
|
|
.file-viewer-skeleton-line:nth-child(3n + 2) {
|
|
width: 88%;
|
|
}
|
|
|
|
.file-viewer-skeleton-line:nth-child(3n) {
|
|
width: 72%;
|
|
}
|
|
|
|
.file-viewer-skeleton-fill {
|
|
flex: 1;
|
|
min-height: 12px;
|
|
width: 100%;
|
|
}
|
|
|
|
.file-viewer-meta-skeleton {
|
|
min-height: 42px;
|
|
}
|
|
|
|
.file-viewer-skeleton-hash {
|
|
display: block;
|
|
width: min(100%, 420px);
|
|
height: 12px;
|
|
}
|
|
|
|
.file-viewer-header {
|
|
display: grid;
|
|
grid-template-columns: 1fr auto 1fr;
|
|
align-items: center;
|
|
gap: 12px;
|
|
border-bottom: 1px solid var(--line);
|
|
box-sizing: border-box;
|
|
min-height: 54px;
|
|
padding: 10px 12px;
|
|
}
|
|
|
|
.file-viewer-back {
|
|
display: inline-flex;
|
|
justify-self: start;
|
|
align-items: center;
|
|
gap: 5px;
|
|
min-height: 32px;
|
|
padding: 6px 8px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-btn);
|
|
background: var(--surface-muted);
|
|
color: var(--ink);
|
|
font-size: 0.8rem;
|
|
font-weight: 650;
|
|
cursor: pointer;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.file-viewer-back:hover {
|
|
background: color-mix(in srgb, var(--ink) 6%, var(--surface-muted));
|
|
}
|
|
|
|
.file-viewer-title {
|
|
justify-self: center;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 0.35em;
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
font-size: 0.95rem;
|
|
line-height: 1.25;
|
|
text-align: center;
|
|
}
|
|
|
|
.file-viewer-filename {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
font-family: inherit;
|
|
color: var(--ink);
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.file-viewer-title-sep {
|
|
flex-shrink: 0;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.file-viewer-size {
|
|
flex-shrink: 0;
|
|
font-size: 0.8rem;
|
|
color: var(--ink-soft);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.file-viewer-header-end {
|
|
justify-self: end;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
}
|
|
|
|
.file-viewer-download {
|
|
display: inline-grid;
|
|
width: 30px;
|
|
height: 30px;
|
|
place-items: center;
|
|
border-radius: var(--r-btn);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.file-viewer-download:hover,
|
|
.file-viewer-download:focus-visible {
|
|
background: color-mix(in srgb, var(--ink) 6%, transparent);
|
|
color: var(--ink);
|
|
outline: none;
|
|
}
|
|
|
|
.file-viewer-body {
|
|
min-height: 0;
|
|
max-height: min(66vh, 720px);
|
|
background: color-mix(in srgb, var(--surface) 82%, var(--bg) 18%);
|
|
overflow: auto;
|
|
padding: 12px 16px 16px;
|
|
scrollbar-color: var(--ink-soft) transparent;
|
|
scrollbar-width: thin;
|
|
}
|
|
|
|
.file-viewer-code {
|
|
margin: 0;
|
|
padding: 0;
|
|
white-space: pre;
|
|
word-break: normal;
|
|
font-family: var(--font-mono);
|
|
font-size: 0.84rem;
|
|
line-height: 1.65;
|
|
color: var(--ink);
|
|
tab-size: 2;
|
|
}
|
|
|
|
.file-viewer-code[data-wrap="true"] {
|
|
white-space: pre-wrap;
|
|
overflow-wrap: anywhere;
|
|
word-break: break-word;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
.file-viewer-body::-webkit-scrollbar {
|
|
width: 10px;
|
|
height: 10px;
|
|
}
|
|
|
|
.file-viewer-body::-webkit-scrollbar-thumb {
|
|
border: 2px solid transparent;
|
|
border-radius: var(--r-btn);
|
|
background: var(--ink-soft);
|
|
background-clip: padding-box;
|
|
}
|
|
|
|
.file-viewer-body::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
|
|
.file-viewer-empty {
|
|
min-height: 178px;
|
|
border: 1px dashed var(--line);
|
|
border-radius: 12px;
|
|
background: var(--surface-muted);
|
|
display: grid;
|
|
place-content: center;
|
|
gap: 10px;
|
|
text-align: center;
|
|
padding: 20px;
|
|
}
|
|
|
|
.file-viewer-empty-icon {
|
|
color: var(--ink-soft);
|
|
justify-self: center;
|
|
}
|
|
|
|
.file-viewer-empty-text {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.96rem;
|
|
}
|
|
|
|
.file-viewer-meta {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
border-top: 1px solid var(--line);
|
|
margin-top: 0;
|
|
min-width: 0;
|
|
padding: 10px 16px;
|
|
}
|
|
|
|
.file-viewer-hash-icon {
|
|
flex-shrink: 0;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.file-viewer-hash {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
font-family: var(--font-mono);
|
|
font-size: 0.8rem;
|
|
color: var(--ink-soft);
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.version-scroll {
|
|
max-height: 320px;
|
|
overflow: auto;
|
|
padding-right: 4px;
|
|
}
|
|
|
|
.file-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
max-width: 100%;
|
|
padding: 10px 12px;
|
|
border-radius: 12px;
|
|
border: 1px solid var(--line);
|
|
background: var(--surface-muted);
|
|
}
|
|
|
|
.file-row-path {
|
|
display: grid;
|
|
gap: 2px;
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
font-family: var(--font-mono);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.file-path-dir {
|
|
color: var(--ink-soft);
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.file-path-name {
|
|
color: var(--ink);
|
|
font-weight: 600;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.file-path {
|
|
font-family: var(--font-mono);
|
|
font-size: 0.9rem;
|
|
color: var(--ink);
|
|
word-break: break-all;
|
|
}
|
|
|
|
.file-meta {
|
|
flex-shrink: 0;
|
|
font-size: 0.8rem;
|
|
color: var(--ink-soft);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.sidebar-card {
|
|
gap: 20px;
|
|
}
|
|
|
|
.sidebar-section {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.sidebar-stack {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.sidebar-divider {
|
|
height: 1px;
|
|
background: var(--line);
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.sidebar-scroll {
|
|
max-height: 260px;
|
|
overflow: auto;
|
|
padding-right: 4px;
|
|
}
|
|
|
|
.sidebar-form {
|
|
display: grid;
|
|
gap: 10px;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.version-list {
|
|
display: grid;
|
|
gap: 14px;
|
|
}
|
|
|
|
.version-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 16px;
|
|
align-items: center;
|
|
padding: 6px 0;
|
|
}
|
|
|
|
.version-info {
|
|
display: grid;
|
|
gap: 6px;
|
|
color: var(--ink-soft);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.version-actions {
|
|
display: grid;
|
|
align-items: center;
|
|
}
|
|
|
|
.version-zip {
|
|
justify-self: end;
|
|
}
|
|
|
|
.skill-versions-panel {
|
|
display: grid;
|
|
gap: 18px;
|
|
container-type: inline-size;
|
|
container-name: versions-panel;
|
|
}
|
|
|
|
.skill-versions-header {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-versions-suppressed-message {
|
|
min-width: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.86rem;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.skill-versions-suppressed-message {
|
|
margin: 0;
|
|
}
|
|
|
|
.skill-versions-scroll {
|
|
overflow: visible;
|
|
}
|
|
|
|
.skill-versions-list {
|
|
display: grid;
|
|
gap: 0;
|
|
border: 1px solid color-mix(in srgb, var(--line) 92%, transparent);
|
|
border-radius: var(--r-md);
|
|
overflow: hidden;
|
|
background: color-mix(in srgb, var(--surface) 28%, transparent);
|
|
}
|
|
|
|
.skill-versions-list-skills {
|
|
--skill-versions-grid-columns: minmax(0, 1fr) max-content max-content 36px;
|
|
grid-template-columns: var(--skill-versions-grid-columns);
|
|
}
|
|
|
|
.skill-versions-list-plugins {
|
|
--skill-versions-grid-columns: minmax(0, 1fr) minmax(88px, max-content) max-content max-content
|
|
36px;
|
|
grid-template-columns: var(--skill-versions-grid-columns);
|
|
}
|
|
|
|
.skill-versions-column-header {
|
|
grid-column: 1 / -1;
|
|
display: grid;
|
|
grid-template-columns: subgrid;
|
|
column-gap: 16px;
|
|
align-items: center;
|
|
padding: 10px 16px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 66%, transparent);
|
|
color: color-mix(in srgb, var(--ink-soft) 72%, transparent);
|
|
font-size: 0.68rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
line-height: 1;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.skill-versions-col-version {
|
|
grid-column: 1;
|
|
justify-self: start;
|
|
}
|
|
|
|
.skill-versions-col-tags {
|
|
grid-column: 2;
|
|
justify-self: start;
|
|
}
|
|
|
|
.skill-versions-col-release {
|
|
justify-self: start;
|
|
}
|
|
|
|
.skill-versions-column-header-skills .skill-versions-col-release {
|
|
grid-column: 2;
|
|
}
|
|
|
|
.skill-versions-column-header-plugins .skill-versions-col-release {
|
|
grid-column: 3;
|
|
}
|
|
|
|
.skill-versions-col-download {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
justify-self: end;
|
|
min-height: 22px;
|
|
color: color-mix(in srgb, var(--ink-soft) 72%, transparent);
|
|
}
|
|
|
|
.skill-versions-column-header-skills .skill-versions-col-download {
|
|
grid-column: 3;
|
|
}
|
|
|
|
.skill-versions-column-header-plugins .skill-versions-col-download {
|
|
grid-column: 4;
|
|
width: 28px;
|
|
}
|
|
|
|
.skill-versions-col-expand {
|
|
justify-self: end;
|
|
}
|
|
|
|
.skill-versions-column-header-skills .skill-versions-col-expand {
|
|
grid-column: 4;
|
|
}
|
|
|
|
.skill-versions-column-header-plugins .skill-versions-col-expand {
|
|
grid-column: 5;
|
|
}
|
|
|
|
.skill-version-release {
|
|
grid-column: 1 / -1;
|
|
display: grid;
|
|
grid-template-columns: subgrid;
|
|
gap: 0;
|
|
min-width: 0;
|
|
border: 0;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 68%, transparent);
|
|
background: color-mix(in srgb, var(--surface) 20%, transparent);
|
|
transition: background-color 160ms ease;
|
|
}
|
|
|
|
.skill-version-release:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.skill-version-release.is-latest {
|
|
background: color-mix(in srgb, var(--ink) 2.2%, var(--surface) 28%);
|
|
}
|
|
|
|
.skill-version-release-summary {
|
|
grid-column: 1 / -1;
|
|
display: grid;
|
|
grid-template-columns: subgrid;
|
|
column-gap: 16px;
|
|
align-items: center;
|
|
min-width: 0;
|
|
min-height: 64px;
|
|
padding: 12px 16px;
|
|
transition: background-color 160ms ease;
|
|
}
|
|
|
|
.skill-version-release:not([data-expanded="true"])
|
|
.skill-version-release-summary:has(.skill-version-release-toggle:hover),
|
|
.skill-version-release:not([data-expanded="true"])
|
|
.skill-version-release-summary:has(.skill-version-release-chevron-button:hover) {
|
|
background: color-mix(in srgb, var(--ink) 4%, transparent);
|
|
}
|
|
|
|
.skill-version-release[data-expanded="true"] .skill-version-release-summary {
|
|
background: transparent;
|
|
}
|
|
|
|
.skill-version-release-toggle {
|
|
grid-column: 1;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 4px;
|
|
min-width: 0;
|
|
border: 0;
|
|
background: transparent;
|
|
color: inherit;
|
|
padding: 0;
|
|
text-align: left;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.skill-version-release-toggle:hover {
|
|
color: inherit;
|
|
}
|
|
|
|
.skill-version-release-toggle:focus-visible,
|
|
.skill-version-release-chevron-button:focus-visible {
|
|
outline: 2px solid color-mix(in srgb, var(--ink) 20%, transparent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.skill-version-release-version {
|
|
color: var(--ink);
|
|
font-size: 0.98rem;
|
|
font-weight: 700;
|
|
line-height: 1.2;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.skill-version-release-meta {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 4px 8px;
|
|
min-width: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.82rem;
|
|
font-variant-numeric: tabular-nums;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.skill-version-release-cell {
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-version-release-cell:empty {
|
|
min-height: 22px;
|
|
}
|
|
|
|
.skill-version-release-chevron-button {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
justify-self: end;
|
|
align-self: center;
|
|
width: 28px;
|
|
height: 28px;
|
|
padding: 0;
|
|
border: 0;
|
|
border-radius: var(--r-sm);
|
|
background: transparent;
|
|
color: inherit;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.skill-version-release-chevron-button:hover {
|
|
background: color-mix(in srgb, var(--ink) 6%, transparent);
|
|
}
|
|
|
|
.skill-version-release-chevron {
|
|
display: block;
|
|
width: 10px;
|
|
height: 10px;
|
|
border-right: 2px solid color-mix(in srgb, var(--ink-soft) 74%, transparent);
|
|
border-bottom: 2px solid color-mix(in srgb, var(--ink-soft) 74%, transparent);
|
|
transform: rotate(45deg);
|
|
transition:
|
|
border-color 160ms ease,
|
|
transform 160ms ease;
|
|
}
|
|
|
|
.skill-version-release[data-expanded="true"] .skill-version-release-chevron {
|
|
border-color: color-mix(in srgb, var(--ink) 88%, transparent);
|
|
transform: rotate(225deg) translate(-2px, -2px);
|
|
}
|
|
|
|
.skill-version-release-changelog {
|
|
grid-column: 1 / -1;
|
|
margin: 0 16px 16px;
|
|
padding: 14px 16px;
|
|
border-top: 1px solid color-mix(in srgb, var(--line) 58%, transparent);
|
|
border-radius: 0 0 var(--r-sm) var(--r-sm);
|
|
background: color-mix(in srgb, var(--ink) 4.5%, transparent);
|
|
color: color-mix(in srgb, var(--ink) 72%, transparent);
|
|
font-size: 0.84rem;
|
|
line-height: 1.45;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.version-changelog-list {
|
|
display: grid;
|
|
gap: 5px;
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style: none;
|
|
}
|
|
|
|
.version-changelog-list li {
|
|
position: relative;
|
|
padding-left: 14px;
|
|
}
|
|
|
|
.version-changelog-list li::before {
|
|
position: absolute;
|
|
top: 0.7em;
|
|
left: 0;
|
|
width: 4px;
|
|
height: 4px;
|
|
border-radius: 999px;
|
|
background: color-mix(in srgb, var(--ink-soft) 58%, transparent);
|
|
content: "";
|
|
}
|
|
|
|
.version-changelog-text {
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.version-changelog-text p {
|
|
margin: 0;
|
|
white-space: pre-wrap;
|
|
}
|
|
|
|
.version-changelog-empty {
|
|
margin: 0;
|
|
color: color-mix(in srgb, var(--ink-soft) 72%, transparent);
|
|
font-size: 0.84rem;
|
|
font-style: italic;
|
|
}
|
|
|
|
.skill-version-release-scan {
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: flex-start;
|
|
gap: 6px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
min-height: 22px;
|
|
}
|
|
|
|
.skill-versions-list-plugins .skill-version-release-scan {
|
|
grid-column: 2;
|
|
}
|
|
|
|
.skill-version-release-tags {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: flex-start;
|
|
gap: 6px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
min-height: 22px;
|
|
}
|
|
|
|
.skill-versions-list-skills .skill-version-release-tags {
|
|
grid-column: 2;
|
|
}
|
|
|
|
.skill-versions-list-plugins .skill-version-release-tags {
|
|
grid-column: 3;
|
|
}
|
|
|
|
.skill-version-release-actions {
|
|
display: flex;
|
|
flex-wrap: nowrap;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 8px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
justify-self: end;
|
|
}
|
|
|
|
.skill-versions-list-skills .skill-version-release-actions {
|
|
grid-column: 3;
|
|
}
|
|
|
|
.skill-versions-list-plugins .skill-version-release-actions {
|
|
grid-column: 4;
|
|
}
|
|
|
|
.skill-version-release-download {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 28px;
|
|
min-width: 28px;
|
|
height: 28px;
|
|
min-height: 28px;
|
|
padding: 0;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-pill);
|
|
background: var(--surface);
|
|
color: var(--ink);
|
|
line-height: 1;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-version-release-download:hover {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-version-release-download-icon {
|
|
flex: 0 0 auto;
|
|
color: color-mix(in srgb, var(--ink-soft) 72%, transparent);
|
|
}
|
|
|
|
.skill-version-release-download-labeled {
|
|
width: auto;
|
|
padding: 0 10px;
|
|
gap: 6px;
|
|
font-size: 0.76rem;
|
|
font-weight: 650;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skill-versions-list-skills .skill-version-release-chevron-button {
|
|
grid-column: 4;
|
|
}
|
|
|
|
.skill-versions-list-plugins .skill-version-release-chevron-button {
|
|
grid-column: 5;
|
|
}
|
|
|
|
.version-channel-badge,
|
|
.version-release-channel-badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-sizing: border-box;
|
|
min-width: 0;
|
|
min-height: 22px;
|
|
line-height: 1;
|
|
}
|
|
|
|
.version-channel-badge {
|
|
padding: 2px 8px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
|
|
border-radius: var(--r-pill);
|
|
background: color-mix(in srgb, var(--ink) 3%, transparent);
|
|
color: color-mix(in srgb, var(--ink-soft) 82%, transparent);
|
|
font-size: 0.72rem;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.skill-version-release .version-scan-badge-row {
|
|
display: inline-flex;
|
|
flex-wrap: nowrap;
|
|
align-items: center;
|
|
gap: 8px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-version-release .version-scan-badge {
|
|
display: inline-grid;
|
|
grid-template-columns: 14px 58px 12px;
|
|
align-items: center;
|
|
column-gap: 4px;
|
|
flex: 0 0 88px;
|
|
width: 88px;
|
|
min-width: 88px;
|
|
max-width: 88px;
|
|
}
|
|
|
|
.skill-version-release .version-scan-icon {
|
|
width: 14px;
|
|
height: 14px;
|
|
flex: 0 0 auto;
|
|
font-size: 0.82rem;
|
|
line-height: 1;
|
|
}
|
|
|
|
.skill-version-release .version-scan-status-badge,
|
|
.skill-version-release .version-scan-badge > span {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-sizing: border-box;
|
|
width: 58px;
|
|
min-width: 58px;
|
|
max-width: 58px;
|
|
min-height: 22px;
|
|
padding: 2px 4px;
|
|
border-radius: var(--r-pill);
|
|
font-size: 0.72rem;
|
|
font-weight: 650;
|
|
line-height: 1;
|
|
text-align: center;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skill-version-release .version-scan-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 12px;
|
|
min-width: 12px;
|
|
color: var(--ink-soft);
|
|
font-size: 0.72rem;
|
|
line-height: 1;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.skill-version-release .version-scan-link:hover {
|
|
color: var(--accent);
|
|
}
|
|
|
|
.skill-version-release .version-scan-badge .scan-result-status.scan-status-clean {
|
|
width: 22px;
|
|
min-width: 22px;
|
|
height: 22px;
|
|
min-height: 22px;
|
|
justify-content: center;
|
|
gap: 0;
|
|
padding: 0;
|
|
border-color: color-mix(in srgb, var(--status-success-fg) 24%, var(--line));
|
|
border-radius: var(--r-pill);
|
|
font-size: 0;
|
|
}
|
|
|
|
.skill-version-release .version-scan-badge .scan-result-status.scan-status-clean::before {
|
|
content: "✓";
|
|
font-size: 0.74rem;
|
|
line-height: 1;
|
|
}
|
|
|
|
.skill-version-release .version-scan-badge .scan-status-pending {
|
|
border-color: color-mix(in srgb, var(--ink-soft) 34%, var(--line));
|
|
background: color-mix(in srgb, var(--ink-soft) 10%, transparent);
|
|
color: color-mix(in srgb, var(--ink) 68%, transparent);
|
|
}
|
|
|
|
.skill-version-release .version-scan-badge .scan-status-warn,
|
|
.skill-version-release .version-scan-badge .scan-status-suspicious {
|
|
border-color: color-mix(in srgb, var(--status-warning-fg) 34%, var(--line));
|
|
background: var(--status-warning-bg);
|
|
color: var(--status-warning-fg);
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.skill-versions-header {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
|
|
.skill-versions-list {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.skill-versions-column-header {
|
|
display: none;
|
|
}
|
|
|
|
.skill-version-release {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.skill-version-release-summary {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 10px;
|
|
padding: 14px;
|
|
}
|
|
|
|
.skill-version-release-toggle {
|
|
grid-column: 1;
|
|
}
|
|
|
|
.skill-version-release-scan,
|
|
.skill-version-release-tags {
|
|
grid-column: 1 / -1;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px 10px;
|
|
align-items: center;
|
|
min-height: 0;
|
|
}
|
|
|
|
.skill-version-release-scan:empty,
|
|
.skill-version-release-tags:empty {
|
|
display: none;
|
|
}
|
|
|
|
.skill-version-release-scan::before,
|
|
.skill-version-release-tags::before {
|
|
flex: 0 0 64px;
|
|
content: attr(data-label);
|
|
color: color-mix(in srgb, var(--ink-soft) 74%, transparent);
|
|
font-size: 0.68rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
line-height: 1;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.skill-version-release-actions {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.skill-version-release-actions {
|
|
justify-content: flex-start;
|
|
padding-left: 74px;
|
|
}
|
|
|
|
.skill-version-release-actions:empty {
|
|
display: none;
|
|
}
|
|
|
|
.skill-version-release-scan .version-scan-badge-row {
|
|
width: auto;
|
|
}
|
|
|
|
.skill-version-release-tags .version-release-channel-badge {
|
|
flex: 0 0 auto;
|
|
width: fit-content;
|
|
}
|
|
|
|
.skill-version-release-chevron-button {
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
justify-self: end;
|
|
}
|
|
|
|
.navbar-inner {
|
|
padding: 0;
|
|
}
|
|
|
|
.navbar-top {
|
|
display: grid;
|
|
grid-template-columns: 40px minmax(0, 1fr) 40px;
|
|
align-items: center;
|
|
padding: 8px 10px;
|
|
gap: 6px;
|
|
min-height: 0;
|
|
}
|
|
|
|
.navbar-search-wrap {
|
|
display: block;
|
|
width: 100%;
|
|
max-width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.navbar-search {
|
|
display: flex;
|
|
min-width: 0;
|
|
height: 40px;
|
|
gap: 8px;
|
|
padding: 0 10px;
|
|
}
|
|
|
|
.navbar-search-icon {
|
|
width: 17px;
|
|
height: 17px;
|
|
}
|
|
|
|
.navbar-search-mobile-trigger {
|
|
display: none;
|
|
}
|
|
|
|
.navbar-search-mobile {
|
|
display: none;
|
|
}
|
|
|
|
.navbar-top-links {
|
|
display: none;
|
|
}
|
|
|
|
.navbar-tabs {
|
|
display: none;
|
|
}
|
|
|
|
.navbar-tabs-primary,
|
|
.navbar-tabs-secondary {
|
|
display: inline-flex;
|
|
flex: 0 0 auto;
|
|
align-items: center;
|
|
}
|
|
|
|
.navbar-tab {
|
|
min-height: 54px;
|
|
padding: 14px 18px;
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.navbar-tab-secondary {
|
|
display: inline-flex;
|
|
}
|
|
|
|
.nav-links {
|
|
display: none;
|
|
}
|
|
|
|
.nav-mobile {
|
|
display: inline-flex;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.nav-mobile-trigger {
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: var(--r-md);
|
|
}
|
|
|
|
.nav-mobile-trigger::after {
|
|
border-radius: var(--r-md);
|
|
}
|
|
|
|
.nav-mobile-trigger svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
.brand {
|
|
display: none;
|
|
}
|
|
|
|
.nav-actions {
|
|
justify-self: end;
|
|
margin-left: 0;
|
|
flex: 0 0 auto;
|
|
gap: 0;
|
|
}
|
|
|
|
.nav-actions .btn {
|
|
width: 36px;
|
|
min-width: 36px;
|
|
height: 36px;
|
|
min-height: 36px;
|
|
padding: 0;
|
|
border-radius: var(--r-pill);
|
|
}
|
|
|
|
.sign-in-label,
|
|
.sign-in-provider {
|
|
display: none;
|
|
}
|
|
|
|
.github-sign-in-button {
|
|
width: 40px !important;
|
|
min-width: 40px !important;
|
|
height: 40px !important;
|
|
min-height: 40px !important;
|
|
padding: 0 !important;
|
|
gap: 0 !important;
|
|
border-radius: var(--r-md) !important;
|
|
}
|
|
|
|
.github-sign-in-button .github-sign-in-logo {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
.sign-in-full-copy {
|
|
display: none;
|
|
}
|
|
|
|
.sign-in-compact-copy {
|
|
display: none;
|
|
}
|
|
|
|
.user-trigger {
|
|
width: 40px;
|
|
min-width: 40px;
|
|
height: 40px;
|
|
min-height: 40px;
|
|
padding: 0;
|
|
justify-content: center;
|
|
border-radius: var(--r-md);
|
|
}
|
|
|
|
.user-trigger img,
|
|
.user-menu-fallback {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
.user-trigger .mono,
|
|
.user-trigger-handle,
|
|
.user-menu-chevron {
|
|
display: none;
|
|
}
|
|
|
|
.hero {
|
|
padding: 58px 18px 44px;
|
|
}
|
|
|
|
.section {
|
|
padding: 30px 18px 62px;
|
|
}
|
|
|
|
.security-scanner-layout {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.security-report-layout,
|
|
.security-report-panel-body .clawscan-risk-buckets {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.security-report-sidebar {
|
|
position: static;
|
|
padding: 22px 0;
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.section-cta {
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.skill-hero-lower {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.skill-hero-lower.has-sidebar {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 16px;
|
|
}
|
|
|
|
.skill-hero-main-extra {
|
|
gap: 24px;
|
|
}
|
|
|
|
.plugin-detail-page .skill-hero-main-extra {
|
|
gap: 20px;
|
|
}
|
|
|
|
.related-skills-header {
|
|
align-items: start;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
}
|
|
|
|
.related-skill-row {
|
|
grid-template-columns: 34px minmax(0, 1fr);
|
|
gap: 12px;
|
|
padding: 16px 0;
|
|
}
|
|
|
|
.related-skills-section-compact .related-skill-row {
|
|
grid-template-columns: 34px minmax(0, 1fr) auto;
|
|
padding: 14px 10px;
|
|
}
|
|
|
|
.related-skills-section:not(.related-skills-section-compact) .related-skill-owner,
|
|
.related-skills-section:not(.related-skills-section-compact) .related-skill-owner-skeleton {
|
|
grid-column: 2;
|
|
text-align: left;
|
|
}
|
|
|
|
.related-skills-section:not(.related-skills-section-compact) .related-skill-owner-skeleton {
|
|
justify-self: start;
|
|
}
|
|
|
|
.skill-hero-layout.has-sidebar .skill-summary-block {
|
|
max-width: none;
|
|
}
|
|
|
|
.skill-hero-sidebar {
|
|
order: -1;
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
width: 100%;
|
|
}
|
|
|
|
.skill-hero-sidebar-stack {
|
|
gap: 10px;
|
|
}
|
|
|
|
.skill-hero-sidebar .sidebar-metadata-row {
|
|
padding: 8px 0;
|
|
}
|
|
|
|
.skill-hero-sidebar .sidebar-metadata-label {
|
|
font-size: 0.78rem;
|
|
}
|
|
|
|
.skill-hero-sidebar .sidebar-metadata-value {
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.skill-hero-sidebar .sidebar-metadata-row-large .sidebar-metadata-value {
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
.skill-sidebar-action-button {
|
|
min-height: 38px !important;
|
|
padding-top: 7px !important;
|
|
padding-bottom: 7px !important;
|
|
font-size: 0.8125rem;
|
|
}
|
|
|
|
.skill-page-title {
|
|
font-size: clamp(1.55rem, 6.8vw, 1.85rem);
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.skill-hero-sidebar-meta {
|
|
flex: 1;
|
|
min-width: 200px;
|
|
}
|
|
|
|
.skill-install-panel {
|
|
padding: 18px;
|
|
}
|
|
|
|
.skill-install-command-card {
|
|
padding: 14px;
|
|
}
|
|
|
|
.skill-hero-cta {
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.skill-hero-cta .btn {
|
|
width: auto;
|
|
flex: 1 1 auto;
|
|
min-width: 0;
|
|
}
|
|
|
|
.tag-form {
|
|
grid-template-columns: 1fr;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.diff-layout {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.diff-view {
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.diff-files {
|
|
grid-auto-flow: column;
|
|
grid-auto-columns: minmax(160px, 1fr);
|
|
overflow-x: auto;
|
|
padding-bottom: 6px;
|
|
max-height: none;
|
|
}
|
|
|
|
.diff-monaco.diff-monaco-split {
|
|
min-width: 0;
|
|
}
|
|
|
|
.skills-row {
|
|
grid-template-columns: 1fr;
|
|
gap: 10px;
|
|
}
|
|
|
|
.skills-row-metrics {
|
|
justify-content: flex-start;
|
|
white-space: normal;
|
|
flex-wrap: wrap;
|
|
row-gap: 8px;
|
|
}
|
|
|
|
.browse-search-input {
|
|
font-size: 16px;
|
|
}
|
|
|
|
.navbar-search-input {
|
|
font-size: 16px;
|
|
}
|
|
|
|
.navbar-search-input::placeholder {
|
|
font-size: 16px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 520px) {
|
|
.nav-actions {
|
|
gap: 0;
|
|
}
|
|
|
|
.navbar .btn {
|
|
padding: 10px 12px;
|
|
font-size: 0.95rem;
|
|
min-height: 44px;
|
|
}
|
|
|
|
.nav-actions .btn,
|
|
.user-trigger {
|
|
width: 36px;
|
|
min-width: 36px;
|
|
height: 36px;
|
|
min-height: 36px;
|
|
padding: 0;
|
|
}
|
|
|
|
.user-trigger {
|
|
width: 40px;
|
|
min-width: 40px;
|
|
height: 40px;
|
|
min-height: 40px;
|
|
border-radius: var(--r-md);
|
|
}
|
|
|
|
.search-bar {
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
}
|
|
|
|
.search-bar > .mono {
|
|
display: none;
|
|
}
|
|
|
|
.search-input {
|
|
flex: 1 1 180px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.search-filter-button {
|
|
flex: 1;
|
|
justify-content: center;
|
|
}
|
|
|
|
.plugins-toolbar-top {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.plugins-type-tabs {
|
|
width: 100%;
|
|
justify-content: center;
|
|
}
|
|
|
|
.install-switcher-row {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.report-dialog-backdrop {
|
|
padding: 12px;
|
|
}
|
|
|
|
.report-dialog {
|
|
padding: 16px;
|
|
}
|
|
|
|
.site-footer {
|
|
padding: 0 18px 18px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 639px) {
|
|
.brand-mark-image {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.search-filter-button {
|
|
position: relative;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
border-radius: var(--r-pill);
|
|
border: 1px solid var(--border-ui);
|
|
padding: 7px 14px;
|
|
background: linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(255, 246, 241, 0.92));
|
|
color: var(--ink-soft);
|
|
font-weight: 600;
|
|
font-size: 0.88rem;
|
|
cursor: pointer;
|
|
transition:
|
|
border 0.15s ease,
|
|
box-shadow 0.15s ease,
|
|
background 0.15s ease,
|
|
color 0.15s ease;
|
|
}
|
|
|
|
.search-filter-button:hover {
|
|
border-color: var(--border-ui-hover);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.search-filter-button[aria-pressed="true"] {
|
|
background: linear-gradient(180deg, rgba(255, 142, 111, 0.28), rgba(255, 255, 255, 0.2));
|
|
border-color: var(--border-ui-active);
|
|
color: var(--ink);
|
|
box-shadow: inset 0 1px 0 rgba(255, 244, 240, 0.75);
|
|
}
|
|
|
|
.search-filter-button:focus-visible {
|
|
outline: 3px solid rgba(255, 255, 255, 0.3);
|
|
outline-offset: 3px;
|
|
}
|
|
|
|
.search-filter {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: 10px 14px;
|
|
border-radius: var(--r-pill);
|
|
border: 1px solid var(--border-ui);
|
|
background: var(--surface-muted);
|
|
color: var(--ink);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.search-filter-input {
|
|
appearance: none;
|
|
width: 20px;
|
|
height: 20px;
|
|
border-radius: 6px;
|
|
border: 2px solid var(--border-ui-hover);
|
|
display: grid;
|
|
place-items: center;
|
|
background: transparent;
|
|
transition:
|
|
border 0.2s ease,
|
|
box-shadow 0.2s ease,
|
|
background 0.2s ease;
|
|
}
|
|
|
|
.search-filter-input::after {
|
|
content: "";
|
|
width: 10px;
|
|
height: 10px;
|
|
border-radius: 3px;
|
|
background: white;
|
|
transform: scale(0);
|
|
transition: transform 0.15s ease;
|
|
}
|
|
|
|
.search-filter-input:checked {
|
|
background: var(--accent);
|
|
border-color: var(--accent-deep);
|
|
box-shadow: 0 8px 16px rgba(255, 255, 255, 0.3);
|
|
}
|
|
|
|
.search-filter-input:checked::after {
|
|
transform: scale(1);
|
|
}
|
|
|
|
.search-filter-input:focus-visible {
|
|
outline: 3px solid rgba(255, 255, 255, 0.3);
|
|
outline-offset: 3px;
|
|
}
|
|
|
|
.search-input {
|
|
border: none;
|
|
outline: none;
|
|
flex: 1;
|
|
font-size: 1rem;
|
|
background: transparent;
|
|
}
|
|
|
|
.settings-shell {
|
|
display: grid;
|
|
gap: 20px;
|
|
}
|
|
|
|
.settings-profile {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
background: linear-gradient(135deg, var(--surface), var(--surface-muted));
|
|
}
|
|
|
|
.settings-avatar {
|
|
width: 72px;
|
|
height: 72px;
|
|
border-radius: 22px;
|
|
background: rgba(255, 255, 255, 0.14);
|
|
border: 1px solid rgba(255, 255, 255, 0.3);
|
|
display: grid;
|
|
place-items: center;
|
|
font-weight: 700;
|
|
color: var(--accent-deep);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.settings-avatar img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
}
|
|
|
|
.settings-profile-body {
|
|
display: grid;
|
|
gap: 4px;
|
|
}
|
|
|
|
.settings-name {
|
|
font-size: 1.25rem;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.settings-handle {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.settings-email {
|
|
font-size: 0.95rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.profile-tabs {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
flex-wrap: wrap;
|
|
margin: 0 0 18px;
|
|
}
|
|
|
|
.profile-tab {
|
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
background: rgba(255, 255, 255, 0.45);
|
|
color: var(--ink-soft);
|
|
padding: 10px 14px;
|
|
border-radius: var(--r-pill);
|
|
font-weight: 650;
|
|
cursor: pointer;
|
|
transition:
|
|
transform 0.18s ease,
|
|
background 0.18s ease,
|
|
border-color 0.18s ease,
|
|
color 0.18s ease;
|
|
}
|
|
|
|
.profile-tab:hover {
|
|
transform: translateY(-1px);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.profile-tab.is-active {
|
|
background: rgba(255, 255, 255, 0.16);
|
|
border-color: rgba(255, 255, 255, 0.32);
|
|
color: var(--accent-deep);
|
|
}
|
|
|
|
.profile-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
flex-wrap: wrap;
|
|
margin-bottom: 18px;
|
|
}
|
|
|
|
.telemetry-root-header {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.telemetry-root-title {
|
|
font-weight: 750;
|
|
letter-spacing: -0.01em;
|
|
}
|
|
|
|
.telemetry-root-meta {
|
|
font-size: 0.9rem;
|
|
color: var(--ink-soft);
|
|
margin-top: 4px;
|
|
}
|
|
|
|
.telemetry-skill-list {
|
|
display: grid;
|
|
gap: 10px;
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.telemetry-skill-row {
|
|
display: flex;
|
|
align-items: baseline;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.telemetry-skill-link {
|
|
display: inline-flex;
|
|
align-items: baseline;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.telemetry-skill-slug {
|
|
font-family: var(--font-mono);
|
|
font-size: 0.85rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.telemetry-skill-meta {
|
|
color: var(--ink-soft);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.settings-card {
|
|
display: grid;
|
|
gap: 16px;
|
|
}
|
|
|
|
.settings-field {
|
|
display: grid;
|
|
gap: 8px;
|
|
font-weight: 600;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.settings-input {
|
|
width: 100%;
|
|
border-radius: 14px;
|
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
background: var(--surface-muted);
|
|
padding: 12px 14px;
|
|
font-size: 1rem;
|
|
color: var(--ink);
|
|
outline: none;
|
|
transition:
|
|
border 0.2s ease,
|
|
box-shadow 0.2s ease;
|
|
}
|
|
|
|
.settings-input:focus {
|
|
border-color: rgba(255, 255, 255, 0.5);
|
|
box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.15);
|
|
}
|
|
|
|
.settings-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
}
|
|
|
|
.settings-save {
|
|
padding: 10px 22px;
|
|
}
|
|
|
|
.danger-card {
|
|
margin-top: 8px;
|
|
border: 1px solid rgba(255, 255, 255, 0.28);
|
|
background: linear-gradient(135deg, rgba(255, 255, 255, 0.08), transparent);
|
|
}
|
|
|
|
.danger-title {
|
|
margin: 0 0 6px;
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
.btn-danger {
|
|
background: linear-gradient(135deg, #ff4444, #cc0000);
|
|
border: none;
|
|
color: #fff;
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.upload-header {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.upload-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.upload-page .upload-grid {
|
|
gap: 14px;
|
|
}
|
|
|
|
.upload-submit-row {
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.upload-submit-btn {
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.upload-dropzone-title-row {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 4px;
|
|
}
|
|
}
|
|
|
|
.mono {
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.markdown {
|
|
line-height: 1.7;
|
|
max-width: 100%;
|
|
color: var(--ink);
|
|
font-size: var(--fs-base);
|
|
overflow-wrap: break-word;
|
|
word-wrap: break-word;
|
|
}
|
|
|
|
.markdown > :first-child {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.markdown h1 {
|
|
font-family: var(--font-display);
|
|
font-size: var(--fs-2xl);
|
|
font-weight: 700;
|
|
margin: var(--space-6) 0 var(--space-4);
|
|
padding-bottom: var(--space-2);
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.markdown h2 {
|
|
font-family: var(--font-display);
|
|
font-size: var(--fs-xl);
|
|
font-weight: 700;
|
|
margin: var(--space-5) 0 var(--space-3);
|
|
padding-bottom: var(--space-1);
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.markdown h3 {
|
|
font-family: var(--font-display);
|
|
font-size: var(--fs-lg);
|
|
font-weight: 600;
|
|
margin: var(--space-5) 0 var(--space-2);
|
|
}
|
|
|
|
.markdown h4 {
|
|
font-size: var(--fs-md);
|
|
font-weight: 600;
|
|
margin: var(--space-4) 0 var(--space-2);
|
|
}
|
|
.markdown h5,
|
|
.markdown h6 {
|
|
font-size: var(--fs-base);
|
|
font-weight: 600;
|
|
margin: var(--space-4) 0 var(--space-2);
|
|
}
|
|
.markdown h6 {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.markdown p {
|
|
margin: var(--space-3) 0;
|
|
}
|
|
|
|
.markdown a {
|
|
color: var(--accent-deep);
|
|
text-decoration: underline;
|
|
text-underline-offset: 2px;
|
|
overflow-wrap: break-word;
|
|
word-wrap: break-word;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.markdown a:hover {
|
|
color: inherit;
|
|
}
|
|
|
|
.markdown ul,
|
|
.markdown ol {
|
|
padding-left: 1.4em;
|
|
margin: var(--space-3) 0;
|
|
}
|
|
|
|
.markdown ul {
|
|
list-style-type: disc;
|
|
}
|
|
|
|
.markdown ol {
|
|
list-style-type: decimal;
|
|
}
|
|
|
|
.markdown li {
|
|
padding-left: 0.2em;
|
|
margin-bottom: 0.4em;
|
|
}
|
|
|
|
.markdown li::marker {
|
|
color: var(--ink-soft);
|
|
font-size: 0.82em;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.markdown li > ul,
|
|
.markdown li > ol {
|
|
margin-top: var(--space-1);
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.markdown blockquote {
|
|
border-left: 3px solid var(--line);
|
|
padding: var(--space-2) var(--space-4);
|
|
margin: var(--space-4) 0;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.markdown blockquote p {
|
|
margin: 0;
|
|
}
|
|
|
|
.markdown table {
|
|
width: 100%;
|
|
max-width: 100%;
|
|
border: 1px solid var(--line);
|
|
border-collapse: separate;
|
|
border-spacing: 0;
|
|
font-size: var(--fs-sm);
|
|
margin: var(--space-4) 0;
|
|
overflow-x: auto;
|
|
display: block;
|
|
table-layout: fixed;
|
|
border-radius: var(--r-md);
|
|
}
|
|
|
|
.markdown td,
|
|
.markdown th {
|
|
overflow-wrap: break-word;
|
|
word-wrap: break-word;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.markdown th,
|
|
.markdown td {
|
|
padding: var(--space-2) var(--space-3);
|
|
border-right: 1px solid var(--line);
|
|
border-bottom: 1px solid var(--line);
|
|
text-align: left;
|
|
}
|
|
|
|
.markdown tr > :last-child {
|
|
border-right: 0;
|
|
}
|
|
|
|
.markdown tbody tr:last-child > td {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.markdown th {
|
|
background: var(--surface-muted);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.markdown img {
|
|
max-width: 100%;
|
|
height: auto;
|
|
border-radius: var(--r-sm);
|
|
margin: var(--space-3) 0;
|
|
}
|
|
|
|
.markdown hr {
|
|
border: none;
|
|
border-top: 1px solid var(--line);
|
|
margin: var(--space-5) 0;
|
|
}
|
|
|
|
.skill-readme-body {
|
|
--skill-readme-line-height: 28px;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
.skill-readme-preview {
|
|
position: relative;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-readme-preview.is-collapsed {
|
|
max-height: calc(var(--skill-readme-line-height) * 32);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.skill-readme-preview.is-collapsed::after {
|
|
content: "";
|
|
position: absolute;
|
|
right: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
height: 112px;
|
|
pointer-events: none;
|
|
background: linear-gradient(
|
|
to bottom,
|
|
transparent,
|
|
color-mix(in srgb, var(--surface-muted) 58%, var(--bg)) 88%
|
|
);
|
|
}
|
|
|
|
.skill-readme-toggle {
|
|
justify-self: start;
|
|
appearance: none;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-pill);
|
|
padding: 8px 12px;
|
|
background: transparent;
|
|
color: var(--ink);
|
|
font: inherit;
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
line-height: 1;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.skill-readme-toggle:hover,
|
|
.skill-readme-toggle:focus-visible {
|
|
background: color-mix(in srgb, var(--surface-muted) 82%, transparent);
|
|
}
|
|
|
|
.skill-readme-body .markdown {
|
|
font-size: 16px;
|
|
line-height: 1.75;
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.skill-readme-body .markdown img {
|
|
display: block;
|
|
width: auto;
|
|
max-width: 100%;
|
|
height: auto;
|
|
}
|
|
|
|
.skill-readme-body .markdown > p {
|
|
opacity: 0.82;
|
|
}
|
|
|
|
.skill-readme-body .markdown :is(h1, h2, h3, h4, h5, h6) {
|
|
color: var(--ink);
|
|
font-family: var(--font-display);
|
|
font-weight: 700;
|
|
line-height: 1.25;
|
|
padding-bottom: 0;
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.skill-readme-body .markdown h1 {
|
|
margin: 0 0 var(--space-2);
|
|
font-size: 28px;
|
|
}
|
|
|
|
.skill-readme-body .markdown h2 {
|
|
margin: var(--space-5) 0 var(--space-1);
|
|
font-size: 22px;
|
|
}
|
|
|
|
.skill-readme-body .markdown h3 {
|
|
margin: var(--space-5) 0 var(--space-1);
|
|
font-size: 18px;
|
|
}
|
|
|
|
.skill-readme-body .markdown h4 {
|
|
margin: var(--space-5) 0 var(--space-2);
|
|
font-size: 16px;
|
|
}
|
|
|
|
.skill-readme-body .markdown h5,
|
|
.skill-readme-body .markdown h6 {
|
|
margin: var(--space-4) 0 var(--space-2);
|
|
font-size: 14px;
|
|
}
|
|
|
|
.skill-readme-body .markdown p > strong:only-child {
|
|
font-weight: 650;
|
|
}
|
|
|
|
.skill-readme-body .markdown pre {
|
|
margin: var(--space-3) 0 var(--space-5);
|
|
}
|
|
|
|
.skill-readme-body .markdown hr {
|
|
display: none;
|
|
}
|
|
|
|
.markdown :not(pre) > code {
|
|
padding: 0.12em 0.35em;
|
|
border-radius: var(--r-xs);
|
|
background: color-mix(in srgb, var(--surface-muted) 78%, transparent);
|
|
box-decoration-break: clone;
|
|
-webkit-box-decoration-break: clone;
|
|
font-size: 0.88em;
|
|
font-family: var(--font-mono);
|
|
overflow-wrap: anywhere;
|
|
word-break: normal;
|
|
}
|
|
|
|
.markdown pre {
|
|
white-space: pre;
|
|
max-width: 100%;
|
|
overflow-x: auto;
|
|
background: var(--surface-muted);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-sm);
|
|
padding: var(--space-3) var(--space-4);
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.55;
|
|
tab-size: 2;
|
|
color: var(--ink);
|
|
overflow-wrap: normal;
|
|
word-break: normal;
|
|
}
|
|
|
|
.markdown pre code {
|
|
background: transparent;
|
|
padding: 0;
|
|
border-radius: 0;
|
|
white-space: inherit;
|
|
font-family: inherit;
|
|
color: inherit;
|
|
font-size: inherit;
|
|
}
|
|
|
|
.tab-body .markdown :not(pre) > code {
|
|
background: color-mix(in srgb, var(--surface-muted) 74%, var(--ink) 6%);
|
|
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--line) 56%, transparent);
|
|
}
|
|
|
|
.tab-body .markdown pre {
|
|
border-color: color-mix(in srgb, var(--line) 88%, var(--ink) 8%);
|
|
background: color-mix(in srgb, var(--surface-muted) 82%, var(--ink) 4%);
|
|
}
|
|
|
|
.markdown-code-block {
|
|
margin: var(--space-3) 0 var(--space-5);
|
|
overflow: hidden;
|
|
border: 1px solid color-mix(in srgb, var(--line) 88%, var(--ink) 8%);
|
|
border-radius: var(--r-md);
|
|
background: color-mix(in srgb, var(--surface-muted) 82%, var(--ink) 4%);
|
|
}
|
|
|
|
.markdown-code-block-toolbar {
|
|
display: flex;
|
|
min-height: 30px;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
|
|
padding: 3px 8px 3px 12px;
|
|
background: color-mix(in srgb, var(--surface-muted) 74%, var(--bg));
|
|
}
|
|
|
|
.markdown-code-block-language {
|
|
min-width: 0;
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-body);
|
|
font-size: 0.74rem;
|
|
font-weight: 650;
|
|
line-height: 1;
|
|
}
|
|
|
|
.markdown-code-block-actions {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 2px;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.markdown-code-block-action {
|
|
display: inline-flex;
|
|
width: 24px;
|
|
height: 24px;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border: 0;
|
|
border-radius: var(--r-xs);
|
|
background: transparent;
|
|
color: inherit;
|
|
cursor: pointer;
|
|
transition:
|
|
background 140ms ease,
|
|
color 140ms ease,
|
|
transform 120ms cubic-bezier(0.23, 1, 0.32, 1);
|
|
}
|
|
|
|
.markdown-code-block-action:hover,
|
|
.markdown-code-block-action[aria-pressed="true"] {
|
|
background: color-mix(in srgb, var(--ink) 8%, transparent);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.markdown-code-block-action:active {
|
|
transform: scale(0.96);
|
|
}
|
|
|
|
.markdown-code-block-action:focus-visible {
|
|
outline: none;
|
|
}
|
|
|
|
.markdown .markdown-code-block pre,
|
|
.tab-body .markdown .markdown-code-block pre {
|
|
margin: 0;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.markdown .markdown-code-block pre.shiki,
|
|
.tab-body .markdown .markdown-code-block pre.shiki {
|
|
background-color: transparent !important;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.markdown .markdown-code-block pre.shiki code,
|
|
.tab-body .markdown .markdown-code-block pre.shiki code {
|
|
background: transparent;
|
|
color: inherit;
|
|
}
|
|
|
|
.markdown .markdown-code-block pre[data-wrap="true"],
|
|
.markdown .markdown-code-block pre[data-wrap="true"] code {
|
|
white-space: pre-wrap;
|
|
overflow-wrap: anywhere;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.markdown .markdown-code-block pre[data-wrap="true"] {
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
.markdown .markdown-code-block pre::-webkit-scrollbar {
|
|
height: 8px;
|
|
}
|
|
|
|
.markdown .markdown-code-block pre::-webkit-scrollbar-track {
|
|
background: color-mix(in srgb, var(--surface-muted) 72%, var(--bg));
|
|
}
|
|
|
|
.markdown .markdown-code-block pre::-webkit-scrollbar-thumb {
|
|
border-radius: var(--r-pill);
|
|
background: color-mix(in srgb, var(--ink-soft) 38%, transparent);
|
|
}
|
|
|
|
.tab-body .markdown table {
|
|
border-color: color-mix(in srgb, var(--line) 88%, var(--ink) 8%);
|
|
background: color-mix(in srgb, var(--surface-muted) 48%, transparent);
|
|
}
|
|
|
|
.tab-body .markdown th {
|
|
background: color-mix(in srgb, var(--surface-muted) 78%, var(--ink) 4%);
|
|
}
|
|
|
|
.tab-body .markdown td {
|
|
background: color-mix(in srgb, var(--surface-muted) 26%, transparent);
|
|
}
|
|
|
|
.markdown .mermaid-diagram {
|
|
width: 100%;
|
|
max-width: 100%;
|
|
overflow-x: auto;
|
|
margin: var(--space-4) 0;
|
|
padding: var(--space-3);
|
|
background: var(--surface);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-sm);
|
|
}
|
|
|
|
.markdown .mermaid-diagram__svg {
|
|
min-width: max-content;
|
|
}
|
|
|
|
.markdown .mermaid-diagram svg {
|
|
display: block;
|
|
max-width: 100%;
|
|
height: auto;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.markdown .mermaid-diagram__loading {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.markdown .mermaid-diagram-error {
|
|
border-color: color-mix(in srgb, var(--oc-status-error-fg) 45%, var(--oc-border-subtle));
|
|
}
|
|
|
|
.fade-up {
|
|
animation: fadeUp 0.6s ease forwards;
|
|
opacity: 0;
|
|
transform: translateY(12px);
|
|
}
|
|
|
|
.fade-up[data-delay="1"] {
|
|
animation-delay: 0.1s;
|
|
}
|
|
|
|
.fade-up[data-delay="2"] {
|
|
animation-delay: 0.2s;
|
|
}
|
|
|
|
.fade-up[data-delay="3"] {
|
|
animation-delay: 0.3s;
|
|
}
|
|
|
|
@keyframes fadeUp {
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@keyframes spin {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
.clawhub-import-spinner {
|
|
display: inline-flex;
|
|
width: 42px;
|
|
height: 42px;
|
|
flex: 0 0 auto;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border: 1px solid color-mix(in srgb, var(--accent) 36%, var(--line));
|
|
border-radius: 999px;
|
|
background:
|
|
radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.18), transparent 28%),
|
|
color-mix(in srgb, var(--surface-muted) 82%, var(--accent) 18%);
|
|
box-shadow:
|
|
inset 0 0 0 1px rgba(255, 255, 255, 0.04),
|
|
0 10px 32px color-mix(in srgb, var(--accent) 18%, transparent);
|
|
transform-style: preserve-3d;
|
|
animation: clawhub-import-orbit 2.8s linear infinite;
|
|
}
|
|
|
|
.clawhub-import-spinner-emoji::before {
|
|
content: "🦑";
|
|
display: block;
|
|
font-size: 22px;
|
|
line-height: 1;
|
|
transform: translateZ(8px);
|
|
transform-style: preserve-3d;
|
|
animation:
|
|
clawhub-import-emoji 2.8s steps(1, end) infinite,
|
|
clawhub-import-emoji-spin 2.8s linear infinite;
|
|
}
|
|
|
|
@keyframes clawhub-import-orbit {
|
|
0% {
|
|
transform: rotateY(0deg);
|
|
}
|
|
12.49% {
|
|
transform: rotateY(89deg);
|
|
}
|
|
12.5% {
|
|
transform: rotateY(90deg);
|
|
}
|
|
25% {
|
|
transform: rotateY(180deg);
|
|
}
|
|
37.49% {
|
|
transform: rotateY(269deg);
|
|
}
|
|
37.5% {
|
|
transform: rotateY(270deg);
|
|
}
|
|
50% {
|
|
transform: rotateY(360deg);
|
|
}
|
|
62.49% {
|
|
transform: rotateY(449deg);
|
|
}
|
|
62.5% {
|
|
transform: rotateY(450deg);
|
|
}
|
|
75% {
|
|
transform: rotateY(540deg);
|
|
}
|
|
87.49% {
|
|
transform: rotateY(629deg);
|
|
}
|
|
87.5% {
|
|
transform: rotateY(630deg);
|
|
}
|
|
100% {
|
|
transform: rotateY(720deg);
|
|
}
|
|
}
|
|
|
|
@keyframes clawhub-import-emoji-spin {
|
|
0% {
|
|
transform: translateZ(8px) rotateY(0deg);
|
|
}
|
|
12.49% {
|
|
transform: translateZ(8px) rotateY(-89deg);
|
|
}
|
|
12.5% {
|
|
transform: translateZ(8px) rotateY(-90deg);
|
|
}
|
|
25% {
|
|
transform: translateZ(8px) rotateY(-180deg);
|
|
}
|
|
37.49% {
|
|
transform: translateZ(8px) rotateY(-269deg);
|
|
}
|
|
37.5% {
|
|
transform: translateZ(8px) rotateY(-270deg);
|
|
}
|
|
50% {
|
|
transform: translateZ(8px) rotateY(-360deg);
|
|
}
|
|
62.49% {
|
|
transform: translateZ(8px) rotateY(-449deg);
|
|
}
|
|
62.5% {
|
|
transform: translateZ(8px) rotateY(-450deg);
|
|
}
|
|
75% {
|
|
transform: translateZ(8px) rotateY(-540deg);
|
|
}
|
|
87.49% {
|
|
transform: translateZ(8px) rotateY(-629deg);
|
|
}
|
|
87.5% {
|
|
transform: translateZ(8px) rotateY(-630deg);
|
|
}
|
|
100% {
|
|
transform: translateZ(8px) rotateY(-720deg);
|
|
}
|
|
}
|
|
|
|
@keyframes clawhub-import-emoji {
|
|
0%,
|
|
12.49% {
|
|
content: "🦑";
|
|
}
|
|
12.5%,
|
|
37.49% {
|
|
content: "🦞";
|
|
}
|
|
37.5%,
|
|
62.49% {
|
|
content: "🦐";
|
|
}
|
|
62.5%,
|
|
87.49% {
|
|
content: "🦀";
|
|
}
|
|
87.5%,
|
|
100% {
|
|
content: "🦑";
|
|
}
|
|
}
|
|
|
|
.github-import-review-card {
|
|
background: linear-gradient(
|
|
180deg,
|
|
color-mix(in srgb, var(--surface-muted) 72%, var(--surface)) 0%,
|
|
var(--surface) 46%,
|
|
color-mix(in srgb, var(--surface) 92%, var(--bg)) 100%
|
|
);
|
|
}
|
|
|
|
.github-import-success-panel {
|
|
position: relative;
|
|
border: 1px solid color-mix(in srgb, var(--status-success-fg) 6%, var(--line));
|
|
background:
|
|
radial-gradient(
|
|
circle at 88% 16%,
|
|
color-mix(in srgb, var(--status-success-fg) 5%, transparent),
|
|
transparent 42%
|
|
),
|
|
radial-gradient(
|
|
circle at 8% 76%,
|
|
color-mix(in srgb, var(--status-success-fg) 3%, transparent),
|
|
transparent 38%
|
|
),
|
|
linear-gradient(
|
|
180deg,
|
|
color-mix(in srgb, var(--surface-muted) 70%, transparent) 0%,
|
|
color-mix(in srgb, var(--surface) 96%, var(--bg)) 42%,
|
|
color-mix(in srgb, var(--surface) 72%, var(--bg)) 100%
|
|
);
|
|
box-shadow:
|
|
0 0 0 1px color-mix(in srgb, white 2%, transparent) inset,
|
|
0 16px 44px color-mix(in srgb, black 22%, transparent);
|
|
}
|
|
|
|
.github-import-success-panel::before {
|
|
position: absolute;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
content: "";
|
|
background: linear-gradient(
|
|
90deg,
|
|
transparent,
|
|
color-mix(in srgb, var(--status-success-fg) 8%, transparent),
|
|
transparent
|
|
);
|
|
height: 1px;
|
|
}
|
|
|
|
.github-import-success-mark {
|
|
color: color-mix(in srgb, var(--status-success-fg) 74%, var(--ink));
|
|
border: 1px solid color-mix(in srgb, var(--status-success-fg) 18%, var(--line));
|
|
background:
|
|
radial-gradient(
|
|
circle at 50% 42%,
|
|
color-mix(in srgb, var(--status-success-fg) 5%, transparent),
|
|
transparent 56%
|
|
),
|
|
color-mix(in srgb, var(--surface-muted) 86%, transparent);
|
|
box-shadow:
|
|
0 0 0 6px color-mix(in srgb, var(--status-success-fg) 1.5%, transparent),
|
|
0 10px 20px color-mix(in srgb, black 14%, transparent);
|
|
}
|
|
|
|
.github-import-publish-result-row {
|
|
display: flex;
|
|
gap: 12px;
|
|
padding: 16px 18px;
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.github-import-publish-result-row:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.github-import-input:focus,
|
|
.github-import-input:focus-visible {
|
|
border-color: var(--oc-input-focus-border) !important;
|
|
box-shadow: 0 0 0 3px var(--oc-input-focus-ring) !important;
|
|
outline: none !important;
|
|
}
|
|
|
|
.github-import-share-action,
|
|
.github-import-share-action:hover,
|
|
.github-import-share-action:focus-visible {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.github-import-share-action:hover,
|
|
.github-import-share-action:focus-visible {
|
|
background: color-mix(in srgb, white 4%, transparent);
|
|
}
|
|
|
|
@keyframes upload-decor-jiggle {
|
|
0%,
|
|
100% {
|
|
rotate: var(--upload-decor-base-rotate, 0deg);
|
|
}
|
|
25% {
|
|
rotate: calc(var(--upload-decor-base-rotate, 0deg) - 3deg);
|
|
}
|
|
50% {
|
|
rotate: calc(var(--upload-decor-base-rotate, 0deg) + 3deg);
|
|
}
|
|
75% {
|
|
rotate: calc(var(--upload-decor-base-rotate, 0deg) - 2deg);
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
*,
|
|
*::before,
|
|
*::after {
|
|
/* biome-ignore lint/complexity/noImportantStyles: reduce-motion override */
|
|
animation-duration: 0.01ms !important;
|
|
/* biome-ignore lint/complexity/noImportantStyles: reduce-motion override */
|
|
animation-iteration-count: 1 !important;
|
|
/* biome-ignore lint/complexity/noImportantStyles: reduce-motion override */
|
|
transition-duration: 0.01ms !important;
|
|
}
|
|
}
|
|
|
|
/* Dashboard styles */
|
|
.dashboard-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.dashboard-header h1 {
|
|
font-size: 1.5rem;
|
|
font-weight: 600;
|
|
margin: 0;
|
|
}
|
|
|
|
.dashboard-owner-panel {
|
|
padding: 20px;
|
|
}
|
|
|
|
.dashboard-owner-grid {
|
|
display: grid;
|
|
gap: 24px;
|
|
}
|
|
|
|
.dashboard-collection-block {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.dashboard-collection-title {
|
|
font-size: 1.6rem;
|
|
line-height: 1.1;
|
|
margin: 0;
|
|
}
|
|
|
|
.dashboard-section-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 12px;
|
|
}
|
|
|
|
.dashboard-section-action {
|
|
display: inline-flex;
|
|
width: fit-content;
|
|
margin-left: auto;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 6px;
|
|
font-size: 0.92rem;
|
|
line-height: 1;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dashboard-section-action svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
flex: none;
|
|
}
|
|
|
|
.dashboard-inline-empty {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
padding: 16px 18px;
|
|
border: 1px dashed var(--oc-border-subtle);
|
|
border-radius: var(--oc-radius-surface);
|
|
}
|
|
|
|
.dashboard-inline-empty-copy {
|
|
color: var(--oc-text-muted);
|
|
}
|
|
|
|
.dashboard-inline-empty-copy strong {
|
|
color: var(--oc-text-primary);
|
|
}
|
|
|
|
.dashboard-list {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 14px;
|
|
}
|
|
|
|
.dashboard-skill-name {
|
|
font-weight: 600;
|
|
font-size: 1rem;
|
|
line-height: 1.25;
|
|
color: var(--oc-text-primary);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.dashboard-skill-name:hover {
|
|
color: var(--oc-text-primary);
|
|
text-decoration: underline;
|
|
text-underline-offset: 2px;
|
|
}
|
|
|
|
.dashboard-status-chip {
|
|
gap: 6px;
|
|
min-width: 0;
|
|
width: fit-content;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dashboard-status-info {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 16px;
|
|
height: 16px;
|
|
border: 0;
|
|
border-radius: var(--radius-pill);
|
|
background: transparent;
|
|
color: currentColor;
|
|
cursor: default;
|
|
opacity: 0.78;
|
|
}
|
|
|
|
.dashboard-status-info:hover,
|
|
.dashboard-status-info:focus-visible {
|
|
opacity: 1;
|
|
background: color-mix(in srgb, currentColor 10%, transparent);
|
|
}
|
|
|
|
.dashboard-status-info:focus-visible {
|
|
outline: 2px solid var(--oc-focus-ring);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.dashboard-artifact-card {
|
|
position: relative;
|
|
display: grid;
|
|
gap: 14px;
|
|
padding: 18px;
|
|
border: 1px solid var(--oc-border-subtle);
|
|
border-radius: var(--oc-radius-surface);
|
|
background: linear-gradient(
|
|
135deg,
|
|
color-mix(in srgb, var(--surface) 96%, transparent),
|
|
color-mix(in srgb, var(--surface-muted) 82%, transparent)
|
|
);
|
|
box-shadow: var(--oc-shadow-md);
|
|
transition:
|
|
border-color var(--oc-duration-fast) var(--oc-ease-out),
|
|
transform var(--oc-duration-fast) var(--oc-ease-out),
|
|
box-shadow var(--oc-duration-fast) var(--oc-ease-out);
|
|
}
|
|
|
|
.dashboard-artifact-card:has(.dashboard-artifact-link:hover) {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.dashboard-artifact-card:hover {
|
|
border-color: color-mix(in srgb, var(--oc-accent-primary) 34%, var(--oc-border-subtle));
|
|
box-shadow: var(--oc-shadow-lg);
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.dashboard-artifact-link {
|
|
position: absolute;
|
|
inset: 0;
|
|
z-index: 1;
|
|
border-radius: inherit;
|
|
}
|
|
|
|
.dashboard-artifact-link:focus-visible {
|
|
outline: 2px solid var(--oc-focus-ring);
|
|
outline-offset: 4px;
|
|
}
|
|
|
|
.dashboard-artifact-card-body {
|
|
display: flex;
|
|
min-width: 0;
|
|
gap: 12px;
|
|
align-items: center;
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.dashboard-artifact-main {
|
|
display: flex;
|
|
min-width: 0;
|
|
gap: 12px;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.dashboard-artifact-icon {
|
|
display: inline-flex;
|
|
width: 42px;
|
|
height: 42px;
|
|
flex: none;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border: 1px solid var(--oc-border-subtle);
|
|
border-radius: var(--oc-radius-inset);
|
|
background: color-mix(in srgb, var(--surface-muted) 72%, transparent);
|
|
color: var(--oc-text-primary);
|
|
}
|
|
|
|
.dashboard-artifact-heading {
|
|
display: grid;
|
|
min-width: 0;
|
|
gap: 6px;
|
|
}
|
|
|
|
.dashboard-artifact-title-row {
|
|
display: flex;
|
|
min-width: 0;
|
|
align-items: center;
|
|
gap: 10px;
|
|
flex-wrap: wrap;
|
|
padding-right: 36px;
|
|
}
|
|
|
|
.dashboard-artifact-meta {
|
|
display: flex;
|
|
min-width: 0;
|
|
gap: 8px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
color: var(--oc-text-muted);
|
|
font-size: 0.82rem;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.dashboard-artifact-meta span {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dashboard-artifact-meta span:not(:last-child)::after {
|
|
content: "·";
|
|
margin-left: 8px;
|
|
color: color-mix(in srgb, var(--oc-text-muted) 60%, transparent);
|
|
}
|
|
|
|
.dashboard-artifact-summary {
|
|
margin: 0;
|
|
color: var(--oc-text-muted);
|
|
font-size: 0.94rem;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.dashboard-artifact-rescan {
|
|
margin-left: auto;
|
|
color: var(--oc-text-muted);
|
|
font-size: 0.82rem;
|
|
line-height: 1.2;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dashboard-scan-strip {
|
|
display: flex;
|
|
gap: 8px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.dashboard-scan-signal {
|
|
display: inline-flex;
|
|
min-height: 28px;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 5px 8px;
|
|
border: 1px solid var(--oc-border-subtle);
|
|
border-radius: var(--oc-radius-control);
|
|
color: var(--oc-text-muted);
|
|
font-size: 0.78rem;
|
|
line-height: 1;
|
|
}
|
|
|
|
.dashboard-scan-label {
|
|
color: var(--oc-text-primary);
|
|
font-weight: 650;
|
|
}
|
|
|
|
.dashboard-artifact-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: 8px;
|
|
margin: 0;
|
|
}
|
|
|
|
.dashboard-artifact-stat {
|
|
min-width: 0;
|
|
padding: 10px;
|
|
border: 1px solid var(--oc-border-subtle);
|
|
border-radius: var(--oc-radius-inset);
|
|
background: color-mix(in srgb, var(--surface) 70%, transparent);
|
|
}
|
|
|
|
.dashboard-artifact-stat dt {
|
|
color: var(--oc-text-muted);
|
|
font-size: 0.75rem;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.dashboard-artifact-stat dd {
|
|
margin: 4px 0 0;
|
|
color: var(--oc-text-primary);
|
|
font-size: 0.95rem;
|
|
font-weight: 650;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.dashboard-scan-result-kv {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
color: var(--oc-text-muted);
|
|
font-size: 0.82rem;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.dashboard-scan-result-value {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.dashboard-row-action {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
align-items: center;
|
|
min-width: 32px;
|
|
position: absolute;
|
|
top: 14px;
|
|
right: 14px;
|
|
z-index: 2;
|
|
}
|
|
|
|
.dashboard-row-action [data-slot="button"] {
|
|
width: 32px;
|
|
height: 32px;
|
|
min-height: 32px;
|
|
padding: 0;
|
|
}
|
|
|
|
.dashboard-row-action [data-slot="button"] svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.btn-sm {
|
|
padding: 6px 12px;
|
|
font-size: 0.85rem;
|
|
gap: 4px;
|
|
min-height: unset;
|
|
}
|
|
|
|
.btn-ghost {
|
|
background: transparent;
|
|
border-color: var(--border-ui);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.btn-ghost:hover {
|
|
background: color-mix(in srgb, var(--accent) 8%, transparent);
|
|
border-color: var(--border-ui-hover);
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
.dashboard-list {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (min-width: 1536px) {
|
|
.dashboard-list {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.dashboard-header,
|
|
.dashboard-section-header {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.dashboard-section-action {
|
|
justify-self: start;
|
|
}
|
|
|
|
.dashboard-inline-empty {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.dashboard-artifact-card {
|
|
gap: 10px;
|
|
padding: 14px;
|
|
}
|
|
|
|
.dashboard-artifact-stats {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.dashboard-artifact-title-row {
|
|
padding-right: 34px;
|
|
}
|
|
|
|
.dashboard-artifact-rescan {
|
|
width: 100%;
|
|
margin-left: 0;
|
|
}
|
|
|
|
.dashboard-owner-grid {
|
|
gap: 16px;
|
|
}
|
|
|
|
.dashboard-collection-title {
|
|
font-size: 1.3rem;
|
|
}
|
|
|
|
.skills-table-header {
|
|
display: none;
|
|
}
|
|
|
|
.skills-table-row {
|
|
grid-template-columns: 1fr;
|
|
gap: 4px;
|
|
padding: 14px 16px;
|
|
}
|
|
|
|
.skills-table-summary {
|
|
-webkit-line-clamp: 2;
|
|
}
|
|
|
|
.skills-table-author {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.management-shell {
|
|
display: grid;
|
|
grid-template-columns: 244px minmax(0, 1fr);
|
|
width: min(100%, 1800px);
|
|
margin: 0 auto;
|
|
padding: 0;
|
|
color: var(--ink);
|
|
/* Paint the sidebar rail + divider on the shell so they span the full
|
|
height down to the footer, even when the content column is short and the
|
|
sticky sidebar is shorter than the shell. */
|
|
background:
|
|
linear-gradient(var(--oc-bg-surface), var(--oc-bg-surface)) 0 0 / 244px 100% no-repeat,
|
|
linear-gradient(
|
|
color-mix(in srgb, var(--line) 72%, transparent),
|
|
color-mix(in srgb, var(--line) 72%, transparent)
|
|
)
|
|
244px 0 / 1px 100% no-repeat;
|
|
}
|
|
|
|
.management-sidebar {
|
|
position: sticky;
|
|
top: 0;
|
|
align-self: start;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
min-height: calc(100vh - 80px);
|
|
padding: 22px 12px 18px;
|
|
background: linear-gradient(
|
|
180deg,
|
|
color-mix(in srgb, var(--oc-text-primary) 2.5%, transparent),
|
|
transparent 28%
|
|
);
|
|
}
|
|
|
|
.management-sidebar nav {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.management-sidebar-heading,
|
|
.management-sidebar-section-title {
|
|
padding: 0 12px;
|
|
color: var(--ink-soft);
|
|
font-size: 0.72rem;
|
|
font-weight: 800;
|
|
letter-spacing: 0.04em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.management-sidebar-section-title {
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.management-sidebar-group {
|
|
display: grid;
|
|
gap: 5px;
|
|
}
|
|
|
|
.management-sidebar-link {
|
|
position: relative;
|
|
display: grid;
|
|
grid-template-columns: 18px minmax(0, 1fr) minmax(20px, auto);
|
|
align-items: center;
|
|
gap: 9px;
|
|
min-height: 44px;
|
|
padding: 9px 10px 9px 12px;
|
|
border: 1px solid transparent;
|
|
border-radius: var(--oc-radius-control);
|
|
color: var(--ink);
|
|
font-size: 0.86rem;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.management-sidebar-link:hover {
|
|
border-color: color-mix(in srgb, var(--line) 86%, transparent);
|
|
background: color-mix(in srgb, var(--surface) 70%, transparent);
|
|
}
|
|
|
|
.management-sidebar-link:focus-visible {
|
|
outline: 2px solid var(--oc-focus-ring);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.management-sidebar-link.is-active {
|
|
border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
|
|
background: color-mix(in srgb, var(--accent) 18%, transparent);
|
|
box-shadow: inset 3px 0 0 var(--accent);
|
|
}
|
|
|
|
.management-sidebar-link.is-active span {
|
|
color: var(--ink);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.management-sidebar-link svg {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.management-sidebar-link.is-active svg {
|
|
color: var(--accent);
|
|
}
|
|
|
|
.management-sidebar-link span {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.management-sidebar-link small {
|
|
min-width: 20px;
|
|
padding: 1px 6px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 86%, transparent);
|
|
border-radius: var(--oc-radius-control);
|
|
background: color-mix(in srgb, var(--surface) 68%, transparent);
|
|
color: var(--ink-soft);
|
|
font-size: 0.72rem;
|
|
text-align: center;
|
|
}
|
|
|
|
.management-main {
|
|
display: grid;
|
|
align-content: start;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
padding: 14px 12px 24px;
|
|
}
|
|
|
|
.management-breadcrumb {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 2px 2px 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.management-breadcrumb svg {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.management-breadcrumb strong {
|
|
color: var(--ink);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.management-placeholder {
|
|
min-height: 220px;
|
|
}
|
|
|
|
/* Management views render their title + content directly on the console (like the
|
|
abuse view) instead of inside an outer card. */
|
|
.management-view {
|
|
min-width: 0;
|
|
}
|
|
|
|
/* Publisher abuse review — native ClawHub styling (theme tokens + Card/Badge/Button). */
|
|
.pa {
|
|
display: grid;
|
|
gap: var(--space-4);
|
|
}
|
|
|
|
.pa-head {
|
|
display: grid;
|
|
gap: var(--space-4);
|
|
}
|
|
|
|
.pa-title {
|
|
margin: 0;
|
|
}
|
|
|
|
.pa-subtitle {
|
|
margin: 4px 0 0;
|
|
}
|
|
|
|
.pa-run {
|
|
display: grid;
|
|
grid-template-columns: minmax(140px, auto) minmax(140px, auto) 1fr auto;
|
|
align-items: stretch;
|
|
border: 1px solid var(--line);
|
|
background: color-mix(in srgb, var(--panel) 70%, transparent);
|
|
}
|
|
|
|
.pa-run-state,
|
|
.pa-run-meta,
|
|
.pa-scan-policy,
|
|
.pa-autoban,
|
|
.pa-rescan {
|
|
padding: var(--space-3) var(--space-4);
|
|
}
|
|
|
|
.pa-run-state {
|
|
display: grid;
|
|
align-content: center;
|
|
gap: 4px;
|
|
}
|
|
|
|
.pa-run-eyebrow,
|
|
.pa-run-meta dt {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
letter-spacing: 0.04em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.pa-run-status {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
font-size: var(--fs-md);
|
|
font-weight: 650;
|
|
}
|
|
|
|
.pa-run-status-dot {
|
|
width: 7px;
|
|
height: 7px;
|
|
border-radius: 999px;
|
|
background: var(--ink-soft);
|
|
}
|
|
|
|
.pa-run-status.is-complete {
|
|
color: var(--status-success-fg);
|
|
}
|
|
|
|
.pa-run-status.is-complete .pa-run-status-dot {
|
|
background: currentColor;
|
|
}
|
|
|
|
.pa-run-status.is-running {
|
|
color: var(--oc-status-warning-fg);
|
|
}
|
|
|
|
.pa-run-status.is-running .pa-run-status-dot {
|
|
background: currentColor;
|
|
box-shadow: 0 0 0 4px color-mix(in srgb, currentColor 14%, transparent);
|
|
}
|
|
|
|
.pa-run-status.is-failed {
|
|
color: var(--status-error-fg);
|
|
}
|
|
|
|
.pa-run-status.is-failed .pa-run-status-dot {
|
|
background: currentColor;
|
|
}
|
|
|
|
.pa-autoban {
|
|
display: grid;
|
|
align-content: center;
|
|
justify-items: start;
|
|
gap: 4px;
|
|
border-left: 1px solid var(--line);
|
|
}
|
|
|
|
.pa-autoban-status {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
color: var(--status-error-fg);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 650;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.pa-autoban-status.is-on {
|
|
color: var(--status-success-fg);
|
|
}
|
|
|
|
.pa-rescan {
|
|
display: grid;
|
|
align-content: center;
|
|
justify-items: start;
|
|
gap: 4px;
|
|
border-left: 1px solid var(--line);
|
|
}
|
|
|
|
.pa-rescan-hint {
|
|
font-size: var(--fs-xs);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.pa-run-meta {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-4);
|
|
margin: 0;
|
|
border-left: 1px solid var(--line);
|
|
}
|
|
|
|
.pa-run-meta > div {
|
|
display: grid;
|
|
gap: 2px;
|
|
}
|
|
|
|
.pa-run-meta dd {
|
|
margin: 0;
|
|
font-size: var(--fs-sm);
|
|
font-weight: 650;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.pa-scan-policy {
|
|
display: grid;
|
|
align-content: center;
|
|
gap: 2px;
|
|
border-left: 1px solid var(--line);
|
|
}
|
|
|
|
.pa-scan-policy strong {
|
|
font-size: var(--fs-sm);
|
|
font-weight: 650;
|
|
}
|
|
|
|
.pa-scan-policy span {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
}
|
|
|
|
.pa-scan-spin {
|
|
animation: pa-scan-spin 1.1s linear infinite;
|
|
}
|
|
|
|
@keyframes pa-scan-spin {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.pa-scan-spin {
|
|
animation: none;
|
|
}
|
|
}
|
|
|
|
.pa-scan-failure,
|
|
.pa-scan-retrying {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: var(--space-2);
|
|
padding: var(--space-3) var(--space-4);
|
|
border: 1px solid color-mix(in srgb, var(--status-error-fg) 30%, var(--line));
|
|
background: var(--status-error-bg);
|
|
color: var(--status-error-fg);
|
|
}
|
|
|
|
.pa-scan-failure > div,
|
|
.pa-scan-retrying > div {
|
|
display: grid;
|
|
gap: 2px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.pa-scan-failure span,
|
|
.pa-scan-retrying span {
|
|
overflow-wrap: anywhere;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.pa-scan-retrying {
|
|
border-color: color-mix(in srgb, var(--oc-status-warning-fg) 30%, var(--line));
|
|
background: var(--oc-status-warning-bg);
|
|
color: var(--oc-status-warning-fg);
|
|
}
|
|
|
|
.pa-tabs {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: var(--space-1);
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.pa-tab {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
margin-bottom: -1px;
|
|
padding: 8px 12px;
|
|
border: 0;
|
|
border-bottom: 2px solid transparent;
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
font-family: inherit;
|
|
font-size: var(--fs-sm);
|
|
font-weight: 600;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.pa-tab:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.pa-tab.is-active {
|
|
color: var(--ink);
|
|
border-bottom-color: var(--accent);
|
|
}
|
|
|
|
.pa-tab-count {
|
|
font-size: var(--fs-xs);
|
|
color: var(--ink-soft);
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
/* Loading placeholder for a count that hasn't resolved yet — a pulsing pill,
|
|
so an unloaded tab reads as "loading" rather than "0". */
|
|
.pa-count-loading {
|
|
display: inline-block;
|
|
width: 1.6em;
|
|
height: 0.85em;
|
|
border-radius: 999px;
|
|
background: color-mix(in srgb, var(--ink-soft) 30%, transparent);
|
|
vertical-align: baseline;
|
|
animation: pa-count-pulse 1.2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes pa-count-pulse {
|
|
0%,
|
|
100% {
|
|
opacity: 0.35;
|
|
}
|
|
50% {
|
|
opacity: 0.85;
|
|
}
|
|
}
|
|
|
|
.pa-tab.is-active .pa-tab-count {
|
|
color: var(--accent-deep);
|
|
}
|
|
|
|
.pa-queue {
|
|
min-width: 0;
|
|
gap: var(--space-3);
|
|
padding: var(--space-4);
|
|
}
|
|
|
|
.pa-search {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-height: 40px;
|
|
padding: 0 12px;
|
|
border: 1px solid var(--input-border);
|
|
border-radius: var(--r-md);
|
|
background: var(--input-bg);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.pa-search input {
|
|
flex: 1;
|
|
min-width: 0;
|
|
border: 0;
|
|
background: transparent;
|
|
color: var(--ink);
|
|
font: inherit;
|
|
outline: none;
|
|
}
|
|
|
|
.pa-signal-status-tabs {
|
|
display: inline-flex;
|
|
align-self: flex-start;
|
|
gap: 2px;
|
|
padding: 3px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
background: var(--surface);
|
|
}
|
|
|
|
.pa-signal-status-tabs button {
|
|
min-height: 30px;
|
|
padding: 0 10px;
|
|
border: 0;
|
|
border-radius: calc(var(--r-md) - 3px);
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
font: inherit;
|
|
font-size: var(--fs-sm);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.pa-signal-status-tabs button:hover,
|
|
.pa-signal-status-tabs button.active {
|
|
background: var(--hover-bg);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.pa-signal-bulk-bar {
|
|
display: flex;
|
|
min-height: 42px;
|
|
margin: 0 calc(-1 * var(--space-4));
|
|
padding: 6px var(--space-4);
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: var(--space-3);
|
|
border-top: 1px solid var(--oc-border-subtle);
|
|
border-bottom: 1px solid var(--oc-border-subtle);
|
|
background: color-mix(in srgb, var(--oc-bg-surface) 78%, var(--oc-bg-page));
|
|
}
|
|
|
|
.pa-signal-bulk-count {
|
|
color: var(--oc-text-secondary);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 650;
|
|
font-variant-numeric: tabular-nums;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.pa-signal-bulk-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 6px;
|
|
}
|
|
|
|
.pa-table-wrap {
|
|
min-width: 0;
|
|
margin: 0 calc(-1 * var(--space-4));
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.pa-table {
|
|
width: 100%;
|
|
min-width: 540px;
|
|
border-collapse: collapse;
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.pa-table th {
|
|
padding: 8px var(--space-4);
|
|
border-bottom: 1px solid var(--line);
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
letter-spacing: 0.03em;
|
|
text-align: left;
|
|
text-transform: uppercase;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.pa-table td {
|
|
padding: 10px var(--space-4);
|
|
border-bottom: 1px solid var(--line);
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.pa-table tbody tr:last-child td {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.pa-table tbody tr {
|
|
cursor: pointer;
|
|
transition: background 120ms ease;
|
|
}
|
|
|
|
.pa-table tbody tr:hover {
|
|
background: var(--hover-bg);
|
|
}
|
|
|
|
.pa-table tbody tr.pa-skeleton-row {
|
|
cursor: default;
|
|
}
|
|
|
|
.pa-table tbody tr.pa-skeleton-row:hover {
|
|
background: transparent;
|
|
}
|
|
|
|
.pa-table-skeleton-bar {
|
|
display: block;
|
|
max-width: 100%;
|
|
height: 14px;
|
|
border-radius: 4px;
|
|
background: linear-gradient(
|
|
90deg,
|
|
color-mix(in srgb, var(--line) 70%, transparent),
|
|
color-mix(in srgb, var(--ink-soft) 18%, transparent),
|
|
color-mix(in srgb, var(--line) 70%, transparent)
|
|
);
|
|
background-size: 220% 100%;
|
|
animation: skeleton-shimmer 1.15s ease-in-out infinite;
|
|
}
|
|
|
|
.pa-table tbody tr.is-selected {
|
|
background: var(--accent-subtle);
|
|
}
|
|
|
|
.pa-table tbody tr.is-selected td:first-child {
|
|
box-shadow: inset 2px 0 0 var(--accent);
|
|
}
|
|
|
|
.pa-signals-table {
|
|
min-width: 680px;
|
|
}
|
|
|
|
.pa-signals-table tbody tr {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.pa-signals-table tbody tr:hover {
|
|
background: var(--hover-bg);
|
|
}
|
|
|
|
.pa-signals-table tbody tr.is-bulk-selected {
|
|
background: color-mix(in srgb, var(--oc-accent-primary) 9%, transparent);
|
|
}
|
|
|
|
.pa-signals-table .pa-signal-select-cell {
|
|
width: 42px;
|
|
padding-right: 0;
|
|
text-align: center;
|
|
}
|
|
|
|
.pa-signal-select-cell input[type="checkbox"] {
|
|
appearance: none;
|
|
width: 16px;
|
|
height: 16px;
|
|
margin: 0;
|
|
border: 1px solid var(--oc-border-subtle);
|
|
border-radius: var(--oc-radius-inset);
|
|
background-color: var(--oc-bg-surface);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.pa-signal-select-cell input[type="checkbox"]:checked {
|
|
border-color: var(--oc-accent-primary);
|
|
background-color: var(--oc-accent-primary);
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8 3 3 6-6' fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'/%3E%3C/svg%3E");
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
background-size: 14px;
|
|
}
|
|
|
|
.pa-signal-select-cell input[type="checkbox"]:disabled {
|
|
cursor: not-allowed;
|
|
opacity: 0.45;
|
|
}
|
|
|
|
.pa-signal-select-cell input[type="checkbox"]:focus-visible {
|
|
outline: 2px solid var(--oc-focus-ring);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.pa-num {
|
|
text-align: right;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.pa-muted {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.pa-signal-repeat,
|
|
.pa-ratio-subtext {
|
|
display: block;
|
|
margin-top: 3px;
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-xs);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.pa-signal-repeat.is-recurring {
|
|
color: var(--oc-status-warning-fg);
|
|
font-family: inherit;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.pa-signal-name {
|
|
font-weight: 600;
|
|
}
|
|
|
|
.pa-signal-summary {
|
|
display: grid;
|
|
gap: 3px;
|
|
}
|
|
|
|
.pa-signal-summary span {
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-xs);
|
|
}
|
|
|
|
.pa-signal-subject {
|
|
display: grid;
|
|
gap: 2px;
|
|
}
|
|
|
|
.pa-signal-subject strong {
|
|
font-weight: 600;
|
|
}
|
|
|
|
.pa-signal-subject span {
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-xs);
|
|
}
|
|
|
|
.pa-handle {
|
|
display: grid;
|
|
gap: 2px;
|
|
}
|
|
|
|
.pa-row-button {
|
|
width: 100%;
|
|
border: 0;
|
|
background: transparent;
|
|
color: inherit;
|
|
cursor: pointer;
|
|
font: inherit;
|
|
padding: 0;
|
|
text-align: left;
|
|
}
|
|
|
|
.pa-row-button:focus-visible {
|
|
border-radius: 6px;
|
|
outline: 2px solid var(--accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.pa-handle strong {
|
|
font-weight: 600;
|
|
}
|
|
|
|
.pa-handle span {
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-xs);
|
|
}
|
|
|
|
.pa-reasons {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 4px;
|
|
}
|
|
|
|
.pa-z-danger {
|
|
color: var(--status-error-fg);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.pa-z-warn {
|
|
color: var(--status-warning-fg);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.pa-z-ok {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.pa-foot {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.pa-empty-row td {
|
|
padding: var(--space-7) var(--space-4);
|
|
color: var(--ink-soft);
|
|
text-align: center;
|
|
}
|
|
|
|
.pa-empty-row strong {
|
|
display: block;
|
|
margin-bottom: 4px;
|
|
color: var(--ink);
|
|
font-size: var(--fs-md);
|
|
}
|
|
|
|
.pa-sheet {
|
|
width: 600px;
|
|
max-width: 92vw;
|
|
}
|
|
|
|
.pa-sheet-head {
|
|
gap: var(--space-2);
|
|
padding-right: var(--space-6);
|
|
}
|
|
|
|
.pa-sheet-body {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-4);
|
|
min-height: 0;
|
|
overflow-y: auto;
|
|
/* Reserve the scrollbar gutter so it never overlaps the content. */
|
|
scrollbar-gutter: stable;
|
|
padding-right: var(--space-2);
|
|
}
|
|
|
|
.pa-pills {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
}
|
|
|
|
/* Compact identity line under the header pills — demoted technical detail. */
|
|
.pa-idline {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: baseline;
|
|
gap: 4px var(--space-4);
|
|
}
|
|
|
|
.pa-id {
|
|
display: inline-flex;
|
|
align-items: baseline;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.pa-id-label {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
}
|
|
|
|
.pa-id button {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
min-width: 0;
|
|
padding: 0;
|
|
border: 0;
|
|
background: transparent;
|
|
color: var(--ink);
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-xs);
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.pa-id button:hover {
|
|
color: var(--accent-deep);
|
|
}
|
|
|
|
.pa-profile-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
color: var(--accent-deep);
|
|
font-size: var(--fs-xs);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.pa-profile-link:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
/* Calm zones: one hairline between major groups, none within. */
|
|
.pa-zone {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.pa-sheet-body > .pa-zone {
|
|
padding-top: var(--space-4);
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.pa-score {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
flex-shrink: 0;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
overflow: hidden;
|
|
background: var(--surface-muted);
|
|
}
|
|
|
|
.pa-score > div {
|
|
display: grid;
|
|
gap: 4px;
|
|
padding: var(--space-3);
|
|
border-left: 1px solid var(--line);
|
|
}
|
|
|
|
.pa-score > div:first-child {
|
|
border-left: 0;
|
|
}
|
|
|
|
.pa-score span {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
letter-spacing: 0.04em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.pa-score strong {
|
|
font-size: var(--fs-lg);
|
|
font-weight: 700;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.pa-score small {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
}
|
|
|
|
.pa-metrics {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 2px var(--space-5);
|
|
}
|
|
|
|
/* Per-skill ratios read as a distinct group via spacing, not another label. */
|
|
.pa-metrics-ratios {
|
|
margin-top: var(--space-3);
|
|
}
|
|
|
|
.pa-metric {
|
|
display: flex;
|
|
align-items: baseline;
|
|
justify-content: space-between;
|
|
gap: var(--space-2);
|
|
min-width: 0;
|
|
padding: 3px 0;
|
|
}
|
|
|
|
.pa-metric > * {
|
|
min-width: 0;
|
|
}
|
|
|
|
.pa-metric span {
|
|
flex-shrink: 0;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.pa-metric strong {
|
|
font-size: var(--fs-sm);
|
|
font-weight: 600;
|
|
font-variant-numeric: tabular-nums;
|
|
overflow-wrap: anywhere;
|
|
text-align: right;
|
|
}
|
|
|
|
.pa-metric small {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
line-height: 1.35;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.pa-signal-evidence-grid {
|
|
grid-template-columns: 1fr;
|
|
gap: 4px;
|
|
}
|
|
|
|
.pa-signal-evidence-grid .pa-metric {
|
|
display: grid;
|
|
grid-template-columns: minmax(58px, 0.5fr) minmax(56px, auto) minmax(0, 1fr);
|
|
align-items: baseline;
|
|
column-gap: var(--space-2);
|
|
}
|
|
|
|
.pa-signal-evidence-grid .pa-metric strong {
|
|
text-align: right;
|
|
}
|
|
|
|
.pa-signal-trends {
|
|
display: grid;
|
|
gap: var(--space-4);
|
|
padding-top: var(--space-2);
|
|
}
|
|
|
|
.pa-signal-trend {
|
|
display: grid;
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
.pa-signal-trend + .pa-signal-trend {
|
|
padding-top: var(--space-3);
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.pa-signal-trend-label {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.pa-signal-trend-installs {
|
|
--metric-trend-line: color-mix(in srgb, var(--status-success-fg) 76%, var(--ink));
|
|
--metric-trend-area: color-mix(in srgb, var(--status-success-fg) 18%, transparent);
|
|
--metric-trend-marker: color-mix(in srgb, var(--status-success-fg) 36%, transparent);
|
|
}
|
|
|
|
.pa-section-label {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
letter-spacing: 0.04em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.pa-subsection-label {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.pa-reason-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.pa-reason {
|
|
display: grid;
|
|
gap: 2px;
|
|
}
|
|
|
|
.pa-reason strong {
|
|
font-size: var(--fs-sm);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.pa-reason small {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.pa-activity-evidence {
|
|
display: grid;
|
|
gap: var(--space-3);
|
|
margin-top: var(--space-3);
|
|
padding-top: var(--space-3);
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.pa-temporal-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.pa-temporal-card {
|
|
display: grid;
|
|
gap: var(--space-3);
|
|
padding: var(--space-3);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
background: var(--surface-muted);
|
|
}
|
|
|
|
.pa-temporal-head {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.pa-temporal-head > div:first-child {
|
|
display: grid;
|
|
gap: 2px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.pa-temporal-head strong {
|
|
overflow: hidden;
|
|
font-size: var(--fs-sm);
|
|
font-weight: 600;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.pa-temporal-head small {
|
|
overflow: hidden;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.pa-temporal-badges {
|
|
display: flex;
|
|
flex-shrink: 0;
|
|
flex-wrap: wrap;
|
|
justify-content: flex-end;
|
|
gap: 4px;
|
|
}
|
|
|
|
.pa-temporal-metrics {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 2px var(--space-4);
|
|
}
|
|
|
|
.pa-history {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
.pa-history-item {
|
|
display: flex;
|
|
align-items: baseline;
|
|
justify-content: space-between;
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
.pa-history-item span {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
}
|
|
|
|
.pa-history-item strong {
|
|
font-size: var(--fs-sm);
|
|
font-weight: 600;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.pa-ban {
|
|
width: 100%;
|
|
}
|
|
|
|
.pa-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
.pa-hint {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
}
|
|
|
|
@media (max-width: 980px) {
|
|
.management-shell {
|
|
grid-template-columns: 1fr;
|
|
background: none;
|
|
}
|
|
|
|
.management-sidebar {
|
|
position: static;
|
|
min-height: 0;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
|
|
}
|
|
|
|
.management-sidebar nav {
|
|
gap: 10px;
|
|
}
|
|
|
|
.management-sidebar-group {
|
|
grid-template-columns: repeat(auto-fit, minmax(176px, 1fr));
|
|
}
|
|
|
|
.pa-run {
|
|
grid-template-columns: 1fr 1fr;
|
|
}
|
|
|
|
.pa-scan-policy,
|
|
.pa-autoban {
|
|
border-top: 1px solid var(--line);
|
|
border-left: 0;
|
|
}
|
|
|
|
.pa-rescan {
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 720px) {
|
|
.management-main {
|
|
padding: 10px;
|
|
}
|
|
|
|
.pa-run {
|
|
grid-template-columns: 1fr;
|
|
width: 100%;
|
|
}
|
|
|
|
.pa-run-meta,
|
|
.pa-scan-policy,
|
|
.pa-autoban,
|
|
.pa-rescan {
|
|
border-top: 1px solid var(--line);
|
|
border-left: 0;
|
|
}
|
|
|
|
.pa-rescan [data-slot="button"] {
|
|
width: 100%;
|
|
}
|
|
|
|
.pa-score,
|
|
.pa-metrics {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.pa-signal-evidence-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.pa-signal-bulk-bar {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.pa-signal-bulk-actions {
|
|
width: 100%;
|
|
justify-content: flex-start;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.pa-score > div {
|
|
border-left: 0;
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.pa-score > div:first-child {
|
|
border-top: 0;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.management-sidebar-group {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
/* Match the publisher-abuse console: one bordered panel with dense,
|
|
divided rows instead of floating cards. */
|
|
.management-list {
|
|
display: grid;
|
|
gap: 0;
|
|
margin-top: 12px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
background: var(--surface);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.management-item {
|
|
display: grid;
|
|
gap: 12px;
|
|
padding: 10px 14px;
|
|
border-bottom: 1px solid var(--line);
|
|
background: transparent;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
transition: background 120ms ease;
|
|
}
|
|
|
|
.management-item:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.management-item:hover {
|
|
background: var(--hover-bg);
|
|
}
|
|
|
|
/* Duplicate-candidate row: a single-column stack (skill header + indented
|
|
matches) instead of the 2-column grid, so action buttons don't float. */
|
|
.management-dupe {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 12px;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.management-dupe:hover {
|
|
background: transparent;
|
|
}
|
|
|
|
.management-dupe-head,
|
|
.management-dupe-match {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 12px;
|
|
}
|
|
|
|
.management-dupe-matches {
|
|
display: grid;
|
|
gap: 8px;
|
|
padding-left: 12px;
|
|
border-left: 1px solid var(--line);
|
|
}
|
|
|
|
.management-dupe-label {
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
letter-spacing: 0.04em;
|
|
text-transform: uppercase;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.management-fingerprint {
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-xs);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.management-empty {
|
|
padding: var(--space-7) var(--space-4);
|
|
text-align: center;
|
|
color: var(--ink-soft);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.management-empty strong {
|
|
display: block;
|
|
margin-bottom: 4px;
|
|
color: var(--ink);
|
|
font-size: var(--fs-md);
|
|
}
|
|
|
|
.management-confirm-field {
|
|
display: grid;
|
|
gap: 6px;
|
|
font-size: 0.85rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.management-item-detail {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
align-items: start;
|
|
}
|
|
|
|
.management-item-main {
|
|
display: grid;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.management-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.management-tags {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
}
|
|
|
|
.management-controls {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
align-items: center;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
/* Management promotions form */
|
|
.promotion-form-grid {
|
|
display: grid;
|
|
gap: 16px;
|
|
margin-top: 12px;
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
@media (min-width: 900px) {
|
|
.promotion-form-grid {
|
|
grid-template-columns: repeat(3, 1fr);
|
|
}
|
|
}
|
|
|
|
.promotion-form-field {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
align-self: start;
|
|
}
|
|
|
|
.promotion-form-field-wide {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.promotion-form-hint {
|
|
margin: 0;
|
|
font-size: 12px;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.management-control {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
align-items: center;
|
|
}
|
|
|
|
.management-control-stack {
|
|
display: grid;
|
|
gap: 6px;
|
|
align-items: stretch;
|
|
min-width: 0;
|
|
}
|
|
|
|
.management-control .mono {
|
|
font-size: 12px;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.management-control input,
|
|
.management-control select {
|
|
min-width: min(180px, 100%);
|
|
}
|
|
|
|
.management-control-stack input,
|
|
.management-control-stack select {
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
/* Search control styled as the abuse console's bordered search pill. */
|
|
.management-control.management-search {
|
|
flex: 1;
|
|
flex-wrap: nowrap;
|
|
min-width: min(280px, 100%);
|
|
min-height: 40px;
|
|
gap: 8px;
|
|
padding: 0 12px;
|
|
border: 1px solid var(--input-border);
|
|
border-radius: var(--r-md);
|
|
background: var(--input-bg);
|
|
}
|
|
|
|
.management-search input {
|
|
flex: 1;
|
|
min-width: 0;
|
|
border: 0;
|
|
background: transparent;
|
|
color: var(--ink);
|
|
font: inherit;
|
|
outline: none;
|
|
}
|
|
|
|
.management-count {
|
|
margin-left: auto;
|
|
font-size: 0.85rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.management-sublist {
|
|
display: grid;
|
|
gap: 8px;
|
|
margin-top: 10px;
|
|
padding-left: 12px;
|
|
border-left: 1px solid var(--line);
|
|
}
|
|
|
|
.management-override-panel {
|
|
display: grid;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
padding: 14px;
|
|
border-radius: var(--oc-radius-surface);
|
|
border: 1px solid var(--line);
|
|
background: color-mix(in srgb, var(--surface) 72%, transparent);
|
|
}
|
|
|
|
.management-audit-panel {
|
|
gap: 10px;
|
|
}
|
|
|
|
.management-audit-list {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.management-audit-item {
|
|
display: grid;
|
|
gap: 8px;
|
|
padding-top: 10px;
|
|
border-top: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
|
|
}
|
|
|
|
.management-audit-item:first-child {
|
|
padding-top: 0;
|
|
border-top: 0;
|
|
}
|
|
|
|
.management-audit-summary {
|
|
margin: 0;
|
|
}
|
|
|
|
.management-audit-details {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.management-audit-details summary {
|
|
cursor: pointer;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.management-audit-json {
|
|
margin: 8px 0 0;
|
|
padding: 10px 12px;
|
|
overflow-x: auto;
|
|
border-radius: var(--oc-radius-inset);
|
|
border: 1px solid var(--line);
|
|
background: var(--oc-bg-surface);
|
|
color: var(--ink);
|
|
font-size: 0.78rem;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.management-tool-grid {
|
|
display: grid;
|
|
gap: 12px;
|
|
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
|
align-items: end;
|
|
}
|
|
|
|
.management-field {
|
|
width: 100%;
|
|
min-width: 0;
|
|
min-height: 44px;
|
|
box-sizing: border-box;
|
|
border: 1px solid var(--oc-input-border);
|
|
border-radius: var(--oc-radius-control);
|
|
padding: 10px 12px;
|
|
color: var(--ink);
|
|
background: var(--oc-input-bg);
|
|
}
|
|
|
|
.management-field:focus {
|
|
outline: none;
|
|
border-color: var(--oc-input-focus-border);
|
|
box-shadow: 0 0 0 3px var(--oc-input-focus-ring);
|
|
}
|
|
|
|
.management-action-grid {
|
|
display: grid;
|
|
gap: 10px;
|
|
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
|
|
justify-content: stretch;
|
|
}
|
|
|
|
.management-action-btn {
|
|
justify-content: center;
|
|
min-height: 42px;
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.management-textarea {
|
|
min-height: 104px;
|
|
resize: vertical;
|
|
}
|
|
|
|
.management-actions-start {
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.management-subitem {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.management-report-item {
|
|
display: grid;
|
|
gap: 4px;
|
|
font-size: 0.95rem;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.management-report-meta {
|
|
font-size: 0.8rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.management-item-meta {
|
|
font-size: 0.82rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.management-item.is-removed {
|
|
border-left: 3px solid color-mix(in srgb, var(--status-error-fg) 70%, var(--line));
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.management-item {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.management-actions {
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.management-subitem {
|
|
justify-content: flex-start;
|
|
}
|
|
}
|
|
|
|
/* Security Scan Results */
|
|
.scan-results-panel {
|
|
margin-top: 16px;
|
|
padding: 14px 16px;
|
|
border-radius: var(--oc-radius-surface);
|
|
border: 1px solid var(--line);
|
|
background: var(--oc-surface-card);
|
|
text-align: left;
|
|
}
|
|
|
|
.scan-results-title {
|
|
font-size: 0.72rem;
|
|
font-weight: 700;
|
|
color: var(--ink-soft);
|
|
margin-bottom: 10px;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.06em;
|
|
}
|
|
|
|
.scan-results-list {
|
|
display: grid;
|
|
gap: 0;
|
|
}
|
|
|
|
.scan-result-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(120px, auto) auto 1fr;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 8px 0;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 50%, transparent);
|
|
}
|
|
|
|
.scan-result-row:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.scan-result-row:first-child {
|
|
padding-top: 0;
|
|
}
|
|
|
|
.scan-result-scanner {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
font-weight: 600;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.scan-result-icon {
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.scan-result-icon-vt {
|
|
color: var(--accent-deep);
|
|
}
|
|
|
|
.scan-result-icon-oc {
|
|
color: var(--accent);
|
|
}
|
|
|
|
.scan-result-status {
|
|
padding: 2px 10px;
|
|
border-radius: var(--r-pill);
|
|
font-size: 0.78rem;
|
|
font-weight: 600;
|
|
text-transform: capitalize;
|
|
}
|
|
|
|
.scan-status-clean {
|
|
background: var(--oc-status-success-bg);
|
|
color: var(--oc-status-success-fg);
|
|
}
|
|
|
|
.scan-status-malicious {
|
|
background: var(--oc-status-error-bg);
|
|
color: var(--oc-status-error-fg);
|
|
}
|
|
|
|
.scan-status-warn,
|
|
.scan-status-suspicious {
|
|
background: var(--status-warning-bg);
|
|
color: var(--status-warning-fg);
|
|
}
|
|
|
|
.scan-status-pending {
|
|
background: var(--status-pending-bg);
|
|
color: var(--status-pending-fg);
|
|
}
|
|
|
|
.scan-status-error {
|
|
background: var(--oc-status-error-bg);
|
|
color: var(--oc-status-error-fg);
|
|
}
|
|
|
|
.scan-result-link {
|
|
font-size: 0.82rem;
|
|
color: var(--accent);
|
|
text-decoration: none;
|
|
justify-self: end;
|
|
}
|
|
|
|
.scan-result-link:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.version-scan-results {
|
|
display: flex;
|
|
gap: 8px;
|
|
margin-top: 4px;
|
|
}
|
|
|
|
.version-scan-toggle {
|
|
border: 1px solid var(--line);
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
border-radius: var(--r-pill);
|
|
padding: 2px 8px;
|
|
font-size: 0.75rem;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.version-scan-toggle:hover {
|
|
color: var(--accent);
|
|
border-color: var(--accent);
|
|
}
|
|
|
|
.version-scan-badge {
|
|
display: inline-flex;
|
|
flex: 0 0 auto;
|
|
align-items: center;
|
|
gap: 4px;
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
.version-scan-badge-row {
|
|
display: inline-flex;
|
|
flex-wrap: nowrap;
|
|
align-items: center;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.version-scan-badge .scan-result-status {
|
|
padding: 1px 6px;
|
|
font-size: 0.7rem;
|
|
}
|
|
|
|
.version-scan-icon {
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.version-scan-icon-vt {
|
|
color: var(--accent-deep);
|
|
}
|
|
|
|
.version-scan-icon-oc {
|
|
color: var(--accent);
|
|
}
|
|
|
|
.version-scan-link {
|
|
color: var(--ink-soft);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.version-scan-link:hover {
|
|
color: var(--accent);
|
|
}
|
|
|
|
.scan-disclaimer {
|
|
font-size: 0.8rem;
|
|
color: var(--ink-soft);
|
|
opacity: 0.8;
|
|
margin: 8px 0 0;
|
|
font-style: italic;
|
|
}
|
|
|
|
/* LLM Analysis Detail */
|
|
.analysis-detail {
|
|
margin-top: 10px;
|
|
border-radius: 12px;
|
|
overflow: hidden;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.analysis-detail-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
padding: 10px 14px;
|
|
cursor: pointer;
|
|
user-select: text;
|
|
border-radius: 12px;
|
|
transition: background 0.15s ease;
|
|
}
|
|
|
|
.analysis-detail-header:hover {
|
|
background: rgba(0, 0, 0, 0.03);
|
|
}
|
|
|
|
.analysis-detail-toggle {
|
|
font-size: 0.82rem;
|
|
color: var(--accent);
|
|
font-weight: 600;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
white-space: nowrap;
|
|
user-select: none;
|
|
}
|
|
|
|
.analysis-detail-toggle .chevron {
|
|
transition: transform 0.2s;
|
|
}
|
|
|
|
.analysis-detail.is-open .analysis-detail-toggle .chevron {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
.analysis-summary-text {
|
|
font-size: 0.86rem;
|
|
color: var(--ink-soft);
|
|
line-height: 1.5;
|
|
flex: 1;
|
|
min-width: 0;
|
|
cursor: text;
|
|
user-select: text;
|
|
text-align: left;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.analysis-body {
|
|
display: none;
|
|
padding: 0 14px 14px;
|
|
}
|
|
|
|
.analysis-detail.is-open .analysis-body {
|
|
display: block;
|
|
}
|
|
|
|
.analysis-dimensions {
|
|
display: grid;
|
|
gap: 8px;
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.dimension-row {
|
|
display: grid;
|
|
grid-template-columns: 20px 1fr;
|
|
gap: 10px;
|
|
padding: 10px 12px;
|
|
border-radius: 10px;
|
|
border: 1px solid var(--line);
|
|
background: var(--surface-muted);
|
|
align-items: start;
|
|
}
|
|
|
|
.dimension-icon {
|
|
width: 20px;
|
|
height: 20px;
|
|
border-radius: 50%;
|
|
display: grid;
|
|
place-items: center;
|
|
font-size: 0.65rem;
|
|
font-weight: 700;
|
|
flex-shrink: 0;
|
|
margin-top: 1px;
|
|
}
|
|
|
|
.dimension-icon-ok {
|
|
background: var(--oc-status-success-bg);
|
|
color: var(--oc-status-success-fg);
|
|
}
|
|
|
|
.dimension-icon-note {
|
|
background: var(--oc-surface-interactive);
|
|
color: var(--oc-text-muted);
|
|
}
|
|
|
|
.dimension-icon-concern {
|
|
background: var(--oc-status-warning-bg);
|
|
color: var(--oc-status-warning-fg);
|
|
}
|
|
|
|
.dimension-icon-danger {
|
|
background: var(--oc-status-error-bg);
|
|
color: var(--oc-status-error-fg);
|
|
}
|
|
|
|
.dimension-content {
|
|
min-width: 0;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.dimension-label {
|
|
font-size: 0.78rem;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.04em;
|
|
color: var(--ink);
|
|
margin-bottom: 3px;
|
|
}
|
|
|
|
.dimension-detail {
|
|
font-size: 0.84rem;
|
|
color: var(--ink-soft);
|
|
line-height: 1.5;
|
|
overflow-wrap: anywhere;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.dimension-detail code {
|
|
font-size: 0.78rem;
|
|
background: rgba(0, 0, 0, 0.06);
|
|
padding: 1px 5px;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
/* Analysis guidance panel */
|
|
.analysis-guidance {
|
|
margin-top: 12px;
|
|
padding: 10px 14px;
|
|
border-radius: 10px;
|
|
font-size: 0.84rem;
|
|
line-height: 1.55;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.analysis-guidance.benign {
|
|
background: var(--oc-status-success-bg);
|
|
border-left: 3px solid var(--oc-status-success-fg);
|
|
}
|
|
|
|
.analysis-guidance.suspicious {
|
|
background: var(--oc-status-warning-bg);
|
|
border-left: 3px solid var(--oc-status-warning-fg);
|
|
}
|
|
|
|
.analysis-guidance.malicious {
|
|
background: var(--oc-status-error-bg);
|
|
border-left: 3px solid var(--oc-status-error-fg);
|
|
}
|
|
|
|
.analysis-guidance-label {
|
|
font-size: 0.68rem;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.analysis-guidance.benign .analysis-guidance-label {
|
|
color: var(--oc-status-success-fg);
|
|
}
|
|
|
|
.analysis-guidance.suspicious .analysis-guidance-label {
|
|
color: var(--oc-status-warning-fg);
|
|
}
|
|
|
|
.analysis-guidance.malicious .analysis-guidance-label {
|
|
color: var(--oc-status-error-fg);
|
|
}
|
|
|
|
/* Scan findings section */
|
|
.scan-findings-section {
|
|
margin-top: 10px;
|
|
padding: 10px 14px;
|
|
border-radius: 10px;
|
|
background: var(--surface-muted);
|
|
border: 1px solid var(--line);
|
|
}
|
|
|
|
.scan-findings-title {
|
|
margin: 0 0 6px;
|
|
font-size: 0.72rem;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.06em;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.scan-finding-row {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 8px;
|
|
font-size: 0.82rem;
|
|
color: var(--ink-soft);
|
|
padding: 4px 0;
|
|
}
|
|
|
|
.clawscan-risk-review {
|
|
display: grid;
|
|
gap: 12px;
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.clawscan-scope-note {
|
|
margin: 0;
|
|
font-size: 0.82rem;
|
|
line-height: 1.5;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.clawscan-risk-buckets {
|
|
display: grid;
|
|
gap: 10px;
|
|
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
|
}
|
|
|
|
.clawscan-risk-bucket,
|
|
.agentic-risk-finding {
|
|
min-width: 0;
|
|
border: 1px solid var(--line);
|
|
border-radius: 10px;
|
|
background: var(--surface-muted);
|
|
}
|
|
|
|
.clawscan-risk-bucket {
|
|
display: grid;
|
|
gap: 7px;
|
|
padding: 10px 12px;
|
|
}
|
|
|
|
.clawscan-risk-bucket-header,
|
|
.agentic-risk-finding-header {
|
|
display: grid;
|
|
min-width: 0;
|
|
gap: 14px;
|
|
}
|
|
|
|
.clawscan-risk-bucket-label {
|
|
min-width: 0;
|
|
font-size: 0.84rem;
|
|
font-weight: 700;
|
|
line-height: 1.35;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.agentic-risk-finding-title {
|
|
min-width: 0;
|
|
width: fit-content;
|
|
max-width: 100%;
|
|
font-size: 1rem;
|
|
font-weight: 750;
|
|
line-height: 1.25;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.agentic-risk-finding-title-row {
|
|
position: relative;
|
|
display: inline-flex;
|
|
align-items: baseline;
|
|
width: fit-content;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.agentic-risk-finding-anchor {
|
|
position: absolute;
|
|
right: calc(100% + 8px);
|
|
top: 0.15em;
|
|
color: color-mix(in srgb, var(--ink-soft) 58%, transparent);
|
|
font-size: 0.95rem;
|
|
font-weight: 750;
|
|
line-height: 1;
|
|
opacity: 0;
|
|
text-decoration: none;
|
|
transition:
|
|
color 0.15s ease,
|
|
opacity 0.15s ease;
|
|
}
|
|
|
|
.agentic-risk-finding-title-row:hover .agentic-risk-finding-anchor,
|
|
.agentic-risk-finding-title-row:focus-within .agentic-risk-finding-anchor {
|
|
opacity: 1;
|
|
}
|
|
|
|
.agentic-risk-finding-anchor:hover,
|
|
.agentic-risk-finding-anchor:focus-visible {
|
|
color: var(--accent);
|
|
}
|
|
|
|
.agentic-risk-finding {
|
|
scroll-margin-top: 132px;
|
|
}
|
|
|
|
a.agentic-risk-finding-title {
|
|
color: inherit;
|
|
text-decoration: underline;
|
|
text-decoration-color: color-mix(in srgb, var(--ink-soft) 56%, transparent);
|
|
text-underline-offset: 3px;
|
|
}
|
|
|
|
a.agentic-risk-finding-title:hover,
|
|
a.agentic-risk-finding-title:focus-visible {
|
|
color: var(--accent);
|
|
text-decoration-color: currentColor;
|
|
}
|
|
|
|
.clawscan-risk-bucket-label {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
}
|
|
|
|
.clawscan-risk-severity {
|
|
font-size: 0.72rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.05em;
|
|
text-transform: uppercase;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.clawscan-risk-summary-text {
|
|
margin: 0;
|
|
font-size: 0.82rem;
|
|
line-height: 1.5;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.agentic-risk-findings {
|
|
display: grid;
|
|
gap: 28px;
|
|
}
|
|
|
|
.agentic-risk-finding {
|
|
display: grid;
|
|
gap: 18px;
|
|
padding: 28px 0 0;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
}
|
|
|
|
.agentic-risk-finding:first-child {
|
|
padding-top: 0;
|
|
}
|
|
|
|
.agentic-risk-finding-header {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 10px 12px;
|
|
}
|
|
|
|
.agentic-risk-finding-badges {
|
|
display: inline-flex;
|
|
flex: 0 0 auto;
|
|
align-items: center;
|
|
gap: 8px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.agentic-risk-finding-badges > .inline-flex {
|
|
min-height: 0;
|
|
border-radius: 4px;
|
|
padding: 0.25rem 0.55rem;
|
|
font-size: 0.78rem;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.agentic-risk-report-rows {
|
|
display: grid;
|
|
gap: 0;
|
|
}
|
|
|
|
.agentic-risk-report-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(140px, 190px) minmax(0, 1fr);
|
|
gap: clamp(18px, 3.5vw, 52px);
|
|
padding: 12px 0;
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.agentic-risk-report-row:first-child {
|
|
padding-top: 0;
|
|
border-top: 0;
|
|
}
|
|
|
|
.agentic-risk-report-row-secondary {
|
|
padding-top: 12px;
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.agentic-risk-finding > .agentic-risk-report-row:last-child,
|
|
.agentic-risk-report-rows .agentic-risk-report-row:last-child {
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
.agentic-risk-report-label {
|
|
color: var(--ink);
|
|
font-size: 0.86rem;
|
|
font-weight: 680;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.agentic-risk-report-row p {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 0.88rem;
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.agentic-risk-report-content {
|
|
display: grid;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.agentic-risk-evidence-path {
|
|
width: fit-content;
|
|
max-width: 100%;
|
|
border-radius: var(--r-pill);
|
|
background: rgba(0, 0, 0, 0.05);
|
|
padding: 3px 8px;
|
|
font-family: var(--font-mono);
|
|
font-size: 0.72rem;
|
|
color: var(--ink-soft);
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.agentic-risk-evidence-snippet {
|
|
margin: 0;
|
|
max-width: 100%;
|
|
overflow-x: auto;
|
|
white-space: pre-wrap;
|
|
overflow-wrap: anywhere;
|
|
border-radius: 8px;
|
|
background: var(--surface);
|
|
padding: 8px 10px 8px 0;
|
|
font-family: var(--font-mono);
|
|
font-size: 0.76rem;
|
|
line-height: 1.45;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.agentic-risk-evidence-explanation {
|
|
margin: 0;
|
|
font-size: 0.82rem;
|
|
line-height: 1.5;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.agentic-risk-impact,
|
|
.agentic-risk-recommendation {
|
|
display: grid;
|
|
gap: 6px;
|
|
font-size: 0.82rem;
|
|
line-height: 1.5;
|
|
color: var(--ink);
|
|
}
|
|
|
|
@media (max-width: 720px) {
|
|
.agentic-risk-finding-header {
|
|
gap: 14px;
|
|
}
|
|
|
|
.agentic-risk-report-row {
|
|
grid-template-columns: 1fr;
|
|
gap: 8px;
|
|
}
|
|
}
|
|
|
|
.agentic-risk-impact span,
|
|
.agentic-risk-recommendation span {
|
|
font-size: 0.68rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
/* Pending Review Banner */
|
|
.pending-banner {
|
|
font-size: 0.9rem;
|
|
color: var(--ink);
|
|
padding: 12px 16px;
|
|
border-radius: var(--oc-radius-surface);
|
|
background: var(--oc-status-warning-bg);
|
|
border: 1px solid color-mix(in srgb, var(--oc-status-warning-fg) 40%, var(--oc-border-subtle));
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 12px;
|
|
}
|
|
|
|
.pending-banner-content strong {
|
|
display: block;
|
|
font-weight: 650;
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.pending-banner-content p {
|
|
color: var(--ink-soft);
|
|
font-size: 0.85rem;
|
|
line-height: 1.5;
|
|
margin: 0;
|
|
}
|
|
|
|
/* Blocked/removed banner variant */
|
|
.pending-banner-blocked {
|
|
background: var(--oc-status-error-bg);
|
|
border-color: color-mix(in srgb, var(--oc-status-error-fg) 40%, var(--oc-border-subtle));
|
|
}
|
|
|
|
/* Warning banner variant */
|
|
.pending-banner-warning {
|
|
background: var(--oc-status-warning-bg);
|
|
border-color: color-mix(in srgb, var(--oc-status-warning-fg) 40%, var(--oc-border-subtle));
|
|
}
|
|
|
|
/* Pending tag for dashboard */
|
|
.tag-pending {
|
|
background: var(--status-pending-bg);
|
|
color: var(--status-pending-fg);
|
|
gap: 4px;
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.hero {
|
|
padding: 44px 14px 36px;
|
|
}
|
|
|
|
.section {
|
|
padding: 24px 14px 48px;
|
|
}
|
|
|
|
.navbar-inner {
|
|
padding: 10px 14px;
|
|
gap: 10px;
|
|
}
|
|
|
|
.brand {
|
|
font-size: 1.15rem;
|
|
}
|
|
|
|
.skill-page-title {
|
|
font-size: 1.8rem;
|
|
line-height: 1.12;
|
|
}
|
|
|
|
.skill-hero-note {
|
|
font-size: 0.82rem;
|
|
}
|
|
|
|
.skill-hero-title-row {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.skill-title-actions {
|
|
width: 100%;
|
|
margin-left: 0;
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.skill-title-actions .btn,
|
|
.skill-title-actions [data-slot="button"] {
|
|
flex: 1 1 0;
|
|
justify-content: center;
|
|
}
|
|
|
|
.skill-install-actions,
|
|
.skill-install-preview-meta,
|
|
.skill-install-command-header {
|
|
align-items: stretch;
|
|
min-height: 0;
|
|
}
|
|
|
|
.skill-install-copy-feedback {
|
|
width: 100%;
|
|
}
|
|
|
|
.skill-install-command-shell-cli {
|
|
flex-wrap: nowrap;
|
|
align-items: center;
|
|
overflow-x: hidden;
|
|
padding: 12px 52px 12px 14px;
|
|
}
|
|
|
|
.skill-install-command-shell-cli .skill-install-command-prompt {
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.skill-install-command-shell-cli .skill-install-command {
|
|
display: block;
|
|
flex: 1 1 auto;
|
|
width: auto;
|
|
min-width: 0;
|
|
max-width: none;
|
|
padding-right: 0;
|
|
overflow-x: auto;
|
|
overflow-y: hidden;
|
|
text-overflow: clip;
|
|
white-space: nowrap;
|
|
-webkit-overflow-scrolling: touch;
|
|
}
|
|
|
|
.skill-install-command-shell-cli .skill-install-command code {
|
|
display: inline;
|
|
overflow: visible;
|
|
text-overflow: clip;
|
|
white-space: nowrap;
|
|
overflow-wrap: normal;
|
|
word-break: normal;
|
|
}
|
|
|
|
.skill-install-command-shell-cli .skill-install-command-inline-button {
|
|
top: 50%;
|
|
right: 10px;
|
|
margin-top: 0;
|
|
transform: translateY(-50%);
|
|
flex: none;
|
|
justify-content: center;
|
|
}
|
|
|
|
.skill-install-command-shell:not(.skill-install-command-shell-cli) .skill-install-command {
|
|
padding-right: 0;
|
|
overflow: visible;
|
|
text-overflow: clip;
|
|
white-space: pre-wrap;
|
|
overflow-wrap: break-word;
|
|
word-break: normal;
|
|
}
|
|
|
|
.skill-install-command-shell:not(.skill-install-command-shell-cli) .skill-install-command code {
|
|
overflow: visible;
|
|
text-overflow: clip;
|
|
white-space: pre-wrap;
|
|
overflow-wrap: break-word;
|
|
word-break: normal;
|
|
}
|
|
|
|
.skill-install-command-shell:not(.skill-install-command-shell-cli) {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
padding-right: 48px;
|
|
}
|
|
|
|
.skill-install-command-shell:not(.skill-install-command-shell-cli)
|
|
.skill-install-command-inline-button {
|
|
position: absolute;
|
|
top: 12px;
|
|
right: 10px;
|
|
width: auto;
|
|
align-self: auto;
|
|
margin-top: 0;
|
|
transform: none;
|
|
justify-content: center;
|
|
}
|
|
|
|
.skill-install-prompt-trigger,
|
|
.skill-install-copy-button:not(.skill-install-command-inline-button) {
|
|
width: 100%;
|
|
justify-content: center;
|
|
}
|
|
|
|
.install-switcher-toggle {
|
|
width: 100%;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.install-switcher-pill {
|
|
flex: 1 1 0;
|
|
justify-content: center;
|
|
}
|
|
|
|
.card {
|
|
padding: 16px;
|
|
}
|
|
|
|
.skill-card {
|
|
padding: 16px;
|
|
}
|
|
|
|
.detail-meta-bar {
|
|
padding: var(--space-3);
|
|
}
|
|
|
|
.meta-bar-stats {
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.skill-hero-sidebar-meta {
|
|
min-width: 0;
|
|
}
|
|
|
|
.file-viewer-body {
|
|
max-height: 260px;
|
|
}
|
|
|
|
.file-viewer-back {
|
|
position: relative;
|
|
padding: 6px;
|
|
gap: 0;
|
|
}
|
|
|
|
.file-viewer-back-label {
|
|
position: absolute;
|
|
width: 1px;
|
|
height: 1px;
|
|
padding: 0;
|
|
margin: -1px;
|
|
overflow: hidden;
|
|
clip: rect(0, 0, 0, 0);
|
|
white-space: nowrap;
|
|
border: 0;
|
|
}
|
|
|
|
.file-viewer-code {
|
|
white-space: pre-wrap;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.file-list.has-hidden-files .file-list-body {
|
|
max-height: 360px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.file-list.has-hidden-files .file-list-see-all-wrap {
|
|
display: grid;
|
|
}
|
|
|
|
.file-list-body.is-expanded {
|
|
max-height: none;
|
|
overflow: visible;
|
|
}
|
|
|
|
.markdown pre {
|
|
font-size: 0.78rem;
|
|
}
|
|
|
|
.markdown img {
|
|
max-width: 100%;
|
|
height: auto;
|
|
}
|
|
|
|
.scan-result-row {
|
|
grid-template-columns: 1fr auto;
|
|
gap: 6px 10px;
|
|
}
|
|
|
|
.scan-result-link {
|
|
grid-column: 1 / -1;
|
|
justify-self: start;
|
|
}
|
|
}
|
|
|
|
/* ===== Home Page — Modern Utility Store ===== */
|
|
|
|
.home-hero {
|
|
position: relative;
|
|
padding: var(--space-7) var(--space-5) var(--space-6);
|
|
max-width: var(--page-max);
|
|
margin: 0 auto;
|
|
isolation: isolate;
|
|
overflow: clip;
|
|
}
|
|
|
|
.home-hero::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
background:
|
|
radial-gradient(
|
|
ellipse 80% 60% at 50% -20%,
|
|
color-mix(in oklab, var(--accent) 10%, transparent) 0,
|
|
transparent 70%
|
|
),
|
|
radial-gradient(
|
|
ellipse 60% 40% at 80% 20%,
|
|
color-mix(in oklab, var(--seafoam) 6%, transparent) 0,
|
|
transparent 50%
|
|
);
|
|
opacity: 1;
|
|
pointer-events: none;
|
|
z-index: -1;
|
|
}
|
|
|
|
.home-hero-inner {
|
|
max-width: var(--page-max);
|
|
}
|
|
|
|
.home-hero-grid {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-6);
|
|
align-items: center;
|
|
text-align: center;
|
|
}
|
|
|
|
.home-hero-copy {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
max-width: 720px;
|
|
}
|
|
|
|
.home-hero-kicker {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
width: fit-content;
|
|
padding: 6px 14px;
|
|
margin-bottom: 20px;
|
|
border-radius: var(--r-pill);
|
|
border: 1px solid var(--line);
|
|
background: var(--surface);
|
|
font-size: 0.8rem;
|
|
font-weight: 500;
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-body);
|
|
}
|
|
|
|
.home-hero-kicker-icon {
|
|
color: var(--accent);
|
|
}
|
|
|
|
.home-hero-title {
|
|
font-family: var(--font-display);
|
|
font-size: clamp(2.4rem, 5vw, 3.5rem);
|
|
font-weight: 700;
|
|
line-height: 1.08;
|
|
letter-spacing: -0.035em;
|
|
margin-bottom: 16px;
|
|
text-wrap: balance;
|
|
}
|
|
|
|
.home-hero-title-accent {
|
|
background: linear-gradient(135deg, var(--accent) 0%, var(--accent-deep) 100%);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
|
|
.home-hero-subtitle {
|
|
font-size: clamp(1rem, 1.4vw, 1.125rem);
|
|
color: var(--ink-soft);
|
|
line-height: 1.65;
|
|
margin-bottom: 32px;
|
|
max-width: 560px;
|
|
text-wrap: pretty;
|
|
}
|
|
|
|
.home-hero-search {
|
|
width: 100%;
|
|
max-width: 640px;
|
|
position: relative;
|
|
}
|
|
|
|
.home-hero-search-wrapper {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.home-hero-search-icon {
|
|
position: absolute;
|
|
left: 18px;
|
|
color: var(--ink-soft);
|
|
pointer-events: none;
|
|
transition: color 0.15s ease;
|
|
}
|
|
|
|
.home-hero-search-wrapper:focus-within .home-hero-search-icon {
|
|
color: var(--accent);
|
|
}
|
|
|
|
.home-hero-search-input {
|
|
width: 100%;
|
|
height: 56px;
|
|
padding: 0 140px 0 52px;
|
|
border: 1px solid var(--border-ui);
|
|
border-radius: var(--r-md);
|
|
background: var(--surface);
|
|
font-size: var(--fs-base);
|
|
color: var(--ink);
|
|
transition:
|
|
border-color 0.2s ease,
|
|
box-shadow 0.2s ease;
|
|
box-shadow: var(--shadow-card);
|
|
}
|
|
|
|
.home-hero-search-input::placeholder {
|
|
color: var(--input-placeholder);
|
|
}
|
|
|
|
.home-hero-search-input:focus {
|
|
outline: none;
|
|
border-color: var(--input-focus-border);
|
|
box-shadow: 0 0 0 3px var(--input-focus-ring);
|
|
}
|
|
|
|
.home-hero-search-btn {
|
|
position: absolute;
|
|
right: 6px;
|
|
height: 44px;
|
|
padding: 0 20px;
|
|
border-radius: calc(var(--r-md) - 2px);
|
|
background: var(--accent);
|
|
color: var(--accent-fg);
|
|
font-weight: 600;
|
|
font-size: var(--fs-sm);
|
|
border: none;
|
|
cursor: pointer;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
transition:
|
|
background 0.15s ease,
|
|
transform 0.15s ease;
|
|
}
|
|
|
|
.home-hero-search-btn:hover {
|
|
background: var(--accent-deep);
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.home-hero-popular {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 8px;
|
|
margin-top: 16px;
|
|
}
|
|
|
|
.home-hero-popular-label {
|
|
font-size: var(--fs-sm);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.home-hero-popular-tag {
|
|
padding: 5px 12px;
|
|
border-radius: var(--r-pill);
|
|
border: 1px solid var(--line);
|
|
background: transparent;
|
|
font-size: var(--fs-sm);
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
transition: all 0.15s ease;
|
|
}
|
|
|
|
.home-hero-popular-tag:hover {
|
|
border-color: var(--border-ui-hover);
|
|
color: var(--ink);
|
|
background: var(--hover-bg);
|
|
}
|
|
|
|
.home-hero-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: var(--space-3);
|
|
justify-content: center;
|
|
margin-top: var(--space-4);
|
|
}
|
|
|
|
.home-hero-publish-btn {
|
|
background: var(--surface);
|
|
border: 1px solid var(--border-ui);
|
|
}
|
|
|
|
.home-hero-publish-btn:hover {
|
|
border-color: var(--border-ui-hover);
|
|
}
|
|
|
|
/* Discovery Panels Grid */
|
|
.home-hero-panels {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: 12px;
|
|
width: 100%;
|
|
max-width: 900px;
|
|
margin-top: var(--space-4);
|
|
}
|
|
|
|
.home-hero-panel {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
padding: 20px;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
border-radius: var(--r-md);
|
|
border: 1px solid var(--line);
|
|
background: var(--surface);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.home-hero-panel:hover {
|
|
border-color: var(--border-ui-hover);
|
|
transform: translateY(-2px);
|
|
box-shadow: var(--shadow-hover);
|
|
}
|
|
|
|
.home-hero-panel-icon {
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: var(--r-sm);
|
|
background: rgba(220, 38, 38, 0.1);
|
|
display: grid;
|
|
place-items: center;
|
|
color: var(--accent);
|
|
}
|
|
|
|
.home-hero-panel strong {
|
|
font-family: var(--font-display);
|
|
font-size: 0.95rem;
|
|
font-weight: 600;
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.home-hero-panel span:last-child {
|
|
color: var(--ink-soft);
|
|
font-size: 0.82rem;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.home-hero-panel-label {
|
|
display: none;
|
|
}
|
|
|
|
/* Home sections — polished utility store */
|
|
|
|
.home-section {
|
|
max-width: var(--page-max);
|
|
margin: 0 auto;
|
|
padding: var(--space-6) var(--space-5);
|
|
}
|
|
|
|
.home-section + .home-section {
|
|
padding-top: 0;
|
|
}
|
|
|
|
.home-section-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: var(--space-4);
|
|
}
|
|
|
|
.home-section-title {
|
|
font-family: var(--font-display);
|
|
font-size: var(--fs-lg);
|
|
font-weight: 600;
|
|
letter-spacing: -0.01em;
|
|
color: var(--ink);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.home-section-title-icon {
|
|
width: 28px;
|
|
height: 28px;
|
|
border-radius: var(--r-sm);
|
|
display: grid;
|
|
place-items: center;
|
|
}
|
|
|
|
.home-section-title-icon.trending {
|
|
background: rgba(220, 38, 38, 0.1);
|
|
color: var(--accent);
|
|
}
|
|
|
|
.home-section-title-icon.featured {
|
|
background: rgba(250, 250, 250, 0.1);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.home-section-title-icon.recent {
|
|
background: rgba(220, 38, 38, 0.1);
|
|
color: var(--accent);
|
|
}
|
|
|
|
.home-section-link {
|
|
font-size: var(--fs-sm);
|
|
font-weight: 500;
|
|
color: var(--accent);
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
transition: opacity 0.15s ease;
|
|
}
|
|
|
|
.home-section-link:hover {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.home-section-link svg {
|
|
transition: transform 0.15s ease;
|
|
}
|
|
|
|
.home-section-link:hover svg {
|
|
transform: translateX(2px);
|
|
}
|
|
|
|
/* Skill list — polished utility cards */
|
|
|
|
.browse-list-stack {
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-width: 0;
|
|
}
|
|
|
|
.results-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
overflow: visible;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
}
|
|
|
|
.browse-list-head {
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr) 180px 190px;
|
|
gap: 16px 20px;
|
|
align-items: center;
|
|
padding: 0 4px 8px;
|
|
margin-bottom: 2px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
|
|
}
|
|
|
|
.browse-list-head-icon-spacer {
|
|
width: 27px;
|
|
}
|
|
|
|
.browse-list-head-actions-spacer {
|
|
width: 34px;
|
|
}
|
|
|
|
.browse-list-head-no-icon {
|
|
grid-template-columns: minmax(0, 1fr) 180px 190px;
|
|
}
|
|
|
|
.browse-list-head-simple {
|
|
grid-template-columns: auto minmax(0, 1fr) 190px;
|
|
}
|
|
|
|
.browse-list-head-publishers {
|
|
grid-template-columns: minmax(0, 1fr) minmax(160px, auto);
|
|
}
|
|
|
|
.browse-list-head-label {
|
|
color: color-mix(in srgb, var(--ink-soft) 62%, transparent);
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
letter-spacing: 0.07em;
|
|
line-height: 1;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.browse-list-head-stat {
|
|
justify-self: end;
|
|
}
|
|
|
|
.browse-page .browse-list-head.browse-list-head-trending {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
}
|
|
|
|
.browse-page .browse-list-head.browse-list-head-trending .browse-list-head-label,
|
|
.browse-page .browse-list-head.browse-list-head-trending .browse-list-head-stat {
|
|
grid-column: auto;
|
|
}
|
|
|
|
@keyframes fadeIn {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(4px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
/* Skill list item — clean, scannable row */
|
|
|
|
.skill-list-item {
|
|
position: relative;
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
gap: 16px 20px;
|
|
align-items: center;
|
|
min-width: 0;
|
|
padding: 13px 4px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
|
|
text-decoration: none;
|
|
transition: background 0.15s ease;
|
|
}
|
|
|
|
.skill-list-item-has-creator,
|
|
.skill-list-item-with-taxonomy {
|
|
grid-template-columns: auto minmax(0, 1fr) 180px 190px;
|
|
}
|
|
|
|
.skill-list-item-no-icon {
|
|
grid-template-columns: minmax(0, 1fr) 180px 190px;
|
|
}
|
|
|
|
.skill-list-item:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.skill-list-item:hover {
|
|
background: transparent;
|
|
}
|
|
|
|
.skill-list-item::before {
|
|
position: absolute;
|
|
inset: 8px -8px;
|
|
z-index: 0;
|
|
border-radius: var(--r-sm);
|
|
background: transparent;
|
|
content: "";
|
|
transition: background 0.15s ease;
|
|
}
|
|
|
|
.skill-list-item:hover::before {
|
|
background: var(--hover-bg);
|
|
}
|
|
|
|
.skill-list-item > * {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.browse-page .skill-list-item > .marketplace-icon {
|
|
--marketplace-icon-accent: var(--ink-soft) !important;
|
|
--marketplace-icon-wash: transparent !important;
|
|
width: 27px;
|
|
height: 27px;
|
|
border-radius: 7px;
|
|
border-color: color-mix(in srgb, var(--line) 78%, transparent);
|
|
background: color-mix(in srgb, var(--surface) 72%, transparent);
|
|
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.browse-page .skill-list-item > .marketplace-icon .marketplace-icon-glyph {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.skill-list-item-main {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
flex-wrap: wrap;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.skill-list-item-identity {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.skill-list-item-identity .skill-list-item-name {
|
|
flex: 1 1 auto;
|
|
}
|
|
|
|
.skill-list-item-identity .skill-list-item-owner {
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.skill-list-item-body {
|
|
display: grid;
|
|
gap: 5px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-list-item-owner {
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
color: var(--hv2-text-tertiary, var(--ink-soft));
|
|
line-height: 1.25;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skill-list-item-name {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
font-size: 15px;
|
|
font-weight: 600;
|
|
line-height: 1.25;
|
|
color: var(--ink);
|
|
letter-spacing: -0.01em;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skill-list-item .tag {
|
|
font-size: var(--fs-xs);
|
|
padding: 2px 8px;
|
|
border-radius: var(--r-sm);
|
|
}
|
|
|
|
.skill-list-item-summary {
|
|
max-width: min(760px, 100%);
|
|
font-size: 13px;
|
|
color: var(--hv2-text-tertiary, var(--ink-soft));
|
|
line-height: 1.5;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 1;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
margin: 0;
|
|
}
|
|
|
|
.skill-list-item-taxonomy {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-start;
|
|
flex-wrap: wrap;
|
|
gap: 5px;
|
|
justify-self: stretch;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-list-item-category {
|
|
max-width: 100%;
|
|
overflow: hidden;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
color: var(--ink-soft);
|
|
font-size: 12px;
|
|
font-weight: 400;
|
|
line-height: 1.35;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skill-list-item-category-icon {
|
|
flex: 0 0 auto;
|
|
color: color-mix(in srgb, var(--ink-soft) 82%, transparent);
|
|
}
|
|
|
|
.skill-list-item-meta {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
justify-self: stretch;
|
|
gap: 12px;
|
|
min-width: 190px;
|
|
max-width: 260px;
|
|
font-size: var(--fs-xs);
|
|
color: var(--ink-soft);
|
|
margin-top: 2px;
|
|
text-align: right;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.skill-list-item-meta-item {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.skill-list-item-meta-item svg {
|
|
color: color-mix(in srgb, var(--ink-soft) 78%, transparent);
|
|
}
|
|
|
|
.skill-list-item-meta-item.is-updated {
|
|
flex-basis: 100%;
|
|
justify-content: flex-end;
|
|
color: var(--ink-muted);
|
|
}
|
|
|
|
.plugin-card-meta {
|
|
justify-content: flex-start;
|
|
gap: 16px;
|
|
color: var(--hv2-text-secondary, var(--ink-soft));
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.plugin-card-meta .skill-list-item-meta-item {
|
|
gap: 5px;
|
|
}
|
|
|
|
.plugin-card-meta svg,
|
|
.browse-results-grid .skill-stats-triplet svg {
|
|
opacity: 0.45;
|
|
}
|
|
|
|
.catalog-topics {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 5px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.skill-list-item-main > .catalog-topics {
|
|
flex: 0 1 auto;
|
|
flex-wrap: nowrap;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.skill-list-item-body > .catalog-topics {
|
|
overflow: hidden;
|
|
max-height: 23px;
|
|
}
|
|
|
|
.catalog-topic {
|
|
max-width: 100%;
|
|
overflow: hidden;
|
|
padding: 0 2px;
|
|
border: 1px solid transparent;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
color: color-mix(in srgb, var(--ink-soft) 58%, transparent);
|
|
font-size: 11px;
|
|
font-weight: 400;
|
|
line-height: 1.25;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.catalog-metadata-fields {
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
gap: 12px;
|
|
align-items: start;
|
|
min-width: 0;
|
|
}
|
|
|
|
@media (min-width: 520px) {
|
|
.catalog-metadata-fields {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 16px;
|
|
}
|
|
}
|
|
|
|
.catalog-metadata-field {
|
|
min-width: 0;
|
|
}
|
|
|
|
.catalog-metadata-field-header {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.catalog-metadata-field-actions {
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
@media (max-width: 960px) {
|
|
.browse-page .skill-list-item,
|
|
.browse-page .skill-list-item-has-creator,
|
|
.browse-page .skill-list-item-with-taxonomy {
|
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
}
|
|
|
|
.browse-page .skill-list-item-no-icon {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
}
|
|
|
|
.browse-page .skill-list-item-taxonomy,
|
|
.browse-page .browse-list-head-label:nth-of-type(3) {
|
|
display: none;
|
|
}
|
|
|
|
.browse-page .skill-list-item-meta {
|
|
grid-column: 3;
|
|
}
|
|
|
|
.browse-page .skill-list-item-no-icon .skill-list-item-meta {
|
|
grid-column: 2;
|
|
}
|
|
|
|
.browse-page .browse-list-head {
|
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
}
|
|
|
|
.browse-page .browse-list-head-label:nth-of-type(2) {
|
|
grid-column: 2;
|
|
}
|
|
|
|
.browse-page .browse-list-head-stat {
|
|
grid-column: 3;
|
|
}
|
|
|
|
.browse-page .skill-list-item-main > .catalog-topics {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.catalog-metadata-settings-editor {
|
|
display: grid;
|
|
gap: 16px;
|
|
min-width: 0;
|
|
width: 100%;
|
|
}
|
|
|
|
.user-list-item .skill-list-item-owner {
|
|
font-size: 0.82rem;
|
|
}
|
|
|
|
.publisher-highlights {
|
|
display: grid;
|
|
gap: 18px;
|
|
margin-bottom: 14px;
|
|
}
|
|
|
|
.publisher-section-heading {
|
|
display: flex;
|
|
align-items: baseline;
|
|
}
|
|
|
|
.publisher-section-heading h2 {
|
|
margin: 0;
|
|
color: var(--ink);
|
|
font-size: var(--fs-lg);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.publisher-highlight-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.publisher-filter-tabs {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
min-height: 42px;
|
|
padding: 4px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
background: var(--surface);
|
|
}
|
|
|
|
.publisher-filter-tab {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-height: 34px;
|
|
padding: 8px 12px;
|
|
border-radius: var(--r-sm);
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
text-decoration: none;
|
|
line-height: 1;
|
|
transition:
|
|
background 0.15s ease,
|
|
color 0.15s ease;
|
|
}
|
|
|
|
.publisher-view-tabs .publisher-filter-tab {
|
|
width: 34px;
|
|
height: 34px;
|
|
justify-content: center;
|
|
padding: 0;
|
|
}
|
|
|
|
.publisher-filter-tab span {
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
font-weight: 600;
|
|
}
|
|
|
|
.publisher-filter-tab:hover,
|
|
.publisher-filter-tab.is-active {
|
|
color: var(--ink);
|
|
background: var(--surface-muted);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.publisher-filter-tab.is-active span {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.publisher-directory-list {
|
|
display: grid;
|
|
gap: 10px;
|
|
margin-top: 0;
|
|
}
|
|
|
|
.publisher-directory-grid {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 12px;
|
|
margin-top: 0;
|
|
}
|
|
|
|
.publisher-card {
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) minmax(160px, auto);
|
|
align-items: center;
|
|
gap: 18px;
|
|
padding: 16px 18px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
background: var(--surface);
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
transition:
|
|
background 0.15s ease,
|
|
border-color 0.15s ease,
|
|
transform 0.15s ease;
|
|
}
|
|
|
|
.publisher-card:hover {
|
|
background: var(--hover-bg);
|
|
border-color: var(--border-ui-hover);
|
|
text-decoration: none;
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.publisher-card-highlight {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
min-height: 206px;
|
|
gap: 16px;
|
|
padding: 20px 22px;
|
|
}
|
|
|
|
.publisher-card-highlight:hover,
|
|
.publisher-card-highlight:focus-visible {
|
|
border-color: color-mix(in srgb, var(--ink) 16%, var(--line));
|
|
background: var(--hover-bg);
|
|
outline: none;
|
|
}
|
|
|
|
.publisher-card-highlight .publisher-card-name {
|
|
font-size: var(--fs-lg);
|
|
}
|
|
|
|
.publisher-card-highlight .publisher-card-main {
|
|
width: 100%;
|
|
align-items: start;
|
|
}
|
|
|
|
.publisher-card-highlight .publisher-card-copy {
|
|
width: 100%;
|
|
gap: 6px;
|
|
}
|
|
|
|
.publisher-card-highlight .publisher-card-summary {
|
|
-webkit-line-clamp: 2;
|
|
}
|
|
|
|
.publisher-card-featured-items {
|
|
display: grid;
|
|
gap: 7px;
|
|
min-height: 76px;
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.publisher-card-featured-items > span {
|
|
width: 100%;
|
|
display: grid;
|
|
grid-template-columns: 16px minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 9px;
|
|
max-width: 100%;
|
|
overflow: hidden;
|
|
padding: 4px 6px;
|
|
margin-inline: -6px;
|
|
border-radius: var(--r-sm);
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
font-size: var(--fs-xs);
|
|
line-height: 1.35;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
cursor: pointer;
|
|
transition:
|
|
background 0.15s ease,
|
|
color 0.15s ease;
|
|
}
|
|
|
|
.publisher-card-featured-items > span:hover {
|
|
background: color-mix(in srgb, var(--ink) 6%, transparent);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.publisher-card-featured-items .marketplace-icon {
|
|
width: 16px;
|
|
height: 16px;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
}
|
|
|
|
.publisher-card-featured-label {
|
|
display: block;
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
padding: 0;
|
|
border: 0;
|
|
background: transparent;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.publisher-card-featured-downloads {
|
|
justify-self: end;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
color: var(--oc-text-muted);
|
|
font-size: var(--fs-xs);
|
|
font-variant-numeric: tabular-nums;
|
|
font-feature-settings: "tnum" 1;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.publisher-card-featured-downloads svg {
|
|
flex: 0 0 auto;
|
|
color: var(--oc-text-muted);
|
|
}
|
|
|
|
.publisher-card-featured-downloads span {
|
|
display: block;
|
|
font-family: var(--font-mono);
|
|
text-align: right;
|
|
}
|
|
|
|
.publisher-card-highlight .publisher-card-stats {
|
|
width: 100%;
|
|
margin-top: auto;
|
|
padding-top: 14px;
|
|
border-top: 1px solid var(--line);
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
justify-content: stretch;
|
|
}
|
|
|
|
.publisher-card-highlight .publisher-card-stat {
|
|
justify-content: flex-start;
|
|
text-align: left;
|
|
}
|
|
|
|
.publisher-card-highlight .publisher-card-stat.is-primary {
|
|
justify-content: flex-end;
|
|
text-align: right;
|
|
}
|
|
|
|
.publisher-card-grid {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
min-height: 164px;
|
|
gap: 16px;
|
|
padding: 20px;
|
|
}
|
|
|
|
.publisher-card-grid .publisher-card-main {
|
|
align-items: start;
|
|
}
|
|
|
|
.publisher-card-grid .publisher-card-summary {
|
|
-webkit-line-clamp: 2;
|
|
}
|
|
|
|
.publisher-card-grid .publisher-card-stats {
|
|
width: 100%;
|
|
margin-top: auto;
|
|
padding-top: 16px;
|
|
border-top: 1px solid var(--line);
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
justify-content: stretch;
|
|
}
|
|
|
|
.publisher-card-grid .publisher-card-stat {
|
|
justify-content: flex-start;
|
|
text-align: left;
|
|
}
|
|
|
|
.publisher-card-grid .publisher-card-stat.is-primary {
|
|
justify-content: flex-end;
|
|
text-align: right;
|
|
}
|
|
|
|
.publisher-card-main {
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr);
|
|
align-items: center;
|
|
gap: 12px;
|
|
}
|
|
|
|
.publisher-card-copy {
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: 5px;
|
|
}
|
|
|
|
.publisher-card-identity {
|
|
display: grid;
|
|
gap: 1px;
|
|
min-width: 0;
|
|
align-content: start;
|
|
}
|
|
|
|
.publisher-card-title-row {
|
|
min-width: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.publisher-card-name {
|
|
overflow: hidden;
|
|
color: var(--ink);
|
|
font-size: var(--fs-md);
|
|
font-weight: 700;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.publisher-card-handle {
|
|
flex: 0 1 auto;
|
|
overflow: hidden;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
line-height: 1.2;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.publisher-card-kind {
|
|
flex: 0 0 auto;
|
|
padding: 4px 8px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-sm);
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.publisher-card-summary {
|
|
display: -webkit-box;
|
|
margin: 0;
|
|
overflow: hidden;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.publisher-card-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, auto));
|
|
justify-content: end;
|
|
gap: 20px;
|
|
}
|
|
|
|
.publisher-card-stat {
|
|
min-width: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 5px;
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
font-size: var(--fs-xs);
|
|
text-align: right;
|
|
}
|
|
|
|
.publisher-card-list .publisher-card-stat.is-primary::before {
|
|
content: "·";
|
|
margin-right: 6px;
|
|
color: var(--oc-text-muted);
|
|
}
|
|
|
|
.publisher-card-stat svg {
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
}
|
|
|
|
.publisher-card-stat strong {
|
|
overflow: hidden;
|
|
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
|
|
font-size: var(--fs-sm);
|
|
font-weight: 700;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.publisher-card-stat.is-primary strong {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.publisher-card-stat.is-primary svg {
|
|
color: var(--oc-text-muted);
|
|
}
|
|
|
|
.publisher-published-rail {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
padding-left: 10px;
|
|
}
|
|
|
|
.publisher-published-rail-item {
|
|
position: relative;
|
|
display: inline-flex;
|
|
margin-left: -10px;
|
|
}
|
|
|
|
.publisher-published-rail-item:nth-child(1) {
|
|
z-index: 3;
|
|
}
|
|
|
|
.publisher-published-rail-item:nth-child(2) {
|
|
z-index: 2;
|
|
}
|
|
|
|
.publisher-published-rail-item:nth-child(3) {
|
|
z-index: 1;
|
|
}
|
|
|
|
.publisher-published-rail .marketplace-icon {
|
|
box-shadow: 0 0 0 2px var(--surface);
|
|
}
|
|
|
|
.browse-page .publisher-directory-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list.publisher-directory-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list {
|
|
position: relative;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 16px 20px;
|
|
padding: 13px 4px;
|
|
border: 0;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
|
|
border-radius: 0;
|
|
background: transparent;
|
|
transform: none;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-copy {
|
|
gap: 3px;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-identity {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 6px;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-title-row {
|
|
flex: 0 1 auto;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-handle {
|
|
min-width: 0;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-name {
|
|
font-size: 15px;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-handle,
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-summary {
|
|
font-size: 13px;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-summary {
|
|
line-height: 1.35;
|
|
-webkit-line-clamp: 1;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list:hover {
|
|
border-color: color-mix(in srgb, var(--line) 76%, transparent);
|
|
background: transparent;
|
|
transform: none;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list::before {
|
|
position: absolute;
|
|
inset: 8px -8px;
|
|
z-index: 0;
|
|
border-radius: var(--r-sm);
|
|
background: transparent;
|
|
content: "";
|
|
transition: background 0.15s ease;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list:hover::before {
|
|
background: var(--hover-bg);
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list > * {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.browse-page .publisher-card .marketplace-icon {
|
|
--marketplace-icon-accent: var(--ink-soft) !important;
|
|
--marketplace-icon-wash: transparent !important;
|
|
border-color: color-mix(in srgb, var(--line) 78%, transparent);
|
|
background: color-mix(in srgb, var(--surface) 72%, transparent);
|
|
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.browse-page .publisher-card-featured-items .marketplace-icon {
|
|
border-color: transparent;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.browse-page .publisher-published-rail .marketplace-icon {
|
|
background: var(--surface);
|
|
box-shadow: 0 0 0 2px var(--surface);
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card .marketplace-icon {
|
|
width: 36px;
|
|
height: 36px;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card .marketplace-icon-glyph {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
@media (max-width: 860px) {
|
|
.publisher-highlight-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.publisher-card {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
align-items: start;
|
|
}
|
|
|
|
.publisher-directory-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.publisher-card-list {
|
|
gap: 16px;
|
|
padding: 20px;
|
|
}
|
|
|
|
.publisher-card-list .publisher-card-main {
|
|
align-items: start;
|
|
}
|
|
|
|
.publisher-card-summary,
|
|
.publisher-card-stats {
|
|
grid-column: 1;
|
|
}
|
|
|
|
.publisher-card-stats {
|
|
width: 100%;
|
|
justify-content: stretch;
|
|
padding-top: 16px;
|
|
border-top: 1px solid var(--line);
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
}
|
|
|
|
.publisher-card-stat {
|
|
justify-content: flex-start;
|
|
text-align: left;
|
|
}
|
|
|
|
.publisher-card-stat.is-primary {
|
|
justify-content: flex-end;
|
|
text-align: right;
|
|
}
|
|
|
|
.publisher-card-list .publisher-card-stat.is-primary::before {
|
|
content: none;
|
|
}
|
|
|
|
.publisher-published-rail {
|
|
padding-left: 7px;
|
|
}
|
|
|
|
.publisher-published-rail-item {
|
|
margin-left: -7px;
|
|
}
|
|
|
|
.publisher-published-rail .marketplace-icon {
|
|
width: 22px;
|
|
height: 22px;
|
|
}
|
|
|
|
.publisher-published-rail .marketplace-icon-glyph {
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1100px) {
|
|
.browse-page .publisher-directory-list.publisher-directory-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.browse-page .publisher-directory-list.publisher-directory-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
/* Quick links — category pills */
|
|
|
|
.home-quick-links {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.home-quick-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 10px 16px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
background: var(--surface);
|
|
font-size: var(--fs-sm);
|
|
font-weight: 500;
|
|
color: var(--ink-soft);
|
|
text-decoration: none;
|
|
transition: all 0.15s ease;
|
|
}
|
|
|
|
.home-quick-link:hover {
|
|
border-color: var(--border-ui-hover);
|
|
color: var(--ink);
|
|
background: var(--hover-bg);
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.home-quick-link-icon {
|
|
color: var(--accent);
|
|
opacity: 0.7;
|
|
}
|
|
|
|
/* Categories grid */
|
|
|
|
.home-categories {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
|
|
gap: 12px;
|
|
margin-top: var(--space-5);
|
|
}
|
|
|
|
.home-category-card {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
padding: 18px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
background: var(--surface);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.home-category-card:hover {
|
|
border-color: var(--border-ui-hover);
|
|
transform: translateY(-2px);
|
|
box-shadow: var(--shadow-hover);
|
|
}
|
|
|
|
.home-category-icon {
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: var(--r-sm);
|
|
display: grid;
|
|
place-items: center;
|
|
font-size: 1.25rem;
|
|
}
|
|
|
|
.home-category-icon.productivity {
|
|
background: rgba(161, 161, 161, 0.1);
|
|
}
|
|
.home-category-icon.ai {
|
|
background: rgba(220, 38, 38, 0.1);
|
|
}
|
|
.home-category-icon.developer {
|
|
background: rgba(161, 161, 161, 0.1);
|
|
}
|
|
.home-category-icon.design {
|
|
background: rgba(220, 38, 38, 0.1);
|
|
}
|
|
.home-category-icon.analytics {
|
|
background: rgba(161, 161, 161, 0.1);
|
|
}
|
|
.home-category-icon.security {
|
|
background: rgba(220, 38, 38, 0.1);
|
|
}
|
|
.home-category-icon.automation {
|
|
background: rgba(161, 161, 161, 0.1);
|
|
}
|
|
.home-category-icon.media {
|
|
background: rgba(220, 38, 38, 0.1);
|
|
}
|
|
|
|
.home-category-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
}
|
|
|
|
.home-category-name {
|
|
font-weight: 600;
|
|
font-size: var(--fs-base);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.home-category-count {
|
|
font-size: var(--fs-xs);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
/* Stats bar */
|
|
|
|
.home-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 24px;
|
|
padding: var(--space-5) var(--space-6);
|
|
background: var(--surface);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
margin-top: var(--space-6);
|
|
}
|
|
|
|
.home-staff-picks-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(var(--staff-picks-cols-lg, 6), minmax(0, 1fr));
|
|
gap: 16px;
|
|
}
|
|
|
|
.home-stat {
|
|
text-align: center;
|
|
}
|
|
|
|
.home-stat-value {
|
|
font-family: var(--font-display);
|
|
font-size: var(--fs-2xl);
|
|
font-weight: 700;
|
|
color: var(--ink);
|
|
letter-spacing: -0.02em;
|
|
}
|
|
|
|
.home-stat-label {
|
|
font-size: var(--fs-sm);
|
|
color: var(--ink-soft);
|
|
margin-top: 4px;
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.home-hero-panels {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
|
|
.home-stats {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
|
|
.home-staff-picks-grid {
|
|
grid-template-columns: repeat(var(--staff-picks-cols-md, 3), minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.home-hero {
|
|
padding: var(--space-5) var(--space-4);
|
|
}
|
|
|
|
.home-hero-grid {
|
|
gap: var(--space-5);
|
|
}
|
|
|
|
.home-hero-panels {
|
|
grid-template-columns: 1fr 1fr;
|
|
}
|
|
|
|
.home-hero-search-btn {
|
|
padding: 0 14px;
|
|
}
|
|
|
|
.home-hero-search-btn span {
|
|
display: none;
|
|
}
|
|
|
|
.home-section {
|
|
padding: var(--space-5) var(--space-4);
|
|
}
|
|
|
|
.home-categories {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
|
|
.home-staff-picks-grid {
|
|
grid-template-columns: repeat(var(--staff-picks-cols-sm, 2), minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 560px) {
|
|
.skill-list-item,
|
|
.skill-list-item-has-creator,
|
|
.skill-list-item-with-taxonomy {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
padding: 14px 16px;
|
|
gap: 12px;
|
|
}
|
|
|
|
.browse-list-head {
|
|
display: none;
|
|
}
|
|
|
|
.skill-list-item-meta {
|
|
grid-column: 1;
|
|
justify-content: flex-start;
|
|
min-width: 0;
|
|
max-width: none;
|
|
text-align: left;
|
|
}
|
|
|
|
.skill-list-item-taxonomy {
|
|
grid-column: 1;
|
|
}
|
|
|
|
.skill-list-item-meta-item.is-updated {
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.skill-list-item-skill .skill-list-item-owner {
|
|
flex-basis: 100%;
|
|
}
|
|
|
|
.skill-list-item-skill .skill-list-item-summary {
|
|
display: none;
|
|
}
|
|
|
|
.browse-page .skill-list-item > .marketplace-icon {
|
|
display: none;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-main {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.browse-page
|
|
.publisher-directory-list
|
|
.publisher-card-list
|
|
.publisher-card-main
|
|
> .marketplace-icon {
|
|
display: none;
|
|
}
|
|
|
|
.home-hero-panels {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.home-stats {
|
|
grid-template-columns: 1fr 1fr;
|
|
padding: var(--space-4);
|
|
gap: 16px;
|
|
}
|
|
|
|
.home-staff-picks-grid {
|
|
grid-template-columns: repeat(var(--staff-picks-cols-xs, 1), minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
/* ===== Browse Pages ===== */
|
|
|
|
.browse-page {
|
|
width: 100%;
|
|
max-width: 1296px;
|
|
margin: 0 auto;
|
|
padding: 48px 48px 80px;
|
|
--browse-sticky-top: calc(128px + var(--space-4));
|
|
}
|
|
|
|
body:has(.browse-page-borderless-header) .navbar {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.browse-page-narrow {
|
|
width: 100%;
|
|
max-width: var(--page-narrow);
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.browse-page-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: var(--space-3);
|
|
margin-bottom: 18px;
|
|
}
|
|
|
|
.browse-page-header-main {
|
|
display: grid;
|
|
gap: 12px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.official-page-header {
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.official-page-description {
|
|
max-width: 760px;
|
|
color: var(--ink-muted);
|
|
font-size: 18px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.browse-page-search {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
background: var(--surface);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-sm);
|
|
padding: 0 var(--space-3);
|
|
height: 38px;
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
margin-bottom: var(--space-4);
|
|
}
|
|
|
|
.browse-page-search:focus-within {
|
|
border-color: var(--border-ui-active);
|
|
}
|
|
|
|
.browse-search-clear {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 30px;
|
|
height: 30px;
|
|
flex: 0 0 30px;
|
|
border: none;
|
|
border-radius: 7px;
|
|
background: transparent;
|
|
color: color-mix(in srgb, var(--accent) 70%, var(--ink-soft));
|
|
cursor: pointer;
|
|
transition:
|
|
color 0.15s ease,
|
|
background 0.15s ease;
|
|
}
|
|
|
|
.browse-search-clear:hover,
|
|
.browse-search-clear:focus-visible {
|
|
color: var(--accent);
|
|
background: var(--accent-subtle);
|
|
outline: none;
|
|
}
|
|
|
|
.browse-controls {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.browse-controls-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 20px;
|
|
min-height: 44px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.browse-controls-divider {
|
|
width: 1px;
|
|
height: 18px;
|
|
flex-shrink: 0;
|
|
background: var(--line);
|
|
}
|
|
|
|
.browse-tabs {
|
|
display: flex;
|
|
align-items: stretch;
|
|
align-self: stretch;
|
|
gap: 28px;
|
|
min-width: 0;
|
|
overflow-x: auto;
|
|
scrollbar-width: none;
|
|
-webkit-overflow-scrolling: touch;
|
|
}
|
|
|
|
.browse-tabs::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.browse-tab {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
align-self: stretch;
|
|
padding: 0 2px;
|
|
border: none;
|
|
border-bottom: 2px solid transparent;
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
font: inherit;
|
|
font-size: 14px;
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
white-space: nowrap;
|
|
transition:
|
|
color 0.15s ease,
|
|
border-color 0.15s ease;
|
|
}
|
|
|
|
.browse-tab > svg {
|
|
flex-shrink: 0;
|
|
margin-right: 6px;
|
|
}
|
|
|
|
.browse-tab:hover,
|
|
.browse-tab:focus-visible {
|
|
color: var(--ink);
|
|
outline: none;
|
|
}
|
|
|
|
.browse-tab.is-active {
|
|
border-bottom-color: var(--ink);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.browse-tab-count {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-width: 1.25rem;
|
|
margin-left: 6px;
|
|
padding: 2px 6px;
|
|
border-radius: var(--r-pill);
|
|
background: color-mix(in srgb, var(--ink) 8%, transparent);
|
|
color: var(--ink-soft);
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
font-variant-numeric: tabular-nums;
|
|
line-height: 1;
|
|
}
|
|
|
|
.browse-tab.is-active .browse-tab-count {
|
|
background: color-mix(in srgb, var(--ink) 12%, transparent);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.browse-sort-select {
|
|
position: relative;
|
|
flex: 0 0 auto;
|
|
min-width: 0;
|
|
max-width: min(220px, 34vw);
|
|
}
|
|
|
|
.browse-sort-trigger {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
box-sizing: border-box;
|
|
min-height: 36px;
|
|
padding: 7px 4px 7px 2px;
|
|
border: none;
|
|
border-radius: var(--r-sm);
|
|
background: transparent;
|
|
flex-shrink: 0;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
font: inherit;
|
|
font-size: 14px;
|
|
font-weight: 600;
|
|
line-height: 1.25;
|
|
transition: color 0.15s ease;
|
|
}
|
|
|
|
.browse-sort-trigger:hover,
|
|
.browse-sort-trigger[aria-expanded="true"] {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.browse-sort-trigger:focus-visible {
|
|
outline: 2px solid var(--oc-focus-ring);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.browse-sort-label {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
font-size: 14px;
|
|
text-align: left;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.browse-sort-chevron {
|
|
flex-shrink: 0;
|
|
color: color-mix(in srgb, var(--ink-soft) 80%, transparent);
|
|
opacity: 0.74;
|
|
transition: transform 0.15s ease;
|
|
}
|
|
|
|
.browse-sort-chevron.is-open {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
.browse-sort-panel {
|
|
position: absolute;
|
|
top: calc(100% + 6px);
|
|
left: 0;
|
|
z-index: 50;
|
|
width: max-content;
|
|
min-width: 190px;
|
|
max-width: min(260px, calc(100vw - 32px));
|
|
overflow: hidden;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--oc-radius-surface);
|
|
background: var(--surface);
|
|
box-shadow: var(--oc-shadow-lg);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .browse-sort-panel {
|
|
box-shadow: var(--oc-shadow-lg);
|
|
}
|
|
|
|
.browse-sort-options {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
margin: 0;
|
|
padding: 8px;
|
|
list-style: none;
|
|
}
|
|
|
|
.browse-sort-option-wrap {
|
|
display: block;
|
|
}
|
|
|
|
.browse-sort-option {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
width: 100%;
|
|
padding: 9px 10px;
|
|
border: none;
|
|
border-radius: var(--oc-radius-inset);
|
|
background: transparent;
|
|
color: var(--ink);
|
|
cursor: pointer;
|
|
font: inherit;
|
|
font-size: 14px;
|
|
font-weight: 600;
|
|
line-height: 1.3;
|
|
text-align: left;
|
|
transition: background 0.12s ease;
|
|
}
|
|
|
|
.browse-sort-option:hover,
|
|
.browse-sort-option:focus-visible {
|
|
background: color-mix(in srgb, var(--ink) 7%, transparent);
|
|
outline: none;
|
|
}
|
|
|
|
.browse-sort-option.is-selected {
|
|
background: color-mix(in srgb, var(--ink) 6%, transparent);
|
|
}
|
|
|
|
.browse-sort-option-mark {
|
|
margin-left: auto;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 16px;
|
|
height: 16px;
|
|
flex-shrink: 0;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.browse-sort-option-label {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.browse-actions {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 12px;
|
|
flex-shrink: 0;
|
|
margin-left: auto;
|
|
}
|
|
|
|
.browse-search-trigger {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 36px;
|
|
height: 36px;
|
|
flex: 0 0 36px;
|
|
padding: 0;
|
|
border: 0;
|
|
border-radius: var(--r-sm);
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
transition: color 0.15s ease;
|
|
}
|
|
|
|
.browse-search-trigger:hover,
|
|
.browse-search-trigger:focus-visible,
|
|
.browse-search-trigger.is-active {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.browse-search-trigger:focus-visible {
|
|
outline: 2px solid var(--oc-focus-ring);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.browse-search-trigger:disabled {
|
|
cursor: default;
|
|
opacity: 0.5;
|
|
}
|
|
|
|
.browse-search-panel {
|
|
display: none;
|
|
}
|
|
|
|
.browse-search-panel.is-open {
|
|
display: block;
|
|
order: 10;
|
|
flex: 1 1 100%;
|
|
width: 100%;
|
|
}
|
|
|
|
.browse-search-panel .browse-search-control {
|
|
width: 100%;
|
|
min-height: 40px;
|
|
}
|
|
|
|
.browse-search-control {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
box-sizing: border-box;
|
|
width: min(280px, 28vw);
|
|
min-height: 40px;
|
|
padding: 4px 6px 4px 14px;
|
|
border: 1px solid var(--border-ui);
|
|
border-radius: var(--oc-radius-control);
|
|
background: color-mix(in srgb, var(--surface) 95%, var(--bg));
|
|
transition:
|
|
border-color 0.15s ease,
|
|
box-shadow 0.15s ease;
|
|
}
|
|
|
|
.browse-search-control:focus-within {
|
|
border-color: color-mix(in srgb, var(--accent) 30%, transparent);
|
|
box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 6%, transparent);
|
|
}
|
|
|
|
.browse-search-icon {
|
|
flex-shrink: 0;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.browse-search-input::-webkit-search-cancel-button,
|
|
.browse-search-input::-webkit-search-decoration {
|
|
display: none;
|
|
-webkit-appearance: none;
|
|
}
|
|
|
|
.browse-filter-toggle {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-height: 36px;
|
|
padding: 0 2px;
|
|
border: none;
|
|
border-bottom: 2px solid transparent;
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
font: inherit;
|
|
font-size: 14px;
|
|
font-weight: 560;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.browse-filter-toggle:hover,
|
|
.browse-filter-toggle:focus-visible,
|
|
.browse-filter-toggle.is-active {
|
|
color: var(--ink);
|
|
outline: none;
|
|
}
|
|
|
|
.browse-filter-toggle.is-active {
|
|
border-bottom-color: var(--ink);
|
|
}
|
|
|
|
.browse-category-select {
|
|
position: relative;
|
|
flex: 0 1 auto;
|
|
min-width: 0;
|
|
max-width: min(220px, 34vw);
|
|
}
|
|
|
|
.browse-category-trigger {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
box-sizing: border-box;
|
|
width: 100%;
|
|
min-height: 36px;
|
|
padding: 7px 4px 7px 2px;
|
|
border: none;
|
|
border-radius: var(--r-sm);
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
font: inherit;
|
|
font-size: 14px;
|
|
font-weight: 600;
|
|
line-height: 1.25;
|
|
transition: color 0.15s ease;
|
|
}
|
|
|
|
.browse-category-trigger:hover,
|
|
.browse-category-trigger[aria-expanded="true"] {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.browse-category-trigger:focus-visible {
|
|
outline: 2px solid var(--oc-focus-ring);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.browse-category-trigger-main {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
flex: 1;
|
|
}
|
|
|
|
.browse-category-icon,
|
|
.browse-category-chevron {
|
|
flex-shrink: 0;
|
|
color: color-mix(in srgb, var(--ink-soft) 80%, transparent);
|
|
}
|
|
|
|
.browse-category-chevron {
|
|
opacity: 0.74;
|
|
transition: transform 0.15s ease;
|
|
}
|
|
|
|
.browse-category-chevron.is-open {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
.browse-category-label {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-align: left;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.browse-category-panel {
|
|
position: absolute;
|
|
top: calc(100% + 6px);
|
|
right: 0;
|
|
z-index: 50;
|
|
display: flex;
|
|
flex-direction: column;
|
|
width: min(320px, calc(100vw - 32px));
|
|
max-height: min(400px, 58vh);
|
|
overflow: hidden;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--oc-radius-surface);
|
|
background: var(--surface);
|
|
box-shadow: var(--oc-shadow-lg);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .browse-category-panel {
|
|
box-shadow: var(--oc-shadow-lg);
|
|
}
|
|
|
|
.browse-category-search-wrap {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 10px 12px;
|
|
border-bottom: 1px solid var(--line);
|
|
background: var(--surface);
|
|
}
|
|
|
|
.browse-category-search-icon {
|
|
flex-shrink: 0;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.browse-category-search {
|
|
all: unset;
|
|
box-sizing: border-box;
|
|
flex: 1;
|
|
min-width: 0;
|
|
color: var(--ink);
|
|
font-size: 14px;
|
|
}
|
|
|
|
.browse-category-search::placeholder {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.browse-category-options {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
margin: 0;
|
|
padding: 8px;
|
|
list-style: none;
|
|
overflow-y: auto;
|
|
overscroll-behavior: contain;
|
|
scrollbar-color: color-mix(in srgb, var(--ink-soft) 60%, transparent) transparent;
|
|
scrollbar-width: thin;
|
|
}
|
|
|
|
.browse-category-options::-webkit-scrollbar {
|
|
width: 8px;
|
|
}
|
|
|
|
.browse-category-options::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
|
|
.browse-category-options::-webkit-scrollbar-thumb {
|
|
border: 2px solid transparent;
|
|
border-radius: 999px;
|
|
background: color-mix(in srgb, var(--ink-soft) 56%, transparent);
|
|
background-clip: content-box;
|
|
}
|
|
|
|
.browse-category-option-wrap {
|
|
display: block;
|
|
}
|
|
|
|
.browse-category-option-wrap.is-reset {
|
|
margin-bottom: 4px;
|
|
padding-bottom: 8px;
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.browse-category-option {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
width: 100%;
|
|
padding: 9px 10px;
|
|
border: none;
|
|
border-radius: 10px;
|
|
background: transparent;
|
|
color: var(--ink);
|
|
cursor: pointer;
|
|
font: inherit;
|
|
font-size: 14px;
|
|
font-weight: 600;
|
|
line-height: 1.3;
|
|
text-align: left;
|
|
transition: background 0.12s ease;
|
|
}
|
|
|
|
.browse-category-option:hover,
|
|
.browse-category-option:focus-visible {
|
|
background: color-mix(in srgb, var(--ink) 7%, transparent);
|
|
outline: none;
|
|
}
|
|
|
|
.browse-category-option.is-selected {
|
|
background: color-mix(in srgb, var(--ink) 9%, transparent);
|
|
}
|
|
|
|
.browse-category-option-icon {
|
|
flex-shrink: 0;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.browse-category-option-mark {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 18px;
|
|
height: 18px;
|
|
flex-shrink: 0;
|
|
border: 1px solid var(--line);
|
|
border-radius: 50%;
|
|
background: color-mix(in srgb, var(--surface) 70%, transparent);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.browse-category-option-dot {
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 50%;
|
|
background: currentColor;
|
|
}
|
|
|
|
.browse-category-empty {
|
|
padding: 12px 10px;
|
|
color: var(--ink-soft);
|
|
font-size: 13px;
|
|
}
|
|
|
|
.browse-topic-chips {
|
|
display: flex;
|
|
gap: 8px;
|
|
overflow-x: auto;
|
|
padding-bottom: 2px;
|
|
scrollbar-width: none;
|
|
-webkit-overflow-scrolling: touch;
|
|
}
|
|
|
|
.browse-topic-chips::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.browse-topic-chip-skeleton {
|
|
width: 86px;
|
|
height: 30px;
|
|
flex: 0 0 auto;
|
|
border-radius: var(--r-pill);
|
|
}
|
|
|
|
.browse-topic-chip-skeleton:nth-child(3n + 1) {
|
|
width: 104px;
|
|
}
|
|
|
|
.browse-topic-chip-skeleton:nth-child(3n) {
|
|
width: 72px;
|
|
}
|
|
|
|
.browse-topic-chip {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 4px;
|
|
min-height: 30px;
|
|
padding: 0 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-pill);
|
|
background: color-mix(in srgb, var(--surface) 72%, transparent);
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
font-family: var(--font-mono);
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.browse-topic-chip-label {
|
|
line-height: 1;
|
|
}
|
|
|
|
.browse-topic-chip-clear {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 18px;
|
|
height: 18px;
|
|
padding: 0;
|
|
border: 0;
|
|
border-radius: var(--r-pill);
|
|
background: transparent;
|
|
color: color-mix(in srgb, var(--ink-soft) 82%, transparent);
|
|
cursor: pointer;
|
|
transition:
|
|
background-color 0.14s ease,
|
|
color 0.14s ease;
|
|
}
|
|
|
|
.browse-topic-chip-clear:hover,
|
|
.browse-topic-chip-clear:focus-visible {
|
|
background: color-mix(in srgb, var(--ink) 8%, transparent);
|
|
color: var(--ink);
|
|
outline: none;
|
|
}
|
|
|
|
.browse-topic-chip.is-active {
|
|
padding-right: 6px;
|
|
cursor: default;
|
|
}
|
|
|
|
.browse-topic-chip:hover,
|
|
.browse-topic-chip:focus-visible,
|
|
.browse-topic-chip.is-active {
|
|
border-color: color-mix(in srgb, var(--ink-soft) 45%, var(--line));
|
|
color: var(--ink);
|
|
outline: none;
|
|
}
|
|
|
|
.browse-chip-tabs {
|
|
display: flex;
|
|
flex-wrap: nowrap;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
overflow-x: auto;
|
|
padding-bottom: 2px;
|
|
scrollbar-width: none;
|
|
-webkit-overflow-scrolling: touch;
|
|
}
|
|
|
|
.browse-chip-tabs::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.browse-chip-tab {
|
|
display: inline-flex;
|
|
flex-shrink: 0;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 6px;
|
|
min-height: 28px;
|
|
padding: 0 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 999px;
|
|
background: color-mix(in srgb, var(--surface) 72%, transparent);
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
font: inherit;
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
line-height: 1;
|
|
white-space: nowrap;
|
|
transition:
|
|
background 0.14s ease,
|
|
border-color 0.14s ease,
|
|
color 0.14s ease;
|
|
}
|
|
|
|
.browse-chip-tab:hover,
|
|
.browse-chip-tab:focus-visible {
|
|
border-color: color-mix(in srgb, var(--ink-soft) 45%, var(--line));
|
|
background: color-mix(in srgb, var(--ink) 6%, transparent);
|
|
color: var(--ink);
|
|
outline: none;
|
|
}
|
|
|
|
.browse-chip-tab.is-active {
|
|
border-color: color-mix(in srgb, var(--ink-soft) 50%, var(--line));
|
|
background: color-mix(in srgb, var(--ink) 8%, transparent);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.browse-chip-tab-count {
|
|
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.browse-chip-tab.is-active .browse-chip-tab-count {
|
|
color: color-mix(in srgb, var(--ink) 72%, var(--ink-soft));
|
|
}
|
|
|
|
.audits-page {
|
|
max-width: 1180px;
|
|
}
|
|
|
|
.audits-page-header {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.audits-title {
|
|
margin: 0;
|
|
color: var(--ink);
|
|
font-size: var(--fs-3xl);
|
|
font-weight: 760;
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.audits-subtitle {
|
|
margin: 8px 0 0;
|
|
max-width: 620px;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.audits-tabs {
|
|
display: inline-flex;
|
|
gap: 4px;
|
|
padding: 4px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
background: var(--surface);
|
|
}
|
|
|
|
.audits-tab {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-height: 34px;
|
|
padding: 0 14px;
|
|
border: 0;
|
|
border-radius: calc(var(--r-md) - 4px);
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
font: inherit;
|
|
font-size: var(--fs-sm);
|
|
font-weight: 680;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.audits-tab[data-active="true"] {
|
|
background: var(--surface-muted);
|
|
color: var(--ink);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .stars-view-tabs .publisher-filter-tab.is-active,
|
|
[data-theme-resolved="light"] .audits-tab[data-active="true"] {
|
|
background: var(--hover-bg);
|
|
}
|
|
|
|
.audits-table-shell {
|
|
overflow: hidden;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-sm);
|
|
background: var(--surface);
|
|
}
|
|
|
|
.audits-table-toolbar {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
margin: 0 0 12px;
|
|
}
|
|
|
|
.audits-table {
|
|
display: grid;
|
|
min-width: 0;
|
|
}
|
|
|
|
.audits-table-row {
|
|
display: grid;
|
|
grid-template-columns:
|
|
minmax(460px, 1.9fr) minmax(132px, 0.55fr) minmax(132px, 0.55fr)
|
|
minmax(108px, 0.35fr);
|
|
column-gap: 32px;
|
|
row-gap: 16px;
|
|
align-items: center;
|
|
min-width: 0;
|
|
padding: 16px 18px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
|
|
}
|
|
|
|
.audits-table-row:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.audits-table-head {
|
|
padding-top: 10px;
|
|
padding-bottom: 10px;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 780;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.02em;
|
|
background: color-mix(in srgb, var(--surface-muted) 50%, transparent);
|
|
}
|
|
|
|
.audits-table-head > div:nth-child(2),
|
|
.audits-table-head > div:nth-child(3) {
|
|
text-align: right;
|
|
}
|
|
|
|
.audits-downloads-header,
|
|
.audits-downloads-cell {
|
|
justify-content: flex-end;
|
|
text-align: right;
|
|
}
|
|
|
|
.audits-item-cell {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.audits-item-copy {
|
|
display: grid;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.audits-item-name {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
color: var(--ink);
|
|
font-weight: 760;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.audits-item-name span {
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-mono);
|
|
font-weight: 520;
|
|
}
|
|
|
|
.audits-item-copy p {
|
|
margin: 0;
|
|
overflow: hidden;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.35;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.audits-signal-cell {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.audits-downloads-cell {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
color: var(--ink);
|
|
font-family: var(--font-mono);
|
|
font-weight: 680;
|
|
}
|
|
|
|
.audits-load-more {
|
|
display: flex;
|
|
margin: 16px auto;
|
|
}
|
|
|
|
.audits-error {
|
|
margin: 14px 18px 0;
|
|
color: var(--oc-status-error-fg);
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.audits-sentinel {
|
|
height: 1px;
|
|
}
|
|
|
|
.audits-skeleton-row {
|
|
min-height: 82px;
|
|
}
|
|
|
|
.audits-skeleton-icon,
|
|
.audits-skeleton-copy,
|
|
.audits-skeleton-pill,
|
|
.audits-skeleton-stat {
|
|
display: block;
|
|
overflow: hidden;
|
|
border-radius: var(--r-sm);
|
|
background: linear-gradient(
|
|
90deg,
|
|
color-mix(in srgb, var(--surface-muted) 70%, transparent),
|
|
color-mix(in srgb, var(--line) 72%, transparent),
|
|
color-mix(in srgb, var(--surface-muted) 70%, transparent)
|
|
);
|
|
background-size: 220% 100%;
|
|
animation: skeleton-shimmer 1.15s ease-in-out infinite;
|
|
}
|
|
|
|
.audits-skeleton-icon {
|
|
width: 42px;
|
|
height: 42px;
|
|
}
|
|
|
|
.audits-skeleton-copy {
|
|
width: min(340px, 70%);
|
|
height: 42px;
|
|
}
|
|
|
|
.audits-skeleton-pill {
|
|
width: 82px;
|
|
height: 28px;
|
|
}
|
|
|
|
.audits-skeleton-stat {
|
|
justify-self: end;
|
|
width: 64px;
|
|
height: 18px;
|
|
}
|
|
|
|
@keyframes skeleton-shimmer {
|
|
from {
|
|
background-position: 120% 0;
|
|
}
|
|
to {
|
|
background-position: -120% 0;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.audits-table-head {
|
|
display: none;
|
|
}
|
|
|
|
.audits-table-row {
|
|
grid-template-columns: 1fr;
|
|
gap: 12px;
|
|
align-items: start;
|
|
}
|
|
|
|
.audits-signal-cell {
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.audits-signal-cell::before,
|
|
.audits-downloads-cell::before {
|
|
min-width: 112px;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 760;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.02em;
|
|
}
|
|
|
|
.audits-table-row > .audits-signal-cell:nth-child(2)::before {
|
|
content: "ClawScan";
|
|
}
|
|
|
|
.audits-table-row > .audits-signal-cell:nth-child(3)::before {
|
|
content: "VirusTotal";
|
|
}
|
|
|
|
.audits-downloads-cell {
|
|
justify-content: flex-start;
|
|
text-align: left;
|
|
}
|
|
|
|
.audits-downloads-cell::before {
|
|
content: "Downloads";
|
|
}
|
|
}
|
|
|
|
.browse-title {
|
|
font-family: var(--font-display);
|
|
font-size: 42px;
|
|
font-weight: 600;
|
|
line-height: 1.05;
|
|
letter-spacing: -0.035em;
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 12px;
|
|
}
|
|
|
|
.browse-count {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
line-height: 1;
|
|
color: var(--ink-muted);
|
|
font-family: var(--font-mono);
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.browse-title {
|
|
font-size: 32px;
|
|
}
|
|
|
|
.official-page-description {
|
|
font-size: 16px;
|
|
}
|
|
}
|
|
|
|
.browse-sidebar-toggle {
|
|
display: none;
|
|
align-items: center;
|
|
padding: var(--space-2) var(--space-3);
|
|
font-size: var(--fs-sm);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-sm);
|
|
background: var(--surface);
|
|
cursor: pointer;
|
|
min-height: 44px;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.browse-sidebar-toggle:hover {
|
|
border-color: var(--border-ui-hover);
|
|
}
|
|
|
|
.browse-search-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
background: var(--surface);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-sm);
|
|
padding: 0 var(--space-3);
|
|
height: 36px;
|
|
}
|
|
|
|
.browse-search-bar:focus-within {
|
|
border-color: var(--border-ui-active);
|
|
}
|
|
|
|
.browse-search-full {
|
|
width: 100%;
|
|
max-width: none;
|
|
box-sizing: border-box;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.browse-search-input {
|
|
all: unset;
|
|
box-sizing: border-box;
|
|
flex: 1;
|
|
min-width: 0;
|
|
color: var(--ink);
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.browse-search-input::placeholder {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.browse-layout {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 0;
|
|
align-items: start;
|
|
}
|
|
|
|
.browse-layout-with-sidebar {
|
|
grid-template-columns: minmax(168px, 188px) minmax(0, 1fr);
|
|
gap: 28px;
|
|
}
|
|
|
|
.browse-sidebar {
|
|
position: sticky;
|
|
top: var(--browse-sticky-top);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-3);
|
|
padding-top: 4px;
|
|
padding-right: 16px;
|
|
border-right: 1px solid var(--line);
|
|
max-height: calc(100vh - var(--browse-sticky-top) - var(--space-4));
|
|
overflow-y: auto;
|
|
scrollbar-width: thin;
|
|
}
|
|
|
|
.sidebar-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0;
|
|
border: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.sidebar-section + .sidebar-section {
|
|
margin-top: var(--space-3);
|
|
}
|
|
|
|
.sidebar-title {
|
|
font-size: 0.68rem;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
color: var(--ink-soft);
|
|
opacity: 0.78;
|
|
padding: 2px 0 1px;
|
|
}
|
|
|
|
.sidebar-option {
|
|
all: unset;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
padding: 5px 0;
|
|
font-size: var(--fs-sm);
|
|
font-weight: 500;
|
|
line-height: 1.25;
|
|
color: color-mix(in srgb, var(--ink-soft) 82%, var(--ink));
|
|
cursor: pointer;
|
|
min-height: 28px;
|
|
}
|
|
|
|
.sidebar-option:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.sidebar-option:focus-visible {
|
|
color: var(--ink);
|
|
outline: 2px solid color-mix(in srgb, var(--ink) 35%, transparent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.sidebar-option:disabled {
|
|
cursor: default;
|
|
opacity: 0.62;
|
|
}
|
|
|
|
.sidebar-option.is-active {
|
|
color: var(--accent);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.sidebar-option-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
color: var(--ink-soft);
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.sidebar-option.is-active .sidebar-option-icon {
|
|
color: var(--accent);
|
|
opacity: 1;
|
|
}
|
|
|
|
.sidebar-category {
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-width: 0;
|
|
}
|
|
|
|
.sidebar-category-topics {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 5px;
|
|
padding: 1px 0 8px 23px;
|
|
}
|
|
|
|
.sidebar-topic-chip {
|
|
all: unset;
|
|
box-sizing: border-box;
|
|
max-width: 100%;
|
|
padding: 3px 6px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 84%, transparent);
|
|
border-radius: var(--r-pill);
|
|
background: color-mix(in srgb, var(--surface-muted) 72%, transparent);
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
font-family: var(--font-mono);
|
|
font-size: 0.66rem;
|
|
font-weight: 550;
|
|
line-height: 1.25;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.sidebar-topic-chip:hover {
|
|
border-color: color-mix(in srgb, var(--ink-soft) 40%, var(--line));
|
|
color: var(--ink);
|
|
}
|
|
|
|
.sidebar-topic-chip.is-active {
|
|
border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
|
|
background: color-mix(in srgb, var(--accent) 12%, transparent);
|
|
color: var(--accent);
|
|
font-weight: 650;
|
|
}
|
|
|
|
.sidebar-checkbox {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
padding: 5px 0;
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.25;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
min-height: 28px;
|
|
}
|
|
|
|
.sidebar-checkbox:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.sidebar-checkbox input[type="checkbox"] {
|
|
accent-color: var(--accent);
|
|
}
|
|
|
|
@media (min-width: 1081px) {
|
|
.browse-category-select-responsive {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1080px) {
|
|
.browse-layout-with-sidebar {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 0;
|
|
}
|
|
|
|
.browse-category-sidebar {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.browse-results {
|
|
min-width: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
}
|
|
|
|
.browse-results-toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
}
|
|
|
|
.browse-results-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.browse-results-count {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
font-size: var(--fs-sm);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.browse-clear-btn {
|
|
all: unset;
|
|
font-size: var(--fs-xs);
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.browse-clear-btn:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.browse-toolbar-checkbox {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
min-height: 30px;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.browse-toolbar-checkbox:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.browse-toolbar-checkbox input[type="checkbox"] {
|
|
accent-color: var(--accent);
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.browse-page .skill-list-item,
|
|
.browse-page .skill-list-item-has-creator,
|
|
.browse-page .skill-list-item-with-taxonomy {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 12px;
|
|
padding: 10px 8px;
|
|
}
|
|
|
|
.browse-page .browse-list-head {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 12px;
|
|
padding: 0 8px 8px;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.browse-page .browse-list-head-icon-spacer,
|
|
.browse-page .browse-list-head-label:nth-of-type(3) {
|
|
display: none;
|
|
}
|
|
|
|
.browse-page .browse-list-head-label:nth-of-type(2) {
|
|
grid-column: 1;
|
|
}
|
|
|
|
.browse-page .browse-list-head-stat {
|
|
grid-column: 2;
|
|
justify-self: end;
|
|
}
|
|
|
|
.browse-page .skill-list-item > .marketplace-icon {
|
|
display: none;
|
|
}
|
|
|
|
.browse-page .browse-results-skeleton-icon {
|
|
display: none;
|
|
}
|
|
|
|
.browse-page .skill-list-item-body {
|
|
grid-column: 1;
|
|
max-width: none;
|
|
gap: 4px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.browse-page .skill-list-item-main {
|
|
flex-wrap: nowrap;
|
|
gap: 6px 10px;
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.browse-page .skill-list-item-name,
|
|
.browse-page .skill-list-item-skill .skill-list-item-owner,
|
|
.browse-page .skill-list-item-owner {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
flex-basis: auto;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.browse-page .skill-list-item-taxonomy {
|
|
display: none;
|
|
}
|
|
|
|
.browse-page .skill-list-item-summary {
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 1;
|
|
}
|
|
|
|
.browse-page .skill-list-item-meta {
|
|
grid-column: 2;
|
|
justify-content: flex-end;
|
|
align-self: center;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
max-width: none;
|
|
margin-top: 0;
|
|
font-size: 12px;
|
|
text-align: right;
|
|
flex-wrap: nowrap;
|
|
}
|
|
|
|
.browse-page .skill-list-item-meta-item.is-updated {
|
|
display: none;
|
|
}
|
|
|
|
.browse-page .browse-results-skeleton-updated {
|
|
display: none;
|
|
}
|
|
|
|
.skill-list-item-summary {
|
|
-webkit-line-clamp: 2;
|
|
}
|
|
|
|
:is(.skill-detail-page, .plugin-detail-page) .detail-mobile-tabs.tab-card {
|
|
gap: 0;
|
|
overflow: hidden;
|
|
border: var(--detail-mobile-surface-border);
|
|
border-radius: var(--detail-mobile-surface-radius);
|
|
background: var(--detail-mobile-surface-bg);
|
|
}
|
|
|
|
:is(.skill-detail-page, .plugin-detail-page) .tab-card {
|
|
overflow: visible;
|
|
}
|
|
|
|
:is(.skill-detail-page, .plugin-detail-page) .detail-mobile-tabs .tab-header {
|
|
gap: 16px;
|
|
padding: 0 var(--detail-mobile-surface-padding);
|
|
overflow-x: auto;
|
|
background: transparent;
|
|
}
|
|
|
|
:is(.skill-detail-page, .plugin-detail-page) .tab-header {
|
|
gap: 16px;
|
|
padding: 0;
|
|
overflow-x: auto;
|
|
}
|
|
|
|
:is(.skill-detail-page, .plugin-detail-page) .tab-button {
|
|
flex: 0 0 auto;
|
|
justify-content: center;
|
|
}
|
|
|
|
:is(.skill-detail-page, .plugin-detail-page) .detail-mobile-tabs .tab-body {
|
|
gap: 16px;
|
|
padding: var(--detail-mobile-surface-padding);
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
}
|
|
|
|
.plugin-detail-page
|
|
.detail-mobile-master-panel-content
|
|
.detail-mobile-tabs
|
|
.tab-body.skill-readme-body {
|
|
padding-top: calc(var(--detail-mobile-surface-padding) + 2px);
|
|
}
|
|
|
|
:is(.skill-detail-page, .plugin-detail-page) .tab-body {
|
|
padding: 18px 14px;
|
|
}
|
|
|
|
.browse-page {
|
|
padding: 16px 16px 40px;
|
|
--browse-sticky-top: calc(76px + var(--space-4));
|
|
}
|
|
|
|
.browse-page-search {
|
|
height: 44px;
|
|
}
|
|
|
|
.browse-search-input {
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.browse-controls {
|
|
gap: 16px;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.browse-controls-row {
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 14px 12px;
|
|
}
|
|
|
|
.browse-tabs {
|
|
order: 4;
|
|
width: 100%;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
}
|
|
|
|
.browse-tab {
|
|
flex: 1 1 0;
|
|
justify-content: center;
|
|
min-width: max-content;
|
|
min-height: 44px;
|
|
padding: 0;
|
|
text-align: center;
|
|
}
|
|
|
|
.browse-sort-select {
|
|
order: 1;
|
|
max-width: calc(100% - 56px);
|
|
}
|
|
|
|
.browse-actions {
|
|
display: contents;
|
|
}
|
|
|
|
.browse-search-trigger {
|
|
order: 2;
|
|
width: 44px;
|
|
height: 44px;
|
|
margin-left: auto;
|
|
}
|
|
|
|
.browse-search-control {
|
|
width: 100%;
|
|
min-height: 44px;
|
|
flex: 1 1 100%;
|
|
}
|
|
|
|
.browse-category-select {
|
|
order: 3;
|
|
flex: 1 1 100%;
|
|
width: 100%;
|
|
max-width: none;
|
|
}
|
|
|
|
.browse-category-trigger {
|
|
width: 100%;
|
|
min-height: 48px;
|
|
justify-content: space-between;
|
|
padding: 0 16px;
|
|
border-radius: 18px;
|
|
}
|
|
|
|
.browse-controls-divider {
|
|
display: none;
|
|
}
|
|
|
|
.browse-results-toolbar {
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.browse-view-btn {
|
|
width: 38px;
|
|
height: 38px;
|
|
}
|
|
|
|
.browse-view-toggle {
|
|
display: none;
|
|
}
|
|
|
|
.publisher-card-highlight {
|
|
min-height: 0;
|
|
}
|
|
|
|
.publisher-card-highlight .publisher-card-featured-items {
|
|
display: none;
|
|
}
|
|
|
|
.browse-layout {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.browse-sidebar {
|
|
display: none;
|
|
position: static;
|
|
max-height: none;
|
|
border-right: none;
|
|
border-bottom: 1px solid var(--line);
|
|
padding-top: 0;
|
|
padding-right: 0;
|
|
padding-bottom: 16px;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
}
|
|
|
|
.browse-layout.sidebar-open .browse-sidebar {
|
|
display: flex;
|
|
}
|
|
|
|
.browse-sidebar-toggle {
|
|
display: inline-flex;
|
|
}
|
|
|
|
.browse-page-header {
|
|
justify-content: flex-start;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.browse-page-header .browse-sidebar-toggle {
|
|
order: -1;
|
|
margin-right: auto;
|
|
}
|
|
|
|
.sidebar-section {
|
|
width: 100%;
|
|
flex-direction: column;
|
|
gap: 0;
|
|
}
|
|
|
|
.sidebar-title {
|
|
width: 100%;
|
|
}
|
|
|
|
.sidebar-option,
|
|
.sidebar-checkbox {
|
|
box-sizing: border-box;
|
|
width: 100%;
|
|
padding: 8px 0;
|
|
}
|
|
}
|
|
|
|
/* ===== Detail Page Layout — Full Width ===== */
|
|
|
|
.detail-content-full {
|
|
min-width: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-4);
|
|
overflow-x: hidden;
|
|
overflow-wrap: break-word;
|
|
word-wrap: break-word;
|
|
}
|
|
|
|
/* Horizontal Metadata Bar */
|
|
.detail-meta-bar {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-3);
|
|
padding: var(--space-4);
|
|
background: var(--surface);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
overflow: hidden;
|
|
overflow-wrap: break-word;
|
|
word-wrap: break-word;
|
|
}
|
|
|
|
.meta-bar-stats {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: var(--space-4);
|
|
}
|
|
|
|
.meta-stat {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.meta-stat-value {
|
|
font-weight: 600;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.meta-stat-label {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.meta-bar-details {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: var(--space-3);
|
|
padding-top: var(--space-3);
|
|
border-top: 1px solid var(--line);
|
|
min-width: 0;
|
|
}
|
|
|
|
.meta-detail {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
font-size: var(--fs-xs);
|
|
color: var(--ink-soft);
|
|
min-width: 0;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.meta-bar-footer {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: var(--space-3);
|
|
padding-top: var(--space-3);
|
|
border-top: 1px solid var(--line);
|
|
min-width: 0;
|
|
}
|
|
|
|
.meta-bar-publisher {
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.meta-bar-tags {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.plugin-detail-code-block {
|
|
margin: 0;
|
|
white-space: pre-wrap;
|
|
overflow-wrap: anywhere;
|
|
word-break: break-word;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
.meta-bar-footer > .btn {
|
|
margin-left: auto;
|
|
}
|
|
|
|
@media (min-width: 640px) {
|
|
.detail-meta-bar {
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: var(--space-4);
|
|
}
|
|
|
|
.meta-bar-stats {
|
|
flex: 0 0 auto;
|
|
padding-right: var(--space-4);
|
|
border-right: 1px solid var(--line);
|
|
}
|
|
|
|
.meta-bar-details {
|
|
flex: 1;
|
|
padding-top: 0;
|
|
border-top: none;
|
|
}
|
|
|
|
.meta-bar-footer {
|
|
flex: 0 0 100%;
|
|
padding-top: var(--space-3);
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
}
|
|
|
|
@media (min-width: 900px) {
|
|
.detail-meta-bar {
|
|
flex-wrap: nowrap;
|
|
}
|
|
|
|
.meta-bar-footer {
|
|
flex: 0 0 auto;
|
|
padding-top: 0;
|
|
padding-left: var(--space-4);
|
|
border-top: none;
|
|
border-left: 1px solid var(--line);
|
|
}
|
|
}
|
|
|
|
/* ===== Unified Search Page ===== */
|
|
|
|
.search-page-form {
|
|
display: flex;
|
|
gap: var(--space-2);
|
|
max-width: 640px;
|
|
margin-bottom: var(--space-5);
|
|
}
|
|
|
|
.search-page-field {
|
|
padding-right: var(--space-2);
|
|
}
|
|
|
|
.search-clear-button {
|
|
all: unset;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 26px;
|
|
height: 26px;
|
|
border-radius: var(--r-sm);
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
transition:
|
|
color var(--oc-duration-fast) var(--oc-ease-out),
|
|
background-color var(--oc-duration-fast) var(--oc-ease-out);
|
|
}
|
|
|
|
.search-clear-button:hover {
|
|
background: var(--surface-muted);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.search-clear-button:focus-visible {
|
|
outline: 2px solid var(--input-focus-border);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.search-tabs {
|
|
display: flex;
|
|
gap: 0;
|
|
margin-bottom: var(--space-4);
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.search-tab {
|
|
all: unset;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
padding: var(--space-2) var(--space-4);
|
|
font-size: var(--fs-sm);
|
|
color: var(--ink-soft);
|
|
border-bottom: 2px solid transparent;
|
|
margin-bottom: -1px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.search-tab:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.search-tab.is-active {
|
|
color: var(--ink);
|
|
font-weight: 600;
|
|
border-bottom-color: var(--ink);
|
|
}
|
|
|
|
.search-tab-count {
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.search-results-sections {
|
|
display: grid;
|
|
gap: var(--space-5);
|
|
}
|
|
|
|
.search-results-section {
|
|
display: grid;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.search-results-section-header {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
.search-results-section-title {
|
|
margin: 0;
|
|
font-size: var(--fs-sm);
|
|
font-weight: 700;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.search-results-section-count {
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.search-empty-state {
|
|
display: grid;
|
|
justify-items: center;
|
|
gap: var(--space-3);
|
|
padding: var(--space-8);
|
|
text-align: center;
|
|
}
|
|
|
|
.search-empty-title {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.search-empty-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
.search-empty-action {
|
|
min-height: 34px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-pill);
|
|
background: var(--surface);
|
|
color: var(--ink);
|
|
cursor: pointer;
|
|
font-size: var(--fs-xs);
|
|
font-weight: 700;
|
|
padding: 0 var(--space-3);
|
|
}
|
|
|
|
.search-empty-action:hover {
|
|
border-color: color-mix(in srgb, var(--ink) 18%, var(--line));
|
|
background: var(--oc-surface-interactive-hover);
|
|
}
|
|
|
|
a.search-empty-action {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.search-load-more {
|
|
display: flex;
|
|
justify-content: center;
|
|
margin-top: var(--space-4);
|
|
}
|
|
|
|
.search-load-more-button {
|
|
min-height: 38px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-pill);
|
|
background: var(--surface);
|
|
color: var(--ink);
|
|
cursor: pointer;
|
|
font-size: var(--fs-sm);
|
|
font-weight: 700;
|
|
padding: 0 var(--space-4);
|
|
transition:
|
|
background-color 0.15s ease,
|
|
border-color 0.15s ease;
|
|
}
|
|
|
|
.search-load-more-button:hover {
|
|
border-color: color-mix(in srgb, var(--ink) 18%, var(--line));
|
|
background: var(--oc-surface-interactive-hover);
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.search-page-form {
|
|
flex-direction: column;
|
|
}
|
|
}
|
|
|
|
/* ===== Footer Grid ===== */
|
|
|
|
.footer-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: var(--space-3);
|
|
padding: var(--space-3) 0 var(--space-2);
|
|
text-align: center;
|
|
}
|
|
|
|
.footer-col {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: var(--space-1);
|
|
}
|
|
|
|
.footer-col-title {
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
color: var(--ink-soft);
|
|
margin: 0 0 2px;
|
|
}
|
|
|
|
.footer-col-toggle {
|
|
appearance: none;
|
|
border: 0;
|
|
background: transparent;
|
|
color: inherit;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 6px;
|
|
padding: 0;
|
|
font: inherit;
|
|
letter-spacing: inherit;
|
|
text-transform: inherit;
|
|
cursor: default;
|
|
}
|
|
|
|
.footer-col-toggle-icon {
|
|
display: none;
|
|
transition: transform 0.16s ease;
|
|
}
|
|
|
|
.footer-col-links {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: var(--space-1);
|
|
}
|
|
|
|
.footer-col-links a,
|
|
.footer-col-links span {
|
|
font-size: var(--fs-sm);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.footer-col-links a:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.footer-bottom {
|
|
border-top: 1px solid var(--line);
|
|
padding: var(--space-2) 0;
|
|
text-align: center;
|
|
font-size: var(--fs-sm);
|
|
letter-spacing: 0.015em;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.footer-bottom a {
|
|
color: var(--ink-soft);
|
|
text-decoration: none;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--ink-soft) 30%, transparent);
|
|
transition:
|
|
color 0.15s ease,
|
|
border-color 0.15s ease;
|
|
}
|
|
|
|
.footer-bottom a:hover {
|
|
color: inherit;
|
|
border-color: currentColor;
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.footer-grid {
|
|
grid-template-columns: 1fr;
|
|
gap: 0;
|
|
padding: 0;
|
|
text-align: left;
|
|
}
|
|
|
|
.footer-col {
|
|
align-items: stretch;
|
|
gap: 0;
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.footer-col:first-child {
|
|
border-top: 0;
|
|
}
|
|
|
|
.footer-col-title {
|
|
margin: 0;
|
|
}
|
|
|
|
.footer-col-toggle {
|
|
width: 100%;
|
|
justify-content: space-between;
|
|
padding: 14px 0;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.footer-col-toggle:focus-visible {
|
|
outline: 2px solid var(--accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.footer-col-toggle-icon {
|
|
display: block;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.footer-col-toggle[aria-expanded="true"] .footer-col-toggle-icon {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
.footer-col-links {
|
|
display: none;
|
|
align-items: flex-start;
|
|
gap: 10px;
|
|
padding: 0 0 14px;
|
|
}
|
|
|
|
.footer-col-links[data-open="true"] {
|
|
display: flex;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 520px) {
|
|
.footer-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
.profile-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-4);
|
|
margin-bottom: var(--space-5);
|
|
padding-bottom: var(--space-5);
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
|
|
.profile-avatar-lg {
|
|
width: 72px;
|
|
height: 72px;
|
|
border-radius: 50%;
|
|
background: var(--surface-muted);
|
|
border: 1px solid var(--line);
|
|
display: grid;
|
|
place-items: center;
|
|
overflow: hidden;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.profile-avatar-lg img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.profile-avatar-lg span {
|
|
font-size: 1.8rem;
|
|
font-weight: 700;
|
|
color: var(--accent);
|
|
}
|
|
|
|
.profile-info {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 3px;
|
|
}
|
|
|
|
.profile-display-name {
|
|
font-family: var(--font-mono);
|
|
font-size: var(--fs-xl);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.profile-handle {
|
|
font-size: 0.88rem;
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.profile-stats-row {
|
|
display: flex;
|
|
gap: 16px;
|
|
margin-top: 6px;
|
|
}
|
|
|
|
.profile-stat {
|
|
font-size: 0.82rem;
|
|
color: var(--ink-soft);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.about-page {
|
|
display: grid;
|
|
gap: 24px;
|
|
}
|
|
|
|
.about-bento {
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
gap: var(--space-5);
|
|
}
|
|
|
|
.about-panel {
|
|
display: grid;
|
|
gap: var(--space-4);
|
|
padding: var(--space-5);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-lg);
|
|
background:
|
|
linear-gradient(180deg, color-mix(in srgb, var(--surface) 88%, transparent), transparent),
|
|
color-mix(in srgb, var(--surface-muted) 58%, transparent);
|
|
}
|
|
|
|
.about-panel-hero,
|
|
.about-panel-enforcement,
|
|
.about-panel-actions {
|
|
align-content: start;
|
|
}
|
|
|
|
.about-panel-copy {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
line-height: 1.65;
|
|
}
|
|
|
|
.about-hero-copy {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.about-title {
|
|
margin: 0;
|
|
font-family: var(--font-display);
|
|
font-size: 3.5rem;
|
|
line-height: 0.98;
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
.about-lead {
|
|
margin: 14px 0 0;
|
|
max-width: 62ch;
|
|
color: var(--ink-soft);
|
|
line-height: 1.7;
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.about-callout {
|
|
display: grid;
|
|
gap: 12px;
|
|
padding: 18px;
|
|
border-radius: var(--r-lg);
|
|
border: 1px solid color-mix(in srgb, var(--line) 84%, transparent);
|
|
background: color-mix(in srgb, var(--surface) 80%, transparent);
|
|
}
|
|
|
|
.about-callout p {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.about-callout-label {
|
|
font-size: 0.72rem;
|
|
font-family: var(--font-mono);
|
|
letter-spacing: 0.12em;
|
|
text-transform: uppercase;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.about-panel .home-section-title {
|
|
font-size: var(--fs-lg);
|
|
font-weight: 600;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.about-categories-header {
|
|
justify-items: center;
|
|
text-align: center;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.about-categories-header .home-section-title {
|
|
max-width: 18ch;
|
|
font-size: 2.35rem;
|
|
line-height: 1.02;
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
.about-grid,
|
|
.about-patterns {
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
gap: 20px;
|
|
}
|
|
|
|
.about-panel-categories {
|
|
overflow: visible;
|
|
}
|
|
|
|
.about-panel-categories .about-grid {
|
|
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
|
|
}
|
|
|
|
.about-rule-card {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16px;
|
|
min-height: 220px;
|
|
padding: 28px 26px 24px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-lg);
|
|
background: color-mix(in srgb, var(--surface) 88%, transparent);
|
|
transition:
|
|
border-color 0.25s,
|
|
box-shadow 0.3s,
|
|
transform 0.25s,
|
|
background 0.25s;
|
|
}
|
|
|
|
.about-rule-card:hover {
|
|
border-color: var(--border-ui-hover);
|
|
transform: translateY(-3px);
|
|
box-shadow:
|
|
0 8px 24px rgba(0, 0, 0, 0.2),
|
|
0 0 0 1px rgba(220, 38, 38, 0.06);
|
|
background: color-mix(in srgb, var(--surface) 95%, transparent);
|
|
}
|
|
|
|
.about-rule-card-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
}
|
|
|
|
.about-rule-card-icon {
|
|
width: 36px;
|
|
height: 36px;
|
|
border-radius: var(--r-sm);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: var(--accent-subtle);
|
|
border: 1.5px solid color-mix(in srgb, var(--status-error-fg) 25%, var(--line));
|
|
flex-shrink: 0;
|
|
transition:
|
|
background 0.2s,
|
|
box-shadow 0.2s;
|
|
}
|
|
|
|
.about-rule-card-icon svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
color: var(--accent);
|
|
}
|
|
|
|
.about-rule-card:hover .about-rule-card-icon {
|
|
background: var(--status-error-bg);
|
|
box-shadow: 0 0 14px color-mix(in srgb, var(--status-error-fg) 8%, transparent);
|
|
}
|
|
|
|
.about-rule-card :is(h2, h3) {
|
|
margin: 0;
|
|
font-size: 1.22rem;
|
|
font-family: var(--font-display);
|
|
font-weight: 600;
|
|
line-height: 1.08;
|
|
letter-spacing: 0;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.about-rule-card p {
|
|
margin: 0;
|
|
flex: 1;
|
|
color: color-mix(in srgb, var(--ink) 75%, transparent);
|
|
line-height: 1.72;
|
|
font-size: 0.98rem;
|
|
max-width: 30ch;
|
|
}
|
|
|
|
.about-inline-code {
|
|
background: var(--surface-muted);
|
|
padding: 2px 6px;
|
|
border-radius: var(--r-xs);
|
|
font-size: 0.88em;
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.about-pattern {
|
|
margin: 0;
|
|
display: grid;
|
|
grid-template-columns: auto 1fr;
|
|
align-items: start;
|
|
gap: 12px;
|
|
padding: 14px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
background: color-mix(in srgb, var(--surface) 82%, transparent);
|
|
color: var(--ink-soft);
|
|
line-height: 1.6;
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.about-pattern svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
margin-top: 3px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.about-pattern-accepted svg {
|
|
color: var(--status-success-fg);
|
|
}
|
|
|
|
.about-pattern-rejected svg {
|
|
color: var(--status-error-fg);
|
|
}
|
|
|
|
.about-pattern-lanes {
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
gap: var(--space-4);
|
|
}
|
|
|
|
.about-patterns-header {
|
|
display: grid;
|
|
gap: var(--space-3);
|
|
max-width: 76ch;
|
|
}
|
|
|
|
.about-pattern-lane {
|
|
min-height: 100%;
|
|
padding: var(--space-5);
|
|
border-radius: var(--r-lg);
|
|
background: color-mix(in srgb, var(--surface) 88%, transparent);
|
|
}
|
|
|
|
.about-pattern-lane-header {
|
|
flex-direction: row;
|
|
align-items: flex-start;
|
|
gap: 14px;
|
|
}
|
|
|
|
.about-pattern-lane-header > div:last-child {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.about-pattern-lane-accepted {
|
|
border-color: color-mix(in srgb, var(--status-success-fg) 30%, var(--line));
|
|
}
|
|
|
|
.about-pattern-lane-accepted .about-rule-card-icon {
|
|
background: var(--status-success-bg);
|
|
border-color: color-mix(in srgb, var(--status-success-fg) 35%, var(--line));
|
|
}
|
|
|
|
.about-pattern-lane-accepted .about-rule-card-icon svg {
|
|
color: var(--status-success-fg);
|
|
}
|
|
|
|
.about-pattern-lane-rejected {
|
|
border-color: color-mix(in srgb, var(--status-error-fg) 30%, var(--line));
|
|
}
|
|
|
|
.about-pattern-lane-rejected .about-rule-card-icon {
|
|
background: var(--status-error-bg);
|
|
border-color: color-mix(in srgb, var(--status-error-fg) 35%, var(--line));
|
|
}
|
|
|
|
.about-pattern-lane-rejected .about-rule-card-icon svg {
|
|
color: var(--status-error-fg);
|
|
}
|
|
|
|
.about-pattern-lane .about-patterns {
|
|
grid-template-columns: 1fr;
|
|
gap: 12px;
|
|
}
|
|
|
|
@media (min-width: 641px) {
|
|
.about-bento {
|
|
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
}
|
|
|
|
.about-panel-hero {
|
|
grid-column: span 4;
|
|
}
|
|
|
|
.about-panel-callout {
|
|
grid-column: span 2;
|
|
}
|
|
|
|
.about-panel-categories,
|
|
.about-panel-patterns {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.about-panel-enforcement,
|
|
.about-panel-actions {
|
|
grid-column: span 3;
|
|
}
|
|
|
|
.about-grid,
|
|
.about-panel-categories .about-grid {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
gap: 22px;
|
|
}
|
|
.about-patterns {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
.about-bento {
|
|
grid-template-columns: repeat(12, minmax(0, 1fr));
|
|
}
|
|
|
|
.about-panel-hero {
|
|
grid-column: span 8;
|
|
}
|
|
|
|
.about-panel-callout {
|
|
grid-column: span 4;
|
|
}
|
|
|
|
.about-panel-enforcement {
|
|
grid-column: span 7;
|
|
}
|
|
|
|
.about-panel-actions {
|
|
grid-column: span 5;
|
|
}
|
|
|
|
.about-grid,
|
|
.about-panel-categories .about-grid {
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 24px;
|
|
}
|
|
.about-patterns {
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
}
|
|
|
|
.about-pattern-lanes {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 860px) {
|
|
.publisher-profile-hero {
|
|
grid-template-columns: 1fr;
|
|
gap: 24px;
|
|
}
|
|
|
|
.publisher-profile-hero-stats {
|
|
justify-content: flex-start;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.publisher-profile-stat + .publisher-profile-stat {
|
|
padding-left: 0;
|
|
border-left: 0;
|
|
}
|
|
|
|
.publisher-profile-layout {
|
|
grid-template-columns: 1fr;
|
|
gap: 24px;
|
|
}
|
|
|
|
.publisher-profile-section-header {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.publisher-profile-hero,
|
|
.publisher-profile-layout {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.publisher-profile-hero {
|
|
align-items: start;
|
|
padding: 26px var(--space-4);
|
|
}
|
|
|
|
.publisher-profile-hero-main {
|
|
align-items: start;
|
|
}
|
|
|
|
.publisher-profile-avatar .marketplace-icon-md {
|
|
width: 64px;
|
|
height: 64px;
|
|
}
|
|
|
|
.publisher-profile-avatar .marketplace-icon-md .marketplace-icon-glyph {
|
|
width: 30px;
|
|
height: 30px;
|
|
}
|
|
|
|
.publisher-profile-title-row {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.publisher-profile-title-text {
|
|
white-space: normal;
|
|
}
|
|
|
|
.publisher-profile-hero-stats {
|
|
justify-content: flex-start;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.publisher-profile-section-header {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.publisher-published-row {
|
|
grid-template-columns: auto minmax(0, 1fr);
|
|
}
|
|
|
|
.publisher-published-row-stats {
|
|
grid-column: 2;
|
|
justify-self: start;
|
|
margin-top: 2px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.about-bento,
|
|
.about-grid,
|
|
.about-patterns,
|
|
.about-pattern-lanes,
|
|
.about-panel-categories .about-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.about-title {
|
|
font-size: 2.4rem;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 520px) {
|
|
.profile-header {
|
|
flex-direction: column;
|
|
text-align: center;
|
|
}
|
|
|
|
.profile-stats-row {
|
|
justify-content: center;
|
|
}
|
|
}
|
|
|
|
/* Empty states */
|
|
|
|
.empty-state {
|
|
text-align: center;
|
|
padding: var(--space-7) var(--space-5);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-sm);
|
|
}
|
|
|
|
.empty-state-icon {
|
|
display: block;
|
|
margin: 0 auto var(--space-3);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.empty-state-title {
|
|
font-weight: 600;
|
|
font-size: var(--fs-md);
|
|
margin-bottom: var(--space-1);
|
|
}
|
|
|
|
.empty-state-body {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
margin-bottom: var(--space-4);
|
|
margin-top: 0;
|
|
}
|
|
|
|
/* Dark mode: only where CSS variables don't suffice */
|
|
|
|
.mobile-nav-meta {
|
|
margin-left: auto;
|
|
font-size: 0.75rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
@media (max-width: 1100px) and (min-width: 761px) {
|
|
.navbar-top {
|
|
grid-template-columns: max-content max-content minmax(180px, 1fr) auto;
|
|
gap: 10px;
|
|
}
|
|
|
|
.brand-name-responsive {
|
|
display: none;
|
|
}
|
|
|
|
.navbar-top-links {
|
|
gap: 0;
|
|
}
|
|
|
|
.navbar-top-links .navbar-tab {
|
|
padding: 7px 8px;
|
|
}
|
|
|
|
.github-sign-in-button,
|
|
.auth-loading-placeholder {
|
|
width: 92px !important;
|
|
}
|
|
|
|
.sign-in-full-copy {
|
|
display: none;
|
|
}
|
|
|
|
.sign-in-compact-copy {
|
|
display: inline-block;
|
|
}
|
|
}
|
|
|
|
/* ═══════════════════════════════════════════════════════════════════════
|
|
HOME V2 — Redesigned homepage (mockup-14-carousel)
|
|
All classes prefixed home-v2- to avoid collisions with existing styles.
|
|
═══════════════════════════════════════════════════════════════════════ */
|
|
|
|
/* --- Variables (home v2 shell: main + proof + FAQ + footer share tokens) --- */
|
|
.app-shell:has(.home-v2-main) {
|
|
--hv2-bg: #060608;
|
|
--hv2-surface: rgba(255, 255, 255, 0.02);
|
|
--hv2-surface-hover: rgba(255, 255, 255, 0.045);
|
|
--hv2-border: rgba(255, 255, 255, 0.07);
|
|
--hv2-border-hover: rgba(255, 255, 255, 0.14);
|
|
--hv2-border-strong: rgba(255, 255, 255, 0.1);
|
|
--hv2-text: #eaeaea;
|
|
--hv2-text-secondary: #b2b2b8;
|
|
--hv2-text-tertiary: #82828a;
|
|
--hv2-accent: #d4453a;
|
|
--hv2-accent-fill: rgba(212, 69, 58, 0.1);
|
|
--hv2-accent-fill-hover: rgba(212, 69, 58, 0.16);
|
|
--hv2-accent-glow: rgba(212, 69, 58, 0.06);
|
|
--hv2-accent-border: rgba(212, 69, 58, 0.3);
|
|
--hv2-accent-border-hover: rgba(212, 69, 58, 0.5);
|
|
--hv2-green: #3dab5e;
|
|
--hv2-green-fill: rgba(61, 171, 94, 0.08);
|
|
--hv2-green-border: rgba(61, 171, 94, 0.25);
|
|
--hv2-green-border-hover: rgba(61, 171, 94, 0.4);
|
|
--hv2-green-fill-hover: rgba(61, 171, 94, 0.14);
|
|
--home-v2-apps-icon-color: #fff;
|
|
--home-v2-apps-icon-image-filter: brightness(0) invert(1);
|
|
--hv2-radius-sm: 8px;
|
|
--hv2-radius-md: 12px;
|
|
--hv2-radius-lg: 16px;
|
|
--hv2-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
|
|
--hv2-duration-fast: 160ms;
|
|
--hv2-duration-ui: 180ms;
|
|
}
|
|
|
|
.home-v2-main {
|
|
position: relative;
|
|
isolation: isolate;
|
|
max-width: var(--page-max);
|
|
margin-inline: auto;
|
|
width: 100%;
|
|
min-width: 0;
|
|
overflow-x: visible;
|
|
background: var(--hv2-bg);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) {
|
|
--home-v2-apps-icon-color: #000;
|
|
--home-v2-apps-icon-image-filter: brightness(0);
|
|
}
|
|
|
|
@media (prefers-color-scheme: light) {
|
|
[data-theme-family="claw"][data-theme-mode="system"] .app-shell:has(.home-v2-main) {
|
|
--home-v2-apps-icon-color: #000;
|
|
--home-v2-apps-icon-image-filter: brightness(0);
|
|
}
|
|
}
|
|
|
|
/* Ambient glow spans hero + listing so the page base color stays even */
|
|
[data-theme-resolved="dark"] .home-v2-main::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
z-index: 0;
|
|
pointer-events: none;
|
|
background:
|
|
radial-gradient(ellipse 90% 55% at 50% -8%, rgba(212, 69, 58, 0.07) 0%, transparent 58%),
|
|
radial-gradient(ellipse 70% 45% at 50% 18%, rgba(212, 69, 58, 0.04) 0%, transparent 62%);
|
|
}
|
|
|
|
.home-v2-fold-fade {
|
|
position: fixed;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
z-index: 4;
|
|
height: clamp(72px, 14vh, 140px);
|
|
pointer-events: none;
|
|
background: linear-gradient(
|
|
to top,
|
|
var(--hv2-bg) 0%,
|
|
color-mix(in srgb, var(--hv2-bg) 88%, transparent) 42%,
|
|
transparent 100%
|
|
);
|
|
opacity: 1;
|
|
transition: opacity 0.22s var(--hv2-ease-out);
|
|
}
|
|
|
|
.home-v2-fold-fade.is-hidden {
|
|
opacity: 0;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.home-v2-fold-fade {
|
|
transition: none;
|
|
}
|
|
}
|
|
|
|
.home-v2-hero,
|
|
.home-v2-listing {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* Home hero decor bleeds up behind the floating calm header */
|
|
.app-shell:has(.home-v2-main) main.home-v2-main {
|
|
margin-top: -64px;
|
|
/* Last section is the full-bleed CLI band; let it meet the footer flush. */
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .home-v2-hero {
|
|
padding-top: calc(64px + 64px);
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .home-v2-hero-bg {
|
|
top: -112px;
|
|
bottom: -120px;
|
|
left: 50%;
|
|
width: 100vw;
|
|
margin-left: -50vw;
|
|
-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 72%, transparent 100%);
|
|
mask-image: linear-gradient(to bottom, #000 0%, #000 72%, transparent 100%);
|
|
}
|
|
|
|
/* ═══ HERO ═══ */
|
|
.home-v2-hero {
|
|
position: relative;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
text-align: center;
|
|
padding: 64px 48px 48px;
|
|
overflow: visible;
|
|
}
|
|
.home-v2-hero > *:not(.home-v2-hero-bg) {
|
|
position: relative;
|
|
z-index: 2;
|
|
}
|
|
|
|
/* Background layers */
|
|
.home-v2-hero-bg {
|
|
position: absolute;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Headline */
|
|
.home-v2-headline {
|
|
font-family: "Inter", sans-serif;
|
|
font-weight: 700;
|
|
font-size: clamp(36px, 4.25vw, 54px);
|
|
line-height: 1.12;
|
|
letter-spacing: -0.035em;
|
|
margin-bottom: 14px;
|
|
max-width: 1060px;
|
|
width: 100%;
|
|
white-space: nowrap;
|
|
display: flex;
|
|
justify-content: center;
|
|
text-align: center;
|
|
color: var(--hv2-text);
|
|
cursor: default;
|
|
user-select: none;
|
|
}
|
|
.home-v2-headline-clear {
|
|
max-width: 960px;
|
|
white-space: normal;
|
|
}
|
|
.home-v2-headline-inner {
|
|
display: grid;
|
|
width: 100%;
|
|
grid-template-columns: minmax(0, 1fr) auto auto auto minmax(0, 1fr);
|
|
align-items: center;
|
|
}
|
|
.home-v2-headline-inner > :first-child {
|
|
justify-self: end;
|
|
}
|
|
.home-v2-headline-inner > :last-child {
|
|
justify-self: start;
|
|
}
|
|
.home-v2-action-word {
|
|
font-family: "JetBrains Mono", monospace;
|
|
font-weight: 800;
|
|
color: var(--hv2-accent);
|
|
}
|
|
.home-v2-sep {
|
|
display: inline-block;
|
|
width: 5px;
|
|
height: 5px;
|
|
border: 1.5px solid var(--hv2-accent);
|
|
border-radius: 50%;
|
|
margin: 0 12px;
|
|
vertical-align: middle;
|
|
opacity: 0.35;
|
|
background: transparent;
|
|
}
|
|
.home-v2-cycle-wrap {
|
|
display: inline-block;
|
|
position: relative;
|
|
height: 1.15em;
|
|
overflow: hidden;
|
|
vertical-align: bottom;
|
|
min-width: 280px;
|
|
text-align: center;
|
|
}
|
|
.home-v2-cycle-track {
|
|
display: flex;
|
|
flex-direction: column;
|
|
animation: home-v2-wordCycle 16s ease-in-out infinite;
|
|
}
|
|
.home-v2-cycle-word {
|
|
font-family: "JetBrains Mono", monospace;
|
|
font-weight: 800;
|
|
color: var(--hv2-accent);
|
|
height: 1.15em;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: left;
|
|
flex-shrink: 0;
|
|
white-space: nowrap;
|
|
}
|
|
@keyframes home-v2-wordCycle {
|
|
0%,
|
|
18% {
|
|
transform: translateY(0);
|
|
}
|
|
20%,
|
|
38% {
|
|
transform: translateY(-20%);
|
|
}
|
|
40%,
|
|
58% {
|
|
transform: translateY(-40%);
|
|
}
|
|
60%,
|
|
78% {
|
|
transform: translateY(-60%);
|
|
}
|
|
80%,
|
|
98% {
|
|
transform: translateY(-80%);
|
|
}
|
|
100% {
|
|
transform: translateY(-80%);
|
|
}
|
|
}
|
|
|
|
/* Slot machine easter egg */
|
|
.home-v2-headline-slots {
|
|
min-height: 1.15em;
|
|
position: relative;
|
|
}
|
|
.home-v2-slot-reel {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-width: 180px;
|
|
text-align: center;
|
|
font-family: "JetBrains Mono", monospace;
|
|
font-weight: 800;
|
|
color: var(--hv2-accent);
|
|
position: relative;
|
|
}
|
|
.home-v2-slot-reel.spinning .home-v2-slot-word {
|
|
animation: home-v2-slotBlur 0.12s steps(1) infinite;
|
|
}
|
|
.home-v2-slot-reel:not(.spinning) .home-v2-slot-word {
|
|
animation: home-v2-slotLand 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) both;
|
|
}
|
|
@keyframes home-v2-slotBlur {
|
|
0% {
|
|
filter: blur(0);
|
|
opacity: 1;
|
|
}
|
|
50% {
|
|
filter: blur(1px);
|
|
opacity: 0.7;
|
|
}
|
|
100% {
|
|
filter: blur(0);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
@keyframes home-v2-slotLand {
|
|
0% {
|
|
transform: translateY(-8px) scale(1.1);
|
|
opacity: 0.5;
|
|
}
|
|
60% {
|
|
transform: translateY(2px) scale(0.98);
|
|
}
|
|
100% {
|
|
transform: translateY(0) scale(1);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
.home-v2-headline-jackpot {
|
|
animation: home-v2-jackpot 0.5s ease-out;
|
|
}
|
|
@keyframes home-v2-jackpot {
|
|
0% {
|
|
transform: scale(1);
|
|
}
|
|
30% {
|
|
transform: scale(1.08);
|
|
}
|
|
60% {
|
|
transform: scale(0.97);
|
|
}
|
|
100% {
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
.home-v2-headline-jackpot .home-v2-slot-word {
|
|
color: #ffd93d !important;
|
|
text-shadow:
|
|
0 0 20px rgba(255, 217, 61, 0.6),
|
|
0 0 40px rgba(255, 217, 61, 0.3);
|
|
}
|
|
.home-v2-headline-hack .home-v2-slot-word {
|
|
color: #22d3ee !important;
|
|
text-shadow:
|
|
0 0 24px rgba(34, 211, 238, 0.6),
|
|
0 0 48px rgba(6, 182, 212, 0.3),
|
|
0 2px 8px rgba(0, 0, 0, 0.4) !important;
|
|
}
|
|
.home-v2-headline-hack .home-v2-sep {
|
|
border-color: #22d3ee;
|
|
opacity: 0.8;
|
|
box-shadow: 0 0 8px rgba(34, 211, 238, 0.5);
|
|
}
|
|
.home-v2-hack-lobster {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: 280px;
|
|
height: 280px;
|
|
transform: translate(-50%, -50%) scale(0);
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
filter: drop-shadow(0 0 40px rgba(34, 211, 238, 0.5))
|
|
drop-shadow(0 0 80px rgba(6, 182, 212, 0.25));
|
|
animation: home-v2-lobsterReveal 1.2s 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
|
|
z-index: -1;
|
|
}
|
|
@keyframes home-v2-lobsterReveal {
|
|
0% {
|
|
transform: translate(-50%, -50%) scale(0) rotate(-30deg);
|
|
opacity: 0;
|
|
}
|
|
50% {
|
|
opacity: 0.18;
|
|
}
|
|
100% {
|
|
transform: translate(-50%, -50%) scale(1) rotate(0deg);
|
|
opacity: 0.12;
|
|
}
|
|
}
|
|
.home-v2-confetti {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 9999;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.home-v2-sub {
|
|
color: var(--hv2-text-tertiary);
|
|
font-size: 16px;
|
|
line-height: 1.5;
|
|
margin-bottom: 36px;
|
|
max-width: 580px;
|
|
font-weight: 400;
|
|
}
|
|
|
|
.home-v2-motto {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 10px;
|
|
margin-bottom: 34px;
|
|
}
|
|
.home-v2-motto-label {
|
|
font-family: "JetBrains Mono", monospace;
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
.home-v2-headline-motto {
|
|
margin-bottom: 0;
|
|
font-size: clamp(24px, 2.8vw, 34px);
|
|
letter-spacing: -0.03em;
|
|
}
|
|
|
|
/* Search bar */
|
|
.home-v2-search-container {
|
|
width: 100%;
|
|
max-width: 720px;
|
|
}
|
|
.home-v2-search-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
background: var(--hv2-surface);
|
|
border: 1px solid var(--hv2-border-strong);
|
|
border-radius: 16px;
|
|
padding: 6px 6px 6px 22px;
|
|
gap: 12px;
|
|
transition:
|
|
border-color 0.25s,
|
|
box-shadow 0.3s,
|
|
background 0.2s;
|
|
box-shadow: 0 1px 20px rgba(0, 0, 0, 0.15);
|
|
}
|
|
.home-v2-search-bar:focus-within {
|
|
border-color: var(--hv2-accent-border);
|
|
box-shadow:
|
|
0 2px 36px rgba(0, 0, 0, 0.2),
|
|
0 0 0 3px var(--hv2-accent-glow);
|
|
background: rgba(255, 255, 255, 0.025);
|
|
}
|
|
.home-v2-search-bar .home-v2-search-icon {
|
|
flex-shrink: 0;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
.home-v2-search-bar input {
|
|
flex: 1;
|
|
background: none;
|
|
border: none;
|
|
outline: none;
|
|
color: var(--hv2-text);
|
|
font-size: 16px;
|
|
font-family: "Inter", sans-serif;
|
|
padding: 8px 0;
|
|
}
|
|
.home-v2-search-bar input::placeholder {
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
.home-v2-search-go {
|
|
background: var(--hv2-accent-fill);
|
|
color: var(--hv2-accent);
|
|
border: 1.5px solid var(--hv2-accent-border);
|
|
border-radius: 12px;
|
|
padding: 13px 30px;
|
|
font-size: 15px;
|
|
font-weight: 700;
|
|
cursor: pointer;
|
|
white-space: nowrap;
|
|
transition:
|
|
background 0.15s,
|
|
border-color 0.2s,
|
|
box-shadow 0.2s;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
flex-shrink: 0;
|
|
}
|
|
.home-v2-search-go:hover {
|
|
background: var(--hv2-accent-fill-hover);
|
|
border-color: var(--hv2-accent-border-hover);
|
|
box-shadow: 0 0 24px var(--hv2-accent-glow);
|
|
}
|
|
.home-v2-search-go:active {
|
|
transform: scale(0.97);
|
|
}
|
|
|
|
/* Suggestions */
|
|
.home-v2-suggestions {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 8px;
|
|
margin-top: 16px;
|
|
flex-wrap: wrap;
|
|
}
|
|
.home-v2-suggestion {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
color: var(--hv2-text-secondary);
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
padding: 6px 14px;
|
|
border-radius: 100px;
|
|
cursor: pointer;
|
|
transition:
|
|
color 0.15s,
|
|
background 0.15s,
|
|
border-color 0.15s;
|
|
border: 1px solid var(--hv2-border);
|
|
background: transparent;
|
|
}
|
|
.home-v2-suggestion:hover {
|
|
color: var(--hv2-text);
|
|
background: var(--hv2-surface-hover);
|
|
border-color: var(--hv2-border-hover);
|
|
}
|
|
.home-v2-suggestion svg {
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
.home-v2-suggestion:hover svg {
|
|
color: var(--hv2-accent);
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.home-v2-suggestions {
|
|
gap: 6px;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.home-v2-suggestion {
|
|
font-size: 12px;
|
|
padding: 5px 10px;
|
|
gap: 4px;
|
|
}
|
|
}
|
|
|
|
/* ═══ CAROUSEL ═══ */
|
|
.home-v2-carousel-section {
|
|
padding: 48px 0 0;
|
|
border-top: 1px solid var(--hv2-border);
|
|
position: relative;
|
|
}
|
|
.home-v2-carousel-header {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
justify-content: space-between;
|
|
margin-bottom: 20px;
|
|
padding: 0 48px;
|
|
gap: 20px;
|
|
}
|
|
.home-v2-carousel-header h2 {
|
|
font-size: 15px;
|
|
font-weight: 600;
|
|
color: var(--hv2-text-secondary);
|
|
letter-spacing: 0.02em;
|
|
text-transform: uppercase;
|
|
}
|
|
.home-v2-section-copy {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
max-width: 760px;
|
|
}
|
|
.home-v2-section-eyebrow {
|
|
font-family: "JetBrains Mono", monospace;
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.1em;
|
|
text-transform: uppercase;
|
|
color: var(--hv2-accent);
|
|
}
|
|
.home-v2-section-copy h2 {
|
|
font-size: clamp(22px, 2.1vw, 30px);
|
|
font-weight: 700;
|
|
line-height: 1.08;
|
|
letter-spacing: -0.03em;
|
|
color: var(--hv2-text);
|
|
}
|
|
.home-v2-section-copy p {
|
|
font-size: 14px;
|
|
line-height: 1.6;
|
|
color: var(--hv2-text-secondary);
|
|
max-width: 60ch;
|
|
}
|
|
.home-v2-carousel-controls {
|
|
display: flex;
|
|
gap: 6px;
|
|
}
|
|
.home-v2-carousel-btn {
|
|
background: transparent;
|
|
border: 1px solid var(--hv2-border);
|
|
border-radius: var(--hv2-radius-sm);
|
|
color: var(--hv2-text-tertiary);
|
|
width: 34px;
|
|
height: 34px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
cursor: pointer;
|
|
transition:
|
|
border-color 0.15s,
|
|
color 0.15s,
|
|
background 0.15s;
|
|
}
|
|
.home-v2-carousel-btn:hover {
|
|
border-color: var(--hv2-border-hover);
|
|
color: var(--hv2-text-secondary);
|
|
background: var(--hv2-surface);
|
|
}
|
|
|
|
/* Fade edges */
|
|
.home-v2-carousel-wrap {
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
.home-v2-carousel-wrap::before,
|
|
.home-v2-carousel-wrap::after {
|
|
content: "";
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
width: 80px;
|
|
z-index: 3;
|
|
pointer-events: none;
|
|
}
|
|
.home-v2-carousel-wrap::before {
|
|
left: 0;
|
|
background: linear-gradient(to right, var(--hv2-bg), transparent);
|
|
}
|
|
.home-v2-carousel-wrap::after {
|
|
right: 0;
|
|
background: linear-gradient(to left, var(--hv2-bg), transparent);
|
|
}
|
|
|
|
.home-v2-carousel-track {
|
|
display: flex;
|
|
gap: 16px;
|
|
padding: 12px 48px 48px;
|
|
animation: home-v2-scroll 46s linear infinite;
|
|
width: max-content;
|
|
}
|
|
.home-v2-carousel-track:hover {
|
|
animation-play-state: paused;
|
|
}
|
|
@keyframes home-v2-scroll {
|
|
0% {
|
|
transform: translateX(0);
|
|
}
|
|
100% {
|
|
transform: translateX(calc(-50% - 8px));
|
|
}
|
|
}
|
|
|
|
/* Carousel cards */
|
|
.home-v2-c-card {
|
|
background: var(--hv2-surface);
|
|
border: 1px solid var(--hv2-border);
|
|
border-radius: var(--hv2-radius-lg);
|
|
padding: 24px;
|
|
min-width: 340px;
|
|
max-width: 340px;
|
|
flex-shrink: 0;
|
|
transition:
|
|
border-color 0.25s,
|
|
transform 0.25s,
|
|
box-shadow 0.3s,
|
|
background 0.25s;
|
|
cursor: pointer;
|
|
display: flex;
|
|
flex-direction: column;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
.home-v2-c-card:hover {
|
|
border-color: var(--hv2-border-hover);
|
|
transform: translateY(-3px);
|
|
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22);
|
|
background: var(--hv2-surface-hover);
|
|
}
|
|
.home-v2-c-head {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
margin-bottom: 14px;
|
|
}
|
|
.home-v2-c-icon {
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: 10px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: var(--hv2-accent-fill);
|
|
border: 1.5px solid var(--hv2-accent-border);
|
|
flex-shrink: 0;
|
|
transition:
|
|
background 0.2s,
|
|
box-shadow 0.2s;
|
|
}
|
|
.home-v2-c-card:hover .home-v2-c-icon {
|
|
background: var(--hv2-accent-fill-hover);
|
|
box-shadow: 0 0 14px var(--hv2-accent-glow);
|
|
}
|
|
.home-v2-c-icon svg {
|
|
color: var(--hv2-accent);
|
|
}
|
|
.home-v2-c-meta {
|
|
flex: 1;
|
|
}
|
|
.home-v2-c-name {
|
|
font-weight: 600;
|
|
font-size: 15px;
|
|
color: var(--hv2-text);
|
|
}
|
|
.home-v2-c-by {
|
|
font-size: 13px;
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
.home-v2-c-tag {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
color: var(--hv2-text-tertiary);
|
|
background: var(--hv2-surface);
|
|
border: 1px solid var(--hv2-border);
|
|
border-radius: 100px;
|
|
padding: 3px 10px 3px 7px;
|
|
margin-bottom: 10px;
|
|
width: fit-content;
|
|
}
|
|
.home-v2-c-tag svg {
|
|
color: var(--hv2-accent);
|
|
}
|
|
.home-v2-c-desc {
|
|
font-size: 13px;
|
|
color: var(--hv2-text-secondary);
|
|
line-height: 1.55;
|
|
flex: 1;
|
|
margin-bottom: 18px;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
}
|
|
.home-v2-c-footer {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
.home-v2-c-stats {
|
|
display: flex;
|
|
gap: 14px;
|
|
font-size: 12px;
|
|
color: var(--hv2-text-tertiary);
|
|
font-weight: 500;
|
|
}
|
|
.home-v2-c-stats span {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 3px;
|
|
}
|
|
.home-v2-c-install {
|
|
background: var(--hv2-green-fill);
|
|
border: 1.5px solid var(--hv2-green-border);
|
|
border-radius: var(--hv2-radius-sm);
|
|
padding: 6px 14px;
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
color: var(--hv2-green);
|
|
cursor: pointer;
|
|
transition: all 0.15s;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
}
|
|
.home-v2-c-card:hover .home-v2-c-install {
|
|
background: var(--hv2-green-fill-hover);
|
|
border-color: var(--hv2-green-border-hover);
|
|
}
|
|
|
|
/* ═══ CATEGORIES ═══ */
|
|
.home-v2-categories {
|
|
padding: 40px 48px 0;
|
|
}
|
|
.home-v2-categories-copy {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
max-width: 720px;
|
|
margin: 0 auto 24px;
|
|
}
|
|
.home-v2-categories-copy h2 {
|
|
font-size: clamp(22px, 2vw, 28px);
|
|
font-weight: 700;
|
|
line-height: 1.1;
|
|
letter-spacing: -0.03em;
|
|
color: var(--hv2-text);
|
|
}
|
|
.home-v2-categories-copy p {
|
|
font-size: 14px;
|
|
line-height: 1.6;
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
.home-v2-categories-grid {
|
|
display: grid;
|
|
--home-v2-category-columns: 3;
|
|
grid-template-columns: repeat(var(--home-v2-category-columns), minmax(0, 1fr));
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
border-top: 1px solid var(--hv2-border);
|
|
}
|
|
.home-v2-cat-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
padding: 28px 24px;
|
|
cursor: pointer;
|
|
position: relative;
|
|
transition: background 0.2s;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
.home-v2-cat-item:hover {
|
|
background: var(--hv2-surface);
|
|
}
|
|
.home-v2-cat-item + .home-v2-cat-item::before {
|
|
content: "";
|
|
position: absolute;
|
|
left: 0;
|
|
top: 24%;
|
|
bottom: 24%;
|
|
width: 1px;
|
|
background: var(--hv2-border);
|
|
}
|
|
.home-v2-cat-icon {
|
|
width: 44px;
|
|
height: 44px;
|
|
border-radius: 11px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: var(--hv2-accent-fill);
|
|
border: 1.5px solid var(--hv2-accent-border);
|
|
flex-shrink: 0;
|
|
transition:
|
|
background 0.2s,
|
|
border-color 0.2s,
|
|
box-shadow 0.2s;
|
|
}
|
|
.home-v2-cat-item:hover .home-v2-cat-icon {
|
|
background: var(--hv2-accent-fill-hover);
|
|
border-color: var(--hv2-accent-border-hover);
|
|
box-shadow: 0 0 16px var(--hv2-accent-glow);
|
|
}
|
|
.home-v2-cat-icon svg {
|
|
color: var(--hv2-accent);
|
|
}
|
|
.home-v2-cat-text {
|
|
flex: 1;
|
|
}
|
|
.home-v2-cat-name {
|
|
font-weight: 600;
|
|
font-size: 15px;
|
|
margin-bottom: 2px;
|
|
color: var(--hv2-text);
|
|
}
|
|
.home-v2-cat-desc {
|
|
color: var(--hv2-text-secondary);
|
|
font-size: 13px;
|
|
}
|
|
.home-v2-cat-arrow {
|
|
color: var(--hv2-text-secondary);
|
|
opacity: 0;
|
|
transition:
|
|
opacity 0.2s,
|
|
transform 0.2s;
|
|
}
|
|
.home-v2-cat-item:hover .home-v2-cat-arrow {
|
|
opacity: 1;
|
|
transform: translateX(3px);
|
|
}
|
|
|
|
/* ═══ HOME LISTING (Mobbin-style toolbar) ═══ */
|
|
.home-v2-listing {
|
|
padding: 0 48px 80px;
|
|
max-width: 1296px;
|
|
margin: 0 auto;
|
|
width: 100%;
|
|
}
|
|
|
|
.home-v2-listing-controls {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 14px;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.home-v2-listing-search {
|
|
display: none;
|
|
}
|
|
|
|
.home-v2-listing-search.is-open {
|
|
display: block;
|
|
}
|
|
|
|
.home-v2-listing-search-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
box-sizing: border-box;
|
|
width: 100%;
|
|
min-height: 40px;
|
|
padding: 4px 6px 4px 14px;
|
|
border: 1px solid var(--hv2-border-strong);
|
|
border-radius: var(--oc-radius-control);
|
|
background: color-mix(in srgb, var(--hv2-surface) 95%, var(--hv2-bg));
|
|
transition:
|
|
border-color 0.15s ease,
|
|
box-shadow 0.15s ease;
|
|
}
|
|
|
|
.home-v2-listing-search-bar:focus-within {
|
|
border-color: var(--hv2-accent-border);
|
|
box-shadow: 0 0 0 3px var(--hv2-accent-glow);
|
|
}
|
|
|
|
.home-v2-listing-search-icon {
|
|
flex-shrink: 0;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-listing-search-input {
|
|
all: unset;
|
|
box-sizing: border-box;
|
|
flex: 1;
|
|
min-width: 0;
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
line-height: 1.35;
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-listing-search-input::-webkit-search-cancel-button,
|
|
.home-v2-listing-search-input::-webkit-search-decoration {
|
|
display: none;
|
|
-webkit-appearance: none;
|
|
}
|
|
|
|
.home-v2-listing-search-input::placeholder {
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-listing-search-close {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-shrink: 0;
|
|
width: 30px;
|
|
height: 30px;
|
|
border: none;
|
|
border-radius: var(--oc-radius-control);
|
|
background: transparent;
|
|
color: color-mix(in srgb, var(--hv2-accent) 70%, var(--hv2-text-tertiary));
|
|
cursor: pointer;
|
|
transition:
|
|
color 0.15s ease,
|
|
background 0.15s ease;
|
|
}
|
|
|
|
.home-v2-listing-search-close:hover,
|
|
.home-v2-listing-search-close:focus-visible {
|
|
color: var(--hv2-accent);
|
|
background: var(--hv2-accent-fill);
|
|
outline: none;
|
|
}
|
|
|
|
.home-v2-listing-toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 20px;
|
|
min-height: 44px;
|
|
padding: 0;
|
|
}
|
|
|
|
.home-v2-listing-kind {
|
|
margin-left: auto;
|
|
}
|
|
|
|
.home-v2-listing-divider {
|
|
width: 1px;
|
|
align-self: center;
|
|
height: 18px;
|
|
flex-shrink: 0;
|
|
background: var(--hv2-border);
|
|
}
|
|
|
|
.home-v2-listing-actions {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
flex-shrink: 0;
|
|
margin-left: auto;
|
|
}
|
|
|
|
/* Search + category are ghost controls; view toggle stays segmented. */
|
|
.home-v2-listing-actions-rail {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
flex-shrink: 0;
|
|
max-width: min(100%, 520px);
|
|
}
|
|
|
|
.home-v2-listing-actions-rail .home-v2-listing-category-menu {
|
|
flex: 0 1 auto;
|
|
min-width: 0;
|
|
max-width: min(220px, 34vw);
|
|
}
|
|
|
|
.home-v2-listing-actions-rail .home-v2-listing-view {
|
|
margin-left: 4px;
|
|
}
|
|
|
|
.home-v2-listing-search-trigger {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-shrink: 0;
|
|
box-sizing: border-box;
|
|
width: 36px;
|
|
height: 36px;
|
|
padding: 0;
|
|
border: none;
|
|
border-radius: 8px;
|
|
background: transparent;
|
|
color: var(--hv2-text-tertiary);
|
|
cursor: pointer;
|
|
transition: color 0.15s ease;
|
|
}
|
|
|
|
.home-v2-listing-search-trigger:hover,
|
|
.home-v2-listing-search-trigger:focus-visible {
|
|
color: var(--hv2-text-secondary);
|
|
background: transparent;
|
|
}
|
|
|
|
.home-v2-listing-search-trigger.is-active {
|
|
color: var(--hv2-text);
|
|
background: transparent;
|
|
}
|
|
|
|
.home-v2-listing-search-trigger:focus-visible {
|
|
outline: 2px solid color-mix(in srgb, var(--hv2-text) 35%, transparent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.home-v2-listing-active-filters {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-height: 24px;
|
|
}
|
|
|
|
.home-v2-listing-filter-chip,
|
|
.home-v2-listing-filter-clear {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 6px;
|
|
min-height: 28px;
|
|
padding: 0 10px;
|
|
border: 1px solid var(--hv2-border);
|
|
border-radius: 999px;
|
|
background: color-mix(in srgb, var(--hv2-surface) 78%, transparent);
|
|
color: var(--hv2-text-secondary);
|
|
font: inherit;
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
line-height: 1;
|
|
}
|
|
|
|
.home-v2-listing-filter-chip:not(.is-summary),
|
|
.home-v2-listing-filter-clear {
|
|
cursor: pointer;
|
|
transition:
|
|
background 0.14s ease,
|
|
border-color 0.14s ease,
|
|
color 0.14s ease;
|
|
}
|
|
|
|
.home-v2-listing-filter-chip:not(.is-summary):hover,
|
|
.home-v2-listing-filter-chip:not(.is-summary):focus-visible,
|
|
.home-v2-listing-filter-clear:hover,
|
|
.home-v2-listing-filter-clear:focus-visible {
|
|
border-color: var(--hv2-border-hover);
|
|
background: var(--hv2-surface-hover);
|
|
color: var(--hv2-text);
|
|
outline: none;
|
|
}
|
|
|
|
.home-v2-listing-filter-chip svg {
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-listing-filter-clear {
|
|
background: transparent;
|
|
}
|
|
|
|
/* Segmented control — listing toolbar + search typeahead */
|
|
.clawhub-segmented,
|
|
.home-v2-listing-kind,
|
|
.home-v2-listing-view,
|
|
.browse-view-toggle {
|
|
--clawhub-segmented-seg-h: 30px;
|
|
--clawhub-segmented-h: calc(var(--clawhub-segmented-seg-h) + 8px);
|
|
--home-v2-listing-control-h: var(--clawhub-segmented-h);
|
|
--home-v2-listing-control-seg-h: var(--clawhub-segmented-seg-h);
|
|
--clawhub-segmented-border: color-mix(in srgb, var(--line) 58%, transparent);
|
|
--clawhub-segmented-bg: color-mix(in srgb, var(--surface) 95%, transparent);
|
|
--clawhub-segmented-fg: var(--ink-soft);
|
|
--clawhub-segmented-fg-hover: var(--ink);
|
|
--clawhub-segmented-fg-active: var(--ink);
|
|
--clawhub-segmented-active-bg: color-mix(in srgb, var(--ink) 10%, transparent);
|
|
display: inline-flex;
|
|
align-items: center;
|
|
flex-shrink: 0;
|
|
align-self: center;
|
|
gap: 2px;
|
|
box-sizing: border-box;
|
|
height: var(--clawhub-segmented-h);
|
|
padding: 3px;
|
|
border: 1px solid var(--clawhub-segmented-border);
|
|
border-radius: var(--oc-radius-control);
|
|
background: var(--clawhub-segmented-bg);
|
|
transition:
|
|
border-color 0.15s ease,
|
|
background 0.15s ease;
|
|
}
|
|
|
|
.clawhub-segmented-btn,
|
|
.home-v2-listing-kind-btn,
|
|
.home-v2-listing-view-btn,
|
|
.browse-view-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
height: var(--clawhub-segmented-seg-h);
|
|
border: none;
|
|
border-radius: var(--oc-radius-inset);
|
|
background: transparent;
|
|
color: var(--clawhub-segmented-fg);
|
|
font-size: 14px;
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
cursor: pointer;
|
|
transition:
|
|
color 0.15s ease,
|
|
background 0.15s ease;
|
|
}
|
|
|
|
.clawhub-segmented-btn,
|
|
.home-v2-listing-kind-btn {
|
|
padding: 0 12px;
|
|
}
|
|
|
|
.clawhub-segmented-btn {
|
|
gap: 6px;
|
|
}
|
|
|
|
.clawhub-segmented-label,
|
|
.clawhub-segmented-count {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
line-height: 1;
|
|
}
|
|
|
|
.clawhub-segmented-count {
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
font-variant-numeric: tabular-nums;
|
|
color: color-mix(in srgb, currentColor 62%, transparent);
|
|
}
|
|
|
|
.clawhub-segmented-btn.is-active .clawhub-segmented-count {
|
|
color: color-mix(in srgb, currentColor 76%, transparent);
|
|
}
|
|
|
|
.home-v2-listing-kind,
|
|
.home-v2-listing-view {
|
|
--clawhub-segmented-h: calc(var(--clawhub-segmented-seg-h) + 8px);
|
|
padding: 3px;
|
|
}
|
|
|
|
.home-v2-listing-view-btn,
|
|
.browse-view-btn {
|
|
width: var(--clawhub-segmented-seg-h);
|
|
padding: 0;
|
|
}
|
|
|
|
.clawhub-segmented-btn:hover,
|
|
.clawhub-segmented-btn:focus-visible,
|
|
.home-v2-listing-kind-btn:hover,
|
|
.home-v2-listing-view-btn:hover,
|
|
.browse-view-btn:hover,
|
|
.browse-view-btn:focus-visible {
|
|
color: var(--clawhub-segmented-fg-hover);
|
|
}
|
|
|
|
.clawhub-segmented-btn.is-active,
|
|
.home-v2-listing-kind-btn.is-active,
|
|
.home-v2-listing-view-btn.is-active,
|
|
.browse-view-btn.is-active {
|
|
background: var(--clawhub-segmented-active-bg);
|
|
color: var(--clawhub-segmented-fg-active);
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .clawhub-segmented,
|
|
.app-shell:has(.home-v2-main) .home-v2-listing-kind,
|
|
.app-shell:has(.home-v2-main) .home-v2-listing-view,
|
|
.app-shell:has(.home-v2-main) .browse-view-toggle {
|
|
--clawhub-segmented-border: color-mix(in srgb, var(--hv2-border) 72%, transparent);
|
|
--clawhub-segmented-bg: color-mix(in srgb, var(--hv2-surface) 95%, transparent);
|
|
--clawhub-segmented-fg: var(--hv2-text-tertiary);
|
|
--clawhub-segmented-fg-hover: var(--hv2-text-secondary);
|
|
--clawhub-segmented-fg-active: var(--hv2-text);
|
|
--clawhub-segmented-active-bg: color-mix(in srgb, var(--hv2-text) 10%, transparent);
|
|
}
|
|
|
|
/* Category combobox (custom panel + search) */
|
|
.home-v2-listing-category-menu {
|
|
position: relative;
|
|
flex-shrink: 1;
|
|
min-width: 0;
|
|
max-width: min(240px, 40vw);
|
|
}
|
|
|
|
.home-v2-listing-category-trigger {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
box-sizing: border-box;
|
|
width: 100%;
|
|
min-height: 36px;
|
|
padding: 7px 4px 7px 2px;
|
|
border: none;
|
|
border-radius: var(--oc-radius-control);
|
|
background: transparent;
|
|
color: var(--hv2-text-secondary);
|
|
font-size: 14px;
|
|
font-weight: 600;
|
|
line-height: 1.25;
|
|
cursor: pointer;
|
|
transition: color 0.15s ease;
|
|
}
|
|
|
|
.home-v2-listing-category-trigger:hover,
|
|
.home-v2-listing-category-trigger[aria-expanded="true"] {
|
|
color: var(--hv2-text);
|
|
background: transparent;
|
|
}
|
|
|
|
.home-v2-listing-category-trigger:focus-visible {
|
|
outline: 2px solid var(--oc-focus-ring);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.home-v2-listing-category-trigger-main {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
flex: 1;
|
|
}
|
|
|
|
.home-v2-listing-category-trigger-category-icon {
|
|
flex-shrink: 0;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-listing-category-trigger-label {
|
|
min-width: 0;
|
|
line-height: 1.25;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
text-align: left;
|
|
}
|
|
|
|
.home-v2-listing-category-trigger-icon {
|
|
flex-shrink: 0;
|
|
opacity: 0.7;
|
|
transition: transform 0.15s ease;
|
|
}
|
|
|
|
.home-v2-listing-category-trigger-icon.is-open {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
.home-v2-listing-category-panel {
|
|
position: absolute;
|
|
top: calc(100% + 6px);
|
|
right: 0;
|
|
z-index: 50;
|
|
display: flex;
|
|
flex-direction: column;
|
|
width: min(320px, calc(100vw - 32px));
|
|
max-height: min(400px, 58vh);
|
|
border: 1px solid var(--hv2-border-strong);
|
|
border-radius: var(--oc-radius-surface);
|
|
background: color-mix(in srgb, var(--hv2-bg) 82%, transparent);
|
|
-webkit-backdrop-filter: blur(14px) saturate(1.12);
|
|
backdrop-filter: blur(14px) saturate(1.12);
|
|
box-shadow: var(--oc-shadow-lg);
|
|
overflow: hidden;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .home-v2-listing-category-panel {
|
|
background: color-mix(in srgb, var(--hv2-bg) 90%, transparent);
|
|
-webkit-backdrop-filter: blur(12px) saturate(1.06);
|
|
backdrop-filter: blur(12px) saturate(1.06);
|
|
box-shadow: var(--oc-shadow-lg);
|
|
}
|
|
|
|
.home-v2-listing-category-search-wrap {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 10px 12px;
|
|
border-bottom: 1px solid var(--hv2-border);
|
|
background: color-mix(in srgb, var(--hv2-bg) 55%, transparent);
|
|
}
|
|
|
|
.home-v2-listing-category-search-icon {
|
|
flex-shrink: 0;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-listing-category-search {
|
|
all: unset;
|
|
box-sizing: border-box;
|
|
flex: 1;
|
|
min-width: 0;
|
|
font-size: 14px;
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-listing-category-search::placeholder {
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-listing-category-options {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
margin: 0;
|
|
padding: 8px;
|
|
list-style: none;
|
|
overflow-y: auto;
|
|
overscroll-behavior: contain;
|
|
scrollbar-color: color-mix(in srgb, var(--hv2-text-tertiary) 72%, transparent) transparent;
|
|
scrollbar-width: thin;
|
|
}
|
|
|
|
.home-v2-listing-category-options::-webkit-scrollbar {
|
|
width: 8px;
|
|
}
|
|
|
|
.home-v2-listing-category-options::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
|
|
.home-v2-listing-category-options::-webkit-scrollbar-thumb {
|
|
background: color-mix(in srgb, var(--hv2-text-tertiary) 62%, transparent);
|
|
border: 2px solid transparent;
|
|
border-radius: 999px;
|
|
background-clip: content-box;
|
|
}
|
|
|
|
.home-v2-listing-category-option-wrap {
|
|
display: block;
|
|
}
|
|
|
|
.home-v2-listing-category-option-wrap.is-reset {
|
|
margin-bottom: 4px;
|
|
padding-bottom: 8px;
|
|
border-bottom: 1px solid var(--hv2-border);
|
|
}
|
|
|
|
.home-v2-listing-category-option-wrap.is-reset .home-v2-listing-category-option {
|
|
font-weight: 750;
|
|
}
|
|
|
|
.home-v2-listing-category-option {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
width: 100%;
|
|
padding: 9px 10px;
|
|
border: none;
|
|
border-radius: 10px;
|
|
background: transparent;
|
|
color: var(--hv2-text);
|
|
font-size: 14px;
|
|
font-weight: 600;
|
|
line-height: 1.3;
|
|
text-align: left;
|
|
cursor: pointer;
|
|
transition:
|
|
background 0.12s ease,
|
|
color 0.12s ease;
|
|
}
|
|
|
|
.home-v2-listing-category-option:hover,
|
|
.home-v2-listing-category-option:focus-visible {
|
|
background: color-mix(in srgb, var(--hv2-text) 7%, transparent);
|
|
outline: none;
|
|
}
|
|
|
|
.home-v2-listing-category-option.is-selected {
|
|
background: color-mix(in srgb, var(--hv2-text) 9%, transparent);
|
|
}
|
|
|
|
.home-v2-listing-category-option-icon {
|
|
flex-shrink: 0;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-listing-category-option.is-selected .home-v2-listing-category-option-icon {
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
|
|
.home-v2-listing-category-option-mark {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 18px;
|
|
height: 18px;
|
|
flex-shrink: 0;
|
|
border-radius: 5px;
|
|
border: 1px solid var(--hv2-border-strong);
|
|
background: color-mix(in srgb, var(--hv2-bg) 40%, transparent);
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-listing-category-option.is-selected .home-v2-listing-category-option-mark {
|
|
border-color: color-mix(in srgb, var(--hv2-accent) 45%, var(--hv2-border));
|
|
background: color-mix(in srgb, var(--hv2-accent) 14%, transparent);
|
|
color: var(--hv2-accent);
|
|
}
|
|
|
|
.home-v2-listing-category-option-label {
|
|
min-width: 0;
|
|
}
|
|
|
|
.home-v2-listing-category-empty {
|
|
padding: 12px 10px;
|
|
color: var(--hv2-text-tertiary);
|
|
font-size: 13px;
|
|
}
|
|
|
|
.home-v2-listing-sort {
|
|
display: flex;
|
|
align-items: center;
|
|
align-self: stretch;
|
|
flex: 1;
|
|
min-width: 0;
|
|
min-height: 40px;
|
|
}
|
|
|
|
.home-v2-listing-sort-tabs {
|
|
display: flex;
|
|
align-items: center;
|
|
align-self: stretch;
|
|
gap: 28px;
|
|
min-width: 0;
|
|
overflow-x: auto;
|
|
scrollbar-width: none;
|
|
-webkit-overflow-scrolling: touch;
|
|
}
|
|
|
|
.home-v2-listing-sort-tabs::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.home-v2-listing-tab {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
align-self: stretch;
|
|
border: none;
|
|
background: none;
|
|
padding: 0 2px;
|
|
font-size: 14px;
|
|
font-weight: 400;
|
|
line-height: 1;
|
|
color: var(--hv2-text-tertiary);
|
|
cursor: pointer;
|
|
white-space: nowrap;
|
|
border-bottom: 2px solid transparent;
|
|
transition:
|
|
color 0.15s ease,
|
|
border-color 0.15s ease;
|
|
}
|
|
|
|
.home-v2-listing-tab-icon {
|
|
flex-shrink: 0;
|
|
color: color-mix(in srgb, var(--hv2-text-tertiary) 88%, transparent);
|
|
}
|
|
|
|
.home-v2-listing-tab:hover {
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
|
|
.home-v2-listing-tab:hover .home-v2-listing-tab-icon {
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
|
|
.home-v2-listing-tab.is-active {
|
|
color: var(--hv2-text);
|
|
border-bottom-color: var(--hv2-text);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.home-v2-listing-tab.is-active .home-v2-listing-tab-icon {
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-listing-head {
|
|
--home-v2-listing-copy-max: min(54rem, 60vw);
|
|
display: grid;
|
|
grid-template-columns: minmax(0, var(--home-v2-listing-copy-max)) 1fr auto;
|
|
gap: 16px 20px;
|
|
align-items: center;
|
|
padding: 0 4px 8px;
|
|
margin-bottom: 2px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--hv2-border) 65%, transparent);
|
|
}
|
|
|
|
.home-v2-listing-head.has-no-stats {
|
|
grid-template-columns: minmax(0, var(--home-v2-listing-copy-max)) 1fr;
|
|
}
|
|
|
|
.home-v2-listing-head-icon-spacer {
|
|
grid-column: 1;
|
|
width: 34px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.home-v2-listing-head-label,
|
|
.home-v2-listing-head-stat {
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
letter-spacing: 0.07em;
|
|
text-transform: uppercase;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-listing-head-label {
|
|
grid-column: 1;
|
|
}
|
|
|
|
.home-v2-listing-head-stat {
|
|
grid-column: 3;
|
|
justify-self: end;
|
|
}
|
|
|
|
.home-v2-listing-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.home-v2-listing-card {
|
|
display: grid;
|
|
gap: 12px;
|
|
align-content: start;
|
|
padding: 16px;
|
|
border-radius: var(--hv2-radius-lg);
|
|
border: 1px solid var(--hv2-border);
|
|
background: color-mix(in srgb, var(--hv2-surface) 95%, transparent);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
box-shadow: none;
|
|
transition:
|
|
border-color var(--hv2-duration-ui) var(--hv2-ease-out),
|
|
background var(--hv2-duration-ui) var(--hv2-ease-out),
|
|
transform var(--hv2-duration-ui) var(--hv2-ease-out),
|
|
box-shadow var(--hv2-duration-ui) var(--hv2-ease-out);
|
|
}
|
|
|
|
.home-v2-listing-card:focus-visible {
|
|
border-color: color-mix(in srgb, var(--hv2-text) 14%, transparent);
|
|
background: var(--hv2-surface-hover);
|
|
text-decoration: none;
|
|
outline: none;
|
|
}
|
|
|
|
.home-v2-listing-card:active {
|
|
transform: scale(0.992);
|
|
transition-duration: 100ms;
|
|
}
|
|
|
|
.home-v2-listing-card-head {
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr);
|
|
align-items: center;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.home-v2-listing-card-icon {
|
|
display: flex;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.home-v2-listing-card-icon .marketplace-icon {
|
|
width: 34px;
|
|
height: 34px;
|
|
border-radius: var(--oc-radius-inset);
|
|
opacity: 1;
|
|
filter: none;
|
|
transform: none;
|
|
box-shadow: none;
|
|
--marketplace-icon-wash: transparent;
|
|
--marketplace-icon-accent: var(--hv2-text-secondary);
|
|
background: color-mix(in srgb, var(--hv2-text) 4%, transparent) !important;
|
|
border: 1px solid color-mix(in srgb, var(--hv2-text) 7%, transparent) !important;
|
|
color: var(--hv2-text-secondary);
|
|
transition:
|
|
transform var(--hv2-duration-fast) var(--hv2-ease-out),
|
|
background var(--hv2-duration-fast) var(--hv2-ease-out),
|
|
border-color var(--hv2-duration-fast) var(--hv2-ease-out);
|
|
}
|
|
|
|
.home-v2-listing-card-icon .marketplace-icon-glyph,
|
|
.home-v2-listing-card-icon .marketplace-icon-image {
|
|
opacity: 1;
|
|
filter: grayscale(1) brightness(1.18);
|
|
}
|
|
|
|
.home-v2-listing-card-icon .marketplace-icon--brand .marketplace-icon-image {
|
|
filter: grayscale(1) brightness(1.18);
|
|
}
|
|
|
|
.home-v2-listing-card-icon .marketplace-icon-glyph {
|
|
width: 17px;
|
|
height: 17px;
|
|
}
|
|
|
|
.home-v2-listing-card-id {
|
|
display: grid;
|
|
gap: 2px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.home-v2-listing-card-by-row {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.home-v2-listing-card-name {
|
|
font-size: 15px;
|
|
font-weight: 600;
|
|
line-height: 1.25;
|
|
letter-spacing: -0.01em;
|
|
color: var(--hv2-text);
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.home-v2-listing-card-by {
|
|
font-family: var(--font-mono), ui-monospace, monospace;
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
color: var(--hv2-text-tertiary);
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.home-v2-listing-card-summary {
|
|
margin: 0;
|
|
font-size: 13px;
|
|
line-height: 1.5;
|
|
color: var(--hv2-text-tertiary);
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
min-height: calc(1.5em * 2);
|
|
}
|
|
|
|
.home-v2-listing-card-stats {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
padding-top: 12px;
|
|
border-top: 1px solid color-mix(in srgb, var(--hv2-border) 60%, transparent);
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
font-variant-numeric: tabular-nums;
|
|
color: var(--hv2-text-secondary);
|
|
transition: color var(--hv2-duration-fast) var(--hv2-ease-out);
|
|
}
|
|
|
|
.home-v2-listing-card-stats span {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
}
|
|
|
|
.home-v2-listing-card-stats svg {
|
|
opacity: 0.45;
|
|
transition: opacity var(--hv2-duration-fast) var(--hv2-ease-out);
|
|
}
|
|
|
|
.home-v2-listing-card:focus-visible .home-v2-listing-card-stats {
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-listing-card:focus-visible .home-v2-listing-card-stats svg {
|
|
opacity: 0.72;
|
|
}
|
|
|
|
@media (max-width: 960px) {
|
|
.home-v2-listing-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 560px) {
|
|
.home-v2-listing-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
.home-v2-listing-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
border: none;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
}
|
|
|
|
.home-v2-listing-list > .home-v2-listing-row {
|
|
content-visibility: auto;
|
|
contain-intrinsic-size: auto 64px;
|
|
}
|
|
|
|
.home-v2-listing-results {
|
|
position: relative;
|
|
}
|
|
|
|
.home-v2-listing-results.is-collapsed.is-list .home-v2-listing-list {
|
|
padding-bottom: 4px;
|
|
}
|
|
|
|
.home-v2-listing-results.is-collapsed.is-grid .home-v2-listing-grid {
|
|
padding-bottom: 4px;
|
|
}
|
|
|
|
.home-v2-listing-more {
|
|
position: relative;
|
|
z-index: 2;
|
|
display: flex;
|
|
justify-content: center;
|
|
margin-top: -64px;
|
|
padding: 52px 0 8px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.home-v2-listing-more-fade {
|
|
position: absolute;
|
|
inset: 0 0 auto;
|
|
height: 100%;
|
|
pointer-events: none;
|
|
background: linear-gradient(
|
|
to bottom,
|
|
transparent 0%,
|
|
color-mix(in srgb, var(--hv2-bg) 55%, transparent) 42%,
|
|
var(--hv2-bg) 100%
|
|
);
|
|
}
|
|
|
|
.home-v2-listing-more-btn {
|
|
position: relative;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
pointer-events: auto;
|
|
padding: 8px 18px;
|
|
border: 1px solid var(--hv2-border-strong);
|
|
border-radius: var(--r-pill);
|
|
background: var(--hv2-surface);
|
|
color: var(--hv2-text-secondary);
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
cursor: pointer;
|
|
box-shadow: 0 8px 24px color-mix(in srgb, var(--hv2-bg) 70%, transparent);
|
|
transition:
|
|
color 0.15s ease,
|
|
border-color 0.15s ease,
|
|
background 0.15s ease;
|
|
}
|
|
|
|
.home-v2-listing-more-btn:hover,
|
|
.home-v2-listing-more-btn:focus-visible {
|
|
color: var(--hv2-text);
|
|
border-color: var(--hv2-border-hover);
|
|
background: var(--hv2-surface-hover);
|
|
outline: none;
|
|
}
|
|
|
|
.home-v2-listing-list-loading {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.home-v2-listing-row {
|
|
--home-v2-listing-copy-max: min(54rem, 60vw);
|
|
position: relative;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, var(--home-v2-listing-copy-max)) 1fr auto;
|
|
gap: 16px 20px;
|
|
align-items: center;
|
|
padding: 13px 4px;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--hv2-border) 65%, transparent);
|
|
contain: layout style;
|
|
}
|
|
|
|
.home-v2-listing-row.has-no-stats {
|
|
grid-template-columns: minmax(0, var(--home-v2-listing-copy-max)) 1fr;
|
|
}
|
|
|
|
.home-v2-listing-row::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0 0 2px;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.home-v2-listing-row > * {
|
|
position: relative;
|
|
}
|
|
|
|
.home-v2-listing-row:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.home-v2-listing-row:focus-visible {
|
|
text-decoration: none;
|
|
outline: none;
|
|
}
|
|
|
|
.home-v2-listing-row:focus-visible::before {
|
|
background: color-mix(in srgb, var(--hv2-text) 3%, transparent);
|
|
}
|
|
|
|
@media (hover: hover) and (pointer: fine) {
|
|
.home-v2-listing-row:hover {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.home-v2-listing-row:hover::before {
|
|
background: color-mix(in srgb, var(--hv2-text) 3%, transparent);
|
|
}
|
|
}
|
|
|
|
.home-v2-listing-row-icon {
|
|
grid-column: 1;
|
|
display: flex;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.home-v2-listing-row .marketplace-icon:hover {
|
|
transform: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.home-v2-listing-row-icon .marketplace-icon {
|
|
width: 34px;
|
|
height: 34px;
|
|
border-radius: var(--oc-radius-inset);
|
|
pointer-events: none;
|
|
transform: none;
|
|
box-shadow: none;
|
|
transition: none;
|
|
--marketplace-icon-wash: transparent;
|
|
--marketplace-icon-accent: var(--hv2-text-secondary);
|
|
background: color-mix(in srgb, var(--hv2-text) 4%, transparent) !important;
|
|
border: 1px solid color-mix(in srgb, var(--hv2-text) 7%, transparent) !important;
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
|
|
.home-v2-listing-row-icon .marketplace-icon-glyph,
|
|
.home-v2-listing-row-icon .marketplace-icon-image {
|
|
filter: grayscale(1) brightness(1.18);
|
|
}
|
|
|
|
.home-v2-listing-row-icon .marketplace-icon--brand .marketplace-icon-image,
|
|
.home-v2-listing-card-icon .marketplace-icon--brand .marketplace-icon-image {
|
|
object-fit: contain;
|
|
padding: 6px;
|
|
}
|
|
|
|
.home-v2-listing-row-icon .marketplace-icon-glyph {
|
|
width: 17px;
|
|
height: 17px;
|
|
}
|
|
|
|
.home-v2-listing-row-stats svg {
|
|
opacity: 0.45;
|
|
}
|
|
|
|
.home-v2-listing-row-body {
|
|
grid-column: 1;
|
|
min-width: 0;
|
|
max-width: var(--home-v2-listing-copy-max);
|
|
display: grid;
|
|
gap: 4px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.home-v2-listing-row-title {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: nowrap;
|
|
gap: 6px 10px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.home-v2-listing .official-badge {
|
|
width: 14px;
|
|
height: 14px;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
color: var(--official-fg);
|
|
}
|
|
|
|
.home-v2-listing .official-badge svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.home-v2-listing-row-name {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
font-size: 15px;
|
|
font-weight: 600;
|
|
line-height: 1.25;
|
|
color: var(--hv2-text);
|
|
letter-spacing: -0.01em;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.home-v2-listing-row-by {
|
|
font-family: var(--font-mono), ui-monospace, monospace;
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
color: var(--hv2-text-tertiary);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.home-v2-listing-row-summary {
|
|
margin: 0;
|
|
font-size: 13px;
|
|
line-height: 1.5;
|
|
color: var(--hv2-text-tertiary);
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.home-v2-listing-more-spinner {
|
|
animation: home-v2-listing-more-spin 0.7s linear infinite;
|
|
}
|
|
|
|
@keyframes home-v2-listing-more-spin {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
.home-v2-listing-more-btn[data-loading="true"] {
|
|
cursor: progress;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.home-v2-listing-row-stats {
|
|
grid-column: 3;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 14px;
|
|
flex-shrink: 0;
|
|
min-width: 5.5rem;
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
font-variant-numeric: tabular-nums;
|
|
color: var(--hv2-text-secondary);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.home-v2-listing-row-stats.is-skills-sh {
|
|
gap: 7px;
|
|
}
|
|
|
|
.home-v2-listing-row-stats span {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
}
|
|
|
|
.home-v2-listing-row:focus-visible .home-v2-listing-row-stats {
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
@media (hover: hover) and (pointer: fine) {
|
|
.home-v2-listing-row:hover .home-v2-listing-row-stats {
|
|
color: var(--hv2-text);
|
|
}
|
|
}
|
|
|
|
@media (hover: hover) and (pointer: fine) {
|
|
.home-v2-listing-card:hover {
|
|
border-color: color-mix(in srgb, var(--hv2-text) 14%, transparent);
|
|
background: var(--hv2-surface-hover);
|
|
text-decoration: none;
|
|
transform: scale(1.006);
|
|
box-shadow:
|
|
inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 5%, transparent),
|
|
0 8px 28px color-mix(in srgb, var(--hv2-bg) 55%, transparent);
|
|
}
|
|
|
|
.home-v2-listing-card:hover .home-v2-listing-card-icon .marketplace-icon {
|
|
transform: scale(1.04);
|
|
background: color-mix(in srgb, var(--hv2-text) 7%, transparent) !important;
|
|
border-color: color-mix(in srgb, var(--hv2-text) 11%, transparent) !important;
|
|
}
|
|
|
|
.home-v2-listing-card:hover .home-v2-listing-card-stats {
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-listing-card:hover .home-v2-listing-card-stats svg {
|
|
opacity: 0.72;
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.home-v2-listing-card,
|
|
.home-v2-listing-card-icon .marketplace-icon,
|
|
.home-v2-listing-card-stats,
|
|
.home-v2-listing-card-stats svg {
|
|
transition-duration: 0.01ms;
|
|
}
|
|
|
|
.home-v2-listing-card:hover,
|
|
.home-v2-listing-card:active {
|
|
transform: none;
|
|
}
|
|
|
|
.home-v2-listing-card:hover .home-v2-listing-card-icon .marketplace-icon {
|
|
transform: none;
|
|
}
|
|
}
|
|
|
|
.home-v2-listing-skeleton {
|
|
min-height: 64px;
|
|
border: 1px solid color-mix(in srgb, var(--hv2-border) 56%, transparent);
|
|
border-radius: var(--hv2-radius-sm);
|
|
background: linear-gradient(
|
|
110deg,
|
|
color-mix(in srgb, var(--hv2-surface) 88%, transparent) 8%,
|
|
color-mix(in srgb, var(--hv2-text) 6%, transparent) 18%,
|
|
color-mix(in srgb, var(--hv2-surface) 88%, transparent) 33%
|
|
);
|
|
background-size: 200% 100%;
|
|
animation: home-v2-listing-shimmer 1.2s ease-in-out infinite;
|
|
}
|
|
|
|
.home-v2-listing-skeleton:last-child {
|
|
border-bottom: 1px solid color-mix(in srgb, var(--hv2-border) 56%, transparent);
|
|
}
|
|
|
|
@keyframes home-v2-listing-shimmer {
|
|
0% {
|
|
background-position: 100% 0;
|
|
}
|
|
100% {
|
|
background-position: -100% 0;
|
|
}
|
|
}
|
|
|
|
.home-v2-listing-empty {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 8px;
|
|
min-height: clamp(220px, 36vh, 360px);
|
|
margin: 8px 0 0;
|
|
padding: 52px 28px 60px;
|
|
text-align: center;
|
|
border: 1px dashed color-mix(in srgb, var(--hv2-border) 85%, transparent);
|
|
border-radius: 14px;
|
|
background: linear-gradient(
|
|
180deg,
|
|
color-mix(in srgb, var(--hv2-surface) 80%, transparent),
|
|
transparent 72%
|
|
);
|
|
}
|
|
|
|
.home-v2-listing-empty-icon {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 58px;
|
|
height: 58px;
|
|
margin-bottom: 6px;
|
|
border-radius: 999px;
|
|
border: 1px solid var(--hv2-border);
|
|
background: var(--hv2-accent-fill);
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
|
|
.home-v2-listing-empty-title {
|
|
margin: 0;
|
|
max-width: 28ch;
|
|
font-size: 18px;
|
|
font-weight: 650;
|
|
letter-spacing: -0.02em;
|
|
line-height: 1.25;
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-listing-empty-body {
|
|
margin: 0;
|
|
max-width: 40ch;
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
line-height: 1.55;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-listing-empty-action {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
margin-top: 10px;
|
|
padding: 9px 18px;
|
|
border: 1px solid var(--hv2-accent-border);
|
|
border-radius: var(--r-pill);
|
|
background: var(--hv2-accent-fill);
|
|
color: var(--hv2-text);
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
cursor: pointer;
|
|
transition:
|
|
background 0.15s ease,
|
|
border-color 0.15s ease,
|
|
color 0.15s ease;
|
|
}
|
|
|
|
.home-v2-listing-empty-action:hover,
|
|
.home-v2-listing-empty-action:focus-visible {
|
|
border-color: var(--hv2-accent-border-hover);
|
|
background: var(--hv2-accent-fill-hover);
|
|
color: var(--hv2-text);
|
|
outline: none;
|
|
}
|
|
|
|
/* ═══ TRENDING ═══ */
|
|
.home-v2-trending-section {
|
|
padding: 48px 48px 80px;
|
|
}
|
|
.home-v2-discovery-section {
|
|
padding: 48px 48px 80px;
|
|
border-top: 1px solid var(--hv2-border);
|
|
}
|
|
.home-v2-discovery-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 32px;
|
|
}
|
|
.home-v2-column-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 20px;
|
|
}
|
|
.home-v2-section-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 24px;
|
|
max-width: 1200px;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
.home-v2-section-header-stack {
|
|
align-items: flex-end;
|
|
gap: 20px;
|
|
margin-bottom: 0;
|
|
}
|
|
.home-v2-section-header h2 {
|
|
font-size: 15px;
|
|
font-weight: 600;
|
|
color: var(--hv2-text-secondary);
|
|
letter-spacing: 0.02em;
|
|
text-transform: uppercase;
|
|
}
|
|
.home-v2-section-header .home-v2-section-copy h2 {
|
|
font-size: clamp(22px, 2.1vw, 30px);
|
|
font-weight: 700;
|
|
line-height: 1.08;
|
|
letter-spacing: -0.03em;
|
|
color: var(--hv2-text);
|
|
text-transform: none;
|
|
}
|
|
.home-v2-section-link {
|
|
color: var(--hv2-text-secondary);
|
|
text-decoration: none;
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
transition: color 0.15s;
|
|
white-space: nowrap;
|
|
}
|
|
.home-v2-section-link:hover {
|
|
color: var(--hv2-text);
|
|
}
|
|
.home-v2-trending-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 16px;
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
}
|
|
.home-v2-trending-grid-stack {
|
|
grid-template-columns: 1fr;
|
|
gap: 14px;
|
|
}
|
|
.home-v2-trend-card {
|
|
background: var(--hv2-surface);
|
|
border: 1px solid var(--hv2-border);
|
|
border-radius: var(--hv2-radius-lg);
|
|
padding: 24px;
|
|
transition:
|
|
border-color 0.2s,
|
|
transform 0.2s,
|
|
box-shadow 0.25s,
|
|
background 0.2s;
|
|
cursor: pointer;
|
|
display: flex;
|
|
flex-direction: column;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
.home-v2-trend-card:hover {
|
|
border-color: var(--hv2-border-hover);
|
|
transform: translateY(-2px);
|
|
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
|
|
background: var(--hv2-surface-hover);
|
|
}
|
|
.home-v2-trend-head {
|
|
margin-bottom: 12px;
|
|
}
|
|
.home-v2-trend-title {
|
|
font-weight: 600;
|
|
font-size: 17px;
|
|
color: var(--hv2-text);
|
|
margin-bottom: 4px;
|
|
}
|
|
.home-v2-trend-creator {
|
|
font-size: 14px;
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
.home-v2-trend-desc {
|
|
font-size: 13px;
|
|
color: var(--hv2-text-secondary);
|
|
line-height: 1.55;
|
|
flex: 1;
|
|
margin-bottom: 20px;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
}
|
|
.home-v2-trend-bottom {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
.home-v2-trend-signals {
|
|
display: flex;
|
|
gap: 14px;
|
|
font-size: 12px;
|
|
color: var(--hv2-text-secondary);
|
|
font-weight: 500;
|
|
}
|
|
.home-v2-trend-signals span {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
}
|
|
.home-v2-trend-install {
|
|
background: var(--hv2-green-fill);
|
|
border: 1.5px solid var(--hv2-green-border);
|
|
border-radius: var(--hv2-radius-sm);
|
|
padding: 6px 14px;
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
color: var(--hv2-green);
|
|
cursor: pointer;
|
|
transition: all 0.15s;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
}
|
|
.home-v2-trend-card:hover .home-v2-trend-install {
|
|
background: var(--hv2-green-fill-hover);
|
|
border-color: var(--hv2-green-border-hover);
|
|
}
|
|
|
|
.site-footer-v2 {
|
|
--hv2-bg: #060608;
|
|
--hv2-surface: rgba(255, 255, 255, 0.02);
|
|
--hv2-surface-hover: rgba(255, 255, 255, 0.045);
|
|
--hv2-border: rgba(255, 255, 255, 0.07);
|
|
--hv2-border-hover: rgba(255, 255, 255, 0.14);
|
|
--hv2-border-strong: rgba(255, 255, 255, 0.1);
|
|
--hv2-text: #eaeaea;
|
|
--hv2-text-secondary: #b2b2b8;
|
|
--hv2-text-tertiary: #82828a;
|
|
--hv2-accent: #d4453a;
|
|
/* Easter egg hidden for now — no reveal depth reserved below the footer. */
|
|
--footer-easter-depth: 0px;
|
|
position: relative;
|
|
isolation: isolate;
|
|
margin-bottom: var(--footer-easter-depth);
|
|
padding: 0;
|
|
border-radius: 0;
|
|
background: var(--hv2-bg);
|
|
border-top-color: var(--hv2-border);
|
|
box-shadow: 0 26px 46px rgb(0 0 0 / 0.34);
|
|
}
|
|
|
|
.site-footer-v2::after {
|
|
position: absolute;
|
|
z-index: 0;
|
|
inset: 0;
|
|
border-radius: inherit;
|
|
background: var(--hv2-bg);
|
|
content: "";
|
|
pointer-events: none;
|
|
}
|
|
|
|
.site-footer-v2::before {
|
|
content: none;
|
|
}
|
|
|
|
.footer-v2-easter {
|
|
display: none;
|
|
--footer-easter-x: 50%;
|
|
--footer-easter-y: 34%;
|
|
--footer-easter-intensity: 0;
|
|
--footer-easter-reveal: 0;
|
|
position: absolute;
|
|
z-index: -1;
|
|
top: calc(100% - 48px);
|
|
right: 0;
|
|
bottom: calc(var(--footer-easter-depth) * -1);
|
|
left: 0;
|
|
overflow: hidden;
|
|
background: #050505;
|
|
content: "";
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.footer-v2-easter-image {
|
|
position: absolute;
|
|
inset: 0;
|
|
background-position: center center;
|
|
background-repeat: no-repeat;
|
|
background-size: 112% auto;
|
|
pointer-events: none;
|
|
will-change: transform, opacity;
|
|
}
|
|
|
|
.footer-v2-easter-image--base {
|
|
background-image: url("/footer-openclaw-easter-egg.webp");
|
|
transform: translate3d(0, calc((1 - var(--footer-easter-reveal, 0)) * 64px), 0);
|
|
opacity: calc(0.35 + 0.65 * var(--footer-easter-reveal, 0));
|
|
}
|
|
|
|
.footer-v2-easter-ascii {
|
|
position: absolute;
|
|
inset: -12% -14%;
|
|
z-index: 1;
|
|
margin: 0;
|
|
color: color-mix(in srgb, var(--hv2-accent) 72%, white 12%);
|
|
font-family: var(--font-mono);
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
line-height: 1.38;
|
|
letter-spacing: 0.08em;
|
|
white-space: pre;
|
|
opacity: calc(0.46 * var(--footer-easter-intensity));
|
|
mix-blend-mode: screen;
|
|
transform: translate3d(-1.5%, -1%, 0) rotate(-1deg);
|
|
mask-image:
|
|
radial-gradient(
|
|
ellipse 170px 142px at calc(var(--footer-easter-x) + 14%) calc(var(--footer-easter-y) + 12%),
|
|
#000 0 34%,
|
|
rgb(0 0 0 / 0.7) 52%,
|
|
transparent 80%
|
|
),
|
|
radial-gradient(
|
|
ellipse 82px 58px at calc(var(--footer-easter-x) + 14% - 78px)
|
|
calc(var(--footer-easter-y) + 12% + 24px),
|
|
rgb(0 0 0 / 0.78) 0 42%,
|
|
transparent 76%
|
|
),
|
|
radial-gradient(
|
|
ellipse 66px 92px at calc(var(--footer-easter-x) + 14% + 88px)
|
|
calc(var(--footer-easter-y) + 12% - 38px),
|
|
rgb(0 0 0 / 0.74) 0 38%,
|
|
transparent 78%
|
|
),
|
|
radial-gradient(
|
|
ellipse 52px 38px at calc(var(--footer-easter-x) + 14% + 28px)
|
|
calc(var(--footer-easter-y) + 12% + 92px),
|
|
rgb(0 0 0 / 0.55) 0 34%,
|
|
transparent 72%
|
|
);
|
|
transition: opacity 180ms ease;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.footer-v2-easter-image--top {
|
|
z-index: 2;
|
|
background-image: url("/footer-openclaw-easter-egg-transparent.webp");
|
|
transform: translate3d(0, calc((1 - var(--footer-easter-reveal, 0)) * 128px), 0);
|
|
}
|
|
|
|
.site-footer-v2 .site-footer-inner {
|
|
position: relative;
|
|
z-index: 1;
|
|
width: 100%;
|
|
max-width: var(--page-max);
|
|
margin-inline: auto;
|
|
padding: 72px var(--space-6) 52px;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.footer-v2-main {
|
|
display: grid;
|
|
grid-template-columns: minmax(220px, 0.85fr) minmax(0, 2fr);
|
|
gap: 44px 56px;
|
|
align-items: start;
|
|
}
|
|
|
|
.footer-v2-brand {
|
|
display: grid;
|
|
gap: 14px;
|
|
max-width: 280px;
|
|
}
|
|
|
|
.footer-v2-brand-lockup {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
|
|
.footer-v2-brand-mark {
|
|
width: 22px;
|
|
height: 22px;
|
|
object-fit: contain;
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.footer-v2-brand-name {
|
|
font-size: 16px;
|
|
font-weight: 650;
|
|
letter-spacing: -0.02em;
|
|
}
|
|
|
|
.footer-v2-brand-tagline {
|
|
margin: 0;
|
|
font-size: 14px;
|
|
line-height: 1.55;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.footer-v2-eco-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
width: fit-content;
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.footer-v2-eco-link:hover,
|
|
.footer-v2-eco-link:focus-visible {
|
|
color: var(--accent);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.footer-v2-eco {
|
|
display: grid;
|
|
gap: 16px;
|
|
margin-top: 36px;
|
|
margin-bottom: 0;
|
|
padding: 32px 0 32px;
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.footer-v2-eco-label {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.42em;
|
|
flex-wrap: wrap;
|
|
width: fit-content;
|
|
margin: 0;
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
letter-spacing: 0.1em;
|
|
text-transform: uppercase;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.footer-v2-eco-label-accent {
|
|
position: relative;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
line-height: 1;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.1em;
|
|
color: color-mix(in srgb, var(--accent) 34%, var(--ink-soft) 66%);
|
|
background: linear-gradient(
|
|
110deg,
|
|
color-mix(in srgb, var(--accent) 24%, var(--ink-soft) 76%) 0%,
|
|
color-mix(in srgb, var(--ink-soft) 90%, var(--ink) 10%) 36%,
|
|
color-mix(in srgb, var(--accent) 48%, var(--ink) 52%) 50%,
|
|
color-mix(in srgb, var(--ink-soft) 90%, var(--ink) 10%) 64%,
|
|
color-mix(in srgb, var(--accent) 24%, var(--ink-soft) 76%) 100%
|
|
);
|
|
background-size: 320% 100%;
|
|
-webkit-background-clip: text;
|
|
background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
animation: footer-v2-eco-shimmer 18s ease-in-out infinite;
|
|
}
|
|
|
|
.footer-v2-eco-label-accent img {
|
|
width: 14px;
|
|
height: 14px;
|
|
flex-shrink: 0;
|
|
object-fit: contain;
|
|
opacity: 0.82;
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
@keyframes footer-v2-eco-shimmer {
|
|
0%,
|
|
28% {
|
|
background-position: 100% 50%;
|
|
}
|
|
|
|
58%,
|
|
100% {
|
|
background-position: 0% 50%;
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.footer-v2-eco-label-accent {
|
|
animation: none;
|
|
background-position: 48% 50%;
|
|
}
|
|
}
|
|
|
|
.footer-v2-eco-marks {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 12px 24px;
|
|
row-gap: 12px;
|
|
}
|
|
|
|
.footer-v2-eco-sequence {
|
|
display: contents;
|
|
}
|
|
|
|
.footer-v2-eco-sequence-clone {
|
|
display: none;
|
|
}
|
|
|
|
.footer-v2-eco-mark {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
padding: 0;
|
|
border: none;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
color: var(--ink-soft);
|
|
text-decoration: none;
|
|
transition:
|
|
color 0.15s ease,
|
|
border-color 0.15s ease,
|
|
background 0.15s ease;
|
|
}
|
|
|
|
.footer-v2-eco-mark:hover,
|
|
.footer-v2-eco-mark:focus-visible {
|
|
border-color: transparent;
|
|
background: transparent;
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.footer-v2-eco-mark-logo {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 22px;
|
|
height: 22px;
|
|
flex-shrink: 0;
|
|
border: none;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.footer-v2-eco-mark-logo img {
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: contain;
|
|
}
|
|
|
|
.footer-v2-eco-mark-label {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.footer-v2-eco-all {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.footer-v2-eco-all-intro {
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
color: var(--ink-soft);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.footer-v2-eco-all-sep {
|
|
width: 1px;
|
|
align-self: stretch;
|
|
min-height: 18px;
|
|
margin: 1px 0;
|
|
background: color-mix(in srgb, var(--ink) 16%, var(--line));
|
|
}
|
|
|
|
.footer-v2-eco-mark-all {
|
|
padding: 0;
|
|
border-color: transparent;
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.footer-v2-bottom {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px 24px;
|
|
margin-top: 0;
|
|
padding-top: 28px;
|
|
border-top: 1px solid var(--line);
|
|
font-size: 13px;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.footer-v2-copy,
|
|
.footer-v2-meta {
|
|
margin: 0;
|
|
}
|
|
|
|
.footer-v2-copy-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
white-space: nowrap;
|
|
color: inherit;
|
|
text-decoration: none;
|
|
transition: color 0.15s ease;
|
|
}
|
|
|
|
.footer-v2-copy-link:hover,
|
|
.footer-v2-copy-link:focus-visible {
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.footer-v2-meta a {
|
|
color: var(--ink-soft);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.footer-v2-meta a:hover,
|
|
.footer-v2-meta a:focus-visible {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.footer-v2-meta-sep {
|
|
margin: 0 8px;
|
|
opacity: 0.45;
|
|
}
|
|
|
|
.site-footer-v2 .footer-v2-brand-tagline,
|
|
.site-footer-v2 .footer-col-title,
|
|
.site-footer-v2 .footer-col-links a,
|
|
.site-footer-v2 .footer-col-links span,
|
|
.site-footer-v2 .footer-v2-eco-label,
|
|
.site-footer-v2 .footer-v2-eco-all-intro,
|
|
.site-footer-v2 .footer-v2-eco-mark,
|
|
.site-footer-v2 .footer-v2-bottom,
|
|
.site-footer-v2 .footer-v2-meta a {
|
|
color: var(--hv2-text-tertiary, #82828a);
|
|
}
|
|
|
|
.site-footer-v2 .footer-v2-brand-lockup,
|
|
.site-footer-v2 .footer-v2-eco-link,
|
|
.site-footer-v2 .footer-v2-eco-mark-all,
|
|
.site-footer-v2 .footer-col-links a:hover,
|
|
.site-footer-v2 .footer-col-links a:focus-visible {
|
|
color: var(--hv2-text, #eaeaea);
|
|
}
|
|
|
|
.site-footer-v2 .footer-v2-eco-link:hover,
|
|
.site-footer-v2 .footer-v2-eco-link:focus-visible {
|
|
color: var(--hv2-accent, #d4453a);
|
|
}
|
|
|
|
.site-footer-v2 .footer-v2-main {
|
|
gap: 56px 72px;
|
|
}
|
|
|
|
.site-footer-v2 .footer-v2-eco,
|
|
.site-footer-v2 .footer-v2-bottom {
|
|
border-top-color: var(--hv2-border);
|
|
}
|
|
|
|
.site-footer-v2 .footer-v2-eco {
|
|
margin-top: 44px;
|
|
margin-bottom: 0;
|
|
padding: 48px 0 40px;
|
|
gap: 20px;
|
|
}
|
|
|
|
.site-footer-v2 .footer-v2-bottom {
|
|
margin-top: 0;
|
|
padding-top: 32px;
|
|
}
|
|
|
|
.site-footer-v2 .footer-v2-eco-all-sep {
|
|
background: var(--hv2-border, #2a2a2e);
|
|
}
|
|
|
|
.footer-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: 24px 28px;
|
|
text-align: left;
|
|
}
|
|
|
|
.footer-col {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: var(--space-1);
|
|
}
|
|
|
|
.footer-col-title {
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.1em;
|
|
color: var(--ink-soft);
|
|
margin: 0 0 12px;
|
|
}
|
|
|
|
.footer-col-toggle {
|
|
appearance: none;
|
|
border: 0;
|
|
background: transparent;
|
|
color: inherit;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 6px;
|
|
padding: 0;
|
|
font: inherit;
|
|
letter-spacing: inherit;
|
|
text-transform: inherit;
|
|
cursor: default;
|
|
}
|
|
|
|
.footer-col-toggle-icon {
|
|
display: none;
|
|
transition: transform 0.16s ease;
|
|
}
|
|
|
|
.footer-col-links {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 10px;
|
|
}
|
|
|
|
.footer-col-links a,
|
|
.footer-col-links span {
|
|
font-size: 14px;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.footer-col-link-with-icon {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.footer-col-link-icon {
|
|
width: 16px;
|
|
height: 16px;
|
|
flex-shrink: 0;
|
|
opacity: 0.88;
|
|
}
|
|
|
|
.footer-col-link-external {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
width: fit-content;
|
|
}
|
|
|
|
.footer-col-link-external-icon {
|
|
flex-shrink: 0;
|
|
opacity: 0.45;
|
|
transition:
|
|
opacity 0.15s ease,
|
|
transform 0.15s ease;
|
|
}
|
|
|
|
.footer-col-links a.footer-col-link-external:hover .footer-col-link-external-icon,
|
|
.footer-col-links a.footer-col-link-external:focus-visible .footer-col-link-external-icon,
|
|
.footer-v2-meta a.footer-col-link-external:hover .footer-col-link-external-icon,
|
|
.footer-v2-meta a.footer-col-link-external:focus-visible .footer-col-link-external-icon {
|
|
opacity: 0.9;
|
|
transform: translate(1px, -1px);
|
|
}
|
|
|
|
.footer-v2-meta a.footer-col-link-external {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
}
|
|
|
|
.footer-v2-copy-link-icon {
|
|
margin-left: 3px;
|
|
vertical-align: -1px;
|
|
}
|
|
|
|
.footer-v2-copy-link:hover .footer-v2-copy-link-icon,
|
|
.footer-v2-copy-link:focus-visible .footer-v2-copy-link-icon {
|
|
opacity: 0.9;
|
|
transform: translate(1px, -1px);
|
|
}
|
|
|
|
.footer-col-links a:hover,
|
|
.footer-col-links a:focus-visible {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.footer-col-links a.footer-col-link-with-icon:hover .footer-col-link-icon,
|
|
.footer-col-links a.footer-col-link-with-icon:focus-visible .footer-col-link-icon {
|
|
opacity: 1;
|
|
}
|
|
|
|
@media (max-width: 960px) {
|
|
.site-footer-v2 .site-footer-inner {
|
|
padding: 56px var(--space-6) 40px;
|
|
}
|
|
|
|
.footer-v2-main {
|
|
grid-template-columns: 1fr;
|
|
gap: 32px;
|
|
}
|
|
|
|
.footer-v2-brand {
|
|
max-width: none;
|
|
}
|
|
|
|
.footer-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.site-footer-v2 .site-footer-inner {
|
|
padding: 44px var(--space-4) 32px;
|
|
}
|
|
|
|
.site-footer-v2 .footer-v2-eco {
|
|
margin-top: 32px;
|
|
margin-bottom: 0;
|
|
padding: 36px 0 32px;
|
|
}
|
|
|
|
.footer-grid {
|
|
grid-template-columns: 1fr;
|
|
gap: 0;
|
|
}
|
|
|
|
.footer-col {
|
|
align-items: stretch;
|
|
gap: 0;
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.footer-col:first-child {
|
|
border-top: 0;
|
|
}
|
|
|
|
.footer-v2-eco-marks {
|
|
flex-wrap: nowrap;
|
|
gap: 24px;
|
|
width: max-content;
|
|
max-width: none;
|
|
overflow: visible;
|
|
padding-bottom: 4px;
|
|
animation: footer-v2-eco-marquee 34s linear infinite;
|
|
scrollbar-width: none;
|
|
will-change: transform;
|
|
}
|
|
|
|
.footer-v2-eco-marquee {
|
|
overflow: hidden;
|
|
mask-image: linear-gradient(
|
|
to right,
|
|
transparent,
|
|
#000 18px,
|
|
#000 calc(100% - 18px),
|
|
transparent
|
|
);
|
|
}
|
|
|
|
.footer-v2-eco-sequence,
|
|
.footer-v2-eco-sequence-clone {
|
|
display: flex;
|
|
flex: 0 0 auto;
|
|
align-items: center;
|
|
gap: 24px;
|
|
}
|
|
|
|
.footer-v2-eco-mark {
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.footer-v2-bottom {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.footer-col-title {
|
|
margin: 0;
|
|
}
|
|
|
|
.footer-col-toggle {
|
|
width: 100%;
|
|
justify-content: space-between;
|
|
padding: 14px 0;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.footer-col-toggle:focus-visible {
|
|
outline: 2px solid var(--accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.footer-col-toggle-icon {
|
|
display: block;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.footer-col-toggle[aria-expanded="true"] .footer-col-toggle-icon {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
.footer-col-links {
|
|
display: none;
|
|
align-items: flex-start;
|
|
gap: 10px;
|
|
padding: 0 0 14px;
|
|
}
|
|
|
|
.footer-col-links[data-open="true"] {
|
|
display: flex;
|
|
}
|
|
}
|
|
|
|
@keyframes footer-v2-eco-marquee {
|
|
to {
|
|
transform: translateX(calc(-50% - 12px));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
|
|
.footer-v2-eco-marquee {
|
|
overflow-x: auto;
|
|
mask-image: none;
|
|
scrollbar-width: none;
|
|
}
|
|
|
|
.footer-v2-eco-marquee::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.footer-v2-eco-marks {
|
|
animation: none;
|
|
will-change: auto;
|
|
}
|
|
|
|
.footer-v2-eco-sequence-clone {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.about-page {
|
|
display: grid;
|
|
gap: 24px;
|
|
}
|
|
|
|
.about-bento {
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
gap: var(--space-5);
|
|
}
|
|
|
|
.about-panel {
|
|
display: grid;
|
|
gap: var(--space-4);
|
|
padding: var(--space-5);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-lg);
|
|
background:
|
|
linear-gradient(180deg, color-mix(in srgb, var(--surface) 88%, transparent), transparent),
|
|
color-mix(in srgb, var(--surface-muted) 58%, transparent);
|
|
}
|
|
|
|
.about-panel-hero,
|
|
.about-panel-enforcement,
|
|
.about-panel-actions {
|
|
align-content: start;
|
|
}
|
|
|
|
.about-panel-copy {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
line-height: 1.65;
|
|
}
|
|
|
|
.about-hero-copy {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.about-title {
|
|
margin: 0;
|
|
font-family: var(--font-display);
|
|
font-size: 3.5rem;
|
|
line-height: 0.98;
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
.about-lead {
|
|
margin: 14px 0 0;
|
|
max-width: 62ch;
|
|
color: var(--ink-soft);
|
|
line-height: 1.7;
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.about-callout {
|
|
display: grid;
|
|
gap: 12px;
|
|
padding: 18px;
|
|
border-radius: var(--r-lg);
|
|
border: 1px solid color-mix(in srgb, var(--line) 84%, transparent);
|
|
background: color-mix(in srgb, var(--surface) 80%, transparent);
|
|
}
|
|
|
|
.about-callout p {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.about-callout-label {
|
|
font-size: 0.72rem;
|
|
font-family: var(--font-mono);
|
|
letter-spacing: 0.12em;
|
|
text-transform: uppercase;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.about-panel .home-section-title {
|
|
font-size: var(--fs-lg);
|
|
font-weight: 600;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.about-categories-header {
|
|
justify-items: center;
|
|
text-align: center;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.about-categories-header .home-section-title {
|
|
max-width: 18ch;
|
|
font-size: 2.35rem;
|
|
line-height: 1.02;
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
.about-grid,
|
|
.about-patterns,
|
|
.souls-coming-grid {
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
gap: 20px;
|
|
}
|
|
|
|
.about-panel-categories {
|
|
overflow: visible;
|
|
}
|
|
|
|
.about-panel-categories .about-grid {
|
|
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
|
|
}
|
|
|
|
.about-rule-card {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16px;
|
|
min-height: 220px;
|
|
padding: 28px 26px 24px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-lg);
|
|
background: color-mix(in srgb, var(--surface) 88%, transparent);
|
|
transition:
|
|
border-color 0.25s,
|
|
box-shadow 0.3s,
|
|
transform 0.25s,
|
|
background 0.25s;
|
|
}
|
|
|
|
.about-rule-card:hover {
|
|
border-color: var(--border-ui-hover);
|
|
transform: translateY(-3px);
|
|
box-shadow:
|
|
0 8px 24px rgba(0, 0, 0, 0.2),
|
|
0 0 0 1px rgba(220, 38, 38, 0.06);
|
|
background: color-mix(in srgb, var(--surface) 95%, transparent);
|
|
}
|
|
|
|
.about-rule-card-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
}
|
|
|
|
.about-rule-card-icon {
|
|
width: 36px;
|
|
height: 36px;
|
|
border-radius: var(--r-sm);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: var(--accent-subtle);
|
|
border: 1.5px solid color-mix(in srgb, var(--status-error-fg) 25%, var(--line));
|
|
flex-shrink: 0;
|
|
transition:
|
|
background 0.2s,
|
|
box-shadow 0.2s;
|
|
}
|
|
|
|
.about-rule-card-icon svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
color: var(--accent);
|
|
}
|
|
|
|
.about-rule-card:hover .about-rule-card-icon {
|
|
background: var(--status-error-bg);
|
|
box-shadow: 0 0 14px color-mix(in srgb, var(--status-error-fg) 8%, transparent);
|
|
}
|
|
|
|
.about-rule-card :is(h2, h3) {
|
|
margin: 0;
|
|
font-size: 1.22rem;
|
|
font-family: var(--font-display);
|
|
font-weight: 600;
|
|
line-height: 1.08;
|
|
letter-spacing: 0;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.about-rule-card p {
|
|
margin: 0;
|
|
flex: 1;
|
|
color: color-mix(in srgb, var(--ink) 75%, transparent);
|
|
line-height: 1.72;
|
|
font-size: 0.98rem;
|
|
max-width: 30ch;
|
|
}
|
|
|
|
.about-inline-code {
|
|
background: var(--surface-muted);
|
|
padding: 2px 6px;
|
|
border-radius: var(--r-xs);
|
|
font-size: 0.88em;
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.about-pattern {
|
|
margin: 0;
|
|
display: grid;
|
|
grid-template-columns: auto 1fr;
|
|
align-items: start;
|
|
gap: 12px;
|
|
padding: 14px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
background: color-mix(in srgb, var(--surface) 82%, transparent);
|
|
color: var(--ink-soft);
|
|
line-height: 1.6;
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.about-pattern svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
margin-top: 3px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.about-pattern-accepted svg {
|
|
color: var(--status-success-fg);
|
|
}
|
|
|
|
.about-pattern-rejected svg {
|
|
color: var(--status-error-fg);
|
|
}
|
|
|
|
.about-pattern-lanes {
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
gap: var(--space-4);
|
|
}
|
|
|
|
.about-patterns-header {
|
|
display: grid;
|
|
gap: var(--space-3);
|
|
max-width: 76ch;
|
|
}
|
|
|
|
.about-pattern-lane {
|
|
min-height: 100%;
|
|
padding: var(--space-5);
|
|
border-radius: var(--r-lg);
|
|
background: color-mix(in srgb, var(--surface) 88%, transparent);
|
|
}
|
|
|
|
.about-pattern-lane-header {
|
|
flex-direction: row;
|
|
align-items: flex-start;
|
|
gap: 14px;
|
|
}
|
|
|
|
.about-pattern-lane-header > div:last-child {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.about-pattern-lane-accepted {
|
|
border-color: color-mix(in srgb, var(--status-success-fg) 30%, var(--line));
|
|
}
|
|
|
|
.about-pattern-lane-accepted .about-rule-card-icon {
|
|
background: var(--status-success-bg);
|
|
border-color: color-mix(in srgb, var(--status-success-fg) 35%, var(--line));
|
|
}
|
|
|
|
.about-pattern-lane-accepted .about-rule-card-icon svg {
|
|
color: var(--status-success-fg);
|
|
}
|
|
|
|
.about-pattern-lane-rejected {
|
|
border-color: color-mix(in srgb, var(--status-error-fg) 30%, var(--line));
|
|
}
|
|
|
|
.about-pattern-lane-rejected .about-rule-card-icon {
|
|
background: var(--status-error-bg);
|
|
border-color: color-mix(in srgb, var(--status-error-fg) 35%, var(--line));
|
|
}
|
|
|
|
.about-pattern-lane-rejected .about-rule-card-icon svg {
|
|
color: var(--status-error-fg);
|
|
}
|
|
|
|
.about-pattern-lane .about-patterns {
|
|
grid-template-columns: 1fr;
|
|
gap: 12px;
|
|
}
|
|
|
|
.souls-coming-page {
|
|
display: grid;
|
|
gap: 24px;
|
|
}
|
|
|
|
.souls-coming-hero {
|
|
display: grid;
|
|
gap: 20px;
|
|
}
|
|
|
|
@media (min-width: 641px) {
|
|
.about-bento {
|
|
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
}
|
|
|
|
.about-panel-hero {
|
|
grid-column: span 4;
|
|
}
|
|
|
|
.about-panel-callout {
|
|
grid-column: span 2;
|
|
}
|
|
|
|
.about-panel-categories,
|
|
.about-panel-patterns {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.about-panel-enforcement,
|
|
.about-panel-actions {
|
|
grid-column: span 3;
|
|
}
|
|
|
|
.about-grid,
|
|
.about-panel-categories .about-grid {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
gap: 22px;
|
|
}
|
|
.about-patterns {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
.about-bento {
|
|
grid-template-columns: repeat(12, minmax(0, 1fr));
|
|
}
|
|
|
|
.about-panel-hero {
|
|
grid-column: span 8;
|
|
}
|
|
|
|
.about-panel-callout {
|
|
grid-column: span 4;
|
|
}
|
|
|
|
.about-panel-enforcement {
|
|
grid-column: span 7;
|
|
}
|
|
|
|
.about-panel-actions {
|
|
grid-column: span 5;
|
|
}
|
|
|
|
.about-grid,
|
|
.about-panel-categories .about-grid {
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 24px;
|
|
}
|
|
.about-patterns {
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
}
|
|
|
|
.about-pattern-lanes {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 860px) {
|
|
.publisher-profile-hero {
|
|
grid-template-columns: 1fr;
|
|
gap: 24px;
|
|
}
|
|
|
|
.publisher-profile-hero-stats {
|
|
justify-content: flex-start;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.publisher-profile-stat + .publisher-profile-stat {
|
|
padding-left: 0;
|
|
border-left: 0;
|
|
}
|
|
|
|
.publisher-profile-layout {
|
|
grid-template-columns: 1fr;
|
|
gap: 24px;
|
|
}
|
|
|
|
.publisher-profile-section-header {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
}
|
|
|
|
.publisher-profile-section-controls {
|
|
width: 100%;
|
|
align-items: flex-start;
|
|
justify-content: flex-start;
|
|
flex-wrap: wrap;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.publisher-profile-hero,
|
|
.publisher-profile-layout {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.publisher-profile-hero {
|
|
align-items: start;
|
|
padding: 26px var(--space-4);
|
|
}
|
|
|
|
.publisher-profile-hero-main {
|
|
align-items: start;
|
|
}
|
|
|
|
.publisher-profile-avatar .marketplace-icon-md {
|
|
width: 64px;
|
|
height: 64px;
|
|
}
|
|
|
|
.publisher-profile-avatar .marketplace-icon-md .marketplace-icon-glyph {
|
|
width: 30px;
|
|
height: 30px;
|
|
}
|
|
|
|
.publisher-profile-title-row {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.publisher-profile-title-text {
|
|
white-space: normal;
|
|
}
|
|
|
|
.publisher-profile-hero-stats {
|
|
justify-content: flex-start;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.publisher-profile-section-header {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.publisher-profile-section-controls {
|
|
width: 100%;
|
|
align-items: flex-start;
|
|
justify-content: flex-start;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.publisher-published-row {
|
|
grid-template-columns: auto minmax(0, 1fr);
|
|
}
|
|
|
|
.publisher-published-row-stats {
|
|
grid-column: 2;
|
|
justify-self: start;
|
|
margin-top: 2px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.about-bento,
|
|
.about-grid,
|
|
.about-patterns,
|
|
.about-pattern-lanes,
|
|
.about-panel-categories .about-grid,
|
|
.souls-coming-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.about-title {
|
|
font-size: 2.4rem;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 520px) {
|
|
.profile-header {
|
|
flex-direction: column;
|
|
text-align: center;
|
|
}
|
|
|
|
.profile-stats-row {
|
|
justify-content: center;
|
|
}
|
|
}
|
|
|
|
/* Empty states */
|
|
|
|
.empty-state {
|
|
text-align: center;
|
|
padding: var(--space-7) var(--space-5);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-sm);
|
|
}
|
|
|
|
.empty-state-icon {
|
|
display: block;
|
|
margin: 0 auto var(--space-3);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.empty-state-title {
|
|
font-weight: 600;
|
|
font-size: var(--fs-md);
|
|
margin-bottom: var(--space-1);
|
|
}
|
|
|
|
.empty-state-body {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
margin-bottom: var(--space-4);
|
|
margin-top: 0;
|
|
}
|
|
|
|
/* Dark mode: only where CSS variables don't suffice */
|
|
|
|
.mobile-nav-meta {
|
|
margin-left: auto;
|
|
font-size: 0.75rem;
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
@media (max-width: 1100px) and (min-width: 761px) {
|
|
.theme-mode-toggle {
|
|
min-width: 112px;
|
|
height: 40px;
|
|
min-height: 40px;
|
|
padding: 0 8px;
|
|
gap: 6px;
|
|
}
|
|
|
|
.theme-cycle-group {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
/* ═══════════════════════════════════════════════════════════════════════
|
|
HOME V2 — Redesigned homepage (mockup-14-carousel)
|
|
All classes prefixed home-v2- to avoid collisions with existing styles.
|
|
═══════════════════════════════════════════════════════════════════════ */
|
|
|
|
/* --- Variables (home v2 shell: main + proof + FAQ + footer share tokens) --- */
|
|
.app-shell:has(.home-v2-main) {
|
|
--hv2-bg: #060608;
|
|
--hv2-surface: rgba(255, 255, 255, 0.02);
|
|
--hv2-surface-hover: rgba(255, 255, 255, 0.045);
|
|
--hv2-border: rgba(255, 255, 255, 0.07);
|
|
--hv2-border-hover: rgba(255, 255, 255, 0.14);
|
|
--hv2-border-strong: rgba(255, 255, 255, 0.1);
|
|
--hv2-text: #eaeaea;
|
|
--hv2-text-secondary: #b2b2b8;
|
|
--hv2-text-tertiary: #82828a;
|
|
--hv2-accent: #d4453a;
|
|
--hv2-accent-fill: rgba(212, 69, 58, 0.1);
|
|
--hv2-accent-fill-hover: rgba(212, 69, 58, 0.16);
|
|
--hv2-accent-glow: rgba(212, 69, 58, 0.06);
|
|
--hv2-accent-border: rgba(212, 69, 58, 0.3);
|
|
--hv2-accent-border-hover: rgba(212, 69, 58, 0.5);
|
|
--hv2-green: #3dab5e;
|
|
--hv2-green-fill: rgba(61, 171, 94, 0.08);
|
|
--hv2-green-border: rgba(61, 171, 94, 0.25);
|
|
--hv2-green-border-hover: rgba(61, 171, 94, 0.4);
|
|
--hv2-green-fill-hover: rgba(61, 171, 94, 0.14);
|
|
--hv2-radius-sm: 8px;
|
|
--hv2-radius-md: 12px;
|
|
--hv2-radius-lg: 16px;
|
|
--hv2-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
|
|
--hv2-duration-fast: 160ms;
|
|
--hv2-duration-ui: 180ms;
|
|
}
|
|
|
|
.home-v2-main {
|
|
position: relative;
|
|
isolation: isolate;
|
|
max-width: var(--page-max);
|
|
margin-inline: auto;
|
|
width: 100%;
|
|
min-width: 0;
|
|
overflow-x: visible;
|
|
background: var(--hv2-bg);
|
|
}
|
|
|
|
/* Ambient glow spans hero + listing so the page base color stays even */
|
|
[data-theme-resolved="dark"] .home-v2-main::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
z-index: 0;
|
|
pointer-events: none;
|
|
background:
|
|
radial-gradient(ellipse 90% 55% at 50% -8%, rgba(212, 69, 58, 0.07) 0%, transparent 58%),
|
|
radial-gradient(ellipse 70% 45% at 50% 18%, rgba(212, 69, 58, 0.04) 0%, transparent 62%);
|
|
}
|
|
|
|
.home-v2-fold-fade {
|
|
position: fixed;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
z-index: 4;
|
|
height: clamp(72px, 14vh, 140px);
|
|
pointer-events: none;
|
|
background: linear-gradient(
|
|
to top,
|
|
var(--hv2-bg) 0%,
|
|
color-mix(in srgb, var(--hv2-bg) 88%, transparent) 42%,
|
|
transparent 100%
|
|
);
|
|
opacity: 1;
|
|
transition: opacity 0.22s var(--hv2-ease-out);
|
|
}
|
|
|
|
.home-v2-fold-fade.is-hidden {
|
|
opacity: 0;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.home-v2-fold-fade {
|
|
transition: none;
|
|
}
|
|
}
|
|
|
|
.home-v2-hero,
|
|
.home-v2-listing {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* Home hero decor bleeds up behind the floating calm header */
|
|
.app-shell:has(.home-v2-main) main.home-v2-main {
|
|
margin-top: -64px;
|
|
/* Last section is the full-bleed CLI band; let it meet the footer flush. */
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .home-v2-hero {
|
|
padding-top: calc(64px + 64px);
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .home-v2-hero-bg {
|
|
top: -112px;
|
|
bottom: -120px;
|
|
left: 50%;
|
|
width: 100vw;
|
|
margin-left: -50vw;
|
|
-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 72%, transparent 100%);
|
|
mask-image: linear-gradient(to bottom, #000 0%, #000 72%, transparent 100%);
|
|
}
|
|
|
|
/* ═══ HERO ═══ */
|
|
.home-v2-hero {
|
|
position: relative;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
text-align: center;
|
|
padding: 64px 48px 48px;
|
|
overflow: visible;
|
|
}
|
|
.home-v2-hero > *:not(.home-v2-hero-bg) {
|
|
position: relative;
|
|
z-index: 2;
|
|
}
|
|
|
|
/* Background layers */
|
|
.home-v2-hero-bg {
|
|
position: absolute;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
overflow: hidden;
|
|
}
|
|
.home-v2-hero-bg::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
background: url("/home-hero-claw.webp") center top / cover no-repeat;
|
|
filter: brightness(0.75);
|
|
}
|
|
|
|
/* Headline */
|
|
.home-v2-headline {
|
|
font-family: "Inter", sans-serif;
|
|
font-weight: 700;
|
|
font-size: clamp(36px, 4.25vw, 54px);
|
|
line-height: 1.12;
|
|
letter-spacing: -0.035em;
|
|
margin-bottom: 14px;
|
|
max-width: 1060px;
|
|
width: 100%;
|
|
white-space: nowrap;
|
|
display: flex;
|
|
justify-content: center;
|
|
text-align: center;
|
|
color: var(--hv2-text);
|
|
}
|
|
.home-v2-headline-trigger {
|
|
all: unset;
|
|
display: flex;
|
|
width: 100%;
|
|
cursor: pointer;
|
|
border-radius: var(--oc-radius-control);
|
|
}
|
|
.home-v2-headline-trigger:focus-visible {
|
|
outline: 2px solid var(--hv2-accent);
|
|
outline-offset: 8px;
|
|
}
|
|
.home-v2-headline-clear {
|
|
max-width: 960px;
|
|
white-space: normal;
|
|
}
|
|
.home-v2-headline-inner {
|
|
display: grid;
|
|
width: 100%;
|
|
grid-template-columns: minmax(0, 1fr) auto auto auto minmax(0, 1fr);
|
|
align-items: center;
|
|
}
|
|
.home-v2-headline-inner > :first-child {
|
|
justify-self: end;
|
|
}
|
|
.home-v2-headline-inner > :last-child {
|
|
justify-self: start;
|
|
}
|
|
.home-v2-action-word {
|
|
font-family: "JetBrains Mono", monospace;
|
|
font-weight: 800;
|
|
color: var(--hv2-accent);
|
|
}
|
|
.home-v2-static-headline {
|
|
color: var(--oc-accent-primary);
|
|
}
|
|
.home-v2-sep {
|
|
display: inline-block;
|
|
width: 5px;
|
|
height: 5px;
|
|
border: 1.5px solid var(--hv2-accent);
|
|
border-radius: 50%;
|
|
margin: 0 12px;
|
|
vertical-align: middle;
|
|
opacity: 0.35;
|
|
background: transparent;
|
|
}
|
|
.home-v2-cycle-wrap {
|
|
display: inline-block;
|
|
position: relative;
|
|
height: 1.15em;
|
|
overflow: hidden;
|
|
vertical-align: bottom;
|
|
min-width: 280px;
|
|
text-align: center;
|
|
}
|
|
.home-v2-cycle-track {
|
|
display: flex;
|
|
flex-direction: column;
|
|
animation: home-v2-wordCycle 16s ease-in-out infinite;
|
|
}
|
|
.home-v2-cycle-word {
|
|
font-family: "JetBrains Mono", monospace;
|
|
font-weight: 800;
|
|
color: var(--hv2-accent);
|
|
height: 1.15em;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: left;
|
|
flex-shrink: 0;
|
|
white-space: nowrap;
|
|
}
|
|
@keyframes home-v2-wordCycle {
|
|
0%,
|
|
18% {
|
|
transform: translateY(0);
|
|
}
|
|
20%,
|
|
38% {
|
|
transform: translateY(-20%);
|
|
}
|
|
40%,
|
|
58% {
|
|
transform: translateY(-40%);
|
|
}
|
|
60%,
|
|
78% {
|
|
transform: translateY(-60%);
|
|
}
|
|
80%,
|
|
98% {
|
|
transform: translateY(-80%);
|
|
}
|
|
100% {
|
|
transform: translateY(-80%);
|
|
}
|
|
}
|
|
|
|
/* Slot machine easter egg */
|
|
.home-v2-headline-slots {
|
|
min-height: 1.15em;
|
|
position: relative;
|
|
}
|
|
.home-v2-slot-reel {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-width: 180px;
|
|
text-align: center;
|
|
font-family: "JetBrains Mono", monospace;
|
|
font-weight: 800;
|
|
color: var(--hv2-accent);
|
|
position: relative;
|
|
}
|
|
.home-v2-slot-reel.spinning .home-v2-slot-word {
|
|
animation: home-v2-slotBlur 0.12s steps(1) infinite;
|
|
}
|
|
.home-v2-slot-reel:not(.spinning) .home-v2-slot-word {
|
|
animation: home-v2-slotLand 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) both;
|
|
}
|
|
@keyframes home-v2-slotBlur {
|
|
0% {
|
|
filter: blur(0);
|
|
opacity: 1;
|
|
}
|
|
50% {
|
|
filter: blur(1px);
|
|
opacity: 0.7;
|
|
}
|
|
100% {
|
|
filter: blur(0);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
@keyframes home-v2-slotLand {
|
|
0% {
|
|
transform: translateY(-8px) scale(1.1);
|
|
opacity: 0.5;
|
|
}
|
|
60% {
|
|
transform: translateY(2px) scale(0.98);
|
|
}
|
|
100% {
|
|
transform: translateY(0) scale(1);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
.home-v2-headline-jackpot {
|
|
animation: home-v2-jackpot 0.5s ease-out;
|
|
}
|
|
@keyframes home-v2-jackpot {
|
|
0% {
|
|
transform: scale(1);
|
|
}
|
|
30% {
|
|
transform: scale(1.08);
|
|
}
|
|
60% {
|
|
transform: scale(0.97);
|
|
}
|
|
100% {
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
.home-v2-headline-jackpot .home-v2-slot-word {
|
|
color: #ffd93d !important;
|
|
text-shadow:
|
|
0 0 20px rgba(255, 217, 61, 0.6),
|
|
0 0 40px rgba(255, 217, 61, 0.3);
|
|
}
|
|
.home-v2-headline-hack .home-v2-slot-word {
|
|
color: #22d3ee !important;
|
|
text-shadow:
|
|
0 0 24px rgba(34, 211, 238, 0.6),
|
|
0 0 48px rgba(6, 182, 212, 0.3),
|
|
0 2px 8px rgba(0, 0, 0, 0.4) !important;
|
|
}
|
|
.home-v2-headline-hack .home-v2-sep {
|
|
border-color: #22d3ee;
|
|
opacity: 0.8;
|
|
box-shadow: 0 0 8px rgba(34, 211, 238, 0.5);
|
|
}
|
|
.home-v2-hack-lobster {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: 280px;
|
|
height: 280px;
|
|
transform: translate(-50%, -50%) scale(0);
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
filter: drop-shadow(0 0 40px rgba(34, 211, 238, 0.5))
|
|
drop-shadow(0 0 80px rgba(6, 182, 212, 0.25));
|
|
animation: home-v2-lobsterReveal 1.2s 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
|
|
z-index: -1;
|
|
}
|
|
@keyframes home-v2-lobsterReveal {
|
|
0% {
|
|
transform: translate(-50%, -50%) scale(0) rotate(-30deg);
|
|
opacity: 0;
|
|
}
|
|
50% {
|
|
opacity: 0.18;
|
|
}
|
|
100% {
|
|
transform: translate(-50%, -50%) scale(1) rotate(0deg);
|
|
opacity: 0.12;
|
|
}
|
|
}
|
|
.home-v2-confetti {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 9999;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.home-v2-sub {
|
|
color: var(--hv2-text-tertiary);
|
|
font-size: 16px;
|
|
line-height: 1.5;
|
|
margin-bottom: 36px;
|
|
max-width: 580px;
|
|
font-weight: 400;
|
|
}
|
|
|
|
.home-v2-motto {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 10px;
|
|
margin-bottom: 34px;
|
|
}
|
|
.home-v2-motto-label {
|
|
font-family: "JetBrains Mono", monospace;
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
.home-v2-headline-motto {
|
|
margin-bottom: 0;
|
|
font-size: clamp(24px, 2.8vw, 34px);
|
|
letter-spacing: -0.03em;
|
|
}
|
|
|
|
/* Search bar */
|
|
.home-v2-search-container {
|
|
width: 100%;
|
|
max-width: 720px;
|
|
}
|
|
.home-v2-search-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
background: var(--hv2-surface);
|
|
border: 1px solid var(--hv2-border-strong);
|
|
border-radius: 16px;
|
|
padding: 6px 6px 6px 22px;
|
|
gap: 12px;
|
|
transition:
|
|
border-color 0.25s,
|
|
box-shadow 0.3s,
|
|
background 0.2s;
|
|
box-shadow: 0 1px 20px rgba(0, 0, 0, 0.15);
|
|
}
|
|
.home-v2-search-bar:focus-within {
|
|
border-color: var(--hv2-accent-border);
|
|
box-shadow:
|
|
0 2px 36px rgba(0, 0, 0, 0.2),
|
|
0 0 0 3px var(--hv2-accent-glow);
|
|
background: rgba(255, 255, 255, 0.025);
|
|
}
|
|
.home-v2-search-bar .home-v2-search-icon {
|
|
flex-shrink: 0;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
.home-v2-search-bar input {
|
|
flex: 1;
|
|
background: none;
|
|
border: none;
|
|
outline: none;
|
|
color: var(--hv2-text);
|
|
font-size: 16px;
|
|
font-family: "Inter", sans-serif;
|
|
padding: 8px 0;
|
|
}
|
|
.home-v2-search-bar input::placeholder {
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
.home-v2-search-go {
|
|
background: var(--hv2-accent-fill);
|
|
color: var(--hv2-accent);
|
|
border: 1.5px solid var(--hv2-accent-border);
|
|
border-radius: 12px;
|
|
padding: 13px 30px;
|
|
font-size: 15px;
|
|
font-weight: 700;
|
|
cursor: pointer;
|
|
white-space: nowrap;
|
|
transition:
|
|
background 0.15s,
|
|
border-color 0.2s,
|
|
box-shadow 0.2s;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
flex-shrink: 0;
|
|
}
|
|
.home-v2-search-go:hover {
|
|
background: var(--hv2-accent-fill-hover);
|
|
border-color: var(--hv2-accent-border-hover);
|
|
box-shadow: 0 0 24px var(--hv2-accent-glow);
|
|
}
|
|
.home-v2-search-go:active {
|
|
transform: scale(0.97);
|
|
}
|
|
|
|
/* Suggestions */
|
|
.home-v2-suggestions {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 8px;
|
|
margin-top: 16px;
|
|
flex-wrap: wrap;
|
|
}
|
|
.home-v2-suggestion {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
color: var(--hv2-text-secondary);
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
padding: 6px 14px;
|
|
border-radius: 100px;
|
|
cursor: pointer;
|
|
transition:
|
|
color 0.15s,
|
|
background 0.15s,
|
|
border-color 0.15s;
|
|
border: 1px solid var(--hv2-border);
|
|
background: transparent;
|
|
}
|
|
.home-v2-suggestion:hover {
|
|
color: var(--hv2-text);
|
|
background: var(--hv2-surface-hover);
|
|
border-color: var(--hv2-border-hover);
|
|
}
|
|
.home-v2-suggestion svg {
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
.home-v2-suggestion:hover svg {
|
|
color: var(--hv2-accent);
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.home-v2-suggestions {
|
|
gap: 6px;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.home-v2-suggestion {
|
|
font-size: 12px;
|
|
padding: 5px 10px;
|
|
gap: 4px;
|
|
}
|
|
}
|
|
|
|
/* ═══ CAROUSEL ═══ */
|
|
.home-v2-carousel-section {
|
|
padding: 48px 0 0;
|
|
border-top: 1px solid var(--hv2-border);
|
|
position: relative;
|
|
}
|
|
.home-v2-carousel-header {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
justify-content: space-between;
|
|
margin-bottom: 20px;
|
|
padding: 0 48px;
|
|
gap: 20px;
|
|
}
|
|
.home-v2-carousel-header h2 {
|
|
font-size: 15px;
|
|
font-weight: 600;
|
|
color: var(--hv2-text-secondary);
|
|
letter-spacing: 0.02em;
|
|
text-transform: uppercase;
|
|
}
|
|
.home-v2-section-copy {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
max-width: 760px;
|
|
}
|
|
.home-v2-section-eyebrow {
|
|
font-family: "JetBrains Mono", monospace;
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.1em;
|
|
text-transform: uppercase;
|
|
color: var(--hv2-accent);
|
|
}
|
|
.home-v2-section-copy h2 {
|
|
font-size: clamp(22px, 2.1vw, 30px);
|
|
font-weight: 700;
|
|
line-height: 1.08;
|
|
letter-spacing: -0.03em;
|
|
color: var(--hv2-text);
|
|
}
|
|
.home-v2-section-copy p {
|
|
font-size: 14px;
|
|
line-height: 1.6;
|
|
color: var(--hv2-text-secondary);
|
|
max-width: 60ch;
|
|
}
|
|
.home-v2-carousel-controls {
|
|
display: flex;
|
|
gap: 6px;
|
|
}
|
|
.home-v2-carousel-btn {
|
|
background: transparent;
|
|
border: 1px solid var(--hv2-border);
|
|
border-radius: var(--hv2-radius-sm);
|
|
color: var(--hv2-text-tertiary);
|
|
width: 34px;
|
|
height: 34px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
cursor: pointer;
|
|
transition:
|
|
border-color 0.15s,
|
|
color 0.15s,
|
|
background 0.15s;
|
|
}
|
|
.home-v2-carousel-btn:hover {
|
|
border-color: var(--hv2-border-hover);
|
|
color: var(--hv2-text-secondary);
|
|
background: var(--hv2-surface);
|
|
}
|
|
|
|
/* Fade edges */
|
|
.home-v2-carousel-wrap {
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
.home-v2-carousel-wrap::before,
|
|
.home-v2-carousel-wrap::after {
|
|
content: "";
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
width: 80px;
|
|
z-index: 3;
|
|
pointer-events: none;
|
|
}
|
|
.home-v2-carousel-wrap::before {
|
|
left: 0;
|
|
background: linear-gradient(to right, var(--hv2-bg), transparent);
|
|
}
|
|
.home-v2-carousel-wrap::after {
|
|
right: 0;
|
|
background: linear-gradient(to left, var(--hv2-bg), transparent);
|
|
}
|
|
|
|
.home-v2-carousel-track {
|
|
display: flex;
|
|
gap: 16px;
|
|
padding: 12px 48px 48px;
|
|
animation: home-v2-scroll 46s linear infinite;
|
|
width: max-content;
|
|
}
|
|
.home-v2-carousel-track:hover {
|
|
animation-play-state: paused;
|
|
}
|
|
@keyframes home-v2-scroll {
|
|
0% {
|
|
transform: translateX(0);
|
|
}
|
|
100% {
|
|
transform: translateX(calc(-50% - 8px));
|
|
}
|
|
}
|
|
|
|
/* Carousel cards */
|
|
.home-v2-c-card {
|
|
background: var(--hv2-surface);
|
|
border: 1px solid var(--hv2-border);
|
|
border-radius: var(--hv2-radius-lg);
|
|
padding: 24px;
|
|
min-width: 340px;
|
|
max-width: 340px;
|
|
flex-shrink: 0;
|
|
transition:
|
|
border-color 0.25s,
|
|
transform 0.25s,
|
|
box-shadow 0.3s,
|
|
background 0.25s;
|
|
cursor: pointer;
|
|
display: flex;
|
|
flex-direction: column;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
.home-v2-c-card:hover {
|
|
border-color: var(--hv2-border-hover);
|
|
transform: translateY(-3px);
|
|
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22);
|
|
background: var(--hv2-surface-hover);
|
|
}
|
|
.home-v2-c-head {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
margin-bottom: 14px;
|
|
}
|
|
.home-v2-c-icon {
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: 10px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: var(--hv2-accent-fill);
|
|
border: 1.5px solid var(--hv2-accent-border);
|
|
flex-shrink: 0;
|
|
transition:
|
|
background 0.2s,
|
|
box-shadow 0.2s;
|
|
}
|
|
.home-v2-c-card:hover .home-v2-c-icon {
|
|
background: var(--hv2-accent-fill-hover);
|
|
box-shadow: 0 0 14px var(--hv2-accent-glow);
|
|
}
|
|
.home-v2-c-icon svg {
|
|
color: var(--hv2-accent);
|
|
}
|
|
.home-v2-c-meta {
|
|
flex: 1;
|
|
}
|
|
.home-v2-c-name {
|
|
font-weight: 600;
|
|
font-size: 15px;
|
|
color: var(--hv2-text);
|
|
}
|
|
.home-v2-c-by {
|
|
font-size: 13px;
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
.home-v2-c-tag {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
color: var(--hv2-text-tertiary);
|
|
background: var(--hv2-surface);
|
|
border: 1px solid var(--hv2-border);
|
|
border-radius: 100px;
|
|
padding: 3px 10px 3px 7px;
|
|
margin-bottom: 10px;
|
|
width: fit-content;
|
|
}
|
|
.home-v2-c-tag svg {
|
|
color: var(--hv2-accent);
|
|
}
|
|
.home-v2-c-desc {
|
|
font-size: 13px;
|
|
color: var(--hv2-text-secondary);
|
|
line-height: 1.55;
|
|
flex: 1;
|
|
margin-bottom: 18px;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
}
|
|
.home-v2-c-footer {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
.home-v2-c-stats {
|
|
display: flex;
|
|
gap: 14px;
|
|
font-size: 12px;
|
|
color: var(--hv2-text-tertiary);
|
|
font-weight: 500;
|
|
}
|
|
.home-v2-c-stats span {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 3px;
|
|
}
|
|
.home-v2-c-install {
|
|
background: var(--hv2-green-fill);
|
|
border: 1.5px solid var(--hv2-green-border);
|
|
border-radius: var(--hv2-radius-sm);
|
|
padding: 6px 14px;
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
color: var(--hv2-green);
|
|
cursor: pointer;
|
|
transition: all 0.15s;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
}
|
|
.home-v2-c-card:hover .home-v2-c-install {
|
|
background: var(--hv2-green-fill-hover);
|
|
border-color: var(--hv2-green-border-hover);
|
|
}
|
|
|
|
/* ═══ CATEGORIES ═══ */
|
|
.home-v2-categories {
|
|
padding: 40px 48px 0;
|
|
}
|
|
.home-v2-categories-copy {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
max-width: 720px;
|
|
margin: 0 auto 24px;
|
|
}
|
|
.home-v2-categories-copy h2 {
|
|
font-size: clamp(22px, 2vw, 28px);
|
|
font-weight: 700;
|
|
line-height: 1.1;
|
|
letter-spacing: -0.03em;
|
|
color: var(--hv2-text);
|
|
}
|
|
.home-v2-categories-copy p {
|
|
font-size: 14px;
|
|
line-height: 1.6;
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
.home-v2-categories-grid {
|
|
display: grid;
|
|
--home-v2-category-columns: 3;
|
|
grid-template-columns: repeat(var(--home-v2-category-columns), minmax(0, 1fr));
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
border-top: 1px solid var(--hv2-border);
|
|
}
|
|
.home-v2-categories-grid[data-count="4"] {
|
|
--home-v2-category-columns: 4;
|
|
}
|
|
.home-v2-cat-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
padding: 28px 24px;
|
|
cursor: pointer;
|
|
position: relative;
|
|
transition: background 0.2s;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
.home-v2-cat-item:hover {
|
|
background: var(--hv2-surface);
|
|
}
|
|
.home-v2-cat-item + .home-v2-cat-item::before {
|
|
content: "";
|
|
position: absolute;
|
|
left: 0;
|
|
top: 24%;
|
|
bottom: 24%;
|
|
width: 1px;
|
|
background: var(--hv2-border);
|
|
}
|
|
.home-v2-cat-icon {
|
|
width: 44px;
|
|
height: 44px;
|
|
border-radius: 11px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: var(--hv2-accent-fill);
|
|
border: 1.5px solid var(--hv2-accent-border);
|
|
flex-shrink: 0;
|
|
transition:
|
|
background 0.2s,
|
|
border-color 0.2s,
|
|
box-shadow 0.2s;
|
|
}
|
|
.home-v2-cat-item:hover .home-v2-cat-icon {
|
|
background: var(--hv2-accent-fill-hover);
|
|
border-color: var(--hv2-accent-border-hover);
|
|
box-shadow: 0 0 16px var(--hv2-accent-glow);
|
|
}
|
|
.home-v2-cat-icon svg {
|
|
color: var(--hv2-accent);
|
|
}
|
|
.home-v2-cat-text {
|
|
flex: 1;
|
|
}
|
|
.home-v2-cat-name {
|
|
font-weight: 600;
|
|
font-size: 15px;
|
|
margin-bottom: 2px;
|
|
color: var(--hv2-text);
|
|
}
|
|
.home-v2-cat-desc {
|
|
color: var(--hv2-text-secondary);
|
|
font-size: 13px;
|
|
}
|
|
.home-v2-cat-arrow {
|
|
color: var(--hv2-text-secondary);
|
|
opacity: 0;
|
|
transition:
|
|
opacity 0.2s,
|
|
transform 0.2s;
|
|
}
|
|
.home-v2-cat-item:hover .home-v2-cat-arrow {
|
|
opacity: 1;
|
|
transform: translateX(3px);
|
|
}
|
|
|
|
/* ═══ PROOF BAR ═══ */
|
|
/* Legacy proof bar (flex row); prefer .home-v2-proof-stats grid in HomeProofSection */
|
|
.home-v2-proof-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 48px;
|
|
padding: 28px 48px;
|
|
border-top: 1px solid var(--hv2-border);
|
|
border-bottom: 1px solid var(--hv2-border);
|
|
}
|
|
.home-v2-proof-item {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 8px;
|
|
}
|
|
.home-v2-proof-num {
|
|
font-family: var(--font-mono), "JetBrains Mono", ui-monospace, monospace;
|
|
font-weight: 700;
|
|
font-size: clamp(22px, 2.4vw, 28px);
|
|
letter-spacing: -0.03em;
|
|
color: var(--hv2-text);
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
.home-v2-proof-label {
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
.home-v2-proof-sep {
|
|
width: 1px;
|
|
height: 16px;
|
|
background: var(--hv2-border);
|
|
}
|
|
|
|
.home-v2-proof {
|
|
display: none;
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .home-v2-proof {
|
|
display: block;
|
|
position: relative;
|
|
z-index: 1;
|
|
color: var(--hv2-text);
|
|
background: transparent;
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .home-v2-proof::after {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0 auto auto 0;
|
|
width: 100%;
|
|
height: 1px;
|
|
pointer-events: none;
|
|
background: linear-gradient(
|
|
90deg,
|
|
transparent 0%,
|
|
color-mix(in srgb, var(--hv2-accent) 26%, var(--hv2-border)) 20%,
|
|
color-mix(in srgb, var(--hv2-accent) 26%, var(--hv2-border)) 80%,
|
|
transparent 100%
|
|
);
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.home-v2-proof-inner {
|
|
position: relative;
|
|
z-index: 1;
|
|
max-width: 1296px;
|
|
margin: 0 auto;
|
|
padding: 34px 48px 34px;
|
|
display: grid;
|
|
gap: 28px;
|
|
}
|
|
|
|
.home-v2-proof-stats {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: baseline;
|
|
justify-content: center;
|
|
gap: 12px 0;
|
|
width: 100%;
|
|
padding: 0 0 18px;
|
|
text-align: center;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--hv2-border) 72%, transparent);
|
|
border-radius: 0;
|
|
background: none;
|
|
}
|
|
|
|
.home-v2-proof-stats .home-v2-proof-num {
|
|
font-size: clamp(24px, 3vw, 34px);
|
|
font-weight: 750;
|
|
letter-spacing: -0.045em;
|
|
line-height: 1;
|
|
}
|
|
|
|
.home-v2-proof-stats .home-v2-proof-label {
|
|
font-size: 13px;
|
|
font-weight: 560;
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
|
|
.home-v2-proof-stat {
|
|
display: inline-flex;
|
|
align-items: baseline;
|
|
gap: 10px;
|
|
}
|
|
|
|
.home-v2-proof-stat-sep {
|
|
margin: 0 24px;
|
|
color: color-mix(in srgb, var(--hv2-text-tertiary) 70%, transparent);
|
|
font-size: 22px;
|
|
line-height: 1;
|
|
font-weight: 300;
|
|
user-select: none;
|
|
}
|
|
|
|
.home-v2-proof-main {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
|
|
gap: 28px 42px;
|
|
align-items: start;
|
|
}
|
|
|
|
.home-v2-proof-header {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.home-v2-proof-eyebrow {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
margin: 0;
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-proof-eyebrow-mark {
|
|
width: 18px;
|
|
height: 18px;
|
|
flex-shrink: 0;
|
|
object-fit: contain;
|
|
opacity: 0.92;
|
|
}
|
|
|
|
.home-v2-proof-title {
|
|
margin: 0;
|
|
max-width: 24ch;
|
|
font-size: clamp(22px, 2vw, 28px);
|
|
font-weight: 700;
|
|
line-height: 1.12;
|
|
letter-spacing: 0;
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-proof-lede {
|
|
margin: 0;
|
|
max-width: 38ch;
|
|
font-size: 15px;
|
|
line-height: 1.55;
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
|
|
.home-v2-proof-links {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 8px;
|
|
margin-top: 8px;
|
|
padding-bottom: 4px;
|
|
}
|
|
|
|
.home-v2-proof-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
min-height: 30px;
|
|
padding: 0 10px;
|
|
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 72%, transparent);
|
|
border-radius: var(--r-pill);
|
|
background: color-mix(in srgb, var(--hv2-surface) 34%, transparent);
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
line-height: 1.25;
|
|
color: var(--hv2-text-secondary);
|
|
text-decoration: none;
|
|
transition: color 0.15s ease;
|
|
}
|
|
|
|
.home-v2-proof-link:hover,
|
|
.home-v2-proof-link:focus-visible {
|
|
border-color: var(--hv2-border-hover);
|
|
background: color-mix(in srgb, var(--hv2-surface-hover) 62%, transparent);
|
|
color: var(--hv2-text);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.home-v2-proof-points {
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style: none;
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 10px;
|
|
}
|
|
|
|
.home-v2-proof-point {
|
|
display: grid;
|
|
gap: 8px;
|
|
min-height: 142px;
|
|
padding: 18px;
|
|
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 72%, transparent);
|
|
border-radius: 12px;
|
|
background: color-mix(in srgb, var(--hv2-surface) 34%, transparent);
|
|
}
|
|
|
|
.home-v2-proof-point:first-child {
|
|
padding-top: 18px;
|
|
border-top: 1px solid color-mix(in srgb, var(--hv2-border-strong) 72%, transparent);
|
|
}
|
|
|
|
.home-v2-proof-point-title {
|
|
margin: 0;
|
|
font-size: 15px;
|
|
font-weight: 650;
|
|
letter-spacing: -0.01em;
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-proof-point-desc {
|
|
margin: 0;
|
|
font-size: 14px;
|
|
line-height: 1.55;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
@media (max-width: 960px) {
|
|
.home-v2-proof-main {
|
|
grid-template-columns: 1fr;
|
|
gap: 36px;
|
|
align-items: start;
|
|
}
|
|
|
|
.home-v2-proof-points {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.home-v2-proof-title,
|
|
.home-v2-proof-lede {
|
|
max-width: none;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.home-v2-proof-inner {
|
|
padding: 34px 20px 56px;
|
|
gap: 32px;
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .home-v2-closing::before {
|
|
top: -28px;
|
|
height: 28px;
|
|
}
|
|
|
|
.home-v2-proof-stats {
|
|
gap: 16px 8px;
|
|
padding-bottom: 16px;
|
|
}
|
|
|
|
.home-v2-proof-stats .home-v2-proof-num {
|
|
font-size: clamp(26px, 7vw, 34px);
|
|
}
|
|
|
|
.home-v2-proof-stats .home-v2-proof-label {
|
|
font-size: 14px;
|
|
}
|
|
|
|
.home-v2-proof-stat-sep {
|
|
margin: 0 14px;
|
|
font-size: 18px;
|
|
}
|
|
}
|
|
|
|
[data-theme-resolved="light"] .site-footer-v2 {
|
|
background: var(--hv2-bg);
|
|
border-top-color: var(--hv2-border);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-closing::before {
|
|
background: linear-gradient(
|
|
to bottom,
|
|
transparent 0%,
|
|
color-mix(in srgb, var(--hv2-bg) 60%, #ececf0) 52%,
|
|
color-mix(in srgb, var(--hv2-bg) 96%, #ececf0) 100%
|
|
);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-proof {
|
|
background: transparent;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-proof::after {
|
|
background: linear-gradient(
|
|
90deg,
|
|
transparent 0%,
|
|
color-mix(in srgb, var(--hv2-accent) 18%, var(--hv2-border)) 20%,
|
|
color-mix(in srgb, var(--hv2-accent) 18%, var(--hv2-border)) 80%,
|
|
transparent 100%
|
|
);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-proof-point {
|
|
border-color: var(--hv2-border-strong);
|
|
background: color-mix(in srgb, var(--hv2-surface) 70%, transparent);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-trend-card,
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-collection-card,
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-feature {
|
|
background: var(--hv2-surface);
|
|
border-color: var(--hv2-border-strong);
|
|
box-shadow:
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.9),
|
|
0 1px 2px rgba(15, 23, 42, 0.06),
|
|
0 6px 16px rgba(15, 23, 42, 0.08);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-collection-card:hover,
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-collection-card:focus-visible {
|
|
box-shadow:
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.95),
|
|
0 2px 4px rgba(15, 23, 42, 0.08),
|
|
0 16px 32px rgba(15, 23, 42, 0.16);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-feature {
|
|
background:
|
|
radial-gradient(
|
|
120% 140% at 0% 0%,
|
|
color-mix(in srgb, var(--hv2-accent) 8%, transparent),
|
|
transparent 60%
|
|
),
|
|
var(--hv2-surface);
|
|
}
|
|
|
|
[data-theme-resolved="light"]
|
|
.app-shell:has(.home-v2-main)
|
|
.home-v2-stack-feature.home-v2-stack-feature--muted {
|
|
background: var(--hv2-surface);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-trend-card:hover,
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-collection-card:hover,
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-feature-item:hover,
|
|
[data-theme-resolved="light"]
|
|
.app-shell:has(.home-v2-main)
|
|
.home-v2-stack-feature-item:focus-visible {
|
|
background: linear-gradient(145deg, rgb(250 250 250) 0%, rgb(238 238 240) 100%);
|
|
border-color: var(--hv2-border-hover);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-feature-item {
|
|
background: linear-gradient(145deg, rgb(250 250 250) 0%, rgb(238 238 240) 100%);
|
|
border-color: var(--hv2-border);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-avatar,
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-avatar--image {
|
|
background: linear-gradient(145deg, #ffffff, #f1f1f4);
|
|
border-color: var(--hv2-border-strong);
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
[data-theme-resolved="light"]
|
|
.app-shell:has(.home-v2-main)
|
|
.home-v2-stack-avatar--user.home-v2-stack-avatar--image {
|
|
background: var(--hv2-surface);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .site-footer-v2 .footer-v2-eco-mark,
|
|
[data-theme-resolved="light"] .site-footer-v2 .footer-v2-eco-mark-logo {
|
|
background: transparent;
|
|
border-color: transparent;
|
|
}
|
|
|
|
/* Ecosystem logos ship as dark-themed icon tiles; round + ring them in light
|
|
mode so they read as intentional app icons instead of bare black squares. */
|
|
[data-theme-resolved="light"] .site-footer-v2 .footer-v2-eco-mark-logo img {
|
|
border-radius: 6px;
|
|
box-shadow:
|
|
inset 0 0 0 1px rgba(15, 23, 42, 0.08),
|
|
0 1px 2px rgba(15, 23, 42, 0.12);
|
|
}
|
|
|
|
/* ═══ PROMOTION BAR ═══ */
|
|
.promotion-bar {
|
|
position: relative;
|
|
z-index: 11;
|
|
isolation: isolate;
|
|
width: 100%;
|
|
overflow: hidden;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--accent) 26%, var(--line));
|
|
background:
|
|
radial-gradient(
|
|
ellipse 28% 180% at 12% -90%,
|
|
color-mix(in srgb, var(--accent) 26%, transparent) 0%,
|
|
transparent 72%
|
|
),
|
|
radial-gradient(
|
|
ellipse 34% 220% at 84% 180%,
|
|
color-mix(in srgb, var(--accent) 22%, transparent) 0%,
|
|
transparent 70%
|
|
),
|
|
linear-gradient(
|
|
90deg,
|
|
var(--surface) 0%,
|
|
color-mix(in srgb, var(--accent) 9%, var(--surface)) 48%,
|
|
color-mix(in srgb, var(--accent) 5%, var(--surface)) 100%
|
|
);
|
|
}
|
|
|
|
.promotion-bar::before {
|
|
content: "";
|
|
position: absolute;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.promotion-bar::before {
|
|
inset: 0;
|
|
z-index: -1;
|
|
background: repeating-linear-gradient(
|
|
105deg,
|
|
transparent 0 24px,
|
|
color-mix(in srgb, var(--accent) 12%, transparent) 24px 25px
|
|
);
|
|
opacity: 0.5;
|
|
mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 82%, transparent 100%);
|
|
}
|
|
|
|
.promotion-bar-track {
|
|
position: relative;
|
|
z-index: 1;
|
|
display: flex;
|
|
width: 100%;
|
|
max-width: var(--page-max);
|
|
min-height: 36px;
|
|
margin: 0 auto;
|
|
padding: 0 var(--space-5);
|
|
overflow-x: auto;
|
|
scrollbar-width: none;
|
|
scroll-snap-type: x mandatory;
|
|
}
|
|
|
|
.promotion-bar-track::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.promotion-bar-item {
|
|
position: relative;
|
|
display: flex;
|
|
flex: 1 0 auto;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-width: min(100%, 520px);
|
|
padding: 6px 32px;
|
|
scroll-snap-align: start;
|
|
}
|
|
|
|
.promotion-bar-item + .promotion-bar-item {
|
|
border-left: 1px solid color-mix(in srgb, var(--accent) 20%, transparent);
|
|
}
|
|
|
|
.promotion-bar-title {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
min-width: 0;
|
|
margin: 0;
|
|
color: var(--ink);
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.promotion-bar-icon {
|
|
width: 14px;
|
|
height: 14px;
|
|
flex: 0 0 auto;
|
|
border-radius: var(--oc-radius-inset);
|
|
color: var(--accent);
|
|
}
|
|
|
|
.promotion-bar-title-copy {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.promotion-bar-copy {
|
|
display: flex;
|
|
flex: 0 1 auto;
|
|
align-items: center;
|
|
gap: 14px;
|
|
min-width: 0;
|
|
font-size: 11px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.promotion-bar-separator {
|
|
width: 1px;
|
|
height: 14px;
|
|
flex: 0 0 auto;
|
|
background: color-mix(in srgb, var(--ink) 18%, transparent);
|
|
}
|
|
|
|
.promotion-bar-meta {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
color: var(--ink-soft);
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.promotion-bar-content {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 18px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.promotion-bar-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
min-height: 24px;
|
|
padding: 0 8px;
|
|
border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent);
|
|
border-radius: var(--oc-radius-control);
|
|
background: color-mix(in srgb, var(--accent) 10%, transparent);
|
|
color: var(--accent);
|
|
font-size: 13px;
|
|
font-weight: 700;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.promotion-bar-link:hover {
|
|
border-color: color-mix(in srgb, var(--accent) 42%, transparent);
|
|
background: color-mix(in srgb, var(--accent) 15%, transparent);
|
|
color: var(--accent-hover);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.promotion-bar-link svg {
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
.promotion-bar-dismiss {
|
|
position: absolute;
|
|
top: 50%;
|
|
right: 0;
|
|
display: inline-grid;
|
|
width: 24px;
|
|
height: 24px;
|
|
place-items: center;
|
|
padding: 0;
|
|
border: 0;
|
|
border-radius: var(--oc-radius-control);
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
transform: translateY(-50%);
|
|
}
|
|
|
|
.promotion-bar-dismiss:hover,
|
|
.promotion-bar-dismiss:focus-visible {
|
|
background: color-mix(in srgb, var(--ink) 8%, transparent);
|
|
color: var(--ink);
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.promotion-bar-track {
|
|
padding: 0;
|
|
}
|
|
|
|
.promotion-bar-item {
|
|
min-width: 100%;
|
|
padding: 7px 44px 7px 12px;
|
|
border-left: 0;
|
|
}
|
|
|
|
.promotion-bar-content {
|
|
width: 100%;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
}
|
|
|
|
.promotion-bar-copy {
|
|
gap: 0;
|
|
}
|
|
|
|
.promotion-bar-dismiss {
|
|
right: 12px;
|
|
}
|
|
|
|
.promotion-bar-separator,
|
|
.promotion-bar-meta {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
/* ═══ HOME POPULAR PUBLISHERS ═══ */
|
|
.home-v2-popular-publishers {
|
|
display: grid;
|
|
gap: 18px;
|
|
width: 100%;
|
|
max-width: 1296px;
|
|
margin: 0 auto;
|
|
padding: 36px 48px 64px;
|
|
overflow-x: clip;
|
|
}
|
|
|
|
.home-v2-popular-publishers-header {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
justify-content: space-between;
|
|
gap: 20px;
|
|
}
|
|
|
|
.home-v2-popular-publishers-heading {
|
|
display: grid;
|
|
gap: 2px;
|
|
}
|
|
|
|
.home-v2-popular-publishers-heading h2 {
|
|
margin: 0;
|
|
color: var(--hv2-text);
|
|
font-size: 18px;
|
|
font-weight: 600;
|
|
letter-spacing: -0.02em;
|
|
}
|
|
|
|
.home-v2-popular-publishers-heading p {
|
|
margin: 0;
|
|
color: var(--hv2-text-tertiary);
|
|
font-size: 14px;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.home-v2-popular-publishers-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 3px;
|
|
color: var(--hv2-text-tertiary);
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
text-decoration: none;
|
|
white-space: nowrap;
|
|
transition: color 150ms ease;
|
|
}
|
|
|
|
.home-v2-popular-publishers-link:hover,
|
|
.home-v2-popular-publishers-link:focus-visible {
|
|
color: var(--hv2-text-secondary);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.home-v2-popular-publishers-link svg {
|
|
transition: transform 160ms var(--hv2-ease-out);
|
|
}
|
|
|
|
.home-v2-popular-publishers-link:hover svg,
|
|
.home-v2-popular-publishers-link:focus-visible svg {
|
|
transform: translateX(2px);
|
|
}
|
|
|
|
.home-v2-popular-publishers-viewport {
|
|
min-width: 0;
|
|
overflow-x: auto;
|
|
overflow-y: hidden;
|
|
cursor: grab;
|
|
scroll-snap-type: x proximity;
|
|
scrollbar-width: none;
|
|
user-select: none;
|
|
-webkit-overflow-scrolling: touch;
|
|
}
|
|
|
|
.home-v2-popular-publishers-viewport.is-dragging {
|
|
cursor: grabbing;
|
|
scroll-snap-type: none;
|
|
}
|
|
|
|
.home-v2-popular-publishers-viewport img {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.home-v2-popular-publishers-viewport::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.home-v2-popular-publishers-track {
|
|
display: grid;
|
|
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
gap: 10px;
|
|
width: 100%;
|
|
min-width: 100%;
|
|
padding: 4px 2px 12px;
|
|
}
|
|
|
|
.home-v2-popular-publishers-retry {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-height: 36px;
|
|
}
|
|
|
|
.home-v2-popular-publisher-card {
|
|
display: grid;
|
|
grid-template-rows: auto 1fr;
|
|
min-width: 0;
|
|
min-height: 150px;
|
|
overflow: hidden;
|
|
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 88%, transparent);
|
|
border-radius: 10px;
|
|
background: rgb(13 13 14);
|
|
box-shadow: inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 4%, transparent);
|
|
color: inherit;
|
|
text-decoration: none;
|
|
scroll-snap-align: start;
|
|
-webkit-user-drag: none;
|
|
transition:
|
|
border-color 150ms ease,
|
|
background 150ms ease;
|
|
}
|
|
|
|
.home-v2-popular-publisher-card:hover,
|
|
.home-v2-popular-publisher-card:focus-visible {
|
|
border-color: var(--hv2-border-hover);
|
|
background: rgb(17 17 18);
|
|
text-decoration: none;
|
|
outline: none;
|
|
}
|
|
|
|
.home-v2-popular-publisher-head {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
padding: 12px 12px 8px;
|
|
}
|
|
|
|
.home-v2-popular-publisher-card .marketplace-icon {
|
|
width: 34px;
|
|
height: 34px;
|
|
border-radius: var(--oc-radius-inset);
|
|
background: rgb(22 22 24);
|
|
border-color: var(--hv2-border-strong);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.home-v2-popular-publisher-card .marketplace-icon-user {
|
|
border-radius: var(--oc-radius-round);
|
|
}
|
|
|
|
.home-v2-popular-publisher-card:hover .marketplace-icon {
|
|
transform: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.home-v2-popular-publisher-name {
|
|
min-width: 0;
|
|
color: var(--hv2-text);
|
|
font-size: 14px;
|
|
font-weight: 650;
|
|
line-height: 1.25;
|
|
letter-spacing: -0.02em;
|
|
text-wrap: balance;
|
|
white-space: normal;
|
|
}
|
|
|
|
.home-v2-popular-publisher-copy {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
padding: 8px 12px 12px;
|
|
}
|
|
|
|
.home-v2-popular-publisher-bio {
|
|
display: -webkit-box;
|
|
margin: 0;
|
|
overflow: hidden;
|
|
color: var(--hv2-text-secondary);
|
|
font-size: 12px;
|
|
line-height: 1.5;
|
|
-webkit-box-orient: vertical;
|
|
-webkit-line-clamp: 2;
|
|
}
|
|
|
|
.home-v2-popular-publisher-stats {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
margin-top: auto;
|
|
color: var(--hv2-text-tertiary);
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
letter-spacing: 0.01em;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
@media (max-width: 1024px) {
|
|
.home-v2-popular-publishers-track {
|
|
grid-auto-flow: column;
|
|
grid-auto-columns: min(240px, 42vw);
|
|
grid-template-columns: none;
|
|
grid-template-rows: repeat(2, minmax(150px, auto));
|
|
width: max-content;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.home-v2-popular-publishers {
|
|
gap: 16px;
|
|
padding: 32px 20px 48px;
|
|
}
|
|
|
|
.home-v2-popular-publishers-header {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.home-v2-popular-publishers-track {
|
|
grid-auto-columns: min(220px, 76vw);
|
|
}
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-popular-publisher-card {
|
|
border-color: var(--hv2-border-strong);
|
|
background: var(--hv2-surface);
|
|
box-shadow:
|
|
inset 0 1px 0 rgb(255 255 255 / 0.9),
|
|
0 1px 2px rgb(15 23 42 / 0.06);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-popular-publisher-card:hover,
|
|
[data-theme-resolved="light"]
|
|
.app-shell:has(.home-v2-main)
|
|
.home-v2-popular-publisher-card:focus-visible {
|
|
border-color: var(--hv2-border-hover);
|
|
background: #fff;
|
|
}
|
|
|
|
[data-theme-resolved="light"]
|
|
.app-shell:has(.home-v2-main)
|
|
.home-v2-popular-publisher-card
|
|
.marketplace-icon {
|
|
border-color: var(--hv2-border-strong);
|
|
background: #fff;
|
|
}
|
|
|
|
/* ═══ HOME APPS (skills for everyday tools) ═══ */
|
|
.home-v2-apps {
|
|
padding: 24px 48px 22px;
|
|
max-width: 1296px;
|
|
margin: 0 auto;
|
|
width: 100%;
|
|
}
|
|
|
|
.home-v2-apps-header {
|
|
display: flex;
|
|
justify-content: center;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.home-v2-apps-heading {
|
|
display: grid;
|
|
min-width: 0;
|
|
max-width: 56ch;
|
|
text-align: center;
|
|
justify-items: center;
|
|
}
|
|
|
|
.home-v2-apps-title {
|
|
margin: 0;
|
|
font-size: clamp(24px, 2.5vw, 32px);
|
|
font-weight: 700;
|
|
letter-spacing: 0;
|
|
line-height: 1.15;
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-apps-stage {
|
|
position: relative;
|
|
display: grid;
|
|
gap: 15px;
|
|
padding: 0;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
overflow: visible;
|
|
}
|
|
|
|
.home-v2-apps-stage::before {
|
|
content: none;
|
|
}
|
|
|
|
.home-v2-apps-stage::after {
|
|
content: none;
|
|
}
|
|
|
|
.home-v2-apps-workflow-header {
|
|
position: relative;
|
|
z-index: 2;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) minmax(280px, 0.7fr);
|
|
align-items: center;
|
|
gap: 24px;
|
|
min-height: 132px;
|
|
padding: 22px 28px;
|
|
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 54%, transparent);
|
|
border-radius: var(--oc-radius-surface);
|
|
background: linear-gradient(135deg, rgb(31 42 66) 0%, rgb(35 35 51) 48%, rgb(28 27 31) 100%);
|
|
box-shadow:
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.08),
|
|
0 16px 44px rgba(0, 0, 0, 0.16);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.home-v2-apps-workflow-header::before {
|
|
position: absolute;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
background:
|
|
radial-gradient(80% 130% at 12% -18%, rgba(87, 126, 190, 0.28), transparent 62%),
|
|
radial-gradient(56% 120% at 95% 12%, rgba(255, 255, 255, 0.1), transparent 66%),
|
|
linear-gradient(90deg, rgba(6, 10, 18, 0.16), transparent 58%);
|
|
content: "";
|
|
}
|
|
|
|
.home-v2-apps-workflow-header::after {
|
|
position: absolute;
|
|
right: -12%;
|
|
bottom: -48%;
|
|
width: 58%;
|
|
height: 120%;
|
|
pointer-events: none;
|
|
background: radial-gradient(closest-side, rgba(255, 255, 255, 0.12), transparent 72%);
|
|
filter: blur(18px);
|
|
opacity: 0.72;
|
|
content: "";
|
|
}
|
|
|
|
.home-v2-apps-workflow-copy {
|
|
position: relative;
|
|
z-index: 1;
|
|
display: grid;
|
|
gap: 9px;
|
|
justify-items: start;
|
|
min-width: 0;
|
|
}
|
|
|
|
.home-v2-apps-workflow-copy h2 {
|
|
margin: 0;
|
|
font-size: clamp(18px, 1.45vw, 22px);
|
|
font-weight: 680;
|
|
line-height: 1.1;
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-apps-workflow-copy p {
|
|
margin: 0;
|
|
max-width: 36ch;
|
|
font-size: 14px;
|
|
font-weight: 560;
|
|
line-height: 1.45;
|
|
color: color-mix(in srgb, var(--hv2-text) 58%, transparent);
|
|
}
|
|
|
|
.home-v2-apps-workflow-action {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-height: 34px;
|
|
margin-top: 4px;
|
|
padding: 0 17px;
|
|
border-radius: 8px;
|
|
background: var(--hv2-text);
|
|
color: var(--hv2-bg);
|
|
font-size: 13px;
|
|
font-weight: 720;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.home-v2-apps-workflow-action:hover,
|
|
.home-v2-apps-workflow-action:focus-visible {
|
|
background: color-mix(in srgb, var(--hv2-text) 92%, var(--hv2-accent));
|
|
color: var(--hv2-bg);
|
|
text-decoration: none;
|
|
outline: none;
|
|
}
|
|
|
|
.home-v2-apps-workflow-tiles {
|
|
position: relative;
|
|
z-index: 2;
|
|
min-height: 136px;
|
|
}
|
|
|
|
.home-v2-apps-workflow-tile {
|
|
position: absolute;
|
|
top: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 96px;
|
|
height: 96px;
|
|
border-radius: var(--oc-radius-surface);
|
|
background: rgb(247 247 246);
|
|
box-shadow:
|
|
0 18px 38px rgba(0, 0, 0, 0.26),
|
|
0 2px 6px rgba(0, 0, 0, 0.18),
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.85);
|
|
transition:
|
|
transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1),
|
|
box-shadow 0.28s ease;
|
|
}
|
|
|
|
.home-v2-apps-workflow-tile img {
|
|
width: 42px;
|
|
height: 42px;
|
|
object-fit: contain;
|
|
}
|
|
|
|
.home-v2-apps-workflow-tile.is-openai img,
|
|
.home-v2-apps-workflow-tile.is-slack img {
|
|
width: 36.75px;
|
|
height: 36.75px;
|
|
}
|
|
|
|
.home-v2-apps-workflow-tile span {
|
|
position: absolute;
|
|
top: -8px;
|
|
right: -10px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-height: 24px;
|
|
padding: 0 11px;
|
|
border-radius: var(--r-pill);
|
|
background: var(--hv2-accent);
|
|
box-shadow: 0 4px 12px color-mix(in srgb, var(--hv2-accent) 45%, transparent);
|
|
color: white;
|
|
font-size: 10.5px;
|
|
font-weight: 760;
|
|
letter-spacing: 0.02em;
|
|
line-height: 1;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
/* Hand-fan deck: middle card highest, rotation grows left-to-right. */
|
|
.home-v2-apps-workflow-tile.is-openai {
|
|
right: 172px;
|
|
z-index: 1;
|
|
transform: translateY(-44%) rotate(-12deg);
|
|
}
|
|
|
|
.home-v2-apps-workflow-tile.is-slack {
|
|
right: 90px;
|
|
z-index: 2;
|
|
transform: translateY(-58%) rotate(-1deg);
|
|
}
|
|
|
|
.home-v2-apps-workflow-tile.is-openclaw {
|
|
right: 8px;
|
|
z-index: 3;
|
|
transform: translateY(-40%) rotate(10deg);
|
|
}
|
|
|
|
.home-v2-apps-workflow-header:hover .home-v2-apps-workflow-tile.is-openai {
|
|
transform: translateY(-44%) translateX(-10px) rotate(-16deg);
|
|
}
|
|
|
|
.home-v2-apps-workflow-header:hover .home-v2-apps-workflow-tile.is-slack {
|
|
transform: translateY(-62%) rotate(-1deg);
|
|
}
|
|
|
|
.home-v2-apps-workflow-header:hover .home-v2-apps-workflow-tile.is-openclaw {
|
|
transform: translateY(-40%) translateX(10px) rotate(14deg);
|
|
}
|
|
|
|
.home-v2-apps-intro {
|
|
position: relative;
|
|
z-index: 2;
|
|
display: flex;
|
|
align-items: start;
|
|
justify-content: space-between;
|
|
gap: 18px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.home-v2-apps-intro-copy {
|
|
display: grid;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.home-v2-apps-intro .home-v2-apps-title {
|
|
font-size: clamp(22px, 2vw, 28px);
|
|
font-weight: 700;
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.home-v2-apps-intro p {
|
|
margin: 0;
|
|
max-width: 48ch;
|
|
font-size: 14px;
|
|
line-height: 1.5;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-apps-view-all {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
flex-shrink: 0;
|
|
margin-top: 4px;
|
|
color: var(--hv2-text-tertiary);
|
|
font-size: 13px;
|
|
font-weight: 650;
|
|
text-decoration: none;
|
|
transition:
|
|
color 0.15s ease,
|
|
opacity 0.15s ease;
|
|
}
|
|
|
|
.home-v2-apps-view-all:hover,
|
|
.home-v2-apps-view-all:focus-visible {
|
|
color: var(--hv2-text-secondary);
|
|
text-decoration: none;
|
|
outline: none;
|
|
}
|
|
|
|
.home-v2-apps-showcase {
|
|
position: relative;
|
|
z-index: 2;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr);
|
|
min-height: 144px;
|
|
border-radius: 10px 10px 8px 8px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.home-v2-apps-promo {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: flex-end;
|
|
min-width: 0;
|
|
padding: 16px;
|
|
background:
|
|
radial-gradient(
|
|
circle at 40% 16%,
|
|
color-mix(in srgb, var(--hv2-accent) 18%, transparent),
|
|
transparent 42%
|
|
),
|
|
linear-gradient(145deg, rgb(20 20 21), rgb(10 10 11));
|
|
overflow: hidden;
|
|
}
|
|
|
|
.home-v2-apps-promo::after {
|
|
position: absolute;
|
|
inset: auto 0 0;
|
|
height: 50%;
|
|
background: linear-gradient(180deg, transparent, rgb(9 9 10));
|
|
content: "";
|
|
}
|
|
|
|
.home-v2-apps-promo-icons {
|
|
position: absolute;
|
|
inset: 16px 18px auto;
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 34px);
|
|
gap: 7px;
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.home-v2-apps-promo-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 34px;
|
|
height: 34px;
|
|
border: 1px solid color-mix(in srgb, var(--hv2-text) 10%, transparent);
|
|
border-radius: 8px;
|
|
background: color-mix(in srgb, var(--hv2-surface) 84%, var(--hv2-bg));
|
|
box-shadow:
|
|
0 18px 38px color-mix(in srgb, var(--hv2-bg) 44%, transparent),
|
|
inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 8%, transparent);
|
|
}
|
|
|
|
.home-v2-apps-promo-icon img {
|
|
width: 19px;
|
|
height: 19px;
|
|
object-fit: contain;
|
|
}
|
|
|
|
.home-v2-apps-showcase .home-v2-apps-title {
|
|
position: relative;
|
|
z-index: 1;
|
|
max-width: 15ch;
|
|
margin: 0;
|
|
font-size: clamp(22px, 2.2vw, 30px);
|
|
font-weight: 700;
|
|
letter-spacing: 0;
|
|
line-height: 1.08;
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-apps-feature {
|
|
display: grid;
|
|
align-content: start;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
padding: 18px 20px;
|
|
background:
|
|
radial-gradient(
|
|
74% 92% at 0% 0%,
|
|
color-mix(in srgb, var(--hv2-accent) 8%, transparent),
|
|
transparent 58%
|
|
),
|
|
linear-gradient(135deg, rgb(19 18 18), rgb(13 13 14));
|
|
}
|
|
|
|
.home-v2-apps-feature-kicker {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.home-v2-apps-feature-logo {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 34px;
|
|
height: 34px;
|
|
border: 1px solid color-mix(in srgb, var(--hv2-accent) 24%, var(--hv2-border));
|
|
border-radius: 50%;
|
|
background: rgb(245 245 245);
|
|
}
|
|
|
|
.home-v2-apps-feature-logo img {
|
|
width: 22px;
|
|
height: 22px;
|
|
object-fit: contain;
|
|
}
|
|
|
|
.home-v2-apps-feature-brand,
|
|
.home-v2-apps-feature-meta {
|
|
display: block;
|
|
min-width: 0;
|
|
}
|
|
|
|
.home-v2-apps-feature-brand {
|
|
font-size: 14px;
|
|
font-weight: 700;
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-apps-feature-meta {
|
|
margin-top: 2px;
|
|
font-size: 11px;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-apps-feature-title {
|
|
max-width: 31ch;
|
|
margin: 0;
|
|
font-size: clamp(17px, 1.55vw, 22px);
|
|
font-weight: 680;
|
|
letter-spacing: 0;
|
|
line-height: 1.15;
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-apps-feature-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.home-v2-apps-feature-action {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-height: 32px;
|
|
padding: 0 13px;
|
|
border-radius: var(--r-pill);
|
|
background: var(--hv2-accent);
|
|
color: var(--hv2-bg);
|
|
font-size: 13px;
|
|
font-weight: 750;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.home-v2-apps-feature-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
color: var(--hv2-text-secondary);
|
|
font-size: 13px;
|
|
font-weight: 650;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.home-v2-apps-categories {
|
|
position: relative;
|
|
z-index: 2;
|
|
display: flex;
|
|
width: fit-content;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.home-v2-apps-category-tab {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 6px;
|
|
min-height: 30px;
|
|
padding: 0 14px;
|
|
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 74%, transparent);
|
|
border-radius: var(--r-pill);
|
|
background: color-mix(in srgb, var(--hv2-surface) 72%, transparent);
|
|
color: var(--hv2-text-tertiary);
|
|
font: inherit;
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
cursor: pointer;
|
|
transition:
|
|
border-color 0.15s ease,
|
|
background 0.15s ease,
|
|
color 0.15s ease,
|
|
transform 0.15s ease,
|
|
box-shadow 0.15s ease;
|
|
}
|
|
|
|
.home-v2-apps-category-tab-icon {
|
|
flex-shrink: 0;
|
|
color: var(--hv2-text-tertiary);
|
|
transition: color 0.15s ease;
|
|
}
|
|
|
|
.home-v2-apps-category-tab:hover,
|
|
.home-v2-apps-category-tab:focus-visible {
|
|
border-color: var(--hv2-border-hover);
|
|
background: var(--hv2-surface-hover);
|
|
color: var(--hv2-text-secondary);
|
|
outline: none;
|
|
}
|
|
|
|
.home-v2-apps-category-tab:hover .home-v2-apps-category-tab-icon,
|
|
.home-v2-apps-category-tab:focus-visible .home-v2-apps-category-tab-icon {
|
|
color: var(--hv2-accent);
|
|
}
|
|
|
|
.home-v2-apps-category-tab[aria-selected="true"] {
|
|
border-color: var(--hv2-border-hover);
|
|
background: var(--hv2-surface-hover);
|
|
color: var(--hv2-text);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.home-v2-apps-category-tab[aria-selected="true"] .home-v2-apps-category-tab-icon {
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-apps-tile-grid {
|
|
position: relative;
|
|
z-index: 2;
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 6px 10px;
|
|
}
|
|
|
|
.home-v2-apps-see-all-row {
|
|
position: relative;
|
|
z-index: 2;
|
|
display: flex;
|
|
justify-content: center;
|
|
margin-top: 32px;
|
|
}
|
|
|
|
a.home-v2-apps-see-all {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
color: var(--hv2-text-tertiary);
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
text-decoration: none;
|
|
transition: color 0.15s ease;
|
|
}
|
|
|
|
a.home-v2-apps-see-all svg {
|
|
transition: transform 0.15s ease;
|
|
}
|
|
|
|
a.home-v2-apps-see-all:hover,
|
|
a.home-v2-apps-see-all:focus-visible {
|
|
color: var(--hv2-text-secondary);
|
|
text-decoration: none;
|
|
outline: none;
|
|
}
|
|
|
|
a.home-v2-apps-see-all:hover svg,
|
|
a.home-v2-apps-see-all:focus-visible svg {
|
|
transform: translateX(2px);
|
|
}
|
|
|
|
.home-v2-apps-tile {
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr) 16px;
|
|
align-items: center;
|
|
gap: 10px;
|
|
min-height: 58px;
|
|
padding: 9px 12px;
|
|
border: 1px solid transparent;
|
|
border-radius: var(--hv2-radius-sm);
|
|
background: transparent;
|
|
color: inherit;
|
|
text-decoration: none;
|
|
overflow: hidden;
|
|
transition:
|
|
border-color 0.15s ease,
|
|
background 0.15s ease,
|
|
transform 0.15s ease,
|
|
box-shadow 0.15s ease;
|
|
}
|
|
|
|
.home-v2-apps-tile:hover,
|
|
.home-v2-apps-tile:focus-visible {
|
|
border-color: var(--hv2-border);
|
|
background: color-mix(in srgb, var(--hv2-surface-hover) 70%, transparent);
|
|
transform: none;
|
|
box-shadow: none;
|
|
text-decoration: none;
|
|
outline: none;
|
|
}
|
|
|
|
.home-v2-apps-tile-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 36px;
|
|
height: 36px;
|
|
border: 1px solid var(--hv2-border);
|
|
border-radius: var(--oc-radius-inset);
|
|
background: color-mix(in srgb, var(--hv2-bg) 55%, transparent);
|
|
}
|
|
|
|
.home-v2-apps-tile-logo {
|
|
width: 21px;
|
|
height: 21px;
|
|
}
|
|
|
|
.home-v2-apps-tile-logo--simple {
|
|
display: block;
|
|
background: var(--home-v2-apps-icon-color);
|
|
mask: var(--home-v2-apps-icon-url) center / contain no-repeat;
|
|
-webkit-mask: var(--home-v2-apps-icon-url) center / contain no-repeat;
|
|
}
|
|
|
|
.home-v2-apps-tile-logo--image {
|
|
display: block;
|
|
filter: var(--home-v2-apps-icon-image-filter);
|
|
object-fit: contain;
|
|
}
|
|
|
|
.home-v2-apps-tile-copy {
|
|
display: grid;
|
|
gap: 3px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.home-v2-apps-tile-name,
|
|
.home-v2-apps-tile-meta {
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.home-v2-apps-tile-name {
|
|
font-size: 13px;
|
|
font-weight: 700;
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
|
|
.home-v2-apps-tile-meta {
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-apps-tile-arrow {
|
|
flex-shrink: 0;
|
|
color: var(--hv2-text-tertiary);
|
|
opacity: 0.7;
|
|
transform: none;
|
|
transition:
|
|
color 0.15s ease,
|
|
opacity 0.15s ease,
|
|
transform 0.15s ease;
|
|
}
|
|
|
|
.home-v2-apps-tile:hover .home-v2-apps-tile-name,
|
|
.home-v2-apps-tile:focus-visible .home-v2-apps-tile-name {
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-apps-tile:hover .home-v2-apps-tile-arrow,
|
|
.home-v2-apps-tile:focus-visible .home-v2-apps-tile-arrow {
|
|
color: var(--hv2-text-secondary);
|
|
opacity: 1;
|
|
transform: translateX(2px);
|
|
}
|
|
|
|
.home-v2-apps-footer-row {
|
|
position: relative;
|
|
z-index: 1;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 18px;
|
|
margin-top: 24px;
|
|
}
|
|
|
|
.home-v2-apps-footer-row h3 {
|
|
margin: 0;
|
|
font-size: clamp(20px, 2.1vw, 26px);
|
|
font-weight: 760;
|
|
letter-spacing: -0.03em;
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-apps-footer-row a {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
color: var(--hv2-text-tertiary);
|
|
font-size: 14px;
|
|
font-weight: 650;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.home-v2-apps-card-strip {
|
|
position: relative;
|
|
z-index: 1;
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 18px;
|
|
}
|
|
|
|
.home-v2-apps-card {
|
|
display: grid;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.home-v2-apps-card .home-v2-app-shortcut {
|
|
min-height: 68px;
|
|
border: none;
|
|
border-radius: 8px;
|
|
background: rgb(25 25 26);
|
|
}
|
|
|
|
.home-v2-apps-card p {
|
|
margin: 0;
|
|
max-width: 32ch;
|
|
font-size: 14px;
|
|
line-height: 1.4;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-apps-orbit {
|
|
position: relative;
|
|
z-index: 1;
|
|
min-height: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.home-v2-apps-orbit::before,
|
|
.home-v2-apps-orbit::after {
|
|
position: absolute;
|
|
top: 50%;
|
|
z-index: 1;
|
|
width: calc(50% - 76px);
|
|
height: 1px;
|
|
pointer-events: none;
|
|
background: linear-gradient(
|
|
90deg,
|
|
transparent,
|
|
color-mix(in srgb, var(--hv2-accent) 38%, var(--hv2-border)),
|
|
transparent
|
|
);
|
|
content: "";
|
|
}
|
|
|
|
.home-v2-apps-orbit::before {
|
|
left: 0;
|
|
}
|
|
|
|
.home-v2-apps-orbit::after {
|
|
right: 0;
|
|
}
|
|
|
|
.home-v2-apps-flow {
|
|
position: relative;
|
|
z-index: 2;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
gap: 100px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.home-v2-apps-hub {
|
|
position: absolute;
|
|
z-index: 4;
|
|
top: 50%;
|
|
left: 50%;
|
|
display: grid;
|
|
justify-items: center;
|
|
gap: 5px;
|
|
width: 82px;
|
|
padding: 12px 9px 11px;
|
|
border: 1px solid color-mix(in srgb, var(--hv2-accent) 42%, var(--hv2-border));
|
|
border-radius: 14px;
|
|
background: linear-gradient(180deg, rgb(24 20 20), rgb(13 12 13));
|
|
box-shadow:
|
|
0 16px 38px color-mix(in srgb, var(--hv2-bg) 58%, transparent),
|
|
0 0 34px color-mix(in srgb, var(--hv2-accent) 10%, transparent),
|
|
inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 7%, transparent);
|
|
pointer-events: none;
|
|
transform: translate(-50%, -50%);
|
|
}
|
|
|
|
.home-v2-apps-hub-core {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 42px;
|
|
height: 42px;
|
|
border-radius: 50%;
|
|
border: 1px solid var(--hv2-border-strong);
|
|
background: color-mix(in srgb, var(--hv2-surface) 72%, var(--hv2-bg));
|
|
box-shadow: inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 6%, transparent);
|
|
}
|
|
|
|
.home-v2-apps-hub-core img {
|
|
width: 26px;
|
|
height: 26px;
|
|
object-fit: contain;
|
|
opacity: 0.92;
|
|
}
|
|
|
|
.home-v2-apps-hub-label {
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-apps-hub-count {
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-apps-panel {
|
|
display: grid;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
padding: 14px;
|
|
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 82%, var(--hv2-border));
|
|
border-radius: 14px;
|
|
background: linear-gradient(180deg, rgb(17 16 17), rgb(11 11 12));
|
|
box-shadow:
|
|
inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 5%, transparent),
|
|
0 12px 30px color-mix(in srgb, var(--hv2-bg) 28%, transparent);
|
|
}
|
|
|
|
.home-v2-apps-panel--skills {
|
|
transform: translateY(14px);
|
|
}
|
|
|
|
.home-v2-apps-panel--plugins {
|
|
transform: translateY(-4px);
|
|
}
|
|
|
|
.home-v2-apps-panel-head {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
padding: 0 2px;
|
|
}
|
|
|
|
.home-v2-apps-panel-title {
|
|
margin: 0;
|
|
font-size: 13px;
|
|
font-weight: 700;
|
|
letter-spacing: 0;
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-apps-panel-count {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
padding: 4px 8px;
|
|
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 62%, transparent);
|
|
border-radius: var(--r-pill);
|
|
background: color-mix(in srgb, var(--hv2-bg) 42%, transparent);
|
|
color: var(--hv2-text-secondary);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.home-v2-apps-shortcut-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 8px;
|
|
}
|
|
|
|
.home-v2-app-shortcut {
|
|
position: relative;
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr);
|
|
align-items: center;
|
|
gap: 10px;
|
|
min-height: 58px;
|
|
min-width: 0;
|
|
padding: 9px;
|
|
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 84%, transparent);
|
|
border-radius: 8px;
|
|
background: rgb(16 16 17);
|
|
box-shadow: inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 4%, transparent);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
transition:
|
|
transform 140ms var(--hv2-ease-out),
|
|
border-color var(--hv2-duration-fast) var(--hv2-ease-out),
|
|
background var(--hv2-duration-fast) var(--hv2-ease-out),
|
|
box-shadow var(--hv2-duration-fast) var(--hv2-ease-out);
|
|
}
|
|
|
|
.home-v2-app-shortcut::before {
|
|
position: absolute;
|
|
inset: 8px auto 8px -1px;
|
|
width: 2px;
|
|
border-radius: 999px;
|
|
background: color-mix(in srgb, var(--hv2-accent) 52%, transparent);
|
|
opacity: 0;
|
|
transition: opacity var(--hv2-duration-fast) var(--hv2-ease-out);
|
|
content: "";
|
|
}
|
|
|
|
.home-v2-app-shortcut:focus-visible {
|
|
z-index: 3;
|
|
border-color: color-mix(in srgb, var(--hv2-accent) 38%, var(--hv2-border-hover));
|
|
background: rgb(22 21 22);
|
|
transform: translateY(-1px);
|
|
box-shadow:
|
|
0 12px 28px color-mix(in srgb, var(--hv2-bg) 52%, transparent),
|
|
inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 8%, transparent);
|
|
text-decoration: none;
|
|
outline: none;
|
|
}
|
|
|
|
.home-v2-app-shortcut:focus-visible::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.home-v2-app-shortcut:active {
|
|
transform: scale(0.985);
|
|
}
|
|
|
|
@media (hover: hover) and (pointer: fine) {
|
|
.home-v2-app-shortcut:hover {
|
|
z-index: 3;
|
|
border-color: color-mix(in srgb, var(--hv2-accent) 38%, var(--hv2-border-hover));
|
|
background: rgb(22 21 22);
|
|
transform: translateY(-1px);
|
|
box-shadow:
|
|
0 12px 28px color-mix(in srgb, var(--hv2-bg) 52%, transparent),
|
|
inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 8%, transparent);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.home-v2-app-shortcut:hover::before {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.home-v2-app-shortcut-icon {
|
|
display: flex;
|
|
flex-shrink: 0;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 34px;
|
|
height: 34px;
|
|
border-radius: 8px;
|
|
border: 1px solid var(--hv2-border);
|
|
background: rgb(23 23 24);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.home-v2-app-shortcut-icon img {
|
|
width: 20px;
|
|
height: 20px;
|
|
object-fit: contain;
|
|
}
|
|
|
|
.home-v2-app-shortcut-copy {
|
|
display: grid;
|
|
gap: 3px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.home-v2-app-shortcut-name {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
font-size: 13px;
|
|
font-weight: 650;
|
|
letter-spacing: -0.02em;
|
|
color: var(--hv2-text);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.home-v2-app-shortcut-meta {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
color: var(--hv2-text-tertiary);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
@media (max-width: 1100px) {
|
|
.home-v2-apps-showcase {
|
|
grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
|
|
}
|
|
|
|
.home-v2-apps-tile-grid {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
|
|
.home-v2-apps-flow {
|
|
gap: 92px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.home-v2-apps-stage {
|
|
padding: 0;
|
|
}
|
|
|
|
.home-v2-apps-workflow-header {
|
|
justify-items: center;
|
|
}
|
|
|
|
.home-v2-apps-stage::before {
|
|
inset-inline: -8px;
|
|
height: 360px;
|
|
opacity: 0.28;
|
|
}
|
|
|
|
.home-v2-apps-workflow-header {
|
|
grid-template-columns: 1fr;
|
|
min-height: 0;
|
|
padding: 22px;
|
|
}
|
|
|
|
.home-v2-apps-workflow-tiles {
|
|
display: none;
|
|
}
|
|
|
|
.home-v2-apps-showcase {
|
|
grid-template-columns: 1fr;
|
|
min-height: 0;
|
|
}
|
|
|
|
.home-v2-apps-promo {
|
|
min-height: 150px;
|
|
}
|
|
|
|
.home-v2-apps-feature {
|
|
padding: 20px;
|
|
}
|
|
|
|
.home-v2-apps-feature-title {
|
|
max-width: 31ch;
|
|
}
|
|
|
|
.home-v2-apps-orbit {
|
|
display: grid;
|
|
gap: 16px;
|
|
}
|
|
|
|
.home-v2-apps-orbit::before,
|
|
.home-v2-apps-orbit::after {
|
|
display: none;
|
|
}
|
|
|
|
.home-v2-apps-hub {
|
|
position: relative;
|
|
top: auto;
|
|
left: auto;
|
|
justify-self: center;
|
|
width: auto;
|
|
grid-template-columns: auto auto;
|
|
column-gap: 8px;
|
|
padding: 9px 11px 9px 9px;
|
|
transform: none;
|
|
}
|
|
|
|
.home-v2-apps-hub-core {
|
|
grid-row: span 2;
|
|
width: 34px;
|
|
height: 34px;
|
|
}
|
|
|
|
.home-v2-apps-hub-core img {
|
|
width: 22px;
|
|
height: 22px;
|
|
}
|
|
|
|
.home-v2-apps-hub-label,
|
|
.home-v2-apps-hub-count {
|
|
justify-self: start;
|
|
}
|
|
|
|
.home-v2-apps-flow {
|
|
grid-template-columns: 1fr;
|
|
gap: 12px;
|
|
}
|
|
|
|
.home-v2-apps-panel--skills,
|
|
.home-v2-apps-panel--plugins {
|
|
transform: none;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.home-v2-apps {
|
|
padding: 32px 20px 28px;
|
|
}
|
|
|
|
.home-v2-apps-header {
|
|
margin-bottom: 14px;
|
|
}
|
|
|
|
.home-v2-apps-stage {
|
|
padding: 0;
|
|
}
|
|
|
|
.home-v2-apps-intro {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.home-v2-apps-view-all {
|
|
justify-self: start;
|
|
margin-top: 0;
|
|
}
|
|
|
|
.home-v2-apps-stage::before {
|
|
inset-top: 82px;
|
|
height: 300px;
|
|
}
|
|
|
|
.home-v2-apps-stage::after {
|
|
height: 220px;
|
|
}
|
|
|
|
.home-v2-apps-promo {
|
|
min-height: 138px;
|
|
padding: 16px;
|
|
}
|
|
|
|
.home-v2-apps-workflow-copy {
|
|
grid-row: 2;
|
|
justify-items: center;
|
|
justify-self: center;
|
|
width: 100%;
|
|
max-width: 31ch;
|
|
text-align: center;
|
|
}
|
|
|
|
.home-v2-apps-workflow-tiles {
|
|
display: block;
|
|
grid-row: 1;
|
|
justify-self: center;
|
|
width: 150px;
|
|
min-height: 62px;
|
|
}
|
|
|
|
.home-v2-apps-workflow-tile {
|
|
width: 48px;
|
|
height: 48px;
|
|
border-radius: var(--oc-radius-surface);
|
|
}
|
|
|
|
.home-v2-apps-workflow-tile img {
|
|
width: 22px;
|
|
height: 22px;
|
|
}
|
|
|
|
.home-v2-apps-workflow-tile.is-openai img,
|
|
.home-v2-apps-workflow-tile.is-slack img {
|
|
width: 19.25px;
|
|
height: 19.25px;
|
|
}
|
|
|
|
.home-v2-apps-workflow-tile span {
|
|
top: -5px;
|
|
right: -7px;
|
|
min-height: 15px;
|
|
padding: 0 6px;
|
|
font-size: 6.5px;
|
|
}
|
|
|
|
.home-v2-apps-workflow-tile.is-openai {
|
|
right: 90px;
|
|
}
|
|
|
|
.home-v2-apps-workflow-tile.is-slack {
|
|
right: 51px;
|
|
}
|
|
|
|
.home-v2-apps-workflow-tile.is-openclaw {
|
|
right: 12px;
|
|
}
|
|
|
|
.home-v2-apps-workflow-copy h2 {
|
|
max-width: 18ch;
|
|
text-wrap: balance;
|
|
}
|
|
|
|
.home-v2-apps-workflow-copy p {
|
|
max-width: 31ch;
|
|
text-wrap: pretty;
|
|
}
|
|
|
|
.home-v2-apps-categories {
|
|
width: 100%;
|
|
min-width: 0;
|
|
flex-wrap: nowrap;
|
|
overflow-x: auto;
|
|
overflow-y: hidden;
|
|
scroll-snap-type: x proximity;
|
|
scrollbar-width: none;
|
|
-webkit-overflow-scrolling: touch;
|
|
}
|
|
|
|
.home-v2-apps-categories::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.home-v2-apps-category-tab {
|
|
flex: 0 0 auto;
|
|
scroll-snap-align: start;
|
|
}
|
|
|
|
.home-v2-apps-promo-icons {
|
|
inset: 14px 16px auto;
|
|
grid-template-columns: repeat(3, 32px);
|
|
gap: 7px;
|
|
}
|
|
|
|
.home-v2-apps-promo-icon {
|
|
width: 32px;
|
|
height: 32px;
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.home-v2-apps-showcase .home-v2-apps-title {
|
|
max-width: 15ch;
|
|
font-size: clamp(22px, 7vw, 32px);
|
|
}
|
|
|
|
.home-v2-apps-feature {
|
|
gap: 12px;
|
|
padding: 18px 16px;
|
|
}
|
|
|
|
.home-v2-apps-feature-title {
|
|
font-size: clamp(18px, 5.8vw, 24px);
|
|
}
|
|
|
|
.home-v2-apps-tile-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.home-v2-apps-tile-grid > .home-v2-apps-tile:nth-child(n + 9) {
|
|
display: none;
|
|
}
|
|
|
|
.home-v2-apps-footer-row {
|
|
margin-top: 24px;
|
|
}
|
|
|
|
.home-v2-apps-panel {
|
|
padding: 12px;
|
|
}
|
|
|
|
.home-v2-apps-shortcut-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.home-v2-app-shortcut {
|
|
min-height: 58px;
|
|
gap: 8px;
|
|
padding: 8px;
|
|
}
|
|
|
|
.home-v2-app-shortcut-icon {
|
|
width: 30px;
|
|
height: 30px;
|
|
}
|
|
|
|
.home-v2-app-shortcut-name {
|
|
font-size: 12px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 460px) {
|
|
.home-v2-apps-shortcut-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.home-v2-app-shortcut {
|
|
transition: none;
|
|
}
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-stage {
|
|
background: transparent;
|
|
box-shadow: none;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-stage::before {
|
|
background:
|
|
radial-gradient(
|
|
74% 70% at 12% 0%,
|
|
color-mix(in srgb, var(--hv2-accent) 7%, transparent),
|
|
transparent 70%
|
|
),
|
|
linear-gradient(180deg, rgb(255 255 255), rgb(247 246 244) 58%, transparent 100%);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-workflow-copy h2 {
|
|
color: #fff;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-workflow-copy p {
|
|
color: rgba(255, 255, 255, 0.62);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-panel,
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-hub,
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-app-shortcut {
|
|
border-color: var(--hv2-border-strong);
|
|
box-shadow:
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.9),
|
|
0 4px 16px rgba(0, 0, 0, 0.06);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-panel {
|
|
background: linear-gradient(180deg, rgb(255 255 255), rgb(248 247 245));
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-hub {
|
|
background: linear-gradient(180deg, rgb(255 255 255), rgb(245 242 240));
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-app-shortcut {
|
|
background: rgb(255 255 255);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-app-shortcut:hover,
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-app-shortcut:focus-visible {
|
|
background: rgb(249 247 245);
|
|
border-color: var(--hv2-border-hover);
|
|
}
|
|
|
|
/* ═══ HOME DISCOVER (stacks & collections) ═══ */
|
|
|
|
/* ===== Home v2 — Bring your skills (CLI) ===== */
|
|
|
|
.home-v2-byos.oc-section {
|
|
--byos-x: 50%;
|
|
--byos-y: 42%;
|
|
--byos-intensity: 0;
|
|
--byos-art-size: 112%;
|
|
--byos-art-x: 22%;
|
|
--byos-art-y: 50%;
|
|
position: relative;
|
|
isolation: isolate;
|
|
/* Break out of the page-max `main` column to the full viewport width. */
|
|
width: 100vw;
|
|
max-width: none;
|
|
margin-top: 88px;
|
|
margin-bottom: 0;
|
|
margin-inline: calc(50% - 50vw);
|
|
padding: 104px 48px 112px;
|
|
overflow: hidden;
|
|
background: #050505;
|
|
}
|
|
|
|
.home-v2-byos::before {
|
|
position: absolute;
|
|
inset: 0 0 auto;
|
|
z-index: 0;
|
|
height: 180px;
|
|
pointer-events: none;
|
|
content: "";
|
|
background: linear-gradient(
|
|
to bottom,
|
|
var(--hv2-bg, #050505) 0%,
|
|
var(--hv2-bg, #050505) 30%,
|
|
rgb(5 5 5 / 0.9) 58%,
|
|
rgb(5 5 5 / 0) 100%
|
|
);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .home-v2-byos::before {
|
|
content: none;
|
|
}
|
|
|
|
/* Full-bleed reveal backdrop — mirrors the footer easter egg mechanic. */
|
|
.home-v2-byos-reveal {
|
|
position: absolute;
|
|
inset: 0;
|
|
z-index: -1;
|
|
overflow: hidden;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.home-v2-byos-reveal-image {
|
|
position: absolute;
|
|
inset: 0;
|
|
background-position: var(--byos-art-x, 50%) var(--byos-art-y, 50%);
|
|
background-repeat: no-repeat;
|
|
background-size: cover;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.home-v2-byos-reveal-image--base {
|
|
background-image: url("/footer-openclaw-easter-egg.webp");
|
|
}
|
|
|
|
/* Legibility overlay: darken toward the center where the copy + card sit and
|
|
feather the band into the page above/below. */
|
|
.home-v2-byos-reveal-scrim {
|
|
position: absolute;
|
|
inset: 0;
|
|
z-index: 1;
|
|
pointer-events: none;
|
|
background:
|
|
radial-gradient(
|
|
72% 84% at 50% 48%,
|
|
rgb(5 5 5 / 0.9) 0%,
|
|
rgb(5 5 5 / 0.45) 52%,
|
|
rgb(5 5 5 / 0) 82%
|
|
),
|
|
linear-gradient(to bottom, #050505 0%, rgb(5 5 5 / 0) 18%, rgb(5 5 5 / 0) 82%, #050505 100%);
|
|
}
|
|
|
|
.home-v2-byos-reveal-ascii {
|
|
position: absolute;
|
|
inset: 0;
|
|
z-index: 2;
|
|
margin: 0;
|
|
color: color-mix(in srgb, var(--hv2-accent) 72%, white 12%);
|
|
font-family: var(--font-mono);
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
line-height: 1.38;
|
|
letter-spacing: 0.08em;
|
|
white-space: pre;
|
|
opacity: calc(0.46 * var(--byos-intensity));
|
|
mix-blend-mode: screen;
|
|
transform: translate3d(-1.5%, -1%, 0) rotate(-1deg);
|
|
mask-image:
|
|
radial-gradient(
|
|
ellipse 170px 142px at var(--byos-x) var(--byos-y),
|
|
#000 0 34%,
|
|
rgb(0 0 0 / 0.7) 52%,
|
|
transparent 80%
|
|
),
|
|
radial-gradient(
|
|
ellipse 82px 58px at calc(var(--byos-x) - 78px) calc(var(--byos-y) + 24px),
|
|
rgb(0 0 0 / 0.78) 0 42%,
|
|
transparent 76%
|
|
),
|
|
radial-gradient(
|
|
ellipse 66px 92px at calc(var(--byos-x) + 88px) calc(var(--byos-y) - 38px),
|
|
rgb(0 0 0 / 0.74) 0 38%,
|
|
transparent 78%
|
|
),
|
|
radial-gradient(
|
|
ellipse 52px 38px at calc(var(--byos-x) + 28px) calc(var(--byos-y) + 92px),
|
|
rgb(0 0 0 / 0.55) 0 34%,
|
|
transparent 72%
|
|
);
|
|
transition: opacity 180ms ease;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.home-v2-byos-reveal-image--top {
|
|
z-index: 3;
|
|
background-image: url("/footer-openclaw-easter-egg-transparent.webp");
|
|
opacity: 0.95;
|
|
}
|
|
|
|
.home-v2-byos-content {
|
|
position: relative;
|
|
z-index: 1;
|
|
display: grid;
|
|
gap: 16px;
|
|
width: 100%;
|
|
max-width: 760px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
/* The reveal band is always dark in both themes, so pin text to light. */
|
|
.home-v2-byos .home-v2-byos-title {
|
|
color: #f4f4f5;
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-lede {
|
|
color: rgb(255 255 255 / 0.62);
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-eyebrow {
|
|
color: color-mix(in srgb, var(--hv2-accent) 70%, white 30%);
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-import {
|
|
color: rgb(255 255 255 / 0.72);
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-import:hover,
|
|
.home-v2-byos .home-v2-byos-import:focus-visible {
|
|
color: #fff;
|
|
}
|
|
|
|
/* Audience switch sits on the dark band — no chrome, just a divider. */
|
|
.home-v2-byos .home-v2-byos-tabs {
|
|
gap: 0;
|
|
padding: 0;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: none;
|
|
-webkit-backdrop-filter: none;
|
|
backdrop-filter: none;
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-tab {
|
|
border-radius: 0;
|
|
background: none;
|
|
color: rgb(255 255 255 / 0.5);
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-tab + .home-v2-byos-tab {
|
|
border-left: 1px solid rgb(255 255 255 / 0.18);
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-tab:hover {
|
|
color: rgb(255 255 255 / 0.8);
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-tab[aria-selected="true"] {
|
|
background: none;
|
|
color: #fff;
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* Command card: frosted glass so the artwork drifts softly behind it. */
|
|
.home-v2-byos .home-v2-byos-term {
|
|
border-color: rgb(255 255 255 / 0.12);
|
|
background: rgb(18 18 20 / 0.55);
|
|
-webkit-backdrop-filter: blur(16px) saturate(1.1);
|
|
backdrop-filter: blur(16px) saturate(1.1);
|
|
box-shadow:
|
|
0 30px 70px -34px rgb(0 0 0 / 0.85),
|
|
inset 0 1px 0 rgb(255 255 255 / 0.05);
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-term-bar {
|
|
border-bottom-color: rgb(255 255 255 / 0.1);
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-term-label {
|
|
color: rgb(255 255 255 / 0.5);
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-term-dot {
|
|
background: rgb(255 255 255 / 0.18);
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-cmd,
|
|
.home-v2-byos .home-v2-byos-prompt-text {
|
|
color: rgb(244 244 245 / 0.94);
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-comment {
|
|
color: rgb(255 255 255 / 0.45);
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-prompt {
|
|
color: color-mix(in srgb, var(--hv2-accent) 78%, white 12%);
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-copy.skill-install-copy-button {
|
|
border-color: rgb(255 255 255 / 0.16);
|
|
background: rgb(255 255 255 / 0.06);
|
|
color: rgb(255 255 255 / 0.85);
|
|
}
|
|
|
|
.home-v2-byos .home-v2-byos-copy.skill-install-copy-button:hover:not(:disabled) {
|
|
border-color: rgb(255 255 255 / 0.3);
|
|
background: rgb(255 255 255 / 0.13);
|
|
color: #fff;
|
|
}
|
|
|
|
.home-v2-byos-head {
|
|
display: grid;
|
|
gap: 8px;
|
|
justify-items: center;
|
|
text-align: center;
|
|
}
|
|
|
|
.home-v2-byos-eyebrow {
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.12em;
|
|
text-transform: uppercase;
|
|
color: color-mix(in srgb, var(--hv2-accent) 80%, var(--hv2-text));
|
|
}
|
|
|
|
.home-v2-byos-title {
|
|
margin: 0;
|
|
font-size: clamp(24px, 2.6vw, 34px);
|
|
font-weight: 700;
|
|
letter-spacing: -0.02em;
|
|
line-height: 1.08;
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-byos-lede {
|
|
margin: 0;
|
|
max-width: 54ch;
|
|
font-size: 14px;
|
|
line-height: 1.55;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-byos-tabs {
|
|
justify-self: center;
|
|
display: inline-flex;
|
|
gap: 3px;
|
|
padding: 3px;
|
|
border: 1px solid var(--hv2-border);
|
|
border-radius: var(--r-pill);
|
|
background: color-mix(in srgb, var(--hv2-text) 4%, var(--hv2-surface));
|
|
}
|
|
|
|
.home-v2-byos-tab {
|
|
appearance: none;
|
|
border: 0;
|
|
cursor: pointer;
|
|
padding: 7px 18px;
|
|
border-radius: var(--r-pill);
|
|
background: transparent;
|
|
color: var(--hv2-text-tertiary);
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
letter-spacing: -0.01em;
|
|
transition:
|
|
background 0.15s ease,
|
|
color 0.15s ease,
|
|
box-shadow 0.15s ease;
|
|
}
|
|
|
|
.home-v2-byos-tab:hover {
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
|
|
.home-v2-byos-tab[aria-selected="true"] {
|
|
background: var(--hv2-surface);
|
|
color: var(--hv2-text);
|
|
box-shadow:
|
|
0 1px 2px color-mix(in srgb, var(--hv2-text) 14%, transparent),
|
|
inset 0 0 0 1px var(--hv2-border-strong);
|
|
}
|
|
|
|
.home-v2-byos-tab:focus-visible {
|
|
outline: 2px solid color-mix(in srgb, var(--hv2-accent) 55%, transparent);
|
|
outline-offset: 1px;
|
|
}
|
|
|
|
.home-v2-byos-panel {
|
|
display: grid;
|
|
gap: 12px;
|
|
align-content: start;
|
|
justify-items: center;
|
|
width: 100%;
|
|
max-width: 720px;
|
|
/* Reserve the taller (terminal) height so switching tabs never resizes the
|
|
section — otherwise the % background reflows and the artwork jumps. */
|
|
min-height: 184px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.home-v2-byos-caption {
|
|
margin: 0;
|
|
max-width: 52ch;
|
|
text-align: center;
|
|
font-size: 13px;
|
|
line-height: 1.5;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-byos-term {
|
|
width: 100%;
|
|
border: 1px solid var(--hv2-border);
|
|
border-radius: var(--oc-radius-surface);
|
|
background: color-mix(in srgb, var(--hv2-text) 4%, var(--hv2-surface));
|
|
overflow: hidden;
|
|
}
|
|
|
|
.home-v2-byos-term-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 9px 12px;
|
|
border-bottom: 1px solid var(--hv2-border);
|
|
}
|
|
|
|
.home-v2-byos-term-dot {
|
|
width: 9px;
|
|
height: 9px;
|
|
border-radius: 50%;
|
|
background: color-mix(in srgb, var(--hv2-text) 16%, transparent);
|
|
}
|
|
|
|
.home-v2-byos-term-label {
|
|
margin-left: 6px;
|
|
font-family: var(--font-mono);
|
|
font-size: 11px;
|
|
letter-spacing: 0.01em;
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
|
|
.home-v2-byos-term-body {
|
|
position: relative;
|
|
}
|
|
|
|
.home-v2-byos-code {
|
|
margin: 0;
|
|
padding: 14px 16px;
|
|
overflow-x: auto;
|
|
font-family: var(--font-mono);
|
|
font-size: 12.5px;
|
|
line-height: 1.7;
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
|
|
.home-v2-byos-line {
|
|
display: block;
|
|
white-space: pre;
|
|
}
|
|
|
|
.home-v2-byos-prompt {
|
|
color: color-mix(in srgb, var(--hv2-accent) 70%, var(--hv2-text-tertiary));
|
|
user-select: none;
|
|
}
|
|
|
|
.home-v2-byos-cmd {
|
|
color: var(--hv2-text);
|
|
}
|
|
|
|
.home-v2-byos-comment {
|
|
color: var(--hv2-text-tertiary);
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.home-v2-byos-copy.skill-install-copy-button {
|
|
position: absolute;
|
|
top: 8px;
|
|
right: 8px;
|
|
width: auto;
|
|
}
|
|
|
|
.home-v2-byos-prompt-spark {
|
|
color: color-mix(in srgb, var(--hv2-accent) 78%, var(--hv2-text));
|
|
}
|
|
|
|
.home-v2-byos-prompt-text {
|
|
margin: 0;
|
|
padding: 18px 56px 18px 18px;
|
|
font-size: 14.5px;
|
|
line-height: 1.6;
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
|
|
.home-v2-byos-foot {
|
|
display: flex;
|
|
justify-content: center;
|
|
}
|
|
|
|
a.home-v2-byos-import {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
color: var(--hv2-text-secondary);
|
|
text-decoration: none;
|
|
transition: color 0.15s ease;
|
|
}
|
|
|
|
a.home-v2-byos-import:hover,
|
|
a.home-v2-byos-import:focus-visible {
|
|
color: color-mix(in srgb, var(--hv2-accent) 70%, var(--hv2-text));
|
|
text-decoration: none;
|
|
outline: none;
|
|
}
|
|
|
|
.home-v2-byos-import-icon {
|
|
width: 16px;
|
|
height: 16px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
a.home-v2-byos-import svg:last-child {
|
|
transition: transform 0.15s ease;
|
|
}
|
|
|
|
a.home-v2-byos-import:hover svg:last-child,
|
|
a.home-v2-byos-import:focus-visible svg:last-child {
|
|
transform: translateX(2px);
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.home-v2-byos {
|
|
margin-top: 56px;
|
|
padding: 72px 20px 80px;
|
|
}
|
|
|
|
.home-v2-byos-title {
|
|
max-width: 18ch;
|
|
text-wrap: balance;
|
|
}
|
|
|
|
.home-v2-byos-lede {
|
|
max-width: 28ch;
|
|
text-wrap: balance;
|
|
}
|
|
}
|
|
|
|
/* ═══ RESPONSIVE ═══ */
|
|
@media (max-width: 1024px) {
|
|
.home-v2-discovery-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
.home-v2-trending-grid {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
}
|
|
@media (max-width: 900px) {
|
|
.home-v2-headline {
|
|
white-space: normal;
|
|
}
|
|
.home-v2-headline-inner {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
row-gap: 0.08em;
|
|
}
|
|
.home-v2-sep-final {
|
|
display: none;
|
|
}
|
|
.home-v2-cycle-wrap {
|
|
flex: 0 0 100%;
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
.home-v2-cycle-track {
|
|
width: 100%;
|
|
}
|
|
.home-v2-cycle-word {
|
|
width: 100%;
|
|
justify-content: center;
|
|
text-align: center;
|
|
}
|
|
}
|
|
@media (max-width: 768px) {
|
|
.home-v2-hero {
|
|
padding: 48px 20px 36px;
|
|
}
|
|
.home-v2-headline {
|
|
font-size: clamp(28px, 6vw, 38px);
|
|
}
|
|
.home-v2-categories-grid {
|
|
--home-v2-category-columns: 1;
|
|
}
|
|
.home-v2-cat-item + .home-v2-cat-item::before {
|
|
display: none;
|
|
}
|
|
.home-v2-carousel-header,
|
|
.home-v2-section-header-stack {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
}
|
|
.home-v2-trending-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
.home-v2-listing {
|
|
padding: 0 20px 64px;
|
|
}
|
|
.home-v2-listing-row,
|
|
.home-v2-listing-head {
|
|
--home-v2-listing-copy-max: min(15rem, calc(100vw - 11rem));
|
|
}
|
|
|
|
.home-v2-listing-head {
|
|
grid-template-columns: minmax(0, var(--home-v2-listing-copy-max)) 1fr auto;
|
|
gap: 12px 16px;
|
|
padding: 0 8px 8px;
|
|
}
|
|
|
|
.home-v2-listing-row {
|
|
grid-template-columns: minmax(0, var(--home-v2-listing-copy-max)) 1fr auto;
|
|
gap: 12px 16px;
|
|
padding: 10px 8px;
|
|
}
|
|
.home-v2-listing-row.has-no-stats,
|
|
.home-v2-listing-head.has-no-stats {
|
|
grid-template-columns: minmax(0, var(--home-v2-listing-copy-max)) 1fr;
|
|
}
|
|
.home-v2-listing-head-icon-spacer,
|
|
.home-v2-listing-row-icon {
|
|
display: none;
|
|
}
|
|
.home-v2-listing-head-label,
|
|
.home-v2-listing-row-body {
|
|
grid-column: 1;
|
|
}
|
|
.home-v2-listing-head-stat,
|
|
.home-v2-listing-row-stats {
|
|
grid-column: 3;
|
|
}
|
|
.home-v2-listing-row-stats {
|
|
gap: 10px;
|
|
min-width: 0;
|
|
font-size: 12px;
|
|
}
|
|
.home-v2-listing-controls {
|
|
gap: 14px;
|
|
margin-bottom: 24px;
|
|
}
|
|
.home-v2-listing-toolbar {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
min-height: 0;
|
|
gap: 14px 12px;
|
|
}
|
|
.home-v2-listing-divider {
|
|
display: none;
|
|
}
|
|
.home-v2-listing-kind {
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
justify-self: end;
|
|
}
|
|
.home-v2-listing-sort {
|
|
grid-column: 1 / -1;
|
|
grid-row: 2;
|
|
align-self: auto;
|
|
gap: 20px;
|
|
min-height: 36px;
|
|
}
|
|
.home-v2-listing-sort-tabs {
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
width: 100%;
|
|
}
|
|
.home-v2-listing-tab {
|
|
flex: 1 0 0;
|
|
justify-content: center;
|
|
min-width: max-content;
|
|
}
|
|
.home-v2-listing-tab {
|
|
align-self: stretch;
|
|
}
|
|
.home-v2-carousel-header {
|
|
padding: 0 20px;
|
|
}
|
|
.home-v2-carousel-wrap {
|
|
overflow: visible;
|
|
}
|
|
.home-v2-carousel-wrap::before,
|
|
.home-v2-carousel-wrap::after {
|
|
display: none;
|
|
}
|
|
.home-v2-carousel-track {
|
|
width: auto;
|
|
flex-direction: column;
|
|
animation: none;
|
|
padding: 12px 20px 36px;
|
|
}
|
|
.home-v2-c-card {
|
|
width: 100%;
|
|
min-width: 0;
|
|
max-width: none;
|
|
}
|
|
.home-v2-categories {
|
|
padding: 32px 20px 0;
|
|
}
|
|
.home-v2-categories-copy {
|
|
margin-bottom: 20px;
|
|
}
|
|
.home-v2-discovery-section {
|
|
padding: 36px 20px 60px;
|
|
}
|
|
.home-v2-trending-section {
|
|
padding: 36px 20px 60px;
|
|
}
|
|
.home-v2-search-go-label {
|
|
display: none;
|
|
}
|
|
.home-v2-search-go {
|
|
padding: 13px 16px;
|
|
}
|
|
}
|
|
|
|
/* ═══ HOME V2 — Full-width overrides ═══ */
|
|
.home-v2-categories-grid {
|
|
max-width: none;
|
|
}
|
|
.home-v2-section-header {
|
|
max-width: none;
|
|
}
|
|
.home-v2-trending-grid {
|
|
max-width: none;
|
|
}
|
|
.home-v2-carousel-header {
|
|
max-width: none;
|
|
}
|
|
|
|
/* ═══ HOME V2 — Layout ═══ */
|
|
|
|
/* ═══ HOME V2 — Wider search + even dot spacing ═══ */
|
|
.home-v2-search-container {
|
|
max-width: 920px;
|
|
}
|
|
.home-v2-search-bar {
|
|
padding: 8px 8px 8px 24px;
|
|
gap: 14px;
|
|
}
|
|
.home-v2-search-bar input {
|
|
font-size: 17px;
|
|
padding: 10px 0;
|
|
}
|
|
.home-v2-search-go {
|
|
padding: 14px 34px;
|
|
font-size: 15px;
|
|
}
|
|
|
|
/* Even dot spacing — use consistent gap */
|
|
.home-v2-sep {
|
|
margin: 0 16px;
|
|
}
|
|
|
|
/* ═══════════════════════════════════════════════════════════════════════
|
|
HOME V2 — Cream / Peach / Tan Refinement (light + dark)
|
|
"Tasty crème" palette with darker-outline-fading-inward pattern
|
|
═══════════════════════════════════════════════════════════════════════ */
|
|
|
|
/* --- Light-mode variable overrides --- */
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main),
|
|
[data-theme-resolved="light"] .home-v2-main {
|
|
--hv2-bg: #f9f9f9;
|
|
--hv2-surface: #ffffff;
|
|
--hv2-surface-hover: #f3f3f3;
|
|
--hv2-border: rgba(0, 0, 0, 0.08);
|
|
--hv2-border-hover: rgba(0, 0, 0, 0.14);
|
|
--hv2-border-strong: rgba(0, 0, 0, 0.12);
|
|
--hv2-text: #0a0a0a;
|
|
--hv2-text-secondary: #525252;
|
|
--hv2-text-tertiary: #737373;
|
|
--hv2-accent: #c43a2f;
|
|
--hv2-accent-fill: rgba(196, 58, 47, 0.07);
|
|
--hv2-accent-fill-hover: rgba(196, 58, 47, 0.12);
|
|
--hv2-accent-glow: rgba(196, 58, 47, 0.06);
|
|
--hv2-accent-border: rgba(196, 58, 47, 0.28);
|
|
--hv2-accent-border-hover: rgba(196, 58, 47, 0.45);
|
|
--hv2-green: #2d8a48;
|
|
--hv2-green-fill: rgba(45, 138, 72, 0.06);
|
|
--hv2-green-border: rgba(45, 138, 72, 0.22);
|
|
--hv2-green-border-hover: rgba(45, 138, 72, 0.38);
|
|
--hv2-green-fill-hover: rgba(45, 138, 72, 0.11);
|
|
}
|
|
|
|
/* --- Light-mode page background --- */
|
|
[data-theme-resolved="light"] .home-v2-main {
|
|
background: var(--hv2-bg);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) {
|
|
background: var(--hv2-bg);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .home-v2-main::before {
|
|
content: none;
|
|
}
|
|
|
|
/* --- Light-mode hero --- */
|
|
[data-theme-resolved="light"] .home-v2-hero {
|
|
background: var(--hv2-bg);
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-hero-bg {
|
|
opacity: 0;
|
|
}
|
|
|
|
/* --- INSET SHADOW PATTERN — both modes ---
|
|
Darker border on outside, warm glow fading inward */
|
|
|
|
/* Dark mode — cards get subtle warm-dark inner fade */
|
|
.home-v2-c-card,
|
|
.home-v2-trend-card {
|
|
box-shadow:
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.03),
|
|
inset 0 0 20px rgba(0, 0, 0, 0.15),
|
|
0 1px 3px rgba(0, 0, 0, 0.12);
|
|
}
|
|
.home-v2-c-card:hover,
|
|
.home-v2-trend-card:hover {
|
|
box-shadow:
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.05),
|
|
inset 0 0 24px rgba(0, 0, 0, 0.2),
|
|
0 6px 24px rgba(0, 0, 0, 0.22);
|
|
}
|
|
|
|
/* Dark mode — search bar inner fade */
|
|
.home-v2-search-bar {
|
|
box-shadow:
|
|
inset 0 0 16px rgba(0, 0, 0, 0.12),
|
|
0 1px 20px rgba(0, 0, 0, 0.15);
|
|
}
|
|
.home-v2-search-bar:focus-within {
|
|
box-shadow:
|
|
inset 0 0 20px rgba(0, 0, 0, 0.14),
|
|
0 2px 36px rgba(0, 0, 0, 0.2),
|
|
0 0 0 3px var(--hv2-accent-glow);
|
|
}
|
|
|
|
/* Dark mode — category icons, proof bar, section borders */
|
|
.home-v2-cat-icon {
|
|
box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1);
|
|
}
|
|
.home-v2-categories {
|
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
|
|
}
|
|
|
|
/* --- Light-mode inset shadow pattern --- */
|
|
[data-theme-resolved="light"] .home-v2-c-card,
|
|
[data-theme-resolved="light"] .home-v2-trend-card {
|
|
background: var(--hv2-surface);
|
|
border-color: var(--hv2-border-strong);
|
|
box-shadow:
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.9),
|
|
0 1px 3px rgba(0, 0, 0, 0.05);
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-c-card:hover,
|
|
[data-theme-resolved="light"] .home-v2-trend-card:hover {
|
|
border-color: var(--hv2-border-hover);
|
|
background: var(--hv2-surface-hover);
|
|
box-shadow:
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.95),
|
|
0 4px 14px rgba(0, 0, 0, 0.06);
|
|
}
|
|
|
|
/* Light — search bar */
|
|
[data-theme-resolved="light"] .home-v2-search-bar {
|
|
background: var(--hv2-surface);
|
|
border-color: var(--hv2-border-strong);
|
|
box-shadow:
|
|
inset 0 0 12px rgba(0, 0, 0, 0.02),
|
|
0 1px 8px rgba(0, 0, 0, 0.04);
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-search-bar:focus-within {
|
|
border-color: var(--hv2-accent-border);
|
|
box-shadow:
|
|
inset 0 0 12px rgba(0, 0, 0, 0.02),
|
|
0 2px 16px rgba(0, 0, 0, 0.05),
|
|
0 0 0 3px var(--hv2-accent-glow);
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-search-bar input {
|
|
color: var(--hv2-text);
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-search-bar input::placeholder {
|
|
color: var(--hv2-text-tertiary);
|
|
}
|
|
/* Light — search button */
|
|
[data-theme-resolved="light"] .home-v2-search-go {
|
|
background: rgba(196, 58, 47, 0.06);
|
|
border-color: rgba(196, 58, 47, 0.25);
|
|
color: #c43a2f;
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-search-go:hover {
|
|
background: rgba(196, 58, 47, 0.1);
|
|
border-color: rgba(196, 58, 47, 0.4);
|
|
box-shadow: 0 0 20px rgba(196, 58, 47, 0.06);
|
|
}
|
|
|
|
/* Light — category icons */
|
|
[data-theme-resolved="light"] .home-v2-cat-icon {
|
|
background: rgba(196, 58, 47, 0.06);
|
|
border-color: rgba(196, 58, 47, 0.2);
|
|
box-shadow: inset 0 0 10px rgba(196, 58, 47, 0.04);
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-cat-item:hover .home-v2-cat-icon {
|
|
background: rgba(196, 58, 47, 0.1);
|
|
border-color: rgba(196, 58, 47, 0.35);
|
|
box-shadow:
|
|
inset 0 0 12px rgba(196, 58, 47, 0.05),
|
|
0 0 12px rgba(196, 58, 47, 0.06);
|
|
}
|
|
|
|
/* Light — category section borders */
|
|
[data-theme-resolved="light"] .home-v2-categories {
|
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-categories-grid {
|
|
border-top-color: var(--hv2-border);
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-cat-item + .home-v2-cat-item::before {
|
|
background: var(--hv2-border);
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-cat-item:hover {
|
|
background: rgba(0, 0, 0, 0.03);
|
|
}
|
|
|
|
/* Light — install buttons (green) */
|
|
[data-theme-resolved="light"] .home-v2-c-install,
|
|
[data-theme-resolved="light"] .home-v2-trend-install {
|
|
background: rgba(45, 138, 72, 0.05);
|
|
border-color: rgba(45, 138, 72, 0.2);
|
|
color: #2d8a48;
|
|
box-shadow: inset 0 0 8px rgba(45, 138, 72, 0.03);
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-c-card:hover .home-v2-c-install,
|
|
[data-theme-resolved="light"] .home-v2-trend-card:hover .home-v2-trend-install {
|
|
background: rgba(45, 138, 72, 0.09);
|
|
border-color: rgba(45, 138, 72, 0.32);
|
|
}
|
|
|
|
/* Light — tag badges */
|
|
[data-theme-resolved="light"] .home-v2-c-tag {
|
|
background: rgba(0, 0, 0, 0.04);
|
|
border-color: var(--hv2-border);
|
|
color: var(--hv2-text-secondary);
|
|
}
|
|
|
|
/* Light — carousel section */
|
|
[data-theme-resolved="light"] .home-v2-carousel {
|
|
border-top-color: var(--hv2-border);
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-carousel-mask::before {
|
|
background: linear-gradient(90deg, var(--hv2-bg), transparent);
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-carousel-mask::after {
|
|
background: linear-gradient(270deg, var(--hv2-bg), transparent);
|
|
}
|
|
|
|
/* Light — trending section */
|
|
[data-theme-resolved="light"] .home-v2-trending-section {
|
|
background: var(--hv2-bg);
|
|
border-top: 1px solid var(--hv2-border);
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-discovery-section {
|
|
background: var(--hv2-bg);
|
|
border-top-color: var(--hv2-border);
|
|
}
|
|
|
|
/* Light — carousel nav arrows */
|
|
[data-theme-resolved="light"] .home-v2-carousel-nav button {
|
|
background: var(--hv2-surface);
|
|
border-color: var(--hv2-border-strong);
|
|
color: var(--hv2-text-secondary);
|
|
box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.02);
|
|
}
|
|
[data-theme-resolved="light"] .home-v2-carousel-nav button:hover {
|
|
background: var(--hv2-surface-hover);
|
|
border-color: var(--hv2-border-hover);
|
|
}
|
|
|
|
/* ═══ DARK MODE — Enhanced inset pattern ═══ */
|
|
/* Strengthen the darker-outline-fading-inward on dark cards too */
|
|
[data-theme-resolved="dark"] .home-v2-c-card,
|
|
[data-theme-resolved="dark"] .home-v2-trend-card {
|
|
border-color: rgba(255, 255, 255, 0.08);
|
|
box-shadow:
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
inset 0 0 28px rgba(0, 0, 0, 0.2),
|
|
0 1px 4px rgba(0, 0, 0, 0.18);
|
|
}
|
|
[data-theme-resolved="dark"] .home-v2-c-card:hover,
|
|
[data-theme-resolved="dark"] .home-v2-trend-card:hover {
|
|
border-color: rgba(255, 255, 255, 0.15);
|
|
box-shadow:
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.06),
|
|
inset 0 0 32px rgba(0, 0, 0, 0.25),
|
|
0 6px 28px rgba(0, 0, 0, 0.28);
|
|
}
|
|
|
|
/* Dark — search inset */
|
|
[data-theme-resolved="dark"] .home-v2-search-bar {
|
|
box-shadow:
|
|
inset 0 0 20px rgba(0, 0, 0, 0.18),
|
|
0 1px 20px rgba(0, 0, 0, 0.2);
|
|
}
|
|
[data-theme-resolved="dark"] .home-v2-search-bar:focus-within {
|
|
box-shadow:
|
|
inset 0 0 24px rgba(0, 0, 0, 0.22),
|
|
0 2px 36px rgba(0, 0, 0, 0.25),
|
|
0 0 0 3px var(--hv2-accent-glow);
|
|
}
|
|
|
|
/* Dark — cat icons */
|
|
[data-theme-resolved="dark"] .home-v2-cat-icon {
|
|
box-shadow: inset 0 0 12px rgba(0, 0, 0, 0.15);
|
|
}
|
|
|
|
/* Dark — install buttons */
|
|
[data-theme-resolved="dark"] .home-v2-c-install,
|
|
[data-theme-resolved="dark"] .home-v2-trend-install {
|
|
box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
/* Home surfaces inherit geometry from the canonical design system. */
|
|
.home-v2-main {
|
|
--hv2-radius-sm: var(--oc-radius-control);
|
|
--hv2-radius-md: var(--oc-radius-surface);
|
|
--hv2-radius-lg: var(--oc-radius-surface);
|
|
}
|
|
|
|
.home-v2-search-bar {
|
|
border-radius: var(--oc-radius-control);
|
|
}
|
|
.home-v2-search-go {
|
|
border-radius: var(--oc-radius-control);
|
|
}
|
|
.home-v2-c-icon {
|
|
border-radius: var(--oc-radius-inset);
|
|
}
|
|
.home-v2-c-tag {
|
|
border-radius: var(--oc-radius-control);
|
|
}
|
|
.home-v2-cat-icon {
|
|
border-radius: var(--oc-radius-inset);
|
|
}
|
|
|
|
/* Hero rings — circles, keep as-is (border-radius: 50%) */
|
|
|
|
/* Carousel nav arrows — round buttons */
|
|
.home-v2-carousel-nav button {
|
|
border-radius: var(--oc-radius-control);
|
|
}
|
|
|
|
/* ═══════════════════════════════════════════════════════════════════════
|
|
BUTTON RADIUS CONSISTENCY
|
|
Single token for all buttons: --r-btn (matches search controls, not pills)
|
|
═══════════════════════════════════════════════════════════════════════ */
|
|
|
|
:root {
|
|
--r-btn: var(--r-sm);
|
|
}
|
|
|
|
/* Core buttons */
|
|
.btn {
|
|
border-radius: var(--r-btn) !important;
|
|
}
|
|
|
|
/* Sign-in / auth buttons (often inline-flex with rounded-xl or pill) */
|
|
.sign-in-button,
|
|
.auth-button,
|
|
.auth-btn,
|
|
[class*="sign-in"],
|
|
.navbar .btn,
|
|
.nav-actions .btn {
|
|
border-radius: var(--r-btn) !important;
|
|
}
|
|
|
|
/* Skill/plugin action buttons */
|
|
.skill-hero-cta .btn,
|
|
.skill-install-button,
|
|
.install-button,
|
|
.publish-button {
|
|
border-radius: var(--r-btn) !important;
|
|
}
|
|
|
|
/* Tab-style toggle groups — align with detail control radius */
|
|
.install-switcher-toggle {
|
|
border-radius: var(--r-btn) !important;
|
|
}
|
|
.install-switcher-toggle::before,
|
|
.install-switcher-toggle button {
|
|
border-radius: calc(var(--r-btn) - 4px) !important;
|
|
}
|
|
|
|
/* Skills/plugins type tabs */
|
|
.plugins-type-tabs {
|
|
border-radius: var(--r-btn) !important;
|
|
}
|
|
.plugins-type-tabs button,
|
|
.plugins-type-tabs a {
|
|
border-radius: var(--r-btn) !important;
|
|
}
|
|
|
|
/* View toggle pills */
|
|
.skills-view {
|
|
border-radius: var(--r-btn) !important;
|
|
}
|
|
.skills-view button {
|
|
border-radius: var(--r-btn) !important;
|
|
}
|
|
|
|
/* Management action buttons */
|
|
.meta-bar-footer > .btn {
|
|
border-radius: var(--r-btn) !important;
|
|
}
|
|
|
|
/* Upload/publish area buttons */
|
|
.upload-requirement {
|
|
border-radius: var(--r-btn) !important;
|
|
}
|
|
|
|
/* Scan result badges — keep slightly rounded */
|
|
.scan-result-status {
|
|
border-radius: var(--oc-radius-control) !important;
|
|
}
|
|
|
|
/* Bundle includes badges */
|
|
.bundle-includes span {
|
|
border-radius: var(--oc-radius-inset) !important;
|
|
}
|
|
|
|
/* Home hero popular tags */
|
|
.home-hero-popular-tag {
|
|
border-radius: var(--oc-radius-control) !important;
|
|
}
|
|
|
|
/* Dropzone — was 16px */
|
|
.dropzone {
|
|
border-radius: var(--r-md) !important;
|
|
}
|
|
|
|
/* File viewer — was 16px */
|
|
.file-viewer {
|
|
border-radius: var(--r-md) !important;
|
|
}
|
|
|
|
/* Plugin upload summary — was 16px */
|
|
.plugin-upload-summary.is-ready {
|
|
border-radius: var(--r-md) !important;
|
|
}
|
|
|
|
/* Diff empty state — was 10px */
|
|
.diff-empty {
|
|
border-radius: var(--diff-panel-radius, var(--r-md)) !important;
|
|
}
|
|
|
|
/* Kill all leftover r-pill on interactive elements */
|
|
.navbar-search {
|
|
border-radius: var(--r-btn) !important;
|
|
}
|
|
|
|
/* Tailwind inline button classes — catch rounded-xl, rounded-2xl, rounded-full on buttons */
|
|
button[class*="rounded-xl"],
|
|
button[class*="rounded-2xl"],
|
|
button[class*="rounded-full"],
|
|
a[class*="rounded-xl"],
|
|
a[class*="rounded-2xl"],
|
|
a[class*="rounded-full"] {
|
|
border-radius: var(--r-btn) !important;
|
|
}
|
|
|
|
/* Home v2 install buttons — match system */
|
|
.home-v2-c-install,
|
|
.home-v2-trend-install,
|
|
.home-v2-search-go {
|
|
border-radius: var(--r-btn) !important;
|
|
}
|
|
|
|
/* Header sync from the design experiment: search, menu, and brand mark only. */
|
|
.navbar.navbar-calm {
|
|
background: var(--nav-bg);
|
|
transition:
|
|
background 0.2s ease,
|
|
backdrop-filter 0.2s ease,
|
|
-webkit-backdrop-filter 0.2s ease;
|
|
}
|
|
|
|
.navbar.navbar-calm.navbar-calm-scrolled {
|
|
background: color-mix(in srgb, var(--nav-bg) 84%, transparent);
|
|
backdrop-filter: blur(12px) saturate(1.08);
|
|
-webkit-backdrop-filter: blur(12px) saturate(1.08);
|
|
}
|
|
|
|
.navbar-calm .navbar-inner {
|
|
position: relative;
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .navbar.navbar-calm {
|
|
border-bottom: none;
|
|
background: transparent;
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .navbar.navbar-calm.navbar-calm-scrolled {
|
|
background: color-mix(in srgb, var(--nav-bg) 78%, transparent);
|
|
}
|
|
|
|
.navbar.navbar-calm.navbar-calm-scrolled:has(.navbar-search-typeahead) {
|
|
background: color-mix(in srgb, var(--nav-bg) 94%, transparent);
|
|
-webkit-backdrop-filter: none;
|
|
backdrop-filter: none;
|
|
}
|
|
|
|
.app-shell:has(.navbar-search-typeahead)::after {
|
|
content: "";
|
|
position: fixed;
|
|
z-index: 9;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
background: rgb(0 0 0 / 0.1);
|
|
animation: navbar-search-scrim-in 120ms ease-out both;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .app-shell:has(.navbar-search-typeahead)::after {
|
|
background: rgb(10 10 10 / 0.06);
|
|
}
|
|
|
|
@keyframes navbar-search-scrim-in {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.navbar-calm .navbar-top {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) minmax(240px, 360px) minmax(0, 1fr);
|
|
align-items: center;
|
|
gap: 12px 24px;
|
|
position: relative;
|
|
z-index: 70;
|
|
min-height: 52px;
|
|
padding: 12px 0;
|
|
}
|
|
|
|
.navbar-calm-start,
|
|
.navbar-calm-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
min-width: 0;
|
|
}
|
|
|
|
.navbar-calm-start {
|
|
grid-column: 1;
|
|
justify-self: start;
|
|
gap: 20px;
|
|
}
|
|
|
|
.navbar-calm-center {
|
|
grid-column: 2;
|
|
justify-self: center;
|
|
width: 100%;
|
|
max-width: 360px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.navbar-calm-center .navbar-search-wrap {
|
|
width: 100%;
|
|
}
|
|
|
|
.navbar-calm-actions {
|
|
grid-column: 3;
|
|
justify-self: end;
|
|
justify-content: flex-end;
|
|
gap: 10px;
|
|
}
|
|
|
|
.navbar-calm .brand {
|
|
flex-shrink: 0;
|
|
gap: 8px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.navbar-calm .brand:hover,
|
|
.navbar-calm .brand:focus-visible {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.navbar-calm .brand-mark {
|
|
width: 28px;
|
|
height: 28px;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.navbar-calm .brand-mark-image,
|
|
.navbar-calm .mobile-nav-brand-mark-image {
|
|
object-fit: contain;
|
|
}
|
|
|
|
.navbar-calm .nav-mobile-trigger:hover {
|
|
transform: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.navbar-calm .navbar-search {
|
|
height: 34px;
|
|
gap: 8px;
|
|
padding: 0 10px 0 12px;
|
|
border-color: color-mix(in srgb, var(--ink) 8%, transparent);
|
|
background: color-mix(in srgb, var(--surface) 65%, transparent);
|
|
}
|
|
|
|
.navbar-calm .navbar-search:focus-within {
|
|
border-color: color-mix(in srgb, var(--ink) 16%, transparent);
|
|
background: color-mix(in srgb, var(--surface) 88%, transparent);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.navbar-calm .navbar-search-icon {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.navbar-calm .navbar-search:focus-within .navbar-search-icon {
|
|
color: var(--ink-soft);
|
|
opacity: 0.72;
|
|
}
|
|
|
|
.navbar-calm .navbar-search-input,
|
|
.navbar-calm .navbar-search-input::placeholder {
|
|
font-size: 0.8125rem;
|
|
}
|
|
|
|
.navbar-calm .navbar-search-input::placeholder {
|
|
opacity: 0.55;
|
|
}
|
|
|
|
.navbar-search-kbd {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-shrink: 0;
|
|
gap: 3px;
|
|
min-height: 22px;
|
|
padding: 2px 7px;
|
|
border: 1px solid color-mix(in srgb, var(--ink) 12%, transparent);
|
|
border-radius: 6px;
|
|
background: color-mix(in srgb, var(--ink) 5%, transparent);
|
|
color: var(--ink-soft);
|
|
font-size: 0.6875rem;
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
opacity: 0.72;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.navbar-search-kbd-icon {
|
|
flex-shrink: 0;
|
|
width: 1em;
|
|
height: 1em;
|
|
stroke-width: 2.25;
|
|
}
|
|
|
|
.navbar-search-kbd-key,
|
|
.navbar-search-kbd-plus {
|
|
font-family: var(--font-mono), ui-monospace, monospace;
|
|
line-height: 1;
|
|
}
|
|
|
|
.navbar-search-kbd-key {
|
|
letter-spacing: 0.02em;
|
|
}
|
|
|
|
.navbar-search-kbd-plus {
|
|
font-size: 0.625rem;
|
|
opacity: 0.72;
|
|
}
|
|
|
|
.navbar-search:focus-within .navbar-search-kbd,
|
|
.navbar-search:has(.navbar-search-input:not(:placeholder-shown)) .navbar-search-kbd {
|
|
display: none;
|
|
}
|
|
|
|
.navbar-calm .navbar-calm-rail {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: nowrap;
|
|
gap: 16px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.navbar-calm-rail-link {
|
|
position: relative;
|
|
color: color-mix(in srgb, var(--ink-soft) 94%, transparent);
|
|
font-size: 0.875rem;
|
|
font-weight: 450;
|
|
line-height: 1;
|
|
text-decoration: none;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.navbar-calm-rail-link:hover {
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.navbar-calm-rail-link[data-status="active"] {
|
|
color: var(--ink);
|
|
font-weight: 560;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.navbar-calm-rail-link-secondary {
|
|
opacity: 0.88;
|
|
}
|
|
|
|
.navbar-calm-more-trigger {
|
|
appearance: none;
|
|
display: none;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 32px;
|
|
height: 32px;
|
|
padding: 0;
|
|
border: 0;
|
|
background: transparent;
|
|
color: color-mix(in srgb, var(--ink-soft) 94%, transparent);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.navbar-calm-more-trigger:hover,
|
|
.navbar-calm-more-trigger:focus-visible {
|
|
color: color-mix(in srgb, var(--ink) 82%, transparent);
|
|
}
|
|
|
|
.navbar-calm-more-trigger svg {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.navbar-calm-more-menu {
|
|
min-width: 112px !important;
|
|
width: 112px;
|
|
border-radius: var(--r-md);
|
|
padding: 4px;
|
|
}
|
|
|
|
.navbar-calm-more-link {
|
|
width: 100%;
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.navbar-calm-more-link:hover {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.navbar-calm .nav-actions {
|
|
flex-shrink: 0;
|
|
gap: 10px;
|
|
margin-left: 0;
|
|
}
|
|
|
|
.navbar-calm .github-sign-in-button {
|
|
border-radius: var(--r-pill) !important;
|
|
border-color: color-mix(in srgb, var(--ink) 10%, transparent) !important;
|
|
background: color-mix(in srgb, var(--ink) 8%, var(--surface-muted)) !important;
|
|
font-weight: 500 !important;
|
|
}
|
|
|
|
.navbar-calm .github-sign-in-button:hover:not(:disabled) {
|
|
border-color: color-mix(in srgb, var(--ink) 16%, transparent) !important;
|
|
background: color-mix(in srgb, var(--ink) 12%, var(--surface-muted)) !important;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .navbar-calm .navbar-search {
|
|
border-color: rgba(10, 10, 10, 0.14);
|
|
background: rgba(255, 255, 255, 0.82);
|
|
box-shadow:
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.92),
|
|
0 1px 2px rgba(10, 10, 10, 0.04);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .navbar-calm .navbar-search:focus-within {
|
|
border-color: rgba(10, 10, 10, 0.22);
|
|
background: rgba(255, 255, 255, 0.94);
|
|
box-shadow:
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.96),
|
|
0 0 0 3px rgba(10, 10, 10, 0.04);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .navbar-calm .navbar-search-icon {
|
|
color: #6b6b6b;
|
|
opacity: 0.92;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .navbar-calm .navbar-search-input::placeholder {
|
|
color: #6f6f6f;
|
|
opacity: 1;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .navbar-search-kbd {
|
|
border-color: rgba(10, 10, 10, 0.14);
|
|
background: rgba(250, 250, 250, 0.92);
|
|
color: #606060;
|
|
opacity: 1;
|
|
box-shadow:
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.9),
|
|
0 1px 1px rgba(10, 10, 10, 0.04);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .navbar-calm .github-sign-in-button {
|
|
border-color: var(--border-ui) !important;
|
|
background: var(--surface) !important;
|
|
color: #171717 !important;
|
|
box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06) !important;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .navbar-calm .github-sign-in-button:hover:not(:disabled) {
|
|
border-color: var(--border-ui-hover) !important;
|
|
background: var(--surface-muted) !important;
|
|
}
|
|
|
|
.navbar-search-typeahead {
|
|
top: calc(100% + 10px);
|
|
right: auto;
|
|
left: 50%;
|
|
width: min(520px, calc(100vw - 32px));
|
|
max-height: min(680px, calc(100vh - 112px));
|
|
transform: translateX(-50%);
|
|
border-radius: 12px;
|
|
background: color-mix(in srgb, var(--surface) 88%, transparent);
|
|
box-shadow: var(--shadow-dialog);
|
|
-webkit-backdrop-filter: blur(18px) saturate(1.08);
|
|
backdrop-filter: blur(18px) saturate(1.08);
|
|
}
|
|
|
|
.navbar-search-typeahead-panel {
|
|
min-height: 0;
|
|
}
|
|
|
|
.navbar-search-typeahead-results {
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow-y: auto;
|
|
max-height: min(680px, calc(100vh - 112px));
|
|
scrollbar-width: thin;
|
|
}
|
|
|
|
.navbar-search-typeahead-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
padding: 6px;
|
|
}
|
|
|
|
.navbar-search-typeahead-section + .navbar-search-typeahead-section {
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.navbar-search-typeahead-heading {
|
|
margin: -6px -6px 4px;
|
|
padding: 9px 12px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
|
|
background: color-mix(in srgb, var(--ink) 5%, transparent);
|
|
color: var(--ink);
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.01em;
|
|
}
|
|
|
|
.navbar-search-typeahead-row {
|
|
min-height: 42px;
|
|
padding: 6px 8px;
|
|
border-top: none;
|
|
border-radius: 8px;
|
|
transition: background 0.12s ease;
|
|
}
|
|
|
|
.navbar-search-typeahead-row:hover,
|
|
.navbar-search-typeahead-row.is-active {
|
|
background: color-mix(in srgb, var(--ink) 8%, transparent);
|
|
}
|
|
|
|
.navbar-search-typeahead-row.is-footer {
|
|
width: calc(100% + 12px);
|
|
min-height: 44px;
|
|
margin: 4px -6px -6px;
|
|
padding: 10px 12px;
|
|
border-top: 1px solid var(--line);
|
|
border-radius: 0;
|
|
font-size: var(--fs-sm);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.navbar-search-typeahead-row.is-footer:hover,
|
|
.navbar-search-typeahead-row.is-footer.is-active {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.navbar-search-typeahead-icon {
|
|
width: 28px;
|
|
height: 28px;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
color: inherit;
|
|
}
|
|
|
|
.navbar-search-typeahead-icon .marketplace-icon {
|
|
width: 28px;
|
|
height: 28px;
|
|
border: 1px solid color-mix(in srgb, var(--ink) 9%, transparent) !important;
|
|
border-radius: var(--oc-radius-inset);
|
|
background: color-mix(in srgb, var(--ink) 5%, transparent) !important;
|
|
color: var(--ink-soft);
|
|
box-shadow: none;
|
|
pointer-events: none;
|
|
transform: none;
|
|
transition: none;
|
|
--marketplace-icon-wash: transparent;
|
|
--marketplace-icon-accent: var(--ink-soft);
|
|
}
|
|
|
|
.navbar-search-typeahead-icon .marketplace-icon-glyph,
|
|
.navbar-search-typeahead-icon .marketplace-icon-image {
|
|
filter: grayscale(1);
|
|
opacity: 0.82;
|
|
}
|
|
|
|
.navbar-search-typeahead-icon .marketplace-icon-user {
|
|
border-radius: var(--oc-radius-round);
|
|
}
|
|
|
|
.navbar-search-typeahead-icon .marketplace-icon-org {
|
|
border-radius: var(--oc-radius-inset);
|
|
}
|
|
|
|
.navbar-search-typeahead-icon .marketplace-icon-org .marketplace-icon-glyph,
|
|
.navbar-search-typeahead-icon .marketplace-icon-org .marketplace-icon-image {
|
|
filter: grayscale(1);
|
|
opacity: 0.82;
|
|
}
|
|
|
|
.navbar-search-typeahead-icon .marketplace-icon-user .marketplace-icon-image {
|
|
filter: none;
|
|
opacity: 1;
|
|
}
|
|
|
|
.navbar-search-typeahead-icon .marketplace-icon-user:has(.marketplace-icon-image) {
|
|
background: transparent !important;
|
|
border: none !important;
|
|
}
|
|
|
|
.navbar-search-typeahead-icon .marketplace-icon-glyph {
|
|
width: 15px;
|
|
height: 15px;
|
|
}
|
|
|
|
.navbar-search-typeahead-icon .marketplace-icon:hover {
|
|
transform: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.navbar-search-typeahead-copy {
|
|
gap: 2px;
|
|
}
|
|
|
|
.navbar-search-typeahead-title {
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.navbar-search-typeahead-meta {
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.navbar-search-typeahead-status {
|
|
padding: 12px 14px 14px;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.navbar-search-typeahead-status.is-empty,
|
|
.navbar-search-typeahead-status.is-loading {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 14px;
|
|
}
|
|
|
|
.navbar-search-typeahead-status-spinner {
|
|
animation: navbar-search-typeahead-spin 0.75s linear infinite;
|
|
}
|
|
|
|
@keyframes navbar-search-typeahead-spin {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
.navbar-search-typeahead-status-icon {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex: 0 0 auto;
|
|
width: 32px;
|
|
height: 32px;
|
|
border: 1px solid color-mix(in srgb, var(--ink) 9%, transparent);
|
|
border-radius: 9px;
|
|
background: color-mix(in srgb, var(--ink) 5%, transparent);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.clawhub-segmented {
|
|
--clawhub-segmented-seg-h: 30px;
|
|
--clawhub-segmented-h: calc(var(--clawhub-segmented-seg-h) + 8px);
|
|
--clawhub-segmented-border: color-mix(in srgb, var(--line) 58%, transparent);
|
|
--clawhub-segmented-bg: color-mix(in srgb, var(--surface) 95%, transparent);
|
|
--clawhub-segmented-fg: var(--ink-soft);
|
|
--clawhub-segmented-fg-hover: var(--ink);
|
|
--clawhub-segmented-fg-active: var(--ink);
|
|
--clawhub-segmented-active-bg: color-mix(in srgb, var(--ink) 10%, transparent);
|
|
display: inline-flex;
|
|
align-items: center;
|
|
flex-shrink: 0;
|
|
gap: 2px;
|
|
box-sizing: border-box;
|
|
height: var(--clawhub-segmented-h);
|
|
padding: 3px;
|
|
border: 1px solid var(--clawhub-segmented-border);
|
|
border-radius: var(--oc-radius-control);
|
|
background: var(--clawhub-segmented-bg);
|
|
}
|
|
|
|
.clawhub-segmented-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 6px;
|
|
height: var(--clawhub-segmented-seg-h);
|
|
padding: 0 12px;
|
|
border: none;
|
|
border-radius: var(--oc-radius-inset);
|
|
background: transparent;
|
|
color: var(--clawhub-segmented-fg);
|
|
font-size: 14px;
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
cursor: pointer;
|
|
transition:
|
|
color 0.15s ease,
|
|
background 0.15s ease;
|
|
}
|
|
|
|
.clawhub-segmented-label,
|
|
.clawhub-segmented-count {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
line-height: 1;
|
|
}
|
|
|
|
.clawhub-segmented-count {
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
font-variant-numeric: tabular-nums;
|
|
color: color-mix(in srgb, currentColor 62%, transparent);
|
|
}
|
|
|
|
.clawhub-segmented-btn.is-active .clawhub-segmented-count {
|
|
color: color-mix(in srgb, currentColor 76%, transparent);
|
|
}
|
|
|
|
.clawhub-segmented-btn:hover,
|
|
.clawhub-segmented-btn:focus-visible {
|
|
color: var(--clawhub-segmented-fg-hover);
|
|
}
|
|
|
|
.clawhub-segmented-btn.is-active {
|
|
background: var(--clawhub-segmented-active-bg);
|
|
color: var(--clawhub-segmented-fg-active);
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .clawhub-segmented {
|
|
--clawhub-segmented-border: color-mix(in srgb, var(--hv2-border) 72%, transparent);
|
|
--clawhub-segmented-bg: color-mix(in srgb, var(--hv2-surface) 95%, transparent);
|
|
--clawhub-segmented-fg: var(--hv2-text-tertiary);
|
|
--clawhub-segmented-fg-hover: var(--hv2-text-secondary);
|
|
--clawhub-segmented-fg-active: var(--hv2-text);
|
|
--clawhub-segmented-active-bg: color-mix(in srgb, var(--hv2-text) 10%, transparent);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .publisher-profile-tab-bar .clawhub-segmented {
|
|
--clawhub-segmented-active-bg: var(--hover-bg);
|
|
}
|
|
|
|
/* Icon-only segmented buttons — override text-tab padding from block above */
|
|
.clawhub-segmented-btn.home-v2-listing-view-btn,
|
|
.clawhub-segmented-btn.browse-view-btn {
|
|
width: var(--clawhub-segmented-seg-h);
|
|
min-width: var(--clawhub-segmented-seg-h);
|
|
padding: 0;
|
|
}
|
|
|
|
.clawhub-segmented-btn.home-v2-listing-view-btn svg,
|
|
.clawhub-segmented-btn.browse-view-btn svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) main.home-v2-main {
|
|
margin-top: -64px;
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .home-v2-hero {
|
|
overflow: visible;
|
|
min-height: 388px;
|
|
justify-content: center;
|
|
padding-top: calc(64px + 64px);
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .home-v2-hero-bg {
|
|
top: -112px;
|
|
right: auto;
|
|
bottom: -120px;
|
|
left: 50%;
|
|
width: 100vw;
|
|
max-width: none;
|
|
/* This rule centers with transform; neutralize the legacy -50vw margin above. */
|
|
margin-left: 0;
|
|
transform: translateX(-50%);
|
|
-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 40%, transparent 100%);
|
|
mask-image: linear-gradient(to bottom, #000 0%, #000 40%, transparent 100%);
|
|
}
|
|
|
|
@media (max-width: 1100px) {
|
|
.navbar-calm-rail-link-secondary {
|
|
display: none;
|
|
}
|
|
|
|
.navbar-calm-more-trigger {
|
|
display: inline-flex;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 920px) {
|
|
.navbar-calm .navbar-calm-rail {
|
|
display: none;
|
|
}
|
|
|
|
.navbar-calm-center .navbar-search-wrap {
|
|
position: static;
|
|
}
|
|
|
|
.navbar-calm-center .navbar-search-typeahead {
|
|
top: calc(100% + 4px);
|
|
right: 0;
|
|
left: 0;
|
|
width: auto;
|
|
max-width: none;
|
|
transform: none;
|
|
}
|
|
|
|
.navbar-calm .navbar-top {
|
|
grid-template-columns: auto minmax(180px, 360px) auto;
|
|
}
|
|
|
|
.navbar-calm .nav-mobile {
|
|
display: inline-flex;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.navbar-calm .nav-mobile-trigger {
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: var(--r-md);
|
|
}
|
|
|
|
.navbar-calm .nav-mobile-trigger::after {
|
|
border-radius: var(--r-md);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
:root {
|
|
--site-header-height: calc(40px + 16px);
|
|
}
|
|
|
|
.navbar-calm .navbar-inner {
|
|
padding: 0;
|
|
}
|
|
|
|
.navbar-calm .navbar-top {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 8px;
|
|
min-height: 0;
|
|
padding: 8px 10px;
|
|
}
|
|
|
|
.navbar-calm-start {
|
|
grid-column: 1;
|
|
gap: 10px;
|
|
}
|
|
|
|
.navbar-calm-center {
|
|
display: none;
|
|
}
|
|
|
|
.navbar-calm-actions {
|
|
grid-column: 2;
|
|
gap: 8px;
|
|
}
|
|
|
|
.navbar-calm-actions > .navbar-theme-switcher,
|
|
.navbar-calm-actions > .navbar-theme-switcher-skeleton {
|
|
display: none;
|
|
}
|
|
|
|
.navbar-search-kbd {
|
|
display: none;
|
|
}
|
|
|
|
.navbar-calm .brand {
|
|
display: inline-flex;
|
|
flex: 1 1 auto;
|
|
min-width: 0;
|
|
gap: 7px;
|
|
font-size: 0.9375rem;
|
|
line-height: 1;
|
|
}
|
|
|
|
.navbar-calm .brand-name {
|
|
min-width: 0;
|
|
}
|
|
|
|
.navbar-calm .brand-mark {
|
|
width: 24px;
|
|
height: 24px;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.navbar-calm .brand-mark-image {
|
|
display: block;
|
|
}
|
|
|
|
.navbar-calm .navbar-search-mobile-trigger {
|
|
display: inline-flex;
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: var(--r-md);
|
|
}
|
|
|
|
.navbar-calm .navbar-search-mobile-wrap {
|
|
display: block;
|
|
position: absolute;
|
|
top: calc(100% + 4px);
|
|
right: var(--space-5);
|
|
left: var(--space-5);
|
|
z-index: 80;
|
|
margin: 0;
|
|
}
|
|
|
|
.navbar-calm .navbar-search-mobile-overlay {
|
|
all: unset;
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 50;
|
|
display: block;
|
|
background: rgba(0, 0, 0, 0.48);
|
|
cursor: default;
|
|
}
|
|
|
|
.navbar-calm .navbar-search-mobile {
|
|
display: flex;
|
|
height: 40px;
|
|
margin: 0;
|
|
border-radius: var(--r-md);
|
|
}
|
|
|
|
.navbar-calm .navbar-search-mobile-wrap .navbar-search-input,
|
|
.navbar-calm .navbar-search-mobile-wrap .navbar-search-input::placeholder {
|
|
font-size: 16px;
|
|
}
|
|
|
|
.navbar-search-mobile-wrap .navbar-search-typeahead {
|
|
right: 0;
|
|
left: 0;
|
|
width: auto;
|
|
transform: none;
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) main.home-v2-main {
|
|
margin-top: -56px;
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .home-v2-hero {
|
|
padding-top: calc(56px + 48px);
|
|
}
|
|
|
|
.app-shell:has(.home-v2-main) .home-v2-hero-bg {
|
|
top: -96px;
|
|
}
|
|
}
|
|
|
|
/* Mobile browse and navigation alignment with the homepage catalog. */
|
|
@media (max-width: 760px) {
|
|
.mobile-nav-section {
|
|
gap: 2px;
|
|
}
|
|
|
|
.mobile-nav-link {
|
|
min-height: 48px;
|
|
padding: 7px 0;
|
|
border-color: transparent;
|
|
background: transparent;
|
|
color: color-mix(in srgb, var(--ink) 90%, transparent);
|
|
font-size: 26px;
|
|
font-weight: 700;
|
|
line-height: 1.15;
|
|
}
|
|
|
|
.mobile-nav-link:hover,
|
|
.mobile-nav-link:focus-visible {
|
|
border-color: transparent;
|
|
background: transparent;
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.mobile-nav-link-external {
|
|
flex: 0 0 auto;
|
|
margin-left: 8px;
|
|
color: color-mix(in srgb, var(--ink-soft) 72%, transparent);
|
|
}
|
|
|
|
.mobile-nav-appearance-section {
|
|
width: 100%;
|
|
justify-items: stretch;
|
|
}
|
|
|
|
.mobile-nav-appearance-section .mobile-nav-section-title {
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.mobile-nav-appearance-section .navbar-theme-switcher {
|
|
--navbar-theme-seg: auto;
|
|
width: 100%;
|
|
min-height: 46px;
|
|
max-width: none;
|
|
padding: 4px;
|
|
}
|
|
|
|
.mobile-nav-appearance-section .navbar-theme-switcher-btn,
|
|
.mobile-nav-appearance-section .navbar-theme-switcher-btn:not(.is-active) {
|
|
width: auto;
|
|
min-height: 36px;
|
|
max-width: none;
|
|
flex: 1 1 0;
|
|
}
|
|
|
|
.home-v2-listing-search-input,
|
|
.home-v2-listing-search-input::placeholder {
|
|
font-size: 16px;
|
|
}
|
|
|
|
.browse-category-trigger {
|
|
min-height: 42px;
|
|
padding: 0 12px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--oc-radius-control);
|
|
background: color-mix(in srgb, var(--surface) 76%, transparent);
|
|
}
|
|
|
|
.browse-category-trigger:hover,
|
|
.browse-category-trigger[aria-expanded="true"] {
|
|
background: color-mix(in srgb, var(--surface) 76%, transparent);
|
|
}
|
|
|
|
.browse-sort-select {
|
|
display: none;
|
|
}
|
|
|
|
.browse-tabs {
|
|
order: 3;
|
|
gap: 8px;
|
|
}
|
|
|
|
.browse-tab {
|
|
min-width: 0;
|
|
}
|
|
|
|
.skills-browse-page .browse-tabs {
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.skills-browse-page .browse-tab {
|
|
flex: 0 0 auto;
|
|
min-width: max-content;
|
|
padding: 0 2px;
|
|
}
|
|
|
|
.publishers-browse-page .browse-tabs {
|
|
justify-content: stretch;
|
|
gap: 10px;
|
|
}
|
|
|
|
.publishers-browse-page .browse-tab {
|
|
flex: 1 1 0;
|
|
}
|
|
|
|
.publishers-browse-page .browse-tab:nth-child(1),
|
|
.publishers-browse-page .browse-tab:nth-child(2) {
|
|
flex-grow: 0.75;
|
|
}
|
|
|
|
.publishers-browse-page .browse-tab:nth-child(3) {
|
|
flex-grow: 1.2;
|
|
}
|
|
|
|
.publishers-browse-page .browse-tab:nth-child(4) {
|
|
flex-grow: 0.75;
|
|
}
|
|
|
|
.browse-category-select {
|
|
order: 1;
|
|
flex: 1 1 auto;
|
|
width: auto;
|
|
max-width: none;
|
|
}
|
|
|
|
.browse-search-trigger {
|
|
display: inline-flex;
|
|
order: 2;
|
|
width: 42px;
|
|
height: 42px;
|
|
flex: 0 0 42px;
|
|
margin-left: auto;
|
|
border: 0;
|
|
background: transparent;
|
|
}
|
|
|
|
.browse-search-trigger:hover,
|
|
.browse-search-trigger:focus-visible,
|
|
.browse-search-trigger.is-active {
|
|
background: transparent;
|
|
}
|
|
|
|
.browse-search-panel.is-open {
|
|
order: 3;
|
|
flex: 1 1 100%;
|
|
width: 100%;
|
|
}
|
|
|
|
.browse-search-panel.is-open .browse-search-control {
|
|
min-height: 40px;
|
|
padding: 4px 6px 4px 14px;
|
|
border-radius: var(--oc-radius-control);
|
|
}
|
|
|
|
.publishers-browse-page .browse-search-trigger,
|
|
.publishers-browse-page .browse-search-panel {
|
|
display: none;
|
|
}
|
|
|
|
.browse-page .browse-list-head-publishers {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 12px;
|
|
padding: 0 8px 8px;
|
|
}
|
|
|
|
.browse-page .browse-list-head-publishers .browse-list-head-label:first-child {
|
|
grid-column: 1;
|
|
}
|
|
|
|
.browse-page .browse-list-head-publishers .browse-list-head-stat {
|
|
display: block;
|
|
grid-column: 2;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: 12px 8px;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-main {
|
|
grid-template-columns: auto minmax(0, 1fr);
|
|
gap: 10px;
|
|
}
|
|
|
|
.browse-page
|
|
.publisher-directory-list
|
|
.publisher-card-list
|
|
.publisher-card-main
|
|
> .marketplace-icon {
|
|
display: grid;
|
|
width: 36px;
|
|
height: 36px;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-copy {
|
|
gap: 0;
|
|
min-width: 0;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-identity {
|
|
min-width: 0;
|
|
gap: 1px;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-title-row {
|
|
min-width: 0;
|
|
gap: 5px;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-name {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-summary {
|
|
display: none;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-stats {
|
|
display: flex;
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
align-self: center;
|
|
justify-self: end;
|
|
width: auto;
|
|
padding: 0;
|
|
border: 0;
|
|
}
|
|
|
|
.browse-page
|
|
.publisher-directory-list
|
|
.publisher-card-list
|
|
.publisher-card-stat:not(.is-primary) {
|
|
display: none;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-stat.is-primary {
|
|
gap: 5px;
|
|
color: var(--ink-soft);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-stat.is-primary svg,
|
|
.browse-page
|
|
.publisher-directory-list
|
|
.publisher-card-list
|
|
.publisher-card-stat.is-primary
|
|
strong {
|
|
color: var(--ink-muted);
|
|
}
|
|
}
|
|
.dashboard-route .dashboard-header,
|
|
.dashboard-route .dashboard-page-header {
|
|
align-items: flex-start;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.dashboard-route .dashboard-page-header-main {
|
|
gap: 16px;
|
|
}
|
|
|
|
.dashboard-header-top {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
|
|
.dashboard-header-publisher-center {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 50%;
|
|
z-index: 1;
|
|
transform: translateX(-50%);
|
|
}
|
|
|
|
.dashboard-header-intro {
|
|
display: grid;
|
|
gap: 0;
|
|
min-width: 0;
|
|
}
|
|
|
|
.browse-page.dashboard-route .browse-title {
|
|
font-size: clamp(2rem, 4vw, 2.55rem);
|
|
line-height: 1;
|
|
letter-spacing: -0.04em;
|
|
}
|
|
|
|
.browse-page.dashboard-route .dashboard-header-actions [data-slot="button"] {
|
|
min-height: 40px;
|
|
padding-inline: 14px;
|
|
}
|
|
|
|
.dashboard-section-head {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
margin-bottom: 10px;
|
|
padding: 0 4px;
|
|
}
|
|
|
|
.dashboard-section-head-main {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.dashboard-section-title {
|
|
margin: 0;
|
|
font-size: var(--fs-md);
|
|
font-weight: 700;
|
|
letter-spacing: -0.01em;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.dashboard-section-count {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-width: 22px;
|
|
height: 22px;
|
|
padding: 0 7px;
|
|
border-radius: 999px;
|
|
background: color-mix(in srgb, var(--ink) 8%, transparent);
|
|
color: var(--ink-soft);
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
}
|
|
|
|
.dashboard-inventory-section {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.dashboard-inventory-body {
|
|
min-width: 0;
|
|
}
|
|
|
|
.dashboard-header-publisher {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.dashboard-header-avatar {
|
|
display: inline-flex;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.dashboard-header-avatar .marketplace-icon,
|
|
.dashboard-header-avatar .marketplace-icon:hover {
|
|
transform: none;
|
|
box-shadow: none;
|
|
pointer-events: none;
|
|
transition: none;
|
|
}
|
|
|
|
.dashboard-header-publisher-trigger {
|
|
width: auto;
|
|
min-width: 0;
|
|
max-width: none;
|
|
min-height: 0;
|
|
height: auto;
|
|
padding: 0 4px 0 0;
|
|
border: 0;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
gap: 4px;
|
|
font-size: inherit;
|
|
line-height: inherit;
|
|
}
|
|
|
|
.dashboard-header-publisher-trigger:hover:not(:disabled) {
|
|
background: color-mix(in srgb, var(--ink) 6%, transparent);
|
|
}
|
|
|
|
.dashboard-header-publisher-trigger:focus-visible {
|
|
border: 0;
|
|
background: color-mix(in srgb, var(--ink) 6%, transparent);
|
|
box-shadow: 0 0 0 2px var(--input-focus-ring);
|
|
}
|
|
|
|
.dashboard-header-publisher-label {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.dashboard-header-publisher-trigger svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
opacity: 0.55;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.dashboard-header-meta {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 6px;
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.dashboard-header-name {
|
|
color: var(--ink);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.dashboard-header-meta-sep {
|
|
opacity: 0.45;
|
|
}
|
|
|
|
.dashboard-header-role {
|
|
color: var(--ink-muted);
|
|
text-transform: capitalize;
|
|
}
|
|
|
|
.dashboard-header-summary {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 6px;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.dashboard-header-summary > span[aria-hidden] {
|
|
opacity: 0.4;
|
|
}
|
|
|
|
.dashboard-header-handle {
|
|
color: var(--ink-muted);
|
|
font-weight: 500;
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.dashboard-header-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
justify-content: flex-end;
|
|
align-items: center;
|
|
}
|
|
|
|
/* Toolbar: tabs + search */
|
|
.dashboard-toolbar {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
margin-bottom: 14px;
|
|
}
|
|
|
|
.dashboard-tabs {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 2px;
|
|
padding: 3px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
background: var(--surface-muted);
|
|
}
|
|
|
|
.dashboard-tab {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
border: 0;
|
|
border-radius: calc(var(--r-md) - 4px);
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
font-size: var(--fs-sm);
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
padding: 8px 12px;
|
|
transition:
|
|
background 0.15s ease,
|
|
color 0.15s ease;
|
|
}
|
|
|
|
.dashboard-tab:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.dashboard-tab.is-active {
|
|
background: var(--surface);
|
|
color: var(--ink);
|
|
box-shadow: 0 1px 2px rgb(0 0 0 / 0.12);
|
|
}
|
|
|
|
.dashboard-tab-count {
|
|
min-width: 20px;
|
|
padding: 1px 6px;
|
|
border-radius: 999px;
|
|
background: color-mix(in srgb, var(--ink) 8%, transparent);
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
text-align: center;
|
|
}
|
|
|
|
.dashboard-tab.is-active .dashboard-tab-count {
|
|
background: color-mix(in srgb, var(--accent) 20%, transparent);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.dashboard-toolbar-controls {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 8px;
|
|
margin-left: auto;
|
|
}
|
|
|
|
.dashboard-inventory-section .browse-tab {
|
|
min-height: 36px;
|
|
padding-inline: 12px;
|
|
}
|
|
|
|
.dashboard-inventory-section .clawhub-segmented {
|
|
--clawhub-segmented-seg-h: 30px;
|
|
padding: 3px;
|
|
border-radius: 9px;
|
|
}
|
|
|
|
.dashboard-inventory-section .clawhub-segmented-btn {
|
|
min-width: 48px;
|
|
padding-inline: 9px;
|
|
border-radius: 7px;
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.dashboard-inventory-section .browse-search-trigger {
|
|
width: 40px;
|
|
height: 40px;
|
|
flex-basis: 40px;
|
|
}
|
|
|
|
.dashboard-inventory-section .browse-view-toggle {
|
|
--clawhub-segmented-seg-h: 30px;
|
|
}
|
|
|
|
.dashboard-inventory-section .browse-view-toggle .clawhub-segmented-btn {
|
|
min-width: 32px;
|
|
padding-inline: 7px;
|
|
}
|
|
|
|
.dashboard-search {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
flex: 1 1 200px;
|
|
min-width: 0;
|
|
max-width: 300px;
|
|
}
|
|
|
|
.dashboard-search svg {
|
|
position: absolute;
|
|
left: 12px;
|
|
width: 16px;
|
|
height: 16px;
|
|
color: var(--ink-soft);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.dashboard-search input {
|
|
min-height: 40px;
|
|
}
|
|
|
|
.dashboard-sort-select {
|
|
min-height: 40px;
|
|
padding: 0 32px 0 12px;
|
|
border: 1px solid var(--input-border);
|
|
border-radius: var(--r-md);
|
|
background: var(--input-bg);
|
|
color: var(--ink);
|
|
font-size: var(--fs-sm);
|
|
font-weight: 500;
|
|
cursor: pointer;
|
|
appearance: none;
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
|
|
background-repeat: no-repeat;
|
|
background-position: right 10px center;
|
|
}
|
|
|
|
.dashboard-sort-select:focus {
|
|
outline: none;
|
|
border-color: var(--input-focus-border);
|
|
box-shadow: 0 0 0 3px var(--input-focus-ring);
|
|
}
|
|
|
|
.dashboard-view-toggle {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
padding: 3px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
background: var(--surface-muted);
|
|
}
|
|
|
|
.dashboard-view-btn {
|
|
border: 0;
|
|
border-radius: calc(var(--r-md) - 4px);
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
font-size: var(--fs-sm);
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
padding: 7px 12px;
|
|
transition:
|
|
background 0.15s ease,
|
|
color 0.15s ease;
|
|
}
|
|
|
|
.dashboard-view-btn:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.dashboard-view-btn.is-active {
|
|
background: var(--surface);
|
|
color: var(--ink);
|
|
box-shadow: 0 1px 2px rgb(0 0 0 / 0.12);
|
|
}
|
|
|
|
/* Catalog list (rich rows) */
|
|
.dashboard-rows {
|
|
display: flex;
|
|
flex-direction: column;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-md);
|
|
overflow: hidden;
|
|
background: var(--surface);
|
|
}
|
|
|
|
.dashboard-row {
|
|
position: relative;
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 14px;
|
|
padding: 14px 16px;
|
|
border-bottom: 1px solid var(--line);
|
|
transition: background 0.12s ease;
|
|
}
|
|
|
|
.dashboard-row:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.dashboard-row:hover {
|
|
background: var(--hover-bg);
|
|
}
|
|
|
|
.dashboard-row-link {
|
|
position: absolute;
|
|
inset: 0;
|
|
z-index: 0;
|
|
}
|
|
|
|
.dashboard-row-icon {
|
|
position: relative;
|
|
z-index: 1;
|
|
display: inline-flex;
|
|
width: 38px;
|
|
height: 38px;
|
|
flex: none;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border: 1px solid var(--line);
|
|
border-radius: 10px;
|
|
background: var(--surface-muted);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.dashboard-row-body {
|
|
position: relative;
|
|
z-index: 1;
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: 4px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.dashboard-row-head {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.dashboard-row-name {
|
|
font-size: var(--fs-md);
|
|
font-weight: 600;
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.dashboard-row:hover .dashboard-row-name {
|
|
text-decoration: underline;
|
|
text-underline-offset: 2px;
|
|
}
|
|
|
|
.dashboard-row-meta {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 7px;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.dashboard-row-meta > span[aria-hidden] {
|
|
opacity: 0.4;
|
|
}
|
|
|
|
.dashboard-row-actions {
|
|
position: relative;
|
|
z-index: 1;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
}
|
|
|
|
.dashboard-row-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 40px;
|
|
height: 40px;
|
|
padding: 0;
|
|
border: 0;
|
|
border-radius: var(--r-sm);
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
transition:
|
|
color 0.12s ease,
|
|
background 0.12s ease;
|
|
}
|
|
|
|
.dashboard-row-btn:hover,
|
|
.dashboard-row-btn:focus-visible {
|
|
color: var(--ink);
|
|
background: color-mix(in srgb, var(--ink) 8%, transparent);
|
|
}
|
|
|
|
.dashboard-row-btn:focus-visible {
|
|
outline: 2px solid color-mix(in srgb, var(--accent) 70%, transparent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.dashboard-row-flag {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 5px 9px;
|
|
border-radius: var(--r-sm);
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.dashboard-row-flag:hover {
|
|
color: var(--ink);
|
|
background: color-mix(in srgb, var(--ink) 8%, transparent);
|
|
}
|
|
|
|
/* Catalog grid (cards) */
|
|
.dashboard-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
|
|
gap: 14px;
|
|
}
|
|
|
|
.dashboard-footer-row {
|
|
display: flex;
|
|
justify-content: center;
|
|
padding-top: 14px;
|
|
}
|
|
|
|
.dashboard-route.section {
|
|
max-width: none;
|
|
padding-top: calc(var(--space-5) + 8px);
|
|
}
|
|
|
|
.dashboard-route--welcome {
|
|
min-height: 70svh;
|
|
}
|
|
|
|
.dashboard-route .dashboard-welcome-toolbar {
|
|
display: flex;
|
|
justify-content: center;
|
|
width: 100%;
|
|
max-width: 1296px;
|
|
margin: 0 auto var(--dashboard-welcome-context-gap, 61px);
|
|
padding: 0 48px;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.dashboard-empty {
|
|
display: grid;
|
|
justify-items: center;
|
|
gap: 10px;
|
|
padding: 56px 24px 32px;
|
|
text-align: center;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
}
|
|
|
|
.dashboard-empty-icon {
|
|
display: inline-flex;
|
|
width: 44px;
|
|
height: 44px;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 999px;
|
|
background: var(--surface-muted);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.dashboard-empty-title {
|
|
font-weight: 700;
|
|
font-size: var(--fs-md);
|
|
color: var(--ink);
|
|
}
|
|
|
|
.dashboard-empty-body {
|
|
max-width: 42ch;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
/* First-run welcome */
|
|
.dashboard-welcome {
|
|
width: 100%;
|
|
max-width: 960px;
|
|
margin: 0 auto;
|
|
display: grid;
|
|
justify-items: center;
|
|
gap: 0;
|
|
padding: 12px var(--space-5) var(--space-7);
|
|
text-align: center;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.dashboard-welcome-icon {
|
|
position: relative;
|
|
display: grid;
|
|
width: 120px;
|
|
height: 66px;
|
|
place-items: center;
|
|
}
|
|
|
|
.dashboard-welcome-icon-tile--back {
|
|
position: absolute;
|
|
display: grid;
|
|
width: 48px;
|
|
height: 52px;
|
|
place-items: center;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
background: color-mix(in srgb, var(--surface) 70%, transparent);
|
|
color: var(--ink-soft);
|
|
opacity: 0.66;
|
|
transition:
|
|
transform 180ms ease,
|
|
opacity 180ms ease;
|
|
}
|
|
|
|
.dashboard-welcome-icon-tile--back svg {
|
|
opacity: 0.14;
|
|
}
|
|
|
|
.dashboard-welcome-icon-tile--package {
|
|
transform: translate(-31px, 5px) rotate(-10deg);
|
|
}
|
|
|
|
.dashboard-welcome-icon-tile--plugin {
|
|
transform: translate(31px, 5px) rotate(10deg);
|
|
}
|
|
|
|
.dashboard-welcome-icon-tile--brand {
|
|
z-index: 1;
|
|
display: grid;
|
|
width: 54px;
|
|
height: 58px;
|
|
place-items: center;
|
|
border: 1px solid var(--line);
|
|
border-radius: 13px;
|
|
background: var(--surface);
|
|
transform: translateY(-4px);
|
|
transition: transform 180ms ease;
|
|
}
|
|
|
|
.dashboard-welcome-icon:hover .dashboard-welcome-icon-tile--package {
|
|
transform: translate(-35px, 7px) rotate(-12deg);
|
|
opacity: 0.78;
|
|
}
|
|
|
|
.dashboard-welcome-icon:hover .dashboard-welcome-icon-tile--plugin {
|
|
transform: translate(35px, 7px) rotate(12deg);
|
|
opacity: 0.78;
|
|
}
|
|
|
|
.dashboard-welcome-icon:hover .dashboard-welcome-icon-tile--brand {
|
|
transform: translateY(-6px);
|
|
}
|
|
|
|
.dashboard-welcome-icon-tile img {
|
|
width: 34px;
|
|
height: 34px;
|
|
object-fit: contain;
|
|
}
|
|
|
|
.dashboard-welcome-title {
|
|
margin: var(--dashboard-welcome-icon-title-gap, 22px) 0 0;
|
|
font-family: var(--font-display);
|
|
font-size: 1.65rem;
|
|
font-weight: 600;
|
|
color: var(--ink);
|
|
letter-spacing: -0.02em;
|
|
}
|
|
|
|
.dashboard-welcome-body {
|
|
margin: var(--dashboard-welcome-title-body-gap, 0px) 0 0;
|
|
max-width: 52ch;
|
|
color: var(--ink-soft);
|
|
font-size: 15px;
|
|
line-height: 1.6;
|
|
text-wrap: balance;
|
|
}
|
|
|
|
.dashboard-welcome-body strong {
|
|
color: var(--ink);
|
|
font-family: var(--font-mono);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.dashboard-welcome-top {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
width: 100%;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.dashboard-welcome-publisher-control {
|
|
display: inline-grid;
|
|
justify-items: center;
|
|
gap: 2px;
|
|
text-align: center;
|
|
}
|
|
|
|
.dashboard-welcome-publisher-label {
|
|
color: var(--ink-soft);
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dashboard-welcome-publisher-trigger {
|
|
width: auto;
|
|
min-width: 0;
|
|
max-width: none;
|
|
border: 0;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
gap: 6px;
|
|
padding-inline: 8px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.dashboard-welcome-publisher-trigger:hover:not(:disabled) {
|
|
background: color-mix(in srgb, var(--ink) 6%, transparent);
|
|
}
|
|
|
|
.dashboard-welcome-publisher-trigger:focus-visible {
|
|
border: 0;
|
|
background: color-mix(in srgb, var(--ink) 6%, transparent);
|
|
box-shadow: 0 0 0 2px var(--input-focus-ring);
|
|
}
|
|
|
|
.dashboard-publisher-select-item:focus-visible {
|
|
outline: none;
|
|
}
|
|
|
|
.dashboard-publisher-select-content {
|
|
border-radius: 16px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.dashboard-publisher-select-content > div {
|
|
border-radius: inherit;
|
|
}
|
|
|
|
.dashboard-publisher-select-content .dashboard-publisher-select-item {
|
|
border-radius: 12px;
|
|
}
|
|
|
|
.dashboard-welcome-hero {
|
|
display: grid;
|
|
justify-items: center;
|
|
gap: 0;
|
|
width: 100%;
|
|
}
|
|
|
|
.dashboard-welcome-explore {
|
|
display: grid;
|
|
justify-items: center;
|
|
gap: 7px;
|
|
margin-top: var(--dashboard-welcome-cta-explore-gap, 72px);
|
|
}
|
|
|
|
.dashboard-welcome-explore-label {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.dashboard-welcome-explore-links {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
}
|
|
|
|
.dashboard-welcome-explore-links a {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 5px 8px;
|
|
border-radius: var(--r-sm);
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
font-weight: 500;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.dashboard-welcome-explore-links a:hover {
|
|
background: color-mix(in srgb, var(--ink) 6%, transparent);
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.dashboard-welcome {
|
|
padding-inline: var(--space-4);
|
|
}
|
|
|
|
.dashboard-route .dashboard-welcome-toolbar {
|
|
padding-inline: var(--space-4);
|
|
justify-content: center;
|
|
margin-bottom: calc(var(--dashboard-welcome-context-gap, 61px) + 4px);
|
|
}
|
|
|
|
.dashboard-welcome-publisher-control {
|
|
width: auto;
|
|
justify-items: center;
|
|
}
|
|
|
|
.dashboard-welcome-publisher-trigger {
|
|
max-width: 100%;
|
|
}
|
|
}
|
|
|
|
.dashboard-summary-cards {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: 10px;
|
|
margin: 16px 0 18px;
|
|
}
|
|
|
|
.dashboard-summary-card {
|
|
display: grid;
|
|
gap: 4px;
|
|
padding: 14px 16px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
|
|
border-radius: var(--r-md);
|
|
background: color-mix(in srgb, var(--surface) 88%, transparent);
|
|
}
|
|
|
|
.dashboard-summary-card.is-alert {
|
|
border-color: color-mix(in srgb, var(--accent) 35%, var(--line));
|
|
background: color-mix(in srgb, var(--accent) 8%, var(--surface));
|
|
}
|
|
|
|
.dashboard-summary-card-label {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
letter-spacing: 0.02em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.dashboard-summary-card-value {
|
|
color: var(--ink);
|
|
font-size: 1.35rem;
|
|
font-weight: 700;
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.dashboard-workspace-panels {
|
|
margin-bottom: 18px;
|
|
}
|
|
|
|
.dashboard-attention {
|
|
border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
|
|
border-radius: var(--r-md);
|
|
background: color-mix(in srgb, var(--surface) 88%, transparent);
|
|
padding: 14px 16px;
|
|
}
|
|
|
|
.dashboard-attention--clear {
|
|
background: color-mix(in srgb, #22c55e 8%, var(--surface));
|
|
border-color: color-mix(in srgb, #22c55e 25%, var(--line));
|
|
}
|
|
|
|
.dashboard-attention-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.dashboard-attention-title {
|
|
margin: 0;
|
|
font-size: var(--fs-md);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.dashboard-attention-count {
|
|
display: inline-flex;
|
|
min-width: 22px;
|
|
height: 22px;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 999px;
|
|
background: color-mix(in srgb, var(--accent) 16%, transparent);
|
|
color: var(--accent);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.dashboard-attention-clear-copy {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.dashboard-attention-list {
|
|
display: grid;
|
|
gap: 8px;
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style: none;
|
|
}
|
|
|
|
.dashboard-attention-item {
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
gap: 10px;
|
|
align-items: center;
|
|
padding: 10px 12px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--r-sm);
|
|
background: var(--surface-muted);
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.dashboard-attention-item:hover {
|
|
border-color: color-mix(in srgb, var(--accent) 30%, var(--line));
|
|
background: var(--surface);
|
|
}
|
|
|
|
.dashboard-attention-item-badge {
|
|
font-size: var(--fs-xs);
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.03em;
|
|
}
|
|
|
|
.dashboard-attention-item.is-destructive .dashboard-attention-item-badge {
|
|
color: #ef4444;
|
|
}
|
|
|
|
.dashboard-attention-item.is-warning .dashboard-attention-item-badge {
|
|
color: #f59e0b;
|
|
}
|
|
|
|
.dashboard-attention-item.is-pending .dashboard-attention-item-badge {
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.dashboard-attention-item-copy {
|
|
display: grid;
|
|
gap: 2px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.dashboard-attention-item-copy strong {
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
.dashboard-attention-item-copy span {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
}
|
|
|
|
.dashboard-status-chips {
|
|
display: inline-flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
}
|
|
|
|
.dashboard-status-chip {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
border-radius: 999px;
|
|
padding: 2px 8px;
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
line-height: 1.4;
|
|
border: 1px solid var(--line);
|
|
background: var(--surface-muted);
|
|
color: var(--ink-soft);
|
|
}
|
|
|
|
.dashboard-status-chip.is-success {
|
|
border-color: color-mix(in srgb, #22c55e 30%, var(--line));
|
|
color: #15803d;
|
|
}
|
|
|
|
.dashboard-status-chip.is-warning {
|
|
border-color: color-mix(in srgb, #f59e0b 30%, var(--line));
|
|
color: #b45309;
|
|
}
|
|
|
|
.dashboard-status-chip.is-destructive {
|
|
border-color: color-mix(in srgb, #ef4444 30%, var(--line));
|
|
color: #b91c1c;
|
|
}
|
|
|
|
.dashboard-status-chip.is-pending {
|
|
border-color: color-mix(in srgb, var(--ink-soft) 25%, var(--line));
|
|
}
|
|
|
|
.dashboard-welcome-primary {
|
|
display: flex;
|
|
justify-content: center;
|
|
width: 100%;
|
|
margin-top: var(--dashboard-welcome-body-cta-gap, 23px);
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.dashboard-summary-cards {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.dashboard-header-publisher-center {
|
|
position: static;
|
|
order: 3;
|
|
width: 100%;
|
|
transform: none;
|
|
}
|
|
|
|
.dashboard-header-top {
|
|
flex-wrap: wrap;
|
|
}
|
|
}
|
|
|
|
/* Dashboard — browse-aligned workspace */
|
|
.browse-page.dashboard-route .dashboard-header-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.browse-page.dashboard-route .dashboard-header-handle {
|
|
color: var(--ink-muted);
|
|
font-weight: 500;
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.dashboard-attention-strip {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.dashboard-attention-strip,
|
|
.dashboard-inventory-section,
|
|
.dashboard-downloads-insights {
|
|
--dashboard-section-gap: 12px;
|
|
}
|
|
|
|
.dashboard-attention-strip .results-list {
|
|
gap: 0;
|
|
}
|
|
|
|
.dashboard-route {
|
|
--dashboard-row-grid: [icon-start name-start] minmax(0, 1fr) [review-start] 146px
|
|
[downloads-start] 96px [actions-start] 40px [actions-end];
|
|
--dashboard-row-gap: 10px;
|
|
--hv2-bg: var(--oc-bg-page);
|
|
--hv2-surface: var(--oc-surface-card);
|
|
--hv2-surface-hover: var(--oc-surface-interactive);
|
|
--hv2-border: var(--oc-border-subtle);
|
|
--hv2-border-hover: color-mix(in srgb, var(--oc-text-primary) 20%, var(--oc-border-subtle));
|
|
--hv2-border-strong: var(--oc-border-subtle);
|
|
--hv2-text: var(--oc-text-primary);
|
|
--hv2-text-secondary: var(--oc-text-secondary);
|
|
--hv2-text-tertiary: var(--oc-text-muted);
|
|
--hv2-accent: var(--oc-accent-primary);
|
|
--hv2-radius-sm: var(--oc-radius-control);
|
|
--hv2-radius-md: var(--oc-radius-surface);
|
|
--hv2-radius-lg: var(--oc-radius-surface);
|
|
--hv2-ease-out: var(--oc-ease-out);
|
|
--hv2-duration-fast: var(--oc-duration-fast);
|
|
--hv2-duration-ui: var(--oc-duration-ui);
|
|
}
|
|
|
|
.dashboard-attention-row.skill-list-item-no-icon {
|
|
width: 100%;
|
|
grid-template-columns: var(--dashboard-row-grid);
|
|
column-gap: var(--dashboard-row-gap);
|
|
align-items: center;
|
|
min-height: 68px;
|
|
padding: 11px 4px;
|
|
border: 0;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
|
|
border-radius: 0;
|
|
background: transparent;
|
|
color: inherit;
|
|
text-align: left;
|
|
cursor: pointer;
|
|
transition:
|
|
background-color 0.15s ease,
|
|
border-color 0.15s ease;
|
|
}
|
|
|
|
.dashboard-attention-row.skill-list-item-no-icon::before {
|
|
display: none;
|
|
}
|
|
|
|
.dashboard-attention-row.skill-list-item-no-icon .skill-list-item-body {
|
|
grid-column: name-start / review-start;
|
|
position: relative;
|
|
}
|
|
|
|
.dashboard-attention-row .skill-list-item-main {
|
|
gap: 8px;
|
|
}
|
|
|
|
.dashboard-attention-visibility {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
color: var(--ink-soft);
|
|
font-size: 11px;
|
|
font-weight: 560;
|
|
line-height: 1;
|
|
}
|
|
|
|
.dashboard-attention-kind {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
min-height: 18px;
|
|
color: color-mix(in srgb, var(--ink-soft) 78%, transparent);
|
|
font-size: 10px;
|
|
font-weight: 650;
|
|
line-height: 1;
|
|
letter-spacing: 0.02em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.dashboard-attention-row.skill-list-item-no-icon:first-child {
|
|
border-top: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
|
|
}
|
|
|
|
.dashboard-attention-row.skill-list-item-no-icon:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.dashboard-attention-row.skill-list-item-no-icon:hover,
|
|
.dashboard-attention-row.skill-list-item-no-icon:focus-within {
|
|
background: color-mix(in srgb, var(--ink) 4%, transparent);
|
|
border-color: color-mix(in srgb, var(--line) 92%, transparent);
|
|
}
|
|
|
|
.dashboard-attention-row .skill-list-item-meta {
|
|
grid-column: downloads-start / actions-end;
|
|
justify-self: end;
|
|
min-width: 0;
|
|
max-width: none;
|
|
margin-top: 0;
|
|
}
|
|
|
|
.dashboard-attention-summary {
|
|
grid-column: review-start / downloads-start;
|
|
display: grid;
|
|
gap: 3px;
|
|
min-width: 0;
|
|
justify-items: start;
|
|
}
|
|
|
|
.dashboard-attention-state {
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.dashboard-attention-state.is-destructive {
|
|
color: var(--oc-status-error-fg);
|
|
}
|
|
|
|
.dashboard-attention-state.is-warning {
|
|
color: var(--oc-status-warning-fg);
|
|
}
|
|
|
|
.dashboard-attention-state.is-pending {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.dashboard-attention-types {
|
|
color: var(--ink-soft);
|
|
font-size: 11px;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.dashboard-attention-context {
|
|
color: var(--ink-soft);
|
|
font-size: 12px;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.dashboard-attention-cta {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dashboard-attention-row:hover .dashboard-attention-cta {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.dashboard-attention-strip-label {
|
|
display: block;
|
|
margin-bottom: 8px;
|
|
padding: 0 4px;
|
|
}
|
|
|
|
.dashboard-attention-row-preview {
|
|
color: var(--ink-soft);
|
|
font-size: 12px;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.browse-page .dashboard-catalog-row-icon .marketplace-icon {
|
|
width: 34px;
|
|
height: 34px;
|
|
border-radius: var(--oc-radius-inset);
|
|
pointer-events: none;
|
|
transform: none;
|
|
box-shadow: none;
|
|
--marketplace-icon-wash: transparent;
|
|
--marketplace-icon-accent: var(--ink-soft);
|
|
background: color-mix(in srgb, var(--surface) 72%, transparent) !important;
|
|
border: 1px solid color-mix(in srgb, var(--line) 78%, transparent) !important;
|
|
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
|
|
}
|
|
|
|
.browse-page .dashboard-catalog-row-icon .marketplace-icon-glyph,
|
|
.browse-page .dashboard-catalog-row-icon .marketplace-icon-image {
|
|
filter: grayscale(1) brightness(1.18);
|
|
}
|
|
|
|
.browse-page .dashboard-catalog-row-icon .marketplace-icon-glyph {
|
|
width: 17px;
|
|
height: 17px;
|
|
}
|
|
|
|
.browse-page .dashboard-catalog-row .skill-list-item-meta svg {
|
|
opacity: 0.45;
|
|
}
|
|
|
|
.browse-page .dashboard-catalog-flag {
|
|
position: relative;
|
|
z-index: 3;
|
|
color: var(--oc-status-warning-fg);
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.browse-page .dashboard-catalog-flag:hover {
|
|
color: var(--ink);
|
|
text-decoration: underline;
|
|
text-underline-offset: 2px;
|
|
}
|
|
|
|
.dashboard-catalog-grid {
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.dashboard-route .dashboard-catalog-grid-card {
|
|
position: relative;
|
|
border-radius: calc(var(--r-md) + 2px);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.dashboard-catalog-grid-card-kind {
|
|
position: absolute;
|
|
top: 16px;
|
|
right: 16px;
|
|
color: var(--hv2-text-tertiary);
|
|
font-size: 10px;
|
|
font-weight: 650;
|
|
line-height: 1;
|
|
letter-spacing: 0.04em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.dashboard-catalog-grid-card .home-v2-listing-card-head {
|
|
padding-right: 46px;
|
|
}
|
|
|
|
.dashboard-route .dashboard-catalog-grid-card:hover {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.dashboard-catalog-grid-card-stats {
|
|
flex-wrap: wrap;
|
|
row-gap: 8px;
|
|
}
|
|
|
|
.dashboard-catalog-grid-card-updated {
|
|
margin-top: 3px;
|
|
color: var(--hv2-text-tertiary);
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.dashboard-catalog-grid-card-scan {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.dashboard-catalog-grid-card-scan .dashboard-mini-audit,
|
|
.dashboard-catalog-grid-card-scan .dashboard-mini-audit.security-audit-sidebar-value-row {
|
|
grid-template-columns: auto 34px;
|
|
justify-content: start;
|
|
gap: 5px;
|
|
width: auto;
|
|
}
|
|
|
|
.dashboard-catalog-grid-card-scan .dashboard-mini-audit .security-audit-sidebar-verdict {
|
|
width: auto;
|
|
font-size: 11px;
|
|
text-align: left;
|
|
}
|
|
|
|
.dashboard-catalog-grid-card-scan .dashboard-mini-audit .security-audit-meter {
|
|
display: grid;
|
|
width: 34px;
|
|
gap: 3px;
|
|
}
|
|
|
|
.dashboard-catalog-grid-card-stats .security-audit-meter > span {
|
|
display: block;
|
|
width: auto;
|
|
height: 4px;
|
|
}
|
|
|
|
.dashboard-catalog-grid-card-downloads {
|
|
margin-left: auto;
|
|
}
|
|
|
|
.dashboard-catalog-list-head {
|
|
grid-template-columns: var(--dashboard-row-grid);
|
|
column-gap: var(--dashboard-row-gap);
|
|
margin-top: 0;
|
|
padding-top: 0;
|
|
padding-bottom: 6px;
|
|
}
|
|
|
|
.dashboard-catalog-list-head .browse-list-head-icon-spacer {
|
|
grid-column: icon-start / name-start;
|
|
}
|
|
|
|
.dashboard-catalog-list-head-name {
|
|
grid-column: name-start / review-start;
|
|
}
|
|
|
|
.dashboard-catalog-list-head-review {
|
|
grid-column: review-start / downloads-start;
|
|
}
|
|
|
|
.dashboard-catalog-list-head-downloads {
|
|
grid-column: downloads-start / actions-start;
|
|
}
|
|
|
|
.dashboard-catalog-list-head .browse-list-head-actions-spacer {
|
|
grid-column: actions-start / actions-end;
|
|
}
|
|
|
|
.dashboard-inventory-body {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.dashboard-inventory-body .browse-list-stack {
|
|
gap: 0;
|
|
}
|
|
|
|
.dashboard-catalog-row {
|
|
position: relative;
|
|
isolation: isolate;
|
|
grid-template-columns: var(--dashboard-row-grid);
|
|
column-gap: var(--dashboard-row-gap);
|
|
}
|
|
|
|
.dashboard-catalog-list-head .browse-list-head-icon-spacer,
|
|
.dashboard-catalog-list-head .browse-list-head-actions-spacer,
|
|
.dashboard-catalog-row .dashboard-row-actions {
|
|
width: 34px;
|
|
}
|
|
|
|
.dashboard-catalog-row-icon {
|
|
grid-column: icon-start / name-start;
|
|
}
|
|
|
|
.dashboard-catalog-row .skill-list-item-body {
|
|
grid-column: name-start / review-start;
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.dashboard-catalog-row .skill-list-item-main {
|
|
min-width: 0;
|
|
gap: 8px;
|
|
flex-wrap: nowrap;
|
|
}
|
|
|
|
.dashboard-catalog-row .skill-list-item-name {
|
|
flex: 0 1 auto;
|
|
max-width: min(48ch, 100%);
|
|
}
|
|
|
|
.dashboard-catalog-version {
|
|
color: color-mix(in srgb, var(--ink-muted) 68%, transparent);
|
|
font-size: 10px;
|
|
font-weight: 500;
|
|
line-height: 1;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dashboard-catalog-row-secondary {
|
|
color: var(--ink-soft);
|
|
font-size: 11px;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.dashboard-catalog-kind-inline {
|
|
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
|
|
font-size: 10px;
|
|
font-weight: 650;
|
|
letter-spacing: 0.04em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.dashboard-catalog-row-link {
|
|
position: absolute;
|
|
z-index: 1;
|
|
inset: 0;
|
|
border-radius: inherit;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.dashboard-catalog-row-link:focus-visible {
|
|
outline: 2px solid var(--oc-focus-ring);
|
|
outline-offset: -2px;
|
|
}
|
|
|
|
.dashboard-catalog-row > :not(.dashboard-catalog-row-link):not(.dashboard-row-actions) {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.dashboard-catalog-row .dashboard-row-actions {
|
|
position: relative;
|
|
z-index: 3;
|
|
grid-column: actions-start / actions-end;
|
|
justify-self: end;
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.dashboard-catalog-row-kind {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 6px;
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.dashboard-catalog-row .skill-list-item-taxonomy {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 4px;
|
|
}
|
|
|
|
.dashboard-catalog-row .skill-list-item-meta {
|
|
grid-column: downloads-start / actions-start;
|
|
justify-self: start;
|
|
min-width: 0;
|
|
max-width: none;
|
|
margin-top: 0;
|
|
flex-wrap: nowrap;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.dashboard-catalog-review {
|
|
grid-column: review-start / downloads-start;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-start;
|
|
min-width: 0;
|
|
}
|
|
|
|
.dashboard-mini-audit {
|
|
display: grid;
|
|
grid-template-columns: 80px 44px;
|
|
align-items: center;
|
|
gap: 8px;
|
|
width: 132px;
|
|
min-height: auto;
|
|
padding: 0;
|
|
background: transparent;
|
|
border: 0;
|
|
}
|
|
|
|
.dashboard-mini-audit.security-audit-sidebar-value-row {
|
|
display: grid;
|
|
grid-template-columns: 80px 44px;
|
|
min-height: auto;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.dashboard-mini-audit .security-audit-sidebar-verdict {
|
|
display: block;
|
|
width: 80px;
|
|
font-size: 12px;
|
|
line-height: 1;
|
|
text-align: right;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dashboard-mini-audit .security-audit-meter {
|
|
align-self: center;
|
|
width: 44px;
|
|
gap: 4px;
|
|
}
|
|
|
|
.dashboard-mini-audit .security-audit-meter span {
|
|
height: 4px;
|
|
}
|
|
|
|
.dashboard-catalog-downloads {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: flex-start;
|
|
gap: 4px;
|
|
width: 100%;
|
|
color: var(--ink-soft);
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.dashboard-catalog-title-icon {
|
|
position: relative;
|
|
z-index: 3;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
color: color-mix(in srgb, var(--ink-soft) 78%, transparent);
|
|
}
|
|
|
|
.dashboard-catalog-title-icon svg {
|
|
display: block;
|
|
}
|
|
|
|
.dashboard-catalog-row .dashboard-catalog-status {
|
|
font-size: 12px;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.dashboard-catalog-row-details {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 6px;
|
|
margin: 2px 0 0;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.dashboard-catalog-sep {
|
|
opacity: 0.45;
|
|
}
|
|
|
|
.dashboard-catalog-kind {
|
|
color: var(--ink-muted);
|
|
}
|
|
|
|
.dashboard-catalog-status.is-warning {
|
|
color: var(--oc-status-warning-fg);
|
|
font-weight: 560;
|
|
}
|
|
|
|
.dashboard-catalog-status.is-destructive {
|
|
color: var(--oc-status-error-fg);
|
|
font-weight: 560;
|
|
}
|
|
|
|
.dashboard-catalog-status.is-pending {
|
|
color: var(--ink);
|
|
font-weight: 560;
|
|
}
|
|
|
|
.dashboard-catalog-status.is-success {
|
|
color: var(--oc-status-success-fg);
|
|
font-weight: 560;
|
|
}
|
|
|
|
.dashboard-attention-strip-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
margin-bottom: var(--dashboard-section-gap);
|
|
padding: 0 4px;
|
|
}
|
|
|
|
.dashboard-attention-view-all {
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
color: var(--ink-soft);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.dashboard-attention-view-all:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.dashboard-review-layer {
|
|
position: fixed;
|
|
z-index: 79;
|
|
inset: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
box-sizing: border-box;
|
|
padding: 16px;
|
|
background: var(--oc-surface-overlay);
|
|
transition: background-color var(--oc-duration-ui) var(--oc-ease-out);
|
|
|
|
@starting-style {
|
|
background: transparent;
|
|
}
|
|
}
|
|
|
|
.dashboard-review-sheet {
|
|
--dashboard-sheet-ease: cubic-bezier(0.32, 0.72, 0, 1);
|
|
position: relative;
|
|
z-index: 80;
|
|
top: auto;
|
|
right: auto;
|
|
bottom: auto;
|
|
width: min(560px, calc(100vw - 32px));
|
|
height: min(860px, calc(100dvh - 32px));
|
|
max-height: calc(100dvh - 32px);
|
|
overflow: hidden;
|
|
padding: 0;
|
|
border: 1px solid color-mix(in srgb, var(--line) 88%, transparent);
|
|
border-radius: var(--oc-radius-surface);
|
|
background: var(--oc-bg-elevated);
|
|
backdrop-filter: blur(28px) saturate(1.06);
|
|
box-shadow: var(--oc-shadow-lg);
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
will-change: transform, opacity;
|
|
transition:
|
|
transform 240ms var(--dashboard-sheet-ease),
|
|
opacity 180ms cubic-bezier(0.23, 1, 0.32, 1);
|
|
|
|
@starting-style {
|
|
opacity: 0;
|
|
transform: translateX(100%);
|
|
}
|
|
}
|
|
|
|
.dashboard-review-sheet-scroll {
|
|
height: 100%;
|
|
overflow: auto;
|
|
padding: 22px;
|
|
scrollbar-color: color-mix(in srgb, var(--ink-soft) 46%, transparent) transparent;
|
|
scrollbar-width: thin;
|
|
}
|
|
|
|
.dashboard-review-sheet-scroll::-webkit-scrollbar {
|
|
width: 8px;
|
|
}
|
|
|
|
.dashboard-review-sheet-scroll::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
|
|
.dashboard-review-sheet-scroll::-webkit-scrollbar-thumb {
|
|
border: 2px solid transparent;
|
|
border-radius: 999px;
|
|
background: color-mix(in srgb, var(--ink-soft) 46%, transparent);
|
|
background-clip: padding-box;
|
|
}
|
|
|
|
.dashboard-review-scroll-fade {
|
|
position: absolute;
|
|
z-index: 4;
|
|
right: 1px;
|
|
left: 1px;
|
|
height: 32px;
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
transition: opacity 140ms ease;
|
|
}
|
|
|
|
.dashboard-review-scroll-fade.is-visible {
|
|
opacity: 1;
|
|
}
|
|
|
|
.dashboard-review-scroll-fade.is-top {
|
|
top: 1px;
|
|
border-radius: calc(var(--r-md) - 1px) calc(var(--r-md) - 1px) 0 0;
|
|
background: linear-gradient(
|
|
to bottom,
|
|
color-mix(in srgb, var(--surface) 96%, transparent),
|
|
transparent
|
|
);
|
|
}
|
|
|
|
.dashboard-review-scroll-fade.is-bottom {
|
|
bottom: 1px;
|
|
border-radius: 0 0 calc(var(--r-md) - 1px) calc(var(--r-md) - 1px);
|
|
background: linear-gradient(
|
|
to top,
|
|
color-mix(in srgb, var(--surface) 96%, transparent),
|
|
transparent
|
|
);
|
|
}
|
|
|
|
.dashboard-review-report {
|
|
min-height: 100%;
|
|
align-content: start;
|
|
}
|
|
|
|
.dashboard-review-sheet-head {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 14px;
|
|
padding: 4px 2px 18px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
|
|
}
|
|
|
|
.dashboard-review-sheet-head > div {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.dashboard-review-sheet-support {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.dashboard-review-sheet h2,
|
|
.dashboard-review-sheet h3,
|
|
.dashboard-review-sheet p {
|
|
margin: 0;
|
|
}
|
|
|
|
.dashboard-review-sheet h2 {
|
|
color: var(--ink);
|
|
font-size: 20px;
|
|
font-weight: 700;
|
|
line-height: 1.2;
|
|
letter-spacing: -0.025em;
|
|
}
|
|
|
|
.dashboard-review-skillspector .security-report-overview-body p {
|
|
font-size: 14px;
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.dashboard-review-security-summary {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto auto;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: 10px 12px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
|
|
border-radius: 10px;
|
|
background: color-mix(in srgb, var(--surface-muted) 32%, transparent);
|
|
}
|
|
|
|
.dashboard-review-security-summary .plugin-validation-panel-title {
|
|
font-size: 13px;
|
|
font-weight: 650;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.dashboard-review-security-audit-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 2px;
|
|
color: var(--ink-soft);
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
line-height: 1.35;
|
|
text-decoration: none;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dashboard-review-security-audit-link:hover {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.dashboard-review-security-summary + .plugin-validation-overview {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.dashboard-review-sheet-meta {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 0;
|
|
margin-top: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 12px;
|
|
font-weight: 550;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.dashboard-review-sheet-meta > span {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dashboard-review-sheet-meta > span + span::before {
|
|
width: 3px;
|
|
height: 3px;
|
|
margin: 0 8px;
|
|
border-radius: 999px;
|
|
background: color-mix(in srgb, var(--ink) 35%, transparent);
|
|
content: "";
|
|
}
|
|
|
|
.dashboard-review-sheet-meta .is-kind {
|
|
color: var(--ink);
|
|
font-weight: 680;
|
|
}
|
|
|
|
.dashboard-review-sheet-meta .is-owner,
|
|
.dashboard-review-sheet-meta .is-version {
|
|
color: color-mix(in srgb, var(--ink) 82%, var(--ink-soft));
|
|
}
|
|
|
|
.dashboard-review-sheet h3 {
|
|
color: var(--ink);
|
|
font-size: 13px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.dashboard-review-sheet-close {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 30px;
|
|
height: 30px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
|
|
border-radius: 9px;
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
transition:
|
|
transform 140ms cubic-bezier(0.23, 1, 0.32, 1),
|
|
background-color 140ms ease,
|
|
color 140ms ease;
|
|
}
|
|
|
|
.dashboard-review-sheet-close:active {
|
|
transform: scale(0.96);
|
|
}
|
|
|
|
@media (hover: hover) and (pointer: fine) {
|
|
.dashboard-review-sheet-close:hover {
|
|
background: color-mix(in srgb, var(--ink) 5%, transparent);
|
|
color: var(--ink);
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.dashboard-review-layer {
|
|
transition: none;
|
|
}
|
|
|
|
.dashboard-review-sheet {
|
|
transform: none;
|
|
transition: opacity 160ms ease;
|
|
|
|
@starting-style {
|
|
opacity: 0;
|
|
transform: none;
|
|
}
|
|
}
|
|
|
|
.dashboard-review-sheet-close {
|
|
transition:
|
|
background-color 140ms ease,
|
|
color 140ms ease;
|
|
}
|
|
|
|
.dashboard-review-sheet-close:active {
|
|
transform: none;
|
|
}
|
|
}
|
|
|
|
.dashboard-review-sheet-status {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 14px 0;
|
|
color: var(--ink-soft);
|
|
font-size: 12px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
|
|
}
|
|
|
|
.dashboard-review-sheet-section {
|
|
display: grid;
|
|
gap: 10px;
|
|
padding: 14px 0;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
|
|
}
|
|
|
|
.dashboard-review-sheet .security-report-panel-body-findings {
|
|
gap: 18px;
|
|
}
|
|
|
|
.dashboard-review-skillspector .security-report-panel-body-findings {
|
|
padding-top: 4px;
|
|
}
|
|
|
|
.dashboard-review-skillspector .skillspector-checks {
|
|
margin-top: 6px;
|
|
}
|
|
|
|
.dashboard-review-sheet-section p {
|
|
color: var(--ink-soft);
|
|
font-size: 13px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.dashboard-review-findings-list {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.dashboard-review-finding {
|
|
display: grid;
|
|
gap: 4px;
|
|
padding: 10px 11px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
|
|
border-radius: 11px;
|
|
background: color-mix(in srgb, var(--ink) 3%, transparent);
|
|
}
|
|
|
|
.dashboard-review-finding span {
|
|
color: var(--ink-soft);
|
|
font-size: 11px;
|
|
font-weight: 650;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.03em;
|
|
}
|
|
|
|
.dashboard-review-finding code {
|
|
color: var(--ink-soft);
|
|
font-family: var(--font-mono);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.dashboard-review-finding pre {
|
|
max-height: 160px;
|
|
overflow: auto;
|
|
margin: 2px 0 0;
|
|
padding: 9px 10px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
|
|
border-radius: 9px;
|
|
background: color-mix(in srgb, #000 18%, transparent);
|
|
color: color-mix(in srgb, var(--ink) 86%, transparent);
|
|
font-family: var(--font-mono);
|
|
font-size: 11px;
|
|
line-height: 1.45;
|
|
white-space: pre-wrap;
|
|
}
|
|
|
|
.dashboard-review-analysis-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 8px;
|
|
}
|
|
|
|
.dashboard-review-analysis-grid div {
|
|
display: grid;
|
|
gap: 6px;
|
|
padding: 11px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
|
|
border-radius: 11px;
|
|
background: color-mix(in srgb, var(--ink) 3%, transparent);
|
|
}
|
|
|
|
.dashboard-review-analysis-grid span {
|
|
color: var(--ink-soft);
|
|
font-size: 11px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.dashboard-review-analysis-grid strong {
|
|
color: var(--ink);
|
|
font-size: 13px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.dashboard-review-sheet-action {
|
|
display: flex;
|
|
justify-content: center;
|
|
margin-top: 14px;
|
|
padding: 10px 12px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
|
|
border-radius: 11px;
|
|
color: var(--ink);
|
|
font-size: 13px;
|
|
font-weight: 650;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.dashboard-review-sheet-action:hover {
|
|
background: color-mix(in srgb, var(--ink) 5%, transparent);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.dashboard-review-skillspector {
|
|
display: grid;
|
|
margin-top: 14px;
|
|
}
|
|
|
|
.dashboard-review-skillspector > .security-report-panel {
|
|
margin: 0;
|
|
}
|
|
|
|
.dashboard-review-complete-validation {
|
|
gap: 18px;
|
|
margin: 12px 0 0;
|
|
padding: 14px;
|
|
border-radius: 12px;
|
|
background: color-mix(in srgb, var(--surface) 72%, transparent);
|
|
}
|
|
|
|
.dashboard-review-report > .plugin-validation-overview {
|
|
margin: 14px 0 0;
|
|
padding: 14px 0 16px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
|
|
background: transparent;
|
|
}
|
|
|
|
.dashboard-review-report > .plugin-validation-overview .plugin-validation-panel-title {
|
|
font-size: 16px;
|
|
}
|
|
|
|
.dashboard-review-report > .plugin-validation-overview .plugin-validation-actions-row {
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.dashboard-review-report > .plugin-validation-overview .plugin-validation-command-block,
|
|
.dashboard-review-report > .plugin-validation-overview .plugin-validation-toolbar,
|
|
.dashboard-review-report > .plugin-validation-overview .plugin-validation-toolbar-agent,
|
|
.dashboard-review-report
|
|
> .plugin-validation-overview
|
|
.plugin-validation-panel-agent.skill-install-copy-button {
|
|
width: 100%;
|
|
}
|
|
|
|
.dashboard-review-report
|
|
> .plugin-validation-overview
|
|
.plugin-validation-panel-agent.skill-install-copy-button {
|
|
justify-content: center;
|
|
}
|
|
|
|
.dashboard-review-complete-validation .plugin-validation-panel-findings {
|
|
padding-top: 0;
|
|
border-top: 0;
|
|
}
|
|
|
|
.dashboard-review-complete-validation .plugin-validation-actions-row {
|
|
align-items: stretch;
|
|
}
|
|
|
|
.dashboard-review-complete-validation .plugin-validation-toolbar-agent,
|
|
.dashboard-review-complete-validation .plugin-validation-panel-agent.skill-install-copy-button {
|
|
width: 100%;
|
|
}
|
|
|
|
.dashboard-review-complete-validation .plugin-validation-panel-agent.skill-install-copy-button {
|
|
justify-content: center;
|
|
}
|
|
|
|
.dashboard-review-complete-validation .plugin-warning-item-summary {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.dashboard-footer-row {
|
|
display: flex;
|
|
justify-content: center;
|
|
padding-top: 18px;
|
|
}
|
|
|
|
/* Dashboard — temporal download insights */
|
|
.dashboard-downloads-insights {
|
|
grid-column: 1 / -1;
|
|
width: 100%;
|
|
margin-top: 28px;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.dashboard-downloads-insights-toolbar {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 12px;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.dashboard-downloads-insights-controls {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 10px;
|
|
flex: 0 1 auto;
|
|
}
|
|
|
|
.dashboard-downloads-insights-controls .browse-sort-select {
|
|
min-width: 148px;
|
|
}
|
|
|
|
.dashboard-downloads-insights-controls .browse-sort-trigger {
|
|
min-width: 148px;
|
|
}
|
|
|
|
.dashboard-downloads-grid {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1.6fr) minmax(240px, 0.9fr);
|
|
gap: 12px;
|
|
}
|
|
|
|
.dashboard-downloads-panel {
|
|
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
|
|
border-radius: calc(var(--r-md) + 2px);
|
|
background: color-mix(in srgb, var(--surface) 88%, transparent);
|
|
padding: 16px 18px;
|
|
}
|
|
|
|
.dashboard-downloads-panel--hero {
|
|
display: grid;
|
|
gap: 14px;
|
|
min-height: 220px;
|
|
}
|
|
|
|
.dashboard-downloads-panel-head {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
}
|
|
|
|
.dashboard-downloads-panel-title {
|
|
margin: 0;
|
|
font-size: var(--fs-sm);
|
|
font-weight: 600;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.dashboard-downloads-hero-body {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) minmax(120px, 200px);
|
|
gap: 16px;
|
|
align-items: end;
|
|
}
|
|
|
|
.dashboard-downloads-hero-metric {
|
|
display: grid;
|
|
gap: 4px;
|
|
}
|
|
|
|
.dashboard-downloads-metric-label {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
letter-spacing: 0.02em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.dashboard-downloads-metric-value {
|
|
font-family: var(--font-display);
|
|
font-size: clamp(2rem, 4vw, 2.75rem);
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
color: var(--ink);
|
|
letter-spacing: -0.03em;
|
|
}
|
|
|
|
.dashboard-downloads-delta {
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.dashboard-downloads-delta.is-up {
|
|
color: var(--oc-status-success-fg);
|
|
}
|
|
|
|
.dashboard-downloads-delta.is-down {
|
|
color: var(--oc-status-error-fg);
|
|
}
|
|
|
|
.dashboard-downloads-sparkline {
|
|
display: block;
|
|
width: 100%;
|
|
height: 46px;
|
|
overflow: visible;
|
|
color: color-mix(in srgb, var(--accent) 36%, var(--ink));
|
|
shape-rendering: geometricPrecision;
|
|
}
|
|
|
|
.dashboard-downloads-chart-wrap {
|
|
position: relative;
|
|
}
|
|
|
|
.dashboard-downloads-chart-wrap.is-compact .dashboard-downloads-chart-tooltip {
|
|
top: -8px;
|
|
transform: translate(-50%, -100%);
|
|
}
|
|
|
|
.dashboard-downloads-chart-hit {
|
|
fill: transparent;
|
|
pointer-events: all;
|
|
cursor: crosshair;
|
|
}
|
|
|
|
.dashboard-downloads-chart-crosshair {
|
|
stroke: currentColor;
|
|
stroke-opacity: 0.28;
|
|
stroke-width: 0.75;
|
|
stroke-dasharray: 2 3;
|
|
vector-effect: non-scaling-stroke;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.dashboard-downloads-chart-tooltip {
|
|
position: absolute;
|
|
top: 0;
|
|
z-index: 2;
|
|
display: grid;
|
|
gap: 1px;
|
|
padding: 4px 7px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
|
|
border-radius: 6px;
|
|
background: color-mix(in srgb, var(--surface) 94%, transparent);
|
|
box-shadow: 0 6px 18px color-mix(in srgb, var(--ink) 10%, transparent);
|
|
transform: translate(-50%, calc(-100% - 6px));
|
|
pointer-events: none;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dashboard-downloads-chart-tooltip-label {
|
|
color: var(--ink-soft);
|
|
font-size: 10px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.dashboard-downloads-chart-tooltip-value {
|
|
color: var(--ink);
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.dashboard-downloads-sparkline--hero {
|
|
height: 80px;
|
|
}
|
|
|
|
.dashboard-downloads-sparkline--compact {
|
|
width: 96px;
|
|
height: 42px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.dashboard-downloads-sparkline-grid {
|
|
stroke: color-mix(in srgb, var(--line) 62%, transparent);
|
|
stroke-width: 0.75;
|
|
vector-effect: non-scaling-stroke;
|
|
}
|
|
|
|
.dashboard-downloads-sparkline-line {
|
|
fill: none;
|
|
stroke-width: 1.65;
|
|
stroke-linecap: round;
|
|
stroke-linejoin: round;
|
|
vector-effect: non-scaling-stroke;
|
|
opacity: 0;
|
|
animation: dashboard-downloads-sparkline-reveal 0.85s ease-out forwards;
|
|
}
|
|
|
|
.dashboard-downloads-sparkline-area {
|
|
stroke: none;
|
|
opacity: 0;
|
|
animation: dashboard-downloads-sparkline-reveal 1s ease-out forwards;
|
|
}
|
|
|
|
.dashboard-downloads-sparkline-dot {
|
|
fill: currentColor;
|
|
stroke: color-mix(in srgb, var(--surface) 88%, transparent);
|
|
stroke-width: 1.25;
|
|
vector-effect: non-scaling-stroke;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.dashboard-downloads-sparkline-dot.is-active {
|
|
opacity: 1;
|
|
}
|
|
|
|
@keyframes dashboard-downloads-sparkline-reveal {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.dashboard-downloads-timeline {
|
|
display: grid;
|
|
gap: 8px;
|
|
padding-top: 8px;
|
|
border-top: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
|
|
}
|
|
|
|
.dashboard-downloads-timeline-chart {
|
|
display: block;
|
|
width: 100%;
|
|
height: 88px;
|
|
overflow: visible;
|
|
color: color-mix(in srgb, var(--accent) 40%, var(--ink));
|
|
shape-rendering: geometricPrecision;
|
|
}
|
|
|
|
.dashboard-downloads-timeline-baseline {
|
|
stroke: color-mix(in srgb, var(--line) 68%, transparent);
|
|
stroke-width: 0.75;
|
|
vector-effect: non-scaling-stroke;
|
|
}
|
|
|
|
.dashboard-downloads-timeline-bar {
|
|
opacity: 0;
|
|
transform-box: fill-box;
|
|
transform-origin: center bottom;
|
|
animation: dashboard-downloads-bar-rise 0.55s ease-out forwards;
|
|
pointer-events: all;
|
|
cursor: crosshair;
|
|
}
|
|
|
|
.dashboard-downloads-timeline-bar.is-active {
|
|
filter: brightness(1.12);
|
|
}
|
|
|
|
.dashboard-downloads-timeline-bar.is-empty {
|
|
pointer-events: all;
|
|
cursor: crosshair;
|
|
}
|
|
|
|
@keyframes dashboard-downloads-bar-rise {
|
|
from {
|
|
opacity: 0;
|
|
transform: scaleY(0.35);
|
|
}
|
|
|
|
to {
|
|
opacity: 1;
|
|
transform: scaleY(1);
|
|
}
|
|
}
|
|
|
|
.dashboard-downloads-timeline-labels {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(8px, 1fr));
|
|
gap: 6px;
|
|
color: color-mix(in srgb, var(--ink-soft) 70%, transparent);
|
|
font-size: 10px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.dashboard-downloads-timeline-labels span.is-active {
|
|
color: var(--ink);
|
|
}
|
|
|
|
.dashboard-downloads-side {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.dashboard-downloads-panel--compact {
|
|
display: grid;
|
|
gap: 10px;
|
|
min-height: 0;
|
|
}
|
|
|
|
.dashboard-downloads-compact-head {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
}
|
|
|
|
.dashboard-downloads-compact-label {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 700;
|
|
letter-spacing: 0.04em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.dashboard-downloads-compact-metric {
|
|
font-family: var(--font-display);
|
|
font-size: 1.75rem;
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.dashboard-downloads-compact-foot {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
}
|
|
|
|
@media (max-width: 960px) {
|
|
.dashboard-downloads-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.dashboard-downloads-hero-body {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.dashboard-downloads-sparkline--hero {
|
|
height: 56px;
|
|
}
|
|
}
|
|
|
|
.dashboard-downloads-insights--compact {
|
|
display: grid;
|
|
gap: 12px;
|
|
--downloads-chart-color: color-mix(in srgb, #8b9cf8 55%, var(--ink-soft));
|
|
}
|
|
|
|
.dashboard-downloads-insights--compact .dashboard-downloads-sparkline {
|
|
color: var(--downloads-chart-color);
|
|
}
|
|
|
|
.dashboard-downloads-compact-toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.dashboard-downloads-compact-toolbar-controls {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.dashboard-downloads-compact-toolbar-controls > .browse-sort-select {
|
|
margin-right: 10px;
|
|
}
|
|
|
|
.dashboard-downloads-compact-toolbar-controls .browse-sort-trigger {
|
|
padding-right: 0;
|
|
}
|
|
|
|
.dashboard-downloads-compact-toolbar-controls > .clawhub-segmented {
|
|
margin-left: 10px;
|
|
width: 276px;
|
|
}
|
|
|
|
.dashboard-downloads-compact-toolbar-controls > .clawhub-segmented .clawhub-segmented-btn {
|
|
flex: 1 1 0;
|
|
min-width: 0;
|
|
padding-inline: 8px;
|
|
font-size: 13px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dashboard-downloads-compact-toolbar-controls > .clawhub-segmented .clawhub-segmented-label {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dashboard-downloads-compact-panel {
|
|
display: grid;
|
|
gap: 16px;
|
|
padding: 16px 18px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
|
|
border-radius: calc(var(--r-md) + 2px);
|
|
background: color-mix(in srgb, var(--surface) 88%, transparent);
|
|
}
|
|
|
|
.dashboard-downloads-compact-primary {
|
|
display: grid;
|
|
grid-template-columns: minmax(150px, 0.38fr) minmax(0, 1fr);
|
|
gap: 16px;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.dashboard-downloads-compact-hero-metric {
|
|
display: grid;
|
|
grid-template-rows: auto auto 1fr;
|
|
align-content: start;
|
|
gap: 4px;
|
|
height: 100%;
|
|
padding-top: 2px;
|
|
}
|
|
|
|
.dashboard-downloads-compact-hero-metric .dashboard-downloads-delta {
|
|
align-self: end;
|
|
}
|
|
|
|
.dashboard-review-sheet .plugin-validation-toolbar {
|
|
border-color: color-mix(in srgb, var(--line) 92%, transparent);
|
|
background: color-mix(in srgb, var(--surface) 96%, var(--bg));
|
|
box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 20%, transparent);
|
|
}
|
|
|
|
.dashboard-review-sheet .plugin-validation-command {
|
|
color: color-mix(in srgb, var(--ink) 88%, var(--ink-soft));
|
|
font-weight: 550;
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.dashboard-review-layer {
|
|
padding: 8px;
|
|
}
|
|
|
|
.dashboard-review-sheet {
|
|
width: calc(100vw - 16px);
|
|
height: calc(100dvh - 16px);
|
|
max-height: calc(100dvh - 16px);
|
|
}
|
|
|
|
.dashboard-review-sheet-support {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
}
|
|
}
|
|
|
|
.dashboard-downloads-metric-value--compact {
|
|
font-size: 1.75rem;
|
|
}
|
|
|
|
.dashboard-downloads-chart-column {
|
|
grid-column: 2;
|
|
display: grid;
|
|
align-content: end;
|
|
min-width: 0;
|
|
}
|
|
|
|
.dashboard-downloads-sparkline--compact-primary {
|
|
height: 72px;
|
|
}
|
|
|
|
.dashboard-downloads-chart-axis {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
margin-top: -7px;
|
|
color: color-mix(in srgb, var(--ink-soft) 78%, transparent);
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
letter-spacing: 0.01em;
|
|
}
|
|
|
|
.dashboard-downloads-compact-split {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 12px;
|
|
padding-top: 12px;
|
|
border-top: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
|
|
}
|
|
|
|
.dashboard-downloads-compact-stat {
|
|
display: grid;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
align-content: end;
|
|
}
|
|
|
|
.dashboard-downloads-compact-stat-label {
|
|
color: var(--ink-soft);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 600;
|
|
letter-spacing: 0.02em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.dashboard-downloads-compact-stat-value {
|
|
color: var(--ink);
|
|
font-size: 1.15rem;
|
|
font-weight: 700;
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.dashboard-downloads-sparkline--compact-stat {
|
|
width: 100%;
|
|
height: 44px;
|
|
margin-top: 4px;
|
|
}
|
|
|
|
@media (min-width: 760px) {
|
|
.dashboard-downloads-compact-panel {
|
|
grid-template-columns: minmax(0, 1.65fr) minmax(260px, 1fr);
|
|
align-items: stretch;
|
|
}
|
|
|
|
.dashboard-downloads-compact-split {
|
|
align-items: end;
|
|
padding-top: 0;
|
|
padding-left: 16px;
|
|
border-top: 0;
|
|
border-left: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 960px) {
|
|
.browse-page.dashboard-route .dashboard-catalog-row {
|
|
grid-template-columns: 34px minmax(0, 1fr) 40px;
|
|
}
|
|
|
|
.browse-page.dashboard-route .dashboard-catalog-list-head {
|
|
grid-template-columns: 34px minmax(0, 1fr) 40px;
|
|
}
|
|
|
|
.browse-page.dashboard-route .dashboard-catalog-review,
|
|
.browse-page.dashboard-route .dashboard-catalog-list-head .browse-list-head-label:nth-child(3),
|
|
.browse-page.dashboard-route .dashboard-catalog-list-head .browse-list-head-stat,
|
|
.browse-page.dashboard-route .dashboard-catalog-row .skill-list-item-meta {
|
|
display: none;
|
|
}
|
|
|
|
.browse-page.dashboard-route .dashboard-catalog-row .skill-list-item-taxonomy {
|
|
display: flex;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 720px) {
|
|
.browse-page.dashboard-route {
|
|
padding-inline: 20px;
|
|
}
|
|
|
|
.dashboard-downloads-compact-primary {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.dashboard-downloads-compact-split {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
/* Dashboard */
|
|
.browse-page.dashboard-route {
|
|
max-width: 1280px;
|
|
margin-inline: auto;
|
|
padding-inline: 32px;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.dashboard-workspace {
|
|
display: block;
|
|
margin-top: 44px;
|
|
}
|
|
|
|
.dashboard-workspace-main {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 24px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.dashboard-inventory-section {
|
|
margin-top: 4px;
|
|
}
|
|
|
|
.dashboard-inventory-section .dashboard-section-head {
|
|
margin-bottom: 6px;
|
|
padding-bottom: 8px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
|
|
}
|
|
|
|
.dashboard-inventory-section .browse-controls {
|
|
gap: 0;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.dashboard-inventory-section .browse-controls-row {
|
|
min-height: 34px;
|
|
gap: 14px;
|
|
}
|
|
|
|
.dashboard-import-banner {
|
|
position: relative;
|
|
overflow: hidden;
|
|
display: grid;
|
|
grid-template-columns: auto auto minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 18px;
|
|
padding: 14px 16px;
|
|
border: 1px solid color-mix(in srgb, #8f1d24 9%, var(--line));
|
|
border-radius: calc(var(--r-md) + 2px);
|
|
background:
|
|
radial-gradient(
|
|
ellipse 52% 110% at 100% 0%,
|
|
color-mix(in srgb, #d34848 5%, transparent),
|
|
transparent 64%
|
|
),
|
|
radial-gradient(
|
|
ellipse 44% 110% at 0% 100%,
|
|
color-mix(in srgb, #8f1d24 7%, transparent),
|
|
transparent 66%
|
|
),
|
|
color-mix(in srgb, var(--surface) 92%, transparent);
|
|
box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 28%, transparent);
|
|
}
|
|
|
|
.dashboard-import-banner-art-wrap {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 126px;
|
|
min-width: 126px;
|
|
}
|
|
|
|
.dashboard-import-banner-text {
|
|
display: grid;
|
|
gap: 3px;
|
|
min-width: 0;
|
|
max-width: 380px;
|
|
}
|
|
|
|
.dashboard-import-banner-heading {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.dashboard-import-banner-art {
|
|
display: block;
|
|
width: 116px;
|
|
height: auto;
|
|
object-fit: contain;
|
|
pointer-events: none;
|
|
user-select: none;
|
|
opacity: 0.82;
|
|
filter: saturate(0.72);
|
|
}
|
|
|
|
.dashboard-import-banner-title {
|
|
margin: 0;
|
|
font-family: inherit;
|
|
font-size: var(--fs-md);
|
|
font-weight: 600;
|
|
line-height: 1.35;
|
|
color: color-mix(in srgb, var(--ink) 90%, var(--ink-soft));
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
.dashboard-import-banner-badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
min-height: 18px;
|
|
padding: 2px 6px;
|
|
border: 1px solid color-mix(in srgb, #d34848 28%, transparent);
|
|
border-radius: var(--r-pill);
|
|
background: color-mix(in srgb, #d34848 11%, transparent);
|
|
color: color-mix(in srgb, #ff8c8c 78%, var(--ink));
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
}
|
|
|
|
.dashboard-import-banner-copy {
|
|
margin: 0;
|
|
color: var(--ink-soft);
|
|
font-size: 12px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.dashboard-import-banner-actions {
|
|
grid-column: 4;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
}
|
|
|
|
[data-theme-resolved="light"] .dashboard-import-banner {
|
|
background:
|
|
radial-gradient(
|
|
ellipse 72% 120% at 100% -28%,
|
|
color-mix(in srgb, #b7333b 8%, transparent),
|
|
transparent 72%
|
|
),
|
|
color-mix(in srgb, var(--surface) 95%, var(--bg));
|
|
}
|
|
|
|
.dashboard-import-banner-action {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 6px;
|
|
box-sizing: border-box;
|
|
min-width: 132px;
|
|
padding: 9px 12px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 88%, transparent);
|
|
border-radius: var(--r-btn);
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
text-decoration: none;
|
|
transition:
|
|
color 0.15s ease,
|
|
border-color 0.15s ease,
|
|
background-color 0.15s ease;
|
|
}
|
|
|
|
.dashboard-import-banner-action:hover,
|
|
.dashboard-import-banner-action:focus-visible {
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
border-color: color-mix(in srgb, var(--ink) 18%, var(--line));
|
|
background: color-mix(in srgb, var(--ink) 4%, transparent);
|
|
}
|
|
|
|
.dashboard-import-banner-dismiss {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 5px;
|
|
min-width: 0;
|
|
height: 32px;
|
|
padding: 0 8px;
|
|
border: 0;
|
|
border-radius: 6px;
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
cursor: pointer;
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
transition:
|
|
color 0.15s ease,
|
|
background-color 0.15s ease;
|
|
}
|
|
|
|
.dashboard-import-banner-dismiss:hover,
|
|
.dashboard-import-banner-dismiss:focus-visible {
|
|
color: var(--ink);
|
|
background: color-mix(in srgb, var(--ink) 7%, transparent);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .dashboard-import-banner-action {
|
|
background: transparent;
|
|
color: var(--ink-soft);
|
|
border-color: color-mix(in srgb, var(--line) 88%, transparent);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .dashboard-import-banner-action:hover,
|
|
[data-theme-resolved="light"] .dashboard-import-banner-action:focus-visible {
|
|
color: var(--ink);
|
|
background: color-mix(in srgb, var(--ink) 4%, transparent);
|
|
border-color: color-mix(in srgb, var(--ink) 18%, var(--line));
|
|
}
|
|
|
|
[role="menu"] {
|
|
border-radius: 12px !important;
|
|
overflow: hidden;
|
|
}
|
|
|
|
[role="menu"] [role="menuitem"],
|
|
[role="menu"] a[role="menuitem"] {
|
|
border-radius: 8px;
|
|
text-decoration: none !important;
|
|
}
|
|
|
|
[role="menu"] [role="menuitem"]:hover,
|
|
[role="menu"] [role="menuitem"]:focus,
|
|
[role="menu"] [role="menuitem"]:focus-visible,
|
|
[role="menu"] a[role="menuitem"]:hover,
|
|
[role="menu"] a[role="menuitem"]:focus,
|
|
[role="menu"] a[role="menuitem"]:focus-visible {
|
|
outline: none !important;
|
|
box-shadow: none !important;
|
|
background: color-mix(in srgb, var(--ink) 7%, transparent) !important;
|
|
color: var(--ink) !important;
|
|
text-decoration: none !important;
|
|
}
|
|
|
|
@media (max-width: 1180px) {
|
|
.dashboard-workspace {
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
/* Dashboard final — triage cards and canonical package listing. */
|
|
.browse-page.dashboard-route.dashboard-final {
|
|
max-width: 1296px;
|
|
padding-inline: 48px;
|
|
}
|
|
|
|
.dashboard-final .dashboard-workspace {
|
|
display: block;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-strip-header {
|
|
height: 28px;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-strip .results-list {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-row.skill-list-item-no-icon {
|
|
position: relative;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
grid-template-rows: minmax(0, 1fr) auto;
|
|
align-content: start;
|
|
gap: 12px;
|
|
min-height: 0;
|
|
padding: 16px;
|
|
border: 1px solid var(--hv2-border);
|
|
border-radius: calc(var(--r-md) + 2px);
|
|
background: color-mix(in srgb, var(--hv2-surface) 95%, transparent);
|
|
transition:
|
|
border-color var(--hv2-duration-ui) var(--hv2-ease-out),
|
|
background var(--hv2-duration-ui) var(--hv2-ease-out),
|
|
transform var(--hv2-duration-ui) var(--hv2-ease-out);
|
|
}
|
|
|
|
[data-theme-resolved="light"] .dashboard-final .dashboard-attention-row.skill-list-item-no-icon {
|
|
background: color-mix(in srgb, var(--surface) 96%, var(--bg));
|
|
}
|
|
|
|
[data-theme-resolved="light"]
|
|
.dashboard-final
|
|
.dashboard-attention-row.skill-list-item-no-icon:hover,
|
|
[data-theme-resolved="light"]
|
|
.dashboard-final
|
|
.dashboard-attention-row.skill-list-item-no-icon:focus-within {
|
|
background: color-mix(in srgb, var(--surface-muted) 68%, var(--surface));
|
|
}
|
|
|
|
[data-theme-resolved="light"] .dashboard-route .home-v2-listing-card {
|
|
background: color-mix(in srgb, var(--surface) 96%, var(--bg));
|
|
}
|
|
|
|
@media (hover: hover) and (pointer: fine) {
|
|
[data-theme-resolved="light"] .dashboard-route .home-v2-listing-card:hover {
|
|
background: color-mix(in srgb, var(--surface-muted) 68%, var(--surface));
|
|
box-shadow: none;
|
|
transform: translateY(-1px);
|
|
}
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-row.skill-list-item-no-icon:hover,
|
|
.dashboard-final .dashboard-attention-row.skill-list-item-no-icon:focus-within {
|
|
border-color: var(--hv2-border-hover);
|
|
background: var(--hv2-surface-hover);
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-row.skill-list-item-no-icon:active {
|
|
transform: scale(0.992);
|
|
transition-duration: 100ms;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-row.skill-list-item-no-icon .skill-list-item-body {
|
|
grid-column: 1 / -1;
|
|
grid-row: 1;
|
|
align-content: start;
|
|
min-height: 92px;
|
|
padding-right: 68px;
|
|
padding-bottom: 12px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--hv2-border) 60%, transparent);
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-context {
|
|
-webkit-line-clamp: 2;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-row .skill-list-item-main {
|
|
display: grid;
|
|
width: 100%;
|
|
min-width: 0;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
justify-items: start;
|
|
gap: 7px;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-row .skill-list-item-name {
|
|
display: block;
|
|
width: 100%;
|
|
max-width: 100%;
|
|
justify-self: stretch;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-visibility {
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
min-height: 18px;
|
|
color: color-mix(in srgb, var(--ink-soft) 86%, transparent);
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-summary {
|
|
grid-column: 1;
|
|
grid-row: 2;
|
|
justify-self: start;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-row .skill-list-item-meta {
|
|
grid-column: 2;
|
|
grid-row: 2;
|
|
align-self: end;
|
|
justify-self: end;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-state {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
min-height: 22px;
|
|
padding: 3px 8px;
|
|
border-radius: var(--oc-radius-control);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-state.is-destructive {
|
|
background: var(--oc-status-error-bg);
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-state.is-warning {
|
|
background: var(--oc-status-warning-bg);
|
|
}
|
|
|
|
.dashboard-downloads-mobile-slot {
|
|
display: none;
|
|
}
|
|
|
|
.dashboard-downloads-desktop-slot {
|
|
display: contents;
|
|
}
|
|
|
|
.dashboard-downloads-desktop-slot > .dashboard-downloads-insights {
|
|
margin-top: 68px;
|
|
}
|
|
|
|
.dashboard-review-complete-validation .plugin-warning-item-details[open] {
|
|
border-radius: 10px;
|
|
overflow: hidden;
|
|
background: color-mix(in srgb, var(--ink) 10%, var(--surface));
|
|
}
|
|
|
|
.dashboard-review-complete-validation
|
|
.plugin-warning-item-details[open]
|
|
> .plugin-warning-item-summary,
|
|
.dashboard-review-complete-validation
|
|
.plugin-warning-item-details[open]
|
|
> .plugin-warning-item-body {
|
|
background: transparent;
|
|
}
|
|
|
|
.dashboard-review-complete-validation
|
|
.plugin-warning-item-details[open]
|
|
> .plugin-warning-item-summary:hover,
|
|
.dashboard-review-complete-validation
|
|
.plugin-warning-item-details[open]
|
|
> .plugin-warning-item-summary:focus-visible {
|
|
background: transparent;
|
|
}
|
|
|
|
.dashboard-review-complete-validation
|
|
.plugin-warning-item-details[open]
|
|
+ .plugin-warning-item-details[open] {
|
|
margin-top: 8px;
|
|
}
|
|
|
|
[data-theme-resolved="light"]
|
|
.dashboard-review-complete-validation
|
|
.plugin-warning-item-details[open] {
|
|
background: color-mix(in srgb, var(--ink) 5%, var(--surface));
|
|
}
|
|
|
|
@media (max-width: 1180px) {
|
|
.dashboard-final .dashboard-workspace {
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.dashboard-final .dashboard-workspace {
|
|
transition: none;
|
|
}
|
|
}
|
|
|
|
/* Dashboard skeleton mirrors the final dashboard instead of the generic browse list. */
|
|
.dashboard-skeleton .dashboard-workspace {
|
|
margin-top: 44px;
|
|
}
|
|
|
|
.dashboard-skeleton-title {
|
|
width: 210px;
|
|
height: 42px;
|
|
}
|
|
|
|
.dashboard-skeleton-header-actions,
|
|
.dashboard-skeleton-toolbar,
|
|
.dashboard-skeleton-stats-toolbar,
|
|
.dashboard-skeleton-stats-controls,
|
|
.dashboard-skeleton-attention-footer {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.dashboard-skeleton-header-actions {
|
|
gap: 8px;
|
|
}
|
|
|
|
.dashboard-skeleton-add-action {
|
|
width: 158px;
|
|
height: 40px;
|
|
}
|
|
|
|
.dashboard-skeleton-section-title {
|
|
width: 128px;
|
|
height: 20px;
|
|
}
|
|
|
|
.dashboard-skeleton-attention > .dashboard-skeleton-section-title {
|
|
margin: 4px 4px 20px;
|
|
}
|
|
|
|
.dashboard-skeleton-attention-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.dashboard-skeleton-attention-card {
|
|
display: grid;
|
|
min-height: 174px;
|
|
padding: 16px;
|
|
border: 1px solid var(--hv2-border);
|
|
border-radius: calc(var(--r-md) + 2px);
|
|
background: color-mix(in srgb, var(--hv2-surface) 95%, transparent);
|
|
}
|
|
|
|
.dashboard-skeleton-attention-copy {
|
|
display: grid;
|
|
align-content: start;
|
|
gap: 9px;
|
|
padding-bottom: 16px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--hv2-border) 60%, transparent);
|
|
}
|
|
|
|
.dashboard-skeleton-kind {
|
|
width: 46px;
|
|
height: 10px;
|
|
}
|
|
|
|
.dashboard-skeleton-card-title {
|
|
width: min(78%, 220px);
|
|
height: 18px;
|
|
}
|
|
|
|
.dashboard-skeleton-card-summary {
|
|
width: 88%;
|
|
height: 12px;
|
|
}
|
|
|
|
.dashboard-skeleton-attention-footer {
|
|
align-self: end;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
padding-top: 14px;
|
|
}
|
|
|
|
.dashboard-skeleton-status {
|
|
width: 64px;
|
|
height: 22px;
|
|
}
|
|
|
|
.dashboard-skeleton-review-action {
|
|
width: 94px;
|
|
height: 12px;
|
|
}
|
|
|
|
.dashboard-skeleton-count {
|
|
width: 22px;
|
|
height: 22px;
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.dashboard-skeleton-toolbar {
|
|
min-height: 40px;
|
|
gap: 14px;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.dashboard-skeleton-tabs {
|
|
width: 218px;
|
|
height: 36px;
|
|
}
|
|
|
|
.dashboard-skeleton-sort {
|
|
width: 66px;
|
|
height: 24px;
|
|
}
|
|
|
|
.dashboard-skeleton-toolbar-spacer {
|
|
flex: 1;
|
|
}
|
|
|
|
.dashboard-skeleton-search,
|
|
.dashboard-skeleton-view {
|
|
width: 40px;
|
|
height: 40px;
|
|
}
|
|
|
|
.dashboard-skeleton-view {
|
|
width: 96px;
|
|
}
|
|
|
|
.dashboard-skeleton-package-list {
|
|
display: grid;
|
|
}
|
|
|
|
.dashboard-skeleton-package-row {
|
|
display: grid;
|
|
grid-template-columns: var(--dashboard-row-grid);
|
|
column-gap: var(--dashboard-row-gap);
|
|
align-items: center;
|
|
min-height: 72px;
|
|
padding: 10px 4px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
|
|
}
|
|
|
|
.dashboard-skeleton-package-copy {
|
|
grid-column: name-start / review-start;
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.dashboard-skeleton-package-name {
|
|
width: min(48%, 230px);
|
|
height: 17px;
|
|
}
|
|
|
|
.dashboard-skeleton-package-meta {
|
|
width: min(34%, 170px);
|
|
height: 11px;
|
|
}
|
|
|
|
.dashboard-skeleton-audit {
|
|
grid-column: review-start / downloads-start;
|
|
display: grid;
|
|
grid-template-columns: 54px 34px;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.dashboard-skeleton-audit-label,
|
|
.dashboard-skeleton-downloads {
|
|
width: 48px;
|
|
height: 12px;
|
|
}
|
|
|
|
.dashboard-skeleton-audit-meter {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 3px;
|
|
}
|
|
|
|
.dashboard-skeleton-audit-meter > * {
|
|
width: 9px;
|
|
height: 4px;
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.dashboard-skeleton-downloads {
|
|
grid-column: downloads-start / actions-start;
|
|
justify-self: start;
|
|
}
|
|
|
|
.dashboard-skeleton-menu {
|
|
grid-column: actions-start / actions-end;
|
|
justify-self: end;
|
|
width: 20px;
|
|
height: 5px;
|
|
}
|
|
|
|
.dashboard-skeleton-import-banner {
|
|
display: grid;
|
|
grid-template-columns: auto auto minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 18px;
|
|
padding: 14px 16px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
|
|
border-radius: calc(var(--r-md) + 2px);
|
|
background: color-mix(in srgb, var(--surface) 92%, transparent);
|
|
}
|
|
|
|
.dashboard-skeleton-import-art {
|
|
width: 82px;
|
|
height: 56px;
|
|
}
|
|
|
|
.dashboard-skeleton-import-copy {
|
|
display: grid;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
max-width: 380px;
|
|
}
|
|
|
|
.dashboard-skeleton-import-title {
|
|
width: 152px;
|
|
height: 18px;
|
|
}
|
|
|
|
.dashboard-skeleton-import-text {
|
|
width: min(340px, 90%);
|
|
height: 12px;
|
|
}
|
|
|
|
.dashboard-skeleton-import-action {
|
|
grid-column: 4;
|
|
width: 132px;
|
|
height: 34px;
|
|
}
|
|
|
|
.dashboard-skeleton-stats {
|
|
margin-top: 32px;
|
|
}
|
|
|
|
.dashboard-skeleton-stats-toolbar {
|
|
justify-content: space-between;
|
|
gap: 20px;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.dashboard-skeleton-stats-controls {
|
|
gap: 10px;
|
|
}
|
|
|
|
.dashboard-skeleton-stats-filter {
|
|
width: 112px;
|
|
height: 32px;
|
|
}
|
|
|
|
.dashboard-skeleton-stats-range {
|
|
width: 278px;
|
|
height: 40px;
|
|
}
|
|
|
|
.dashboard-skeleton-stats-panel {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1.7fr) repeat(2, minmax(160px, 0.65fr));
|
|
min-height: 180px;
|
|
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
|
|
border-radius: calc(var(--r-md) + 2px);
|
|
}
|
|
|
|
.dashboard-skeleton-stats-primary,
|
|
.dashboard-skeleton-stats-side {
|
|
display: grid;
|
|
align-content: start;
|
|
gap: 10px;
|
|
padding: 20px;
|
|
}
|
|
|
|
.dashboard-skeleton-stats-side {
|
|
border-left: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
|
|
}
|
|
|
|
.dashboard-skeleton-stat-label {
|
|
width: 98px;
|
|
height: 10px;
|
|
}
|
|
|
|
.dashboard-skeleton-stat-value {
|
|
width: 92px;
|
|
height: 34px;
|
|
}
|
|
|
|
.dashboard-skeleton-stat-value-small {
|
|
width: 64px;
|
|
height: 24px;
|
|
}
|
|
|
|
.dashboard-skeleton-chart,
|
|
.dashboard-skeleton-chart-small {
|
|
align-self: end;
|
|
width: 100%;
|
|
height: 58px;
|
|
margin-top: 20px;
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.dashboard-skeleton-chart-small {
|
|
height: 44px;
|
|
margin-top: 15px;
|
|
}
|
|
|
|
@media (max-width: 1180px) {
|
|
.dashboard-skeleton-attention-grid {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 800px) {
|
|
.dashboard-skeleton-title {
|
|
width: 160px;
|
|
height: 34px;
|
|
}
|
|
|
|
.dashboard-skeleton-add-action {
|
|
width: 40px;
|
|
}
|
|
|
|
.dashboard-skeleton-attention-grid {
|
|
grid-template-columns: 1fr;
|
|
gap: 8px;
|
|
}
|
|
|
|
.dashboard-skeleton-attention-card {
|
|
min-height: 126px;
|
|
padding: 12px;
|
|
}
|
|
|
|
.dashboard-skeleton-toolbar {
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.dashboard-skeleton-tabs {
|
|
width: min(218px, 100%);
|
|
}
|
|
|
|
.dashboard-skeleton-toolbar-spacer {
|
|
display: none;
|
|
}
|
|
|
|
.dashboard-skeleton-search {
|
|
margin-left: auto;
|
|
}
|
|
|
|
.dashboard-skeleton-package-row {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 10px;
|
|
min-height: 68px;
|
|
}
|
|
|
|
.dashboard-skeleton-package-copy {
|
|
grid-column: 1;
|
|
}
|
|
|
|
.dashboard-skeleton-audit {
|
|
grid-column: 2;
|
|
}
|
|
|
|
.dashboard-skeleton-downloads,
|
|
.dashboard-skeleton-menu {
|
|
display: none;
|
|
}
|
|
|
|
.dashboard-skeleton-stats-toolbar {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.dashboard-skeleton-stats-controls,
|
|
.dashboard-skeleton-stats-range {
|
|
width: 100%;
|
|
}
|
|
|
|
.dashboard-skeleton-stats-filter {
|
|
flex: 0 0 96px;
|
|
}
|
|
|
|
.dashboard-skeleton-stats-panel {
|
|
grid-template-columns: 1fr 1fr;
|
|
}
|
|
|
|
.dashboard-skeleton-stats-primary {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.dashboard-skeleton-stats-side {
|
|
border-top: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
|
|
}
|
|
|
|
.dashboard-skeleton-stats-side:nth-child(2) {
|
|
border-left: 0;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 800px) {
|
|
.browse-page.dashboard-route.dashboard-final {
|
|
padding-inline: 20px;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-strip .results-list {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.dashboard-import-banner,
|
|
.dashboard-skeleton-import-banner {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 14px;
|
|
padding: 18px;
|
|
}
|
|
|
|
.dashboard-import-banner-art-wrap,
|
|
.dashboard-skeleton-import-art {
|
|
display: none;
|
|
}
|
|
|
|
.dashboard-import-banner-text {
|
|
max-width: none;
|
|
padding-right: 34px;
|
|
}
|
|
|
|
.dashboard-import-banner-heading {
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.dashboard-import-banner-actions {
|
|
grid-column: auto;
|
|
align-items: stretch;
|
|
width: 100%;
|
|
}
|
|
|
|
.dashboard-import-banner-action {
|
|
flex: 1 1 auto;
|
|
min-width: 0;
|
|
min-height: 42px;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.dashboard-import-banner-dismiss {
|
|
position: absolute;
|
|
top: 16px;
|
|
right: 16px;
|
|
height: 30px;
|
|
padding-inline: 7px;
|
|
}
|
|
|
|
.dashboard-skeleton-import-action {
|
|
grid-column: auto;
|
|
width: 100%;
|
|
}
|
|
|
|
.dashboard-final .dashboard-workspace-main {
|
|
gap: 22px;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-strip-header {
|
|
height: auto;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-strip .results-list {
|
|
gap: 8px;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-row.skill-list-item-no-icon {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
grid-template-rows: auto auto;
|
|
gap: 8px;
|
|
padding: 12px;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-row.skill-list-item-no-icon .skill-list-item-body {
|
|
min-height: 0;
|
|
padding-bottom: 8px;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-context {
|
|
display: -webkit-box;
|
|
overflow: hidden;
|
|
-webkit-box-orient: vertical;
|
|
-webkit-line-clamp: 1;
|
|
}
|
|
|
|
.dashboard-final .dashboard-attention-state {
|
|
min-height: 20px;
|
|
padding: 2px 7px;
|
|
}
|
|
|
|
.browse-page.dashboard-route .dashboard-catalog-row {
|
|
grid-template-columns: minmax(0, 1fr) 40px;
|
|
column-gap: 8px;
|
|
min-height: 76px;
|
|
padding-inline: 4px;
|
|
}
|
|
|
|
.browse-page.dashboard-route .dashboard-catalog-row .skill-list-item-body {
|
|
grid-column: 1;
|
|
justify-self: stretch;
|
|
text-align: left;
|
|
}
|
|
|
|
.browse-page.dashboard-route .dashboard-catalog-row .skill-list-item-main {
|
|
justify-content: flex-start;
|
|
text-align: left;
|
|
}
|
|
|
|
.browse-page.dashboard-route .dashboard-catalog-row .dashboard-row-actions {
|
|
grid-column: 2;
|
|
}
|
|
|
|
.browse-page.dashboard-route .dashboard-catalog-row-link {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.dashboard-downloads-mobile-slot {
|
|
display: block;
|
|
}
|
|
|
|
.dashboard-downloads-desktop-slot {
|
|
display: none;
|
|
}
|
|
|
|
.dashboard-downloads-compact-toolbar {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.dashboard-downloads-compact-toolbar-controls {
|
|
width: 100%;
|
|
}
|
|
|
|
.dashboard-downloads-compact-toolbar-controls > .browse-sort-select {
|
|
margin-right: 0;
|
|
}
|
|
|
|
.dashboard-downloads-compact-toolbar-controls > .clawhub-segmented {
|
|
width: 100%;
|
|
margin-left: 0;
|
|
margin-top: 8px;
|
|
}
|
|
}
|