All Projects → Esri → Calcite Components

Esri / Calcite Components

Licence: other
Web Components for the Calcite Design System. Built with Stencil JS. Currently in Beta!

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects
js
455 projects

Projects that are alternatives of or similar to Calcite Components

cwco
Powerful and Fast Web Component Library with a Simple API
Stars: ✭ 27 (-71.87%)
Mutual labels:  web-component, components, webcomponents, custom-elements
Standalone
Create framework agnostic components that are truly reusable and interoperable with all the benefits of the React ecosystem – using the HTML5 custom elements API to extend HTML's vocabulary.
Stars: ✭ 205 (+113.54%)
Mutual labels:  components, webcomponents, custom-elements
web-components
A set of high-quality standards based web components for enterprise web applications. Part of Vaadin 20+
Stars: ✭ 322 (+235.42%)
Mutual labels:  webcomponents, custom-elements, design-system
Vaadin Combo Box
The Web Component for displaying a list of items with filtering. Part of the Vaadin components.
Stars: ✭ 113 (+17.71%)
Mutual labels:  webcomponents, custom-elements, web-component
vaadin-text-field
The themable Web Component providing input controls. Part of the Vaadin components.
Stars: ✭ 29 (-69.79%)
Mutual labels:  web-component, webcomponents, custom-elements
Switzerland
🇨🇭Switzerland takes a functional approach to Web Components by applying middleware to your components. Supports Redux, attribute mutations, CSS variables, React-esque setState/state, etc… out-of-the-box, along with Shadow DOM for style encapsulation and Custom Elements for interoperability.
Stars: ✭ 261 (+171.88%)
Mutual labels:  components, webcomponents, custom-elements
anywhere-webcomponents
A UI work in progress based on custom elements (web components) for use in anywhere.
Stars: ✭ 17 (-82.29%)
Mutual labels:  components, webcomponents, custom-elements
Vaadin Grid
vaadin-grid is a free, high quality data grid / data table Web Component. Part of the Vaadin components.
Stars: ✭ 383 (+298.96%)
Mutual labels:  webcomponents, custom-elements, web-component
Blazor.fast
A tiny wrapper around Fast and Fluent Web Components to integrate with Blazor and easily use the EditForm components
Stars: ✭ 23 (-76.04%)
Mutual labels:  design-system, webcomponents
Vaadin Form Layout
The Web Component providing configurable responsive layout for form elements. Part of the Vaadin components.
Stars: ✭ 15 (-84.37%)
Mutual labels:  webcomponents, web-component
Reactshadow
🔰 Utilise Shadow DOM in React with all the benefits of style encapsulation.
Stars: ✭ 948 (+887.5%)
Mutual labels:  components, webcomponents
Stencil
A toolchain for building scalable, enterprise-ready component systems on top of TypeScript and Web Component standards. Stencil components can be distributed natively to React, Angular, Vue, and traditional web developers from a single, framework-agnostic codebase.
Stars: ✭ 9,880 (+10191.67%)
Mutual labels:  webcomponents, custom-elements
Dna
Progressive Web Components.
Stars: ✭ 22 (-77.08%)
Mutual labels:  webcomponents, custom-elements
Aybolit
Lightweight web components library built with LitElement.
Stars: ✭ 90 (-6.25%)
Mutual labels:  webcomponents, custom-elements
Crab
JavaScript library for building user interfaces with Custom Elements, Shadow DOM and React like API
Stars: ✭ 22 (-77.08%)
Mutual labels:  webcomponents, custom-elements
System Design And Architecture
Learn how to design large-scale systems. Prep for the system design interview.
Stars: ✭ 1,005 (+946.88%)
Mutual labels:  design-patterns, design-system
Vuedarkmode
👩‍🎨👨‍🎨 A minimalist dark design system for Vue.js. Based components designed for the insomniacs who enjoy dark interfaces as much as we do.
Stars: ✭ 1,034 (+977.08%)
Mutual labels:  design-system, components
Clarity
Clarity is a scalable, accessible, customizable, open source design system built with web components. Works with any JavaScript framework, built for enterprises, and designed to be inclusive.
Stars: ✭ 6,398 (+6564.58%)
Mutual labels:  design-system, components
Lwc
⚡️ LWC - A Blazing Fast, Enterprise-Grade Web Components Foundation
Stars: ✭ 974 (+914.58%)
Mutual labels:  webcomponents, web-component
Custom Element
A base class for Web Components (Custom Elements) which provides simple data binding.
Stars: ✭ 60 (-37.5%)
Mutual labels:  webcomponents, custom-elements

