From ef3088c3f18991d272257bcb193ee52ee30a3416 Mon Sep 17 00:00:00 2001 From: Byte Dice Date: Fri, 14 Nov 2025 19:43:15 +0100 Subject: [PATCH] Added ./libs/ direcroty (and the pages). --- assets/icons/return_8x8.png | Bin 0 -> 506 bytes assets/icons/testtube_8x8.png | Bin 0 -> 505 bytes assets/js.png | Bin 0 -> 11139 bytes data/loadingScreenTips.json | 2 +- data/navBar.json | 28 +++++- global/globalScript.js | 6 +- global/globalStyle.css | 2 +- global/navBar.js | 4 +- libs/index.html | 62 +++++++++++++ libs/script.js | 1 + libs/style.css | 68 ++++++++++++++ libs/test/calendar_test.js | 168 ++++++++++++++++++++++++++++++++++ libs/test/index.html | 71 ++++++++++++++ sitemap.xml | 21 ++++- toys/index.html | 22 ++--- toys/license/index.html | 2 +- toys/sc-tracker/index.html | 80 ---------------- toys/sc-tracker/script.js | 1 - toys/sc-tracker/style.css | 0 toys/style.css | 18 ++-- 20 files changed, 444 insertions(+), 112 deletions(-) create mode 100644 assets/icons/return_8x8.png create mode 100644 assets/icons/testtube_8x8.png create mode 100644 assets/js.png create mode 100644 libs/index.html create mode 100644 libs/script.js create mode 100644 libs/style.css create mode 100644 libs/test/calendar_test.js create mode 100644 libs/test/index.html delete mode 100644 toys/sc-tracker/index.html delete mode 100644 toys/sc-tracker/script.js delete mode 100644 toys/sc-tracker/style.css diff --git a/assets/icons/return_8x8.png b/assets/icons/return_8x8.png new file mode 100644 index 0000000000000000000000000000000000000000..b00402b89f6a7b9de4a6649a98792abac27e806c GIT binary patch literal 506 zcmVq5gB-jcz76A*< z##iA#&{nWj5ClaKv9hXe!q)zAy0Oo1-8eUH&FzEODgCh}S1-NxG(_8ltD<%TiXk z|IgDl#>cANJA%;i=s2&#(7Fv@703BJbeyjva6iC#zUD7TPLuDVS8CeOK6p3a^rEIE zcHnFi`tQxS75|akGF^rNFDKBs2tC)(zFf`fcb(%qh^@;LUBT`ijL3fP$~OcUXbh;_ zL^A*Y010qNS#tmY4`BcR4`BhQKc{H`001&cL_t&-S7Trx2gu9IGXU{_kX|O30Wbk{ w1HlS#NrL1U@kxT@!6t$f5m1QV8oV9_041ym=zt7LVE_OC07*qoM6N<$f~yYJ@Bjb+ literal 0 HcmV?d00001 diff --git a/assets/icons/testtube_8x8.png b/assets/icons/testtube_8x8.png new file mode 100644 index 0000000000000000000000000000000000000000..51bb7085f8e0cf7bb80640a160f5e445cc1c0b48 GIT binary patch literal 505 zcmV-CzLvw4N}C$kI)o=Q-6#o93y0TBy5b$-J}s9> z2_Fml4LP9jjnb1fepQ^U@uy-V7MTIN>gmlkak7cEoKX-S5%v}GWvzZ5brW~GxDb^( zAaf9t2qA)aNm6E&JS75Bi;`Ju-)Pl0&zg8N`Ri<8h$Bl*yna#3(lsqLBYIlCJR2(a zzj>OO@v&NWcM#fNEbC(koO@8&wXB~L%c`7$;~B1s4gZ?tH1#F=ZbS1OfoBUYt{Yl% zA1=3{|4C06iK^s~Y0qTf{T#aD(0d1+%eAcP>zqA8Y*U`-77h+!SoV8XegP8~XcK!G z(JBA{010qNS#tmY4`BcR4`BhQKc{H`001#bL_t&-S7T%V0(p7){~#J2Jbd_&5iSN( v1fr2OFyYk&l*CYgZXF#=Kyf3w4?vOt73dXwXiYd$00000NkvXXu0mjft_0Bz literal 0 HcmV?d00001 diff --git a/assets/js.png b/assets/js.png new file mode 100644 index 0000000000000000000000000000000000000000..9f148627c5e3b856258811cef134e546cd77beb0 GIT binary patch literal 11139 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 opR + + + + + + + + + + + + + Byte Dice - Libs + + + + + + + + + + + + + + + +
+ + +
    +
  • +
    + +
    +

    Test

    +

    Nothing here yet

    +
    +
    + <script src="nothing here yet"></script> +
    +
    +
  • +
