From 8e168ab78dff0c4d4260af92611b3a671c135172 Mon Sep 17 00:00:00 2001 From: David Mosbach Date: Sun, 27 Aug 2023 02:04:29 +0200 Subject: [PATCH] added footer & logo --- editor.css | 44 ++- editor.html | 618 ++++++++++++++++++++++++++++++++++++- editor.ts | 10 +- images/attention.svg | 83 +++++ images/errors.svg | 78 +++++ images/favicon.png | Bin 0 -> 525758 bytes images/favicon.png.license | 3 + images/git.svg | 97 ++++++ images/logo.svg | 239 ++++++++++++++ images/nodes.svg | 72 +++++ images/stages.svg | 73 +++++ 11 files changed, 1311 insertions(+), 6 deletions(-) create mode 100644 images/attention.svg create mode 100644 images/errors.svg create mode 100644 images/favicon.png create mode 100644 images/favicon.png.license create mode 100644 images/git.svg create mode 100644 images/logo.svg create mode 100644 images/nodes.svg create mode 100644 images/stages.svg diff --git a/editor.css b/editor.css index 6e7af56..82141f6 100644 --- a/editor.css +++ b/editor.css @@ -31,6 +31,16 @@ body { -webkit-backdrop-filter: blur(10px); } +#logo { + position: absolute; + left: 0; + top: 0; + height: 100%; + aspect-ratio: 1 / 1; + padding-left: 10px; + padding-right: 10px; +} + .menuitem { float: left; cursor: pointer; @@ -61,6 +71,10 @@ body { color: rgb(75, 151, 151); } +.menuitem:nth-child(2) { + margin-left: 60px; +} + .menuitem #search-container { @@ -68,6 +82,8 @@ body { top: 0px; bottom: 0px; width: 400px; + left: 50%; + transform: translateX(-200px); padding: 2 2 2 2; background-color: transparent; border-top: 4px solid transparent; @@ -139,6 +155,8 @@ body { #search-results { width: 400px; + left: 50%; + transform: translateX(-200px); overflow: hidden; padding-bottom: 20px; } @@ -670,4 +688,28 @@ label { .contenttype-darkmode svg { stroke: rgba(135, 135, 135, 0.6); -} \ No newline at end of file +} + +#footer { + font-family: 'Inter'; + font-size: .75em; + position: fixed; + left: 0; + right: 0; + bottom: 0; + display: flex; + box-shadow: 0 0px 5px 0 rgba(0, 0, 0, 0.16), 0 0px 5px 0 rgba(0, 0, 0, 0.12); + padding: 5px 10px; + z-index: 11; + float: left; + backdrop-filter: blur(10px); + -webkit-backdrop-filter: blur(10px); +} + +#footer.menu-darkmode svg { + stroke: white; +} + +#footer.menu-lightmode svg { + stroke: black; +} diff --git a/editor.html b/editor.html index 2fbe6de..288db87 100644 --- a/editor.html +++ b/editor.html @@ -8,6 +8,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later Editor + @@ -15,6 +16,240 @@ SPDX-License-Identifier: AGPL-3.0-or-later
- - \ No newline at end of file diff --git a/editor.ts b/editor.ts index 9097b31..753bc24 100644 --- a/editor.ts +++ b/editor.ts @@ -11,7 +11,7 @@ var darkMode = false; export function toggleTheme() { darkMode = !darkMode; - var menus = [mainMenu, sidePanel, filePanel]; + var menus = [mainMenu, sidePanel, filePanel, footer]; Array.from(document.getElementsByClassName('menuitem')).forEach(item => item !== fileMenu && Array.from(item.getElementsByClassName('submenu')).forEach(subMenu => menus.push(subMenu)) @@ -67,6 +67,9 @@ Array.from(document.getElementsByClassName('submenu')) var lastSubMenu : HTMLElement | null = null; +const footer = document.getElementById('footer'); + + function positionSubmenuBackdrop() { if (!lastSubMenu || !submenuBackdrop) return; var smRect = lastSubMenu.getBoundingClientRect(); @@ -470,8 +473,9 @@ var stateAbbreviations: string[] = []; var newStateCoords = {'x': 0, 'y': 0}; //Initial coordinates of the next new state sidePanel.style.top = (mainMenu.offsetHeight + 15).toString(); -searchContainer.style.left = (mainMenu.offsetWidth / 2 - searchContainer.offsetWidth / 2).toString(); -searchResults.style.left = searchContainer.style.left; +sidePanel.style.bottom = (footer.offsetHeight + 15).toString(); +// searchContainer.style.left = (mainMenu.offsetWidth / 2 - searchContainer.offsetWidth / 2).toString(); +// searchResults.style.left = searchContainer.style.left; searchResults.style.maxHeight = (0.8 * window.innerHeight).toString(); //Event handlers diff --git a/images/attention.svg b/images/attention.svg new file mode 100644 index 0000000..5d7eb79 --- /dev/null +++ b/images/attention.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + diff --git a/images/errors.svg b/images/errors.svg new file mode 100644 index 0000000..131f056 --- /dev/null +++ b/images/errors.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + diff --git a/images/favicon.png b/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..511bfa455d4470ef2da2a7125fc9ed2382d215d3 GIT binary patch literal 525758 zcmeEP349dA((m0Q903Hm!3#w^5b*-U3qe6b0tvVJeBgzOqKJwDUV!>k@D@-J@F{pk zADEDEC<ryY{I|C`-1yOMom%jr)a+SXPW`o4@HXpNckF&o~VNF-TN6yufLA; z2M)yb>8Fc|hD*BcI;Z5atrtKBgF)*uLfzGO-xU>IE9ux{t>SAL0M=*NTozGde55wS zL@~Dk$ndmjW-}fx=#CxLOS@!AczFHLD*fKQpO$p+!TKSqeiL;KPzhGePCebU2^nb7 z!d!S2Pyea_G0RVd*XM{grU5WYSeu}^@It)#<|;`-%$)gONk-xd5nDR?pNQcnP<=+; zcq2A}LK*Gbx4k4G?!LR1q|kG{Us`#z>1*R@!)xE`0-zUBC5Y>wL5iVXc=g`s+NskK zl8i!y-fPoSas`7vNqzfsu5z^9BM87{EsZ*!I!s{fhSfQS)tCpd9uD$l_cakI_=FM9vN&7bTduSTN zhZh%<0yTZQmJ{ULxf9P1l4EB@q*rw5qNxF)jH_UJ8CUQ1uBb7p(GudyE6dqKjU(Sw|3m?yu1lAGC#m{4vAm@(IT*a{HodsLdrz0NdUfP` z`UHjz+usPP0D4I2RUxBz>b<(^eIg1d70&EcPp4Nxz% z5%hr3hKu!H5145A_3A~#>{hLeGOqYW0H9tN0fDM@!wp8^)qA7sx8H7-WE3j&UMn98 zsH6n_*!uOMkoctyuii&|0_uhKYE%QX3788ngv$8n(eor}Q;ocjEgk)_fN21fC`K7W zQbk4c=aXX6r;ky1#n&lhL;K?T&#kcBx!T_);1M%{Sx)F>wLAS+c0Nhq0mdP{! z^Ec!iD{KKwGUfKbBv45kjN5~xEn1TqOZgh$xUE1=4oz3}=;7Pf{J!!E3To$0nym8q zva;sSr#b%bzc*QcaR;-l7qEI<5bpp;52?5T=+J>CP%|=`H>bsv$flRvGBihbBiROaK7m z$LobRdR|^$M^fFoix&@(R8nG;VU@lSU-jOw1|Y#bd-O6M3|2}y_E?p$5>PMW_3Dx3 zYiRjQ38Ht+$S9GtYnS4y(n0vh8ATN?Cx;5)nrrmLpM;@*ys-zWTYO(0#nW^wQOn z6X``x=TNFKD>`qsoKdmV=Xy6zCiK+qm0MMJt%KsTlM6RQ0t4#HbLT^<@wbw+| z0KI%bp7iwnH2?-j{{8nVOL`2{d$U­p@g-+c3GNoKj252q(L(hU{({tTmkRf>$V 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 h{~NKtccj literal 0 HcmV?d00001 diff --git a/images/favicon.png.license b/images/favicon.png.license new file mode 100644 index 0000000..008f9f5 --- /dev/null +++ b/images/favicon.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 David Mosbach + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/images/git.svg b/images/git.svg new file mode 100644 index 0000000..bd41b99 --- /dev/null +++ b/images/git.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + diff --git a/images/logo.svg b/images/logo.svg new file mode 100644 index 0000000..da28a6c --- /dev/null +++ b/images/logo.svg @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/nodes.svg b/images/nodes.svg new file mode 100644 index 0000000..b7d7771 --- /dev/null +++ b/images/nodes.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + diff --git a/images/stages.svg b/images/stages.svg new file mode 100644 index 0000000..4053ba0 --- /dev/null +++ b/images/stages.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + +