Skip to content

11. Language, accessibility, themes and motion

Shared guidance (1A-X02): Current rules resolves retained theme/visual/version conflicts; Voice and content supplies the common vocabulary, state messages, localised formats and audited-action wording. These additions leave §12.1 and SW-405 as supplied.

Rule. Every user-facing string can be translated, every screen passes the accessibility floor in light and dark, and colour, loader and motion come from the shared system.

Why. Hard-coded English cannot be translated and breaks plurals. Contrast and keyboard failures lock people out.

How to apply.

  • Language. Mark every string. Whole sentences with named placeholders and real plurals; never glue fragments. Identifiers (audit actions, error codes, module keys, enum values) and text written by a space are not translated. Dates and numbers use shared formatters. Regenerate catalogues with the wording. Copy is British English and says “Space Works”; no “Oops” and no “Something went wrong”.
  • Accessibility floor. Text 4.5:1, icons and borders 3:1, a visible keyboard focus on every control, 44 px controls, reduced motion honoured, status always a word as well as a colour, no translucent text, full keyboard use. Details: lessons-learned.md.
  • Themes. Light and dark are both designed and checked. Colours come only from the tokens (tokens/tokens.json). Staff always use the Space Works palette; tenant colours are derived for members only. Implementation: theming.md.
  • Loading. One loader everywhere: the Space Works box that opens, a status label, a still version for reduced motion.
  • Motion. Animate content, not chrome; transform and opacity only; nothing on the critical path longer than 240 ms; reduced motion turns it all off; no hover animation on touch; tenant logos never animate. Catalogue: motion.md.
  • Help docs with screenshots. A change that alters what people see or do updates the in-app guide article and the docs in the same change, with real screenshots (light and dark where it matters). A new feature gets an article.

Across the org. SpaceWorks: translation catalogues with literal guards that must report zero. Next.js apps: British English copy and an in-app guide (Events: MDX help with a generated index checked in CI); translation catalogues not found. Android: string resources. iOS: Localizable.xcstrings. Design tokens are consumed by Workspace (submodule sync), Events, Android and iOS (submodule).

Part of Space Works product rules, published from docs/product-rules.md. Edit it there.