@brightspace-ui-labs/carded-table

Carded table component

Usage no npm install needed!

<script type="module">
  import brightspaceUiLabsCardedTable from 'https://cdn.skypack.dev/@brightspace-ui-labs/carded-table';
</script>

README

d2l-labs-carded-table

NPM version Build status

Note: this is a "labs" component. While functional, these tasks are prerequisites to promotion to BrightspaceUI "official" status:

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 adds grid-template-column to the header and card elements, based on the number of headings. Defaults to 1fr width for each column.

    • e.g., in the demo above, grid-template-columns: repeat(2, 1fr) would be added.
  • For custom column sizes, add your own grid-template-column to both the d2l-labs-carded-table-header and d2l-labs-carded-table-card elements.

  • (See demo/carded-table-course-demo.js for an example)

d2l-labs-carded-table-header

  • Wrapper for headings - apply the grid-template-columns on 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.