diff --git a/src/components/ActivityForm.css b/src/components/ActivityForm.css index 4d38e37..4cacf91 100644 --- a/src/components/ActivityForm.css +++ b/src/components/ActivityForm.css @@ -245,11 +245,14 @@ display: none; } -.ff__btn { +.ff__drop { + display: flex; + flex-direction: column; + align-items: center; + gap: 3px; + width: 100%; font: inherit; - font-size: var(--fs-xs); - font-weight: 500; - padding: 14px 14px; + padding: 16px 12px; border-radius: var(--r-md); cursor: pointer; border: 1px dashed var(--zk-blue-light); @@ -258,28 +261,56 @@ text-align: center; transition: background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast); } +.ff__drop svg { width: 20px; height: 20px; } +.ff__drop strong { font-size: var(--fs-2xs); font-weight: 500; } +.ff__drop span { font-size: var(--fs-3xs); color: var(--zk-grey); } -.ff__btn:hover:not(:disabled) { +.ff__drop:hover:not(:disabled) { background: var(--zk-white); border-style: solid; border-color: var(--zk-blue); - box-shadow: var(--ring); } +.ff__drop:focus-visible { outline: none; box-shadow: var(--ring); } +.ff__drop:disabled { opacity: 0.65; cursor: default; border-style: solid; } -.ff__btn:disabled { - opacity: 0.6; - cursor: default; - border-style: solid; +/* Uploaded: the file as a fact, not a call to action. */ +.ff__file { + display: flex; + align-items: center; + gap: 8px; + padding: 9px 9px 9px 11px; + border: 1px solid var(--zk-line); + border-radius: var(--r-md); + background: var(--zk-white); } +.ff__file > svg { width: 15px; height: 15px; flex: none; color: var(--zk-blue-dark); } -.ff__got { +.ff__name { + flex: 1; + min-width: 0; font-size: var(--fs-2xs); - color: var(--zk-muted); + color: var(--zk-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.ff__replace { + flex: none; + font: inherit; + font-size: var(--fs-3xs); + font-weight: 500; + padding: 4px 10px; + border: 1px solid var(--zk-line); + border-radius: var(--r-pill); + background: var(--zk-white); + color: var(--zk-blue-dark); + cursor: pointer; + transition: background var(--t-fast), border-color var(--t-fast); +} +.ff__replace:hover { background: var(--zk-tint-blue); border-color: var(--zk-blue-mid); } +.ff__replace:focus-visible { outline: none; box-shadow: var(--ring); } + .ff__read { border: 1px solid var(--zk-blue-light); border-left-width: 3px; @@ -349,3 +380,19 @@ } .af__err--soft ul { margin: 6px 0 0; padding-left: 18px; } .af__err--soft li { margin: 2px 0; } + +/* ---- form sections ---- */ +.af__sec + .af__sec { margin-top: 22px; } + +.af__sech { + margin: 0 0 10px; + font-size: var(--fs-3xs); + font-weight: 500; + letter-spacing: 0.06em; + text-transform: uppercase; + color: var(--zk-grey); +} + +/* Uploads size to their content and never stretch to the tallest card in the + row, so a document that has been read does not pull its neighbours down. */ +.af__grid--docs { align-items: start; } diff --git a/src/components/ActivityForm.jsx b/src/components/ActivityForm.jsx index 8e564b3..8ee1ab3 100644 --- a/src/components/ActivityForm.jsx +++ b/src/components/ActivityForm.jsx @@ -267,21 +267,26 @@ export default function ActivityForm({ activityUid, instanceId, lead, onDone, on if (error && !schema) return
Loading the form…
- return ( -