+
+ +
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/script.js b/libs/script.js new file mode 100644 index 0000000..0a452dc --- /dev/null +++ b/libs/script.js @@ -0,0 +1 @@ +CURRENT_PAGE = PAGES.LIBS \ No newline at end of file diff --git a/libs/style.css b/libs/style.css new file mode 100644 index 0000000..4c3df23 --- /dev/null +++ b/libs/style.css @@ -0,0 +1,68 @@ +.libContainer { + border: none; + display: grid; + width: 100%; + max-height: calc(39px * var(--pxDensity)); + grid-template-columns: calc(24px * var(--pxDensity)) 1fr; + grid-template-rows: 1fr auto; + color: inherit; +} +.libImg { + image-rendering: pixelated; + overflow: hidden; + width: 100%; + height: 100%; + object-fit: contain; + margin: auto auto; +} +.libSrcContainer { + background-color: var(--navBar_SecondInner); + padding: calc(1px * var(--pxDensity)); + border-top: calc(1px * var(--pxDensity)) solid var(--navBar_Border); + text-align: left; + overflow-x: hidden; + grid-column: 1 / -1; + grid-row: 2; +} +.libTextContainer { + background-color: var(--navBar_SecondInner); + padding: calc(1px * var(--pxDensity)); + border-left: calc(1px * var(--pxDensity)) solid var(--navBar_Border); + text-align: left; + overflow-y: scroll; + overflow-x: hidden; + height: calc(100% - (2px * var(--pxDensity))); +} +h1 { + font-size: max(1.2em, 2.5vmin); + margin: 0%; + margin-bottom: calc(1px * var(--pxDensity)); +} +.desc { + font-size: max(1em, 2vmin); + margin: 0%; +} +button:hover { + filter: brightness(1.15) drop-shadow(0px calc(1px * var(--pxDensity)) rgba(0, 0, 0, 0.5)); + cursor: pointer; +} +button:active { + filter: brightness(0.85); + transform: translateY(calc(1px * var(--pxDensity))); +} +.libUl { + padding: calc(3px * var(--pxDensity)); + display: grid; + grid-template-columns: 1fr 1fr; + gap: calc(6px * var(--pxDensity)) +} +@media (max-width: 1024px) { + .libUl { grid-template-columns: 1fr !important; } +} +.libLi { + margin: 0; +} +ul { + margin: 0%; + padding: 0%; +} \ No newline at end of file diff --git a/libs/test/calendar_test.js b/libs/test/calendar_test.js new file mode 100644 index 0000000..1849d77 --- /dev/null +++ b/libs/test/calendar_test.js @@ -0,0 +1,168 @@ +//const libCCss = `//#file { ./lib_style.css }` +const libCss = ` +:root { + --c-a-cell-width: 0px; /* automatically set */ + --c-a-cell-height: 0px; /* automatically set */ + + --c-width: 700px; + --c-height: 400px; + --c-cell-x-count: 7; + --c-cell-y-count: 7; + --c-time-width: 50px; + --c-date-height: 1.5em; + + --c-s-grid-line-width: 2px; + --c-s-grid-line-color: #000000; +} + +div.c-base { + background-color: darkgray; + display: grid; + grid-template-columns: var(--c-time-width) 1fr; + grid-template-rows: var(--c-date-height) 1fr; + width: var(--c-width); + height: var(--c-height); + padding-bottom: 0.5em; +} + +ul.c-ul { + list-style-type: none; + margin: 0; + padding: 0; +} + +ul.c-times { + display: grid; + grid-template-rows: repeat(var(--c-cell-y-count), 1fr); + grid-template-columns: 1fr; + margin: -0.5em 0; +} + +ul.c-dates { + display: grid; + grid-template-columns: repeat(var(--c-cell-x-count), 1fr); + grid-template-rows: 1fr; + text-align: center; +} + +div.c-grid { + background: /* Grid lines */ + repeating-linear-gradient( + 0deg, + var(--c-s-grid-line-color), + var(--c-s-grid-line-color) var(--c-s-grid-line-width), + transparent var(--c-s-grid-line-width), + transparent calc((var(--c-height) / var(--c-cell-y-count))) + ), + repeating-linear-gradient( + 90deg, + var(--c-s-grid-line-color), + var(--c-s-grid-line-color) var(--c-s-grid-line-width), + transparent var(--c-s-grid-line-width), + transparent calc((var(--c-width) / var(--c-cell-x-count))) + ); + + background-size: calc(100% / var(--c-cell-x-count)) + calc(100% / var(--c-cell-y-count)); + + display: grid; + grid-template-columns: repeat(var(--c-cell-x-count), 1fr); + grid-template-rows: 1fr; +} +`; + + +class CalendarSettings { + // Not implemented +} + + +/** + * A calendar-style element. + */ +class Calendar { + debug = false; + + /** + * Creates a calendar object. + * + * @param {number} cellCountX How many cells on the X axis + * @param {number} cellCountY How many cells on the Y axis + * @param {[string]} timeItems A list of strings that is rendered to the left of the grid (usually timestamps) + * @param {[string]} dateItems A list of strings that is rendered above the grid (usually dates) + */ + constructor(cellCountX, cellCountY, timeItems, dateItems) { + this.cellCount = { x: cellCountX, y: cellCountY }; + this.timeItems = timeItems; + this.dateItems = dateItems; + } + + /** + * Adds the calendar element to the document. This method also generates the calendar element. + * + * @param {HTMLElement} child An optional HTML element where the calendar resides in. No value makes it use the . + */ + attachElement(child = null) { + console.log("Attached calendar to HTML page."); + child.appendChild(this.#generateElement()); + } + + /** + * Adds pre-made CSS to the document. This CSS can be partially overridden or can be skipped completely. + */ + attachCss() { + let s = document.createElement("style"); + s.textContent = libCss; + document.head.insertBefore(s, document.head.firstChild); + } + + + #generateElement() { + let c = document.createElement("div"); + c.className = "c-base"; + + let cEmpty = document.createElement("div"); + cEmpty.style.display = "inline-block"; + + let cDates = document.createElement("ul"); + cDates.className = "c-dates c-ul"; + + let cTimes = document.createElement("ul"); + cTimes.className = "c-times c-ul"; + + let cGrid = document.createElement("div"); + cGrid.className = "c-grid"; + + if (this.debug) { + let s = "red solid 1px"; + cDates.style.outline = s; + cTimes.style.outline = s; + cGrid.style.outline = "blue solid 1px"; + } + + let all = [cEmpty, cDates, cTimes, cGrid]; + for (let el of all) { c.appendChild(el); } + + this.#generateDates(cDates); + this.#generateTimes(cTimes); + + return c; + } + + #generateDates(el) { + for (let i of this.dateItems) { + let li = document.createElement("li"); + li.innerText = i; + el.appendChild(li); + } + } + + #generateTimes(el) { + for (let i of this.timeItems) { + let li = document.createElement("li"); + li.className = "c-time"; + li.innerText = i; + el.appendChild(li); + } + } +} \ No newline at end of file diff --git a/libs/test/index.html b/libs/test/index.html new file mode 100644 index 0000000..52b062e --- /dev/null +++ b/libs/test/index.html @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + Byte Dice - Libs [EXPERIMENTAL] + + + + + + + + + + + + + + + +
+ + +
+

