A React Component library implementing the Base design language

Overview

Base Web React Components

Build status

Base is a design system comprised of modern, responsive, living components. Base Web is the React implementation of Base.

Usage

On npm, you can find Base Web as baseui.

Add baseui and its peer dependencies to your project:

# using yarn
yarn add baseui styletron-react styletron-engine-atomic

# using npm
npm install baseui styletron-react styletron-engine-atomic
import {Client as Styletron} from 'styletron-engine-atomic';
import {Provider as StyletronProvider} from 'styletron-react';
import {LightTheme, BaseProvider, styled} from 'baseui';
import {StatefulInput} from 'baseui/input';

const engine = new Styletron();

const Centered = styled('div', {
  display: 'flex',
  justifyContent: 'center',
  alignItems: 'center',
  height: '100%',
});

export default function Hello () {
  return (
    <StyletronProvider value={engine}>
      <BaseProvider theme={LightTheme}>
        <Centered>
          <StatefulInput />
        </Centered>
      </BaseProvider>
    </StyletronProvider>
  );
}

Both Base Web and Styletron come with flow types and TypeScript. All our components are typed and examples have Vanilla, Flow and TypeScript versions. For Styletron + TS, you need to add some additional packages:

yarn add @types/styletron-standard @types/styletron-react @types/styletron-engine-atomic

Docs

To read the documentation, please visit baseweb.design.

Contributing

Contributing

Shoutouts 🙏

BrowserStack Logo

Big thanks to BrowserStack for letting the maintainers use their service to debug browser issues.

