diff options
Diffstat (limited to 'util')
-rw-r--r-- | util/gradientgen/.gitignore | 2 | ||||
-rw-r--r-- | util/gradientgen/README | 11 | ||||
-rw-r--r-- | util/gradientgen/WEBGRADIENTS_LICENSE.txt | 21 | ||||
-rw-r--r-- | util/gradientgen/gradientgen.cpp | 299 | ||||
-rwxr-xr-x | util/gradientgen/gradientgen.js | 2 | ||||
-rw-r--r-- | util/gradientgen/gradientgen.pro | 3 | ||||
-rw-r--r-- | util/gradientgen/qt_attribution.json | 16 | ||||
-rw-r--r-- | util/gradientgen/tobinaryjson.cpp | 54 | ||||
-rw-r--r-- | util/gradientgen/tobinaryjson.pro | 3 | ||||
-rw-r--r-- | util/gradientgen/webgradients.css | 909 |
10 files changed, 1261 insertions, 59 deletions
diff --git a/util/gradientgen/.gitignore b/util/gradientgen/.gitignore index 1a8e824bee..fe8e7fe4cf 100644 --- a/util/gradientgen/.gitignore +++ b/util/gradientgen/.gitignore @@ -1,2 +1,2 @@ node_modules -tobinaryjson +gradientgen diff --git a/util/gradientgen/README b/util/gradientgen/README new file mode 100644 index 0000000000..a0944b6ea9 --- /dev/null +++ b/util/gradientgen/README @@ -0,0 +1,11 @@ +Regeneration of gradients: + +0) Grab a new .css for the webgradients +1) Run the gradientgen.js script (requires node): + + gradientgen.js enum webgradients.css # will regen the enumeration names (on stdout) + gradientgen.js json webgradients.css # will regen the actual gradients (on stdout) + +2) Build gradientgen.pro +3) Run gradientgen, passing the json as stdin, the result will be on stdout + diff --git a/util/gradientgen/WEBGRADIENTS_LICENSE.txt b/util/gradientgen/WEBGRADIENTS_LICENSE.txt new file mode 100644 index 0000000000..1a4d527a4d --- /dev/null +++ b/util/gradientgen/WEBGRADIENTS_LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 itmeo + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/util/gradientgen/gradientgen.cpp b/util/gradientgen/gradientgen.cpp new file mode 100644 index 0000000000..5dc0b53b9d --- /dev/null +++ b/util/gradientgen/gradientgen.cpp @@ -0,0 +1,299 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Copyright (C) 2019 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the utils of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <iostream> +#include <string> +#include <algorithm> + +#include <QByteArray> +#include <QVector> +#include <QJsonDocument> +#include <QJsonArray> +#include <QJsonObject> +#include <QJsonValue> +#include <QDebug> + +#include <QColor> + +using namespace std; + +static const char LICENSE_HEADER[] = +R"(/**************************************************************************** +** +** Copyright (C) 2019 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtGui module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/)"; + +class Printer { + Q_DISABLE_COPY_MOVE(Printer) +public: + Printer() = default; + + class Indenter + { + Q_DISABLE_COPY_MOVE(Indenter) + Printer &p; + public: + Indenter(Printer &p) : p(p) { p.indent(); } + ~Indenter() { p.deindent(); } + }; + + ~Printer() + { + cout << flush; + } + + void printLine(const QString &str) const + { + printLine(qPrintable(str)); + } + + void printLine(const char *str = nullptr) const + { + if (str) + cout << m_indentString << str << '\n'; + else + cout << '\n'; + } + + void indent() + { + m_indent += 4; + m_indentString = std::string(m_indent, ' '); + } + + void deindent() + { + m_indent -= 4; + m_indentString = std::string(m_indent, ' '); + } + +private: + int m_indent = 0; + std::string m_indentString; +}; + +// like QGradientStop, but with a plain int as second field +struct GradientStop +{ + double position; + int color; + + static bool sortByPosition(GradientStop s1, GradientStop s2) + { + return s1.position < s2.position; + } +}; + +static void printGradientStops(Printer &p, const QJsonArray &presets) +{ + const QString presetCaseString("case QGradient::%1:"); + const QString presetStopColorString("QColor(%1, %2, %3, %4)"); + const QString presetStopString("QGradientStop(%1, %2), "); + + const auto presetStopToGradientStop = [](const QJsonValue &presetStop) + { + const double position = presetStop[QLatin1String("position")].toDouble(); + const int color = presetStop[QLatin1String("color")].toInt(); + + return GradientStop{position, color}; + }; + + for (const QJsonValue &presetValue : presets) { + if (!presetValue.isObject()) + continue; + + QJsonObject preset = presetValue.toObject(); + + // print the case label + const QString presetName = preset[QLatin1String("name")].toString(); + p.printLine(presetCaseString.arg(presetName)); + + Printer::Indenter i(p); + + // convert the json array of stops to QGradientStop objects + const QJsonArray stops = preset[QLatin1String("stops")].toArray(); + Q_ASSERT(!stops.isEmpty()); + + QVector<GradientStop> gradientStops; + gradientStops.reserve(stops.size()); + std::transform(stops.cbegin(), + stops.cend(), + std::back_inserter(gradientStops), + presetStopToGradientStop); + + // stops should be sorted, but just in case... + std::sort(gradientStops.begin(), gradientStops.end(), + &GradientStop::sortByPosition); + + Q_ASSERT(gradientStops.size() == stops.size()); + + // convert to strings + QString result; + result.reserve(result.size() + gradientStops.size() * (presetStopString.size() + 20)); + result += "return Q_ARRAY_LITERAL(QGradientStop, "; + + for (const GradientStop &stop : qAsConst(gradientStops)) { + // gradientgen.js does not output the alpha channel, so hardcode full alpha here + Q_ASSERT(qAlpha(stop.color) == 0); + + const QString colorString = presetStopColorString + .arg(qRed(stop.color)) + .arg(qGreen(stop.color)) + .arg(qBlue(stop.color)) + .arg(255); + result += presetStopString.arg(stop.position).arg(colorString); + } + + result.chop(2); + result += ");"; + p.printLine(result); + } + + // Add an entry for NumPresets, to silence warnings about switches over enumerations + p.printLine(presetCaseString.arg("NumPresets")); + { + Printer::Indenter i(p); + p.printLine("Q_UNREACHABLE();"); + } +} + +static void printGradientData(Printer &p, const QJsonArray &presets) +{ + const QString formatString("{ { %1, %2, %3, %4 } },"); + + for (const QJsonValue &presetValue : presets) { + if (!presetValue.isObject()) { + p.printLine("{ { 0, 0, 0, 0 } },"); + } else { + QJsonObject preset = presetValue.toObject(); + const QJsonValue start = preset[QLatin1String("start")]; + const QJsonValue end = preset[QLatin1String("end")]; + + p.printLine(formatString + .arg(start[QLatin1String("x")].toDouble()) + .arg(start[QLatin1String("y")].toDouble()) + .arg(end[QLatin1String("x")].toDouble()) + .arg(end[QLatin1String("y")].toDouble())); + } + } +} + +int main() +{ + QByteArray json; + while (!cin.eof()) { + char arr[1024]; + cin.read(arr, sizeof(arr)); + json.append(arr, cin.gcount()); + } + + QJsonParseError error; + QJsonDocument jsonDocument = QJsonDocument::fromJson(json, &error); + if (jsonDocument.isNull()) + qFatal("Error: %s at offset %d", qPrintable(error.errorString()), error.offset); + + if (!jsonDocument.isArray()) + qFatal("Error: expected a document with a JSON array"); + + QJsonArray presets = jsonDocument.array(); + + Printer p; + + p.printLine(LICENSE_HEADER); + p.printLine(); + p.printLine("// This file is auto-generated by gradientgen. DO NOT EDIT!"); + p.printLine(); + + p.printLine("static QArrayDataPointerRef<QGradientStop> qt_preset_gradient_stops(QGradient::Preset preset)"); + p.printLine("{"); + { + Printer::Indenter i(p); + p.printLine("Q_ASSERT(preset < QGradient::NumPresets);"); + p.printLine("switch (preset) {"); + printGradientStops(p, presets); + p.printLine("}"); + p.printLine("Q_UNREACHABLE();"); + p.printLine("return {};"); + } + p.printLine("}"); + p.printLine(); + + p.printLine("static Q_CONSTEXPR QGradient::QGradientData qt_preset_gradient_data[] = {"); + { + Printer::Indenter i(p); + printGradientData(p, presets); + } + p.printLine("};"); + p.printLine(); + + p.printLine("static void *qt_preset_gradient_dummy()"); + p.printLine("{"); + { + Printer::Indenter i(p); + p.printLine("union {void *p; uint i;};"); + p.printLine("p = 0;"); + p.printLine("i |= uint(QGradient::ObjectMode);"); + p.printLine("return p;"); + } + p.printLine("}"); +} diff --git a/util/gradientgen/gradientgen.js b/util/gradientgen/gradientgen.js index 434f05b2bb..5d5b6a692a 100755 --- a/util/gradientgen/gradientgen.js +++ b/util/gradientgen/gradientgen.js @@ -112,7 +112,7 @@ fs.readFile(filename, (err, css) => { stops.push({ color, position }) }); - gradients[gradients.length - 1] = { start, end, stops }; + gradients[gradients.length - 1] = { name, start, end, stops }; }); if (!gradients[gradients.length - 1]) diff --git a/util/gradientgen/gradientgen.pro b/util/gradientgen/gradientgen.pro new file mode 100644 index 0000000000..18ebc870f0 --- /dev/null +++ b/util/gradientgen/gradientgen.pro @@ -0,0 +1,3 @@ +SOURCES += gradientgen.cpp +QT = core gui +CONFIG += cmdline diff --git a/util/gradientgen/qt_attribution.json b/util/gradientgen/qt_attribution.json new file mode 100644 index 0000000000..e3a70a7404 --- /dev/null +++ b/util/gradientgen/qt_attribution.json @@ -0,0 +1,16 @@ +[ + { + "Id": "webgradients", + "Name": "WebGradients", + "QDocModule": "qtgui", + "QtUsage": "Used in Qt GUI to provide presets for QGradient.", + "Files": "webgradients.css", + + "Description": "WebGradients is a free collection of 180 linear gradients.", + "Homepage": "https://webgradients.com/", + "License": "MIT License", + "LicenseId": "MIT", + "LicenseFile": "WEBGRADIENTS_LICENSE.txt", + "Copyright": "Copyright (c) 2017 itmeo" + } +] diff --git a/util/gradientgen/tobinaryjson.cpp b/util/gradientgen/tobinaryjson.cpp deleted file mode 100644 index 65fe07f4b8..0000000000 --- a/util/gradientgen/tobinaryjson.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2018 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the utils of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <iostream> - -#include <qdebug.h> -#include <qjsondocument.h> - -using namespace std; - -int main() -{ - QByteArray json; - while (!cin.eof()) { - char arr[1024]; - cin.read(arr, sizeof(arr)); - json.append(arr, cin.gcount()); - } - - QJsonParseError error; - QJsonDocument document = QJsonDocument::fromJson(json, &error); - if (document.isNull()) { - qDebug() << "error:" << qPrintable(error.errorString()) << "at offset" << error.offset; - return 1; - } - - QByteArray binaryJson = document.toBinaryData(); - cout.write(binaryJson.constData(), binaryJson.size()); -} diff --git a/util/gradientgen/tobinaryjson.pro b/util/gradientgen/tobinaryjson.pro deleted file mode 100644 index 8aa9d0d008..0000000000 --- a/util/gradientgen/tobinaryjson.pro +++ /dev/null @@ -1,3 +0,0 @@ -SOURCES += tobinaryjson.cpp -QT = core -CONFIG += cmdline diff --git a/util/gradientgen/webgradients.css b/util/gradientgen/webgradients.css new file mode 100644 index 0000000000..870866bb46 --- /dev/null +++ b/util/gradientgen/webgradients.css @@ -0,0 +1,909 @@ +/*001 Warm Flame*/ +.warm_flame{ + background-image: linear-gradient(45deg, #ff9a9e 0%, #fad0c4 99%, #fad0c4 100%); +} + +/*002 Night Fade*/ +.night_fade{ + background-image: linear-gradient(to top, #a18cd1 0%, #fbc2eb 100%); +} + +/*003 Spring Warmth*/ +.spring_warmth{ + background-image: linear-gradient(to top, #fad0c4 0%, #fad0c4 1%, #ffd1ff 100%); +} + +/*004 Juicy Peach*/ +.juicy_peach{ + background-image: linear-gradient(to right, #ffecd2 0%, #fcb69f 100%); +} + +/*005 Young Passion*/ +.young_passion{ + background-image: linear-gradient(to right, #ff8177 0%, #ff867a 0%, #ff8c7f 21%, #f99185 52%, #cf556c 78%, #b12a5b 100%); +} + +/*006 Lady Lips*/ +.lady_lips{ + background-image: linear-gradient(to top, #ff9a9e 0%, #fecfef 99%, #fecfef 100%); +} + +/*007 Sunny Morning*/ +.sunny_morning{ + background-image: linear-gradient(120deg, #f6d365 0%, #fda085 100%); +} + +/*008 Rainy Ashville*/ +.rainy_ashville{ + background-image: linear-gradient(to top, #fbc2eb 0%, #a6c1ee 100%); +} + +/*009 Frozen Dreams*/ +.frozen_dreams{ + background-image: linear-gradient(to top, #fdcbf1 0%, #fdcbf1 1%, #e6dee9 100%); +} + +/*010 Winter Neva*/ +.winter_neva{ + background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%); +} + +/*011 Dusty Grass*/ +.dusty_grass{ + background-image: linear-gradient(120deg, #d4fc79 0%, #96e6a1 100%); +} + +/*012 Tempting Azure*/ +.tempting_azure{ + background-image: linear-gradient(120deg, #84fab0 0%, #8fd3f4 100%); +} + +/*013 Heavy Rain*/ +.heavy_rain{ + background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%); +} + +/*014 Amy Crisp*/ +.amy_crisp{ + background-image: linear-gradient(120deg, #a6c0fe 0%, #f68084 100%); +} + +/*015 Mean Fruit*/ +.mean_fruit{ + background-image: linear-gradient(120deg, #fccb90 0%, #d57eeb 100%); +} + +/*016 Deep Blue*/ +.deep_blue{ + background-image: linear-gradient(120deg, #e0c3fc 0%, #8ec5fc 100%); +} + +/*017 Ripe Malinka*/ +.ripe_malinka{ + background-image: linear-gradient(120deg, #f093fb 0%, #f5576c 100%); +} + +/*018 Cloudy Knoxville*/ +.cloudy_knoxville{ + background-image: linear-gradient(120deg, #fdfbfb 0%, #ebedee 100%); +} + +/*019 Malibu Beach*/ +.malibu_beach{ + background-image: linear-gradient(to right, #4facfe 0%, #00f2fe 100%); +} + +/*020 New Life*/ +.new_life{ + background-image: linear-gradient(to right, #43e97b 0%, #38f9d7 100%); +} + +/*021 True Sunset*/ +.true_sunset{ + background-image: linear-gradient(to right, #fa709a 0%, #fee140 100%); +} + +/*022 Morpheus Den*/ +.morpheus_den{ + background-image: linear-gradient(to top, #30cfd0 0%, #330867 100%); +} + +/*023 Rare Wind*/ +.rare_wind{ + background-image: linear-gradient(to top, #a8edea 0%, #fed6e3 100%); +} + +/*024 Near Moon*/ +.near_moon{ + background-image: linear-gradient(to top, #5ee7df 0%, #b490ca 100%); +} + +/*025 Wild Apple*/ +.wild_apple{ + background-image: linear-gradient(to top, #d299c2 0%, #fef9d7 100%); +} + +/*026 Saint Petersburg*/ +.saint_petersburg{ + background-image: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); +} + +/*027 Arielle's Smile*/ +.arielles_smile{ + background-image: radial-gradient(circle 248px at center, #16d9e3 0%, #30c7ec 47%, #46aef7 100%); +} + +/*028 Plum Plate*/ +.plum_plate{ + background-image: linear-gradient(135deg, #667eea 0%, #764ba2 100%); +} + +/*029 Everlasting Sky*/ +.everlasting_sky{ + background-image: linear-gradient(135deg, #fdfcfb 0%, #e2d1c3 100%); +} + +/*030 Happy Fisher*/ +.happy_fisher{ + background-image: linear-gradient(120deg, #89f7fe 0%, #66a6ff 100%); +} + +/*031 Blessing*/ +.blessing{ + background-image: linear-gradient(to top, #fddb92 0%, #d1fdff 100%); +} + +/*032 Sharpeye Eagle*/ +.sharpeye_eagle{ + background-image: linear-gradient(to top, #9890e3 0%, #b1f4cf 100%); +} + +/*033 Ladoga Bottom*/ +.ladoga_bottom{ + background-image: linear-gradient(to top, #ebc0fd 0%, #d9ded8 100%); +} + +/*034 Lemon Gate*/ +.lemon_gate{ + background-image: linear-gradient(to top, #96fbc4 0%, #f9f586 100%); +} + +/*035 Itmeo Branding*/ +.itmeo_branding{ + background-image: linear-gradient(180deg, #2af598 0%, #009efd 100%); +} + +/*036 Zeus Miracle*/ +.zeus_miracle{ + background-image: linear-gradient(to top, #cd9cf2 0%, #f6f3ff 100%); +} + +/*037 Old Hat*/ +.old_hat{ + background-image: linear-gradient(to right, #e4afcb 0%, #b8cbb8 0%, #b8cbb8 0%, #e2c58b 30%, #c2ce9c 64%, #7edbdc 100%); +} + +/*038 Star Wine*/ +.star_wine{ + background-image: linear-gradient(to right, #b8cbb8 0%, #b8cbb8 0%, #b465da 0%, #cf6cc9 33%, #ee609c 66%, #ee609c 100%); +} + +/*039 Deep Blue*/ +.deep_blue{ + background-image: linear-gradient(to right, #6a11cb 0%, #2575fc 100%); +} + +/*040 Coup de Grace*/ +.coup_de_grace{ + background: #DCD9D4 linear-gradient(to bottom, rgba(255, 255, 255, 0.50) 0%, rgba(0, 0, 0, 0.50) 100%), radial-gradient(at 50% 0%, rgba(255, 255, 255, 0.10) 0%, rgba(0, 0, 0, 0.50) 50%); + background-blend-mode: soft-light,screen; +} + +/*041 Happy Acid*/ +.happy_acid{ + background-image: linear-gradient(to top, #37ecba 0%, #72afd3 100%); +} + +/*042 Awesome Pine*/ +.awesome_pine{ + background-image: linear-gradient(to top, #ebbba7 0%, #cfc7f8 100%); +} + +/*043 New York*/ +.new_york{ + background-image: linear-gradient(to top, #fff1eb 0%, #ace0f9 100%); +} + +/*044 Shy Rainbow*/ +.shy_rainbow{ + background-image: linear-gradient(to right, #eea2a2 0%, #bbc1bf 19%, #57c6e1 42%, #b49fda 79%, #7ac5d8 100%); +} + +/*045 Loon Crest*/ +.loon_crest{ + background: linear-gradient(to bottom, rgba(255,255,255,0.15) 0%, rgba(0,0,0,0.15) 100%), radial-gradient(at top center, rgba(255,255,255,0.40) 0%, rgba(0,0,0,0.40) 120%) #989898; + background-blend-mode: multiply,multiply; +} + +/*046 Mixed Hopes*/ +.mixed_hopes{ + background-image: linear-gradient(to top, #c471f5 0%, #fa71cd 100%); +} + +/*047 Fly High*/ +.fly_high{ + background-image: linear-gradient(to top, #48c6ef 0%, #6f86d6 100%); +} + +/*048 Strong Bliss*/ +.strong_bliss{ + background-image: linear-gradient(to right, #f78ca0 0%, #f9748f 19%, #fd868c 60%, #fe9a8b 100%); +} + +/*049 Fresh Milk*/ +.fresh_milk{ + background-image: linear-gradient(to top, #feada6 0%, #f5efef 100%); +} + +/*050 Snow Again*/ +.snow_again{ + background-image: linear-gradient(to top, #e6e9f0 0%, #eef1f5 100%); +} + +/*051 February Ink*/ +.february_ink{ + background-image: linear-gradient(to top, #accbee 0%, #e7f0fd 100%); +} + +/*052 Kind Steel*/ +.kind_steel{ + background-image: linear-gradient(-20deg, #e9defa 0%, #fbfcdb 100%); +} + +/*053 Soft Grass*/ +.soft_grass{ + background-image: linear-gradient(to top, #c1dfc4 0%, #deecdd 100%); +} + +/*054 Grown Early*/ +.grown_early{ + background-image: linear-gradient(to top, #0ba360 0%, #3cba92 100%); +} + +/*055 Sharp Blues*/ +.sharp_blues{ + background-image: linear-gradient(to top, #00c6fb 0%, #005bea 100%); +} + +/*056 Shady Water*/ +.shady_water{ + background-image: linear-gradient(to right, #74ebd5 0%, #9face6 100%); +} + +/*057 Dirty Beauty*/ +.dirty_beauty{ + background-image: linear-gradient(to top, #6a85b6 0%, #bac8e0 100%); +} + +/*058 Great Whale*/ +.great_whale{ + background-image: linear-gradient(to top, #a3bded 0%, #6991c7 100%); +} + +/*059 Teen Notebook*/ +.teen_notebook{ + background-image: linear-gradient(to top, #9795f0 0%, #fbc8d4 100%); +} + +/*060 Polite Rumors*/ +.polite_rumors{ + background-image: linear-gradient(to top, #a7a6cb 0%, #8989ba 52%, #8989ba 100%); +} + +/*061 Sweet Period*/ +.sweet_period{ + background-image: linear-gradient(to top, #3f51b1 0%, #5a55ae 13%, #7b5fac 25%, #8f6aae 38%, #a86aa4 50%, #cc6b8e 62%, #f18271 75%, #f3a469 87%, #f7c978 100%); +} + +/*062 Wide Matrix*/ +.wide_matrix{ + background-image: linear-gradient(to top, #fcc5e4 0%, #fda34b 15%, #ff7882 35%, #c8699e 52%, #7046aa 71%, #0c1db8 87%, #020f75 100%); +} + +/*063 Soft Cherish*/ +.soft_cherish{ + background-image: linear-gradient(to top, #dbdcd7 0%, #dddcd7 24%, #e2c9cc 30%, #e7627d 46%, #b8235a 59%, #801357 71%, #3d1635 84%, #1c1a27 100%); +} + +/*064 Red Salvation*/ +.red_salvation{ + background-image: linear-gradient(to top, #f43b47 0%, #453a94 100%); +} + +/*065 Burning Spring*/ +.burning_spring{ + background-image: linear-gradient(to top, #4fb576 0%, #44c489 30%, #28a9ae 46%, #28a2b7 59%, #4c7788 71%, #6c4f63 86%, #432c39 100%); +} + +/*066 Night Party*/ +.night_party{ + background-image: linear-gradient(to top, #0250c5 0%, #d43f8d 100%); +} + +/*067 Sky Glider*/ +.sky_glider{ + background-image: linear-gradient(to top, #88d3ce 0%, #6e45e2 100%); +} + +/*068 Heaven Peach*/ +.heaven_peach{ + background-image: linear-gradient(to top, #d9afd9 0%, #97d9e1 100%); +} + +/*069 Purple Division*/ +.purple_division{ + background-image: linear-gradient(to top, #7028e4 0%, #e5b2ca 100%); +} + +/*070 Aqua Splash*/ +.aqua_splash{ + background-image: linear-gradient(15deg, #13547a 0%, #80d0c7 100%); +} + +/*071 Above Clouds*/ +.above_clouds{ + background-image: linear-gradient(to left, #BDBBBE 0%, #9D9EA3 100%), radial-gradient(88% 271%, rgba(255, 255, 255, 0.25) 0%, rgba(254, 254, 254, 0.25) 1%, rgba(0, 0, 0, 0.25) 100%), radial-gradient(50% 100%, rgba(255, 255, 255, 0.30) 0%, rgba(0, 0, 0, 0.30) 100%); + background-blend-mode: normal, lighten, soft-light; +} + +/*072 Spiky Naga*/ +.spiky_naga{ + background-image: linear-gradient(to top, #505285 0%, #585e92 12%, #65689f 25%, #7474b0 37%, #7e7ebb 50%, #8389c7 62%, #9795d4 75%, #a2a1dc 87%, #b5aee4 100%); +} + +/*073 Love Kiss*/ +.love_kiss{ + background-image: linear-gradient(to top, #ff0844 0%, #ffb199 100%); +} + +/*074 Sharp Glass*/ +.sharp_glass{ + background: #C9CCD3 linear-gradient(-180deg, rgba(255, 255, 255, 0.50) 0%, rgba(0, 0, 0, 0.50) 100%); + background-blend-mode: lighten; +} + +/*075 Clean Mirror*/ +.clean_mirror{ + background-image: linear-gradient(45deg, #93a5cf 0%, #e4efe9 100%); +} + +/*076 Premium Dark*/ +.premium_dark{ + background-image: linear-gradient(to right, #434343 0%, black 100%); +} + +/*077 Cold Evening*/ +.cold_evening{ + background-image: linear-gradient(to top, #0c3483 0%, #a2b6df 100%, #6b8cce 100%, #a2b6df 100%); +} + +/*078 Cochiti Lake*/ +.cochiti_lake{ + background-image: linear-gradient(45deg, #93a5cf 0%, #e4efe9 100%); +} + +/*079 Summer Games*/ +.summer_games{ + background-image: linear-gradient(to right, #92fe9d 0%, #00c9ff 100%); +} + +/*080 Passionate Bed*/ +.passionate_bed{ + background-image: linear-gradient(to right, #ff758c 0%, #ff7eb3 100%); +} + +/*081 Mountain Rock*/ +.mountain_rock{ + background-image: linear-gradient(to right, #868f96 0%, #596164 100%); +} + +/*082 Desert Hump*/ +.desert_hump{ + background-image: linear-gradient(to top, #c79081 0%, #dfa579 100%); +} + +/*083 Jungle Day*/ +.jungle_day{ + background-image: linear-gradient(45deg, #8baaaa 0%, #ae8b9c 100%); +} + +/*084 Phoenix Start*/ +.phoenix_start{ + background-image: linear-gradient(to right, #f83600 0%, #f9d423 100%); +} + +/*085 October Silence*/ +.october_silence{ + background-image: linear-gradient(-20deg, #b721ff 0%, #21d4fd 100%); +} + +/*086 Faraway River*/ +.faraway_river{ + background-image: linear-gradient(-20deg, #6e45e2 0%, #88d3ce 100%); +} + +/*087 Alchemist Lab*/ +.alchemist_lab{ + background-image: linear-gradient(-20deg, #d558c8 0%, #24d292 100%); +} + +/*088 Over Sun*/ +.over_sun{ + background-image: linear-gradient(60deg, #abecd6 0%, #fbed96 100%); +} + +/*089 Premium White*/ +.premium_white{ + background-image: linear-gradient(to top, #d5d4d0 0%, #d5d4d0 1%, #eeeeec 31%, #efeeec 75%, #e9e9e7 100%); +} + +/*090 Mars Party*/ +.mars_party{ + background-image: linear-gradient(to top, #5f72bd 0%, #9b23ea 100%); +} + +/*091 Eternal Constance*/ +.eternal_constance{ + background-image: linear-gradient(to top, #09203f 0%, #537895 100%); +} + +/*092 Japan Blush*/ +.japan_blush{ + background-image: linear-gradient(-20deg, #ddd6f3 0%, #faaca8 100%, #faaca8 100%); +} + +/*093 Smiling Rain*/ +.smiling_rain{ + background-image: linear-gradient(-20deg, #dcb0ed 0%, #99c99c 100%); +} + +/*094 Cloudy Apple*/ +.cloudy_apple{ + background-image: linear-gradient(to top, #f3e7e9 0%, #e3eeff 99%, #e3eeff 100%); +} + +/*095 Big Mango*/ +.big_mango{ + background-image: linear-gradient(to top, #c71d6f 0%, #d09693 100%); +} + +/*096 Healthy Water*/ +.healthy_water{ + background-image: linear-gradient(60deg, #96deda 0%, #50c9c3 100%); +} + +/*097 Amour Amour*/ +.amour_amour{ + background-image: linear-gradient(to top, #f77062 0%, #fe5196 100%); +} + +/*098 Risky Concrete*/ +.risky_concrete{ + background-image: linear-gradient(to top, #c4c5c7 0%, #dcdddf 52%, #ebebeb 100%); +} + +/*099 Strong Stick*/ +.strong_stick{ + background-image: linear-gradient(to right, #a8caba 0%, #5d4157 100%); +} + +/*100 Vicious Stance*/ +.vicious_stance{ + background-image: linear-gradient(60deg, #29323c 0%, #485563 100%); +} + +/*101 Palo Alto*/ +.palo_alto{ + background-image: linear-gradient(-60deg, #16a085 0%, #f4d03f 100%); +} + +/*102 Happy Memories*/ +.happy_memories{ + background-image: linear-gradient(-60deg, #ff5858 0%, #f09819 100%); +} + +/*103 Midnight Bloom*/ +.midnight_bloom{ + background-image: linear-gradient(-20deg, #2b5876 0%, #4e4376 100%); +} + +/*104 Crystalline*/ +.crystalline{ + background-image: linear-gradient(-20deg, #00cdac 0%, #8ddad5 100%); +} + +/*105 Raccoon Back*/ +.raccoon_back{ + background: linear-gradient(-180deg, #BCC5CE 0%, #929EAD 98%), radial-gradient(at top left, rgba(255,255,255,0.30) 0%, rgba(0,0,0,0.30) 100%); + background-blend-mode: screen; +} + +/*106 Party Bliss*/ +.party_bliss{ + background-image: linear-gradient(to top, #4481eb 0%, #04befe 100%); +} + +/*107 Confident Cloud*/ +.confident_cloud{ + background-image: linear-gradient(to top, #dad4ec 0%, #dad4ec 1%, #f3e7e9 100%); +} + +/*108 Le Cocktail*/ +.le_cocktail{ + background-image: linear-gradient(45deg, #874da2 0%, #c43a30 100%); +} + +/*109 River City*/ +.river_city{ + background-image: linear-gradient(to top, #4481eb 0%, #04befe 100%); +} + +/*110 Frozen Berry*/ +.frozen_berry{ + background-image: linear-gradient(to top, #e8198b 0%, #c7eafd 100%); +} + +/*111 Elegance*/ +.elegance{ + background-image: radial-gradient(73% 147%, #EADFDF 59%, #ECE2DF 100%), radial-gradient(91% 146%, rgba(255,255,255,0.50) 47%, rgba(0,0,0,0.50) 100%); + background-blend-mode: screen; +} + +/*112 Child Care*/ +.child_care{ + background-image: linear-gradient(-20deg, #f794a4 0%, #fdd6bd 100%); +} + +/*113 Flying Lemon*/ +.flying_lemon{ + background-image: linear-gradient(60deg, #64b3f4 0%, #c2e59c 100%); +} + +/*114 New Retrowave*/ +.new_retrowave{ + background-image: linear-gradient(to top, #3b41c5 0%, #a981bb 49%, #ffc8a9 100%); +} + +/*115 Hidden Jaguar*/ +.hidden_jaguar{ + background-image: linear-gradient(to top, #0fd850 0%, #f9f047 100%); +} + +/*116 Above The Sky*/ +.above_the_sky{ + background-image: linear-gradient(to top, lightgrey 0%, lightgrey 1%, #e0e0e0 26%, #efefef 48%, #d9d9d9 75%, #bcbcbc 100%); +} + +/*117 Nega*/ +.nega{ + background-image: linear-gradient(45deg, #ee9ca7 0%, #ffdde1 100%); +} + +/*118 Dense Water*/ +.dense_water{ + background-image: linear-gradient(to right, #3ab5b0 0%, #3d99be 31%, #56317a 100%); +} + +/*119 Chemic Aqua*/ +.chemic_aqua{ + background: #CDDCDC radial-gradient(at 50% 100%, rgba(255, 255, 255, 0.50) 0%, rgba(0, 0, 0, 0.50) 100%), linear-gradient(to bottom, rgba(255, 255, 255, 0.25) 0%, rgba(0, 0, 0, 0.25) 100%); + background-blend-mode: screen, overlay; +} + +/*120 Seashore*/ +.seashore{ + background-image: linear-gradient(to top, #209cff 0%, #68e0cf 100%); +} + +/*121 Marble Wall*/ +.marble_wall{ + background-image: linear-gradient(to top, #bdc2e8 0%, #bdc2e8 1%, #e6dee9 100%); +} + +/*122 Cheerful Caramel*/ +.cheerful_caramel{ + background-image: linear-gradient(to top, #e6b980 0%, #eacda3 100%); +} + +/*123 Night Sky*/ +.night_sky{ + background-image: linear-gradient(to top, #1e3c72 0%, #1e3c72 1%, #2a5298 100%); +} + +/*124 Magic Lake*/ +.magic_lake{ + background-image: linear-gradient(to top, #d5dee7 0%, #ffafbd 0%, #c9ffbf 100%); +} + +/*125 Young Grass*/ +.young_grass{ + background-image: linear-gradient(to top, #9be15d 0%, #00e3ae 100%); +} + +/*126 Colorful Peach*/ +.colorful_peach{ + background-image: linear-gradient(to right, #ed6ea0 0%, #ec8c69 100%); +} + +/*127 Gentle Care*/ +.gentle_care{ + background-image: linear-gradient(to right, #ffc3a0 0%, #ffafbd 100%); +} + +/*128 Plum Bath*/ +.plum_bath{ + background-image: linear-gradient(to top, #cc208e 0%, #6713d2 100%); +} + +/*129 Happy Unicorn*/ +.happy_unicorn{ + background-image: linear-gradient(to top, #b3ffab 0%, #12fff7 100%); +} + +/*130 Full Metal*/ +.full_metal{ + background: linear-gradient(to bottom, #D5DEE7 0%, #E8EBF2 50%, #E2E7ED 100%), linear-gradient(to bottom, rgba(0,0,0,0.02) 50%, rgba(255,255,255,0.02) 61%, rgba(0,0,0,0.02) 73%), linear-gradient(33deg, rgba(255,255,255,0.20) 0%, rgba(0,0,0,0.20) 100%); + background-blend-mode: normal,color-burn; +} + +/*131 African Field*/ +.african_field{ + background-image: linear-gradient(to top, #65bd60 0%, #5ac1a8 25%, #3ec6ed 50%, #b7ddb7 75%, #fef381 100%); +} + +/*132 Solid Stone*/ +.solid_stone{ + background-image: linear-gradient(to right, #243949 0%, #517fa4 100%); +} + +/*133 Orange Juice*/ +.orange_juice{ + background-image: linear-gradient(-20deg, #fc6076 0%, #ff9a44 100%); +} + +/*134 Glass Water*/ +.glass_water{ + background-image: linear-gradient(to top, #dfe9f3 0%, white 100%); +} + +/*135 Slick Carbon*/ +.slick_carbon{ + background: linear-gradient(to bottom, #323232 0%, #3F3F3F 40%, #1C1C1C 150%), linear-gradient(to top, rgba(255,255,255,0.40) 0%, rgba(0,0,0,0.25) 200%); + background-blend-mode: multiply; +} + +/*136 North Miracle*/ +.north_miracle{ + background-image: linear-gradient(to right, #00dbde 0%, #fc00ff 100%); +} + +/*137 Fruit Blend*/ +.fruit_blend{ + background-image: linear-gradient(to right, #f9d423 0%, #ff4e50 100%); +} + +/*138 Millennium Pine*/ +.millennium_pine{ + background-image: linear-gradient(to top, #50cc7f 0%, #f5d100 100%); +} + +/*139 High Flight*/ +.high_flight{ + background-image: linear-gradient(to right, #0acffe 0%, #495aff 100%); +} + +/*140 Mole Hall*/ +.mole_hall{ + background-image: linear-gradient(-20deg, #616161 0%, #9bc5c3 100%); +} + +/*141 Earl Gray*/ +.earl_gray{ + background: #E4E4E1 radial-gradient(at top center, rgba(255, 255, 255, 0.03) 0%, rgba(0, 0, 0, 0.03) 100%), linear-gradient(to top, rgba(255, 255, 255, 0.1) 0%, rgba(143, 152, 157, 0.60) 100%); + background-blend-mode: normal, multiply; +} + +/*142 Space Shift*/ +.space_shift{ + background-image: linear-gradient(60deg, #3d3393 0%, #2b76b9 37%, #2cacd1 65%, #35eb93 100%); +} + +/*143 Forest Inei*/ +.forest_inei{ + background-image: linear-gradient(to top, #df89b5 0%, #bfd9fe 100%); +} + +/*144 Royal Garden*/ +.royal_garden{ + background-image: linear-gradient(to right, #ed6ea0 0%, #ec8c69 100%); +} + +/*145 Rich Metal*/ +.rich_metal{ + background-image: linear-gradient(to right, #d7d2cc 0%, #304352 100%); +} + +/*146 Juicy Cake*/ +.juicy_cake{ + background-image: linear-gradient(to top, #e14fad 0%, #f9d423 100%); +} + +/*147 Smart Indigo*/ +.smart_indigo{ + background-image: linear-gradient(to top, #b224ef 0%, #7579ff 100%); +} + +/*148 Sand Strike*/ +.sand_strike{ + background-image: linear-gradient(to right, #c1c161 0%, #c1c161 0%, #d4d4b1 100%); +} + +/*149 Norse Beauty*/ +.norse_beauty{ + background-image: linear-gradient(to right, #ec77ab 0%, #7873f5 100%); +} + +/*150 Aqua Guidance*/ +.aqua_guidance{ + background-image: linear-gradient(to top, #007adf 0%, #00ecbc 100%); +} + +/*151 Sun Veggie*/ +.sun_veggie{ + background-image: linear-gradient(-225deg, #20E2D7 0%, #F9FEA5 100%); +} + +/*152 Sea Lord*/ +.sea_lord{ + background-image: linear-gradient(-225deg, #2CD8D5 0%, #C5C1FF 56%, #FFBAC3 100%); +} + +/*153 Black Sea*/ +.black_sea{ + background-image: linear-gradient(-225deg, #2CD8D5 0%, #6B8DD6 48%, #8E37D7 100%); +} + +/*154 Grass Shampoo*/ +.grass_shampoo{ + background-image: linear-gradient(-225deg, #DFFFCD 0%, #90F9C4 48%, #39F3BB 100%); +} + +/*155 Landing Aircraft*/ +.landing_aircraft{ + background-image: linear-gradient(-225deg, #5D9FFF 0%, #B8DCFF 48%, #6BBBFF 100%); +} + +/*156 Witch Dance*/ +.witch_dance{ + background-image: linear-gradient(-225deg, #A8BFFF 0%, #884D80 100%); +} + +/*157 Sleepless Night*/ +.sleepless_night{ + background-image: linear-gradient(-225deg, #5271C4 0%, #B19FFF 48%, #ECA1FE 100%); +} + +/*158 Angel Care*/ +.angel_care{ + background-image: linear-gradient(-225deg, #FFE29F 0%, #FFA99F 48%, #FF719A 100%); +} + +/*159 Crystal River*/ +.crystal_river{ + background-image: linear-gradient(-225deg, #22E1FF 0%, #1D8FE1 48%, #625EB1 100%); +} + +/*160 Soft Lipstick*/ +.soft_lipstick{ + background-image: linear-gradient(-225deg, #B6CEE8 0%, #F578DC 100%); +} + +/*161 Salt Mountain*/ +.salt_mountain{ + background-image: linear-gradient(-225deg, #FFFEFF 0%, #D7FFFE 100%); +} + +/*162 Perfect White*/ +.perfect_white{ + background-image: linear-gradient(-225deg, #E3FDF5 0%, #FFE6FA 100%); +} + +/*163 Fresh Oasis*/ +.fresh_oasis{ + background-image: linear-gradient(-225deg, #7DE2FC 0%, #B9B6E5 100%); +} + +/*164 Strict November*/ +.strict_november{ + background-image: linear-gradient(-225deg, #CBBACC 0%, #2580B3 100%); +} + +/*165 Morning Salad*/ +.morning_salad{ + background-image: linear-gradient(-225deg, #B7F8DB 0%, #50A7C2 100%); +} + +/*166 Deep Relief*/ +.deep_relief{ + background-image: linear-gradient(-225deg, #7085B6 0%, #87A7D9 50%, #DEF3F8 100%); +} + +/*167 Sea Strike*/ +.sea_strike{ + background-image: linear-gradient(-225deg, #77FFD2 0%, #6297DB 48%, #1EECFF 100%); +} + +/*168 Night Call*/ +.night_call{ + background-image: linear-gradient(-225deg, #AC32E4 0%, #7918F2 48%, #4801FF 100%); +} + +/*169 Supreme Sky*/ +.supreme_sky{ + background-image: linear-gradient(-225deg, #D4FFEC 0%, #57F2CC 48%, #4596FB 100%); +} + +/*170 Light Blue*/ +.light_blue{ + background-image: linear-gradient(-225deg, #9EFBD3 0%, #57E9F2 48%, #45D4FB 100%); +} + +/*171 Mind Crawl*/ +.mind_crawl{ + background-image: linear-gradient(-225deg, #473B7B 0%, #3584A7 51%, #30D2BE 100%); +} + +/*172 Lily Meadow*/ +.lily_meadow{ + background-image: linear-gradient(-225deg, #65379B 0%, #886AEA 53%, #6457C6 100%); +} + +/*173 Sugar Lollipop*/ +.sugar_lollipop{ + background-image: linear-gradient(-225deg, #A445B2 0%, #D41872 52%, #FF0066 100%); +} + +/*174 Sweet Dessert*/ +.sweet_dessert{ + background-image: linear-gradient(-225deg, #7742B2 0%, #F180FF 52%, #FD8BD9 100%); +} + +/*175 Magic Ray*/ +.magic_ray{ + background-image: linear-gradient(-225deg, #FF3CAC 0%, #562B7C 52%, #2B86C5 100%); +} + +/*176 Teen Party*/ +.teen_party{ + background-image: linear-gradient(-225deg, #FF057C 0%, #8D0B93 50%, #321575 100%); +} + +/*177 Frozen Heat*/ +.frozen_heat{ + background-image: linear-gradient(-225deg, #FF057C 0%, #7C64D5 48%, #4CC3FF 100%); +} + +/*178 Gagarin View*/ +.gagarin_view{ + background-image: linear-gradient(-225deg, #69EACB 0%, #EACCF8 48%, #6654F1 100%); +} + +/*179 Fabled Sunset*/ +.fabled_sunset{ + background-image: linear-gradient(-225deg, #231557 0%, #44107A 29%, #FF1361 67%, #FFF800 100%); +} + +/*180 Perfect Blue*/ +.perfect_blue{ + background-image: linear-gradient(-225deg, #3D4E81 0%, #5753C9 48%, #6E7FF3 100%); +} |