From cfab46448fe26ce412d96151103e6b5007a6dd31 Mon Sep 17 00:00:00 2001 From: Jouni Koivuviita Date: Tue, 19 Nov 2024 09:58:47 +0100 Subject: [PATCH] feat: add experimental card component (#8154) Co-authored-by: Serhii Kulykov --- dev/card.html | 528 ++++++++++++++++++ packages/card/LICENSE | 190 +++++++ packages/card/README.md | 49 ++ packages/card/package.json | 52 ++ packages/card/screenshot.png | Bin 0 -> 102617 bytes packages/card/src/vaadin-card.d.ts | 26 + packages/card/src/vaadin-card.js | 55 ++ packages/card/test/card.test.ts | 28 + packages/card/test/visual/lumo/card.test.js | 37 ++ .../card/baseline/theme-default.png | Bin 0 -> 1115 bytes .../card/baseline/theme-elevated.png | Bin 0 -> 1434 bytes .../card/baseline/theme-outlined-elevated.png | Bin 0 -> 1651 bytes .../card/baseline/theme-outlined.png | Bin 0 -> 1229 bytes .../card/test/visual/material/card.test.js | 37 ++ .../card/baseline/theme-default.png | Bin 0 -> 998 bytes .../card/baseline/theme-elevated.png | Bin 0 -> 1575 bytes .../card/baseline/theme-outlined-elevated.png | Bin 0 -> 1650 bytes .../card/baseline/theme-outlined.png | Bin 0 -> 1156 bytes .../card/theme/lumo/vaadin-card-styles.js | 56 ++ packages/card/theme/lumo/vaadin-card.js | 2 + .../card/theme/material/vaadin-card-styles.js | 48 ++ packages/card/theme/material/vaadin-card.js | 2 + packages/card/vaadin-card.d.ts | 1 + packages/card/vaadin-card.js | 3 + 24 files changed, 1114 insertions(+) create mode 100644 dev/card.html create mode 100644 packages/card/LICENSE create mode 100644 packages/card/README.md create mode 100644 packages/card/package.json create mode 100644 packages/card/screenshot.png create mode 100644 packages/card/src/vaadin-card.d.ts create mode 100644 packages/card/src/vaadin-card.js create mode 100644 packages/card/test/card.test.ts create mode 100644 packages/card/test/visual/lumo/card.test.js create mode 100644 packages/card/test/visual/lumo/screenshots/card/baseline/theme-default.png create mode 100644 packages/card/test/visual/lumo/screenshots/card/baseline/theme-elevated.png create mode 100644 packages/card/test/visual/lumo/screenshots/card/baseline/theme-outlined-elevated.png create mode 100644 packages/card/test/visual/lumo/screenshots/card/baseline/theme-outlined.png create mode 100644 packages/card/test/visual/material/card.test.js create mode 100644 packages/card/test/visual/material/screenshots/card/baseline/theme-default.png create mode 100644 packages/card/test/visual/material/screenshots/card/baseline/theme-elevated.png create mode 100644 packages/card/test/visual/material/screenshots/card/baseline/theme-outlined-elevated.png create mode 100644 packages/card/test/visual/material/screenshots/card/baseline/theme-outlined.png create mode 100644 packages/card/theme/lumo/vaadin-card-styles.js create mode 100644 packages/card/theme/lumo/vaadin-card.js create mode 100644 packages/card/theme/material/vaadin-card-styles.js create mode 100644 packages/card/theme/material/vaadin-card.js create mode 100644 packages/card/vaadin-card.d.ts create mode 100644 packages/card/vaadin-card.js diff --git a/dev/card.html b/dev/card.html new file mode 100644 index 0000000000..a8d3a9bee0 --- /dev/null +++ b/dev/card.html @@ -0,0 +1,528 @@ + + + + + + + Card + + + + + + + + + +

Default

+
+ + +
+

Card Title

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut.

+ Label +
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit incididunt ut.

+ Label +
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit incididunt ut.

+ Label +
+
+
+ +
+ + +
+

Card Title

+

Lorem ipsum dolor sit amet

+
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet

+
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet

+
+
+
+ + + + +
+ +
+

Page Views

+ +
+
+

12,450

+ + 15.8% + + +
+
+ +
+

Total Revenue

+ +
+
+

$363.95

+ + 34.0% + + +
+
+ +
+

Bounce Rate

+ +
+
+

86.5%

+ + 24.3% + + +
+
+
+ + + + +

Outlined

+
+ + +
+

Card Title

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit tempor incididunt ut.

+ Label +
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut.

+ Label +
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut.

+ Label +
+
+
+ + +
+ + +
+

Card Title

+

Lorem ipsum dolor sit amet

+
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet

+
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet

+
+
+
+ + + +
+ +
+

Page Views

+ +
+
+

12,450

+ + 15.8% + + +
+
+ +
+

Total Revenue

+ +
+
+

$363.95

+ + 34.0% + + +
+
+ +
+

Bounce Rate

+ +
+
+

86.5%

+ + 24.3% + + +
+
+
+ + + + +

Elevated

+
+ + +
+

Card Title

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit tempor incididunt ut.

+ Label +
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit tempor incididunt ut.

+ Label +
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut.

+ Label +
+
+
+ + +
+ + +
+

Card Title

+

Lorem ipsum dolor sit amet

+
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet

+
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet

+
+
+
+ + + +
+ +
+

Page Views

+ +
+
+

12,450

+ + 15.8% + + +
+
+ +
+

Total Revenue

+ +
+
+

$363.95

+ + 34.0% + + +
+
+ +
+

Bounce Rate

+ +
+
+

86.5%

+ + 24.3% + + +
+
+
+ + + + +

Outlined & Elevated

+
+ + +
+

Card Title

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit tempor incididunt ut.

+ Label +
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit tempor incididunt ut.

+ Label +
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut.

+ Label +
+
+
+ + +
+ + +
+

Card Title

+

Lorem ipsum dolor sit amet

+
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet

+
+
+ + + +
+

Card Title

+

Lorem ipsum dolor sit amet

+
+
+
+ + + + +
+ +
+

Page Views

+ +
+
+

12,450

+ + 15.8% + + +
+
+ +
+

Total Revenue

+ +
+
+

$363.95

+ + 34.0% + + +
+
+ +
+

Bounce Rate

+ +
+
+

86.5%

+ + 24.3% + + +
+
+
+ + + + + + + diff --git a/packages/card/LICENSE b/packages/card/LICENSE new file mode 100644 index 0000000000..7c7442668e --- /dev/null +++ b/packages/card/LICENSE @@ -0,0 +1,190 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2024 Vaadin Ltd. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/card/README.md b/packages/card/README.md new file mode 100644 index 0000000000..c995a29867 --- /dev/null +++ b/packages/card/README.md @@ -0,0 +1,49 @@ +# @vaadin/card + +A visual content container. + +> ⚠️ This component is experimental and the API may change. In order to use it, enable the feature flag by setting `window.Vaadin.cardComponent = true`. + +[Documentation + Live Demo ↗](https://vaadin.com/docs/latest/components/card) + +[![npm version](https://badgen.net/npm/v/@vaadin/card)](https://www.npmjs.com/package/@vaadin/card) + +```html + + +
+

Card Title

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut.

+ Label +
+
+``` + +[Screenshot of vaadin-card](https://vaadin.com/docs/latest/components/card) + +## Installation + +Install the component: + +```sh +npm i @vaadin/card +``` + +Once installed, import the component in your application: + +```js +import '@vaadin/card'; +``` + +## Contributing + +Read the [contributing guide](https://vaadin.com/docs/latest/contributing) to learn about our development process, how to propose bugfixes and improvements, and how to test your changes to Vaadin components. + +## License + +Apache License 2.0 + +Vaadin collects usage statistics at development time to improve this product. +For details and to opt-out, see https://github.com/vaadin/vaadin-usage-statistics. diff --git a/packages/card/package.json b/packages/card/package.json new file mode 100644 index 0000000000..cf583d8982 --- /dev/null +++ b/packages/card/package.json @@ -0,0 +1,52 @@ +{ + "name": "@vaadin/card", + "version": "24.6.0-alpha8", + "publishConfig": { + "access": "public" + }, + "description": "vaadin-card", + "license": "Apache-2.0", + "repository": { + "type": "git", + "url": "https://github.com/vaadin/web-components.git", + "directory": "packages/card" + }, + "author": "Vaadin Ltd", + "homepage": "https://vaadin.com/components", + "bugs": { + "url": "https://github.com/vaadin/web-components/issues" + }, + "main": "vaadin-card.js", + "module": "vaadin-card.js", + "type": "module", + "files": [ + "src", + "theme", + "vaadin-*.d.ts", + "vaadin-*.js", + "web-types.json", + "web-types.lit.json" + ], + "keywords": [ + "Vaadin", + "card", + "web-components", + "web-component" + ], + "dependencies": { + "@vaadin/component-base": "24.6.0-alpha8", + "@vaadin/vaadin-lumo-styles": "24.6.0-alpha8", + "@vaadin/vaadin-material-styles": "24.6.0-alpha8", + "@vaadin/vaadin-themable-mixin": "24.6.0-alpha8", + "lit": "^3.0.0" + }, + "devDependencies": { + "@vaadin/chai-plugins": "24.6.0-alpha8", + "@vaadin/testing-helpers": "^1.0.0", + "sinon": "^18.0.0" + }, + "web-types": [ + "web-types.json", + "web-types.lit.json" + ] +} diff --git a/packages/card/screenshot.png b/packages/card/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..46370a6011365742493e3b9802872ded96b65a12 GIT binary patch literal 102617 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 is a visual content container. + * + * ```html + * + *
Card content
+ *
+ * ``` + */ +declare class Card extends ElementMixin(ThemableMixin(HTMLElement)) {} + +declare global { + interface HTMLElementTagNameMap { + 'vaadin-card': Card; + } +} + +export { Card }; diff --git a/packages/card/src/vaadin-card.js b/packages/card/src/vaadin-card.js new file mode 100644 index 0000000000..d8b0694c8d --- /dev/null +++ b/packages/card/src/vaadin-card.js @@ -0,0 +1,55 @@ +/** + * @license + * Copyright (c) 2024 Vaadin Ltd. + * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ + */ +import { css, html, LitElement } from 'lit'; +import { defineCustomElement } from '@vaadin/component-base/src/define.js'; +import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js'; +import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js'; +import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js'; + +/** + * `` is a visual content container. + * + * ```html + * + *
Card content
+ *
+ * ``` + * + * @customElement + * @extends HTMLElement + * @mixes ElementMixin + * @mixes ThemableMixin + */ +class Card extends ElementMixin(ThemableMixin(PolylitMixin(LitElement))) { + static get is() { + return 'vaadin-card'; + } + + static get styles() { + return css` + :host { + display: block; + } + + :host([hidden]) { + display: none !important; + } + `; + } + + static get experimental() { + return true; + } + + /** @protected */ + render() { + return html``; + } +} + +defineCustomElement(Card); + +export { Card }; diff --git a/packages/card/test/card.test.ts b/packages/card/test/card.test.ts new file mode 100644 index 0000000000..167c70c638 --- /dev/null +++ b/packages/card/test/card.test.ts @@ -0,0 +1,28 @@ +import { expect } from '@vaadin/chai-plugins'; +import { fixtureSync } from '@vaadin/testing-helpers'; +import '../vaadin-card.js'; +import type { Card } from '../vaadin-card.js'; + +window.Vaadin.featureFlags ||= {}; +window.Vaadin.featureFlags.cardComponent = true; + +describe('vaadin-card', () => { + let card: Card; + + describe('custom element definition', () => { + let tagName: string; + + beforeEach(() => { + card = fixtureSync(''); + tagName = card.tagName.toLowerCase(); + }); + + it('should be defined in custom element registry', () => { + expect(customElements.get(tagName)).to.be.ok; + }); + + it('should have a valid static "is" getter', () => { + expect((customElements.get(tagName) as any).is).to.equal(tagName); + }); + }); +}); diff --git a/packages/card/test/visual/lumo/card.test.js b/packages/card/test/visual/lumo/card.test.js new file mode 100644 index 0000000000..76faabfcd1 --- /dev/null +++ b/packages/card/test/visual/lumo/card.test.js @@ -0,0 +1,37 @@ +import { fixtureSync } from '@vaadin/testing-helpers'; +import { visualDiff } from '@web/test-runner-visual-regression'; +import '../../../theme/lumo/vaadin-card.js'; + +window.Vaadin.featureFlags.cardComponent = true; + +describe('card', () => { + let div, element; + + beforeEach(() => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '20px'; + element = fixtureSync('
Card
', div); + }); + + describe('theme', () => { + it('default', async () => { + await visualDiff(div, 'theme-default'); + }); + + it('outlined', async () => { + element.setAttribute('theme', 'outlined'); + await visualDiff(div, 'theme-outlined'); + }); + + it('elevated', async () => { + element.setAttribute('theme', 'elevated'); + await visualDiff(div, 'theme-elevated'); + }); + + it('outlined elevated', async () => { + element.setAttribute('theme', 'outlined elevated'); + await visualDiff(div, 'theme-outlined-elevated'); + }); + }); +}); diff --git a/packages/card/test/visual/lumo/screenshots/card/baseline/theme-default.png b/packages/card/test/visual/lumo/screenshots/card/baseline/theme-default.png new file mode 100644 index 0000000000000000000000000000000000000000..3c0a7b52126708988be5e8371d3b620bebb5f95d GIT binary patch literal 1115 zcmeAS@N?(olHy`uVBq!ia0vp^`9Pe+!3HGbqI>rNDaPU;cPEB*=VV?oFtCVvx;TbZ z%z1lvzrS=k!?BOYpUd~Yt}0u$z~!g(9M!2ohC$mTj9oaqL*4lmHwPvhopvfBlqq!8 zm7;qMf}*CeHTBG1tdsMX>GAHXUVr#zfKIsQs_(pYlb$PAGR*w`q4w{+YW0JblT|#K z7CyQAO<&>v{6~VpHc4IXJ|8C&+eZORpuG8iRZUnkYC0)@A*SN zMfUTX_d8ieeqMA#<4%Vm+r-6B4^{24Fq{8nVbQEak;4+d8P^`~eiX4e&uNm1-@Oap z(&sgo-#C82qQW`4KfNdIu8H2aZoNzP0^;7CxLu0y(=k!~8%{ez_EhQou4S+-xn-L@ zo8zzQl-G7n*~+_|h1U1y?d|v!&R7-~|Da}q-9BgGr#^dPi*7oDt>?M>-X1R`Bw1n^|GyRL$azZZpLmgo0rY-r6R2@mhxskeEkH*eilgLhI}y3Ma0^)sl8Cz3c2O4UzmNU{=O~#$nN5Q{c7?dUs=zwJ6O$rx44kuK{i80%k$>s1z%VWzB3Lv zexAR!Bx<&Wl#SQ^byq&@*u})MHTuWX`}g0R-?P(Fhrz<8dOLGe)r}mc+v54QKRN0@ z7h3GxS#6cLae2_;&%6w4zh(5!y5hclUn|4QmH%o!DEqNhU-r*aYoE88iKD=+YMb%z zj|?H#`#uW&&ajD?#c{)Z`#qLz@iFpT{C@80vbB3&?Rz?F?XOg;yyBWbJFCsM5eJ={ zxJzIEfAsZveEn^icWnz|kJP-re}CqVZ``#y_7Re@T;d;#m?QGvGXD^}|DgJhLDj88 z@8o~%EGs{CJ|`*N++lI_;gkB;(>H9Z`S??I_2a;!$?4W|M-zjW5tXRd96z0M=ic3^ zQ@j5r+0J_%{drT-#(1Eh)sDrlj~_T%x6v-iZhGspd%luOejhbc&yKtI(08MxC|6~l zDZj`2tap#vZuHokFE)D3aD4l-{W5MlWZXc>{%4HXe9=$mj+IOCOVn$)u}oH(f1y2T s$>!c)&W1;Hb$#&XFhshA<;CCZXF{CRI~(UU080x7Pgg&ebxsLQ0E8zHY5)KL literal 0 HcmV?d00001 diff --git a/packages/card/test/visual/lumo/screenshots/card/baseline/theme-elevated.png b/packages/card/test/visual/lumo/screenshots/card/baseline/theme-elevated.png new file mode 100644 index 0000000000000000000000000000000000000000..190e6fb13182bf840f589a2d107273dd95b618bb GIT binary patch literal 1434 zcma)+`#aMM0LH(GnYrwwLyO!d4v9U}BD&H>ipnic#Ac$9Feer=%Vm*q>WQT-ai)tq zPqx@JYwnlLoN`HvCTDaATTx*hKb>Fec|Py^`3v6n#_5yp+7JT>007z^$Iw0-zPynz zFleJgg7TklXcNK5-4&=6?wADtH9rrui(fK*o^c{UdhD0%@71~ojgUxWP)ZkaQRqmr zn7card=nio;`fb}RWxTL&A{dc8y`vV_|yJES6!&%Iy2M5i3iTn(0bD4?qA_)okzP{ zMrr3R>sav$dbi&EX*?4@Xghr6gu6?GP<6waCD;nWZUF#U!3Eo z21fXf-odEC>_HREe$-UpaQdfDV&(RI`*s#l99_LB(L6du0I4a05C^)-kK zefS92yd5-*vMls1q`8y>i{~5V`gZEq)XSyzFVthMx~%S7Xtmrm(FWTbYDwUS85=%m zF^!BsEqu4c;pR%~@EWxG%zyjt9iJgEpOj(!?*D-Bo)c38s>X0vL=V8EOrb_C8=2}K zEV{{UXDF__^%X)o$NHC2xusXX=DJ-^dgn4pkyFU){Mh~Tn zd7DL@d=^2>6NC+E>(|AqcAr=hVIenjQlt)vhp^;kN~|49hCsA-fse2y%1%wYL6c=~ zq8I+P;WoAamrDb;?sV}~EjPZUHJaFieh@+?4&-dTr6^vpVIphY@cq5Wcn6SMJXy#h#*#bv}6Hd{Eno)RaxnYHfb0AT|L&oz&Ro8j}CF#v5*IvfRPpvG^jV! zqn=nf5~(2-!}i#fHqT78>;Z<9Hgjur1f^}A#BEz!qLN^AR($C#z+Mx)H|LyMv}eb# z_u@3VFeU;d$vc?pjp!--6vnjjS+7bYt4$c4j19?-O#+xS&4DYzP-BuXE*tp}7Q7q+ z?l1flOB#R2vY`w6nC5~s`Soa)@Q*Dk4_mAdd&XyhVqLqJUypHD=rU?)k!WpJQH&R) z6^}imeS5Y(D-Ul_kUKIt`_l~zIMY)FYw@x)iNtZfHM0M?b?irZs*N zOBy$-^4!d>!(L^TI(m(+FU9i8l3w5lKp$~+&WXG4ebF4^TYyULBM7q~V^(y6Y(&0` z0^q@-s-~g_=e8(Dv9HOC4lQ^ArPrVrgwC8!(1XX|lT(9Ltg7BjX+?V)`gZ44^Anof zY9+ss$~mbaGD>xZbrm-U9^7Y6HX}Fb*K|wYz1wo?GFR=8ZNQhcMar3QTuoM4{VPed z^+4(VoC8ULG9A^)_0^>MVR++1afjdC?ahifA+9+%W7AW3o>e2IT05kKH;h5j2_5|R zI>Oa~63t+JtxFL951};-Y<@<5F0`tN#lj%TZ!P@h1HC6(FP!g8jtkHG);q0h>(%e3 zNgTZy-O*qOgYaOT5%ippsvS7KzLLSYlVH@9Be_cSViflsxy yT}VMSyz)myEeVdIoW>9A{dTAD2TS~as!DZ3D642Dl~l2DwtxrbB)ZlWOa2eMG_}V7 literal 0 HcmV?d00001 diff --git a/packages/card/test/visual/lumo/screenshots/card/baseline/theme-outlined-elevated.png b/packages/card/test/visual/lumo/screenshots/card/baseline/theme-outlined-elevated.png new file mode 100644 index 0000000000000000000000000000000000000000..6cf38ab4f68b486b3591f1f089ea30b0adbbd218 GIT binary patch literal 1651 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 literal 0 HcmV?d00001 diff --git a/packages/card/test/visual/material/card.test.js b/packages/card/test/visual/material/card.test.js new file mode 100644 index 0000000000..b049721903 --- /dev/null +++ b/packages/card/test/visual/material/card.test.js @@ -0,0 +1,37 @@ +import { fixtureSync } from '@vaadin/testing-helpers'; +import { visualDiff } from '@web/test-runner-visual-regression'; +import '../../../theme/material/vaadin-card.js'; + +window.Vaadin.featureFlags.cardComponent = true; + +describe('card', () => { + let div, element; + + beforeEach(() => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '20px'; + element = fixtureSync('
Card
', div); + }); + + describe('theme', () => { + it('default', async () => { + await visualDiff(div, 'theme-default'); + }); + + it('outlined', async () => { + element.setAttribute('theme', 'outlined'); + await visualDiff(div, 'theme-outlined'); + }); + + it('elevated', async () => { + element.setAttribute('theme', 'elevated'); + await visualDiff(div, 'theme-elevated'); + }); + + it('outlined elevated', async () => { + element.setAttribute('theme', 'outlined elevated'); + await visualDiff(div, 'theme-outlined-elevated'); + }); + }); +}); diff --git a/packages/card/test/visual/material/screenshots/card/baseline/theme-default.png b/packages/card/test/visual/material/screenshots/card/baseline/theme-default.png new file mode 100644 index 0000000000000000000000000000000000000000..7b1d7bc9a34219e01c1243f48890ae9a1f0597da GIT binary patch literal 998 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 literal 0 HcmV?d00001 diff --git a/packages/card/test/visual/material/screenshots/card/baseline/theme-outlined.png b/packages/card/test/visual/material/screenshots/card/baseline/theme-outlined.png new file mode 100644 index 0000000000000000000000000000000000000000..e407d101a4f821a0488cc4398146d406ae786900 GIT binary patch literal 1156 zcmeAS@N?(olHy`uVBq!ia0vp^`9Pe+!3HGbqI>rNDaPU;cPEB*=VV?oFtFHpx;TbZ z%z1nFyx*f3nPVT9>tCJ}Aw1iGCA>&-$7jA-eHV!tmf3aAG>>sb%DD+bNG}N z2hSGQ+0XWH|LZunXJ-BL75)G0I8PpFjGvmn?D>_9<3V1U9A5wTd{tNYH|L15+Q$x0 znB!I5UVmNA&(5$m?DdDZ84GOZ1#xvBeRR3~cJ|h&8Rwt7rDgYT zk6Ig-x-sohrQ9c*>vrMQdlqRV+}`$XEF4*y3x_t`gU# zvLPXMX~%LduUz@n5A#t?l+do!E6^lYk1R(&?sDRu7{G1zy{9A{?7KAL_d=|1ST&e2L(?HpOGRO$%k1 z4r@5JiCoOfmHDc^BMj&=|AUz&jdkUFV%_r_e?M8fzau{VkGOAKXnDh1{`ct~P26AH z8EP0_BrQ1BP}*wpuj}2vpOH-&5=m>yh{y#0X`oP$uw!h5j z_B^xvhUl-C&$^e*fAI9)rpps~yY1e}u_-nrZi!wTcWMHQU{KEXU*VZOD|h|=`0Ux! z7k=UnU7RoTp8q}0d_lHHFsbFA>j$NTHkBQWdF=kn4_!>z{_;e@{69}-t*zcWw|et_ zjr(tN+-qYDVpeFMRh!)TZX)|*0WOQWA6oO|Y!jul|G#*D=)(QKKWG0c`(pL~hwJ$` z;Z+vjME^wi?zjGR-|*wUjQ@Z4w70Xz#Kpam`KdUgB3{F9_M_v(#5gcXRNDlX|4vMM zwJzY+W6QqgO**ChOT$E1WsYC83xBk?X_HRi`s-WIUzI!m*+yr&_ub@`Pb>R2Z#I5g z+?x|2)ytN)d1mLulC;f|v(7G?c+>6C&UM_^OYLh9{N+95@8{QZ#=I)~-`TY0pEY$m zO!q&wkpC4oCp2`S2G^9-PMh-=bIf{MnR$-iKK=Pm@ZaSUU#sq(kotaU^%3E;6Xg*k fWm0g4zEOXF?W0?K?*7Ms#R`L`tDnm{r-UW|d;&Dy literal 0 HcmV?d00001 diff --git a/packages/card/theme/lumo/vaadin-card-styles.js b/packages/card/theme/lumo/vaadin-card-styles.js new file mode 100644 index 0000000000..da04ea6760 --- /dev/null +++ b/packages/card/theme/lumo/vaadin-card-styles.js @@ -0,0 +1,56 @@ +import '@vaadin/vaadin-lumo-styles/color.js'; +import '@vaadin/vaadin-lumo-styles/style.js'; +import { addGlobalThemeStyles, css, registerStyles } from '@vaadin/vaadin-themable-mixin/register-styles.js'; + +const cardProps = css` + html { + --vaadin-card-background: var(--lumo-shade-5pct); + --vaadin-card-border-radius: var(--lumo-border-radius-l); + --vaadin-card-border-width: 0; + --vaadin-card-border-color: var(--lumo-contrast-20pct); + } +`; + +addGlobalThemeStyles('card-props', cardProps); + +const card = css` + :host { + background: var(--vaadin-card-background); + border-radius: var(--vaadin-card-border-radius); + box-shadow: var(--vaadin-card-box-shadow); + position: relative; + } + + /* Could be an inset outline on the host as well, but rounded outlines only work since Safari 16.4 */ + :host::before { + content: ''; + position: absolute; + inset: 0; + z-index: 999; + pointer-events: none; + border-radius: inherit; + border: var(--vaadin-card-border, var(--vaadin-card-border-width) solid var(--vaadin-card-border-color)); + } + + :host([theme~='outlined']) { + --vaadin-card-border-width: 1px; + --vaadin-card-background: transparent; + } + + :host([theme~='elevated']) { + --vaadin-card-background: var(--lumo-tint-10pct); + --vaadin-card-box-shadow: var(--lumo-box-shadow-xs); + /* TODO I would like to update --lumo-box-shadow-xs to this (30pct instead of 50pct): */ + --lumo-box-shadow-xs: 0 1px 4px -1px var(--lumo-shade-30pct); + } + + :host([theme~='elevated'][theme~='outlined']) { + box-shadow: + inset 0 -1px 0 0 var(--lumo-shade-10pct), + var(--vaadin-card-box-shadow); + } +`; + +registerStyles('vaadin-card', card, { moduleId: 'lumo-card' }); + +export { card }; diff --git a/packages/card/theme/lumo/vaadin-card.js b/packages/card/theme/lumo/vaadin-card.js new file mode 100644 index 0000000000..e3164eb32b --- /dev/null +++ b/packages/card/theme/lumo/vaadin-card.js @@ -0,0 +1,2 @@ +import './vaadin-card-styles.js'; +import '../../src/vaadin-card.js'; diff --git a/packages/card/theme/material/vaadin-card-styles.js b/packages/card/theme/material/vaadin-card-styles.js new file mode 100644 index 0000000000..e4c01c7055 --- /dev/null +++ b/packages/card/theme/material/vaadin-card-styles.js @@ -0,0 +1,48 @@ +import '@vaadin/vaadin-material-styles/color.js'; +import '@vaadin/vaadin-material-styles/shadow.js'; +import { addGlobalThemeStyles, css, registerStyles } from '@vaadin/vaadin-themable-mixin/register-styles.js'; + +const cardProps = css` + html { + --vaadin-card-background: var(--material-secondary-background-color); + --vaadin-card-border-radius: 8px; + --vaadin-card-border-width: 0; + --vaadin-card-border-color: var(--material-divider-color); + } +`; + +addGlobalThemeStyles('card-props', cardProps); + +const card = css` + :host { + background: var(--vaadin-card-background); + border-radius: var(--vaadin-card-border-radius); + box-shadow: var(--vaadin-card-box-shadow); + position: relative; + } + + /* Could be an inset outline on the host as well, but rounded outlines only work since Safari 16.4 */ + :host::before { + content: ''; + position: absolute; + inset: 0; + z-index: 999; + pointer-events: none; + border-radius: inherit; + border: var(--vaadin-card-border, var(--vaadin-card-border-width) solid var(--vaadin-card-border-color)); + } + + :host([theme~='outlined']) { + --vaadin-card-border-width: 1px; + --vaadin-card-background: transparent; + } + + :host([theme~='elevated']) { + --vaadin-card-background: var(--material-background-color); + --vaadin-card-box-shadow: var(--material-shadow-elevation-2dp); + } +`; + +registerStyles('vaadin-card', card, { moduleId: 'material-card' }); + +export { card }; diff --git a/packages/card/theme/material/vaadin-card.js b/packages/card/theme/material/vaadin-card.js new file mode 100644 index 0000000000..e3164eb32b --- /dev/null +++ b/packages/card/theme/material/vaadin-card.js @@ -0,0 +1,2 @@ +import './vaadin-card-styles.js'; +import '../../src/vaadin-card.js'; diff --git a/packages/card/vaadin-card.d.ts b/packages/card/vaadin-card.d.ts new file mode 100644 index 0000000000..01571e63db --- /dev/null +++ b/packages/card/vaadin-card.d.ts @@ -0,0 +1 @@ +export * from './src/vaadin-card.js'; diff --git a/packages/card/vaadin-card.js b/packages/card/vaadin-card.js new file mode 100644 index 0000000000..a0e3ba45ae --- /dev/null +++ b/packages/card/vaadin-card.js @@ -0,0 +1,3 @@ +import './theme/lumo/vaadin-card.js'; + +export * from './src/vaadin-card.js';