Issues
  • [Proposal] Change handler consistency

    [Proposal] Change handler consistency

    Here's a quick snapshot of our change handlers:

    Checkbox: onChange(evt) { console.log(evt.target.checked); } Input: onChange(evt) { console.log(evt.target.value); } Menu: onItemSelect(selectedItem: object) Modal: onClose(closeSource: string) Pagination: onPageChange?: (nextPage: number, prevPage: number) Popover: onOpen(), onClose() RadioGroup: onChange(evt) { console.log(evt.target.value); } Select: onChange(evt, params) { console.log(params.selectedOptions) } Slider: onChange(evt, value) { console.log(value) } TextArea: onChange(evt) { console.log(evt.target.value); }

    As you can see, there's a pretty significant amount of variation between components. It would probably be good for us to make these more consistent, or at least develop some guidelines around what to use when.

    I'd like to make a case for gravitating towards the following API long term:

    onChange(value, event, meta)
    
    • If this is a form control with a value, just pass that directly as the first argument. This prevents people from needing to remember how to dig into the event object like evt.target.checked or evt.target.value, etc. It also works better for components like multiple Select or Slider where the event doesn't actually have the form control value.
    • Event is second. I'd argue if you have the value first, event is rarely needed. It can also be confusing for something like multiple Select, where things like removing a tag technically trigger a change event. Or for pagination where clicking back/next or selecting a page from the dropdown can both trigger page changes.
    • Meta is third. This is an object that can include things like previous value (if useful), or any other metadata that may be useful to the user.

    The only benefit I can think for keeping event as the first argument is that it matches what people expect when using a native html element, but in many cases our components are not native html elements and the event can come from multiple different types of dom interactions. I'd rather be consistent within our own components than consistent with native elements.

    Curious to hear what folks think about this – do you agree there's a need to standardize? Are there downsides with the api proposed in this issue?

    enhancement question 
    opened by schnerd 31
  • feat(card): add img props

    feat(card): add img props

    Fixes #2549

    Description

    Add the ability to pass headerImage as an object instead of a string.

    Scope

    • [ ] Patch: Bug Fix
    • [x] Minor: New Feature
    • [ ] Major: Breaking Change
    feature 
    opened by nbdn 26
  • Feat: added support for alternate css units for grid layout

    Feat: added support for alternate css units for grid layout

    Fixes #2626

    Description

    This PR has changes which allows to use alternate css units for gird layout. This is still in WIP status. Creating this PR so we can discuss more about it.

    Scope

    • [ ] Patch: Bug Fix
    • [x] Minor: New Feature
    • [ ] Major: Breaking Change

    CC: @gergelyke, @sandgraham

    feature 
    opened by karanisverma 23
  • chore(progressbar): rename and move spinner-determinate to progressbar-rounded #3963

    chore(progressbar): rename and move spinner-determinate to progressbar-rounded #3963

    Fixes #3963

    Description

    I am proposing to rename SpinnerDeterminate into ProgressBarRounded. Please consider the code changes.

    This PR includes the following actions:

    1. renamed component
    2. moved related files to the progressbar folder
    3. moved doc example to the Progress Bar page
    4. kept re-exports in Spinner for backward compatibility

    Unfortunately, there is no way to hide StyledSpinnerDeterminate.. exports from the Spinner page. However, I propose to plan the full removal of SpinnerDeterminate exports, as a planned deprecation.

    Scope

    Minor: New Feature

    opened by Deliaz 23
  • fix(select): multi and single select has the same height

    fix(select): multi and single select has the same height

    Fixes https://github.com/uber/baseweb/issues/2048

    bugfix 
    opened by gergelyke 22
  • feat(link): add underline animation option

    feat(link): add underline animation option

    Description

    Add underline animation option for the link component @chrisrauh

    Scope

    Minor: New Feature

    feature 
    opened by andersonoliveira 22
  • feat: improve deep merge function

    feat: improve deep merge function

    improve deep merge function to avoid stack overflow and possible circular dependency

    enhancement feature 
    opened by blackswanny 21
  • fix(datepicker): reset highlight on value change

    fix(datepicker): reset highlight on value change

    https://github.com/uber/baseweb/issues/3067

    Description

    • added resetHighlightOnValueChange props for calender in datepicker/types.js
    • added logic to reset highlight in componentDidUpdate in calendar.js
    • wrote unit test for resetHighlihgtOnValue in calendar.test.js
    • added description of the feature in documentation

    Scope

    • [x] Patch: Bug Fix
    • [ ] Minor: New Feature
    • [ ] Major: Breaking Change
    feature 
    opened by ghost 20
  • fix(toast): deduplicate toasts with same key

    fix(toast): deduplicate toasts with same key

    Fixes #2333

    Description

    • fixed typing on some of the functions. There was a type ToastPropsShapeT (ToastPropsT minus children) being used for state.toasts and for the return value of getToastProps(), but actually the children prop is in both. children is separate in the toaster.show() function but then it is recombined in the toasterInstance.show() function.
    • added helper function updateToastsMutationWithCount which performs the original toast update mutation but also returns the number of toasts updated
    • added updateToastsMutationWithCount to toasterInstance.show() function - it will attempt to update toasts with matching key prop first, and then only push the new toast if nothing was updated
    • clear existing autohide timeout in Toast.startTimeout if it already exists (i.e. reset the autohide timer)
    • call Toast.startTimeout in componentDidUpdate ONLY if autoHideDuration property is changed - we can avoid a deep comparison to figure out if a toast has changed or not. Might want to make this more explicit somehow - suggestions welcome
    • used Layer instead of creating a portal manually to the body
    • added new scenario and e2e test for normal toast behaviour (no key provided, autogenerate key and pop up additional toasts) and same-key behaviour (if toast with same key found, update it instead of popping up a new one)
    • added some text on the documentation page about toaster utility and the same-key update situation

    Scope

    • [x] Patch: Bug Fix
    • [ ] Minor: New Feature
    • [ ] Major: Breaking Change
    bugfix 
    opened by foodforarabbit 19
  • Shadow DOM support

    Shadow DOM support

    Fixes https://github.com/uber/baseweb/issues/4277

    Additionally added:

    • e2e tests for shadow DOM cases of the updated components
    • e2e test utils for shadow DOM testing
    • Warning message when the library used inside of shadow DOM with mode="closed" since in this cause even event.composedPath() will not fetch a proper event target

    Scope

    Patch: Bug Fix

    opened by gevgeny 19
  • Add docs for list heading

    Add docs for list heading

    Description

    Extend the docs page for list to include ListHeading.

    opened by lhbrennan 2
  • [TextArea] Allow to show line numbers

    [TextArea] Allow to show line numbers

    Feature description

    I give users a feedback on text area validation on which line is error in their input but there are no line numbers so user has to count it by himself.

    It would be nice to have line numbers on the left side of text area, e.g. using prop <TextArea lineNumbers />

    opened by simPod 0
  • ReferenceError: Popover is not defined

    ReferenceError: Popover is not defined

    Current Behavior

    There is a bug on the website: when switching from any component to Popover, the yard shows:

    ReferenceError: Popover is not defined
    

    In order to make it work, I have to refresh the page or open it directly by URL link.

    The problem reproduces only when switching between components and on the production website. Tried to debug, but couldn't reproduce in dev environment.

    Screen Shot 2021-09-22 at 16 28 12
    opened by Deliaz 0
  • fix(cheat-sheet): fix scroll to element

    fix(cheat-sheet): fix scroll to element

    Description

    There is a bug on the cheat-sheet page: after scrolling to the element, the page returns to the top again. Happens so fast so looks like the scroll to elements don't actually work. I've experimenting with history.scrollRestoration = 'manual'; and next/router events. The only solution found so far - do scroll after skipping an event loop cycle.

    Another minor update - use key indexes for child elements, since their names aren't unique.

    Scope

    Patch: Bug Fix

    opened by Deliaz 2
  • chore(deps): Bump tmpl from 1.0.4 to 1.0.5 in /packages/eslint-plugin-baseui

    chore(deps): Bump tmpl from 1.0.4 to 1.0.5 in /packages/eslint-plugin-baseui

    Bumps tmpl from 1.0.4 to 1.0.5.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • fix(datepicker): add calendarDayBackgroundSelected to Colors interface

    fix(datepicker): add calendarDayBackgroundSelected to Colors interface

    Fixes #4511

    Description

    Colors was missing the calendarDayBackgroundSelected property for typescript, causing some ts errors when overriding color values. Add it to match the flow ComponentColorTokensT.

    Also exports Theme from src/index.d.ts, after seeing the conversation on https://github.com/uber/baseweb/issues/4511

    Scope

    Patch: Bug Fix

    opened by AEgan 2
  • chore(deps): Bump tmpl from 1.0.4 to 1.0.5

    chore(deps): Bump tmpl from 1.0.4 to 1.0.5

    Bumps tmpl from 1.0.4 to 1.0.5.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • chore(deps): Bump tmpl from 1.0.4 to 1.0.5 in /packages/baseui-codemods

    chore(deps): Bump tmpl from 1.0.4 to 1.0.5 in /packages/baseui-codemods

    Bumps tmpl from 1.0.4 to 1.0.5.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Add size prop to TableBuilderProps type definition

    Add size prop to TableBuilderProps type definition

    Description

    Adds a missing TypeScript type definition for the size property of TableBuilderProps. The Flow type definition for TableBuilderProps already includes size, so this PR simply ensures the TypeScript definition matches.

    Scope

    Patch: Bug Fix

    opened by slbls 3
  • docs(data-table): add example for customized column sort

    docs(data-table): add example for customized column sort

    Fixes #3488

    Description

    Added an example for customized column sort as requested in the above issue.

    Scope

    Minor: New example

    opened by im-adithya 2
