@skillcdn/console 0.3.2 → 0.4.1
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 +4 -3
- package/dist/api.d.ts +2 -2
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +2 -2
- package/dist/api.js.map +1 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +132 -18
- 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 +72 -21
- 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 +19 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +11 -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/markdown.d.ts.map +1 -1
- package/dist/components/markdown.js +6 -3
- package/dist/components/markdown.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/pack-connect.d.ts +3 -1
- package/dist/components/pack-connect.d.ts.map +1 -1
- package/dist/components/pack-connect.js +4 -4
- package/dist/components/pack-connect.js.map +1 -1
- package/dist/components/pack-token.d.ts +3 -1
- package/dist/components/pack-token.d.ts.map +1 -1
- package/dist/components/pack-token.js +1 -1
- package/dist/components/pack-token.js.map +1 -1
- package/dist/components/people.d.ts.map +1 -1
- package/dist/components/people.js +14 -3
- 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/remote-pictures.d.ts +6 -0
- package/dist/components/remote-pictures.d.ts.map +1 -0
- package/dist/components/remote-pictures.js +8 -0
- package/dist/components/remote-pictures.js.map +1 -0
- 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/sign-in.d.ts.map +1 -1
- package/dist/components/sign-in.js +49 -2
- package/dist/components/sign-in.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 +13 -2
- package/dist/components/ui.d.ts.map +1 -1
- package/dist/components/ui.js +21 -14
- package/dist/components/ui.js.map +1 -1
- package/dist/console.css +1686 -425
- package/dist/console.d.ts.map +1 -1
- package/dist/console.js +83 -13
- package/dist/console.js.map +1 -1
- package/dist/data.d.ts +15 -2
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +18 -19
- package/dist/data.js.map +1 -1
- package/dist/i18n/en.d.ts +48 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +50 -3
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/ko.d.ts.map +1 -1
- package/dist/i18n/ko.js +47 -4
- 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/limits.d.ts +14 -0
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +14 -0
- package/dist/limits.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 +5 -1
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +5 -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 +272 -4
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +33 -8
- package/dist/schemas.js.map +1 -1
- package/dist/web.d.ts.map +1 -1
- package/dist/web.js +3 -2
- package/dist/web.js.map +1 -1
- package/docs/specs/cli.md +11 -10
- package/docs/specs/rest.md +33 -17
- package/package.json +2 -2
- package/skills/building-a-console/SKILL.md +5 -5
- 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/setting-up.md +1 -1
- package/skills/working-the-board/references/terms.md +1 -1
- package/src/api.ts +10 -0
- package/src/cli/cli.ts +162 -19
- package/src/cli/format.ts +11 -4
- package/src/cli/help.ts +79 -20
- package/src/cli/pack.ts +17 -1
- package/src/client.ts +51 -2
- 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/markdown.tsx +6 -3
- package/src/components/my-decisions.tsx +138 -0
- package/src/components/pack-connect.tsx +10 -7
- package/src/components/pack-token.tsx +4 -1
- package/src/components/people.tsx +20 -8
- package/src/components/projects.tsx +7 -5
- package/src/components/remote-pictures.ts +19 -0
- package/src/components/roadmap.tsx +1 -1
- package/src/components/runs.tsx +5 -1
- package/src/components/shell.tsx +36 -1
- package/src/components/sign-in.tsx +114 -13
- package/src/components/task-list.tsx +1 -1
- package/src/components/task-view.tsx +48 -47
- package/src/components/ui.tsx +70 -14
- package/src/console.tsx +153 -32
- package/src/data.ts +37 -20
- package/src/i18n/en.ts +53 -3
- package/src/i18n/ko.ts +50 -4
- package/src/index.ts +3 -0
- package/src/limits.ts +14 -0
- package/src/router.ts +18 -1
- package/src/routes.ts +5 -1
- package/src/rules.ts +1 -1
- package/src/schemas.ts +37 -8
- package/src/styles/console.css +1686 -425
- package/src/web.ts +3 -2
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);
|
|
@@ -1914,15 +2168,67 @@ table {
|
|
|
1914
2168
|
text-align: left;
|
|
1915
2169
|
}
|
|
1916
2170
|
|
|
2171
|
+
/* The ways in, one under the other, each a button with who gets in through it under it. */
|
|
1917
2172
|
.sc-sign-in-ways {
|
|
1918
|
-
display:
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
2173
|
+
display: grid;
|
|
2174
|
+
justify-items: center;
|
|
2175
|
+
gap: var(--sc-space-4);
|
|
2176
|
+
margin-top: var(--sc-space-2);
|
|
2177
|
+
}
|
|
2178
|
+
|
|
2179
|
+
.sc-sign-in-way {
|
|
2180
|
+
display: grid;
|
|
2181
|
+
justify-items: center;
|
|
2182
|
+
gap: var(--sc-space-2);
|
|
2183
|
+
width: 100%;
|
|
1922
2184
|
}
|
|
1923
2185
|
|
|
2186
|
+
/* The button is the page's one call: wide, a step taller than a control, the provider's mark
|
|
2187
|
+
before its words. */
|
|
1924
2188
|
.sc-sign-in-button {
|
|
1925
|
-
|
|
2189
|
+
width: 100%;
|
|
2190
|
+
max-width: 20rem;
|
|
2191
|
+
min-height: 2.75rem;
|
|
2192
|
+
gap: var(--sc-space-3);
|
|
2193
|
+
font-size: var(--sc-text-md);
|
|
2194
|
+
}
|
|
2195
|
+
|
|
2196
|
+
.sc-sign-in-button:focus-visible {
|
|
2197
|
+
outline: var(--sc-focus-ring);
|
|
2198
|
+
outline-offset: 3px;
|
|
2199
|
+
border-radius: var(--sc-radius-md);
|
|
2200
|
+
}
|
|
2201
|
+
|
|
2202
|
+
/* On the way to the provider: the button keeps its color and turns its ring in the text's color. */
|
|
2203
|
+
.sc-sign-in-button-going {
|
|
2204
|
+
cursor: progress;
|
|
2205
|
+
}
|
|
2206
|
+
|
|
2207
|
+
.sc-sign-in-spinner .sc-spinner-ring {
|
|
2208
|
+
width: 1rem;
|
|
2209
|
+
height: 1rem;
|
|
2210
|
+
border-color: color-mix(in srgb, var(--sc-color-accent-contrast) 40%, transparent);
|
|
2211
|
+
border-top-color: var(--sc-color-accent-contrast);
|
|
2212
|
+
}
|
|
2213
|
+
|
|
2214
|
+
.sc-sign-in-mark {
|
|
2215
|
+
flex: none;
|
|
2216
|
+
}
|
|
2217
|
+
|
|
2218
|
+
/* A mark in colors of its own sits on a light tile, whatever the button's color. */
|
|
2219
|
+
.sc-sign-in-mark-tile {
|
|
2220
|
+
display: grid;
|
|
2221
|
+
place-items: center;
|
|
2222
|
+
width: 1.5rem;
|
|
2223
|
+
height: 1.5rem;
|
|
2224
|
+
border-radius: var(--sc-radius-full);
|
|
2225
|
+
background: var(--sc-color-accent-contrast);
|
|
2226
|
+
}
|
|
2227
|
+
|
|
2228
|
+
.sc-sign-in-admits {
|
|
2229
|
+
margin: 0;
|
|
2230
|
+
color: var(--sc-color-text-muted);
|
|
2231
|
+
font-size: var(--sc-text-xs);
|
|
1926
2232
|
}
|
|
1927
2233
|
|
|
1928
2234
|
/* Prose: what people and agents write, rendered from Markdown. Element selectors on purpose. */
|
|
@@ -1932,6 +2238,11 @@ table {
|
|
|
1932
2238
|
overflow-wrap: anywhere;
|
|
1933
2239
|
}
|
|
1934
2240
|
|
|
2241
|
+
/* The text of a task and of a page is read at length: at the size of reading. */
|
|
2242
|
+
.sc-task-main > .sc-prose {
|
|
2243
|
+
font-size: var(--sc-text-md);
|
|
2244
|
+
}
|
|
2245
|
+
|
|
1935
2246
|
.sc-prose > * + * {
|
|
1936
2247
|
margin-top: var(--sc-space-4);
|
|
1937
2248
|
}
|
|
@@ -2067,12 +2378,24 @@ table {
|
|
|
2067
2378
|
.sc-token-meta {
|
|
2068
2379
|
display: flex;
|
|
2069
2380
|
flex-wrap: wrap;
|
|
2070
|
-
gap: var(--sc-space-3);
|
|
2381
|
+
gap: var(--sc-space-1) var(--sc-space-3);
|
|
2071
2382
|
margin-top: var(--sc-space-1);
|
|
2072
2383
|
color: var(--sc-color-text-muted);
|
|
2073
2384
|
font-size: var(--sc-text-sm);
|
|
2074
2385
|
}
|
|
2075
2386
|
|
|
2387
|
+
.sc-token-meta > span {
|
|
2388
|
+
display: inline-flex;
|
|
2389
|
+
flex-wrap: wrap;
|
|
2390
|
+
align-items: center;
|
|
2391
|
+
gap: var(--sc-space-1);
|
|
2392
|
+
}
|
|
2393
|
+
|
|
2394
|
+
.sc-token-meta > span + span {
|
|
2395
|
+
padding-inline-start: var(--sc-space-3);
|
|
2396
|
+
border-inline-start: var(--sc-hairline);
|
|
2397
|
+
}
|
|
2398
|
+
|
|
2076
2399
|
.sc-secret {
|
|
2077
2400
|
display: flex;
|
|
2078
2401
|
flex-wrap: wrap;
|
|
@@ -2091,24 +2414,40 @@ table {
|
|
|
2091
2414
|
user-select: all;
|
|
2092
2415
|
}
|
|
2093
2416
|
|
|
2094
|
-
/* People: everyone of the board, with what each may do
|
|
2417
|
+
/* People: everyone of the board, with what each may do, as cards in a grid: the person on the
|
|
2418
|
+
first line, the account and where it came from on the second, what they are and the ways to
|
|
2419
|
+
their work on the third. */
|
|
2095
2420
|
|
|
2096
2421
|
.sc-people {
|
|
2097
2422
|
display: grid;
|
|
2098
|
-
|
|
2423
|
+
grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
|
|
2424
|
+
gap: var(--sc-space-3);
|
|
2099
2425
|
}
|
|
2100
2426
|
|
|
2101
2427
|
.sc-person-row {
|
|
2102
2428
|
display: flex;
|
|
2103
2429
|
flex-wrap: wrap;
|
|
2104
2430
|
align-items: center;
|
|
2105
|
-
gap: var(--sc-space-3);
|
|
2106
|
-
padding: var(--sc-space-
|
|
2431
|
+
gap: var(--sc-space-2) var(--sc-space-3);
|
|
2432
|
+
padding: var(--sc-space-4);
|
|
2107
2433
|
border-radius: var(--sc-radius-lg);
|
|
2108
2434
|
}
|
|
2109
2435
|
|
|
2436
|
+
.sc-person-row > .sc-person {
|
|
2437
|
+
flex: 0 1 auto;
|
|
2438
|
+
min-width: 0;
|
|
2439
|
+
}
|
|
2440
|
+
|
|
2441
|
+
/* That this person is the reader: beside the name on the first line. */
|
|
2442
|
+
.sc-person-you {
|
|
2443
|
+
margin-inline-start: calc(var(--sc-space-1) - var(--sc-space-3));
|
|
2444
|
+
color: var(--sc-color-text-faint);
|
|
2445
|
+
font-size: var(--sc-text-xs);
|
|
2446
|
+
}
|
|
2447
|
+
|
|
2110
2448
|
.sc-person-name {
|
|
2111
|
-
flex: 1
|
|
2449
|
+
flex: 1 1 100%;
|
|
2450
|
+
min-width: 0;
|
|
2112
2451
|
color: var(--sc-color-text-muted);
|
|
2113
2452
|
font-size: var(--sc-text-sm);
|
|
2114
2453
|
}
|
|
@@ -2118,13 +2457,19 @@ table {
|
|
|
2118
2457
|
font-size: var(--sc-text-xs);
|
|
2119
2458
|
}
|
|
2120
2459
|
|
|
2460
|
+
/* What a person is, or the way to change it: the last line, a step under the account. */
|
|
2461
|
+
.sc-person-row > .sc-badge,
|
|
2462
|
+
.sc-person-row > .sc-field-inline {
|
|
2463
|
+
margin-top: var(--sc-space-1);
|
|
2464
|
+
}
|
|
2465
|
+
|
|
2121
2466
|
/* Those let in and not signed in yet, and those deactivated: sections below everyone in. */
|
|
2122
2467
|
.sc-people-section {
|
|
2123
2468
|
margin-top: var(--sc-space-6);
|
|
2124
2469
|
}
|
|
2125
2470
|
|
|
2126
2471
|
.sc-person-row-out .sc-person {
|
|
2127
|
-
opacity: 0.
|
|
2472
|
+
opacity: 0.55;
|
|
2128
2473
|
}
|
|
2129
2474
|
|
|
2130
2475
|
.sc-listing-form .sc-field-row {
|
|
@@ -2164,19 +2509,38 @@ table {
|
|
|
2164
2509
|
box-shadow: var(--sc-glass-sheen), var(--sc-glass-lift), var(--sc-glow);
|
|
2165
2510
|
}
|
|
2166
2511
|
|
|
2512
|
+
/* The head of a project reads on three lines: the mark with the name beside it, the key under
|
|
2513
|
+
the name, and the badges on a line of their own; the mark floats so that the name and the key
|
|
2514
|
+
stack beside it without a box around them. */
|
|
2167
2515
|
.sc-project-head {
|
|
2168
|
-
display:
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2516
|
+
display: block;
|
|
2517
|
+
}
|
|
2518
|
+
|
|
2519
|
+
.sc-project-head::after {
|
|
2520
|
+
content: "";
|
|
2521
|
+
display: block;
|
|
2522
|
+
clear: both;
|
|
2523
|
+
}
|
|
2524
|
+
|
|
2525
|
+
.sc-project-head > :first-child {
|
|
2526
|
+
float: left;
|
|
2527
|
+
margin-inline-end: var(--sc-space-3);
|
|
2528
|
+
}
|
|
2529
|
+
|
|
2530
|
+
.sc-project-head > .sc-badge {
|
|
2531
|
+
margin-top: var(--sc-space-3);
|
|
2532
|
+
margin-inline-end: var(--sc-space-1);
|
|
2172
2533
|
}
|
|
2173
2534
|
|
|
2174
2535
|
/* The whole pane is the way in: the name's link stretches over it. */
|
|
2175
2536
|
.sc-project-name {
|
|
2537
|
+
display: block;
|
|
2176
2538
|
color: var(--sc-color-text);
|
|
2177
2539
|
font-size: var(--sc-text-lg);
|
|
2178
2540
|
font-weight: var(--sc-weight-bold);
|
|
2541
|
+
line-height: var(--sc-leading-snug);
|
|
2179
2542
|
text-decoration: none;
|
|
2543
|
+
overflow-wrap: anywhere;
|
|
2180
2544
|
}
|
|
2181
2545
|
|
|
2182
2546
|
.sc-project-name::after {
|
|
@@ -2198,7 +2562,21 @@ table {
|
|
|
2198
2562
|
font-size: var(--sc-text-xs);
|
|
2199
2563
|
}
|
|
2200
2564
|
|
|
2565
|
+
/* Under the name, and past the mark: the key ends below the mark, so that the badges after it
|
|
2566
|
+
start at the edge. */
|
|
2567
|
+
.sc-project-head > .sc-project-key {
|
|
2568
|
+
display: block;
|
|
2569
|
+
margin-top: var(--sc-space-1);
|
|
2570
|
+
}
|
|
2571
|
+
|
|
2572
|
+
.sc-project-head > .sc-project-key::after {
|
|
2573
|
+
content: "";
|
|
2574
|
+
display: block;
|
|
2575
|
+
clear: both;
|
|
2576
|
+
}
|
|
2577
|
+
|
|
2201
2578
|
.sc-project-description {
|
|
2579
|
+
margin-top: var(--sc-space-1);
|
|
2202
2580
|
color: var(--sc-color-text-muted);
|
|
2203
2581
|
font-size: var(--sc-text-sm);
|
|
2204
2582
|
}
|
|
@@ -2208,7 +2586,8 @@ table {
|
|
|
2208
2586
|
flex-wrap: wrap;
|
|
2209
2587
|
gap: var(--sc-space-2);
|
|
2210
2588
|
margin-top: auto;
|
|
2211
|
-
padding-top: var(--sc-space-
|
|
2589
|
+
padding-top: var(--sc-space-3);
|
|
2590
|
+
border-top: var(--sc-hairline);
|
|
2212
2591
|
}
|
|
2213
2592
|
|
|
2214
2593
|
.sc-project-meta:empty {
|
|
@@ -2220,6 +2599,14 @@ table {
|
|
|
2220
2599
|
gap: var(--sc-space-4);
|
|
2221
2600
|
}
|
|
2222
2601
|
|
|
2602
|
+
/* What a member is in the project, and their office in the organization beside it, small. */
|
|
2603
|
+
.sc-member-role {
|
|
2604
|
+
display: inline-flex;
|
|
2605
|
+
align-items: center;
|
|
2606
|
+
gap: var(--sc-space-2);
|
|
2607
|
+
font-size: var(--sc-text-sm);
|
|
2608
|
+
}
|
|
2609
|
+
|
|
2223
2610
|
.sc-member-form .sc-field-row {
|
|
2224
2611
|
align-items: end;
|
|
2225
2612
|
}
|
|
@@ -2228,11 +2615,14 @@ table {
|
|
|
2228
2615
|
|
|
2229
2616
|
.sc-skills {
|
|
2230
2617
|
display: grid;
|
|
2231
|
-
|
|
2618
|
+
grid-template-columns: repeat(auto-fill, minmax(min(100%, 26rem), 1fr));
|
|
2619
|
+
gap: var(--sc-space-3);
|
|
2232
2620
|
}
|
|
2233
2621
|
|
|
2234
2622
|
.sc-skill {
|
|
2235
|
-
|
|
2623
|
+
display: grid;
|
|
2624
|
+
align-content: start;
|
|
2625
|
+
padding: var(--sc-space-4) var(--sc-space-5);
|
|
2236
2626
|
border-radius: var(--sc-radius-lg);
|
|
2237
2627
|
}
|
|
2238
2628
|
|
|
@@ -2245,7 +2635,15 @@ table {
|
|
|
2245
2635
|
}
|
|
2246
2636
|
|
|
2247
2637
|
.sc-skill-name {
|
|
2248
|
-
font-
|
|
2638
|
+
font-size: var(--sc-text-md);
|
|
2639
|
+
font-weight: var(--sc-weight-bold);
|
|
2640
|
+
}
|
|
2641
|
+
|
|
2642
|
+
/* The folder a skill is in: a line of its own under the name, in the code face. */
|
|
2643
|
+
.sc-skill-head > .sc-muted {
|
|
2644
|
+
flex: 1 1 100%;
|
|
2645
|
+
font-family: var(--sc-font-mono);
|
|
2646
|
+
font-size: var(--sc-text-xs);
|
|
2249
2647
|
}
|
|
2250
2648
|
|
|
2251
2649
|
.sc-skill-description {
|
|
@@ -2256,7 +2654,9 @@ table {
|
|
|
2256
2654
|
|
|
2257
2655
|
.sc-skill-uri {
|
|
2258
2656
|
display: block;
|
|
2259
|
-
margin-top: var(--sc-space-
|
|
2657
|
+
margin-top: var(--sc-space-3);
|
|
2658
|
+
padding-top: var(--sc-space-2);
|
|
2659
|
+
border-top: var(--sc-hairline);
|
|
2260
2660
|
color: var(--sc-color-text-faint);
|
|
2261
2661
|
font-size: var(--sc-text-xs);
|
|
2262
2662
|
word-break: break-all;
|
|
@@ -2280,18 +2680,30 @@ table {
|
|
|
2280
2680
|
display: flex;
|
|
2281
2681
|
flex-wrap: wrap;
|
|
2282
2682
|
align-items: center;
|
|
2283
|
-
gap: var(--sc-space-2);
|
|
2683
|
+
gap: var(--sc-space-1) var(--sc-space-2);
|
|
2684
|
+
padding-bottom: var(--sc-space-3);
|
|
2685
|
+
border-bottom: var(--sc-hairline);
|
|
2284
2686
|
}
|
|
2285
2687
|
|
|
2286
2688
|
.sc-run-agent {
|
|
2287
|
-
font-
|
|
2689
|
+
font-size: var(--sc-text-md);
|
|
2690
|
+
font-weight: var(--sc-weight-bold);
|
|
2691
|
+
}
|
|
2692
|
+
|
|
2693
|
+
/* The way to end a run stands at the end of the first line. */
|
|
2694
|
+
.sc-run-header > .sc-button {
|
|
2695
|
+
order: 1;
|
|
2696
|
+
margin-inline-start: auto;
|
|
2288
2697
|
}
|
|
2289
2698
|
|
|
2699
|
+
/* Who the run is for and since when: the second line of the head. */
|
|
2290
2700
|
.sc-run-meta {
|
|
2291
|
-
display:
|
|
2701
|
+
display: flex;
|
|
2702
|
+
flex: 1 1 100%;
|
|
2292
2703
|
flex-wrap: wrap;
|
|
2704
|
+
order: 2;
|
|
2293
2705
|
align-items: center;
|
|
2294
|
-
gap: var(--sc-space-1);
|
|
2706
|
+
gap: var(--sc-space-1) var(--sc-space-2);
|
|
2295
2707
|
color: var(--sc-color-text-muted);
|
|
2296
2708
|
font-size: var(--sc-text-sm);
|
|
2297
2709
|
}
|
|
@@ -2312,10 +2724,11 @@ table {
|
|
|
2312
2724
|
display: grid;
|
|
2313
2725
|
gap: var(--sc-space-1);
|
|
2314
2726
|
padding-left: var(--sc-space-3);
|
|
2315
|
-
border-left: 2px solid var(--sc-color-
|
|
2727
|
+
border-left: 2px solid var(--sc-color-accent);
|
|
2316
2728
|
font-size: var(--sc-text-sm);
|
|
2317
2729
|
}
|
|
2318
2730
|
|
|
2731
|
+
/* The hour of a report heads it, small and apart from its words. */
|
|
2319
2732
|
.sc-run-summary {
|
|
2320
2733
|
padding-top: var(--sc-space-3);
|
|
2321
2734
|
border-top: var(--sc-border);
|
|
@@ -2343,6 +2756,7 @@ table {
|
|
|
2343
2756
|
}
|
|
2344
2757
|
|
|
2345
2758
|
.sc-comment-meta {
|
|
2759
|
+
margin-inline-start: auto;
|
|
2346
2760
|
color: var(--sc-color-text-muted);
|
|
2347
2761
|
font-size: var(--sc-text-sm);
|
|
2348
2762
|
}
|
|
@@ -2361,7 +2775,7 @@ table {
|
|
|
2361
2775
|
}
|
|
2362
2776
|
|
|
2363
2777
|
.sc-picture-thumb:focus-visible {
|
|
2364
|
-
outline:
|
|
2778
|
+
outline: var(--sc-focus-ring);
|
|
2365
2779
|
outline-offset: 2px;
|
|
2366
2780
|
}
|
|
2367
2781
|
|
|
@@ -2389,7 +2803,7 @@ table {
|
|
|
2389
2803
|
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
2390
2804
|
inset: 0;
|
|
2391
2805
|
background: color-mix(in srgb, var(--sc-color-bg) 90%, transparent);
|
|
2392
|
-
backdrop-filter:
|
|
2806
|
+
backdrop-filter: var(--sc-glass-backdrop);
|
|
2393
2807
|
}
|
|
2394
2808
|
|
|
2395
2809
|
.sc-overlay-bar {
|
|
@@ -2535,7 +2949,7 @@ table {
|
|
|
2535
2949
|
padding: var(--sc-space-3) var(--sc-space-4);
|
|
2536
2950
|
border: var(--sc-border);
|
|
2537
2951
|
border-radius: var(--sc-radius-md);
|
|
2538
|
-
background: var(--sc-color-
|
|
2952
|
+
background: var(--sc-color-bg-raised);
|
|
2539
2953
|
font-family: var(--sc-font-mono);
|
|
2540
2954
|
font-size: var(--sc-text-sm);
|
|
2541
2955
|
line-height: var(--sc-leading-code);
|
|
@@ -2562,13 +2976,13 @@ table {
|
|
|
2562
2976
|
max-width: 12rem;
|
|
2563
2977
|
font-family: var(--sc-font-mono);
|
|
2564
2978
|
font-size: var(--sc-text-lg);
|
|
2565
|
-
letter-spacing:
|
|
2979
|
+
letter-spacing: var(--sc-tracking-code);
|
|
2566
2980
|
text-transform: uppercase;
|
|
2567
2981
|
}
|
|
2568
2982
|
|
|
2569
2983
|
.sc-code-shown {
|
|
2570
2984
|
font-size: var(--sc-text-md);
|
|
2571
|
-
letter-spacing:
|
|
2985
|
+
letter-spacing: var(--sc-tracking-code);
|
|
2572
2986
|
}
|
|
2573
2987
|
|
|
2574
2988
|
/* Documents: a folder's pages, one page with its versions, its links both ways and its files. */
|
|
@@ -2655,11 +3069,13 @@ table {
|
|
|
2655
3069
|
list-style: none;
|
|
2656
3070
|
}
|
|
2657
3071
|
|
|
3072
|
+
/* A page in a list reads on two lines: its title, with a mark if it is archived, and under it
|
|
3073
|
+
where it lives, its version, who wrote it last and when, each a step apart. */
|
|
2658
3074
|
.sc-doc-row {
|
|
2659
3075
|
display: flex;
|
|
2660
3076
|
flex-wrap: wrap;
|
|
2661
|
-
align-items:
|
|
2662
|
-
gap: var(--sc-space-
|
|
3077
|
+
align-items: center;
|
|
3078
|
+
gap: var(--sc-space-1) var(--sc-space-2);
|
|
2663
3079
|
padding: var(--sc-space-3) var(--sc-space-4);
|
|
2664
3080
|
border-radius: var(--sc-radius-lg);
|
|
2665
3081
|
transition: border-color var(--sc-transition);
|
|
@@ -2671,7 +3087,9 @@ table {
|
|
|
2671
3087
|
|
|
2672
3088
|
.sc-doc-title {
|
|
2673
3089
|
color: var(--sc-color-text);
|
|
2674
|
-
font-
|
|
3090
|
+
font-size: var(--sc-text-md);
|
|
3091
|
+
font-weight: var(--sc-weight-bold);
|
|
3092
|
+
line-height: var(--sc-leading-snug);
|
|
2675
3093
|
text-decoration: none;
|
|
2676
3094
|
}
|
|
2677
3095
|
|
|
@@ -2680,8 +3098,17 @@ table {
|
|
|
2680
3098
|
}
|
|
2681
3099
|
|
|
2682
3100
|
.sc-doc-meta {
|
|
3101
|
+
display: flex;
|
|
3102
|
+
flex: 1 1 100%;
|
|
3103
|
+
flex-wrap: wrap;
|
|
3104
|
+
align-items: center;
|
|
3105
|
+
gap: var(--sc-space-1) var(--sc-space-2);
|
|
2683
3106
|
color: var(--sc-color-text-muted);
|
|
2684
|
-
font-size: var(--sc-text-
|
|
3107
|
+
font-size: var(--sc-text-xs);
|
|
3108
|
+
}
|
|
3109
|
+
|
|
3110
|
+
.sc-doc-meta .sc-person-login {
|
|
3111
|
+
font-weight: var(--sc-weight-normal);
|
|
2685
3112
|
}
|
|
2686
3113
|
|
|
2687
3114
|
.sc-doc-path {
|
|
@@ -2704,7 +3131,7 @@ table {
|
|
|
2704
3131
|
}
|
|
2705
3132
|
|
|
2706
3133
|
.sc-doc-archived .sc-prose {
|
|
2707
|
-
opacity: 0.
|
|
3134
|
+
opacity: 0.55;
|
|
2708
3135
|
}
|
|
2709
3136
|
|
|
2710
3137
|
/* The pictures for a page, under its body: the way to add one, and what becomes of it. */
|
|
@@ -2715,43 +3142,94 @@ table {
|
|
|
2715
3142
|
gap: var(--sc-space-2);
|
|
2716
3143
|
}
|
|
2717
3144
|
|
|
3145
|
+
/* The attach form: a button to choose the file with the chosen file's name beside it, the
|
|
3146
|
+
name to call it under that, and the attach button across the bottom, all one height. */
|
|
2718
3147
|
.sc-doc-attach {
|
|
2719
|
-
display:
|
|
2720
|
-
flex-wrap: wrap;
|
|
3148
|
+
display: grid;
|
|
2721
3149
|
gap: var(--sc-space-2);
|
|
2722
3150
|
margin-top: var(--sc-space-3);
|
|
2723
3151
|
}
|
|
2724
3152
|
|
|
3153
|
+
.sc-doc-attach-file {
|
|
3154
|
+
display: flex;
|
|
3155
|
+
align-items: center;
|
|
3156
|
+
gap: var(--sc-space-3);
|
|
3157
|
+
min-width: 0;
|
|
3158
|
+
}
|
|
3159
|
+
|
|
3160
|
+
.sc-doc-attach-file > .sc-button {
|
|
3161
|
+
flex: none;
|
|
3162
|
+
}
|
|
3163
|
+
|
|
3164
|
+
.sc-doc-attach-chosen {
|
|
3165
|
+
min-width: 0;
|
|
3166
|
+
overflow: hidden;
|
|
3167
|
+
font-size: var(--sc-text-sm);
|
|
3168
|
+
white-space: nowrap;
|
|
3169
|
+
text-overflow: ellipsis;
|
|
3170
|
+
}
|
|
3171
|
+
|
|
3172
|
+
.sc-doc-attach > .sc-button {
|
|
3173
|
+
width: 100%;
|
|
3174
|
+
}
|
|
3175
|
+
|
|
2725
3176
|
.sc-versions {
|
|
2726
3177
|
margin: 0;
|
|
2727
3178
|
padding: 0;
|
|
2728
3179
|
list-style: none;
|
|
2729
3180
|
}
|
|
2730
3181
|
|
|
3182
|
+
.sc-version {
|
|
3183
|
+
display: grid;
|
|
3184
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
3185
|
+
column-gap: var(--sc-space-3);
|
|
3186
|
+
row-gap: var(--sc-space-1);
|
|
3187
|
+
align-items: baseline;
|
|
3188
|
+
padding-block: var(--sc-space-2);
|
|
3189
|
+
font-size: var(--sc-text-sm);
|
|
3190
|
+
}
|
|
3191
|
+
|
|
2731
3192
|
.sc-version + .sc-version {
|
|
2732
|
-
|
|
3193
|
+
border-top: var(--sc-hairline);
|
|
2733
3194
|
}
|
|
2734
3195
|
|
|
2735
3196
|
.sc-version-number {
|
|
2736
|
-
|
|
2737
|
-
min-width: 2.5rem;
|
|
3197
|
+
min-width: 2rem;
|
|
2738
3198
|
font-family: var(--sc-font-mono);
|
|
2739
3199
|
font-size: var(--sc-text-sm);
|
|
2740
3200
|
}
|
|
2741
3201
|
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
grid-template-columns: 1fr;
|
|
3202
|
+
.sc-version-title {
|
|
3203
|
+
font-weight: var(--sc-weight-medium);
|
|
3204
|
+
overflow-wrap: anywhere;
|
|
2746
3205
|
}
|
|
2747
3206
|
|
|
2748
|
-
.sc-
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
text-
|
|
3207
|
+
.sc-version-meta {
|
|
3208
|
+
display: flex;
|
|
3209
|
+
flex-wrap: wrap;
|
|
3210
|
+
align-items: center;
|
|
3211
|
+
gap: var(--sc-space-1) var(--sc-space-2);
|
|
3212
|
+
grid-column: 2;
|
|
3213
|
+
color: var(--sc-color-text-muted);
|
|
3214
|
+
font-size: var(--sc-text-xs);
|
|
3215
|
+
}
|
|
3216
|
+
|
|
3217
|
+
.sc-version-meta .sc-person-login {
|
|
3218
|
+
font-weight: var(--sc-weight-normal);
|
|
3219
|
+
}
|
|
3220
|
+
|
|
3221
|
+
.sc-version-meta .sc-feed-agent {
|
|
3222
|
+
margin-inline-start: 0;
|
|
3223
|
+
}
|
|
3224
|
+
|
|
3225
|
+
/* In the aside of a task or a page, the facts stack and the sections are small. */
|
|
3226
|
+
|
|
3227
|
+
.sc-task-aside .sc-facts {
|
|
3228
|
+
grid-template-columns: 1fr;
|
|
3229
|
+
}
|
|
3230
|
+
|
|
3231
|
+
.sc-task-aside .sc-section-title {
|
|
3232
|
+
margin-bottom: var(--sc-space-1);
|
|
2755
3233
|
}
|
|
2756
3234
|
|
|
2757
3235
|
.sc-task-aside .sc-task-section {
|
|
@@ -2771,11 +3249,6 @@ table {
|
|
|
2771
3249
|
|
|
2772
3250
|
.sc-decision-label {
|
|
2773
3251
|
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
3252
|
}
|
|
2780
3253
|
|
|
2781
3254
|
.sc-outcome-form {
|
|
@@ -2783,11 +3256,20 @@ table {
|
|
|
2783
3256
|
gap: var(--sc-space-2);
|
|
2784
3257
|
}
|
|
2785
3258
|
|
|
2786
|
-
/* Under the wide layout a task
|
|
2787
|
-
|
|
3259
|
+
/* Under the wide layout a task reads its text first, then its facts and the ways to its forms, two
|
|
3260
|
+
to a row so that they stay short, then the discussion and what happened: the text says what the
|
|
3261
|
+
task is, and its state is changed right under it. A document keeps its text first. */
|
|
2788
3262
|
@media (max-width: 63.99rem) {
|
|
3263
|
+
.sc-task .sc-task-main {
|
|
3264
|
+
display: contents;
|
|
3265
|
+
}
|
|
3266
|
+
|
|
2789
3267
|
.sc-task .sc-task-aside {
|
|
2790
|
-
order:
|
|
3268
|
+
order: 1;
|
|
3269
|
+
}
|
|
3270
|
+
|
|
3271
|
+
.sc-task .sc-task-main > .sc-task-section {
|
|
3272
|
+
order: 2;
|
|
2791
3273
|
}
|
|
2792
3274
|
|
|
2793
3275
|
.sc-task .sc-task-aside .sc-facts {
|
|
@@ -2798,61 +3280,158 @@ table {
|
|
|
2798
3280
|
/* The schedule, the roadmap and the categories (ADR-0019). */
|
|
2799
3281
|
|
|
2800
3282
|
/* The colours a category may be shown in: names, painted here and nowhere else. Each is a
|
|
2801
|
-
|
|
3283
|
+
light fill with its words dark in the same hue, and a mark, a clear mid-tone of the hue, for
|
|
3284
|
+
the dots, flags and bars where the colour stands alone; the eight hues spread around the
|
|
3285
|
+
wheel so that no two are taken for each other at a glance. A console that sets only the line
|
|
3286
|
+
and the fill gets its line where the mark would be. */
|
|
2802
3287
|
.sc-category-gray {
|
|
2803
|
-
--sc-category-line: #
|
|
2804
|
-
--sc-category-fill: #
|
|
3288
|
+
--sc-category-line: #4a5468;
|
|
3289
|
+
--sc-category-fill: #e0e4eb;
|
|
3290
|
+
--sc-category-mark: #7b8597;
|
|
2805
3291
|
}
|
|
2806
3292
|
|
|
2807
3293
|
.sc-category-blue {
|
|
2808
|
-
--sc-category-line: #
|
|
2809
|
-
--sc-category-fill: #
|
|
3294
|
+
--sc-category-line: #1d4fcb;
|
|
3295
|
+
--sc-category-fill: #d2e0ff;
|
|
3296
|
+
--sc-category-mark: #2f6ae8;
|
|
2810
3297
|
}
|
|
2811
3298
|
|
|
2812
3299
|
.sc-category-green {
|
|
2813
|
-
--sc-category-line: #
|
|
2814
|
-
--sc-category-fill: #
|
|
3300
|
+
--sc-category-line: #176d26;
|
|
3301
|
+
--sc-category-fill: #cdf0cc;
|
|
3302
|
+
--sc-category-mark: #22a04a;
|
|
2815
3303
|
}
|
|
2816
3304
|
|
|
2817
3305
|
.sc-category-orange {
|
|
2818
|
-
--sc-category-line: #
|
|
2819
|
-
--sc-category-fill: #
|
|
3306
|
+
--sc-category-line: #b83c00;
|
|
3307
|
+
--sc-category-fill: #ffe6d1;
|
|
3308
|
+
--sc-category-mark: #f0731a;
|
|
2820
3309
|
}
|
|
2821
3310
|
|
|
2822
3311
|
.sc-category-pink {
|
|
2823
|
-
--sc-category-line: #
|
|
2824
|
-
--sc-category-fill: #
|
|
3312
|
+
--sc-category-line: #b2176a;
|
|
3313
|
+
--sc-category-fill: #fdd2e5;
|
|
3314
|
+
--sc-category-mark: #e63d94;
|
|
2825
3315
|
}
|
|
2826
3316
|
|
|
2827
3317
|
.sc-category-purple {
|
|
2828
|
-
--sc-category-line: #
|
|
2829
|
-
--sc-category-fill: #
|
|
3318
|
+
--sc-category-line: #6434c2;
|
|
3319
|
+
--sc-category-fill: #e6d8fc;
|
|
3320
|
+
--sc-category-mark: #8457e6;
|
|
2830
3321
|
}
|
|
2831
3322
|
|
|
2832
3323
|
.sc-category-teal {
|
|
2833
|
-
--sc-category-line: #
|
|
2834
|
-
--sc-category-fill: #
|
|
3324
|
+
--sc-category-line: #08667a;
|
|
3325
|
+
--sc-category-fill: #c6edf4;
|
|
3326
|
+
--sc-category-mark: #0f9bb0;
|
|
2835
3327
|
}
|
|
2836
3328
|
|
|
2837
3329
|
.sc-category-yellow {
|
|
2838
|
-
--sc-category-line: #
|
|
2839
|
-
--sc-category-fill: #
|
|
3330
|
+
--sc-category-line: #44403c;
|
|
3331
|
+
--sc-category-fill: #fbe9b2;
|
|
3332
|
+
--sc-category-mark: #e6b42c;
|
|
2840
3333
|
}
|
|
2841
3334
|
|
|
2842
3335
|
.sc-badge-category {
|
|
2843
|
-
border-color:
|
|
3336
|
+
border-color: transparent;
|
|
2844
3337
|
background: var(--sc-category-fill);
|
|
2845
3338
|
color: var(--sc-category-line);
|
|
2846
3339
|
}
|
|
2847
3340
|
|
|
3341
|
+
/* A badge's kind in how it is filled, so that a plain badge, a category, a state, a priority
|
|
3342
|
+
and a due day beside each other are kinds and not five of one thing; the pill is the shape
|
|
3343
|
+
of them all and nothing stands before the words:
|
|
3344
|
+
- a plain badge (a role, a count, public or private): a soft fill with a line of its hue;
|
|
3345
|
+
- a category and a state: a soft fill, no line;
|
|
3346
|
+
- a priority: a soft fill with dark words of its hue, low a grey, high an orange, urgent a red;
|
|
3347
|
+
- a due day: a line, a very light fill and bold words, all in the hue of how near the day
|
|
3348
|
+
is. */
|
|
3349
|
+
.sc-badge:not(.sc-badge-category) {
|
|
3350
|
+
border-color: color-mix(in srgb, currentColor 40%, transparent);
|
|
3351
|
+
}
|
|
3352
|
+
|
|
3353
|
+
.sc-badge.sc-badge-kind-state {
|
|
3354
|
+
border-color: transparent;
|
|
3355
|
+
}
|
|
3356
|
+
|
|
3357
|
+
.sc-badge.sc-badge-kind-priority {
|
|
3358
|
+
border-color: transparent;
|
|
3359
|
+
background: #e1e6ee;
|
|
3360
|
+
color: #3a4558;
|
|
3361
|
+
}
|
|
3362
|
+
|
|
3363
|
+
.sc-badge.sc-badge-kind-priority.sc-badge-point {
|
|
3364
|
+
background: #ffd4a8;
|
|
3365
|
+
color: #7a3300;
|
|
3366
|
+
}
|
|
3367
|
+
|
|
3368
|
+
.sc-badge.sc-badge-kind-priority.sc-badge-danger {
|
|
3369
|
+
background: #fdbcc3;
|
|
3370
|
+
color: #7d0e1d;
|
|
3371
|
+
}
|
|
3372
|
+
|
|
3373
|
+
/* A due day: one line weight for every one; the line, a very light fill and the words are
|
|
3374
|
+
all in the hue of how near the day is. */
|
|
3375
|
+
.sc-badge.sc-badge-kind-due {
|
|
3376
|
+
border: 1.5px solid #a3acba;
|
|
3377
|
+
background: #f4f6f9;
|
|
3378
|
+
color: #4b5563;
|
|
3379
|
+
font-weight: var(--sc-weight-bold);
|
|
3380
|
+
font-variant-numeric: tabular-nums;
|
|
3381
|
+
}
|
|
3382
|
+
|
|
3383
|
+
.sc-badge.sc-badge-kind-due.sc-badge-accent {
|
|
3384
|
+
border-color: #6f93e8;
|
|
3385
|
+
background: #f0f5ff;
|
|
3386
|
+
color: #1d4ed8;
|
|
3387
|
+
}
|
|
3388
|
+
|
|
3389
|
+
.sc-badge.sc-badge-kind-due.sc-badge-success {
|
|
3390
|
+
border-color: #5fb488;
|
|
3391
|
+
background: #effaf4;
|
|
3392
|
+
color: #146b44;
|
|
3393
|
+
}
|
|
3394
|
+
|
|
3395
|
+
/* Within the week. */
|
|
3396
|
+
.sc-badge.sc-badge-kind-due.sc-badge-warning {
|
|
3397
|
+
border-color: #e0b100;
|
|
3398
|
+
background: #fffae6;
|
|
3399
|
+
color: #8a6500;
|
|
3400
|
+
}
|
|
3401
|
+
|
|
3402
|
+
/* Tomorrow. */
|
|
3403
|
+
.sc-badge.sc-badge-kind-due.sc-badge-point {
|
|
3404
|
+
border-color: #f59e3c;
|
|
3405
|
+
background: #fff4ea;
|
|
3406
|
+
color: #b45309;
|
|
3407
|
+
}
|
|
3408
|
+
|
|
3409
|
+
/* Today. */
|
|
3410
|
+
.sc-badge.sc-badge-kind-due.sc-badge-due-today {
|
|
3411
|
+
border-color: #f26b4a;
|
|
3412
|
+
background: #fff1ec;
|
|
3413
|
+
color: #c2330f;
|
|
3414
|
+
}
|
|
3415
|
+
|
|
3416
|
+
/* Late. */
|
|
3417
|
+
.sc-badge.sc-badge-kind-due.sc-badge-danger {
|
|
3418
|
+
border-color: #d33a47;
|
|
3419
|
+
background: #fff0f1;
|
|
3420
|
+
color: #c0262f;
|
|
3421
|
+
}
|
|
3422
|
+
|
|
3423
|
+
.sc-badge-kind-count {
|
|
3424
|
+
font-variant-numeric: tabular-nums;
|
|
3425
|
+
}
|
|
3426
|
+
|
|
2848
3427
|
.sc-category-swatch,
|
|
2849
3428
|
.sc-calendar-dot {
|
|
2850
3429
|
display: inline-block;
|
|
2851
3430
|
flex: none;
|
|
2852
3431
|
width: 0.625rem;
|
|
2853
3432
|
height: 0.625rem;
|
|
2854
|
-
border-radius:
|
|
2855
|
-
background: var(--sc-category-line, var(--sc-color-text-faint));
|
|
3433
|
+
border-radius: var(--sc-radius-full);
|
|
3434
|
+
background: var(--sc-category-mark, var(--sc-category-line, var(--sc-color-text-faint)));
|
|
2856
3435
|
}
|
|
2857
3436
|
|
|
2858
3437
|
/* The filters above the board: a quiet row of controls, as wide as its words. */
|
|
@@ -2874,10 +3453,38 @@ table {
|
|
|
2874
3453
|
font-size: var(--sc-text-sm);
|
|
2875
3454
|
}
|
|
2876
3455
|
|
|
3456
|
+
/* The words the board is narrowed by: a field that takes what room the row has, up to a point. */
|
|
3457
|
+
.sc-filters-words {
|
|
3458
|
+
flex: 1 1 12rem;
|
|
3459
|
+
max-width: 22rem;
|
|
3460
|
+
}
|
|
3461
|
+
|
|
3462
|
+
.sc-filters-words .sc-input {
|
|
3463
|
+
width: 100%;
|
|
3464
|
+
}
|
|
3465
|
+
|
|
2877
3466
|
.sc-filters-count {
|
|
2878
3467
|
font-size: var(--sc-text-sm);
|
|
2879
3468
|
}
|
|
2880
3469
|
|
|
3470
|
+
@media (max-width: 40rem) {
|
|
3471
|
+
.sc-filters {
|
|
3472
|
+
flex-wrap: nowrap;
|
|
3473
|
+
margin-inline: calc(-1 * var(--sc-space-4));
|
|
3474
|
+
padding-inline: var(--sc-space-4);
|
|
3475
|
+
overflow-x: auto;
|
|
3476
|
+
scrollbar-width: none;
|
|
3477
|
+
}
|
|
3478
|
+
|
|
3479
|
+
.sc-filters > * {
|
|
3480
|
+
flex: none;
|
|
3481
|
+
}
|
|
3482
|
+
|
|
3483
|
+
.sc-filters-count {
|
|
3484
|
+
white-space: nowrap;
|
|
3485
|
+
}
|
|
3486
|
+
}
|
|
3487
|
+
|
|
2881
3488
|
/* Tasks as rows, where the columns are not the point. */
|
|
2882
3489
|
.sc-task-rows {
|
|
2883
3490
|
display: grid;
|
|
@@ -2888,11 +3495,11 @@ table {
|
|
|
2888
3495
|
}
|
|
2889
3496
|
|
|
2890
3497
|
.sc-task-row {
|
|
2891
|
-
display:
|
|
2892
|
-
|
|
3498
|
+
display: grid;
|
|
3499
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
2893
3500
|
align-items: center;
|
|
2894
|
-
gap: var(--sc-space-
|
|
2895
|
-
padding: var(--sc-space-
|
|
3501
|
+
gap: var(--sc-space-1) var(--sc-space-3);
|
|
3502
|
+
padding: var(--sc-space-3) var(--sc-space-4);
|
|
2896
3503
|
border: var(--sc-border);
|
|
2897
3504
|
border-radius: var(--sc-radius-md);
|
|
2898
3505
|
background: var(--sc-color-sheet);
|
|
@@ -2900,7 +3507,7 @@ table {
|
|
|
2900
3507
|
}
|
|
2901
3508
|
|
|
2902
3509
|
.sc-task-row-title {
|
|
2903
|
-
|
|
3510
|
+
grid-column: 1;
|
|
2904
3511
|
min-width: 0;
|
|
2905
3512
|
color: var(--sc-color-text);
|
|
2906
3513
|
font-weight: var(--sc-weight-medium);
|
|
@@ -2913,6 +3520,7 @@ table {
|
|
|
2913
3520
|
}
|
|
2914
3521
|
|
|
2915
3522
|
.sc-task-row-project {
|
|
3523
|
+
grid-column: 1;
|
|
2916
3524
|
color: var(--sc-color-text-faint);
|
|
2917
3525
|
font-size: var(--sc-text-xs);
|
|
2918
3526
|
}
|
|
@@ -2920,11 +3528,27 @@ table {
|
|
|
2920
3528
|
.sc-task-row-meta {
|
|
2921
3529
|
display: flex;
|
|
2922
3530
|
flex-wrap: wrap;
|
|
3531
|
+
grid-row: 1 / span 2;
|
|
3532
|
+
grid-column: 2;
|
|
2923
3533
|
align-items: center;
|
|
3534
|
+
justify-content: flex-end;
|
|
2924
3535
|
gap: var(--sc-space-1);
|
|
2925
3536
|
margin-left: auto;
|
|
2926
3537
|
}
|
|
2927
3538
|
|
|
3539
|
+
@media (max-width: 40rem) {
|
|
3540
|
+
.sc-task-row {
|
|
3541
|
+
grid-template-columns: minmax(0, 1fr);
|
|
3542
|
+
}
|
|
3543
|
+
|
|
3544
|
+
.sc-task-row-meta {
|
|
3545
|
+
grid-row: auto;
|
|
3546
|
+
grid-column: 1;
|
|
3547
|
+
justify-content: flex-start;
|
|
3548
|
+
margin-left: 0;
|
|
3549
|
+
}
|
|
3550
|
+
}
|
|
3551
|
+
|
|
2928
3552
|
/* The calendar: the month as a table, a cell a day, the tasks due in it one line each. */
|
|
2929
3553
|
.sc-calendar {
|
|
2930
3554
|
display: grid;
|
|
@@ -2957,12 +3581,7 @@ table {
|
|
|
2957
3581
|
|
|
2958
3582
|
.sc-calendar-grid th {
|
|
2959
3583
|
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
3584
|
text-align: left;
|
|
2965
|
-
text-transform: uppercase;
|
|
2966
3585
|
}
|
|
2967
3586
|
|
|
2968
3587
|
.sc-calendar-cell {
|
|
@@ -2981,7 +3600,6 @@ table {
|
|
|
2981
3600
|
|
|
2982
3601
|
.sc-calendar-cell-today {
|
|
2983
3602
|
border-color: var(--sc-color-accent);
|
|
2984
|
-
box-shadow: inset 0 0 0 1px var(--sc-color-accent);
|
|
2985
3603
|
}
|
|
2986
3604
|
|
|
2987
3605
|
.sc-calendar-day {
|
|
@@ -2995,6 +3613,26 @@ table {
|
|
|
2995
3613
|
color: var(--sc-color-accent);
|
|
2996
3614
|
}
|
|
2997
3615
|
|
|
3616
|
+
.sc-calendar-more {
|
|
3617
|
+
display: block;
|
|
3618
|
+
width: 100%;
|
|
3619
|
+
margin-top: 2px;
|
|
3620
|
+
padding: 1px var(--sc-space-1);
|
|
3621
|
+
border: 0;
|
|
3622
|
+
border-radius: var(--sc-radius-sm);
|
|
3623
|
+
background: transparent;
|
|
3624
|
+
color: var(--sc-color-text-muted);
|
|
3625
|
+
font-size: var(--sc-text-xs);
|
|
3626
|
+
font-weight: var(--sc-weight-medium);
|
|
3627
|
+
line-height: var(--sc-leading-snug);
|
|
3628
|
+
text-align: start;
|
|
3629
|
+
}
|
|
3630
|
+
|
|
3631
|
+
.sc-calendar-more:hover {
|
|
3632
|
+
background: var(--sc-color-bg-inset);
|
|
3633
|
+
color: var(--sc-color-text);
|
|
3634
|
+
}
|
|
3635
|
+
|
|
2998
3636
|
.sc-calendar-task {
|
|
2999
3637
|
display: flex;
|
|
3000
3638
|
align-items: center;
|
|
@@ -3004,7 +3642,7 @@ table {
|
|
|
3004
3642
|
border-radius: var(--sc-radius-sm);
|
|
3005
3643
|
color: var(--sc-color-text);
|
|
3006
3644
|
font-size: var(--sc-text-xs);
|
|
3007
|
-
line-height:
|
|
3645
|
+
line-height: var(--sc-leading-snug);
|
|
3008
3646
|
text-decoration: none;
|
|
3009
3647
|
}
|
|
3010
3648
|
|
|
@@ -3041,7 +3679,8 @@ table {
|
|
|
3041
3679
|
.sc-calendar-bar {
|
|
3042
3680
|
margin-inline: calc(-1 * var(--sc-space-2) - 0.125rem - 1px);
|
|
3043
3681
|
padding-inline: var(--sc-space-2);
|
|
3044
|
-
border-block: 1px solid
|
|
3682
|
+
border-block: 1px solid
|
|
3683
|
+
color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 60%, transparent);
|
|
3045
3684
|
background: var(--sc-category-fill);
|
|
3046
3685
|
color: var(--sc-category-line);
|
|
3047
3686
|
font-size: var(--sc-text-xs);
|
|
@@ -3054,19 +3693,21 @@ table {
|
|
|
3054
3693
|
every week it crosses, never one piece alone; by its colour and not by a filter, which would
|
|
3055
3694
|
light the card within it too. */
|
|
3056
3695
|
.sc-calendar-bar-pointed {
|
|
3057
|
-
background: color-mix(in srgb, var(--sc-category-fill),
|
|
3696
|
+
background: color-mix(in srgb, var(--sc-category-fill), var(--sc-category-line) 14%);
|
|
3058
3697
|
}
|
|
3059
3698
|
|
|
3060
3699
|
.sc-calendar-bar-begins {
|
|
3061
3700
|
margin-left: 0;
|
|
3062
|
-
border-left: 1px solid
|
|
3701
|
+
border-left: 1px solid
|
|
3702
|
+
color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 60%, transparent);
|
|
3063
3703
|
border-start-start-radius: var(--sc-radius-full);
|
|
3064
3704
|
border-end-start-radius: var(--sc-radius-full);
|
|
3065
3705
|
}
|
|
3066
3706
|
|
|
3067
3707
|
.sc-calendar-bar-ends {
|
|
3068
3708
|
margin-right: 0;
|
|
3069
|
-
border-right: 1px solid
|
|
3709
|
+
border-right: 1px solid
|
|
3710
|
+
color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 60%, transparent);
|
|
3070
3711
|
border-start-end-radius: var(--sc-radius-full);
|
|
3071
3712
|
border-end-end-radius: var(--sc-radius-full);
|
|
3072
3713
|
}
|
|
@@ -3088,8 +3729,17 @@ table {
|
|
|
3088
3729
|
color: var(--sc-color-danger);
|
|
3089
3730
|
}
|
|
3090
3731
|
|
|
3732
|
+
/* A bar of a task that is over: paler in its own colour, not see-through, so that every piece
|
|
3733
|
+
of it is one shade whatever lies under it, and the card of the task under the pointer,
|
|
3734
|
+
which lies within the piece, stays solid. */
|
|
3091
3735
|
.sc-calendar-bar.sc-calendar-over {
|
|
3092
|
-
|
|
3736
|
+
border-color: color-mix(
|
|
3737
|
+
in srgb,
|
|
3738
|
+
var(--sc-category-mark, var(--sc-category-line)) 30%,
|
|
3739
|
+
transparent
|
|
3740
|
+
);
|
|
3741
|
+
background: color-mix(in srgb, var(--sc-category-fill) 50%, var(--sc-color-bg-raised));
|
|
3742
|
+
color: color-mix(in srgb, var(--sc-category-line) 55%, var(--sc-color-bg-raised));
|
|
3093
3743
|
}
|
|
3094
3744
|
|
|
3095
3745
|
.sc-calendar-legend {
|
|
@@ -3150,6 +3800,16 @@ table {
|
|
|
3150
3800
|
font-size: var(--sc-text-sm);
|
|
3151
3801
|
}
|
|
3152
3802
|
|
|
3803
|
+
/* The mark hangs in the margin, so that what wraps onto a second line, a badge most often,
|
|
3804
|
+
starts under the name rather than under the mark. */
|
|
3805
|
+
.sc-project-head:has(> .sc-mark-md) {
|
|
3806
|
+
padding-inline-start: calc(2rem + var(--sc-space-3));
|
|
3807
|
+
}
|
|
3808
|
+
|
|
3809
|
+
.sc-project-head > .sc-mark-md {
|
|
3810
|
+
margin-inline-start: calc(-2rem - var(--sc-space-3));
|
|
3811
|
+
}
|
|
3812
|
+
|
|
3153
3813
|
.sc-mark-lg {
|
|
3154
3814
|
width: 3rem;
|
|
3155
3815
|
height: 3rem;
|
|
@@ -3178,10 +3838,11 @@ table {
|
|
|
3178
3838
|
}
|
|
3179
3839
|
|
|
3180
3840
|
.sc-input-file {
|
|
3181
|
-
padding-block: calc(var(--sc-space-2) - 2px);
|
|
3182
3841
|
font-size: var(--sc-text-sm);
|
|
3183
3842
|
}
|
|
3184
3843
|
|
|
3844
|
+
/* Under the month: what is late and who has what on the left, one under the other, and what
|
|
3845
|
+
has no day yet, the long list, down the right; one column where the window is narrow. */
|
|
3185
3846
|
.sc-calendar-below {
|
|
3186
3847
|
display: grid;
|
|
3187
3848
|
align-items: start;
|
|
@@ -3192,6 +3853,12 @@ table {
|
|
|
3192
3853
|
@media (min-width: 64rem) {
|
|
3193
3854
|
.sc-calendar-below {
|
|
3194
3855
|
grid-template-columns: 1fr 1fr;
|
|
3856
|
+
grid-template-rows: auto 1fr;
|
|
3857
|
+
}
|
|
3858
|
+
|
|
3859
|
+
.sc-calendar-below > :last-child {
|
|
3860
|
+
grid-column: 2;
|
|
3861
|
+
grid-row: 1 / span 2;
|
|
3195
3862
|
}
|
|
3196
3863
|
}
|
|
3197
3864
|
|
|
@@ -3243,6 +3910,26 @@ table {
|
|
|
3243
3910
|
color: var(--sc-color-text-muted);
|
|
3244
3911
|
}
|
|
3245
3912
|
|
|
3913
|
+
/* Who asked and who answers (ADR-0042): the two people side by side, an arrow from the one to
|
|
3914
|
+
the other, so that the asker and the decider are never read as one. */
|
|
3915
|
+
.sc-decision-people,
|
|
3916
|
+
.sc-decision-for {
|
|
3917
|
+
display: inline-flex;
|
|
3918
|
+
align-items: center;
|
|
3919
|
+
gap: var(--sc-space-1);
|
|
3920
|
+
white-space: nowrap;
|
|
3921
|
+
}
|
|
3922
|
+
|
|
3923
|
+
.sc-decision-arrow {
|
|
3924
|
+
color: var(--sc-color-text-faint);
|
|
3925
|
+
font-weight: var(--sc-weight-medium);
|
|
3926
|
+
}
|
|
3927
|
+
|
|
3928
|
+
.sc-decision-row-answer {
|
|
3929
|
+
color: var(--sc-color-text);
|
|
3930
|
+
font-weight: var(--sc-weight-medium);
|
|
3931
|
+
}
|
|
3932
|
+
|
|
3246
3933
|
/* The record of the decisions: a row each, what was asked on the left and what was answered on
|
|
3247
3934
|
the right, each with who and when under it; one column where the window is narrow. */
|
|
3248
3935
|
.sc-decision-record {
|
|
@@ -3296,12 +3983,26 @@ table {
|
|
|
3296
3983
|
margin-left: var(--sc-space-2);
|
|
3297
3984
|
}
|
|
3298
3985
|
|
|
3986
|
+
/* The answer a decision took, marked in green before its words. */
|
|
3987
|
+
.sc-decision-record-chosen::before {
|
|
3988
|
+
content: "";
|
|
3989
|
+
position: absolute;
|
|
3990
|
+
top: calc(0.8em - 0.25rem);
|
|
3991
|
+
left: 0;
|
|
3992
|
+
width: 0.5rem;
|
|
3993
|
+
height: 0.5rem;
|
|
3994
|
+
border-radius: var(--sc-radius-full);
|
|
3995
|
+
background: var(--sc-color-success);
|
|
3996
|
+
}
|
|
3997
|
+
|
|
3299
3998
|
.sc-decision-record-chosen {
|
|
3999
|
+
position: relative;
|
|
4000
|
+
padding-left: var(--sc-space-4);
|
|
3300
4001
|
display: flex;
|
|
3301
4002
|
flex-wrap: wrap;
|
|
3302
4003
|
align-items: center;
|
|
3303
4004
|
gap: var(--sc-space-2);
|
|
3304
|
-
color: var(--sc-color-
|
|
4005
|
+
color: var(--sc-color-text);
|
|
3305
4006
|
font-weight: var(--sc-weight-medium);
|
|
3306
4007
|
overflow-wrap: anywhere;
|
|
3307
4008
|
}
|
|
@@ -3340,31 +4041,44 @@ table {
|
|
|
3340
4041
|
font-size: var(--sc-text-sm);
|
|
3341
4042
|
}
|
|
3342
4043
|
|
|
3343
|
-
/* Who has what: a
|
|
4044
|
+
/* Who has what: a table on a sheet of its own, a quiet band for the headings, a hairline
|
|
4045
|
+
between people, the numbers in columns of their own on the right in the display size; the
|
|
4046
|
+
one due this week and the one late carry a dot of their colour before them. */
|
|
3344
4047
|
.sc-workload {
|
|
3345
4048
|
width: 100%;
|
|
3346
4049
|
max-width: var(--sc-width-prose);
|
|
3347
|
-
border
|
|
4050
|
+
border: var(--sc-border);
|
|
4051
|
+
border-radius: var(--sc-radius-lg);
|
|
4052
|
+
border-collapse: separate;
|
|
4053
|
+
border-spacing: 0;
|
|
4054
|
+
background: var(--sc-color-sheet);
|
|
4055
|
+
box-shadow: var(--sc-glass-lift);
|
|
3348
4056
|
font-size: var(--sc-text-sm);
|
|
3349
4057
|
}
|
|
3350
4058
|
|
|
3351
4059
|
.sc-workload th,
|
|
3352
4060
|
.sc-workload td {
|
|
3353
|
-
padding: var(--sc-space-
|
|
3354
|
-
border-bottom: var(--sc-border);
|
|
4061
|
+
padding: var(--sc-space-3) var(--sc-space-4);
|
|
3355
4062
|
text-align: left;
|
|
3356
4063
|
}
|
|
3357
4064
|
|
|
3358
4065
|
.sc-workload thead th {
|
|
3359
|
-
|
|
3360
|
-
|
|
3361
|
-
|
|
3362
|
-
|
|
3363
|
-
|
|
4066
|
+
padding-block: var(--sc-space-2);
|
|
4067
|
+
border-bottom: var(--sc-border);
|
|
4068
|
+
background: var(--sc-color-bg-inset);
|
|
4069
|
+
white-space: nowrap;
|
|
4070
|
+
}
|
|
4071
|
+
|
|
4072
|
+
.sc-workload thead th:first-child {
|
|
4073
|
+
border-start-start-radius: var(--sc-radius-lg);
|
|
4074
|
+
}
|
|
4075
|
+
|
|
4076
|
+
.sc-workload thead th:last-child {
|
|
4077
|
+
border-start-end-radius: var(--sc-radius-lg);
|
|
3364
4078
|
}
|
|
3365
4079
|
|
|
3366
4080
|
.sc-workload tbody th {
|
|
3367
|
-
font-weight: var(--sc-weight-
|
|
4081
|
+
font-weight: var(--sc-weight-medium);
|
|
3368
4082
|
}
|
|
3369
4083
|
|
|
3370
4084
|
.sc-workload tbody th a {
|
|
@@ -3376,8 +4090,34 @@ table {
|
|
|
3376
4090
|
color: var(--sc-color-accent);
|
|
3377
4091
|
}
|
|
3378
4092
|
|
|
4093
|
+
/* The numbers: a narrow column each, lined up on the right. */
|
|
4094
|
+
.sc-workload th:not(:first-child),
|
|
3379
4095
|
.sc-workload td {
|
|
4096
|
+
width: 6.5rem;
|
|
4097
|
+
text-align: right;
|
|
4098
|
+
}
|
|
4099
|
+
|
|
4100
|
+
.sc-workload td {
|
|
4101
|
+
font-size: var(--sc-text-md);
|
|
3380
4102
|
font-variant-numeric: tabular-nums;
|
|
4103
|
+
white-space: nowrap;
|
|
4104
|
+
}
|
|
4105
|
+
|
|
4106
|
+
.sc-workload-soon,
|
|
4107
|
+
.sc-workload-late {
|
|
4108
|
+
font-weight: var(--sc-weight-bold);
|
|
4109
|
+
}
|
|
4110
|
+
|
|
4111
|
+
.sc-workload-soon::before,
|
|
4112
|
+
.sc-workload-late::before {
|
|
4113
|
+
content: "";
|
|
4114
|
+
display: inline-block;
|
|
4115
|
+
width: 0.4rem;
|
|
4116
|
+
height: 0.4rem;
|
|
4117
|
+
margin-inline-end: var(--sc-space-2);
|
|
4118
|
+
border-radius: var(--sc-radius-full);
|
|
4119
|
+
background: currentColor;
|
|
4120
|
+
vertical-align: 0.1em;
|
|
3381
4121
|
}
|
|
3382
4122
|
|
|
3383
4123
|
.sc-workload-soon {
|
|
@@ -3386,14 +4126,50 @@ table {
|
|
|
3386
4126
|
|
|
3387
4127
|
.sc-workload-late {
|
|
3388
4128
|
color: var(--sc-color-danger);
|
|
3389
|
-
|
|
4129
|
+
}
|
|
4130
|
+
|
|
4131
|
+
/* A hairline between people, and the row under the pointer lit a little. */
|
|
4132
|
+
.sc-workload tbody tr + tr > th,
|
|
4133
|
+
.sc-workload tbody tr + tr > td {
|
|
4134
|
+
border-top: var(--sc-hairline);
|
|
4135
|
+
}
|
|
4136
|
+
|
|
4137
|
+
.sc-workload tbody tr:hover > th,
|
|
4138
|
+
.sc-workload tbody tr:hover > td {
|
|
4139
|
+
background: color-mix(in srgb, var(--sc-color-accent) 4%, transparent);
|
|
4140
|
+
}
|
|
4141
|
+
|
|
4142
|
+
@media (max-width: 40rem) {
|
|
4143
|
+
.sc-workload th:not(:first-child),
|
|
4144
|
+
.sc-workload td {
|
|
4145
|
+
width: auto;
|
|
4146
|
+
}
|
|
4147
|
+
|
|
4148
|
+
.sc-workload th,
|
|
4149
|
+
.sc-workload td {
|
|
4150
|
+
padding-inline: var(--sc-space-2);
|
|
4151
|
+
}
|
|
4152
|
+
|
|
4153
|
+
.sc-workload thead th {
|
|
4154
|
+
white-space: normal;
|
|
4155
|
+
word-break: keep-all;
|
|
4156
|
+
line-height: var(--sc-leading-tight);
|
|
4157
|
+
}
|
|
4158
|
+
|
|
4159
|
+
.sc-workload tbody th {
|
|
4160
|
+
word-break: keep-all;
|
|
4161
|
+
}
|
|
4162
|
+
|
|
4163
|
+
.sc-workload td {
|
|
4164
|
+
font-size: var(--sc-text-sm);
|
|
4165
|
+
}
|
|
3390
4166
|
}
|
|
3391
4167
|
|
|
3392
4168
|
/* The roadmap: a goal a pane, with how far it is as a bar. */
|
|
3393
4169
|
.sc-goals {
|
|
3394
4170
|
display: grid;
|
|
4171
|
+
grid-template-columns: repeat(auto-fill, minmax(min(100%, 30rem), 1fr));
|
|
3395
4172
|
gap: var(--sc-space-3);
|
|
3396
|
-
max-width: var(--sc-width-prose);
|
|
3397
4173
|
margin: 0;
|
|
3398
4174
|
padding: 0;
|
|
3399
4175
|
list-style: none;
|
|
@@ -3410,7 +4186,7 @@ table {
|
|
|
3410
4186
|
}
|
|
3411
4187
|
|
|
3412
4188
|
.sc-goal-done {
|
|
3413
|
-
opacity: 0.
|
|
4189
|
+
opacity: 0.55;
|
|
3414
4190
|
}
|
|
3415
4191
|
|
|
3416
4192
|
.sc-goal-dropped {
|
|
@@ -3425,7 +4201,7 @@ table {
|
|
|
3425
4201
|
}
|
|
3426
4202
|
|
|
3427
4203
|
.sc-goal-title {
|
|
3428
|
-
flex: 1 1
|
|
4204
|
+
flex: 1 1 100%;
|
|
3429
4205
|
color: var(--sc-color-text);
|
|
3430
4206
|
font-size: var(--sc-text-lg);
|
|
3431
4207
|
font-weight: var(--sc-weight-medium);
|
|
@@ -3469,11 +4245,6 @@ table {
|
|
|
3469
4245
|
|
|
3470
4246
|
.sc-goal-tasks-state {
|
|
3471
4247
|
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
4248
|
}
|
|
3478
4249
|
|
|
3479
4250
|
/* The categories: a row each, with its name and its colour open to an administrator. */
|
|
@@ -3502,6 +4273,10 @@ table {
|
|
|
3502
4273
|
background: var(--sc-color-sheet);
|
|
3503
4274
|
}
|
|
3504
4275
|
|
|
4276
|
+
.sc-category-row > .sc-project-key {
|
|
4277
|
+
margin-inline-start: auto;
|
|
4278
|
+
}
|
|
4279
|
+
|
|
3505
4280
|
.sc-category-form {
|
|
3506
4281
|
display: flex;
|
|
3507
4282
|
flex: 1;
|
|
@@ -3534,12 +4309,12 @@ table {
|
|
|
3534
4309
|
padding: var(--sc-space-2) var(--sc-space-3);
|
|
3535
4310
|
border: var(--sc-border);
|
|
3536
4311
|
border-radius: var(--sc-radius-md);
|
|
3537
|
-
background: var(--sc-color-bg-
|
|
4312
|
+
background: var(--sc-color-bg-raised);
|
|
3538
4313
|
box-shadow: var(--sc-shadow-stage);
|
|
3539
4314
|
color: var(--sc-color-text);
|
|
3540
4315
|
font-size: var(--sc-text-xs);
|
|
3541
4316
|
font-weight: var(--sc-weight-normal);
|
|
3542
|
-
line-height:
|
|
4317
|
+
line-height: var(--sc-leading-snug);
|
|
3543
4318
|
text-align: left;
|
|
3544
4319
|
text-decoration: none;
|
|
3545
4320
|
white-space: normal;
|
|
@@ -3629,13 +4404,17 @@ table {
|
|
|
3629
4404
|
padding-inline: var(--sc-space-4);
|
|
3630
4405
|
}
|
|
3631
4406
|
|
|
3632
|
-
.sc-brand
|
|
3633
|
-
|
|
3634
|
-
height: var(--sc-brand-size-compact);
|
|
4407
|
+
.sc-brand {
|
|
4408
|
+
gap: calc(var(--sc-brand-size-compact) * var(--sc-brand-gap-ratio));
|
|
3635
4409
|
}
|
|
3636
4410
|
|
|
3637
4411
|
.sc-brand-symbol {
|
|
3638
4412
|
width: var(--sc-brand-size-compact);
|
|
4413
|
+
height: var(--sc-brand-size-compact);
|
|
4414
|
+
}
|
|
4415
|
+
|
|
4416
|
+
.sc-brand-wordmark {
|
|
4417
|
+
height: calc(var(--sc-brand-size-compact) * var(--sc-brand-wordmark-ratio));
|
|
3639
4418
|
}
|
|
3640
4419
|
|
|
3641
4420
|
.sc-crumb-link {
|
|
@@ -3647,15 +4426,18 @@ table {
|
|
|
3647
4426
|
display: none;
|
|
3648
4427
|
}
|
|
3649
4428
|
|
|
3650
|
-
/* Tabs that do not fit
|
|
4429
|
+
/* Tabs that do not fit stay on one line and scroll sideways, the edge fading where more of them
|
|
4430
|
+
are; the current one is brought into view by the shell. */
|
|
3651
4431
|
.sc-tabs {
|
|
3652
4432
|
padding-inline: var(--sc-space-4);
|
|
3653
|
-
|
|
4433
|
+
mask-image: linear-gradient(to right, #000 calc(100% - var(--sc-space-6)), transparent);
|
|
3654
4434
|
}
|
|
3655
4435
|
|
|
3656
4436
|
.sc-tabs-inner {
|
|
3657
|
-
|
|
3658
|
-
|
|
4437
|
+
gap: var(--sc-space-4);
|
|
4438
|
+
/* As wide as the tabs and some room past the last, so that it scrolls clear of the fading edge. */
|
|
4439
|
+
width: max-content;
|
|
4440
|
+
padding-inline-end: var(--sc-space-6);
|
|
3659
4441
|
}
|
|
3660
4442
|
|
|
3661
4443
|
.sc-menu-summary .sc-person-login {
|
|
@@ -3743,9 +4525,9 @@ table {
|
|
|
3743
4525
|
position: static;
|
|
3744
4526
|
}
|
|
3745
4527
|
|
|
3746
|
-
.
|
|
3747
|
-
|
|
3748
|
-
|
|
4528
|
+
/* The rows of a run use the whole width. */
|
|
4529
|
+
.sc-feed-run-list {
|
|
4530
|
+
padding-inline-start: 0;
|
|
3749
4531
|
}
|
|
3750
4532
|
|
|
3751
4533
|
.sc-sign-in {
|
|
@@ -3774,10 +4556,10 @@ table {
|
|
|
3774
4556
|
display: inline-flex;
|
|
3775
4557
|
align-items: center;
|
|
3776
4558
|
padding: 0 var(--sc-space-3);
|
|
3777
|
-
border:
|
|
4559
|
+
border: var(--sc-border-strong);
|
|
3778
4560
|
border-right: 0;
|
|
3779
4561
|
border-radius: var(--sc-radius-md) 0 0 var(--sc-radius-md);
|
|
3780
|
-
background: color-mix(in srgb, var(--sc-color-
|
|
4562
|
+
background: color-mix(in srgb, var(--sc-color-bg-raised) 60%, var(--sc-color-border));
|
|
3781
4563
|
color: var(--sc-color-text-muted);
|
|
3782
4564
|
font-size: var(--sc-text-sm);
|
|
3783
4565
|
white-space: nowrap;
|
|
@@ -3807,7 +4589,12 @@ table {
|
|
|
3807
4589
|
}
|
|
3808
4590
|
|
|
3809
4591
|
/* The facts of a thing inside a panel: a list in the panel, not a pane of their own. */
|
|
4592
|
+
/* The facts on a settings page, inside a pane of their own: a table, a row per fact with its
|
|
4593
|
+
name in a column on the left and its value beside it, a hairline between rows; the name over
|
|
4594
|
+
the value where the window is narrow. */
|
|
3810
4595
|
.sc-facts-plain {
|
|
4596
|
+
grid-template-columns: minmax(0, 1fr);
|
|
4597
|
+
gap: 0;
|
|
3811
4598
|
padding: 0;
|
|
3812
4599
|
border: 0;
|
|
3813
4600
|
border-radius: 0;
|
|
@@ -3820,6 +4607,44 @@ table {
|
|
|
3820
4607
|
content: none;
|
|
3821
4608
|
}
|
|
3822
4609
|
|
|
4610
|
+
.sc-facts-plain > * {
|
|
4611
|
+
display: grid;
|
|
4612
|
+
grid-template-columns: minmax(8rem, 12rem) minmax(0, 1fr);
|
|
4613
|
+
gap: var(--sc-space-1) var(--sc-space-5);
|
|
4614
|
+
align-items: baseline;
|
|
4615
|
+
padding: var(--sc-space-3) 0;
|
|
4616
|
+
border-top: var(--sc-hairline);
|
|
4617
|
+
}
|
|
4618
|
+
|
|
4619
|
+
.sc-facts-plain > :first-child {
|
|
4620
|
+
padding-top: 0;
|
|
4621
|
+
border-top: 0;
|
|
4622
|
+
}
|
|
4623
|
+
|
|
4624
|
+
.sc-facts-plain > :last-child {
|
|
4625
|
+
padding-bottom: 0;
|
|
4626
|
+
}
|
|
4627
|
+
|
|
4628
|
+
.sc-facts-plain dt {
|
|
4629
|
+
color: var(--sc-color-text-muted);
|
|
4630
|
+
font-size: var(--sc-text-sm);
|
|
4631
|
+
font-weight: var(--sc-weight-medium);
|
|
4632
|
+
letter-spacing: 0;
|
|
4633
|
+
text-transform: none;
|
|
4634
|
+
}
|
|
4635
|
+
|
|
4636
|
+
.sc-facts-plain dd {
|
|
4637
|
+
margin-top: 0;
|
|
4638
|
+
font-size: var(--sc-text-md);
|
|
4639
|
+
overflow-wrap: anywhere;
|
|
4640
|
+
}
|
|
4641
|
+
|
|
4642
|
+
@media (max-width: 40rem) {
|
|
4643
|
+
.sc-facts-plain > * {
|
|
4644
|
+
grid-template-columns: minmax(0, 1fr);
|
|
4645
|
+
}
|
|
4646
|
+
}
|
|
4647
|
+
|
|
3823
4648
|
/* A fact that needs the whole row: a description. */
|
|
3824
4649
|
.sc-facts-wide {
|
|
3825
4650
|
grid-column: 1 / -1;
|
|
@@ -3875,7 +4700,7 @@ table {
|
|
|
3875
4700
|
|
|
3876
4701
|
.sc-timeline-title {
|
|
3877
4702
|
margin: 0;
|
|
3878
|
-
font-size: var(--sc-text-
|
|
4703
|
+
font-size: var(--sc-text-md);
|
|
3879
4704
|
font-weight: var(--sc-weight-medium);
|
|
3880
4705
|
}
|
|
3881
4706
|
|
|
@@ -3892,14 +4717,19 @@ table {
|
|
|
3892
4717
|
gap: var(--sc-space-2);
|
|
3893
4718
|
}
|
|
3894
4719
|
|
|
4720
|
+
/* A label keeps to one line, so that every row is as tall as its bar and the labels line up with
|
|
4721
|
+
the bars: a long title is cut short, said in full on hover, and the state stays beside it. */
|
|
3895
4722
|
.sc-timeline-label {
|
|
3896
4723
|
display: flex;
|
|
3897
|
-
flex-wrap: wrap;
|
|
3898
4724
|
align-items: center;
|
|
3899
4725
|
gap: var(--sc-space-2);
|
|
3900
4726
|
min-width: 0;
|
|
3901
4727
|
}
|
|
3902
4728
|
|
|
4729
|
+
.sc-timeline-label .sc-badge {
|
|
4730
|
+
flex: none;
|
|
4731
|
+
}
|
|
4732
|
+
|
|
3903
4733
|
.sc-timeline-goal {
|
|
3904
4734
|
color: var(--sc-color-text);
|
|
3905
4735
|
font-size: var(--sc-text-sm);
|
|
@@ -3907,6 +4737,13 @@ table {
|
|
|
3907
4737
|
overflow-wrap: anywhere;
|
|
3908
4738
|
}
|
|
3909
4739
|
|
|
4740
|
+
.sc-timeline-label .sc-timeline-goal {
|
|
4741
|
+
min-width: 0;
|
|
4742
|
+
overflow: hidden;
|
|
4743
|
+
text-overflow: ellipsis;
|
|
4744
|
+
white-space: nowrap;
|
|
4745
|
+
}
|
|
4746
|
+
|
|
3910
4747
|
.sc-timeline-goal:hover {
|
|
3911
4748
|
color: var(--sc-color-accent);
|
|
3912
4749
|
}
|
|
@@ -3946,7 +4783,7 @@ table {
|
|
|
3946
4783
|
width: 2px;
|
|
3947
4784
|
margin-left: -1px;
|
|
3948
4785
|
background: var(--sc-color-accent);
|
|
3949
|
-
opacity: 0.
|
|
4786
|
+
opacity: 0.55;
|
|
3950
4787
|
}
|
|
3951
4788
|
|
|
3952
4789
|
.sc-timeline-today-mark {
|
|
@@ -3962,7 +4799,8 @@ table {
|
|
|
3962
4799
|
display: flex;
|
|
3963
4800
|
align-items: center;
|
|
3964
4801
|
overflow: hidden;
|
|
3965
|
-
border-block: 1px solid
|
|
4802
|
+
border-block: 1px solid
|
|
4803
|
+
color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 60%, transparent);
|
|
3966
4804
|
background: var(--sc-category-fill);
|
|
3967
4805
|
color: var(--sc-category-line);
|
|
3968
4806
|
font-size: var(--sc-text-xs);
|
|
@@ -3971,17 +4809,19 @@ table {
|
|
|
3971
4809
|
}
|
|
3972
4810
|
|
|
3973
4811
|
.sc-timeline-bar:hover {
|
|
3974
|
-
background: color-mix(in srgb, var(--sc-category-fill),
|
|
4812
|
+
background: color-mix(in srgb, var(--sc-category-fill), var(--sc-category-line) 14%);
|
|
3975
4813
|
}
|
|
3976
4814
|
|
|
3977
4815
|
.sc-timeline-bar.sc-timeline-bar-begins {
|
|
3978
|
-
border-left: 1px solid
|
|
4816
|
+
border-left: 1px solid
|
|
4817
|
+
color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 60%, transparent);
|
|
3979
4818
|
border-start-start-radius: var(--sc-radius-full);
|
|
3980
4819
|
border-end-start-radius: var(--sc-radius-full);
|
|
3981
4820
|
}
|
|
3982
4821
|
|
|
3983
4822
|
.sc-timeline-bar.sc-timeline-bar-ends {
|
|
3984
|
-
border-right: 1px solid
|
|
4823
|
+
border-right: 1px solid
|
|
4824
|
+
color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 60%, transparent);
|
|
3985
4825
|
border-start-end-radius: var(--sc-radius-full);
|
|
3986
4826
|
border-end-end-radius: var(--sc-radius-full);
|
|
3987
4827
|
}
|
|
@@ -3991,7 +4831,7 @@ table {
|
|
|
3991
4831
|
top: 0;
|
|
3992
4832
|
bottom: 0;
|
|
3993
4833
|
left: 0;
|
|
3994
|
-
background: color-mix(in srgb, var(--sc-category-line)
|
|
4834
|
+
background: color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 40%, transparent);
|
|
3995
4835
|
}
|
|
3996
4836
|
|
|
3997
4837
|
.sc-timeline-words {
|
|
@@ -4006,18 +4846,19 @@ table {
|
|
|
4006
4846
|
height: 0.75rem;
|
|
4007
4847
|
margin-left: -0.375rem;
|
|
4008
4848
|
transform: translateY(-50%) rotate(45deg);
|
|
4009
|
-
border: 1px solid
|
|
4849
|
+
border: 1px solid
|
|
4850
|
+
color-mix(in srgb, var(--sc-category-mark, var(--sc-category-line)) 75%, transparent);
|
|
4010
4851
|
background: var(--sc-category-fill);
|
|
4011
4852
|
}
|
|
4012
4853
|
|
|
4013
4854
|
.sc-goal-done .sc-timeline-bar,
|
|
4014
4855
|
.sc-goal-done .sc-timeline-point {
|
|
4015
|
-
opacity: 0.
|
|
4856
|
+
opacity: 0.55;
|
|
4016
4857
|
}
|
|
4017
4858
|
|
|
4018
4859
|
.sc-goal-dropped .sc-timeline-bar,
|
|
4019
4860
|
.sc-goal-dropped .sc-timeline-point {
|
|
4020
|
-
opacity: 0.
|
|
4861
|
+
opacity: 0.55;
|
|
4021
4862
|
}
|
|
4022
4863
|
|
|
4023
4864
|
.sc-timeline-undated {
|
|
@@ -4026,6 +4867,7 @@ table {
|
|
|
4026
4867
|
}
|
|
4027
4868
|
|
|
4028
4869
|
.sc-goal-days {
|
|
4870
|
+
margin-inline-start: auto;
|
|
4029
4871
|
color: var(--sc-color-text-muted);
|
|
4030
4872
|
font-size: var(--sc-text-xs);
|
|
4031
4873
|
}
|
|
@@ -4039,7 +4881,7 @@ table {
|
|
|
4039
4881
|
color: var(--sc-category-line, var(--sc-color-text));
|
|
4040
4882
|
font-size: var(--sc-text-xs);
|
|
4041
4883
|
font-weight: var(--sc-weight-medium);
|
|
4042
|
-
line-height:
|
|
4884
|
+
line-height: var(--sc-leading-tight);
|
|
4043
4885
|
text-decoration: none;
|
|
4044
4886
|
}
|
|
4045
4887
|
|
|
@@ -4053,13 +4895,18 @@ table {
|
|
|
4053
4895
|
width: 0.5rem;
|
|
4054
4896
|
height: 0.5rem;
|
|
4055
4897
|
transform: rotate(45deg);
|
|
4056
|
-
background: var(--sc-category-line, var(--sc-color-text-faint));
|
|
4898
|
+
background: var(--sc-category-mark, var(--sc-category-line, var(--sc-color-text-faint)));
|
|
4057
4899
|
}
|
|
4058
4900
|
|
|
4059
4901
|
@media (max-width: 40rem) {
|
|
4060
4902
|
.sc-timeline-row {
|
|
4061
4903
|
grid-template-columns: minmax(6rem, 8rem) minmax(16rem, 1fr);
|
|
4062
4904
|
}
|
|
4905
|
+
|
|
4906
|
+
/* A narrow label is the title's: the goal's state is on its card below the months. */
|
|
4907
|
+
.sc-timeline-label .sc-badge {
|
|
4908
|
+
display: none;
|
|
4909
|
+
}
|
|
4063
4910
|
}
|
|
4064
4911
|
|
|
4065
4912
|
/* A card is dragged to another column from anywhere on it but its menu, its title included: with
|
|
@@ -4083,7 +4930,7 @@ table {
|
|
|
4083
4930
|
}
|
|
4084
4931
|
|
|
4085
4932
|
.sc-card-dragging {
|
|
4086
|
-
opacity: 0.
|
|
4933
|
+
opacity: 0.55;
|
|
4087
4934
|
}
|
|
4088
4935
|
|
|
4089
4936
|
.sc-board-dragging,
|
|
@@ -4138,7 +4985,7 @@ table {
|
|
|
4138
4985
|
}
|
|
4139
4986
|
|
|
4140
4987
|
.sc-card-menu-button:focus-visible {
|
|
4141
|
-
outline:
|
|
4988
|
+
outline: var(--sc-focus-ring);
|
|
4142
4989
|
outline-offset: 1px;
|
|
4143
4990
|
}
|
|
4144
4991
|
|
|
@@ -4172,7 +5019,7 @@ table {
|
|
|
4172
5019
|
}
|
|
4173
5020
|
|
|
4174
5021
|
.sc-column-over {
|
|
4175
|
-
outline:
|
|
5022
|
+
outline: var(--sc-focus-ring);
|
|
4176
5023
|
outline-offset: -2px;
|
|
4177
5024
|
}
|
|
4178
5025
|
|
|
@@ -4214,26 +5061,37 @@ table {
|
|
|
4214
5061
|
font-size: var(--sc-text-sm);
|
|
4215
5062
|
}
|
|
4216
5063
|
|
|
5064
|
+
.sc-goal-progress .sc-progress-words {
|
|
5065
|
+
display: none;
|
|
5066
|
+
}
|
|
5067
|
+
|
|
4217
5068
|
.sc-facts-row {
|
|
4218
5069
|
display: flex;
|
|
4219
5070
|
flex-wrap: wrap;
|
|
4220
|
-
align-items:
|
|
4221
|
-
gap: var(--sc-space-
|
|
5071
|
+
align-items: stretch;
|
|
5072
|
+
gap: var(--sc-space-3) 0;
|
|
4222
5073
|
margin: 0;
|
|
4223
5074
|
font-size: var(--sc-text-sm);
|
|
4224
5075
|
}
|
|
4225
5076
|
|
|
4226
5077
|
.sc-facts-row > div {
|
|
4227
|
-
display:
|
|
4228
|
-
align-
|
|
4229
|
-
gap: var(--sc-space-
|
|
5078
|
+
display: grid;
|
|
5079
|
+
align-content: start;
|
|
5080
|
+
gap: var(--sc-space-1);
|
|
5081
|
+
padding-inline: var(--sc-space-4);
|
|
5082
|
+
border-inline-start: var(--sc-hairline);
|
|
4230
5083
|
}
|
|
4231
5084
|
|
|
4232
|
-
.sc-facts-row
|
|
4233
|
-
|
|
5085
|
+
.sc-facts-row > div:first-child {
|
|
5086
|
+
padding-inline-start: 0;
|
|
5087
|
+
border-inline-start: 0;
|
|
4234
5088
|
}
|
|
4235
5089
|
|
|
4236
5090
|
.sc-facts-row dd {
|
|
5091
|
+
display: flex;
|
|
5092
|
+
flex-wrap: wrap;
|
|
5093
|
+
align-items: center;
|
|
5094
|
+
gap: var(--sc-space-2);
|
|
4237
5095
|
margin: 0;
|
|
4238
5096
|
}
|
|
4239
5097
|
|
|
@@ -4424,7 +5282,7 @@ table {
|
|
|
4424
5282
|
|
|
4425
5283
|
.sc-pack-code {
|
|
4426
5284
|
font-size: var(--sc-text-xl);
|
|
4427
|
-
letter-spacing:
|
|
5285
|
+
letter-spacing: var(--sc-tracking-code);
|
|
4428
5286
|
}
|
|
4429
5287
|
|
|
4430
5288
|
.sc-pack-connect-waiting {
|
|
@@ -4438,3 +5296,406 @@ table {
|
|
|
4438
5296
|
.sc-pack-actions {
|
|
4439
5297
|
margin-top: var(--sc-space-5);
|
|
4440
5298
|
}
|
|
5299
|
+
|
|
5300
|
+
/* Beside a task the facts stand in one column, a hairline between each. */
|
|
5301
|
+
.sc-task-aside .sc-facts {
|
|
5302
|
+
grid-template-columns: minmax(0, 1fr);
|
|
5303
|
+
gap: 0;
|
|
5304
|
+
padding-block: var(--sc-space-2);
|
|
5305
|
+
}
|
|
5306
|
+
|
|
5307
|
+
.sc-task-aside .sc-facts > * {
|
|
5308
|
+
padding: var(--sc-space-2) 0;
|
|
5309
|
+
}
|
|
5310
|
+
|
|
5311
|
+
.sc-task-aside .sc-facts > * + * {
|
|
5312
|
+
border-top: var(--sc-hairline);
|
|
5313
|
+
}
|
|
5314
|
+
|
|
5315
|
+
/* A phone's pages, one by one. */
|
|
5316
|
+
@media (max-width: 40rem) {
|
|
5317
|
+
/* The board: a column nearly as wide as the window, so that a card's title has room and one
|
|
5318
|
+
column is read at a time, the next peeking in from the side. */
|
|
5319
|
+
.sc-column {
|
|
5320
|
+
flex-basis: min(18rem, 82vw);
|
|
5321
|
+
}
|
|
5322
|
+
|
|
5323
|
+
/* The filters scroll as a row; a select with long choices keeps to a width of its own. */
|
|
5324
|
+
.sc-filters .sc-input {
|
|
5325
|
+
max-width: 11rem;
|
|
5326
|
+
}
|
|
5327
|
+
|
|
5328
|
+
/* A task's facts: one to a row, as on the wide layout's side, instead of two abreast with
|
|
5329
|
+
the select and the dates pressed against each other. */
|
|
5330
|
+
.sc-task .sc-task-aside .sc-facts {
|
|
5331
|
+
grid-template-columns: minmax(0, 1fr);
|
|
5332
|
+
}
|
|
5333
|
+
|
|
5334
|
+
.sc-facts .sc-input {
|
|
5335
|
+
max-width: 100%;
|
|
5336
|
+
}
|
|
5337
|
+
|
|
5338
|
+
/* A goal's card: the badges on one line, the span of days on a line of its own. */
|
|
5339
|
+
.sc-goal-days {
|
|
5340
|
+
flex: 1 1 100%;
|
|
5341
|
+
margin-inline-start: 0;
|
|
5342
|
+
}
|
|
5343
|
+
|
|
5344
|
+
/* The goal page's progress: the words under the bar. */
|
|
5345
|
+
.sc-goal-progress {
|
|
5346
|
+
grid-template-columns: minmax(0, 1fr);
|
|
5347
|
+
gap: var(--sc-space-1);
|
|
5348
|
+
}
|
|
5349
|
+
|
|
5350
|
+
/* The roadmap's months: too narrow for the year and the month on one line, so the two
|
|
5351
|
+
stand one over the other, small. */
|
|
5352
|
+
.sc-timeline-month {
|
|
5353
|
+
padding-inline: 2px;
|
|
5354
|
+
font-size: 0.6rem;
|
|
5355
|
+
line-height: var(--sc-leading-tight);
|
|
5356
|
+
white-space: normal;
|
|
5357
|
+
word-break: keep-all;
|
|
5358
|
+
overflow: visible;
|
|
5359
|
+
text-overflow: clip;
|
|
5360
|
+
}
|
|
5361
|
+
|
|
5362
|
+
/* A bar on the month reaches over the gap between the cells, which is narrower here. */
|
|
5363
|
+
.sc-calendar-bar {
|
|
5364
|
+
margin-inline: calc(-1 * var(--sc-space-1) - 2px - 1px);
|
|
5365
|
+
}
|
|
5366
|
+
|
|
5367
|
+
.sc-calendar-bar-begins {
|
|
5368
|
+
margin-left: 0;
|
|
5369
|
+
}
|
|
5370
|
+
|
|
5371
|
+
.sc-calendar-bar-ends {
|
|
5372
|
+
margin-right: 0;
|
|
5373
|
+
}
|
|
5374
|
+
|
|
5375
|
+
/* "N more" on a day keeps to one line, small enough for the cell. */
|
|
5376
|
+
.sc-calendar-more {
|
|
5377
|
+
padding-inline: 0;
|
|
5378
|
+
font-size: 0.65rem;
|
|
5379
|
+
overflow: hidden;
|
|
5380
|
+
white-space: nowrap;
|
|
5381
|
+
text-overflow: ellipsis;
|
|
5382
|
+
}
|
|
5383
|
+
|
|
5384
|
+
/* A bar reaching past the week stops at the edge of the month. */
|
|
5385
|
+
.sc-calendar-grid {
|
|
5386
|
+
clip-path: inset(0);
|
|
5387
|
+
}
|
|
5388
|
+
}
|
|
5389
|
+
|
|
5390
|
+
/* A phone's pages as one design. */
|
|
5391
|
+
@media (max-width: 40rem) {
|
|
5392
|
+
/* Every page's head: the name, a word about it under the name, and the ways the page offers
|
|
5393
|
+
as a row of equal buttons under those, so that no head differs from another. */
|
|
5394
|
+
.sc-page-head {
|
|
5395
|
+
display: grid;
|
|
5396
|
+
justify-content: stretch;
|
|
5397
|
+
gap: var(--sc-space-3);
|
|
5398
|
+
margin-bottom: var(--sc-space-5);
|
|
5399
|
+
}
|
|
5400
|
+
|
|
5401
|
+
.sc-page-heading {
|
|
5402
|
+
display: grid;
|
|
5403
|
+
row-gap: var(--sc-space-1);
|
|
5404
|
+
}
|
|
5405
|
+
|
|
5406
|
+
.sc-page-lead {
|
|
5407
|
+
flex: none;
|
|
5408
|
+
}
|
|
5409
|
+
|
|
5410
|
+
.sc-page-actions {
|
|
5411
|
+
flex-wrap: nowrap;
|
|
5412
|
+
width: 100%;
|
|
5413
|
+
}
|
|
5414
|
+
|
|
5415
|
+
.sc-page-actions > * {
|
|
5416
|
+
flex: 1 1 0;
|
|
5417
|
+
justify-content: center;
|
|
5418
|
+
min-width: 0;
|
|
5419
|
+
}
|
|
5420
|
+
|
|
5421
|
+
/* A head with one way alone gives it the whole width too. */
|
|
5422
|
+
.sc-page-head > .sc-button {
|
|
5423
|
+
width: 100%;
|
|
5424
|
+
justify-content: center;
|
|
5425
|
+
}
|
|
5426
|
+
|
|
5427
|
+
/* The tabs snap tab by tab, the first keeping its room from the edge. */
|
|
5428
|
+
.sc-tabs {
|
|
5429
|
+
scroll-snap-type: x proximity;
|
|
5430
|
+
scroll-padding-inline: var(--sc-space-4);
|
|
5431
|
+
}
|
|
5432
|
+
|
|
5433
|
+
.sc-tab {
|
|
5434
|
+
scroll-snap-align: start;
|
|
5435
|
+
}
|
|
5436
|
+
|
|
5437
|
+
/* The panes: one padding and one radius for all of them. */
|
|
5438
|
+
.sc-project,
|
|
5439
|
+
.sc-goal,
|
|
5440
|
+
.sc-skill,
|
|
5441
|
+
.sc-run,
|
|
5442
|
+
.sc-decision,
|
|
5443
|
+
.sc-comment,
|
|
5444
|
+
.sc-facts {
|
|
5445
|
+
padding: var(--sc-space-4);
|
|
5446
|
+
border-radius: var(--sc-radius-lg);
|
|
5447
|
+
}
|
|
5448
|
+
|
|
5449
|
+
/* The board scrolls from edge to edge of the window, its columns snapping into place. */
|
|
5450
|
+
.sc-board {
|
|
5451
|
+
min-height: 0;
|
|
5452
|
+
margin-inline: calc(-1 * var(--sc-space-4));
|
|
5453
|
+
padding-inline: var(--sc-space-4);
|
|
5454
|
+
scroll-padding-inline: var(--sc-space-4);
|
|
5455
|
+
}
|
|
5456
|
+
|
|
5457
|
+
.sc-filters {
|
|
5458
|
+
margin-bottom: var(--sc-space-4);
|
|
5459
|
+
}
|
|
5460
|
+
|
|
5461
|
+
/* A task's head: the parent on one line, the title, the badges, then the ways as a row of
|
|
5462
|
+
equal buttons. */
|
|
5463
|
+
.sc-task-header {
|
|
5464
|
+
display: grid;
|
|
5465
|
+
justify-content: stretch;
|
|
5466
|
+
gap: var(--sc-space-3);
|
|
5467
|
+
}
|
|
5468
|
+
|
|
5469
|
+
.sc-task-parent {
|
|
5470
|
+
overflow: hidden;
|
|
5471
|
+
white-space: nowrap;
|
|
5472
|
+
text-overflow: ellipsis;
|
|
5473
|
+
}
|
|
5474
|
+
|
|
5475
|
+
.sc-task-actions {
|
|
5476
|
+
flex-wrap: nowrap;
|
|
5477
|
+
align-items: stretch;
|
|
5478
|
+
}
|
|
5479
|
+
|
|
5480
|
+
.sc-task-actions > * {
|
|
5481
|
+
flex: 1 1 0;
|
|
5482
|
+
justify-content: center;
|
|
5483
|
+
min-width: 0;
|
|
5484
|
+
}
|
|
5485
|
+
|
|
5486
|
+
/* The calendar's legend, tighter; what is under the month, further apart. */
|
|
5487
|
+
.sc-calendar-legend {
|
|
5488
|
+
gap: var(--sc-space-1) var(--sc-space-3);
|
|
5489
|
+
}
|
|
5490
|
+
|
|
5491
|
+
.sc-calendar-below {
|
|
5492
|
+
gap: var(--sc-space-6);
|
|
5493
|
+
}
|
|
5494
|
+
|
|
5495
|
+
/* The roadmap's label column, narrower, so that the months have the room. */
|
|
5496
|
+
.sc-timeline-row {
|
|
5497
|
+
grid-template-columns: minmax(5.5rem, 7rem) minmax(14rem, 1fr);
|
|
5498
|
+
}
|
|
5499
|
+
}
|
|
5500
|
+
|
|
5501
|
+
/* A phone's month: a dot per task per day. */
|
|
5502
|
+
@media (max-width: 40rem) {
|
|
5503
|
+
.sc-calendar-cell {
|
|
5504
|
+
height: auto;
|
|
5505
|
+
min-height: 3.25rem;
|
|
5506
|
+
padding: 2px var(--sc-space-1) var(--sc-space-1);
|
|
5507
|
+
/* The rows of dots as tall as the dots, not as tall as a line of text. */
|
|
5508
|
+
line-height: 0;
|
|
5509
|
+
}
|
|
5510
|
+
|
|
5511
|
+
.sc-calendar-day,
|
|
5512
|
+
.sc-calendar-more {
|
|
5513
|
+
line-height: var(--sc-leading-snug);
|
|
5514
|
+
}
|
|
5515
|
+
|
|
5516
|
+
.sc-calendar-lane {
|
|
5517
|
+
display: none;
|
|
5518
|
+
}
|
|
5519
|
+
|
|
5520
|
+
/* A task planned across days: a dot on each of its days, in its category's colour, the
|
|
5521
|
+
late one in the danger colour; nothing of the bar remains. */
|
|
5522
|
+
.sc-calendar-bar,
|
|
5523
|
+
.sc-calendar-bar-begins,
|
|
5524
|
+
.sc-calendar-bar-ends {
|
|
5525
|
+
display: inline-block;
|
|
5526
|
+
width: 0.5rem;
|
|
5527
|
+
height: 0.5rem;
|
|
5528
|
+
margin: 2px 3px 0 0;
|
|
5529
|
+
padding: 0;
|
|
5530
|
+
border: 0;
|
|
5531
|
+
border-radius: var(--sc-radius-full);
|
|
5532
|
+
background: var(--sc-category-mark, var(--sc-category-line));
|
|
5533
|
+
vertical-align: top;
|
|
5534
|
+
}
|
|
5535
|
+
|
|
5536
|
+
.sc-calendar-bar.sc-calendar-late {
|
|
5537
|
+
background: var(--sc-color-danger);
|
|
5538
|
+
}
|
|
5539
|
+
|
|
5540
|
+
/* A task on its day: the same dot. */
|
|
5541
|
+
.sc-calendar-task {
|
|
5542
|
+
margin: 2px 3px 0 0;
|
|
5543
|
+
vertical-align: top;
|
|
5544
|
+
}
|
|
5545
|
+
|
|
5546
|
+
.sc-calendar-dot {
|
|
5547
|
+
width: 0.5rem;
|
|
5548
|
+
height: 0.5rem;
|
|
5549
|
+
}
|
|
5550
|
+
|
|
5551
|
+
.sc-calendar-more {
|
|
5552
|
+
margin-top: 2px;
|
|
5553
|
+
text-align: left;
|
|
5554
|
+
}
|
|
5555
|
+
}
|
|
5556
|
+
|
|
5557
|
+
/* A day's number is a button: pressed, the day's tasks are listed under the month. */
|
|
5558
|
+
.sc-calendar-day[type="button"] {
|
|
5559
|
+
width: auto;
|
|
5560
|
+
margin-inline-start: calc(-1 * var(--sc-space-1));
|
|
5561
|
+
padding: 0 var(--sc-space-1);
|
|
5562
|
+
border: 0;
|
|
5563
|
+
border-radius: var(--sc-radius-sm);
|
|
5564
|
+
background: transparent;
|
|
5565
|
+
color: inherit;
|
|
5566
|
+
font: inherit;
|
|
5567
|
+
font-size: var(--sc-text-xs);
|
|
5568
|
+
font-weight: var(--sc-weight-medium);
|
|
5569
|
+
line-height: var(--sc-leading-snug);
|
|
5570
|
+
text-align: left;
|
|
5571
|
+
cursor: pointer;
|
|
5572
|
+
}
|
|
5573
|
+
|
|
5574
|
+
.sc-calendar-day[type="button"]:hover {
|
|
5575
|
+
background: var(--sc-color-sheet-hover);
|
|
5576
|
+
}
|
|
5577
|
+
|
|
5578
|
+
.sc-calendar-day[aria-pressed="true"] {
|
|
5579
|
+
background: var(--sc-color-accent);
|
|
5580
|
+
color: #ffffff;
|
|
5581
|
+
}
|
|
5582
|
+
|
|
5583
|
+
.sc-calendar-cell-picked {
|
|
5584
|
+
border-color: var(--sc-color-accent);
|
|
5585
|
+
background: color-mix(in srgb, var(--sc-color-accent) 6%, var(--sc-color-sheet));
|
|
5586
|
+
}
|
|
5587
|
+
|
|
5588
|
+
/* The tasks of the picked day, under the month: a pane with the day over the rows. */
|
|
5589
|
+
.sc-calendar-day-list {
|
|
5590
|
+
display: grid;
|
|
5591
|
+
gap: var(--sc-space-3);
|
|
5592
|
+
margin-top: var(--sc-space-4);
|
|
5593
|
+
padding: var(--sc-space-4);
|
|
5594
|
+
border: var(--sc-border);
|
|
5595
|
+
border-radius: var(--sc-radius-lg);
|
|
5596
|
+
background: var(--sc-color-sheet);
|
|
5597
|
+
}
|
|
5598
|
+
|
|
5599
|
+
.sc-calendar-day-list-head {
|
|
5600
|
+
display: flex;
|
|
5601
|
+
align-items: center;
|
|
5602
|
+
justify-content: space-between;
|
|
5603
|
+
gap: var(--sc-space-2);
|
|
5604
|
+
}
|
|
5605
|
+
|
|
5606
|
+
.sc-calendar-day-list-title {
|
|
5607
|
+
display: flex;
|
|
5608
|
+
align-items: center;
|
|
5609
|
+
gap: var(--sc-space-2);
|
|
5610
|
+
margin: 0;
|
|
5611
|
+
font-size: var(--sc-text-md);
|
|
5612
|
+
font-weight: var(--sc-weight-bold);
|
|
5613
|
+
}
|
|
5614
|
+
|
|
5615
|
+
/* How many a day holds: said on a phone, where the day shows three dots and no more. */
|
|
5616
|
+
.sc-calendar-count {
|
|
5617
|
+
display: none;
|
|
5618
|
+
}
|
|
5619
|
+
|
|
5620
|
+
@media (max-width: 40rem) {
|
|
5621
|
+
/* The number covers the whole day, so that a finger anywhere on it lists the day's tasks;
|
|
5622
|
+
the dots and the count under it are a picture, not targets. */
|
|
5623
|
+
.sc-calendar-cell {
|
|
5624
|
+
position: relative;
|
|
5625
|
+
padding-top: 1.375rem;
|
|
5626
|
+
}
|
|
5627
|
+
|
|
5628
|
+
.sc-calendar-day[type="button"] {
|
|
5629
|
+
position: absolute;
|
|
5630
|
+
inset: 0;
|
|
5631
|
+
z-index: 1;
|
|
5632
|
+
display: flex;
|
|
5633
|
+
align-items: flex-start;
|
|
5634
|
+
justify-content: flex-start;
|
|
5635
|
+
width: auto;
|
|
5636
|
+
margin: 0;
|
|
5637
|
+
padding: 2px var(--sc-space-1);
|
|
5638
|
+
border-radius: var(--sc-radius-md);
|
|
5639
|
+
}
|
|
5640
|
+
|
|
5641
|
+
/* No pointer rests on a phone; a finger that tapped must not leave a sheet over the dots. */
|
|
5642
|
+
.sc-calendar-day[type="button"]:hover {
|
|
5643
|
+
background: transparent;
|
|
5644
|
+
}
|
|
5645
|
+
|
|
5646
|
+
.sc-calendar-day[aria-pressed="true"] {
|
|
5647
|
+
background: transparent;
|
|
5648
|
+
color: var(--sc-color-accent);
|
|
5649
|
+
font-weight: var(--sc-weight-bold);
|
|
5650
|
+
}
|
|
5651
|
+
|
|
5652
|
+
.sc-calendar-cell > a,
|
|
5653
|
+
.sc-calendar-cell > .sc-calendar-more {
|
|
5654
|
+
pointer-events: none;
|
|
5655
|
+
}
|
|
5656
|
+
|
|
5657
|
+
.sc-calendar-cell > a:nth-of-type(n + 4),
|
|
5658
|
+
.sc-calendar-cell > .sc-calendar-more {
|
|
5659
|
+
display: none;
|
|
5660
|
+
}
|
|
5661
|
+
|
|
5662
|
+
.sc-calendar-count {
|
|
5663
|
+
display: block;
|
|
5664
|
+
width: fit-content;
|
|
5665
|
+
min-width: 1rem;
|
|
5666
|
+
margin-top: 3px;
|
|
5667
|
+
padding: 0 4px;
|
|
5668
|
+
border-radius: var(--sc-radius-full);
|
|
5669
|
+
background: color-mix(in srgb, var(--sc-color-text-muted) 14%, transparent);
|
|
5670
|
+
color: var(--sc-color-text-muted);
|
|
5671
|
+
font-size: 0.625rem;
|
|
5672
|
+
font-weight: var(--sc-weight-medium);
|
|
5673
|
+
line-height: 1rem;
|
|
5674
|
+
text-align: center;
|
|
5675
|
+
}
|
|
5676
|
+
|
|
5677
|
+
.sc-calendar-day-list {
|
|
5678
|
+
margin-top: var(--sc-space-3);
|
|
5679
|
+
}
|
|
5680
|
+
}
|
|
5681
|
+
|
|
5682
|
+
/* The end of a phone's header: the live dot, the avatar and the caret close together. */
|
|
5683
|
+
@media (max-width: 40rem) {
|
|
5684
|
+
.sc-header-end {
|
|
5685
|
+
gap: 0;
|
|
5686
|
+
}
|
|
5687
|
+
|
|
5688
|
+
.sc-menu-summary {
|
|
5689
|
+
gap: var(--sc-space-1);
|
|
5690
|
+
padding-inline: var(--sc-space-1);
|
|
5691
|
+
}
|
|
5692
|
+
}
|
|
5693
|
+
|
|
5694
|
+
/* The ways under a comment's field stand on one row at one height, the small file button
|
|
5695
|
+
included, so that none sits lower than the one beside it. */
|
|
5696
|
+
.sc-comment-form-actions > .sc-button,
|
|
5697
|
+
.sc-comment-form-actions > label {
|
|
5698
|
+
min-height: var(--sc-control-size);
|
|
5699
|
+
padding-inline: var(--sc-space-4);
|
|
5700
|
+
font-size: var(--sc-text-sm);
|
|
5701
|
+
}
|