collections tree redesign

- new icons
- new twisty (also for items tree)
- new mixin focus-states that can be re-used for less boilerplate
- dark/white compatible with tweaks for when tree is focused (these changes also affect items tree)
- removed macOS specific behaviour (blue-ish background, gradient for selected row)
- border-radius on highlight + spacing tweaks
- tweaked colors and fonts
- Support for "compact"/"comfortable"
This commit is contained in:
Tom Najdek 2023-10-24 08:36:56 +02:00 committed by Dan Stillman
parent 78d82d22cc
commit 3f91729141
63 changed files with 402 additions and 246 deletions

View file

@ -184,52 +184,6 @@
text-shadow: rgba(0, 0, 0, 0.4) 0 1px;
}
#zotero-collections-tree {
-moz-appearance: none;
border: none;
margin: 0;
padding: 0;
min-height: 5.2em;
background-color: #d2d8e2;
}
#zotero-collections-tree:-moz-window-inactive {
background-color: rgb(232, 232, 232);
}
#zotero-collections-tree treechildren::-moz-tree-row {
background-color: transparent;
border-color: transparent;
}
#zotero-collections-tree treechildren::-moz-tree-cell(selected) {
background: -moz-linear-gradient(top, #A0B0CF, #7386AB) repeat-x;
border-top: 1px solid #94A1C0;
}
#zotero-collections-tree:-moz-window-inactive treechildren::-moz-tree-cell(selected) {
background: -moz-linear-gradient(top, #B4B4B4, #8A8A8A) repeat-x;
border-top: 1px solid #979797;
}
#zotero-collections-tree treechildren::-moz-tree-cell(selected, focus) {
background: -moz-linear-gradient(top, #6494D4, #2559AC) repeat-x;
border-top: 1px solid #5382C5;
}
#zotero-collections-tree treechildren::-moz-tree-cell-text(selected) {
font-weight: bold !important;
color: #ffffff !important;
}
#zotero-collections-tree treechildren::-moz-tree-twisty(selected) {
list-style-image: url("chrome://zotero/skin/mac/twisty-selected.svg");
}
#zotero-collections-tree treechildren::-moz-tree-twisty(selected, open) {
list-style-image: url("chrome://zotero/skin/mac/twisty-selected-open.svg");
}
#zotero-collections-splitter:not([state=collapsed]),
#zotero-items-splitter:not([state=collapsed])[orient=horizontal],
#zotero-context-splitter:not([state=collapsed])[orient=horizontal]

View file

@ -28,8 +28,7 @@ const ReactDOM = require('react-dom');
const LibraryTree = require('./libraryTree');
const VirtualizedTable = require('components/virtualized-table');
const { TreeSelectionStub } = VirtualizedTable;
const Icons = require('components/icons');
const { getDOMElement: getDOMIcon } = Icons;
const { getCSSIcon } = require('components/icons');
const { getDragTargetOrient } = require('components/utils');
const { Cc, Ci, Cu } = require('chrome');
@ -260,7 +259,7 @@ var CollectionTree = class CollectionTree extends LibraryTree {
}
}
else {
twisty = getDOMIcon("IconTwisty");
twisty = getCSSIcon("twisty");
twisty.classList.add('twisty');
if (this.isContainerOpen(index)) {
twisty.classList.add('open');
@ -2107,64 +2106,45 @@ var CollectionTree = class CollectionTree extends LibraryTree {
_getIcon(index) {
const treeRow = this.getRow(index);
var collectionType = treeRow.type;
if (collectionType == 'group') {
collectionType = 'Library';
if (collectionType == 'separator') {
return document.createElement('span');
}
let iconClsName;
let icon = collectionType;
switch (collectionType) {
case 'library':
case 'group':
icon = 'library-group';
break;
case 'feed':
// Better alternative needed: https://github.com/zotero/zotero/pull/902#issuecomment-183185973
/*
if (treeRow.ref.updating) {
collectionType += 'Updating';
} else */if (treeRow.ref.lastCheckError) {
collectionType += 'Error';
icon += '-error';
}
break;
case 'trash':
if (this._trashNotEmpty[treeRow.ref.libraryID]) {
collectionType += 'Full';
icon += '-full';
}
break;
case 'feeds':
collectionType = 'FeedLibrary';
icon = 'feed-library';
break;
case 'header':
if (treeRow.ref.id == 'group-libraries-header') {
collectionType = 'Groups';
icon = 'groups';
}
else if (treeRow.ref.id == 'commons-header') {
collectionType = 'Commons';
}
break;
case 'publications':
iconClsName = "IconTreeitemJournalArticle";
break;
case 'retracted':
iconClsName = "IconCross";
break;
}
collectionType = Zotero.Utilities.capitalize(collectionType);
iconClsName = iconClsName || "IconTreesource" + collectionType;
if (collectionType == 'Separator') {
return document.createElement('span');
}
var icon = getDOMIcon(iconClsName);
if (!icon) {
return document.createElement('span');
}
return icon;
return getCSSIcon(icon);
}
/**

View file

@ -1270,18 +1270,21 @@ class VirtualizedTable extends React.Component {
if (!this.props.disableFontSizeScaling) {
rowHeight *= Zotero.Prefs.get('fontSize');
}
rowHeight += Zotero.Prefs.get('uiDensity') === 'comfortable' ? 10 : 4;
// @TODO: Check row height across platforms and remove commented code below
// padding
// This is weird, but Firefox trees always had different amount of padding on
// different OSes
if (Zotero.isMac) {
rowHeight *= 1.4;
}
else if (Zotero.isWin) {
rowHeight *= 1.2;
}
else {
rowHeight *= 1.1;
}
// if (Zotero.isMac) {
// rowHeight *= 1.4;
// }
// else if (Zotero.isWin) {
// rowHeight *= 1.2;
// }
// else {
// rowHeight *= 1.1;
// }
rowHeight = Math.round(Math.max(MINIMUM_ROW_HEIGHT, rowHeight));
return rowHeight;
}
@ -1289,6 +1292,7 @@ class VirtualizedTable extends React.Component {
_getRenderedTextHeight() {
let div = document.createElement('div');
div.style.visibility = "hidden";
div.style.lineHeight = "1.3333333333333333";
div.textContent = "Zotero";
document.documentElement.appendChild(div);
let height = window.getComputedStyle(div).height;

View file

@ -2683,7 +2683,7 @@ var ItemTree = class ItemTree extends LibraryTree {
twisty.classList.add("spacer-twisty");
}
else {
twisty = getDOMElement("IconTwisty");
twisty = getCSSIcon("twisty");
twisty.classList.add('twisty');
if (this.isContainerOpen(index)) {
twisty.classList.add('open');

View file

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8" fill="none">
<path d="M0 2.70711L4 6.70711L8 2.70711L7.29289 2L4 5.29289L0.707107 2L0 2.70711Z" fill="white" fill-opacity="0.55"/>
</svg>

After

Width:  |  Height:  |  Size: 220 B

View file

@ -0,0 +1,3 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 2.70711L4 6.70711L8 2.70711L7.29289 2L4 5.29289L0.707107 2L0 2.70711Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 197 B

View file

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8" fill="none">
<path d="M0 2.70711L4 6.70711L8 2.70711L7.29289 2L4 5.29289L0.707107 2L0 2.70711Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 200 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15 3H9L8.276 1.553C8.107 1.214 7.761 1 7.382 1H3.618C3.239 1 2.893 1.214 2.724 1.553L2 3H1C0.448 3 0 3.448 0 4V6V14C0 14.552 0.448 15 1 15H15C15.552 15 16 14.552 16 14V6V4C16 3.448 15.552 3 15 3ZM15 14H1V6H15V14ZM1 5V4H2C2.379 4 2.725 3.786 2.894 3.447L3.618 2H7.382L8.106 3.447C8.275 3.786 8.621 4 9 4H15V5H1Z" fill="#4072e5"/>
</svg>

After

Width:  |  Height:  |  Size: 442 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 3V0H1V13H4V16H15V3H12ZM2 1H11V12H2V1ZM14 15H5V13H12V4H14V15Z" fill="#FAA700CC"/>
</svg>

After

Width:  |  Height:  |  Size: 197 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 2H13C13.5523 2 14 2.44772 14 3V7.75777C13.285 7.27914 12.4251 7 11.5 7C11.106 7 10.7237 7.05065 10.3595 7.14579C8.89767 5.23354 6.59289 4 4 4V5C6.16518 5 8.10076 5.98303 9.38478 7.52712C8.78765 7.8457 8.27078 8.29496 7.87237 8.83673C6.95546 7.71561 5.5613 7 4 7V8C5.3928 8 6.61934 8.71186 7.33563 9.7916C7.1193 10.3184 7 10.8953 7 11.5C7 12.4251 7.27914 13.285 7.75777 14H3C2.44772 14 2 13.5523 2 13V3C2 2.44772 2.44772 2 3 2ZM8.67133 15H3C1.89543 15 1 14.1046 1 13V3C1 1.89543 1.89543 1 3 1H13C14.1046 1 15 1.89543 15 3V8.67133C15.6254 9.4442 16 10.4284 16 11.5C16 13.9853 13.9853 16 11.5 16C10.4284 16 9.4442 15.6254 8.67133 15ZM6 11C6 11.5523 5.55228 12 5 12C4.44772 12 4 11.5523 4 11C4 10.4477 4.44772 10 5 10C5.55228 10 6 10.4477 6 11ZM15 11.5C15 13.433 13.433 15 11.5 15C9.567 15 8 13.433 8 11.5C8 9.567 9.567 8 11.5 8C13.433 8 15 9.567 15 11.5ZM10.875 13.375C10.875 13.0298 11.1548 12.75 11.5 12.75C11.8452 12.75 12.125 13.0298 12.125 13.375C12.125 13.7202 11.8452 14 11.5 14C11.1548 14 10.875 13.7202 10.875 13.375ZM12 9H11V12H12V9Z" fill="#db2c3ae5"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,10 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1945_28596)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 2H13C13.552 2 14 2.448 14 3V5V7C15.1046 7 16 7.89543 16 9V14C16 15.1046 15.1046 16 14 16H9C7.89543 16 7 15.1046 7 14V12H1C0.448 12 0 11.552 0 11V5V3C0 2.448 0.448 2 1 2H2L2.724 0.553C2.893 0.214 3.239 0 3.618 0H6.382C6.761 0 7.107 0.214 7.276 0.553L8 2ZM13 5V7H9C7.89543 7 7 7.89543 7 9V11H1V5H13ZM8 14V12V11V9C8 8.44772 8.44771 8 9 8H13H14C14.5523 8 15 8.44771 15 9V14C15 14.5523 14.5523 15 14 15H9C8.44772 15 8 14.5523 8 14ZM1 3V4H13V3H8C7.621 3 7.275 2.786 7.106 2.447L6.382 1H3.618L2.894 2.447C2.725 2.786 2.379 3 2 3H1ZM9 12C10.1046 12 11 12.8954 11 14H12C12 12.3431 10.6569 11 9 11V12ZM13 14H14C14 11.2386 11.7614 9 9 9V10C11.2091 10 13 11.7909 13 14ZM9.5 14C9.77614 14 10 13.7761 10 13.5C10 13.2239 9.77614 13 9.5 13C9.22386 13 9 13.2239 9 13.5C9 13.7761 9.22386 14 9.5 14Z" fill="#ff794cd9"/>
</g>
<defs>
<clipPath id="clip0_1945_28596">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 2H13C13.5523 2 14 2.44772 14 3V7.75777C13.285 7.27914 12.4251 7 11.5 7C11.106 7 10.7237 7.05065 10.3595 7.14579C8.89767 5.23354 6.59289 4 4 4V5C6.16518 5 8.10076 5.98303 9.38478 7.52712C8.78765 7.8457 8.27078 8.29496 7.87237 8.83673C6.95546 7.71561 5.5613 7 4 7V8C5.3928 8 6.61934 8.71186 7.33563 9.7916C7.1193 10.3184 7 10.8953 7 11.5C7 12.4251 7.27914 13.285 7.75777 14H3C2.44772 14 2 13.5523 2 13V3C2 2.44772 2.44772 2 3 2ZM8.67133 15H3C1.89543 15 1 14.1046 1 13V3C1 1.89543 1.89543 1 3 1H13C14.1046 1 15 1.89543 15 3V8.67133C15.6254 9.4442 16 10.4284 16 11.5C16 13.9853 13.9853 16 11.5 16C10.4284 16 9.4442 15.6254 8.67133 15ZM6 11C6 11.5523 5.55228 12 5 12C4.44772 12 4 11.5523 4 11C4 10.4477 4.44772 10 5 10C5.55228 10 6 10.4477 6 11ZM15 11.5C15 13.433 13.433 15 11.5 15C9.567 15 8 13.433 8 11.5C8 9.567 9.567 8 11.5 8C13.433 8 15 9.567 15 11.5ZM9 11.7071L11.5 14.2071L14 11.7071L13.2929 11L12 12.2929V9H11V12.2929L9.70711 11L9 11.7071Z" fill="#39bf68d9"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 2H13C13.5523 2 14 2.44772 14 3V13C14 13.5523 13.5523 14 13 14H3C2.44772 14 2 13.5523 2 13V3C2 2.44772 2.44772 2 3 2ZM1 3C1 1.89543 1.89543 1 3 1H13C14.1046 1 15 1.89543 15 3V13C15 14.1046 14.1046 15 13 15H3C1.89543 15 1 14.1046 1 13V3ZM12 12H11C11 8.13401 7.86599 5 4 5V4C8.41828 4 12 7.58172 12 12ZM4 7C6.76142 7 9 9.23858 9 12H8C8 9.79086 6.20914 8 4 8V7ZM6 11C6 11.5523 5.55228 12 5 12C4.44772 12 4 11.5523 4 11C4 10.4477 4.44772 10 5 10C5.55228 10 6 10.4477 6 11Z" fill="#ff794cd9"/>
</svg>

After

Width:  |  Height:  |  Size: 643 B

View file

@ -0,0 +1,10 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_219_6721)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 2.5C14 3.88071 12.8807 5 11.5 5C10.1193 5 9 3.88071 9 2.5C9 1.11929 10.1193 0 11.5 0C12.8807 0 14 1.11929 14 2.5ZM13 2.5C13 3.32843 12.3284 4 11.5 4C10.6716 4 10 3.32843 10 2.5C10 1.67157 10.6716 1 11.5 1C12.3284 1 13 1.67157 13 2.5ZM7 6.5C7 7.88071 5.88071 9 4.5 9C3.11929 9 2 7.88071 2 6.5C2 5.11929 3.11929 4 4.5 4C5.88071 4 7 5.11929 7 6.5ZM6 6.5C6 7.32843 5.32843 8 4.5 8C3.67157 8 3 7.32843 3 6.5C3 5.67157 3.67157 5 4.5 5C5.32843 5 6 5.67157 6 6.5ZM9 14.5C9 13.3065 8.52589 12.1619 7.68198 11.318C6.83807 10.4741 5.69347 10 4.5 10C3.30653 10 2.16193 10.4741 1.31802 11.318C0.474106 12.1619 0 13.3065 0 14.5V16H9V14.5ZM8 14.5C8 13.5717 7.63125 12.6815 6.97487 12.0251C6.3185 11.3687 5.42826 11 4.5 11C3.57174 11 2.6815 11.3687 2.02513 12.0251C1.36875 12.6815 1 13.5717 1 14.5V15H8V14.5ZM14.6821 7.31802C15.526 8.16193 16.0001 9.30653 16.0001 10.5V12H9.39908C9.21822 11.6456 8.99853 11.31 8.74276 11H15.0001V10.5C15.0001 9.57174 14.6313 8.6815 13.975 8.02513C13.3186 7.36875 12.4284 7 11.5001 7C10.5718 7 9.6816 7.36875 9.02522 8.02513C8.42471 8.62564 8.06495 9.42189 8.00806 10.2639C7.71984 10.0252 7.40948 9.8178 7.08228 9.64382C7.25183 8.769 7.67888 7.95725 8.31812 7.31802C9.16203 6.47411 10.3066 6 11.5001 6C12.6936 6 13.8382 6.47411 14.6821 7.31802Z" fill="#59adc4e5"/>
</g>
<defs>
<clipPath id="clip0_219_6721">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16 15V16H1V15H16ZM15 14H2V13H3V5H2V3L8.5 0L15 3V5H14V13H15V14ZM3 4H14V3.64L8.5 1.1L3 3.64V4ZM5 5H4V13H5V5ZM7 5H6V13H7V5ZM9 5H8V13H9V5ZM11 5H10V13H11V5ZM13 5H12V13H13V5Z" fill="#59adc4e5"/>
</svg>

After

Width:  |  Height:  |  Size: 302 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16 15V16H1V15H16ZM15 14H2V13H3V5H2V3L8.5 0L15 3V5H14V13H15V14ZM3 4H14V3.64L8.5 1.1L3 3.64V4ZM5 5H4V13H5V5ZM7 5H6V13H7V5ZM9 5H8V13H9V5ZM11 5H10V13H11V5ZM13 5H12V13H13V5Z" fill="#4072e5"/>
</svg>

After

Width:  |  Height:  |  Size: 300 B

View file

@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.625 1H3V1.625V18.375V19H3.625H17.375H18V18.375V6.625V6.36612L17.8169 6.18306L12.8169 1.18306L12.6339 1H12.375H3.625ZM4.25 17.75V2.25H11.75V6.625V7.25H12.375H16.75V17.75H4.25ZM15.8661 6L13 3.13388V6H15.8661ZM6 7.25V6H10V7.25H6ZM6 10V11.25H15V10H6ZM6 14V15.25H15V14H6Z" fill="#39bf68d9"/>
</svg>

After

Width:  |  Height:  |  Size: 442 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.70711 0H2V16H15V5.29289L9.70711 0ZM3 15V1H9V6H14V15H3ZM13.2929 5L10 1.70711V5H13.2929ZM12 13.292L11.2923 14L8.50011 11.207L5.70796 14L5 13.2922L7.79311 10.5L5 7.70774L5.70798 7L8.50011 9.79299L11.2922 7L12 7.70796L9.20711 10.5L12 13.292Z" fill="#db2c3ae5"/>
</svg>

After

Width:  |  Height:  |  Size: 413 B

View file

@ -0,0 +1,10 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1945_29337)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 3H15C15.552 3 16 3.448 16 4V6V12.8786L15 11.8786V6H1V14H12.8788L13.8788 15H1C0.448 15 0 14.552 0 14V6V4C0 3.448 0.448 3 1 3H2L2.724 1.553C2.893 1.214 3.239 1 3.618 1H7.382C7.761 1 8.107 1.214 8.276 1.553L9 3ZM1 4V5H15V4H9C8.621 4 8.275 3.786 8.106 3.447L7.382 2H3.618L2.894 3.447C2.725 3.786 2.379 4 2 4H1ZM16.0001 14.2929L15.293 15L12.7383 12.4454C12.2479 12.7946 11.6479 13 11 13C9.34315 13 8 11.6569 8 10C8 8.34315 9.34315 7 11 7C12.6569 7 14 8.34315 14 10C14 10.6479 13.7946 11.2479 13.4454 11.7383L16.0001 14.2929ZM13 10C13 11.1046 12.1046 12 11 12C9.89543 12 9 11.1046 9 10C9 8.89543 9.89543 8 11 8C12.1046 8 13 8.89543 13 10Z" fill="#59adc4e5"/>
</g>
<defs>
<clipPath id="clip0_1945_29337">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 956 B

View file

@ -0,0 +1,6 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13 14.542C13 14.79 12.729 15 12.409 15H4.591C4.271 15 4 14.79 4 14.542V4H3V14.542C3 15.346 3.714 16 4.591 16H12.409C13.286 16 14 15.346 14 14.542V4H13V14.542Z" fill="#cc7a52e5"/>
<path d="M12 2V1C12 0.448 11.552 0 11 0H6C5.448 0 5 0.448 5 1V2H2V3H15V2H12ZM6 2V1H11V2H6Z" fill="#cc7a52e5"/>
<path d="M7 5H6V13H7V5Z" fill="#cc7a52e5"/>
<path d="M11 5H10V13H11V5Z" fill="#cc7a52e5"/>
</svg>

After

Width:  |  Height:  |  Size: 494 B

View file

@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13 14.542C13 14.79 12.729 15 12.409 15H4.591C4.271 15 4 14.79 4 14.542V4H3V14.542C3 15.346 3.714 16 4.591 16H12.409C13.286 16 14 15.346 14 14.542V4H13V14.542Z" fill="#cc7a52e5"/>
<path d="M12 2V1C12 0.448 11.552 0 11 0H6C5.448 0 5 0.448 5 1V2H2V3H15V2H12ZM6 2V1H11V2H6Z" fill="#cc7a52e5"/>
</svg>

After

Width:  |  Height:  |  Size: 403 B

View file

@ -0,0 +1,11 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_217_6489)">
<path d="M8 2H13C13.552 2 14 2.448 14 3V4.87868L13 3.87868V3H8C7.621 3 7.275 2.786 7.106 2.447L6.382 1H3.618L2.894 2.447C2.725 2.786 2.379 3 2 3H1V4H5V5H1V11H5V12H1C0.448 12 0 11.552 0 11V3C0 2.448 0.448 2 1 2H2L2.724 0.553C2.893 0.214 3.239 0 3.618 0H6.382C6.761 0 7.107 0.214 7.276 0.553L8 2Z" fill="#ff794cd9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 4H11.7071L16 8.29289V16H6V4ZM7 5V15H15V9H11V5H7ZM12 5.70711V8H14.2929L12 5.70711Z" fill="#ff794cd9"/>
</g>
<defs>
<clipPath id="clip0_217_6489">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 716 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15 3H9L8.276 1.553C8.107 1.214 7.761 1 7.382 1H3.618C3.239 1 2.893 1.214 2.724 1.553L2 3H1C0.448 3 0 3.448 0 4V6V14C0 14.552 0.448 15 1 15H15C15.552 15 16 14.552 16 14V6V4C16 3.448 15.552 3 15 3ZM15 14H1V6H15V14ZM1 5V4H2C2.379 4 2.725 3.786 2.894 3.447L3.618 2H7.382L8.106 3.447C8.275 3.786 8.621 4 9 4H15V5H1Z" fill="#4072E5"/>
</svg>

After

Width:  |  Height:  |  Size: 442 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 3V0H1V13H4V16H15V3H12ZM2 1H11V12H2V1ZM14 15H5V13H12V4H14V15Z" fill="#FAA700"/>
</svg>

After

Width:  |  Height:  |  Size: 195 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 2H13C13.5523 2 14 2.44772 14 3V7.75777C13.285 7.27914 12.4251 7 11.5 7C11.106 7 10.7237 7.05065 10.3595 7.14579C8.89767 5.23354 6.59289 4 4 4V5C6.16518 5 8.10076 5.98303 9.38478 7.52712C8.78765 7.8457 8.27078 8.29496 7.87237 8.83673C6.95546 7.71561 5.5613 7 4 7V8C5.3928 8 6.61934 8.71186 7.33563 9.7916C7.1193 10.3184 7 10.8953 7 11.5C7 12.4251 7.27914 13.285 7.75777 14H3C2.44772 14 2 13.5523 2 13V3C2 2.44772 2.44772 2 3 2ZM8.67133 15H3C1.89543 15 1 14.1046 1 13V3C1 1.89543 1.89543 1 3 1H13C14.1046 1 15 1.89543 15 3V8.67133C15.6254 9.4442 16 10.4284 16 11.5C16 13.9853 13.9853 16 11.5 16C10.4284 16 9.4442 15.6254 8.67133 15ZM6 11C6 11.5523 5.55228 12 5 12C4.44772 12 4 11.5523 4 11C4 10.4477 4.44772 10 5 10C5.55228 10 6 10.4477 6 11ZM15 11.5C15 13.433 13.433 15 11.5 15C9.567 15 8 13.433 8 11.5C8 9.567 9.567 8 11.5 8C13.433 8 15 9.567 15 11.5ZM10.875 13.375C10.875 13.0298 11.1548 12.75 11.5 12.75C11.8452 12.75 12.125 13.0298 12.125 13.375C12.125 13.7202 11.8452 14 11.5 14C11.1548 14 10.875 13.7202 10.875 13.375ZM12 9H11V12H12V9Z" fill="#DB2C3A"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,10 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1945_28596)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 2H13C13.552 2 14 2.448 14 3V5V7C15.1046 7 16 7.89543 16 9V14C16 15.1046 15.1046 16 14 16H9C7.89543 16 7 15.1046 7 14V12H1C0.448 12 0 11.552 0 11V5V3C0 2.448 0.448 2 1 2H2L2.724 0.553C2.893 0.214 3.239 0 3.618 0H6.382C6.761 0 7.107 0.214 7.276 0.553L8 2ZM13 5V7H9C7.89543 7 7 7.89543 7 9V11H1V5H13ZM8 14V12V11V9C8 8.44772 8.44771 8 9 8H13H14C14.5523 8 15 8.44771 15 9V14C15 14.5523 14.5523 15 14 15H9C8.44772 15 8 14.5523 8 14ZM1 3V4H13V3H8C7.621 3 7.275 2.786 7.106 2.447L6.382 1H3.618L2.894 2.447C2.725 2.786 2.379 3 2 3H1ZM9 12C10.1046 12 11 12.8954 11 14H12C12 12.3431 10.6569 11 9 11V12ZM13 14H14C14 11.2386 11.7614 9 9 9V10C11.2091 10 13 11.7909 13 14ZM9.5 14C9.77614 14 10 13.7761 10 13.5C10 13.2239 9.77614 13 9.5 13C9.22386 13 9 13.2239 9 13.5C9 13.7761 9.22386 14 9.5 14Z" fill="#FF794C"/>
</g>
<defs>
<clipPath id="clip0_1945_28596">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 2H13C13.5523 2 14 2.44772 14 3V7.75777C13.285 7.27914 12.4251 7 11.5 7C11.106 7 10.7237 7.05065 10.3595 7.14579C8.89767 5.23354 6.59289 4 4 4V5C6.16518 5 8.10076 5.98303 9.38478 7.52712C8.78765 7.8457 8.27078 8.29496 7.87237 8.83673C6.95546 7.71561 5.5613 7 4 7V8C5.3928 8 6.61934 8.71186 7.33563 9.7916C7.1193 10.3184 7 10.8953 7 11.5C7 12.4251 7.27914 13.285 7.75777 14H3C2.44772 14 2 13.5523 2 13V3C2 2.44772 2.44772 2 3 2ZM8.67133 15H3C1.89543 15 1 14.1046 1 13V3C1 1.89543 1.89543 1 3 1H13C14.1046 1 15 1.89543 15 3V8.67133C15.6254 9.4442 16 10.4284 16 11.5C16 13.9853 13.9853 16 11.5 16C10.4284 16 9.4442 15.6254 8.67133 15ZM6 11C6 11.5523 5.55228 12 5 12C4.44772 12 4 11.5523 4 11C4 10.4477 4.44772 10 5 10C5.55228 10 6 10.4477 6 11ZM15 11.5C15 13.433 13.433 15 11.5 15C9.567 15 8 13.433 8 11.5C8 9.567 9.567 8 11.5 8C13.433 8 15 9.567 15 11.5ZM9 11.7071L11.5 14.2071L14 11.7071L13.2929 11L12 12.2929V9H11V12.2929L9.70711 11L9 11.7071Z" fill="#39BF68"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 2H13C13.5523 2 14 2.44772 14 3V13C14 13.5523 13.5523 14 13 14H3C2.44772 14 2 13.5523 2 13V3C2 2.44772 2.44772 2 3 2ZM1 3C1 1.89543 1.89543 1 3 1H13C14.1046 1 15 1.89543 15 3V13C15 14.1046 14.1046 15 13 15H3C1.89543 15 1 14.1046 1 13V3ZM12 12H11C11 8.13401 7.86599 5 4 5V4C8.41828 4 12 7.58172 12 12ZM4 7C6.76142 7 9 9.23858 9 12H8C8 9.79086 6.20914 8 4 8V7ZM6 11C6 11.5523 5.55228 12 5 12C4.44772 12 4 11.5523 4 11C4 10.4477 4.44772 10 5 10C5.55228 10 6 10.4477 6 11Z" fill="#FF794C"/>
</svg>

After

Width:  |  Height:  |  Size: 641 B

View file

@ -0,0 +1,10 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_219_6721)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 2.5C14 3.88071 12.8807 5 11.5 5C10.1193 5 9 3.88071 9 2.5C9 1.11929 10.1193 0 11.5 0C12.8807 0 14 1.11929 14 2.5ZM13 2.5C13 3.32843 12.3284 4 11.5 4C10.6716 4 10 3.32843 10 2.5C10 1.67157 10.6716 1 11.5 1C12.3284 1 13 1.67157 13 2.5ZM7 6.5C7 7.88071 5.88071 9 4.5 9C3.11929 9 2 7.88071 2 6.5C2 5.11929 3.11929 4 4.5 4C5.88071 4 7 5.11929 7 6.5ZM6 6.5C6 7.32843 5.32843 8 4.5 8C3.67157 8 3 7.32843 3 6.5C3 5.67157 3.67157 5 4.5 5C5.32843 5 6 5.67157 6 6.5ZM9 14.5C9 13.3065 8.52589 12.1619 7.68198 11.318C6.83807 10.4741 5.69347 10 4.5 10C3.30653 10 2.16193 10.4741 1.31802 11.318C0.474106 12.1619 0 13.3065 0 14.5V16H9V14.5ZM8 14.5C8 13.5717 7.63125 12.6815 6.97487 12.0251C6.3185 11.3687 5.42826 11 4.5 11C3.57174 11 2.6815 11.3687 2.02513 12.0251C1.36875 12.6815 1 13.5717 1 14.5V15H8V14.5ZM14.6821 7.31802C15.526 8.16193 16.0001 9.30653 16.0001 10.5V12H9.39908C9.21822 11.6456 8.99853 11.31 8.74276 11H15.0001V10.5C15.0001 9.57174 14.6313 8.6815 13.975 8.02513C13.3186 7.36875 12.4284 7 11.5001 7C10.5718 7 9.6816 7.36875 9.02522 8.02513C8.42471 8.62564 8.06495 9.42189 8.00806 10.2639C7.71984 10.0252 7.40948 9.8178 7.08228 9.64382C7.25183 8.769 7.67888 7.95725 8.31812 7.31802C9.16203 6.47411 10.3066 6 11.5001 6C12.6936 6 13.8382 6.47411 14.6821 7.31802Z" fill="#59ADC4"/>
</g>
<defs>
<clipPath id="clip0_219_6721">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16 15V16H1V15H16ZM15 14H2V13H3V5H2V3L8.5 0L15 3V5H14V13H15V14ZM3 4H14V3.64L8.5 1.1L3 3.64V4ZM5 5H4V13H5V5ZM7 5H6V13H7V5ZM9 5H8V13H9V5ZM11 5H10V13H11V5ZM13 5H12V13H13V5Z" fill="#59ADC4"/>
</svg>

After

Width:  |  Height:  |  Size: 300 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16 15V16H1V15H16ZM15 14H2V13H3V5H2V3L8.5 0L15 3V5H14V13H15V14ZM3 4H14V3.64L8.5 1.1L3 3.64V4ZM5 5H4V13H5V5ZM7 5H6V13H7V5ZM9 5H8V13H9V5ZM11 5H10V13H11V5ZM13 5H12V13H13V5Z" fill="#4072E5"/>
</svg>

After

Width:  |  Height:  |  Size: 300 B

View file

@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.625 1H3V1.625V18.375V19H3.625H17.375H18V18.375V6.625V6.36612L17.8169 6.18306L12.8169 1.18306L12.6339 1H12.375H3.625ZM4.25 17.75V2.25H11.75V6.625V7.25H12.375H16.75V17.75H4.25ZM15.8661 6L13 3.13388V6H15.8661ZM6 7.25V6H10V7.25H6ZM6 10V11.25H15V10H6ZM6 14V15.25H15V14H6Z" fill="#39BF68"/>
</svg>

After

Width:  |  Height:  |  Size: 440 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.70711 0H2V16H15V5.29289L9.70711 0ZM3 15V1H9V6H14V15H3ZM13.2929 5L10 1.70711V5H13.2929ZM12 13.292L11.2923 14L8.50011 11.207L5.70796 14L5 13.2922L7.79311 10.5L5 7.70774L5.70798 7L8.50011 9.79299L11.2922 7L12 7.70796L9.20711 10.5L12 13.292Z" fill="#DB2C3A"/>
</svg>

After

Width:  |  Height:  |  Size: 411 B

View file

@ -0,0 +1,10 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1945_29337)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 3H15C15.552 3 16 3.448 16 4V6V12.8786L15 11.8786V6H1V14H12.8788L13.8788 15H1C0.448 15 0 14.552 0 14V6V4C0 3.448 0.448 3 1 3H2L2.724 1.553C2.893 1.214 3.239 1 3.618 1H7.382C7.761 1 8.107 1.214 8.276 1.553L9 3ZM1 4V5H15V4H9C8.621 4 8.275 3.786 8.106 3.447L7.382 2H3.618L2.894 3.447C2.725 3.786 2.379 4 2 4H1ZM16.0001 14.2929L15.293 15L12.7383 12.4454C12.2479 12.7946 11.6479 13 11 13C9.34315 13 8 11.6569 8 10C8 8.34315 9.34315 7 11 7C12.6569 7 14 8.34315 14 10C14 10.6479 13.7946 11.2479 13.4454 11.7383L16.0001 14.2929ZM13 10C13 11.1046 12.1046 12 11 12C9.89543 12 9 11.1046 9 10C9 8.89543 9.89543 8 11 8C12.1046 8 13 8.89543 13 10Z" fill="#59ADC4"/>
</g>
<defs>
<clipPath id="clip0_1945_29337">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 954 B

View file

@ -0,0 +1,6 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13 14.542C13 14.79 12.729 15 12.409 15H4.591C4.271 15 4 14.79 4 14.542V4H3V14.542C3 15.346 3.714 16 4.591 16H12.409C13.286 16 14 15.346 14 14.542V4H13V14.542Z" fill="#CC7A52"/>
<path d="M12 2V1C12 0.448 11.552 0 11 0H6C5.448 0 5 0.448 5 1V2H2V3H15V2H12ZM6 2V1H11V2H6Z" fill="#CC7A52"/>
<path d="M7 5H6V13H7V5Z" fill="#CC7A52"/>
<path d="M11 5H10V13H11V5Z" fill="#CC7A52"/>
</svg>

After

Width:  |  Height:  |  Size: 486 B

View file

@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13 14.542C13 14.79 12.729 15 12.409 15H4.591C4.271 15 4 14.79 4 14.542V4H3V14.542C3 15.346 3.714 16 4.591 16H12.409C13.286 16 14 15.346 14 14.542V4H13V14.542Z" fill="#CC7A52"/>
<path d="M12 2V1C12 0.448 11.552 0 11 0H6C5.448 0 5 0.448 5 1V2H2V3H15V2H12ZM6 2V1H11V2H6Z" fill="#CC7A52"/>
</svg>

After

Width:  |  Height:  |  Size: 399 B

View file

@ -0,0 +1,11 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_217_6489)">
<path d="M8 2H13C13.552 2 14 2.448 14 3V4.87868L13 3.87868V3H8C7.621 3 7.275 2.786 7.106 2.447L6.382 1H3.618L2.894 2.447C2.725 2.786 2.379 3 2 3H1V4H5V5H1V11H5V12H1C0.448 12 0 11.552 0 11V3C0 2.448 0.448 2 1 2H2L2.724 0.553C2.893 0.214 3.239 0 3.618 0H6.382C6.761 0 7.107 0.214 7.276 0.553L8 2Z" fill="#FF794C"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 4H11.7071L16 8.29289V16H6V4ZM7 5V15H15V9H11V5H7ZM12 5.70711V8H14.2929L12 5.70711Z" fill="#FF794C"/>
</g>
<defs>
<clipPath id="clip0_217_6489">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 712 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15 3H9L8.276 1.553C8.107 1.214 7.761 1 7.382 1H3.618C3.239 1 2.893 1.214 2.724 1.553L2 3H1C0.448 3 0 3.448 0 4V6V14C0 14.552 0.448 15 1 15H15C15.552 15 16 14.552 16 14V6V4C16 3.448 15.552 3 15 3ZM15 14H1V6H15V14ZM1 5V4H2C2.379 4 2.725 3.786 2.894 3.447L3.618 2H7.382L8.106 3.447C8.275 3.786 8.621 4 9 4H15V5H1Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 440 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 3V0H1V13H4V16H15V3H12ZM2 1H11V12H2V1ZM14 15H5V13H12V4H14V15Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 193 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 2H13C13.5523 2 14 2.44772 14 3V7.75777C13.285 7.27914 12.4251 7 11.5 7C11.106 7 10.7237 7.05065 10.3595 7.14579C8.89767 5.23354 6.59289 4 4 4V5C6.16518 5 8.10076 5.98303 9.38478 7.52712C8.78765 7.8457 8.27078 8.29496 7.87237 8.83673C6.95546 7.71561 5.5613 7 4 7V8C5.3928 8 6.61934 8.71186 7.33563 9.7916C7.1193 10.3184 7 10.8953 7 11.5C7 12.4251 7.27914 13.285 7.75777 14H3C2.44772 14 2 13.5523 2 13V3C2 2.44772 2.44772 2 3 2ZM8.67133 15H3C1.89543 15 1 14.1046 1 13V3C1 1.89543 1.89543 1 3 1H13C14.1046 1 15 1.89543 15 3V8.67133C15.6254 9.4442 16 10.4284 16 11.5C16 13.9853 13.9853 16 11.5 16C10.4284 16 9.4442 15.6254 8.67133 15ZM6 11C6 11.5523 5.55228 12 5 12C4.44772 12 4 11.5523 4 11C4 10.4477 4.44772 10 5 10C5.55228 10 6 10.4477 6 11ZM15 11.5C15 13.433 13.433 15 11.5 15C9.567 15 8 13.433 8 11.5C8 9.567 9.567 8 11.5 8C13.433 8 15 9.567 15 11.5ZM10.875 13.375C10.875 13.0298 11.1548 12.75 11.5 12.75C11.8452 12.75 12.125 13.0298 12.125 13.375C12.125 13.7202 11.8452 14 11.5 14C11.1548 14 10.875 13.7202 10.875 13.375ZM12 9H11V12H12V9Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,10 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1945_28596)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 2H13C13.552 2 14 2.448 14 3V5V7C15.1046 7 16 7.89543 16 9V14C16 15.1046 15.1046 16 14 16H9C7.89543 16 7 15.1046 7 14V12H1C0.448 12 0 11.552 0 11V5V3C0 2.448 0.448 2 1 2H2L2.724 0.553C2.893 0.214 3.239 0 3.618 0H6.382C6.761 0 7.107 0.214 7.276 0.553L8 2ZM13 5V7H9C7.89543 7 7 7.89543 7 9V11H1V5H13ZM8 14V12V11V9C8 8.44772 8.44771 8 9 8H13H14C14.5523 8 15 8.44771 15 9V14C15 14.5523 14.5523 15 14 15H9C8.44772 15 8 14.5523 8 14ZM1 3V4H13V3H8C7.621 3 7.275 2.786 7.106 2.447L6.382 1H3.618L2.894 2.447C2.725 2.786 2.379 3 2 3H1ZM9 12C10.1046 12 11 12.8954 11 14H12C12 12.3431 10.6569 11 9 11V12ZM13 14H14C14 11.2386 11.7614 9 9 9V10C11.2091 10 13 11.7909 13 14ZM9.5 14C9.77614 14 10 13.7761 10 13.5C10 13.2239 9.77614 13 9.5 13C9.22386 13 9 13.2239 9 13.5C9 13.7761 9.22386 14 9.5 14Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_1945_28596">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 2H13C13.5523 2 14 2.44772 14 3V7.75777C13.285 7.27914 12.4251 7 11.5 7C11.106 7 10.7237 7.05065 10.3595 7.14579C8.89767 5.23354 6.59289 4 4 4V5C6.16518 5 8.10076 5.98303 9.38478 7.52712C8.78765 7.8457 8.27078 8.29496 7.87237 8.83673C6.95546 7.71561 5.5613 7 4 7V8C5.3928 8 6.61934 8.71186 7.33563 9.7916C7.1193 10.3184 7 10.8953 7 11.5C7 12.4251 7.27914 13.285 7.75777 14H3C2.44772 14 2 13.5523 2 13V3C2 2.44772 2.44772 2 3 2ZM8.67133 15H3C1.89543 15 1 14.1046 1 13V3C1 1.89543 1.89543 1 3 1H13C14.1046 1 15 1.89543 15 3V8.67133C15.6254 9.4442 16 10.4284 16 11.5C16 13.9853 13.9853 16 11.5 16C10.4284 16 9.4442 15.6254 8.67133 15ZM6 11C6 11.5523 5.55228 12 5 12C4.44772 12 4 11.5523 4 11C4 10.4477 4.44772 10 5 10C5.55228 10 6 10.4477 6 11ZM15 11.5C15 13.433 13.433 15 11.5 15C9.567 15 8 13.433 8 11.5C8 9.567 9.567 8 11.5 8C13.433 8 15 9.567 15 11.5ZM9 11.7071L11.5 14.2071L14 11.7071L13.2929 11L12 12.2929V9H11V12.2929L9.70711 11L9 11.7071Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 2H13C13.5523 2 14 2.44772 14 3V13C14 13.5523 13.5523 14 13 14H3C2.44772 14 2 13.5523 2 13V3C2 2.44772 2.44772 2 3 2ZM1 3C1 1.89543 1.89543 1 3 1H13C14.1046 1 15 1.89543 15 3V13C15 14.1046 14.1046 15 13 15H3C1.89543 15 1 14.1046 1 13V3ZM12 12H11C11 8.13401 7.86599 5 4 5V4C8.41828 4 12 7.58172 12 12ZM4 7C6.76142 7 9 9.23858 9 12H8C8 9.79086 6.20914 8 4 8V7ZM6 11C6 11.5523 5.55228 12 5 12C4.44772 12 4 11.5523 4 11C4 10.4477 4.44772 10 5 10C5.55228 10 6 10.4477 6 11Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 639 B

View file

@ -0,0 +1,10 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_219_6721)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 2.5C14 3.88071 12.8807 5 11.5 5C10.1193 5 9 3.88071 9 2.5C9 1.11929 10.1193 0 11.5 0C12.8807 0 14 1.11929 14 2.5ZM13 2.5C13 3.32843 12.3284 4 11.5 4C10.6716 4 10 3.32843 10 2.5C10 1.67157 10.6716 1 11.5 1C12.3284 1 13 1.67157 13 2.5ZM7 6.5C7 7.88071 5.88071 9 4.5 9C3.11929 9 2 7.88071 2 6.5C2 5.11929 3.11929 4 4.5 4C5.88071 4 7 5.11929 7 6.5ZM6 6.5C6 7.32843 5.32843 8 4.5 8C3.67157 8 3 7.32843 3 6.5C3 5.67157 3.67157 5 4.5 5C5.32843 5 6 5.67157 6 6.5ZM9 14.5C9 13.3065 8.52589 12.1619 7.68198 11.318C6.83807 10.4741 5.69347 10 4.5 10C3.30653 10 2.16193 10.4741 1.31802 11.318C0.474106 12.1619 0 13.3065 0 14.5V16H9V14.5ZM8 14.5C8 13.5717 7.63125 12.6815 6.97487 12.0251C6.3185 11.3687 5.42826 11 4.5 11C3.57174 11 2.6815 11.3687 2.02513 12.0251C1.36875 12.6815 1 13.5717 1 14.5V15H8V14.5ZM14.6821 7.31802C15.526 8.16193 16.0001 9.30653 16.0001 10.5V12H9.39908C9.21822 11.6456 8.99853 11.31 8.74276 11H15.0001V10.5C15.0001 9.57174 14.6313 8.6815 13.975 8.02513C13.3186 7.36875 12.4284 7 11.5001 7C10.5718 7 9.6816 7.36875 9.02522 8.02513C8.42471 8.62564 8.06495 9.42189 8.00806 10.2639C7.71984 10.0252 7.40948 9.8178 7.08228 9.64382C7.25183 8.769 7.67888 7.95725 8.31812 7.31802C9.16203 6.47411 10.3066 6 11.5001 6C12.6936 6 13.8382 6.47411 14.6821 7.31802Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_219_6721">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16 15V16H1V15H16ZM15 14H2V13H3V5H2V3L8.5 0L15 3V5H14V13H15V14ZM3 4H14V3.64L8.5 1.1L3 3.64V4ZM5 5H4V13H5V5ZM7 5H6V13H7V5ZM9 5H8V13H9V5ZM11 5H10V13H11V5ZM13 5H12V13H13V5Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 298 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16 15V16H1V15H16ZM15 14H2V13H3V5H2V3L8.5 0L15 3V5H14V13H15V14ZM3 4H14V3.64L8.5 1.1L3 3.64V4ZM5 5H4V13H5V5ZM7 5H6V13H7V5ZM9 5H8V13H9V5ZM11 5H10V13H11V5ZM13 5H12V13H13V5Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 298 B

View file

@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.625 1H3V1.625V18.375V19H3.625H17.375H18V18.375V6.625V6.36612L17.8169 6.18306L12.8169 1.18306L12.6339 1H12.375H3.625ZM4.25 17.75V2.25H11.75V6.625V7.25H12.375H16.75V17.75H4.25ZM15.8661 6L13 3.13388V6H15.8661ZM6 7.25V6H10V7.25H6ZM6 10V11.25H15V10H6ZM6 14V15.25H15V14H6Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 438 B

View file

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.70711 0H2V16H15V5.29289L9.70711 0ZM3 15V1H9V6H14V15H3ZM13.2929 5L10 1.70711V5H13.2929ZM12 13.292L11.2923 14L8.50011 11.207L5.70796 14L5 13.2922L7.79311 10.5L5 7.70774L5.70798 7L8.50011 9.79299L11.2922 7L12 7.70796L9.20711 10.5L12 13.292Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 409 B

View file

@ -0,0 +1,10 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1945_29337)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 3H15C15.552 3 16 3.448 16 4V6V12.8786L15 11.8786V6H1V14H12.8788L13.8788 15H1C0.448 15 0 14.552 0 14V6V4C0 3.448 0.448 3 1 3H2L2.724 1.553C2.893 1.214 3.239 1 3.618 1H7.382C7.761 1 8.107 1.214 8.276 1.553L9 3ZM1 4V5H15V4H9C8.621 4 8.275 3.786 8.106 3.447L7.382 2H3.618L2.894 3.447C2.725 3.786 2.379 4 2 4H1ZM16.0001 14.2929L15.293 15L12.7383 12.4454C12.2479 12.7946 11.6479 13 11 13C9.34315 13 8 11.6569 8 10C8 8.34315 9.34315 7 11 7C12.6569 7 14 8.34315 14 10C14 10.6479 13.7946 11.2479 13.4454 11.7383L16.0001 14.2929ZM13 10C13 11.1046 12.1046 12 11 12C9.89543 12 9 11.1046 9 10C9 8.89543 9.89543 8 11 8C12.1046 8 13 8.89543 13 10Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_1945_29337">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 952 B

View file

@ -0,0 +1,6 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13 14.542C13 14.79 12.729 15 12.409 15H4.591C4.271 15 4 14.79 4 14.542V4H3V14.542C3 15.346 3.714 16 4.591 16H12.409C13.286 16 14 15.346 14 14.542V4H13V14.542Z" fill="white"/>
<path d="M12 2V1C12 0.448 11.552 0 11 0H6C5.448 0 5 0.448 5 1V2H2V3H15V2H12ZM6 2V1H11V2H6Z" fill="white"/>
<path d="M7 5H6V13H7V5Z" fill="white"/>
<path d="M11 5H10V13H11V5Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 478 B

View file

@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13 14.542C13 14.79 12.729 15 12.409 15H4.591C4.271 15 4 14.79 4 14.542V4H3V14.542C3 15.346 3.714 16 4.591 16H12.409C13.286 16 14 15.346 14 14.542V4H13V14.542Z" fill="white"/>
<path d="M12 2V1C12 0.448 11.552 0 11 0H6C5.448 0 5 0.448 5 1V2H2V3H15V2H12ZM6 2V1H11V2H6Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 395 B

View file

@ -0,0 +1,11 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_217_6489)">
<path d="M8 2H13C13.552 2 14 2.448 14 3V4.87868L13 3.87868V3H8C7.621 3 7.275 2.786 7.106 2.447L6.382 1H3.618L2.894 2.447C2.725 2.786 2.379 3 2 3H1V4H5V5H1V11H5V12H1C0.448 12 0 11.552 0 11V3C0 2.448 0.448 2 1 2H2L2.724 0.553C2.893 0.214 3.239 0 3.618 0H6.382C6.761 0 7.107 0.214 7.276 0.553L8 2Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 4H11.7071L16 8.29289V16H6V4ZM7 5V15H15V9H11V5H7ZM12 5.70711V8H14.2929L12 5.70711Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_217_6489">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 708 B

View file

@ -9,13 +9,14 @@
@import "abstracts/split-button";
@import "abstracts/svgicon";
:root {
color-scheme: light dark;
}
@import "themes/light";
@import "themes/dark";
// Base
// --------------------------------------------------
@import "base/base";
// Components
// --------------------------------------------------

View file

@ -31,3 +31,31 @@
}
}
}
// @NOTE: this mixin uses `state` mixin, therefore must be used in a selector nested
// underneath selectors listed in arguments, e.g., .virtualized-table .row
// by default. See `state` mixin for more details.
@mixin focus-states(
$selectedState: '.row.selected',
$focused: '.virtualized-table:focus-within'
) {
@media (prefers-color-scheme: light) {
@content("light");
@include state($selectedState) {
@include state($focused) {
@content("white");
}
}
}
@media (prefers-color-scheme: dark) {
@content("dark");
@include state($selectedState) {
@include state($focused) {
@content("white");
}
}
}
}

21
scss/base/_base.scss Normal file
View file

@ -0,0 +1,21 @@
:root {
color-scheme: light dark;
}
:root {
font-family: system-ui, -apple-system, sans-serif;
font-size: 12px;
font-style: normal;
}
#zotero-collections-pane {
background: var(--material-sidepane);
}
#zotero-items-pane {
min-width: 290px;
min-height: 150px;
height: 150px;
width: 290px;
background: var(--material-background);
}

View file

@ -1,3 +1,8 @@
$icons: (
collection, duplicates, feed, feed-error, feed-library, feed-updating, groups, library,
library-group, publications, trash-full, trash, unfiled, retracted, search,
);
#zotero-collections-tree-container {
height: 5.2em;
}
@ -9,6 +14,25 @@
overflow-y: auto;
flex: 1 0;
text-overflow: ellipsis;
.row {
.icon-css:not(.twisty) {
width: 16px;
height: 16px;
}
@each $icon in $icons {
.icon-css.#{$icon} {
@include focus-states using ($color) {
@include svgicon($icon, $color, "16", "collection-tree");
}
}
}
}
}
.virtualized-table-body {
padding: 0 8px;
}
.cell.primary {

View file

@ -1,12 +1,5 @@
@use "sass:map";
#zotero-items-pane {
min-width: 290px;
min-height: 150px;
height: 150px;
width: 290px;
}
#zotero-items-tree {
.virtualized-table-header .icon {
width: 13px;
@ -109,55 +102,28 @@
"attachment-file": "document"
);
.icon-item-type {
width: 16px;
height: 16px;
}
.row {
@mixin item-type-icon($icon) {
&:not(:-moz-window-inactive) {
@include state('.row.selected') {
@include svgicon($icon, "white", "16", "item-type", true);
}
}
@include state('.row:not(.selected)') {
@media (prefers-color-scheme: light) {
@include svgicon($icon, "light", "16", "item-type", true);
}
@media (prefers-color-scheme: dark) {
@include svgicon($icon, "dark", "16", "item-type", true);
}
}
@include state('.row.selected') {
&:-moz-window-inactive {
@media (prefers-color-scheme: light) {
@include svgicon($icon, "light", "16", "item-type", true);
}
@media (prefers-color-scheme: dark) {
@include svgicon($icon, "dark", "16", "item-type", true);
}
}
}
.virtualized-table .row {
.icon-item-type {
width: 16px;
height: 16px;
}
@each $itemTypeIcon in $itemTypesIcons {
$itemType: camelCase(str-replace(str-replace($itemTypeIcon, "pdf", "PDF"), "epub", "EPUB"));
@if map.has-key($itemTypesMap, $itemTypeIcon) {
$itemTypeIcon: map.get($itemTypesMap, $itemTypeIcon);
}
@include focus-states using ($color) {
.icon-item-type {
@include item-type-icon("document"); // default icon, for known item types more specific selectors below will apply
// default icon, for known item types more specific selectors below will apply
@include svgicon("document", $color, "16", "item-type", true);
}
.icon-item-type[data-item-type=#{$itemType}] {
@include item-type-icon($itemTypeIcon);
@each $itemTypeIcon in $itemTypesIcons {
$itemType: camelCase(str-replace(str-replace($itemTypeIcon, "pdf", "PDF"), "epub", "EPUB"));
@if map.has-key($itemTypesMap, $itemTypeIcon) {
$itemTypeIcon: map.get($itemTypesMap, $itemTypeIcon);
}
.icon-item-type[data-item-type=#{$itemType}] {
@include svgicon($itemTypeIcon, $color, "16", "item-type", true);
}
}
}
}

View file

@ -15,7 +15,6 @@
> div {
display: flex;
flex: 1;
background-color: -moz-field;
overflow: hidden;
position: relative;
}
@ -94,6 +93,7 @@
align-items: center;
width: 100%;
box-sizing: border-box;
border-radius: 5px;
&.drop {
color: var(--material-background) !important;
@ -123,6 +123,11 @@
&.selected:not(.highlighted) {
background-color: SelectedItem;
color: SelectedItemText;
@include state(".virtualized-table:not(:focus)") {
color: var(--fill-primary);
background-color: var(--fill-quarternary);
}
}
&.highlighted {
@ -136,6 +141,34 @@
&.context-row {
color: gray;
}
.spacer-twisty {
display: inline-block;
min-width: 16px;
}
.twisty {
margin-inline-end: 0 !important;
display: flex;
align-items: center;
transition: transform 0.125s ease;
transform: rotate(-90deg);
&.open {
transform: rotate(0deg) !important;
}
&.icon-css {
width: 16px;
height: 16px;
@include focus-states using ($color) {
@include svgicon("chevron-8", $color, "8");
background-size: 8px;
background-repeat: no-repeat;
}
}
}
}
.column-drag-marker {
@ -260,27 +293,6 @@
}
}
.spacer-twisty {
display: inline-block;
min-width: 13px;
}
.twisty {
margin-inline-end: 0 !important;
display: flex;
align-items: center;
svg {
fill: #444;
transition: transform 0.125s ease;
transform: rotate(-90deg);
}
&.open svg {
transform: rotate(0deg) !important;
}
}
*[dir=rtl] {
.virtualized-table-header {
.cell .sort-indicator {
@ -294,7 +306,7 @@
}
}
.twisty svg {
.row .twisty {
transform: rotate(90deg);
}
}

View file

@ -1,8 +0,0 @@
#zotero-collections-tree-container {
margin-bottom: -1px;
}
#zotero-collections-tree .virtualized-table .row {
height: 1.333em;
}

View file

@ -1,54 +0,0 @@
#zotero-collections-tree {
.virtualized-table {
background-color: #d2d8e2;
.row {
height: 1.818em;
&.selected:not(.highlighted) {
background: -moz-linear-gradient(top, #6494D4, #2559AC) repeat-x;
border-top: 1px solid #5382C5;
font-weight: bold !important;
color: #ffffff !important;
height: calc(1.818em - 1px);
padding-bottom: 1px;
}
}
&:not(:focus) .row.selected:not(.highlighted) {
background: -moz-linear-gradient(top, #A0B0CF, #7386AB) repeat-x;
border-top: 1px solid #94A1C0;
}
&:-moz-window-inactive {
background-color: rgb(232, 232, 232);
.row.selected:not(.highlighted) {
background: -moz-linear-gradient(top, #B4B4B4, #8A8A8A) repeat-x;
border-top: 1px solid #979797;
}
}
}
}
// IDK why, but these heights are all over the place on macOS (not a f(x)=x)
*[zoteroFontSize=medium] #zotero-collections-tree .virtualized-table .row {
height: 1.739em;
&.focused:not(.highlighted) {
height: calc(1.738em - 1px);
}
}
*[zoteroFontSize=large] #zotero-collections-tree .virtualized-table .row {
height: 1.68em;
&.focused:not(.highlighted) {
height: calc(1.68em - 1px);
}
}
*[zoteroFontSize=x-large] #zotero-collections-tree .virtualized-table .row {
height: 1.697em;
&.focused:not(.highlighted) {
height: calc(1.697em - 1px);
}
}

View file

@ -1,12 +0,0 @@
#zotero-items-tree {
// Selected rows when the tree is not the focused element
.virtualized-table:not(:focus) {
.row.selected {
background: #dcdcdc;
color: initial;
.twisty svg {
fill: #888;
}
}
}
}

View file

@ -12,8 +12,6 @@
@import "mac/tabBar";
@import "mac/tag-selector";
@import "mac/virtualized-table";
@import "mac/collection-tree";
@import "mac/item-tree";
// Elements

View file

@ -5,7 +5,6 @@
// --------------------------------------------------
@import "linux/about";
@import "linux/collection-tree";
@import "linux/createParent";
@import "linux/editable";
@import "linux/errorReport";