diff --git a/.idea/Webshop.iml b/.idea/Webshop.iml index d6ebd48..533a2cb 100644 --- a/.idea/Webshop.iml +++ b/.idea/Webshop.iml @@ -5,5 +5,6 @@ + \ No newline at end of file diff --git a/.idea/git_toolbox_prj.xml b/.idea/git_toolbox_prj.xml new file mode 100644 index 0000000..02b915b --- /dev/null +++ b/.idea/git_toolbox_prj.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml new file mode 100644 index 0000000..9da3653 --- /dev/null +++ b/.idea/jsLibraryMappings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml index 7ed6e52..a8b32a1 100644 --- a/.idea/sqldialects.xml +++ b/.idea/sqldialects.xml @@ -1,7 +1,7 @@ - - + + \ No newline at end of file diff --git a/src/frontend/example/01_counter/index.html b/src/frontend/example/01_counter/index.html index 12bb760..b1e6e92 100644 --- a/src/frontend/example/01_counter/index.html +++ b/src/frontend/example/01_counter/index.html @@ -7,7 +7,7 @@ Counter - +
diff --git a/src/styles.css b/src/frontend/example/01_counter/styles.css similarity index 100% rename from src/styles.css rename to src/frontend/example/01_counter/styles.css diff --git a/src/frontend/example/05_sidebar/app.js b/src/frontend/example/05_sidebar/app.js new file mode 100644 index 0000000..0bf53f3 --- /dev/null +++ b/src/frontend/example/05_sidebar/app.js @@ -0,0 +1,16 @@ +const toggleBtn = document.querySelector(".sidebar-toggle"); +const closeBtn = document.querySelector(".close-btn"); +const sidebar = document.querySelector(".sidebar"); + +toggleBtn.addEventListener("click", function () { + // if (sidebar.classList.contains("show-sidebar")) { + // sidebar.classList.remove("show-sidebar"); + // } else { + // sidebar.classList.add("show-sidebar"); + // } + sidebar.classList.toggle("show-sidebar"); +}); + +closeBtn.addEventListener("click", function () { + sidebar.classList.remove("show-sidebar"); +}); diff --git a/src/frontend/example/05_sidebar/index.html b/src/frontend/example/05_sidebar/index.html new file mode 100644 index 0000000..f4fb120 --- /dev/null +++ b/src/frontend/example/05_sidebar/index.html @@ -0,0 +1,69 @@ + + + + + + Sidebar + + + + + + + + + + \ No newline at end of file diff --git a/src/frontend/example/05_sidebar/logo.svg b/src/frontend/example/05_sidebar/logo.svg new file mode 100644 index 0000000..cccc49b --- /dev/null +++ b/src/frontend/example/05_sidebar/logo.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/frontend/example/05_sidebar/styles.css b/src/frontend/example/05_sidebar/styles.css new file mode 100644 index 0000000..2bfcaf8 --- /dev/null +++ b/src/frontend/example/05_sidebar/styles.css @@ -0,0 +1,289 @@ +/* +=============== +Fonts +=============== +*/ +@import url('https://fonts.googleapis.com/css?family=Open+Sans|Roboto:400,700&display=swap'); + +/* +=============== +Variables +=============== +*/ + +:root { + /* dark shades of primary color*/ + --clr-primary-1: hsl(205, 86%, 17%); + --clr-primary-2: hsl(205, 77%, 27%); + --clr-primary-3: hsl(205, 72%, 37%); + --clr-primary-4: hsl(205, 63%, 48%); + /* primary/main color */ + --clr-primary-5: hsl(205, 78%, 60%); + /* lighter shades of primary color */ + --clr-primary-6: hsl(205, 89%, 70%); + --clr-primary-7: hsl(205, 90%, 76%); + --clr-primary-8: hsl(205, 86%, 81%); + --clr-primary-9: hsl(205, 90%, 88%); + --clr-primary-10: hsl(205, 100%, 96%); + /* darkest grey - used for headings */ + --clr-grey-1: hsl(209, 61%, 16%); + --clr-grey-2: hsl(211, 39%, 23%); + --clr-grey-3: hsl(209, 34%, 30%); + --clr-grey-4: hsl(209, 28%, 39%); + /* grey used for paragraphs */ + --clr-grey-5: hsl(210, 22%, 49%); + --clr-grey-6: hsl(209, 23%, 60%); + --clr-grey-7: hsl(211, 27%, 70%); + --clr-grey-8: hsl(210, 31%, 80%); + --clr-grey-9: hsl(212, 33%, 89%); + --clr-grey-10: hsl(210, 36%, 96%); + --clr-white: #fff; + --clr-red-dark: hsl(360, 67%, 44%); + --clr-red-light: hsl(360, 71%, 66%); + --clr-green-dark: hsl(125, 67%, 44%); + --clr-green-light: hsl(125, 71%, 66%); + --clr-black: #222; + --ff-primary: 'Roboto', sans-serif; + --ff-secondary: 'Open Sans', sans-serif; + --transition: all 0.3s linear; + --spacing: 0.1rem; + --radius: 0.25rem; + --light-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); + --dark-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); + --max-width: 1170px; + --fixed-width: 620px; +} + +/* +=============== +Global Styles +=============== +*/ + +*, +::after, +::before { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: var(--ff-secondary); + background: var(--clr-grey-10); + color: var(--clr-grey-1); + line-height: 1.5; + font-size: 0.875rem; +} + +ul { + list-style-type: none; +} + +a { + text-decoration: none; +} + +h1, +h2, +h3, +h4 { + letter-spacing: var(--spacing); + text-transform: capitalize; + line-height: 1.25; + margin-bottom: 0.75rem; + font-family: var(--ff-primary); +} + +h1 { + font-size: 3rem; +} + +h2 { + font-size: 2rem; +} + +h3 { + font-size: 1.25rem; +} + +h4 { + font-size: 0.875rem; +} + +p { + margin-bottom: 1.25rem; + color: var(--clr-grey-5); +} + +@media screen and (min-width: 800px) { + h1 { + font-size: 4rem; + } + + h2 { + font-size: 2.5rem; + } + + h3 { + font-size: 1.75rem; + } + + h4 { + font-size: 1rem; + } + + body { + font-size: 1rem; + } + + h1, + h2, + h3, + h4 { + line-height: 1; + } +} + +/* global classes */ + +/* section */ +.section { + padding: 5rem 0; +} + +.section-center { + width: 90vw; + margin: 0 auto; + max-width: 1170px; +} + +@media screen and (min-width: 992px) { + .section-center { + width: 95vw; + } +} + +main { + min-height: 100vh; + display: grid; + place-items: center; +} + +/* +=============== +Sidebar +=============== +*/ +.sidebar-toggle { + position: fixed; + top: 2rem; + right: 3rem; + font-size: 2rem; + background: transparent; + border-color: transparent; + color: var(--clr-primary-5); + transition: var(--transition); + cursor: pointer; + animation: bounce 2s ease-in-out infinite; +} + +.sidebar-toggle:hover { + color: var(--clr-primary-7); +} + +@keyframes bounce { + 0% { + transform: scale(1); + } + 50% { + transform: scale(1.5); + } + 100% { + transform: scale(1); + } +} + +.sidebar-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 1.5rem; +} + +.close-btn { + font-size: 1.75rem; + background: transparent; + border-color: transparent; + color: var(--clr-primary-5); + transition: var(--transition); + cursor: pointer; + color: var(--clr-red-dark); +} + +.close-btn:hover { + color: var(--clr-red-light); + transform: rotate(360deg); +} + +.logo { + justify-self: center; + height: 40px; +} + +.links a { + display: block; + font-size: 1.5rem; + text-transform: capitalize; + padding: 1rem 1.5rem; + color: var(--clr-grey-5); + transition: var(--transition); +} + +.links a:hover { + background: var(--clr-primary-8); + color: var(--clr-primary-5); + padding-left: 1.75rem; +} + +.social-icons { + justify-self: center; + display: flex; + padding-bottom: 2rem; +} + +.social-icons a { + font-size: 1.5rem; + margin: 0 0.5rem; + color: var(--clr-primary-5); + transition: var(--transition); +} + +.social-icons a:hover { + color: var(--clr-primary-1); +} + +.sidebar { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: var(--clr-white); + display: grid; + grid-template-rows: auto 1fr auto; + row-gap: 1rem; + box-shadow: var(--clr-red-dark); + transition: var(--transition); + /* transform: translate(-100%); */ +} + +.show-sidebar { + transform: translate(0); +} + +@media screen and (min-width: 676px) { + .sidebar { + width: 400px; + } +} diff --git a/src/frontend/example/grid_layout/index.html b/src/frontend/example/grid_layout/index.html index 1d2c511..39c892c 100644 --- a/src/frontend/example/grid_layout/index.html +++ b/src/frontend/example/grid_layout/index.html @@ -3,7 +3,7 @@ Example 1 - + diff --git a/src/frontend/example/toggle_dark_light/app.js b/src/frontend/example/toggle_dark_light/app.js new file mode 100644 index 0000000..9b25a26 --- /dev/null +++ b/src/frontend/example/toggle_dark_light/app.js @@ -0,0 +1,4 @@ +function switchLightDark() { + let element = document.body + element.classList.toggle("dark-mode") +} \ No newline at end of file diff --git a/src/frontend/example/toggle_dark_light/index.html b/src/frontend/example/toggle_dark_light/index.html new file mode 100644 index 0000000..2b0ee21 --- /dev/null +++ b/src/frontend/example/toggle_dark_light/index.html @@ -0,0 +1,17 @@ + + + + + + Darkmode + + + +

Toggle Dark/Light Mode

+

Click the button to toggle between dark and light mode for this page.

+ + + + + + \ No newline at end of file diff --git a/src/frontend/example/toggle_dark_light/styles.css b/src/frontend/example/toggle_dark_light/styles.css new file mode 100644 index 0000000..aebb339 --- /dev/null +++ b/src/frontend/example/toggle_dark_light/styles.css @@ -0,0 +1,11 @@ +body { + padding: 25px; + background-color: white; + color: black; + font-size: 25px; +} + +.dark-mode { + background-color: black; + color: white; +} \ No newline at end of file