65-ci.css RawHistoryFolder
1@layer components {
2 /* CI: runs, jobs, steps, checks and the log. Hue only where it carries a
3 verdict, and every mark has its word beside it or in its label. */
4 .ck {
5 display: inline-block; width: 14px; height: 14px; margin-right: var(--s1); vertical-align: -2px;
6 border: 2px solid var(--ink-dim); border-radius: 50%; box-sizing: border-box; flex: none;
7 }
8 .ck-ok { background: var(--teal); border-color: var(--teal); }
9 .ck-bad { background: var(--red); border-color: var(--red); border-radius: 3px; transform: rotate(45deg) scale(.85); }
10 .ck-cancelled { border-style: dashed; }
11 .ck-skipped { border-color: var(--border-strong); background: var(--bg-raised); }
12 .ck-queued { border-style: dotted; }
13 .ck-running { border-color: var(--teal); border-top-color: transparent; animation: ck-spin 1s linear infinite; }
14 @keyframes ck-spin { to { transform: rotate(360deg); } }
15 @media (prefers-reduced-motion: reduce) { .ck-running { animation: none; border-top-color: var(--teal); } }
16
17 .ck-sum { display: inline-flex; align-items: center; gap: var(--s1); margin-left: var(--s2); font-size: var(--fs-xs); white-space: nowrap; }
18 /* The lists are table-layout: fixed, where a percentage is only a sliver:
19 the check column holds the mark, its count and the padding of the cells;
20 the refs list has the mark next to the sha. */
21 .c-ck { width: 1%; white-space: nowrap; }
22 .list .c-ck { width: 92px; }
23 .rail .list.commits .c-ck { width: 76px; }
24 .list.refs .c-sha { width: 150px; }
25
26 /* the table is fixed: the status column is the icon, its margin and the
27 padding of the cells (a percentage would leave a sliver) */
28 .runs .c-st { width: calc(14px + var(--s1) + 2 * var(--s3)); }
29 /* the recent runs of the summary rail */
30 .rruns {
31 display: grid; padding: 0; list-style: none; font-size: var(--fs-s);
32 & li { display: flex; align-items: center; gap: var(--s1); min-width: 0; padding: 2px 0; }
33 & .ck { margin-right: var(--s1); }
34 & .rr-name { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-hi); text-decoration: none; }
35 & .rr-name:hover { text-decoration: underline; }
36 & .rr-ref { flex: 1 1 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-left: var(--s1); font-family: var(--mono); color: var(--ink-dim); text-decoration: none; }
37 & time { flex: none; margin-left: auto; padding-left: var(--s2); white-space: nowrap; }
38 }
39 .runs .c-dur, .runs .c-who { white-space: nowrap; }
40 .runs tr[data-new] { background: var(--bg-raised); }
41
42 .run-h { display: flex; align-items: center; gap: var(--s2); margin: 0 0 var(--s4); }
43 .run-err, .job-err {
44 max-width: var(--measure); padding: var(--s3) var(--s4); margin: 0 0 var(--s4); white-space: pre-wrap; overflow-wrap: anywhere;
45 background: var(--bg-surface); border: 1px solid var(--border); border-left: 3px solid var(--red); border-radius: var(--r-s);
46 font: inherit; font-size: var(--fs-s);
47 }
48
49 .jobs { display: grid; gap: var(--s4); padding: 0; list-style: none; }
50 .jobs > li { padding: var(--s3) var(--s4); background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--r); }
51 .job-h { display: flex; align-items: center; gap: var(--s2); font-weight: 700; }
52 .steps { display: grid; gap: 2px; padding: 0; margin: var(--s2) 0 0; list-style: none; font-size: var(--fs-s); }
53 .steps li { display: flex; align-items: center; gap: var(--s1); }
54 .attempts { padding: 0; margin: var(--s2) 0 0; list-style: none; font-size: var(--fs-s); }
55 .checks { display: grid; gap: var(--s1); padding: 0; margin: 0; list-style: none; font-size: var(--fs-s); }
56 .checks li { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s1); }
57
58 /* annotations and summaries of a run */
59 .annots { margin: 0 0 var(--s4); }
60 .annots h3, .summaries h3 { display: flex; align-items: baseline; gap: var(--s2); margin: 0 0 var(--s2); font-size: var(--fs-s); }
61 .annot-list { display: grid; gap: var(--s2); padding: 0; margin: 0; list-style: none; }
62 .annot {
63 display: flex; gap: var(--s2); align-items: flex-start; padding: var(--s2) var(--s3);
64 background: var(--bg-surface); border: 1px solid var(--border); border-left: 3px solid var(--border-strong); border-radius: var(--r-s);
65 font-size: var(--fs-s);
66 }
67 .annot-failure { border-left-color: var(--red); }
68 .annot-warning { border-left-style: dashed; border-left-color: var(--ink-dim); }
69 .annot-notice { border-left-color: var(--teal); }
70 .annot p { margin: 0; }
71 .annot-step { flex-basis: 100%; font-weight: 700; }
72 .annot:has(.annot-step) { flex-wrap: wrap; }
73 .annot-body { min-width: 0; }
74 .annot-head { display: flex; flex-wrap: wrap; gap: var(--s2); align-items: baseline; }
75 .annot-level { font-weight: 700; }
76 .annot-msg { white-space: pre-wrap; overflow-wrap: anywhere; }
77 .annot-where { color: var(--ink-dim); font-family: var(--mono); overflow-wrap: anywhere; }
78 .an { display: inline-block; flex: none; width: 14px; height: 14px; margin-top: 2px; border: 2px solid var(--ink-dim); box-sizing: border-box; }
79 .an-failure { background: var(--red); border-color: var(--red); border-radius: 3px; transform: rotate(45deg) scale(.85); }
80 .an-warning { border-radius: 50% 50% 0 0; border-style: dashed; }
81 .an-notice { border-radius: 50%; border-color: var(--teal); }
82 .summaries { margin: var(--s5) 0 0; }
83 .summary { padding: var(--s3) var(--s4); background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--r); }
84 .summary + .summary { margin-top: var(--s3); }
85 .summary-step { margin: 0 0 var(--s2); font-size: var(--fs-s); color: var(--ink-dim); }
86
87 .joblog { margin-top: var(--s4); }
88 .log {
89 margin: 0; padding: var(--s2) 0; list-style: none; overflow-x: auto;
90 font: var(--fs-s) / 1.5 var(--mono); background: var(--bg-inset); border: 1px solid var(--border); border-radius: var(--r-s);
91 }
92 .log .lg { display: flex; gap: var(--s3); padding: 0 var(--s3); white-space: pre-wrap; overflow-wrap: anywhere; }
93 .log .lg:target { background: var(--bg-raised); }
94 .log .lg time { flex: none; color: var(--ink-dim); user-select: none; }
95 .log .lg .t { min-width: 0; }
96 .log .group .t { font-weight: 700; }
97 .log .endgroup { display: none; }
98 .log .error .t { color: var(--red); }
99 .joblog .more { margin: var(--s2) 0; font-size: var(--fs-s); }
100}