+ WARNING +

+ These are experimental/testing libraries. Do not expect them to function. Do not expect them to stay functioning. Do not expect them stay as a whole. Do not expect their advertising to be correct. Do not expect anything from them. +
+ +
+ +
    +
  • +
    + +
    +

    Calendar Library

    +

    A fully customizable calendar library. So customizable that you can barely call it a calendar library.

    +
    +
    + <script src="https://www.bytedice.net/libs/test/calendar_test.js"></script> +
    +
    +
  • +
+
+ +
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index f169dad..84a20f6 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -3,21 +3,36 @@ https://www.bytedice.net 1.00 - 2025-01-28 + 2025-09-08 https://www.bytedice.net/toys 0.67 - 2025-01-28 + 2025-11-14 + + + https://www.bytedice.net/libs + 0.67 + 2025-11-14 https://www.bytedice.net/404.html 0.67 2025-01-25 + + https://www.bytedice.net/toys/loading + 0.33 + 2025-11-14 + https://www.bytedice.net/toys/license 0.33 - 2025-07-02 + 2025-11-14 + + + https://www.bytedice.net/libs/test + 0.33 + 2025-11-14 \ No newline at end of file diff --git a/toys/index.html b/toys/index.html index 6536041..2122c12 100644 --- a/toys/index.html +++ b/toys/index.html @@ -28,9 +28,9 @@
- + -
    +
