develop #1
3 changed files with 116 additions and 9 deletions
25
index.html
25
index.html
|
@ -1,11 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%sveltekit.assets%/favicon.png" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
</body>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link rel="icon" href="/static/images/home-icon.png">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
|
||||
<link rel="stylesheet" href="/src/css/index.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
<footer>
|
||||
<bottom-app-bar></bottom-app-bar>
|
||||
</footer>
|
||||
|
||||
<script src="/src/components/bottom-app-bar.js" type="module"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
77
src/components/bottom-app-bar.js
Normal file
77
src/components/bottom-app-bar.js
Normal file
|
@ -0,0 +1,77 @@
|
|||
const template = `
|
||||
<div>
|
||||
<img src="/static/images/home-icon.png">
|
||||
</div>
|
||||
<div>
|
||||
<img src="/static/images/routes-icon.png">
|
||||
</div>
|
||||
<div>
|
||||
<img src="/static/images/settings-icon.png">
|
||||
</div>
|
||||
`;
|
||||
const style = `
|
||||
:host {
|
||||
position: fixed;
|
||||
bottom: 20px;
|
||||
display: flex;
|
||||
height: 42px;
|
||||
width: 80%;
|
||||
border-radius: 90px;
|
||||
box-shadow: 0 0 50px #ccc;
|
||||
}
|
||||
|
||||
:host > div {
|
||||
flex: 1;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
}
|
||||
|
||||
img {
|
||||
display: block;
|
||||
height: 32px;
|
||||
width: auto;
|
||||
}
|
||||
`;
|
||||
|
||||
/**
|
||||
* Bottom app bar custom element.
|
||||
*/
|
||||
class BottomAppBar extends HTMLElement {
|
||||
#elements = {};
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
this.#createShadowDOM();
|
||||
this.#setElements();
|
||||
this.#addEventListeners();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create shadow DOM.
|
||||
*/
|
||||
#createShadowDOM() {
|
||||
this.attachShadow({mode: 'open'});
|
||||
this.shadowRoot.innerHTML = `
|
||||
<style>${style}</style>
|
||||
${template}
|
||||
`;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set all shadow dom selectors.
|
||||
*/
|
||||
#setElements() {
|
||||
this.selectors = {};
|
||||
}
|
||||
|
||||
#addEventListeners() {}
|
||||
}
|
||||
|
||||
customElements.define('bottom-app-bar', BottomAppBar);
|
||||
|
||||
export default BottomAppBar;
|
||||
|
19
src/css/index.css
Normal file
19
src/css/index.css
Normal file
|
@ -0,0 +1,19 @@
|
|||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
footer {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
width: 100%;
|
||||
}
|
Loading…
Reference in a new issue