elastic/eui - Open Source PR Review Scorecard

Elastic UI Framework 🙌

C-Rank Grade: B (Solid) - 52/100

External PR Merge Rate: 17%

Response Time: 10h

First Timer Success: 50%

Frequently Asked Questions

Is elastic/eui welcoming to first-time open-source contributors?

elastic/eui has a recorded first-timer success rate of 50.0%. Repositories ranked B typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in elastic/eui respond to incoming external pull requests in approximately 10.3 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 52.0 C-Rank™ score (B Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 52.0 places elastic/eui in the B tier.

What is the external contributor pull request merge rate for elastic/eui?

The external contributor pull request merge rate for elastic/eui is 16.7%, based on public PR activity from non-core contributors.

Are there Good First Issues available in elastic/eui?

elastic/eui currently has 19 active issue(s) tagged with beginner-friendly labels like "good first issue", "beginner", or "up-for-grabs".

elastic
elastic/euiBSolid6.3k
GitHub
Back to Explorer
elastic

elastic/eui

6,345
BSolid(52/100)TypeScript

Elastic UI Framework 🙌

Compare
Jump to:

AI Maintainer Review Guidelines

Review Persona

Active Open-Source Maintainer

Warmth Score
7.8/10
Patience Score
8.2/10
Nitpick Rate
20%

Active maintainer team in elastic/eui welcoming community pull requests and bug fixes.

Top PR Submission Do's

  • Ensure code complies with repository style conventions
  • Keep PRs focused and well-documented

Top PR Friction Pitfalls (Don'ts)

  • Do not submit unlinked PRs without context
  • Do not break existing automated test suites
Response Velocity
10 hours
Standard maintainer review cycle

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
16.7%
Selective PR acceptance rate

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
50.0%
Accepts new contributor PRs

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
9 core
Highly collaborative maintainer core
Diagnostic Health HUD
16.7%
Merge Gauge
50.0%
1st-Timer
Community Vibe44/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for elastic/eui
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/elastic/eui)](https://getmerged.abhishekco.de/elastic/eui?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

Reported by @mgadewoll Describe the bug Raised on #9689 (review) There is one thing I noticed, which seems to not be a regression in this PR but rather from before: When using the screen reader navigation (arrowUp/Down, not TAB key) in NVDA and JAWS and then pressing Enter to focus the element, the tooltip is not announced. That used to be the case before the tooltip refactor. In JAWS the tooltip is not shown anymore. Impact and severity It's an a11y violation. It's not severe. There's no workaround. Environment and versions EUI version: latest React version: - Kibana version (if applicable): - Browser: - Operating System: Windows Minimum reproducible sandbox N/A To Reproduce Using JAWS/NVDA: Use arrow keys to navigate to the tooltip trigger. Press Enter to focus the trigger. Notice the tooltip is not announced after the trigger is focused. Expected behavior When using browse mode, tooltip is correctly announced. Screenshots (Optional) NVDA before after

📅 Opened Jun 25, 2026💬 3 comments
Quality: 50/100Contribute

Reported by Originally surfaced from Kibana accessibility issue elastic/kibana#227773. Describe the bug EuiFilterButton treats hasActiveFilters as a fallback source for aria-expanded when it is rendered as a collapsible chevron button: const isExpanded = isCollapsible && (isSelected ?? hasActiveFilters); hasActiveFilters is a visual/filter-count state, not the disclosure open state. A closed filter popover can still have active filters, so this can leave the trigger exposed to assistive technology as expanded even when the controlled popover is closed, or cause a missing false-to-true announcement the next time the trigger opens. Impact and severity This affects screen reader users of filter-popover triggers. The Kibana report notes VoiceOver/Safari missing the expanded-state announcement for the Security > Rules > Benchmarks filter buttons. This is WCAG Name, Role, Value related behavior. Environment and versions Kibana version: 9.1.0 in the downstream report Browser: Safari 18.5 Scr

📅 Opened May 30, 2026💬 5 comments
Quality: 40/100Contribute

EuiDelayRender delays rendering its children until a specified time has elapsed. Used to prevent flash of loading content. File: components/delay_render/delay_render.tsx Class size: 52 lines State: toggle Lifecycle: componentDidMount, shouldComponentUpdate, componentDidUpdate, componentWillUnmount Migration notes: Small but uses shouldComponentUpdate for render gating. The shouldComponentUpdate pattern maps to React.memo or conditional rendering in the function body. Timer management maps to useEffect. Acceptance criteria: Convert to function component with hooks Replace shouldComponentUpdate with React.memo or conditional render Maintain delay timing behavior All existing tests pass

📅 Opened Mar 12, 2026💬 3 comments
Quality: 30/100Contribute

EuiDelayHide delays hiding its children for a specified duration after the hide prop becomes true. Used for loading indicator UX. File: components/delay_hide/delay_hide.tsx Class size: 76 lines State: hide, countdownExpired Lifecycle: getDerivedStateFromProps, componentDidMount, componentDidUpdate, componentWillUnmount Migration notes: Small but has the full lifecycle suite including getDerivedStateFromProps. Timer management maps to useEffect cleanup. The derived state pattern needs careful conversion. Acceptance criteria: Convert to function component with hooks Maintain delay timing behavior All existing tests pass

📅 Opened Mar 12, 2026💬 2 comments
Quality: 30/100Contribute

EuiFieldSearch is a search input with incremental search support, clear button, and controlled/uncontrolled modes. File: components/form/field_search/field_search.tsx Class size: 220 lines State: value Lifecycle: componentDidMount, componentWillUnmount Migration notes: Lifecycle manages the native search event listener on the input element. Maps to useEffect. Wrapped with withEuiStylesMemoizer. Acceptance criteria: Convert to function component with hooks Maintain incremental search behavior All existing tests pass

📅 Opened Mar 12, 2026💬 2 comments
Quality: 30/100Contribute
Looking for more TypeScript beginner tasks?Explore TypeScript GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for elastic/eui

When evaluating whether to contribute to elastic/eui, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of elastic/eui acknowledge new external contributions in approximately 10 hours. Out of all submitted pull requests from non-core authors in the last 180-day window, 16.7% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to elastic/eui

01

Is elastic/eui welcoming to first-time open-source contributors?

elastic/eui has a recorded first-timer success rate of 50.0%. Repositories ranked Solid typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~10 hours. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 52.0 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 52.0 places elastic/eui in the Solid tier.

04

What is the external contributor pull request merge rate for elastic/eui?

The external pull request merge rate is 16.7%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in elastic/eui?

Yes, elastic/eui currently has 19 active issue(s) tagged with beginner-friendly labels. You can inspect these directly from the repository issues tab.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for elastic/eui are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.