Elastic UI Framework πŸ™Œ

Overview

Elastic UI Framework

The Elastic UI Framework is a collection of React UI components for quickly building user interfaces at Elastic. Not using React? No problem! You can still use the CSS behind each component.

You should check out our living style guide, which contains many examples of components in the EUI framework aesthetic, and how to use them in your products. We also have a FAQ that covers common usage questions.

Installation

To install the Elastic UI Framework into an existing project, use the yarn CLI (npm is not supported).

yarn add @elastic/eui

Note that EUI has several peerDependencies requirements that will also need to be installed if starting with a blank project. You can read more about other ways to consume EUI.

yarn add @elastic/eui @elastic/datemath moment prop-types

Running Locally

Node

We depend upon the version of node defined in .nvmrc.

You will probably want to install a node version manager. nvm is recommended.

To install and use the correct node version with nvm:

nvm install

Documentation

You can run the documentation locally at http://localhost:8030/ by running the following.

yarn
yarn start

If another process is already listening on port 8030, the next free port will be used. Alternatively, you can specify a port:

yarn start --port 9000

Goals

The primary goal of this library is to provide reusable UI components that can be used throughout Elastic's web products. As React components, they remove CSS from the process of building UIs. As a single source of truth, the framework allows our designers to make changes to our aesthetic directly in the code. And unit test coverage for the UI components allows us to deliver a stable "API for user interfaces".

Wiki

Consumption

Maintenance / Contributing

CONTRIBUTING.md

License

Apache Licensed. Read the FAQ for details.

