-
Couldn't load subscription status.
- Fork 700
Description
This is a child-epic to the parent epic #6210
Introduction
This epic has been assembled to create the neatest-possible artifact to push as a Feature Branch into a first phase of user testing. Outputs from this Epic will not need immediate L10 work, nor change-management stuff with customers. One or two customers will need to be sourced to run a branch of this as their SD instance, per the Phase One Research Plan.
Acceptance Criteria
A functional branch created that reflects all of the changes shown in the Frankenstein E prototype, from which the Phase One Research Plan was drafted.
Please go into the corresponding Figma file to look at details such as hex values, padding/positioning particulars, components, etc. If you're new to Figma with SecureDrop, so are all of us—here's your guide! Because pixel-perfect matching (within reason) is the goal, it is my ask that folks not try to "eyeball" things—and make the effort to look at values in the "Inspect" panel w/in Figma. 🙏🏻
Stuff
This section is broken-out into three distinct categories of stuff. Page layouts for the Flow Inversion will be much easier to do, once the earlier of the Design System items have been tackled. Et Cetera are quick-win items neither dependent upon the broader design system, nor inverting the Generate/Submit flow.
Design System
Colors, typography, icons—aesthetic things. Mostly CSS, but some HTML to adapt layouts to updated CSS. Also (and important!) worked-into the new design system, are Focus states that presume an ability to intuitively navigate the UI with a keyboard (tab/cursor/return). The "How" on that may need to be its own issue, at a later date.
Components from Figma Design file.

