Files
PartnerExpo-Core/public/css/searchbox.css
2026-02-01 12:10:18 +01:00

518 lines
10 KiB
CSS

.pexpo-core-root {
--accent1: #950000;
--accent2: #2c3489;
--bg: #f6f7fb;
--panel: #ffffff;
--panel2: #f2f4fb;
--stroke: rgba(16, 24, 40, .10);
--stroke2: rgba(16, 24, 40, .14);
--text: rgba(16, 24, 40, .92);
--muted: rgba(16, 24, 40, .62);
--shadow: 0 18px 45px rgba(16,24,40,.12);
--r: 14px;
--cardMin: 240;
--gap: 12px;
--filterW: 170px;
--filterWOpen: 360px;
--topbarH: 64px;
/* Basic font reset for the component only */
font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
color: var(--text);
line-height: 1.35;
font-size: 14px;
}
/* Scoped box-sizing reset */
.pexpo-core-root * { box-sizing: border-box; }
.pexpo-core-shell {
width: min(1100px, 96vw);
height: min(720px, 92vh);
background: linear-gradient(180deg, rgba(44,52,137,.05), transparent 42%), var(--panel);
border: 1px solid var(--stroke);
border-radius: calc(var(--r) + 2px);
box-shadow: var(--shadow);
overflow: hidden;
display:flex;
flex-direction:column;
position: relative;
isolation: isolate;
}
/* --- Top row --- */
.pexpo-core-topbar {
display:flex;
align-items:flex-start;
justify-content:space-between;
gap: 12px;
padding: 14px;
border-bottom: 1px solid var(--stroke);
background: linear-gradient(180deg, rgba(16,24,40,.02), rgba(16,24,40,.00));
position: relative;
z-index: 3;
}
.pexpo-core-topHeight {
height: 45px;
}
/* Filter button */
.pexpo-core-filterWrap {
width: var(--filterW);
transition: width 220ms ease;
}
.pexpo-core-filterWrap.pexpo-core-open { width: var(--filterWOpen); }
.pexpo-core-filterBtn {
width: 100%;
display:flex;
align-items:center;
justify-content:space-between;
gap: 10px;
padding: 10px 10px;
border-radius: 12px;
border: 1px solid var(--stroke2);
background: var(--panel2);
color: var(--text);
cursor:pointer;
user-select:none;
box-shadow: 0 8px 22px rgba(16,24,40,.10);
}
.pexpo-core-filterBtn .pexpo-core-left {
display:flex;
align-items:center;
gap: 10px;
min-width: 0;
}
.pexpo-core-pill {
font-size: 12px;
padding: 3px 8px;
border: 1px solid rgba(44,52,137,.25);
border-radius: 999px;
color: rgba(44,52,137,.85);
background: rgba(44,52,137,.06);
white-space:nowrap;
}
.pexpo-core-filterBtn .pexpo-core-label {
font-weight: 650;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* Sort */
.pexpo-core-sortWrap {
display:flex;
justify-content: space-between;
align-items:center;
gap: 10px;
padding: 10px 10px;
border-radius: 12px;
border: 1px solid var(--stroke2);
background: var(--panel2);
color: var(--text);
box-shadow: 0 8px 22px rgba(16,24,40,.10);
flex: 0 0 auto;
}
.pexpo-core-sortLabel {
font-weight: 650;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.pexpo-core-sortSelect {
border: 1px solid rgba(16,24,40,.16);
background: rgba(255,255,255,.95);
color: var(--text);
border-radius: 10px;
padding: 5px 10px;
outline: none;
font: inherit;
height: 35px;
}
.pexpo-core-sortSelect:focus {
border-color: rgba(44,52,137,.45);
box-shadow: 0 0 0 3px rgba(44,52,137,.14);
}
/* Search */
.pexpo-core-searchWrap {
flex: 1 1 auto;
display:flex;
justify-content:flex-end;
align-items:flex-start;
}
.pexpo-core-search {
width: min(520px, 100%);
display:flex;
align-items:center;
gap: 10px;
padding: 10px 12px;
border-radius: 14px;
border: 1px solid var(--stroke2);
background: rgba(255,255,255,.9);
box-shadow: 0 8px 22px rgba(16,24,40,.10);
}
.pexpo-core-search input {
width: 100%;
border: none;
outline: none;
background: transparent;
color: var(--text);
font-size: 14px;
}
.pexpo-core-kbd {
color: rgba(16,24,40,.62);
border: 1px solid rgba(16,24,40,.16);
border-bottom-color: rgba(16,24,40,.22);
background: rgba(255,255,255,.85);
border-radius: 8px;
padding: 2px 8px;
font-size: 12px;
white-space: nowrap;
}
/* --- Main body --- */
.pexpo-core-body {
flex: 1 1 auto;
padding: 14px;
overflow:auto;
position: relative;
z-index: 1;
}
.pexpo-core-metaRow {
display:flex;
align-items:center;
justify-content:space-between;
gap: 10px;
margin-bottom: 12px;
color: var(--muted);
font-size: 12px;
}
/* Masonry */
.pexpo-core-masonry {
display:flex;
gap: var(--gap);
align-items:flex-start;
}
.pexpo-core-mCol {
flex: 1 1 0;
min-width: 0;
display:flex;
flex-direction:column;
gap: var(--gap);
}
.pexpo-core-card {
border-radius: 14px;
border: 1px solid var(--stroke2);
background:
linear-gradient(180deg, rgba(143, 152, 255, 0.05), rgba(255,255,255,.92));
padding: 12px;
box-shadow: 0 12px 26px rgba(16,24,40,.10);
display:flex;
flex-direction:column;
gap: 8px;
}
.pexpo-core-imageWrap {
width: 100%;
height: auto;
border-radius: 10px;
overflow: hidden;
}
.pexpo-core-imageWrap img {
width: 100%;
height: auto;
display: block;
}
.pexpo-core-cardTop {
display:flex;
align-items:flex-start;
justify-content:space-between;
gap: 10px;
}
.pexpo-core-title {
font-weight: 750;
letter-spacing: .15px;
}
.pexpo-core-tag {
font-size: 12px;
padding: 3px 8px;
border-radius: 999px;
border: 1px solid rgba(149,0,0,.28);
color: rgba(149,0,0,.90);
background: rgba(149,0,0,.06);
white-space:nowrap;
}
.pexpo-core-desc {
color: rgba(16,24,40,.74);
font-size: 13px;
}
.pexpo-core-foot {
margin-top:auto;
display:flex;
align-items:center;
justify-content:space-between;
color: rgba(16,24,40,.60);
font-size: 12px;
border-top: 1px dashed rgba(16,24,40,.16);
padding-top: 8px;
}
.pexpo-core-dot {
width: 7px; height: 7px;
border-radius: 999px;
background: rgba(44,52,137,.55);
display:inline-block;
margin-right: 8px;
}
.pexpo-core-status {
display:flex;
align-items:center;
gap: 0;
}
/* Filter drawer */
.pexpo-core-filterDrawerBackdrop {
position:absolute;
inset: var(--topbarH) 0 0 0;
background: rgba(16,24,40,.20);
backdrop-filter: blur(2px);
opacity: 0;
pointer-events: none;
transition: opacity 180ms ease;
z-index: 2;
}
.pexpo-core-filterDrawerBackdrop.pexpo-core-show {
opacity: 1;
pointer-events: auto;
}
.pexpo-core-filterDrawer {
position:absolute;
top: var(--topbarH);
bottom: 0;
left: 14px;
width: var(--filterW);
border-radius: 14px;
border: 1px solid var(--stroke2);
background: rgba(255,255,255,.92);
overflow:hidden;
box-shadow: 0 18px 45px rgba(16,24,40,.18);
opacity: 0;
transform: translateY(-8px);
pointer-events: none;
transition: opacity 200ms ease, transform 200ms ease, width 220ms ease;
z-index: 3;
display:flex;
flex-direction:column;
min-height: 0;
margin: 12.5px 0 12.5px 0;
}
.pexpo-core-filterDrawer.pexpo-core-open {
opacity: 1;
transform: translateY(0);
pointer-events: auto;
width: var(--filterWOpen);
}
.pexpo-core-filterPanelHeader {
display:flex;
align-items:center;
justify-content:space-between;
padding: 10px 10px;
border-bottom: 1px solid var(--stroke);
color: rgba(16,24,40,.60);
background: linear-gradient(180deg, rgba(44,52,137,.05), rgba(255,255,255,.0));
flex: 0 0 auto;
}
.pexpo-core-filterPanelHeader b { color: var(--text); }
.pexpo-core-jsonBox {
padding: 10px;
flex: 1 1 auto;
overflow:auto;
min-height: 0;
}
.pexpo-core-textarea {
width: 100%;
height: 210px;
resize: vertical;
min-height: 180px;
max-height: 60vh;
border-radius: 10px;
border: 1px solid rgba(44,52,137,.20);
background: #fbfbfe;
color: rgba(16,24,40,.92);
padding: 10px;
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 12px;
line-height: 1.35;
outline: none;
}
.pexpo-core-textarea:focus {
border-color: rgba(44,52,137,.45);
box-shadow: 0 0 0 3px rgba(44,52,137,.14);
}
.pexpo-core-hint {
margin-top: 8px;
color: rgba(16,24,40,.60);
font-size: 12px;
}
.pexpo-core-error {
margin-top: 8px;
color: #950000;
font-size: 12px;
display:none;
}
.pexpo-core-error.pexpo-core-show { display:block; }
/* Drawer open padding */
.pexpo-core-shell.pexpo-core-drawerOpen .pexpo-core-body {
/* padding-left: calc(14px + var(--filterWOpen) + 14px); */
transition: padding-left 220ms ease;
}
.pexpo-core-shell:not(.pexpo-core-drawerOpen) .pexpo-core-body {
transition: padding-left 220ms ease;
}
/* Icons */
.pexpo-core-icons-search {
box-sizing: border-box;
position: relative;
display: block;
transform: scale(var(--ggs, 1));
width: 16px;
height: 16px;
border: 2px solid;
border-radius: 100%;
margin-left: -4px;
margin-top: -4px;
}
.pexpo-core-icons-search:after {
content: "";
display: block;
box-sizing: border-box;
position: absolute;
border-radius: 3px;
width: 3px;
height: 8px;
background: currentColor;
transform: rotate(-45deg);
top: 10px;
left: 12px;
}
.pexpo-core-icons-down {
box-sizing: border-box;
position: relative;
display: block;
transform: scale(var(--ggs, 1));
width: 22px;
height: 22px;
border: 2px solid transparent;
border-radius: 100px;
}
.pexpo-core-icons-down:after {
content: "";
display: block;
box-sizing: border-box;
position: absolute;
width: 10px;
height: 10px;
border-bottom: 2px solid;
border-right: 2px solid;
transform: rotate(45deg);
transition: 1s transform ease;
left: 4px;
top: 2px;
}
.pexpo-core-filterWrap.pexpo-core-open .pexpo-core-icons-down {
transform: rotate(-135deg) translate(-1px,-1px);
}
.pexpo-core-icons-options {
box-sizing: border-box;
position: relative;
display: block;
transform: scale(var(--ggs, 1));
width: 10px;
height: 2px;
box-shadow:
-3px 4px 0 0,
3px -4px 0 0;
margin: 0 10px 0 10px;
}
.pexpo-core-icons-options::after,
.pexpo-core-icons-options::before {
content: "";
display: block;
box-sizing: border-box;
position: absolute;
width: 8px;
height: 8px;
border: 2px solid;
border-radius: 100%;
}
.pexpo-core-icons-options::before {
top: -7px;
left: -4px;
}
.pexpo-core-icons-options::after {
bottom: -7px;
right: -4px;
}
@media (max-width: 720px) {
.pexpo-core-topbar { flex-direction:column; }
.pexpo-core-searchWrap { justify-content:stretch; }
.pexpo-core-search { width: 100%; }
.pexpo-core-filterWrap { width: 100%; }
.pexpo-core-filterWrap.pexpo-core-open { width: 100%; }
.pexpo-core-sortWrap { width: 100%; }
.pexpo-core-sortSelect { width: 110px; }
.pexpo-core-searchWrap { width: 100%; }
.pexpo-core-filterDrawer {
left: 14px;
right: 14px;
width: auto;
}
.pexpo-core-filterDrawer.pexpo-core-open { width: auto; }
.pexpo-core-shell.pexpo-core-drawerOpen .pexpo-core-body { padding-left: 14px; }
}