Issues
  • [GSOC] Automatic Documentation System for TypeScript Components

    [GSOC] Automatic Documentation System for TypeScript Components

    Summary

    Fixes #3056

    • Replaced react-docgen with react-docgen-typescript
    • Custom babel plugin to inject doc info to components

    Checklist

    ~~- [ ] Check against all themes for compatibility in both light and dark modes~~ ~~- [ ] Checked in mobile~~ ~~- [ ] Checked in IE11 and Firefox~~ ~~- [ ] Props have proper autodocs~~ ~~- [ ] Added documentation examples~~ ~~- [ ] Added or updated jest tests~~ ~~- [ ] Checked for breaking changes and labeled appropriately~~ ~~- [ ] Checked for accessibility including keyboard-only and screenreader modes~~ ~~- [ ] A changelog entry exists and is marked appropriately~~

    Verifying Props

    • [x] Accordion
    • [x] Bottom Bar
    • [x] Flex
    • [x] Flyout
    • [x] Header
    • [x] Horizontal Rule
    • [x] Modal
    • [x] Nav Drawer
    • [x] Page
    • [x] Panel
    • [x] Popover
    • [x] Resizable container
    • [x] Spacer
    • [x] Breadcrumbs
    • [x] Button
    • [x] Collapsible nav
    • [x] Context Menu
    • [x] Control Bar
    • [x] Facet
    • [x] Key Pad Menu
    • [x] Link
    • [x] Pagination
    • [x] Tree View
    • [x] Side Nav
    • [x] Steps
    • [x] Tabs
    • [x] Data grid
    • [x] Tables
    • [x] In-memory tables
    • [x] Aspect ratio
    • [x] Avatar
    • [x] Badge
    • [x] Callout
    • [x] Card
    • [x] Code
    • [x] Comment list
    • [x] Description List
    • [x] Drag And Drop
    • [x] EmptyPrompt
    • [x] Health
    • [x] Icons
    • [x] Image
    • [x] List Group
    • [x] Loading
    • [x] Progress
    • [x] Stat
    • [x] Text
    • [x] Title
    • [x] Toast
    • [x] ToolTip
    • [x] Tour
    • [x] Form controls
    • [x] Form layouts
    • [x] Compressed forms
    • [x] Form validation
    • [x] SuperSelect
    • [x] Combo Box
    • [x] Color Selection
    • [x] Code Editor
    • [x] Date Picker
    • [x] Expression
    • [x] Filter Group
    • [x] EuiRange
    • [x] EuiDualRange
    • [x] EuiDualRange
    • [x] EuiRangeTicks
    • [x] EuiRangeLevels
    • [x] EuiRangeLevels
    • [x] Search Bar
    • [x] Selectable
    • [x] Suggest
    • [x] Super Date Picker
    • [x] Accessibility
    • [x] Beacon
    • [x] Color
    • [x] Color Palettes
    • [x] Context
    • [x] Copy
    • [x] CSS utility classes
    • [x] Delay Hide
    • [x] Delay Render
    • [x] Error Boundary
    • [x] Focus Trap
    • [x] Highlight and mark
    • [x] I18n
    • [x] Outside Click Detector
    • [x] Overlay Mask
    • [x] Portal
    • [x] ResizeObserver
    • [x] Responsive
    • [x] Toggle
    • [x] Window Events
    opened by ashikmeerankutty 102
  • [EuiResizableContainer] Allow collapsible panels

    [EuiResizableContainer] Allow collapsible panels

    Summary

    Adds the ability for EuiResizablePanel components to be collapsibleβ€”shrinking the panel itself and hiding its content either via an out-of-the-box toggle button or through coordinated actions hooks provided to the parent component.

    image

    Features:

    • New mode prop specifies an EuiResizablePanel as collapsible or main, indicating the ability to collapse or the preference to gain space from collapsed panels.
    • Incorporated EuiPanel as the base element, allowing for more panel style options
    • Rewrote registry and interaction logic to use a React reducer pattern, making evening more reliable and providing more flexibility in exposing action hooks to consumers.

    Breaking change: Removed the size prop on EuiResizableButton. This was originally added as something of a spacing mechanism, but is less effective than the newly added panelProp.paddingSize prop.

    Checklist

    • [x] Check against all themes for compatibility in both light and dark modes
    • [x] Checked in mobile
    • [x] Checked in Chrome, Safari, Edge, and Firefox
    • [x] Props have proper autodocs
    • [x] Added documentation
    • [x] Checked Code Sandbox works for the any docs examples
    • [x] Added or updated jest tests
    • [x] Checked for breaking changes and labeled appropriately
    • [x] Checked for accessibility including keyboard-only and screenreader modes
    • [x] A changelog entry exists and is marked appropriately
    breaking change 
    opened by andreadelrio 79
  • [EuiDataGrid] Auto-fit rows to content

    [EuiDataGrid] Auto-fit rows to content

    Closes: #4795

    Summary

    Adds 'auto' as value for defaultHeight from rowHeightsOptions which allow to rows auto fit to content.

    opened by VladLasitsa 75
  • [Data Grid] Allow adding custom actions to DataGridCells and cell popover

    [Data Grid] Allow adding custom actions to DataGridCells and cell popover

    Summary

    This PR allows to specify custom actions for data grid cell by column. These actions are displayed when the mouse hovers the cell and clickable, and also displayed when the cell gains keyboard focus and can be triggered by keyboard actions in the popover.

    Action triggered by mouse click

    image

    Action triggered by keyboard enter

    image

    Checklist

    • [x] Check against all themes for compatibility in both light and dark modes
    • [x] Checked in mobile
    • [x] Checked in Firefox and Safari
    • [x] Props have proper autodocs
    • [x] Added documentation ~- [ ] Checked Code Sandbox works for the any docs examples~
    • [x] Added or updated jest tests
    • [x] Checked for breaking changes and labeled appropriately
    • [x] Checked for accessibility including keyboard-only and screenreader modes~
    • [x] A changelog entry exists and is marked appropriately
    data grid 
    opened by kertal 72
  • [Beta] Add EuiTour component

    [Beta] Add EuiTour component

    Closes #505

    ⬆️ Requirements and other considerations are listed in this issue.


    Summary

    The EuiTour component will lead users through a UI in a guided fashion. This Canvas tour prototype demonstrates one possible use case, though it should not be taken too literally.

    What you'll see when you run this PR

    euitour

    Checklist

    • [x] Check against all themes for compatibility in both light and dark modes
    • [x] Checked in mobile
    • [x] Checked in IE11 and Firefox
    • [x] Props have proper autodocs
    • [x] Added documentation examples
    • [x] Added or updated jest tests
    • [x] Checked for breaking changes and labeled appropriately ~~- [ ] Checked for accessibility including keyboard-only and screenreader modes~~ (follow-up PR)
    • [x] A changelog entry exists and is marked appropriately
    feature request 
    opened by ryankeairns 60
  • Created Playground utility

    Created Playground utility

    Summary

    Creates playground as required by #3057

    Screenshot 2020-07-02 at 1 32 42 AM

    Checklist

    • [ ] Check against all themes for compatibility in both light and dark modes
    • [ ] Checked in mobile
    • [ ] Checked in IE11 and Firefox
    • [ ] Props have proper autodocs
    • [ ] Added documentation
    • [ ] Checked Code Sandbox works for the any docs examples
    • [ ] Added or updated jest tests
    • [ ] Checked for breaking changes and labeled appropriately
    • [ ] Checked for accessibility including keyboard-only and screenreader modes
    • [ ] A changelog entry exists and is marked appropriately
    opened by anishagg17 53
  • Added option to display the number of selected options in the filters

    Added option to display the number of selected options in the filters

    Summary

    Fixe issue #4304

    Checklist

    • [x] Check against all themes for compatibility in both light and dark modes
    • [x] Checked in mobile
    • [x] Checked in Chrome, Safari, Edge, and Firefox
    • [ ] ~Props have proper autodocs and [playground toggles]~(https://github.com/elastic/eui/blob/master/wiki/documentation-guidelines.md#adding-playground-toggles)~
    • [ ] ~Added documentation~
    • [ ] ~Checked Code Sandbox works for the any docs examples~
    • [ ] ~Added or updated jest tests~
    • [x] Checked for breaking changes and labeled appropriately
    • [ ] ~Checked for accessibility including keyboard-only and screenreader modes~
    • [x] A changelog entry exists and is marked appropriately
    opened by hetanthakkar1 50
  • [GSoC] Automatic Documentation System for TypeScript Components

    [GSoC] Automatic Documentation System for TypeScript Components

    A better automatic system for documenting EUI TypeScript components. Specifically, we're looking for a better method to extract the acceptable values for each prop on the API. This would be done through automatic transversal of the EUI components itself, combined with the type values from TS and our own inline comments.

    Outcome More accurate, robust prop documentation within the existing "Props" tab for each example section in component documentation. As the EUI team is nearing completion of complete TypeScript conversion, it is possible that the current type and prop traversal system can be entirely replaced.

    Related Discussion

    • #1688; sometimes manual documentation will still be needed/helpful

    Interested in working on EUI for Google Summer of Code? See more details here: https://github.com/elastic/gsoc

    GSoC 
    opened by thompsongl 50
  • [GSoC] Playground / Toggle System for Live Documentation

    [GSoC] Playground / Toggle System for Live Documentation

    A better playground / toggle system for EUI live documentation. Right now we have flat, read-only code displayed next to static examples. It would be nice if people could change the code examples in-browser on our docs site and see the changes live in the examples.

    Outcome An edit mechanism that would allow users to change, add, or otherwise modify props and content in rendered examples.

    Related Discussion

    • Discuss comment; Please note that the ideas mentioned are not requirements but concept suggestions that would need to be thoroughly vetted.

    • Discuss comment; "having the interactive playground inline in our documentation is something we'd really like to see"


    Interested in working on EUI for Google Summer of Code? See more details here: https://github.com/elastic/gsoc

    GSoC 
    opened by thompsongl 49
  • [DATA GRID] Column header menu

    [DATA GRID] Column header menu

    Summary

    Add column header menu with actions providing direct access to the following functionality:

    • Hide column
    • Sort schema asc
    • Sort schema desc
    • Move left
    • Move right

    Furthermore it allows you add custom actions Fixes https://github.com/elastic/eui/issues/2461

    image

    Checklist

    • [x] Check against all themes for compatibility in both light and dark modes
    • [x] Checked in mobile
    • [x] Checked in IE11 and Firefox
    • [x] Props have proper autodocs
    • [x] Added documentation examples
    • [x] Added or updated jest tests
    • [x] Checked for breaking changes and labeled appropriately
    • [x] Checked for accessibility including keyboard-only and screenreader modes
    • [x] A changelog entry exists and is marked appropriately
    feature request data grid 
    opened by snide 49
  • Use `export type` syntax and update `es` build

    Use `export type` syntax and update `es` build

    Rather than use the proptypes-from-ts-props plugin to remove type exports from es build output, we should move towards using the type indicator syntax and upgrade any babel tooling to take advantage.

    Before:

    export { EuiButton, EuiButtonProps } from './button';
    

    After:

    export { EuiButton } from './button';
    export type { EuiButtonProps } from './button';
    

    eslint can be configured to replace these automatically.

    platform discussion 
    opened by thompsongl 0
  • EuiTitle size prop is not being honoured when rendered inside EuiText

    EuiTitle size prop is not being honoured when rendered inside EuiText

    Summary

    As part of the docs project we're rendering all the article content inside an <EuiText> tag. Mostly this works fine, one problem I'm running into though is that the EuiTitle size prop is not being honoured. Below are a few examples where the title styles are inherited solely from the h tag and not the size prop.

    Screenshot

    Screenshot 2022-01-20 at 13 07 59 Screenshot 2022-01-20 at 13 18 33 assign:anyone good first issue 
    opened by gjones 1
  • [EuiDataGrid] Add `openCellPopover` and `closeCellPopover` to ref APIs

    [EuiDataGrid] Add `openCellPopover` and `closeCellPopover` to ref APIs

    Summary

    The main goal of this PR is to expose APIs that allow consumers to manually control cell popovers (#5310)

    However, because each cell contained its own individual popover and popover state, this required a refactor of how our cell popover architecture works:

    • Each data grid now only creates a single popover for the entire grid (instead of a popover per cell) which changes location/anchor depending on the cell that triggered it
    • A top-level cell popover context now exists and which manages open/closed popover state and the popover cell location
    • Each cell responds to changes in open/closed and location state to determine whether its popover should be open, and if so, it updates the top level context with its anchor (wrapping div element) and popover content (rendered cell values).

    I strongly recommend:

    • Following along by commit (which I tried to make as atomic as possible and include specific details and reasons in commit messages)
    • Turning off whitespace changes, in particular for https://github.com/elastic/eui/commit/100e3146ea08e42d1e29c007bc0527f76af5e1c8 which is mostly just indentation changes due to the new context wrapper

    Screencaps

    popover

    Coverage

    QA

    • Regression testing - https://eui.elastic.co/pr_5550/#/tabular-content/data-grid-schemas-and-popovers
      • [x] The previous cell expansion button still works as before with no bugs
      • [x] Pressing Enter and F2 to open a cell expansion popover still works
      • [x] Cells render as before including action buttons with no regressions
      • [x] Closing a popover with Esc and F2 still works
      • [x] Closing a popover by clicking away from it still works
    • Feature testing - https://eui.elastic.co/pr_5550/#/tabular-content/data-grid-ref-methods
      • [x] The new openCellPopover and closeCellPopover APIs work as expected
      • [x] Opening a cell popover on a virtualized row that is not rendered works as expected (e.g., set rowIndex to 24 while at the top of the grid and press the

    Checklist

    ~- [ ] Check against all themes for compatibility in both light and dark modes~ ~- [ ] Checked in mobile~

    ~- [ ] Checked Code Sandbox works for any docs examples~

    ~- [ ] Checked for breaking changes and labeled appropriately~

    • [x] Checked for accessibility including keyboard-only and screenreader modes

    ~- [ ] A changelog entry exists and is marked appropriately~ (Will add a finished changelog in final feature branch PR)

    opened by constancecchen 2
  • [Build] Exclude `test_custom_hook`; `optimize` assets

    [Build] Exclude `test_custom_hook`; `optimize` assets

    Summary

    • Use a new *.test_helper exclude pattern for test_custom_hook to prevent enzyme dependency
    • Copy assets to optimize
      • Kibana's --no-validate flag suppresses the warnings
      • Will open an issue for potential ideas to help with future new builds
    • Make optional the propType generation functionality of proptypes-from-ts-props

    ~### Checklist~

    skip-changelog 
    opened by thompsongl 5
  • [EuiTablePagination] Adding a `Show all` option; Plus Pagination Guidelines

    [EuiTablePagination] Adding a `Show all` option; Plus Pagination Guidelines

    Guidelines

    Can be found at /navigation/pagination/guidelines.

    Internal only: Google doc for reference

    EuiTablePagination

    πŸ”” Breaking Change

    This is a semi-trivial change, but I changed the name of the prop hidePerPageOptions to showPerPageOptions because I hate double-negative prop names. Boolean props should always be in the positive (with the exception of disabled since we inherit this from standard HTML). So that it's easier to read showPerPageOptions={false} vs hidePerPageOptions={true}.

    Added the ability to present a "Show all" option by passing 0 it the itemsPerPage array

    If 0 doesn't seem appropriate, I'm up for suggestions (maybe -1 is better). But the idea is to not have to add yet another boolean prop but make it available as an option in the array. Unless someone can help me allow the term all into that prop's array as a different way to do this.

    Screen Shot 2022-01-19 at 10 49 56 AM

    When this option is selected, it will hide the numbered pagination and present the button text as "Showing all".

    Screen Shot 2022-01-19 at 10 50 30 AM

    Added a docs example for this component under Pagination / Table Pagination

    With props tab and playground.

    Screen Shot 2022-01-19 at 10 52 33 AM

    Other small fix

    Fixed EuiImage images from staying restricted to it's parent container's width, by adding max-width: 100%:

    Before Screen Shot 2022-01-19 at 12 54 09 PM

    After Screen Shot 2022-01-19 at 12 55 08 PM

    Checklist

    • [x] Check against all themes for compatibility in both light and dark modes
    • [x] Checked in mobile
    • [x] Checked in Chrome, Safari, Edge, and Firefox
    • [x] Props have proper autodocs and playground toggles
    • [x] Added documentation
    • [x] Checked Code Sandbox works for any docs examples
    • [x] Added or updated jest and cypress tests
    • [x] Checked for breaking changes and labeled appropriately
    • [ ] Checked for accessibility including keyboard-only and screenreader modes
    • [ ] A changelog entry exists and is marked appropriately
    opened by cchaos 2
  • [EuiComboBox][COGNITION]: Focusable close buttons should not have a nested element with tabindex

    [EuiComboBox][COGNITION]: Focusable close buttons should not have a nested element with tabindex

    Description

    Our EuiComboBoxPill component uses the EuiIcon to create the X close button. It's wrapped in a <button> so the icon cannot have a tabindex. We should remove it from line 77 of combo_box_pill.tsx so we can remove quite a few axe-core errors from the Combo box component.

    Guidance

    • https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html

    Screenshots

    Screen Shot 2022-01-18 at 2 26 36 PM accessibility WCAG A accessibility - cognition accessibility - automated 
    opened by 1Copenut 0
  • Update remark-parse to newest version

    Update remark-parse to newest version

    We are getting a security flag for remark-parse because of its use of [email protected]

    All versions of package trim lower than 0.0.3 are vulnerable to Regular Expression Denial of Service (ReDoS) via trim().

    The newest version, 10.x, eliminates the Trim dependency entirely. Making the switch would be most good, Newland. Most good.

    platform 
    opened by aaron-ngt 2
  • [EuiCard] `layout`, `description` `ExclusiveUnion`

    [EuiCard] `layout`, `description` `ExclusiveUnion`

    EuiCard accepts a complicated prop interface where multiple props are optional, restricted, or required based on other props: layout and the description-children complex are the main sources of concern.

    TypeScript errors occur given the following configuration, which should valid:

    <EuiCard
      layout={isGrid ? 'vertical' : 'horizontal'}
      icon={<EuiAvatar name={item.name} color={item.color} size="l" />}
      title={item.name}
      description={item.description}
      onClick={() => {}}
    />
    

    Having a layout ternary with children is accepted, and having description with a simple layout value is accepted, but the combination presents errors.

    bug typescript 
    opened by thompsongl 3
  • [Meta] Monorepo and package-based publishing

    [Meta] Monorepo and package-based publishing

    EUI has had the long-term goal to increase modularity, and recent efforts related to styling (#3912; moving away from Sass) have opened the door to beginning the process in earnest.

    A rough outline of phasing:

    Validation

    • Research monorepo infrastructure (e.g., yarn workspaces, lerna, turborepo)
    • Establish future build system

    Utilities

    • Establish utilities and services that can exist in a standalone package
    • Theming needs to exist in a standalone fashion

    Core & Supplements

    • Establish which components compose the EUI core package
    • Split non-core components into relevant packages
    • @elastic/eui should still exist as an all-inclusive package
    meta discussion 
    opened by thompsongl 0
  • dragging color picker highlights text behind color picker

    dragging color picker highlights text behind color picker

    Steps to view issue:

    1. Open color picker at https://elastic.github.io/eui/#/forms/color-selection#color-picker
    2. Drag and hold mouse click across color picker to change the color. Notice how parts of the page below the color picker become highlighted.
    Screen Shot 2022-01-13 at 2 18 05 PM bug 
    opened by nreese 1
Releases(v46.0.0)
  • v46.0.0(Jan 19, 2022)

    • [Beta] Added optimize build as a lighter weight option more suited to production environments (#5527)
    • Added lettering glyph to EuiIcon (#5525)
    • Updated the outline color in euiCustomControlFocused mixin to use $euiFocusRingColor instead of currentColor (#5479)
    • Added betaBadgeTooltipProps to EuiKeyPadMenuItem to extend the wrapping EuiToolTip (#5541)
    • Added globalStyles prop to EuiProvider to allow for global style customization (#5497)
    • Exported EuiGlobalStyles component (#5497)

    Bug fixes

    • Updated the outline color in euiCustomControlFocused mixin to use $euiFocusRingColor instead of currentColor (#5479)
    • Fixed keyboard navigation in EuiDataGrid not fully scrolling cells into view (#5515)
    • Fixed EuiKeyPadMenuItem accessibility issue where there was a nested focusable element (#5541)

    Deprecations

    • Deprecated data-gridcell-id from EuiDataGrid in favor of 4 new and more flexible props - data-gridcell-column-id, data-gridcell-column-index, data-gridcell-row-index, and data-gridcell-visible-row-index (#5515)

    Breaking changes

    • EuiKeyPadMenuItem now wraps itself with EuiToolTip when betaBadgeLabel is supplied forcing top element style props to be passed via betaBadgeTooltipProps (#5541)
    Source code(tar.gz)
    Source code(zip)
  • v45.0.0(Jan 13, 2022)

    • Added virtulized rendering option to EuiSelectableList with isVirtualized (#5521)
    • Added expanded option properties to EuiSelectableOption with data (#5521)

    Bug fixes

    • Fixed multiple bugs with EuiDataGrid keyboard focus restoration (#5530)
    • Fixed EuiDataGrid's display toolbar control to update initial UI state when developer gridStyle or rowHeightsOptions props are updated (#5525)

    Breaking changes

    • Changed EuiSearchBar to preserve phrases with leading and trailing spaces, instead of dropping surrounding whitespace (#5514)
    • Removed data-test-subj="dataGridWrapper" from EuiDataGrid in favor of data-test-subj="euiDataGridBody" (#5506)
    Source code(tar.gz)
    Source code(zip)
  • v44.0.0(Jan 5, 2022)

    Bug fixes

    • Fixed a EuiDataGrid sizing bug which didn't account for a horizontal scrollbar (#5478)
    • Fixed a EuiDatePicker a11y bug where axe-core reported missing ARIA and role attributes (#5501)
    • Fixed EuiModalHeaderTitle to conditionally wrap title strings in an H1 (#5494)
    • Fixed a EuiDataGrid issue where a focused cell would lose focus when scrolled out of and back into view (#5488)
    • Fixed an EuiDatePicker accessibility issue where tabindex was not applied to a listbox element (#5509)

    Deprecations

    • Deprecated PartitionConfig in favor of inclusion in Charts theme.partition (#5492)

    Breaking changes

    • Removed popoverClassName and repositionOnScroll props from EuiSuperSelect (use popoverProps instead) (#5512)
    Source code(tar.gz)
    Source code(zip)
  • v43.1.1(Dec 15, 2021)

    Bug fixes

    • Fixed EuiDataGrid's cell popover overlapping with modals and flyouts (#5461)
    • Fixed an accessibility issue where EuiDatePicker time options did not have unique IDs (#5466)
    • Fixed global and reset styles when using the legacy theme (#5473)
    • Fixed EuiSuperDatePicker not passing isDisabled to EuiAutoRefresh (#5472)
    Source code(tar.gz)
    Source code(zip)
  • v43.1.0(Dec 13, 2021)

  • v43.0.0(Dec 7, 2021)

    • Updated the organization of EuiDataGrid's toolbar/grid controls (#5334)
    • Updated EuiDataGrid's full screen mode to use the fullScreenExit icon (#5415)
    • Added left.append and left.prepend to EuiDataGrid's toolbarVisibility.additionalControls prop #5394)
    • Added a row height control to EuiDataGrid's toolbar (#5372)
    • Added onChange callbacks to EuiDataGrid's gridStyle and rowHeightOptions settings (#5424)
    • Added a reset button to EuiDataGrid's display controls (#5428)
    • Added timeRefresh icon (#5383)
    • Added responsive and iconOnly props to EuiSuperUpdateButton (#5383)
    • Added better auto refresh indicator to EuiSuperDatePicker (#5383)
    • Added compressed, width, isQuickSelectOnly props to EuiSuperDatePicker (#5383)
    • Updated showUpdateButton prop with iconOnly option in EuiSuperDatePicker (#5383)
    • Increased default refreshInterval of EuiSuperDatePicker to 1000 (#5383)
    • Remove Show dates button from pretty format of EuiSuperDatePicker in favor of directly opening start date popover (#5383)
    • Added shortHand option to prettyInterval (#5383)
    • Moved rounding switch to popover footer in relative tab of EuiSuperDatePicker (#5383)
    • Simplified EuiRefreshInterval to use a switch to start/stop and other visual touch ups (#5383)
    • Created stand alone EuiAutoRefresh and EuiAutoRefreshButton components (#5383)

    Bug fixes

    • Fixed persistent EuiDataGrid full screen <body> class (#5354)
    • Fixed dark mode background color of EuiFormControlLayout prepend and append (#5383)
    • Fixed background color of EuiFormControlLayout when readOnly (#5383)
    • Fixed the name of data-test-subj prop of EuiFormControlLayout (#5383)
    • Fixed global reset styles for plain <button>s (#5452)

    Breaking changes

    • Removed toolbarVisibility's showStyleSelector prop of EuiDataGrid in favor of showDisplaySelector, which allows configuration of both grid density and row height (#5372)
    • Changed prop name applyRefreshInterval to onRefreshChange in EuiRefreshInterval (#5383)
    • Increased the size of s-sized EuiLoadingSpinners to match s-sized EuiIcons (#5440)
    Source code(tar.gz)
    Source code(zip)
  • v42.1.0(Dec 6, 2021)

    • Added first and last page arrow buttons to EuiPagination when compressed=true (#5362)
    • Added support for indeterminate EuiPagination when pageCount=0 (#5362)
    • Moved mobile behavior to a customizable responsive prop to EuiPagination that renders the compressed display (#5362)
    • Added doubleArrowLeft, doubleArrowRight, arrowStart, arrowEnd icons (#5362)

    Bug fixes

    • Fixed scrollbars in EuiRange tick labels in Safari (#5427)
    • Fixed an EuiOverlayMask bug where it calls window.document on server side(#5422)
    • Fixed unremoved event listener memory leak in EuiPopover (#5437)
    • Fixed EuiDatePicker not correctly handling the onBlur callback (#5441)
    • Fixed EuiToolTip not correctly handling child onBlur and onFocus callbacks (#5441)
    Source code(tar.gz)
    Source code(zip)
  • v42.0.0(Dec 6, 2021)

    Feature: CSS-in-JS (#5121)

    • Added reset and global styles via CSS-in-JS with @emotion/react/Global
    • Added EuiProvider, a React context provider for theming and global styles
    • Added isDefaultTheme and isLegacyTheme utilities

    Breaking changes

    • Added @emotion/react to peerDependencies
    • Amsterdam is now the default theme, deprecated and renamed old theme as "legacy"
    • Re-organized Sass files including where the globals are imported from
    Source code(tar.gz)
    Source code(zip)
  • v41.4.0(Nov 30, 2021)

  • v41.3.0(Nov 24, 2021)

    • Updated color of EuiHorizontalRule when rendered inside EuiToolTip (#5378)

    Bug fixes

    • Fixed an EuiDataGrid bug where paginated overflowing data grids could become unscrollable when rowCount changed (#5400)
    • Fixed EuiCode line-wrapping (#5379)
    • Fixed EuiCodeBlock not passing data-test-subj or aria-label to virtualized & full-screen code blocks (#5379)
    • Fixed EuiCodeBlock not closing full-screen mode when the Escape key is pressed (#5379)
    • Fixed virtualized EuiCodeBlocks blanking out when entering & exiting full-screen mode (#5379)
    • Fixed EuiCodeBlock's full-screen mode to use a large font and padding size & added several missing wrapper classes (#5379)
    • Fixed EuiCodeBlock broken line wrapping when using virtualization (#5379)
    • Fixed type exports to not include test mocks & specs (#5412)

    Theme: Amsterdam

    • Fixed EuiCodeBlock not properly increasing large font sizes on Amsterdam (#5379)
    Source code(tar.gz)
    Source code(zip)
  • v41.2.0(Nov 18, 2021)

    • Added aria-label and aria-labelledby props to EuiComboBox (#5360)
    • Updated EuiDatePicker to use EuiPopover, EuiFocusTrap, and EuiScreenReaderOnly (#5339)

    Bug fixes

    • Fixed an EuiDataGrid row height bug for grids that set a default lineCount and also used rowHeights to set row-specific lineCounts (#5376)
    • Fixed EuiComboBox from allowing keyboard actions when isDisabled (#5373)
    • Fixed an accessibility issue where EuiSuperSelect was not creating accessible labels for its listbox (#5364)
    • Fixed an accessibility issue where EuiColorPalettePicker was not creating an accessible label for its button (#5364)
    • Fixed EuiDatePicker being constrained to its parent container by using React portal (#5339)
    Source code(tar.gz)
    Source code(zip)
  • v41.1.0(Nov 11, 2021)

    • Added layout and footer props to EuiEmptyPrompt (#5275)
    • Updated EuiEmptyPrompt to extend EuiPanelProps (#5275)
    • Add data-icon-type to EuiIcon <svg> for easier debugging of iconType #5366)

    Bug fixes

    • Fixed an EuiDataGrid race condition where grid rows had incorrect heights if loaded in before CSS (#5284)
    • Fixed an accessibility issue where EuiDataGrid cells weren't owned by role=row elements (#5285)
    • Fixed EuiErrorBoundary overflow scrolling by wrapping contents in EuiCodeBlock (#5359)
    • Fixed analyzeEvent icon to be horizontally centered #5365)
    Source code(tar.gz)
    Source code(zip)
  • v41.0.0(Nov 2, 2021)

    • Added EuiAutoSizer component for setting dimensions on virtualized lists (#5278)
    • Added testenv mock for EuiAutoSizer (#5278)
    • Changed render of useEuiTextDiff to a span instead of div (#5323)
    • Changed change prop type of children for EuiMark from string to ReactNode (#5323)
    • Added render prop to EuiI18n (#5236)

    Bug fixes

    • Fixed styling of align: center for mobile version of EuiTableRowCell (#5323)
    • Fixed endDateControl className in EuiDatePickerRange (#5329)
    • Fixed EuiMarkdownEditor intercepting all drop events on the page (#5340)

    Breaking changes

    • Removed EuiCodeEditor (#5323)
    • Removed betaBadgeLabel, betaBadgeTooltipContent, betaBadgeTitle props from EuiCard (#5323)
    • Removed EuiLoadingKibana (#5323)
    • Removed secondary color prop options (#5323)
    • Removed subdued color prop option from EuiButtonIcon (#5323)
    • Removed panelPaddingSize from EuiPageContent (#5323)
    • Removed makeId (#5323)
    • Removed mobile-only props from EuiTableRowCell (#5323)
    • Removed Sass vars $euiColorSecondary and $euiColorSecondaryText (#5345)
    Source code(tar.gz)
    Source code(zip)
  • v40.1.0(Oct 28, 2021)

    • Added styling support for valign prop on EuiTableRowCell (#5283)
    • Added remark-breaks plugin to mimic GitHub-flavored markdown line breaks within EuiMarkdownEditor (#5272)
    • Removed EuiErrorBoundary from EuiDatePicker when unsupported props are used (#5318)

    Bug fixes

    • Fixed default text alignment in EuiTableRowCell on Safari (#5283)
    • Fixed mobileOptions.truncateText from getting overridden by truncateText in EuiTableRowCell (#5283)
    • Fixed issue with dynamic row counts in EuiDataGrid (#5313)
    • Fixed EuiDataGrid to dynamically update row heights when set to auto (#5281)

    Theme: Amsterdam

    • Fixed mobileOptions.enlarge styling in EuiTableRowCell (#5283)
    • Fixed EuiDataGrid's expanded density not increasing font size on Amsterdam (#5320)
    Source code(tar.gz)
    Source code(zip)
  • v40.0.0(Oct 28, 2021)

    • Updated tokenKeyword to match the definition of keyword field type (#5251)
    • Added element, buttonElement, and arrowProps props to further customize EuiAccordion (#5258)

    Bug fixes

    • Fixed missing id for EuiCombobox by generating one if prepend or append exists (#5229)

    Breaking changes

    • Renamed tokenKeyword icon to tokenTag in EuiToken (#5251)
    Source code(tar.gz)
    Source code(zip)
  • v39.1.1(Oct 13, 2021)

  • v39.1.0(Oct 12, 2021)

    • Added support for ghost and text EuiIcon colors on Elastic logos (#5245)
    • Added a default data-test-subj to EuiErrorBoundary (#5232)

    Bug fixes

    • Fixed content in EuiPopover from being inaccessible during the opening animation (#5249)
    • Fixed multiple accessibility issues in EuiBasicTable and EuiInMemoryTable (#5241)
    Source code(tar.gz)
    Source code(zip)
  • v39.0.0(Oct 5, 2021)

    • Added maxWidth prop to EuiTour, made subtitle optional, and fixed heading levels and footer background (#5225)
    • Updated tint, shade, saturate, desaturate, and makeHighContrastColor utility functions to maintain color format supplied (#5230)
    • Converted generated icon files to Typescript, eliminating the last .js files in our source files (#5212)

    Bug fixes

    • Fixed tick and level alignment in Eui[Dual]Range (#5181)
    • Fixed duplicate IDs on mobile/desktop select all checkboxes in EuiBasicTable (#5237)
    • Fixed missing i18n token in EuiBasicTable's no items message (#5242)

    Breaking changes

    • Removed boolean from EuiTour's minWidth type (#5225)
    Source code(tar.gz)
    Source code(zip)
  • v38.2.0(Sep 28, 2021)

    • Updated EuiRangeLevel color property to accept CSS color values (#5171)
    • Added optional visual line highlighting to EuiCodeBlock (#5207)
    • Added popoverProps to EuiSuperSelect and deprecated popoverClassName & repositionOnScroll (#5214)

    Bug fixes

    • Fixed logo icons with static SVG IDs causing accessibility errors when multiples of the same logo were present (#5204)
    • Fixed several EuiDataGrid console errors that occur on column drag/drop reorder (#5209)

    Reverts

    • Reverted EuiScreenReaderOnly left positioning change due to Selenium issues (#5215)
    Source code(tar.gz)
    Source code(zip)
  • v38.1.0(Sep 23, 2021)

    • Fixed the title prop EuiButtonGroup to automatically display the label provided (#5199)
    • Updated barSeriesStyle.displayValue of the elastic-charts Theme for better default styles (#4845)
    • Added a configuration parameter to the EuiMarkdownEditor plugin functions to exclude custom plugins (#5147)
    • Added auto as value for defaultHeight in prop rowHeightsOptions in EuiDataGrid that allows to content auto-fit to row (#4958)
    • Updated titleProps and descriptionProps on EuiDescriptionList to extend CommonProps (#5166)
    • Added the ability to return visibleOptions from EuiSelectable by using onSearch (#5178)

    Bug fixes

    • Fixed EuiDataGrid focus ring to be contained in the cell (#5194)
    • Fixed EuiDataGrid cells when focused getting a higher z-index which was causing long content to overlap surrounding cells (#5194)
    • Replaced the EuiMarkdownEditor help syntax modal with a popover when no custom plugins are available (#5147)
    • Fixed multiple components unnecessarily rerendering generated IDs on every update (#5195, #5196, #5197, #5200, #5201)

    Theme: Amsterdam

    • Fixed border-radius and increased font-weight for EuiButtonGroup (#4993)
    • Increased contrast of text color for text colored EuiButton and EuiButtonIcon (#5177)
    Source code(tar.gz)
    Source code(zip)
  • v38.0.0(Sep 15, 2021)

    • Added optional line numbers to EuiCodeBlock (#4993)
    • Removed emoticon support and removed rendered <div> from EuiMarkdownFormat (#5176)

    Bug fixes

    • Fixed EuiDataGrid stripes not alternating as expected on sort/pagination (#5070)

    Breaking changes

    • Upgraded TypeScript version to ~4.1.3 (#5182)
    • Added clip property to EuiScreenReaderOnly, to fix positioning issues within scrolling containers (#5152)
    Source code(tar.gz)
    Source code(zip)
  • v37.7.0(Sep 10, 2021)

    • Added placeholder prop to EuiMarkdownEditor (#5151)
    • Added .eui-textNumber utility class to apply tnum font-feature setting (#5078)
    • Changed EuiPageHeader's tab implementation to use size xl when only content (#5135)
    • Added pageTitleProps prop to EuiPageHeader to pass through props to the EuiTitle (#5135)
    • Added screen-reader only <h1> to EuiPageHeader when tabs exist without a pageTitle (#5135)
    • Added bottomBorder prop and xl size to EuiTabs (#5135)
    • Added prepend and append props to EuiTab (#5135)
    • Refactored styles of EuiTabs (#5135)
    • Removed Sass variables for EuiTabs font size ($euiTabFontSize, $euiTabFontSizeS, $euiTabFontSizeL) (#5135)
    • Extended all EuiTabProps for each EuiTabbedContentTab (#5135)
    • Added useGeneratedHtmlId utility, which memoizes the randomly generated ID on mount and prevents regenerated IDs on component rerender (#5133)
    • Fixed z-index styles that were causing parts of EuiResizableContainer to overlap EuiHeader (#5164)

    Bug fixes

    • Fixed [de]optimization bug in EuiDataGrid when cells are removed from the DOM via virtualization (#5163)

    Theme: Amsterdam

    • Deprecated display prop of EuiTabs in favor of unified styles and bottomBorder (#5135)
    Source code(tar.gz)
    Source code(zip)
  • v37.6.2(Sep 7, 2021)

  • v37.6.0(Sep 1, 2021)

    • Updated EuiSuperDatePicker to pass a data-test-subj prop (#5085)
    • Added euiTextBreakWord() mixin to the euiTitle() mixin to ensure all titles break long words (#5107)
    • Added euiTextBreakWord() to EuiFormLabels (#5107)

    Bug fixes

    • Fixed EuiSuperSelect's focus keyboard behavior when no initial value is passed, and focus label behavior (#5097)
    • Fixed EuiSelectable sometimes requiring two clicks to change selection (#5117)
    Source code(tar.gz)
    Source code(zip)
  • v37.5.0(Aug 26, 2021)

    Feature: Emotion (#4511)

    • Added EuiThemeProvider, a React context provider for theme values and color mode selection
    • Added useEuiTheme React hook, and withEuiTheme React HOC for consuming the EuiTheme
    • Added global EuiTheme tokens for colors, size, font, border, animation, and breakpoint
    • Added color services for makeHighContrastColor, makeDisabledContrastColor, shade, tint, transparentize, saturate, desaturate, lightness
    Source code(tar.gz)
    Source code(zip)
  • v37.4.0(Aug 26, 2021)

    • Updated EuiToolTip to remain showing tooltip while child element is in focus (#5066)
    • Removed children from TypeScript definition in EuiIconTip (#5066)
    • Removed children as a possible prop on EuiTreeView (#5053)
    • Updated elastic-charts theme with better text colors, font stack and goal styles (#5077)

    Bug fixes

    • Fixed location of default value of EuiToolTip's display prop (#5066)
    • Fixed instance of EuiScreenReader text being exposed in EuiDataGrid sorting menu (#5084)
    • Fixed default value of EuiPagination's activePage to target first page (#5053)
    • Fixed screen reader text from displaying in some EuiDataGrid cell popovers (#5087)
    • Fixed EuiDatePicker year dropdown when configured with minDate and/or maxDate (#5069)
    • Fixed EuiDatePicker's clear icon overlaying date text (#5095)

    Theme: Amsterdam

    • Reduced EuiNotificationBadge border-radius to small (#5053)
    • Fixed hover and focus states of EuiFacet to match established pattern (#5053)
    Source code(tar.gz)
    Source code(zip)
  • v37.3.1(Aug 24, 2021)

    Bug fixes

    • Fixed bug in EuiDataGrid where a custom className was also being passed to the full screen button (#5050)
    • Fixed rerender state issues in PaginationButton inside EuiPagination (#5048)
    • Fixed bug in euiHeaderAffordForFixed mixin that was not accounting for situations where EuiDataGrid was in full screen mode (#5054)
    • Fixed z-index styles that were causing EuiModal and EuiFlyout components to appear behind EuiDataGrid when in full screen mode (#5054)
    • Fixed untranslated i18n strings for EuiFilterButton - adds 2 new tokens and removes old euiFilterButton.filterBadge token (#4750)
    • Fixed missing i18n token EuiFilePicker's default prompt, and improved i18n string for euiFilePicker.filesSelected (#5063)
    • Fixed EuiDataGrid sort button text pluralization (#5043)
    • Fixed styles of EuiButtonIcon when passing disabled prop (#5060)
    • Fixed EuiDataGrid not clearing cell styles when column position changes (#5068)

    Theme: Amsterdam

    • Updated styles for EuiDatePicker (#5000)
    • Fixed styles for EuiSuperDatePicker (#5060)
    Source code(tar.gz)
    Source code(zip)
  • v37.3.0(Aug 18, 2021)

    • Updated copyClipboard glyph in EuiIcon to be centered (#5023)
    • Updated EuiFilePicker removeFiles method to enable programmatic selection clearing (#5017)
    • Updated EuiFlyout testenv mock to pass-through onKeyDown prop (#5029)
    • Enabled EuiCodeBlock copy button in EuiMarkdownFormat (#5032)
    • Changed copy icon to copyClipboard in EuiCodeBlock (#5018)

    Bug fixes

    • Fixed content in EuiFilterButton when numFilters is not passed (#5012)
    • Fixed default value of outsideClickCloses prop of EuiFlyout (#5027)
    • Fixed EuiSelectable's double click bug (#5021)
    • Fixed overflowing controls when EuiCodeBlock is short in height (#5018)
    • Fixed EuiButtonGroup firing onChange twice (#5033)
    Source code(tar.gz)
    Source code(zip)
  • v37.2.0(Aug 12, 2021)

    • Added isDisabled prop to EuiFormLabel and passed it down from EuiFormRow (#5009)

    Bug fixes

    • Fixed usage of outsideClickCloses prop of EuiFlyout (#4986)
    • Fixed EuiFormRow ignoring isDisabled prop on the child element. (#5022)
    Source code(tar.gz)
    Source code(zip)
  • v37.1.0(Aug 10, 2021)

a react-based framework that provides accessibility, modularity, responsiveness, and theming in a tidy package

Grommet: focus on the essential experience Documentation Visit the Grommet website for more information. Support / Contributing Before opening an issu

grommet 7.7k Jan 14, 2022
React components for Bulma framework

React-bulma-components React components for Bulma (v0.8.2) UI compatible with most used React Frameworks (Gatsby, CRA, Next.js) V4 Pool Please Check h

John 1.1k Jan 12, 2022
React.js components for Modern CSS framework based on Flexbox

React-Bulma React.js components for Modern CSS framework based on Flexbox Styleguide: https://kulakowka.github.io/react-bulma/ Official Repo: https://

Anton Kulakov 462 Jan 7, 2022
πŸ‘Ÿ rbx – The Comprehensive Bulma UI Framework for React

rbx – The Comprehensive Bulma UI Framework for React ?? Read the docs. ?? I'll wait, go check them out! Features up-to-date Bulma implementation (0.7.

Devin Fee 474 Jan 7, 2022
React utility component primitives & UI framework for use with Tailwind CSS

Tailwind React UI NB: As the 0.#.# version number suggests this is still very much work in progress, so semantic versioning will not be followed until

Ed Mortlock 244 Jan 12, 2022
A frontend Framework for building B2B applications running in the browser on top of REST/GraphQL APIs, using ES6, React and Material Design

react-admin A frontend Framework for building data-driven applications running in the browser on top of REST/GraphQL APIs, using ES6, React and Materi

marmelab 18.7k Jan 14, 2022
Elastic UI Framework πŸ™Œ

Elastic UI Framework The Elastic UI Framework is a collection of React UI components for quickly building user interfaces at Elastic. Not using React?

elastic 3.3k Jan 21, 2022
Your window into the Elastic Stack

Kibana Kibana is your window into the Elastic Stack. Specifically, it's a browser-based analytics and search dashboard for Elasticsearch. Getting Star

elastic 17k Jan 13, 2022
Progressive View Model Management Framework

region-core region-core is a progressive View Model Management Framework. You can use it while using react state, redux, and benefit from it. English

regionjs 94 Jan 4, 2022
The React Framework

Next.js Getting Started Visit https://nextjs.org/learn to get started with Next.js. Documentation Visit https://nextjs.org/docs to view the full docum

Vercel 79.7k Jan 17, 2022
A frontend Framework for building B2B applications running in the browser on top of REST/GraphQL APIs, using ES6, React and Material Design

react-admin A frontend Framework for building data-driven applications running in the browser on top of REST/GraphQL APIs, using ES6, React and Materi

marmelab 18.7k Jan 13, 2022
Framework-agnostic CSS-in-JS with support for server-side rendering, browser prefixing, and minimum CSS generation

Aphrodite Framework-agnostic CSS-in-JS with support for server-side rendering, browser prefixing, and minimum CSS generation. Support for colocating y

Khan Academy 5.3k Jan 13, 2022
BackboneJS compatibility layer for React-MVx MVVM framework.

Important notice NestedReact is the BackboneJS compatibility layer for React-MVx - modern React MVVM application framework. It will be maintained as l

VoliJS 79 Apr 18, 2020
Render React components in the Play Framework with JDK8's JavaScript engine

React.js on the Play Framework JDK8 shipped with a JavaScript runtime: Nashorn React supports server side rendering via React.renderToString. The Play

Ross Allen 216 Nov 26, 2021
A data visualization framework combining React & D3

Semiotic is a data visualization framework combining React & D3 Interactive Documentation API Docs on the wiki Examples Installation npm i semiotic E

nteract 2.2k Jan 20, 2022
Highly Composable MVVM Framework for React

Astarisx Highly Composable MVVM Framework for React. Click here for the Astarisx Website and Documentation Highly Composable UI Components Astarisx Vi

Zuudo 86 Aug 13, 2019
🌲 Evergreen React UI Framework by Segment

Works out of the box. Evergreen contains a set of polished React components that work out of the box. Flexible & composable. Evergreen components are

Segment 11.4k Jan 18, 2022
a react-based framework that provides accessibility, modularity, responsiveness, and theming in a tidy package

Grommet: focus on the essential experience Documentation Visit the Grommet website for more information. Support / Contributing Before opening an issu

grommet 7.7k Jan 14, 2022
React components for Bulma framework

React-bulma-components React components for Bulma (v0.8.2) UI compatible with most used React Frameworks (Gatsby, CRA, Next.js) V4 Pool Please Check h

John 1.1k Jan 12, 2022
React.js components for Modern CSS framework based on Flexbox

React-Bulma React.js components for Modern CSS framework based on Flexbox Styleguide: https://kulakowka.github.io/react-bulma/ Official Repo: https://

Anton Kulakov 462 Jan 7, 2022
πŸ‘Ÿ rbx – The Comprehensive Bulma UI Framework for React

rbx – The Comprehensive Bulma UI Framework for React ?? Read the docs. ?? I'll wait, go check them out! Features up-to-date Bulma implementation (0.7.

Devin Fee 474 Jan 7, 2022
React utility component primitives & UI framework for use with Tailwind CSS

Tailwind React UI NB: As the 0.#.# version number suggests this is still very much work in progress, so semantic versioning will not be followed until

Ed Mortlock 244 Jan 12, 2022
A React framework for building text editors.

Draft.js Draft.js is a JavaScript rich text editor framework, built for React and backed by an immutable model. Extensible and Customizable: We provid

Facebook 21.3k Jan 14, 2022
🌲 Evergreen React UI Framework by Segment

Works out of the box. Evergreen contains a set of polished React components that work out of the box. Flexible & composable. Evergreen components are

Segment 11.4k Jan 14, 2022
a react-based framework that provides accessibility, modularity, responsiveness, and theming in a tidy package

Grommet: focus on the essential experience Documentation Visit the Grommet website for more information. Support / Contributing Before opening an issu

grommet 7.7k Jan 18, 2022
Essence - The Essential Material Design Framework

#[Essence] - The Essential Material Design Framework About Essence Essence is a CSS framework that implements the guidelines from Google Material Desi

Evo Forge 416 Oct 13, 2021
Mobile app development framework and SDK using HTML5 and JavaScript. Create beautiful and performant cross-platform mobile apps. Based on Web Components, and provides bindings for Angular 1, 2, React and Vue.js.

Onsen UI - Cross-Platform Hybrid App and PWA Framework Onsen UI is an open source framework that makes it easy to create native-feeling Progressive We

null 8.5k Jan 13, 2022
A frontend Framework for building B2B applications running in the browser on top of REST/GraphQL APIs, using ES6, React and Material Design

react-admin A frontend Framework for building data-driven applications running in the browser on top of REST/GraphQL APIs, using ES6, React and Materi

marmelab 18.7k Jan 14, 2022
Declarative data-fetching and caching framework for REST APIs with React

resourcerer resourcerer is a library for declaratively fetching and caching your application's data. Its powerful useResources React hook or withResou

Noah Grant 70 Jan 7, 2022