Typography Updates
Because the body class is set to "normal" today, and not with a concise font-size or line-height, some of the typesetting has been difficult to manage to date. Assigning this descending (or ascending?) property to other classes may wack them out a bit and require some pairing to reconcile. Also, updates will need to be checked in Tor Browser, not just Firefox; as sizing things can look different in Tor vs Firefox.
-
bodyto:Noto Sans, Arial, sans-serif;font-size: 13px;line-height: 19px; color:#3D3D3D -
boldto inheritbodycharacteristics, but use color:#000000; and addletter-spacing: 0.5px - H1 and H2 updates per Figma
- All headers across SI: see last section here, "Standardization"
Buttons
Note: Per standardization section below, all buttons across the SI should be classed to one of the four below styles as part of this work. Will make things muuuch easier, to update button styles in the future. 😺
- Primary & Secondary "blue" buttons
- Colors/styling for
:default,:hover,:focusin alignment with updated components - Kill icon on "Cancel" button
- Likely small updates to text classes, once the
bodyup above is done. See Figma for how they should look.
- Colors/styling for
- Delete All & Delete Message buttons
- Colors/styling for Delete All
:default,:hover,:focusin alignment with updated components - New icon artwork & colors for Delete Message
:focuson Delete Message
- Colors/styling for Delete All
Messaging
- Messaging formats to give all success/error strings a "declarative" and "description" (per this one error message—not sure if there are others). Classing the declarative part of messages apart from descriptions is required for styling, and the aforelinked message only exists today as the "description" part of that.
- Messaging styles so all message classes show this size, in this position, no rounded-corners, these colors, these icons, and with the text/icon positioning following the updated components spec (and how the description text should wrap).
- Re-class "Reply Deleted" message to be green/success, with a declarative of:
Deleted!and a description of:You have deleted our reply message to you.(open to edits on description)
Replies
Note: No changes to Empty reply state, this is just to the replies themselves + the info text above them.
- Styling CSS changes on messaging bubble outline/fill colors, corners, stroke weight, padding, and timestamp background/font colors, per Figma screen
- Add blue "i" icon before sentence on info bubble per Figma screen
- Kill strings & Edit remaining string in SI "Reply" Message #6212 is a dependency for all of the styling to show, correctly.
General Standardization
- Buttons on index page should be classed w/
primaryandsecondaryper this new system, and draw from the same styles as all the other primary and secondary buttons. - All pages with a solid or outline button, should have those button styles correspond to the primary, secondary, or deletion button styles defined above.
- H1s should only exist on the
index,login, andlookup(aka Welcome!) page(s). - All headers are H2s on
lookup?fromlogin(aka Welcome back) page and "Keep In Touch" page. - Headers and descriptions on
.indexpage should be classed as H1 and body, respectively. - All pages with a primary/secondary button lockup, should have the two buttons spaced 10px apart and 14px below the object above them. See also note on ordering of primary/secondary buttons in Et Cetera, below.
Flow Inversion
The meat & potatoes of this first phase! Note that in production, the "Submit" page has two headers on it that are the same size no matter if a Source is using SD for the first time, or in a follow-up visit. With the new design direction the first time a source visits an instance (aka the "Welcome" page), there is a clear H1 and an H2; whereas on the return visit, the Submit page instead has two H2s.
Backend things
Lots of handwavey interpretive dance from the designer, to imply all the things she doesn't understand that make the inverted flow possible on the backend. :)
"Welcome" Page
See Figma Design file. First time a source visits a SecureDrop, what is currently called the "lookup" page.
- Kill passphrase widget
- Kill logout button
- Add an H1 classed header above File/Message module that says:
Welcome! - Edit description text below the H1 that says:
You may send us any type of file, a message, or both. After your first submission, we’ll let you know how to keep in touch. - Add Encryption call-to-action (CTA) with blue key icon, below files side of the module, per Figma. Opens existing "Why Public Key?" page—which needs other edits, both near and longer term.
- Kill italicized GPG text above File/Message module. Overlooked by users, and Encryption CTA replaces (and will likely catch their attention, better, based on 2019 testing observations).
- Edit text below "Browse" button to read:
You may upload 1 file up to 500mb, per submission - Edit primary button to say "Send" and not "Submit" (maybe? Now on the fence with this, after considering above item)
- Note: On Figma the ordering of the buttons is not changed from production, but imho I'd love to see their ordering changed, too. Primary on the right and secondary on the left, is the modern paradigm.
- Error bubble size/placement for this one screen.
- Edit overall page spacing/padding of above items, to reflect updated design layout and visual grid.
"Welcome Back" page
See Figma Design file. Return sources, after they log in. Below items presume the "Welcome" page has already been done.
- All of the items from the "Welcome" page (above)
- Kill page description
- Class header as H2
- Edit header to read "Send a File, a Message, or both"
- Add log out button
"Keep In Touch" page
See Figma Design file for pixel-perfect layout specs. The hybridized confirm & generate page mashup!
- All of the items from the "Welcome Back" page (above)
- Add Passphrase Widget
- Add hide/show control below Passphrase Widget
- Add "Keep In Touch" content below "Log Out" button and Confirmation Message, and above "Welcome Back" page H2. Page's H2, description, above the passphrase widget, and bullets below w/ hide/show control below it. H2: Keep In Touch, description:
Please check back in a few days to see if our team has questions about your submission. You will need the below <i>passphrase</i> to do that. On SecureDrop, a passphrase is used as both your username and your password.ul bullets:<b>• Keep it secret.</b> Do not share your passphrase with anyone. <b>• Keep it safe.</b> There is no passphrase recovery.
Et Cetera
One-off items that can be done as unrelated quick-wins to the above.
- Update text on "Why Public Key?" page per Edit/Rethink GPG Guidance in SI #6193
- Re-order all buttons to show the primary on the Right, and the secondary on the Left. This is a standard paradigm that is not reflected in the SI today, nor in the Figma. I hadn't sought to slay this dragon in any of the design explos, but doggone it'd make me happy to see happen (presuming Kev agrees)!
- Re-style Passphrase Widget per SI: Re-Style Passphrase Widget #6213
- Add weeble icon to Login page per Figma. May be good to do with Design System standardization things for that page, too?
- Enable keyboard navigation per A11y best practices & to use new
:focusstates