Compare commits

..

No commits in common. "847e516fcfd22b130bf816ea5ab1589e8fa50cf9" and "f09a1db84ae4c0ba419eb789f65cc55d4a94721e" have entirely different histories.

146 changed files with 639 additions and 1331 deletions

View file

@ -2,6 +2,12 @@
SHIFT is an independent shell fork focused on convergence. It builds on KDE Plasma Mobile, keeps the upstream phone UI available, and layers desktop-oriented behaviour on top of the same session. SHIFT is an independent shell fork focused on convergence. It builds on KDE Plasma Mobile, keeps the upstream phone UI available, and layers desktop-oriented behaviour on top of the same session.
### Desktop demos
![Desktop overview](screenshots/quick_DesktopDemo.webm)
![Docked mode](screenshots/quick_DesktopDemo_docked.webm)
![Tiling](screenshots/quick_DesktopDemo_tiling.webm)
SHIFT tracks [plasma-mobile](https://invent.kde.org/plasma/plasma-mobile) as its upstream base. SHIFT tracks [plasma-mobile](https://invent.kde.org/plasma/plasma-mobile) as its upstream base.
The upstream phone UI remains intact; convergence-specific behaviour is added on top. The upstream phone UI remains intact; convergence-specific behaviour is added on top.

View file

@ -18,6 +18,9 @@ GameModeControl::GameModeControl(QObject *parent)
, m_iface(new QDBusInterface(s_service, s_path, s_iface, QDBusConnection::sessionBus(), this)) , m_iface(new QDBusInterface(s_service, s_path, s_iface, QDBusConnection::sessionBus(), this))
{ {
m_available = m_iface->isValid(); m_available = m_iface->isValid();
if (!m_available) {
qDebug() << "GameModeControl: Feral GameMode not available";
}
} }
bool GameModeControl::available() const bool GameModeControl::available() const

View file

@ -25,6 +25,8 @@ PowerProfileControl::PowerProfileControl(QObject *parent)
// Subscribe to property changes // Subscribe to property changes
QDBusConnection::systemBus() QDBusConnection::systemBus()
.connect(s_service, s_path, s_propIface, QStringLiteral("PropertiesChanged"), this, SLOT(onPropertiesChanged(QString, QVariantMap, QStringList))); .connect(s_service, s_path, s_propIface, QStringLiteral("PropertiesChanged"), this, SLOT(onPropertiesChanged(QString, QVariantMap, QStringList)));
} else {
qDebug() << "PowerProfileControl: power-profiles-daemon not available";
} }
} }

View file

