Skip to content

SI Redesign: Phase One #6211

@ninavizz

Description

@ninavizz

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.
Transitional Design System

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.

  • body to: Noto Sans, Arial, sans-serif; font-size: 13px; line-height: 19px; color: #3D3D3D
  • bold to inherit body characteristics, but use color: #000000; and add letter-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, :focus in alignment with updated components
    • Kill icon on "Cancel" button
    • Likely small updates to text classes, once the body up above is done. See Figma for how they should look.
  • Delete All & Delete Message buttons
    • Colors/styling for Delete All :default, :hover, :focus in alignment with updated components
    • New icon artwork & colors for Delete Message
    • :focus on Delete Message

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.

General Standardization

  • Buttons on index page should be classed w/ primary and secondary per 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, and lookup (aka Welcome!) page(s).
  • All headers are H2s on lookup?fromlogin (aka Welcome back) page and "Keep In Touch" page.
  • Headers and descriptions on .index page 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 :focus states

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions