# Earth Design System (EDS)
Earth Design System is a React-based library for building accessible, consistent user interfaces.
- **Tech Stack:** React, TypeScript, Tailwind CSS
- **Core Requirement:** Most components require the [`Root`](https://earth.anywhere.co/components/root) provider at the top level.
- **Library Package:** `@adaptavant/eds-core` (Components), `@adaptavant/eds-icons` (Icons)
## Important Guidelines
- **DO NOT use deprecated components:** Avoid using `Icon` and `Symbol` from `@adaptavant/eds-core` as maintenance has officially stopped.
- **Use modern alternatives:** For icons, use the icon sets from `@adaptavant/eds-icons` package instead.
- **Check component documentation:** Always verify component props and usage patterns in the linked documentation before implementation.
- **Avoid deprecated props:** Do not use any props marked as deprecated in component documentation.
- **Deprecated prop markers:** Deprecated props use a strikethrough name and a warning callout like "⚠️ Deprecated..." in the API table.
- **Follow migration guidance:** Deprecated props may remain for compatibility, but should not be introduced in new code.
## Overview & Guidelines
- [Accessibility](https://earth.anywhere.co/content/accessibility.md): Standards for supporting disability; EDS prioritizes A11Y compliance.
- [Getting Started](https://earth.anywhere.co/content/getting-started.md): Installation and basic setup for EDS in React applications.
- [Coding Style Guide](https://earth.anywhere.co/content/coding-style-guide.md): Standards for code readability, reuse, and naming conventions.
- [Content Standards](https://earth.anywhere.co/content/content-standards.md): Voice, tone, and messaging guidelines.
- [QA Testing Guidelines](https://earth.anywhere.co/content/qa-testing-guidelines.md): How to use `data-testid` and other attributes for automated testing.
## Foundations
*Core design tokens and low-level styling logic.*
- [Border](https://earth.anywhere.co/foundations/border.md): Border radius and border width design tokens.
- [Color](https://earth.anywhere.co/foundations/color.md): Color scheme tokens for backgrounds, text, icons, borders, status, decorations, and more.
- [Layout](https://earth.anywhere.co/foundations/layout.md): Layout utilities including the centric layout class for centering and constraining content.
- [Motion](https://earth.anywhere.co/foundations/motion.md): Animation duration and easing design tokens.
- [Shadow](https://earth.anywhere.co/foundations/shadow.md): Shadow elevation tokens for consistent depth effects across themes.
- [Size and Space](https://earth.anywhere.co/foundations/size-and-space.md): Spacing and sizing design tokens.
- [Typography](https://earth.anywhere.co/foundations/typography.md): Font family, font styles (heading/body), and font weight tokens.
## Components
- [Accordion](https://earth.anywhere.co/components/accordion.md): Accordion is a stacked list of expandable items that users can open and close to reveal or hide content.
- [Alert](https://earth.anywhere.co/components/alert.md): Alert component displays important information to the user.
- [AlertModal](https://earth.anywhere.co/components/alert-modal.md): AlertModal (aka AlertDialog ) is a specialized modal component for displaying urgent or critical messages that require immediate user attention and de...
- [AlignChildToText](https://earth.anywhere.co/components/align-child-to-text.md): Component that uses a zero-width space to vertically align a child element such as an icon with a line of text.
- [Avatar](https://earth.anywhere.co/components/avatar.md): Avatar is a visual representation of a user.
- [Badge](https://earth.anywhere.co/components/badge.md): A badge is a visual label or indicator used to convey status or highlight content.
- [Box](https://earth.anywhere.co/components/box.md): A generic unstyled layout component that acts as a flexible foundation for building custom structures and semantics.
- [Button](https://earth.anywhere.co/components/button.md): Buttons are clickable elements that are used to trigger actions.
- [ButtonLink](https://earth.anywhere.co/components/button-link.md): The appearance of a button, with the semantics of a link.
- [CalDynamicIcon](https://earth.anywhere.co/components/cal-dynamic-icon.md): A dynamic SVG icon component.
- [Calendar](https://earth.anywhere.co/components/calendar.md): A calendar component that allows users to select a single date.
- [Checkbox](https://earth.anywhere.co/components/checkbox.md): Checkboxes allow users to select multiple items from a list of individual items, or to mark one individual item as selected.
- [Chip](https://earth.anywhere.co/components/chip.md): Chips are used to toggle an action, their label should express what action will occur when the user interacts with it.
- [ClickableAdornment](https://earth.anywhere.co/components/clickable-adornment.md): In order to provide more context as to what value an input expects to receive, sometimes it is helpful to use an adornment.
- [ColorSwatches](https://earth.anywhere.co/components/color-swatches.md): The ColorSwatches component allows a user to select a color from a list of colors.
- [Combobox](https://earth.anywhere.co/components/combobox.md): Combobox is a composable component which allows users to filter a list of items.
- [ComboboxEditor](https://earth.anywhere.co/components/combobox-editor.md): The ComboboxEditor is a Hybrid Combobox, which allows users to enter text, add tags from a list and quickly filter choices.
- [ComboboxMultiSelect](https://earth.anywhere.co/components/combobox-multi-select.md): ComboboxMultiSelect allows users to choose multiple options from a predefined list.
- [DatePicker](https://earth.anywhere.co/components/date-picker.md): The DatePicker component allows users to select a date from a calendar.
- [DropdownMenu](https://earth.anywhere.co/components/dropdown-menu.md): A component that displays a menu to the user with a list of actions or functions when the menu trigger is pressed.
- [Field](https://earth.anywhere.co/components/field.md): The field component exposes the elements around form inputs, and an API to compose them.
- [Fieldset](https://earth.anywhere.co/components/fieldset.md): The Fieldset provides an accessible way to group a set of form components.
- [FilterMenu](https://earth.anywhere.co/components/filter-menu.md): FilterMenu allows a user to choose from a list of options, which can be filtered.
- [GetPro](https://earth.anywhere.co/components/get-pro.md): GetPro is a visual indicator that informs users they are in a "Free" subscription and serves as a prompt to switch to "Paid" plans.
- [Heading](https://earth.anywhere.co/components/heading.md): The heading component is used to communicate hierarchy between sections of content.
- [Icon](https://earth.anywhere.co/components/icon.md): 🚧 Attention: Icon maintenance in this package has been offically stopped.
- [IconButton](https://earth.anywhere.co/components/icon-button.md): Use an IconButton when you need to provide an action for a user to take in a compact space.
- [IconLink](https://earth.anywhere.co/components/icon-link.md): Use an IconLink when you need to provide an link in a compact space.
- [Image](https://earth.anywhere.co/components/image.md): Enhanced image component with lazy loading and required alt text.
- [IndicatorBadge](https://earth.anywhere.co/components/indicator-badge.md): The IndicatorBadge overlays a visual indicator (badge with count or dot) at a corner of wrapped content to communicate notifications alerts.
- [InlineField](https://earth.anywhere.co/components/inline-field.md): Much like the Field component, the InlineField offers an accessible way to label inputs but provides a different visual treatment.
- [IntegrationTile](https://earth.anywhere.co/components/integration-tile.md): IntegrationTile is a visual component designed to present third-party service integrations in a clean, clickable card format.
- [Loading](https://earth.anywhere.co/components/loading.md): The Loading component provides a spinning animation that can give a visual clue that the application is loading data.
- [MenuItem](https://earth.anywhere.co/components/menu-item.md): The MenuItem component represents a selectable option in UI elements like DropdownMenu, Combobox, and FilterMenu.
- [Modal](https://earth.anywhere.co/components/modal.md): A modal (aka "dialog") component that prevents interaction with the rest of the application.
- [NavigationBar](https://earth.anywhere.co/components/navigation-bar.md): The NavigationBar component represents a navigation bar fixed to the bottom of the screen.
- [OTPInput](https://earth.anywhere.co/components/otp-input.md): The OTPInput component provides a secure way for users to enter one-time passwords (OTP) or verification codes.
- [PageHeader](https://earth.anywhere.co/components/page-header.md): The PageHeader component provides a consistent layout structure for page-level navigation and actions.
- [Popover](https://earth.anywhere.co/components/popover.md): The Popover component is responsible for rendering the visual layout and styles of popovers.
- [Progress](https://earth.anywhere.co/components/progress.md): A Progress component that visually represents the completion percentage of a task or goal.
- [QrCode](https://earth.anywhere.co/components/qr-code.md): QR codes are two-dimensional barcodes that can store various types of data and be scanned by devices to quickly access information.
- [Radio](https://earth.anywhere.co/components/radio.md): Radio buttons allow users to select a single option from a list of multiple options.
- [RadioGroup](https://earth.anywhere.co/components/radio-group.md): Use a RadioGroup to control a group of radio buttons.
- [Root](https://earth.anywhere.co/components/root.md): The Root component serves as the top-level wrapper for the design system, providing essential context providers and applying base styling with color s...
- [SearchInput](https://earth.anywhere.co/components/search-input.md): The search input is created using comes with various sizes and variants and is wrapped using component.
- [Select](https://earth.anywhere.co/components/select.md): Allows the user to make a single selection from a short list of values within a form context.
- [SelectCard](https://earth.anywhere.co/components/select-card.md): A SelectCard is a controlled component that allows users to select one or more options from a set of options.
- [SelectMenu](https://earth.anywhere.co/components/select-menu.md): The SelectMenu is an accessible and customisable dropdown menu that allows users to select an option from the list.
- [Sheet](https://earth.anywhere.co/components/sheet.md): The Sheet component is a container that acts as a supplementary view, providing access to important contextual information.
- [Slider](https://earth.anywhere.co/components/slider.md): Sliders allow users to make selections from a range of values.
- [Snackbar](https://earth.anywhere.co/components/snackbar.md): Snackbar component helps to display temporary notifications of actions, errors or other events.
- [Stack](https://earth.anywhere.co/components/stack.md): A vertical layout component that evenly distributes children with consistent spacing between each item.
- [StatusPanel](https://earth.anywhere.co/components/status-panel.md): StatusPanel component displays contextual information with clear visual hierarchy.
- [Symbol](https://earth.anywhere.co/components/symbol.md): 🚧 Attention: Symbol maintenance in this package has been offically stopped.
- [Table](https://earth.anywhere.co/components/table.md): Tables display information in an easily scannable format, helping users identify patterns and insights.
- [Tabs](https://earth.anywhere.co/components/tabs.md): Represents a set of tabs that allows users to switch between different content views.
- [Tag](https://earth.anywhere.co/components/tag.md): A tag component is an item with a short label, which helps in any categorization or filtering.
- [Text](https://earth.anywhere.co/components/text.md): The Text component helps you style text with design system tokens.
- [Textarea](https://earth.anywhere.co/components/textarea.md): TextAreas are multiline text inputs, useful for cases where users have a sizable amount of text to enter.
- [TextInput](https://earth.anywhere.co/components/text-input.md): The TextInput component provides a way for inputting text.
- [TextLink](https://earth.anywhere.co/components/text-link.md): TextLink allow users to navigate to a different location.
- [TimePicker](https://earth.anywhere.co/components/timepicker.md): Time Picker is an input field for entering or selecting a specific time.
- [TimeZonePicker](https://earth.anywhere.co/components/time-zone-picker.md): You can create a TimeZonePicker by using the useTimeZonePicker hook with a FilterMenu .
- [Toggle](https://earth.anywhere.co/components/toggle.md): The Toggle component lets users switch between two states, like on or off.
- [Tooltip](https://earth.anywhere.co/components/tooltip.md): A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.
- [Track](https://earth.anywhere.co/components/track.md): A layout component which allows you to layout elements with 2 optional fixed "rails" and a fluid center (think railway track).
- [VirtualTable](https://earth.anywhere.co/components/virtual-table.md): A virtualized table component for efficiently rendering large datasets.
## Icons
- [Icon](https://earth.anywhere.co/icons/icon.md): Icons set available in "eds-icons" package.
- [Symbol](https://earth.anywhere.co/icons/symbol.md): Symbols set available in "eds-icons" package.
## Widgets
- [CropModal](https://earth.anywhere.co/widgets/crop-modal.md): The CropModal is a comprehensive image cropping solution designed for modern web applications.
- [GetProModal](https://earth.anywhere.co/widgets/get-pro-modal.md): A GetProModal is built with design system components and guidelines to promote premium features and encourage users to upgrade.
- [HelpAndSupport](https://earth.anywhere.co/widgets/help-and-support.md): A comprehensive, responsive help and support widget that provides users with easy access to customer support options through a trigger-popover interfa...
- [IndustryDropdown](https://earth.anywhere.co/widgets/industry-dropdown.md): An IndustryDropdown component provides a searchable interface for selecting business types.
- [ShareModal](https://earth.anywhere.co/widgets/share-modal.md): A ShareModal is build with a design system components and guidelines that enables users to share a link or content effortlessly.
- [WorkingHours](https://earth.anywhere.co/widgets/working-hours.md): A WorkingHours component lets users define daily start and end times for availability.
## Changelog
- [Releases](https://earth.anywhere.co/changelog.md): Version history and migration notes.