sidebar subs added, gallery mask, mode added,

This commit is contained in:
zzossig 2019-11-13 17:06:51 +09:00
parent f59c56b66b
commit b4c2a225a9
32 changed files with 255 additions and 42 deletions

View File

@ -238,6 +238,7 @@ enableSidebarSeries = true
enableSidebarCategories = true enableSidebarCategories = true
enableToc = true enableToc = true
itemsPerCategory = 5 itemsPerCategory = 5
enableSideSubscribe = false
# comment # comment
enableComment = false enableComment = false
@ -312,7 +313,34 @@ The CSS grid layout are in `assets/sass/layout/_grid.scss`. A lot can be done by
## Gallery ## Gallery
Follow the steps below if you want to make gallery There are two ways to make gallery. You can specify **mode** at frontmatter.
```bash
content/gallery/mygallery/index.md
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
description:
type: gallery
mode: one-by-one # at-once or one-by-one
tags:
-
series:
-
categories:
-
images: # when mode is one-by-one, images front matter works
- image: image1.jpg
caption: caption1
- image: image2.jpg
caption: caption2
...
---
```
If you set the mode to one-by-one, list.html page will use images frontmatter above. If you set the mode to at-once, list.html page will not use images frontmatter and just read all files under the static/gallery/mygallery folder.
1. Make a gallery folder under the content folder 1. Make a gallery folder under the content folder

View File

@ -3,10 +3,14 @@ title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }} date: {{ .Date }}
description: description:
type: gallery type: gallery
mode: at-once # at-once or one-by-one
tags: tags:
- -
series: series:
- -
categories: categories:
- -
images: # when mode is one-by-one, images front matter works
- image:
caption:
--- ---

View File

@ -6,7 +6,7 @@ $code-font-stack: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "
"DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier,
monospace !default; monospace !default;
$z-indexes: ("modal", "navbar", "dropdown", "header", "grid", "search", "content", "footer", "taxo", "toc"); $z-indexes: ("modal", "navbar", "dropdown", "header", "grid", "search", "content", "footer", "taxo", "toc", "gallery-mask");
$ls: ( $ls: (
base: -10, base: -10,
heading: 10, heading: 10,

View File

@ -15,22 +15,57 @@
&__form { &__form {
@include flexbox(); @include flexbox();
@include align-items(center); @include align-items(center);
margin-bottom: 0.25rem;
}
&__icon {
padding: 0.3rem;
border-top-left-radius: 0.25rem;
border-bottom-left-radius: 0.25rem;
@include flexbox();
@include align-items(center);
@include themify($themes) {
color: themed("search-icon-color");
background-color: themed("search-background-color");
}
} }
&__input { &__input {
height: 32px; height: 32px;
width: 100%; width: 100%;
padding: 0.25rem; padding: 0.25rem;
border-radius: 0.25rem; border-top-right-radius: 0.25rem;
border-bottom-right-radius: 0.25rem;
margin-right: 1rem; margin-right: 1rem;
background-color: #212121; border: none;
border: 1px solid #212121;
color: red;
border-left: none;
outline: none; outline: none;
@include themify($themes) {
color: themed("search-color");
background-color: themed("search-background-color");
@include input-placeholder {
font-family: $search_placeholder_font;
color: themed("search-placeholder-color");
}
}
} }
&__button { &__button {
border-radius: 0.125rem;
border: none;
outline: none;
height: 25px;
width: auto;
min-width: 60px;
cursor: pointer;
@include transition(all, 0.25s, ease);
@include themify($themes) {
color: themed('subs-button-color');
background-color:themed('subs-button-background-color');
@include on-event {
background-color:themed('subs-button-hover-background-color');
}
}
} }
} }

View File

