@@ -16,17 +16,68 @@ const statusId = `${id}-search-status`;
1616 <div id ={ resultsId } class =" search-results" ></div >
1717</div >
1818<style >
19- .search-box { display: grid; gap: .35rem ; width: 100%; }
20- .search-box input { width: 100%; padding: .75rem 1rem; border: 1px solid var(--line); border-radius: .65rem ; background: var(--surface); color: var(--text); font-size: .95rem; }
21- .search-box input:focus { outline: 2px solid color-mix(in srgb, var(--accent) 60 %, transparent); outline-offset: 0; border-color: transparent ; }
22- .search-status { min-height: 1.1rem; margin: 0; color: var(--muted); font-size: .8rem ; }
19+ .search-box { display: grid; gap: .75rem ; width: 100%; }
20+ .search-box input { width: 100%; padding: .75rem 1rem; border: 1px solid var(--line); border-radius: .75rem ; background: var(--surface); color: var(--text); font-size: .95rem; transition: border-color .15s ease, box-shadow .15s ease ; }
21+ .search-box input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 25 %, transparent); }
22+ .search-status { min-height: 1.1rem; margin: 0; color: var(--muted); font-size: .82rem; font-weight: 500 ; }
2323 .search-status:empty { display: none; }
24- .search-results { display: grid; gap: .4rem ; max-height: 22rem ; overflow: auto; }
24+ .search-results { display: grid; gap: .65rem ; max-height: 26rem ; overflow-y : auto; padding-right: .2rem ; }
2525 .search-results:empty { display: none; }
26- .result { display: grid; gap: .15rem; padding: .7rem .8rem; border-radius: .55rem; background: var(--surface-raised); text-decoration: none; }
27- .result:hover { outline: 1px solid var(--line); }
28- .result strong { color: var(--text); font-size: .92rem; }
29- .result span { color: var(--muted); font-size: .82rem; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
30- .search-empty { margin: 0; padding: .6rem .2rem; color: var(--muted); font-size: .9rem; }
26+
27+ :global(.result-card) {
28+ display: flex;
29+ flex-direction: column;
30+ align-items: flex-start;
31+ gap: .6rem;
32+ padding: 1rem 1.1rem;
33+ border: 1px solid var(--line);
34+ border-radius: .85rem;
35+ background: var(--surface-raised);
36+ text-decoration: none;
37+ transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
38+ }
39+ :global(.result-card:hover) {
40+ border-color: color-mix(in srgb, var(--accent) 60%, var(--line));
41+ box-shadow: 0 .4rem 1.2rem color-mix(in srgb, var(--line) 40%, transparent);
42+ transform: translateY(-1px);
43+ }
44+ :global(.result-content) {
45+ display: grid;
46+ gap: .3rem;
47+ width: 100%;
48+ }
49+ :global(.result-title) {
50+ margin: 0;
51+ color: var(--text);
52+ font-family: var(--font-display);
53+ font-size: .98rem;
54+ font-weight: 700;
55+ line-height: 1.35;
56+ }
57+ :global(.result-excerpt) {
58+ margin: 0;
59+ color: var(--muted);
60+ font-size: .83rem;
61+ line-height: 1.45;
62+ display: -webkit-box;
63+ -webkit-line-clamp: 2;
64+ -webkit-box-orient: vertical;
65+ overflow: hidden;
66+ }
67+ :global(.result-badge) {
68+ display: inline-flex;
69+ align-items: center;
70+ padding: .25rem .65rem;
71+ border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line));
72+ border-radius: 999px;
73+ background: color-mix(in srgb, var(--accent) 12%, var(--surface));
74+ color: var(--accent);
75+ font-size: .7rem;
76+ font-weight: 800;
77+ letter-spacing: .06em;
78+ text-transform: uppercase;
79+ line-height: 1;
80+ }
81+ .search-empty { margin: 0; padding: .8rem .2rem; color: var(--muted); font-size: .9rem; }
3182 .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
3283</style >
0 commit comments