newblog/sass/_functions.scss
2024-07-01 13:20:09 +00:00

140 lines
24 KiB
SCSS

@use "sass:meta";
@use "sass:list";
@function remove($list, $value, $recursive:false) {
$result: ();
@for $i from 1 through length($list) {
@if type-of(nth($list, $i)) == list and $recursive {
$result: append($result, remove(nth($list, $i), $value, $recursive), $separator: comma);
} @else if nth($list, $i) != $value {
$result: append($result, nth($list, $i), $separator: comma);
}
}
@return $result;
}
@function font-append($base, $ext, $separator:comma) {
$base-pre: ();
$base-pos: ();
$iFontSep: index($base, $separator);
@if not $iFontSep {// didn't find the font separator, return
@debug "⚠ Failed to find '#{$separator}' in the list of '#{$base}'";
@return $base;
}
@for $i from 1 through list.length($base) {
$iEl: list.nth($base, $i);
@if $i <= $iFontSep {
$base-pre: list.append($base-pre, $iEl, $separator:comma);
} @else {
$base-pos: list.append($base-pos, $iEl, $separator:comma);
}
}
@return list.join(list.join($base-pre, $ext), $base-pos);
}
@function font-prepend($base, $ext) {
$ext-type: meta.type-of($ext);
@if not ($ext-type == 'string') and not ($ext-type == 'list') {
//@debug "⚠ Expected a string or a list, but got '#{$ext-type}' in '#{$ext}'";
@return $base;
} @else {
@return list.join($ext, $base);
}
}
@function font-var($base, $ext, $findFont:null) {
$typeFont: meta.type-of($base);
@if ($typeFont == 'string') or ($typeFont == 'list') {
@if ($findFont == null) {// prepend
$font: font-prepend($base, $ext);
@return $font;
} @else { // append
$iFoundFont-Main: index($base, $findFont);
@if $iFoundFont-Main {
$font: font-append($base, $ext, $findFont);
@return $font;
} @else {
@debug "⚠ Failed to find font '#{$findFont}' in the list of '#{$base}'";
}
}
}
}
/**
* SVG Icons
* https://github.com/feathericons/feather
* https://github.com/tabler/tabler-icons/find/master
*
* https://yqnn.github.io/svg-path-editor/
* https://jakearchibald.github.io/svgomg/
* https://codepen.io/yoksel/pen/MWKeKK
*/
@function getColor ($ic, $list, $index) {
@if length($list) >= $index {
@if not $ic and nth($list, $index) != "none" {
@return '%23888';//default color
}
@return nth($list, $index);
};
@return '%23888';//default color
}
@function icon($name,$ic,$stroke-width:0,$stroke:'none',$fill:'none') {
$icons: (
//template-fill: "%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d=''/%3E%3C/svg%3E",
//template-stroke: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d=''/%3E%3C/svg%3E",
bitbucket: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M14.2 15.3H9.8L8.7 8.7h6.6ZM2.8 3.2A.7.7 0 0 0 2 4l3.4 16c.1.4.6.8 1 .8h11a.7.7 0 0 0 .6-.6l4-16.1a.7.7 0 0 0-.7-.9Z'/%3E%3C/svg%3E",
buymeacoffee: "%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='#{getColor($ic,$fill,1)}' d='m7.9 11.7.8 8.3c.2 2 .8 2 3.6 2 2.3 0 2.8-.1 3-2l.8-9.3c-3.3-1-4 2-8.2 1z'/%3E%3Cpath fill='#{getColor($ic,$fill,2)}' d='M18.8 4.3c-.6-.1-.6-1-.7-1.9-.2-1.6-1.2-2-4-2.2-3-.4-8.6-.2-8.5 1.6 0 1.7 4.8 2.2 9.7 1.6.8-.1.6-1.5-.2-1.4-3.6.5-7.4 0-7.4-.2 0-.3 3.3-.5 5-.4 4.5.3 3.7.3 4.2 2.2.2 1 0 .9-.7 1-3 .3-6 .2-9-.2C4.7 4 4.3 4.4 4 6c-.8 2.7 1 2.8 2.1 3 4.8.7 7.7.3 10.3.2.8-.1.6.5.6 1.2l-1.3 10.8c-.1 1.4-1.4 1.4-4 1.5-2.7.2-3.3-.5-3.5-1.6L7.1 10c-.1-1-1.5-.6-1.4.3l1.1 10.8C7.1 24 9.4 24 12.2 24c2.6 0 4.6-.3 5-3.2l1-11.3c.2-.9.3-.7 1-.9 1.8-.8 1-4.2-.4-4.3zm-.3 3a38 38 0 0 1-12.6.2c-1.4-.2-.9-2 0-1.9 4.5.7 8.7.7 12 0 1.4-.2 1.1 1.7.6 1.8z' /%3E%3C/svg%3E",
check: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E",
chevron: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E",
clock: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E",
codeberg: "%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='#{getColor($ic,$fill,1)}' d='M12 1A11 11 0 0 0 1 12a11 11 0 0 0 1.7 6.4L12 6l9.3 12.4A11 11 0 0 0 23 12 11 11 0 0 0 12 1Z'/%3E%3Cpath fill='#{getColor($ic,$fill,2)}' d='M21.3 18.4 12 6l4.4 16.8a11 11 0 0 0 4.9-4.4Z' /%3E%3C/svg%3E",
date: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cpath d='M16 2v4M8 2v4m-5 4h18'/%3E%3C/svg%3E",
discord: "%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M19.7 5.6a18.2 18.2 90 0 0-4.6-1.4 12.5 12.5 90 0 0-.6 1.2 17 17 90 0 0-5 0 12.5 12.5 90 0 0-.6-1.2 18.4 18.4 90 0 0-4.6 1.4A20 20 0 0 0 1 18a18.4 18.4 90 0 0 5.7 2.9 13.5 13.5 90 0 0 1.2-2A11.8 11.8 90 0 1 6 18l.5-.3a13.2 13.2 90 0 0 11 0l.5.3a12 12 90 0 1-1.9.9 13.3 13.3 90 0 0 1.2 2A18.2 18.2 90 0 0 23 18c.3-4.7-.9-8.8-3.3-12.4Zm-11.4 10c-1 0-1.9-1-1.9-2.2s.8-2.2 1.9-2.2 2 1 2 2.2-1 2.2-2 2.2Zm7.4 0c-1.1 0-2-1-2-2.2s.9-2.2 2-2.2 1.9 1 1.9 2.2-.9 2.2-1.9 2.2Z'/%3E%3C/svg%3E",
docker: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M4 19.8S7 20 8 18m-4-7h3v3H4Zm3 0h3v3H7Zm3 0h3v3h-3ZM7 8h3v3H7Zm3 0h3v3h-3Zm0-3h3v3h-3Zm10 8c-1 0-1 0-1.4-1.9C18.5 10 17 10 17 12c0 1 0 2-3 2H1a9 9 0 0 0 3 6c3 2 5 2 9 1a10.8 10.8 90 0 0 5-4c1-2 1-1 3-2s1-2 0-2Z'/%3E%3C/svg%3E%0A",
element: "%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C5 0 0 6 0 12s6 12 12 12 12-6 12-12A12 12 0 0 0 12 0Zm-1 4c4 0 6 3 6 6 0 2-2 2-2 0s-2-4-4-4-2-2 0-2Zm-7 9c0-4 3-6 6-6 2 0 2 2 0 2s-4 2-4 4-2 2-2 0Zm9 7c-4 0-6-3-6-6 0-2 2-2 2 0s2.4 4 4 4c2 0 2 2 0 2Zm1-3c-2 0-2-2 0-2s4-2 4-4 2-2 2 0c0 4-3 6-6 6Z'/%3E%3C/svg%3E",
facebook: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z'/%3E%3C/svg%3E",
folder: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z'/%3E%3C/svg%3E",
github: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M9 19c-5 1.5-5-2.5-7-3m14 6v-3.9a3.4 3.4 0 0 0-1-2.6c3.2-.3 6.5-1.5 6.5-7A5.4 5.4 0 0 0 20 4.8 5 5 0 0 0 20 1s-1.3-.3-4 1.5a13.4 13.4 0 0 0-7 0C6.3.6 5 1 5 1a5 5 0 0 0 0 3.8 5.4 5.4 0 0 0-1.5 3.7c0 5.5 3.3 6.7 6.4 7a3.4 3.4 0 0 0-.9 2.6V22'/%3E%3C/svg%3E",
github-sponsor: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M20 4c-5-3-8 2-8 4 0-2-3-7-8-4-4 2-6 10 8 18 14-8 12-16 8-18z'/%3E%3C/svg%3E",
gitlab: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M22.6 14.4 12 22 1.3 14.4a.8.8 0 0 1-.3-1l1.3-3.7 2.4-7.5a.4.4 0 0 1 .1-.2.4.4 0 0 1 .6 0 .4.4 0 0 1 .1.2L8 9.7h8l2.5-7.5a.4.4 0 0 1 .1-.2.4.4 0 0 1 .6 0 .4.4 0 0 1 0 .2l2.5 7.5 1.3 3.8a.8.8 0 0 1-.3.9z'/%3E%3C/svg%3E",
globe: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z'/%3E%3C/svg%3E",
home: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M9 22V12h6v10M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z'/%3E%3C/svg%3E",
instagram: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Crect x='2' y='2' width='20' height='20' rx='5' ry='5'/%3E%3Cpath d='M16 11.4A4 4 0 1 1 12.6 8a4 4 0 0 1 3.4 3.4zm1.5-4.9h.01'/%3E%3C/svg%3E",
linkedin: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6zM2 9h4v12H2z'/%3E%3Ccircle cx='4' cy='4' r='2'/%3E%3C/svg%3E",
kofi: "%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='%23fff' d='M2 5h15c8 0 8 10 0 10-1 0-1 0-1 1v2q0 1-1 1H2q-1 0-1-1V6q0-1 1-1m14 4v2c0 1 0 1 1 1 4 0 4-4 0-4-1 0-1 0-1 1'/%3E%3Cpath fill='#{getColor($ic,$fill,1)}' d='M9 16C2 11 5 6 9 9c4-3 7 2 0 7' /%3E%3C/svg%3E",
mail: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='m22 6-10 7L2 6m2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2Z'/%3E%3C/svg%3E",
mastodon: "%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M2 8c0 5.7-.2 12.6 5 14 2 .6 3.7.7 5 .6 2.4-.1 3.8-.9 3.8-.9l-.1-1.8s-1.7.6-3.7.5c-1.9 0-4-.2-4.2-2.6a5 5 90 0 1 0-.7c4 1 7.5.5 8.4.4 2.7-.4 5-2 5.3-3.6.5-2.4.4-5.8.4-5.8C22 3.4 19 2 19 2 15.9.6 8 .6 5.1 2c0 0-3 1.4-3 6zm4.5-2.3c1.2-1.4 3.8-1.5 5 .3l.5.9.6-1c1.1-1.7 3.7-1.6 4.9-.2 1.1 1.3.9 2.5.9 8.4H16V8.6c0-2.4-3-2.5-3 .3v3h-2V9c0-2.8-3-2.7-3-.3V14H5.6c0-5.9-.2-7.1 1-8.4z'/%3E%3C/svg%3E",
matrix: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M.6.6v22.8H3v.6H0V0h3v.6zm7 7.2V9h.1c3.2-2.3 4.3 0 4.8.3C14.9 6.7 18 8 18 11v5h-1.5v-5a1 1 0 0 0-3.5 0v5h-1.7v-5a1 1 0 0 0-3.7 0v5H6V7.8zm15.8 15.7V.4H21V0h3v24h-3v-.6z'/%3E%3C/svg%3E",
minus: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E",
moon: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z'/%3E%3C/svg%3E",
peertube: "%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' d='M3 12V0l9 6-9 6Z'/%3E%3Cpath stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,2)}' d='M3 24V12l9 6-9 6Z'/%3E%3Cpath stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,3)}' d='M12 18V6l9 6-9 6Z' /%3E%3C/svg%3E",
pinterest: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='m8 20 4-9m-1.3 3c.4 1.3 1.4 2 2.5 2 2.1 0 3.8-1.6 3.8-4a5 5 0 1 0-9.7 1.7'/%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E",
pixelfed: "%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath id='a' d='M0 .11h50v49.78H0z'/%3E%3ClinearGradient x1='100%25' y1='55.81%25' x2='0%25' y2='60.12%25' id='c'%3E%3Cstop stop-color='%23FF5C34' offset='0%25'/%3E%3Cstop stop-color='%23EB0256' offset='100%25'/%3E%3C/linearGradient%3E%3ClinearGradient x1='33.09%25' y1='100%25' x2='68.99%25' y2='15.31%25' id='d'%3E%3Cstop stop-color='%23A63FDB' offset='0%25'/%3E%3Cstop stop-color='%23FF257E' offset='100%25'/%3E%3C/linearGradient%3E%3ClinearGradient x1='14.72%25' y1='50%25' x2='94.32%25' y2='67.53%25' id='e'%3E%3Cstop stop-color='%2300FFF0' offset='0%25'/%3E%3Cstop stop-color='%230087FF' offset='100%25'/%3E%3C/linearGradient%3E%3ClinearGradient x1='81.23%25' y1='10.01%25' x2='20.82%25' y2='74.49%25' id='f'%3E%3Cstop stop-color='%2317C934' offset='0%25'/%3E%3Cstop stop-color='%2303FF6E' offset='100%25'/%3E%3C/linearGradient%3E%3ClinearGradient x1='50%25' y1='111.91%25' x2='30.56%25' y2='0%25' id='g'%3E%3Cstop stop-color='%23FFB000' offset='0%25'/%3E%3Cstop stop-color='%23FF7725' offset='100%25'/%3E%3C/linearGradient%3E%3Cpath d='M25.88 24.66A12.43 12.43 0 0 0 12.76 13 12.39 12.39 0 0 0 .94 25.95l.01.2A24.67 24.67 0 0 1 16 2l.53-.2c6.39-2.56 13.67.5 16.25 6.81s-.5 13.5-6.9 16.05z' id='h'/%3E%3Cpath d='M16.34 1.87l.19-.07c6.39-2.56 13.67.5 16.25 6.81s-.5 13.5-6.9 16.05c-.05-1-.23-1.98-.5-2.9a10.9 10.9 0 0 0 5.75-9.6A11 11 0 0 0 20.06 1.25c-1.3 0-2.56.22-3.72.63z' id='i'/%3E%3ClinearGradient x1='-81.36%25' y1='59.62%25' x2='121.42%25' y2='72.06%25' id='j'%3E%3Cstop stop-color='%239EE85D' offset='0%25'/%3E%3Cstop stop-color='%230ED061' offset='100%25'/%3E%3C/linearGradient%3E%3Cpath d='M28.38 9.27l.19-.07c6.39-2.56 13.67.5 16.25 6.81s-.5 13.5-6.9 16.05c-.05-1-.23-1.98-.5-2.9a10.9 10.9 0 0 0 5.75-9.6A11 11 0 0 0 32.1 8.65c-1.3 0-2.56.22-3.72.63z' id='k'/%3E%3ClinearGradient x1='45.51%25' y1='116.82%25' x2='0%25' y2='-4.04%25' id='l'%3E%3Cstop stop-color='%2321EFE3' offset='0%25'/%3E%3Cstop stop-color='%232598FF' offset='100%25'/%3E%3C/linearGradient%3E%3Cpath d='M25.14 22.73l.18-.07c6.4-2.55 13.67.5 16.25 6.81 2.59 6.32-.5 13.5-6.9 16.06a11.97 11.97 0 0 0-.5-2.9 10.9 10.9 0 0 0 5.75-9.6A11 11 0 0 0 28.86 22.1c-1.3 0-2.56.22-3.72.63z' id='m'/%3E%3ClinearGradient x1='100%25' y1='58.21%25' x2='-89.65%25' y2='74.32%25' id='n'%3E%3Cstop stop-color='%23A63FDB' offset='0%25'/%3E%3Cstop stop-color='%23FF257E' offset='100%25'/%3E%3C/linearGradient%3E%3Cpath d='M10.65 23.76l.2-.07c6.38-2.55 13.66.5 16.24 6.81 2.59 6.32-.5 13.5-6.9 16.06-.05-1-.22-1.98-.5-2.9a10.9 10.9 0 0 0 5.75-9.6 11 11 0 0 0-11.06-10.93c-1.31 0-2.56.22-3.73.63z' id='o'/%3E%3Cpath d='M5.55 10.7l.18-.08c6.4-2.55 13.67.5 16.26 6.82a12.28 12.28 0 0 1-6.9 16.05c-.06-1-.23-1.98-.51-2.9a10.9 10.9 0 0 0 5.75-9.6A11 11 0 0 0 9.27 10.06c-1.3 0-2.56.23-3.72.64z' id='p'/%3E%3Cpath d='M35.63 42.37h4.55a7.64 7.64 0 0 0 7.75-7.51 7.64 7.64 0 0 0-7.75-7.51h-6.56a4.4 4.4 0 0 0-4.48 4.33v16.87l6.5-6.18z' id='r'/%3E%3Cfilter x='-26.6%25' y='-18.9%25' width='153.2%25' height='147.2%25' filterUnits='objectBoundingBox' id='q'%3E%3CfeOffset dy='1' in='SourceAlpha' result='shadowOffsetOuter1'/%3E%3CfeGaussianBlur stdDeviation='1.5' in='shadowOffsetOuter1' result='shadowBlurOuter1'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.298686594 0' in='shadowBlurOuter1'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M25.88 24.66a12.5 12.5 0 0 0-15.13 8.99 12.32 12.32 0 0 0 9.09 14.94l.5.13A24.77 24.77 0 0 1 .96 26.15v-.2A12.39 12.39 0 0 1 12.74 13a12.43 12.43 0 0 1 13.13 11.67z' fill='url(%23c)' transform='rotate(40 25.03 23.6)'/%3E%3Cpath d='M25.88 24.66a12.25 12.25 0 0 0 4.27 16.93 12.57 12.57 0 0 0 17.13-4.22l.24-.39a25.02 25.02 0 0 1-21.64 12.35c-1.9 0-3.75-.21-5.53-.61l-.51-.13a12.32 12.32 0 0 1-9.1-14.94 12.5 12.5 0 0 1 15.14-8.99z' fill='url(%23d)' transform='rotate(40 25.03 23.6)'/%3E%3Cpath d='M25.88 24.66a12.6 12.6 0 0 0 17.59 1.52A12.23 12.23 0 0 0 45 8.81l-.1-.12a24.39 24.39 0 0 1 2.6 28.29l-.23.39a12.57 12.57 0 0 1-17.13 4.22 12.25 12.25 0 0 1-4.27-16.93z' fill='url(%23e)' transform='rotate(40 25.03 23.6)'/%3E%3Cpath d='M25.88 24.66a12.28 12.28 0 0 0 6.9-16.05A12.54 12.54 0 0 0 16.53 1.8L16 2c3.03-1.29 6.37-2 9.88-2 7.62 0 14.45 3.37 19.03 8.7l.1.11c4.43 5.22 3.74 13-1.54 17.37a12.6 12.6 0 0 1-17.59-1.52z' fill='url(%23f)' transform='rotate(40 25.03 23.6)'/%3E%3Cg fill='url(%23g)' transform='rotate(40 25.03 23.6)'%3E%3Cuse xlink:href='%23h'/%3E%3Cuse fill-opacity='.1' style='mix-blend-mode:multiply' xlink:href='%23h'/%3E%3C/g%3E%3Cg opacity='.5' transform='rotate(40 25.03 23.6)'%3E%3Cuse fill='url(%23g)' xlink:href='%23i'/%3E%3Cuse fill-opacity='.5' fill='%23000' style='mix-blend-mode:overlay' xlink:href='%23i'/%3E%3C/g%3E%3Cg opacity='.54' transform='rotate(112 33.87 24.23)'%3E%3Cuse fill='url(%23j)' xlink:href='%23k'/%3E%3Cuse fill-opacity='.5' fill='%23000' style='mix-blend-mode:overlay' xlink:href='%23k'/%3E%3C/g%3E%3Cg opacity='.56' transform='rotate(-177 29.6 35.4)'%3E%3Cuse fill='url(%23l)' xlink:href='%23m'/%3E%3Cuse fill='%23000' style='mix-blend-mode:overlay' xlink:href='%23m'/%3E%3C/g%3E%3Cg opacity='.58' transform='rotate(-103 13.95 33.85)'%3E%3Cuse fill='url(%23n)' xlink:href='%23o'/%3E%3Cuse fill-opacity='.5' fill='%23000' style='mix-blend-mode:overlay' xlink:href='%23o'/%3E%3C/g%3E%3Cg opacity='.18' transform='rotate(-31 4.44 11.5)'%3E%3Cuse fill='url(%23c)' xlink:href='%23p'/%3E%3Cuse fill-opacity='.77' fill='%23000' style='mix-blend-mode:multiply' xlink:href='%23p'/%3E%3C/g%3E%3Cg fill-rule='nonzero' transform='translate(-12.6 -12.1)'%3E%3Cuse fill='%23000' filter='url(%23q)' xlink:href='%23r'/%3E%3Cuse fill='%23FFF' xlink:href='%23r'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E",
python: "%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='#{getColor($ic,$fill,1)}' d='M17 6c0 4-1 5-6 5-4 0-5 1-5 6-4 0-5-1-5-6 0-3 1-4.5 4-4.5h7c0-.5 0-.5-1-.5H6c0-3 0-5 6-5 5 0 5 2 5 5ZM9 3C7.5 3 7.5 5 9 5s1.5-2 0-2Z'/%3E%3Cpath fill='#{getColor($ic,$fill,2)}' d='M23 12c0 3-1 4.6-4 4.5h-7v.5h6c0 4 0 6-6 6-5 0-5-2-5-6s1-5 6-5c4 0 5-1 5-6 4 0 5 1 5 6Zm-8 7c-1.5 0-1.5 2 0 2s1.5-2 0-2Z' /%3E%3C/svg%3E",
researchgate: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M16 5c0 3.5.7 5 3 5s3.7-1.3 3.3-5h-3v1.3H21c0 1.9-.7 2.7-2 2.5-1.3 0-1.8-.7-1.8-3.2 0-2.4.4-3.3 1.5-3.4 1-.2 1.7.2 2.2 1.1L22 3c-.4-1.3-1.4-2-2.9-2C17.2 1 16 2 16 5ZM8 6.2l-6 .2v.9c1 .3 2 0 2 2.2v11C4 22 3 22 2 22.2v.8h6.6v-.8C7 22 6 22 6 20.5v-5.2h2a46 46 0 0 0 4 5.7 5 5 0 0 0 5 2v-1c-3 0-5-5-7-7 6-1 6-10-2-8.8ZM6 14V7.6C14 6 13 14 8 14Z'/%3E%3C/svg%3E",
rss: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M4 11a9 9 0 0 1 9 9M4 4a16 16 0 0 1 16 16'/%3E%3Ccircle cx='5' cy='19' r='1'/%3E%3C/svg%3E",
stack: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M4 17v1a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-1M8 16h8m-7.7-3.4 8 .8M8.8 9.2l7.8 1.6m-6.5-5 7.6 2.4'/%3E%3C/svg%3E",
sun: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Cpath d='M12 1v2m0 18v2M4.2 4.2l1.4 1.4m12.8 12.8 1.4 1.4M1 12h2m18 0h2M4.2 19.8l1.4-1.4M18.4 5.6l1.4-1.4'/%3E%3C/svg%3E",
tag: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='m20.6 13.4-7.2 7.2a2 2 0 0 1-2.8 0L2 12V2h10l8.6 8.6a2 2 0 0 1 0 2.8zM7 7h.01'/%3E%3C/svg%3E",
twitch: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7'/%3E%3C/svg%3E",
twitter: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M23 3a10.9 10.9 0 0 1-3.1 1.5 4.5 4.5 0 0 0-7.9 3v1A10.7 10.7 0 0 1 3 4s-4 9 5 13a11.6 11.6 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0 0-.8A7.7 7.7 0 0 0 23 3z'/%3E%3C/svg%3E",
x: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M21 3 3 21M3 3l18 18'/%3E%3C/svg%3E",
youtube: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='m9.8 15 5.7-3.3-5.8-3.2V15Zm12.7-8.6a2.8 2.8 0 0 0-1.9-2C18.9 4 12 4 12 4s-6.9 0-8.6.5a2.8 2.8 0 0 0-2 2 29 29 0 0 0-.4 5.3 29 29 0 0 0 .5 5.3A2.8 2.8 0 0 0 3.4 19c1.7.5 8.6.5 8.6.5s6.9 0 8.6-.5a2.8 2.8 0 0 0 2-2 29 29 0 0 0 .4-5.3 29 29 0 0 0-.5-5.3z'/%3E%3C/svg%3E",
adjust: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C6 0 0 6 0 12s5 12 12 12 12-5 12-12S19 0 12 0Zm0 4c5 0 8 3 8 8s-3 8-8 8V4Z'/%3E%3C/svg%3E",
angl: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='m16 4-8 8 8 8'/%3E%3C/svg%3E",
angll: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='m11 4-8 8 8 8m9-16-8 8 8 8'/%3E%3C/svg%3E",
angr: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='m8 4 8 8-8 8'/%3E%3C/svg%3E",
angrr: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='m4 4 8 8-8 8m9-16 8 8-8 8'/%3E%3C/svg%3E",
angu: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='m4 16 8-8 8 8'/%3E%3C/svg%3E",
world: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M1 12a11 11 90 0 0 22 0 11 11 90 0 0-22 0m1-4h20M2 16h20M11 1a21 21 90 0 0 0 22m2-22a21 21 90 0 1 0 22'/%3E%3C/svg%3E",
copy: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M11 1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1ZM7 9H3a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-4'/%3E%3C/svg%3E",
copy-yes: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E",
copy-err: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Cpath d='M1 12a1 1 0 0 0 22 0 1 1 0 0 0-22 0m11-7v9m0 5v-2'/%3E%3C/svg%3E",
search: "%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='#{getColor($ic,$stroke,1)}' stroke-width='#{$stroke-width}' fill='#{getColor($ic,$fill,1)}' viewBox='0 0 24 24'%3E%3Ccircle cx='9.5' cy='9.5' r='8'/%3E%3Cpath d='m23 23-9-9'/%3E%3C/svg%3E"
);
$icon: map-get($icons, $name);
@return url("data:image/svg+xml,#{$icon}");
}