A forward-thinking library of web components.
 
 
 
 
Go to file
Alessandro c6a6a77bbd
feat: add carousel component
feat: add nav indicators

wip

wip

wip

fix: minor fixes

fix: minor fixes

fix: some refactor

chore: update docs

chore: update docs

fix: remove slide component

feat: create sl-carousel-item

feat: code refactoring and improvements

chore: update docs with more examples

chore: fix docs

feat: add autoplay

feat: implement accessibility

fix: change icons for rtl

chore: minor change

feat: improve accessibility

fix: minor regression

fix: minor regression

chore: fix docs

fix: improve accessibility and minor fixes

fix: remove heading and refactor component

chore: add custom style exmaple

fix: address review commnets

* Removed header from carousel
* Added `ArrowUp` and `ArrowDown` in keyboard navigation
* Added `--scroll-hint-margin` css property
* Added an example with customized carousel layout
* Fixed thumbnails navigation in demo
* Renamed show-controls to show-arrows and updated the corresponding parts/css accordingly
* Changed `activeSlideElement` getter to a private method
* Changed pagination colors
* Added `--slide-width` and `--slide-height` css properties

chore: update docs

fix: integrate latest repo changes

fix: add aspect ratio and rebase

chore: remove ignore path

feat: multiple slides per page

feat: multiple slide per page

fix: various improvements

chore: minor changes

chore: minor changes

chore: add bit of documentation

chore: improve documentation

fix: add unit tests and fix minor issues

chore: update documentation and unit tests

chore: update tests
2023-01-08 12:24:24 +01:00
.github add 18.x 2022-11-10 16:34:22 -05:00
.husky update dependencies, cleanup, refine (#642) 2022-01-06 08:44:13 -05:00
.vscode update eslint sorting 2022-03-02 17:20:40 -05:00
docs feat: add carousel component 2023-01-08 12:24:24 +01:00
scripts Update `make-react.js` script to use new @lit-labs/react createComponent options object (#1090) 2023-01-03 08:57:27 -05:00
src feat: add carousel component 2023-01-08 12:24:24 +01:00
.editorconfig Update .editorconfig (#880) 2022-08-26 09:16:57 -04:00
.eslintignore Button tests (#667) 2022-03-11 08:56:24 -05:00
.eslintrc.cjs updates 2022-12-28 11:42:08 -05:00
.gitignore feat: add carousel component 2023-01-08 12:24:24 +01:00
.gitpod.yml Adding Gitpod support (#661) 2022-02-01 16:53:49 -05:00
.prettierignore add prettier and eslint to markdown 2022-03-02 10:10:41 -05:00
CONTRIBUTING.md update docs 2021-03-23 13:52:15 -04:00
LICENSE.md 2.0 cleanup 2020-07-15 17:30:37 -04:00
README.md update min node version 2022-01-18 09:23:48 -05:00
cspell.json update changelog and spelling list 2022-12-13 12:15:40 -05:00
custom-elements-manifest.config.js add cem-custom-data-generator 2022-11-16 12:47:34 -05:00
lint-staged.config.js feat: add ESLint, improve types, improve a11y 2022-01-15 21:47:14 -08:00
package-lock.json 2.0.0-beta.88 2023-01-05 15:43:08 -05:00
package.json 2.0.0-beta.88 2023-01-05 15:43:08 -05:00
prettier.config.cjs add env 2022-04-15 09:26:36 -04:00
tsconfig.json Update tsconfig 2022-12-09 11:54:40 -05:00
tsconfig.prod.json Revert recent changes 2022-03-24 07:48:03 -04:00
vercel.json 2.0 cleanup 2020-07-15 17:30:37 -04:00
web-test-runner.config.js fixes #1101 2023-01-04 09:58:56 -05:00

README.md

Shoelace

A forward-thinking library of web components.

  • Works with all frameworks 🧩
  • Works with CDNs 🚛
  • Fully customizable with CSS 🎨
  • Includes an official dark theme 🌛
  • Built with accessibility in mind
  • Open source 😸

Designed in New Hampshire by Cory LaViska.


Documentation: shoelace.style

Source: github.com/shoelace-style/shoelace

Twitter: @shoelace_style


Shoemakers 🥾

Shoemakers, or "Shoelace developers," can use this documentation to learn how to build Shoelace from source. You will need Node >= 14.17 to build and run the project locally.

You don't need to do any of this to use Shoelace! This page is for people who want to contribute to the project, tinker with the source, or create a custom build of Shoelace.

If that's not what you're trying to do, the documentation website is where you want to be.

What are you using to build Shoelace?

Components are built with LitElement, a custom elements base class that provides an intuitive API and reactive data binding. The build is a custom script with bundling powered by esbuild.

Forking the Repo

Start by forking the repo on GitHub, then clone it locally and install dependencies.

git clone https://github.com/YOUR_GITHUB_USERNAME/shoelace
cd shoelace
npm install

Developing

Once you've cloned the repo, run the following command.

npm start

This will spin up the Shoelace dev server. After the initial build, a browser will open automatically. There is currently no hot module reloading (HMR), as browser's don't provide a way to reregister custom elements, but most changes to the source will reload the browser automatically.

The documentation is powered by Docsify, which uses raw markdown files to generate pages. As such, no static files are built for the docs.

Building

To generate a production build, run the following command.

npm run build

Creating New Components

To scaffold a new component, run the following command, replacing sl-tag-name with the desired tag name.

npm run create sl-tag-name

This will generate a source file, a stylesheet, and a docs page for you. When you start the dev server, you'll find the new component in the "Components" section of the sidebar.

Contributing

Shoelace is an open source project and contributions are encouraged! If you're interesting in contributing, please review the contribution guidelines first.

License

Shoelace is designed in New Hampshire by Cory LaViska. Its available under the terms of the MIT license.

Designing, developing, and supporting this library requires a lot of time, effort, and skill. Id like to keep it open source so everyone can use it, but that doesnt provide me with any income.

Therefore, if youre using my software to make a profit, I respectfully ask that you help fund its development by becoming a sponsor. There are multiple tiers to choose from with benefits at every level, including prioritized support, bug fixes, feature requests, and advertising.

👇 Your support is very much appreciated! 👇

Whether you're building Shoelace or building something with Shoelace — have fun creating! 🥾