-
  • +
  • +
  • +
  • diff --git a/toys/license/index.html b/toys/license/index.html index c6a2083..a3e9c85 100644 --- a/toys/license/index.html +++ b/toys/license/index.html @@ -191,7 +191,7 @@

    Original by Chilli
    Remade by Byte Dice at bytedice.net/toys

    - +
    diff --git a/toys/sc-tracker/index.html b/toys/sc-tracker/index.html deleted file mode 100644 index 1f55a38..0000000 --- a/toys/sc-tracker/index.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - Byte Dice - Super Credit Tracker - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - -
    - - - - - - - - - - - - - - \ No newline at end of file diff --git a/toys/sc-tracker/script.js b/toys/sc-tracker/script.js deleted file mode 100644 index f1382df..0000000 --- a/toys/sc-tracker/script.js +++ /dev/null @@ -1 +0,0 @@ -CURRENT_PAGE = PAGES.SC_TRACKER \ No newline at end of file diff --git a/toys/sc-tracker/style.css b/toys/sc-tracker/style.css deleted file mode 100644 index e69de29..0000000 diff --git a/toys/style.css b/toys/style.css index bb7c9ed..f60734a 100644 --- a/toys/style.css +++ b/toys/style.css @@ -1,8 +1,7 @@ .toyContainer { border: none; - width: calc(64px * var(--pxDensity)); - /* height: calc(48px * var(--pxDensity)); */ display: grid; + width: 100%; grid-template-columns: 1fr; grid-template-rows: calc(32px * var(--pxDensity)) 1fr; color: inherit; @@ -10,9 +9,10 @@ .toyImg { image-rendering: pixelated; overflow: hidden; - max-width: calc(62px * var(--pxDensity)); - height: calc(32px * var(--pxDensity)); - margin: 0% auto; + width: 100%; + height: 100%; + object-fit: contain; + margin: auto auto; } .toyTextContainer { background-color: var(--navBar_SecondInner); @@ -40,8 +40,14 @@ button:active { filter: brightness(0.85); transform: translateY(calc(1px * var(--pxDensity))); } +.toyUl { + padding: calc(3px * var(--pxDensity)); + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: calc(6px * var(--pxDensity)) +} .toyLi { - margin: calc(3px * var(--pxDensity)); + margin: 0; } ul { margin: 0%;