Skip to content

Instantly share code, notes, and snippets.

@branflake2267
Created November 3, 2019 05:20
Show Gist options
  • Save branflake2267/39bf0059450cc2cb5efdd81e1c199ad1 to your computer and use it in GitHub Desktop.
Save branflake2267/39bf0059450cc2cb5efdd81e1c199ad1 to your computer and use it in GitHub Desktop.
Example prototype template
<!DOCTYPE html>
<html>
<head>
<title>${component_title}</title>
<!-- Font -->
<link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet">
</head>
<body>
<style>
html,
body {
font-family: 'Roboto', sans-serif;
}
.example {
border: 1px solid gray;
border-radius: 10px;
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
transition: 0.3s;
}
.example:hover {
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
}
.example_title {
/* border: 1px solid gray; */
padding: 10px;
}
.example_tabs {
/* border: 1px solid gray; */
display: flex;
}
.example_contents {
/* border: 1px solid blue; */
padding: 10px;
}
#example_tabs {
display: flex;
margin-bottom: 10px;
}
.example_tab {
padding: 10px;
width: 100px;
text-align: center;
cursor: pointer;
white-space: nowrap;
}
.example_tab_selected {
border-bottom: 2px solid green;
}
.example_tab_not_selected {}
.example_content_selected {}
.example_content_not_selected {
display: none;
}
</style>
<script>
function toggleTab(event) {
let exampleEl = document.body.querySelector('.example');
let tabsEls = exampleEl.querySelectorAll('.example_tab');
console.log("tabsEls", tabsEls);
let selected = -1;
for (let i = 0; i < tabsEls.length; i++) {
let tabEl = tabsEls[i];
console.log("tabEl", tabEl);
if (tabEl === event.target) {
tabEl.classList.remove('example_tab_not_selected');
tabEl.classList.add('example_tab_selected');
selected = i;
} else {
tabEl.classList.remove('example_tab_selected');
tabEl.classList.add('example_tab_not_selected');
}
}
let contentsEls = exampleEl.querySelectorAll('.example_content');
for (let i = 0; i < contentsEls.length; i++) {
let contentEl = contentsEls[i];
if (selected === i) {
contentEl.classList.remove('example_content_not_selected');
contentEl.classList.add('example_content_selected');
} else {
contentEl.classList.remove('example_content_selected');
contentEl.classList.add('example_content_not_selected');
}
}
}
function addTabListeners() {
let exampleEl = document.body.querySelector('.example');
let tabsEls = exampleEl.querySelectorAll('.example_tab');
for (const tabEl of tabsEls) {
tabEl.onclick = toggleTab;
}
}
function documentOnReady() {
addTabListeners();
}
document.addEventListener("DOMContentLoaded", documentOnReady);
</script>
<div class='example'>
<div class='example_title'>
Example Title
</div>
<div class='example_tabs'>
<div class='example_tab example_tab_selected'>Javascript</div>
<div class='example_tab example_tab_not_selected'>Angular</div>
<div class='example_tab example_tab_not_selected'>React</div>
<div class='example_tab example_tab_not_selected'>Web Components</div>
<div class='example_tab example_tab_not_selected'>Vue</div>
<div class='example_tab example_tab_not_selected'>TypeScript</div>
</div>
<div class='example_contents'>
<div class='example_content example_content_selected'>Javascript</div>
<div class='example_content example_content_not_selected'>Angular</div>
<div class='example_content example_content_not_selected'>React</div>
<div class='example_content example_content_not_selected'>Web Components</div>
<div class='example_content example_content_not_selected'>Vue</div>
<div class='example_content example_content_not_selected'>TypeScript</div>
</div>
</div>
</body>
</html>
@branflake2267
Copy link
Author

Screen Shot 2019-11-02 at 10 18 22 PM

card

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment