Sorry i’m still new to manipulating styles on Shadow DOM elements and webComponents in general. I’m having some issues with styling containers.
Before I begin, I do have css resets on my basic HTML elements, namely:
*{ margin: 0; padding: 0}
Code:
Index.html
<body>
<main>
<!-- Entry point for root of vaadin navigation router web components -->
</main>
</body>
index.js:
import './views/nav-view-vaadin.js'
import { Router } from '@vaadin/router'; //navigation router
window.addEventListener('load', () => {
initRouter();
});
function initRouter() {
const router = new Router(document.querySelector('main'));
router.setRoutes([
{
path: '/',
component: 'nav-view-vaadin'
}
])
}
nav-view-vaadin.js:
import { LitElement, html } from 'lit-element';
import '@vaadin/vaadin-app-layout/vaadin-app-layout.js';
import '@vaadin/vaadin-app-layout/vaadin-drawer-toggle.js'
import '@vaadin/vaadin-tabs/vaadin-tab.js';
import '@vaadin/vaadin-tabs/vaadin-tabs.js';
import '@polymer/iron-icon';
import { registerStyles} from '@vaadin/vaadin-themable-mixin/register-styles.js'
import { css } from '@vaadin/vaadin-themable-mixin/register-styles.js';
registerStyles('vaadin-app-layout', css `
[part="navbar"]
{
background-color: darkgrey;
height: 100px;
}[part="navbar"]
::before{
opacity: 0;
}
[part="content"]
{
background-color: black;
}
`);
class NavViewVaadin extends LitElement{
//static get styles() { return [ navStyles ]
}
render() {
return html`
<custom-style>
<style include="lumo-typography lumo-color">
.content {
background-color: blue;
display: inline-block;
}
</style>
</custom-style>
<vaadin-app-layout primary-section="drawer">
<vaadin-drawer-toggle slot="navbar"></vaadin-drawer-toggle>
<img slot="navbar" src="https://i.imgur.com/GPpnszs.png" alt="Vaadin Logo" width="100" height="31" referrerpolicy="no-referrer">
<vaadin-tabs slot="drawer" orientation="vertical" theme="minimal" style="margin: 0 auto; flex: 1;">
<vaadin-tab>
<iron-icon icon="vaadin:home"></iron-icon>
Hardware inventory
</vaadin-tab>
<vaadin-tab>
<iron-icon icon="vaadin:list"></iron-icon>
Azure AD search
</vaadin-tab>
<vaadin-tab>
<iron-icon icon="vaadin:options"></iron-icon>
Order Hardware
</vaadin-tab>
<vaadin-tab>
<iron-icon icon="vaadin:question"></iron-icon>
Order History
</vaadin-tab>
</vaadin-tabs>
<div class="content">
Hello World
</div>
</vaadin-app-layout>
`
};
};
customElements.define('nav-view-vaadin',NavViewVaadin)
Question #1: There is padding/margin between the navbar container and the content container, how do I make the content of the div container flush with navbar, and which shadow dom part do I need to target for styling? I attached the image of the spacing below.
Question 2 below