From 7d22f82b124097ffdfe80f9639de7b896dbb3826 Mon Sep 17 00:00:00 2001 From: Nick Date: Tue, 26 Nov 2024 21:17:31 -0600 Subject: [PATCH] feat: crushed it like I crushed your mom --- Helpers copy.elm | 239 ---------- frontend/src/Blog/Helpers.elm | 5 + frontend/src/Blog/Types.elm | 1 + frontend/src/Config/Format.elm | 19 +- frontend/src/Config/Identity.elm | 2 +- frontend/src/Cuckery/Helpers.elm | 22 +- .../Arguments/AgriculturalPredation.elm | 4 +- frontend/src/Layouts/Navbar.elm | 419 ++++++++++++++++-- .../src/Pages/{Dodgers.elm => CuckList.elm} | 2 +- frontend/src/Pages/Hyperblog.elm | 75 ++++ frontend/static/navbar/arguments.png | Bin 0 -> 1526 bytes frontend/static/navbar/community.png | Bin 0 -> 1711 bytes frontend/static/navbar/contact.png | Bin 0 -> 1555 bytes frontend/static/navbar/cucklist.png | Bin 0 -> 2032 bytes frontend/static/navbar/discord-light.png | Bin 0 -> 1881 bytes frontend/static/navbar/discord.png | Bin 0 -> 1956 bytes frontend/static/navbar/donate.png | Bin 0 -> 846 bytes frontend/static/navbar/gitlab-light.png | Bin 0 -> 1689 bytes frontend/static/navbar/gitlab.png | Bin 0 -> 1747 bytes frontend/static/navbar/home.png | Bin 0 -> 1579 bytes frontend/static/navbar/hyperblog.png | Bin 0 -> 1214 bytes frontend/static/navbar/hyperblog2.png | Bin 0 -> 1478 bytes ...,-and-social-networking-service.-color.zip | Bin 0 -> 3638 bytes frontend/static/navbar/interviews.png | Bin 0 -> 1604 bytes frontend/static/navbar/mastodon-light.png | Bin 0 -> 2317 bytes frontend/static/navbar/mastodon.png | Bin 0 -> 2434 bytes frontend/static/navbar/nutridex.png | Bin 0 -> 1683 bytes frontend/static/navbar/services.png | Bin 0 -> 1772 bytes frontend/static/navbar/twitter-light.png | Bin 0 -> 1858 bytes frontend/static/navbar/twitter.png | Bin 0 -> 1926 bytes 30 files changed, 500 insertions(+), 288 deletions(-) delete mode 100755 Helpers copy.elm create mode 100644 frontend/src/Blog/Helpers.elm create mode 100644 frontend/src/Blog/Types.elm rename frontend/src/Pages/{Dodgers.elm => CuckList.elm} (99%) create mode 100644 frontend/src/Pages/Hyperblog.elm create mode 100644 frontend/static/navbar/arguments.png create mode 100644 frontend/static/navbar/community.png create mode 100644 frontend/static/navbar/contact.png create mode 100644 frontend/static/navbar/cucklist.png create mode 100644 frontend/static/navbar/discord-light.png create mode 100644 frontend/static/navbar/discord.png create mode 100644 frontend/static/navbar/donate.png create mode 100644 frontend/static/navbar/gitlab-light.png create mode 100644 frontend/static/navbar/gitlab.png create mode 100644 frontend/static/navbar/home.png create mode 100644 frontend/static/navbar/hyperblog.png create mode 100644 frontend/static/navbar/hyperblog2.png create mode 100644 frontend/static/navbar/icons8-mastodon-is-an-online,-self-hosted-social-media,-and-social-networking-service.-color.zip create mode 100644 frontend/static/navbar/interviews.png create mode 100644 frontend/static/navbar/mastodon-light.png create mode 100644 frontend/static/navbar/mastodon.png create mode 100644 frontend/static/navbar/nutridex.png create mode 100644 frontend/static/navbar/services.png create mode 100644 frontend/static/navbar/twitter-light.png create mode 100644 frontend/static/navbar/twitter.png diff --git a/Helpers copy.elm b/Helpers copy.elm deleted file mode 100755 index 87e2a5e..0000000 --- a/Helpers copy.elm +++ /dev/null @@ -1,239 +0,0 @@ -module Debate.Helpers%20copy exposing (..)module Debate.Helpers exposing (..) - -import Config.Colour as T exposing (..) -import Config.Format as O exposing (..) -import Debate.Types exposing (..) -import Effect exposing (Effect) -import Element as E exposing (..) -import Element.Background as B exposing (..) -import Element.Border as D exposing (..) -import Element.Events as V exposing (..) -import Element.Font as F exposing (..) -import Html exposing (div, hr) -import Html.Attributes as H exposing (style, title, wrap) -import Layouts -import Page exposing (Page) -import Route exposing (Route) -import Shared -import View exposing (View) - - -argumentMaker : Argument -> Element msg -argumentMaker argument = - let - argRows : List (Element msg) - argRows = - let - argumentFormatting : List (Attribute msg) - argumentFormatting = - [ centerX, F.center, spacing 3 ] - in - List.indexedMap - (\index argumentEntry -> - column (paragraphFormat ++ [ spacing 3, paddingEach { top = 0, right = 0, bottom = 0, left = 0 }, E.width <| px 550, centerX ]) - (List.indexedMap - (\premiseIndex premiseWithNotation -> - column argumentFormatting - [ paragraph paragraphHightlightedBoldText - [ text ("P" ++ String.fromInt (premiseIndex + 1) ++ ")") - , text premiseWithNotation.premise - |> el [ F.color colourTheme.nonHighlightedText, F.regular, paddingEach { top = 0, right = 0, bottom = 0, left = 5 } ] - ] - , paragraph argumentFormatting - [ text ("(" ++ premiseWithNotation.notation ++ ")") - |> el [ F.color colourTheme.highlightText, F.bold ] - ] - ] - ) - argumentEntry.premises - ++ [ column argumentFormatting - [ paragraph paragraphHightlightedBoldText - [ text "C)" - , text argumentEntry.conclusion - |> el [ F.color colourTheme.nonHighlightedText, F.regular, paddingEach { top = 0, right = 0, bottom = 0, left = 5 } ] - ] - , paragraph argumentFormatting - [ text ("(∴" ++ argumentEntry.conclusionNotation ++ ")") - |> el [ F.color colourTheme.highlightText, F.bold ] - ] - ] - ] - ) - ) - argument.argumentFormalization - - maybeReductioField : Element msg - maybeReductioField = - case argument.propositionReductio of - "" -> - none - - reductio -> - row [] - [ column - [ E.alignTop, E.alignLeft ] - [ paragraph (paragraphBoldFormat ++ [ F.size 18, E.width <| px 100 ]) - [ el [ tooltip below (myTooltip "This is the position from which the reductio ad absurdum is derived.") ] (text "Reductio:") |> el [ F.color colourTheme.highlightText ] - ] - ] - , column [ E.width fill, E.alignLeft ] - [ paragraph [] - [ text reductio |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ] - ] - ] - ] - in - column - [ paragraphWidth, E.alignLeft, spacing 8, paddingEach { top = 0, right = 0, bottom = 0, left = 0 } ] - [ paragraph - (paragraphBoldFormat - ++ [ F.size 20 - , F.color colourTheme.backgroundColour - , B.color colourTheme.highlightText - , paddingEach { top = 6, bottom = 2, left = 12, right = 12 } - , D.width 1 - , D.rounded 20 - , alignBottom - , F.center - , transitionStyle - , mouseOver - [ B.color colourTheme.highlightTextHover - , F.color colourTheme.nonHighlightedText - , D.color colourTheme.highlightTextHover - ] - ] - ) - [ text argument.argumentTitle - - --create expandable text for this in the future - ] - , row [ paddingEach { top = 10, right = 0, bottom = 0, left = 0 } ] - [ column - [ E.alignTop, E.alignLeft ] - [ paragraph (paragraphBoldFormat ++ [ F.size 18, E.width <| px 100 ]) - [ el [ tooltip below (myTooltip "A proposition is a declarative statement that can be evaluated as either true or false, and which serves as the basis for debate.") ] (text "Proposition:") |> el [ F.color colourTheme.highlightText ] ] - ] - , column - [ E.width fill, E.alignLeft ] - [ paragraph (paragraphBoldFormat ++ [ F.size 18 ]) [ text argument.propositionTitle |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ] ] ] - ] - , maybeReductioField - , row [ E.alignTop ] - [ column - [ E.alignTop, E.alignLeft ] - [ paragraph (paragraphBoldFormat ++ [ F.size 18, E.width <| px 100 ]) - [ el [ tooltip below (myTooltip "The following information provides additional context and insight into the reasoning behind the argument") ] (text "Summary:") |> el [ F.color colourTheme.highlightText ] - ] - ] - , column - [ E.width fill, E.alignLeft ] - [ paragraph (paragraphBoldFormat ++ [ F.size 18 ]) [ text argument.propositionSummary |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ] ] ] - ] - , wrappedRow (paragraphBoldFormat ++ [ E.alignLeft, E.width fill, paddingEach { top = 10, right = 0, bottom = 10, left = 0 } ]) - [ E.table - [ spacing 0 - , D.rounded 10 - , D.width 2 - , D.color colourTheme.nonHighlightedDarkText - , clip - ] - { data = argument.definitionTable - , columns = - [ { header = - el - [ F.bold - , D.widthEach { bottom = 1, top = 1, left = 1, right = 1 } - , D.color colourTheme.nonHighlightedDarkText - , padding 8 - ] - (text "Definiendum" |> el [ F.color colourTheme.highlightText ]) - , width = fill |> maximum 50 - , view = - \definition -> - row - [ F.color colourTheme.highlightText - , F.bold - , D.widthEach { bottom = 1, top = 0, left = 1, right = 1 } - , D.color colourTheme.nonHighlightedDarkText - , padding 8 - , E.height fill - ] - [ row [ centerX ] - [ paragraph [] [ text definition.definiendum ] - ] - ] - } - , { header = - el - [ F.bold - , D.widthEach { bottom = 1, top = 1, left = 0, right = 1 } - , D.color colourTheme.nonHighlightedDarkText - , padding 8 - ] - (text "Definiens" |> el [ F.color colourTheme.highlightText ]) - , width = fill - , view = - \definition -> - paragraph - [ F.color colourTheme.nonHighlightedText - , F.regular - , D.widthEach { bottom = 1, top = 0, left = 0, right = 1 } - , D.color colourTheme.nonHighlightedDarkText - , padding 8 - , E.height fill - ] - [ row [] - [ paragraph [] [ text definition.definiens ] - ] - ] - } - ] - } - ] - , column [ centerX ] - (argRows - ++ [ column [ paragraphWidth, paddingEach { top = 10, right = 0, bottom = 0, left = 0 } ] - [ row [ centerX, E.width fill ] - [ column [ E.alignRight ] - [ newTabLink - (paragraphBoldFormat - ++ [ F.size 18 - , F.color colourTheme.backgroundColour - , B.color colourTheme.highlightText - , paddingEach { top = 6, bottom = 2, left = 12, right = 12 } - , D.width 1 - , D.rounded 20 - , E.width <| px 105 - , F.center - , E.alignRight - , transitionStyle - , mouseOver - [ B.color colourTheme.highlightTextHover - , F.color colourTheme.nonHighlightedText - , D.color colourTheme.highlightTextHover - ] - ] - ) - { url = argument.proofLink - , label = text "Proof Tree" - } - ] - ] - ] - - -- , basicDivider - ] - ) - ] - - -basicDivider : Element msg -basicDivider = - el - [ E.width fill - , centerX - , D.widthEach { bottom = 1, top = 0, left = 0, right = 0 } - , D.color (rgb255 200 200 200) - , paddingEach { top = 40, bottom = 0, left = 0, right = 0 } - ] - none diff --git a/frontend/src/Blog/Helpers.elm b/frontend/src/Blog/Helpers.elm new file mode 100644 index 0000000..8ececcf --- /dev/null +++ b/frontend/src/Blog/Helpers.elm @@ -0,0 +1,5 @@ +module Blog.Helpers exposing (..) + + +hahaha = + [] diff --git a/frontend/src/Blog/Types.elm b/frontend/src/Blog/Types.elm new file mode 100644 index 0000000..9aa84d1 --- /dev/null +++ b/frontend/src/Blog/Types.elm @@ -0,0 +1 @@ +module Blog.Types exposing (..) diff --git a/frontend/src/Config/Format.elm b/frontend/src/Config/Format.elm index 280775e..8b7a7fc 100755 --- a/frontend/src/Config/Format.elm +++ b/frontend/src/Config/Format.elm @@ -23,7 +23,6 @@ pageList = [ spacing 30 , centerX , centerY - , alignTop , paddingEach { top = 30, bottom = 30, left = 30, right = 30 } ] @@ -70,13 +69,9 @@ spartanFont = F.typeface "League Spartan" - navBarLinkFormat : List (Attr () msg) navBarLinkFormat = - [ F.size 15 - , centerX - - -- , F.bold + [ F.size 17 ] @@ -197,3 +192,15 @@ tooltip usher tooltip_ = tooltip_ ] none + + +basicDivider : Element msg +basicDivider = + el + [ E.width fill + , centerX + , D.widthEach { bottom = 1, top = 0, left = 0, right = 0 } + , D.color (rgb255 200 200 200) + , paddingEach { top = 40, bottom = 0, left = 0, right = 0 } + ] + none diff --git a/frontend/src/Config/Identity.elm b/frontend/src/Config/Identity.elm index 53b826c..854ad7c 100755 --- a/frontend/src/Config/Identity.elm +++ b/frontend/src/Config/Identity.elm @@ -17,7 +17,7 @@ type alias PageInput = pageNames : PageInput pageNames = - { pageHome = "The Nutrivore" + { pageHome = "upRoot Health" , pagePlatforms = "Platforms" , pageServices = "Services" , pageDodgers = "Dodgers" diff --git a/frontend/src/Cuckery/Helpers.elm b/frontend/src/Cuckery/Helpers.elm index 3f478d8..2ac87ff 100755 --- a/frontend/src/Cuckery/Helpers.elm +++ b/frontend/src/Cuckery/Helpers.elm @@ -227,17 +227,17 @@ cuckMaker cuck = { src = "cucks/" ++ cuck.cuckImage ++ "/" ++ cuck.cuckImage ++ ".png" , description = cuck.cuckName } - , E.image - [ D.rounded 100 - , clip - , moveUp 107 - , moveRight 7 - , E.width <| px 125 - , E.height <| px 125 - ] - { src = "cucks/clownborder.png" - , description = cuck.cuckName - } + -- , E.image + -- [ D.rounded 100 + -- , clip + -- , moveUp 107 + -- , moveRight 7 + -- , E.width <| px 125 + -- , E.height <| px 125 + -- ] + -- { src = "cucks/clownborder.png" + -- , description = cuck.cuckName + -- } ] , column [ E.width <| px 600 ] diff --git a/frontend/src/Debate/Arguments/AgriculturalPredation.elm b/frontend/src/Debate/Arguments/AgriculturalPredation.elm index 99d2241..d09529d 100755 --- a/frontend/src/Debate/Arguments/AgriculturalPredation.elm +++ b/frontend/src/Debate/Arguments/AgriculturalPredation.elm @@ -7,11 +7,11 @@ argumentAgriculturalPredation : Argument argumentAgriculturalPredation = { argumentTitle = "Argument for Animal Agirculture as Predation" , propositionTitle = "Animal agriculture counts as predation." - , propositionReductio = "10" + , propositionReductio = "" , propositionSummary = "Summary" , proofLink = "https://www.umsu.de/trees/#(~6x~6y~6z(Px~4Qxyz~1(Rxyz~2Sxyz)~1Wxyz)),(Qahl),(Rahl~2Sahl),(Wahl)%7C=(Pa)" - , argumentCertainty = 1 + , argumentCertainty = 10 , argumentImage = "" , definitionTable = [ { definiendum = "P(x)" diff --git a/frontend/src/Layouts/Navbar.elm b/frontend/src/Layouts/Navbar.elm index 9ad6b4c..68fea78 100755 --- a/frontend/src/Layouts/Navbar.elm +++ b/frontend/src/Layouts/Navbar.elm @@ -4,8 +4,9 @@ import Config.Colour as T exposing (..) import Config.Format as O exposing (..) import Config.Identity as I exposing (..) import Effect exposing (Effect) -import Element exposing (..) -import Element.Background as B +import Element as E exposing (..) +import Element.Background as B exposing (..) +import Element.Border as D exposing (..) import Element.Font as F import Element.Region exposing (description) import Html exposing (Html) @@ -77,51 +78,413 @@ view { toContentMsg, model, content } = { title = content.title , attributes = [ F.family [ spartanFont ] ] , element = - let - localhostUrl = - "http://localhost:1234/" - in row - [ width fill + [ E.width fill , height fill - , B.color colourTheme.backgroundColour + , B.color colourTheme.cardBackground ] [ column - [ width <| px 200 - , alignLeft - , alignTop - , paddingEach { top = 20, bottom = 0, left = 10, right = 0 } - , htmlAttribute (H.style "position" "fixed") + [ htmlAttribute (H.style "position" "fixed") , htmlAttribute (H.style "left" "0") , htmlAttribute (H.style "top" "0") , htmlAttribute (H.style "height" "100vh") , htmlAttribute (H.style "z-index" "10") -- Ensure navbar stays on top , htmlAttribute (H.style "transform-style" "preserve-3d") + , D.widthEach { top = 0, bottom = 0, left = 0, right = 3 } + , D.color colourTheme.highlightTextHover ] [ column - [ spacing 10 - , centerX + [ alignLeft , height fill , F.color colourTheme.nonHighlightedText ] - [ image [ spacing 2, width <| px 80, centerX ] { src = "navbar/nutrivorelogo.png", description = "" } - , link nonHighlightedTitleFormat { url = localhostUrl ++ pageNames.pageHome, label = transitionNonHighlightedLinkHover <| text "THE NUTRIVORE" } - , link navBarLinkFormat { url = localhostUrl ++ "platforms", label = transitionNonHighlightedLinkHoverWithMove <| text "PLATFORMS" } - , link navBarLinkFormat { url = localhostUrl ++ "services", label = transitionNonHighlightedLinkHoverWithMove <| text "SERVICES" } - , link navBarLinkFormat { url = localhostUrl ++ "arguments", label = transitionNonHighlightedLinkHoverWithMove <| text "ARGUMENTS" } - , link navBarLinkFormat { url = localhostUrl ++ "blog", label = transitionNonHighlightedLinkHoverWithMove <| text "BLOG" } - , link navBarLinkFormat { url = localhostUrl ++ "nutridex", label = transitionNonHighlightedLinkHoverWithMove <| text "NUTRI-DEX" } - , link navBarLinkFormat { url = localhostUrl ++ "support", label = transitionNonHighlightedLinkHoverWithMove <| text "SUPPORT" } - , link navBarLinkFormat { url = localhostUrl ++ "interviews", label = transitionNonHighlightedLinkHoverWithMove <| text "INTERVIEWS" } - , link navBarLinkFormat { url = localhostUrl ++ "contact", label = transitionNonHighlightedLinkHoverWithMove <| text "CONTACT" } - , link navBarLinkFormat { url = localhostUrl ++ "dodgers", label = transitionNonHighlightedLinkHoverWithMove <| text "DODGERS" } + [ column + [ centerX + , E.width <| px 200 + ] + [ row + (nonHighlightedTitleFormat + ++ [ centerX + , spacing 10 + , padding 20 + ] + ) + [ E.image + [ spacing 2 + , E.width <| px 80 + , centerX + ] + { src = "navbar/nutrivorelogo.png" + , description = "" + } + , column [] + [ link [ centerX ] + { url = localhostUrl ++ pageNames.pageHome + , label = text "upRoot" + } + , link [ centerX ] + { url = localhostUrl ++ pageNames.pageHome + , label = text "Health" + } + ] + ] + , el + [ E.width <| px 140 + , alignTop + , centerX + , D.widthEach + { bottom = 1 + , top = 0 + , left = 0 + , right = 0 + } + , D.color colourTheme.nonHighlightedDarkText + ] + none + ] + , column + [ padding 20, alignTop, alignLeft ] + [ column + [ F.bold + , F.color colourTheme.nonHighlightedText + , F.size 17 + , spacing 8 + ] + [ homeButton + , servicesButton + , hyperbolgButton + , argumentsButton + , cucklistButton + , communityButton + , nutridexButton + , donateButton + , interviewButton + , contactButton + ] + ] + ] + , row + [ alignBottom + , E.width fill + , E.height <| px 100 + ] + [ row + [ centerX + , centerY + , E.width fill + , E.height fill + , spacing 10 + , paddingEach { top = 40, bottom = 10, left = 20, right = 20 } + ] + [ E.image + [ E.width <| px 30 + , alignBottom + , centerX + ] + { src = "navbar/gitlab-light.png" + , description = "" + } + , E.image + [ E.width <| px 30 + , alignBottom + , centerX + ] + { src = "navbar/twitter-light.png" + , description = "" + } + , E.image + [ E.width <| px 30 + , alignBottom + , centerX + ] + { src = "navbar/mastodon-light.png" + , description = "" + } + , E.image + [ E.width <| px 33 + , alignBottom + , centerX + ] + { src = "navbar/discord-light.png" + , description = "" + } + ] ] ] , el - [ width fill + [ E.width fill , height fill - , paddingEach { top = 0, right = 0, bottom = 0, left = 200 } + , paddingEach + { top = 0 + , right = 0 + , bottom = 0 + , left = 200 + } ] content.element ] } + + +localhostUrl = + "http://localhost:1234/" + + +linkFormat = + el + [ mouseOver [ F.color colourTheme.highlightText ] + , htmlAttribute <| style "transition" "all 0.1s ease-in-out" + ] + + +iconDistance = + E.width <| px 36 + + +homeButton : Element msg +homeButton = + row + [] + [ column [ iconDistance ] + [ E.image + [ alignLeft + , alignBottom + , E.width <| px 30 + ] + { src = "navbar/home.png" + , description = "" + } + ] + , column + [ alignBottom ] + [ link + [] + { url = localhostUrl ++ "home" + , label = linkFormat <| text "HOME" + } + ] + ] + + +servicesButton : Element msg +servicesButton = + row + [] + [ column [ iconDistance ] + [ E.image + [ alignLeft + , alignBottom + , E.width <| px 30 + ] + { src = "navbar/services.png" + , description = "" + } + ] + , column + [ alignBottom ] + [ link + [] + { url = localhostUrl ++ "services" + , label = linkFormat <| text "SERVICES" + } + ] + ] + + +hyperbolgButton : Element msg +hyperbolgButton = + row + [] + [ column [ iconDistance ] + [ E.image + [ alignLeft + , alignBottom + , E.width <| px 30 + ] + { src = "navbar/hyperblog2.png" + , description = "" + } + ] + , column + [ alignBottom ] + [ link + [] + { url = localhostUrl ++ "hyperblog" + , label = linkFormat <| text "HYPERBLOG" + } + ] + ] + + +argumentsButton : Element msg +argumentsButton = + row + [] + [ column [ iconDistance ] + [ E.image + [ alignLeft + , alignBottom + , E.width <| px 30 + ] + { src = "navbar/arguments.png" + , description = "" + } + ] + , column + [ alignBottom ] + [ link + [] + { url = localhostUrl ++ "arguments" + , label = linkFormat <| text "ARGUMENTS" + } + ] + ] + + +cucklistButton : Element msg +cucklistButton = + row + [] + [ column [ iconDistance ] + [ E.image + [ alignLeft + , alignBottom + , E.width <| px 30 + ] + { src = "navbar/cucklist.png" + , description = "" + } + ] + , column + [ alignBottom ] + [ link + [] + { url = localhostUrl ++ "cucklist" + , label = linkFormat <| text "CUCKLIST" + } + ] + ] + + +communityButton : Element msg +communityButton = + row + [] + [ column [ iconDistance ] + [ E.image + [ alignLeft + , alignBottom + , E.width <| px 30 + ] + { src = "navbar/community.png" + , description = "" + } + ] + , column + [ alignBottom ] + [ link + [] + { url = localhostUrl ++ "community" + , label = linkFormat <| text "COMMUNITY" + } + ] + ] + + +nutridexButton : Element msg +nutridexButton = + row + [] + [ column [ iconDistance ] + [ E.image + [ alignLeft + , alignBottom + , E.width <| px 30 + ] + { src = "navbar/nutridex.png" + , description = "" + } + ] + , column + [ alignBottom ] + [ link + [] + { url = localhostUrl ++ "nutridex" + , label = linkFormat <| text "NUTRIDEX" + } + ] + ] + + +donateButton : Element msg +donateButton = + row + [] + [ column [ iconDistance ] + [ E.image + [ alignLeft + , alignBottom + , E.width <| px 30 + ] + { src = "navbar/donate.png" + , description = "" + } + ] + , column + [ alignBottom ] + [ link + [] + { url = localhostUrl ++ "donate" + , label = linkFormat <| text "DONATE" + } + ] + ] + + +interviewButton = + row + [] + [ column [ iconDistance ] + [ E.image + [ alignLeft + , alignBottom + , E.width <| px 30 + ] + { src = "navbar/interviews.png" + , description = "" + } + ] + , column + [ alignBottom ] + [ link + [] + { url = localhostUrl ++ "interviews" + , label = linkFormat <| text "INTERVIEWS" + } + ] + ] + + +contactButton : Element msg +contactButton = + row + [] + [ column [ iconDistance ] + [ E.image + [ alignLeft + , alignBottom + , E.width <| px 30 + ] + { src = "navbar/contact.png" + , description = "" + } + ] + , column + [ alignBottom ] + [ link + [] + { url = localhostUrl ++ "contact" + , label = linkFormat <| text "CONTACT" + } + ] + ] diff --git a/frontend/src/Pages/Dodgers.elm b/frontend/src/Pages/CuckList.elm similarity index 99% rename from frontend/src/Pages/Dodgers.elm rename to frontend/src/Pages/CuckList.elm index 6451bfd..e6fa14e 100755 --- a/frontend/src/Pages/Dodgers.elm +++ b/frontend/src/Pages/CuckList.elm @@ -1,4 +1,4 @@ -module Pages.Dodgers exposing (Model, Msg, page) +module Pages.CuckList exposing (Model, Msg, page) import Config.Colour as T exposing (..) import Config.Format as O exposing (..) diff --git a/frontend/src/Pages/Hyperblog.elm b/frontend/src/Pages/Hyperblog.elm new file mode 100644 index 0000000..b65e7df --- /dev/null +++ b/frontend/src/Pages/Hyperblog.elm @@ -0,0 +1,75 @@ +module Pages.Hyperblog exposing (Model, Msg, page) + +import Blog.Helpers exposing (..) +import Config.Colour as T exposing (..) +import Config.Format as O exposing (..) +import Config.Identity as I exposing (..) +import Effect exposing (Effect) +import Element exposing (..) +import Element.Font as F +import Html.Attributes as H exposing (style) +import Layouts +import Page exposing (Page) +import Route exposing (Route) +import Shared exposing (..) +import View exposing (View) + + +page : Shared.Model -> Route () -> Page Model Msg +page shared route = + Page.new + { init = init + , update = update + , subscriptions = subscriptions + , view = view + } + + + +-- INIT + + +type alias Model = + {} + + +init : () -> ( Model, Effect Msg ) +init () = + ( {} + , Effect.none + ) + + + +-- UPDATE + + +type Msg + = NoOp + + +update : Msg -> Model -> ( Model, Effect Msg ) +update msg model = + case msg of + NoOp -> + ( model + , Effect.none + ) + + + +-- SUBSCRIPTIONS + + +subscriptions : Model -> Sub Msg +subscriptions model = + Sub.none + + + +-- VIEW + + +view : Model -> View Msg +view model = + View.fromString "Pages.Blog" diff --git a/frontend/static/navbar/arguments.png b/frontend/static/navbar/arguments.png new file mode 100644 index 0000000000000000000000000000000000000000..f81cf3bb376130d1278c53700f042c77266f82dc GIT binary patch literal 1526 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RWI14-?iy0WWg+Z8+Vb&Z8 z1_ss@o-U3d6?5Ls$?lMG6*&ICE8kW12)o@QWvO2IBiG%T7ftGTB>r&U5qA^o*y>J~ z-hz{Tzc*1j=a3Q z>hkpM>1nUoSx?_NlT#X+Us_)Jm9cA)1}5^-JAwzYG1X&LS+f`5^bS57~P!K0YG#CyzHyQuh&8smtrO{qs0) z&op?Q^& z&kxJY!}5x3`#md?4n4Jf&#|sevU$H%-Vf#DozAwB^OjwESixyLZNv84Zu8yMQooth ziTk<5Y4ShF@UED}`)%og2Tvs?3hc0q>E)i_o>C_#v_iO9M_p!~&co(O2hZ;0^|yO$ zZ?2vkxZIL6Gkr}*@!Er%eJUzd4utBRH%Odllgzs;`0r|kKPpvT(i6=NFuXdclO>hyx9JD#szib$!l7czl+$u@nD&?hOO@BKO2?wN-E1E4g{&?Y;0-X z$9vDg={nyuiE1tj@31L8Kh|9?e*f?d&#kF^*Dm(tc+D*o%QZu)(y?)G=t5!4Fn*9ftqs{(52V1Ut z{oS!^)pApfWe)3~I0szW;dr0-;SV;yjR(W`eVySR=k9d*!rHmB+KTvGb5c3;J+?7u z#&t~ntR@@Tp*pkc#OfP)OO$ST9(x*bXr21wS)T6CL(+mL_RZ^_xYgpeRL-Qc-69gJ z<}7iUS{WS^{yeTT&98RahU42G?wGz!xJCU%=VVqGd3I!J{7&Mxc$Wgp)?i!wlx>t+{@48)$_|P z%*&l=v&kvee|C{B_xytb3c+JV+3E{^7_~WiPhu6e-7tYUeuXr)=YZANKAto7m<@H7`$zihOlE)h9wjX}{Hg8U7|aSrIikJrTyFM8*$*$q=R=aHtx+0oR{upG&%6c1go<%z4Goq zh&Gd$S|cdE=V*(%^C4Mf#%XV)4j8^*b$fqUk~isB-Ol6N=k0XeCN6u(@j>+YJBQe$ zrL7JmEY7zr_FnpJ^T#Xslk;thyR8lwzhXGQg4t#<-v=IPn}-IxwRg79+u6!|=SG28 z$PwOsU(c9MeYM%*vGBcbYvbP~9@^+5v7tpi>)F5ir%iv(&i^ao8VE&S%>Fa%=FWTd UBBJg#0|Nttr>mdKI;Vst0HK4*VgLXD literal 0 HcmV?d00001 diff --git a/frontend/static/navbar/community.png b/frontend/static/navbar/community.png new file mode 100644 index 0000000000000000000000000000000000000000..e27ea6d29eedf6087e3bc418effb88e61dbfec4a GIT binary patch literal 1711 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RWI14-?iy0WWg+Z8+Vb&Z8 z1_ri7PZ!6KiaBrRWOsyyiX8u+>L!*t?b`xzk(P_xT9XdQIRywh21ZRuwJKl#TEi`E zy?$z>%dKF0kGhHX_^TBpLw+38w>o!c@A)$Zy_|IyHH9_jyY{Z%v+(|Z)?BZ%U-Xnz|n*gnW*jETsTcLVOH3Te2)Il=kFRDGWz=EFaCWs z^uW`$550;qhAp2AEEjQRH<`t>sV!bD`Nybbr`y919Bh2ko!c(-sU0+Fj-U0RrM2-m zhyUX>Ri_UWIx=3LCL;IX`Nj|D+X{I9uZ#Ta<>L7;?X+Ognvnl#MN)I`8XGza#~HUY za>z1AC3@Z}FOjQLZF8Tg_(jF+Q#|LSo-0M6_mgLBxL)NV^eyYq9+9e7&%(33xXM!u zHfgcmNn3ncz)kwl?#!xP8_ZZu{Vu=FE9o*Zqn3%u>yoJY%ERPs7uA7T#}M zSSwaFuXI7W$Gj|&{YHyLzgZZRl=~Q{UAs}gd@gJIZmu0B`TOTA5aqKlC^7JASFCwd z@P+@Rd*$z^EQ>!(W_D)JvYTJ9FzmmzKp$m>z%5pk*r`&tE$wfnuAUe_28t zn?HX#E!no=z`=|)l|@&$;(vQJ1V+pSD=h9k6fep1cXKx1xs_jQ)^0c%&BXDy^5;{L z#UI?-0yn9Ay4iA9F8#o|J%5V4j@R^D2Vb(cncP8_%<+(~GrsiyrFd zbUU$ZMeGRy!=u}L7IEI5FgZT%MaE&tSsxav$@CWdS`qeR!Ft)pIrB0(=H3%paAD%~ z_&83E>yn3p7Jq0Cyb&+xG+%Ac*{#1-&KtFu+wNc~Uk55K)lw>y(@$Z?(CCq75* znoN%KtS!<%@^j|pax4zcV|N#8eOJm|*t9mjX735J_PSgy?WOHn>|3+Wu4w!24m&KbVc zc~FzyD5t2PE`8|H22thg0KSaY?bps9T4`vtyv4eI%dT%PmGU|-U9{w1F4>xDlP!B@ zn{$oQySaVAG3@o5!fw3EOq?UL)H>sE=)?Wqv!1M7dUJ=;x%H>AFSp0D-g%+&L$$TK zb{hMZLyZjvwx`(S0^J^}u1<<9<*k~Sp3@W0Z!Pt8Ys!S=>6$+nAJ)lFS5`hD7<;7F zO#MoO!Q|7Y60d$KpLXgz*J@wJ{#$c=b}pT;diuV>|`5hBLRUtFR2B+xfZjn&+mx$&|Y()<@^u6 zZ9%r75#f={BKNrUL(@W-W*Ho;iMZSnzQ=@Bz)UT(X>DZN*^DDnw?DmIwNgUV?6jVD zv@}<_W%gF5iNYDPI~oe6zy7M<^RhzwX$0&WW@h0uzGs=%Ct?aE{UnCcO58ZdBujs|DWo7)?1_cRO9sk~lQC zG^Wr5$HWKzH6?<%D^K6e sdwOz%XnM}QLO~Ws0Tjfjd))qG>W`qam3JB#7#J8lUHx3vIVCg!0GlN$?f?J) literal 0 HcmV?d00001 diff --git a/frontend/static/navbar/contact.png b/frontend/static/navbar/contact.png new file mode 100644 index 0000000000000000000000000000000000000000..15c013e7edd1885068bc10260962bba47cbc8239 GIT binary patch literal 1555 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RWI14-?iy0WWg+Z8+Vb&Z8 z1_suno-U3d6?5LsiOz^|l{o(Yo@n5n1r@8i__?|`x|)=`JW$KEr zVe(ypnoC30bWE@6w(AVqSivlqy?Dm4H#74$FTBQ{e35-?t-w}YrL63*v|_Wlb8Vl$ z$=h}I=FPu#A8fZ2rxic@ect@Laf1R!6Do4z=49XC!2aSQm$zwRWc19+;tM}q?$%adAUyB%t(7+6h9Yr^hZH|d6e?g4zLxsd znZ|>V!Z;p3{EM2za=u<+=CUyjdT(YZ^JLA8~C= zRpj%n*!QIIZKJ-5=%Sm?cb?_hr@&OQk|8RwOVsVm6U|vi_pKE*Ge}(Ra-dGgLD-I8 z^w%rhMKep(zRWV!%xsEMXbAf;iF5k-!om++Y9dSdJ2EyMn=N`(^tIR{g(C*H+82Ma zoD+NE;i3)l&wKbEz1Z>Gt*X#Md(BioiC*r6Iq?cQMROxx9M+t*AxPV2m-oGk`@5qa zcK+FGaqsNu7E>dxMQzFnC(7b7IoPufO~TwD~Try=OJ&`m9!elZW!!x!l@& z;v^YeeQ)}nd%sqUQDft``V4FBkR3NY<8!U9u1aUy(7?&6){>Tg(k7_= ziF9ws^}8pk#ITe*!1P+Qp#m7;1c466haRtqzpzSOqB>Hu%l!+f-WuhDWNlBT9nVO%D8mjSbM3@jtl?n*M7)(m9QY1^}&qJ z8IfPNT#{e;S&#W^pV+M0Rt+r|hCcbOefidF9CqA$m+^So3gzSXq-;M|O#19=EV_2m zGOPW&l^YClXZ2c5Ugpo;a`fq~Ifr}Gre)u%T)k5&`B3fCEezXT?z7h1?RdO9j$vNm zq4cugq_*jylQ&fwlw`Afxc6+?GEKv?{V#i58!81HgqOYL+u3AUm|nJP%c1JDMn9#5 zdRGQlC4qT;(sf}HyV;M2nmtoznj_8kKu7k$q$*+E%%&Bb?HW(cZgQH$!RchL!1N}W zrC_b7Nut60!p z(bn`w_kxB0b?m-=h&w1Nxt3%n$qW4~9=-@z}LS+561KsVy84objGkiPOp= zw6te@h;VAHl-zgeO{r;Qkiwmb3J3h3IXnFDc+~3KQt+9f&sBP2eADEheG_U-gTMw?^$AZCQkpR`9?=Tuhsv`&K>9NgHIe*Ule@i z+xMur*?m9noSeS8d;a?g91^YTUoeClKGc@id;e_5t@R&vSBExD7h#?wrFAEBT~~gy v>4H$+NWN1%p_{+WMJ+g+6gWOi`_FhyAYRl-ocTHf0|SGntDnm{r-UW|NG!tK literal 0 HcmV?d00001 diff --git a/frontend/static/navbar/cucklist.png b/frontend/static/navbar/cucklist.png new file mode 100644 index 0000000000000000000000000000000000000000..8c115aeae7744fed01e4f97fc74c9208cd2e2ebb GIT binary patch literal 2032 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RWI14-?iy0WWg+Z8+Vb&Z8 z1_t&;o-U3d6?5Lka^{G-O8gVJQjskp8e;R|koGZV{~q_A@E)mL6Sn3p*8jD`IXD}; z+zlNWU5^;glQ3K%klfQXLqON7@!Q#)l}iL&72QNkG!`|@2#WapKDyW8_V(j@wi~bi zty<6Z^4&T6`)|&D{D0r4kw?-f<-`O<=QbYEhCduK%UO6%H;HNXE)_e2e?phOUDaA6*IcXmu+a5~ zr{FftL)*JPtST~iaz8ufP=Mq6F`TtEw^cx4jo_+@|$LnN=>3 z>3(}I!*m0i-2K`@XBQXjP&%V?i9y?TLHMnGVKUQt57+5h&QU7f5hQr6Z1aUGf6E=W z)*e*Yr=GiiZA*CnUXh13_H!I&Ea!-4Z_aws7$LMTu%%ojF)8lBp`W2I=9c~KIr2yA zOBv_&AKf~Q@g+XCyECTv*6lcSu$1@fi{^QK%M2|dID4kHy!UdgGQWG3P19iJaj`EZ z1^?HuybEqQo2p*t|JzweEAr!cfpzYp(2wh0 ze%&_FLSX7Nm5EG7rA3-s);?OPqs4fZ@7z=-dufMN;up~}OE2VL)~)@#H+IbiJxf`$#HSoGVkzq{sZZEqa!6{Oa89Gjp4nEJORlRtWY%V? z)oZ+@<~{Y449AR~r=}KKJyr*kZodgzZ13Z`;PgkWn@bMl%;-pCU#`{oHdAlqACF7L!M>D$uR5>?yJ!!e_(Ww42YG3>Nr|BOy|CsqFN6(qlBs-%a)Ijxy z*zA&r&#UftS*`f_(z}uMV8e-Tit3M*Z5OjOFF9~~(gx#o|MPgyIo^7Z6Lf}4=jk!; zS;-!=P9`xreE52FNGcy%(Q|5J_CAlJl|tnSq67r_8nqEUK*krnH=|d@B7d&UHtOy7;Msxko(}dM-w4 z)CVeR-_HMDlJ?<$T}S6MnR72v7XHZo>>(rjtZtv5x_D4RiG@{5%()dAP}=d4q#8|BOGAzn3a1R{T4ADyLpR&u9H%{zH6i z8Oreq%*E2{5)Os*u8m{&UdS=o{&)8X{xZ>?9~o^eK^_TOCtR>vy_yK-EA z1m6*#B|9fFZ~o`47TN;IM`ylXZ|)f(7JlW)+ce)fJX$;FTi!XCs`}}wOQGca2BGg$ zoVTv-)tcJ>Cx`dnTH|jfdVQPK*Dd%U?!a97`xy7ZBi-7U`B{1Tq@x!t6qKrrx%f1E z!-O7_;MZp=8q@wHT?(J-D*7g9xmoz}5Yrh+`&J&DpX-))?ln*24D-xZTRYZ?{ifZo z+3#z!-n;&=Tjaz+H5TjmN#;z6y6wjnPm^!CJef`K|8J>8X$#5u3C}yPcj}gLmY10` zKfM3Zv}WzGqUloBuQl7IJ$#|f8kVhc`0>6Q@&T-IoJ{GLf8IZ+usZq8&wBA6QG zXA5@BzGY(G6wVgCRjEBWfRlsoV}@x%i2jq=_l3ePre9y#X*Ne$WrM=WGpGOL1SdwX z?mRBF#k=vhb9Q+S8~3^${h==>zniU6^HNC9!JjGrX$VvD)C2D|h4#08U2Jt&uI$_- zmU$fCSf;dBOtTY8Yq@1`G5CU!Of9o!!b!hqo`3Tk=6)^y9dwAfYG;e~58kVVT-^H0 z{@AlUPw4nK(MR}U*y8<4cTPPDvr|$$k+$~p(${k?iQJGoapU^O_f6T$PRQhWD&?LB k*NX7!5zJtm^^rf3>GXBcx-Xv@7#J8lUHx3vIVCg!0O0STJpcdz literal 0 HcmV?d00001 diff --git a/frontend/static/navbar/discord-light.png b/frontend/static/navbar/discord-light.png new file mode 100644 index 0000000000000000000000000000000000000000..bfb8246d0a802bbaa4d32351427b7470d8741bd3 GIT binary patch literal 1881 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 literal 0 HcmV?d00001 diff --git a/frontend/static/navbar/donate.png b/frontend/static/navbar/donate.png new file mode 100644 index 0000000000000000000000000000000000000000..e22298e61cb742c16e92c774bbe4e0a67a7d4025 GIT binary patch literal 846 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RWI14-?iy0WWg+Z8+Vb&Z8 z1_ovZPZ!6KiaBrZ?9CH)6kz{gzvzLW#smh%zyPNeD=vQu{lIj@n$K0s?oz-K9?nO) z84pBXOx%;KA%N$@tOO3cuj z{a#e7JMCT6{$y@_%E9FCE*<_6_mz7Zrk)d1NIYu&U#DTaHVr3o9@ozub#ne82MW0ZuRypo4pE7?~a|jaPy{y>tR-v?>=1EUAuPqkUR?4i-#z>ZPXGJN`R)@mvh^4#&s)#mfseePrTcee~BiWdDn|=Z?C`r_a)N;4fwr z3Us-#B)s%+(%;)5tnzy%FXX!&^8J|-_cST}hK<|n_X;oKJswa{8_y^dw^JnH%fm7U z_l6@G#v9*%J!D=RbEPFdkJaGYxAn3af(njD4UbM!vyr&{y=8jnfBwG9AN0=MG(U2$ zam)1&Oe$+Fydvb+=r8WAY})+zmyO4ciLCWbA`7zHxOXgRTHmg@s(f~I@`M6k;e9e? zA(h*!pVdYk(%dcPQ*AM|{CE1b*Q|5SHMxq`*qth66%47Yn9JP4HE-pEO1~4956fl6 z%UmARmM`vWiIQ~>|Er604*#2F&%eJ59F3RAIiYMz~JfX=d#Wzp$PymM0t$> literal 0 HcmV?d00001 diff --git a/frontend/static/navbar/gitlab-light.png b/frontend/static/navbar/gitlab-light.png new file mode 100644 index 0000000000000000000000000000000000000000..69bee8653e2da6050e3613571d56afd252a46c79 GIT binary patch literal 1689 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RWI14-?iy0WWg+Z8+Vb&Z8 z1_m~7PZ!6KiaBp%BRgVTMRb$zd|%PorPL&SFgB1yFvP_^0P-D z+d9_j&R#CA)$`=4?(*B5I~GVcC9Ivx^5CqQS)S>!nBa~L|Ni}Rj#_+gn{tEXsz(e4 zizoN0nDg-Q$xYmCFlqBQMIVV(UCa%g3D4IkwbTkb&bS&if4Nqd0nho)B;}J)>ke(X zcG=@yhsHbB&_IR?yRKe_vbMyEqB@1Z90txk!^b6qK$^ndQ{9N{V@toOq7tDo$yog`RY|l3?F=)q}|)w+WJlh-Du`) zJ?Wek8y|oF-zp}C4O%PbM!ja=B(lw9rNKhOXI`O2ERF?I4fVl1Th1E`ZmatGYBA%V zxoQk5@xiL>4eG(Se(;~vJlA?su-Gf{Q18~L+)Y}B7G-nhT{|~3lH>Q4MuX@ZA9Gn4 zEL6{a+AKX?V|s?!YTgI$>f!^5wuQZh`W)UBiHj-?-T_iORo*8ZeyI^zV9`C5_;Ht%j66O7yy%&lD6 z|M;T*pS?G8 zeQTqfJU*$oHfi?tzCR*lW@A%h&|qIYgYnu;>0~AkzUv!x-`4GmtdWYGVfgHs&7AW( zeCv`Nigr}q^!&8U;?TWwfirX$b%bZv_B68u%jor}`1EmXy7za>Nu}IVGb?ZJFunA# z``WLKb6Ri8J<3`Bb;7)!r_2m5Uev6N(@w~`6}QkZ&HFf)<0Nqr-AS?M+!hz+EoZQa z-QrMYKmXO1fA!H!joVJ|OmcdD`gB0Hb;K5j+fQYtDs7KB|IhYkz5E@si=QsP(_5o{ z_ZPzf>FQkjrByerXYb@O`}kGvcHqv#Pv@SGN#AAo?9koq^UwceFu2ZeLUn?V*C!iE zQwHthbL~}6FWI7g`=>*Vohwtp_HrR^NezZ~Qy6qUFeU^tR(OB=Z~v2F!-}Ovy{8sy z9hm$!?LfzwhWmS(Bd#diRABsZhP}a+HNkV8s>ZxIJ6z(G9?m@+!`>0|`_^MAp@#J} z0yDxHroFxT!vB|r$F4K#sWX;7E@!CN8Mj{kf|+h+&rY9j%j?W8Z2f%Q?cG$xmnXy0 zBmO^FA}n7sV?{kn!|$580+%i7tQ#z~c(+_jXO{S|xv{X^@=XM@2zyY77Jq-wx}sZo zi|%Y=H;7+Xp?Up6RQ&7W<8MS7dKvNpB9%CrR$dZa^`S|$eE&1fIx+}@= zoVZMmr=^x|A9v=}^;`F`IBafr|6B0ztwr>4iOgrqS_PjOJ_VoW!F0I%~dT}(Hpf^;k{*O_Rjl)pDr3t>RmMVbgeNuB32H(!!`=olJ zn)Tp~@|b<)JD#lJI{e|xqPMF=vbNqzsq|Q8c_n*q{u%A)#UH#F50tKD-nfG?LVths zmVfISu2tRop}u9&7u~7eBZ`qNK?H_3s)DcOI_vi~_w{j0k_je&uI!PC{xWt~$(69AVx B6A%CZ literal 0 HcmV?d00001 diff --git a/frontend/static/navbar/gitlab.png b/frontend/static/navbar/gitlab.png new file mode 100644 index 0000000000000000000000000000000000000000..38876e959ee20950f58c34eeef36b345ea4e2b40 GIT binary patch literal 1747 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RWI14-?iy0WWg+Z8+Vb&Z8 z1_riPPZ!6KiaBp%vwLELMgE2C&9sef={TbODAGwq$+1PgV?kWz)S0`l&9!s06@KLUtW}Rn{l1Xv7^es%`h%!N#K@n$#5&hYvuBMtJb!-om(H> zY9Pw$-fFOQrkm@JOjmZk&3-<{X=ch{@rtVh3N#K~ufD9gufXxmWr-t;veeHxItIQx z6j^AJ<+MIDN!!{m(0JQ%#pN9Rix&j698b!+vrzJQr1COObMY9U?zKbonoF{F2n;Z@0JQoGlDD68r zUt-~$jvE|1x4PbL6G_zAcuq*8JZaVj6GOwBZ4%QLC`jl$zG5O}`uK26C-0dffu7sv z&%G`1SW<*#mZ5qmgIi5;N#2nV$+?>0Z8vtcPTr``#c+1Tva6AbB~RRZ1n->}V7S?) z*Zlm2{=<}`Kh&GgeJ@h{_R~aWoka8|76-$5ty;IM(t8O7F-!0J#~f0v{Lbw7+oNN0NN9#jz4@`sV`;*S0X@$j zYMMM|RF>kb&puX>ZTYd~NuA`pp1%(jMHZf)a!xC`%P?uyh8rRqt#)QVko@Isaq!5u z&E0!bTV{k*n>^H?%s4?v-ljS2PIl1ZoSU0UXDgJoCngCs#D|wZW~g8}8<7{4-dYfy zmelp3Ei>tB?hC7mrbbDNZE+!nYl{Qbl4cctSP{#AbA40z15S~|FgYpH$LAMnTBw*B z#vanO6coO#F<0~h!>o-u?sF$^7Komqym7^;9fExmm+YJS$*cbE?zig3mdz8Q^5#he z=R1oY^0gH1Zn^V;M~16?LR8*8tKis|vp&vhWpHtmyBg%wrJl*{!}<2A%aN+(4;_4e z+;wBvveNvR$ONf%s=d-jmw)Uu%-i6iV>EAv7sJYjw=P90#>mf}p|mHbdq&xnBfp=P z$V}XNV9JGO$CcDHoA%7Fle!Uha#ED(X{o3Gk9zITIA%L-uKd>SP|nTY$*tf{klcl3=b_^CfmfUI_LQumF;`x-p%=4d4strPpJm}J%r>|C;h~!am*p0yOjs7Qv+_yF6yq$_$(O%% zeV8Nju_<$f(K@cJ$tK1B*kTWDJt6EIJ3}FOVa$4yw=+-bT+L$dYv;YPOM_#xu6#kq z9+N|6l7(+lLh7d$E>v2RcRSSo$F-jpew9nt-7i^Wwz-uznkUxr*4rm9`q}$Bi?;Q; zwHwZK*~+Y*d5DXDj>yxLsafiNjprx0Oir`8>GhtcYlE}lyo^~cpLu5${=B!(aB+9y z>spzOV)Y^nkKZ0zS96Tr=nSW8yUN!TgZAw9S3kBz-Yf1hE84I5WN~`eM_0zMzpD-! zopaS*WX95Bc>P1gi4zOXo;OKaqp_ki>BrUnFVSoLH_uftH_t7MI=RB_#ngpsGu&Oi zE}1vkt)WV2t%m&66QZknx=kKScQgKoGuA6zdt3WUdGeeyLR%mFaW&FDu{AD#;S#}y z4JS`CRqkF;|HN8Po0n~YRluRlb)}+Qdu=7O%}?rh?)~-qSj>I4R&lOfEvr=(rztVK zewrWqIiGXQnpRQ{!a@t_c{Peb8T2^y;hppBcXy7#J8lUHx3vIVCg! E0CCS1H~;_u literal 0 HcmV?d00001 diff --git a/frontend/static/navbar/home.png b/frontend/static/navbar/home.png new file mode 100644 index 0000000000000000000000000000000000000000..6a9162db6d7aab732201e34f832b1c8bf1c3bbfc GIT binary patch literal 1579 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RWI14-?iy0WWg+Z8+Vb&Z8 z1_suO@-gn(uF3edU96tVdkSib>Xy3s#$(du#o3gzp^CFt# zV;mLh&U|!aUeuw`B(9;NHgQ2ljJ?Y2xhu_g7nX|(f8=tDeY{G-q%*R7Nm_NH%u3r`J%gon)_+f#C44hi}=H*dNoeh&XRn`8y?Edv8x@aJWvf)-Bg zN!P5u?%B(6e8YiPC;HaQPhyFC72ldXd7JXop05u=)N*F6{ha;j&~G0L<;?1!qYK)* zBNI#x8GKF&U1r}t*Lu}2pIhrf4z#pR`mi}M)Je7n8; zk%`)#@Zx{%%6BcaU))*9q?g*L-*a;2g^52ILK+q?Ibb}=Al0jA_q4}*Ca@RHXYV;3 zZ}gBWwkYk;aY32gajMUK*b=TA%{kQ4E7(&VX}zRk$LabT%d)K(p5x52-o|nKcWt|R z`k}TntO+|BxK$cwdv1H<=;E>Js^}(_FKue+mrq%GGbSAJ)%mbEk;g7TsA9oX{wGe8 zH@8>M{80Uj`GB05^km(KuNSqiE;$({w9Vw<3jQ|hg0z79uKd#t6U)_@1AMn#KJR~M zvTkC#-py&d3Ohx9thu?+>H7<(z?jD3hz0h+j4$3F==7;LoY8V%_NzN;tK$PzO)R|| z!;J(RiqxO|WG(tzuafBH>lz*QchR+wlYgB4r(`h)d?}FSeq+kR&Yr@^e=P9tBe9T^ zr&@k5QcJ(#GIPU`DLG3InEULoTJbkQ-!J{pwHt&Nu7tA4=j) zJ!GUNle6^Tq=E=8n}u@4=4<@bpZ#=Q7`A>JzgBdjwBV}v&72PL++SXGJFeHf;pVgb z&z-cdLEXzON}6+TlQ>!BO?PtFsgK=NjaTf%D#CkzUgNWdm!l}9Dtpee_`*5o)VS9!(Pdy@ OVDNPHb6Mw<&;$UD{Mldt literal 0 HcmV?d00001 diff --git a/frontend/static/navbar/hyperblog.png b/frontend/static/navbar/hyperblog.png new file mode 100644 index 0000000000000000000000000000000000000000..f755fab7b0d6d4398746d28f249d3d8ea4311f27 GIT binary patch literal 1214 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 literal 0 HcmV?d00001 diff --git a/frontend/static/navbar/icons8-mastodon-is-an-online,-self-hosted-social-media,-and-social-networking-service.-color.zip b/frontend/static/navbar/icons8-mastodon-is-an-online,-self-hosted-social-media,-and-social-networking-service.-color.zip new file mode 100644 index 0000000000000000000000000000000000000000..d302d0d484dade051b7b3fc0861d6e08a1039cf9 GIT binary patch literal 3638 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 literal 0 HcmV?d00001 diff --git a/frontend/static/navbar/interviews.png b/frontend/static/navbar/interviews.png new file mode 100644 index 0000000000000000000000000000000000000000..8f0841c61ae8ab8e1d91a7cf5c2111622dba3940 GIT binary patch literal 1604 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 I&MBb@0R9YsegFUf literal 0 HcmV?d00001 diff --git a/frontend/static/navbar/nutridex.png b/frontend/static/navbar/nutridex.png new file mode 100644 index 0000000000000000000000000000000000000000..da498a914ad6f0283e3f11e755fc58f171fc9b9f GIT binary patch literal 1683 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 TXL2wwFfe$!`njxgN@xNA{&qnJ literal 0 HcmV?d00001 diff --git a/frontend/static/navbar/twitter-light.png b/frontend/static/navbar/twitter-light.png new file mode 100644 index 0000000000000000000000000000000000000000..f5d964a18de88aa47f95736ee87b08ec4220cb62 GIT binary patch literal 1858 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RWI14-?iy0WWg+Z8+Vb&Z8 z1_rh-o-U3d6?5Lstz2;>ROER6w#b{ybR)Lqx4ezKm=xlYDx!NKYg_&Wd7-z}K@$Qd z++5^3VXDC14LXh*Ys06x8SS09^Zxt4XS0RkUT5oXEvkNX8~^Y62} z@M?`OHOze_}tjh#mO3Dzv1${5{ix>yM)i)(5T3xpu~I zs@GCmk2>`)FU_uIG0b62*n8Y_#*H-_C&;MzntR%sQ`_*H9`h7}E{7}vKX6Yra26oowi2NQ)^MmJ78t0ZW_!Upd`^Kr3 z;Ce~uR#8^K$^9Z+t#{crO+Ni}o661z15VqgMV0MUe|s0bFqq`6IytvzXFw|BN-wq# zesg3Q+Qa7WQn6lt<#D=*t8%u7d471LQ+Dm%f`se4Zg5?QijV59Hxp#|(0bwc^iZ*h zE1s;nWmBLa9aeI4iod`T`|hKUG_Jo?JNez(+Io9HUpO*(kE@PWo6W=tqJ2r=R!X8hFKld4A7TjW-q|d>2m;J#G3u}fnE~f35 zB#f&V?9WYHGW%NFwO=k*^=`=9tZrbPET9{;C1bXPwKdZZH-Q8C|JP4?yM*Ji@9%AK z3vcyGg?zeVVSQ}IMxm)bpElOrw-q|D{gA3ondTW2zR*v>P7g~~)h=H0GHq{_lJO0n z_9sq`3Uxh;GLATuoqGD|n#xv%72Y1_1nqvx@4R=%d$U*Ey%k<&$9lHePdoHL&2NhD z%&Q5E2Y3%1h?$)5{G3}e|AX@6Gmcps7$4}eYgKYI@Jn<2%VJo*`e29l)EFHx_nWyL zR!#fm4zQTcSm~&GUpl@0$qy^F2Z8mbzD}-|40Hvuuv+BzMl)9?O18$GR~TEH;?D)9PHGZ)|JXxzFai z9G6YK-m9-GD-cA81M$>Gf1D{CLU(z$u{SbW-L-%0B^oBgBb-TVK3>$T%t=O-=yapT8n z83r}Z=KIzcbTw7v3ztk!3`Kn2)V<*R(?)o^L(_@~J zr#a)A%Te)9KIl}2HOao5G;LmVP}Whl({jvS)8rLCI(Adi64|YVCQbrF~m#$u&9q#EhbIGLK>Q&vU zy16f(tv>X?z1PJ3dclXH@Hw(;zpizvKfZcPa<<{pvlmMiSTOF<_^~dOq0i?-wcldz zsM8y#XK>6vF?HRn#kpTMKiRJ4sd`(r_sMxCYwnUpX9dd6-(^PPrGB6PB}J% zJ0?9RZo}=p--6U0UMj9Pt|^!rbgSpg(MivGUrlA2#QkT@W8+y*-Ip((vT4_nsjA+y zY|FzmJo$)fapsat+ll__beaiw= z(_ihXjsB-7s2$p_wo;7w!P0Fz^X|vZ(9-$3`QUpG=i(B_6_aH5v3{Oy^e$_crT>c) zk4&ycWvxBV5n5EW{8`(s$_7;RG@R1;&$#VfNLl}v Sq6Z8N3=E#GelF{r5}E+O3~!bI literal 0 HcmV?d00001 diff --git a/frontend/static/navbar/twitter.png b/frontend/static/navbar/twitter.png new file mode 100644 index 0000000000000000000000000000000000000000..415fa9a1ef2c4c0b3594e2bec64ec4f326e327c5 GIT binary patch literal 1926 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RWI14-?iy0WWg+Z8+Vb&Z8 z1_pKuPZ!6KiaBrRR`!Ir3bfZhsFkl^IV#*Qk?-2e?$#S!#f;0*_i3 zt#c9fG!b-k?d@Ela?DgC$!XDo*9SLR$L3Fe(A1?8*TKH1;nbs|o|ktG^Ll>Ao%QiQ zU%mOS>ihk3XT5rN-8A%S=-!6ok3Uw}$o0dh%gkzXmU7k`Dn5U7vE}&W4Gi5`8~KHA zxm0QU=&m-3O5C)WHQ>fMMm=ZNOqs^HGd^q!xNo_W?Th|ur)S(VJ}g}AnsBK6^zlaw zAslLF1m1KH2ClL^V7O+(#fN?sqM{9=Y8+pqFHbx8&~GX?XR^$@rkJpYY11E{ z*5XM&WY(BB`;gU~Hm?IMZt1%lK1d7ql^Cweu|0Q%Yd`mwTVg`%9G4~>a`cIKU7)UW zg7NPu%VitH+BY8B?o@kh;U$BIT)sCR<_Lg2SPc@v~*Sl_!LlJZy{*cDk|9c!!o3 zpSF+aj74v)n!VTTn9UWU~tEEX_QVuzQe4(b~nw7m^Bv8DfN-) z$!g#{&n1?S9rkdJhUF}SXoEsoT}Hou`_H$xBr26pz91-c&VB2Jug%wG8Qt?M51mpK z-ss*k=da1b?1Ls>^q64Vj#Y zhrSQ)-lXJc3hj07i-ks{YGQpp_UaulK+{N{z_p5>hEB%CLZ0S9B ziv6;Ps`0|$58v!WRn=D)>@@iJeZuaGOIg%xGL*f~84m8S<5 zDS3Nqd6wz)O?5dr>qFX8cE&}Q%;|BLYu2#>+XwRH)_lj zoyD^I<@2Sb7FXVKTozE({*&-f=VwM>WzV6Q?aDrkG7r2uy;pL6cRQtc#lvT!=Hf#0 zT~iKl8Rxp3RQn{V^F+SZNIOf_YuSsR4jKitq>bzkK?jQ5p3xQ`%RhwrSbBw*DKRA3H62qBoOk{zL0_LV z)E!b<)3i7x+E*o%S6EIr?NjxRDT`yL91l^|`EomX9ERNpLA~0+9}6FcyCtC(a>^yZ^pm5Rqv^-o>2YOhk06Sg!bKxU7qAq;rC(tT*X9> zox=4ik4<5owaHylmrYw^pzhUoV~Og^X;YjGC#Uu?wk~__ce~uSr6n-1$mirD-pSKEe7?>~ znO!{b?8T_Wc@E#&Hi)@T&AB9UZN^6h-5I;(k1Tz{<$JVb^_ISa2bHE9sd<^bU1{bM zwdsy;>vYx0>p8W(GyA5=?J;=xPQ!9mfPPgZQ;*9f!>u!%X74}ec4VdKJn=nyqoa&1 zY=ipN?AN)pBvhujv+YCgn+;cGa#ziF)l2o6awqi?hdo!>+vA-*lRlfrA2qx5RQyHQ z?EAT=mtK*K$-bRj+~oOvmiNq-Q}^TfWOH^-Ii|ch@zR{cBC|u>f6f@Mj;S(uLP_+=?B$S8fO}`gyEuR?#P;*Ty&6yk~~)a42$hI=cS$^a_Qa>05tJEM5}q zwjy}f`rG;s{&TI#=PYPSzWXfnYw2$viHZ9o4g7YV^D=SYerj=wwRNMx?VAsL`sQ%f ztL?S4n&N))<<7kQtJ&fO);tkU;L_?*+Y?}V{q1b-;MS#e&oX_SioX~oPRYp?6cL-2 zdgtftTyYN3lWHrk8L99Hep6NdzN3D@@^n`%ytV?@UHn0( a?_anW=sJB~%uEIb1_n=8KbLh*2~7Y^;(^Zq literal 0 HcmV?d00001