@ -71,8 +71,6 @@ Item {
MobileShell.NotificationsWidget { MobileShell.NotificationsWidget {
id: notificationWidget id: notificationWidget
readonly property bool isConvergence: ShellSettings.Settings.convergenceModeEnabled readonly property bool isConvergence: ShellSettings.Settings.convergenceModeEnabled
Kirigami.Theme.inherit: false
Kirigami.Theme.colorSet: Kirigami.Theme.Window
anchors.fill: parent anchors.fill: parent
anchors.topMargin: root.topMargin + (isConvergence ? Kirigami.Units.gridUnit : 0) anchors.topMargin: root.topMargin + (isConvergence ? Kirigami.Units.gridUnit : 0)
anchors.rightMargin: actionDrawer.mode == MobileShell.ActionDrawer.Portrait ? 0 : (isConvergence ? Kirigami.Units.gridUnit : Math.max(root.width - Kirigami.Units.gridUnit * 25, 0)) anchors.rightMargin: actionDrawer.mode == MobileShell.ActionDrawer.Portrait ? 0 : (isConvergence ? Kirigami.Units.gridUnit : Math.max(root.width - Kirigami.Units.gridUnit * 25, 0))

View file

@ -29,12 +29,12 @@ Item {
required property QS.QuickSettingsModel quickSettingsModel required property QS.QuickSettingsModel quickSettingsModel
readonly property int columns: Math.max(1, Math.round(Math.min(6, Math.max(ShellSettings.Settings.quickSettingsColumns, width / intendedColumnWidth)))) readonly property real columns: Math.round(Math.min(6, Math.max(ShellSettings.Settings.quickSettingsColumns, width / intendedColumnWidth)))
readonly property real columnWidth: Math.max(1, Math.floor(width / columns)) readonly property real columnWidth: Math.floor(width / columns)
readonly property int minimizedColumns: Math.max(1, Math.round(Math.min(8, Math.max(5, width / intendedMinimizedColumnWidth)))) readonly property int minimizedColumns: Math.round(Math.min(8, Math.max(5, width / intendedMinimizedColumnWidth)))
readonly property real minimizedColumnWidth: Math.max(1, Math.floor(width / minimizedColumns)) readonly property real minimizedColumnWidth: Math.floor(width / minimizedColumns)
readonly property real rowHeight: Math.max(1, columnWidth * 0.7) readonly property real rowHeight: columnWidth * 0.7
readonly property real fullHeight: fullView.implicitHeight readonly property real fullHeight: fullView.implicitHeight
readonly property real intendedColumnWidth: Kirigami.Units.gridUnit * 7 readonly property real intendedColumnWidth: Kirigami.Units.gridUnit * 7
@ -43,17 +43,16 @@ Item {
property real fullViewProgress: 1 property real fullViewProgress: 1
readonly property int columnCount: Math.max(1, Math.floor(width / columnWidth)) readonly property int columnCount: Math.floor(width/columnWidth)
readonly property int rowCount: { readonly property int rowCount: {
let totalRows = Math.ceil(quickSettingsCount / columnCount); let totalRows = Math.ceil(quickSettingsCount / columnCount);
let maxRows = root.isConvergence ? 3 : 5; // more than 5 is just disorienting let maxRows = root.isConvergence ? 3 : 5; // more than 5 is just disorienting
let targetRows = Math.max(1, Math.floor(Window.height * (root.isConvergence ? 0.42 : 0.65) / rowHeight)); let targetRows = Math.floor(Window.height * (root.isConvergence ? 0.42 : 0.65) / rowHeight);
return Math.max(1, Math.min(maxRows, Math.min(totalRows, targetRows))); return Math.max(1, Math.min(maxRows, Math.min(totalRows, targetRows)));
} }
readonly property int pageSize: Math.max(1, rowCount * columnCount) readonly property int pageSize: rowCount * columnCount
readonly property int quickSettingsCount: Math.max(0, quickSettingsModel.count) readonly property int quickSettingsCount: quickSettingsModel.count
readonly property int pageCount: Math.max(1, Math.ceil(quickSettingsCount / pageSize))
// Management tiles promoted to full-width status rows in convergence. // Management tiles promoted to full-width status rows in convergence.
readonly property var __managementCommands: ({ readonly property var __managementCommands: ({
@ -280,7 +279,7 @@ Item {
Layout.maximumHeight: visible ? rowCount * rowHeight : 0 Layout.maximumHeight: visible ? rowCount * rowHeight : 0
Repeater { Repeater {
model: root.isConvergence ? 0 : root.pageCount model: Math.ceil(quickSettingsCount / pageSize)
delegate: Flow { delegate: Flow {
id: flow id: flow
spacing: 0 spacing: 0

View file

@ -26,6 +26,7 @@ MobileShell.BaseItem {
required property string text required property string text
required property string status required property string status
required property string icon required property string icon
required property bool enabled
required property string settingsCommand required property string settingsCommand
required property var toggleFunction required property var toggleFunction

View file

@ -18,6 +18,7 @@ Item {
required property string text required property string text
required property string status required property string status
required property string icon required property string icon
required property bool enabled
required property var toggleFunction required property var toggleFunction
property bool compact: false property bool compact: false

View file

@ -32,19 +32,12 @@ Controls.AbstractButton {
property string type // sink, source, source-output property string type // sink, source, source-output
property bool onlyOne: false property bool onlyOne: false
property bool useVolumeObject: true
// Whether this item is selected // Whether this item is selected
readonly property bool supportsSelection: (baseItem.type == "sink" || baseItem.type == "source") readonly property bool supportsSelection: (baseItem.type == "sink" || baseItem.type == "source")
readonly property bool hasPulseObject: model.PulseObject !== null && model.PulseObject !== undefined readonly property bool selected: supportsSelection && (model.PulseObject.hasOwnProperty("default") ? model.PulseObject.default : false)
readonly property bool hasVolumeObject: useVolumeObject && hasPulseObject
readonly property bool selected: supportsSelection && hasPulseObject && (model.PulseObject.hasOwnProperty("default") ? model.PulseObject.default : false)
onClicked: { onClicked: {
if (!hasPulseObject || !model.PulseObject.hasOwnProperty("default")) {
return;
}
// Set as the default audio device // Set as the default audio device
model.PulseObject.default = true model.PulseObject.default = true
} }
@ -182,7 +175,7 @@ Controls.AbstractButton {
visible: model.HasVolume !== false // Devices always have volume but Streams don't necessarily visible: model.HasVolume !== false // Devices always have volume but Streams don't necessarily
enabled: model.VolumeWritable enabled: model.VolumeWritable
muted: model.Muted muted: model.Muted
volumeObject: baseItem.hasVolumeObject ? model.PulseObject : null volumeObject: model.PulseObject
activeFocusOnTab: false // access from delegate activeFocusOnTab: false // access from delegate
value: to, model.Volume value: to, model.Volume
@ -222,7 +215,7 @@ Controls.AbstractButton {
} }
PlasmaComponents.Label { PlasmaComponents.Label {
id: percentText id: percentText
readonly property real value: baseItem.hasVolumeObject && model.PulseObject.volume > slider.to ? model.PulseObject.volume : slider.value readonly property real value: model.PulseObject.volume > slider.to ? model.PulseObject.volume : slider.value
readonly property real displayValue: Math.round(value / PulseAudio.NormalVolume * 100.0) readonly property real displayValue: Math.round(value / PulseAudio.NormalVolume * 100.0)
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
Layout.minimumWidth: percentMetrics.advanceWidth Layout.minimumWidth: percentMetrics.advanceWidth

View file

@ -15,7 +15,6 @@ ListItemBase {
property QtObject devicesModel property QtObject devicesModel
readonly property bool isEventStream: Name == "sink-input-by-media-role:event" readonly property bool isEventStream: Name == "sink-input-by-media-role:event"
useVolumeObject: !isEventStream
label: { label: {
if (isEventStream) { if (isEventStream) {

View file

@ -157,13 +157,11 @@ Window {
anchors.leftMargin: Kirigami.Units.smallSpacing * 2 anchors.leftMargin: Kirigami.Units.smallSpacing * 2
anchors.rightMargin: Kirigami.Units.smallSpacing anchors.rightMargin: Kirigami.Units.smallSpacing
readonly property bool hasSink: PreferredDevice.sink !== null property int volumePercent: PreferredDevice.sink.volume / PulseAudio.NormalVolume * 100.0
property int volumePercent: hasSink ? PreferredDevice.sink.volume / PulseAudio.NormalVolume * 100.0 : 0
PlasmaComponents.ToolButton { PlasmaComponents.ToolButton {
enabled: containerLayout.hasSink icon.name: !PreferredDevice.sink || (PreferredDevice.sink.muted ? "audio-volume-muted" : MobileShell.AudioInfo.icon)
icon.name: containerLayout.hasSink ? (PreferredDevice.sink.muted ? "audio-volume-muted" : MobileShell.AudioInfo.icon) : "audio-volume-muted" text: !PreferredDevice.sink || (PreferredDevice.sink.muted ? i18n("Unmute") : i18n("Mute"))
text: containerLayout.hasSink && PreferredDevice.sink.muted ? i18n("Unmute") : i18n("Mute")
display: Controls.AbstractButton.IconOnly display: Controls.AbstractButton.IconOnly
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
Layout.preferredWidth: Kirigami.Units.iconSizes.medium Layout.preferredWidth: Kirigami.Units.iconSizes.medium
@ -171,9 +169,6 @@ Window {
Layout.rightMargin: Kirigami.Units.smallSpacing Layout.rightMargin: Kirigami.Units.smallSpacing
onClicked: { onClicked: {
if (!containerLayout.hasSink) {
return;
}
hideTimer.restart(); hideTimer.restart();
PreferredDevice.sink.muted = !PreferredDevice.sink.muted; PreferredDevice.sink.muted = !PreferredDevice.sink.muted;
} }
@ -190,15 +185,11 @@ Window {
to: PulseAudio.NormalVolume to: PulseAudio.NormalVolume
stepSize: to / (to / PulseAudio.NormalVolume * 100.0) stepSize: to / (to / PulseAudio.NormalVolume * 100.0)
enabled: containerLayout.hasSink volumeObject: PreferredDevice.sink
volumeObject: containerLayout.hasSink ? PreferredDevice.sink : null muted: PreferredDevice.sink.muted
muted: containerLayout.hasSink ? PreferredDevice.sink.muted : false value: PreferredDevice.sink.volume
value: containerLayout.hasSink ? PreferredDevice.sink.volume : PulseAudio.MinimalVolume
onMoved: { onMoved: {
if (!containerLayout.hasSink) {
return;
}
PreferredDevice.sink.volume = value; PreferredDevice.sink.volume = value;
PreferredDevice.sink.muted = value === 0; PreferredDevice.sink.muted = value === 0;
} }
@ -211,7 +202,7 @@ Window {
// Otherwise it might be that the slider is at v10 // Otherwise it might be that the slider is at v10
// whereas PA rejected the volume change and is // whereas PA rejected the volume change and is
// still at v15 (e.g.). // still at v15 (e.g.).
value = Qt.binding(() => containerLayout.hasSink ? PreferredDevice.sink.volume : PulseAudio.MinimalVolume); value = Qt.binding(() => PreferredDevice.sink.volume);
hideTimer.restart(); hideTimer.restart();
} }
} }

View file

@ -201,7 +201,7 @@ Window {
} }
PlasmaComponents.Label { PlasmaComponents.Label {
text: i18n("Open audio settings") text: i18n("Open audio settings")
Layout.alignment: Qt.AlignVCenter anchors.verticalCenter: parent.verticalCenter
} }
} }
} }

View file

@ -119,7 +119,7 @@ QHash<int, QByteArray> PaginateModel::roleNames() const
int PaginateModel::rowsByPageSize(int size) const int PaginateModel::rowsByPageSize(int size) const
{ {
return d->m_hasStaticRowCount ? qMax(size, 0) : !d->m_sourceModel ? 0 : qMax(qMin(d->m_sourceModel->rowCount() - d->m_firstItem, size), 0); return d->m_hasStaticRowCount ? size : !d->m_sourceModel ? 0 : qMin(d->m_sourceModel->rowCount() - d->m_firstItem, size);
} }
int PaginateModel::rowCount(const QModelIndex &parent) const int PaginateModel::rowCount(const QModelIndex &parent) const

View file

@ -90,6 +90,7 @@ void RaiseLockscreen::setOverlay()
// Add event filter to listen for when wayland window appears, and try again // Add event filter to listen for when wayland window appears, and try again
m_window->installEventFilter(this); m_window->installEventFilter(this);
setInitialized(false); setInitialized(false);
qCWarning(LOGGING_CATEGORY) << "Unable to set overlay: unable to get wayland window";
return; return;
} }
@ -98,11 +99,13 @@ void RaiseLockscreen::setOverlay()
connect(waylandWindow, &QNativeInterface::Private::QWaylandWindow::surfaceRoleCreated, this, [this, waylandWindow]() { connect(waylandWindow, &QNativeInterface::Private::QWaylandWindow::surfaceRoleCreated, this, [this, waylandWindow]() {
m_implementation->allow(waylandWindow->surface()); m_implementation->allow(waylandWindow->surface());
setInitialized(true); setInitialized(true);
qCDebug(LOGGING_CATEGORY) << "Initialized overlay successfully";
}); });
if (waylandWindow->surface()) { if (waylandWindow->surface()) {
m_implementation->allow(waylandWindow->surface()); m_implementation->allow(waylandWindow->surface());
setInitialized(true); setInitialized(true);
qCDebug(LOGGING_CATEGORY) << "Initialized overlay successfully";
} }
} }

View file

@ -6,16 +6,11 @@
#include <QDBusPendingCallWatcher> #include <QDBusPendingCallWatcher>
#include <QDBusPendingReply> #include <QDBusPendingReply>
namespace
{
const QString SOLID_POWER_MANAGEMENT_SERVICE = QStringLiteral("org.kde.Solid.PowerManagement");
}
ScreenBrightnessUtil::ScreenBrightnessUtil(QObject *parent) ScreenBrightnessUtil::ScreenBrightnessUtil(QObject *parent)
: QObject{parent} : QObject{parent}
{ {
m_brightnessInterface = m_brightnessInterface =
new org::kde::Solid::PowerManagement::Actions::BrightnessControl(SOLID_POWER_MANAGEMENT_SERVICE, new org::kde::Solid::PowerManagement::Actions::BrightnessControl(QStringLiteral("org.kde.Solid.PowerManagement"),
QStringLiteral("/org/kde/Solid/PowerManagement/Actions/BrightnessControl"), QStringLiteral("/org/kde/Solid/PowerManagement/Actions/BrightnessControl"),
QDBusConnection::sessionBus(), QDBusConnection::sessionBus(),
this); this);
@ -29,14 +24,14 @@ ScreenBrightnessUtil::ScreenBrightnessUtil(QObject *parent)
this, this,
&ScreenBrightnessUtil::fetchMaxBrightness); &ScreenBrightnessUtil::fetchMaxBrightness);
if (brightnessAvailable()) {
fetchBrightness(); fetchBrightness();
fetchMaxBrightness(); fetchMaxBrightness();
}
// watch for brightness interface // watch for brightness interface
m_brightnessInterfaceWatcher = m_brightnessInterfaceWatcher = new QDBusServiceWatcher(QStringLiteral("org.kde.Solid.PowerManagement.Actions.BrightnessControl"),
new QDBusServiceWatcher(SOLID_POWER_MANAGEMENT_SERVICE, QDBusConnection::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this); QDBusConnection::sessionBus(),
QDBusServiceWatcher::WatchForOwnerChange,
this);
connect(m_brightnessInterfaceWatcher, &QDBusServiceWatcher::serviceRegistered, this, [this]() -> void { connect(m_brightnessInterfaceWatcher, &QDBusServiceWatcher::serviceRegistered, this, [this]() -> void {
fetchBrightness(); fetchBrightness();
@ -56,10 +51,6 @@ int ScreenBrightnessUtil::brightness() const
void ScreenBrightnessUtil::setBrightness(int brightness) void ScreenBrightnessUtil::setBrightness(int brightness)
{ {
if (!brightnessAvailable()) {
return;
}
m_brightnessInterface->setBrightness(brightness); m_brightnessInterface->setBrightness(brightness);
} }
@ -75,10 +66,6 @@ bool ScreenBrightnessUtil::brightnessAvailable() const
void ScreenBrightnessUtil::fetchBrightness() void ScreenBrightnessUtil::fetchBrightness()
{ {
if (!brightnessAvailable()) {
return;
}
QDBusPendingReply<int> reply = m_brightnessInterface->brightness(); QDBusPendingReply<int> reply = m_brightnessInterface->brightness();
QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this); QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
@ -96,10 +83,6 @@ void ScreenBrightnessUtil::fetchBrightness()
void ScreenBrightnessUtil::fetchMaxBrightness() void ScreenBrightnessUtil::fetchMaxBrightness()
{ {
if (!brightnessAvailable()) {
return;
}
QDBusPendingReply<int> reply = m_brightnessInterface->brightnessMax(); QDBusPendingReply<int> reply = m_brightnessInterface->brightnessMax();
QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this); QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);

View file

@ -12,7 +12,6 @@ target_link_libraries(shellsettingsplugin PRIVATE
Qt::DBus Qt::DBus
Qt::Gui Qt::Gui
Qt::Quick Qt::Quick
KF6::ConfigCore
Plasma::KWaylandClient Plasma::KWaylandClient
KF6::Service KF6::Service
KF6::Package KF6::Package

View file

@ -15,163 +15,16 @@
#include <QDBusMessage> #include <QDBusMessage>
#include <QDBusPendingCall> #include <QDBusPendingCall>
#include <QDebug> #include <QDebug>
#include <QDir>
#include <QFile>
#include <QProcess>
#include <QStandardPaths>
#include <QtMath>
const QString CONFIG_FILE = QStringLiteral("plasmamobilerc"); const QString CONFIG_FILE = QStringLiteral("plasmamobilerc");
const QString GENERAL_CONFIG_GROUP = QStringLiteral("General"); const QString GENERAL_CONFIG_GROUP = QStringLiteral("General");
const QString KDE_GLOBALS_CONFIG_GROUP = QStringLiteral("General");
const QString LOCKSCREEN_CONFIG_GROUP = QStringLiteral("Lockscreen"); const QString LOCKSCREEN_CONFIG_GROUP = QStringLiteral("Lockscreen");
const QString QUICKSETTINGS_CONFIG_GROUP = QStringLiteral("QuickSettings"); const QString QUICKSETTINGS_CONFIG_GROUP = QStringLiteral("QuickSettings");
const QString WALLPAPER_THEME_MANUAL_DARK_KEY = QStringLiteral("wallpaperThemeManualDarkTheme");
const QString SHIFT_DARK_COLOR_SCHEME = QStringLiteral("ShiftDark");
const QString SHIFT_LIGHT_COLOR_SCHEME = QStringLiteral("ShiftLight");
const QString SHIFT_WALLPAPER_DARK_COLOR_SCHEME = QStringLiteral("ShiftWallpaperDark");
const QString SHIFT_WALLPAPER_LIGHT_COLOR_SCHEME = QStringLiteral("ShiftWallpaperLight");
const QString SHIFT_DARK_PLASMA_THEME = QStringLiteral("shift-dark");
const QString SHIFT_LIGHT_PLASMA_THEME = QStringLiteral("shift-light");
constexpr qreal MIN_NORMAL_CONTRAST = 4.5;
constexpr qreal MIN_INACTIVE_CONTRAST = 3.0;
constexpr qreal MIN_LINK_CONTRAST = 3.5;
namespace
{
QString baseColorSchemeName(bool dark)
{
return dark ? SHIFT_DARK_COLOR_SCHEME : SHIFT_LIGHT_COLOR_SCHEME;
}
QString wallpaperColorSchemeName(bool dark)
{
return dark ? SHIFT_WALLPAPER_DARK_COLOR_SCHEME : SHIFT_WALLPAPER_LIGHT_COLOR_SCHEME;
}
QString wallpaperColorSchemeDisplayName(bool dark)
{
return dark ? QStringLiteral("SHIFT Wallpaper Dark") : QStringLiteral("SHIFT Wallpaper Light");
}
QString rgbString(const QColor &color)
{
return QStringLiteral("%1,%2,%3").arg(color.red()).arg(color.green()).arg(color.blue());
}
qreal relativeLuminance(const QColor &color)
{
return 0.2126 * color.redF() + 0.7152 * color.greenF() + 0.0722 * color.blueF();
}
qreal linearizedChannel(qreal channel)
{
return channel <= 0.04045 ? channel / 12.92 : qPow((channel + 0.055) / 1.055, 2.4);
}
qreal wcagLuminance(const QColor &color)
{
return 0.2126 * linearizedChannel(color.redF()) + 0.7152 * linearizedChannel(color.greenF()) + 0.0722 * linearizedChannel(color.blueF());
}
qreal contrastRatio(const QColor &left, const QColor &right)
{
const qreal leftLum = wcagLuminance(left);
const qreal rightLum = wcagLuminance(right);
const qreal lighter = qMax(leftLum, rightLum);
const qreal darker = qMin(leftLum, rightLum);
return (lighter + 0.05) / (darker + 0.05);
}
QColor contrastingTextColor(const QColor &color);
QColor blendColors(const QColor &base, const QColor &overlay, qreal overlayAmount);
QColor ensureContrast(const QColor &foreground, const QColor &background, qreal minimumContrast)
{
if (contrastRatio(foreground, background) >= minimumContrast) {
return foreground;
}
const QColor highContrastTarget = contrastingTextColor(background);
for (int i = 1; i <= 12; ++i) {
const qreal amount = i / 12.0;
const QColor candidate = blendColors(foreground, highContrastTarget, amount);
if (contrastRatio(candidate, background) >= minimumContrast) {
return candidate;
}
}
return highContrastTarget;
}
QColor contrastingTextColor(const QColor &color)
{
const QColor white{Qt::white};
const QColor black{Qt::black};
return contrastRatio(color, white) >= contrastRatio(color, black) ? white : black;
}
QColor blendColors(const QColor &base, const QColor &overlay, qreal overlayAmount)
{
const qreal clampedAmount = qBound(0.0, overlayAmount, 1.0);
const qreal baseAmount = 1.0 - clampedAmount;
return QColor::fromRgbF(base.redF() * baseAmount + overlay.redF() * clampedAmount,
base.greenF() * baseAmount + overlay.greenF() * clampedAmount,
base.blueF() * baseAmount + overlay.blueF() * clampedAmount,
1.0);
}
void writeAccentEntries(const KSharedConfig::Ptr &config, const QString &groupName, const QColor &accentColor)
{
auto group = KConfigGroup{config, groupName};
group.writeEntry("DecorationFocus", rgbString(accentColor));
group.writeEntry("DecorationHover", rgbString(accentColor));
group.writeEntry("ForegroundActive", rgbString(accentColor));
}
void tintBackgroundEntries(const KSharedConfig::Ptr &config, const QString &groupName, const QColor &accentColor, bool dark)
{
auto group = KConfigGroup{config, groupName};
const QColor defaultBase = dark ? QColor(38, 41, 47) : QColor(244, 246, 251);
const QColor baseNormal = group.readEntry("BackgroundNormal", defaultBase);
const QColor baseAlternate = group.readEntry("BackgroundAlternate", baseNormal);
const qreal normalBlend = dark ? 0.22 : 0.12;
const qreal alternateBlend = dark ? 0.16 : 0.08;
group.writeEntry("BackgroundNormal", rgbString(blendColors(baseNormal, accentColor, normalBlend)));
group.writeEntry("BackgroundAlternate", rgbString(blendColors(baseAlternate, accentColor, alternateBlend)));
}
void tuneForegroundEntries(const KSharedConfig::Ptr &config, const QString &groupName, const QColor &accentColor, bool dark)
{
auto group = KConfigGroup{config, groupName};
const QColor bgNormal = group.readEntry("BackgroundNormal", dark ? QColor(34, 37, 50) : QColor(252, 252, 252));
const QColor baseNormal = contrastingTextColor(bgNormal);
const QColor baseInactive = blendColors(baseNormal, bgNormal, dark ? 0.44 : 0.56);
const QColor baseLink = dark ? blendColors(accentColor, QColor(Qt::white), 0.28) : blendColors(accentColor, QColor(Qt::black), 0.24);
const QColor fgNormal = ensureContrast(baseNormal, bgNormal, MIN_NORMAL_CONTRAST);
const QColor fgInactive = ensureContrast(baseInactive, bgNormal, MIN_INACTIVE_CONTRAST);
const QColor fgLink = ensureContrast(baseLink, bgNormal, MIN_LINK_CONTRAST);
const QColor fgActive = ensureContrast(accentColor, bgNormal, MIN_LINK_CONTRAST);
group.writeEntry("ForegroundNormal", rgbString(fgNormal));
group.writeEntry("ForegroundInactive", rgbString(fgInactive));
group.writeEntry("ForegroundActive", rgbString(fgActive));
group.writeEntry("ForegroundLink", rgbString(fgLink));
}
}
MobileShellSettings::MobileShellSettings(QObject *parent) MobileShellSettings::MobileShellSettings(QObject *parent)
: QObject{parent} : QObject{parent}
, m_config{KSharedConfig::openConfig(CONFIG_FILE)} , m_config{KSharedConfig::openConfig(CONFIG_FILE)}
, m_kdeGlobalsConfig{KSharedConfig::openConfig()}
{ {
m_wallpaperThemeTimer.setSingleShot(true);
m_wallpaperThemeTimer.setInterval(450);
connect(&m_wallpaperThemeTimer, &QTimer::timeout, this, [this]() -> void {
setDarkThemeEnabled(m_pendingWallpaperThemeDark);
});
m_configWatcher = KConfigWatcher::create(m_config); m_configWatcher = KConfigWatcher::create(m_config);
connect(m_configWatcher.data(), &KConfigWatcher::configChanged, this, [this](const KConfigGroup &group, const QByteArrayList &names) -> void { connect(m_configWatcher.data(), &KConfigWatcher::configChanged, this, [this](const KConfigGroup &group, const QByteArrayList &names) -> void {
Q_UNUSED(names) Q_UNUSED(names)
@ -200,7 +53,6 @@ MobileShellSettings::MobileShellSettings(QObject *parent)
Q_EMIT dynamicTilingLayoutStateChanged(); Q_EMIT dynamicTilingLayoutStateChanged();
Q_EMIT snapLayoutsEnabledChanged(); Q_EMIT snapLayoutsEnabledChanged();
Q_EMIT allowLogoutChanged(); Q_EMIT allowLogoutChanged();
Q_EMIT wallpaperThemeEnabledChanged();
} }
if (group.name() == LOCKSCREEN_CONFIG_GROUP) { if (group.name() == LOCKSCREEN_CONFIG_GROUP) {
Q_EMIT lockscreenLeftButtonActionChanged(); Q_EMIT lockscreenLeftButtonActionChanged();
@ -210,24 +62,6 @@ MobileShellSettings::MobileShellSettings(QObject *parent)
Q_EMIT quickSettingsColumnsChanged(); Q_EMIT quickSettingsColumnsChanged();
} }
}); });
m_kdeGlobalsConfigWatcher = KConfigWatcher::create(m_kdeGlobalsConfig);
connect(m_kdeGlobalsConfigWatcher.data(), &KConfigWatcher::configChanged, this, [this](const KConfigGroup &group, const QByteArrayList &names) -> void {
if (group.name() != KDE_GLOBALS_CONFIG_GROUP) {
return;
}
if (names.contains(QByteArrayLiteral("ColorScheme"))) {
Q_EMIT colorSchemeChanged();
Q_EMIT darkThemeEnabledChanged();
}
if (names.contains(QByteArrayLiteral("AccentColor")) || names.contains(QByteArrayLiteral("LastUsedCustomAccentColor"))) {
Q_EMIT accentColorChanged();
}
if (names.contains(QByteArrayLiteral("accentColorFromWallpaper"))) {
Q_EMIT wallpaperAccentEnabledChanged();
}
});
} }
bool MobileShellSettings::vibrationsEnabled() const bool MobileShellSettings::vibrationsEnabled() const
@ -409,312 +243,6 @@ void MobileShellSettings::setConvergenceModeEnabled(bool enabled)
job->start(); job->start();
} }
QString MobileShellSettings::colorScheme() const
{
auto group = KConfigGroup{m_kdeGlobalsConfig, KDE_GLOBALS_CONFIG_GROUP};
return group.readEntry("ColorScheme", SHIFT_DARK_COLOR_SCHEME);
}
bool MobileShellSettings::darkThemeEnabled() const
{
return isDarkColorScheme(colorScheme());
}
void MobileShellSettings::setDarkThemeEnabled(bool enabled)
{
const QString currentColorScheme = colorScheme();
const QString nextColorScheme = effectiveColorSchemeName(enabled);
const QString plasmaTheme = enabled ? SHIFT_DARK_PLASMA_THEME : SHIFT_LIGHT_PLASMA_THEME;
QColor accentOverride;
if (wallpaperAccentEnabled() && m_lastWallpaperThemeColor.isValid() && m_lastWallpaperThemeColor.alpha() != 0) {
accentOverride = m_lastWallpaperThemeColor;
} else if (!wallpaperAccentEnabled()) {
const QColor manualAccent = accentColor();
if (manualAccent.isValid() && manualAccent.alpha() != 0) {
accentOverride = manualAccent;
}
}
if (currentColorScheme == nextColorScheme && nextColorScheme == baseColorSchemeName(enabled)) {
return;
}
if (accentOverride.isValid() && accentOverride.alpha() != 0) {
applyColorScheme({QStringLiteral("--accent-color"), accentOverride.name(QColor::HexRgb), nextColorScheme});
} else {
QProcess::execute(QStringLiteral("plasma-apply-colorscheme"), {nextColorScheme});
m_kdeGlobalsConfig->reparseConfiguration();
}
QProcess::execute(QStringLiteral("plasma-apply-desktoptheme"), {plasmaTheme});
Q_EMIT colorSchemeChanged();
Q_EMIT darkThemeEnabledChanged();
}
bool MobileShellSettings::wallpaperThemeEnabled() const
{
auto group = KConfigGroup{m_config, GENERAL_CONFIG_GROUP};
return group.readEntry("wallpaperThemeEnabled", false);
}
void MobileShellSettings::setWallpaperThemeEnabled(bool enabled)
{
if (wallpaperThemeEnabled() == enabled) {
return;
}
auto group = KConfigGroup{m_config, GENERAL_CONFIG_GROUP};
if (enabled) {
group.writeEntry(WALLPAPER_THEME_MANUAL_DARK_KEY, darkThemeEnabled(), KConfigGroup::Notify);
}
group.writeEntry("wallpaperThemeEnabled", enabled, KConfigGroup::Notify);
m_config->sync();
if (!enabled) {
m_wallpaperThemeTimer.stop();
setDarkThemeEnabled(group.readEntry(WALLPAPER_THEME_MANUAL_DARK_KEY, darkThemeEnabled()));
}
Q_EMIT wallpaperThemeEnabledChanged();
}
void MobileShellSettings::applyWallpaperThemeColor(const QColor &color)
{
if (!wallpaperThemeEnabled() || !color.isValid() || color.alpha() == 0) {
return;
}
QColor opaqueColor = color;
opaqueColor.setAlpha(255);
const bool colorChanged = m_lastWallpaperThemeColor != opaqueColor;
m_lastWallpaperThemeColor = opaqueColor;
if (colorChanged) {
Q_EMIT wallpaperThemeColorChanged();
}
const qreal luminance = relativeLuminance(opaqueColor);
const bool shouldUseDarkTheme = luminance < 0.5;
const bool sameThemeBucket = darkThemeEnabled() == shouldUseDarkTheme;
if (wallpaperAccentEnabled() && colorChanged && sameThemeBucket) {
applyColorScheme({QStringLiteral("--accent-color"), opaqueColor.name(QColor::HexRgb), colorScheme()});
}
if (!m_wallpaperThemeTimer.isActive() && darkThemeEnabled() == shouldUseDarkTheme && !colorChanged) {
return;
}
m_pendingWallpaperThemeDark = shouldUseDarkTheme;
m_wallpaperThemeTimer.start();
}
QColor MobileShellSettings::wallpaperThemeColor() const
{
return m_lastWallpaperThemeColor;
}
QColor MobileShellSettings::accentColor() const
{
auto group = KConfigGroup{m_kdeGlobalsConfig, KDE_GLOBALS_CONFIG_GROUP};
return group.readEntry("AccentColor", QColor(Qt::transparent));
}
void MobileShellSettings::setAccentColor(const QColor &color)
{
if (!color.isValid() || color.alpha() == 0) {
resetAccentColor();
return;
}
QColor opaqueColor = color;
opaqueColor.setAlpha(255);
auto group = KConfigGroup{m_kdeGlobalsConfig, KDE_GLOBALS_CONFIG_GROUP};
group.writeEntry("accentColorFromWallpaper", false, KConfigGroup::Notify);
group.writeEntry("LastUsedCustomAccentColor", opaqueColor, KConfigGroup::Notify);
m_kdeGlobalsConfig->sync();
applyColorScheme({QStringLiteral("--accent-color"), opaqueColor.name(QColor::HexRgb), colorScheme()});
Q_EMIT wallpaperAccentEnabledChanged();
Q_EMIT accentColorChanged();
}
bool MobileShellSettings::wallpaperAccentEnabled() const
{
auto group = KConfigGroup{m_kdeGlobalsConfig, KDE_GLOBALS_CONFIG_GROUP};
return group.readEntry("accentColorFromWallpaper", false);
}
void MobileShellSettings::setWallpaperAccentEnabled(bool enabled)
{
if (wallpaperAccentEnabled() == enabled) {
return;
}
auto group = KConfigGroup{m_kdeGlobalsConfig, KDE_GLOBALS_CONFIG_GROUP};
group.writeEntry("accentColorFromWallpaper", enabled, KConfigGroup::Notify);
m_kdeGlobalsConfig->sync();
if (enabled && m_lastWallpaperThemeColor.isValid() && m_lastWallpaperThemeColor.alpha() != 0) {
applyColorScheme({QStringLiteral("--accent-color"), m_lastWallpaperThemeColor.name(QColor::HexRgb), colorScheme()});
Q_EMIT accentColorChanged();
}
if (!enabled) {
const QColor lastCustomColor = lastUsedCustomAccentColor();
if (lastCustomColor.isValid() && lastCustomColor.alpha() != 0) {
applyColorScheme({QStringLiteral("--accent-color"), lastCustomColor.name(QColor::HexRgb), colorScheme()});
} else {
resetAccentColor();
return;
}
}
Q_EMIT wallpaperAccentEnabledChanged();
}
void MobileShellSettings::resetAccentColor()
{
auto group = KConfigGroup{m_kdeGlobalsConfig, KDE_GLOBALS_CONFIG_GROUP};
group.writeEntry("accentColorFromWallpaper", false, KConfigGroup::Notify);
group.deleteEntry("AccentColor", KConfigGroup::Notify);
m_kdeGlobalsConfig->sync();
applyColorScheme({colorScheme()});
Q_EMIT wallpaperAccentEnabledChanged();
Q_EMIT accentColorChanged();
}
QColor MobileShellSettings::lastUsedCustomAccentColor() const
{
auto group = KConfigGroup{m_kdeGlobalsConfig, KDE_GLOBALS_CONFIG_GROUP};
return group.readEntry("LastUsedCustomAccentColor", QColor(Qt::transparent));
}
void MobileShellSettings::applyColorScheme(const QStringList &arguments)
{
QProcess::execute(QStringLiteral("plasma-apply-colorscheme"), arguments);
m_kdeGlobalsConfig->reparseConfiguration();
}
QString MobileShellSettings::effectiveColorSchemeName(bool dark) const
{
if (!wallpaperThemeEnabled() || !m_lastWallpaperThemeColor.isValid() || m_lastWallpaperThemeColor.alpha() == 0) {
return baseColorSchemeName(dark);
}
if (!ensureWallpaperColorScheme(m_lastWallpaperThemeColor, dark)) {
return baseColorSchemeName(dark);
}
return wallpaperColorSchemeName(dark);
}
bool MobileShellSettings::isDarkColorScheme(const QString &schemeName) const
{
return schemeName == SHIFT_DARK_COLOR_SCHEME || schemeName == SHIFT_WALLPAPER_DARK_COLOR_SCHEME;
}
bool MobileShellSettings::ensureWallpaperColorScheme(const QColor &accentColor, bool dark) const
{
if (!accentColor.isValid() || accentColor.alpha() == 0) {
return false;
}
const QString sourcePath =
QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("color-schemes/%1.colors").arg(baseColorSchemeName(dark)));
if (sourcePath.isEmpty()) {
qWarning() << "Unable to locate base Shift color scheme for wallpaper generation:" << baseColorSchemeName(dark);
return false;
}
const QString outputDir = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/color-schemes");
if (!QDir().mkpath(outputDir)) {
qWarning() << "Unable to create dynamic color-scheme directory:" << outputDir;
return false;
}
const QString outputPath = outputDir + QStringLiteral("/%1.colors").arg(wallpaperColorSchemeName(dark));
QFile::remove(outputPath);
if (!QFile::copy(sourcePath, outputPath)) {
qWarning() << "Unable to create wallpaper-derived color scheme:" << outputPath;
return false;
}
auto generatedConfig = KSharedConfig::openConfig(outputPath, KConfig::SimpleConfig);
auto generalGroup = KConfigGroup{generatedConfig, QStringLiteral("General")};
generalGroup.writeEntry("ColorScheme", wallpaperColorSchemeName(dark));
generalGroup.writeEntry("Name", wallpaperColorSchemeDisplayName(dark));
writeAccentEntries(generatedConfig, QStringLiteral("Colors:Button"), accentColor);
writeAccentEntries(generatedConfig, QStringLiteral("Colors:Complementary"), accentColor);
writeAccentEntries(generatedConfig, QStringLiteral("Colors:Header"), accentColor);
writeAccentEntries(generatedConfig, QStringLiteral("Colors:Header][Inactive"), accentColor);
writeAccentEntries(generatedConfig, QStringLiteral("Colors:Tooltip"), accentColor);
writeAccentEntries(generatedConfig, QStringLiteral("Colors:View"), accentColor);
writeAccentEntries(generatedConfig, QStringLiteral("Colors:Window"), accentColor);
tintBackgroundEntries(generatedConfig, QStringLiteral("Colors:Button"), accentColor, dark);
tintBackgroundEntries(generatedConfig, QStringLiteral("Colors:View"), accentColor, dark);
tintBackgroundEntries(generatedConfig, QStringLiteral("Colors:Window"), accentColor, dark);
tintBackgroundEntries(generatedConfig, QStringLiteral("Colors:Header"), accentColor, dark);
tintBackgroundEntries(generatedConfig, QStringLiteral("Colors:Header][Inactive"), accentColor, dark);
tintBackgroundEntries(generatedConfig, QStringLiteral("Colors:Tooltip"), accentColor, dark);
tuneForegroundEntries(generatedConfig, QStringLiteral("Colors:Button"), accentColor, dark);
tuneForegroundEntries(generatedConfig, QStringLiteral("Colors:View"), accentColor, dark);
tuneForegroundEntries(generatedConfig, QStringLiteral("Colors:Window"), accentColor, dark);
tuneForegroundEntries(generatedConfig, QStringLiteral("Colors:Header"), accentColor, dark);
tuneForegroundEntries(generatedConfig, QStringLiteral("Colors:Header][Inactive"), accentColor, dark);
tuneForegroundEntries(generatedConfig, QStringLiteral("Colors:Tooltip"), accentColor, dark);
auto complementaryGroup = KConfigGroup{generatedConfig, QStringLiteral("Colors:Complementary")};
const QColor complementaryBase = complementaryGroup.readEntry("BackgroundNormal", dark ? QColor(24, 27, 38) : QColor(42, 46, 50));
complementaryGroup.writeEntry("BackgroundNormal", rgbString(blendColors(complementaryBase, accentColor, dark ? 0.18 : 0.14)));
complementaryGroup.writeEntry("BackgroundAlternate", rgbString(blendColors(complementaryBase, accentColor, dark ? 0.12 : 0.09)));
tuneForegroundEntries(generatedConfig, QStringLiteral("Colors:Complementary"), accentColor, dark);
auto selectionGroup = KConfigGroup{generatedConfig, QStringLiteral("Colors:Selection")};
const QColor selectionBackground = blendColors(accentColor, dark ? QColor(18, 20, 28) : QColor(255, 255, 255), dark ? 0.82 : 0.9);
const QColor selectionAlternate = blendColors(selectionBackground, dark ? QColor(0, 0, 0) : QColor(255, 255, 255), dark ? 0.16 : 0.24);
const QColor selectionForeground = ensureContrast(contrastingTextColor(selectionBackground), selectionBackground, MIN_NORMAL_CONTRAST);
const QColor selectionInactive =
ensureContrast(blendColors(selectionForeground, selectionBackground, dark ? 0.4 : 0.52), selectionBackground, MIN_INACTIVE_CONTRAST);
const QColor selectionLink = ensureContrast(blendColors(accentColor, selectionForeground, dark ? 0.3 : 0.2), selectionBackground, MIN_LINK_CONTRAST);
selectionGroup.writeEntry("BackgroundNormal", rgbString(selectionBackground));
selectionGroup.writeEntry("BackgroundAlternate", rgbString(selectionAlternate));
selectionGroup.writeEntry("DecorationFocus", rgbString(accentColor));
selectionGroup.writeEntry("DecorationHover", rgbString(accentColor));
selectionGroup.writeEntry("ForegroundActive", rgbString(selectionForeground));
selectionGroup.writeEntry("ForegroundNormal", rgbString(selectionForeground));
selectionGroup.writeEntry("ForegroundInactive", rgbString(selectionInactive));
selectionGroup.writeEntry("ForegroundLink", rgbString(selectionLink));
auto wmGroup = KConfigGroup{generatedConfig, QStringLiteral("WM")};
const QColor currentActiveBackground = wmGroup.readEntry("activeBackground", accentColor);
const QColor tintedActiveBackground = blendColors(currentActiveBackground, accentColor, dark ? 0.42 : 0.26);
const QColor currentInactiveBackground = wmGroup.readEntry("inactiveBackground", tintedActiveBackground);
const QColor tintedInactiveBackground = blendColors(currentInactiveBackground, accentColor, dark ? 0.24 : 0.14);
const QColor activeForeground = ensureContrast(contrastingTextColor(tintedActiveBackground), tintedActiveBackground, MIN_NORMAL_CONTRAST);
const QColor inactiveForeground = ensureContrast(blendColors(contrastingTextColor(tintedInactiveBackground), tintedInactiveBackground, dark ? 0.36 : 0.52),
tintedInactiveBackground,
MIN_INACTIVE_CONTRAST);
wmGroup.writeEntry("activeBackground", rgbString(tintedActiveBackground));
wmGroup.writeEntry("activeBlend", rgbString(activeForeground));
wmGroup.writeEntry("activeForeground", rgbString(activeForeground));
wmGroup.writeEntry("inactiveBackground", rgbString(tintedInactiveBackground));
wmGroup.writeEntry("inactiveBlend", rgbString(inactiveForeground));
wmGroup.writeEntry("inactiveForeground", rgbString(inactiveForeground));
generatedConfig->sync();
return true;
}
bool MobileShellSettings::autoHidePanelsEnabled() const bool MobileShellSettings::autoHidePanelsEnabled() const
{ {
auto group = KConfigGroup{m_config, GENERAL_CONFIG_GROUP}; auto group = KConfigGroup{m_config, GENERAL_CONFIG_GROUP};

View file

@ -9,11 +9,9 @@
#include <KConfigGroup> #include <KConfigGroup>
#include <KConfigWatcher> #include <KConfigWatcher>
#include <KSharedConfig> #include <KSharedConfig>
#include <QColor>
#include <QDBusConnection> #include <QDBusConnection>
#include <QObject> #include <QObject>
#include <QStringList> #include <QStringList>
#include <QTimer>
#include <qqmlregistration.h> #include <qqmlregistration.h>
/** /**
@ -52,14 +50,6 @@ class MobileShellSettings : public QObject
// convergence mode // convergence mode
Q_PROPERTY(bool convergenceModeEnabled READ convergenceModeEnabled WRITE setConvergenceModeEnabled NOTIFY convergenceModeEnabledChanged) Q_PROPERTY(bool convergenceModeEnabled READ convergenceModeEnabled WRITE setConvergenceModeEnabled NOTIFY convergenceModeEnabledChanged)
// theme
Q_PROPERTY(QString colorScheme READ colorScheme NOTIFY colorSchemeChanged)
Q_PROPERTY(bool darkThemeEnabled READ darkThemeEnabled WRITE setDarkThemeEnabled NOTIFY darkThemeEnabledChanged)
Q_PROPERTY(bool wallpaperThemeEnabled READ wallpaperThemeEnabled WRITE setWallpaperThemeEnabled NOTIFY wallpaperThemeEnabledChanged)
Q_PROPERTY(QColor wallpaperThemeColor READ wallpaperThemeColor NOTIFY wallpaperThemeColorChanged)
Q_PROPERTY(QColor accentColor READ accentColor WRITE setAccentColor NOTIFY accentColorChanged)
Q_PROPERTY(bool wallpaperAccentEnabled READ wallpaperAccentEnabled WRITE setWallpaperAccentEnabled NOTIFY wallpaperAccentEnabledChanged)
// Auto Hide Panels // Auto Hide Panels
Q_PROPERTY(bool autoHidePanelsEnabled READ autoHidePanelsEnabled WRITE setAutoHidePanelsEnabled NOTIFY autoHidePanelsEnabledChanged) Q_PROPERTY(bool autoHidePanelsEnabled READ autoHidePanelsEnabled WRITE setAutoHidePanelsEnabled NOTIFY autoHidePanelsEnabledChanged)
@ -284,19 +274,6 @@ public:
*/ */
void setConvergenceModeEnabled(bool enabled); void setConvergenceModeEnabled(bool enabled);
QString colorScheme() const;
bool darkThemeEnabled() const;
void setDarkThemeEnabled(bool enabled);
bool wallpaperThemeEnabled() const;
void setWallpaperThemeEnabled(bool enabled);
Q_INVOKABLE void applyWallpaperThemeColor(const QColor &color);
QColor wallpaperThemeColor() const;
QColor accentColor() const;
void setAccentColor(const QColor &color);
bool wallpaperAccentEnabled() const;
void setWallpaperAccentEnabled(bool enabled);
Q_INVOKABLE void resetAccentColor();
/** /**
* Whether Auto Hide Panels is enabled. * Whether Auto Hide Panels is enabled.
*/ */
@ -391,12 +368,6 @@ Q_SIGNALS:
void actionDrawerTopRightModeChanged(); void actionDrawerTopRightModeChanged();
void quickSettingsColumnsChanged(); void quickSettingsColumnsChanged();
void convergenceModeEnabledChanged(); void convergenceModeEnabledChanged();
void colorSchemeChanged();
void darkThemeEnabledChanged();
void wallpaperThemeEnabledChanged();
void wallpaperThemeColorChanged();
void accentColorChanged();
void wallpaperAccentEnabledChanged();
void autoHidePanelsEnabledChanged(); void autoHidePanelsEnabledChanged();
void gamingModeEnabledChanged(); void gamingModeEnabledChanged();
void gamingDismissHintEnabledChanged(); void gamingDismissHintEnabledChanged();
@ -412,17 +383,7 @@ Q_SIGNALS:
private: private:
void updateNavigationBarsInPlasma(); void updateNavigationBarsInPlasma();
QColor lastUsedCustomAccentColor() const;
void applyColorScheme(const QStringList &arguments);
QString effectiveColorSchemeName(bool dark) const;
bool isDarkColorScheme(const QString &schemeName) const;
bool ensureWallpaperColorScheme(const QColor &accentColor, bool dark) const;
KConfigWatcher::Ptr m_configWatcher; KConfigWatcher::Ptr m_configWatcher;
KConfigWatcher::Ptr m_kdeGlobalsConfigWatcher;
KSharedConfig::Ptr m_config; KSharedConfig::Ptr m_config;
KSharedConfig::Ptr m_kdeGlobalsConfig;
QTimer m_wallpaperThemeTimer;
bool m_pendingWallpaperThemeDark = false;
QColor m_lastWallpaperThemeColor;
}; };

View file

@ -17,8 +17,6 @@ import 'private'
Item { Item {
id: root id: root
required property Folio.HomeScreen folio required property Folio.HomeScreen folio
Kirigami.Theme.inherit: false
Kirigami.Theme.colorSet: Kirigami.Theme.Window
property var homeScreen property var homeScreen

View file

@ -147,7 +147,7 @@ MobileShell.GridView {
contentItem: Rectangle { contentItem: Rectangle {
radius: width / 2 radius: width / 2
color: Qt.rgba(Kirigami.Theme.textColor.r, Kirigami.Theme.textColor.g, Kirigami.Theme.textColor.b, 0.3) color: Qt.rgba(1, 1, 1, 0.3)
} }
} }
} }

View file

@ -16,8 +16,9 @@ Item {
id: root id: root
property Folio.HomeScreen folio property Folio.HomeScreen folio
// The AppDrawer owns a Window colorset so mobile and convergence use the // Do not override the colorset: in mobile mode we inherit Complementary
// same Shift theme roles. // from the containment (wallpaper context, white text); in convergence mode
// the drawerOverlay Window gives us Window context (system-adaptive).
function addSearchText(text: string) { function addSearchText(text: string) {
searchField.text += text; searchField.text += text;

View file

@ -96,12 +96,13 @@ MouseArea {
property real pagerButtonWidth: showPager ? Math.min(root.height, Kirigami.Units.gridUnit * 2.5) : 0 property real pagerButtonWidth: showPager ? Math.min(root.height, Kirigami.Units.gridUnit * 2.5) : 0
property int pagerWheelDelta: 0 property int pagerWheelDelta: 0
property bool pagerWheelLocked: false property bool pagerWheelLocked: false
readonly property int pagerLeftCount: showPager ? virtualDesktopInfo.numberOfDesktops : 0 readonly property int pagerLeftCount: showPager ? Math.ceil(virtualDesktopInfo.numberOfDesktops / 2) : 0
readonly property int pagerRightCount: showPager ? virtualDesktopInfo.numberOfDesktops - pagerLeftCount : 0
property real desktopButtonWidth: convergenceMode ? root.height : 0 property real desktopButtonWidth: convergenceMode ? root.height : 0
property real trashButtonWidth: convergenceMode ? root.height : 0 property real trashButtonWidth: convergenceMode ? root.height : 0
property real searchButtonWidth: convergenceMode ? root.height : 0 property real searchButtonWidth: convergenceMode ? root.height : 0
readonly property real leftControlsWidth: convergenceMode ? navButtonWidth + desktopButtonWidth + pagerLeftCount * pagerButtonWidth : 0 readonly property real leftControlsWidth: convergenceMode ? navButtonWidth + desktopButtonWidth + pagerLeftCount * pagerButtonWidth : 0
readonly property real rightControlsWidth: convergenceMode ? navButtonWidth + searchButtonWidth + trashButtonWidth : 0 readonly property real rightControlsWidth: convergenceMode ? navButtonWidth + searchButtonWidth + trashButtonWidth + pagerRightCount * pagerButtonWidth : 0
readonly property real dockCenterX: convergenceMode readonly property real dockCenterX: convergenceMode
? leftControlsWidth + (root.width - leftControlsWidth - rightControlsWidth) / 2 ? leftControlsWidth + (root.width - leftControlsWidth - rightControlsWidth) / 2
: root.width / 2 : root.width / 2
@ -295,33 +296,16 @@ MouseArea {
if (x >= bx && x < bx + pagerButtonWidth) if (x >= bx && x < bx + pagerButtonWidth)
return (ids && i < ids.length) ? String(ids[i]) : "" return (ids && i < ids.length) ? String(ids[i]) : ""
} }
for (let i = 0; i < pagerRightCount; ++i) {
let bx = root.width - navButtonWidth - root.searchButtonWidth - root.trashButtonWidth - (pagerRightCount - i) * pagerButtonWidth
if (x >= bx && x < bx + pagerButtonWidth) {
let di = pagerLeftCount + i
return (ids && di < ids.length) ? String(ids[di]) : ""
}
}
return "" return ""
} }
function focusFirstDockContent() {
let firstPager = leftPagerRepeater.itemAt(0)
if (firstPager) { firstPager.forceActiveFocus(); return }
root.focusAfterPager()
}
function focusAfterPager() {
let first = repeater.itemAt(0)
if (first) { first.keyboardFocus(); return }
let firstTask = taskRepeater.itemAt(0)
if (firstTask) { firstTask.forceActiveFocus(); return }
searchButton.forceActiveFocus()
}
function focusBeforeSearch() {
let lastTask = taskRepeater.itemAt(taskRepeater.count - 1)
if (lastTask) { lastTask.forceActiveFocus(); return }
let lastFav = repeater.itemAt(repeater.count - 1)
if (lastFav) { lastFav.keyboardFocus(); return }
let lastPager = leftPagerRepeater.itemAt(leftPagerRepeater.count - 1)
if (lastPager) { lastPager.forceActiveFocus(); return }
desktopButton.forceActiveFocus()
}
function runningTaskStorageId(taskModel) { function runningTaskStorageId(taskModel) {
var id = taskModel ? taskModel.AppId || "" : "" var id = taskModel ? taskModel.AppId || "" : ""
if (id && !id.endsWith(".desktop")) if (id && !id.endsWith(".desktop"))
@ -464,7 +448,13 @@ MouseArea {
Keys.onEnterPressed: desktopButton.toggleDesktop() Keys.onEnterPressed: desktopButton.toggleDesktop()
Keys.onSpacePressed: desktopButton.toggleDesktop() Keys.onSpacePressed: desktopButton.toggleDesktop()
Keys.onLeftPressed: homeButton.forceActiveFocus() Keys.onLeftPressed: homeButton.forceActiveFocus()
Keys.onRightPressed: root.focusFirstDockContent() Keys.onRightPressed: {
let first = repeater.itemAt(0)
if (first) { first.keyboardFocus(); return }
let firstTask = taskRepeater.itemAt(0)
if (firstTask) { firstTask.forceActiveFocus(); return }
searchButton.forceActiveFocus()
}
KeyboardHighlight { KeyboardHighlight {
anchors.fill: parent anchors.fill: parent
@ -571,7 +561,9 @@ MouseArea {
Keys.onReturnPressed: root.folio.triggerOverview() Keys.onReturnPressed: root.folio.triggerOverview()
Keys.onEnterPressed: root.folio.triggerOverview() Keys.onEnterPressed: root.folio.triggerOverview()
Keys.onSpacePressed: root.folio.triggerOverview() Keys.onSpacePressed: root.folio.triggerOverview()
Keys.onLeftPressed: searchButton.forceActiveFocus() Keys.onLeftPressed: {
searchButton.forceActiveFocus()
}
KeyboardHighlight { KeyboardHighlight {
anchors.fill: parent anchors.fill: parent
@ -630,7 +622,13 @@ MouseArea {
Keys.onReturnPressed: root.folio.HomeScreenState.openSearchWidget() Keys.onReturnPressed: root.folio.HomeScreenState.openSearchWidget()
Keys.onEnterPressed: root.folio.HomeScreenState.openSearchWidget() Keys.onEnterPressed: root.folio.HomeScreenState.openSearchWidget()
Keys.onSpacePressed: root.folio.HomeScreenState.openSearchWidget() Keys.onSpacePressed: root.folio.HomeScreenState.openSearchWidget()
Keys.onLeftPressed: trashButton.forceActiveFocus() Keys.onLeftPressed: {
let lastTask = taskRepeater.itemAt(taskRepeater.count - 1)
if (lastTask) { lastTask.forceActiveFocus(); return }
let lastFav = repeater.itemAt(repeater.count - 1)
if (lastFav) { lastFav.keyboardFocus(); return }
desktopButton.forceActiveFocus()
}
Keys.onRightPressed: overviewButton.forceActiveFocus() Keys.onRightPressed: overviewButton.forceActiveFocus()
KeyboardHighlight { KeyboardHighlight {
@ -686,7 +684,7 @@ MouseArea {
} }
} }
// ---- Virtual desktop pager: compact group next to the Desktop button ---- // ---- Virtual desktop pager: left wing (desktops 1 .. ceil(N/2)) ----
Repeater { Repeater {
id: leftPagerRepeater id: leftPagerRepeater
model: root.pagerLeftCount model: root.pagerLeftCount
@ -710,36 +708,6 @@ MouseArea {
y: 0 y: 0
width: root.pagerButtonWidth width: root.pagerButtonWidth
height: root.height height: root.height
activeFocusOnTab: root.showPager
function activateDesktop() {
if (leftDesktopBtn.desktopId) {
root.folio.activateVirtualDesktop(leftDesktopBtn.desktopId)
}
}
Accessible.role: Accessible.Button
Accessible.name: root.pagerDesktopName(leftDesktopBtn.index)
Accessible.onPressAction: leftDesktopBtn.activateDesktop()
Keys.onReturnPressed: leftDesktopBtn.activateDesktop()
Keys.onEnterPressed: leftDesktopBtn.activateDesktop()
Keys.onSpacePressed: leftDesktopBtn.activateDesktop()
Keys.onLeftPressed: {
let previous = leftPagerRepeater.itemAt(index - 1)
if (previous) { previous.forceActiveFocus(); return }
desktopButton.forceActiveFocus()
}
Keys.onRightPressed: {
let next = leftPagerRepeater.itemAt(index + 1)
if (next) { next.forceActiveFocus(); return }
root.focusAfterPager()
}
KeyboardHighlight {
anchors.fill: parent
visible: leftDesktopBtn.activeFocus
}
MobileShell.MotionStateLayer { MobileShell.MotionStateLayer {
anchors.fill: parent anchors.fill: parent
@ -777,8 +745,8 @@ MouseArea {
root.hideDockToolTip(leftDesktopBtn) root.hideDockToolTip(leftDesktopBtn)
if (mouse.button === Qt.RightButton) { if (mouse.button === Qt.RightButton) {
leftPagerContextMenu.open() leftPagerContextMenu.open()
} else { } else if (leftDesktopBtn.desktopId) {
leftDesktopBtn.activateDesktop() root.folio.activateVirtualDesktop(leftDesktopBtn.desktopId)
} }
} }
onPressAndHold: { onPressAndHold: {
@ -825,7 +793,117 @@ MouseArea {
} }
} }
// ---- Trash button (convergence mode, sits between Search and Overview) ---- // ---- Virtual desktop pager: right wing (desktops ceil(N/2)+1 .. N) ----
Repeater {
id: rightPagerRepeater
model: root.pagerRightCount
delegate: Item {
id: rightDesktopBtn
required property int index
readonly property int desktopIndex: root.pagerLeftCount + index
readonly property string desktopId: {
let ids = virtualDesktopInfo.desktopIds
return (ids && desktopIndex < ids.length) ? String(ids[desktopIndex]) : ""
}
readonly property bool isCurrent: desktopId !== "" && String(desktopId) === String(virtualDesktopInfo.currentDesktop)
readonly property bool isDragTarget: {
if (root.taskPinDragIndex < 0) return false
let cx = root.taskBaseX(root.taskPinDragIndex) + root.dockCellWidth / 2 + root.taskPinDragOffset
return root.pagerButtonDesktopAt(cx) === desktopId
}
x: root.width - root.navButtonWidth - root.searchButtonWidth - root.trashButtonWidth - (root.pagerRightCount - index) * root.pagerButtonWidth
y: 0
width: root.pagerButtonWidth
height: root.height
MobileShell.MotionStateLayer {
anchors.fill: parent
anchors.margins: root.dockItemInset
radius: Kirigami.Units.cornerRadius
hovered: rightPagerHover.containsMouse
pressed: rightPagerHover.containsPress
active: rightDesktopBtn.isCurrent || rightDesktopBtn.isDragTarget
pressedOpacity: 0.18
activeOpacity: 0.18
activeHoverOpacity: 0.25
}
PC3.Label {
anchors.centerIn: parent
text: (rightDesktopBtn.desktopIndex + 1).toString()
color: rightDesktopBtn.isCurrent ? Kirigami.Theme.highlightColor : Kirigami.Theme.textColor
font.pixelSize: Math.round(parent.height * 0.3)
font.bold: rightDesktopBtn.isCurrent
}
PC3.ToolTip {
visible: root.activeDockToolTipItem === rightDesktopBtn && rightPagerHover.containsMouse && !rightPagerHover.containsPress && !rightPagerContextMenu.opened
text: root.pagerDesktopName(rightDesktopBtn.desktopIndex)
}
MouseArea {
id: rightPagerHover
anchors.fill: parent
hoverEnabled: true
acceptedButtons: Qt.LeftButton | Qt.RightButton
cursorShape: Qt.PointingHandCursor
onWheel: (wheel) => root.handlePagerWheel(wheel)
onClicked: (mouse) => {
root.hideDockToolTip(rightDesktopBtn)
if (mouse.button === Qt.RightButton) {
rightPagerContextMenu.open()
} else if (rightDesktopBtn.desktopId) {
root.folio.activateVirtualDesktop(rightDesktopBtn.desktopId)
}
}
onPressAndHold: {
root.hideDockToolTip(rightDesktopBtn)
rightPagerContextMenu.open()
haptics.buttonVibrate()
}
onContainsMouseChanged: {
if (containsMouse) {
root.requestDockToolTip(rightDesktopBtn)
} else {
root.hideDockToolTip(rightDesktopBtn)
}
}
onPressedChanged: {
if (pressed) {
root.hideDockToolTip(rightDesktopBtn)
}
}
}
PC3.Menu {
id: rightPagerContextMenu
popupType: T.Popup.Window
PC3.MenuItem {
icon.name: "list-add"
text: i18n("Add Virtual Desktop")
onTriggered: root.folio.createVirtualDesktop()
}
PC3.MenuItem {
icon.name: "list-remove"
text: i18n("Remove Virtual Desktop")
enabled: virtualDesktopInfo.numberOfDesktops > 1
onTriggered: root.folio.removeLastVirtualDesktop()
}
Controls.MenuSeparator {}
PC3.MenuItem {
icon.name: "preferences-desktop-virtual"
text: i18n("Configure Virtual Desktops…")
onTriggered: MobileShell.ShellUtil.executeCommand("plasma-open-settings kcm_kwin_virtualdesktops")
}
}
}
}
// ---- Trash button (convergence mode, sits between the right pager wing and the Overview button) ----
// Watches ~/.local/share/Trash/files to detect empty/full state. // Watches ~/.local/share/Trash/files to detect empty/full state.
// FolderListModel reacts to directory changes automatically. // FolderListModel reacts to directory changes automatically.
@ -882,8 +960,6 @@ MouseArea {
Keys.onReturnPressed: Qt.openUrlExternally("trash:/") Keys.onReturnPressed: Qt.openUrlExternally("trash:/")
Keys.onEnterPressed: Qt.openUrlExternally("trash:/") Keys.onEnterPressed: Qt.openUrlExternally("trash:/")
Keys.onSpacePressed: Qt.openUrlExternally("trash:/") Keys.onSpacePressed: Qt.openUrlExternally("trash:/")
Keys.onLeftPressed: root.focusBeforeSearch()
Keys.onRightPressed: searchButton.forceActiveFocus()
KeyboardHighlight { KeyboardHighlight {
anchors.fill: parent anchors.fill: parent

View file

@ -31,6 +31,7 @@ Item {
property real rightMargin: 0 property real rightMargin: 0
property bool interactive: true property bool interactive: true
readonly property color favouritesBarScrimColor: Qt.rgba(Kirigami.Theme.highlightColor.r, Kirigami.Theme.highlightColor.g, Kirigami.Theme.highlightColor.b, 0.14)
// non-widget drop animation // non-widget drop animation
readonly property bool dropAnimationRunning: delegateDragItem.dropAnimationRunning || widgetDragItem.dropAnimationRunning readonly property bool dropAnimationRunning: delegateDragItem.dropAnimationRunning || widgetDragItem.dropAnimationRunning
@ -362,9 +363,7 @@ Item {
Rectangle { Rectangle {
id: favouritesBarScrim id: favouritesBarScrim
Kirigami.Theme.inherit: false color: root.favouritesBarScrimColor
Kirigami.Theme.colorSet: Kirigami.Theme.Window
color: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.38)
Component.onCompleted: maskManager.assignToMask(this) Component.onCompleted: maskManager.assignToMask(this)
@ -390,8 +389,6 @@ Item {
folio: root.folio folio: root.folio
maskManager: root.maskManager maskManager: root.maskManager
homeScreen: root homeScreen: root
Kirigami.Theme.inherit: false
Kirigami.Theme.colorSet: Kirigami.Theme.Window
// don't show in settings mode // don't show in settings mode
opacity: 1 - folio.HomeScreenState.settingsOpenProgress opacity: 1 - folio.HomeScreenState.settingsOpenProgress
@ -496,7 +493,6 @@ Item {
// don't show in settings mode // don't show in settings mode
opacity: 1 - folio.HomeScreenState.settingsOpenProgress opacity: 1 - folio.HomeScreenState.settingsOpenProgress
visible: opacity > 0 && !ShellSettings.Settings.convergenceModeEnabled
anchors.top: parent.top anchors.top: parent.top
anchors.left: parent.left anchors.left: parent.left

View file

@ -246,12 +246,10 @@ ContainmentItem {
Rectangle { Rectangle {
id: appDrawerBackground id: appDrawerBackground
anchors.fill: parent anchors.fill: parent
Kirigami.Theme.inherit: false
Kirigami.Theme.colorSet: Kirigami.Theme.Window
// Convergence: no scrim (popup has own background); mobile: dark scrim // Convergence: no scrim (popup has own background); mobile: dark scrim
color: ShellSettings.Settings.convergenceModeEnabled color: ShellSettings.Settings.convergenceModeEnabled
? "transparent" ? "transparent"
: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.46) : Qt.rgba(0, 0, 0, 0.6)
opacity: folio.HomeScreenState.appDrawerOpenProgress opacity: folio.HomeScreenState.appDrawerOpenProgress
} }
@ -259,9 +257,7 @@ ContainmentItem {
Rectangle { Rectangle {
id: searchWidgetBackground id: searchWidgetBackground
anchors.fill: parent anchors.fill: parent
Kirigami.Theme.inherit: false color: Qt.rgba(0, 0, 0, 0.3)
Kirigami.Theme.colorSet: Kirigami.Theme.Window
color: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.30)
opacity: folio.HomeScreenState.searchWidgetOpenProgress opacity: folio.HomeScreenState.searchWidgetOpenProgress
} }
@ -269,9 +265,7 @@ ContainmentItem {
Rectangle { Rectangle {
id: settingsViewBackground id: settingsViewBackground
anchors.fill: parent anchors.fill: parent
Kirigami.Theme.inherit: false color: Qt.rgba(0, 0, 0, 0.3)
Kirigami.Theme.colorSet: Kirigami.Theme.Window
color: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.30)
opacity: folio.HomeScreenState.settingsOpenProgress opacity: folio.HomeScreenState.settingsOpenProgress
} }

View file

@ -1,6 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<polyline points="104 72 104 136 192 136 224 200 248 192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="104" cy="48" r="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,96H112a64,64,0,0,0,0,128c29.82,0,56.9-20.4,64-48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="128" cy="44" r="16"/>
<path d="M72,88c18.67-8,37.33-12,56-12s37.33,4,56,12" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="128" y1="76" x2="128" y2="212" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="128" y1="120" x2="84" y2="212" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="128" y1="120" x2="172" y2="212" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 674 B

After

Width:  |  Height:  |  Size: 834 B

View file

@ -1,6 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<line x1="40" y1="128" x2="216" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 56 216 128 144 200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <line x1="40" y1="128" x2="216" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="144 56 216 128 144 200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 503 B

After

Width:  |  Height:  |  Size: 503 B

View file

@ -1,6 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="88" y="24" width="80" height="144" rx="40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="200" x2="128" y2="240" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,128a72,72,0,0,1-144,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="88" y="24" width="80" height="128" rx="40"/>
<path d="M48 112a80 80 0 0 0 160 0"/>
<line x1="128" y1="192" x2="128" y2="232"/>
<line x1="88" y1="232" x2="168" y2="232"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 651 B

After

Width:  |  Height:  |  Size: 476 B

View file

@ -1,6 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<circle cx="128" cy="128" r="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 72 128 128 184 128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="128" cy="132" r="84" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="128" y1="132" x2="128" y2="84" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="128" y1="132" x2="168" y2="156" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 495 B

After

Width:  |  Height:  |  Size: 637 B

View file

@ -1 +0,0 @@
color-picker.svg

View file

@ -1 +0,0 @@
color.svg

View file

@ -1,6 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<path d="M128,192a24,24,0,0,1,24-24h46.21a24,24,0,0,0,23.4-18.65A96.48,96.48,0,0,0,224,127.17c-.45-52.82-44.16-95.7-97-95.17a96,96,0,0,0-95,96c0,41.81,26.73,73.44,64,86.61A24,24,0,0,0,128,192Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="76" r="12"/><circle cx="84" cy="100" r="12"/><circle cx="84" cy="156" r="12"/><circle cx="172" cy="100" r="12"/> <path d="M128,24a104,104,0,0,0,0,208h16a24,24,0,0,0,0-48h-8a16,16,0,0,1,0-32h24a72,72,0,0,0,0-144Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="84" cy="108" r="10"/>
<circle cx="116" cy="76" r="10"/>
<circle cx="160" cy="80" r="10"/>
<circle cx="184" cy="120" r="10"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 647 B

After

Width:  |  Height:  |  Size: 556 B

View file

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<polyline points="88 136 112 160 168 104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <polyline points="40 144 96 200 216 56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 495 B

After

Width:  |  Height:  |  Size: 359 B

View file

@ -1,6 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<polygon points="128 160 96 160 96 128 192 32 224 64 128 160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="56" x2="200" y2="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,128v80a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M152,40H72A16,16,0,0,0,56,56V200a16,16,0,0,0,16,16H184a16,16,0,0,0,16-16V88Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="152 40 152 88 200 88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M104,168l-8,32,32-8,66.34-66.34a16,16,0,0,0-22.63-22.63Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 695 B

After

Width:  |  Height:  |  Size: 715 B

View file

@ -1,6 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<path d="M216,83.31V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H172.69a8,8,0,0,1,5.65,2.34l35.32,35.32A8,8,0,0,1,216,83.31Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,216V152a8,8,0,0,1,8-8h80a8,8,0,0,1,8,8v64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="72" x2="96" y2="72" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M48,40H168l40,40V208a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="88 40 88 104 160 104 160 40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<rect x="88" y="152" width="80" height="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 748 B

After

Width:  |  Height:  |  Size: 675 B

View file

@ -1 +0,0 @@
../../preferences/scalable/preferences-desktop-color.svg

View file

@ -1,6 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<rect x="40" y="144" width="176" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="48" width="176" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="80" r="12"/><circle cx="180" cy="176" r="12"/> <rect x="40" y="48" width="176" height="160" rx="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="40" y1="160" x2="216" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="80" cy="184" r="8"/>
<line x1="112" y1="184" x2="176" y2="184" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 590 B

After

Width:  |  Height:  |  Size: 690 B

View file

@ -1,6 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<path d="M216.89,208H39.38A7.4,7.4,0,0,1,32,200.62V80H216a8,8,0,0,1,8,8V200.89A7.11,7.11,0,0,1,216.89,208Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,80V56a8,8,0,0,1,8-8H92.69a8,8,0,0,1,5.65,2.34L128,80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M24,88V64A16,16,0,0,1,40,48h60.69a8,8,0,0,1,5.65,2.34l19.32,19.32A8,8,0,0,0,131.31,72H216a16,16,0,0,1,16,16V192a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="24" y1="96" x2="232" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 595 B

After

Width:  |  Height:  |  Size: 621 B

View file

@ -1,6 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<circle cx="128" cy="128" r="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,128c0,64-40,96-40,96s-40-32-40-96,40-96,40-96S168,64,168,128Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="37.46" y1="96" x2="218.54" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="37.46" y1="160" x2="218.54" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="128" cy="128" r="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<ellipse cx="128" cy="128" rx="40" ry="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="40" y1="128" x2="216" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M56,88c18,13.33,44.85,20,72,20s54-6.67,72-20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M56,168c18-13.33,44.85-20,72-20s54,6.67,72,20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 822 B

After

Width:  |  Height:  |  Size: 951 B

View file

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<line x1="40" y1="128" x2="216" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 56 216 128 144 200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <polyline points="96 48 176 128 96 208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 503 B

After

Width:  |  Height:  |  Size: 360 B

View file

@ -1,6 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<path d="M64,76a52,52,0,0,1,104,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,224,42.68,174a20,20,0,0,1,34.64-20L96,184V76a20,20,0,0,1,40,0v56a20,20,0,0,1,40,0v16a20,20,0,0,1,40,0v36c0,24-8,40-8,40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M96,144V80a16,16,0,0,1,32,0v48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M128,128V96a16,16,0,0,1,32,0v40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M160,136v-24a16,16,0,0,1,32,0v48a56,56,0,0,1-56,56h-8a56,56,0,0,1-56-56v-16a16,16,0,0,1,32,0v8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="112" cy="48" r="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="112" y1="8" x2="112" y2="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="80" y1="20" x2="86" y2="26" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="144" y1="20" x2="138" y2="26" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 589 B

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -1 +0,0 @@
dialog-information.svg

View file

@ -1 +0,0 @@
../../preferences/scalable/ktip.svg

View file

@ -1,6 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<rect x="24" y="56" width="208" height="144" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="128" x2="200" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="96" x2="200" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="160" x2="64" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="160" x2="160" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="160" x2="200" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="24" y="64" width="208" height="128" rx="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="64" y1="104" x2="64.01" y2="104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<line x1="104" y1="104" x2="104.01" y2="104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<line x1="144" y1="104" x2="144.01" y2="104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<line x1="184" y1="104" x2="184.01" y2="104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<line x1="72" y1="152" x2="184" y2="152" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1,6 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<rect x="56" y="24" width="144" height="208" rx="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="112" x2="128" y2="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="112" x2="200" y2="112" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="80" y="24" width="96" height="208" rx="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="128" y1="24" x2="128" y2="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="80" y1="96" x2="176" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 655 B

After

Width:  |  Height:  |  Size: 652 B

View file

@ -1,6 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<line x1="40" y1="128" x2="216" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <line x1="128" y1="56" x2="128" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="56" y1="128" x2="200" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 502 B

After

Width:  |  Height:  |  Size: 502 B

View file

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<line x1="40" y1="128" x2="216" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <line x1="56" y1="128" x2="200" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 360 B

View file

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<path d="M108.11,28.11A96.09,96.09,0,0,0,227.89,147.89,96,96,0,1,1,108.11,28.11Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <line x1="128" y1="40" x2="128" y2="32" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="64" x2="56" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="192" x2="56" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="64" x2="200" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="192" x2="200" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="128" x2="32" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="216" x2="128" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="128" x2="224" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 402 B

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1,6 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<rect x="152" y="40" width="56" height="176" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="40" width="56" height="176" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="72" y="48" width="40" height="160" rx="8"/>
<rect x="144" y="48" width="40" height="160" rx="8"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 523 B

After

Width:  |  Height:  |  Size: 325 B

View file

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<circle cx="128" cy="128" r="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="128" cy="128" r="72"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 353 B

After

Width:  |  Height:  |  Size: 253 B

View file

@ -1,6 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="84" r="12"/><circle cx="108" cy="84" r="12"/> <rect x="32" y="48" width="192" height="160" rx="8" fill="none"/>
<circle cx="68" cy="84" r="12" stroke="none"/>
<circle cx="108" cy="84" r="12" stroke="none"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 437 B

After

Width:  |  Height:  |  Size: 467 B

View file

@ -1,6 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<path d="M208,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H80L96,40h64l16,24h32a16,16,0,0,1,16,16V192A16,16,0,0,1,208,208Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="132" r="36" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <polyline points="88 48 48 48 48 88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="168 48 208 48 208 88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="208 168 208 208 168 208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="88 208 48 208 48 168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="128" cy="128" r="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 578 B

After

Width:  |  Height:  |  Size: 916 B

View file

@ -1,6 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<line x1="120" y1="160" x2="216" y2="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56.44,160a73,73,0,0,1-.44-8,72.06,72.06,0,0,1,95-68.25" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M220.62,104.64a104.38,104.38,0,0,1,5.48,82,8,8,0,0,1-7.57,5.37H37.46a8.05,8.05,0,0,1-7.57-5.41A104.06,104.06,0,0,1,24,151.19C24.44,94,71.73,47.49,129,48a103.68,103.68,0,0,1,46.4,11.38" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M40 176a96 96 0 0 1 176 0"/>
<line x1="128" y1="176" x2="176" y2="112"/>
<line x1="72" y1="176" x2="184" y2="176"/>
<line x1="80" y1="112" x2="96" y2="128"/>
<line x1="128" y1="80" x2="128" y2="104"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 821 B

After

Width:  |  Height:  |  Size: 507 B

View file

@ -1,6 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="64" x2="208" y2="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="192" x2="208" y2="192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="48" y="32" width="160" height="192" rx="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="96" y1="64" x2="160" y2="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="128" cy="184" r="10"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 691 B

After

Width:  |  Height:  |  Size: 547 B

View file

@ -1,6 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<path d="M128,192a24,24,0,0,1,24-24h46.21a24,24,0,0,0,23.4-18.65A96.48,96.48,0,0,0,224,127.17c-.45-52.82-44.16-95.7-97-95.17a96,96,0,0,0-95,96c0,41.81,26.73,73.44,64,86.61A24,24,0,0,0,128,192Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="76" r="12"/><circle cx="84" cy="100" r="12"/><circle cx="84" cy="156" r="12"/><circle cx="172" cy="100" r="12"/> <circle cx="100" cy="124" r="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M148,68a72,72,0,1,1-48,132c24,0,40-16,40-36s-16-32-32-32H92a24,24,0,0,1,0-48h16a40,40,0,0,0,40-16Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="172" cy="88" r="12"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 647 B

After

Width:  |  Height:  |  Size: 596 B

View file

@ -1,6 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<path d="M64,76a52,52,0,0,1,104,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,224,42.68,174a20,20,0,0,1,34.64-20L96,184V76a20,20,0,0,1,40,0v56a20,20,0,0,1,40,0v16a20,20,0,0,1,40,0v36c0,24-8,40-8,40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="40" y="56" width="176" height="120" rx="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="88" y1="208" x2="168" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M120,112V88a12,12,0,0,1,24,0v32" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M144,120V104a12,12,0,0,1,24,0v28a40,40,0,0,1-40,40h-4a40,40,0,0,1-40-40v-12a12,12,0,0,1,24,0v4" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 589 B

After

Width:  |  Height:  |  Size: 863 B

View file

@ -1,6 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<line x1="216" y1="56" x2="40" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="104" y2="168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="104" x2="152" y2="168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <line x1="216" y1="56" x2="40" y2="56"/>
<line x1="104" y1="104" x2="104" y2="176"/>
<line x1="152" y1="104" x2="152" y2="176"/>
<path d="M200,56l-8,152a16,16,0,0,1-16,16H80a16,16,0,0,1-16-16L56,56" fill="none"/>
<path d="M96,56V40a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V56" fill="none"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 963 B

After

Width:  |  Height:  |  Size: 595 B

View file

@ -1,6 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<circle cx="128" cy="96" r="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,216c19.37-33.47,54.55-56,96-56s76.63,22.53,96,56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="128" cy="88" r="40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M56,216c12.53-35.11,39-56,72-56s59.47,20.89,72,56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 515 B

After

Width:  |  Height:  |  Size: 512 B

View file

@ -1,6 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<rect x="48" y="48" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="144" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="48" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="144" x2="144" y2="176" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 208 176 208 176 144" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="160" x2="208" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="192" x2="208" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="40" y="40" width="56" height="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<rect x="160" y="40" width="56" height="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<rect x="40" y="160" width="56" height="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="136" y1="136" x2="136" y2="176" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="176" y1="136" x2="216" y2="136" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="176" y1="176" x2="176" y2="216" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="136" y1="216" x2="216" y2="216" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -1,6 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="88 128 104 120 104 184" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M138.14,128a16,16,0,1,1,26.64,17.63L136,184h32" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="40" y="48" width="176" height="168" rx="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="40" y1="96" x2="216" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="88" y1="32" x2="88" y2="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="168" y1="32" x2="168" y2="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="92" cy="136" r="8"/>
<circle cx="128" cy="136" r="8"/>
<circle cx="164" cy="136" r="8"/>
<circle cx="92" cy="172" r="8"/>
<circle cx="128" cy="172" r="8"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 960 B

View file

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<path d="M34.1,61.38A8,8,0,0,1,40,48H216a8,8,0,0,1,5.92,13.38L152,136v58.65a8,8,0,0,1-3.56,6.66l-32,21.33A8,8,0,0,1,104,216V136Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M40,56H216l-72,80v56l-32,16V136Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 450 B

After

Width:  |  Height:  |  Size: 362 B

View file

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<polyline points="160 48 208 48 208 96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 208 48 208 48 160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 160 208 208 160 208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="152" x2="208" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 96 48 48 96 48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="48" y2="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <polyline points="64 24 64 192 232 192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="64" x2="64" y2="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 64 192 64 192 160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="192" x2="192" y2="232" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 780 B

View file

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<polyline points="160 48 208 48 208 96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 208 48 208 48 160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 160 208 208 160 208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="152" x2="208" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 96 48 48 96 48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="48" y2="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <polyline points="64 24 64 192 232 192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="64" x2="64" y2="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 64 192 64 192 160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="192" x2="192" y2="232" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 780 B

View file

@ -1 +0,0 @@
preferences-system-windows-effect-eyeonscreen.svg

View file

@ -1 +0,0 @@
../../preferences/scalable/preferences-desktop-effects.svg

View file

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="56" y="56" width="144" height="144" rx="8"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 372 B

After

Width:  |  Height:  |  Size: 351 B

View file

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<line x1="40" y1="128" x2="216" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <line x1="64" y1="184" x2="192" y2="184"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 340 B

View file

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M229.66,98.34a8,8,0,0,0,0-11.31L169,26.34a8,8,0,0,0-11.31,0L100.39,83.8S72.64,69.93,43,93.85a8,8,0,0,0-.65,11.91l107.9,107.89a8,8,0,0,0,12-.83c8.39-11.16,21.57-34.09,10.11-57Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96.29" y1="159.71" x2="48" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M96 32h64l-16 56 40 40-56 16-40 80-16-16 40-80-40-40 56-16Z"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 652 B

After

Width:  |  Height:  |  Size: 369 B

View file

@ -1,6 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<polyline points="168 168 216 168 216 40 88 40 88 88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="88" width="128" height="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="64" y="80" width="112" height="112" rx="8"/>
<path d="M96 80V48h112v112h-32"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 519 B

After

Width:  |  Height:  |  Size: 385 B

View file

@ -1,6 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<line x1="80" y1="112" x2="144" y2="112" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="112" cy="112" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.57" y1="168.57" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="80" x2="112" y2="144" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="112" cy="112" r="72" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="163" y1="163" x2="216" y2="216" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="112" y1="80" x2="112" y2="144" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="80" y1="112" x2="144" y2="112" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 783 B

After

Width:  |  Height:  |  Size: 779 B

View file

@ -1,6 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style> <style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
<g class="ColorScheme-Text" fill="currentColor"> <g class="ColorScheme-Text" fill="currentColor">
<line x1="80" y1="112" x2="144" y2="112" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="112" cy="112" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.57" y1="168.57" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="112" cy="112" r="72" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="163" y1="163" x2="216" y2="216" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="80" y1="112" x2="144" y2="112" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 642 B

After

Width:  |  Height:  |  Size: 637 B

View file

@ -1,7 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#bef264" fill-opacity="0.14"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#bef264" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="16" y="64" width="200" height="128" rx="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="96" x2="96" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="96" x2="56" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="48" y="88" width="144" height="80" rx="16"/>
<line x1="208" y1="112" x2="208" y2="144"/>
<line x1="84" y1="112" x2="84" y2="144"/>
<line x1="120" y1="112" x2="120" y2="144"/>
<line x1="156" y1="112" x2="156" y2="144"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 853 B

After

Width:  |  Height:  |  Size: 560 B

View file

@ -1,7 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="128" cy="128" r="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120,120a8,8,0,0,1,8,8v40a8,8,0,0,0,8,8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="124" cy="84" r="12"/> <circle cx="128" cy="128" r="72"/>
<path d="M120 120h8v48h8"/>
<line x1="124" y1="88" x2="124" y2="88" stroke-width="24"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 596 B

After

Width:  |  Height:  |  Size: 454 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#7c3aed"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#7c3aed"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#ddd6fe" fill-opacity="0.18"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#ddd6fe" fill-opacity="0.18"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,106.85a32,32,0,0,1,0,42.3" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M221.67,80a72,72,0,0,1,0,96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="88" cy="176" r="24"/>
<circle cx="176" cy="152" r="24"/>
<path d="M112 176V80l88-24v96"/>
<line x1="112" y1="104" x2="200" y2="80"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 865 B

After

Width:  |  Height:  |  Size: 477 B

View file

@ -1,7 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#15803d"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#15803d"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#bbf7d0" fill-opacity="0.18"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#bbf7d0" fill-opacity="0.18"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="164" cy="148" r="12"/><circle cx="92" cy="148" r="12"/><path d="M24,184V161.13C24,103.65,70.15,56.2,127.63,56A104,104,0,0,1,232,160v24a8,8,0,0,1-8,8H32A8,8,0,0,1,24,184Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="48" x2="63.07" y2="79.07" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="48" x2="193.1" y2="78.9" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M64 160v-24a64 64 0 0 1 128 0v24"/>
<rect x="56" y="128" width="144" height="64" rx="16"/>
<line x1="88" y1="88" x2="68" y2="60"/>
<line x1="168" y1="88" x2="188" y2="60"/>
<line x1="104" y1="160" x2="104" y2="160" stroke-width="24"/>
<line x1="152" y1="160" x2="152" y2="160" stroke-width="24"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 852 B

After

Width:  |  Height:  |  Size: 638 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#67e8f9" fill-opacity="0.16"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#67e8f9" fill-opacity="0.16"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="24" y="56" width="208" height="144" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="128" x2="200" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="96" x2="200" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="160" x2="64" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="160" x2="160" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="160" x2="200" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="48" y="72" width="160" height="112" rx="16"/>
<line x1="80" y1="112" x2="176" y2="112"/>
<line x1="80" y1="144" x2="176" y2="144"/>
<line x1="104" y1="176" x2="152" y2="176"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 517 B

View file

@ -1,7 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="112" cy="112" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.57" y1="168.57" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="112" cy="112" r="56"/>
<line x1="152" y1="152" x2="200" y2="200"/>
<line x1="88" y1="112" x2="136" y2="112"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 561 B

After

Width:  |  Height:  |  Size: 453 B

View file

@ -1,7 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#86efac" fill-opacity="0.14"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#86efac" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<line x1="160" y1="72" x2="160" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="112" x2="120" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="152" x2="80" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="40" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="84" cy="128" r="32"/>
<circle cx="172" cy="88" r="28"/>
<circle cx="172" cy="176" r="28"/>
<line x1="113" y1="115" x2="147" y2="100"/>
<line x1="113" y1="141" x2="147" y2="164"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 844 B

After

Width:  |  Height:  |  Size: 523 B

View file

@ -1,7 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#86efac" fill-opacity="0.14"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#86efac" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<line x1="160" y1="72" x2="160" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="112" x2="120" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="152" x2="80" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="40" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="72" y="48" width="112" height="64" rx="12"/>
<path d="M128 112v40"/>
<path d="M80 152h96v40"/>
<path d="M80 152v40"/>
<rect x="48" y="192" width="64" height="32" rx="8"/>
<rect x="144" y="192" width="64" height="32" rx="8"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 844 B

After

Width:  |  Height:  |  Size: 566 B

View file

@ -1,7 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#86efac" fill-opacity="0.14"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#86efac" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="128" cy="128" r="32" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M181.67,80a71.94,71.94,0,0,1,0,96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M74.33,176a71.94,71.94,0,0,1,0-96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,49.62a111.88,111.88,0,0,1,0,156.76" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,206.38A111.88,111.88,0,0,1,48,49.62" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M56 104a104 104 0 0 1 144 0"/>
<path d="M84 132a64 64 0 0 1 88 0"/>
<path d="M112 160a24 24 0 0 1 32 0"/>
<circle cx="128" cy="196" r="10" fill="#ffffff" stroke="none"/>
<line x1="184" y1="164" x2="184" y2="212"/>
<line x1="160" y1="188" x2="208" y2="188"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1,002 B

After

Width:  |  Height:  |  Size: 599 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#86efac" fill-opacity="0.14"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#86efac" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="128" cy="204" r="12"/><path d="M232,93.19a164,164,0,0,0-208,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,129a116,116,0,0,0-144,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,165a68,68,0,0,0-80,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M48 104a112 112 0 0 1 160 0"/>
<path d="M80 136a68 68 0 0 1 96 0"/>
<path d="M112 168a24 24 0 0 1 32 0"/>
<circle cx="128" cy="200" r="10" fill="#ffffff" stroke="none"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 731 B

After

Width:  |  Height:  |  Size: 511 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="112" cy="112" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.57" y1="168.57" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="112" cy="112" r="56"/>
<line x1="152" y1="152" x2="200" y2="200"/>
<path d="M92 112h40"/>
<path d="M112 92v40"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 561 B

After

Width:  |  Height:  |  Size: 456 B

View file

@ -1,7 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#14b8a6" fill-opacity="0.18"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#14b8a6" fill-opacity="0.18"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<polyline points="104 72 104 136 192 136 224 200 248 192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="104" cy="48" r="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,96H112a64,64,0,0,0,0,128c29.82,0,56.9-20.4,64-48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="128" cy="68" r="16" fill="#ffffff" stroke="none"/>
<path d="M72 108c18.67-8 37.33-12 56-12s37.33 4 56 12"/>
<line x1="128" y1="96" x2="128" y2="196"/>
<line x1="128" y1="132" x2="88" y2="208"/>
<line x1="128" y1="132" x2="168" y2="208"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 735 B

After

Width:  |  Height:  |  Size: 582 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#4f46e5"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#4f46e5"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#c7d2fe" fill-opacity="0.18"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#c7d2fe" fill-opacity="0.18"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="48" y="48" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="48" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="144" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="144" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="56" y="56" width="56" height="56" rx="10"/>
<rect x="144" y="56" width="56" height="56" rx="10"/>
<rect x="56" y="144" width="56" height="56" rx="10"/>
<rect x="144" y="144" width="56" height="56" rx="10"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 885 B

After

Width:  |  Height:  |  Size: 548 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#c4b5fd" fill-opacity="0.16"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#c4b5fd" fill-opacity="0.16"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<polyline points="160 48 208 48 208 96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 208 48 208 48 160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 160 208 208 160 208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="152" x2="208" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 96 48 48 96 48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="48" y2="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="64" y="72" width="112" height="112" rx="24"/>
<path d="M184 96h24"/>
<path d="M184 128h32"/>
<path d="M184 160h24"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 458 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="112" cy="112" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.57" y1="168.57" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="112" cy="112" r="56"/>
<line x1="152" y1="152" x2="200" y2="200"/>
<path d="M84 112h56"/>
<path d="M112 84v56"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 561 B

After

Width:  |  Height:  |  Size: 456 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#1d4ed8"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#1d4ed8"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#93c5fd" fill-opacity="0.16"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#93c5fd" fill-opacity="0.16"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="48" y="48" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="48" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="144" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="144" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="64" y="64" width="48" height="48" rx="10"/>
<rect x="144" y="64" width="48" height="48" rx="10"/>
<rect x="64" y="144" width="48" height="48" rx="10"/>
<rect x="144" y="144" width="48" height="48" rx="10"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 885 B

After

Width:  |  Height:  |  Size: 548 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#1d4ed8"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#1d4ed8"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#60a5fa" fill-opacity="0.16"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#60a5fa" fill-opacity="0.16"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="48" y="64" width="160" height="108" rx="16"/>
<line x1="96" y1="204" x2="160" y2="204"/>
<line x1="112" y1="172" x2="104" y2="204"/>
<line x1="144" y1="172" x2="152" y2="204"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 618 B

After

Width:  |  Height:  |  Size: 518 B

View file

@ -1,7 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M96,192a32,32,0,0,0,64,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,104a72,72,0,0,1,144,0c0,35.82,8.3,64.6,14.9,76A8,8,0,0,1,208,192H48a8,8,0,0,1-6.88-12C47.71,168.6,56,139.81,56,104Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M64 80h128a16 16 0 0 1 16 16v64a16 16 0 0 1-16 16h-48l-40 32v-32H64a16 16 0 0 1-16-16V96a16 16 0 0 1 16-16Z"/>
<line x1="92" y1="120" x2="164" y2="120"/>
<line x1="92" y1="148" x2="140" y2="148"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 645 B

After

Width:  |  Height:  |  Size: 537 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#4f46e5"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#4f46e5"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#c7d2fe" fill-opacity="0.18"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#c7d2fe" fill-opacity="0.18"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="128" cy="128" r="12"/><circle cx="196" cy="128" r="12"/><circle cx="60" cy="128" r="12"/> <path d="M80 48h72l40 40v120H80Z"/>
<path d="M152 48v40h40"/>
<line x1="104" y1="128" x2="152" y2="128"/>
<line x1="104" y1="160" x2="176" y2="160"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 382 B

After

Width:  |  Height:  |  Size: 482 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#db2777"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#db2777"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#fbcfe8" fill-opacity="0.18"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#fbcfe8" fill-opacity="0.18"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<line x1="128" y1="40" x2="128" y2="216" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 144 128 216 200 144" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M72 184 120 64h16l48 120"/>
<line x1="96" y1="136" x2="160" y2="136"/>
<line x1="192" y1="64" x2="192" y2="112"/>
<line x1="168" y1="88" x2="216" y2="88"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 564 B

After

Width:  |  Height:  |  Size: 497 B

View file

@ -1,7 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#be123c"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#be123c"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#fda4af" fill-opacity="0.16"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#fda4af" fill-opacity="0.16"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="#ffffff">
<polygon points="128 160 96 160 96 128 192 32 224 64 128 160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="56" x2="200" y2="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,128v80a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M73 184 119 68h18l46 116h-20l-11-30H104l-11 30zm38-48h34l-17-46z"/>
<path d="M163 180c-13 0-23-8-23-20 0-14 13-21 32-21h12v-3c0-10-6-16-18-16-8 0-15 3-22 8l-8-13c9-7 20-11 33-11 22 0 35 12 35 32v48h-18l-1-9c-5 4-12 5-22 5zm6-15c9 0 15-4 15-11v-3h-10c-10 0-15 3-15 9 0 4 4 5 10 5z"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 756 B

After

Width:  |  Height:  |  Size: 545 B

View file

@ -1,7 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#7c3aed"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#7c3aed"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#ddd6fe" fill-opacity="0.18"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#ddd6fe" fill-opacity="0.18"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<line x1="152" y1="104" x2="176" y2="104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="104" x2="104" y2="104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="88" x2="88" y2="120" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M105.91,152,63.8,199.8a28,28,0,0,1-47.37-24.66L32.79,91a52,52,0,0,1,51.1-43H172a52,52,0,1,1,0,104Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M150.09,152l42.11,47.8a28,28,0,0,0,47.37-24.66L223.21,91" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M80 88h96a48 48 0 0 1 46 62l-12 40a20 20 0 0 1-34 8l-28-30h-40l-28 30a20 20 0 0 1-34-8l-12-40a48 48 0 0 1 46-62Z"/>
<line x1="80" y1="128" x2="112" y2="128"/>
<line x1="96" y1="112" x2="96" y2="144"/>
<line x1="160" y1="124" x2="160" y2="124" stroke-width="24"/>
<line x1="188" y1="140" x2="188" y2="140" stroke-width="24"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 666 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#67e8f9" fill-opacity="0.14"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#67e8f9" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M64,76a52,52,0,0,1,104,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,224,42.68,174a20,20,0,0,1,34.64-20L96,184V76a20,20,0,0,1,40,0v56a20,20,0,0,1,40,0v16a20,20,0,0,1,40,0v36c0,24-8,40-8,40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M96 144V80a16 16 0 0 1 32 0v48"/>
<path d="M128 128V96a16 16 0 0 1 32 0v40"/>
<path d="M160 136v-24a16 16 0 0 1 32 0v48a56 56 0 0 1-56 56h-8a56 56 0 0 1-56-56v-16a16 16 0 0 1 32 0v8"/>
<circle cx="112" cy="48" r="16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 650 B

After

Width:  |  Height:  |  Size: 560 B

View file

@ -1,7 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#334155"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#334155"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#94a3b8" fill-opacity="0.14"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#94a3b8" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="24" y="56" width="208" height="144" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="128" x2="200" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="96" x2="200" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="160" x2="64" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="160" x2="160" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="160" x2="200" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="36" y="76" width="184" height="112" rx="20"/>
<line x1="76" y1="112" x2="76.01" y2="112" stroke-width="20"/>
<line x1="112" y1="112" x2="112.01" y2="112" stroke-width="20"/>
<line x1="148" y1="112" x2="148.01" y2="112" stroke-width="20"/>
<line x1="184" y1="112" x2="184.01" y2="112" stroke-width="20"/>
<line x1="88" y1="152" x2="168" y2="152"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 688 B

View file

@ -1,7 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0369a1"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#0369a1"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#7dd3fc" fill-opacity="0.14"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#7dd3fc" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="14">
<circle cx="128" cy="128" r="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,128c0,64-40,96-40,96s-40-32-40-96,40-96,40-96S168,64,168,128Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="37.46" y1="96" x2="218.54" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="37.46" y1="160" x2="218.54" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="128" cy="128" r="72"/>
<ellipse cx="128" cy="128" rx="32" ry="72"/>
<line x1="56" y1="128" x2="200" y2="128"/>
<path d="M72 92c14 10 35 16 56 16s42-6 56-16"/>
<path d="M72 164c14-10 35-16 56-16s42 6 56 16"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 883 B

After

Width:  |  Height:  |  Size: 552 B

View file

@ -1,7 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#475569"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#475569"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#cbd5e1" fill-opacity="0.14"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#cbd5e1" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="56" y="24" width="144" height="208" rx="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="112" x2="128" y2="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="112" x2="200" y2="112" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <rect x="80" y="44" width="96" height="168" rx="48"/>
<line x1="128" y1="44" x2="128" y2="96"/>
<line x1="80" y1="104" x2="176" y2="104"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 716 B

After

Width:  |  Height:  |  Size: 471 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#7c3aed"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#7c3aed"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#ddd6fe" fill-opacity="0.18"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#ddd6fe" fill-opacity="0.18"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M96,192a32,32,0,0,0,64,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,104a72,72,0,0,1,144,0c0,35.82,8.3,64.6,14.9,76A8,8,0,0,1,208,192H48a8,8,0,0,1-6.88-12C47.71,168.6,56,139.81,56,104Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <path d="M64 184h128"/>
<path d="M88 184V112a40 40 0 0 1 80 0v72"/>
<path d="M112 208a24 24 0 0 0 32 0"/>
<path d="M128 56V40"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 646 B

After

Width:  |  Height:  |  Size: 461 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#475569"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#475569"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#cbd5e1" fill-opacity="0.14"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#cbd5e1" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="40" y="144" width="176" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="48" width="176" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="80" r="12"/><circle cx="180" cy="176" r="12"/> <rect x="52" y="84" width="88" height="88" rx="16"/>
<rect x="160" y="64" width="44" height="128" rx="22"/>
<line x1="182" y1="64" x2="182" y2="104"/>
<line x1="76" y1="200" x2="116" y2="200"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 651 B

After

Width:  |  Height:  |  Size: 526 B

View file

@ -1,7 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#4f46e5"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#4f46e5"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#c7d2fe" fill-opacity="0.18"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#c7d2fe" fill-opacity="0.18"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="128" cy="128" r="40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M41.43,178.09A99.14,99.14,0,0,1,31.36,153.8l16.78-21a81.59,81.59,0,0,1,0-9.64l-16.77-21a99.43,99.43,0,0,1,10.05-24.3l26.71-3a81,81,0,0,1,6.81-6.81l3-26.7A99.14,99.14,0,0,1,102.2,31.36l21,16.78a81.59,81.59,0,0,1,9.64,0l21-16.77a99.43,99.43,0,0,1,24.3,10.05l3,26.71a81,81,0,0,1,6.81,6.81l26.7,3a99.14,99.14,0,0,1,10.07,24.29l-16.78,21a81.59,81.59,0,0,1,0,9.64l16.77,21a99.43,99.43,0,0,1-10,24.3l-26.71,3a81,81,0,0,1-6.81,6.81l-3,26.7a99.14,99.14,0,0,1-24.29,10.07l-21-16.78a81.59,81.59,0,0,1-9.64,0l-21,16.77a99.43,99.43,0,0,1-24.3-10l-3-26.71a81,81,0,0,1-6.81-6.81Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="128" cy="128" r="40"/>
<path d="M128 48v24"/>
<path d="M128 184v24"/>
<path d="M48 128h24"/>
<path d="M184 128h24"/>
<path d="M72 72l17 17"/>
<path d="M167 167l17 17"/>
<path d="M184 72l-17 17"/>
<path d="M89 167l-17 17"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 567 B

View file

@ -1,7 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#4f46e5"/> <rect x="24" y="24" width="208" height="208" rx="56" fill="#4f46e5"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#c4b5fd" fill-opacity="0.15"/> <rect x="40" y="40" width="176" height="176" rx="44" fill="#c4b5fd" fill-opacity="0.15"/>
<g style="color:#ffffff" fill="currentColor"> <g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="112" cy="112" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.57" y1="168.57" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/> <circle cx="112" cy="112" r="52"/>
<line x1="152" y1="152" x2="196" y2="196"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 562 B

After

Width:  |  Height:  |  Size: 411 B

Some files were not shown because too many files have changed in this diff Show more