interface.scss 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  1. $nav-header-color: #6CA6EF;
  2. $nav-hover-color: #F4F4F4;
  3. $nav-border-color: #CCC;
  4. $nav-background-color: #FFF;
  5. $nav-icon-color: #626262;
  6. $nav-icon-active-color: #00ba00;
  7. $table-header-color: #6CA6EF;
  8. $table-row-color: #EFFEFF;
  9. $table-row-color-alternative: #E0ECEF;
  10. $table-row-border-color: #FFF;
  11. $table-header-font-color: #FFF;
  12. $table-header-border-color: #FFF;
  13. $widget-header-color: #CDCDCD;
  14. $widget-background-color: #EDEDED;
  15. $widget-graph-fill-color: #6CA6EF;
  16. $widget-graph-background-color: #E5E7E7E7;
  17. $pagination-active-color: #4d75af;
  18. $pagination-active-font-color: #FFF;
  19. $pagination-hover-color: #FF7400;
  20. $pagination-hover-font-color: #FFF;
  21. $footer-border-color: #CCC;
  22. @function toRGB ($color) {
  23. @return "rgb(" + red($color) + ", " + green($color) + ", " + blue($color)+ ")";
  24. }
  25. :root {
  26. --opcache-gui-graph-track-fill-color: #{$widget-graph-fill-color};
  27. --opcache-gui-graph-track-background-color: #{$widget-graph-background-color};
  28. }
  29. .opcache-gui {
  30. font-family: sans-serif;
  31. font-size: 90%;
  32. padding: 0;
  33. margin: 0;
  34. .hide {
  35. display: none;
  36. }
  37. .sr-only {
  38. border: 0 !important;
  39. clip: rect(1px, 1px, 1px, 1px) !important;
  40. -webkit-clip-path: inset(50%) !important;
  41. clip-path: inset(50%) !important;
  42. height: 1px !important;
  43. margin: -1px !important;
  44. overflow: hidden !important;
  45. padding: 0 !important;
  46. position: absolute !important;
  47. width: 1px !important;
  48. white-space: nowrap !important;
  49. }
  50. .main-nav {
  51. padding-top: 20px;
  52. }
  53. .nav-tab-list {
  54. list-style-type: none;
  55. padding-left: 8px;
  56. margin: 0;
  57. border-bottom: 1px solid $nav-border-color;
  58. }
  59. .nav-tab {
  60. display: inline-block;
  61. margin: 0 0 -1px 0;
  62. padding: 15px 30px;
  63. border: 1px solid transparent;
  64. border-bottom-color: $nav-border-color;
  65. text-decoration: none;
  66. background-color: $nav-background-color;
  67. cursor: pointer;
  68. user-select: none;
  69. &:hover {
  70. background-color: $nav-hover-color;
  71. text-decoration: underline;
  72. }
  73. &.active {
  74. border: 1px solid $nav-border-color;
  75. border-bottom-color: $nav-background-color;
  76. border-top: 3px solid $nav-header-color;
  77. }
  78. &.active:hover {
  79. background-color: initial;
  80. }
  81. &:focus {
  82. outline: 0;
  83. text-decoration: underline;
  84. }
  85. }
  86. .nav-tab-link-reset {
  87. background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1.5em" height="1.5em" viewBox="0 0 24 24"><path d="M17.65 6.35A7.958 7.958 0 0 0 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z" fill="#{toRGB($nav-icon-color)}"/></svg>');
  88. &.is-resetting {
  89. background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1.5em" height="1.5em" viewBox="0 0 24 24"><path d="M17.65 6.35A7.958 7.958 0 0 0 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z" fill="#{toRGB($nav-icon-active-color)}"/></svg>');
  90. }
  91. }
  92. .nav-tab-link-realtime {
  93. background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1.5em" height="1.5em" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8s8 3.58 8 8s-3.58 8-8 8z" fill="#{toRGB($nav-icon-color)}"/><path d="M12.5 7H11v6l5.25 3.15l.75-1.23l-4.5-2.67z" fill="#{toRGB($nav-icon-color)}"/></svg>');
  94. &.live-update {
  95. background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1.5em" height="1.5em" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8s8 3.58 8 8s-3.58 8-8 8z" fill="#{toRGB($nav-icon-active-color)}"/><path d="M12.5 7H11v6l5.25 3.15l.75-1.23l-4.5-2.67z" fill="#{toRGB($nav-icon-active-color)}"/></svg>');
  96. }
  97. }
  98. .nav-tab-link-reset, .nav-tab-link-realtime {
  99. position: relative;
  100. padding-left: 50px;
  101. &.pulse::before {
  102. content: "";
  103. position: absolute;
  104. top: 12px;
  105. left: 25px;
  106. width: 18px;
  107. height: 18px;
  108. z-index: 10;
  109. opacity: 0;
  110. background-color: transparent;
  111. border: 2px solid $nav-icon-active-color;
  112. border-radius: 100%;
  113. animation: pulse 2s linear infinite;
  114. }
  115. }
  116. .tab-content {
  117. padding: 2em;
  118. }
  119. .tab-content-overview-counts {
  120. width: 270px;
  121. float: right;
  122. }
  123. .tab-content-overview-info {
  124. margin-right: 280px;
  125. }
  126. .graph-widget {
  127. max-width: 100%;
  128. height: auto;
  129. margin: 0 auto;
  130. display: flex;
  131. position: relative;
  132. .widget-value {
  133. display: flex;
  134. align-items: center;
  135. justify-content: center;
  136. text-align: center;
  137. position: absolute;
  138. top: 0;
  139. width: 100%;
  140. height: 100%;
  141. margin: 0 auto;
  142. font-size: 3.2em;
  143. font-weight: 100;
  144. color: $widget-graph-fill-color;
  145. user-select: none;
  146. }
  147. }
  148. .widget-panel {
  149. background-color: $widget-background-color;
  150. margin-bottom: 10px;
  151. }
  152. .widget-header {
  153. background-color: $widget-header-color;
  154. padding: 4px 6px;
  155. margin: 0;
  156. text-align: center;
  157. font-size: 1rem;
  158. font-weight: bold;
  159. }
  160. .widget-value {
  161. margin: 0;
  162. text-align: center;
  163. span.large {
  164. color: $widget-graph-fill-color;
  165. font-size: 80pt;
  166. margin: 0;
  167. padding: 0;
  168. text-align: center;
  169. + span {
  170. font-size: 20pt;
  171. margin: 0;
  172. color: $widget-graph-fill-color;
  173. }
  174. }
  175. }
  176. .widget-info {
  177. margin: 0;
  178. padding: 10px;
  179. * {
  180. margin: 0;
  181. line-height: 1.75em;
  182. text-align: left;
  183. }
  184. }
  185. .tables {
  186. margin: 0 0 1em 0;
  187. border-collapse: collapse;
  188. width: 100%;
  189. table-layout: fixed;
  190. tr {
  191. &:nth-child(odd) {
  192. background-color: $table-row-color;
  193. }
  194. &:nth-child(even) {
  195. background-color: $table-row-color-alternative;
  196. }
  197. }
  198. th {
  199. text-align: left;
  200. padding: 6px;
  201. background-color: $table-header-color;
  202. color: $table-header-font-color;
  203. border-color: $table-header-border-color;
  204. font-weight: normal;
  205. }
  206. td {
  207. padding: 4px 6px;
  208. line-height: 1.4em;
  209. vertical-align: top;
  210. border-color: $table-row-border-color;
  211. overflow: hidden;
  212. overflow-wrap: break-word;
  213. text-overflow: ellipsis;
  214. }
  215. }
  216. .directive-list {
  217. list-style-type: none;
  218. padding: 0;
  219. margin: 0;
  220. li {
  221. margin-bottom: 0.5em;
  222. &:last-child {
  223. margin-bottom: 0;
  224. }
  225. ul {
  226. margin-top: 1.5em;
  227. }
  228. }
  229. }
  230. .file-filter {
  231. width: 520px;
  232. }
  233. .file-metainfo {
  234. font-size: 80%;
  235. &.invalid {
  236. font-style: italic;
  237. }
  238. }
  239. .file-pathname {
  240. width: 70%;
  241. display: block;
  242. }
  243. .nav-tab-link-reset,
  244. .nav-tab-link-realtime,
  245. .github-link,
  246. .sponsor-link {
  247. background-repeat: no-repeat;
  248. background-color: transparent;
  249. }
  250. .nav-tab-link-reset,
  251. .nav-tab-link-realtime {
  252. background-position: 24px 50%;
  253. }
  254. .main-footer {
  255. border-top: 1px solid $footer-border-color;
  256. padding: 1em 2em;
  257. }
  258. .github-link,
  259. .sponsor-link {
  260. background-position: 0 50%;
  261. padding: 2em 0 2em 2.3em;
  262. text-decoration: none;
  263. opacity: 0.7;
  264. font-size: 80%;
  265. &:hover {
  266. opacity: 1;
  267. }
  268. }
  269. .github-link {
  270. background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1.19em" height="1em" viewBox="0 0 1664 1408"><path d="M640 960q0 40-12.5 82t-43 76t-72.5 34t-72.5-34t-43-76t-12.5-82t12.5-82t43-76t72.5-34t72.5 34t43 76t12.5 82zm640 0q0 40-12.5 82t-43 76t-72.5 34t-72.5-34t-43-76t-12.5-82t12.5-82t43-76t72.5-34t72.5 34t43 76t12.5 82zm160 0q0-120-69-204t-187-84q-41 0-195 21q-71 11-157 11t-157-11q-152-21-195-21q-118 0-187 84t-69 204q0 88 32 153.5t81 103t122 60t140 29.5t149 7h168q82 0 149-7t140-29.5t122-60t81-103t32-153.5zm224-176q0 207-61 331q-38 77-105.5 133t-141 86t-170 47.5t-171.5 22t-167 4.5q-78 0-142-3t-147.5-12.5t-152.5-30t-137-51.5t-121-81t-86-115Q0 992 0 784q0-237 136-396q-27-82-27-170q0-116 51-218q108 0 190 39.5T539 163q147-35 309-35q148 0 280 32q105-82 187-121t189-39q51 102 51 218q0 87-27 168q136 160 136 398z" fill="#{toRGB($nav-icon-color)}"/></svg>');
  271. }
  272. .sponsor-link {
  273. background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24"><path fill="crimson" d="M12 21.35l-1.45-1.32c-5.15-4.67-8.55-7.75-8.55-11.53 0-3.08 2.42-5.5 5.5-5.5 1.74 0 3.41.81 4.5 2.09 1.09-1.28 2.76-2.09 4.5-2.09 3.08 0 5.5 2.42 5.5 5.5 0 3.78-3.4 6.86-8.55 11.54l-1.45 1.31z"/></svg>');
  274. margin-left: 2em;
  275. }
  276. .file-cache-only {
  277. margin-top: 0;
  278. }
  279. .paginate-filter {
  280. display: flex;
  281. align-items: baseline;
  282. justify-content: space-between;
  283. flex-wrap: wrap;
  284. .filter > * {
  285. padding: 3px;
  286. margin: 3px 3px 10px 0;
  287. }
  288. }
  289. .pagination {
  290. margin: 10px 0;
  291. padding: 0;
  292. li {
  293. display: inline-block;
  294. a {
  295. display: inline-flex;
  296. align-items: center;
  297. white-space: nowrap;
  298. line-height: 1;
  299. padding: 0.5rem 0.75rem;
  300. border-radius: 3px;
  301. text-decoration: none;
  302. height: 100%;
  303. &.arrow {
  304. font-size: 1.1rem;
  305. }
  306. &:active {
  307. transform: translateY(2px);
  308. }
  309. &.active {
  310. background-color: $pagination-active-color;
  311. color: $pagination-active-font-color;
  312. }
  313. &:hover:not(.active) {
  314. background-color: $pagination-hover-color;
  315. color: $pagination-hover-font-color;
  316. }
  317. }
  318. }
  319. }
  320. @media screen and (max-width: 750px) {
  321. .nav-tab-list {
  322. border-bottom: 0;
  323. }
  324. .nav-tab {
  325. display: block;
  326. margin: 0;
  327. }
  328. .nav-tab-link {
  329. display: block;
  330. margin: 0 10px;
  331. padding: 10px 0 10px 30px;
  332. border: 0;
  333. }
  334. .nav-tab-link[data-for].active {
  335. border-bottom-color: $nav-border-color;
  336. }
  337. .tab-content-overview-info {
  338. margin-right: auto;
  339. clear: both;
  340. }
  341. .tab-content-overview-counts {
  342. position: relative;
  343. display: block;
  344. width: 100%;
  345. }
  346. }
  347. @media screen and (max-width: 550px) {
  348. .file-filter {
  349. width: 100%;
  350. }
  351. }
  352. }
  353. @keyframes pulse {
  354. 0% {
  355. transform: scale(1);
  356. opacity: 1;
  357. }
  358. 50%,100% {
  359. transform: scale(2);
  360. opacity: 0;
  361. }
  362. }