返回 CodeWhale
explorer.css
根目录 / web / components / ratatui / explorer.css
1 .ratatui-page .page-head { padding-block: 2.25rem 1.5rem; }
2 .ratatui-page .page-lede { max-width: 65ch; }
3 .ratatui-page .page-title { font-size: clamp(1.8rem, 3vw, 2.6rem); }
4 .rat-explorer { width: var(--container); margin: 0 auto 4rem; display: grid; grid-template-columns: 15rem minmax(0, 1fr); border-top: 1px solid var(--line); color: var(--text); scroll-margin-top: 5rem; }
5 .rat-explorer button, .rat-explorer input, .rat-explorer select { font: inherit; }
6 .rat-explorer button, .rat-explorer select { cursor: pointer; }
7 .rat-explorer button:disabled { opacity: .4; cursor: default; }
8 .rat-explorer :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
9 .rat-explorer ::selection { background: var(--accent); color: var(--bg); }
10 .rat-explorer input { caret-color: var(--accent); }
11 .rat-explorer svg { width: 1rem; height: 1rem; flex-shrink: 0; }
12 .rat-explorer a { text-underline-offset: .2em; }
13 .rat-task-picker { grid-column: 1 / -1; display: grid; gap: 1rem; padding-block: 1.25rem; border-bottom: 1px solid var(--line); }
14 .rat-task-picker h2 { font-size: 1.1rem; font-weight: 600; margin: 0 0 .25rem; }
15 .rat-task-picker p { margin: 0; color: var(--muted); font-size: .875rem; line-height: 1.55; max-width: 70ch; }
16 .rat-task-options { display: flex; flex-wrap: wrap; gap: .5rem; }
17 .rat-task-options .rat-button[aria-pressed=true] { background: var(--panel); color: var(--accent); border-color: var(--accent); }
18 .rat-task-options .rat-button { min-height: 2.75rem; }
19 .rat-usage-panel > p { font-size: .95rem; line-height: 1.6; max-width: 70ch; }
20 .rat-usage-panel > p:first-child { margin-top: 0; }
21 .rat-usage-panel .rat-code-heading { margin-top: 1.25rem; }
22 .rat-usage-links { display: flex; gap: .75rem 1.5rem; flex-wrap: wrap; margin-block: 1.25rem; }
23 .rat-empty-study { display: grid; align-content: start; justify-items: start; gap: 1rem; min-height: 20rem; }
24 .rat-empty-study p { color: var(--muted); max-width: 65ch; line-height: 1.6; }
25 .rat-browser { padding: 1.5rem 1.25rem 0 0; min-width: 0; border-inline-end: 1px solid var(--line); }
26 .rat-search { display: block; }
27 .rat-search > span, .rat-field, .rat-family-field { font-size: .8rem; font-weight: 500; }
28 .rat-search > div { display: flex; align-items: center; gap: .5rem; border-bottom: 1px solid var(--line-strong); padding-block: .5rem; margin-top: .2rem; }
29 .rat-search input { width: 100%; min-width: 0; background: none; border: 0; font-size: .875rem; color: var(--text); padding-block: .25rem; }
30 .rat-search input::placeholder { color: var(--muted); opacity: 1; }
31 .rat-search kbd { color: var(--muted); font-size: .75rem; }
32 .rat-family-field { display: grid; gap: .35rem; margin-top: 1.25rem; }
33 .rat-explorer select { color: var(--text); background: var(--bg); border: 1px solid var(--line-strong); border-radius: var(--radius-control); min-height: 2.4rem; padding: .35rem .5rem; max-width: 100%; min-width: 0; width: 100%; font-size: .875rem; }
34 .rat-count { font-size: .75rem; color: var(--muted); margin-block: .75rem 1rem; font-variant-numeric: tabular-nums; }
35 .rat-entry-list { max-height: 65rem; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--line-strong) transparent; padding-inline-end: .25rem; }
36 .rat-family { margin-bottom: 1.5rem; }
37 .rat-family h3 { font-size: .8rem; font-weight: 600; color: var(--muted); margin: 0 0 .5rem .5rem; }
38 .rat-family-count { font-weight: 400; font-variant-numeric: tabular-nums; }
39 .rat-family-index h2 { font-size: .95rem; font-weight: 600; margin: 0; line-height: 1.35; }
40 .rat-family-index .rat-entry-list { max-height: none; overflow: visible; }
41 .rat-family-index a.rat-entry { color: var(--text); text-decoration: none; align-items: center; }
42 .rat-family-index a.rat-entry:hover { background: var(--surface); }
43 .rat-index-back { margin-top: 1.25rem; color: var(--accent); }
44 .rat-entry { display: flex; justify-content: space-between; gap: .5rem; width: 100%; min-height: 2.4rem; text-align: start; padding: .5rem; border: 0; background: none; color: var(--text); border-radius: var(--radius-control); line-height: 1.3; font-size: .875rem !important; }
45 .rat-entry:hover { background: var(--surface); }
46 .rat-entry[aria-current] { background: var(--panel); color: var(--accent); font-weight: 600; }
47 .rat-entry-width { color: var(--muted); font-size: .7rem; padding-top: .12rem; font-weight: 400; font-variant-numeric: tabular-nums; }
48 .rat-study { min-width: 0; padding: 1.5rem 0 0 2rem; }
49 .rat-study-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
50 .rat-study-heading p { color: var(--muted); font-size: .8rem; margin: 0 0 .35rem; }
51 .rat-study h2 { font-size: 1.625rem; font-weight: 600; line-height: 1.2; margin: 0; text-wrap: balance; }
52 .rat-link { display: inline-flex; gap: .4rem; align-items: center; font-size: .8rem; white-space: nowrap; }
53 .rat-description { font-size: .95rem; color: var(--muted); line-height: 1.55; max-width: 68ch; margin-block: .75rem 1.25rem; }
54 .rat-study-tabs { display: flex; align-items: stretch; flex-wrap: wrap; gap: .25rem 1.25rem; border-bottom: 1px solid var(--line); }
55 .rat-study-tabs > button { background: none; border: 0; color: var(--muted); padding: .65rem 0; font-size: .875rem; min-height: 2.75rem; border-bottom: 2px solid transparent; }
56 .rat-study-tabs > button[aria-pressed=true] { color: var(--text); border-bottom-color: var(--accent); }
57 .rat-pager { margin-inline-start: auto; display: flex; gap: .25rem; }
58 .rat-pager button { background: none; border: 0; color: var(--text); padding: .65rem; }
59 .rat-prev-icon { transform: rotate(180deg); }
60 .rat-preview-controls { display: flex; align-items: end; flex-wrap: wrap; gap: 1rem; padding-block: 1rem; }
61 .rat-field { display: grid; gap: .3rem; }
62 .rat-scale { margin-inline-start: auto; }
63 .rat-button { background: var(--bg); color: var(--text); border: 1px solid var(--line-strong); border-radius: var(--radius-control); display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 2.4rem; padding: .4rem .7rem; font-size: .8rem !important; }
64 .rat-button:hover { background: var(--surface); }
65 .rat-button-primary { background: var(--accent); color: var(--on-brand); border-color: var(--accent); }
66 .rat-button-primary:hover { background: var(--accent-hover); }
67 .rat-terminal { overflow: auto; max-height: 48rem; background: var(--surface); scrollbar-width: thin; scrollbar-color: var(--line-strong) var(--surface); border-radius: var(--radius-surface); }
68 .rat-terminal img { display: block; width: auto; max-width: none; }
69 .rat-terminal-fit img { width: auto; max-width: 100%; height: auto; margin-inline: auto; }
70 .rat-preview-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; color: var(--muted); font-family: var(--font-mono); font-size: .7rem; margin-block: .75rem; font-variant-numeric: tabular-nums; }
71 .rat-preview-meta a { margin-inline-start: auto; font-family: var(--font-body); }
72 .rat-note { color: var(--muted); font-size: .8rem; line-height: 1.55; margin-block: .75rem; max-width: 70ch; }
73 .rat-note a { display: inline-flex; align-items: center; gap: .4rem; color: var(--accent); }
74 .rat-load { display: grid; place-content: center; justify-items: center; min-height: 18rem; background: var(--surface); color: var(--muted); gap: 1rem; border-radius: var(--radius-surface); font-size: .875rem; }
75 .rat-code-panel { padding-block: 1.25rem; }
76 .rat-code-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .75rem; }
77 .rat-code-heading h3 { font-size: 1rem; font-weight: 600; }
78 .rat-code-panel pre { overflow: auto; max-height: 37rem; background: var(--surface); border-radius: var(--radius-surface); padding: 1.25rem; font-size: .8rem; line-height: 1.65; color: var(--text); scrollbar-width: thin; scrollbar-color: var(--line-strong) var(--surface); }
79 .rat-copy-status { display: block; color: var(--muted); font-size: .75rem; margin-top: .2rem; }
80 .rat-api { border-top: 1px solid var(--line); padding-top: 1.25rem; margin-top: 1.5rem; }
81 .rat-api h3 { font-size: .875rem; font-weight: 600; margin-bottom: .6rem; }
82 .rat-api > div { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
83 .rat-api code { color: var(--accent); font-size: .8rem; }
84 .rat-api p { color: var(--muted); font-size: .8rem; margin-top: .75rem; line-height: 1.5; }
85 .rat-empty { padding: 1rem .5rem; font-size: .875rem; line-height: 1.5; }
86 .rat-empty h3 { font-size: 1rem; font-weight: 600; }
87 .rat-empty p { color: var(--muted); margin-block: .5rem 1rem; }
88 .rat-motion-intro { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; margin-block: 0 1rem; font-size: .8rem; }
89 .rat-motion-intro span { color: var(--muted); }
90 .rat-motion-controls { display: flex; align-items: end; flex-wrap: wrap; gap: .75rem 1rem; padding-top: 1rem; }
91 .rat-motion-controls .rat-field { grid-template-columns: auto auto; align-items: center; }
92 .rat-motion-controls .rat-field select { width: auto; }
93 .rat-scrubber { display: flex; flex: 1; gap: .6rem; align-items: center; font-size: .8rem; }
94 .rat-scrubber input { min-width: 5rem; flex: 1; accent-color: var(--accent); }
95 .rat-scrubber output { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
96 @media (max-width: 1050px) {
97 .rat-explorer { grid-template-columns: 13rem minmax(0, 1fr); }
98 .rat-study { padding-inline-start: 1.25rem; }
99 .rat-study-heading { align-items: start; flex-direction: column; gap: .5rem; }
100 }
101 @media (max-width: 760px) {
102 .ratatui-page .page-head { padding-block: 1.5rem; }
103 .rat-explorer { display: block; }
104 .rat-browser { border-inline-end: 0; border-bottom: 1px solid var(--line); padding: 1rem 0; }
105 .rat-family-field { margin-top: .75rem; }
106 .rat-entry-list { max-height: 11.5rem; }
107 .rat-family { margin-bottom: 1rem; }
108 .rat-entry { min-height: 2.5rem; }
109 .rat-study { padding: 1.5rem 0 0; }
110 .rat-study-heading { flex-direction: row; }
111 .rat-study-heading > .rat-link { font-size: 0; gap: 0; padding: .4rem; }
112 .rat-study-heading > .rat-link svg { width: 1.25rem; height: 1.25rem; }
113 .rat-preview-controls { gap: .75rem; }
114 .rat-preview-controls .rat-field:first-child { flex: 1; min-width: 10rem; }
115 .rat-scale { margin-inline-start: 0; }
116 .rat-terminal-fit:not(.rat-terminal-scaled) img { width: auto; min-width: min(100%, 400px); max-width: none; }
117 .rat-scrubber { flex-basis: 100%; order: 1; }
118 .rat-preview-meta { gap: .75rem; }
119 }
120
121 .rat-browser-results > summary { display: none; }
122 @media (min-width: 761px) {
123 .ratatui-page .page-head-text { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 2rem; }
124 .ratatui-page .page-head-text .page-title, .ratatui-page .page-head-text .page-lede { grid-column: 1; }
125 .ratatui-page .page-head-text .actions { grid-column: 2; grid-row: 1 / span 2; align-self: center; margin: 0; }
126 }
127 @media (max-width: 760px) {
128 .rat-browser-results > summary { display: flex; justify-content: space-between; align-items: center; min-height: 2.5rem; padding-block: .5rem; cursor: pointer; font-size: .875rem; }
129 .rat-browser-results > summary svg { transition: transform var(--dur-state) var(--ease-out); }
130 .rat-browser-results[open] > summary svg { transform: rotate(180deg); }
131 .rat-browser-results > summary + nav { margin-top: .5rem; }
132 }
133
133 lines CSS