feat(design): Add the 0.2.0 primitives, tokens and the intent kind - #3
Merged
Conversation
The dashboard maintained its own copies of the shared components and its own fork of the theme, so the two surfaces drifted apart and a fix in one never reached the other. The pieces it had that this package did not are the reason it could not simply drop them. Adds a failed read with a retry, a list placeholder, a dismissible action error, page navigation, themed line art, and a theme switch. The two loading treatments are now one component: the richer spinner, with the source of the work named in the line beneath it. The error and the theme switch take what they show rather than reading it from shared state, so an application keeps whatever it already uses to hold one and nothing here depends on a particular framework.
The dashboard defined its own scale for how bad a finding is and its own ordered palette for a row of figures, which is why it could not take the preset as it stood. Both are now part of the shared vocabulary, so a severity means the same colour wherever it is shown.
A switcher whose options are not all available has to say so on the option rather than hiding it, and a reader scanning a row of five words finds the one they want by its mark before its label. Without either, an application that needs them writes the strip out by hand, which is how the same control came to exist in two designs across six screens. Also takes a tighter size, for a strip inside a panel header rather than one standing beside a page title.
A modal is right for a question with an answer. It is wrong for writing something: it floats in the middle of the window, it is only as tall as what is in it, and it covers the thing being written about. This comes in from either side at the full height of the window, takes a share of the width rather than a fixed one, and holds the page still behind it. Below the small breakpoint it takes the whole width, because two fifths of a phone is a column too narrow to write in. Five panels across the applications were each drawing their own version of this, which is why they open from different sides at different widths.
Knowledge can be filed as intent: what a project exists to do, who it is for, and what it deliberately is not. It carries its own colour, picker entry and description wherever kinds are shown. The palette is spaced by hue rather than picked by eye. Intent took the gap near 298 degrees. The other wide gap falls in the green that collapses onto pink for a red-green colourblind reader.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves the components and tokens each consumer was keeping its own copy of into this package, and adds a ninth knowledge kind.
The new kind is intent, for what a project exists to do and what it deliberately is not. Nine hues is past the point where colour alone tells them apart, so anything drawing by kind needs a second channel.
Everything from 0.1.0 keeps working unchanged.