@ -124,6 +124,11 @@ $whoami_border_color: {{ $scr.Get "whoami_border_color" }};
$switch_background_color: {{ $scr.Get "switch_background_color" }}; $switch_background_color: {{ $scr.Get "switch_background_color" }};
$switch_button_color: {{ $scr.Get "switch_button_color" }}; $switch_button_color: {{ $scr.Get "switch_button_color" }};
$switch_active_color: {{ $scr.Get "switch_active_color" }}; $switch_active_color: {{ $scr.Get "switch_active_color" }};
$subs_button_color: {{ $scr.Get "subs_button_color" }};
$subs_button_background_color: {{ $scr.Get "subs_button_background_color" }};
$subs_button_hover_background_color: {{ $scr.Get "subs_button_hover_background_color" }};
$gallery_mask_color: {{ $scr.Get "gallery_mask_color" }};
$gallery_mask_background_color: {{ $scr.Get "gallery_mask_background_color" }};
@import 'abstracts/variables'; @import 'abstracts/variables';
@import 'abstracts/mixins'; @import 'abstracts/mixins';

View File

@ -35,20 +35,16 @@
.grid-sizer, .grid-sizer,
.grid-item { .grid-item {
width: 33.333%; width: 33.333%;
padding: 0.25rem; padding: 0.5rem;
img {
border-radius: 0.25rem;
}
} }
.grid-item { .grid-item {
float: left; float: left;
} }
.grid-item img { .grid-item img {
display: block; display: block;
max-width: 100%; max-width: 100%;
} }
@ -62,4 +58,37 @@
font-size: 1rem; font-size: 1rem;
text-align: center; text-align: center;
} }
.grid-item {
position: relative;
opacity: 1;
height: auto;
cursor: pointer;
&__desc {
position: absolute;
display: none;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
padding: 0.5rem;
width: calc(100% - 1rem);
height: calc(100% - 1rem);
border-radius: 0.25rem;
z-index: z('gallery-mask');
font-family: $single_title_font;
font-weight: 700;
cursor: pointer;
@include box-shadow(0, 4px, 4px, 0, rgba(0, 0, 0, 0.4));
@include on-event {
@include themify($themes) {
color: themed('gallery-mask-color');
background-color: themed('gallery-mask-background-color');
}
}
}
}
} }

View File

@ -94,4 +94,9 @@ $custom: (
switch-background-color: $switch_background_color, switch-background-color: $switch_background_color,
switch-button-color: $switch_button_color, switch-button-color: $switch_button_color,
switch-active-color: $switch_active_color, switch-active-color: $switch_active_color,
subs-button-color: $subs_button_color,
subs-button-background-color: $subs_button_background_color,
subs-button-hover-background-color: $subs_button_hover_background_color,
gallery-mask-color: $gallery_mask_color,
gallery-mask-background-color: $gallery_mask_background_color,
) !default; ) !default;

View File

@ -95,4 +95,9 @@ $dark: (
switch-background-color: #403E41, switch-background-color: #403E41,
switch-button-color: #FCFCFA, switch-button-color: #FCFCFA,
switch-active-color: #FF6188, switch-active-color: #FF6188,
subs-button-color: #FCFCFA,
subs-button-background-color: #FF6188,
subs-button-hover-background-color: darken(#FF6188, 5%),
gallery-mask-color: #FCFCFA,
gallery-mask-background-color: rgba(0, 0, 0, 0.7),
); );

View File

@ -98,4 +98,9 @@ $hacker: (
switch-background-color: #403E41, switch-background-color: #403E41,
switch-button-color: #FCFCFA, switch-button-color: #FCFCFA,
switch-active-color: #FF6188, switch-active-color: #FF6188,
subs-button-color: $primary-color,
subs-button-background-color: #252526,
subs-button-hover-background-color: lighten(#252526, 5%),
gallery-mask-color: #FCFCFA,
gallery-mask-background-color: rgba(0, 0, 0, 0.7),
); );

View File

@ -95,4 +95,9 @@ $light: (
switch-background-color: #bdbdbd, switch-background-color: #bdbdbd,
switch-button-color: #FCFCFA, switch-button-color: #FCFCFA,
switch-active-color: #FF6188, switch-active-color: #FF6188,
subs-button-color: #607d8b,
subs-button-background-color: #eeeeee,
subs-button-hover-background-color: darken(#eeeeee, 5%),
gallery-mask-color: #424242,
gallery-mask-background-color: rgba(255, 255, 255, 0.7),
); );

View File

