# Major (RFC-level) contribution spec

{% hint style="info" %}
**RFC process**

If you're proposing a major feature or substantial change to CivicTheme, your contribution must go through the **RFC (Request for Comments)** process. This helps the core team and community discuss and refine your idea early before implementation.

**Steps for major contributions:**

1. **Create an RFC**: Submit a GitHub issue outlining the proposed change using the below contribution specification.
2. **Get approval**: The CivicTheme core team will review and approve or provide feedback.
3. **Implement the feature**: Work with the community or team to build and submit the change.
4. **Final review**: The core team will review the implementation for final acceptance.
   {% endhint %}

### Component overview

<table data-full-width="false"><thead><tr><th width="411">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Component name</strong></td><td>[Insert component name]</td></tr><tr><td><strong>Type</strong></td><td>[Atom, Molecule, Organism, etc.]</td></tr><tr><td><strong>Intended purpose</strong></td><td>Comprehensive explanation of the component’s purpose and its role within CivicTheme.</td></tr><tr><td><strong>Primary use case</strong></td><td>[Define primary scenarios for its use.]</td></tr><tr><td><strong>Secondary use case</strong></td><td>[List other potential uses.]</td></tr></tbody></table>

### Existing patterns/components

<table data-full-width="false"><thead><tr><th width="410">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Do any existing patterns fulfil this need?</strong></td><td>[Yes/No. If yes, reference relevant patterns and explain why they do not suffice.]</td></tr></tbody></table>

### References and inspiration

<table><thead><tr><th width="410">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Description of component</strong></td><td>[Detailed background on the inspiration and rationale for the component.]</td></tr><tr><td><strong>References/inspiration sources</strong></td><td>[Provide links, files, mockups, or relevant research documents.]</td></tr></tbody></table>

### Interactions and behaviours

<table data-full-width="false"><thead><tr><th width="409">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Intended user interactions</strong></td><td>[Describe all user interactions and how they affect the component.]</td></tr><tr><td><strong>Expected component behaviour</strong></td><td>[Detail how the component should behave in different scenarios (e.g., error handling, loading states).]</td></tr></tbody></table>

### Accessibility considerations

<table data-full-width="false"><thead><tr><th width="406">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>WCAG compliance level</strong></td><td>[A, AA]</td></tr><tr><td><strong>Expected component behaviour (Accessibility)</strong></td><td>[Describe how the component supports accessible interactions.]</td></tr><tr><td><strong>Potential accessibility challenges</strong></td><td>[List challenges that might arise from complex interactions.]</td></tr></tbody></table>

### User research

<table data-full-width="false"><thead><tr><th width="403">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Research completed</strong></td><td>[Provide key findings from multiple research rounds.]</td></tr><tr><td><strong>Results</strong></td><td>[Link to more comprehensive research documentation.]</td></tr></tbody></table>

### Security requirements

<table data-full-width="false"><thead><tr><th width="401">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Security considerations</strong></td><td>[Detail any security vulnerabilities the component might introduce.]</td></tr><tr><td><strong>Data handling requirements</strong></td><td>[Describe how the component manages data securely.]</td></tr><tr><td><strong>Privacy concerns</strong></td><td>[Address any privacy concerns tied to user data.]</td></tr></tbody></table>

### Technical considerations

| Field                                     | Description                                                                                          |
| ----------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| **Required technology/framework support** | \[e.g., Drupal, React, Vue.js]                                                                       |
| **Known component dependencies**          | \[List all dependencies, including external libraries.]                                              |
| **Performance expectations**              | \[Provide expected benchmarks, including performance for large datasets, animation efficiency, etc.] |

### Submission details

<table data-full-width="false"><thead><tr><th width="405">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Submitted By</strong></td><td>[Contributor's name]</td></tr><tr><td><strong>Date</strong></td><td>[Submission date]</td></tr><tr><td><strong>Contact Information</strong></td><td>[Name, Email or GitHub username]</td></tr></tbody></table>

***

## Feedback

We're always looking at ways to improve our model for contributions and rely on your feedback to ensure an enjoyable contribution experience. The best way to give us feedback is to join our [Slack channel ](https://drupal.slack.com/archives/C039UV0CQBZ)and chat to us there, or contact us via [email](mailto:support@civictheme.io)!
