@putdotio/design 4.0.0 → 4.0.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/DESIGN.md +3 -2
- package/package.json +1 -1
- package/system/components.css +18 -8
package/DESIGN.md
CHANGED
|
@@ -133,16 +133,17 @@ Default radius `6px`; `4px` for tight controls, `8px` or `10px` for panels, pill
|
|
|
133
133
|
|
|
134
134
|
### Auth
|
|
135
135
|
|
|
136
|
-
- Sign in, sign up, password reset, and two-factor pages have no card or panel: the form sits on `--bg`. Recipe: `.auth-page`, `.auth-header`, `.auth-main`, `.auth-column`, `.auth-title`, `.auth-links`, `.auth-footer`.
|
|
136
|
+
- Sign in, sign up, password reset, and two-factor pages have no card or panel: the form sits on `--bg`. Recipe: `.auth-page`, `.auth-header`, `.auth-main`, `.auth-column`, `.auth-title`, `.auth-note`, `.auth-links`, `.auth-footer`.
|
|
137
137
|
- The logo sits top-left in the header, in a `30.33px` box (26px ink × 7/6). The top right stays empty by default.
|
|
138
138
|
- One left-aligned column, up to `340px`, is centred horizontally and optically centred vertically: the form's middle sits near 45% of the viewport height, never below the true middle.
|
|
139
139
|
- A quiet centred footer links Terms of Service, Privacy Policy, and Help in muted `--fs-sm`.
|
|
140
|
+
- Text is one size: everything except the title and input text is `--fs-sm`. That covers labels, hints, `.auth-note` lines, errors, the link row, and the footer.
|
|
140
141
|
- One title per screen: `--fs-title` (`22px`), medium, `--tracking-snug` (`-0.01em`). No subtitles, taglines, or marketing lines; copy stays short.
|
|
141
142
|
- Fields and buttons keep the standard 36px box: the filled field and a full-width default-size primary.
|
|
142
143
|
- Labels are small, muted, and above the field.
|
|
143
144
|
- The primary button is full-width yellow. Secondary actions sit under the form as muted text links: “Forgot password?”, “New to put.io? Sign up”, “Wrong account? Sign out”.
|
|
144
145
|
- Tab order runs fields, submit, then secondary links; DOM order follows visual order, with no positive `tabindex`. Two-factor runs the code, Verify, then its links. The reveal-password toggle takes `tabindex="-1"` and keeps its accessible name: keyboard-only users can't toggle visibility, screen-reader users still can in browse mode. No link leaves the tab order.
|
|
145
|
-
- Form errors: one message in a `.form-reveal` row right above the submit button, in red `--fs-
|
|
146
|
+
- Form errors: one message in a `.form-reveal` row right above the submit button, in red `--fs-sm` text, 8px under the fields. Invalid fields turn red. Auth forms never use the boxed `.form-callout`.
|
|
146
147
|
- Copy: “Sign in”, “Sign up”, and “That username or password doesn't look right.”
|
|
147
148
|
- auth.put.io still ships the older card layout: drift.
|
|
148
149
|
- References: `web-s06-auth`, `web-p00c-auth-signin`, `web-p00d-auth-signup`, `web-p00e-auth-2fa`. Outside references: the TIDAL, Stripe Link, Cursor, Linear, and Vercel sign-in pages.
|
package/package.json
CHANGED
package/system/components.css
CHANGED
|
@@ -453,7 +453,7 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
453
453
|
.form-reveal .form-callout { margin: 0; }
|
|
454
454
|
.form-reveal[data-state="open"] { grid-template-rows: 1fr; opacity: 1; }
|
|
455
455
|
/* Inside a .form-group the row absorbs the group gap, so a closed row
|
|
456
|
-
adds no space and an open one sits the usual
|
|
456
|
+
adds no space and an open one sits the usual 8px under its field. */
|
|
457
457
|
.form-group > .form-reveal { margin-top: -8px; }
|
|
458
458
|
.form-group > .form-reveal .form-callout { padding-top: 8px; }
|
|
459
459
|
|
|
@@ -569,9 +569,9 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
569
569
|
Card-less: the form sits on the page background. Logo top-left
|
|
570
570
|
in .auth-header, one left-aligned 340px column centred in
|
|
571
571
|
.auth-main, a quiet link row in .auth-footer. Controls keep the
|
|
572
|
-
standard 36px box;
|
|
573
|
-
|
|
574
|
-
up with the column.
|
|
572
|
+
standard 36px box; the title is the only heading. All other text
|
|
573
|
+
(labels, hints, notes, errors, links, footer) is --fs-sm. Under
|
|
574
|
+
640px the gutters drop to 24px so the logo lines up with the column.
|
|
575
575
|
=========================================================== */
|
|
576
576
|
.auth-page {
|
|
577
577
|
box-sizing: border-box;
|
|
@@ -618,7 +618,16 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
618
618
|
font-weight: var(--fw-regular);
|
|
619
619
|
color: var(--text-secondary);
|
|
620
620
|
}
|
|
621
|
-
|
|
621
|
+
/* A field hint, a legal line, or a sent-to note. */
|
|
622
|
+
.auth-column .hint,
|
|
623
|
+
.auth-note {
|
|
624
|
+
margin: 0;
|
|
625
|
+
font-size: var(--fs-sm);
|
|
626
|
+
line-height: var(--lh-normal);
|
|
627
|
+
color: var(--text-secondary);
|
|
628
|
+
}
|
|
629
|
+
.auth-note a { color: var(--text); text-underline-offset: 3px; }
|
|
630
|
+
.auth-column form > .form-reveal .form-callout { padding-top: 8px; }
|
|
622
631
|
.auth-column form > .form-reveal + .btn-block { margin-top: 16px; }
|
|
623
632
|
.auth-links {
|
|
624
633
|
margin: 24px 0 0;
|
|
@@ -628,11 +637,12 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
628
637
|
justify-content: space-between;
|
|
629
638
|
gap: 8px 16px;
|
|
630
639
|
color: var(--text-secondary);
|
|
631
|
-
font-size: var(--fs-
|
|
640
|
+
font-size: var(--fs-sm);
|
|
632
641
|
}
|
|
633
642
|
/* A prompt's link reads as text ("New to put.io? Sign up"); a bare
|
|
634
|
-
action link ("Use a recovery code") stays muted.
|
|
635
|
-
|
|
643
|
+
action link ("Use a recovery code") stays muted. The token base sizes
|
|
644
|
+
every p at --fs-base, so a prompt inherits the row's size. */
|
|
645
|
+
.auth-links p { margin: 0; font-size: inherit; }
|
|
636
646
|
.auth-links a { color: var(--text); text-underline-offset: 3px; }
|
|
637
647
|
.auth-links > a { color: var(--text-secondary); text-decoration: none; }
|
|
638
648
|
.auth-links > a:hover { color: var(--text); }
|