Skip to content

Commit db467b5

Browse files
authored
fix: remove message list markdown outermost margins (#9254)
1 parent ec5fd0d commit db467b5

File tree

7 files changed

+37
-2
lines changed

7 files changed

+37
-2
lines changed

packages/message-list/src/vaadin-message-list.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
55
*/
66
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
7+
import { SlotStylesMixin } from '@vaadin/component-base/src/slot-styles-mixin.js';
78
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
89
import { MessageListMixin } from './vaadin-message-list-mixin.js';
910

@@ -42,7 +43,7 @@ export { MessageListItem } from './vaadin-message-list-mixin.js';
4243
*
4344
* See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.
4445
*/
45-
declare class MessageList extends MessageListMixin(ThemableMixin(ElementMixin(HTMLElement))) {}
46+
declare class MessageList extends SlotStylesMixin(MessageListMixin(ThemableMixin(ElementMixin(HTMLElement)))) {}
4647

4748
declare global {
4849
interface HTMLElementTagNameMap {

packages/message-list/src/vaadin-message-list.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { css, html, LitElement } from 'lit';
88
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
99
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
1010
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
11+
import { SlotStylesMixin } from '@vaadin/component-base/src/slot-styles-mixin.js';
1112
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
1213
import { MessageListMixin } from './vaadin-message-list-mixin.js';
1314

@@ -49,8 +50,9 @@ import { MessageListMixin } from './vaadin-message-list-mixin.js';
4950
* @mixes ThemableMixin
5051
* @mixes ElementMixin
5152
* @mixes MessageListMixin
53+
* @mixes SlotStylesMixin
5254
*/
53-
class MessageList extends MessageListMixin(ElementMixin(ThemableMixin(PolylitMixin(LitElement)))) {
55+
class MessageList extends SlotStylesMixin(MessageListMixin(ElementMixin(ThemableMixin(PolylitMixin(LitElement))))) {
5456
static get is() {
5557
return 'vaadin-message-list';
5658
}
@@ -76,6 +78,22 @@ class MessageList extends MessageListMixin(ElementMixin(ThemableMixin(PolylitMix
7678
</div>
7779
`;
7880
}
81+
82+
/** @protected */
83+
get slotStyles() {
84+
const tag = this.localName;
85+
return [
86+
`
87+
${tag} :where(vaadin-markdown > :is(h1, h2, h3, h4, h5, h6, p, ul, ol):first-child) {
88+
margin-top: 0;
89+
}
90+
91+
${tag} :where(vaadin-markdown > :is(h1, h2, h3, h4, h5, h6, p, ul, ol):last-child) {
92+
margin-bottom: 0;
93+
}
94+
`,
95+
];
96+
}
7997
}
8098

8199
defineCustomElement(MessageList);

packages/message-list/test/visual/lumo/message-list.test.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,22 @@ describe('message-list', () => {
6868
await nextFrame();
6969
await visualDiff(div, `${dir}-markdown`);
7070
});
71+
72+
it('markdown - margin overrides', async () => {
73+
// Override the default margins in application styles with a stronger selector
74+
fixtureSync(`
75+
<style>
76+
vaadin-message-list p {
77+
margin: 20px;
78+
}
79+
</style>
80+
`);
81+
82+
element.markdown = true;
83+
await customElements.whenDefined('vaadin-markdown');
84+
await nextFrame();
85+
await visualDiff(div, `${dir}-markdown-margin-overrides`);
86+
});
7187
});
7288
});
7389
});
14.3 KB
Loading
-550 Bytes
Loading
13.8 KB
Loading
-508 Bytes
Loading

0 commit comments

Comments
 (0)