ApiDocsPage.css 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. .api-docs-page.is-dark {
  2. --sw-bg: #1f2026;
  3. --sw-bg-soft: #25272e;
  4. --sw-bg-input: #15161a;
  5. --sw-bg-code: #0d0e12;
  6. --sw-border: rgba(255, 255, 255, 0.08);
  7. --sw-border-strong: rgba(255, 255, 255, 0.15);
  8. --sw-text: rgba(255, 255, 255, 0.88);
  9. --sw-text-muted: rgba(255, 255, 255, 0.6);
  10. --sw-text-dim: rgba(255, 255, 255, 0.45);
  11. --sw-accent: #58a6ff;
  12. color-scheme: dark;
  13. }
  14. .api-docs-page.is-dark.is-ultra {
  15. --sw-bg: #0a0a0d;
  16. --sw-bg-soft: #131316;
  17. --sw-bg-input: #050507;
  18. --sw-bg-code: #000;
  19. --sw-border: rgba(255, 255, 255, 0.06);
  20. --sw-border-strong: rgba(255, 255, 255, 0.12);
  21. }
  22. .api-docs-page .content-shell {
  23. background: var(--bg-page);
  24. }
  25. .api-docs-page .content-area {
  26. padding: 16px;
  27. max-width: 100%;
  28. }
  29. @media (max-width: 768px) {
  30. .api-docs-page .content-area {
  31. padding: 8px;
  32. padding-top: 56px;
  33. }
  34. }
  35. .api-docs-page .docs-wrapper {
  36. background: var(--bg-card);
  37. border-radius: 8px;
  38. border: 1px solid var(--ant-color-border-secondary);
  39. overflow: hidden;
  40. }
  41. .api-docs-page .swagger-ui {
  42. font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  43. }
  44. /* ──────────────────────────────────────────────────────────────────
  45. Dark mode — Swagger UI does not ship a dark theme, so every visual
  46. surface needs an explicit override. Method-color chips (GET / POST /
  47. …) are left untouched because they carry meaning at a glance.
  48. ────────────────────────────────────────────────────────────────── */
  49. .api-docs-page.is-dark .swagger-ui,
  50. .api-docs-page.is-dark .swagger-ui .info .title,
  51. .api-docs-page.is-dark .swagger-ui .info .title small pre,
  52. .api-docs-page.is-dark .swagger-ui .info p,
  53. .api-docs-page.is-dark .swagger-ui .info li,
  54. .api-docs-page.is-dark .swagger-ui .info table,
  55. .api-docs-page.is-dark .swagger-ui .opblock-tag,
  56. .api-docs-page.is-dark .swagger-ui .opblock-tag small,
  57. .api-docs-page.is-dark .swagger-ui .opblock .opblock-summary-path,
  58. .api-docs-page.is-dark .swagger-ui .opblock .opblock-summary-path__deprecated,
  59. .api-docs-page.is-dark .swagger-ui .opblock .opblock-summary-description,
  60. .api-docs-page.is-dark .swagger-ui .opblock-description-wrapper p,
  61. .api-docs-page.is-dark .swagger-ui .opblock-external-docs-wrapper p,
  62. .api-docs-page.is-dark .swagger-ui .opblock-title_normal p,
  63. .api-docs-page.is-dark .swagger-ui table thead tr td,
  64. .api-docs-page.is-dark .swagger-ui table thead tr th,
  65. .api-docs-page.is-dark .swagger-ui table tbody tr td,
  66. .api-docs-page.is-dark .swagger-ui .parameter__name,
  67. .api-docs-page.is-dark .swagger-ui .parameter__type,
  68. .api-docs-page.is-dark .swagger-ui .parameter__in,
  69. .api-docs-page.is-dark .swagger-ui .parameter__extension,
  70. .api-docs-page.is-dark .swagger-ui .response-col_status,
  71. .api-docs-page.is-dark .swagger-ui .response-col_description,
  72. .api-docs-page.is-dark .swagger-ui .response-col_links,
  73. .api-docs-page.is-dark .swagger-ui .responses-inner h4,
  74. .api-docs-page.is-dark .swagger-ui .responses-inner h5,
  75. .api-docs-page.is-dark .swagger-ui label,
  76. .api-docs-page.is-dark .swagger-ui .tab li,
  77. .api-docs-page.is-dark .swagger-ui .tab li button,
  78. .api-docs-page.is-dark .swagger-ui .markdown,
  79. .api-docs-page.is-dark .swagger-ui .markdown p,
  80. .api-docs-page.is-dark .swagger-ui .markdown li,
  81. .api-docs-page.is-dark .swagger-ui .renderedmarkdown p,
  82. .api-docs-page.is-dark .swagger-ui .renderedmarkdown li,
  83. .api-docs-page.is-dark .swagger-ui .model-title,
  84. .api-docs-page.is-dark .swagger-ui .model,
  85. .api-docs-page.is-dark .swagger-ui .model-toggle:after,
  86. .api-docs-page.is-dark .swagger-ui section.models h4,
  87. .api-docs-page.is-dark .swagger-ui section.models h5,
  88. .api-docs-page.is-dark .swagger-ui .auth-container h4,
  89. .api-docs-page.is-dark .swagger-ui .auth-container h6,
  90. .api-docs-page.is-dark .swagger-ui .scopes h2,
  91. .api-docs-page.is-dark .swagger-ui .dialog-ux .modal-ux-header h3,
  92. .api-docs-page.is-dark .swagger-ui .dialog-ux .modal-ux-content h4,
  93. .api-docs-page.is-dark .swagger-ui .dialog-ux .modal-ux-content p,
  94. .api-docs-page.is-dark .swagger-ui .servers-title {
  95. color: var(--sw-text);
  96. }
  97. .api-docs-page.is-dark .swagger-ui .opblock-tag small,
  98. .api-docs-page.is-dark .swagger-ui .opblock-summary-description,
  99. .api-docs-page.is-dark .swagger-ui .parameter__in,
  100. .api-docs-page.is-dark .swagger-ui .parameter__type,
  101. .api-docs-page.is-dark .swagger-ui .parameter__extension,
  102. .api-docs-page.is-dark .swagger-ui .opblock-title_normal small,
  103. .api-docs-page.is-dark .swagger-ui .servers > label,
  104. .api-docs-page.is-dark .swagger-ui .servers > label span,
  105. .api-docs-page.is-dark .swagger-ui .response-control-media-type__accept-message {
  106. color: var(--sw-text-muted);
  107. }
  108. .api-docs-page.is-dark .swagger-ui .opblock-tag {
  109. border-bottom-color: var(--sw-border);
  110. }
  111. .api-docs-page.is-dark .swagger-ui .opblock {
  112. background: var(--sw-bg-soft);
  113. border-color: var(--sw-border);
  114. box-shadow: none;
  115. }
  116. .api-docs-page.is-dark .swagger-ui .opblock .opblock-section-header {
  117. background: rgba(255, 255, 255, 0.03);
  118. box-shadow: inset 0 -1px 0 var(--sw-border);
  119. }
  120. .api-docs-page.is-dark .swagger-ui .opblock .opblock-section-header h4,
  121. .api-docs-page.is-dark .swagger-ui .opblock .opblock-section-header label {
  122. color: var(--sw-text);
  123. }
  124. .api-docs-page.is-dark .swagger-ui .opblock .opblock-summary {
  125. border-bottom-color: var(--sw-border);
  126. }
  127. .api-docs-page.is-dark .swagger-ui .opblock-body pre.microlight,
  128. .api-docs-page.is-dark .swagger-ui .highlight-code,
  129. .api-docs-page.is-dark .swagger-ui .microlight,
  130. .api-docs-page.is-dark .swagger-ui pre.example,
  131. .api-docs-page.is-dark .swagger-ui code {
  132. background: var(--sw-bg-code);
  133. color: rgba(255, 255, 255, 0.92);
  134. }
  135. .api-docs-page.is-dark .swagger-ui .highlight-code .copy-to-clipboard {
  136. background: rgba(255, 255, 255, 0.06);
  137. }
  138. .api-docs-page.is-dark .swagger-ui input[type=text],
  139. .api-docs-page.is-dark .swagger-ui input[type=password],
  140. .api-docs-page.is-dark .swagger-ui input[type=search],
  141. .api-docs-page.is-dark .swagger-ui input[type=email],
  142. .api-docs-page.is-dark .swagger-ui input[type=file],
  143. .api-docs-page.is-dark .swagger-ui textarea {
  144. background: var(--sw-bg-input);
  145. color: var(--sw-text);
  146. border-color: var(--sw-border-strong);
  147. }
  148. .api-docs-page.is-dark .swagger-ui select {
  149. background-color: var(--sw-bg-input);
  150. background-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='%23b7bcbf' d='M13.418 7.859a.695.695 0 0 1 .978 0 .68.68 0 0 1 0 .969l-3.908 3.83a.697.697 0 0 1-.979 0l-3.908-3.83a.68.68 0 0 1 0-.969.695.695 0 0 1 .978 0L10 11z'/></svg>");
  151. background-position: right 10px center;
  152. background-repeat: no-repeat;
  153. background-size: 20px;
  154. color: var(--sw-text);
  155. border-color: var(--sw-border-strong);
  156. }
  157. .api-docs-page.is-dark .swagger-ui select option {
  158. background-color: var(--sw-bg-input);
  159. color: var(--sw-text);
  160. }
  161. .api-docs-page.is-dark .swagger-ui textarea {
  162. font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  163. }
  164. .api-docs-page.is-dark .swagger-ui input::placeholder,
  165. .api-docs-page.is-dark .swagger-ui textarea::placeholder {
  166. color: var(--sw-text-dim);
  167. }
  168. .api-docs-page.is-dark .swagger-ui .scheme-container {
  169. background: var(--sw-bg-soft);
  170. box-shadow: inset 0 -1px 0 var(--sw-border);
  171. }
  172. .api-docs-page.is-dark .swagger-ui .auth-wrapper .authorize {
  173. color: var(--sw-text);
  174. border-color: var(--sw-border-strong);
  175. }
  176. .api-docs-page.is-dark .swagger-ui .auth-wrapper .authorize svg {
  177. fill: var(--sw-text);
  178. }
  179. .api-docs-page.is-dark .swagger-ui .model-box,
  180. .api-docs-page.is-dark .swagger-ui section.models {
  181. background: var(--sw-bg-soft);
  182. border-color: var(--sw-border);
  183. }
  184. .api-docs-page.is-dark .swagger-ui section.models.is-open h4 {
  185. border-bottom-color: var(--sw-border);
  186. }
  187. .api-docs-page.is-dark .swagger-ui section.models .model-container {
  188. background: rgba(255, 255, 255, 0.02);
  189. border-color: var(--sw-border);
  190. }
  191. .api-docs-page.is-dark .swagger-ui section.models .model-container:hover {
  192. background: rgba(255, 255, 255, 0.04);
  193. }
  194. .api-docs-page.is-dark .swagger-ui .prop-type,
  195. .api-docs-page.is-dark .swagger-ui .prop-format {
  196. color: var(--sw-accent);
  197. }
  198. .api-docs-page.is-dark .swagger-ui .property.primitive {
  199. color: var(--sw-text-muted);
  200. }
  201. .api-docs-page.is-dark .swagger-ui .opblock-title_normal h4 {
  202. color: var(--sw-text);
  203. border-bottom-color: var(--sw-border);
  204. }
  205. .api-docs-page.is-dark .swagger-ui table.parameters,
  206. .api-docs-page.is-dark .swagger-ui table.responses-table,
  207. .api-docs-page.is-dark .swagger-ui table thead tr {
  208. border-color: var(--sw-border);
  209. }
  210. .api-docs-page.is-dark .swagger-ui table tbody tr td {
  211. border-bottom-color: var(--sw-border);
  212. }
  213. .api-docs-page.is-dark .swagger-ui table thead tr {
  214. border-bottom-color: var(--sw-border-strong);
  215. }
  216. .api-docs-page.is-dark .swagger-ui .response-col_status {
  217. font-weight: 600;
  218. }
  219. .api-docs-page.is-dark .swagger-ui .btn {
  220. background: rgba(255, 255, 255, 0.06);
  221. color: var(--sw-text);
  222. border-color: var(--sw-border-strong);
  223. box-shadow: none;
  224. }
  225. .api-docs-page.is-dark .swagger-ui .btn:hover {
  226. background: rgba(255, 255, 255, 0.1);
  227. }
  228. .api-docs-page.is-dark .swagger-ui .btn.execute {
  229. background: var(--sw-accent);
  230. color: #0d1117;
  231. border-color: var(--sw-accent);
  232. }
  233. .api-docs-page.is-dark .swagger-ui .btn.execute:hover {
  234. background: #79b9ff;
  235. }
  236. .api-docs-page.is-dark .swagger-ui .btn.authorize {
  237. color: #52c41a;
  238. border-color: rgba(82, 196, 26, 0.4);
  239. background: rgba(82, 196, 26, 0.08);
  240. }
  241. .api-docs-page.is-dark .swagger-ui .btn.authorize svg {
  242. fill: #52c41a;
  243. }
  244. .api-docs-page.is-dark .swagger-ui .authorization__btn svg,
  245. .api-docs-page.is-dark .swagger-ui .expand-operation svg,
  246. .api-docs-page.is-dark .swagger-ui .opblock-control-arrow svg {
  247. fill: var(--sw-text);
  248. opacity: 1;
  249. }
  250. .api-docs-page.is-dark .swagger-ui .authorization__btn .locked,
  251. .api-docs-page.is-dark .swagger-ui .authorization__btn .unlocked {
  252. opacity: 1;
  253. }
  254. .api-docs-page.is-dark .swagger-ui .btn.cancel {
  255. color: #ff7875;
  256. border-color: rgba(255, 120, 117, 0.4);
  257. background: rgba(255, 120, 117, 0.08);
  258. }
  259. .api-docs-page.is-dark .swagger-ui .btn.btn-clear,
  260. .api-docs-page.is-dark .swagger-ui .btn-clear,
  261. .api-docs-page.is-dark .swagger-ui .try-out__btn {
  262. color: var(--sw-text);
  263. background: rgba(255, 255, 255, 0.06);
  264. border-color: var(--sw-border-strong);
  265. }
  266. .api-docs-page.is-dark .swagger-ui .btn.btn-clear:hover,
  267. .api-docs-page.is-dark .swagger-ui .btn-clear:hover,
  268. .api-docs-page.is-dark .swagger-ui .try-out__btn:hover {
  269. background: rgba(255, 255, 255, 0.1);
  270. }
  271. .api-docs-page.is-dark .swagger-ui .filter .operation-filter-input {
  272. background: var(--sw-bg-input);
  273. border-color: var(--sw-border-strong);
  274. color: var(--sw-text);
  275. }
  276. .api-docs-page.is-dark .swagger-ui .dialog-ux .modal-ux {
  277. background: var(--sw-bg);
  278. border-color: var(--sw-border-strong);
  279. }
  280. .api-docs-page.is-dark .swagger-ui .dialog-ux .modal-ux-header {
  281. border-bottom-color: var(--sw-border);
  282. }
  283. .api-docs-page.is-dark .swagger-ui .dialog-ux .modal-ux-content {
  284. color: var(--sw-text);
  285. }
  286. .api-docs-page.is-dark .swagger-ui .arrow,
  287. .api-docs-page.is-dark .swagger-ui svg.arrow {
  288. fill: var(--sw-text-muted);
  289. }
  290. .api-docs-page.is-dark .swagger-ui .opblock-summary-control:focus {
  291. outline-color: var(--sw-accent);
  292. }
  293. .api-docs-page.is-dark .swagger-ui a,
  294. .api-docs-page.is-dark .swagger-ui .info a,
  295. .api-docs-page.is-dark .swagger-ui .info hgroup.main a,
  296. .api-docs-page.is-dark .swagger-ui .info .base-url,
  297. .api-docs-page.is-dark .swagger-ui .info__contact a,
  298. .api-docs-page.is-dark .swagger-ui .info__license a,
  299. .api-docs-page.is-dark .swagger-ui .info__tos a {
  300. color: var(--sw-accent);
  301. }
  302. .api-docs-page.is-dark .swagger-ui a:hover {
  303. color: #79b9ff;
  304. }
  305. .api-docs-page.is-dark .swagger-ui .info .title small {
  306. background: rgba(255, 255, 255, 0.08);
  307. color: var(--sw-text);
  308. }
  309. .api-docs-page.is-dark .swagger-ui .info .title small pre {
  310. color: var(--sw-text);
  311. }
  312. .api-docs-page.is-dark .swagger-ui .response-control-media-type--accept-controller select {
  313. border-color: rgba(82, 196, 26, 0.5);
  314. }
  315. .api-docs-page.is-dark .swagger-ui .loading-container .loading:before {
  316. border-color: var(--sw-accent) transparent transparent;
  317. }
  318. .api-docs-page.is-dark .swagger-ui .json-schema-form-item input,
  319. .api-docs-page.is-dark .swagger-ui .json-schema-form-item select {
  320. background: var(--sw-bg-input);
  321. color: var(--sw-text);
  322. border-color: var(--sw-border-strong);
  323. }
  324. .api-docs-page.is-dark .swagger-ui .topbar {
  325. background: var(--sw-bg);
  326. }
  327. .api-docs-page.is-dark .swagger-ui .information-container {
  328. background: transparent;
  329. }
  330. .api-docs-page.is-dark .swagger-ui .opblock-summary-method {
  331. text-shadow: none;
  332. }
  333. .api-docs-page.is-dark .swagger-ui .auth-btn-wrapper {
  334. border-top-color: var(--sw-border);
  335. }
  336. .api-docs-page.is-dark .swagger-ui .servers .computed-url,
  337. .api-docs-page.is-dark .swagger-ui .computed-url {
  338. background: var(--sw-bg-code);
  339. color: var(--sw-text);
  340. border: 1px solid var(--sw-border);
  341. }
  342. .api-docs-page.is-dark .swagger-ui .computed-url code,
  343. .api-docs-page.is-dark .swagger-ui .servers .computed-url code {
  344. background: transparent;
  345. color: var(--sw-text);
  346. }
  347. .api-docs-page.is-dark .swagger-ui .errors-wrapper {
  348. background: rgba(255, 77, 79, 0.08);
  349. border-color: rgba(255, 77, 79, 0.3);
  350. }
  351. .api-docs-page.is-dark .swagger-ui .errors-wrapper .errors h4,
  352. .api-docs-page.is-dark .swagger-ui .errors-wrapper .errors small {
  353. color: var(--sw-text);
  354. }