-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nimble-spinner #346
Comments
@gokulakrishnan-ni Can you give more context on where the spinner will be used? Is it over specific controls? For the full page? When does it show or hide? |
@rajsite I'm interested in where Argon will use the spinner too, but we can also ask Brandon. I think that XD came from the NI rebranding Visual Design effort. |
@rajsite In Argon, there few pages where data has to be fetched from server and populate them. In the duration between the API call and the response, there should be some indication that the application is loading the page. Currently we are using mat-spinner (refer image below). The NI loading spinner from https://xd.adobe.com/view/6fc414f4-1660-4bff-4552-3e62baaa9e1e-19f5/screen/ced36959-68d6-440f-a0cc-031bc29d7e98/ will replace the mat-spinner. |
@gokulakrishnan-ni is a full page modal loading spinner the only use-case needed by Argon? Will there be spinners in other places? Just want to make sure all the expected use cases are captured. I think SystemLink apps are trying to move away from full page loading spinners and instead have spinners or skeletons in specific components that are loading. |
@rajsite We may also use spinners in specific components that are loading. Please consider this use case as well. Thanks. |
+1 for this functionality. We are needing to replace the Grafana loading indicator (bouncing Grafana logo with "Loading" text). I might look into adding this if time permits. |
@cameronwaterman could you post a screenshot/gif of the Grafana indicator? I'm curious if it's a full screen component, something over each tile, or something in an even smaller context like a grid row. We've had some hesitation about using the highly branded design too heavily so if that shows up in a lot of places at once we might choose to go with something more subtle. |
@jattasNI - here is a gif I sent to Brandon the other day regarding this. It is the loading indication you get when the app is initially loading, so it sounds like using a "skeleton" might be more appropriate. Note: In the gif I had replaced it with an NI icon, but you get the picture (we won't be putting an NI icon there). |
For a full page spinner (similar to the dialog discussion: #378 (comment) ) we should use the |
A dev in SLE is suggesting using a skeleton instead of a loading spinner in this PR. We should consider prioritizing porting the FAST skeleton to Nimble if we think this is the right direction (I do) so that apps don't write their own styling. We'd still need designs from VxD for that. FYI @nate-ni |
@jattasNI, @cameronwaterman Tracking the skeleton component separately at: #762 |
Morning All, I've reworked our brand version of the bits-indeterminate-spinner, and included them into Nimble components. Please take a look at the XD spec and let me know if this will cover what we need for production, and if you have any additional questions or feedback.
Navigate: Miscellaneous > Spinner - Indeterminate https://xd.adobe.com/view/33ffad4a-eb2c-4241-b8c5-ebfff1faf6f6-66ac/ |
An example of on that was made already: spinner-in-action.mov |
Example of an indeterminate progress indication in a very small space (table cell) File-Upload-Progress.mov |
Here's another app (License modernization desktop UI) that needs a spinner very soon. Unclear whether it would be the bit spinner or a radial spinner. But it's being written in Blazor, so integration with that framework is important. |
# Pull Request ## 🤨 Rationale Creating spec for spinner component. Also see #346 ## 👩💻 Implementation Based on 'custom component' template. Deriving from the FAST `progress-ring` is an option but not currently planned for this spinner (see spec). ## 🧪 Testing N/A ## ✅ Checklist - [x] I have updated the project documentation to reflect my changes or determined no changes are needed.
# Pull Request ## 🤨 Rationale Fixes #346 **Note on spinner sizes:** Brandon added [additional sizes in the XD design doc](https://xd.adobe.com/view/33ffad4a-eb2c-4241-b8c5-ebfff1faf6f6-66ac/screen/dece308f-79e7-48ec-ab41-011f3376b49b/specs/). However, after some more discussion we're not adding a `size` attribute with these specific sizes for now, the component will scale to the width/height it's given (via CSS styles). Default is 16x16. The additional sizes are described in Storybook on the Spinner's doc page. See PR discussion/comments for more info. (Angular/Blazor integration will be a followup PR) ## 👩💻 Implementation See [the spec and its PR/discussion](#837) for implementation details. Simple element (no attributes/properties), mostly CSS animations, including a simplified `prefers-reduced-motion` animation. ## 🧪 Testing Tested locally, with + without OS animations (to test prefers-reduced-motion). Added autotests + Storybook stories. ## ✅ Checklist - [ ] I have updated the project documentation to reflect my changes or determined no changes are needed. - Component table will be updated with the next PR (Angular/Blazor integration)
Reopen pending PR for Blazor and Angular integration of spinner |
# Pull Request ## 🤨 Rationale Related Issue: - #346 ## 👩💻 Implementation - Standard Angular integration (add directive, update example app, autotest for custom element) - Standard Blazor integration (add Razor component, update example app) - Update component table to reflect spinner being available ## 🧪 Testing - Autotests - Ran Angular and Blazor example apps locally ## ✅ Checklist - [x] I have updated the project documentation to reflect my changes or determined no changes are needed.
Spinner web component, and Angular + Blazor integration are now checked in. See Storybook page for notes on spinner sizing behavior. |
There are some open items remaining from the original feature request that need to be addressed. |
# Pull Request ## 🤨 Rationale Associated feature - #346 Nathan Mitchell, Fred Visser, Jesse Attas, and myself had a followup discussion about spinner sizes. The end result was that we wanted it to be easier for users to use the designer-prescribed spinner sizes. Nathan followed up with Brandon O'Keefe to confirm the 3 spinner sizes desired (they still went with 16/32/64, which also matches the spec). Separately I looked at the spinner usages in SystemLink Enterprise, and the vast majority are also 16x16, so I'm keeping 16x16 the default size as it was previously. After discussion with the dev team, we decided to use design tokens to provide the designer-provided `small` `medium` and `large` sizes (instead of a `size` DOM attribute). Consumers can set the `height` to a token as outlined in the spinner Storybook docs/examples. ## 👩💻 Implementation - Add design tokens `spinnerSmallHeight` (16px), `spinnerMediumHeight` (32px), and `spinnerLargeHeight` (64px). 16px (small) is the default, so using that token is optional. - Add `aspect-ratio: 1 / 1` to the spinner styling, so consumers can just set height (instead of both width and height) - Update Storybook docs to cover the 3 sizes and explain how to set them, and some examples of where they should be used in a page - Update theme matrix story to have those 3 sizes ## 🧪 Testing - Autotests - Looked at updated stories ## ✅ Checklist - [x] I have updated the project documentation to reflect my changes or determined no changes are needed.
😯 Problem to Solve
Need a loading spinner to show during loading/fetching state in the application
💁 Proposed Solution
Design
The sizes shall be 16, 32, & 64.
@16x16 (8px squares)
@32x32 (16px squares)
@64x64 (32px squares)
Storybook/Documentation
Spinner Storybook page
📋 Tasks
NOTE: The squares should spin clockwise.
Related PRs
The text was updated successfully, but these errors were encountered: