CHANGE image handling, ADD partials to reuse structure, REFACTOR

This commit is contained in:
Hoernschen 2025-04-17 16:22:33 +02:00
parent 1265491dee
commit 01dcf04b8a
Signed by: hoernschen
GPG key ID: 37591FAF4E6D3462
36 changed files with 1181 additions and 864 deletions

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 21 KiB

View file

@ -5,7 +5,7 @@
flex-shrink: 0;
text-align: center;
display: block;
background-color: #333;
background-color: {{ .Site.Params.footer.color | default "#333" }};
color: #f2f2f2;
}

View file

@ -8,7 +8,7 @@
overflow: hidden;
flex-shrink: 0;
background: white;
box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2);
box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.2);
position: fixed;
z-index: 999;
top: 0;
@ -76,7 +76,7 @@
position: fixed;
background-color: #ffffff;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 1;
}
@ -157,14 +157,15 @@
.header-items.responsive .dropdown {
float: none;
}
.header-items.responsive .dropdown-content {
position: relative;
box-shadow: none;
}
.header-items.responsive .dropdown .dropbtn {
display: block;
width: 100vw;
text-align: left;
}
}

View file

@ -7,8 +7,3 @@
background-position: center center;
{{ end }}
}
.hero-icon-container {
padding: 1rem;
margin: auto;
}

View file

@ -1,24 +1,17 @@
$font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
{{ with .Site.Params.font }}
{{ if .name }}
{{ if .url }}
@font-face {
font-family: {{ .name }};
src: url({{ .url }}) format( {{ .format | default "ttf" }} );
font-weight: 400;
font-style: normal;
}
{{ end }}
$font: {{ .name }} !important;
{{ end }}
{{ end }}
* {
@ -44,6 +37,13 @@ body {
font-style: normal;
}
main {
display: flex;
flex-direction: column;
flex-grow: 1;
justify-content: center;
}
h1 {
margin: 0rem;
margin-bottom: 0.5rem;
@ -59,17 +59,22 @@ a {
color: {{ .Site.Params.color.secondary }};
}
{{ if .Site.Params.list.image }}
img {
max-width: 100%;
height: auto;
margin: auto;
object-fit: contain;
border-radius: 6px;
}
{{ if .Site.Params.list.image }}
ul {
list-style: none;
padding-left: 1rem;
}
ul li {
display: flex;
}
ul li:before {
content: url({{ .Site.Params.list.image }});
display: inline-block;
@ -78,20 +83,8 @@ a {
margin-right: 10px;
flex-shrink: 0;
}
{{ end }}
button {
font-family: inherit;
font-size: 100%;
line-height: inherit;
color: inherit;
background-color: transparent;
background-image: none;
text-transform: none;
padding: 0;
}
.col-3 {flex: 25%; width: 25%; max-width: 25%;}
.col-4 {flex: 33.33%; width: 33.33%; max-width: 33.33%;}
.col-5 {flex: 41.66%; width: 41.66%; max-width: 41.66%;}
@ -166,7 +159,7 @@ button {
}
.section-even {
background-color: #eee;
background-color: {{ .Site.Params.color.background | default "#eee" }};
}
.section-highlight {
@ -204,7 +197,7 @@ button {
flex-grow: 1;
}
.notfoundimage {
.notfound img {
width: 100%;
max-width: 912px;
}
@ -220,11 +213,10 @@ button {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.team-list a {
a {
color: inherit;
margin: 0 auto;
}
}
.teammember {
@ -335,14 +327,15 @@ button {
align-items: center;
}
.service-icon-container {
padding: 1.5rem;
.side-image {
padding: 1rem;
margin: auto;
}
.service-icon {
.side-image img {
width: 100%;
height: auto;
max-height: 90vh;
object-fit: contain;
}
@ -366,7 +359,22 @@ button {
margin-inline-end: -0.5rem;
}
.button-filled {
button {
font-family: inherit;
font-size: 100%;
line-height: inherit;
color: inherit;
background-color: transparent;
background-image: none;
text-transform: none;
padding: 0;
}
.button:hover {
filter: brightness(60%);
}
.button.filled {
background-color: {{ .Site.Params.color.primary }};
color: white;
border: 2px solid {{ .Site.Params.color.primary }};
@ -378,7 +386,7 @@ button {
font-size: 1rem;
}
.button-outlined {
.button.outlined {
background-color: transparent;
color: {{ .Site.Params.color.primary }};
border: 2px solid {{ .Site.Params.color.primary }};
@ -390,11 +398,80 @@ button {
font-size: 1rem;
}
.button-outlined:hover {
.button.outlined:hover {
background-color: {{ .Site.Params.color.primary }};
color: white;
}
.button.text {
display: inline-block;
padding: 0.5rem 1.5rem;
text-align: center;
font-size: 1rem;
color: {{ .Site.Params.color.primary }};
}
.button.inverted {
background-color: white;
color: {{ .Site.Params.color.primary }};
border-radius: 4px;
padding: 0.5rem 1.5rem;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 1rem;
margin-top: 1rem;
}
.button.fab {
display: inline-flex;
background-color: {{ .Site.Params.color.primary }};
color: #f2f2f2;
width: 50px;
height: 50px;
align-items: center;
justify-content: center;
border-radius: 50%;
margin: 30px;
position: fixed;
bottom: 0px;
right: 0px;
transition: background-color .3s;
z-index: 1000;
}
.button.play {
background: url('/button/google-play-button.svg');
background-repeat: no-repeat;
background-size: cover;
display: inline-block;
width: 10rem;
height: 3rem;
}
.button.appstore {
background: url('/button/apple-appstore-button.svg');
background-repeat: no-repeat;
background-size: cover;
display: inline-block;
width: 10rem;
height: 3rem;
}
.button.block {
width: 100%;
}
.show {
visibility: visible;
opacity: 1;
}
.hide {
visibility: hidden;
opacity: 0;
}
.contact {
justify-content: center;
align-items: center;
@ -406,18 +483,6 @@ button {
margin-bottom: 0;
}
.contact-button {
background-color: white;
color: {{ .Site.Params.color.primary }};
border-radius: 4px;
padding: 0.5rem 1.5rem;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 1rem;
margin-top: 1rem;
}
.contact-text {
text-align: center;
color: white;
@ -483,18 +548,17 @@ button {
height: 150px;
border-radius: 5px 5px 0px 0px;
object-fit: cover;
i {
margin: auto;
font-size: 8em;
color: {{ .Site.Params.color.secondary }};
}
}
.noCover {
object-fit: unset !important;
}
.cardIcon {
margin: auto;
font-size: 8em;
color: {{ .Site.Params.color.secondary }};
}
.cardTitle {
text-align: center;
font-size: 18px;
@ -540,19 +604,12 @@ button {
font-size: small;
}
.more-button {
padding-top: 1rem;
text-align: center;
color: {{ .Site.Params.color.primary }};
}
@media screen and (max-width: 600px) {
[class*="col-"] {
display: block;
width: 100%;
max-width: 100%;
}
.services {
display: inline-block;
}

View file

@ -1,33 +0,0 @@
.totop {
display: inline-flex;
background-color: {{ .Site.Params.color.primary }};
color: #f2f2f2;
width: 50px;
height: 50px;
align-items: center;
justify-content: center;
border-radius: 50%;
margin: 30px;
position: fixed;
bottom: 0px;
right: 0px;
transition: background-color .3s;
z-index: 1000;
}
.show {
visibility: visible;
opacity: 1;
}
.hide {
visibility: hidden;
opacity: 0;
}
@media screen and (min-width: 600px) {
.totop:hover {
cursor: pointer;
background-color: black;
}
}

View file

@ -1,5 +1,5 @@
{{ define "main" }}
<div class="notfound">
<img class="notfoundimage" src="/images/undraw_page_not_found_su7k.svg" alt="Not Found Image">
{{- partial "components/image.html" (dict "type" "svg" "url" "/images/notfound.svg" "alt" "Not Found Image") -}}
</div>
{{ end }}

View file

@ -0,0 +1 @@
{{- partial "components/image.html" (dict "url" .Destination "alt" .Text "caption" .Title) -}}

View file

@ -1,63 +1,52 @@
<!DOCTYPE html>
<!doctype html>
<html lang="{{ .Site.LanguageCode }}">
<head>
<meta name="description" content="{{ if .Params.summary }}{{ .Params.summary }}{{ else if .Site.Params.Description }}{{ .Site.Params.Description }}{{ else }}Hardcoded description; the author should update :){{ end }}" />
<head>
<meta name="description"
content="{{ if .Params.summary }}{{ .Params.summary }}{{ else if .Site.Params.Description }}{{ .Site.Params.Description }}{{ else }}Hardcoded description; the author should update :){{ end }}" />
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no" />
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>{{ if .Title }}{{ .Title }}{{ else }}{{ .Site.Title }}{{ end }}</title>
{{ block "opengraph" . }}
<meta property="og:type" content="website" />
{{ with .Site.LanguageCode }}
<meta property="og:locale" content='{{ replace . "-" "_" }}' />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="color-scheme" content="light">
{{ template "_internal/opengraph.html" . }}
<title>
{{ if .Title }}{{ .Title }}{{ else }}{{ .Site.Title }}{{ end }}
</title>
{{ with .Site.Params.favIcon }}
{{ if .ico }}
<link rel="icon" type="image/x-icon" href="{{ .ico }}">
{{ end }}
<meta property="og:title" content="{{ if .Title }}{{ .Title }}{{ else }}{{ .Site.Title }}{{ end }}" />
<meta property="og:url" content="{{ .Permalink }}" />
<meta property="og:site_name" content="{{ .Site.Title }}" />
{{ if .Params.image }}
<meta property="og:image" content="{{ .Params.image | absURL }}" />
{{ else }}
<meta property="og:image" content="{{ .Site.Params.logo | absURL }}" />
{{ if .small }}
<link rel="icon" type="image/png" sizes="16x16" href="{{ .small }}">
{{ end }}
{{ if .Params.summary }}
<meta property="og:description" content="{{ .Params.summary }}" />
{{ else if .Content }}
<meta property="og:description" content="{{ .Content | safeHTML | truncate 100 }}" />
{{ else }}
<meta property="og:description" content="{{ .Site.Params.Description }}" />
{{ if .big }}
<link rel="icon" type="image/png" sizes="32x32" href="{{ .big }}">
{{ end }}
{{ end }}
{{- $favIcon := .Site.Params.favIcon }}
<link rel="icon" type="image/png" sizes="16x16" href="{{ if $favIcon.small }}{{ $favIcon.small }}{{ else }}/favIcon16x16.png{{ end }}">
<link rel="icon" type="image/png" sizes="32x32" href="{{ if $favIcon.big }}{{ $favIcon.big }}{{ else }}/favIcon32x32.png{{ end }}">
{{ with .Site.Params.tracking }}
<script src="{{ . }}"></script>
{{ end }}
<link rel="stylesheet" type="text/css" href="/icons/fontawesome.css">
{{ $template := resources.Get "scss/index.scss" }}
{{ if $template }}
{{ $index := $template | resources.ExecuteAsTemplate "css/index.scss" . | resources.ToCSS (dict "outputStyle" "compressed") | fingerprint }}
<link rel="stylesheet" type="text/css" href="{{ $index.RelPermalink }}">
{{ end }}
{{ block "styling" . }}
{{ end }}
{{ $template := resources.Get "scss/totop.scss" }}
{{ if $template }}
{{ $totop := $template | resources.ExecuteAsTemplate "css/totop.scss" . | resources.ToCSS (dict "outputStyle" "compressed") | fingerprint }}
<link rel="stylesheet" type="text/css" href="{{ $totop.RelPermalink }}">
{{ end }}
</head>
<body>
{{ block "header" . }}
{{- partial "header.html" . -}}
<link rel="stylesheet" type="text/css" href="/icons/fontawesome.css" />
{{ $template := resources.Get "scss/index.scss" }} {{ if $template }} {{
$index := $template | resources.ExecuteAsTemplate "css/index.scss" . |
resources.ToCSS (dict "outputStyle" "compressed") | fingerprint }}
<link rel="stylesheet" type="text/css" href="{{ $index.RelPermalink }}" />
{{ end }} {{ block "styling" . }} {{ end }} {{ $template := resources.Get
"scss/totop.scss" }} {{ if $template }} {{ $totop := $template |
resources.ExecuteAsTemplate "css/totop.scss" . | resources.ToCSS (dict
"outputStyle" "compressed") | fingerprint }}
<link rel="stylesheet" type="text/css" href="{{ $totop.RelPermalink }}" />
{{ end }}
</head>
<body>
{{ block "header" . }} {{- partial "header.html" . -}} {{ end }}
<main>
{{ block "main" . }}
<!-- The part of the page that begins to differ between templates -->
{{ end }}
{{ block "footer" . }}
{{- partial "footer.html" . -}}
{{ end }}
</body>
</main>
{{ block "footer" . }} {{- partial "footer.html" . -}} {{ end }}
</body>
</html>

View file

@ -1,27 +1,24 @@
{{ define "main" }}
{{ with .Params.image }}
{{ if .url }}
<img class="coverimage" src="{{ .url }}" alt="{{ .alt }}" />
{{- partial "components/image.html" (dict "style" "coverimage" "url" .url "alt" .alt) -}}
{{ else }}
<img class="coverimage" src="{{ . }}" />
{{- partial "components/image.html" (dict "style" "coverimage" "url" .) -}}
{{ end }}
{{ end }}
{{ if .Content }}
<div class="content">
{{ with .Title }}
<div class="title">
<h1 class="content-title">{{ . }}</h1>
<div class="divider"></div>
</div>
{{ partial "components/title.html" . }}
{{ end }}
{{.Content}}
</div>
{{ else }}
{{ else if .Params.header.enabled }}
<div class="header-blocker"></div>
{{ end }}
{{- range $index, $page := .Pages }}
{{ $odd := mod $index 2 }}
{{ $id := .Params.id | default $page.File.ContentBaseName }}
{{ $id := .Params.id | default $page.Name }}
{{ if eq .Params.type "slider" }}
{{- partial "slider.html" (dict "id" $id "slider" .Params "color" $.Site.Params.color "odd" $odd) -}}
{{ else if eq .Params.type "hero" }}

View file

@ -1,17 +1,14 @@
{{ define "main" }}
{{ with .Params.image }}
{{ if .url }}
<img class="coverimage" src="{{ .url }}" alt="{{ .alt }}" />
{{- partial "components/image.html" (dict "style" "coverimage" "url" .url "alt" .alt) -}}
{{ else }}
<img class="coverimage" src="{{ . }}" />
{{- partial "components/image.html" (dict "style" "coverimage" "url" . "alt" "Cover") -}}
{{ end }}
{{ end }}
<div class="content">
{{ with .Title }}
<div class="title">
<h1 class="content-title">{{ . }}</h1>
<div class="divider"></div>
</div>
{{ partial "components/title.html" . }}
{{ end }}
{{ .Content }}
</div>

View file

@ -1,10 +1,7 @@
{{ define "main" }}
<div class="content">
<article>
<div class="title">
<h1 class="content-title">{{ .Title }}</h1>
<div class="divider"></div>
</div>
{{ partial "components/title.html" .Title }}
{{.Content}}
</article>
<div class="cardList">
@ -13,9 +10,9 @@
<a href="{{.Permalink}}">
<div class="cardContent">
{{ if .Params.image }}
<img class="cardImage {{ if eq .Params.image.cover false }} noCover {{ end }}" alt="{{ .Params.image.alt }}" src="{{ .Params.image.url }}" />
{{- partial "components/image.html" (dict "style" "cardImage" "url" .Params.image.url "alt" .Params.image.alt) -}}
{{ else }}
<img class="cardImage" src="{{ .Site.Params.defaultimage }}" alt="Default Image" />
{{- partial "components/image.html" (dict "style" "cardImage" "url" .Site.Params.defaultimage "alt" "Placeholder") -}}
{{ end }}
<div class="cardTitle">{{.Title}}</div>
<div class="cardDescription">{{ .Summary | safeHTML | truncate 320 }}</div>

View file

@ -1,10 +1,7 @@
{{ define "main" }}
<div class="content">
<article>
<div class="title">
<h1 class="content-title">{{ .Title }}</h1>
<div class="divider"></div>
</div>
{{ partial "components/title.html" .Title }}
</article>
<!-- Ranges through content/posts/*.md -->
<div class="cardList">

View file

@ -1,5 +1,4 @@
{{ $outlined := "outlined"}}
<a class="{{if eq .type $outlined}} button-outlined {{else}} button-filled {{end}}" href="{{ .url }}">
<a id="{{ .id }}" class='button {{ .type | default "filled" }}' href="{{ .url }}">
{{ with .icon }}
<i class="icon-{{ . }}"></i>
{{ end }}

View file

@ -0,0 +1,9 @@
<!--
type: string - default: link
text: string (optional)
url: string
-->
<a href="{{ .url }}" rel="{{ .rel }}">
<i class="{{ if .type }} icon-{{ .type }} {{ else }} icon-link {{ end }}"></i>
{{ if .text }} {{ .text }}{{ end }}
</a>

View file

@ -0,0 +1,90 @@
<!--
id: string
style: string - default empty
url: string
alt: string
caption: string
width: int
height: int
-->
{{ $sizes := slice "320" "640" "960" "1280" }}
{{ $mediaWidthControl := "(max-width: 360px) 320px, (max-width: 680px) 640px, (max-width: 1100px) 960px, 1280px" }}
{{ $id := .id }}
{{ $style := .style }}
{{ $alt := .alt }}
{{ $caption := .caption }}
{{ $width := .width }}
{{ $height := .height }}
{{ $img := .Page.Resources.GetMatch .url }}
{{ if not $img }}
{{ $img = resources.Get .url }}
{{ if not $img }}
{{ $img := resources.GetRemote .url | resources.Copy (path.Join "images" (path.Base .url )) }}
{{ end }}
{{ end }}
{{ with $img }}
{{ $url := .RelPermalink }}
{{ $type := .MediaType.SubType }}
{{ $ext := path.Ext $url }}
{{ $name := path.Base (replace $url $ext "") }}
{{ $dir := path.Dir $url }}
{{ if eq $type "svg" }}
<img
id="{{ $id }}"
class="{{ $style }}"
src="{{ $url }}"
alt="{{ $alt }}"
loading="lazy"
decoding="async"
>
{{ else }}
<picture>
<source
type="image/avif"
srcset="
{{ range $i, $size := $sizes }}
{{ $dir }}/{{ $name }}-{{ $size }}{{ $ext }}.avif {{ $size }}w,
{{ end }}
{{ $url }}.avif {{ $width | default .Width }}w
"
sizes="{{ $mediaWidthControl }}"
/>
<source
type="image/webp"
srcset="
{{ range $i, $size := $sizes }}
{{ $dir }}/{{ $name }}-{{ $size }}{{ $ext }}.webp {{ $size }}w,
{{ end }}
{{ $url }}.webp {{ $width | default .Width }}w
"
sizes="{{ $mediaWidthControl }}"
/>
<img
id="{{ $id }}"
class="{{ $style }}"
width="{{ $width | default .Width }}"
height="{{ $height | default .Height }}"
srcset="
{{ range $i, $size := $sizes }}
{{ $dir }}/{{ $name }}-{{ $size }}{{ $ext }} {{ $size }}w,
{{ end }}
{{ $url }} {{ $width | default .Width }}w
"
src="{{ $url }}"
alt="{{ $alt }}"
loading="lazy"
decoding="async"
>
</picture>
{{ end }}
{{ if $caption }}
<p class="caption">{{ $caption }}</p>
{{ end }}
{{ end }}
{{/* https://www.brycewray.com/posts/2023/05/better-code-image-processing-hugo-render-hook-edition/ */}}

View file

@ -0,0 +1,4 @@
<div class="title">
<h1 class="content-title">{{ . }}</h1>
<div class="divider"></div>
</div>

View file

@ -1,10 +1,5 @@
{{- $contact := .contact }}
{{- $content := .content }}
{{- $id := "contact"}}
{{if $contact.id}}
{{- $id = $contact.id}}
{{else if .id}}
{{- $id = .id }}
{{- $contact := .contact }} {{- $content := .content }} {{- $id := "contact"}}
{{if $contact.id}} {{- $id = $contact.id}} {{else if .id}} {{- $id = .id }}
{{end}}
<div id="{{ $id }}" class="section section-highlight">
<div class="section-content contact">
@ -16,7 +11,9 @@
<p>{{ $content }}</p>
</div>
<div class="contact-button-container">
<a class="contact-button" href="{{ $contact.button.url }}">{{ $contact.button.text }}</a>
{{ with $contact.button }}
{{ partial "components/button.html" . }}
{{ end }}
</div>
</div>
</div>

View file

@ -9,10 +9,7 @@
<div id="{{ $id }}" class="section {{if eq $odd 0}} section-even {{end}}">
<div class="section-content funding">
{{ with $params.title }}
<div class="title">
<h1 class="content-title">{{ . }}</h1>
<div class="divider"></div>
</div>
{{ partial "components/title.html" . }}
{{ end }}
{{ .content }}
</div>

View file

@ -1,4 +1,5 @@
{{- $footer := .Site.Params.footer }}
{{ if $footer.enabled }}
{{- $social := index $footer "social" }}
{{- $links := index $footer "links" }}
{{ $template := resources.Get "scss/footer.scss" }}
@ -10,9 +11,11 @@
<div class="social-media-footer">
<span>
{{- range $social}}
<a href="{{ .url }}"><i class="icon-{{ .type }}"></i></a>
{{ partial "components/icon.html" . }}
{{- end }}
<a href="/posts/index.xml"><i class="icon-rss"></i></a>
{{ if $footer.rss }}
{{ partial "components/icon.html" (dict "type" "rss" "url" "/posts/index.xml") }}
{{ end }}
</span>
</div>
<div>
@ -26,5 +29,6 @@
© {{ dateFormat "2006" now }} {{ $footer.copyright }}</a>
</div>
</footer>
<a class="totop hide" id="totop" href="#"><i class="icon-angle-up"></i></a>
{{ end }}
{{ partial "components/button.html" (dict "id" "totop" "type" "fab hide" "url" "#" "icon" "angle-up") }}
<script src="/js/totop.js"></script>

View file

@ -1,19 +1,24 @@
{{- $header := .Site.Params.header }}
{{- $links := index $header "links" }}
{{ $template := resources.Get "scss/header.scss" }}
{{ if $template }}
{{ $index := $template | resources.ExecuteAsTemplate "css/header.scss" . | resources.ToCSS (dict "outputStyle" "compressed") | fingerprint }}
<link rel="stylesheet" type="text/css" href="{{ $index.RelPermalink }}">
{{ end }}
{{ $template := resources.Get "scss/progressbar.scss" }}
{{ if $template }}
{{ $progressbar := $template | resources.ExecuteAsTemplate "css/progressbar.scss" . | resources.ToCSS (dict "outputStyle" "compressed") | fingerprint }}
{{ $progressbar := $template | resources.ExecuteAsTemplate "css/progressbar.scss" . | resources.ToCSS (dict
"outputStyle" "compressed") | fingerprint }}
<link rel="stylesheet" type="text/css" href="{{ $progressbar.RelPermalink }}">
{{ end }}
<div class="progress"></div>
{{ if $header.enabled }}
{{ $template := resources.Get "scss/header.scss" }}
{{ if $template }}
{{ $index := $template | resources.ExecuteAsTemplate "css/header.scss" . | resources.ToCSS (dict "outputStyle"
"compressed") | fingerprint }}
<link rel="stylesheet" type="text/css" href="{{ $index.RelPermalink }}">
{{ end }}
<header class="header" id="header">
<div class="header-container">
<a class="home" href="/#"><img id="logo" class="logo" src="{{ .Site.Params.logo }}" alt="Logo"></a>
<a class="home" href="/#">
{{- partial "components/image.html" (dict "id" "logo" "style" "logo" "url" .Site.Params.logo "alt" "Logo") -}}
</a>
<div class="header-items" id="header-items">
{{- range $links}}
{{ if .links }}
@ -41,4 +46,5 @@
<a href="javascript:void(0);" id="menu-icon" class="menu-icon" onclick="unfoldHeader()">&#9776;</a>
</header>
<script src="/js/header.js"></script>
{{ end }}
<script src="/js/progress.js"></script>

View file

@ -4,22 +4,23 @@
{{- $odd := .odd }}
{{- $id := "hero"}}
{{if $hero.id}}
{{- $id := $hero.id}}
{{- $id := $hero.id}}
{{else if .id}}
{{- $id := .id }}
{{- $id := .id }}
{{end}}
{{ $template := resources.Get "scss/hero.scss" }}
{{ if $template }}
{{ $index := $template | resources.ExecuteAsTemplate "css/hero.scss" . | resources.ToCSS (dict "outputStyle" "compressed") | fingerprint }}
{{ $index := $template | resources.ExecuteAsTemplate "css/hero.scss" . | resources.ToCSS (dict "outputStyle"
"compressed") | fingerprint }}
<link rel="stylesheet" type="text/css" href="{{ $index.RelPermalink }}">
{{ end }}
<div id="{{ $id }}" class="section {{if eq $odd 0}} section-even {{end}} row hero">
<div class="section-content services">
<div class="hero-description col-5">
<div class="title">
<h1 class="content-title">{{ $hero.title }}</h1>
<div class="divider"></div>
</div>
{{ with $hero.logo }}
{{- partial "components/image.html" (dict "type" .type "style" .style "url" .url "alt" .alt "width" .width "height" .height) -}}
{{ end }}
{{ partial "components/title.html" $hero.title }}
<p>{{ $content }}</p>
<br />
{{ with $hero.button }}
@ -28,8 +29,8 @@
{{- end }}
{{ end }}
</div>
<div class="hero-icon-container col-7">
<img class="service-icon" alt="{{ $hero.image.alt }}" src="{{ $hero.image.url }}">
<div class="side-image col-7">
{{- partial "components/image.html" $hero.image -}}
</div>
</div>
</div>

View file

@ -10,10 +10,7 @@
<div id="{{ $id }}" class="section {{if eq $odd 0}} section-even {{end}}">
<div class="section-content">
{{ with $links.title }}
<div class="title">
<h1 class="content-title">{{ . }}</h1>
<div class="divider"></div>
</div>
{{ partial "components/title.html" . }}
{{ end }}
<div class="cardList">
{{- range $links.links}}
@ -21,13 +18,14 @@
<a href="{{ .url }}">
<div class="cardContent">
{{ if .image }}
<img class="cardImage {{ if eq .image.cover false }} noCover {{ end }}" alt="{{ .image.alt }}" src="{{ .image.url }}" />
{{ $style := "cardImage {{if ne .Params.image.cover }} noCover {{ end }}" }}
{{- partial "components/image.html" (dict "style" $style "url" .image.url "alt" .image.alt) -}}
{{ else if .icon }}
<div class="cardImage">
<i class="icon-{{ .icon }} cardIcon"></i>
<i class="icon-{{ .icon }}"></i>
</div>
{{ else }}
<img class="cardImage" alt="default image" src="{{ $defaultimage }}" />
{{- partial "components/image.html" (dict "style" "cardImage" "url" $defaultimage "alt" "Placeholder") -}}
{{ end }}
<div class="cardTitle">{{ .title }}</div>
</div>

View file

@ -9,14 +9,13 @@
<div id="{{ $id }}" class="section {{if eq $odd 0}} section-even {{end}}">
<div class="section-content funding">
{{ with $logos.title }}
<div class="title">
<h1 class="content-title">{{ . }}</h1>
<div class="divider"></div>
</div>
{{ partial "components/title.html" . }}
{{ end }}
<div class="funding-logos">
{{- range $logos.logos}}
<a href="{{ .url }}"><img class="funding-logo" src="{{ .logo }}" alt="{{ .text }}"></a>
<a href="{{ .url }}">
{{- partial "components/image.html" (dict "style" "funding-logo" "url" .logo "alt" .text) -}}
</a>
{{- end}}
</div>
</div>

View file

@ -10,28 +10,31 @@
{{end}}
<div id="{{ $id }}" class="section {{if eq $odd 0}} section-even {{end}}">
<div class="section-content posts">
<div class="title">
<h1 class="content-title">{{ $posts.title }}</h1>
<div class="divider"></div>
</div>
{{ partial "components/title.html" $posts.title }}
<div class="cardList">
{{ range first 3 $pages }}
<div class="card">
<a href="{{.Permalink}}">
<div class="cardContent">
{{ if .Params.image }}
<img class="cardImage {{ if eq .Params.image.cover false }} noCover {{ end }}" alt="{{ .Params.image.alt }}" src="{{ .Params.image.url }}" />
{{ $style := "cardImage {{if ne .Params.image.cover }} noCover {{ end }}" }}
{{- partial "components/image.html" (dict "style" $style "url" .image.url "alt" .image.alt) -}}
{{ else }}
<img class="cardImage" src="{{ $defaultimage }}" alt="Defaul Image" />
{{- partial "components/image.html" (dict "style" "cardImage" "url" $defaultimage "alt" "Placeholder") -}}
{{ end }}
<div class="cardTitle">{{.Title}}</div>
<div class="cardDescription">{{ .Summary | safeHTML | truncate 320 }}</div>
<div class="cardDetail">{{.Date.Format "02.01.2006"}} | {{.ReadingTime}} Minuten</div>
<div class="cardDescription">
{{ .Summary | safeHTML | truncate 320 }}
</div>
<div class="cardDetail">
{{.Date.Format "02.01.2006"}} | {{.ReadingTime}} Minuten
</div>
</div>
</a>
</div>
{{ end }}
</div>
<div class="more-button"><a href="{{ $posts.id }}"> {{ $posts.moretext }} </a></div>
{{ partial "components/button.html" (dict "type" "text block" "url"
$posts.id "text" ($posts.more | default "More")) }}
</div>
</div>

View file

@ -10,16 +10,13 @@
<div id="{{$id}}" class="section {{if eq $odd 0}} section-even {{end}} row">
<div class="section-content services">
{{if and ($service.image) (eq $service.image.direction "left")}}
<div class="service-icon-container col-5">
<img class="service-icon" src="{{ $service.image.url }}" alt="{{ $service.image.alt }}">
<div class="side-image col-5">
{{- partial "components/image.html" $service.image -}}
</div>
{{end}}
<div class="service-description {{if $service.image}} col-7 {{end}}">
{{ with $service.title }}
<div class="title">
<h1 class="content-title">{{ . }}</h1>
<div class="divider"></div>
</div>
{{ partial "components/title.html" . }}
{{ end }}
<p>{{ $content }}</p>
<br />
@ -30,8 +27,8 @@
{{ end }}
</div>
{{if and ($service.image) (eq $service.image.direction "right")}}
<div class="service-icon-container col-5">
<img class="service-icon" src="{{ $service.image.url }}" alt="{{ $service.image.alt }}">
<div class="side-image col-5">
{{- partial "components/image.html" $service.image -}}
</div>
{{end}}
</div>

View file

@ -23,7 +23,7 @@
<div class="slides">
{{- range $index, $slide := $slider.images}}
<div class="slide">
<img src="{{ $slide }}" alt="{{ $index }}">
{{- partial "components/image.html" (dict "url" $slide "alt" $index) -}}
{{ if gt $length 1}}
<span class="slider-navigation-right" onclick="scrollToNextSlideNr({{$index}})">
<i class="icon-angle-right"></i>

View file

@ -10,18 +10,15 @@
{{end}}
<div id="{{ $id }}" class="section {{if eq $odd 0}} section-even {{end}}">
<div class="section-content team">
<div class="title">
<h1 class="content-title">{{ $team.title }}</h1>
<div class="divider"></div>
</div>
<div class="team-list">
{{ partial "components/title.html" $team.title }}
<div class="list">
{{- range first 4 ((where $pages "Params.leaveDate" "==" nil).ByParam "startDate") }}
<a href="{{.Permalink}}">
<div class="teammember">
<div class="member">
{{ if .Params.image }}
<img class="avatar" src="{{ .Params.image }}" alt="{{ .Params.name }} Avatar">
{{- partial "components/image.html" (dict "style" "avatar" "url" .Params.image "alt" .Params.name) -}}
{{ else }}
<img class="avatar" src="{{ $defaultimage }}" alt="Default Avatar">
{{- partial "components/image.html" (dict "style" "avatar" "url" $defaultimage "alt" "Placeholder") -}}
{{ end }}
<h1 class="teammember-title">{{ .Params.name }}</h1>
{{- range .Params.jobs }}
@ -30,17 +27,18 @@
<div class="social-media">
<span>
{{- range .Params.social}}
<a href="{{ .url }}"><i class="icon-{{ .type }}"></i></a>
{{ partial "components/icon.html" . }}
{{- end}}
{{if .Params.mail}}
<a href="mailto:{{ .Params.mail }}"><i class="icon-at"></i></a>
{{end}}
{{ if .Params.mail }}
{{ $mailto := "mailto:{{ .Params.mail }}" }}
{{ partial "components/icon.html" (dict "type" "at" "url" $mailto) }}
{{ end }}
</span>
</div>
</div>
</a>
{{- end }}
</div>
<div class="more-button"><a href="{{ $team.id }}"> {{ $team.moretext }} </a></div>
{{ partial "components/button.html" (dict "type" "text block" "url" $team.id "text" ($team.more | default "More")) }}
</div>
</div>

View file

@ -1,11 +1,7 @@
{{ define "main" }}
<div class="content">
<article>
<div class="title">
<h1 class="content-title">{{ .Title }}</h1>
<div class="divider"></div>
</div>
<!-- "{{.Content}}" pulls from the markdown content of the corresponding _index.md -->
{{ partial "components/title.html" .Title }}
{{.Content}}
</article>
<!-- Ranges through content/posts/*.md -->
@ -15,9 +11,10 @@
<a href="{{.Permalink}}">
<div class="cardContent">
{{ if .Params.image }}
<img class="cardImage {{ if eq .Params.image.cover false }} noCover {{ end }}" alt="{{ .Params.image.alt }}" src="{{ .Params.image.url }}" />
{{ $style := "cardImage {{if ne .Params.image.cover }} noCover {{ end }}" }}
{{- partial "components/image.html" (dict "style" $style "url" .Params.image.url "alt" .Params.image.alt) -}}
{{ else }}
<img class="cardImage" src="{{ .Site.Params.defaultimage }}" alt="Default Image" />
{{- partial "components/image.html" (dict "style" "cardImage" "url" .Site.Params.defaultimage "alt" "Placeholder") -}}
{{ end }}
<div class="cardTitle">{{.Title}}</div>
<div class="cardDescription">{{ .Summary | safeHTML | truncate 320 }}</div>

View file

@ -1,47 +1,7 @@
{{ define "opengraph" }}
<meta name="twitter:card" content="summary_large_image" />
<meta property="og:type" content="article" />
{{ with .Site.LanguageCode }}
<meta property="og:locale" content='{{ replace . "-" "_" }}' />
{{ end }}
<meta property="og:title" content="{{ if .Title }}{{ .Title }}{{ else }}{{ .Site.Title }}{{ end }}" />
<meta name="twitter:title" content="{{ if .Title }}{{ .Title }}{{ else }}{{ .Site.Title }}{{ end }}" />
<meta property="og:url" content="{{ .Permalink }}" />
<meta property="og:site_name" content="{{ .Site.Title }}" />
{{ if .Params.image }}
<meta property="og:image" content="{{ .Params.image | absURL }}" />
<meta name="twitter:image" content="{{ .Params.image | absURL }}" />
{{ else }}
<meta property="og:image" content="{{ .Site.Params.logo | absURL }}" />
<meta name="twitter:image" content="{{ .Site.Params.logo | absURL }}" />
{{ end }}
{{ if .Params.summary }}
<meta property="og:description" content="{{ .Params.summary }}" />
<meta name="twitter:description" content="{{ .Params.summary }}" />
{{ else if .Content }}
<meta property="og:description" content="{{ .Content | safeHTML | truncate 100 }}" />
<meta name="twitter:description" content="{{ .Params.summary }}" />
{{ else }}
<meta property="og:description" content="{{ .Site.Params.Description }}" />
<meta name="twitter:description" content="{{ .Params.summary }}" />
{{ end }}
<meta property="article:published_time" content='{{.Date.Format "2006-01-02"}}' />
{{ with .Params.author }}
<meta property="article:author" content="{{ . }}" />
{{ end }}
<meta property="article:section" content="Blog" />
{{ with .Params.tags }}
{{ range . }}
<meta property="article:tag" content="{{ . }}" />
{{ end }}
{{ end }}
{{ end }}
{{ define "main" }}
{{ with .Params.image }}
<img class="coverimage {{ if eq .cover false }} noCover {{ end }}" alt="{{ .alt }}" src="{{ .url }}" />
{{ $style := "coverimage {{if ne .Params.image.cover }} noCover {{ end }}" }}
{{- partial "components/image.html" (dict "style" $style "url" .url "alt" .alt) -}}
{{ with .copyright }}
<div class="image-copyright">© {{ . }}</div>
{{ end }}
@ -67,18 +27,18 @@
<a href="{{.Permalink}}">
<div class="author">
{{ if .Params.image }}
<img class="avatar-small" src="{{ .Params.image }}" alt="{{ .Params.name }} Avatar">
{{- partial "components/image.html" (dict "style" "avatar-small" "url" .Params.image "alt" .Params.name) -}}
{{ else }}
<img class="avatar-small" src="{{ $.Site.Params.defaultimage }}" alt="Default Avatar">
{{- partial "components/image.html" (dict "style" "avatar-small" "url" $.Site.Params.defaultimage "alt" "Placeholder") -}}
{{ end }}
<h4 class="author-title">{{ .Params.name }}</h4>
<div class="social-media">
<span>
{{- range .Params.social}}
<a href="{{ .url }}"><i class="icon-{{ .type }}"></i></a>
{{ partial "components/icon.html" . }}
{{- end}}
{{if .Params.mail}}
<a href="mailto:{{ .Params.mail }}"><i class="icon-at"></i></a>
{{ partial "components/icon.html" (dict "type" "at" "url" "mailto:{{ .Params.mail }}") }}
{{end}}
</span>
</div>

View file

@ -1,10 +1,7 @@
{{ define "main" }}
<div class="content">
<article>
<div class="title">
<h1 class="content-title">{{ .Title }}</h1>
<div class="divider"></div>
</div>
{{ partial "components/title.html" .Title }}
{{.Content}}
</article>
<div class="team-list">
@ -12,9 +9,9 @@
<a href="{{.Permalink}}">
<div class="teammember">
{{ if .Params.image }}
<img class="avatar" src="{{ .Params.image }}" alt="{{ .Params.name }} Avatar">
{{- partial "components/image.html" (dict "style" "avatar" "url" .Params.image "alt" .Params.name) -}}
{{ else }}
<img class="avatar" src="{{ $.Site.Params.defaultimage }}" alt="Default Avatar">
{{- partial "components/image.html" (dict "style" "avatar" "url" $.Site.Params.defaultimage "alt" "Placeholder") -}}
{{ end }}
<h1 class="teammember-title">{{ .Params.name }}</h1>
{{- range .Params.jobs }}
@ -23,10 +20,10 @@
<div class="social-media">
<span>
{{- range .Params.social}}
<a href="{{ .url }}"><i class="icon-{{ .type }}"></i></a>
{{ partial "components/icon.html" . }}
{{- end}}
{{if .Params.mail}}
<a href="mailto:{{ .Params.mail }}"><i class="icon-at"></i></a>
{{ partial "components/icon.html" (dict "type" "at" "url" "mailto:{{ .Params.mail }}") }}
{{end}}
</span>
</div>

View file

@ -2,7 +2,7 @@
<div class="content">
<div class="teammember-header">
{{ with .Params.image }}
<img class="teammember-header-avatar" src="{{ . }}" alt="Avatar">
{{- partial "components/image.html" (dict "style" "teammember-header-avatar" "url" . "alt" "Avatar") -}}
{{ end }}
<div>
<div class="teammember-header-title">
@ -10,10 +10,10 @@
<div class="teammember-header-social-media">
<span>
{{- range .Params.social}}
<a href="{{ .url }}"><i class="icon-{{ .type }}"></i></a>
{{ partial "components/icon.html" . }}
{{- end}}
{{if .Params.mail}}
<a href="mailto:{{ .Params.mail }}"><i class="icon-at"></i></a>
{{ partial "components/icon.html" (dict "type" "at" "url" "mailto:{{ .Params.mail }}") }}
{{end}}
</span>
</div>
@ -35,9 +35,10 @@
<a href="{{.Permalink}}">
<div class="cardContent">
{{ if .Params.image }}
<img class="cardImage {{ if eq .Params.image.cover false }} noCover {{ end }}" alt="{{ .Params.image.alt }}" src="{{ .Params.image.url }}" />
{{ $style := "cardImage {{if ne .Params.image.cover }} noCover {{ end }}" }}
{{- partial "components/image.html" (dict "style" $style "url" .Params.image.url "alt" .Params.image.alt) -}}
{{ else }}
<img class="cardImage" src="{{ .Site.Params.defaultimage }}" alt="Default Image" />
{{- partial "components/image.html" (dict "style" "cardImage" "url" .Site.Params.defaultimage "alt" "Placeholder") -}}
{{ end }}
<div class="cardTitle">{{.Title}}</div>
<div class="cardDescription">{{ .Summary | safeHTML | truncate 320 }}</div>

View file

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg
width="800.21259"
height="237.1003"
viewBox="0 -189.93 539.99946 160.00002"
version="1.1"
id="svg12"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs12" />
<g
transform="matrix(4.00216,0,0,4.0011,0,-189.92999)"
id="g12">
<path
fill="#ffffff"
d="m 134.032,35.268 a 3.83,3.83 0 0 1 -3.834,3.83 H 4.729 A 3.835,3.835 0 0 1 0.89,35.268 V 4.725 A 3.84,3.84 0 0 1 4.729,0.89 h 125.468 a 3.834,3.834 0 0 1 3.834,3.835 z"
id="path1" />
<path
fill="#a6a6a6"
d="M 130.198,39.989 H 4.729 A 4.73,4.73 0 0 1 0,35.268 V 4.726 A 4.733,4.733 0 0 1 4.729,0 h 125.468 a 4.735,4.735 0 0 1 4.729,4.726 v 30.542 c 0.002,2.604 -2.123,4.721 -4.728,4.721 z"
id="path2" />
<path
d="m 134.032,35.268 a 3.83,3.83 0 0 1 -3.834,3.83 H 4.729 A 3.835,3.835 0 0 1 0.89,35.268 V 4.725 A 3.84,3.84 0 0 1 4.729,0.89 h 125.468 a 3.834,3.834 0 0 1 3.834,3.835 z"
id="path3" />
<path
fill="#ffffff"
d="m 30.128,19.784 c -0.029,-3.223 2.639,-4.791 2.761,-4.864 -1.511,-2.203 -3.853,-2.504 -4.676,-2.528 -1.967,-0.207 -3.875,1.177 -4.877,1.177 -1.022,0 -2.565,-1.157 -4.228,-1.123 -2.14,0.033 -4.142,1.272 -5.24,3.196 -2.266,3.923 -0.576,9.688 1.595,12.859 1.086,1.554 2.355,3.287 4.016,3.226 1.625,-0.066 2.232,-1.035 4.193,-1.035 1.943,0 2.513,1.035 4.207,0.996 1.744,-0.027 2.842,-1.56 3.89,-3.127 1.255,-1.779 1.759,-3.533 1.779,-3.623 -0.04,-0.014 -3.386,-1.292 -3.42,-5.154 z m -3.2,-9.478 c 0.874,-1.093 1.472,-2.58 1.306,-4.089 -1.265,0.056 -2.847,0.875 -3.758,1.944 -0.806,0.942 -1.526,2.486 -1.34,3.938 1.421,0.106 2.88,-0.717 3.792,-1.793 z"
id="path4" />
<linearGradient
id="a"
gradientUnits="userSpaceOnUse"
x1="-23.235001"
y1="97.431"
x2="-23.235001"
y2="61.386002"
gradientTransform="matrix(4.0022,0,0,4.0011,191.95,-349.736)">
<stop
offset="0"
stop-color="#1a1a1a"
stop-opacity=".1"
id="stop4" />
<stop
offset=".123"
stop-color="#212121"
stop-opacity=".151"
id="stop5" />
<stop
offset=".308"
stop-color="#353535"
stop-opacity=".227"
id="stop6" />
<stop
offset=".532"
stop-color="#575757"
stop-opacity=".318"
id="stop7" />
<stop
offset=".783"
stop-color="#858585"
stop-opacity=".421"
id="stop8" />
<stop
offset="1"
stop-color="#b3b3b3"
stop-opacity=".51"
id="stop9" />
</linearGradient>
<path
fill="url(#a)"
d="M 130.198,0 H 62.993 l 26.323,39.989 h 40.882 a 4.733,4.733 0 0 0 4.729,-4.724 V 4.726 A 4.734,4.734 0 0 0 130.198,0 Z"
id="path9"
style="fill:url(#a)" />
<g
fill="#ffffff"
id="g10">
<path
d="M 53.665,31.504 H 51.394 L 50.15,27.595 h -4.324 l -1.185,3.909 H 42.43 l 4.285,-13.308 h 2.646 z M 49.775,25.955 48.65,22.48 c -0.119,-0.355 -0.343,-1.191 -0.671,-2.507 h -0.04 c -0.132,0.566 -0.343,1.402 -0.632,2.507 l -1.106,3.475 z m 14.888,0.633 c 0,1.632 -0.443,2.922 -1.33,3.869 -0.794,0.843 -1.781,1.264 -2.958,1.264 -1.271,0 -2.185,-0.453 -2.74,-1.361 v 5.035 H 55.503 V 25.062 c 0,-1.025 -0.027,-2.076 -0.079,-3.154 h 1.875 l 0.119,1.521 h 0.04 c 0.711,-1.146 1.79,-1.719 3.238,-1.719 1.132,0 2.077,0.447 2.833,1.342 0.755,0.897 1.134,2.075 1.134,3.536 z m -2.172,0.078 c 0,-0.934 -0.21,-1.704 -0.632,-2.311 -0.461,-0.631 -1.08,-0.947 -1.856,-0.947 -0.526,0 -1.004,0.176 -1.431,0.523 -0.428,0.35 -0.708,0.807 -0.839,1.373 a 2.784,2.784 0 0 0 -0.099,0.649 v 1.601 c 0,0.697 0.214,1.286 0.642,1.768 0.428,0.48 0.984,0.721 1.668,0.721 0.803,0 1.428,-0.311 1.875,-0.928 0.448,-0.619 0.672,-1.435 0.672,-2.449 z M 75.7,26.588 c 0,1.632 -0.443,2.922 -1.33,3.869 -0.795,0.843 -1.781,1.264 -2.959,1.264 -1.271,0 -2.185,-0.453 -2.74,-1.361 v 5.035 H 66.539 V 25.062 c 0,-1.025 -0.027,-2.076 -0.079,-3.154 h 1.875 l 0.119,1.521 h 0.04 c 0.71,-1.146 1.789,-1.719 3.238,-1.719 1.131,0 2.076,0.447 2.834,1.342 0.754,0.897 1.134,2.075 1.134,3.536 z m -2.173,0.078 c 0,-0.934 -0.211,-1.704 -0.633,-2.311 -0.461,-0.631 -1.078,-0.947 -1.854,-0.947 -0.526,0 -1.004,0.176 -1.433,0.523 -0.428,0.35 -0.707,0.807 -0.838,1.373 -0.065,0.264 -0.1,0.479 -0.1,0.649 v 1.601 c 0,0.697 0.215,1.286 0.641,1.768 0.428,0.479 0.984,0.721 1.67,0.721 0.804,0 1.429,-0.311 1.875,-0.928 0.448,-0.619 0.672,-1.435 0.672,-2.449 z m 14.513,1.105 c 0,1.133 -0.396,2.054 -1.183,2.765 -0.866,0.776 -2.075,1.165 -3.625,1.165 -1.432,0 -2.58,-0.276 -3.446,-0.829 l 0.493,-1.777 c 0.935,0.554 1.962,0.83 3.08,0.83 0.804,0 1.429,-0.182 1.875,-0.543 0.447,-0.362 0.673,-0.846 0.673,-1.45 0,-0.541 -0.187,-0.994 -0.554,-1.363 -0.369,-0.368 -0.979,-0.711 -1.836,-1.026 -2.33,-0.869 -3.496,-2.14 -3.496,-3.812 0,-1.092 0.412,-1.986 1.234,-2.685 0.822,-0.698 1.912,-1.047 3.268,-1.047 1.211,0 2.22,0.211 3.021,0.632 l -0.535,1.738 c -0.754,-0.408 -1.605,-0.612 -2.557,-0.612 -0.752,0 -1.342,0.185 -1.764,0.553 -0.355,0.329 -0.535,0.73 -0.535,1.206 0,0.525 0.205,0.961 0.613,1.303 0.354,0.315 1,0.658 1.934,1.026 1.146,0.462 1.988,1 2.527,1.618 0.543,0.618 0.813,1.389 0.813,2.308 z m 7.067,-4.263 h -2.35 v 4.659 c 0,1.185 0.414,1.776 1.244,1.776 0.381,0 0.697,-0.032 0.947,-0.099 l 0.059,1.619 c -0.42,0.157 -0.973,0.236 -1.658,0.236 -0.842,0 -1.5,-0.257 -1.975,-0.771 -0.473,-0.514 -0.711,-1.375 -0.711,-2.587 v -4.837 h -1.4 v -1.6 h 1.4 v -1.757 l 2.094,-0.632 v 2.389 h 2.35 z m 10.582,3.119 c 0,1.475 -0.422,2.686 -1.264,3.633 -0.881,0.975 -2.053,1.461 -3.514,1.461 -1.41,0 -2.531,-0.467 -3.367,-1.4 -0.836,-0.935 -1.254,-2.113 -1.254,-3.534 0,-1.487 0.432,-2.705 1.293,-3.652 0.863,-0.948 2.025,-1.422 3.486,-1.422 1.408,0 2.539,0.468 3.395,1.402 0.818,0.906 1.225,2.076 1.225,3.512 z m -2.21,0.049 c 0,-0.879 -0.19,-1.633 -0.571,-2.264 -0.447,-0.762 -1.087,-1.143 -1.916,-1.143 -0.854,0 -1.509,0.381 -1.955,1.143 -0.382,0.631 -0.572,1.398 -0.572,2.304 0,0.88 0.19,1.636 0.572,2.265 0.461,0.762 1.104,1.143 1.937,1.143 0.815,0 1.454,-0.389 1.916,-1.162 0.392,-0.646 0.589,-1.405 0.589,-2.286 z m 9.143,-2.893 a 3.71,3.71 0 0 0 -0.672,-0.059 c -0.75,0 -1.33,0.282 -1.738,0.85 -0.354,0.5 -0.532,1.132 -0.532,1.895 v 5.035 h -2.132 V 24.93 a 67.43,67.43 0 0 0 -0.062,-3.021 h 1.857 l 0.078,1.836 h 0.059 c 0.226,-0.631 0.58,-1.14 1.066,-1.521 a 2.578,2.578 0 0 1 1.541,-0.514 c 0.197,0 0.375,0.014 0.533,0.039 z m 9.535,2.469 a 5,5 0 0 1 -0.078,0.967 h -6.396 c 0.024,0.948 0.334,1.674 0.928,2.174 0.539,0.446 1.236,0.67 2.092,0.67 0.947,0 1.811,-0.15 2.588,-0.453 l 0.334,1.479 c -0.908,0.396 -1.98,0.593 -3.217,0.593 -1.488,0 -2.656,-0.438 -3.506,-1.312 -0.848,-0.875 -1.273,-2.051 -1.273,-3.524 0,-1.446 0.395,-2.651 1.186,-3.612 0.828,-1.026 1.947,-1.539 3.355,-1.539 1.383,0 2.43,0.513 3.141,1.539 0.563,0.813 0.846,1.821 0.846,3.018 z m -2.033,-0.553 c 0.015,-0.633 -0.125,-1.178 -0.414,-1.639 -0.369,-0.594 -0.937,-0.89 -1.698,-0.89 -0.697,0 -1.265,0.289 -1.697,0.869 -0.355,0.461 -0.566,1.015 -0.631,1.658 z"
id="path10" />
</g>
<g
fill="#ffffff"
id="g11">
<path
d="m 45.211,13.491 c -0.593,0 -1.106,-0.029 -1.533,-0.078 V 6.979 a 11.606,11.606 0 0 1 1.805,-0.136 c 2.445,0 3.571,1.203 3.571,3.164 0,2.262 -1.33,3.484 -3.843,3.484 z m 0.358,-5.823 c -0.33,0 -0.611,0.02 -0.844,0.068 v 4.891 c 0.126,0.02 0.368,0.029 0.708,0.029 1.602,0 2.514,-0.912 2.514,-2.62 0,-1.523 -0.825,-2.368 -2.378,-2.368 z m 6.994,5.872 c -1.378,0 -2.271,-1.029 -2.271,-2.426 0,-1.456 0.912,-2.494 2.349,-2.494 1.358,0 2.271,0.98 2.271,2.417 0,1.474 -0.941,2.503 -2.349,2.503 z m 0.04,-4.154 c -0.757,0 -1.242,0.708 -1.242,1.698 0,0.971 0.495,1.679 1.232,1.679 0.737,0 1.232,-0.757 1.232,-1.699 0,-0.96 -0.485,-1.678 -1.222,-1.678 z M 62.77,8.717 61.295,13.433 H 60.334 L 59.723,11.385 A 15.53,15.53 0 0 1 59.344,9.862 h -0.02 c -0.077,0.514 -0.223,1.029 -0.378,1.523 l -0.65,2.048 H 57.325 L 55.937,8.717 h 1.077 l 0.534,2.242 c 0.126,0.534 0.232,1.038 0.32,1.514 h 0.02 c 0.077,-0.397 0.203,-0.893 0.388,-1.504 l 0.67,-2.251 H 59.8 l 0.641,2.203 c 0.155,0.534 0.281,1.058 0.379,1.553 h 0.028 c 0.068,-0.485 0.175,-1 0.32,-1.553 l 0.573,-2.203 z m 5.43,4.716 h -1.048 v -2.708 c 0,-0.834 -0.32,-1.252 -0.951,-1.252 -0.621,0 -1.048,0.534 -1.048,1.155 v 2.805 h -1.048 v -3.368 c 0,-0.417 -0.01,-0.864 -0.039,-1.349 h 0.922 l 0.049,0.728 h 0.029 C 65.348,8.94 65.92,8.62 66.561,8.62 c 0.99,0 1.64,0.757 1.64,1.989 z m 2.89,0 h -1.049 v -6.88 h 1.049 z m 3.821,0.107 c -1.377,0 -2.271,-1.029 -2.271,-2.426 0,-1.456 0.912,-2.494 2.348,-2.494 1.359,0 2.271,0.98 2.271,2.417 0.001,1.474 -0.941,2.503 -2.348,2.503 z M 74.95,9.386 c -0.757,0 -1.242,0.708 -1.242,1.698 0,0.971 0.496,1.679 1.231,1.679 0.738,0 1.232,-0.757 1.232,-1.699 10e-4,-0.96 -0.483,-1.678 -1.221,-1.678 z m 6.441,4.047 -0.076,-0.543 h -0.028 c -0.32,0.437 -0.787,0.65 -1.379,0.65 -0.845,0 -1.445,-0.592 -1.445,-1.388 0,-1.164 1.009,-1.766 2.756,-1.766 v -0.087 c 0,-0.621 -0.329,-0.932 -0.979,-0.932 -0.465,0 -0.873,0.117 -1.232,0.35 L 78.795,9.028 c 0.436,-0.272 0.98,-0.408 1.619,-0.408 1.232,0 1.854,0.65 1.854,1.951 v 1.737 c 0,0.476 0.021,0.845 0.068,1.126 z m -0.144,-2.349 c -1.164,0 -1.748,0.282 -1.748,0.951 0,0.495 0.301,0.737 0.719,0.737 0.533,0 1.029,-0.407 1.029,-0.96 z m 6.11,2.349 -0.049,-0.757 h -0.029 c -0.301,0.572 -0.807,0.864 -1.514,0.864 -1.137,0 -1.979,-1 -1.979,-2.407 0,-1.475 0.873,-2.514 2.065,-2.514 0.631,0 1.078,0.213 1.33,0.641 h 0.021 V 6.553 h 1.049 v 5.609 c 0,0.456 0.011,0.883 0.039,1.271 z m -0.155,-2.775 c 0,-0.66 -0.437,-1.223 -1.104,-1.223 -0.777,0 -1.252,0.689 -1.252,1.659 0,0.951 0.493,1.602 1.231,1.602 0.659,0 1.125,-0.573 1.125,-1.252 z m 7.7,2.882 c -1.377,0 -2.27,-1.029 -2.27,-2.426 0,-1.456 0.912,-2.494 2.348,-2.494 1.359,0 2.271,0.98 2.271,2.417 10e-4,1.474 -0.94,2.503 -2.349,2.503 z m 0.039,-4.154 c -0.756,0 -1.241,0.708 -1.241,1.698 0,0.971 0.495,1.679 1.231,1.679 0.738,0 1.232,-0.757 1.232,-1.699 0.002,-0.96 -0.483,-1.678 -1.222,-1.678 z m 7.946,4.047 h -1.049 v -2.708 c 0,-0.834 -0.32,-1.252 -0.951,-1.252 -0.621,0 -1.047,0.534 -1.047,1.155 v 2.805 h -1.049 v -3.368 c 0,-0.417 -0.01,-0.864 -0.039,-1.349 h 0.922 l 0.049,0.728 h 0.029 c 0.281,-0.504 0.854,-0.825 1.494,-0.825 0.99,0 1.641,0.757 1.641,1.989 z m 7.051,-3.93 h -1.153 v 2.29 c 0,0.583 0.202,0.874 0.61,0.874 0.185,0 0.34,-0.02 0.465,-0.049 l 0.029,0.796 c -0.203,0.078 -0.475,0.117 -0.813,0.117 -0.826,0 -1.32,-0.456 -1.32,-1.65 V 9.503 h -0.688 V 8.717 h 0.688 V 7.853 l 1.029,-0.311 v 1.174 h 1.153 z m 5.548,3.93 h -1.047 v -2.688 c 0,-0.844 -0.319,-1.271 -0.951,-1.271 -0.543,0 -1.049,0.369 -1.049,1.116 v 2.843 h -1.047 v -6.88 h 1.047 v 2.833 h 0.021 c 0.33,-0.514 0.808,-0.767 1.418,-0.767 0.998,0 1.608,0.776 1.608,2.009 z m 5.684,-2.106 h -3.145 c 0.02,0.893 0.611,1.397 1.486,1.397 0.465,0 0.893,-0.078 1.271,-0.223 l 0.163,0.728 c -0.446,0.194 -0.971,0.291 -1.582,0.291 -1.475,0 -2.348,-0.932 -2.348,-2.377 0,-1.446 0.894,-2.533 2.23,-2.533 1.205,0 1.961,0.893 1.961,2.242 a 2.02,2.02 0 0 1 -0.036,0.475 z m -0.961,-0.747 c 0,-0.728 -0.367,-1.242 -1.037,-1.242 -0.602,0 -1.078,0.524 -1.146,1.242 z"
id="path11" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg
width="800"
height="237.03702"
viewBox="0 -47.5 135 39.999997"
id="Layer_1"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs23" />
<style
id="style1">.st0{fill:#a6a6a6}.st1{stroke:#ffffff;stroke-width:.2;stroke-miterlimit:10}.st1,.st2{fill:#fff}.st3{fill:url(#SVGID_1_)}.st4{fill:url(#SVGID_2_)}.st5{fill:url(#SVGID_3_)}.st6{fill:url(#SVGID_4_)}.st7,.st8,.st9{opacity:.2;enable-background:new}.st8,.st9{opacity:.12}.st9{opacity:.25;fill:#fff}</style>
<g
id="g24"
transform="translate(0,-47.5)">
<path
d="M 130,40 H 5 C 2.2,40 0,37.8 0,35 V 5 C 0,2.2 2.2,0 5,0 h 125 c 2.8,0 5,2.2 5,5 v 30 c 0,2.8 -2.2,5 -5,5 z"
id="path1" />
<path
class="st1"
d="m 47.4,10.2 c 0,0.8 -0.2,1.5 -0.7,2 -0.6,0.6 -1.3,0.9 -2.2,0.9 -0.9,0 -1.6,-0.3 -2.2,-0.9 -0.6,-0.6 -0.9,-1.3 -0.9,-2.2 0,-0.9 0.3,-1.6 0.9,-2.2 0.6,-0.6 1.3,-0.9 2.2,-0.9 0.4,0 0.8,0.1 1.2,0.3 0.4,0.2 0.7,0.4 0.9,0.7 L 46.1,8.4 C 45.7,7.9 45.2,7.7 44.5,7.7 c -0.6,0 -1.2,0.2 -1.6,0.7 -0.5,0.4 -0.7,1 -0.7,1.7 0,0.7 0.2,1.3 0.7,1.7 0.5,0.4 1,0.7 1.6,0.7 0.7,0 1.2,-0.2 1.7,-0.7 0.3,-0.3 0.5,-0.7 0.5,-1.2 H 44.5 V 9.8 h 2.9 z M 52,7.7 h -2.7 v 1.9 h 2.5 v 0.7 h -2.5 v 1.9 H 52 V 13 H 48.5 V 7 H 52 Z M 55.3,13 H 54.5 V 7.7 H 52.8 V 7 H 57 v 0.7 h -1.7 z m 4.6,0 V 7 h 0.8 v 6 z m 4.2,0 H 63.3 V 7.7 H 61.6 V 7 h 4.1 V 7.7 H 64 V 13 Z m 9.5,-0.8 c -0.6,0.6 -1.3,0.9 -2.2,0.9 -0.9,0 -1.6,-0.3 -2.2,-0.9 -0.6,-0.6 -0.9,-1.3 -0.9,-2.2 0,-0.9 0.3,-1.6 0.9,-2.2 0.6,-0.6 1.3,-0.9 2.2,-0.9 0.9,0 1.6,0.3 2.2,0.9 0.6,0.6 0.9,1.3 0.9,2.2 0,0.9 -0.3,1.6 -0.9,2.2 z m -3.8,-0.5 c 0.4,0.4 1,0.7 1.6,0.7 0.6,0 1.2,-0.2 1.6,-0.7 0.4,-0.4 0.7,-1 0.7,-1.7 C 73.7,9.3 73.5,8.7 73,8.3 72.6,7.9 72,7.6 71.4,7.6 c -0.6,0 -1.2,0.2 -1.6,0.7 -0.4,0.4 -0.7,1 -0.7,1.7 0,0.7 0.2,1.3 0.7,1.7 z M 75.6,13 V 7 h 0.9 l 2.9,4.7 V 7 h 0.8 v 6 H 79.4 L 76.3,8.1 V 13 Z"
id="path3" />
<path
class="st2"
d="m 68.1,21.8 c -2.4,0 -4.3,1.8 -4.3,4.3 0,2.4 1.9,4.3 4.3,4.3 2.4,0 4.3,-1.8 4.3,-4.3 0,-2.6 -1.9,-4.3 -4.3,-4.3 z m 0,6.8 c -1.3,0 -2.4,-1.1 -2.4,-2.6 0,-1.5 1.1,-2.6 2.4,-2.6 1.3,0 2.4,1 2.4,2.6 0,1.5 -1.1,2.6 -2.4,2.6 z m -9.3,-6.8 c -2.4,0 -4.3,1.8 -4.3,4.3 0,2.4 1.9,4.3 4.3,4.3 2.4,0 4.3,-1.8 4.3,-4.3 0,-2.6 -1.9,-4.3 -4.3,-4.3 z m 0,6.8 c -1.3,0 -2.4,-1.1 -2.4,-2.6 0,-1.5 1.1,-2.6 2.4,-2.6 1.3,0 2.4,1 2.4,2.6 0,1.5 -1.1,2.6 -2.4,2.6 z M 47.7,23.1 v 1.8 H 52 c -0.1,1 -0.5,1.8 -1,2.3 -0.6,0.6 -1.6,1.3 -3.3,1.3 -2.7,0 -4.7,-2.1 -4.7,-4.8 0,-2.7 2.1,-4.8 4.7,-4.8 1.4,0 2.5,0.6 3.3,1.3 l 1.3,-1.3 c -1.1,-1 -2.5,-1.8 -4.5,-1.8 -3.6,0 -6.7,3 -6.7,6.6 0,3.6 3.1,6.6 6.7,6.6 2,0 3.4,-0.6 4.6,-1.9 1.2,-1.2 1.6,-2.9 1.6,-4.2 0,-0.4 0,-0.8 -0.1,-1.1 z m 45.4,1.4 c -0.4,-1 -1.4,-2.7 -3.6,-2.7 -2.2,0 -4,1.7 -4,4.3 0,2.4 1.8,4.3 4.2,4.3 1.9,0 3.1,-1.2 3.5,-1.9 l -1.4,-1 c -0.5,0.7 -1.1,1.2 -2.1,1.2 -1,0 -1.6,-0.4 -2.1,-1.3 L 93.3,25 Z m -5.8,1.4 c 0,-1.6 1.3,-2.5 2.2,-2.5 0.7,0 1.4,0.4 1.6,0.9 z M 82.6,30 h 1.9 V 17.5 h -1.9 z m -3,-7.3 c -0.5,-0.5 -1.3,-1 -2.3,-1 -2.1,0 -4.1,1.9 -4.1,4.3 0,2.4 1.9,4.2 4.1,4.2 1,0 1.8,-0.5 2.2,-1 h 0.1 v 0.6 c 0,1.6 -0.9,2.5 -2.3,2.5 -1.1,0 -1.9,-0.8 -2.1,-1.5 l -1.6,0.7 c 0.5,1.1 1.7,2.5 3.8,2.5 2.2,0 4,-1.3 4,-4.4 V 22 h -1.8 z m -2.2,5.9 C 76.1,28.6 75,27.5 75,26 c 0,-1.5 1.1,-2.6 2.4,-2.6 1.3,0 2.3,1.1 2.3,2.6 0,1.5 -1,2.6 -2.3,2.6 z M 101.8,17.5 H 97.3 V 30 h 1.9 v -4.7 h 2.6 c 2.1,0 4.1,-1.5 4.1,-3.9 0,-2.4 -2,-3.9 -4.1,-3.9 z m 0.1,6 h -2.7 v -4.3 h 2.7 c 1.4,0 2.2,1.2 2.2,2.1 -0.1,1.1 -0.9,2.2 -2.2,2.2 z m 11.5,-1.8 c -1.4,0 -2.8,0.6 -3.3,1.9 l 1.7,0.7 c 0.4,-0.7 1,-0.9 1.7,-0.9 1,0 1.9,0.6 2,1.6 v 0.1 c -0.3,-0.2 -1.1,-0.5 -1.9,-0.5 -1.8,0 -3.6,1 -3.6,2.8 0,1.7 1.5,2.8 3.1,2.8 1.3,0 1.9,-0.6 2.4,-1.2 h 0.1 v 1 h 1.8 v -4.8 c -0.2,-2.2 -1.9,-3.5 -4,-3.5 z m -0.2,6.9 c -0.6,0 -1.5,-0.3 -1.5,-1.1 0,-1 1.1,-1.3 2,-1.3 0.8,0 1.2,0.2 1.7,0.4 -0.2,1.2 -1.2,2 -2.2,2 z m 10.5,-6.6 -2.1,5.4 h -0.1 L 119.3,22 h -2 l 3.3,7.6 -1.9,4.2 h 1.9 L 125.7,22 Z m -16.8,8 h 1.9 V 17.5 h -1.9 z"
id="path4" />
<g
id="g23">
<linearGradient
id="SVGID_1_"
gradientUnits="userSpaceOnUse"
x1="21.799999"
y1="33.290001"
x2="5.0170002"
y2="16.507999"
gradientTransform="matrix(1,0,0,-1,0,42)">
<stop
offset="0"
stop-color="#00a0ff"
id="stop4" />
<stop
offset=".007"
stop-color="#00a1ff"
id="stop5" />
<stop
offset=".26"
stop-color="#00beff"
id="stop6" />
<stop
offset=".512"
stop-color="#00d2ff"
id="stop7" />
<stop
offset=".76"
stop-color="#00dfff"
id="stop8" />
<stop
offset="1"
stop-color="#00e3ff"
id="stop9" />
</linearGradient>
<path
class="st3"
d="M 10.4,7.5 C 10.1,7.8 10,8.3 10,8.9 V 31 c 0,0.6 0.2,1.1 0.5,1.4 L 10.6,32.5 23,20.1 v -0.2 z"
id="path9"
style="fill:url(#SVGID_1_)" />
<linearGradient
id="SVGID_2_"
gradientUnits="userSpaceOnUse"
x1="33.834"
y1="21.999001"
x2="9.6370001"
y2="21.999001"
gradientTransform="matrix(1,0,0,-1,0,42)">
<stop
offset="0"
stop-color="#ffe000"
id="stop10" />
<stop
offset=".409"
stop-color="#ffbd00"
id="stop11" />
<stop
offset=".775"
stop-color="orange"
id="stop12" />
<stop
offset="1"
stop-color="#ff9c00"
id="stop13" />
</linearGradient>
<path
class="st4"
d="m 27,24.3 -4.1,-4.1 v -0.3 l 4.1,-4.1 0.1,0.1 4.9,2.8 c 1.4,0.8 1.4,2.1 0,2.9 z"
id="path13"
style="fill:url(#SVGID_2_)" />
<linearGradient
id="SVGID_3_"
gradientUnits="userSpaceOnUse"
x1="24.827"
y1="19.704"
x2="2.069"
y2="-3.0539999"
gradientTransform="matrix(1,0,0,-1,0,42)">
<stop
offset="0"
stop-color="#ff3a44"
id="stop14" />
<stop
offset="1"
stop-color="#c31162"
id="stop15" />
</linearGradient>
<path
class="st5"
d="M 27.1,24.2 22.9,20 10.4,32.5 c 0.5,0.5 1.2,0.5 2.1,0.1 l 14.6,-8.4"
id="path15"
style="fill:url(#SVGID_3_)" />
<linearGradient
id="SVGID_4_"
gradientUnits="userSpaceOnUse"
x1="7.2969999"
y1="41.824001"
x2="17.459999"
y2="31.660999"
gradientTransform="matrix(1,0,0,-1,0,42)">
<stop
offset="0"
stop-color="#32a071"
id="stop16" />
<stop
offset=".069"
stop-color="#2da771"
id="stop17" />
<stop
offset=".476"
stop-color="#15cf74"
id="stop18" />
<stop
offset=".801"
stop-color="#06e775"
id="stop19" />
<stop
offset="1"
stop-color="#00f076"
id="stop20" />
</linearGradient>
<path
class="st6"
d="M 27.1,15.8 12.5,7.5 C 11.6,7 10.9,7.1 10.4,7.6 L 22.9,20 Z"
id="path20"
style="fill:url(#SVGID_4_)" />
<path
class="st7"
d="m 27,24.1 -14.5,8.2 c -0.8,0.5 -1.5,0.4 -2,0 l -0.1,0.1 0.1,0.1 c 0.5,0.4 1.2,0.5 2,0 z"
id="path21" />
<path
class="st8"
d="M 10.4,32.3 C 10.1,32 10,31.5 10,30.9 V 31 c 0,0.6 0.2,1.1 0.5,1.4 v -0.1 z m 21.6,-11 -5,2.8 0.1,0.1 4.9,-2.8 c 0.7,-0.4 1,-0.9 1,-1.4 0,0.5 -0.4,0.9 -1,1.3 z"
id="path22" />
<path
class="st9"
d="M 12.5,7.6 32,18.7 c 0.6,0.4 1,0.8 1,1.3 0,-0.5 -0.3,-1 -1,-1.4 L 12.5,7.5 C 11.1,6.7 10,7.3 10,8.9 V 9 c 0,-1.5 1.1,-2.2 2.5,-1.4 z"
id="path23" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8 KiB

View file

@ -1,9 +1,9 @@
const scrollToTopButton = document.getElementById('totop');
const scrollToTopListener = () => {
if (window.scrollY > 0) {
scrollToTopButton.className = "totop show";
scrollToTopButton.className = "button fab show";
} else {
scrollToTopButton.className = "totop hide";
scrollToTopButton.className = "button fab hide";
}
};