@skillcdn/console 0.3.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/api.d.ts +1 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +1 -1
- package/dist/api.js.map +1 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +96 -7
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/format.d.ts.map +1 -1
- package/dist/cli/format.js +6 -4
- package/dist/cli/format.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +48 -17
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/pack.d.ts +7 -2
- package/dist/cli/pack.d.ts.map +1 -1
- package/dist/cli/pack.js +16 -2
- package/dist/cli/pack.js.map +1 -1
- package/dist/client.d.ts +7 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -1
- package/dist/client.js.map +1 -1
- package/dist/compat.d.ts +1 -1
- package/dist/compat.js +2 -2
- package/dist/components/board.d.ts +12 -1
- package/dist/components/board.d.ts.map +1 -1
- package/dist/components/board.js +52 -4
- package/dist/components/board.js.map +1 -1
- package/dist/components/calendar.d.ts +4 -0
- package/dist/components/calendar.d.ts.map +1 -1
- package/dist/components/calendar.js +61 -22
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/decision-form.d.ts +12 -4
- package/dist/components/decision-form.d.ts.map +1 -1
- package/dist/components/decision-form.js +24 -6
- package/dist/components/decision-form.js.map +1 -1
- package/dist/components/decision-list.d.ts +4 -0
- package/dist/components/decision-list.d.ts.map +1 -1
- package/dist/components/decision-list.js +9 -6
- package/dist/components/decision-list.js.map +1 -1
- package/dist/components/documents.d.ts.map +1 -1
- package/dist/components/documents.js +3 -3
- package/dist/components/documents.js.map +1 -1
- package/dist/components/event-feed.d.ts.map +1 -1
- package/dist/components/event-feed.js +63 -8
- package/dist/components/event-feed.js.map +1 -1
- package/dist/components/my-decisions.d.ts +20 -0
- package/dist/components/my-decisions.d.ts.map +1 -0
- package/dist/components/my-decisions.js +36 -0
- package/dist/components/my-decisions.js.map +1 -0
- package/dist/components/people.d.ts.map +1 -1
- package/dist/components/people.js +1 -1
- package/dist/components/people.js.map +1 -1
- package/dist/components/projects.d.ts.map +1 -1
- package/dist/components/projects.js +3 -3
- package/dist/components/projects.js.map +1 -1
- package/dist/components/roadmap.js +1 -1
- package/dist/components/roadmap.js.map +1 -1
- package/dist/components/runs.d.ts.map +1 -1
- package/dist/components/runs.js +1 -1
- package/dist/components/runs.js.map +1 -1
- package/dist/components/shell.d.ts.map +1 -1
- package/dist/components/shell.js +36 -1
- package/dist/components/shell.js.map +1 -1
- package/dist/components/task-list.js +1 -1
- package/dist/components/task-list.js.map +1 -1
- package/dist/components/task-view.d.ts.map +1 -1
- package/dist/components/task-view.js +2 -2
- package/dist/components/task-view.js.map +1 -1
- package/dist/components/ui.d.ts +10 -0
- package/dist/components/ui.d.ts.map +1 -1
- package/dist/components/ui.js +15 -11
- package/dist/components/ui.js.map +1 -1
- package/dist/console.css +1642 -433
- package/dist/console.d.ts.map +1 -1
- package/dist/console.js +70 -7
- package/dist/console.js.map +1 -1
- package/dist/data.d.ts +11 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +2 -0
- package/dist/data.js.map +1 -1
- package/dist/i18n/en.d.ts +34 -0
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +36 -2
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/ko.d.ts.map +1 -1
- package/dist/i18n/ko.js +37 -3
- package/dist/i18n/ko.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/router.d.ts +9 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +12 -0
- package/dist/router.js.map +1 -1
- package/dist/routes.d.ts +3 -1
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +3 -1
- package/dist/routes.js.map +1 -1
- package/dist/rules.js +1 -1
- package/dist/rules.js.map +1 -1
- package/dist/schemas.d.ts +242 -3
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +18 -4
- package/dist/schemas.js.map +1 -1
- package/docs/specs/cli.md +6 -5
- package/docs/specs/rest.md +11 -6
- package/package.json +2 -2
- package/skills/building-a-console/SKILL.md +3 -3
- package/skills/building-a-console/references/the-default-console.md +4 -4
- package/skills/building-a-console/references/the-look-from-a-website.md +5 -5
- package/skills/working-the-board/SKILL.md +6 -4
- package/skills/working-the-board/references/terms.md +1 -1
- package/src/api.ts +2 -0
- package/src/cli/cli.ts +123 -7
- package/src/cli/format.ts +11 -4
- package/src/cli/help.ts +49 -16
- package/src/cli/pack.ts +17 -1
- package/src/client.ts +21 -1
- package/src/compat.ts +2 -2
- package/src/components/board.tsx +114 -21
- package/src/components/calendar.tsx +207 -102
- package/src/components/decision-form.tsx +71 -23
- package/src/components/decision-list.tsx +30 -3
- package/src/components/documents.tsx +27 -11
- package/src/components/event-feed.tsx +116 -33
- package/src/components/my-decisions.tsx +138 -0
- package/src/components/people.tsx +3 -1
- package/src/components/projects.tsx +7 -5
- package/src/components/roadmap.tsx +1 -1
- package/src/components/runs.tsx +5 -1
- package/src/components/shell.tsx +36 -1
- package/src/components/task-list.tsx +1 -1
- package/src/components/task-view.tsx +48 -47
- package/src/components/ui.tsx +64 -11
- package/src/console.tsx +129 -27
- package/src/data.ts +17 -0
- package/src/i18n/en.ts +38 -2
- package/src/i18n/ko.ts +39 -3
- package/src/index.ts +3 -0
- package/src/router.ts +18 -1
- package/src/routes.ts +3 -1
- package/src/rules.ts +1 -1
- package/src/schemas.ts +20 -4
- package/src/styles/console.css +1642 -433
package/dist/console.css
CHANGED
|
@@ -3,98 +3,77 @@
|
|
|
3
3
|
* per building block, all prefixed `sc-` so that a custom console's own styles never collide
|
|
4
4
|
* with them. Re-skinning starts and mostly ends with the tokens.
|
|
5
5
|
*
|
|
6
|
-
* The look is SkillCDN's own
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* The look is SkillCDN's own, on a light ground: one blue accent and one warm point colour, the
|
|
7
|
+
* page a pale field, and the surfaces panes of frosted glass over it, so that the console reads as
|
|
8
|
+
* part of the same product as the site it is built for (ADR-0040).
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
:root {
|
|
12
|
-
color-scheme:
|
|
12
|
+
color-scheme: light;
|
|
13
13
|
|
|
14
|
-
/* Surfaces: the page's own
|
|
15
|
-
--sc-color-bg: #
|
|
16
|
-
--sc-color-bg-
|
|
17
|
-
--sc-color-bg-
|
|
18
|
-
--sc-color-
|
|
19
|
-
--sc-color-border: #
|
|
20
|
-
--sc-color-border-strong: #3b4960;
|
|
14
|
+
/* Surfaces: the page's own pale ground, the step into it, and white above it. */
|
|
15
|
+
--sc-color-bg: #f7f8fc;
|
|
16
|
+
--sc-color-bg-inset: #edf0f6;
|
|
17
|
+
--sc-color-bg-raised: #ffffff;
|
|
18
|
+
--sc-color-border: #e4e8ef;
|
|
19
|
+
--sc-color-border-strong: #7d899e;
|
|
21
20
|
|
|
22
|
-
/* Text. */
|
|
23
|
-
--sc-color-text: #
|
|
24
|
-
--sc-color-text-muted: #
|
|
25
|
-
--sc-color-text-faint: #
|
|
21
|
+
/* Text: the site's own ink on white. */
|
|
22
|
+
--sc-color-text: #14141a;
|
|
23
|
+
--sc-color-text-muted: #4b5563;
|
|
24
|
+
--sc-color-text-faint: #666c7c;
|
|
26
25
|
|
|
27
26
|
/* The one accent: the blue that text and lines are drawn in, and the deeper blue a surface
|
|
28
|
-
is filled with so that a white label reads on it.
|
|
29
|
-
|
|
30
|
-
--sc-color-accent
|
|
27
|
+
is filled with so that a white label reads on it. Under the pointer each is mixed a little
|
|
28
|
+
towards black where it is drawn. */
|
|
29
|
+
--sc-color-accent: #2c5bc4;
|
|
31
30
|
--sc-color-accent-solid: #3b6fd4;
|
|
32
|
-
--sc-color-accent-solid-hover: #4171d8;
|
|
33
31
|
--sc-color-accent-contrast: #ffffff;
|
|
34
|
-
--sc-color-accent-subtle: #
|
|
32
|
+
--sc-color-accent-subtle: #dbe6ff;
|
|
35
33
|
/* The point: the only warm colour, for what should be looked at first, never for a control. */
|
|
36
|
-
--sc-color-point: #
|
|
37
|
-
--sc-color-point-subtle: #
|
|
38
|
-
--sc-color-selection: color-mix(in srgb, var(--sc-color-accent-solid) 60%, transparent);
|
|
34
|
+
--sc-color-point: #c2410c;
|
|
35
|
+
--sc-color-point-subtle: #fff1e6;
|
|
39
36
|
|
|
40
37
|
/* Status. */
|
|
41
|
-
--sc-color-success: #
|
|
42
|
-
--sc-color-success-subtle: #
|
|
43
|
-
--sc-color-warning: #
|
|
44
|
-
--sc-color-warning-subtle: #
|
|
45
|
-
--sc-color-danger: #
|
|
46
|
-
--sc-color-danger-subtle: #
|
|
47
|
-
|
|
48
|
-
/* The ground: a
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
--sc-
|
|
55
|
-
--sc-color-
|
|
56
|
-
--sc-color-
|
|
57
|
-
|
|
58
|
-
--sc-color-
|
|
59
|
-
|
|
60
|
-
--sc-
|
|
61
|
-
--sc-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
--sc-glass-
|
|
68
|
-
--sc-
|
|
69
|
-
|
|
70
|
-
--sc-color-
|
|
71
|
-
--sc-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
)
|
|
76
|
-
padding-box;
|
|
77
|
-
--sc-glass-sheen: inset 0 1px 0 #ffffff4d, inset 0 0 0 1px #ffffff10, inset 0 3px 6px #ffffff12;
|
|
78
|
-
--sc-glass-lift: 0 0.75rem 2rem -0.75rem #00000059;
|
|
79
|
-
--sc-glass-lens: blur(4px) brightness(1.4) saturate(1.5) hue-rotate(-6deg);
|
|
80
|
-
--sc-glass-lens-width: 2px;
|
|
81
|
-
--sc-glass-lens-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
|
|
82
|
-
/* A surface inside a pane: no blur of its own, a little of the page's dark let through. */
|
|
83
|
-
--sc-color-sheet: color-mix(in srgb, var(--sc-color-bg) 72%, transparent);
|
|
84
|
-
--sc-color-sheet-hover: color-mix(in srgb, var(--sc-color-bg-raised) 80%, transparent);
|
|
85
|
-
--sc-color-field: color-mix(in srgb, var(--sc-color-bg) 78%, transparent);
|
|
86
|
-
|
|
87
|
-
/* Light falls from above: a lit thing spills downward, in the accent's own colour, in layers
|
|
88
|
-
that fall off the way brightness does. */
|
|
38
|
+
--sc-color-success: #146b44;
|
|
39
|
+
--sc-color-success-subtle: #d4efe1;
|
|
40
|
+
--sc-color-warning: #8f6100;
|
|
41
|
+
--sc-color-warning-subtle: #fff4cc;
|
|
42
|
+
--sc-color-danger: #b0273a;
|
|
43
|
+
--sc-color-danger-subtle: #fadadf;
|
|
44
|
+
|
|
45
|
+
/* The ground: a pale field, one gradient from the top. The default UI provides the field's
|
|
46
|
+
face (the shell); a custom console may paint its own. */
|
|
47
|
+
--sc-field-gradient: linear-gradient(160deg, #e3e9f7 0%, #eef1f9 42%, #f9fafd 100%);
|
|
48
|
+
|
|
49
|
+
/* Glass: what a pane over the field is made of. A wide blur with the colour behind pushed, a
|
|
50
|
+
white veil, a bright edge, and a soft stand-off from the field. */
|
|
51
|
+
--sc-glass-backdrop: blur(20px) saturate(1.6);
|
|
52
|
+
--sc-color-glass: #ffffff99;
|
|
53
|
+
--sc-color-glass-hover: #ffffffbf;
|
|
54
|
+
/* The rim: a hair of white along a pane's edge, its border. */
|
|
55
|
+
--sc-color-glass-edge: #ffffff;
|
|
56
|
+
/* The light that falls down a pane's face, from its top edge. */
|
|
57
|
+
--sc-glass-highlight: #ffffffb3;
|
|
58
|
+
--sc-glass-surface:
|
|
59
|
+
linear-gradient(170deg, var(--sc-glass-highlight), transparent 38%) padding-box,
|
|
60
|
+
linear-gradient(var(--sc-color-glass), var(--sc-color-glass)) padding-box;
|
|
61
|
+
--sc-glass-surface-hover:
|
|
62
|
+
linear-gradient(170deg, var(--sc-glass-highlight), transparent 38%) padding-box,
|
|
63
|
+
linear-gradient(var(--sc-color-glass-hover), var(--sc-color-glass-hover)) padding-box;
|
|
64
|
+
--sc-glass-sheen: inset 0 1px 0 #ffffff;
|
|
65
|
+
--sc-glass-lift: 0 0.5rem 1.5rem #1f268714, 0 1px 2px #1f26870f;
|
|
66
|
+
/* A surface inside a pane: no blur of its own, white with a little of the pane let through. */
|
|
67
|
+
--sc-color-sheet: color-mix(in srgb, var(--sc-color-bg-raised) 82%, transparent);
|
|
68
|
+
--sc-color-sheet-hover: color-mix(in srgb, var(--sc-color-bg-raised) 96%, transparent);
|
|
69
|
+
|
|
70
|
+
/* A lit thing casts the accent's own colour downward, in layers that fall off the way
|
|
71
|
+
brightness does. */
|
|
89
72
|
--sc-glow:
|
|
90
|
-
0 0.125rem 0.5rem -0.25rem color-mix(in srgb, var(--sc-color-accent-
|
|
91
|
-
0 0.5rem 1.25rem -0.5rem color-mix(in srgb, var(--sc-color-accent) 22%, transparent),
|
|
92
|
-
0 1.25rem 3rem -1rem color-mix(in srgb, var(--sc-color-accent) 11%, transparent);
|
|
93
|
-
--sc-
|
|
94
|
-
0 0.125rem 0.5rem -0.25rem color-mix(in srgb, var(--sc-color-accent-hover) 70%, transparent),
|
|
95
|
-
0 0.5rem 1.25rem -0.5rem color-mix(in srgb, var(--sc-color-accent) 45%, transparent),
|
|
96
|
-
0 1.25rem 3rem -1rem color-mix(in srgb, var(--sc-color-accent) 24%, transparent);
|
|
97
|
-
--sc-shadow-stage: 0 1.5rem 5rem #00000033;
|
|
73
|
+
0 0.125rem 0.5rem -0.25rem color-mix(in srgb, var(--sc-color-accent-solid) 40%, transparent),
|
|
74
|
+
0 0.5rem 1.25rem -0.5rem color-mix(in srgb, var(--sc-color-accent-solid) 22%, transparent),
|
|
75
|
+
0 1.25rem 3rem -1rem color-mix(in srgb, var(--sc-color-accent-solid) 11%, transparent);
|
|
76
|
+
--sc-shadow-stage: 0 1.25rem 3.5rem #1a2b552e;
|
|
98
77
|
|
|
99
78
|
/* Type. The Korean face comes first where the page provides it; the Latin stays with the
|
|
100
79
|
system's faces. */
|
|
@@ -105,8 +84,8 @@
|
|
|
105
84
|
ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", "D2Coding",
|
|
106
85
|
monospace;
|
|
107
86
|
|
|
108
|
-
--sc-text-xs: 0.
|
|
109
|
-
--sc-text-sm: 0.
|
|
87
|
+
--sc-text-xs: 0.8125rem;
|
|
88
|
+
--sc-text-sm: 0.9375rem;
|
|
110
89
|
--sc-text-md: 1rem;
|
|
111
90
|
--sc-text-lg: 1.125rem;
|
|
112
91
|
--sc-text-xl: 1.375rem;
|
|
@@ -114,6 +93,10 @@
|
|
|
114
93
|
--sc-leading-tight: 1.2;
|
|
115
94
|
--sc-leading-normal: 1.6;
|
|
116
95
|
--sc-leading-code: 1.7;
|
|
96
|
+
--sc-leading-snug: 1.45;
|
|
97
|
+
--sc-tracking-tight: -0.02em;
|
|
98
|
+
--sc-tracking-wide: 0.04em;
|
|
99
|
+
--sc-tracking-code: 0.12em;
|
|
117
100
|
--sc-weight-normal: 400;
|
|
118
101
|
--sc-weight-medium: 500;
|
|
119
102
|
--sc-weight-bold: 650;
|
|
@@ -139,20 +122,39 @@
|
|
|
139
122
|
--sc-radius-xl: 20px;
|
|
140
123
|
--sc-radius-full: 999px;
|
|
141
124
|
--sc-border: 1px solid var(--sc-color-border);
|
|
125
|
+
--sc-hairline: 1px solid color-mix(in srgb, var(--sc-color-border) 70%, transparent);
|
|
126
|
+
--sc-border-strong: 1px solid var(--sc-color-border-strong);
|
|
142
127
|
|
|
143
128
|
/* Layout. */
|
|
144
|
-
--sc-
|
|
129
|
+
--sc-gutter: var(--sc-space-7);
|
|
145
130
|
--sc-width-prose: 46rem;
|
|
146
131
|
--sc-width-aside: 18rem;
|
|
147
132
|
--sc-column-width: 13.5rem;
|
|
148
133
|
--sc-header-height: 3.75rem;
|
|
149
|
-
|
|
150
|
-
|
|
134
|
+
/* The lockup: the symbol's size, and the wordmark's height and the room between them as
|
|
135
|
+
fractions of it, the fractions those of the brand's lockup file (the wordmark 73.77 tall
|
|
136
|
+
on a symbol of 100, 31.98 between them). */
|
|
137
|
+
--sc-brand-size: 1.375rem;
|
|
138
|
+
--sc-brand-size-compact: 1.25rem;
|
|
139
|
+
--sc-brand-wordmark-ratio: 0.7377;
|
|
140
|
+
--sc-brand-gap-ratio: 0.3198;
|
|
151
141
|
--sc-control-size: 2.5rem;
|
|
152
142
|
--sc-focus-ring: 2px solid var(--sc-color-accent);
|
|
143
|
+
/* A scrollbar's thumb: a light grey, there when it is needed and quiet otherwise. */
|
|
144
|
+
--sc-scrollbar-thumb: color-mix(in srgb, var(--sc-color-border-strong) 45%, transparent);
|
|
145
|
+
/* A select's chevron: a thin stroke in a grey that reads on a light field and a dark one. */
|
|
146
|
+
--sc-select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%235a6371' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
|
|
153
147
|
--sc-transition: 120ms ease-out;
|
|
154
148
|
}
|
|
155
149
|
|
|
150
|
+
/* A page in Korean (the pages say their language on <html>): Hangul fills more of its box than
|
|
151
|
+
Latin capitals and sits higher in it, so a label is lifted less, and the tracking is off. */
|
|
152
|
+
:root:lang(ko) {
|
|
153
|
+
--sc-label-lift: -0.083em;
|
|
154
|
+
--sc-tracking-tight: 0;
|
|
155
|
+
--sc-tracking-wide: 0;
|
|
156
|
+
}
|
|
157
|
+
|
|
156
158
|
/* Reset: only what the pages need. */
|
|
157
159
|
|
|
158
160
|
*,
|
|
@@ -164,6 +166,10 @@
|
|
|
164
166
|
html {
|
|
165
167
|
-webkit-text-size-adjust: 100%;
|
|
166
168
|
text-size-adjust: 100%;
|
|
169
|
+
/* The room for a scrollbar is kept on every page, so that a page that scrolls and one that does
|
|
170
|
+
not put the header and the page at the same place. */
|
|
171
|
+
scrollbar-gutter: stable;
|
|
172
|
+
scrollbar-color: var(--sc-scrollbar-thumb) transparent;
|
|
167
173
|
scroll-padding-top: calc(var(--sc-header-height) + var(--sc-space-6));
|
|
168
174
|
}
|
|
169
175
|
|
|
@@ -205,7 +211,7 @@ h3,
|
|
|
205
211
|
h4 {
|
|
206
212
|
line-height: var(--sc-leading-tight);
|
|
207
213
|
font-weight: var(--sc-weight-bold);
|
|
208
|
-
letter-spacing: -
|
|
214
|
+
letter-spacing: var(--sc-tracking-tight);
|
|
209
215
|
text-wrap: balance;
|
|
210
216
|
}
|
|
211
217
|
|
|
@@ -222,7 +228,7 @@ a {
|
|
|
222
228
|
}
|
|
223
229
|
|
|
224
230
|
a:hover {
|
|
225
|
-
color: var(--sc-color-accent
|
|
231
|
+
color: color-mix(in srgb, var(--sc-color-accent) 85%, #000);
|
|
226
232
|
}
|
|
227
233
|
|
|
228
234
|
code,
|
|
@@ -262,7 +268,7 @@ table {
|
|
|
262
268
|
}
|
|
263
269
|
|
|
264
270
|
::selection {
|
|
265
|
-
background: var(--sc-color-
|
|
271
|
+
background: color-mix(in srgb, var(--sc-color-accent-solid) 25%, transparent);
|
|
266
272
|
color: var(--sc-color-accent-contrast);
|
|
267
273
|
}
|
|
268
274
|
|
|
@@ -319,53 +325,12 @@ table {
|
|
|
319
325
|
flex-direction: column;
|
|
320
326
|
min-height: 100dvh;
|
|
321
327
|
overflow-x: clip;
|
|
322
|
-
background-color: var(--sc-color-
|
|
323
|
-
/*
|
|
324
|
-
background-image:
|
|
325
|
-
ellipse 120% 64% at 50% 92%,
|
|
326
|
-
var(--sc-color-far),
|
|
327
|
-
var(--sc-color-far-turn) 48%,
|
|
328
|
-
transparent 72%
|
|
329
|
-
);
|
|
328
|
+
background-color: var(--sc-color-bg);
|
|
329
|
+
/* Fixed to the window, so that the page travels over the field and the field stays. */
|
|
330
|
+
background-image: var(--sc-field-gradient);
|
|
330
331
|
background-attachment: fixed;
|
|
331
332
|
}
|
|
332
333
|
|
|
333
|
-
/* The near light, high behind the header: an ellipse that is blurred rather than a gradient,
|
|
334
|
-
because a blur falls off the way light does. Fixed to the window, so that the page travels
|
|
335
|
-
through the light and the light stays where it is. */
|
|
336
|
-
.sc-shell::before {
|
|
337
|
-
content: "";
|
|
338
|
-
position: fixed;
|
|
339
|
-
z-index: -1;
|
|
340
|
-
top: var(--sc-light-top);
|
|
341
|
-
left: var(--sc-light-inset);
|
|
342
|
-
right: var(--sc-light-inset);
|
|
343
|
-
height: var(--sc-light-height);
|
|
344
|
-
background: radial-gradient(
|
|
345
|
-
ellipse closest-side,
|
|
346
|
-
var(--sc-color-light-core) 0%,
|
|
347
|
-
var(--sc-color-light-body) 14%,
|
|
348
|
-
var(--sc-color-light-mid) 42%,
|
|
349
|
-
var(--sc-color-light-halo) 70%,
|
|
350
|
-
transparent 100%
|
|
351
|
-
);
|
|
352
|
-
filter: blur(var(--sc-light-blur));
|
|
353
|
-
opacity: var(--sc-light-strength);
|
|
354
|
-
pointer-events: none;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
/* The air over both lights: the corners and the foot of the window taken down. */
|
|
358
|
-
.sc-shell::after {
|
|
359
|
-
content: "";
|
|
360
|
-
position: fixed;
|
|
361
|
-
z-index: -1;
|
|
362
|
-
inset: 0;
|
|
363
|
-
background-image:
|
|
364
|
-
linear-gradient(to bottom, transparent 60%, var(--sc-color-vignette)),
|
|
365
|
-
radial-gradient(ellipse 130% 110% at 50% 30%, transparent 36%, var(--sc-color-vignette) 100%);
|
|
366
|
-
pointer-events: none;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
334
|
.sc-skip {
|
|
370
335
|
position: absolute;
|
|
371
336
|
top: var(--sc-space-2);
|
|
@@ -388,8 +353,8 @@ table {
|
|
|
388
353
|
top: 0;
|
|
389
354
|
z-index: 10;
|
|
390
355
|
border-bottom: var(--sc-border);
|
|
391
|
-
background: color-mix(in srgb, var(--sc-color-bg)
|
|
392
|
-
backdrop-filter:
|
|
356
|
+
background: color-mix(in srgb, var(--sc-color-bg) 70%, transparent);
|
|
357
|
+
backdrop-filter: var(--sc-glass-backdrop);
|
|
393
358
|
}
|
|
394
359
|
|
|
395
360
|
.sc-header-inner {
|
|
@@ -397,22 +362,21 @@ table {
|
|
|
397
362
|
align-items: center;
|
|
398
363
|
gap: var(--sc-space-4);
|
|
399
364
|
width: 100%;
|
|
400
|
-
max-width: var(--sc-width-page);
|
|
401
365
|
height: var(--sc-header-height);
|
|
402
|
-
|
|
403
|
-
padding-inline: var(--sc-space-5);
|
|
366
|
+
padding-inline: var(--sc-gutter);
|
|
404
367
|
}
|
|
405
368
|
|
|
406
369
|
/* The brand: the lockup of the symbol and the wordmark where the console has marks, the name
|
|
407
|
-
of the workspace where it has none. The
|
|
370
|
+
of the workspace where it has none. The symbol, the wordmark and the room between them keep
|
|
371
|
+
the proportions of the brand's lockup file. */
|
|
408
372
|
.sc-brand {
|
|
409
373
|
display: inline-flex;
|
|
410
374
|
flex: none;
|
|
411
375
|
align-items: center;
|
|
412
|
-
gap: var(--sc-
|
|
376
|
+
gap: calc(var(--sc-brand-size) * var(--sc-brand-gap-ratio));
|
|
413
377
|
color: var(--sc-color-text);
|
|
414
378
|
font-weight: var(--sc-weight-bold);
|
|
415
|
-
letter-spacing: -
|
|
379
|
+
letter-spacing: var(--sc-tracking-tight);
|
|
416
380
|
text-decoration: none;
|
|
417
381
|
white-space: nowrap;
|
|
418
382
|
}
|
|
@@ -428,7 +392,7 @@ table {
|
|
|
428
392
|
|
|
429
393
|
.sc-brand-wordmark {
|
|
430
394
|
width: auto;
|
|
431
|
-
height: var(--sc-brand-size);
|
|
395
|
+
height: calc(var(--sc-brand-size) * var(--sc-brand-wordmark-ratio));
|
|
432
396
|
}
|
|
433
397
|
|
|
434
398
|
.sc-brand-name {
|
|
@@ -473,10 +437,8 @@ table {
|
|
|
473
437
|
the tabs scroll sideways where they do not fit, and nothing in the bar ever scrolls down. */
|
|
474
438
|
.sc-tabs {
|
|
475
439
|
width: 100%;
|
|
476
|
-
max-width: var(--sc-width-page);
|
|
477
|
-
margin-inline: auto;
|
|
478
440
|
margin-bottom: -1px;
|
|
479
|
-
padding-inline: var(--sc-
|
|
441
|
+
padding-inline: var(--sc-gutter);
|
|
480
442
|
overflow: auto hidden;
|
|
481
443
|
scrollbar-width: none;
|
|
482
444
|
}
|
|
@@ -531,7 +493,7 @@ table {
|
|
|
531
493
|
display: flex;
|
|
532
494
|
flex: none;
|
|
533
495
|
align-items: center;
|
|
534
|
-
gap:
|
|
496
|
+
gap: 0;
|
|
535
497
|
margin-left: auto;
|
|
536
498
|
}
|
|
537
499
|
|
|
@@ -543,9 +505,9 @@ table {
|
|
|
543
505
|
.sc-menu-summary {
|
|
544
506
|
display: flex;
|
|
545
507
|
align-items: center;
|
|
546
|
-
gap:
|
|
508
|
+
gap: 0.375rem;
|
|
547
509
|
min-height: var(--sc-control-size);
|
|
548
|
-
padding-inline: var(--sc-space-2);
|
|
510
|
+
padding-inline: var(--sc-space-1) var(--sc-space-2);
|
|
549
511
|
border-radius: var(--sc-radius-md);
|
|
550
512
|
color: var(--sc-color-text-muted);
|
|
551
513
|
list-style: none;
|
|
@@ -641,16 +603,32 @@ table {
|
|
|
641
603
|
border-top: var(--sc-border);
|
|
642
604
|
}
|
|
643
605
|
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
606
|
+
/* The small capitals over a group: a menu's heading, a field's label, a fact's name, a day of the
|
|
607
|
+
feed, a table's head. `.sc-eyebrow` is the class for a label of your own. */
|
|
608
|
+
.sc-eyebrow,
|
|
609
|
+
.sc-menu-heading,
|
|
610
|
+
.sc-field-label,
|
|
611
|
+
.sc-facts dt,
|
|
612
|
+
.sc-feed-day-title,
|
|
613
|
+
.sc-report > .sc-time,
|
|
614
|
+
.sc-task-aside .sc-section-title,
|
|
615
|
+
.sc-decision-label,
|
|
616
|
+
.sc-calendar-grid th,
|
|
617
|
+
.sc-workload thead th,
|
|
618
|
+
.sc-goal-tasks-state,
|
|
619
|
+
.sc-facts-row dt {
|
|
647
620
|
color: var(--sc-color-text-faint);
|
|
648
621
|
font-size: var(--sc-text-xs);
|
|
649
622
|
font-weight: var(--sc-weight-medium);
|
|
650
|
-
letter-spacing:
|
|
623
|
+
letter-spacing: var(--sc-tracking-wide);
|
|
651
624
|
text-transform: uppercase;
|
|
652
625
|
}
|
|
653
626
|
|
|
627
|
+
.sc-menu-heading {
|
|
628
|
+
display: block;
|
|
629
|
+
padding: var(--sc-space-1) var(--sc-space-3);
|
|
630
|
+
}
|
|
631
|
+
|
|
654
632
|
.sc-menu-chosen {
|
|
655
633
|
color: var(--sc-color-accent);
|
|
656
634
|
font-weight: var(--sc-weight-medium);
|
|
@@ -667,13 +645,12 @@ table {
|
|
|
667
645
|
.sc-live {
|
|
668
646
|
width: 0.5rem;
|
|
669
647
|
height: 0.5rem;
|
|
670
|
-
border-radius:
|
|
648
|
+
border-radius: var(--sc-radius-full);
|
|
671
649
|
background: var(--sc-color-text-faint);
|
|
672
650
|
}
|
|
673
651
|
|
|
674
652
|
.sc-live-on {
|
|
675
653
|
background: var(--sc-color-success);
|
|
676
|
-
box-shadow: 0 0 0 3px color-mix(in srgb, var(--sc-color-success) 25%, transparent);
|
|
677
654
|
}
|
|
678
655
|
|
|
679
656
|
/* The page. */
|
|
@@ -685,29 +662,32 @@ table {
|
|
|
685
662
|
flex: 1;
|
|
686
663
|
flex-direction: column;
|
|
687
664
|
width: 100%;
|
|
688
|
-
|
|
689
|
-
margin-inline: auto;
|
|
690
|
-
padding: var(--sc-space-6) var(--sc-space-5) var(--sc-space-8);
|
|
665
|
+
padding: var(--sc-space-6) var(--sc-gutter) var(--sc-space-8);
|
|
691
666
|
}
|
|
692
667
|
|
|
693
|
-
/* A page as wide as the window: the board, whose columns want every bit of it.
|
|
668
|
+
/* A page as wide as the window: the board, whose columns want every bit of it. It starts at the
|
|
669
|
+
same height as the other pages and, being as tall as the window, ends with the same room. */
|
|
694
670
|
.sc-main-wide {
|
|
695
671
|
max-width: none;
|
|
696
|
-
padding: var(--sc-space-
|
|
672
|
+
padding: var(--sc-space-6) var(--sc-gutter);
|
|
697
673
|
}
|
|
698
674
|
|
|
675
|
+
/* A page that takes the whole window takes the header with it, so that the lockup, the tabs and
|
|
676
|
+
the page start on one line, as they do on every other page. */
|
|
699
677
|
.sc-page-head {
|
|
700
678
|
display: flex;
|
|
701
679
|
flex-wrap: wrap;
|
|
702
|
-
align-items:
|
|
680
|
+
align-items: baseline;
|
|
703
681
|
justify-content: space-between;
|
|
704
682
|
gap: var(--sc-space-3);
|
|
705
|
-
margin-bottom: var(--sc-space-
|
|
683
|
+
margin-bottom: var(--sc-space-5);
|
|
684
|
+
padding-bottom: var(--sc-space-4);
|
|
685
|
+
border-bottom: var(--sc-hairline);
|
|
706
686
|
}
|
|
707
687
|
|
|
708
688
|
.sc-page-title {
|
|
709
689
|
font-size: var(--sc-text-2xl);
|
|
710
|
-
letter-spacing: -
|
|
690
|
+
letter-spacing: var(--sc-tracking-tight);
|
|
711
691
|
}
|
|
712
692
|
|
|
713
693
|
/* The ways a page offers at its head, side by side. */
|
|
@@ -755,6 +735,8 @@ table {
|
|
|
755
735
|
/* On the wide page the head and the lead keep out of the board's way. */
|
|
756
736
|
.sc-main-wide .sc-page-head {
|
|
757
737
|
margin-bottom: var(--sc-space-3);
|
|
738
|
+
padding-bottom: 0;
|
|
739
|
+
border-bottom: 0;
|
|
758
740
|
}
|
|
759
741
|
|
|
760
742
|
.sc-main-wide .sc-lead {
|
|
@@ -770,6 +752,15 @@ table {
|
|
|
770
752
|
font-size: var(--sc-text-lg);
|
|
771
753
|
}
|
|
772
754
|
|
|
755
|
+
/* After the name of a section a line runs to the end: the section starts here. */
|
|
756
|
+
.sc-section-title::after {
|
|
757
|
+
content: "";
|
|
758
|
+
flex: 1;
|
|
759
|
+
height: 1px;
|
|
760
|
+
margin-inline-start: var(--sc-space-2);
|
|
761
|
+
background: var(--sc-color-border);
|
|
762
|
+
}
|
|
763
|
+
|
|
773
764
|
/*
|
|
774
765
|
* Panes: the surfaces of the page are glass over the field. A pane is a veil of the page's own
|
|
775
766
|
* dark over a blur of what is behind it, with a thin lit edge; two panes differ only in what
|
|
@@ -787,37 +778,17 @@ table {
|
|
|
787
778
|
.sc-facts {
|
|
788
779
|
position: relative;
|
|
789
780
|
isolation: isolate;
|
|
790
|
-
border: 1px solid
|
|
781
|
+
border: 1px solid var(--sc-color-glass-edge);
|
|
791
782
|
background: var(--sc-glass-surface);
|
|
792
783
|
backdrop-filter: var(--sc-glass-backdrop);
|
|
793
784
|
box-shadow: var(--sc-glass-sheen), var(--sc-glass-lift);
|
|
794
785
|
}
|
|
795
786
|
|
|
796
|
-
|
|
797
|
-
.
|
|
798
|
-
.sc-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
.sc-comment::before,
|
|
802
|
-
.sc-sign-in::before,
|
|
803
|
-
.sc-facts::before {
|
|
804
|
-
content: "";
|
|
805
|
-
position: absolute;
|
|
806
|
-
inset: 0;
|
|
807
|
-
z-index: -1;
|
|
808
|
-
padding: var(--sc-glass-lens-width);
|
|
809
|
-
border-radius: inherit;
|
|
810
|
-
background: var(--sc-color-glass-edge);
|
|
811
|
-
backdrop-filter: var(--sc-glass-lens);
|
|
812
|
-
mask: var(--sc-glass-lens-mask);
|
|
813
|
-
mask-composite: exclude;
|
|
814
|
-
pointer-events: none;
|
|
815
|
-
}
|
|
816
|
-
|
|
817
|
-
/* A column's frame stands in front of what scrolls within it: a card scrolling out goes under
|
|
818
|
-
the lit edge, never over it. The other panes do not scroll, and keep the rim under the content. */
|
|
819
|
-
.sc-column::before {
|
|
820
|
-
z-index: 1;
|
|
787
|
+
/* A column of the board has no rim and no lift: its glass alone parts it from the field, so that
|
|
788
|
+
no line runs down its sides and the gaps between columns stay as light as the field. */
|
|
789
|
+
.sc-column {
|
|
790
|
+
border-color: transparent;
|
|
791
|
+
box-shadow: var(--sc-glass-sheen);
|
|
821
792
|
}
|
|
822
793
|
|
|
823
794
|
.sc-panel {
|
|
@@ -836,13 +807,13 @@ table {
|
|
|
836
807
|
.sc-person-row,
|
|
837
808
|
.sc-skill,
|
|
838
809
|
.sc-doc-row,
|
|
839
|
-
.sc-feed-item,
|
|
840
810
|
.sc-card,
|
|
841
811
|
.sc-option,
|
|
842
812
|
.sc-answer,
|
|
843
813
|
.sc-report-list {
|
|
844
814
|
border: var(--sc-border);
|
|
845
815
|
background: var(--sc-color-sheet);
|
|
816
|
+
box-shadow: 0 1px 2px #1f26870f;
|
|
846
817
|
}
|
|
847
818
|
|
|
848
819
|
.sc-loading {
|
|
@@ -894,18 +865,19 @@ table {
|
|
|
894
865
|
}
|
|
895
866
|
|
|
896
867
|
.sc-button-primary:hover:not(:disabled) {
|
|
897
|
-
background: var(--sc-color-accent-solid
|
|
868
|
+
background: color-mix(in srgb, var(--sc-color-accent-solid) 90%, #000);
|
|
898
869
|
color: var(--sc-color-accent-contrast);
|
|
899
|
-
box-shadow: var(--sc-glow
|
|
870
|
+
box-shadow: var(--sc-glow);
|
|
900
871
|
}
|
|
901
872
|
|
|
902
873
|
.sc-button-secondary {
|
|
903
|
-
background: var(--sc-color-
|
|
904
|
-
border-color: var(--sc-color-border
|
|
874
|
+
background: var(--sc-color-bg-raised);
|
|
875
|
+
border-color: var(--sc-color-border);
|
|
905
876
|
color: var(--sc-color-text);
|
|
906
877
|
}
|
|
907
878
|
|
|
908
879
|
.sc-button-secondary:hover:not(:disabled) {
|
|
880
|
+
border-color: var(--sc-color-border-strong);
|
|
909
881
|
background: var(--sc-color-bg-raised);
|
|
910
882
|
color: var(--sc-color-text);
|
|
911
883
|
}
|
|
@@ -933,24 +905,45 @@ table {
|
|
|
933
905
|
|
|
934
906
|
/* Badges: a pill on the grid, its label lifted to the middle of it. */
|
|
935
907
|
|
|
908
|
+
/* A badge is a small pill: a hair of room above and below its word, a little more at its sides,
|
|
909
|
+
so that a row of them on a card stays low. */
|
|
936
910
|
.sc-badge {
|
|
937
911
|
display: inline-flex;
|
|
938
912
|
align-items: center;
|
|
939
913
|
gap: var(--sc-space-1);
|
|
940
|
-
padding-inline: var(--sc-space-
|
|
941
|
-
padding-block: calc(var(--sc-space-1) - var(--sc-label-lift))
|
|
942
|
-
calc(var(--sc-space-1) + var(--sc-label-lift));
|
|
943
|
-
border:
|
|
914
|
+
padding-inline: calc(var(--sc-space-1) * 1.5);
|
|
915
|
+
padding-block: calc(var(--sc-space-1) / 2 - var(--sc-label-lift))
|
|
916
|
+
calc(var(--sc-space-1) / 2 + var(--sc-label-lift));
|
|
917
|
+
border: var(--sc-border);
|
|
944
918
|
border-radius: var(--sc-radius-full);
|
|
945
919
|
font-size: var(--sc-text-xs);
|
|
946
920
|
font-weight: var(--sc-weight-medium);
|
|
947
|
-
line-height:
|
|
921
|
+
line-height: var(--sc-leading-snug);
|
|
948
922
|
white-space: nowrap;
|
|
949
923
|
}
|
|
950
924
|
|
|
925
|
+
/* Where the browser can fit a line box to the glyphs, a badge's words are centred on their
|
|
926
|
+
cap height and baseline, whatever script they are in; the lift above is for where it cannot. */
|
|
927
|
+
@supports (text-box: trim-both cap alphabetic) {
|
|
928
|
+
.sc-badge {
|
|
929
|
+
padding-block: var(--sc-space-1) calc(var(--sc-space-1) - 1px);
|
|
930
|
+
line-height: 1;
|
|
931
|
+
text-box: trim-both cap alphabetic;
|
|
932
|
+
}
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
/*
|
|
936
|
+
* The tones of a badge, each a meaning: neutral for what merely is; accent (blue) for what is at
|
|
937
|
+
* work; success (green) for what is done; warning (amber) for what wants attention soon; point
|
|
938
|
+
* (orange) for what presses now, or is someone's; danger (red) for what is late or has failed.
|
|
939
|
+
* Each is a soft fill with its words in the same hue and no line around it, the categories
|
|
940
|
+
* alike, so that every badge on a page is one kind of pill; the fills are deep enough to stand
|
|
941
|
+
* off the sheet on their own.
|
|
942
|
+
*/
|
|
951
943
|
.sc-badge-neutral {
|
|
952
|
-
|
|
953
|
-
|
|
944
|
+
border-color: transparent;
|
|
945
|
+
background: #dfe3eb;
|
|
946
|
+
color: #3f4756;
|
|
954
947
|
}
|
|
955
948
|
|
|
956
949
|
.sc-badge-accent {
|
|
@@ -972,11 +965,11 @@ table {
|
|
|
972
965
|
color: var(--sc-color-success);
|
|
973
966
|
}
|
|
974
967
|
|
|
975
|
-
/*
|
|
968
|
+
/* Words on a yellow fill are a warm charcoal: a dark yellow reads as a muddy brown. */
|
|
976
969
|
.sc-badge-warning {
|
|
977
|
-
background: var(--sc-color-
|
|
978
|
-
border-color:
|
|
979
|
-
color:
|
|
970
|
+
background: var(--sc-color-warning-subtle);
|
|
971
|
+
border-color: transparent;
|
|
972
|
+
color: #44403c;
|
|
980
973
|
}
|
|
981
974
|
|
|
982
975
|
.sc-badge-danger {
|
|
@@ -992,7 +985,7 @@ table {
|
|
|
992
985
|
aspect-ratio: 1;
|
|
993
986
|
object-fit: cover;
|
|
994
987
|
border: var(--sc-border);
|
|
995
|
-
border-radius:
|
|
988
|
+
border-radius: var(--sc-radius-full);
|
|
996
989
|
background: var(--sc-color-bg-inset);
|
|
997
990
|
}
|
|
998
991
|
|
|
@@ -1037,6 +1030,12 @@ table {
|
|
|
1037
1030
|
font-weight: var(--sc-weight-medium);
|
|
1038
1031
|
}
|
|
1039
1032
|
|
|
1033
|
+
/* The picture in the menu's label sits in the control with a little room around it. */
|
|
1034
|
+
.sc-menu-summary .sc-avatar {
|
|
1035
|
+
width: 1.75rem;
|
|
1036
|
+
height: 1.75rem;
|
|
1037
|
+
}
|
|
1038
|
+
|
|
1040
1039
|
/* In the menu's label a long name gives way before the header runs out of room. */
|
|
1041
1040
|
.sc-menu-summary .sc-person-login {
|
|
1042
1041
|
max-width: 11rem;
|
|
@@ -1053,7 +1052,7 @@ table {
|
|
|
1053
1052
|
gap: var(--sc-space-4);
|
|
1054
1053
|
margin-bottom: var(--sc-space-4);
|
|
1055
1054
|
padding: var(--sc-space-4);
|
|
1056
|
-
border:
|
|
1055
|
+
border: var(--sc-border);
|
|
1057
1056
|
border-radius: var(--sc-radius-md);
|
|
1058
1057
|
background: var(--sc-color-sheet);
|
|
1059
1058
|
font-size: var(--sc-text-sm);
|
|
@@ -1087,7 +1086,7 @@ table {
|
|
|
1087
1086
|
|
|
1088
1087
|
.sc-empty {
|
|
1089
1088
|
padding: var(--sc-space-7) var(--sc-space-5);
|
|
1090
|
-
border: 1px dashed var(--sc-color-border
|
|
1089
|
+
border: 1px dashed var(--sc-color-border);
|
|
1091
1090
|
border-radius: var(--sc-radius-lg);
|
|
1092
1091
|
text-align: center;
|
|
1093
1092
|
}
|
|
@@ -1116,7 +1115,7 @@ table {
|
|
|
1116
1115
|
height: 1.25rem;
|
|
1117
1116
|
border: 2px solid var(--sc-color-border-strong);
|
|
1118
1117
|
border-top-color: var(--sc-color-accent);
|
|
1119
|
-
border-radius:
|
|
1118
|
+
border-radius: var(--sc-radius-full);
|
|
1120
1119
|
}
|
|
1121
1120
|
|
|
1122
1121
|
/* The ring turns whatever the motion preference: it says that the page still waits, and a ring
|
|
@@ -1167,10 +1166,6 @@ table {
|
|
|
1167
1166
|
|
|
1168
1167
|
.sc-field-label {
|
|
1169
1168
|
color: var(--sc-color-text-muted);
|
|
1170
|
-
font-size: var(--sc-text-xs);
|
|
1171
|
-
font-weight: var(--sc-weight-medium);
|
|
1172
|
-
letter-spacing: 0.04em;
|
|
1173
|
-
text-transform: uppercase;
|
|
1174
1169
|
}
|
|
1175
1170
|
|
|
1176
1171
|
.sc-field-row {
|
|
@@ -1184,9 +1179,9 @@ table {
|
|
|
1184
1179
|
width: 100%;
|
|
1185
1180
|
min-height: var(--sc-control-size);
|
|
1186
1181
|
padding: var(--sc-space-2) var(--sc-space-3);
|
|
1187
|
-
border:
|
|
1182
|
+
border: var(--sc-border-strong);
|
|
1188
1183
|
border-radius: var(--sc-radius-md);
|
|
1189
|
-
background: var(--sc-color-
|
|
1184
|
+
background: var(--sc-color-bg-raised);
|
|
1190
1185
|
color: var(--sc-color-text);
|
|
1191
1186
|
font-size: var(--sc-text-sm);
|
|
1192
1187
|
transition:
|
|
@@ -1198,6 +1193,38 @@ table {
|
|
|
1198
1193
|
color: var(--sc-color-text-faint);
|
|
1199
1194
|
}
|
|
1200
1195
|
|
|
1196
|
+
/* A file field: as tall as any other field, what it holds on one line with its button, and
|
|
1197
|
+
the button the browser gives it drawn as a small button of the console's own. */
|
|
1198
|
+
.sc-input[type="file"] {
|
|
1199
|
+
display: flex;
|
|
1200
|
+
align-items: center;
|
|
1201
|
+
padding-block: 0;
|
|
1202
|
+
color: var(--sc-color-text-muted);
|
|
1203
|
+
line-height: var(--sc-leading-snug);
|
|
1204
|
+
cursor: pointer;
|
|
1205
|
+
}
|
|
1206
|
+
|
|
1207
|
+
.sc-input[type="file"]::file-selector-button {
|
|
1208
|
+
margin-inline-end: var(--sc-space-3);
|
|
1209
|
+
padding: calc(var(--sc-space-1) + 1px) var(--sc-space-3);
|
|
1210
|
+
border: var(--sc-border);
|
|
1211
|
+
border-radius: var(--sc-radius-sm);
|
|
1212
|
+
background: var(--sc-color-sheet);
|
|
1213
|
+
color: var(--sc-color-text);
|
|
1214
|
+
font: inherit;
|
|
1215
|
+
font-size: var(--sc-text-xs);
|
|
1216
|
+
font-weight: var(--sc-weight-medium);
|
|
1217
|
+
cursor: pointer;
|
|
1218
|
+
transition:
|
|
1219
|
+
background var(--sc-transition),
|
|
1220
|
+
border-color var(--sc-transition);
|
|
1221
|
+
}
|
|
1222
|
+
|
|
1223
|
+
.sc-input[type="file"]:hover::file-selector-button {
|
|
1224
|
+
border-color: var(--sc-color-border-strong);
|
|
1225
|
+
background: var(--sc-color-sheet-hover);
|
|
1226
|
+
}
|
|
1227
|
+
|
|
1201
1228
|
.sc-input:hover:not(:disabled) {
|
|
1202
1229
|
border-color: color-mix(in srgb, var(--sc-color-border-strong) 60%, var(--sc-color-accent));
|
|
1203
1230
|
}
|
|
@@ -1209,10 +1236,22 @@ table {
|
|
|
1209
1236
|
}
|
|
1210
1237
|
|
|
1211
1238
|
.sc-input:disabled {
|
|
1212
|
-
opacity: 0.
|
|
1239
|
+
opacity: 0.55;
|
|
1213
1240
|
cursor: not-allowed;
|
|
1214
1241
|
}
|
|
1215
1242
|
|
|
1243
|
+
/* A select draws the browser's chevron itself, a thin stroke, as far from the edge as the words
|
|
1244
|
+
are from the other one: the browser's own arrow sits on the border and takes no padding. The
|
|
1245
|
+
chevron is a picture held in a token, so that a console of its own may draw its own. */
|
|
1246
|
+
select.sc-input {
|
|
1247
|
+
appearance: none;
|
|
1248
|
+
padding-right: calc(var(--sc-space-3) * 2 + 0.625rem);
|
|
1249
|
+
background-image: var(--sc-select-chevron);
|
|
1250
|
+
background-position: right var(--sc-space-3) center;
|
|
1251
|
+
background-size: 0.625rem 0.375rem;
|
|
1252
|
+
background-repeat: no-repeat;
|
|
1253
|
+
}
|
|
1254
|
+
|
|
1216
1255
|
/* What people write is prose first, so the box they write in is set in the page's own face. */
|
|
1217
1256
|
.sc-textarea {
|
|
1218
1257
|
min-height: 6rem;
|
|
@@ -1302,9 +1341,9 @@ table {
|
|
|
1302
1341
|
gap: var(--sc-space-2);
|
|
1303
1342
|
min-height: var(--sc-control-size);
|
|
1304
1343
|
padding: var(--sc-space-1) var(--sc-space-1) var(--sc-space-1) var(--sc-space-3);
|
|
1305
|
-
border:
|
|
1344
|
+
border: var(--sc-border);
|
|
1306
1345
|
border-radius: var(--sc-radius-md);
|
|
1307
|
-
background: var(--sc-color-
|
|
1346
|
+
background: var(--sc-color-bg-raised);
|
|
1308
1347
|
font-size: var(--sc-text-sm);
|
|
1309
1348
|
}
|
|
1310
1349
|
|
|
@@ -1398,22 +1437,22 @@ table {
|
|
|
1398
1437
|
scroll sideways when it is not, and each column scrolls within itself. */
|
|
1399
1438
|
|
|
1400
1439
|
.sc-board {
|
|
1401
|
-
display:
|
|
1440
|
+
display: flex;
|
|
1402
1441
|
flex: 1 1 0;
|
|
1403
|
-
|
|
1404
|
-
grid-auto-columns: minmax(var(--sc-column-width), 1fr);
|
|
1405
|
-
grid-template-rows: minmax(0, 1fr);
|
|
1442
|
+
align-items: stretch;
|
|
1406
1443
|
gap: var(--sc-space-3);
|
|
1407
1444
|
min-height: 24rem;
|
|
1408
1445
|
overflow-x: auto;
|
|
1409
1446
|
scroll-snap-type: x proximity;
|
|
1410
1447
|
scrollbar-width: thin;
|
|
1411
|
-
scrollbar-color: var(--sc-
|
|
1448
|
+
scrollbar-color: var(--sc-scrollbar-thumb) transparent;
|
|
1412
1449
|
}
|
|
1413
1450
|
|
|
1414
1451
|
.sc-column {
|
|
1415
1452
|
display: flex;
|
|
1453
|
+
flex: 1 0 var(--sc-column-width);
|
|
1416
1454
|
flex-direction: column;
|
|
1455
|
+
min-width: 0;
|
|
1417
1456
|
min-height: 0;
|
|
1418
1457
|
/* The body scrolls; the column clips, so that nothing of it reaches the board's own scrolling. */
|
|
1419
1458
|
overflow: hidden;
|
|
@@ -1431,10 +1470,59 @@ table {
|
|
|
1431
1470
|
}
|
|
1432
1471
|
|
|
1433
1472
|
.sc-column-header h2 {
|
|
1434
|
-
font-size: var(--sc-text-
|
|
1473
|
+
font-size: var(--sc-text-sm);
|
|
1435
1474
|
font-weight: var(--sc-weight-bold);
|
|
1436
|
-
|
|
1437
|
-
|
|
1475
|
+
}
|
|
1476
|
+
|
|
1477
|
+
/* The name of a column stands first; its count and the way to fold it keep to the end. */
|
|
1478
|
+
.sc-column-header > .sc-column-title {
|
|
1479
|
+
margin-inline-end: auto;
|
|
1480
|
+
}
|
|
1481
|
+
|
|
1482
|
+
/* The way to fold a column of finished work, or to open it again. */
|
|
1483
|
+
.sc-column-toggle {
|
|
1484
|
+
display: inline-grid;
|
|
1485
|
+
flex: none;
|
|
1486
|
+
place-items: center;
|
|
1487
|
+
width: 1.5rem;
|
|
1488
|
+
height: 1.5rem;
|
|
1489
|
+
padding: 0;
|
|
1490
|
+
border: 0;
|
|
1491
|
+
border-radius: var(--sc-radius-sm);
|
|
1492
|
+
background: transparent;
|
|
1493
|
+
color: var(--sc-color-text-muted);
|
|
1494
|
+
transition:
|
|
1495
|
+
background var(--sc-transition),
|
|
1496
|
+
color var(--sc-transition);
|
|
1497
|
+
}
|
|
1498
|
+
|
|
1499
|
+
.sc-column-toggle:hover {
|
|
1500
|
+
background: var(--sc-color-bg-inset);
|
|
1501
|
+
color: var(--sc-color-text);
|
|
1502
|
+
}
|
|
1503
|
+
|
|
1504
|
+
.sc-column-toggle svg {
|
|
1505
|
+
width: 1rem;
|
|
1506
|
+
height: 1rem;
|
|
1507
|
+
}
|
|
1508
|
+
|
|
1509
|
+
/* A folded column is a strip: the way to open it on top, its name down its length, its count. */
|
|
1510
|
+
/* A folded column is its header alone, the height of a header and as wide as its name: the way
|
|
1511
|
+
to open it, the name and the count in a row, at the top of the board. */
|
|
1512
|
+
.sc-column-folded {
|
|
1513
|
+
flex: 0 0 auto;
|
|
1514
|
+
align-self: flex-start;
|
|
1515
|
+
width: auto;
|
|
1516
|
+
}
|
|
1517
|
+
|
|
1518
|
+
.sc-column-folded .sc-column-header {
|
|
1519
|
+
gap: var(--sc-space-2);
|
|
1520
|
+
padding: var(--sc-space-3) var(--sc-space-4) var(--sc-space-3) var(--sc-space-3);
|
|
1521
|
+
border-bottom: 0;
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
.sc-column-folded .sc-column-toggle {
|
|
1525
|
+
order: -1;
|
|
1438
1526
|
}
|
|
1439
1527
|
|
|
1440
1528
|
.sc-column-count {
|
|
@@ -1444,7 +1532,7 @@ table {
|
|
|
1444
1532
|
min-width: 1.5rem;
|
|
1445
1533
|
padding-inline: var(--sc-space-2);
|
|
1446
1534
|
border-radius: var(--sc-radius-full);
|
|
1447
|
-
background: var(--sc-color-
|
|
1535
|
+
background: color-mix(in srgb, var(--sc-color-text-muted) 12%, transparent);
|
|
1448
1536
|
color: var(--sc-color-text-muted);
|
|
1449
1537
|
font-size: var(--sc-text-xs);
|
|
1450
1538
|
font-weight: var(--sc-weight-medium);
|
|
@@ -1464,22 +1552,38 @@ table {
|
|
|
1464
1552
|
color: var(--sc-color-text-faint);
|
|
1465
1553
|
}
|
|
1466
1554
|
|
|
1555
|
+
.sc-column-folded .sc-column-header > .sc-column-title {
|
|
1556
|
+
margin-inline-end: 0;
|
|
1557
|
+
}
|
|
1558
|
+
|
|
1559
|
+
/* The cards of a column scroll within it; where more of them are below, the last one in view
|
|
1560
|
+
fades at the foot rather than being cut, the room below the cards keeping a whole one clear. */
|
|
1467
1561
|
.sc-column-body {
|
|
1468
1562
|
display: grid;
|
|
1469
1563
|
flex: 1;
|
|
1470
1564
|
align-content: start;
|
|
1471
1565
|
gap: var(--sc-space-2);
|
|
1472
1566
|
min-height: 0;
|
|
1473
|
-
padding: var(--sc-space-2);
|
|
1567
|
+
padding: var(--sc-space-2) var(--sc-space-2) var(--sc-space-6);
|
|
1474
1568
|
overflow-y: auto;
|
|
1569
|
+
mask-image: linear-gradient(to bottom, #000 calc(100% - var(--sc-space-6)), transparent);
|
|
1475
1570
|
scrollbar-width: thin;
|
|
1476
|
-
scrollbar-color:
|
|
1571
|
+
scrollbar-color: transparent transparent;
|
|
1477
1572
|
}
|
|
1478
1573
|
|
|
1574
|
+
/* The scrollbar of a column shows only while the pointer is over the column; the fade at the foot
|
|
1575
|
+
says there is more. */
|
|
1576
|
+
.sc-column:hover .sc-column-body,
|
|
1577
|
+
.sc-column-body:focus-within {
|
|
1578
|
+
scrollbar-color: var(--sc-scrollbar-thumb) transparent;
|
|
1579
|
+
}
|
|
1580
|
+
|
|
1581
|
+
/* A card is compact, since a column holds many: the number, the title and one row of badges, with
|
|
1582
|
+
the people at its end, and no line between them; what is due reads from the badges as before. */
|
|
1479
1583
|
.sc-card {
|
|
1480
1584
|
display: grid;
|
|
1481
1585
|
gap: var(--sc-space-1);
|
|
1482
|
-
padding: var(--sc-space-3);
|
|
1586
|
+
padding: var(--sc-space-2) var(--sc-space-3);
|
|
1483
1587
|
border-radius: var(--sc-radius-lg);
|
|
1484
1588
|
transition:
|
|
1485
1589
|
border-color var(--sc-transition),
|
|
@@ -1498,7 +1602,7 @@ table {
|
|
|
1498
1602
|
color: var(--sc-color-text);
|
|
1499
1603
|
font-size: var(--sc-text-sm);
|
|
1500
1604
|
font-weight: var(--sc-weight-medium);
|
|
1501
|
-
line-height:
|
|
1605
|
+
line-height: var(--sc-leading-snug);
|
|
1502
1606
|
text-decoration: none;
|
|
1503
1607
|
overflow-wrap: anywhere;
|
|
1504
1608
|
}
|
|
@@ -1510,10 +1614,17 @@ table {
|
|
|
1510
1614
|
.sc-card-number {
|
|
1511
1615
|
color: var(--sc-color-text-faint);
|
|
1512
1616
|
font-family: var(--sc-font-mono);
|
|
1513
|
-
font-size:
|
|
1617
|
+
font-size: var(--sc-text-xs);
|
|
1514
1618
|
font-weight: var(--sc-weight-normal);
|
|
1515
1619
|
}
|
|
1516
1620
|
|
|
1621
|
+
/* On a card the number stands on a line of its own above the title, rather than in its run. */
|
|
1622
|
+
.sc-card-title .sc-card-number {
|
|
1623
|
+
display: block;
|
|
1624
|
+
margin-bottom: var(--sc-space-1);
|
|
1625
|
+
line-height: 1;
|
|
1626
|
+
}
|
|
1627
|
+
|
|
1517
1628
|
.sc-card-meta {
|
|
1518
1629
|
display: flex;
|
|
1519
1630
|
flex-wrap: wrap;
|
|
@@ -1530,6 +1641,12 @@ table {
|
|
|
1530
1641
|
flex: 1;
|
|
1531
1642
|
}
|
|
1532
1643
|
|
|
1644
|
+
/* The people at work stay at the end of the row, also when the badges push them onto a line of
|
|
1645
|
+
their own. */
|
|
1646
|
+
.sc-card-meta .sc-workers {
|
|
1647
|
+
margin-inline-start: auto;
|
|
1648
|
+
}
|
|
1649
|
+
|
|
1533
1650
|
/* One task, and a page of the documents: the text in a column for reading, the facts beside it
|
|
1534
1651
|
where the window is wide enough, under it where it is not. */
|
|
1535
1652
|
|
|
@@ -1576,8 +1693,20 @@ table {
|
|
|
1576
1693
|
}
|
|
1577
1694
|
|
|
1578
1695
|
.sc-task-header {
|
|
1696
|
+
display: flex;
|
|
1697
|
+
flex-wrap: wrap;
|
|
1698
|
+
align-items: flex-start;
|
|
1699
|
+
justify-content: space-between;
|
|
1700
|
+
gap: var(--sc-space-3) var(--sc-space-5);
|
|
1701
|
+
padding-bottom: var(--sc-space-4);
|
|
1702
|
+
border-bottom: var(--sc-hairline);
|
|
1703
|
+
}
|
|
1704
|
+
|
|
1705
|
+
.sc-task-heading {
|
|
1579
1706
|
display: grid;
|
|
1707
|
+
flex: 1 1 28rem;
|
|
1580
1708
|
gap: var(--sc-space-2);
|
|
1709
|
+
min-width: 0;
|
|
1581
1710
|
}
|
|
1582
1711
|
|
|
1583
1712
|
.sc-task-parent {
|
|
@@ -1587,12 +1716,12 @@ table {
|
|
|
1587
1716
|
|
|
1588
1717
|
.sc-task-title {
|
|
1589
1718
|
font-size: var(--sc-text-2xl);
|
|
1590
|
-
letter-spacing: -
|
|
1719
|
+
letter-spacing: var(--sc-tracking-tight);
|
|
1591
1720
|
overflow-wrap: anywhere;
|
|
1592
1721
|
}
|
|
1593
1722
|
|
|
1594
1723
|
.sc-task-title .sc-card-number {
|
|
1595
|
-
font-size:
|
|
1724
|
+
font-size: var(--sc-text-xl);
|
|
1596
1725
|
}
|
|
1597
1726
|
|
|
1598
1727
|
.sc-task-badges {
|
|
@@ -1611,14 +1740,6 @@ table {
|
|
|
1611
1740
|
font-size: var(--sc-text-sm);
|
|
1612
1741
|
}
|
|
1613
1742
|
|
|
1614
|
-
.sc-facts dt {
|
|
1615
|
-
color: var(--sc-color-text-faint);
|
|
1616
|
-
font-size: var(--sc-text-xs);
|
|
1617
|
-
font-weight: var(--sc-weight-medium);
|
|
1618
|
-
letter-spacing: 0.04em;
|
|
1619
|
-
text-transform: uppercase;
|
|
1620
|
-
}
|
|
1621
|
-
|
|
1622
1743
|
.sc-facts dd {
|
|
1623
1744
|
margin-top: var(--sc-space-1);
|
|
1624
1745
|
}
|
|
@@ -1630,18 +1751,47 @@ table {
|
|
|
1630
1751
|
gap: var(--sc-space-2);
|
|
1631
1752
|
}
|
|
1632
1753
|
|
|
1754
|
+
.sc-task-header > .sc-task-actions {
|
|
1755
|
+
flex: none;
|
|
1756
|
+
}
|
|
1757
|
+
|
|
1633
1758
|
.sc-task-section {
|
|
1634
1759
|
display: grid;
|
|
1635
1760
|
gap: var(--sc-space-3);
|
|
1636
1761
|
}
|
|
1637
1762
|
|
|
1638
|
-
.sc-link-list
|
|
1639
|
-
.sc-subtasks
|
|
1640
|
-
|
|
1763
|
+
.sc-link-list,
|
|
1764
|
+
.sc-subtasks {
|
|
1765
|
+
display: grid;
|
|
1766
|
+
gap: var(--sc-space-2);
|
|
1767
|
+
margin: 0;
|
|
1768
|
+
padding: 0;
|
|
1769
|
+
list-style: none;
|
|
1770
|
+
}
|
|
1771
|
+
|
|
1772
|
+
.sc-link-list > li,
|
|
1773
|
+
.sc-subtasks > li {
|
|
1774
|
+
display: flex;
|
|
1775
|
+
flex-wrap: wrap;
|
|
1776
|
+
align-items: center;
|
|
1777
|
+
gap: var(--sc-space-2) var(--sc-space-3);
|
|
1778
|
+
padding: var(--sc-space-3) var(--sc-space-4);
|
|
1779
|
+
border: var(--sc-border);
|
|
1780
|
+
border-radius: var(--sc-radius-md);
|
|
1781
|
+
background: var(--sc-color-sheet);
|
|
1782
|
+
font-size: var(--sc-text-sm);
|
|
1783
|
+
overflow-wrap: anywhere;
|
|
1784
|
+
}
|
|
1785
|
+
|
|
1786
|
+
.sc-subtasks .sc-badge {
|
|
1787
|
+
margin-inline-start: auto;
|
|
1641
1788
|
}
|
|
1642
1789
|
|
|
1643
1790
|
.sc-subtasks a {
|
|
1791
|
+
flex: 1 1 14rem;
|
|
1792
|
+
min-width: 0;
|
|
1644
1793
|
color: var(--sc-color-text);
|
|
1794
|
+
font-weight: var(--sc-weight-medium);
|
|
1645
1795
|
text-decoration: none;
|
|
1646
1796
|
}
|
|
1647
1797
|
|
|
@@ -1654,7 +1804,20 @@ table {
|
|
|
1654
1804
|
.sc-decisions {
|
|
1655
1805
|
display: grid;
|
|
1656
1806
|
gap: var(--sc-space-6);
|
|
1657
|
-
|
|
1807
|
+
align-items: start;
|
|
1808
|
+
}
|
|
1809
|
+
|
|
1810
|
+
@media (min-width: 64rem) {
|
|
1811
|
+
.sc-decisions {
|
|
1812
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
1813
|
+
}
|
|
1814
|
+
}
|
|
1815
|
+
|
|
1816
|
+
/* A person's own decisions: the sections of what waits, stacked in the first column. */
|
|
1817
|
+
.sc-decisions-waiting {
|
|
1818
|
+
display: grid;
|
|
1819
|
+
gap: var(--sc-space-6);
|
|
1820
|
+
align-content: start;
|
|
1658
1821
|
}
|
|
1659
1822
|
|
|
1660
1823
|
.sc-decision {
|
|
@@ -1689,9 +1852,8 @@ table {
|
|
|
1689
1852
|
width: 0.5rem;
|
|
1690
1853
|
height: 0.5rem;
|
|
1691
1854
|
margin-right: var(--sc-space-2);
|
|
1692
|
-
border-radius:
|
|
1855
|
+
border-radius: var(--sc-radius-full);
|
|
1693
1856
|
background: var(--sc-color-point);
|
|
1694
|
-
box-shadow: 0 0 0.75rem color-mix(in srgb, var(--sc-color-point) 60%, transparent);
|
|
1695
1857
|
vertical-align: 0.1em;
|
|
1696
1858
|
}
|
|
1697
1859
|
|
|
@@ -1705,6 +1867,29 @@ table {
|
|
|
1705
1867
|
font-size: var(--sc-text-sm);
|
|
1706
1868
|
}
|
|
1707
1869
|
|
|
1870
|
+
/* The task a decision is about: a chip in the line, cut short where it is long. */
|
|
1871
|
+
.sc-decision-meta > a {
|
|
1872
|
+
display: inline-block;
|
|
1873
|
+
max-width: 100%;
|
|
1874
|
+
padding: 0 var(--sc-space-2);
|
|
1875
|
+
border: var(--sc-border);
|
|
1876
|
+
border-radius: var(--sc-radius-full);
|
|
1877
|
+
background: var(--sc-color-sheet);
|
|
1878
|
+
color: var(--sc-color-text);
|
|
1879
|
+
font-size: var(--sc-text-xs);
|
|
1880
|
+
font-weight: var(--sc-weight-medium);
|
|
1881
|
+
line-height: 1.5rem;
|
|
1882
|
+
text-decoration: none;
|
|
1883
|
+
white-space: nowrap;
|
|
1884
|
+
overflow: hidden;
|
|
1885
|
+
text-overflow: ellipsis;
|
|
1886
|
+
}
|
|
1887
|
+
|
|
1888
|
+
.sc-decision-meta > a:hover {
|
|
1889
|
+
border-color: var(--sc-color-accent);
|
|
1890
|
+
color: var(--sc-color-accent);
|
|
1891
|
+
}
|
|
1892
|
+
|
|
1708
1893
|
.sc-decision-waiting {
|
|
1709
1894
|
color: var(--sc-color-warning);
|
|
1710
1895
|
font-size: var(--sc-text-sm);
|
|
@@ -1714,7 +1899,7 @@ table {
|
|
|
1714
1899
|
display: grid;
|
|
1715
1900
|
gap: var(--sc-space-1);
|
|
1716
1901
|
padding: var(--sc-space-3) var(--sc-space-4);
|
|
1717
|
-
border-left:
|
|
1902
|
+
border-left: 2px solid var(--sc-color-accent);
|
|
1718
1903
|
border-radius: 0 var(--sc-radius-md) var(--sc-radius-md) 0;
|
|
1719
1904
|
}
|
|
1720
1905
|
|
|
@@ -1782,40 +1967,109 @@ table {
|
|
|
1782
1967
|
|
|
1783
1968
|
/* The feed: a line per event, newest first. */
|
|
1784
1969
|
|
|
1970
|
+
/* The feed by days: a heading per day with a line after it; under it, runs of events by the
|
|
1971
|
+
same hands, each headed once by the person and the agent, with a row per event under the name,
|
|
1972
|
+
the hour and the sentence, parted by hairlines rather than boxed. */
|
|
1785
1973
|
.sc-feed {
|
|
1786
1974
|
display: grid;
|
|
1787
|
-
gap: var(--sc-space-
|
|
1788
|
-
max-width: var(--sc-width-prose);
|
|
1975
|
+
gap: var(--sc-space-5);
|
|
1789
1976
|
}
|
|
1790
1977
|
|
|
1791
|
-
.sc-feed-
|
|
1978
|
+
.sc-feed-day {
|
|
1792
1979
|
display: grid;
|
|
1793
|
-
|
|
1794
|
-
align-items: center;
|
|
1795
|
-
gap: var(--sc-space-3);
|
|
1796
|
-
padding: var(--sc-space-2) var(--sc-space-3);
|
|
1797
|
-
border-radius: var(--sc-radius-md);
|
|
1798
|
-
font-size: var(--sc-text-sm);
|
|
1980
|
+
gap: var(--sc-space-2);
|
|
1799
1981
|
}
|
|
1800
1982
|
|
|
1801
|
-
.sc-feed-
|
|
1802
|
-
|
|
1983
|
+
.sc-feed-day-title {
|
|
1984
|
+
display: flex;
|
|
1985
|
+
align-items: center;
|
|
1986
|
+
gap: var(--sc-space-3);
|
|
1987
|
+
margin: 0;
|
|
1988
|
+
color: var(--sc-color-text-muted);
|
|
1803
1989
|
}
|
|
1804
1990
|
|
|
1805
|
-
.sc-feed-
|
|
1806
|
-
|
|
1991
|
+
.sc-feed-day-title::after {
|
|
1992
|
+
content: "";
|
|
1993
|
+
flex: 1;
|
|
1994
|
+
height: 1px;
|
|
1995
|
+
background: var(--sc-color-border);
|
|
1807
1996
|
}
|
|
1808
1997
|
|
|
1809
|
-
.sc-feed-
|
|
1810
|
-
|
|
1998
|
+
.sc-feed-day-list,
|
|
1999
|
+
.sc-feed-run-list {
|
|
2000
|
+
display: grid;
|
|
2001
|
+
margin: 0;
|
|
2002
|
+
padding: 0;
|
|
2003
|
+
list-style: none;
|
|
2004
|
+
}
|
|
2005
|
+
|
|
2006
|
+
.sc-feed-day-list {
|
|
2007
|
+
gap: var(--sc-space-3);
|
|
2008
|
+
}
|
|
2009
|
+
|
|
2010
|
+
.sc-feed-run {
|
|
2011
|
+
display: grid;
|
|
2012
|
+
gap: var(--sc-space-1);
|
|
2013
|
+
}
|
|
2014
|
+
|
|
2015
|
+
/* The rows of a run line up under the name, past the picture of the person. */
|
|
2016
|
+
.sc-feed-run-list {
|
|
2017
|
+
padding-inline-start: calc(1.5rem + var(--sc-space-2));
|
|
2018
|
+
}
|
|
2019
|
+
|
|
2020
|
+
.sc-feed-actor {
|
|
2021
|
+
display: inline-flex;
|
|
2022
|
+
align-items: center;
|
|
2023
|
+
gap: var(--sc-space-2);
|
|
2024
|
+
min-width: 0;
|
|
1811
2025
|
}
|
|
1812
2026
|
|
|
1813
2027
|
.sc-feed-agent {
|
|
1814
|
-
margin-
|
|
1815
|
-
color: var(--sc-color-text-
|
|
2028
|
+
margin-inline-start: var(--sc-space-2);
|
|
2029
|
+
color: var(--sc-color-text-faint);
|
|
2030
|
+
font-size: var(--sc-text-xs);
|
|
2031
|
+
}
|
|
2032
|
+
|
|
2033
|
+
/* Where the agent is laid out beside the name by a gap, it needs no margin of its own. */
|
|
2034
|
+
.sc-feed-actor .sc-feed-agent,
|
|
2035
|
+
.sc-doc-meta .sc-feed-agent {
|
|
2036
|
+
margin-inline-start: 0;
|
|
2037
|
+
}
|
|
2038
|
+
|
|
2039
|
+
.sc-feed-item {
|
|
2040
|
+
display: grid;
|
|
2041
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
2042
|
+
align-items: baseline;
|
|
2043
|
+
gap: var(--sc-space-3);
|
|
2044
|
+
padding: var(--sc-space-1) 0;
|
|
2045
|
+
border-bottom: 1px solid color-mix(in srgb, var(--sc-color-border) 60%, transparent);
|
|
1816
2046
|
font-size: var(--sc-text-sm);
|
|
1817
2047
|
}
|
|
1818
2048
|
|
|
2049
|
+
.sc-feed-item:last-child {
|
|
2050
|
+
border-bottom: 0;
|
|
2051
|
+
}
|
|
2052
|
+
|
|
2053
|
+
.sc-feed-clock {
|
|
2054
|
+
color: var(--sc-color-text-faint);
|
|
2055
|
+
font-size: var(--sc-text-xs);
|
|
2056
|
+
font-variant-numeric: tabular-nums;
|
|
2057
|
+
}
|
|
2058
|
+
|
|
2059
|
+
.sc-feed-words {
|
|
2060
|
+
overflow-wrap: anywhere;
|
|
2061
|
+
}
|
|
2062
|
+
|
|
2063
|
+
.sc-feed-words a {
|
|
2064
|
+
color: var(--sc-color-text);
|
|
2065
|
+
text-decoration: none;
|
|
2066
|
+
}
|
|
2067
|
+
|
|
2068
|
+
.sc-feed-words a:hover {
|
|
2069
|
+
color: var(--sc-color-accent);
|
|
2070
|
+
text-decoration: underline;
|
|
2071
|
+
}
|
|
2072
|
+
|
|
1819
2073
|
/* Signing in: one pane in the light, with the mark on a small stage of its own. */
|
|
1820
2074
|
|
|
1821
2075
|
.sc-sign-in {
|
|
@@ -1841,7 +2095,7 @@ table {
|
|
|
1841
2095
|
position: absolute;
|
|
1842
2096
|
width: 14rem;
|
|
1843
2097
|
height: 14rem;
|
|
1844
|
-
border-radius:
|
|
2098
|
+
border-radius: var(--sc-radius-full);
|
|
1845
2099
|
background: radial-gradient(
|
|
1846
2100
|
circle,
|
|
1847
2101
|
color-mix(in srgb, var(--sc-color-accent) 35%, transparent),
|
|
@@ -1856,17 +2110,17 @@ table {
|
|
|
1856
2110
|
place-items: center;
|
|
1857
2111
|
width: 3.5rem;
|
|
1858
2112
|
height: 3.5rem;
|
|
1859
|
-
border:
|
|
1860
|
-
border-radius:
|
|
2113
|
+
border: var(--sc-border);
|
|
2114
|
+
border-radius: var(--sc-radius-xl);
|
|
1861
2115
|
background: var(--sc-color-bg);
|
|
1862
|
-
box-shadow:
|
|
2116
|
+
box-shadow: var(--sc-glass-lift);
|
|
1863
2117
|
}
|
|
1864
2118
|
|
|
1865
2119
|
.sc-sign-in-badge::after {
|
|
1866
2120
|
content: "";
|
|
1867
2121
|
position: absolute;
|
|
1868
2122
|
inset: 0;
|
|
1869
|
-
border:
|
|
2123
|
+
border: 2px solid var(--sc-color-accent);
|
|
1870
2124
|
border-radius: inherit;
|
|
1871
2125
|
opacity: 0;
|
|
1872
2126
|
pointer-events: none;
|
|
@@ -1881,7 +2135,7 @@ table {
|
|
|
1881
2135
|
@keyframes sc-ring {
|
|
1882
2136
|
0% {
|
|
1883
2137
|
transform: scale(1);
|
|
1884
|
-
opacity: 0.
|
|
2138
|
+
opacity: 0.55;
|
|
1885
2139
|
}
|
|
1886
2140
|
100% {
|
|
1887
2141
|
transform: scale(2.6);
|
|
@@ -1932,6 +2186,11 @@ table {
|
|
|
1932
2186
|
overflow-wrap: anywhere;
|
|
1933
2187
|
}
|
|
1934
2188
|
|
|
2189
|
+
/* The text of a task and of a page is read at length: at the size of reading. */
|
|
2190
|
+
.sc-task-main > .sc-prose {
|
|
2191
|
+
font-size: var(--sc-text-md);
|
|
2192
|
+
}
|
|
2193
|
+
|
|
1935
2194
|
.sc-prose > * + * {
|
|
1936
2195
|
margin-top: var(--sc-space-4);
|
|
1937
2196
|
}
|
|
@@ -2067,12 +2326,24 @@ table {
|
|
|
2067
2326
|
.sc-token-meta {
|
|
2068
2327
|
display: flex;
|
|
2069
2328
|
flex-wrap: wrap;
|
|
2070
|
-
gap: var(--sc-space-3);
|
|
2329
|
+
gap: var(--sc-space-1) var(--sc-space-3);
|
|
2071
2330
|
margin-top: var(--sc-space-1);
|
|
2072
2331
|
color: var(--sc-color-text-muted);
|
|
2073
2332
|
font-size: var(--sc-text-sm);
|
|
2074
2333
|
}
|
|
2075
2334
|
|
|
2335
|
+
.sc-token-meta > span {
|
|
2336
|
+
display: inline-flex;
|
|
2337
|
+
flex-wrap: wrap;
|
|
2338
|
+
align-items: center;
|
|
2339
|
+
gap: var(--sc-space-1);
|
|
2340
|
+
}
|
|
2341
|
+
|
|
2342
|
+
.sc-token-meta > span + span {
|
|
2343
|
+
padding-inline-start: var(--sc-space-3);
|
|
2344
|
+
border-inline-start: var(--sc-hairline);
|
|
2345
|
+
}
|
|
2346
|
+
|
|
2076
2347
|
.sc-secret {
|
|
2077
2348
|
display: flex;
|
|
2078
2349
|
flex-wrap: wrap;
|
|
@@ -2091,24 +2362,40 @@ table {
|
|
|
2091
2362
|
user-select: all;
|
|
2092
2363
|
}
|
|
2093
2364
|
|
|
2094
|
-
/* People: everyone of the board, with what each may do
|
|
2365
|
+
/* People: everyone of the board, with what each may do, as cards in a grid: the person on the
|
|
2366
|
+
first line, the account and where it came from on the second, what they are and the ways to
|
|
2367
|
+
their work on the third. */
|
|
2095
2368
|
|
|
2096
2369
|
.sc-people {
|
|
2097
2370
|
display: grid;
|
|
2098
|
-
|
|
2371
|
+
grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
|
|
2372
|
+
gap: var(--sc-space-3);
|
|
2099
2373
|
}
|
|
2100
2374
|
|
|
2101
2375
|
.sc-person-row {
|
|
2102
2376
|
display: flex;
|
|
2103
2377
|
flex-wrap: wrap;
|
|
2104
2378
|
align-items: center;
|
|
2105
|
-
gap: var(--sc-space-3);
|
|
2106
|
-
padding: var(--sc-space-
|
|
2379
|
+
gap: var(--sc-space-2) var(--sc-space-3);
|
|
2380
|
+
padding: var(--sc-space-4);
|
|
2107
2381
|
border-radius: var(--sc-radius-lg);
|
|
2108
2382
|
}
|
|
2109
2383
|
|
|
2384
|
+
.sc-person-row > .sc-person {
|
|
2385
|
+
flex: 0 1 auto;
|
|
2386
|
+
min-width: 0;
|
|
2387
|
+
}
|
|
2388
|
+
|
|
2389
|
+
/* That this person is the reader: beside the name on the first line. */
|
|
2390
|
+
.sc-person-you {
|
|
2391
|
+
margin-inline-start: calc(var(--sc-space-1) - var(--sc-space-3));
|
|
2392
|
+
color: var(--sc-color-text-faint);
|
|
2393
|
+
font-size: var(--sc-text-xs);
|
|
2394
|
+
}
|
|
2395
|
+
|
|
2110
2396
|
.sc-person-name {
|
|
2111
|
-
flex: 1
|
|
2397
|
+
flex: 1 1 100%;
|
|
2398
|
+
min-width: 0;
|
|
2112
2399
|
color: var(--sc-color-text-muted);
|
|
2113
2400
|
font-size: var(--sc-text-sm);
|
|
2114
2401
|
}
|
|
@@ -2118,13 +2405,19 @@ table {
|
|
|
2118
2405
|
font-size: var(--sc-text-xs);
|
|
2119
2406
|
}
|
|
2120
2407
|
|
|
2408
|
+
/* What a person is, or the way to change it: the last line, a step under the account. */
|
|
2409
|
+
.sc-person-row > .sc-badge,
|
|
2410
|
+
.sc-person-row > .sc-field-inline {
|
|
2411
|
+
margin-top: var(--sc-space-1);
|
|
2412
|
+
}
|
|
2413
|
+
|
|
2121
2414
|
/* Those let in and not signed in yet, and those deactivated: sections below everyone in. */
|
|
2122
2415
|
.sc-people-section {
|
|
2123
2416
|
margin-top: var(--sc-space-6);
|
|
2124
2417
|
}
|
|
2125
2418
|
|
|
2126
2419
|
.sc-person-row-out .sc-person {
|
|
2127
|
-
opacity: 0.
|
|
2420
|
+
opacity: 0.55;
|
|
2128
2421
|
}
|
|
2129
2422
|
|
|
2130
2423
|
.sc-listing-form .sc-field-row {
|
|
@@ -2164,19 +2457,38 @@ table {
|
|
|
2164
2457
|
box-shadow: var(--sc-glass-sheen), var(--sc-glass-lift), var(--sc-glow);
|
|
2165
2458
|
}
|
|
2166
2459
|
|
|
2460
|
+
/* The head of a project reads on three lines: the mark with the name beside it, the key under
|
|
2461
|
+
the name, and the badges on a line of their own; the mark floats so that the name and the key
|
|
2462
|
+
stack beside it without a box around them. */
|
|
2167
2463
|
.sc-project-head {
|
|
2168
|
-
display:
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2464
|
+
display: block;
|
|
2465
|
+
}
|
|
2466
|
+
|
|
2467
|
+
.sc-project-head::after {
|
|
2468
|
+
content: "";
|
|
2469
|
+
display: block;
|
|
2470
|
+
clear: both;
|
|
2471
|
+
}
|
|
2472
|
+
|
|
2473
|
+
.sc-project-head > :first-child {
|
|
2474
|
+
float: left;
|
|
2475
|
+
margin-inline-end: var(--sc-space-3);
|
|
2476
|
+
}
|
|
2477
|
+
|
|
2478
|
+
.sc-project-head > .sc-badge {
|
|
2479
|
+
margin-top: var(--sc-space-3);
|
|
2480
|
+
margin-inline-end: var(--sc-space-1);
|
|
2172
2481
|
}
|
|
2173
2482
|
|
|
2174
2483
|
/* The whole pane is the way in: the name's link stretches over it. */
|
|
2175
2484
|
.sc-project-name {
|
|
2485
|
+
display: block;
|
|
2176
2486
|
color: var(--sc-color-text);
|
|
2177
2487
|
font-size: var(--sc-text-lg);
|
|
2178
2488
|
font-weight: var(--sc-weight-bold);
|
|
2489
|
+
line-height: var(--sc-leading-snug);
|
|
2179
2490
|
text-decoration: none;
|
|
2491
|
+
overflow-wrap: anywhere;
|
|
2180
2492
|
}
|
|
2181
2493
|
|
|
2182
2494
|
.sc-project-name::after {
|
|
@@ -2198,7 +2510,21 @@ table {
|
|
|
2198
2510
|
font-size: var(--sc-text-xs);
|
|
2199
2511
|
}
|
|
2200
2512
|
|
|
2513
|
+
/* Under the name, and past the mark: the key ends below the mark, so that the badges after it
|
|
2514
|
+
start at the edge. */
|
|
2515
|
+
.sc-project-head > .sc-project-key {
|
|
2516
|
+
display: block;
|
|
2517
|
+
margin-top: var(--sc-space-1);
|
|
2518
|
+
}
|
|
2519
|
+
|
|
2520
|
+
.sc-project-head > .sc-project-key::after {
|
|
2521
|
+
content: "";
|
|
2522
|
+
display: block;
|
|
2523
|
+
clear: both;
|
|
2524
|
+
}
|
|
2525
|
+
|
|
2201
2526
|
.sc-project-description {
|
|
2527
|
+
margin-top: var(--sc-space-1);
|
|
2202
2528
|
color: var(--sc-color-text-muted);
|
|
2203
2529
|
font-size: var(--sc-text-sm);
|
|
2204
2530
|
}
|
|
@@ -2208,7 +2534,8 @@ table {
|
|
|
2208
2534
|
flex-wrap: wrap;
|
|
2209
2535
|
gap: var(--sc-space-2);
|
|
2210
2536
|
margin-top: auto;
|
|
2211
|
-
padding-top: var(--sc-space-
|
|
2537
|
+
padding-top: var(--sc-space-3);
|
|
2538
|
+
border-top: var(--sc-hairline);
|
|
2212
2539
|
}
|
|
2213
2540
|
|
|
2214
2541
|
.sc-project-meta:empty {
|
|
@@ -2220,6 +2547,14 @@ table {
|
|
|
2220
2547
|
gap: var(--sc-space-4);
|
|
2221
2548
|
}
|
|
2222
2549
|
|
|
2550
|
+
/* What a member is in the project, and their office in the organization beside it, small. */
|
|
2551
|
+
.sc-member-role {
|
|
2552
|
+
display: inline-flex;
|
|
2553
|
+
align-items: center;
|
|
2554
|
+
gap: var(--sc-space-2);
|
|
2555
|
+
font-size: var(--sc-text-sm);
|
|
2556
|
+
}
|
|
2557
|
+
|
|
2223
2558
|
.sc-member-form .sc-field-row {
|
|
2224
2559
|
align-items: end;
|
|
2225
2560
|
}
|
|
@@ -2228,11 +2563,14 @@ table {
|
|
|
2228
2563
|
|
|
2229
2564
|
.sc-skills {
|
|
2230
2565
|
display: grid;
|
|
2231
|
-
|
|
2566
|
+
grid-template-columns: repeat(auto-fill, minmax(min(100%, 26rem), 1fr));
|
|
2567
|
+
gap: var(--sc-space-3);
|
|
2232
2568
|
}
|
|
2233
2569
|
|
|
2234
2570
|
.sc-skill {
|
|
2235
|
-
|
|
2571
|
+
display: grid;
|
|
2572
|
+
align-content: start;
|
|
2573
|
+
padding: var(--sc-space-4) var(--sc-space-5);
|
|
2236
2574
|
border-radius: var(--sc-radius-lg);
|
|
2237
2575
|
}
|
|
2238
2576
|
|
|
@@ -2245,7 +2583,15 @@ table {
|
|
|
2245
2583
|
}
|
|
2246
2584
|
|
|
2247
2585
|
.sc-skill-name {
|
|
2248
|
-
font-
|
|
2586
|
+
font-size: var(--sc-text-md);
|
|
2587
|
+
font-weight: var(--sc-weight-bold);
|
|
2588
|
+
}
|
|
2589
|
+
|
|
2590
|
+
/* The folder a skill is in: a line of its own under the name, in the code face. */
|
|
2591
|
+
.sc-skill-head > .sc-muted {
|
|
2592
|
+
flex: 1 1 100%;
|
|
2593
|
+
font-family: var(--sc-font-mono);
|
|
2594
|
+
font-size: var(--sc-text-xs);
|
|
2249
2595
|
}
|
|
2250
2596
|
|
|
2251
2597
|
.sc-skill-description {
|
|
@@ -2256,7 +2602,9 @@ table {
|
|
|
2256
2602
|
|
|
2257
2603
|
.sc-skill-uri {
|
|
2258
2604
|
display: block;
|
|
2259
|
-
margin-top: var(--sc-space-
|
|
2605
|
+
margin-top: var(--sc-space-3);
|
|
2606
|
+
padding-top: var(--sc-space-2);
|
|
2607
|
+
border-top: var(--sc-hairline);
|
|
2260
2608
|
color: var(--sc-color-text-faint);
|
|
2261
2609
|
font-size: var(--sc-text-xs);
|
|
2262
2610
|
word-break: break-all;
|
|
@@ -2280,18 +2628,30 @@ table {
|
|
|
2280
2628
|
display: flex;
|
|
2281
2629
|
flex-wrap: wrap;
|
|
2282
2630
|
align-items: center;
|
|
2283
|
-
gap: var(--sc-space-2);
|
|
2631
|
+
gap: var(--sc-space-1) var(--sc-space-2);
|
|
2632
|
+
padding-bottom: var(--sc-space-3);
|
|
2633
|
+
border-bottom: var(--sc-hairline);
|
|
2284
2634
|
}
|
|
2285
2635
|
|
|
2286
2636
|
.sc-run-agent {
|
|
2287
|
-
font-
|
|
2637
|
+
font-size: var(--sc-text-md);
|
|
2638
|
+
font-weight: var(--sc-weight-bold);
|
|
2288
2639
|
}
|
|
2289
2640
|
|
|
2641
|
+
/* The way to end a run stands at the end of the first line. */
|
|
2642
|
+
.sc-run-header > .sc-button {
|
|
2643
|
+
order: 1;
|
|
2644
|
+
margin-inline-start: auto;
|
|
2645
|
+
}
|
|
2646
|
+
|
|
2647
|
+
/* Who the run is for and since when: the second line of the head. */
|
|
2290
2648
|
.sc-run-meta {
|
|
2291
|
-
display:
|
|
2649
|
+
display: flex;
|
|
2650
|
+
flex: 1 1 100%;
|
|
2292
2651
|
flex-wrap: wrap;
|
|
2652
|
+
order: 2;
|
|
2293
2653
|
align-items: center;
|
|
2294
|
-
gap: var(--sc-space-1);
|
|
2654
|
+
gap: var(--sc-space-1) var(--sc-space-2);
|
|
2295
2655
|
color: var(--sc-color-text-muted);
|
|
2296
2656
|
font-size: var(--sc-text-sm);
|
|
2297
2657
|
}
|
|
@@ -2312,10 +2672,11 @@ table {
|
|
|
2312
2672
|
display: grid;
|
|
2313
2673
|
gap: var(--sc-space-1);
|
|
2314
2674
|
padding-left: var(--sc-space-3);
|
|
2315
|
-
border-left: 2px solid var(--sc-color-
|
|
2675
|
+
border-left: 2px solid var(--sc-color-accent);
|
|
2316
2676
|
font-size: var(--sc-text-sm);
|
|
2317
2677
|
}
|
|
2318
2678
|
|
|
2679
|
+
/* The hour of a report heads it, small and apart from its words. */
|
|
2319
2680
|
.sc-run-summary {
|
|
2320
2681
|
padding-top: var(--sc-space-3);
|
|
2321
2682
|
border-top: var(--sc-border);
|
|
@@ -2343,6 +2704,7 @@ table {
|
|
|
2343
2704
|
}
|
|
2344
2705
|
|
|
2345
2706
|
.sc-comment-meta {
|
|
2707
|
+
margin-inline-start: auto;
|
|
2346
2708
|
color: var(--sc-color-text-muted);
|
|
2347
2709
|
font-size: var(--sc-text-sm);
|
|
2348
2710
|
}
|
|
@@ -2361,7 +2723,7 @@ table {
|
|
|
2361
2723
|
}
|
|
2362
2724
|
|
|
2363
2725
|
.sc-picture-thumb:focus-visible {
|
|
2364
|
-
outline:
|
|
2726
|
+
outline: var(--sc-focus-ring);
|
|
2365
2727
|
outline-offset: 2px;
|
|
2366
2728
|
}
|
|
2367
2729
|
|
|
@@ -2389,7 +2751,7 @@ table {
|
|
|
2389
2751
|
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
2390
2752
|
inset: 0;
|
|
2391
2753
|
background: color-mix(in srgb, var(--sc-color-bg) 90%, transparent);
|
|
2392
|
-
backdrop-filter:
|
|
2754
|
+
backdrop-filter: var(--sc-glass-backdrop);
|
|
2393
2755
|
}
|
|
2394
2756
|
|
|
2395
2757
|
.sc-overlay-bar {
|
|
@@ -2535,7 +2897,7 @@ table {
|
|
|
2535
2897
|
padding: var(--sc-space-3) var(--sc-space-4);
|
|
2536
2898
|
border: var(--sc-border);
|
|
2537
2899
|
border-radius: var(--sc-radius-md);
|
|
2538
|
-
background: var(--sc-color-
|
|
2900
|
+
background: var(--sc-color-bg-raised);
|
|
2539
2901
|
font-family: var(--sc-font-mono);
|
|
2540
2902
|
font-size: var(--sc-text-sm);
|
|
2541
2903
|
line-height: var(--sc-leading-code);
|
|
@@ -2562,13 +2924,13 @@ table {
|
|
|
2562
2924
|
max-width: 12rem;
|
|
2563
2925
|
font-family: var(--sc-font-mono);
|
|
2564
2926
|
font-size: var(--sc-text-lg);
|
|
2565
|
-
letter-spacing:
|
|
2927
|
+
letter-spacing: var(--sc-tracking-code);
|
|
2566
2928
|
text-transform: uppercase;
|
|
2567
2929
|
}
|
|
2568
2930
|
|
|
2569
2931
|
.sc-code-shown {
|
|
2570
2932
|
font-size: var(--sc-text-md);
|
|
2571
|
-
letter-spacing:
|
|
2933
|
+
letter-spacing: var(--sc-tracking-code);
|
|
2572
2934
|
}
|
|
2573
2935
|
|
|
2574
2936
|
/* Documents: a folder's pages, one page with its versions, its links both ways and its files. */
|
|
@@ -2655,11 +3017,13 @@ table {
|
|
|
2655
3017
|
list-style: none;
|
|
2656
3018
|
}
|
|
2657
3019
|
|
|
3020
|
+
/* A page in a list reads on two lines: its title, with a mark if it is archived, and under it
|
|
3021
|
+
where it lives, its version, who wrote it last and when, each a step apart. */
|
|
2658
3022
|
.sc-doc-row {
|
|
2659
3023
|
display: flex;
|
|
2660
3024
|
flex-wrap: wrap;
|
|
2661
|
-
align-items:
|
|
2662
|
-
gap: var(--sc-space-
|
|
3025
|
+
align-items: center;
|
|
3026
|
+
gap: var(--sc-space-1) var(--sc-space-2);
|
|
2663
3027
|
padding: var(--sc-space-3) var(--sc-space-4);
|
|
2664
3028
|
border-radius: var(--sc-radius-lg);
|
|
2665
3029
|
transition: border-color var(--sc-transition);
|
|
@@ -2671,7 +3035,9 @@ table {
|
|
|
2671
3035
|
|
|
2672
3036
|
.sc-doc-title {
|
|
2673
3037
|
color: var(--sc-color-text);
|
|
2674
|
-
font-
|
|
3038
|
+
font-size: var(--sc-text-md);
|
|
3039
|
+
font-weight: var(--sc-weight-bold);
|
|
3040
|
+
line-height: var(--sc-leading-snug);
|
|
2675
3041
|
text-decoration: none;
|
|
2676
3042
|
}
|
|
2677
3043
|
|
|
@@ -2680,8 +3046,17 @@ table {
|
|
|
2680
3046
|
}
|
|
2681
3047
|
|
|
2682
3048
|
.sc-doc-meta {
|
|
3049
|
+
display: flex;
|
|
3050
|
+
flex: 1 1 100%;
|
|
3051
|
+
flex-wrap: wrap;
|
|
3052
|
+
align-items: center;
|
|
3053
|
+
gap: var(--sc-space-1) var(--sc-space-2);
|
|
2683
3054
|
color: var(--sc-color-text-muted);
|
|
2684
|
-
font-size: var(--sc-text-
|
|
3055
|
+
font-size: var(--sc-text-xs);
|
|
3056
|
+
}
|
|
3057
|
+
|
|
3058
|
+
.sc-doc-meta .sc-person-login {
|
|
3059
|
+
font-weight: var(--sc-weight-normal);
|
|
2685
3060
|
}
|
|
2686
3061
|
|
|
2687
3062
|
.sc-doc-path {
|
|
@@ -2704,7 +3079,7 @@ table {
|
|
|
2704
3079
|
}
|
|
2705
3080
|
|
|
2706
3081
|
.sc-doc-archived .sc-prose {
|
|
2707
|
-
opacity: 0.
|
|
3082
|
+
opacity: 0.55;
|
|
2708
3083
|
}
|
|
2709
3084
|
|
|
2710
3085
|
/* The pictures for a page, under its body: the way to add one, and what becomes of it. */
|
|
@@ -2715,30 +3090,86 @@ table {
|
|
|
2715
3090
|
gap: var(--sc-space-2);
|
|
2716
3091
|
}
|
|
2717
3092
|
|
|
3093
|
+
/* The attach form: a button to choose the file with the chosen file's name beside it, the
|
|
3094
|
+
name to call it under that, and the attach button across the bottom, all one height. */
|
|
2718
3095
|
.sc-doc-attach {
|
|
2719
|
-
display:
|
|
2720
|
-
flex-wrap: wrap;
|
|
3096
|
+
display: grid;
|
|
2721
3097
|
gap: var(--sc-space-2);
|
|
2722
3098
|
margin-top: var(--sc-space-3);
|
|
2723
3099
|
}
|
|
2724
3100
|
|
|
3101
|
+
.sc-doc-attach-file {
|
|
3102
|
+
display: flex;
|
|
3103
|
+
align-items: center;
|
|
3104
|
+
gap: var(--sc-space-3);
|
|
3105
|
+
min-width: 0;
|
|
3106
|
+
}
|
|
3107
|
+
|
|
3108
|
+
.sc-doc-attach-file > .sc-button {
|
|
3109
|
+
flex: none;
|
|
3110
|
+
}
|
|
3111
|
+
|
|
3112
|
+
.sc-doc-attach-chosen {
|
|
3113
|
+
min-width: 0;
|
|
3114
|
+
overflow: hidden;
|
|
3115
|
+
font-size: var(--sc-text-sm);
|
|
3116
|
+
white-space: nowrap;
|
|
3117
|
+
text-overflow: ellipsis;
|
|
3118
|
+
}
|
|
3119
|
+
|
|
3120
|
+
.sc-doc-attach > .sc-button {
|
|
3121
|
+
width: 100%;
|
|
3122
|
+
}
|
|
3123
|
+
|
|
2725
3124
|
.sc-versions {
|
|
2726
3125
|
margin: 0;
|
|
2727
3126
|
padding: 0;
|
|
2728
3127
|
list-style: none;
|
|
2729
3128
|
}
|
|
2730
3129
|
|
|
3130
|
+
.sc-version {
|
|
3131
|
+
display: grid;
|
|
3132
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
3133
|
+
column-gap: var(--sc-space-3);
|
|
3134
|
+
row-gap: var(--sc-space-1);
|
|
3135
|
+
align-items: baseline;
|
|
3136
|
+
padding-block: var(--sc-space-2);
|
|
3137
|
+
font-size: var(--sc-text-sm);
|
|
3138
|
+
}
|
|
3139
|
+
|
|
2731
3140
|
.sc-version + .sc-version {
|
|
2732
|
-
|
|
3141
|
+
border-top: var(--sc-hairline);
|
|
2733
3142
|
}
|
|
2734
3143
|
|
|
2735
3144
|
.sc-version-number {
|
|
2736
|
-
|
|
2737
|
-
min-width: 2.5rem;
|
|
3145
|
+
min-width: 2rem;
|
|
2738
3146
|
font-family: var(--sc-font-mono);
|
|
2739
3147
|
font-size: var(--sc-text-sm);
|
|
2740
3148
|
}
|
|
2741
3149
|
|
|
3150
|
+
.sc-version-title {
|
|
3151
|
+
font-weight: var(--sc-weight-medium);
|
|
3152
|
+
overflow-wrap: anywhere;
|
|
3153
|
+
}
|
|
3154
|
+
|
|
3155
|
+
.sc-version-meta {
|
|
3156
|
+
display: flex;
|
|
3157
|
+
flex-wrap: wrap;
|
|
3158
|
+
align-items: center;
|
|
3159
|
+
gap: var(--sc-space-1) var(--sc-space-2);
|
|
3160
|
+
grid-column: 2;
|
|
3161
|
+
color: var(--sc-color-text-muted);
|
|
3162
|
+
font-size: var(--sc-text-xs);
|
|
3163
|
+
}
|
|
3164
|
+
|
|
3165
|
+
.sc-version-meta .sc-person-login {
|
|
3166
|
+
font-weight: var(--sc-weight-normal);
|
|
3167
|
+
}
|
|
3168
|
+
|
|
3169
|
+
.sc-version-meta .sc-feed-agent {
|
|
3170
|
+
margin-inline-start: 0;
|
|
3171
|
+
}
|
|
3172
|
+
|
|
2742
3173
|
/* In the aside of a task or a page, the facts stack and the sections are small. */
|
|
2743
3174
|
|
|
2744
3175
|
.sc-task-aside .sc-facts {
|
|
@@ -2747,11 +3178,6 @@ table {
|
|
|
2747
3178
|
|
|
2748
3179
|
.sc-task-aside .sc-section-title {
|
|
2749
3180
|
margin-bottom: var(--sc-space-1);
|
|
2750
|
-
color: var(--sc-color-text-faint);
|
|
2751
|
-
font-size: var(--sc-text-xs);
|
|
2752
|
-
font-weight: var(--sc-weight-medium);
|
|
2753
|
-
letter-spacing: 0.04em;
|
|
2754
|
-
text-transform: uppercase;
|
|
2755
3181
|
}
|
|
2756
3182
|
|
|
2757
3183
|
.sc-task-aside .sc-task-section {
|
|
@@ -2771,11 +3197,6 @@ table {
|
|
|
2771
3197
|
|
|
2772
3198
|
.sc-decision-label {
|
|
2773
3199
|
margin: 0 0 var(--sc-space-1);
|
|
2774
|
-
color: var(--sc-color-text-faint);
|
|
2775
|
-
font-size: var(--sc-text-xs);
|
|
2776
|
-
font-weight: var(--sc-weight-medium);
|
|
2777
|
-
letter-spacing: 0.04em;
|
|
2778
|
-
text-transform: uppercase;
|
|
2779
3200
|
}
|
|
2780
3201
|
|
|
2781
3202
|
.sc-outcome-form {
|
|
@@ -2783,11 +3204,20 @@ table {
|
|
|
2783
3204
|
gap: var(--sc-space-2);
|
|
2784
3205
|
}
|
|
2785
3206
|
|
|
2786
|
-
/* Under the wide layout a task
|
|
2787
|
-
|
|
3207
|
+
/* Under the wide layout a task reads its text first, then its facts and the ways to its forms, two
|
|
3208
|
+
to a row so that they stay short, then the discussion and what happened: the text says what the
|
|
3209
|
+
task is, and its state is changed right under it. A document keeps its text first. */
|
|
2788
3210
|
@media (max-width: 63.99rem) {
|
|
3211
|
+
.sc-task .sc-task-main {
|
|
3212
|
+
display: contents;
|
|
3213
|
+
}
|
|
3214
|
+
|
|
2789
3215
|
.sc-task .sc-task-aside {
|
|
2790
|
-
order:
|
|
3216
|
+
order: 1;
|
|
3217
|
+
}
|
|
3218
|
+
|
|
3219
|
+
.sc-task .sc-task-main > .sc-task-section {
|
|
3220
|
+
order: 2;
|
|
2791
3221
|
}
|
|
2792
3222
|
|
|
2793
3223
|
.sc-task .sc-task-aside .sc-facts {
|
|
@@ -2798,86 +3228,211 @@ table {
|
|
|
2798
3228
|
/* The schedule, the roadmap and the categories (ADR-0019). */
|
|
2799
3229
|
|
|
2800
3230
|
/* The colours a category may be shown in: names, painted here and nowhere else. Each is a
|
|
2801
|
-
|
|
3231
|
+
light fill with its words dark in the same hue, and a mark, a clear mid-tone of the hue, for
|
|
3232
|
+
the dots, flags and bars where the colour stands alone; the eight hues spread around the
|
|
3233
|
+
wheel so that no two are taken for each other at a glance. A console that sets only the line
|
|
3234
|
+
and the fill gets its line where the mark would be. */
|
|
2802
3235
|
.sc-category-gray {
|
|
2803
|
-
--sc-category-line: #
|
|
2804
|
-
--sc-category-fill: #
|
|
3236
|
+
--sc-category-line: #4a5468;
|
|
3237
|
+
--sc-category-fill: #e0e4eb;
|
|
3238
|
+
--sc-category-mark: #7b8597;
|
|
2805
3239
|
}
|
|
2806
3240
|
|
|
2807
3241
|
.sc-category-blue {
|
|
2808
|
-
--sc-category-line: #
|
|
2809
|
-
--sc-category-fill: #
|
|
3242
|
+
--sc-category-line: #1d4fcb;
|
|
3243
|
+
--sc-category-fill: #d2e0ff;
|
|
3244
|
+
--sc-category-mark: #2f6ae8;
|
|
2810
3245
|
}
|
|
2811
3246
|
|
|
2812
3247
|
.sc-category-green {
|
|
2813
|
-
--sc-category-line: #
|
|
2814
|
-
--sc-category-fill: #
|
|
3248
|
+
--sc-category-line: #176d26;
|
|
3249
|
+
--sc-category-fill: #cdf0cc;
|
|
3250
|
+
--sc-category-mark: #22a04a;
|
|
2815
3251
|
}
|
|
2816
3252
|
|
|
2817
3253
|
.sc-category-orange {
|
|
2818
|
-
--sc-category-line: #
|
|
2819
|
-
--sc-category-fill: #
|
|
3254
|
+
--sc-category-line: #b83c00;
|
|
3255
|
+
--sc-category-fill: #ffe6d1;
|
|
3256
|
+
--sc-category-mark: #f0731a;
|
|
2820
3257
|
}
|
|
2821
3258
|
|
|
2822
3259
|
.sc-category-pink {
|
|
2823
|
-
--sc-category-line: #
|
|
2824
|
-
--sc-category-fill: #
|
|
3260
|
+
--sc-category-line: #b2176a;
|
|
3261
|
+
--sc-category-fill: #fdd2e5;
|
|
3262
|
+
--sc-category-mark: #e63d94;
|
|
2825
3263
|
}
|
|
2826
3264
|
|
|
2827
3265
|
.sc-category-purple {
|
|
2828
|
-
--sc-category-line: #
|
|
2829
|
-
--sc-category-fill: #
|
|
3266
|
+
--sc-category-line: #6434c2;
|
|
3267
|
+
--sc-category-fill: #e6d8fc;
|
|
3268
|
+
--sc-category-mark: #8457e6;
|
|
2830
3269
|
}
|
|
2831
3270
|
|
|
2832
3271
|
.sc-category-teal {
|
|
2833
|
-
--sc-category-line: #
|
|
2834
|
-
--sc-category-fill: #
|
|
3272
|
+
--sc-category-line: #08667a;
|
|
3273
|
+
--sc-category-fill: #c6edf4;
|
|
3274
|
+
--sc-category-mark: #0f9bb0;
|
|
2835
3275
|
}
|
|
2836
3276
|
|
|
2837
3277
|
.sc-category-yellow {
|
|
2838
|
-
--sc-category-line: #
|
|
2839
|
-
--sc-category-fill: #
|
|
3278
|
+
--sc-category-line: #44403c;
|
|
3279
|
+
--sc-category-fill: #fbe9b2;
|
|
3280
|
+
--sc-category-mark: #e6b42c;
|
|
2840
3281
|
}
|
|
2841
3282
|
|
|
2842
3283
|
.sc-badge-category {
|
|
2843
|
-
border-color:
|
|
3284
|
+
border-color: transparent;
|
|
2844
3285
|
background: var(--sc-category-fill);
|
|
2845
3286
|
color: var(--sc-category-line);
|
|
2846
3287
|
}
|
|
2847
3288
|
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
3289
|
+
/* A badge's kind in how it is filled, so that a plain badge, a category, a state, a priority
|
|
3290
|
+
and a due day beside each other are kinds and not five of one thing; the pill is the shape
|
|
3291
|
+
of them all and nothing stands before the words:
|
|
3292
|
+
- a plain badge (a role, a count, public or private): a soft fill with a line of its hue;
|
|
3293
|
+
- a category and a state: a soft fill, no line;
|
|
3294
|
+
- a priority: a soft fill with dark words of its hue, low a grey, high an orange, urgent a red;
|
|
3295
|
+
- a due day: a line, a very light fill and bold words, all in the hue of how near the day
|
|
3296
|
+
is. */
|
|
3297
|
+
.sc-badge:not(.sc-badge-category) {
|
|
3298
|
+
border-color: color-mix(in srgb, currentColor 40%, transparent);
|
|
2856
3299
|
}
|
|
2857
3300
|
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
display: flex;
|
|
2861
|
-
flex-wrap: wrap;
|
|
2862
|
-
align-items: center;
|
|
2863
|
-
gap: var(--sc-space-2) var(--sc-space-3);
|
|
2864
|
-
margin-bottom: var(--sc-space-3);
|
|
3301
|
+
.sc-badge.sc-badge-kind-state {
|
|
3302
|
+
border-color: transparent;
|
|
2865
3303
|
}
|
|
2866
3304
|
|
|
2867
|
-
.sc-
|
|
2868
|
-
|
|
3305
|
+
.sc-badge.sc-badge-kind-priority {
|
|
3306
|
+
border-color: transparent;
|
|
3307
|
+
background: #e1e6ee;
|
|
3308
|
+
color: #3a4558;
|
|
2869
3309
|
}
|
|
2870
3310
|
|
|
2871
|
-
.sc-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
3311
|
+
.sc-badge.sc-badge-kind-priority.sc-badge-point {
|
|
3312
|
+
background: #ffd4a8;
|
|
3313
|
+
color: #7a3300;
|
|
3314
|
+
}
|
|
3315
|
+
|
|
3316
|
+
.sc-badge.sc-badge-kind-priority.sc-badge-danger {
|
|
3317
|
+
background: #fdbcc3;
|
|
3318
|
+
color: #7d0e1d;
|
|
3319
|
+
}
|
|
3320
|
+
|
|
3321
|
+
/* A due day: one line weight for every one; the line, a very light fill and the words are
|
|
3322
|
+
all in the hue of how near the day is. */
|
|
3323
|
+
.sc-badge.sc-badge-kind-due {
|
|
3324
|
+
border: 1.5px solid #a3acba;
|
|
3325
|
+
background: #f4f6f9;
|
|
3326
|
+
color: #4b5563;
|
|
3327
|
+
font-weight: var(--sc-weight-bold);
|
|
3328
|
+
font-variant-numeric: tabular-nums;
|
|
3329
|
+
}
|
|
3330
|
+
|
|
3331
|
+
.sc-badge.sc-badge-kind-due.sc-badge-accent {
|
|
3332
|
+
border-color: #6f93e8;
|
|
3333
|
+
background: #f0f5ff;
|
|
3334
|
+
color: #1d4ed8;
|
|
3335
|
+
}
|
|
3336
|
+
|
|
3337
|
+
.sc-badge.sc-badge-kind-due.sc-badge-success {
|
|
3338
|
+
border-color: #5fb488;
|
|
3339
|
+
background: #effaf4;
|
|
3340
|
+
color: #146b44;
|
|
3341
|
+
}
|
|
3342
|
+
|
|
3343
|
+
/* Within the week. */
|
|
3344
|
+
.sc-badge.sc-badge-kind-due.sc-badge-warning {
|
|
3345
|
+
border-color: #e0b100;
|
|
3346
|
+
background: #fffae6;
|
|
3347
|
+
color: #8a6500;
|
|
3348
|
+
}
|
|
3349
|
+
|
|
3350
|
+
/* Tomorrow. */
|
|
3351
|
+
.sc-badge.sc-badge-kind-due.sc-badge-point {
|
|
3352
|
+
border-color: #f59e3c;
|
|
3353
|
+
background: #fff4ea;
|
|
3354
|
+
color: #b45309;
|
|
3355
|
+
}
|
|
3356
|
+
|
|
3357
|
+
/* Today. */
|
|
3358
|
+
.sc-badge.sc-badge-kind-due.sc-badge-due-today {
|
|
3359
|
+
border-color: #f26b4a;
|
|
3360
|
+
background: #fff1ec;
|
|
3361
|
+
color: #c2330f;
|
|
3362
|
+
}
|
|
3363
|
+
|
|
3364
|
+
/* Late. */
|
|
3365
|
+
.sc-badge.sc-badge-kind-due.sc-badge-danger {
|
|
3366
|
+
border-color: #d33a47;
|
|
3367
|
+
background: #fff0f1;
|
|
3368
|
+
color: #c0262f;
|
|
3369
|
+
}
|
|
3370
|
+
|
|
3371
|
+
.sc-badge-kind-count {
|
|
3372
|
+
font-variant-numeric: tabular-nums;
|
|
3373
|
+
}
|
|
3374
|
+
|
|
3375
|
+
.sc-category-swatch,
|
|
3376
|
+
.sc-calendar-dot {
|
|
3377
|
+
display: inline-block;
|
|
3378
|
+
flex: none;
|
|
3379
|
+
width: 0.625rem;
|
|
3380
|
+
height: 0.625rem;
|
|
3381
|
+
border-radius: var(--sc-radius-full);
|
|
3382
|
+
background: var(--sc-category-mark, var(--sc-category-line, var(--sc-color-text-faint)));
|
|
3383
|
+
}
|
|
3384
|
+
|
|
3385
|
+
/* The filters above the board: a quiet row of controls, as wide as its words. */
|
|
3386
|
+
.sc-filters {
|
|
3387
|
+
display: flex;
|
|
3388
|
+
flex-wrap: wrap;
|
|
3389
|
+
align-items: center;
|
|
3390
|
+
gap: var(--sc-space-2) var(--sc-space-3);
|
|
3391
|
+
margin-bottom: var(--sc-space-3);
|
|
3392
|
+
}
|
|
3393
|
+
|
|
3394
|
+
.sc-filters .sc-field-inline {
|
|
3395
|
+
flex: none;
|
|
3396
|
+
}
|
|
3397
|
+
|
|
3398
|
+
.sc-filters .sc-input {
|
|
3399
|
+
min-height: 2rem;
|
|
3400
|
+
padding-block: 0;
|
|
3401
|
+
font-size: var(--sc-text-sm);
|
|
3402
|
+
}
|
|
3403
|
+
|
|
3404
|
+
/* The words the board is narrowed by: a field that takes what room the row has, up to a point. */
|
|
3405
|
+
.sc-filters-words {
|
|
3406
|
+
flex: 1 1 12rem;
|
|
3407
|
+
max-width: 22rem;
|
|
3408
|
+
}
|
|
3409
|
+
|
|
3410
|
+
.sc-filters-words .sc-input {
|
|
3411
|
+
width: 100%;
|
|
2875
3412
|
}
|
|
2876
3413
|
|
|
2877
3414
|
.sc-filters-count {
|
|
2878
3415
|
font-size: var(--sc-text-sm);
|
|
2879
3416
|
}
|
|
2880
3417
|
|
|
3418
|
+
@media (max-width: 40rem) {
|
|
3419
|
+
.sc-filters {
|
|
3420
|
+
flex-wrap: nowrap;
|
|
3421
|
+
margin-inline: calc(-1 * var(--sc-space-4));
|
|
3422
|
+
padding-inline: var(--sc-space-4);
|
|
3423
|
+
overflow-x: auto;
|
|
3424
|
+
scrollbar-width: none;
|
|
3425
|
+
}
|
|
3426
|
+
|
|
3427
|
+
.sc-filters > * {
|
|
3428
|
+
flex: none;
|
|
3429
|
+
}
|
|
3430
|
+
|
|
3431
|
+
.sc-filters-count {
|
|
3432
|
+
white-space: nowrap;
|
|
3433
|
+
}
|
|
3434
|
+
}
|
|
3435
|
+
|
|
2881
3436
|
/* Tasks as rows, where the columns are not the point. */
|
|
2882
3437
|
.sc-task-rows {
|
|
2883
3438
|
display: grid;
|
|
@@ -2888,11 +3443,11 @@ table {
|
|
|
2888
3443
|
}
|
|
2889
3444
|
|
|
2890
3445
|
.sc-task-row {
|
|
2891
|
-
display:
|
|
2892
|
-
|
|
3446
|
+
display: grid;
|
|
3447
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
2893
3448
|
align-items: center;
|
|
2894
|
-
gap: var(--sc-space-
|
|
2895
|
-
padding: var(--sc-space-
|
|
3449
|
+
gap: var(--sc-space-1) var(--sc-space-3);
|
|
3450
|
+
padding: var(--sc-space-3) var(--sc-space-4);
|
|
2896
3451
|
border: var(--sc-border);
|
|
2897
3452
|
border-radius: var(--sc-radius-md);
|
|
2898
3453
|
background: var(--sc-color-sheet);
|
|
@@ -2900,7 +3455,7 @@ table {
|
|
|
2900
3455
|
}
|
|
2901
3456
|
|
|
2902
3457
|
.sc-task-row-title {
|
|
2903
|
-
|
|
3458
|
+
grid-column: 1;
|
|
2904
3459
|
min-width: 0;
|
|
2905
3460
|
color: var(--sc-color-text);
|
|
2906
3461
|
font-weight: var(--sc-weight-medium);
|
|
@@ -2913,6 +3468,7 @@ table {
|
|
|
2913
3468
|
}
|
|
2914
3469
|
|
|
2915
3470
|
.sc-task-row-project {
|
|
3471
|
+
grid-column: 1;
|
|
2916
3472
|
color: var(--sc-color-text-faint);
|
|
2917
3473
|
font-size: var(--sc-text-xs);
|
|
2918
3474
|
}
|
|
@@ -2920,11 +3476,27 @@ table {
|
|
|
2920
3476
|
.sc-task-row-meta {
|
|
2921
3477
|
display: flex;
|
|
2922
3478
|
flex-wrap: wrap;
|
|
3479
|
+
grid-row: 1 / span 2;
|
|
3480
|
+
grid-column: 2;
|
|
2923
3481
|
align-items: center;
|
|
3482
|
+
justify-content: flex-end;
|
|
2924
3483
|
gap: var(--sc-space-1);
|
|
2925
3484
|
margin-left: auto;
|
|
2926
3485
|
}
|
|
2927
3486
|
|
|
3487
|
+
@media (max-width: 40rem) {
|
|
3488
|
+
.sc-task-row {
|
|
3489
|
+
grid-template-columns: minmax(0, 1fr);
|
|
3490
|
+
}
|
|
3491
|
+
|
|
3492
|
+
.sc-task-row-meta {
|
|
3493
|
+
grid-row: auto;
|
|
3494
|
+
grid-column: 1;
|
|
3495
|
+
justify-content: flex-start;
|
|
3496
|
+
margin-left: 0;
|
|
3497
|
+
}
|
|
3498
|
+
}
|
|
3499
|
+
|
|
2928
3500
|
/* The calendar: the month as a table, a cell a day, the tasks due in it one line each. */
|
|
2929
3501
|
.sc-calendar {
|
|
2930
3502
|
display: grid;
|
|
@@ -2957,12 +3529,7 @@ table {
|
|
|
2957
3529
|
|
|
2958
3530
|
.sc-calendar-grid th {
|
|
2959
3531
|
padding: var(--sc-space-1);
|
|
2960
|
-
color: var(--sc-color-text-faint);
|
|
2961
|
-
font-size: var(--sc-text-xs);
|
|
2962
|
-
font-weight: var(--sc-weight-medium);
|
|
2963
|
-
letter-spacing: 0.04em;
|
|
2964
3532
|
text-align: left;
|
|
2965
|
-
text-transform: uppercase;
|
|
2966
3533
|
}
|
|
2967
3534
|
|
|
2968
3535
|
.sc-calendar-cell {
|
|
@@ -2981,7 +3548,6 @@ table {
|
|
|
2981
3548
|
|
|
2982
3549
|
.sc-calendar-cell-today {
|
|
2983
3550
|
border-color: var(--sc-color-accent);
|
|
2984
|
-
box-shadow: inset 0 0 0 1px var(--sc-color-accent);
|
|
2985
3551
|
}
|
|
2986
3552
|
|
|
2987
3553
|
.sc-calendar-day {
|
|
@@ -2995,6 +3561,26 @@ table {
|
|
|
2995
3561
|
color: var(--sc-color-accent);
|
|
2996
3562
|
}
|
|
2997
3563
|
|
|
3564
|
+
.sc-calendar-more {
|
|
3565
|
+
display: block;
|
|
3566
|
+
width: 100%;
|
|
3567
|
+
margin-top: 2px;
|
|
3568
|
+
padding: 1px var(--sc-space-1);
|
|
3569
|
+
border: 0;
|
|
3570
|
+
border-radius: var(--sc-radius-sm);
|
|
3571
|
+
background: transparent;
|
|
3572
|
+
color: var(--sc-color-text-muted);
|
|
3573
|
+
font-size: var(--sc-text-xs);
|
|
3574
|
+
font-weight: var(--sc-weight-medium);
|
|
3575
|
+
line-height: var(--sc-leading-snug);
|
|
3576
|
+
text-align: start;
|
|
3577
|
+
}
|
|
3578
|
+
|
|
3579
|
+
.sc-calendar-more:hover {
|
|
3580
|
+
background: var(--sc-color-bg-inset);
|
|
3581
|
+
color: var(--sc-color-text);
|
|
3582
|
+
}
|
|
3583
|
+
|
|
2998
3584
|
.sc-calendar-task {
|
|
2999
3585
|
display: flex;
|
|
3000
3586
|
align-items: center;
|
|
@@ -3004,7 +3590,7 @@ table {
|
|
|
3004
3590
|
border-radius: var(--sc-radius-sm);
|
|
3005
3591
|
color: var(--sc-color-text);
|
|
3006
3592
|
font-size: var(--sc-text-xs);
|
|
3007
|
-
line-height:
|
|
3593
|
+
line-height: var(--sc-leading-snug);
|
|
3008
3594
|
text-decoration: none;
|
|
3009
3595
|
}
|
|
3010
3596
|
|
|
@@ -3041,7 +3627,8 @@ table {
|
|
|
3041
3627
|
.sc-calendar-bar {
|
|
3042
3628
|
margin-inline: calc(-1 * var(--sc-space-2) - 0.125rem - 1px);
|
|
3043
3629
|
padding-inline: var(--sc-space-2);
|
|
3044
|
-
border-block: 1px solid
|
|
3630
|
+
border-block: 1px solid
|
|
3631
|
+
color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 60%, transparent);
|
|
3045
3632
|
background: var(--sc-category-fill);
|
|
3046
3633
|
color: var(--sc-category-line);
|
|
3047
3634
|
font-size: var(--sc-text-xs);
|
|
@@ -3054,19 +3641,21 @@ table {
|
|
|
3054
3641
|
every week it crosses, never one piece alone; by its colour and not by a filter, which would
|
|
3055
3642
|
light the card within it too. */
|
|
3056
3643
|
.sc-calendar-bar-pointed {
|
|
3057
|
-
background: color-mix(in srgb, var(--sc-category-fill),
|
|
3644
|
+
background: color-mix(in srgb, var(--sc-category-fill), var(--sc-category-line) 14%);
|
|
3058
3645
|
}
|
|
3059
3646
|
|
|
3060
3647
|
.sc-calendar-bar-begins {
|
|
3061
3648
|
margin-left: 0;
|
|
3062
|
-
border-left: 1px solid
|
|
3649
|
+
border-left: 1px solid
|
|
3650
|
+
color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 60%, transparent);
|
|
3063
3651
|
border-start-start-radius: var(--sc-radius-full);
|
|
3064
3652
|
border-end-start-radius: var(--sc-radius-full);
|
|
3065
3653
|
}
|
|
3066
3654
|
|
|
3067
3655
|
.sc-calendar-bar-ends {
|
|
3068
3656
|
margin-right: 0;
|
|
3069
|
-
border-right: 1px solid
|
|
3657
|
+
border-right: 1px solid
|
|
3658
|
+
color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 60%, transparent);
|
|
3070
3659
|
border-start-end-radius: var(--sc-radius-full);
|
|
3071
3660
|
border-end-end-radius: var(--sc-radius-full);
|
|
3072
3661
|
}
|
|
@@ -3088,8 +3677,17 @@ table {
|
|
|
3088
3677
|
color: var(--sc-color-danger);
|
|
3089
3678
|
}
|
|
3090
3679
|
|
|
3680
|
+
/* A bar of a task that is over: paler in its own colour, not see-through, so that every piece
|
|
3681
|
+
of it is one shade whatever lies under it, and the card of the task under the pointer,
|
|
3682
|
+
which lies within the piece, stays solid. */
|
|
3091
3683
|
.sc-calendar-bar.sc-calendar-over {
|
|
3092
|
-
|
|
3684
|
+
border-color: color-mix(
|
|
3685
|
+
in srgb,
|
|
3686
|
+
var(--sc-category-mark, var(--sc-category-line)) 30%,
|
|
3687
|
+
transparent
|
|
3688
|
+
);
|
|
3689
|
+
background: color-mix(in srgb, var(--sc-category-fill) 50%, var(--sc-color-bg-raised));
|
|
3690
|
+
color: color-mix(in srgb, var(--sc-category-line) 55%, var(--sc-color-bg-raised));
|
|
3093
3691
|
}
|
|
3094
3692
|
|
|
3095
3693
|
.sc-calendar-legend {
|
|
@@ -3150,6 +3748,16 @@ table {
|
|
|
3150
3748
|
font-size: var(--sc-text-sm);
|
|
3151
3749
|
}
|
|
3152
3750
|
|
|
3751
|
+
/* The mark hangs in the margin, so that what wraps onto a second line, a badge most often,
|
|
3752
|
+
starts under the name rather than under the mark. */
|
|
3753
|
+
.sc-project-head:has(> .sc-mark-md) {
|
|
3754
|
+
padding-inline-start: calc(2rem + var(--sc-space-3));
|
|
3755
|
+
}
|
|
3756
|
+
|
|
3757
|
+
.sc-project-head > .sc-mark-md {
|
|
3758
|
+
margin-inline-start: calc(-2rem - var(--sc-space-3));
|
|
3759
|
+
}
|
|
3760
|
+
|
|
3153
3761
|
.sc-mark-lg {
|
|
3154
3762
|
width: 3rem;
|
|
3155
3763
|
height: 3rem;
|
|
@@ -3178,10 +3786,11 @@ table {
|
|
|
3178
3786
|
}
|
|
3179
3787
|
|
|
3180
3788
|
.sc-input-file {
|
|
3181
|
-
padding-block: calc(var(--sc-space-2) - 2px);
|
|
3182
3789
|
font-size: var(--sc-text-sm);
|
|
3183
3790
|
}
|
|
3184
3791
|
|
|
3792
|
+
/* Under the month: what is late and who has what on the left, one under the other, and what
|
|
3793
|
+
has no day yet, the long list, down the right; one column where the window is narrow. */
|
|
3185
3794
|
.sc-calendar-below {
|
|
3186
3795
|
display: grid;
|
|
3187
3796
|
align-items: start;
|
|
@@ -3192,6 +3801,12 @@ table {
|
|
|
3192
3801
|
@media (min-width: 64rem) {
|
|
3193
3802
|
.sc-calendar-below {
|
|
3194
3803
|
grid-template-columns: 1fr 1fr;
|
|
3804
|
+
grid-template-rows: auto 1fr;
|
|
3805
|
+
}
|
|
3806
|
+
|
|
3807
|
+
.sc-calendar-below > :last-child {
|
|
3808
|
+
grid-column: 2;
|
|
3809
|
+
grid-row: 1 / span 2;
|
|
3195
3810
|
}
|
|
3196
3811
|
}
|
|
3197
3812
|
|
|
@@ -3243,6 +3858,26 @@ table {
|
|
|
3243
3858
|
color: var(--sc-color-text-muted);
|
|
3244
3859
|
}
|
|
3245
3860
|
|
|
3861
|
+
/* Who asked and who answers (ADR-0042): the two people side by side, an arrow from the one to
|
|
3862
|
+
the other, so that the asker and the decider are never read as one. */
|
|
3863
|
+
.sc-decision-people,
|
|
3864
|
+
.sc-decision-for {
|
|
3865
|
+
display: inline-flex;
|
|
3866
|
+
align-items: center;
|
|
3867
|
+
gap: var(--sc-space-1);
|
|
3868
|
+
white-space: nowrap;
|
|
3869
|
+
}
|
|
3870
|
+
|
|
3871
|
+
.sc-decision-arrow {
|
|
3872
|
+
color: var(--sc-color-text-faint);
|
|
3873
|
+
font-weight: var(--sc-weight-medium);
|
|
3874
|
+
}
|
|
3875
|
+
|
|
3876
|
+
.sc-decision-row-answer {
|
|
3877
|
+
color: var(--sc-color-text);
|
|
3878
|
+
font-weight: var(--sc-weight-medium);
|
|
3879
|
+
}
|
|
3880
|
+
|
|
3246
3881
|
/* The record of the decisions: a row each, what was asked on the left and what was answered on
|
|
3247
3882
|
the right, each with who and when under it; one column where the window is narrow. */
|
|
3248
3883
|
.sc-decision-record {
|
|
@@ -3296,12 +3931,26 @@ table {
|
|
|
3296
3931
|
margin-left: var(--sc-space-2);
|
|
3297
3932
|
}
|
|
3298
3933
|
|
|
3934
|
+
/* The answer a decision took, marked in green before its words. */
|
|
3935
|
+
.sc-decision-record-chosen::before {
|
|
3936
|
+
content: "";
|
|
3937
|
+
position: absolute;
|
|
3938
|
+
top: calc(0.8em - 0.25rem);
|
|
3939
|
+
left: 0;
|
|
3940
|
+
width: 0.5rem;
|
|
3941
|
+
height: 0.5rem;
|
|
3942
|
+
border-radius: var(--sc-radius-full);
|
|
3943
|
+
background: var(--sc-color-success);
|
|
3944
|
+
}
|
|
3945
|
+
|
|
3299
3946
|
.sc-decision-record-chosen {
|
|
3947
|
+
position: relative;
|
|
3948
|
+
padding-left: var(--sc-space-4);
|
|
3300
3949
|
display: flex;
|
|
3301
3950
|
flex-wrap: wrap;
|
|
3302
3951
|
align-items: center;
|
|
3303
3952
|
gap: var(--sc-space-2);
|
|
3304
|
-
color: var(--sc-color-
|
|
3953
|
+
color: var(--sc-color-text);
|
|
3305
3954
|
font-weight: var(--sc-weight-medium);
|
|
3306
3955
|
overflow-wrap: anywhere;
|
|
3307
3956
|
}
|
|
@@ -3340,31 +3989,44 @@ table {
|
|
|
3340
3989
|
font-size: var(--sc-text-sm);
|
|
3341
3990
|
}
|
|
3342
3991
|
|
|
3343
|
-
/* Who has what: a
|
|
3992
|
+
/* Who has what: a table on a sheet of its own, a quiet band for the headings, a hairline
|
|
3993
|
+
between people, the numbers in columns of their own on the right in the display size; the
|
|
3994
|
+
one due this week and the one late carry a dot of their colour before them. */
|
|
3344
3995
|
.sc-workload {
|
|
3345
3996
|
width: 100%;
|
|
3346
3997
|
max-width: var(--sc-width-prose);
|
|
3347
|
-
border
|
|
3998
|
+
border: var(--sc-border);
|
|
3999
|
+
border-radius: var(--sc-radius-lg);
|
|
4000
|
+
border-collapse: separate;
|
|
4001
|
+
border-spacing: 0;
|
|
4002
|
+
background: var(--sc-color-sheet);
|
|
4003
|
+
box-shadow: var(--sc-glass-lift);
|
|
3348
4004
|
font-size: var(--sc-text-sm);
|
|
3349
4005
|
}
|
|
3350
4006
|
|
|
3351
4007
|
.sc-workload th,
|
|
3352
4008
|
.sc-workload td {
|
|
3353
|
-
padding: var(--sc-space-
|
|
3354
|
-
border-bottom: var(--sc-border);
|
|
4009
|
+
padding: var(--sc-space-3) var(--sc-space-4);
|
|
3355
4010
|
text-align: left;
|
|
3356
4011
|
}
|
|
3357
4012
|
|
|
3358
4013
|
.sc-workload thead th {
|
|
3359
|
-
|
|
3360
|
-
|
|
3361
|
-
|
|
3362
|
-
|
|
3363
|
-
|
|
4014
|
+
padding-block: var(--sc-space-2);
|
|
4015
|
+
border-bottom: var(--sc-border);
|
|
4016
|
+
background: var(--sc-color-bg-inset);
|
|
4017
|
+
white-space: nowrap;
|
|
4018
|
+
}
|
|
4019
|
+
|
|
4020
|
+
.sc-workload thead th:first-child {
|
|
4021
|
+
border-start-start-radius: var(--sc-radius-lg);
|
|
4022
|
+
}
|
|
4023
|
+
|
|
4024
|
+
.sc-workload thead th:last-child {
|
|
4025
|
+
border-start-end-radius: var(--sc-radius-lg);
|
|
3364
4026
|
}
|
|
3365
4027
|
|
|
3366
4028
|
.sc-workload tbody th {
|
|
3367
|
-
font-weight: var(--sc-weight-
|
|
4029
|
+
font-weight: var(--sc-weight-medium);
|
|
3368
4030
|
}
|
|
3369
4031
|
|
|
3370
4032
|
.sc-workload tbody th a {
|
|
@@ -3376,8 +4038,34 @@ table {
|
|
|
3376
4038
|
color: var(--sc-color-accent);
|
|
3377
4039
|
}
|
|
3378
4040
|
|
|
4041
|
+
/* The numbers: a narrow column each, lined up on the right. */
|
|
4042
|
+
.sc-workload th:not(:first-child),
|
|
3379
4043
|
.sc-workload td {
|
|
4044
|
+
width: 6.5rem;
|
|
4045
|
+
text-align: right;
|
|
4046
|
+
}
|
|
4047
|
+
|
|
4048
|
+
.sc-workload td {
|
|
4049
|
+
font-size: var(--sc-text-md);
|
|
3380
4050
|
font-variant-numeric: tabular-nums;
|
|
4051
|
+
white-space: nowrap;
|
|
4052
|
+
}
|
|
4053
|
+
|
|
4054
|
+
.sc-workload-soon,
|
|
4055
|
+
.sc-workload-late {
|
|
4056
|
+
font-weight: var(--sc-weight-bold);
|
|
4057
|
+
}
|
|
4058
|
+
|
|
4059
|
+
.sc-workload-soon::before,
|
|
4060
|
+
.sc-workload-late::before {
|
|
4061
|
+
content: "";
|
|
4062
|
+
display: inline-block;
|
|
4063
|
+
width: 0.4rem;
|
|
4064
|
+
height: 0.4rem;
|
|
4065
|
+
margin-inline-end: var(--sc-space-2);
|
|
4066
|
+
border-radius: var(--sc-radius-full);
|
|
4067
|
+
background: currentColor;
|
|
4068
|
+
vertical-align: 0.1em;
|
|
3381
4069
|
}
|
|
3382
4070
|
|
|
3383
4071
|
.sc-workload-soon {
|
|
@@ -3386,14 +4074,50 @@ table {
|
|
|
3386
4074
|
|
|
3387
4075
|
.sc-workload-late {
|
|
3388
4076
|
color: var(--sc-color-danger);
|
|
3389
|
-
|
|
4077
|
+
}
|
|
4078
|
+
|
|
4079
|
+
/* A hairline between people, and the row under the pointer lit a little. */
|
|
4080
|
+
.sc-workload tbody tr + tr > th,
|
|
4081
|
+
.sc-workload tbody tr + tr > td {
|
|
4082
|
+
border-top: var(--sc-hairline);
|
|
4083
|
+
}
|
|
4084
|
+
|
|
4085
|
+
.sc-workload tbody tr:hover > th,
|
|
4086
|
+
.sc-workload tbody tr:hover > td {
|
|
4087
|
+
background: color-mix(in srgb, var(--sc-color-accent) 4%, transparent);
|
|
4088
|
+
}
|
|
4089
|
+
|
|
4090
|
+
@media (max-width: 40rem) {
|
|
4091
|
+
.sc-workload th:not(:first-child),
|
|
4092
|
+
.sc-workload td {
|
|
4093
|
+
width: auto;
|
|
4094
|
+
}
|
|
4095
|
+
|
|
4096
|
+
.sc-workload th,
|
|
4097
|
+
.sc-workload td {
|
|
4098
|
+
padding-inline: var(--sc-space-2);
|
|
4099
|
+
}
|
|
4100
|
+
|
|
4101
|
+
.sc-workload thead th {
|
|
4102
|
+
white-space: normal;
|
|
4103
|
+
word-break: keep-all;
|
|
4104
|
+
line-height: var(--sc-leading-tight);
|
|
4105
|
+
}
|
|
4106
|
+
|
|
4107
|
+
.sc-workload tbody th {
|
|
4108
|
+
word-break: keep-all;
|
|
4109
|
+
}
|
|
4110
|
+
|
|
4111
|
+
.sc-workload td {
|
|
4112
|
+
font-size: var(--sc-text-sm);
|
|
4113
|
+
}
|
|
3390
4114
|
}
|
|
3391
4115
|
|
|
3392
4116
|
/* The roadmap: a goal a pane, with how far it is as a bar. */
|
|
3393
4117
|
.sc-goals {
|
|
3394
4118
|
display: grid;
|
|
4119
|
+
grid-template-columns: repeat(auto-fill, minmax(min(100%, 30rem), 1fr));
|
|
3395
4120
|
gap: var(--sc-space-3);
|
|
3396
|
-
max-width: var(--sc-width-prose);
|
|
3397
4121
|
margin: 0;
|
|
3398
4122
|
padding: 0;
|
|
3399
4123
|
list-style: none;
|
|
@@ -3410,7 +4134,7 @@ table {
|
|
|
3410
4134
|
}
|
|
3411
4135
|
|
|
3412
4136
|
.sc-goal-done {
|
|
3413
|
-
opacity: 0.
|
|
4137
|
+
opacity: 0.55;
|
|
3414
4138
|
}
|
|
3415
4139
|
|
|
3416
4140
|
.sc-goal-dropped {
|
|
@@ -3425,7 +4149,7 @@ table {
|
|
|
3425
4149
|
}
|
|
3426
4150
|
|
|
3427
4151
|
.sc-goal-title {
|
|
3428
|
-
flex: 1 1
|
|
4152
|
+
flex: 1 1 100%;
|
|
3429
4153
|
color: var(--sc-color-text);
|
|
3430
4154
|
font-size: var(--sc-text-lg);
|
|
3431
4155
|
font-weight: var(--sc-weight-medium);
|
|
@@ -3469,11 +4193,6 @@ table {
|
|
|
3469
4193
|
|
|
3470
4194
|
.sc-goal-tasks-state {
|
|
3471
4195
|
margin-bottom: var(--sc-space-2);
|
|
3472
|
-
color: var(--sc-color-text-faint);
|
|
3473
|
-
font-size: var(--sc-text-xs);
|
|
3474
|
-
font-weight: var(--sc-weight-medium);
|
|
3475
|
-
letter-spacing: 0.04em;
|
|
3476
|
-
text-transform: uppercase;
|
|
3477
4196
|
}
|
|
3478
4197
|
|
|
3479
4198
|
/* The categories: a row each, with its name and its colour open to an administrator. */
|
|
@@ -3502,6 +4221,10 @@ table {
|
|
|
3502
4221
|
background: var(--sc-color-sheet);
|
|
3503
4222
|
}
|
|
3504
4223
|
|
|
4224
|
+
.sc-category-row > .sc-project-key {
|
|
4225
|
+
margin-inline-start: auto;
|
|
4226
|
+
}
|
|
4227
|
+
|
|
3505
4228
|
.sc-category-form {
|
|
3506
4229
|
display: flex;
|
|
3507
4230
|
flex: 1;
|
|
@@ -3534,12 +4257,12 @@ table {
|
|
|
3534
4257
|
padding: var(--sc-space-2) var(--sc-space-3);
|
|
3535
4258
|
border: var(--sc-border);
|
|
3536
4259
|
border-radius: var(--sc-radius-md);
|
|
3537
|
-
background: var(--sc-color-bg-
|
|
4260
|
+
background: var(--sc-color-bg-raised);
|
|
3538
4261
|
box-shadow: var(--sc-shadow-stage);
|
|
3539
4262
|
color: var(--sc-color-text);
|
|
3540
4263
|
font-size: var(--sc-text-xs);
|
|
3541
4264
|
font-weight: var(--sc-weight-normal);
|
|
3542
|
-
line-height:
|
|
4265
|
+
line-height: var(--sc-leading-snug);
|
|
3543
4266
|
text-align: left;
|
|
3544
4267
|
text-decoration: none;
|
|
3545
4268
|
white-space: normal;
|
|
@@ -3629,13 +4352,17 @@ table {
|
|
|
3629
4352
|
padding-inline: var(--sc-space-4);
|
|
3630
4353
|
}
|
|
3631
4354
|
|
|
3632
|
-
.sc-brand
|
|
3633
|
-
|
|
3634
|
-
height: var(--sc-brand-size-compact);
|
|
4355
|
+
.sc-brand {
|
|
4356
|
+
gap: calc(var(--sc-brand-size-compact) * var(--sc-brand-gap-ratio));
|
|
3635
4357
|
}
|
|
3636
4358
|
|
|
3637
4359
|
.sc-brand-symbol {
|
|
3638
4360
|
width: var(--sc-brand-size-compact);
|
|
4361
|
+
height: var(--sc-brand-size-compact);
|
|
4362
|
+
}
|
|
4363
|
+
|
|
4364
|
+
.sc-brand-wordmark {
|
|
4365
|
+
height: calc(var(--sc-brand-size-compact) * var(--sc-brand-wordmark-ratio));
|
|
3639
4366
|
}
|
|
3640
4367
|
|
|
3641
4368
|
.sc-crumb-link {
|
|
@@ -3647,15 +4374,18 @@ table {
|
|
|
3647
4374
|
display: none;
|
|
3648
4375
|
}
|
|
3649
4376
|
|
|
3650
|
-
/* Tabs that do not fit
|
|
4377
|
+
/* Tabs that do not fit stay on one line and scroll sideways, the edge fading where more of them
|
|
4378
|
+
are; the current one is brought into view by the shell. */
|
|
3651
4379
|
.sc-tabs {
|
|
3652
4380
|
padding-inline: var(--sc-space-4);
|
|
3653
|
-
|
|
4381
|
+
mask-image: linear-gradient(to right, #000 calc(100% - var(--sc-space-6)), transparent);
|
|
3654
4382
|
}
|
|
3655
4383
|
|
|
3656
4384
|
.sc-tabs-inner {
|
|
3657
|
-
|
|
3658
|
-
|
|
4385
|
+
gap: var(--sc-space-4);
|
|
4386
|
+
/* As wide as the tabs and some room past the last, so that it scrolls clear of the fading edge. */
|
|
4387
|
+
width: max-content;
|
|
4388
|
+
padding-inline-end: var(--sc-space-6);
|
|
3659
4389
|
}
|
|
3660
4390
|
|
|
3661
4391
|
.sc-menu-summary .sc-person-login {
|
|
@@ -3743,9 +4473,9 @@ table {
|
|
|
3743
4473
|
position: static;
|
|
3744
4474
|
}
|
|
3745
4475
|
|
|
3746
|
-
.
|
|
3747
|
-
|
|
3748
|
-
|
|
4476
|
+
/* The rows of a run use the whole width. */
|
|
4477
|
+
.sc-feed-run-list {
|
|
4478
|
+
padding-inline-start: 0;
|
|
3749
4479
|
}
|
|
3750
4480
|
|
|
3751
4481
|
.sc-sign-in {
|
|
@@ -3774,10 +4504,10 @@ table {
|
|
|
3774
4504
|
display: inline-flex;
|
|
3775
4505
|
align-items: center;
|
|
3776
4506
|
padding: 0 var(--sc-space-3);
|
|
3777
|
-
border:
|
|
4507
|
+
border: var(--sc-border-strong);
|
|
3778
4508
|
border-right: 0;
|
|
3779
4509
|
border-radius: var(--sc-radius-md) 0 0 var(--sc-radius-md);
|
|
3780
|
-
background: color-mix(in srgb, var(--sc-color-
|
|
4510
|
+
background: color-mix(in srgb, var(--sc-color-bg-raised) 60%, var(--sc-color-border));
|
|
3781
4511
|
color: var(--sc-color-text-muted);
|
|
3782
4512
|
font-size: var(--sc-text-sm);
|
|
3783
4513
|
white-space: nowrap;
|
|
@@ -3807,7 +4537,12 @@ table {
|
|
|
3807
4537
|
}
|
|
3808
4538
|
|
|
3809
4539
|
/* The facts of a thing inside a panel: a list in the panel, not a pane of their own. */
|
|
4540
|
+
/* The facts on a settings page, inside a pane of their own: a table, a row per fact with its
|
|
4541
|
+
name in a column on the left and its value beside it, a hairline between rows; the name over
|
|
4542
|
+
the value where the window is narrow. */
|
|
3810
4543
|
.sc-facts-plain {
|
|
4544
|
+
grid-template-columns: minmax(0, 1fr);
|
|
4545
|
+
gap: 0;
|
|
3811
4546
|
padding: 0;
|
|
3812
4547
|
border: 0;
|
|
3813
4548
|
border-radius: 0;
|
|
@@ -3820,6 +4555,44 @@ table {
|
|
|
3820
4555
|
content: none;
|
|
3821
4556
|
}
|
|
3822
4557
|
|
|
4558
|
+
.sc-facts-plain > * {
|
|
4559
|
+
display: grid;
|
|
4560
|
+
grid-template-columns: minmax(8rem, 12rem) minmax(0, 1fr);
|
|
4561
|
+
gap: var(--sc-space-1) var(--sc-space-5);
|
|
4562
|
+
align-items: baseline;
|
|
4563
|
+
padding: var(--sc-space-3) 0;
|
|
4564
|
+
border-top: var(--sc-hairline);
|
|
4565
|
+
}
|
|
4566
|
+
|
|
4567
|
+
.sc-facts-plain > :first-child {
|
|
4568
|
+
padding-top: 0;
|
|
4569
|
+
border-top: 0;
|
|
4570
|
+
}
|
|
4571
|
+
|
|
4572
|
+
.sc-facts-plain > :last-child {
|
|
4573
|
+
padding-bottom: 0;
|
|
4574
|
+
}
|
|
4575
|
+
|
|
4576
|
+
.sc-facts-plain dt {
|
|
4577
|
+
color: var(--sc-color-text-muted);
|
|
4578
|
+
font-size: var(--sc-text-sm);
|
|
4579
|
+
font-weight: var(--sc-weight-medium);
|
|
4580
|
+
letter-spacing: 0;
|
|
4581
|
+
text-transform: none;
|
|
4582
|
+
}
|
|
4583
|
+
|
|
4584
|
+
.sc-facts-plain dd {
|
|
4585
|
+
margin-top: 0;
|
|
4586
|
+
font-size: var(--sc-text-md);
|
|
4587
|
+
overflow-wrap: anywhere;
|
|
4588
|
+
}
|
|
4589
|
+
|
|
4590
|
+
@media (max-width: 40rem) {
|
|
4591
|
+
.sc-facts-plain > * {
|
|
4592
|
+
grid-template-columns: minmax(0, 1fr);
|
|
4593
|
+
}
|
|
4594
|
+
}
|
|
4595
|
+
|
|
3823
4596
|
/* A fact that needs the whole row: a description. */
|
|
3824
4597
|
.sc-facts-wide {
|
|
3825
4598
|
grid-column: 1 / -1;
|
|
@@ -3875,7 +4648,7 @@ table {
|
|
|
3875
4648
|
|
|
3876
4649
|
.sc-timeline-title {
|
|
3877
4650
|
margin: 0;
|
|
3878
|
-
font-size: var(--sc-text-
|
|
4651
|
+
font-size: var(--sc-text-md);
|
|
3879
4652
|
font-weight: var(--sc-weight-medium);
|
|
3880
4653
|
}
|
|
3881
4654
|
|
|
@@ -3892,14 +4665,19 @@ table {
|
|
|
3892
4665
|
gap: var(--sc-space-2);
|
|
3893
4666
|
}
|
|
3894
4667
|
|
|
4668
|
+
/* A label keeps to one line, so that every row is as tall as its bar and the labels line up with
|
|
4669
|
+
the bars: a long title is cut short, said in full on hover, and the state stays beside it. */
|
|
3895
4670
|
.sc-timeline-label {
|
|
3896
4671
|
display: flex;
|
|
3897
|
-
flex-wrap: wrap;
|
|
3898
4672
|
align-items: center;
|
|
3899
4673
|
gap: var(--sc-space-2);
|
|
3900
4674
|
min-width: 0;
|
|
3901
4675
|
}
|
|
3902
4676
|
|
|
4677
|
+
.sc-timeline-label .sc-badge {
|
|
4678
|
+
flex: none;
|
|
4679
|
+
}
|
|
4680
|
+
|
|
3903
4681
|
.sc-timeline-goal {
|
|
3904
4682
|
color: var(--sc-color-text);
|
|
3905
4683
|
font-size: var(--sc-text-sm);
|
|
@@ -3907,6 +4685,13 @@ table {
|
|
|
3907
4685
|
overflow-wrap: anywhere;
|
|
3908
4686
|
}
|
|
3909
4687
|
|
|
4688
|
+
.sc-timeline-label .sc-timeline-goal {
|
|
4689
|
+
min-width: 0;
|
|
4690
|
+
overflow: hidden;
|
|
4691
|
+
text-overflow: ellipsis;
|
|
4692
|
+
white-space: nowrap;
|
|
4693
|
+
}
|
|
4694
|
+
|
|
3910
4695
|
.sc-timeline-goal:hover {
|
|
3911
4696
|
color: var(--sc-color-accent);
|
|
3912
4697
|
}
|
|
@@ -3946,7 +4731,7 @@ table {
|
|
|
3946
4731
|
width: 2px;
|
|
3947
4732
|
margin-left: -1px;
|
|
3948
4733
|
background: var(--sc-color-accent);
|
|
3949
|
-
opacity: 0.
|
|
4734
|
+
opacity: 0.55;
|
|
3950
4735
|
}
|
|
3951
4736
|
|
|
3952
4737
|
.sc-timeline-today-mark {
|
|
@@ -3962,7 +4747,8 @@ table {
|
|
|
3962
4747
|
display: flex;
|
|
3963
4748
|
align-items: center;
|
|
3964
4749
|
overflow: hidden;
|
|
3965
|
-
border-block: 1px solid
|
|
4750
|
+
border-block: 1px solid
|
|
4751
|
+
color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 60%, transparent);
|
|
3966
4752
|
background: var(--sc-category-fill);
|
|
3967
4753
|
color: var(--sc-category-line);
|
|
3968
4754
|
font-size: var(--sc-text-xs);
|
|
@@ -3971,17 +4757,19 @@ table {
|
|
|
3971
4757
|
}
|
|
3972
4758
|
|
|
3973
4759
|
.sc-timeline-bar:hover {
|
|
3974
|
-
background: color-mix(in srgb, var(--sc-category-fill),
|
|
4760
|
+
background: color-mix(in srgb, var(--sc-category-fill), var(--sc-category-line) 14%);
|
|
3975
4761
|
}
|
|
3976
4762
|
|
|
3977
4763
|
.sc-timeline-bar.sc-timeline-bar-begins {
|
|
3978
|
-
border-left: 1px solid
|
|
4764
|
+
border-left: 1px solid
|
|
4765
|
+
color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 60%, transparent);
|
|
3979
4766
|
border-start-start-radius: var(--sc-radius-full);
|
|
3980
4767
|
border-end-start-radius: var(--sc-radius-full);
|
|
3981
4768
|
}
|
|
3982
4769
|
|
|
3983
4770
|
.sc-timeline-bar.sc-timeline-bar-ends {
|
|
3984
|
-
border-right: 1px solid
|
|
4771
|
+
border-right: 1px solid
|
|
4772
|
+
color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 60%, transparent);
|
|
3985
4773
|
border-start-end-radius: var(--sc-radius-full);
|
|
3986
4774
|
border-end-end-radius: var(--sc-radius-full);
|
|
3987
4775
|
}
|
|
@@ -3991,7 +4779,7 @@ table {
|
|
|
3991
4779
|
top: 0;
|
|
3992
4780
|
bottom: 0;
|
|
3993
4781
|
left: 0;
|
|
3994
|
-
background: color-mix(in srgb, var(--sc-category-line)
|
|
4782
|
+
background: color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 40%, transparent);
|
|
3995
4783
|
}
|
|
3996
4784
|
|
|
3997
4785
|
.sc-timeline-words {
|
|
@@ -4006,18 +4794,19 @@ table {
|
|
|
4006
4794
|
height: 0.75rem;
|
|
4007
4795
|
margin-left: -0.375rem;
|
|
4008
4796
|
transform: translateY(-50%) rotate(45deg);
|
|
4009
|
-
border: 1px solid
|
|
4797
|
+
border: 1px solid
|
|
4798
|
+
color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 75%, transparent);
|
|
4010
4799
|
background: var(--sc-category-fill);
|
|
4011
4800
|
}
|
|
4012
4801
|
|
|
4013
4802
|
.sc-goal-done .sc-timeline-bar,
|
|
4014
4803
|
.sc-goal-done .sc-timeline-point {
|
|
4015
|
-
opacity: 0.
|
|
4804
|
+
opacity: 0.55;
|
|
4016
4805
|
}
|
|
4017
4806
|
|
|
4018
4807
|
.sc-goal-dropped .sc-timeline-bar,
|
|
4019
4808
|
.sc-goal-dropped .sc-timeline-point {
|
|
4020
|
-
opacity: 0.
|
|
4809
|
+
opacity: 0.55;
|
|
4021
4810
|
}
|
|
4022
4811
|
|
|
4023
4812
|
.sc-timeline-undated {
|
|
@@ -4026,6 +4815,7 @@ table {
|
|
|
4026
4815
|
}
|
|
4027
4816
|
|
|
4028
4817
|
.sc-goal-days {
|
|
4818
|
+
margin-inline-start: auto;
|
|
4029
4819
|
color: var(--sc-color-text-muted);
|
|
4030
4820
|
font-size: var(--sc-text-xs);
|
|
4031
4821
|
}
|
|
@@ -4039,7 +4829,7 @@ table {
|
|
|
4039
4829
|
color: var(--sc-category-line, var(--sc-color-text));
|
|
4040
4830
|
font-size: var(--sc-text-xs);
|
|
4041
4831
|
font-weight: var(--sc-weight-medium);
|
|
4042
|
-
line-height:
|
|
4832
|
+
line-height: var(--sc-leading-tight);
|
|
4043
4833
|
text-decoration: none;
|
|
4044
4834
|
}
|
|
4045
4835
|
|
|
@@ -4053,13 +4843,18 @@ table {
|
|
|
4053
4843
|
width: 0.5rem;
|
|
4054
4844
|
height: 0.5rem;
|
|
4055
4845
|
transform: rotate(45deg);
|
|
4056
|
-
background: var(--sc-category-line, var(--sc-color-text-faint));
|
|
4846
|
+
background: var(--sc-category-mark, var(--sc-category-line, var(--sc-color-text-faint)));
|
|
4057
4847
|
}
|
|
4058
4848
|
|
|
4059
4849
|
@media (max-width: 40rem) {
|
|
4060
4850
|
.sc-timeline-row {
|
|
4061
4851
|
grid-template-columns: minmax(6rem, 8rem) minmax(16rem, 1fr);
|
|
4062
4852
|
}
|
|
4853
|
+
|
|
4854
|
+
/* A narrow label is the title's: the goal's state is on its card below the months. */
|
|
4855
|
+
.sc-timeline-label .sc-badge {
|
|
4856
|
+
display: none;
|
|
4857
|
+
}
|
|
4063
4858
|
}
|
|
4064
4859
|
|
|
4065
4860
|
/* A card is dragged to another column from anywhere on it but its menu, its title included: with
|
|
@@ -4083,7 +4878,7 @@ table {
|
|
|
4083
4878
|
}
|
|
4084
4879
|
|
|
4085
4880
|
.sc-card-dragging {
|
|
4086
|
-
opacity: 0.
|
|
4881
|
+
opacity: 0.55;
|
|
4087
4882
|
}
|
|
4088
4883
|
|
|
4089
4884
|
.sc-board-dragging,
|
|
@@ -4138,7 +4933,7 @@ table {
|
|
|
4138
4933
|
}
|
|
4139
4934
|
|
|
4140
4935
|
.sc-card-menu-button:focus-visible {
|
|
4141
|
-
outline:
|
|
4936
|
+
outline: var(--sc-focus-ring);
|
|
4142
4937
|
outline-offset: 1px;
|
|
4143
4938
|
}
|
|
4144
4939
|
|
|
@@ -4172,7 +4967,7 @@ table {
|
|
|
4172
4967
|
}
|
|
4173
4968
|
|
|
4174
4969
|
.sc-column-over {
|
|
4175
|
-
outline:
|
|
4970
|
+
outline: var(--sc-focus-ring);
|
|
4176
4971
|
outline-offset: -2px;
|
|
4177
4972
|
}
|
|
4178
4973
|
|
|
@@ -4214,26 +5009,37 @@ table {
|
|
|
4214
5009
|
font-size: var(--sc-text-sm);
|
|
4215
5010
|
}
|
|
4216
5011
|
|
|
5012
|
+
.sc-goal-progress .sc-progress-words {
|
|
5013
|
+
display: none;
|
|
5014
|
+
}
|
|
5015
|
+
|
|
4217
5016
|
.sc-facts-row {
|
|
4218
5017
|
display: flex;
|
|
4219
5018
|
flex-wrap: wrap;
|
|
4220
|
-
align-items:
|
|
4221
|
-
gap: var(--sc-space-
|
|
5019
|
+
align-items: stretch;
|
|
5020
|
+
gap: var(--sc-space-3) 0;
|
|
4222
5021
|
margin: 0;
|
|
4223
5022
|
font-size: var(--sc-text-sm);
|
|
4224
5023
|
}
|
|
4225
5024
|
|
|
4226
5025
|
.sc-facts-row > div {
|
|
4227
|
-
display:
|
|
4228
|
-
align-
|
|
4229
|
-
gap: var(--sc-space-
|
|
5026
|
+
display: grid;
|
|
5027
|
+
align-content: start;
|
|
5028
|
+
gap: var(--sc-space-1);
|
|
5029
|
+
padding-inline: var(--sc-space-4);
|
|
5030
|
+
border-inline-start: var(--sc-hairline);
|
|
4230
5031
|
}
|
|
4231
5032
|
|
|
4232
|
-
.sc-facts-row
|
|
4233
|
-
|
|
5033
|
+
.sc-facts-row > div:first-child {
|
|
5034
|
+
padding-inline-start: 0;
|
|
5035
|
+
border-inline-start: 0;
|
|
4234
5036
|
}
|
|
4235
5037
|
|
|
4236
5038
|
.sc-facts-row dd {
|
|
5039
|
+
display: flex;
|
|
5040
|
+
flex-wrap: wrap;
|
|
5041
|
+
align-items: center;
|
|
5042
|
+
gap: var(--sc-space-2);
|
|
4237
5043
|
margin: 0;
|
|
4238
5044
|
}
|
|
4239
5045
|
|
|
@@ -4424,7 +5230,7 @@ table {
|
|
|
4424
5230
|
|
|
4425
5231
|
.sc-pack-code {
|
|
4426
5232
|
font-size: var(--sc-text-xl);
|
|
4427
|
-
letter-spacing:
|
|
5233
|
+
letter-spacing: var(--sc-tracking-code);
|
|
4428
5234
|
}
|
|
4429
5235
|
|
|
4430
5236
|
.sc-pack-connect-waiting {
|
|
@@ -4438,3 +5244,406 @@ table {
|
|
|
4438
5244
|
.sc-pack-actions {
|
|
4439
5245
|
margin-top: var(--sc-space-5);
|
|
4440
5246
|
}
|
|
5247
|
+
|
|
5248
|
+
/* Beside a task the facts stand in one column, a hairline between each. */
|
|
5249
|
+
.sc-task-aside .sc-facts {
|
|
5250
|
+
grid-template-columns: minmax(0, 1fr);
|
|
5251
|
+
gap: 0;
|
|
5252
|
+
padding-block: var(--sc-space-2);
|
|
5253
|
+
}
|
|
5254
|
+
|
|
5255
|
+
.sc-task-aside .sc-facts > * {
|
|
5256
|
+
padding: var(--sc-space-2) 0;
|
|
5257
|
+
}
|
|
5258
|
+
|
|
5259
|
+
.sc-task-aside .sc-facts > * + * {
|
|
5260
|
+
border-top: var(--sc-hairline);
|
|
5261
|
+
}
|
|
5262
|
+
|
|
5263
|
+
/* A phone's pages, one by one. */
|
|
5264
|
+
@media (max-width: 40rem) {
|
|
5265
|
+
/* The board: a column nearly as wide as the window, so that a card's title has room and one
|
|
5266
|
+
column is read at a time, the next peeking in from the side. */
|
|
5267
|
+
.sc-column {
|
|
5268
|
+
flex-basis: min(18rem, 82vw);
|
|
5269
|
+
}
|
|
5270
|
+
|
|
5271
|
+
/* The filters scroll as a row; a select with long choices keeps to a width of its own. */
|
|
5272
|
+
.sc-filters .sc-input {
|
|
5273
|
+
max-width: 11rem;
|
|
5274
|
+
}
|
|
5275
|
+
|
|
5276
|
+
/* A task's facts: one to a row, as on the wide layout's side, instead of two abreast with
|
|
5277
|
+
the select and the dates pressed against each other. */
|
|
5278
|
+
.sc-task .sc-task-aside .sc-facts {
|
|
5279
|
+
grid-template-columns: minmax(0, 1fr);
|
|
5280
|
+
}
|
|
5281
|
+
|
|
5282
|
+
.sc-facts .sc-input {
|
|
5283
|
+
max-width: 100%;
|
|
5284
|
+
}
|
|
5285
|
+
|
|
5286
|
+
/* A goal's card: the badges on one line, the span of days on a line of its own. */
|
|
5287
|
+
.sc-goal-days {
|
|
5288
|
+
flex: 1 1 100%;
|
|
5289
|
+
margin-inline-start: 0;
|
|
5290
|
+
}
|
|
5291
|
+
|
|
5292
|
+
/* The goal page's progress: the words under the bar. */
|
|
5293
|
+
.sc-goal-progress {
|
|
5294
|
+
grid-template-columns: minmax(0, 1fr);
|
|
5295
|
+
gap: var(--sc-space-1);
|
|
5296
|
+
}
|
|
5297
|
+
|
|
5298
|
+
/* The roadmap's months: too narrow for the year and the month on one line, so the two
|
|
5299
|
+
stand one over the other, small. */
|
|
5300
|
+
.sc-timeline-month {
|
|
5301
|
+
padding-inline: 2px;
|
|
5302
|
+
font-size: 0.6rem;
|
|
5303
|
+
line-height: var(--sc-leading-tight);
|
|
5304
|
+
white-space: normal;
|
|
5305
|
+
word-break: keep-all;
|
|
5306
|
+
overflow: visible;
|
|
5307
|
+
text-overflow: clip;
|
|
5308
|
+
}
|
|
5309
|
+
|
|
5310
|
+
/* A bar on the month reaches over the gap between the cells, which is narrower here. */
|
|
5311
|
+
.sc-calendar-bar {
|
|
5312
|
+
margin-inline: calc(-1 * var(--sc-space-1) - 2px - 1px);
|
|
5313
|
+
}
|
|
5314
|
+
|
|
5315
|
+
.sc-calendar-bar-begins {
|
|
5316
|
+
margin-left: 0;
|
|
5317
|
+
}
|
|
5318
|
+
|
|
5319
|
+
.sc-calendar-bar-ends {
|
|
5320
|
+
margin-right: 0;
|
|
5321
|
+
}
|
|
5322
|
+
|
|
5323
|
+
/* "N more" on a day keeps to one line, small enough for the cell. */
|
|
5324
|
+
.sc-calendar-more {
|
|
5325
|
+
padding-inline: 0;
|
|
5326
|
+
font-size: 0.65rem;
|
|
5327
|
+
overflow: hidden;
|
|
5328
|
+
white-space: nowrap;
|
|
5329
|
+
text-overflow: ellipsis;
|
|
5330
|
+
}
|
|
5331
|
+
|
|
5332
|
+
/* A bar reaching past the week stops at the edge of the month. */
|
|
5333
|
+
.sc-calendar-grid {
|
|
5334
|
+
clip-path: inset(0);
|
|
5335
|
+
}
|
|
5336
|
+
}
|
|
5337
|
+
|
|
5338
|
+
/* A phone's pages as one design. */
|
|
5339
|
+
@media (max-width: 40rem) {
|
|
5340
|
+
/* Every page's head: the name, a word about it under the name, and the ways the page offers
|
|
5341
|
+
as a row of equal buttons under those, so that no head differs from another. */
|
|
5342
|
+
.sc-page-head {
|
|
5343
|
+
display: grid;
|
|
5344
|
+
justify-content: stretch;
|
|
5345
|
+
gap: var(--sc-space-3);
|
|
5346
|
+
margin-bottom: var(--sc-space-5);
|
|
5347
|
+
}
|
|
5348
|
+
|
|
5349
|
+
.sc-page-heading {
|
|
5350
|
+
display: grid;
|
|
5351
|
+
row-gap: var(--sc-space-1);
|
|
5352
|
+
}
|
|
5353
|
+
|
|
5354
|
+
.sc-page-lead {
|
|
5355
|
+
flex: none;
|
|
5356
|
+
}
|
|
5357
|
+
|
|
5358
|
+
.sc-page-actions {
|
|
5359
|
+
flex-wrap: nowrap;
|
|
5360
|
+
width: 100%;
|
|
5361
|
+
}
|
|
5362
|
+
|
|
5363
|
+
.sc-page-actions > * {
|
|
5364
|
+
flex: 1 1 0;
|
|
5365
|
+
justify-content: center;
|
|
5366
|
+
min-width: 0;
|
|
5367
|
+
}
|
|
5368
|
+
|
|
5369
|
+
/* A head with one way alone gives it the whole width too. */
|
|
5370
|
+
.sc-page-head > .sc-button {
|
|
5371
|
+
width: 100%;
|
|
5372
|
+
justify-content: center;
|
|
5373
|
+
}
|
|
5374
|
+
|
|
5375
|
+
/* The tabs snap tab by tab, the first keeping its room from the edge. */
|
|
5376
|
+
.sc-tabs {
|
|
5377
|
+
scroll-snap-type: x proximity;
|
|
5378
|
+
scroll-padding-inline: var(--sc-space-4);
|
|
5379
|
+
}
|
|
5380
|
+
|
|
5381
|
+
.sc-tab {
|
|
5382
|
+
scroll-snap-align: start;
|
|
5383
|
+
}
|
|
5384
|
+
|
|
5385
|
+
/* The panes: one padding and one radius for all of them. */
|
|
5386
|
+
.sc-project,
|
|
5387
|
+
.sc-goal,
|
|
5388
|
+
.sc-skill,
|
|
5389
|
+
.sc-run,
|
|
5390
|
+
.sc-decision,
|
|
5391
|
+
.sc-comment,
|
|
5392
|
+
.sc-facts {
|
|
5393
|
+
padding: var(--sc-space-4);
|
|
5394
|
+
border-radius: var(--sc-radius-lg);
|
|
5395
|
+
}
|
|
5396
|
+
|
|
5397
|
+
/* The board scrolls from edge to edge of the window, its columns snapping into place. */
|
|
5398
|
+
.sc-board {
|
|
5399
|
+
min-height: 0;
|
|
5400
|
+
margin-inline: calc(-1 * var(--sc-space-4));
|
|
5401
|
+
padding-inline: var(--sc-space-4);
|
|
5402
|
+
scroll-padding-inline: var(--sc-space-4);
|
|
5403
|
+
}
|
|
5404
|
+
|
|
5405
|
+
.sc-filters {
|
|
5406
|
+
margin-bottom: var(--sc-space-4);
|
|
5407
|
+
}
|
|
5408
|
+
|
|
5409
|
+
/* A task's head: the parent on one line, the title, the badges, then the ways as a row of
|
|
5410
|
+
equal buttons. */
|
|
5411
|
+
.sc-task-header {
|
|
5412
|
+
display: grid;
|
|
5413
|
+
justify-content: stretch;
|
|
5414
|
+
gap: var(--sc-space-3);
|
|
5415
|
+
}
|
|
5416
|
+
|
|
5417
|
+
.sc-task-parent {
|
|
5418
|
+
overflow: hidden;
|
|
5419
|
+
white-space: nowrap;
|
|
5420
|
+
text-overflow: ellipsis;
|
|
5421
|
+
}
|
|
5422
|
+
|
|
5423
|
+
.sc-task-actions {
|
|
5424
|
+
flex-wrap: nowrap;
|
|
5425
|
+
align-items: stretch;
|
|
5426
|
+
}
|
|
5427
|
+
|
|
5428
|
+
.sc-task-actions > * {
|
|
5429
|
+
flex: 1 1 0;
|
|
5430
|
+
justify-content: center;
|
|
5431
|
+
min-width: 0;
|
|
5432
|
+
}
|
|
5433
|
+
|
|
5434
|
+
/* The calendar's legend, tighter; what is under the month, further apart. */
|
|
5435
|
+
.sc-calendar-legend {
|
|
5436
|
+
gap: var(--sc-space-1) var(--sc-space-3);
|
|
5437
|
+
}
|
|
5438
|
+
|
|
5439
|
+
.sc-calendar-below {
|
|
5440
|
+
gap: var(--sc-space-6);
|
|
5441
|
+
}
|
|
5442
|
+
|
|
5443
|
+
/* The roadmap's label column, narrower, so that the months have the room. */
|
|
5444
|
+
.sc-timeline-row {
|
|
5445
|
+
grid-template-columns: minmax(5.5rem, 7rem) minmax(14rem, 1fr);
|
|
5446
|
+
}
|
|
5447
|
+
}
|
|
5448
|
+
|
|
5449
|
+
/* A phone's month: a dot per task per day. */
|
|
5450
|
+
@media (max-width: 40rem) {
|
|
5451
|
+
.sc-calendar-cell {
|
|
5452
|
+
height: auto;
|
|
5453
|
+
min-height: 3.25rem;
|
|
5454
|
+
padding: 2px var(--sc-space-1) var(--sc-space-1);
|
|
5455
|
+
/* The rows of dots as tall as the dots, not as tall as a line of text. */
|
|
5456
|
+
line-height: 0;
|
|
5457
|
+
}
|
|
5458
|
+
|
|
5459
|
+
.sc-calendar-day,
|
|
5460
|
+
.sc-calendar-more {
|
|
5461
|
+
line-height: var(--sc-leading-snug);
|
|
5462
|
+
}
|
|
5463
|
+
|
|
5464
|
+
.sc-calendar-lane {
|
|
5465
|
+
display: none;
|
|
5466
|
+
}
|
|
5467
|
+
|
|
5468
|
+
/* A task planned across days: a dot on each of its days, in its category's colour, the
|
|
5469
|
+
late one in the danger colour; nothing of the bar remains. */
|
|
5470
|
+
.sc-calendar-bar,
|
|
5471
|
+
.sc-calendar-bar-begins,
|
|
5472
|
+
.sc-calendar-bar-ends {
|
|
5473
|
+
display: inline-block;
|
|
5474
|
+
width: 0.5rem;
|
|
5475
|
+
height: 0.5rem;
|
|
5476
|
+
margin: 2px 3px 0 0;
|
|
5477
|
+
padding: 0;
|
|
5478
|
+
border: 0;
|
|
5479
|
+
border-radius: var(--sc-radius-full);
|
|
5480
|
+
background: var(--sc-category-mark, var(--sc-category-line));
|
|
5481
|
+
vertical-align: top;
|
|
5482
|
+
}
|
|
5483
|
+
|
|
5484
|
+
.sc-calendar-bar.sc-calendar-late {
|
|
5485
|
+
background: var(--sc-color-danger);
|
|
5486
|
+
}
|
|
5487
|
+
|
|
5488
|
+
/* A task on its day: the same dot. */
|
|
5489
|
+
.sc-calendar-task {
|
|
5490
|
+
margin: 2px 3px 0 0;
|
|
5491
|
+
vertical-align: top;
|
|
5492
|
+
}
|
|
5493
|
+
|
|
5494
|
+
.sc-calendar-dot {
|
|
5495
|
+
width: 0.5rem;
|
|
5496
|
+
height: 0.5rem;
|
|
5497
|
+
}
|
|
5498
|
+
|
|
5499
|
+
.sc-calendar-more {
|
|
5500
|
+
margin-top: 2px;
|
|
5501
|
+
text-align: left;
|
|
5502
|
+
}
|
|
5503
|
+
}
|
|
5504
|
+
|
|
5505
|
+
/* A day's number is a button: pressed, the day's tasks are listed under the month. */
|
|
5506
|
+
.sc-calendar-day[type="button"] {
|
|
5507
|
+
width: auto;
|
|
5508
|
+
margin-inline-start: calc(-1 * var(--sc-space-1));
|
|
5509
|
+
padding: 0 var(--sc-space-1);
|
|
5510
|
+
border: 0;
|
|
5511
|
+
border-radius: var(--sc-radius-sm);
|
|
5512
|
+
background: transparent;
|
|
5513
|
+
color: inherit;
|
|
5514
|
+
font: inherit;
|
|
5515
|
+
font-size: var(--sc-text-xs);
|
|
5516
|
+
font-weight: var(--sc-weight-medium);
|
|
5517
|
+
line-height: var(--sc-leading-snug);
|
|
5518
|
+
text-align: left;
|
|
5519
|
+
cursor: pointer;
|
|
5520
|
+
}
|
|
5521
|
+
|
|
5522
|
+
.sc-calendar-day[type="button"]:hover {
|
|
5523
|
+
background: var(--sc-color-sheet-hover);
|
|
5524
|
+
}
|
|
5525
|
+
|
|
5526
|
+
.sc-calendar-day[aria-pressed="true"] {
|
|
5527
|
+
background: var(--sc-color-accent);
|
|
5528
|
+
color: #ffffff;
|
|
5529
|
+
}
|
|
5530
|
+
|
|
5531
|
+
.sc-calendar-cell-picked {
|
|
5532
|
+
border-color: var(--sc-color-accent);
|
|
5533
|
+
background: color-mix(in srgb, var(--sc-color-accent) 6%, var(--sc-color-sheet));
|
|
5534
|
+
}
|
|
5535
|
+
|
|
5536
|
+
/* The tasks of the picked day, under the month: a pane with the day over the rows. */
|
|
5537
|
+
.sc-calendar-day-list {
|
|
5538
|
+
display: grid;
|
|
5539
|
+
gap: var(--sc-space-3);
|
|
5540
|
+
margin-top: var(--sc-space-4);
|
|
5541
|
+
padding: var(--sc-space-4);
|
|
5542
|
+
border: var(--sc-border);
|
|
5543
|
+
border-radius: var(--sc-radius-lg);
|
|
5544
|
+
background: var(--sc-color-sheet);
|
|
5545
|
+
}
|
|
5546
|
+
|
|
5547
|
+
.sc-calendar-day-list-head {
|
|
5548
|
+
display: flex;
|
|
5549
|
+
align-items: center;
|
|
5550
|
+
justify-content: space-between;
|
|
5551
|
+
gap: var(--sc-space-2);
|
|
5552
|
+
}
|
|
5553
|
+
|
|
5554
|
+
.sc-calendar-day-list-title {
|
|
5555
|
+
display: flex;
|
|
5556
|
+
align-items: center;
|
|
5557
|
+
gap: var(--sc-space-2);
|
|
5558
|
+
margin: 0;
|
|
5559
|
+
font-size: var(--sc-text-md);
|
|
5560
|
+
font-weight: var(--sc-weight-bold);
|
|
5561
|
+
}
|
|
5562
|
+
|
|
5563
|
+
/* How many a day holds: said on a phone, where the day shows three dots and no more. */
|
|
5564
|
+
.sc-calendar-count {
|
|
5565
|
+
display: none;
|
|
5566
|
+
}
|
|
5567
|
+
|
|
5568
|
+
@media (max-width: 40rem) {
|
|
5569
|
+
/* The number covers the whole day, so that a finger anywhere on it lists the day's tasks;
|
|
5570
|
+
the dots and the count under it are a picture, not targets. */
|
|
5571
|
+
.sc-calendar-cell {
|
|
5572
|
+
position: relative;
|
|
5573
|
+
padding-top: 1.375rem;
|
|
5574
|
+
}
|
|
5575
|
+
|
|
5576
|
+
.sc-calendar-day[type="button"] {
|
|
5577
|
+
position: absolute;
|
|
5578
|
+
inset: 0;
|
|
5579
|
+
z-index: 1;
|
|
5580
|
+
display: flex;
|
|
5581
|
+
align-items: flex-start;
|
|
5582
|
+
justify-content: flex-start;
|
|
5583
|
+
width: auto;
|
|
5584
|
+
margin: 0;
|
|
5585
|
+
padding: 2px var(--sc-space-1);
|
|
5586
|
+
border-radius: var(--sc-radius-md);
|
|
5587
|
+
}
|
|
5588
|
+
|
|
5589
|
+
/* No pointer rests on a phone; a finger that tapped must not leave a sheet over the dots. */
|
|
5590
|
+
.sc-calendar-day[type="button"]:hover {
|
|
5591
|
+
background: transparent;
|
|
5592
|
+
}
|
|
5593
|
+
|
|
5594
|
+
.sc-calendar-day[aria-pressed="true"] {
|
|
5595
|
+
background: transparent;
|
|
5596
|
+
color: var(--sc-color-accent);
|
|
5597
|
+
font-weight: var(--sc-weight-bold);
|
|
5598
|
+
}
|
|
5599
|
+
|
|
5600
|
+
.sc-calendar-cell > a,
|
|
5601
|
+
.sc-calendar-cell > .sc-calendar-more {
|
|
5602
|
+
pointer-events: none;
|
|
5603
|
+
}
|
|
5604
|
+
|
|
5605
|
+
.sc-calendar-cell > a:nth-of-type(n + 4),
|
|
5606
|
+
.sc-calendar-cell > .sc-calendar-more {
|
|
5607
|
+
display: none;
|
|
5608
|
+
}
|
|
5609
|
+
|
|
5610
|
+
.sc-calendar-count {
|
|
5611
|
+
display: block;
|
|
5612
|
+
width: fit-content;
|
|
5613
|
+
min-width: 1rem;
|
|
5614
|
+
margin-top: 3px;
|
|
5615
|
+
padding: 0 4px;
|
|
5616
|
+
border-radius: var(--sc-radius-full);
|
|
5617
|
+
background: color-mix(in srgb, var(--sc-color-text-muted) 14%, transparent);
|
|
5618
|
+
color: var(--sc-color-text-muted);
|
|
5619
|
+
font-size: 0.625rem;
|
|
5620
|
+
font-weight: var(--sc-weight-medium);
|
|
5621
|
+
line-height: 1rem;
|
|
5622
|
+
text-align: center;
|
|
5623
|
+
}
|
|
5624
|
+
|
|
5625
|
+
.sc-calendar-day-list {
|
|
5626
|
+
margin-top: var(--sc-space-3);
|
|
5627
|
+
}
|
|
5628
|
+
}
|
|
5629
|
+
|
|
5630
|
+
/* The end of a phone's header: the live dot, the avatar and the caret close together. */
|
|
5631
|
+
@media (max-width: 40rem) {
|
|
5632
|
+
.sc-header-end {
|
|
5633
|
+
gap: 0;
|
|
5634
|
+
}
|
|
5635
|
+
|
|
5636
|
+
.sc-menu-summary {
|
|
5637
|
+
gap: var(--sc-space-1);
|
|
5638
|
+
padding-inline: var(--sc-space-1);
|
|
5639
|
+
}
|
|
5640
|
+
}
|
|
5641
|
+
|
|
5642
|
+
/* The ways under a comment's field stand on one row at one height, the small file button
|
|
5643
|
+
included, so that none sits lower than the one beside it. */
|
|
5644
|
+
.sc-comment-form-actions > .sc-button,
|
|
5645
|
+
.sc-comment-form-actions > label {
|
|
5646
|
+
min-height: var(--sc-control-size);
|
|
5647
|
+
padding-inline: var(--sc-space-4);
|
|
5648
|
+
font-size: var(--sc-text-sm);
|
|
5649
|
+
}
|