README
d2l-labs-carded-table
Note: this is a "labs" component. While functional, these tasks are prerequisites to promotion to BrightspaceUI "official" status:
- Design organization buy-in
- design.d2l entry
- Architectural sign-off
- Continuous integration
- Cross-browser testing
- Unit tests
- Accessibility tests
- Visual diff tests
- Localization with Serge (N/A)
- Demo page
- README documentation
Carded table component for displaying content as rows of cards. "Cells" in the table are aligned to the column headers.
Installation
To install from NPM:
npm install @brightspace-ui-labs/carded-table
Usage
<script type="module">
import '@brightspace-ui-labs/carded-table/carded-table-card.js';
import '@brightspace-ui-labs/carded-table/carded-table-cards.js';
import '@brightspace-ui-labs/carded-table/carded-table-header.js';
import '@brightspace-ui-labs/carded-table/carded-table-heading.js';
import '@brightspace-ui-labs/carded-table/carded-table.js';
</script>
<d2l-labs-carded-table default-columns>
<d2l-labs-carded-table-header>
<d2l-labs-carded-table-heading>Column 1</d2l-labs-carded-table-heading>
<d2l-labs-carded-table-heading>Column 2</d2l-labs-carded-table-heading>
</d2l-labs-carded-table-header>
<d2l-labs-carded-table-cards>
<d2l-labs-carded-table-card>
<div>Card 1 Element 1</div>
<div>Card 1 Element 2</div>
</d2l-labs-carded-table-card>
<d2l-labs-carded-table-card>
<div>Card 2 Element 1</div>
<div>Card 2 Element 2</div>
</d2l-labs-carded-table-card>
</d2l-labs-carded-table-cards>
</d2l-labs-carded-table>
Properties & Info
d2l-labs-carded-table
default-columns: Automatically addsgrid-template-columnto the header and card elements, based on the number of headings. Defaults to1frwidth for each column.- e.g., in the demo above,
grid-template-columns: repeat(2, 1fr)would be added.
- e.g., in the demo above,
For custom column sizes, add your own
grid-template-columnto both thed2l-labs-carded-table-headerandd2l-labs-carded-table-cardelements.(See
demo/carded-table-course-demo.jsfor an example)
d2l-labs-carded-table-header
- Wrapper for headings - apply the
grid-template-columnson this element to line up content in the cards.
d2l-labs-carded-table-heading
- This contains the content of the heading.
d2l-labs-carded-table-card
- This contains the content that appears in the cards. The number of 'cells' should line up with the number of columns specified.
Developing, Testing and Contributing
After cloning the repo, run npm install to install dependencies.
If you don't have it already, install the Polymer CLI globally:
npm install -g polymer-cli
Running the demos
To start a local web server that hosts the demo page and tests:
polymer serve
Testing
To lint (eslint and Polymer lint):
npm run lint
To run unit tests locally using Polymer test:
npm run test:polymer:local
To lint AND run local unit tests:
npm test
Running the demos
To start a local web server that hosts the demo page and tests:
polymer serve
Testing
To lint:
npm run lint
To run local unit tests:
npm run test:local
To run a subset of local unit tests, modify your local index.html, or start the dev server and navigate to the desired test page.
To run linting and unit tests:
npm test
Versioning, Releasing & Deploying
All version changes should obey semantic versioning rules.
Releases use the semantic-release tooling and the angular preset for commit message syntax. Upon release, the version in package.json is updated, a tag and GitHub release is created and a new package will be deployed to NPM.
Commits prefixed with feat will trigger a minor release, while fix or perf will trigger a patch release. A commit containing BREAKING CHANGE will cause a major release to occur.
Other useful prefixes that will not trigger a release: build, ci, docs, refactor, style and test. More details in the Angular Contribution Guidelines.