Skip to content

Contribution request

Vittorio Vittori edited this page Jul 8, 2026 · 1 revision

Contribution request

This is the entry point for any contribution to Magma. Whatever you want to change — a bug, a new component, a token update — it starts here, by opening an issue.

Magma follows a core-team moderated model. You don't need to coordinate with a wider community or chase multiple reviewers: you interact with the core team, which triages your proposal, validates your design, and reviews and merges your code. Everything happens on GitHub (issues, pull requests, wiki, project board). The public documentation site will come later and is out of scope for now.

The flow at a glance

Every contribution moves through the same pipeline. The core team acts at three checkpoints: an initial triage on your proposal, a design validation before any code is written, and a final review-and-merge on the pull request.

flowchart TD
    A[Contribution idea] --> B["Open an issue<br/>(proposal template)"]
    B --> C{Core team triage}
    C -->|Declined| X[Closed with rationale]
    C -->|Needs info| B
    C -->|"Accepted<br/>type + labels + milestone"| D{Design needed?}
    D -->|No| G[Code]
    D -->|Yes| E[Design in Figma]
    E --> F{Core team<br/>design validation}
    F -->|Changes requested| E
    F -->|Approved| G
    G --> H["Open a Pull Request (to dev)"]
    H --> I{Core team<br/>review &amp; merge}
    I -->|Changes requested| G
    I -->|Merged| J[Doc]
    J --> K[Release]
Loading

Not every phase applies to every contribution. A one-line bug fix skips Design entirely; a new component goes through all of it. Which phases you follow depends on the type of contribution.

Which type is my contribution?

Pick the smallest type that fully describes your change. When in doubt, propose it anyway — the core team confirms or reclassifies it during triage.

Type What it is Example Design Doc Typical release
Bug fix Fixing unexpected behaviour in a component or published package. A button emits the wrong event on click. — if needed patch
Small enhancement A small addition that does not touch a component's architecture. Adding a colour to a label. optional ✓ patch / minor
Large enhancement A deeper change or refactor of a single component. Reworking how a component handles slots. ✓ ✓ minor
New feature A brand-new component or capability. A new mg-tabs component. ✓ ✓ minor
New feature across components A change with architectural impact on several components. A new shared attribute added to many components. ✓ ✓ minor / major
Major initiative A structural change to the Design System itself. Restyling every component, or reworking the design tokens. ✓ ✓ major

Before you propose

  • Search first. Check existing issues and the project board so you don't duplicate work already planned or in progress.
  • Open the proposal. Use the issue templates — pick the one that matches your intent. The core team takes it from there.
  • Need help deciding? Ask on the Stack Overflow channel.

Detailed, per-step descriptions (what each step means, how to do it) live in Steps reference. Each contribution type below is just the ordered path through those steps.

Clone this wiki locally