Locked future-stage cards + journey rail
Future stages now render as preview-only "look ahead" cards instead of being hidden. A user at stage 2 can see headers and contents for stages 3, 4, 5, but those sections are visibly locked and uneditable. Locked-card treatment: - Dashed-rule border, paper-2 fill, no shadow — visually quieter than active cards - "Upcoming" pill in the header with a small lock glyph - Muted stage rank mark (dashed badge, low-opacity icon) - Panel content wrapped in fieldset[disabled] so every form control inside is natively non-interactive, with an opacity tweak for affordance - "A look ahead" banner explaining that fields will become editable when the co-op reaches this stage Section visibleWhen is still consulted on submit, so locked-stage values never get written back to CiviCRM even if data is prefilled. Journey rail: - Vertical rail (md+) in a new left gutter; each card carries an aligned marker. Past stages = filled leaf circle with check; current = filled leaf disc with rank number, leaf-100 halo ring, and a subtle rail-pulse box-shadow animation (motion-safe). A "Now" pill sits beneath the current marker. Future stages = dashed hollow ring with lock glyph. - Connector segments between markers are solid leaf when the next stage is past-or-current, dashed muted when future — so the transition from "traveled" to "ahead" reads at the right place in the journey. - Mobile fallback: a small vertical stem in the gap between adjacent cards, styled the same way (solid vs dashed) so the progression cue still reads on narrow viewports.
This commit is contained in:
@@ -142,6 +142,19 @@ input[type="date"]::-webkit-calendar-picker-indicator {
|
||||
}
|
||||
}
|
||||
|
||||
/* Journey rail — gentle "you are here" pulse on the current stage marker.
|
||||
* Animates the ring shadow only; the marker disc stays at full opacity so
|
||||
* the cue reads as a halo rather than a fade. Reduced-motion users get the
|
||||
* static state thanks to the global override above. */
|
||||
@keyframes rail-pulse {
|
||||
0%, 100% {
|
||||
box-shadow: 0 0 0 0 oklch(72% 0.14 135 / 0.55);
|
||||
}
|
||||
60% {
|
||||
box-shadow: 0 0 0 8px oklch(72% 0.14 135 / 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* A small cohort of utility classes — rule lines, rough underlines, etc. */
|
||||
.rule-soft {
|
||||
background: linear-gradient(
|
||||
|
||||
Reference in New Issue
Block a user