Releases(v10.2.1)
  • v10.2.1(Sep 16, 2021)

    Changelog

    • fix(button-group): add example for flex-wrap (#4509)
    • Update green color tokens and add program tokens (#4524)
    • feat(list): add new ListHeading component (#4496)
    • fix(textarea): remove "value" in defaultProps (#4512)
    • fix(list): forward overrides on MenuAdapter (#4517)
    • docs(select): update example for async optins (#4519)
    • docs(styling): fix doc link (#4523)
    • Release 10.2.0 (#4518)
    • fix(layout-grid): make the root component overridable (#4515)
    • feat(datepicker): add onQuickSelectChange prop (#4505)
    • fix(treeview): allow otherwise uncaught events to bubble (#4503)
    • chore(deps-dev): Bump tar from 5.0.7 to 5.0.10 (#4495)
    Source code(tar.gz)
    Source code(zip)
  • v10.1.1(Sep 7, 2021)

    Changelog

    • fix(layout-grid): better checks for custom grid props (#4502)
    • fix(snackbar): update type to accept react node (#4498)
    • fix(layout-grid): use correct values for margins vs gutters (#4494)
    • chore(deps): Bump tar from 4.4.15 to 4.4.19 in /packages/baseui-codemods (#4492)
    • fix: typescript compile errors (#4489)
    • fix(datepicker): add prop to always render 6 rows in datepicker (#4465) (#4490)
    • docs(tag): add missing override (#4491)
    • fix(select): fix popover position when in scrollable container (#4487)
    • fix(layers): prevent hover layers from adding a document click handler (#4485)
    • docs(list): add performance considerations (#4484)
    • feat(data-table): increase head cell font size (#4482)
    • fix(uid): convert from bui-id to react-uid (#4462)
    • fix(country-picker): change autocomplete to autoComplete (#4481)
    Source code(tar.gz)
    Source code(zip)
  • v10.1.0(Aug 20, 2021)

    Changelog

    • fix(app-nav-bar): resolve forward ref error (#4475)
    • fix(select): handle open click when inside native label (#4466)
    • style(list-item): update minHeight and padding (#4471)
    • docs(radio): add missing override (#4473)
    • fix(block): Add background related props for Block Components (#4469)
    • Fix startEnhancer & endEnhancer zero render (#4464)
    • fix(build): allow release info change to prevent failed builds (#4468)
    • chore(popover): update docs to clarify autoFocus usage (#4457)
    • Tag theme icon override (#4424)
    • docs(select): update exmaple to render correctly (#4461)
    • fix(provider): add UIDReset to provider (#4447)
    • chore(deps): Bump path-parse from 1.0.6 to 1.0.7 (#4454)
    • chore(deps): Bump path-parse in /packages/eslint-plugin-baseui (#4451)
    • chore(deps): Bump path-parse in /packages/baseui-codemods (#4450)
    • fix(table): fix table border collapsing on scroll (#4444)
    • docs(button-group): clarify click handler in docs (#4445)
    • docs(tabs): update docs to add uid (#4441)
    • fix(phone-input): does not autofill country value (#4438)
    • chore(deps-dev): Bump tar from 5.0.2 to 5.0.7 (#4436)
    • fix(datepicker): allow empty placeholder (#4437)
    • chore(deps): Bump tar from 4.4.13 to 4.4.15 in /packages/baseui-codemods (#4435)
    • docs(toast): update docs to no longer nest children in ToasterContainer (#4429)
    • fix(app-nav-bar): add the missing ts type (#4426)
    • fix(toast): add missing type definition (#4427)
    • fix(combobox): change options type to an array (#4423)
    Source code(tar.gz)
    Source code(zip)
  • v10.0.0(Jul 26, 2021)

    Changelog

    • feat(card): card title to respect HeadingLevel (#4407)
    • fix(toast): fix container to render portal if mounted and in browser (#4421)
    • feat(layout-grid): add compact type to layout grid (#4419)
    • fix(toast): set toasterRef in componentDidMount (#4416)
    • Update CONTRIBUTING.md (#4420)
    • fix(toast): update container to support ssr rendering of children (#4415)
    • fix(alpha-test): unhandled exceptions should exit with non-zero (#4411)
    • chore(toast): validate application managed toasts (#4405)
    • docs(drawer): include mountNode in yard config (#4404)
    • fix(select): open non-searchable select when label clicked (#4402)
    • Update roadmap (#4386)
    • fix(slider): add persistentThumb and valueToLabel props (#4400)
    • fix(Input): update clear icon sizes (#4396)
    • fix(input): remove default error prop so form-control will pass props (#4398)
    • fix(datepicker): month selection (#4389)
    • fix(list-item): missing type definition for overrides (#4387)
    • fix(timezonepicker): update formatting (#4382)
    • Radius updates (#4353)
    • fix(datepicker): add zhCn fonts to docker image (#4380)
    Source code(tar.gz)
    Source code(zip)
  • v9.116.3(Jul 6, 2021)

    Changelog

    • fix(button-group): move isSelected var to after null check (#4379)
    • docs(table): update example for vertical scroll (#4377)
    • fix(table-semantic): apply size/divider to table builder (#4374)
    • chore(checkbox): add react-hook-form scenarios (#4356)
    • fix(button-group): prevent overriding isSelected on children within button group (#4365)
    • docs(a11y): update axe-core version in docs (#4373)
    • fix(list-item): fix margin in rtl (#4368)
    • chore(doc-site): prevent flicker when refresh in dark mode (#4367)
    • docs(table): add cell examples (#4364)
    • fix(color-tokens): update colors for better contrast (#4360)
    • chore(ts): add withWrapper def (#4363)
    • fix(tabs-motion): update ts (#4362)
    • fix(docs): list-item-label sharedProps error (#4355)
    • docs(theme): update theming.mdx overrides example (#4352)
    Source code(tar.gz)
    Source code(zip)
  • v9.116.2(Jun 23, 2021)

    Changelog

    • docs(date-picker): add missing props (#4342)
    • fix(table-semantic): table bottom border in horizontal (#4348)
    • fix(drawer): fix showBackdrop behavior (#4345)
    • fix(docs): explicitly scroll to cheat sheet entry (#4340)
    • chore(docs): add list-item-label yarn config (#4341)
    • fix(datepicker): correctly dismiss hover effect (#4336)
    • docs(progress-steps): clarify some props are overriden by ProgressSteps (#4339)
    • fix(data-table): add aria role and restore hidden for measure (#4333)
    • fix(menu): prevent error when label is component (#4337)
    • fix(avatar): display fallback until image load (#4326)
    • feat(tag): add start enhancer (#4334)
    • fix(slider): use semantic theme overrides for slider (#4249)
    • fix(rating): use semantic theming for rating (#4251)
    • chore(snackbar): remove mock from test (#4325)
    Source code(tar.gz)
    Source code(zip)
  • v9.116.1(Jun 11, 2021)

    Changelog

    • fix(Snackbar): feature-check for ResizeObserver (#4319)
    • fix(accordion): fix callbacks to update when inputs change (#4322)
    • fix(option-profile): forward ref (#4312)
    • fix(Snackbar): Avoid crash when no window.ResizeObserver (#4317)
    • chore(deps): upgrade axe-core (#4304)
    • feat(table-semantic): add dividers and cell spacing (#4315)
    • chore(deps): Bump ws in /packages/eslint-plugin-baseui (#4311)
    • chore(deps): Bump ws from 5.2.2 to 5.2.3 in /packages/baseui-codemods (#4310)
    • chore(deps): Bump merge-deep from 3.0.2 to 3.0.3 (#4308)
    • chore(deps): Bump glob-parent in /packages/eslint-plugin-baseui (#4309)
    • chore(deps): Bump ws from 6.2.1 to 6.2.2 (#4305)
    • chore(vrt): reduce timeout, update erroneous screenshots (#4300)
    • chore(deploy): update deploy docs script to install now globally (#4299)
    Source code(tar.gz)
    Source code(zip)
  • v9.116.0(Jun 3, 2021)

    Changelog

    • chore(deps): update puppeteer and pin ci version (#4295)
    • fix(select): opens dropdown after clear in one click (#4286)
    • feat(progress-bar): update animation for infinite progress bar (#3622)
    • chore(vrt): update master branch screenshots (#4288)
    • chore(deploy-script): add yarn due to now command not found (#4284)
    Source code(tar.gz)
    Source code(zip)
  • v9.115.3(May 26, 2021)

    Changelog

    • fix(accordion): fix blur from leaving outline on header (#4281)
    • chore(domain): fix old versions not being deployed (#4282)
    • fix(tabs-motion): update tab highlight on tab title update (#4273)
    • fix(radio): add support for nested interactive elements (#4243)
    • chore(deps): Bump browserslist in /packages/baseui-codemods (#4275)
    • fix(file-uploader): remove block from the implementation (#4274)
    • chore(alpha): set PR green if not unblocked (#4272)
    Source code(tar.gz)
    Source code(zip)
  • v9.115.2(May 20, 2021)

    Changelog

    • chore(alpha-test): trigger tests with buildkite block step (#4266)
    • fix(menu): item with child menu triggers click handler (#4259)
    • fix(avatar): replace adorable avatars with dicebear (#4262)
    • chore: update codeowners and coc contact (#4263)
    • fix(data-table): ensure row is defined before showing its actions (#4248)
    • fix(eslint-plugin-baseui): remove slider theme tokens currently in-use (#4250)
    • fix(popover): fix onClickOutside event handler for web component (#4252)
    • fix(combobox): fix combobox options padding issue in rtl mode (#4254)
    • chore(alpha-test): improve logging (#4246)
    • fix(radio): fix event from label and input (#4238)
    Source code(tar.gz)
    Source code(zip)
  • v9.115.1(May 11, 2021)

    Changelog

    • fix: panel should not render content when not expanded (#4241)
    • fix(popover): resolve inconsistent opening of popover (#4237)
    • chore(deps): Bump hosted-git-info from 2.8.5 to 2.8.9 (#4236)
    • Removed IE support from the doc
    • chore(deps): consolidates dependency updates (#4233)
    Source code(tar.gz)
    Source code(zip)
  • v9.115.0(May 10, 2021)

    Changelog

    • chore(deps): upgrade styletron-react peer dependencies (#4227)
    • chore(deps): Bump handlebars in /packages/eslint-plugin-baseui (#4219)
    • chore(select): remove unnecessary listbox role (#4225)
    • feat(datepicker): update styles, implement date label (#4214)
    Source code(tar.gz)
    Source code(zip)
  • v9.114.0(May 4, 2021)

    Changelog

    • fix(dnd-list): update react-movabe to fix mobile scrolling (#4212)
    • chore(deps): Bump ssri from 6.0.1 to 6.0.2 (#4210)
    • docs(Tabs): add isActive shared prop to yard config (#4207)
    • fix(radio): use position/clip to hide input (#4209)
    • docs(combobox): add popover overrides to combobox (#4203)
    Source code(tar.gz)
    Source code(zip)
  • v9.113.0(Apr 27, 2021)

    Changelog

    • fix(app-nav-bar): fix ts type mixed -> any (#4205)
    • chore(header): update header to exclude year (#4196)
    • fix(eslint): add autofocus ignore if not on DOM element (#4193)
    • fix(timepicker): fix filtering by label (instead of id) (#4201)
    • Fixed typos based on Heidi's recommendations
    • fix(data-table): initialSortOrder value (#4200)
    • fix(accordion): update icon to use toggleicon styled element (#4198)
    • chore(deps): update y18n (#4194)
    • Fixed typos based on Heidi's recommendations
    • Fixed typos
    • Fixed typos based on Heidi's recommendations
    • Fixed typos per Heidi's recommendation
    • fix(tooltip): set focus related props to false by default (#4191)
    • fix(data-table): update filter menu colors (#4185)
    • fix comment lint
    • fix comment lint
    • Update setup.mdx
    • Update index.js
    • feat(timepicker): add support for min/max times (#4183)
    • feat(accordion): update animation (#4170)
    • docs: snowpack 3.2 (#4172)
    • fix(helper): remove flakey vrt case (#4175)
    • fix(radio): fix navigation in NVDA browse mode (#4168)
    • feat(combobox): add inputRef (#4167)
    • fix(list): avoid strict height value, min-height (#4143)
    • fix(combobox): apply combobox role to input (#4159)
    • chore(deps): bump y18n from 4.0.0 to 4.0.1 in /packages/eslint-plugin-baseui (#4154)
    • chore(deps): bump y18n from 3.2.1 to 3.2.2 in /packages/baseui-codemods (#4153)
    • fix(docs): Update styling.mdx (#4156)
    Source code(tar.gz)
    Source code(zip)
  • v9.112.0(Mar 25, 2021)

    Changelog

    • fix(tether): scheduleUpdate popper when anchor element changes (#4112) (#4113)
    • feat(modal): adds ability to provide returnFocus prop in modal (#4141) (#4145)
    • fix(input): avoid webkit input text fade (#4140)
    • fix(input): correct typeof usage (#4142)
    • fix(input): render clear when initial value is number (#4138)
    • fix(datepicker): pass order sharedprop to prev and next button (#4122) (#4123)
    • fix(data-table): measure in useEffect avoid ssr warning (#4125)
    • fix(link): static position when default (#4134)
    • docs(accordion): add custom title example (#4133)
    • docs(input): clarify 'pattern' prop usage (#4126)
    Source code(tar.gz)
    Source code(zip)
  • v9.111.2(Mar 10, 2021)

  • v9.111.1(Mar 10, 2021)

    Changelog

    • chore(publish): change deploy stdio to debug npm publish failure (#4116)
    • chore(deps): bump elliptic from 6.5.3 to 6.5.4 (#4115)
    • fix(button-group): fix length typo in styled component (#4111)
    • feat(tag): Make Tag border radius themeable like similar components (#4091)
    • Release v9.111.0 (#4108)
    • docs(select): update description for ignoreCase (#4106)
    • feat(select): keep dropdown options highlighted (#4100)
    • feat(select): adds ignoreCase (#4099)
    • chore(build): relax react peer dep constraint (#4095)
    • fix(publish): create unique semver before attempting next publish (#4094)
    • fix(publish) Allow 'next' tag in publishing (#4092)
    • feat(block): add onclick and onmouse event props to block TS def (#4083)
    • feature(publish) Publish a 'next' tag on every master release (#4089)
    • Ladle for E2E tests (#4073)
    • feat(block): add id prop to block TS def (#4081)
    • fix(toast): "key" must be optional parameter in typescript definitions (#4077)
    • fix(tabs-motion): Don't scroll the page down on tabs-motion mount (#4072)
    • fix(rating): Add a missing type definition for uid in tabs-motion (#4070)
    • fix(rating): Force the star-rating line-height to 1 to prevent parent line-height differences affecting pseudoelement positioning (#4071)
    • Ladle: Fix minor story errors (#4069)
    Source code(tar.gz)
    Source code(zip)
  • v9.110.0(Feb 10, 2021)

    Changelog

    • chore(alpha-test): fix to main branch (#4066)
    • feat(rating): Add the ability for star-ratings to have partial stars (#4053)
    • Add ladle and ladle stories (#4063)
    • feature(tabs-motion): Add a 'uid' option to tabs, to avoid using the useUid hook (#4050)
    • chore(node): e2e dockerfile node 14 (#4061)
    • fix(Rating): Remove marginRight on the last star to preserve centering (#4047)
    Source code(tar.gz)
    Source code(zip)
  • v9.109.0(Jan 26, 2021)

    Changelog

    • feat(table): reverse table sorting icons (#4043)
    • fix(data-table): full height table (#4041)
    • fix(drawer): always render backdrop, showBackdrop determines opacity (#4040)
    • fix(docs): include guidance for warning on overrides props functions (#4036)
    Source code(tar.gz)
    Source code(zip)
  • v9.108.0(Jan 22, 2021)

    Changelog

    • fix(docs): use overflow: auto instead of scroll (#4031)
    • fix(typescript): add missing types to ts theme file (#4029)
    • feat(locale): Add ES-AR localization (#4003)
    Source code(tar.gz)
    Source code(zip)
  • v9.107.0(Jan 8, 2021)

    Changelog

    • fix(docs): include menu option override (#4020)
    • fix(data-table): handle add/remove columns (#4017)
    • fix(datepicker): improve performance (#4016)
    • fix(datepicker): design for outside month dates when peekNextMonth is true (#4007) (#4013)
    • docs: show border values as objects (#4010)
    • fix(data-table): adds y-overflow to filter menu (#4011)
    • fix(tag): reorder text for rtl direction (#3985)
    • added onClose and onOpen props to filter (#3997)
    • docs(tabs): add override example for tabs motion (#4005)
    • fix(button-group): remove root margin (#3999)
    • Update styled-components.js (#4004)
    • chore(deps): bump node-notifier from 8.0.0 to 8.0.1 (#3998)
    • chore(progressbar): rename and move spinner-determinate to progressbar-rounded #3963 (#3968)
    Source code(tar.gz)
    Source code(zip)
  • v9.106.3(Dec 17, 2020)

    Changelog

    • fix(ts): handle ts error in example (#3994)
    • docs(table-semantic): adds example for alternating table rows (#3990)
    • fix(data-table): increate max tag width (#3987)
    • Use uniform margins for buttons in groups (#3983)
    • chore(deps): bump ini from 1.3.5 to 1.3.7 (#3981)
    Source code(tar.gz)
    Source code(zip)
  • v9.106.2(Dec 11, 2020)

    Changelog

    • fix(data-table): query handles non-alphanumeric characters (#3976)
    • chore(deps): bump ini from 1.3.5 to 1.3.7 in /packages/baseui-codemods (#3979)
    Source code(tar.gz)
    Source code(zip)
  • v9.106.1(Dec 8, 2020)

    Changelog

    • fix(select): onblur handles unmount (#3970)
    • fix(data-table): forward resizeable prop through (#3971)
    • chore(docs): update next to version 10 (#3967)
    • docs(blog): fix crashing codesandbox embed (#3969)
    • feat(table): added returnFocus prop to Table Filter (#3965)
    • fix(yard): nested override ignore nulls (#3961)
    Source code(tar.gz)
    Source code(zip)
  • v9.106.0(Dec 1, 2020)

    Changelog

    • fix(spinner): remove duplicate identifier for size (#3953)
    • docs(blog): Nested Overrides Playground (#3960)
    • feat(table): add optional filter close button plus tests (#3956)
    • chore: remove Graham from codeowners
    • docs(select) removed typo artifact (#3952)
    • docs(datepicker): composed datetime range pickers render well on mobile (#3946)
    • docs(input): add input with select example (#3943)
    • feat(data-table): adds row index column (#3941)
    • fix(yard): Fix nested override refs (#3948)
    • fix(docs-site): fix 'edit this page' link (#3927)
    • chore(nested-tooltip): minor copy update (#3945)
    • Nested overrides playground (#3940)
    • fix(radio): fix radiogroup highlight bug in mobile (#3888)
    • fix(tree-view): check that ref for ID exists in treeItemRefs (#3902)
    • feat(checkbox): add aria label (#3906)
    • feat(data-table): add cell block alignment option (#3932)
    • chore(e2e): increase retry times (#3937)
    • feat(phone-input): rtl-ify the component (#3934)
    • feat(table): head cell accepts non string title (#3930)
    • fix(table): fix header and border alignment in rtl (#3929)
    • fix(menu): fix spacing of menu with profile menu (#3926)
    • docs(roadmap): replace references of v11 with v10 (#3924)
    • fix(datepicker): handles time selection after end datetime (#3921)
    • docs: add styling guide (#3915)
    • fix(select): opt dropdown out of focus locking (#3918)
    Source code(tar.gz)
    Source code(zip)
  • v9.105.0(Nov 12, 2020)

    Changelog

    • fix(datepicker) add with mask example. Fix timezone bug (#3914)
    • fix(spinner-determinate) fix resetting to zero value (#3916)
    • fix: correct typing of Sizing (#3912)
    • fix(menu): avoid loop when inside focus lock (#3910)
    • fix(textarea): restore border focus (#3900)
    • fix(icon): improve prop pass through logic (#3895)
    • chore(docs): add table guide (#3901)
    • feat(theme): add contentOnColorInverse (#3897)
    • fix(rating): fix styletron warning (#3899)
    • feat(helper): new component (#3893)
    • fix(checkbox): prevent second click event from firing (#3887)
    • fix(docs): data testid (#3891)
    • fix(tests): handle date test failure (#3892)
    Source code(tar.gz)
    Source code(zip)
  • v9.104.0(Oct 30, 2020)

    Changelog

    • fix(popover): applies popoverMargin if showArrow true (#3882)
    • fix(tabs): don't apply hover and focus color to active tab (#3879)
    • fix(docs): replace stackblitz with codesandbox (#3876)
    • chore(ci): use stable release in react 17 tests (#3878)
    • chore(react-17): fixes tests (#3870)
    • chore(flow): fix flow check (#3871)
    • fix(stackblitz): pin react to v 16 (#3872)
    • feat(app-nav-bar): add isMainItemActive feature (#3866)
    • docs: fix flow in js stackblitz code (#3873)
    • feat(spinner): add determinate spinner (#3853)
    • fix(dnd-list): add thumbIndex to ThumbValue (#3869)
    • fix(theme): add missing typescript definitions in Color (#3865)
    • feat(datepicker): add disable mask feature (#3860)
    • fix(progress-steps): remove background color from progress steps container (#3857)
    • fix(dnd-list): wrap dragged items in a layer (#3856)
    Source code(tar.gz)
    Source code(zip)
  • v9.103.0(Oct 22, 2020)

    Changelog

    • fix(data-table): consistent toLowerCase comparators in textQueryFilter (#3848)
    • fix: change duration of snackbar from short to medium (#3842)
    • fix(radio): expand shorthand css properties (#3844)
    • chore(build): use fix and cache eslint options in lint:code command (#3841)
    • fix(tabs-motion): reduce initial re-rendering (#3834)
    • fix(header-navigation): update style to longhand (#3831)
    • fix(slider): updates to react-range 1.8.0 and fixes error (#3839)
    • feat(rating): allow read-only rating #3741 (#3836)
    • chore(test): removes enzyme from tests (#3829)
    • feat(table-semantic): add loading and empty messages (#3822)
    • fix(accordion): prevent panel icon from shrinking (#3807)
    • chore(test): adds [email protected] CI job (#3821)
    • chore(test): fail unit tests of console warn/error (#3819)
    • Added import ThemeProvider in the example (#3816)
    • chore(test): cleans up test logs (#3815)
    • fix(docs): update line numbers of theme's primitives types (#3817)
    • fix(link): add prop types for styled link component (#3804)
    • feat(table-semantic) add aria label prop for head cell (#3813)
    Source code(tar.gz)
    Source code(zip)
  • v9.102.0(Oct 5, 2020)

    Changelog

    • fix(table-grid, table-semantic) stacked context issue (#3798)
    • fix(docs): updates the slack invite link (#3809)
    • fix(typography): add mono-font components typescript definitions (#3805)
    • fix(types): refactor overrides interfaces (#3735)
    • fix(e2e): migrate from deprecated waitFor fn (#3803)
    • feat(data-table): stabilize component (#3801)
    • fix(data-table): column-width fill handles scrollbar width (#3800)
    • fix(input): align disabled text color with select (#3796)
    • feat(app-nav-bar): update and stabilize component (#3794)
    • fix(tabs-motion): use string key (#3791)
    • fix(input): add maxLength prop type in .d.ts file for Input component (#3793)
    • fix(docs): correct input type config (#3788)
    • fix(StyledLink): remove unused css rule (#3786)
    • fix(link): avoid passing in animateUnderline as attribute (#3787)
    Source code(tar.gz)
    Source code(zip)
  • v9.101.0(Sep 23, 2020)

    Changelog

    • feat(menu): export the nested menu context (#3782)
    • feat(snackbar): initial layout (#3757)
    • feat(theme): export typescript theme properties (#3779)
    Source code(tar.gz)
    Source code(zip)
Owner
Uber Open Source
Open Source Software at Uber
Uber Open Source
react-var-ui is a simple React component library for variable setting and preview, inspired by iOS settings, react-dat-gui and dat.gui.

react-var-ui is a simple React component library for variable setting and preview, inspired by iOS settings, react-dat-gui and dat.gui. While some cod

Mat Sz 42 Sep 12, 2021
React components for easier customization and smooth development flow.

Sha-el-design React components for easier customization and smooth development flow. ?? Features ?? Material inspired design. ?? A complete package of

null 28 Sep 7, 2021
⚡️ Simple, Modular & Accessible UI Components for your React Applications

Build Accessible React Apps with Speed ⚡️ Chakra UI provides a set of accessible, reusable, and composable React components that make it super easy to

Chakra UI 20.8k Sep 25, 2021
🌲 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.1k Sep 24, 2021
React 17 & Bootstrap 5 & Material Design 2.0 UI KIT

React 17 & Bootstrap 5 & Material Design 2.0 UI KIT

MDBootstrap 1.2k Sep 22, 2021
Collection of headless components/hooks that are accessible, composable, customizable from low level to build your own UI & Design System

Collection of headless components/hooks that are accessible, composable, customizable from low level to build your own UI & Design System powered by Reakit System.

Timeless 134 Sep 15, 2021
A React component generation for app prototyping

General Component(GC, from now) is a React component generation library which helps you prototype your service quickly.

null 11 Aug 7, 2021
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 17.8k Sep 20, 2021
The UI design language and React library for Conversational UI

The UI design language and React library for Conversational UI Website:https://chatui.io English | 简体中文 Features ?? Best Practices: The best practice

Alibaba 1.1k Sep 24, 2021
Material-UI is a simple and customizable component library to build faster, beautiful, and more accessible React applications. Follow your own design system, or start with Material Design.

Material-UI Quickly build beautiful React apps. Material-UI is a simple and customizable component library to build faster, beautiful, and more access

Material-UI 71.6k Sep 22, 2021
super-antd 是一个简单且数据驱动友好的 React 组件库。

super-antd 是一个简单且数据驱动友好的 React 组件库。它基于 ant design 和 pro-components 。

超杰 21 Sep 10, 2021
An open-source UI component library for building high-quality, accessible design systems and web apps

An open-source UI component library for building high-quality, accessible design systems and web apps

Radix 1.5k Sep 21, 2021
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 237 Sep 11, 2021
🧱 A suite of React components .

English | 中文版 React Suite is a set of react component libraries for enterprise system products. It is a well-thought-out and developer-friendly UI fra

React Suite 6k Sep 24, 2021
React Native Loading Spinner Overlay

React Native Loading Spinner Overlay

Spontaneous 1.4k Sep 24, 2021
:atom: Build virtual reality experiences with A-Frame and React.

aframe-react I recommend using vanilla A-Frame and aframe-state-component with static templating over aframe-react. React wastes a lot of cycles and i

Supermedium 1.2k Sep 23, 2021
Storybook is a development environment for UI components.

?? The UI component explorer. Develop, document, & test React, Vue, Angular, Web Components, Ember, Svelte & more!

Storybook 64.8k Sep 17, 2021
Modern and minimalist React UI library.

Modern and minimalist React UI library, originating from Vercel's design. Quick Start run yarn add @geist-ui/react or npm i @geist-ui/react install it

Geist 2.3k Sep 22, 2021
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 Sep 21, 2021