Built With Stencil npm

Calcite Components

Shared Web Components for Esri's Calcite design framework. To see the components in action, view the documentation.

Sketch library

All of the Calcite Components are available in the calcite-sketch-library with all variations and sizes.

Installation

npm install --save @esri/calcite-components

Script tag

Calcite components can be loaded via two <script> tags in the head of your HTML document:

<script type="module" src="https://unpkg.com/@esri/calcite-components/dist/calcite/calcite.esm.js"></script>
<script nomodule="" src="https://unpkg.com/@esri/calcite-components/dist/calcite/calcite.js"></script>

Browsers that support modules will load the first, while older browsers will load the second, bundled version.

Once these script tags are added, components can be used just like any other HTML element. Only components that are actually used will be loaded.

Styles

You will also need to explicitly load the calcite.css file:

<link rel="stylesheet" type="text/css" href="https://unpkg.com/@esri/calcite-components/dist/calcite/calcite.css" />

Webpack

If you already have a webpack build for your project, you can use @stencil/webpack to add calcite-components to your bundle.

After installing calcite-components, install the plugin as a dev dependency:

npm install --save-dev @stencil/webpack

Then import and call the plugin in webpack.config.js:

const stencil = require('@stencil/webpack');
module.exports = {
  ...
  plugins: [
    new stencil.StencilPlugin()
  ]
}

Lastly, add the import in your main bundle js (or ts) file:

import "@esri/calcite-components/dist/calcite.js";

This will add the initial stencil loader to your bundle, and copy over the actual component code to the output directory you've configured for Webpack. Components will still be lazy-loaded as they are needed. Note: you must use the .js file path for the Webpack plugin to work correctly, even if your bundle file is a TypeScript file.

TypeScript

Stencil provides a full set of typings for all the components in this repo. To make TypeScript aware of these components, just import the library:

import "@esri/calcite-components";

This will provide autocomplete of component names/properties, as well as additional HTML element types:

// created elements will implicitly have the correct type already
const loader = document.createElement("calcite-loader");
document.body.appendChild(loader);
loader.isActive = true;

// you can also explicitly type an element using the generated types
// the type name will always be formatted like HTML{CamelCaseComponentName}Element
const loader = document.querySelector(".my-loader-element") as HTMLCalciteLoaderElement;
loader.isActive = true;

TypeScript with Preact

For preact applications using TypeScript, you must add an additional file to your tsconfig.json:

"files": [
  "node_modules/@esri/calcite-components/dist/types/preact.d.ts"
],

This allows you to use custom tags and provides auto-complete for calcite-components. See the Preact + TypeScript example for more details.

Browser Support

Google Chrome

Chrome

Mozilla Firefox

Firefox

Safari

Safari

Microsoft Edge

Edge

Last 2 versions ✔

Contributing

We welcome contributions to this project. See CONTRIBUTING.md for an overview of contribution guidelines.

License

COPYRIGHT © 2020 Esri

All rights reserved under the copyright laws of the United States and applicable international laws, treaties, and conventions.

This material is licensed for use under the Esri Master License Agreement (MLA), and is bound by the terms of that agreement. You may redistribute and use this code without modification, provided you adhere to the terms of the MLA and include this copyright notice.

See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english

For additional information, contact: Environmental Systems Research Institute, Inc. Attn: Contracts and Legal Services Department 380 New York Street Redlands, California, USA 92373 USA

email: [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].