diff --git a/index.html b/index.html index 1b16fe3..5d3fc42 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,7 @@ Zephyr - Example - + ZEPHYR @@ -38,11 +38,24 @@ Welcome + to the framework! + + A totally different CSS framework striving to achieve elegance and efficiency by using custom HTML tags with predefined CSS and JS instead of classes. It is highly customizable, allowing for CSS properties to be used as HTML attributes. Has dark-mode + built in. Heavily in development. ZEPHYR + + Made with Zephyr diff --git a/package.json b/package.json new file mode 100644 index 0000000..ed01df7 --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "scripts": { + "min": "css-minify -f zephyr.css -o /" + } +} \ No newline at end of file diff --git a/zephyr.css b/zephyr.css index 0e80cd8..a427481 100644 --- a/zephyr.css +++ b/zephyr.css @@ -7,15 +7,12 @@ znav { display: flex; - width: 100%; height: 10vw; align-items: center; justify-content: space-between; } zl { - padding: 0; - margin: 0; display: flex; list-style-type: none; } @@ -27,18 +24,20 @@ zbody { zfoot { display: flex; - width: 100%; height: 10vw; align-items: center; justify-content: space-between; } +zp { + font-size: 1.2vw; + letter-spacing: 0.01vw; +} + zh1 { -webkit-text-fill-color: transparent; font-size: 4vw; letter-spacing: 0.5vw; - padding: 0; - margin: 0; } zdark { @@ -50,48 +49,85 @@ zdark { zh2 { font-size: 3.5vw; letter-spacing: 0.1vw; - padding: 0; - margin: 0; - text-align: center; } zh3 { font-size: 2vw; letter-spacing: 0.05vw; - padding: 0; - margin: 0; - text-align: center; +} + +zh4 { + font-size: 1.3vw; + letter-spacing: 0.05vw; } zli { font-size: 1.5vw; letter-spacing: 0.1vw; margin: 0 1vw 0; - padding: 0; } zsection { - margin: 5vw 0 5vw; display: flex; - width: 100%; - justify-content: space-around; + flex-direction: column; + height: 20vw; + align-items: center; } zloader { position: absolute; left: 50%; top: 50%; - z-index: 1; width: 120px; height: 120px; margin: -76px 0 0 -76px; border: 16px solid var(--bgColor); border-radius: 50%; border-top: 16px solid var(--color); - -webkit-animation: spin 2s linear infinite; animation: spin 2s linear infinite; } +zicon { + display: block; + height: 4vw; + width: 4vw; + background-size: cover; +} + +ztable { + display: table; + border-collapse: separate; + box-sizing: border-box; + text-indent: initial; + border-spacing: 2px; + font-size: 1.75vw; + letter-spacing: 0.15vw; + padding: 0; + margin: 0; + border: 0.25vw solid var(--color); + border-radius: 2px; +} + +ztr { + display: table-row; + vertical-align: inherit; + border-color: inherit; + border-collapse: separate; + text-indent: initial; + border-spacing: 2px; +} + +ztd { + font-size: 1.2vw; + letter-spacing: 0.01vw; + padding: 1vw; + display: table-cell; + vertical-align: inherit; + border-collapse: separate; + text-indent: initial; + border-spacing: 2px; +} + za { display: inline-block; position: relative; diff --git a/zephyr.js b/zephyr.js index 00df417..8c26c68 100644 --- a/zephyr.js +++ b/zephyr.js @@ -13,6 +13,7 @@ const darkSwitch = () => { dark = !dark document.querySelectorAll("za").forEach(navlink => { + if (navlink.parentNode.nodeName.toLowerCase() != "zli") return if (window.location.pathname.split("/").pop() == "") if (navlink.getAttribute("href") == "index.html") return navlink.className = "active" if (navlink.getAttribute("href") == window.location.pathname.split("/").pop()) return navlink.className = "active" @@ -53,6 +54,10 @@ HTMLElement.prototype.attributeToCSS = function() { this.addEventListener("click", (() => window.location.href = a.value)) return this.style.cursor = "pointer" } + if (a.name == "src") { + if (a.value.includes("http")) return this.style.backgroundImage = `url(${a.value})` + return this.style.backgroundImage = `url(${a.value})` + } this.style[a.name] = a.value }) } @@ -67,9 +72,8 @@ setInterval(() => { i++ }, 10) -document.querySelector("zbody").style.opacity = 0 - document.addEventListener("DOMContentLoaded", () => document.querySelectorAll("zloader").forEach(loader => { + document.querySelector("zbody").style.opacity = 0 if (loader.getAttribute("waitFor") == "windowLoad") { if (loader.hasAttribute("delay")) { return setTimeout(() => { diff --git a/zephyr.min.css b/zephyr.min.css new file mode 100644 index 0000000..0159e3c --- /dev/null +++ b/zephyr.min.css @@ -0,0 +1 @@ +@import "utils/fonts.css";*{background-color:var(--bgColor);color:var(--color);scroll-behavior:smooth}znav{align-items:center;height:10vw;justify-content:space-between}zl,znav{display:flex}zl{list-style-type:none}zbody{display:block;margin:0 3vw}zfoot{align-items:center;display:flex;height:10vw;justify-content:space-between}zp{font-size:1.2vw;letter-spacing:.01vw}zh1{-webkit-text-fill-color:transparent;font-size:4vw;letter-spacing:.5vw}zdark{border:.25vw solid var(--color);font-size:1.3vw;padding:.5vw}zh2{font-size:3.5vw;letter-spacing:.1vw}zh3{font-size:2vw}zh3,zh4{letter-spacing:.05vw}zh4{font-size:1.3vw}zli{font-size:1.5vw;letter-spacing:.1vw;margin:0 1vw}zsection{align-items:center;display:flex;flex-direction:column;height:20vw}zloader{animation:spin 2s linear infinite;border-radius:50%;border-top:16px solid var(--bgColor);border:16px solid var(--bgColor);border-top-color:var(--color);height:120px;left:50%;margin:-76px 0 0 -76px;position:absolute;top:50%;width:120px}zicon{background-size:cover;display:block;height:4vw;width:4vw}ztable{border:.25vw solid var(--color);border-collapse:separate;border-radius:2px;border-spacing:2px;box-sizing:border-box;display:table;font-size:1.75vw;letter-spacing:.15vw;margin:0;padding:0;text-indent:0}ztr{border-color:inherit;display:table-row}ztd,ztr{border-collapse:separate;border-spacing:2px;text-indent:0;vertical-align:inherit}ztd{display:table-cell;font-size:1.2vw;letter-spacing:.01vw;padding:1vw}za{display:inline-block;position:relative}za:after{background-color:var(--color);bottom:-.25vw;content:"";height:.15vw;left:0;position:absolute;transform:scaleX(0);transform-origin:bottom right;transition:transform .25s ease-out;width:100%}za:hover:after{color:var(--color)}.active:after,za:hover:after{transform:scaleX(1);transform-origin:bottom left}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}} \ No newline at end of file