@ -9,7 +9,7 @@ $solarized: (
title-color: $primary-color, title-color: $primary-color,
meta-color: lighten($primary-color, 5%), meta-color: lighten($primary-color, 5%),
body-color: #424242, body-color: #424242,
hr-color: $primary-color, hr-color: $secondary-color,
body-background-color: #FDF7E3, body-background-color: #FDF7E3,
backdrop-background-color: #DDD6C7, backdrop-background-color: #DDD6C7,
dropdown-border-color: $primary-color, dropdown-border-color: $primary-color,
@ -98,4 +98,9 @@ $solarized: (
switch-background-color: darken(#EEE8D5, 10%), switch-background-color: darken(#EEE8D5, 10%),
switch-button-color: #FCFCFA, switch-button-color: #FCFCFA,
switch-active-color: #FF6188, switch-active-color: #FF6188,
subs-button-color: #FCFCFA,
subs-button-background-color: $secondary-color,
subs-button-hover-background-color: darken($secondary-color, 3%),
gallery-mask-color: #424242,
gallery-mask-background-color: rgba(253, 247, 227, 0.7),
); );

View File

@ -22,6 +22,7 @@ enableSidebarSeries = true
enableSidebarCategories = true enableSidebarCategories = true
enableToc = true enableToc = true
itemsPerCategory = 5 itemsPerCategory = 5
enableSideSubscribe = false
# footer # footer
showPoweredBy = true showPoweredBy = true

View File

@ -93,4 +93,9 @@ gtt_hover_background_color = "inherit"
whoami_border_color = "inherit" whoami_border_color = "inherit"
switch_background_color = "inherit" switch_background_color = "inherit"
switch_button_color = "inehrit" switch_button_color = "inehrit"
switch_active_color = "inehrit" switch_active_color = "inehrit"
subs_button_color = "inherit"
subs_button_background_color = "inherit"
subs_button_hover_background_color = "inherit"
gallery_mask_color = "inherit"
gallery_mask_background_color = "inherit"

View File

@ -48,7 +48,8 @@ rssLimit = 100
enableSidebarCategories = true enableSidebarCategories = true
enableToc = true enableToc = true
itemsPerCategory = 5 itemsPerCategory = 5
enableSideSubscribe = false
# footer # footer
showPoweredBy = true showPoweredBy = true
showFeedLinks = true showFeedLinks = true

View File

@ -2,5 +2,9 @@
title: "Photo" title: "Photo"
date: 2018-10-12T10:20:16+09:00 date: 2018-10-12T10:20:16+09:00
type: "gallery" type: "gallery"
mode: "one-by-one"
description: "포토 갤러리" description: "포토 갤러리"
images:
- image: owl.jpg
caption: owl caption
--- ---

View File

@ -2,5 +2,9 @@
title: "Photo" title: "Photo"
date: 2018-10-12T10:20:16+09:00 date: 2018-10-12T10:20:16+09:00
type: "gallery" type: "gallery"
mode: "one-by-one"
description: "photo gallery" description: "photo gallery"
images:
- image: owl.jpg
caption: owl caption
--- ---

View File

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 112 KiB

View File

@ -37,8 +37,11 @@ other = "What's on this Page"
[subs-label] [subs-label]
other = "Subscribe" other = "Subscribe"
[subs-placeholder] [subs-placeholder-email]
other = "Your email address" other = "Your email address"
[subs-placeholder-name]
other = "Your name"
[subs-button] [subs-button]
other = "Join" other = "Join"

View File

@ -37,8 +37,11 @@ other = "목차"
[subs-label] [subs-label]
other = "구독" other = "구독"
[subs-placeholder] [subs-placeholder-email]
other = "이메일 주소 입력" other = "이메일 주소"
[subs-placeholder-name]
other = "이름"
[subs-button] [subs-button]
other = "구독하기" other = "구독하기"

View File

@ -10,7 +10,7 @@
</span> </span>
<main class="main archive"> <main class="main archive">
<div> <div>
{{ range (and (where .Site.RegularPages "Type" "!=" "about") (where .Site.RegularPages "Type" "!=" "archive")).GroupByDate .Site.Params.archiveGroupByDate }} {{ range (and (where .Site.RegularPages "Type" "!=" "about") (where .Site.RegularPages "Type" "!=" "archive")).GroupByDate (.Site.Params.archiveGroupByDate | default 2006) }}
<span class="archive__key">{{ .Key }}</span> <span class="archive__key">{{ .Key }}</span>
<ul class="archive__ul"> <ul class="archive__ul">
{{ range .Pages }} {{ range .Pages }}

View File

@ -5,18 +5,45 @@
{{ .Content }} {{ .Content }}
</div> </div>
</header> </header>
{{ if in (lower .Params.Mode) "one" }}
<main class="gallery main"> <main class="gallery main">
<div class="grid single__contents"> <div class="grid single__contents">
<div class="grid-sizer"></div> <div class="grid-sizer"></div>
{{ $basename := (replace .File.Dir "\\" "/") }} {{ if .File.Dir }}
{{ range (readDir (print "./static/" $basename)) }} {{ $basename := (replace .File.Dir "\\" "/") }}
<div class="grid-item"> {{ range .Params.Images }}
<img src="{{ $basename | relURL }}{{ .Name }}" alt="{{ .Name }}"> <div class="grid-item">
</div> <img src="{{ $basename | relURL }}{{ .image }}" alt="{{ print .caption }}"/>
<div class="grid-item__desc hide">{{ .caption }}</div>
</div>
{{ end }}
{{ end }} {{ end }}
</div> </div>
{{ partial "pagination/pagination-single" . }} {{ partial "pagination/pagination-single" . }}
</main> </main>
{{ else }}
<main class="gallery main">
<div class="grid single__contents">
<div class="grid-sizer"></div>
{{ if .File.Dir }}
{{ $basename := (replace .File.Dir "\\" "/") }}
{{ range (readDir (print "./static/" $basename)) }}
<div class="grid-item">
<img src="{{ $basename | relURL }}{{ .Name }}" alt="{{ index (split .Name ".") 0 }}"/>
<div class="grid-item__desc hide">{{ index (split .Name ".") 0 }}</div>
</div>
{{ end }}
{{ end }}
</div>
{{ partial "pagination/pagination-single" . }}
</main>
{{ end }}
{{ partial "body/photoswipe" . }} {{ partial "body/photoswipe" . }}
{{ $masonry := resources.Get `js/masonry.pkgd.min.js` | resources.Fingerprint }} {{ $masonry := resources.Get `js/masonry.pkgd.min.js` | resources.Fingerprint }}
@ -35,6 +62,14 @@
$grid.masonry(); $grid.masonry();
}); });
$('.grid-item').mouseenter(function () {
$(this).children('.grid-item__desc').show();
});
$('.grid-item').mouseleave(function () {
$(this).children('.grid-item__desc').hide();
});
enquire.register("screen and (max-width:500px)", { enquire.register("screen and (max-width:500px)", {
match: function () { match: function () {
$('.grid-item').addClass('full'); $('.grid-item').addClass('full');

View File

@ -82,17 +82,28 @@
var pswpElement = $('.pswp')[0]; var pswpElement = $('.pswp')[0];
var imgElements = $('.single__contents').find('img'); var imgElements = $('.single__contents').find('img');
var items = []; var items = [];
{{ $mode:= .Params.Mode }}
var mode = JSON.parse({{ $mode | jsonify }});
imgElements.each(function (i, v) { imgElements.each(function (i, v) {
$(this).click(function (e) { $(this).siblings().click(function (e) {
initGallery(i); initGallery(i);
}); });
$(this).css('cursor', 'pointer'); $(this).css('cursor', 'pointer');
var caption = null;
if (mode && mode.toLowerCase().includes('one')) {
caption = $(this).attr('alt');
} else {
caption = filename(v['src']);
}
items.push({ items.push({
src: v['src'], src: v['src'],
w: 0, w: 0,
h: 0, h: 0,
title: filename(v['src']), title: caption,
}); });
}); });

View File

@ -96,3 +96,8 @@
{{- $scr.Set "switch_background_color" $skin.switch_background_color -}} {{- $scr.Set "switch_background_color" $skin.switch_background_color -}}
{{- $scr.Set "switch_button_color" $skin.switch_button_color -}} {{- $scr.Set "switch_button_color" $skin.switch_button_color -}}
{{- $scr.Set "switch_active_color" $skin.switch_active_color -}} {{- $scr.Set "switch_active_color" $skin.switch_active_color -}}
{{- $scr.Set "subs_button_color" $skin.subs_button_color -}}
{{- $scr.Set "subs_button_background_color" $skin.subs_button_background_color -}}
{{- $scr.Set "subs_button_hover_background_color" $skin.subs_button_hover_background_color -}}
{{- $scr.Set "gallery_mask_color" $skin.gallery_mask_color -}}
{{- $scr.Set "gallery_mask_background_color" $skin.gallery_mask_background_color -}}

View File

@ -13,10 +13,12 @@
{{ $zzo := resources.Get "js/zzo.js" | resources.Minify | resources.Fingerprint }} {{ $zzo := resources.Get "js/zzo.js" | resources.Minify | resources.Fingerprint }}
<script defer src="{{ $zzo.RelPermalink }}"></script> <script defer src="{{ $zzo.RelPermalink }}"></script>
{{ range .Site.Params.custom_js -}} {{ if .Site.Params.custom_js }}
{{ range .Site.Params.custom_js }}
{{ $custom_template := resources.Get . }} {{ $custom_template := resources.Get . }}
{{ if $custom_template }} {{ if $custom_template }}
{{ $custom_js := $custom_template | resources.Minify | resources.Fingerprint }} {{ $custom_js := $custom_template | resources.Minify | resources.Fingerprint }}
<script defer src="{{ $custom_js.RelPermalink }}"></script> <script defer src="{{ $custom_js.RelPermalink }}"></script>
{{ end }} {{ end }}
{{- end }} {{ end }}
{{ end }}

View File

@ -3,10 +3,12 @@
{{ $main_style := $main_template | resources.ExecuteAsTemplate "main_parsed.scss" . | toCSS $main_options | resources.Minify }} {{ $main_style := $main_template | resources.ExecuteAsTemplate "main_parsed.scss" . | toCSS $main_options | resources.Minify }}
<link rel="stylesheet" href="{{ $main_style.RelPermalink }}"> <link rel="stylesheet" href="{{ $main_style.RelPermalink }}">
{{ range .Site.Params.custom_css -}} {{ if .Site.Params.custom_css }}
{{ range .Site.Params.custom_css }}
{{ $custom_template := resources.Get . }} {{ $custom_template := resources.Get . }}
{{ if $custom_template }} {{ if $custom_template }}
{{ $custom_style := $custom_template | resources.ToCSS | resources.Minify }} {{ $custom_style := $custom_template | resources.ToCSS | resources.Minify }}
<link rel="stylesheet" href="{{ $custom_style.RelPermalink }}"> <link rel="stylesheet" href="{{ $custom_style.RelPermalink }}">
{{ end }} {{ end }}
{{- end }} {{ end }}
{{ end }}

View File

@ -1,7 +1,7 @@
{{ if .IsHome }} {{ if .IsHome }}
<header class="header"> <header class="header">
<div class="header__whoami"> <div class="header__whoami">
<img src="{{ "/images/whoami/photo.png" | relURL }}" alt="{{ .Site.Params.myname }}" class="header__whoami--image"> <img src="{{ "/images/whoami/photo.png" | relURL }}" alt="{{ if .Site.Params.myname }}{{ .Site.Params.myname }}{{ end }}" class="header__whoami--image">
<div class="header__whoami--name h6"> <div class="header__whoami--name h6">
Hi, I'm {{ .Site.Params.myname }} Hi, I'm {{ .Site.Params.myname }}
</div> </div>

View File

@ -9,10 +9,12 @@
<section class="sidebar-home"> <section class="sidebar-home">
<a href="{{ .RelPermalink }}" class="sidebar-home__title p2">{{ .Title }}</a> <a href="{{ .RelPermalink }}" class="sidebar-home__title p2">{{ .Title }}</a>
<ul class="sidebar-home__ul"> <ul class="sidebar-home__ul">
{{ if .Site.Params.itemsPerCategory }}
{{ range first .Site.Params.itemsPerCategory .Pages }} {{ range first .Site.Params.itemsPerCategory .Pages }}
<li><a href="{{ .RelPermalink }}" class="sidebar-home__a p2">{{ .Title }}</a> <li><a href="{{ .RelPermalink }}" class="sidebar-home__a p2">{{ .Title }}</a>
</li> </li>
{{ end }} {{ end }}
{{ end }}
</ul> </ul>
</section> </section>
{{ end }} {{ end }}

View File

@ -5,6 +5,7 @@
{{ with .File }}{{ $currentID = .UniqueID }}{{ end }} {{ with .File }}{{ $currentID = .UniqueID }}{{ end }}
<div class="sidebar"> <div class="sidebar">
{{ partial "sidebar/site-search" . }} {{ partial "sidebar/site-search" . }}
{{ if .Site.Params.itemsPerCategory }}
{{ range first .Site.Params.itemsPerCategory .Pages }} {{ range first .Site.Params.itemsPerCategory .Pages }}
<section class="sidebar-list"> <section class="sidebar-list">
<a href="{{ .RelPermalink }}" class="sidebar-list__title p1 {{ if eq $currentSection .Section }}active{{ end }}">{{ .Title }}</a> <a href="{{ .RelPermalink }}" class="sidebar-list__title p1 {{ if eq $currentSection .Section }}active{{ end }}">{{ .Title }}</a>
@ -16,6 +17,7 @@
</ul> </ul>
</section> </section>
{{ end }} {{ end }}
{{ end }}
</div> </div>
{{ partial "taxonomy/taxonomy-tags" . }} {{ partial "taxonomy/taxonomy-tags" . }}

View File

@ -5,13 +5,18 @@
{{ i18n "subs-label" }} {{ i18n "subs-label" }}
</div> </div>
<div class="subs__form"> <div class="subs__form">
<input type="text" class="subs__input" placeholder="{{ T "subs-placeholder" }}"/> <span class="subs__icon">
{{ partial "svgs/etc/person.svg" (dict "width" 22 "height" 22) }}
</span>
<input id="subs-name" type="text" class="subs__input" placeholder="{{ T "subs-placeholder-name" }}"/>
</div> </div>
<button class="subs__button">{{ T "subs-button" }}</button> <div class="subs__form">
<span class="subs__icon">
{{ partial "svgs/social/email.svg" (dict "width" 22 "height" 22) }}
</span>
<input id="subs-email" type="text" class="subs__input" placeholder="{{ T "subs-placeholder-email" }}"/>
</div>
<button id="subs-button" class="subs__button">{{ T "subs-button" }}</button>
</aside> </aside>
</div> </div>
<script>
</script>
{{ end }} {{ end }}

View File

@ -15,7 +15,7 @@
{{ if $params.featured_image }} {{ if $params.featured_image }}
<div class="summary-card__image-wrapper"> <div class="summary-card__image-wrapper">
{{ with (print "images/" $params.featured_image) }} {{ with (print "images/" $params.featured_image) }}
<img data-src="{{ . | relURL }}" alt="{{ print $params.featured_image }}" class="lazyload summary-card__image"> <img data-src="{{ . | relURL }}" alt="{{ print $params.featured_image }}" class="lazyload summary-card__image"/>
{{ end }} {{ end }}
</div> </div>
{{ else if $params.featured_video }} {{ else if $params.featured_video }}
@ -23,7 +23,7 @@
<div class="summary-card__video-wrapper"> <div class="summary-card__video-wrapper">
<video class="summary-card__video" controls preload='none' poster='{{ . | relURL }}' data-setup='{"fluid": true}'> <video class="summary-card__video" controls preload='none' poster='{{ . | relURL }}' data-setup='{"fluid": true}'>
{{ with print ("videos/" | relURL) $params.featured_video }} {{ with print ("videos/" | relURL) $params.featured_video }}
<source src="{{ . | relURL }}" type='video/mp4'> <source src="{{ . | relURL }}" type='video/mp4'>
{{ end }} {{ end }}
</video> </video>
</div> </div>

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="{{ .width }}" height="{{ .height }}" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path fill="currentColor" d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v1c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-1c0-2.66-5.33-4-8-4z"/></svg>

After

Width:  |  Height:  |  Size: 321 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="{{ .width }}" height="{{ .height }}" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path fill="currentColor" d="M12 4C7 4 2.73 7.11 1 11.5 2.73 15.89 7 19 12 19s9.27-3.11 11-7.5C21.27 7.11 17 4 12 4zm0 12.5c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></svg>

After

Width:  |  Height:  |  Size: 385 B