spinner.stories.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // @ts-nocheck
  2. import * as mod from "./spinner"
  3. import { create } from "../storybook/scaffold"
  4. const docs = `### Overview
  5. Animated loading indicator for inline or page-level loading states.
  6. Use with \`Button\` or in empty states.
  7. ### API
  8. - Accepts standard SVG props (class, style).
  9. ### Variants and states
  10. - Single default animation style.
  11. ### Behavior
  12. - Animation is CSS-driven via data attributes.
  13. ### Accessibility
  14. - Use alongside text or aria-live regions to convey loading state.
  15. ### Theming/tokens
  16. - Uses \`data-component="spinner"\` for styling hooks.
  17. `
  18. const story = create({ title: "UI/Spinner", mod })
  19. export default {
  20. title: "UI/Spinner",
  21. id: "components-spinner",
  22. component: story.meta.component,
  23. tags: ["autodocs"],
  24. parameters: {
  25. docs: {
  26. description: {
  27. component: docs,
  28. },
  29. },
  30. },
  31. }
  32. export const Basic = story.Basic
  33. export const Sizes = {
  34. render: () => (
  35. <div style={{ display: "flex", gap: "16px", "align-items": "center" }}>
  36. <mod.Spinner style={{ width: "12px", height: "12px" }} />
  37. <mod.Spinner style={{ width: "20px", height: "20px" }} />
  38. <mod.Spinner style={{ width: "28px", height: "28px" }} />
  39. </div>
  40. ),
  41. }