Remove quick-submit component with ember-keyboard, update Ember and icons

This commit is contained in:
Simon Prévost 2020-11-06 07:55:02 -05:00
parent ed01cb95f0
commit 72e12e3baf
65 changed files with 9513 additions and 2029 deletions

View File

@ -21,9 +21,9 @@
cursor: pointer;
content: '';
position: absolute;
bottom: 0;
right: 11px;
font-size: 150%;
transform: rotate(90deg);
top: 50%;
right: 10px;
font-size: 140%;
transform: translateY(-50%) rotate(90deg);
}
}

View File

@ -13,7 +13,7 @@
{{option.label}}
</PowerSelect>
{{else}}
<div local-class="root">
<div local-class="root" ...attributes>
<select {{on "change" this.selectChange}}>
{{#each @options key="value" as |selectOption|}}
<option value={{selectOption.value}} selected="{{if (eq @selected.value selectOption.value) "selected"}}">

View File

@ -139,6 +139,8 @@
color: var(--color-black);
em {
display: block;
margin: 5px 0;
font-style: normal;
font-weight: bold;
color: var(--color-primary);

View File

@ -1,7 +1,6 @@
.conflict-item {
padding: 10px;
margin-bottom: 15px;
border: 1px solid transparent;
border-radius: 3px;
&:nth-child(even) {
@ -110,7 +109,6 @@
.conflict-item.resolved {
padding: 5px 10px;
margin: 5px 0 15px;
border: 1px solid var(--color-green);
background: hsl(
var(--color-green-hue),
var(--color-green-saturation),

View File

@ -9,11 +9,11 @@
{{{t "components.documents_list.item.path_help"}}}
</small>
<QuickSubmitTextfield
@onSubmit={{fn this.updateDocument}}
@onKeyUp={{fn this.changePath}}
@value={{this.renamedDocumentPath}}
<input
{{on-key "cmd+Enter" (fn this.updateDocument)}}
{{on "input" (fn this.changePath)}}
local-class="textInput"
value={{this.renamedDocumentPath}}
/>
</label>
{{else}}

View File

@ -208,6 +208,7 @@
@project={{@project}}
@activity={{@activity.batchOperation}}
/>
<br>
{{/if}}
{{#if this.operationsLoading}}

View File

@ -1,5 +1,6 @@
.project-settings-collaborators-create-form {
display: flex;
align-items: center;
:global(.ember-power-select-trigger) {
min-width: 150px;
@ -15,6 +16,10 @@
}
}
.select {
margin-right: 10px;
}
.textInput {
@extend %textInput;
flex-grow: 1;

View File

@ -4,14 +4,16 @@
@selected={{this.roleValue}}
@options={{this.mappedPossibleRoles}}
@onchange={{fn this.setRole}}
local-class="select"
/>
<QuickSubmitTextfield
@value={{this.email}}
<input
{{on-key "cmd+Enter" (perform this.submitTask)}}
{{on "input" (fn this.emailChanged)}}
local-class="textInput"
type="email"
value={{this.email}}
placeholder={{t "components.collaborator_create_form.email_placeholder"}}
@onKeyUp={{fn this.emailChanged}}
@onSubmit={{perform this.submitTask}}
data-test-new-collaborator-email
/>

View File

@ -1,11 +1,11 @@
<div local-class="project-settings-form">
{{#if (get @permissions "update_project")}}
<div local-class="field">
<QuickSubmitTextfield
@onKeyUp={{fn this.setName}}
@onSubmit={{fn this.updateProject}}
@value={{this.name}}
<input
{{on-key "cmd+Enter" (fn this.updateProject)}}
{{on "input" (fn this.setName)}}
local-class="textInput"
value={{this.name}}
/>
<input

View File

@ -1,48 +0,0 @@
import Component from '@glimmer/component';
import {action} from '@ember/object';
import {restartableTask} from 'ember-concurrency-decorators';
import {timeout} from 'ember-concurrency';
const DEBOUNCE_OFFSET = 100; // ms
const ENTER_KEY = 13;
interface Args {
value: string | null | undefined;
onFocus?: () => void;
onBlur?: () => void;
onKeyUp?: (event: KeyboardEvent) => void;
onSubmit?: () => void;
}
export default class QuickSubmitTextarea extends Component<Args> {
@action
blur() {
this.args.onBlur?.();
}
@action
focus() {
this.args.onFocus?.();
}
@action
keyUp(event: KeyboardEvent) {
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
// @ts-ignore
this.debounceChange.perform(event);
}
@action
keyDown(event: KeyboardEvent) {
if (event.which === ENTER_KEY && (event.metaKey || event.ctrlKey)) {
this.args.onSubmit?.();
}
}
@restartableTask
*debounceChange(event: KeyboardEvent) {
yield timeout(DEBOUNCE_OFFSET);
this.args.onKeyUp?.(event);
}
}

View File

@ -1,8 +0,0 @@
<textarea
{{on "blur" this.blur}}
{{on "focus" this.focus}}
{{on "input" this.keyUp}}
{{on "keydown" this.keyDown}}
rows={{@rows}}
...attributes
>{{@value}}</textarea>

View File

@ -1,48 +0,0 @@
import Component from '@glimmer/component';
import {action} from '@ember/object';
import {restartableTask} from 'ember-concurrency-decorators';
import {timeout} from 'ember-concurrency';
const DEBOUNCE_OFFSET = 100; // ms
const ENTER_KEY = 13;
interface Args {
value: string | null | undefined;
onFocus?: () => void;
onBlur?: () => void;
onKeyUp?: (event: KeyboardEvent) => void;
onSubmit?: () => void;
}
export default class QuickSubmitTextfield extends Component<Args> {
@action
blur() {
this.args.onBlur?.();
}
@action
focus() {
this.args.onFocus?.();
}
@action
keyUp(event: KeyboardEvent) {
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
// @ts-ignore
this.debounceChange.perform(event);
}
@action
keyDown(event: KeyboardEvent) {
if (event.which === ENTER_KEY && (event.metaKey || event.ctrlKey)) {
this.args.onSubmit?.();
}
}
@restartableTask
*debounceChange(event: KeyboardEvent) {
yield timeout(DEBOUNCE_OFFSET);
this.args.onKeyUp?.(event);
}
}

View File

@ -1,9 +0,0 @@
<input
type="text"
value={{@value}}
{{on "blur" this.blur}}
{{on "focus" this.focus}}
{{on "input" this.keyUp}}
{{on "keydown" this.keyDown}}
...attributes
>

View File

@ -66,14 +66,13 @@
@onSubmit={{fn this.save}}
/>
{{#if showSaveButton}}
<AsyncButton
@onClick={{fn this.save}}
@loading={{this.isSaving}}
@disabled={{not showSaveButton}}
class="button button--filled button--iconOnly"
local-class="textEdit-button"
>
{{t "components.related_translations_list.save_button"}}
</AsyncButton>
{{/if}}
</li>

View File

@ -10,14 +10,15 @@
{{/if}}
<div local-class="form-content">
<QuickSubmitTextarea
@onSubmit={{perform this.submitTask}}
@rows={{3}}
@value={{this.text}}
@onKeyUp={{fn this.setText}}
@placeholder={{t "components.translation_comment_form.comment_placeholder"}}
<textarea
{{autoresize this.text}}
{{on-key "cmd+Enter" (perform this.submitTask)}}
{{on "input" this.setText}}
local-class="inputText"
placeholder={{t "components.translation_comment_form.comment_placeholder"}}
rows="3"
disabled={{this.submitTask.isRunning}}
value={{this.text}}
/>
<AsyncButton @loading={{this.submitTask.isRunning}} class="button button--filled">
{{t "components.translation_comment_form.comment_button"}}

View File

@ -83,8 +83,7 @@ export default class TranslationEdit extends Component<Args> {
@action
changeText(text: string) {
this.text = text;
this.args.onChangeText && this.args.onChangeText(text);
this.args.onChangeText?.(text);
}
@action

View File

@ -8,13 +8,9 @@ import Apollo from 'accent-webapp/services/apollo';
import {tracked} from '@glimmer/tracking';
import {restartableTask} from 'ember-concurrency-decorators';
import {timeout} from 'ember-concurrency';
import {Task} from 'accent-webapp/types/task';
const DEBOUNCE_LINT_MESSAGES = 300;
const SMALL_INPUT_ROWS = 1;
const MEDIUM_INPUT_ROWS = 2;
const LARGE_INPUT_ROWS = 7;
const SMALL_INPUT_VALUE = 70;
const LARGE_INPUT_VALUE = 100;
const DEBOUNCE_LINT_MESSAGES = 1000;
interface Args {
projectId: string;
@ -35,6 +31,7 @@ interface Args {
placeholders?: any;
onFocus?: () => void;
onBlur?: () => void;
onEscape?: () => void;
onKeyUp?: (text: string) => void;
}
@ -48,9 +45,6 @@ export default class TranslationEditForm extends Component<Args> {
@tracked
showTypeHints = true;
@tracked
text = this.args.value;
@equal('args.valueType', 'STRING')
isStringType: boolean;
@ -74,18 +68,10 @@ export default class TranslationEditForm extends Component<Args> {
wysiwygOptions = {};
get rows() {
if (!this.text) return SMALL_INPUT_ROWS;
if (this.text.length < LARGE_INPUT_VALUE) return MEDIUM_INPUT_ROWS;
if (this.text.length < SMALL_INPUT_VALUE) return SMALL_INPUT_ROWS;
return LARGE_INPUT_ROWS;
}
get unusedPlaceholders() {
return this.args.placeholders.reduce(
(memo: Record<string, true>, placeholder: string) => {
if (!this.text.includes(placeholder)) memo[placeholder] = true;
if (!this.args.value.includes(placeholder)) memo[placeholder] = true;
return memo;
},
{}
@ -94,27 +80,26 @@ export default class TranslationEditForm extends Component<Args> {
@action
changeHTML(value: string) {
const previousText = this.text;
this.text = value;
const previousText = this.args.value;
this.args.onKeyUp?.(value);
if (previousText !== this.text) this.fetchLintMessages(value);
if (previousText !== value)
(this.fetchLintMessagesTask as Task).perform(value);
}
@action
cancel() {
this.args.onEscape?.();
}
@action
changeText(event: Event) {
const target = event.target as HTMLInputElement;
const previousText = this.text;
this.text = target.value;
const previousText = this.args.value;
this.args.onKeyUp?.(target.value);
if (previousText !== this.text) this.fetchLintMessages(target.value);
}
@action
didUpdateValue() {
if (this.args.value) this.text = this.args.value;
if (previousText !== target.value)
(this.fetchLintMessagesTask as Task).perform(target.value);
}
@restartableTask
@ -136,14 +121,7 @@ export default class TranslationEditForm extends Component<Args> {
@action
replaceText(value: string) {
this.text = value;
this.args.onKeyUp?.(value);
this.fetchLintMessages(value);
}
fetchLintMessages(value: string) {
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
// @ts-ignore
this.fetchLintMessagesTask.perform(value);
(this.fetchLintMessagesTask as Task).perform(value);
}
}

View File

@ -1,4 +1,4 @@
<div local-class="translation-edit-form" {{did-update this.didUpdateValue @value}}>
<div local-class="translation-edit-form">
{{#if @placeholders}}
<div local-class="placeholders">
<span local-class="placeholders-title">
@ -35,11 +35,11 @@
{{t "components.translation_edit.form.boolean_type_notice"}}
</span>
<RadioButton @groupValue={{this.text}} @value="true">
<RadioButton @groupValue={{@value}} @value="true">
{{t "components.translation_edit.form.true_option"}}
</RadioButton>
<RadioButton @groupValue={{this.text}} @value="false">
<RadioButton @groupValue={{@value}} @value="false">
{{t "components.translation_edit.form.false_option"}}
</RadioButton>
{{/if}}
@ -85,21 +85,19 @@
{{#if this.isHTMLType}}
<HtmlTextarea
@value={{this.text}}
@value={{@text}}
@onChange={{fn this.changeHTML}}
@wysiwygOptions={{this.wysiwygOptions}}
/>
{{else}}
<QuickSubmitTextarea
placeholder={{t "components.translation_edit.form.empty_type_placeholder"}}
@rows={{this.rows}}
@disabled={{@disabled}}
@value={{this.text}}
<textarea
{{autoresize @value}}
{{on-key "Escape" (fn this.cancel)}}
{{on-key "cmd+Enter" @onSubmit}}
{{on "input" (fn this.changeText)}}
local-class="inputText"
@onFocus={{@onFocus}}
@onBlur={{@onBlur}}
@onKeyUp={{fn this.changeText}}
@onSubmit={{@onSubmit}}
value={{@value}}
...attributes
/>
{{/if}}

View File

@ -2,6 +2,10 @@
width: 100%;
}
.full-width {
padding-right: 15px;
}
.previousText {
margin-bottom: 15px;
color: var(--color-grey);

View File

@ -12,6 +12,7 @@
@value={{this.text}}
@onKeyUp={{fn this.changeText}}
@onSubmit={{fn this.updateText}}
local-class="full-width"
/>
</div>
{{/if}}

View File

@ -1,7 +1,6 @@
import {action} from '@ember/object';
import {equal} from '@ember/object/computed';
import Component from '@glimmer/component';
import parsedKeyProperty from 'accent-webapp/computed-macros/parsed-key';
import {tracked} from '@glimmer/tracking';

View File

@ -72,6 +72,7 @@
@valueType={{@translation.valueType}}
@value={{this.editText}}
@onKeyUp={{fn this.changeTranslationText}}
@onEscape={{fn this.toggleEdit}}
@onSubmit={{fn this.save}}
/>
<AsyncButton

View File

@ -67,6 +67,9 @@ export default gql`
label
}
}
revision {
id
}
document {
id
path

7
webapp/app/types/task.ts Normal file
View File

@ -0,0 +1,7 @@
export interface Task {
isRunning: boolean;
(): Generator<Promise<unknown>, void, unknown>;
perform<T>(...args: any[]): Promise<T>;
cancel(): void;
cancelAll(): void;
}

10994
webapp/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -38,12 +38,12 @@
"babel-plugin-graphql-tag": "2.5.0",
"broccoli-asset-rev": "3.0.0",
"cached-path-relative": "1.0.2",
"color": "3.1.2",
"color": "3.1.3",
"cryptiles": "4.1.3",
"date-fns": "2.16.1",
"diff": "4.0.2",
"ember-auto-import": "1.5.3",
"ember-cli": "3.21.2",
"ember-cli": "3.22.0",
"ember-cli-autoprefixer": "0.8.1",
"ember-cli-babel": "7.20.5",
"ember-cli-babel-polyfills": "2.0.1",
@ -58,16 +58,16 @@
"ember-cli-uglify": "3.0.0",
"ember-concurrency": "1.3.0",
"ember-concurrency-decorators": "1.0.0",
"ember-css-modules": "1.3.2",
"ember-css-modules": "1.3.3",
"ember-css-modules-sass": "1.1.0",
"ember-fetch": "8.0.2",
"ember-inline-svg": "1.0.0",
"ember-intl": "4.3.1",
"ember-load-initializers": "2.1.1",
"ember-power-select": "4.0.4",
"ember-power-select": "4.0.6",
"ember-radio-button": "2.0.1",
"ember-resolver": "8.0.2",
"ember-source": "3.21.1",
"ember-source": "3.22.0",
"ember-wormhole": "0.5.5",
"graphql": "14.6.0",
"graphql-tag": "2.10.3",
@ -96,13 +96,15 @@
"@types/sinon-chai": "3.2.3",
"babel-eslint": "10.1.0",
"chai": "4.2.0",
"ember-autoresize-modifier": "0.3.0",
"ember-chai-dom-helpers": "0.0.4",
"ember-cli-bundle-analyzer": "0.2.1",
"ember-cli-chai": "0.5.0",
"ember-cli-sri": "2.1.1",
"ember-cli-typescript-blueprints": "3.0.0",
"ember-content-loader": "0.1.3",
"ember-content-loader": "1.0.0",
"ember-exam": "4.0.9",
"ember-keyboard": "6.0.2",
"ember-mocha": "0.16.2",
"ember-native-dom-helpers": "0.6.3",
"ember-sinon": "4.1.1",

View File

@ -7,5 +7,5 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline>
<path d="M22 12h-4l-3 9L9 3l-3 9H2" />
</svg>

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 222 B

View File

@ -7,6 +7,5 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="12" y1="5" x2="12" y2="19"></line>
<line x1="5" y1="12" x2="19" y2="12"></line>
<path d="M12 5v14M5 12h14" />
</svg>

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 213 B

View File

@ -1,15 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 256 293"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
preserveAspectRatio="xMidYMid"
>
<g>
<path
d="M226.011429,0 L29.9885714,0 C13.4582857,0 0,13.4582857 0,30.1348571 L0,227.913143 C0,244.589714 13.4582857,258.048 29.9885714,258.048 L195.876571,258.048 L188.123429,230.985143 L206.848,248.393143 L224.548571,264.777143 L256,292.571429 L256,30.1348571 C256,13.4582857 242.541714,0 226.011429,0 Z M169.545143,191.049143 C169.545143,191.049143 164.278857,184.758857 159.890286,179.2 C179.053714,173.787429 186.368,161.792 186.368,161.792 C180.370286,165.741714 174.665143,168.521143 169.545143,170.422857 C162.230857,173.494857 155.209143,175.542857 148.333714,176.713143 C134.290286,179.346286 121.417143,178.614857 110.445714,176.566857 C102.107429,174.957714 94.9394286,172.617143 88.9417143,170.276571 C85.5771429,168.96 81.92,167.350857 78.2628571,165.302857 C77.824,165.010286 77.3851429,164.864 76.9462857,164.571429 C76.6537143,164.425143 76.5074286,164.278857 76.3611429,164.132571 C73.728,162.669714 72.2651429,161.645714 72.2651429,161.645714 C72.2651429,161.645714 79.2868571,173.348571 97.8651429,178.907429 C93.4765714,184.466286 88.064,191.049143 88.064,191.049143 C55.7348571,190.025143 43.4468571,168.813714 43.4468571,168.813714 C43.4468571,121.709714 64.512,83.5291429 64.512,83.5291429 C85.5771429,67.7302857 105.618286,68.1691429 105.618286,68.1691429 L107.081143,69.9245714 C80.7497143,77.5314286 68.608,89.088 68.608,89.088 C68.608,89.088 71.8262857,87.3325714 77.2388571,84.8457143 C92.8914286,77.9702857 105.325714,76.0685714 110.445714,75.6297143 C111.323429,75.4834286 112.054857,75.3371429 112.932571,75.3371429 C121.856,74.1668571 131.949714,73.8742857 142.482286,75.0445714 C156.379429,76.6537143 171.300571,80.7497143 186.514286,89.088 C186.514286,89.088 174.957714,78.1165714 150.089143,70.5097143 L152.137143,68.1691429 C152.137143,68.1691429 172.178286,67.7302857 193.243429,83.5291429 C193.243429,83.5291429 214.308571,121.709714 214.308571,168.813714 C214.308571,168.813714 201.874286,190.025143 169.545143,191.049143 Z M101.522286,122.733714 C93.184,122.733714 86.6011429,130.048 86.6011429,138.971429 C86.6011429,147.894857 93.3302857,155.209143 101.522286,155.209143 C109.860571,155.209143 116.443429,147.894857 116.443429,138.971429 C116.589714,130.048 109.860571,122.733714 101.522286,122.733714 M154.916571,122.733714 C146.578286,122.733714 139.995429,130.048 139.995429,138.971429 C139.995429,147.894857 146.724571,155.209143 154.916571,155.209143 C163.254857,155.209143 169.837714,147.894857 169.837714,138.971429 C169.837714,130.048 163.254857,122.733714 154.916571,122.733714"
d="M226.011 0H29.99C13.459 0 0 13.458 0 30.135v197.778c0 16.677 13.458 30.135 29.989 30.135h165.888l-7.754-27.063 18.725 17.408 17.7 16.384L256 292.571V30.135C256 13.458 242.542 0 226.011 0zm-56.466 191.05s-5.266-6.291-9.655-11.85c19.164-5.413 26.478-17.408 26.478-17.408-5.998 3.95-11.703 6.73-16.823 8.63-7.314 3.073-14.336 5.12-21.211 6.291-14.044 2.633-26.917 1.902-37.888-.146-8.339-1.61-15.507-3.95-21.504-6.29-3.365-1.317-7.022-2.926-10.68-4.974-.438-.293-.877-.439-1.316-.732-.292-.146-.439-.292-.585-.438-2.633-1.463-4.096-2.487-4.096-2.487s7.022 11.703 25.6 17.261c-4.388 5.56-9.801 12.142-9.801 12.142-32.33-1.024-44.617-22.235-44.617-22.235 0-47.104 21.065-85.285 21.065-85.285 21.065-15.799 41.106-15.36 41.106-15.36l1.463 1.756C80.75 77.53 68.608 89.088 68.608 89.088s3.218-1.755 8.63-4.242c15.653-6.876 28.088-8.777 33.208-9.216.877-.147 1.609-.293 2.487-.293a123.776 123.776 0 0129.55-.292c13.896 1.609 28.818 5.705 44.031 14.043 0 0-11.556-10.971-36.425-18.578l2.048-2.34s20.041-.44 41.106 15.36c0 0 21.066 38.18 21.066 85.284 0 0-12.435 21.211-44.764 22.235zm-68.023-68.316c-8.338 0-14.92 7.314-14.92 16.237 0 8.924 6.728 16.238 14.92 16.238 8.339 0 14.921-7.314 14.921-16.238.147-8.923-6.582-16.237-14.92-16.237m53.394 0c-8.339 0-14.922 7.314-14.922 16.237 0 8.924 6.73 16.238 14.922 16.238 8.338 0 14.92-7.314 14.92-16.238 0-8.923-6.582-16.237-14.92-16.237"
fill="#7289DA"
></path>
</g>
/>
</svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -2,7 +2,6 @@
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="#fff"
stroke-width="2"
@ -10,7 +9,6 @@
stroke-linejoin="round"
class="feather feather-alert-circle"
>
<circle cx="12" cy="12" r="10"></circle>
<line x1="12" y1="8" x2="12" y2="12"></line>
<line x1="12" y1="16" x2="12" y2="16"></line>
<circle cx="12" cy="12" r="10" />
<path d="M12 8v4M12 16h0" />
</svg>

Before

Width:  |  Height:  |  Size: 377 B

After

Width:  |  Height:  |  Size: 284 B

View File

@ -1,14 +1,10 @@
<svg
viewBox="0 0 256 250"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
preserveAspectRatio="xMidYMid"
>
<g>
<path
d="M128.00106,0 C57.3172926,0 0,57.3066942 0,128.00106 C0,184.555281 36.6761997,232.535542 87.534937,249.460899 C93.9320223,250.645779 96.280588,246.684165 96.280588,243.303333 C96.280588,240.251045 96.1618878,230.167899 96.106777,219.472176 C60.4967585,227.215235 52.9826207,204.369712 52.9826207,204.369712 C47.1599584,189.574598 38.770408,185.640538 38.770408,185.640538 C27.1568785,177.696113 39.6458206,177.859325 39.6458206,177.859325 C52.4993419,178.762293 59.267365,191.04987 59.267365,191.04987 C70.6837675,210.618423 89.2115753,204.961093 96.5158685,201.690482 C97.6647155,193.417512 100.981959,187.77078 104.642583,184.574357 C76.211799,181.33766 46.324819,170.362144 46.324819,121.315702 C46.324819,107.340889 51.3250588,95.9223682 59.5132437,86.9583937 C58.1842268,83.7344152 53.8029229,70.715562 60.7532354,53.0843636 C60.7532354,53.0843636 71.5019501,49.6441813 95.9626412,66.2049595 C106.172967,63.368876 117.123047,61.9465949 128.00106,61.8978432 C138.879073,61.9465949 149.837632,63.368876 160.067033,66.2049595 C184.49805,49.6441813 195.231926,53.0843636 195.231926,53.0843636 C202.199197,70.715562 197.815773,83.7344152 196.486756,86.9583937 C204.694018,95.9223682 209.660343,107.340889 209.660343,121.315702 C209.660343,170.478725 179.716133,181.303747 151.213281,184.472614 C155.80443,188.444828 159.895342,196.234518 159.895342,208.176593 C159.895342,225.303317 159.746968,239.087361 159.746968,243.303333 C159.746968,246.709601 162.05102,250.70089 168.53925,249.443941 C219.370432,232.499507 256,184.536204 256,128.00106 C256,57.3066942 198.691187,0 128.00106,0 Z M47.9405593,182.340212 C47.6586465,182.976105 46.6581745,183.166873 45.7467277,182.730227 C44.8183235,182.312656 44.2968914,181.445722 44.5978808,180.80771 C44.8734344,180.152739 45.876026,179.97045 46.8023103,180.409216 C47.7328342,180.826786 48.2627451,181.702199 47.9405593,182.340212 Z M54.2367892,187.958254 C53.6263318,188.524199 52.4329723,188.261363 51.6232682,187.366874 C50.7860088,186.474504 50.6291553,185.281144 51.2480912,184.70672 C51.8776254,184.140775 53.0349512,184.405731 53.8743302,185.298101 C54.7115892,186.201069 54.8748019,187.38595 54.2367892,187.958254 Z M58.5562413,195.146347 C57.7719732,195.691096 56.4895886,195.180261 55.6968417,194.042013 C54.9125733,192.903764 54.9125733,191.538713 55.713799,190.991845 C56.5086651,190.444977 57.7719732,190.936735 58.5753181,192.066505 C59.3574669,193.22383 59.3574669,194.58888 58.5562413,195.146347 Z M65.8613592,203.471174 C65.1597571,204.244846 63.6654083,204.03712 62.5716717,202.981538 C61.4524999,201.94927 61.1409122,200.484596 61.8446341,199.710926 C62.5547146,198.935137 64.0575422,199.15346 65.1597571,200.200564 C66.2704506,201.230712 66.6095936,202.705984 65.8613592,203.471174 Z M75.3025151,206.281542 C74.9930474,207.284134 73.553809,207.739857 72.1039724,207.313809 C70.6562556,206.875043 69.7087748,205.700761 70.0012857,204.687571 C70.302275,203.678621 71.7478721,203.20382 73.2083069,203.659543 C74.6539041,204.09619 75.6035048,205.261994 75.3025151,206.281542 Z M86.046947,207.473627 C86.0829806,208.529209 84.8535871,209.404622 83.3316829,209.4237 C81.8013,209.457614 80.563428,208.603398 80.5464708,207.564772 C80.5464708,206.498591 81.7483088,205.631657 83.2786917,205.606221 C84.8005962,205.576546 86.046947,206.424403 86.046947,207.473627 Z M96.6021471,207.069023 C96.7844366,208.099171 95.7267341,209.156872 94.215428,209.438785 C92.7295577,209.710099 91.3539086,209.074206 91.1652603,208.052538 C90.9808515,206.996955 92.0576306,205.939253 93.5413813,205.66582 C95.054807,205.402984 96.4092596,206.021919 96.6021471,207.069023 Z"
d="M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46 6.397 1.185 8.746-2.777 8.746-6.158 0-3.052-.12-13.135-.174-23.83-35.61 7.742-43.124-15.103-43.124-15.103-5.823-14.795-14.213-18.73-14.213-18.73-11.613-7.944.876-7.78.876-7.78 12.853.902 19.621 13.19 19.621 13.19 11.417 19.568 29.945 13.911 37.249 10.64 1.149-8.272 4.466-13.92 8.127-17.116-28.431-3.236-58.318-14.212-58.318-63.258 0-13.975 5-25.394 13.188-34.358-1.329-3.224-5.71-16.242 1.24-33.874 0 0 10.749-3.44 35.21 13.121 10.21-2.836 21.16-4.258 32.038-4.307 10.878.049 21.837 1.47 32.066 4.307 24.431-16.56 35.165-13.12 35.165-13.12 6.967 17.63 2.584 30.65 1.255 33.873 8.207 8.964 13.173 20.383 13.173 34.358 0 49.163-29.944 59.988-58.447 63.157 4.591 3.972 8.682 11.762 8.682 23.704 0 17.126-.148 30.91-.148 35.126 0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002 256 57.307 198.691 0 128.001 0zm-80.06 182.34c-.282.636-1.283.827-2.194.39-.929-.417-1.45-1.284-1.15-1.922.276-.655 1.279-.838 2.205-.399.93.418 1.46 1.293 1.139 1.931zm6.296 5.618c-.61.566-1.804.303-2.614-.591-.837-.892-.994-2.086-.375-2.66.63-.566 1.787-.301 2.626.591.838.903 1 2.088.363 2.66zm4.32 7.188c-.785.545-2.067.034-2.86-1.104-.784-1.138-.784-2.503.017-3.05.795-.547 2.058-.055 2.861 1.075.782 1.157.782 2.522-.019 3.08zm7.304 8.325c-.701.774-2.196.566-3.29-.49-1.119-1.032-1.43-2.496-.726-3.27.71-.776 2.213-.558 3.315.49 1.11 1.03 1.45 2.505.701 3.27zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033-1.448-.439-2.395-1.613-2.103-2.626.301-1.01 1.747-1.484 3.207-1.028 1.446.436 2.396 1.602 2.095 2.622zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95-1.53.034-2.769-.82-2.786-1.86 0-1.065 1.202-1.932 2.733-1.958 1.522-.03 2.768.818 2.768 1.868zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37-1.485.271-2.861-.365-3.05-1.386-.184-1.056.893-2.114 2.376-2.387 1.514-.263 2.868.356 3.061 1.403z"
fill="#161614"
></path>
</g>
/>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,26 +1,22 @@
<svg
viewBox="0 0 256 262"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
preserveAspectRatio="xMidYMid"
>
<g>
<path
d="M255.878,133.451 C255.878,122.717 255.007,114.884 253.122,106.761 L130.55,106.761 L130.55,155.209 L202.497,155.209 C201.047,167.249 193.214,185.381 175.807,197.565 L175.563,199.187 L214.318,229.21 L217.003,229.478 C241.662,206.704 255.878,173.196 255.878,133.451"
d="M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622 38.755 30.023 2.685.268c24.659-22.774 38.875-56.282 38.875-96.027"
fill="#4285F4"
></path>
/>
<path
d="M130.55,261.1 C165.798,261.1 195.389,249.495 217.003,229.478 L175.807,197.565 C164.783,205.253 149.987,210.62 130.55,210.62 C96.027,210.62 66.726,187.847 56.281,156.37 L54.75,156.5 L14.452,187.687 L13.925,189.152 C35.393,231.798 79.49,261.1 130.55,261.1"
d="M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055-34.523 0-63.824-22.773-74.269-54.25l-1.531.13-40.298 31.187-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1"
fill="#34A853"
></path>
/>
<path
d="M56.281,156.37 C53.525,148.247 51.93,139.543 51.93,130.55 C51.93,121.556 53.525,112.853 56.136,104.73 L56.063,103 L15.26,71.312 L13.925,71.947 C5.077,89.644 0,109.517 0,130.55 C0,151.583 5.077,171.455 13.925,189.152 L56.281,156.37"
d="M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82 0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602l42.356-32.782"
fill="#FBBC05"
></path>
/>
<path
d="M130.55,50.479 C155.064,50.479 171.6,61.068 181.029,69.917 L217.873,33.943 C195.245,12.91 165.798,0 130.55,0 C79.49,0 35.393,29.301 13.925,71.947 L56.136,104.73 C66.726,73.253 96.027,50.479 130.55,50.479"
d="M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0 79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251"
fill="#EB4335"
></path>
</g>
/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -7,6 +7,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="8" r="7"></circle>
<polyline points="8.21 13.89 7 23 12 20 17 23 15.79 13.88"></polyline>
<circle cx="12" cy="8" r="7" />
<path d="M8.21 13.89L7 23l5-3 5 3-1.21-9.12" />
</svg>

Before

Width:  |  Height:  |  Size: 295 B

After

Width:  |  Height:  |  Size: 265 B

View File

@ -7,7 +7,5 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path
d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"
></path>
<path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z" />
</svg>

Before

Width:  |  Height:  |  Size: 270 B

After

Width:  |  Height:  |  Size: 253 B

View File

@ -7,7 +7,5 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="3" y1="12" x2="21" y2="12"></line>
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="18" x2="21" y2="18"></line>
<path d="M3 12h18M3 6h18M3 18h18" />
</svg>

Before

Width:  |  Height:  |  Size: 320 B

After

Width:  |  Height:  |  Size: 220 B

View File

@ -7,5 +7,5 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="20 6 9 17 4 12"></polyline>
<path d="M20 6L9 17l-5-5" />
</svg>

Before

Width:  |  Height:  |  Size: 229 B

After

Width:  |  Height:  |  Size: 212 B

View File

@ -7,5 +7,5 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="15 18 9 12 15 6"></polyline>
<path d="M15 18l-6-6 6-6" />
</svg>

Before

Width:  |  Height:  |  Size: 230 B

After

Width:  |  Height:  |  Size: 212 B

View File

@ -7,5 +7,5 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="9 18 15 12 9 6"></polyline>
<path d="M9 18l6-6-6-6" />
</svg>

Before

Width:  |  Height:  |  Size: 229 B

After

Width:  |  Height:  |  Size: 210 B

View File

@ -7,5 +7,5 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="18 15 12 9 6 15"></polyline>
<path d="M18 15l-6-6-6 6" />
</svg>

Before

Width:  |  Height:  |  Size: 230 B

After

Width:  |  Height:  |  Size: 212 B

View File

@ -7,6 +7,5 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="16 18 22 12 16 6"></polyline>
<polyline points="8 6 2 12 8 18"></polyline>
<path d="M16 18l6-6-6-6M8 6l-6 6 6 6" />
</svg>

Before

Width:  |  Height:  |  Size: 278 B

After

Width:  |  Height:  |  Size: 224 B

View File

@ -7,6 +7,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"></path>
<path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"></path>
<path d="M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7" />
<path d="M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z" />
</svg>

Before

Width:  |  Height:  |  Size: 336 B

After

Width:  |  Height:  |  Size: 319 B

View File

@ -7,8 +7,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10"></circle>
<path d="M16 16s-1.5-2-4-2-4 2-4 2"></path>
<line x1="9" y1="9" x2="9.01" y2="9"></line>
<line x1="15" y1="9" x2="15.01" y2="9"></line>
<circle cx="12" cy="12" r="10" />
<path d="M16 16s-1.5-2-4-2-4 2-4 2M9 9h.01M15 9h.01" />
</svg>

Before

Width:  |  Height:  |  Size: 366 B

After

Width:  |  Height:  |  Size: 275 B

View File

@ -7,10 +7,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="16.5" y1="9.4" x2="7.5" y2="4.21"></line>
<path
d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"
></path>
<polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline>
<line x1="12" y1="22.08" x2="12" y2="12"></line>
d="M16.5 9.4l-9-5.19M21 16V8a2 2 0 00-1-1.73l-7-4a2 2 0 00-2 0l-7 4A2 2 0 003 8v8a2 2 0 001 1.73l7 4a2 2 0 002 0l7-4A2 2 0 0021 16z"
/>
<path d="M3.27 6.96L12 12.01l8.73-5.05M12 22.08V12" />
</svg>

Before

Width:  |  Height:  |  Size: 498 B

After

Width:  |  Height:  |  Size: 388 B

View File

@ -7,6 +7,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path>
<circle cx="12" cy="12" r="3"></circle>
<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" />
<circle cx="12" cy="12" r="3" />
</svg>

Before

Width:  |  Height:  |  Size: 288 B

After

Width:  |  Height:  |  Size: 276 B

View File

@ -7,6 +7,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path>
<polyline points="13 2 13 9 20 9"></polyline>
<path d="M13 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V9z" />
<path d="M13 2v7h7" />
</svg>

Before

Width:  |  Height:  |  Size: 308 B

After

Width:  |  Height:  |  Size: 275 B

View File

@ -8,6 +8,6 @@
stroke-linejoin="round"
>
<path
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"
></path>
d="M22 19a2 2 0 01-2 2H4a2 2 0 01-2-2V5a2 2 0 012-2h5l2 3h9a2 2 0 012 2z"
/>
</svg>

Before

Width:  |  Height:  |  Size: 284 B

After

Width:  |  Height:  |  Size: 272 B

View File

@ -7,8 +7,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="3"></circle>
<circle cx="12" cy="12" r="3" />
<path
d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"
></path>
d="M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 010 2.83 2 2 0 01-2.83 0l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-2 2 2 2 0 01-2-2v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83 0 2 2 0 010-2.83l.06-.06a1.65 1.65 0 00.33-1.82 1.65 1.65 0 00-1.51-1H3a2 2 0 01-2-2 2 2 0 012-2h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 010-2.83 2 2 0 012.83 0l.06.06a1.65 1.65 0 001.82.33H9a1.65 1.65 0 001-1.51V3a2 2 0 012-2 2 2 0 012 2v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 0 2 2 0 010 2.83l-.06.06a1.65 1.65 0 00-.33 1.82V9a1.65 1.65 0 001.51 1H21a2 2 0 012 2 2 2 0 01-2 2h-.09a1.65 1.65 0 00-1.51 1z"
/>
</svg>

Before

Width:  |  Height:  |  Size: 985 B

After

Width:  |  Height:  |  Size: 921 B

View File

@ -7,6 +7,14 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path>
<polyline points="9 22 9 12 15 12 15 22"></polyline>
<g transform="translate(1, 3)">
<path
d="M16,1.006 C14.06,0.127 12.989,0 11.32,0 C5.068,0 0,5.048 0,11.275 C0,12.962 0.333,14.563 1,16 M21.06,16 C21.829,14.075 21.94,13.012 21.94,11.356 C21.94,9.178 21.705,7.726 21.234,7"
id="Shape"
></path>
<path
d="M20.172,2.7 C20.9923544,3.15662123 14.3368307,10.8547107 12.654,12.413 C11,13.9445922 9.78759419,13.0907026 9.78759419,13.0907026 C9.78759419,13.0907026 7.89596548,12.0152615 11,9.08881871 C15.660744,4.69473072 19.3516456,2.24337877 20.172,2.7 Z M11.5,0 L11.5,3 M1,16 L4,14 M18,14 L21,16 M2,5 L4,7"
id="Shape"
></path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 303 B

After

Width:  |  Height:  |  Size: 800 B

View File

@ -7,7 +7,5 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
<polyline points="17 8 12 3 7 8"></polyline>
<line x1="12" y1="3" x2="12" y2="15"></line>
<path d="M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M17 8l-5-5-5 5M12 3v12" />
</svg>

Before

Width:  |  Height:  |  Size: 337 B

After

Width:  |  Height:  |  Size: 258 B

View File

@ -8,7 +8,7 @@
stroke-linejoin="round"
>
<path
d="M10.81 2l-1.5 2.716L2 12.17M12 2H0M16 13h-4M13.84 7.866l-3.564 8.025M14.276 7.866l3.565 8.025M6 0v2"
d="M10.81 2l-1.5 2.716L2 12.17M12 2H0m16 11h-4m1.84-5.134l-3.564 8.025m4-8.025l3.565 8.025M6 0v2"
/>
<path
d="M8 10.229L5.576 7.773C4.894 7.21 4.47 6.78 4.3 6.483 4.13 6.185 4.03 5.69 4 5"

Before

Width:  |  Height:  |  Size: 401 B

After

Width:  |  Height:  |  Size: 395 B

View File

@ -7,6 +7,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect>
<path d="M7 11V7a5 5 0 0 1 10 0v4"></path>
<rect x="3" y="11" width="18" height="11" rx="2" ry="2" />
<path d="M7 11V7a5 5 0 0110 0v4" />
</svg>

Before

Width:  |  Height:  |  Size: 292 B

After

Width:  |  Height:  |  Size: 280 B

View File

@ -7,6 +7,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect>
<path d="M7 11V7a5 5 0 0 1 9.9-1"></path>
<rect x="3" y="11" width="18" height="11" rx="2" ry="2" />
<path d="M7 11V7a5 5 0 019.9-1" />
</svg>

Before

Width:  |  Height:  |  Size: 291 B

After

Width:  |  Height:  |  Size: 279 B

View File

@ -7,7 +7,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="18" cy="18" r="3"></circle>
<circle cx="6" cy="6" r="3"></circle>
<path d="M6 21V9a9 9 0 0 0 9 9"></path>
<circle cx="18" cy="18" r="3" />
<circle cx="6" cy="6" r="3" />
<path d="M6 21V9a9 9 0 009 9" />
</svg>

Before

Width:  |  Height:  |  Size: 305 B

After

Width:  |  Height:  |  Size: 284 B

View File

@ -8,7 +8,7 @@
stroke-linejoin="round"
class="feather feather-percent"
>
<line x1="19" y1="5" x2="5" y2="19"></line>
<circle cx="6.5" cy="6.5" r="2.5"></circle>
<circle cx="17.5" cy="17.5" r="2.5"></circle>
<path d="M19 5L5 19" />
<circle cx="6.5" cy="6.5" r="2.5" />
<circle cx="17.5" cy="17.5" r="2.5" />
</svg>

Before

Width:  |  Height:  |  Size: 355 B

After

Width:  |  Height:  |  Size: 321 B

View File

@ -7,6 +7,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="23 4 23 10 17 10"></polyline>
<path d="M20.49 15a9 9 0 1 1-2.12-9.36L23 10"></path>
<path d="M23 4v6h-6" />
<path d="M20.49 15a9 9 0 11-2.12-9.36L23 10" />
</svg>

Before

Width:  |  Height:  |  Size: 287 B

After

Width:  |  Height:  |  Size: 257 B

View File

@ -7,6 +7,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="1 4 1 10 7 10"></polyline>
<path d="M3.51 15a9 9 0 1 0 2.13-9.36L1 10"></path>
<path d="M1 4v6h6" />
<path d="M3.51 15a9 9 0 102.13-9.36L1 10" />
</svg>

Before

Width:  |  Height:  |  Size: 282 B

After

Width:  |  Height:  |  Size: 252 B

View File

@ -7,6 +7,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="11" cy="11" r="8"></circle>
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
<circle cx="11" cy="11" r="8" />
<path d="M21 21l-4.35-4.35" />
</svg>

Before

Width:  |  Height:  |  Size: 277 B

After

Width:  |  Height:  |  Size: 249 B

View File

@ -1,15 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 256 293"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
preserveAspectRatio="xMidYMid"
>
<g>
<path
d="M226.011429,0 L29.9885714,0 C13.4582857,0 0,13.4582857 0,30.1348571 L0,227.913143 C0,244.589714 13.4582857,258.048 29.9885714,258.048 L195.876571,258.048 L188.123429,230.985143 L206.848,248.393143 L224.548571,264.777143 L256,292.571429 L256,30.1348571 C256,13.4582857 242.541714,0 226.011429,0 Z M169.545143,191.049143 C169.545143,191.049143 164.278857,184.758857 159.890286,179.2 C179.053714,173.787429 186.368,161.792 186.368,161.792 C180.370286,165.741714 174.665143,168.521143 169.545143,170.422857 C162.230857,173.494857 155.209143,175.542857 148.333714,176.713143 C134.290286,179.346286 121.417143,178.614857 110.445714,176.566857 C102.107429,174.957714 94.9394286,172.617143 88.9417143,170.276571 C85.5771429,168.96 81.92,167.350857 78.2628571,165.302857 C77.824,165.010286 77.3851429,164.864 76.9462857,164.571429 C76.6537143,164.425143 76.5074286,164.278857 76.3611429,164.132571 C73.728,162.669714 72.2651429,161.645714 72.2651429,161.645714 C72.2651429,161.645714 79.2868571,173.348571 97.8651429,178.907429 C93.4765714,184.466286 88.064,191.049143 88.064,191.049143 C55.7348571,190.025143 43.4468571,168.813714 43.4468571,168.813714 C43.4468571,121.709714 64.512,83.5291429 64.512,83.5291429 C85.5771429,67.7302857 105.618286,68.1691429 105.618286,68.1691429 L107.081143,69.9245714 C80.7497143,77.5314286 68.608,89.088 68.608,89.088 C68.608,89.088 71.8262857,87.3325714 77.2388571,84.8457143 C92.8914286,77.9702857 105.325714,76.0685714 110.445714,75.6297143 C111.323429,75.4834286 112.054857,75.3371429 112.932571,75.3371429 C121.856,74.1668571 131.949714,73.8742857 142.482286,75.0445714 C156.379429,76.6537143 171.300571,80.7497143 186.514286,89.088 C186.514286,89.088 174.957714,78.1165714 150.089143,70.5097143 L152.137143,68.1691429 C152.137143,68.1691429 172.178286,67.7302857 193.243429,83.5291429 C193.243429,83.5291429 214.308571,121.709714 214.308571,168.813714 C214.308571,168.813714 201.874286,190.025143 169.545143,191.049143 Z M101.522286,122.733714 C93.184,122.733714 86.6011429,130.048 86.6011429,138.971429 C86.6011429,147.894857 93.3302857,155.209143 101.522286,155.209143 C109.860571,155.209143 116.443429,147.894857 116.443429,138.971429 C116.589714,130.048 109.860571,122.733714 101.522286,122.733714 M154.916571,122.733714 C146.578286,122.733714 139.995429,130.048 139.995429,138.971429 C139.995429,147.894857 146.724571,155.209143 154.916571,155.209143 C163.254857,155.209143 169.837714,147.894857 169.837714,138.971429 C169.837714,130.048 163.254857,122.733714 154.916571,122.733714"
d="M226.011 0H29.99C13.459 0 0 13.458 0 30.135v197.778c0 16.677 13.458 30.135 29.989 30.135h165.888l-7.754-27.063 18.725 17.408 17.7 16.384L256 292.571V30.135C256 13.458 242.542 0 226.011 0zm-56.466 191.05s-5.266-6.291-9.655-11.85c19.164-5.413 26.478-17.408 26.478-17.408-5.998 3.95-11.703 6.73-16.823 8.63-7.314 3.073-14.336 5.12-21.211 6.291-14.044 2.633-26.917 1.902-37.888-.146-8.339-1.61-15.507-3.95-21.504-6.29-3.365-1.317-7.022-2.926-10.68-4.974-.438-.293-.877-.439-1.316-.732-.292-.146-.439-.292-.585-.438-2.633-1.463-4.096-2.487-4.096-2.487s7.022 11.703 25.6 17.261c-4.388 5.56-9.801 12.142-9.801 12.142-32.33-1.024-44.617-22.235-44.617-22.235 0-47.104 21.065-85.285 21.065-85.285 21.065-15.799 41.106-15.36 41.106-15.36l1.463 1.756C80.75 77.53 68.608 89.088 68.608 89.088s3.218-1.755 8.63-4.242c15.653-6.876 28.088-8.777 33.208-9.216.877-.147 1.609-.293 2.487-.293a123.776 123.776 0 0129.55-.292c13.896 1.609 28.818 5.705 44.031 14.043 0 0-11.556-10.971-36.425-18.578l2.048-2.34s20.041-.44 41.106 15.36c0 0 21.066 38.18 21.066 85.284 0 0-12.435 21.211-44.764 22.235zm-68.023-68.316c-8.338 0-14.92 7.314-14.92 16.237 0 8.924 6.728 16.238 14.92 16.238 8.339 0 14.921-7.314 14.921-16.238.147-8.923-6.582-16.237-14.92-16.237m53.394 0c-8.339 0-14.922 7.314-14.922 16.237 0 8.924 6.73 16.238 14.922 16.238 8.338 0 14.92-7.314 14.92-16.238 0-8.923-6.582-16.237-14.92-16.237"
fill="#7289DA"
></path>
</g>
/>
</svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -7,9 +7,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="18" cy="5" r="3"></circle>
<circle cx="6" cy="12" r="3"></circle>
<circle cx="18" cy="19" r="3"></circle>
<line x1="8.59" y1="13.51" x2="15.42" y2="17.49"></line>
<line x1="15.41" y1="6.51" x2="8.59" y2="10.49"></line>
<circle cx="18" cy="5" r="3" />
<circle cx="6" cy="12" r="3" />
<circle cx="18" cy="19" r="3" />
<path d="M8.59 13.51l6.83 3.98M15.41 6.51l-6.82 3.98" />
</svg>

Before

Width:  |  Height:  |  Size: 422 B

After

Width:  |  Height:  |  Size: 343 B

View File

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path
fill="currentColor"
d="M256 105.5c-83.9 0-152.2 68.3-152.2 152.2 0 83.9 68.3 152.2 152.2 152.2 83.9 0 152.2-68.3 152.2-152.2 0-84-68.3-152.2-152.2-152.2zm0 263.5c-61.4 0-111.4-50-111.4-111.4 0-61.4 50-111.4 111.4-111.4 61.4 0 111.4 50 111.4 111.4 0 61.4-50 111.4-111.4 111.4zM256 74.8c11.3 0 20.4-9.1 20.4-20.4v-23c0-11.3-9.1-20.4-20.4-20.4-11.3 0-20.4 9.1-20.4 20.4v23c0 11.3 9.1 20.4 20.4 20.4zM256 437.2c-11.3 0-20.4 9.1-20.4 20.4v22.9c0 11.3 9.1 20.4 20.4 20.4 11.3 0 20.4-9.1 20.4-20.4v-22.9c0-11.2-9.1-20.4-20.4-20.4zM480.6 235.6h-23c-11.3 0-20.4 9.1-20.4 20.4 0 11.3 9.1 20.4 20.4 20.4h23c11.3 0 20.4-9.1 20.4-20.4 0-11.3-9.1-20.4-20.4-20.4zM54.4 235.6h-23c-11.3 0-20.4 9.1-20.4 20.4 0 11.3 9.1 20.4 20.4 20.4h22.9c11.3 0 20.4-9.1 20.4-20.4.1-11.3-9.1-20.4-20.3-20.4zM400.4 82.8L384.1 99c-8 8-8 20.9 0 28.9s20.9 8 28.9 0l16.2-16.2c8-8 8-20.9 0-28.9s-20.9-8-28.8 0zM99 384.1l-16.2 16.2c-8 8-8 20.9 0 28.9s20.9 8 28.9 0l16.2-16.2c8-8 8-20.9 0-28.9s-20.9-7.9-28.9 0zM413 384.1c-8-8-20.9-8-28.9 0s-8 20.9 0 28.9l16.2 16.2c8 8 20.9 8 28.9 0s8-20.9 0-28.9L413 384.1zM99 127.9c8 8 20.9 8 28.9 0s8-20.9 0-28.9l-16.2-16.2c-8-8-20.9-8-28.9 0s-8 20.9 0 28.9L99 127.9z"
d="M256 105.5c-83.9 0-152.2 68.3-152.2 152.2 0 83.9 68.3 152.2 152.2 152.2 83.9 0 152.2-68.3 152.2-152.2 0-84-68.3-152.2-152.2-152.2zm0 263.5c-61.4 0-111.4-50-111.4-111.4 0-61.4 50-111.4 111.4-111.4 61.4 0 111.4 50 111.4 111.4 0 61.4-50 111.4-111.4 111.4zm0-294.2c11.3 0 20.4-9.1 20.4-20.4v-23c0-11.3-9.1-20.4-20.4-20.4-11.3 0-20.4 9.1-20.4 20.4v23c0 11.3 9.1 20.4 20.4 20.4zm0 362.4c-11.3 0-20.4 9.1-20.4 20.4v22.9c0 11.3 9.1 20.4 20.4 20.4 11.3 0 20.4-9.1 20.4-20.4v-22.9c0-11.2-9.1-20.4-20.4-20.4zm224.6-201.6h-23c-11.3 0-20.4 9.1-20.4 20.4 0 11.3 9.1 20.4 20.4 20.4h23c11.3 0 20.4-9.1 20.4-20.4 0-11.3-9.1-20.4-20.4-20.4zm-426.2 0h-23c-11.3 0-20.4 9.1-20.4 20.4 0 11.3 9.1 20.4 20.4 20.4h22.9c11.3 0 20.4-9.1 20.4-20.4.1-11.3-9.1-20.4-20.3-20.4zm346-152.8L384.1 99c-8 8-8 20.9 0 28.9s20.9 8 28.9 0l16.2-16.2c8-8 8-20.9 0-28.9s-20.9-8-28.8 0zM99 384.1l-16.2 16.2c-8 8-8 20.9 0 28.9s20.9 8 28.9 0l16.2-16.2c8-8 8-20.9 0-28.9s-20.9-7.9-28.9 0zm314 0c-8-8-20.9-8-28.9 0s-8 20.9 0 28.9l16.2 16.2c8 8 20.9 8 28.9 0s8-20.9 0-28.9L413 384.1zM99 127.9c8 8 20.9 8 28.9 0s8-20.9 0-28.9l-16.2-16.2c-8-8-20.9-8-28.9 0s-8 20.9 0 28.9L99 127.9z"
/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -7,8 +7,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="18" cy="18" r="3"></circle>
<circle cx="6" cy="6" r="3"></circle>
<path d="M13 6h3a2 2 0 0 1 2 2v7"></path>
<line x1="6" y1="9" x2="6" y2="21"></line>
<circle cx="18" cy="18" r="3" />
<circle cx="6" cy="6" r="3" />
<path d="M13 6h3a2 2 0 012 2v7M6 9v12" />
</svg>

Before

Width:  |  Height:  |  Size: 352 B

After

Width:  |  Height:  |  Size: 293 B

View File

@ -8,7 +8,6 @@
stroke-linejoin="round"
>
<path
d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"
></path>
<line x1="7" y1="7" x2="7" y2="7"></line>
d="M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82zM7 7h0"
/>
</svg>

Before

Width:  |  Height:  |  Size: 331 B

After

Width:  |  Height:  |  Size: 284 B

View File

@ -8,6 +8,6 @@
stroke-linejoin="round"
>
<path
d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"
></path>
d="M14 9V5a3 3 0 00-3-3l-4 9v11h11.28a2 2 0 002-1.7l1.38-9a2 2 0 00-2-2.3zM7 22H4a2 2 0 01-2-2v-7a2 2 0 012-2h3"
/>
</svg>

Before

Width:  |  Height:  |  Size: 324 B

After

Width:  |  Height:  |  Size: 311 B

View File

@ -7,8 +7,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
<circle cx="9" cy="7" r="4"></circle>
<path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
<path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
<path d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2" />
<circle cx="9" cy="7" r="4" />
<path d="M23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75" />
</svg>

Before

Width:  |  Height:  |  Size: 376 B

After

Width:  |  Height:  |  Size: 333 B

View File

@ -7,6 +7,5 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="18" y1="6" x2="6" y2="18"></line>
<line x1="6" y1="6" x2="18" y2="18"></line>
<path d="M18 6L6 18M6 6l12 12" />
</svg>

Before

Width:  |  Height:  |  Size: 273 B

After

Width:  |  Height:  |  Size: 217 B