Hi Scott, Thanks for all this great work, and for starting the discussion! d3 is definitely an industry standard, bringing in the dependency and wrapping it in our own interface seems like a very reasonable approach to me.
Also, from a quick glance at your branch, I have to commend you on your use of unit tests and making the type system expressive -- it looks like code I would be very happy to work with. The only critique I have from this quick look is that there are strings in the typescript code that are displayed to the user (e.g. "Error loading chart data") that are not marked for translation with $localize. Oh, and thanks for providing the demo server! It's looking good! -Jane El jue, 4 sept 2025 a la(s) 1:36 p.m., Scott Angel via Evergreen-dev ( [email protected]) escribió: > Hey Developers! > > > I've been working on this dashboard idea (LP #1770289) and wanted some > feedback on the charting library itself. This is a custom library that uses > d3.js for generating the charts that we call eg-charts. I spent a lot of > time on the accessibility portion and I believe we should be WCAG 2.2 > compliant with features like hidden data tables for screen readers, full > keyboard navigation, visual patterns for color-blind users and ARIA labels > throughout. > > > I shopped around and looked at quite a few charting libraries including > the Visa charts listed in the LP bug. I seemed to fight with Visa charts > and just getting it to fill out the divs properly. I just could never get > them to feel like part of the page. Visa also uses d3.js. I did steal some > ideas from that library like the hidden table for screen readers to tab > through along with some visual patterns to break up the colors. > > > Second to accessibility, the next main thing I wanted out of a charting > library was the least amount of dependencies. The only dependency for this > library is d3.js itself (almost all charting libraries use d3 it seems). We > all know how troublesome it can be upgrading Angular to a newer version and > having some 3rd party dependency issues. > > > Technical Benefits: > > - CSS-first responsive design that works seamlessly with Bootstrap > > - Dynamic aspect ratios for optimal chart readability across all devices > > - Clean Angular architecture with Template Method pattern > > - TypeScript interfaces for type safety and better development experience > > - Minimal bundle size impact (just d3.js dependency) > > - Component-based architecture (line-chart, bar-chart, pie-chart > components) > > > It currently has line, bar and pie charts. Down the road we could add > scatter plots, area charts or really anything that d3 can do. > > > We have a demo here > https://egdashboard.mobiusconsortium.org/eg2/en-US/staff/sandbox > > username: admin > > password: demo123 > > > I really want the community to decide on this direction. > > Some specific questions for feedback: > > 1. Does this charting approach feel right for Evergreen's needs? > > 2. Are there specific chart types or features you'd find most valuable? > > 3. How important is the minimal dependency approach vs having more > features? > > 4. Any concerns about maintenance or long-term viability? > > 5. Should we move forward with this for the dashboard project? > > > Will this charting library work for Evergreen? Does it suck or is it > awesome? Should we try something else? Your input will help determine if we > continue developing eg-charts or explore alternatives. Please test the demo > and share your thoughts! > > > Feel free to reach out with questions or detailed feedback on this mailing > list thread or LP #1770289 for technical discussion. > > > Thanks everyone! I appreciate all your feedback. > > -- > Scott Angel - Full Stack Developer > [email protected] > _______________________________________________ > Evergreen-dev mailing list -- [email protected] > To unsubscribe send an email to [email protected] >
_______________________________________________ Evergreen-dev mailing list -- [email protected] To unsubscribe send an email to [email protected]
