Skip to content
Snippets Groups Projects
Unverified Commit be36ce80 authored by Kali Kaneko's avatar Kali Kaneko
Browse files

[ui] more dialogs

icons, new font
parent d6c712d1
No related branches found
No related tags found
No related merge requests found
Showing
with 217 additions and 53 deletions
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtQuick.Controls.Material 2.1
import "../themes/themes.js" as Theme
ThemedPage {
title: qsTr("About")
Rectangle {
anchors.horizontalCenter: parent.horizontalCenter
width: root.appWidth * 0.9
height: root.appHeight - 100
radius: 10
color: "white"
anchors {
fill: parent
margins: 10
}
Column {
id: aboutCol
padding: 20
width: parent.width
Text {
width: parent.width - 40
font.pixelSize: 11
wrapMode: Label.Wrap
text: getText()
anchors.horizontalCenter: parent.horizontalCenter
onLinkActivated: Qt.openUrlExternally(link)
}
VerticalSpacer {
visible: true
height: 20
}
Image {
height: 80
source: "../resources/icon-noshield.svg"
fillMode: Image.PreserveAspectFit
anchors.horizontalCenter: parent.horizontalCenter
}
TextEdit {
width: parent.width - 40
font.pixelSize: 10
readOnly: true
selectByMouse: true
text: getVersion()
anchors.horizontalCenter: parent.horizontalCenter
}
VerticalSpacer {
visible: true
height: 50
}
} // end column
} // end rectangle
function getText() {
var _name = ctx ? ctx.appName : "vpn"
var _provider = ctx ? ctx.provider : "unknown"
var _donateURL = ctx ? ctx.donateURL : ""
var _tosURL = ctx ? ctx.tosURL : ""
var _donateTXT = ""
if (_donateURL) {
//: donation text of the about dialog
_donateTXT = qsTr(
"<p>This service is paid for entirely by donations from users like you. <a href=\"%1\">Please donate</a>.</p>").arg(
_donateURL)
}
//: about dialog
//: %1 -> application name
//: %2 -> provider name
//: %3 -> donation text if activated
var _txt = qsTr(
"<p>%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.</p> %3 <p>By using this application, you agree to the <a href=\"%4\">Terms of Service</a>. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.</p>").arg(
_name).arg(_provider).arg(_donateTXT).arg(_tosURL)
return _txt
}
function getVersion() {
var _name = ctx ? ctx.appName : "vpn"
var _ver = ctx ? ctx.version : "unknown"
//: %1 -> application name
//: %2 -> version string
var _txt = qsTr("%1 version: %2").arg(_name).arg(_ver)
return _txt
}
}
...@@ -8,7 +8,7 @@ Label { ...@@ -8,7 +8,7 @@ Label {
font { font {
pixelSize: Theme.fontSize * 1.5 pixelSize: Theme.fontSize * 1.5
family: boldFont.name family: boldFontMonserrat.name
bold: true bold: true
} }
......
...@@ -21,9 +21,12 @@ ToolBar { ...@@ -21,9 +21,12 @@ ToolBar {
ToolButton { ToolButton {
id: gwButton id: gwButton
visible: hasMultipleGateways() visible: hasMultipleGateways()
anchors { anchors {
verticalCenter: parent.verticalCenter verticalCenter: parent.verticalCenter
leftMargin: 20 leftMargin: 10
// TODO discuss where this should be aligned
//leftMargin: 22
left: parent.left left: parent.left
verticalCenterOffset: 5 verticalCenterOffset: 5
} }
...@@ -40,6 +43,7 @@ ToolBar { ...@@ -40,6 +43,7 @@ ToolBar {
Label { Label {
id: locationLabel id: locationLabel
anchors.left: gwButton.right anchors.left: gwButton.right
anchors.leftMargin: -7
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenterOffset: 7 anchors.verticalCenterOffset: 7
text: locationStr() text: locationStr()
......
import QtQuick 2.9 import QtQuick 2.9
import QtQuick.Controls 2.2 import QtQuick.Controls 2.2
Page { ThemedPage {
title: qsTr("Help") title: qsTr("Help")
property var issueTracker: "https://0xacab.org/leap/bitmask-vpn/issues"
Column { Column {
anchors.centerIn: parent anchors.centerIn: parent
spacing: 10 spacing: 10
Button { Text {
font.pixelSize: 14
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("Donate") text: getDummyLink(qsTr("Troubleshooting and support"))
onClicked: stackView.push("Donate.qml") onLinkActivated: Qt.openUrlExternally(ctx.helpURL)
} }
Button { Text {
font.pixelSize: 14
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("Terms of Service") text: getDummyLink(qsTr("Report a bug"))
onClicked: stackView.push("Donate.qml") onLinkActivated: Qt.openUrlExternally(issueTracker)
} }
Button { Button {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("Contact Support") text: qsTr("Open logs")
onClicked: stackView.push("Donate.qml")
}
Button {
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("Report bug")
onClicked: stackView.push("Donate.qml")
} }
} }
function getDummyLink(text) {
return "<a href='#'>" + text + "</a>"
}
} }
...@@ -11,7 +11,7 @@ ErrorBox { ...@@ -11,7 +11,7 @@ ErrorBox {
name: "noerror" name: "noerror"
when: root.error == "" when: root.error == ""
PropertyChanges { PropertyChanges {
target: splashSpinner target: splashProgress
visible: true visible: true
} }
PropertyChanges { PropertyChanges {
...@@ -23,7 +23,7 @@ ErrorBox { ...@@ -23,7 +23,7 @@ ErrorBox {
name: "nohelpers" name: "nohelpers"
when: root.error == "nohelpers" when: root.error == "nohelpers"
PropertyChanges { PropertyChanges {
target: splashSpinner target: splashProgress
visible: false visible: false
} }
PropertyChanges { PropertyChanges {
......
...@@ -47,11 +47,13 @@ ThemedPage { ...@@ -47,11 +47,13 @@ ThemedPage {
height: 100 height: 100
radius: 10 radius: 10
color: "white" color: "white"
anchors { anchors {
horizontalCenter: parent.horizontalCenter horizontalCenter: parent.horizontalCenter
top: parent.top top: parent.top
margins: 10 margins: 10
} }
Rectangle { Rectangle {
anchors { anchors {
fill: parent fill: parent
......
...@@ -51,7 +51,7 @@ Page { ...@@ -51,7 +51,7 @@ Page {
text: qsTr("Donate") text: qsTr("Donate")
icon: "../resources/donate.svg" icon: "../resources/donate.svg"
triggered: function () { triggered: function () {
aboutDialog.open() donateDialog.open()
} }
} }
ListElement { ListElement {
...@@ -66,7 +66,8 @@ Page { ...@@ -66,7 +66,8 @@ Page {
text: qsTr("About") text: qsTr("About")
icon: "../resources/about.svg" icon: "../resources/about.svg"
triggered: function () { triggered: function () {
aboutDialog.open() stackView.push("About.qml")
settingsDrawer.close()
} }
} }
ListElement { ListElement {
...@@ -90,14 +91,53 @@ Page { ...@@ -90,14 +91,53 @@ Page {
} }
Dialog { Dialog {
id: aboutDialog id: donateDialog
title: qsTr("About") width: 350
Label { title: qsTr("Please donate!")
anchors.fill: parent standardButtons: Dialog.Ok
text: qsTr("RiseupVPN\nhttps://riseupvpn.net/vpn")
Text {
id: donateText
width: 300
wrapMode: Text.Wrap
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
anchors {
topMargin: 20
bottomMargin: 40
horizontalCenter: parent.horizontalCenter
}
font.pixelSize: 12
text: qsTr("This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts.")
} }
standardButtons: StandardButton.Ok Label {
id: donateURL
anchors {
top: donateText.bottom
topMargin: 20
horizontalCenter: parent.horizontalCenter
}
font.pixelSize: 14
text: getLink(ctx.donateURL)
onLinkActivated: Qt.openUrlExternally(ctx.donateURL)
}
Image {
height: 50
source: "../resources/donate.svg"
fillMode: Image.PreserveAspectFit
anchors {
topMargin: 20
top: donateURL.bottom
horizontalCenter: parent.horizontalCenter
}
}
onAccepted: Qt.openUrlExternally(ctx.donateURL)
}
function getLink(url) {
return "<a href='#'>" + url + "</a>"
} }
} }
...@@ -14,7 +14,7 @@ Page { ...@@ -14,7 +14,7 @@ Page {
VerticalSpacer { VerticalSpacer {
visible: true visible: true
height: root.height * 0.10 height: root.height * 0.25
} }
Image { Image {
...@@ -27,10 +27,11 @@ Page { ...@@ -27,10 +27,11 @@ Page {
VerticalSpacer { VerticalSpacer {
visible: true visible: true
height: root.height * 0.22 height: root.height * 0.05
} }
ProgressBar { ProgressBar {
id: splashProgress
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
indeterminate: true indeterminate: true
} }
......
...@@ -29,6 +29,7 @@ Item { ...@@ -29,6 +29,7 @@ Item {
height: 300 height: 300
radius: 10 radius: 10
antialiasing: true antialiasing: true
anchors { anchors {
fill: parent fill: parent
margins: 20 margins: 20
...@@ -76,7 +77,7 @@ Item { ...@@ -76,7 +77,7 @@ Item {
height: 45 height: 45
anchors { anchors {
top: statusBoxBackground.top top: statusBoxBackground.top
topMargin: 40 topMargin: 25
horizontalCenter: parent.horizontalCenter horizontalCenter: parent.horizontalCenter
} }
BoldLabel { BoldLabel {
...@@ -96,7 +97,7 @@ Item { ...@@ -96,7 +97,7 @@ Item {
VerticalSpacer { VerticalSpacer {
id: spacerPreImg id: spacerPreImg
visible: true visible: true
height: 150 height: 120
} }
Image { Image {
...@@ -110,7 +111,8 @@ Item { ...@@ -110,7 +111,8 @@ Item {
VerticalSpacer { VerticalSpacer {
id: spacerPostImg id: spacerPostImg
visible: true visible: true
height: 30 height: 20
Layout.alignment: Qt.AlignBottom
} }
MaterialButton { MaterialButton {
...@@ -128,7 +130,7 @@ Item { ...@@ -128,7 +130,7 @@ Item {
} }
onClicked: { onClicked: {
if (vpn.state === "on") { if (vpn.state === "on" | vpn.state === "starting") {
backend.switchOff() backend.switchOff()
} else if (vpn.state === "off") { } else if (vpn.state === "off") {
vpn.startingUI = true vpn.startingUI = true
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
<file>components/Home.qml</file> <file>components/Home.qml</file>
<file>components/Header.qml</file> <file>components/Header.qml</file>
<file>components/Footer.qml</file> <file>components/Footer.qml</file>
<file>components/About.qml</file>
<file>components/WrappedRadioButton.qml</file> <file>components/WrappedRadioButton.qml</file>
<file>components/StatusBox.qml</file> <file>components/StatusBox.qml</file>
<file>components/Spinner.qml</file> <file>components/Spinner.qml</file>
...@@ -54,8 +55,9 @@ ...@@ -54,8 +55,9 @@
<file>resources/alert.svg</file> <file>resources/alert.svg</file>
<!-- fonts --> <!-- fonts -->
<file alias="montserrat-light.ttf">resources/fonts/Montserrat-Regular.ttf</file> <file alias="poppins-light.ttf">resources/fonts/Poppins-Thin.ttf</file>
<file alias="montserrat-bold.ttf">resources/fonts/Montserrat-SemiBold.ttf</file> <file alias="poppins-bold.ttf">resources/fonts/Poppins-Light.ttf</file>
<file alias="monserrat-bold.ttf">resources/fonts/Montserrat-SemiBold.ttf</file>
<!-- begin, to remove --> <!-- begin, to remove -->
<file>qml/VpnState.qml</file> <file>qml/VpnState.qml</file>
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
- [x] font: monserrat - [x] font: monserrat
- [x] nested states - [x] nested states
- [x] splash init errors - [x] splash init errors
- [.] gateway selector - [x] gateway selector
- [ ] bridges - [ ] bridges
- [ ] minimize/hide from systray - [ ] minimize/hide from systray
- [ ] control actions from systray - [ ] control actions from systray
...@@ -29,14 +29,19 @@ import "./components" ...@@ -29,14 +29,19 @@ import "./components"
ApplicationWindow { ApplicationWindow {
id: root id: root
visible: true visible: true
width: 360
height: 520 property int appHeight: 460
minimumWidth: 300 property int appWidth: 260
maximumWidth: 300
minimumHeight: 500 width: appWidth
maximumHeight: 500 minimumWidth: appWidth
maximumWidth: appWidth
height: appHeight
minimumHeight: appHeight
maximumHeight: appHeight
title: ctx ? ctx.appName : "VPN" title: ctx ? ctx.appName : "VPN"
Material.accent: Material.Green Material.accent: Material.Green
...@@ -60,12 +65,17 @@ ApplicationWindow { ...@@ -60,12 +65,17 @@ ApplicationWindow {
FontLoader { FontLoader {
id: lightFont id: lightFont
source: "qrc:/montserrat-light.ttf" source: "qrc:/poppins-light.ttf"
} }
FontLoader { FontLoader {
id: boldFont id: boldFont
source: "qrc:/montserrat-bold.ttf" source: "qrc:/poppins-bold.ttf"
}
FontLoader {
id: boldFontMonserrat
source: "qrc:/monserrat-bold.ttf"
} }
font.family: lightFont.name font.family: lightFont.name
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
"apiURL": "https://api.black.riseup.net/", "apiURL": "https://api.black.riseup.net/",
"geolocationAPI": "https://api.black.riseup.net:9001/json", "geolocationAPI": "https://api.black.riseup.net:9001/json",
"caCertString": "-----BEGIN CERTIFICATE-----\nMIIFjTCCA3WgAwIBAgIBATANBgkqhkiG9w0BAQ0FADBZMRgwFgYDVQQKDA9SaXNl\ndXAgTmV0d29ya3MxGzAZBgNVBAsMEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UE\nAwwXUmlzZXVwIE5ldHdvcmtzIFJvb3QgQ0EwHhcNMTQwNDI4MDAwMDAwWhcNMjQw\nNDI4MDAwMDAwWjBZMRgwFgYDVQQKDA9SaXNldXAgTmV0d29ya3MxGzAZBgNVBAsM\nEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UEAwwXUmlzZXVwIE5ldHdvcmtzIFJv\nb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC76J4ciMJ8Sg0m\nTP7DF2DT9zNe0Csk4myoMFC57rfJeqsAlJCv1XMzBmXrw8wq/9z7XHv6n/0sWU7a\n7cF2hLR33ktjwODlx7vorU39/lXLndo492ZBhXQtG1INMShyv+nlmzO6GT7ESfNE\nLliFitEzwIegpMqxCIHXFuobGSCWF4N0qLHkq/SYUMoOJ96O3hmPSl1kFDRMtWXY\niw1SEKjUvpyDJpVs3NGxeLCaA7bAWhDY5s5Yb2fA1o8ICAqhowurowJpW7n5ZuLK\n5VNTlNy6nZpkjt1QycYvNycffyPOFm/Q/RKDlvnorJIrihPkyniV3YY5cGgP+Qkx\nHUOT0uLA6LHtzfiyaOqkXwc4b0ZcQD5Vbf6Prd20Ppt6ei0zazkUPwxld3hgyw58\nm/4UIjG3PInWTNf293GngK2Bnz8Qx9e/6TueMSAn/3JBLem56E0WtmbLVjvko+LF\nPM5xA+m0BmuSJtrD1MUCXMhqYTtiOvgLBlUm5zkNxALzG+cXB28k6XikXt6MRG7q\nhzIPG38zwkooM55yy5i1YfcIi5NjMH6A+t4IJxxwb67MSb6UFOwg5kFokdONZcwj\nshczHdG9gLKSBIvrKa03Nd3W2dF9hMbRu//STcQxOailDBQCnXXfAATj9pYzdY4k\nha8VCAREGAKTDAex9oXf1yRuktES4QIDAQABo2AwXjAdBgNVHQ4EFgQUC4tdmLVu\nf9hwfK4AGliaet5KkcgwDgYDVR0PAQH/BAQDAgIEMAwGA1UdEwQFMAMBAf8wHwYD\nVR0jBBgwFoAUC4tdmLVuf9hwfK4AGliaet5KkcgwDQYJKoZIhvcNAQENBQADggIB\nAGzL+GRnYu99zFoy0bXJKOGCF5XUXP/3gIXPRDqQf5g7Cu/jYMID9dB3No4Zmf7v\nqHjiSXiS8jx1j/6/Luk6PpFbT7QYm4QLs1f4BlfZOti2KE8r7KRDPIecUsUXW6P/\n3GJAVYH/+7OjA39za9AieM7+H5BELGccGrM5wfl7JeEz8in+V2ZWDzHQO4hMkiTQ\n4ZckuaL201F68YpiItBNnJ9N5nHr1MRiGyApHmLXY/wvlrOpclh95qn+lG6/2jk7\n3AmihLOKYMlPwPakJg4PYczm3icFLgTpjV5sq2md9bRyAg3oPGfAuWHmKj2Ikqch\nTd5CHKGxEEWbGUWEMP0s1A/JHWiCbDigc4Cfxhy56CWG4q0tYtnc2GMw8OAUO6Wf\nXu5pYKNkzKSEtT/MrNJt44tTZWbKV/Pi/N2Fx36my7TgTUj7g3xcE9eF4JV2H/sg\ntsK3pwE0FEqGnT4qMFbixQmc8bGyuakr23wjMvfO7eZUxBuWYR2SkcP26sozF9PF\ntGhbZHQVGZUTVPyvwahMUEhbPGVerOW0IYpxkm0x/eaWdTc4vPpf/rIlgbAjarnJ\nUN9SaWRlWKSdP4haujnzCoJbM7dU9bjvlGZNyXEekgeT0W2qFeGGp+yyUWw8tNsp\n0BuC1b7uW/bBn/xKm319wXVDvBgZgcktMolak39V7DVO\n-----END CERTIFICATE-----", "caCertString": "-----BEGIN CERTIFICATE-----\nMIIFjTCCA3WgAwIBAgIBATANBgkqhkiG9w0BAQ0FADBZMRgwFgYDVQQKDA9SaXNl\ndXAgTmV0d29ya3MxGzAZBgNVBAsMEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UE\nAwwXUmlzZXVwIE5ldHdvcmtzIFJvb3QgQ0EwHhcNMTQwNDI4MDAwMDAwWhcNMjQw\nNDI4MDAwMDAwWjBZMRgwFgYDVQQKDA9SaXNldXAgTmV0d29ya3MxGzAZBgNVBAsM\nEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UEAwwXUmlzZXVwIE5ldHdvcmtzIFJv\nb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC76J4ciMJ8Sg0m\nTP7DF2DT9zNe0Csk4myoMFC57rfJeqsAlJCv1XMzBmXrw8wq/9z7XHv6n/0sWU7a\n7cF2hLR33ktjwODlx7vorU39/lXLndo492ZBhXQtG1INMShyv+nlmzO6GT7ESfNE\nLliFitEzwIegpMqxCIHXFuobGSCWF4N0qLHkq/SYUMoOJ96O3hmPSl1kFDRMtWXY\niw1SEKjUvpyDJpVs3NGxeLCaA7bAWhDY5s5Yb2fA1o8ICAqhowurowJpW7n5ZuLK\n5VNTlNy6nZpkjt1QycYvNycffyPOFm/Q/RKDlvnorJIrihPkyniV3YY5cGgP+Qkx\nHUOT0uLA6LHtzfiyaOqkXwc4b0ZcQD5Vbf6Prd20Ppt6ei0zazkUPwxld3hgyw58\nm/4UIjG3PInWTNf293GngK2Bnz8Qx9e/6TueMSAn/3JBLem56E0WtmbLVjvko+LF\nPM5xA+m0BmuSJtrD1MUCXMhqYTtiOvgLBlUm5zkNxALzG+cXB28k6XikXt6MRG7q\nhzIPG38zwkooM55yy5i1YfcIi5NjMH6A+t4IJxxwb67MSb6UFOwg5kFokdONZcwj\nshczHdG9gLKSBIvrKa03Nd3W2dF9hMbRu//STcQxOailDBQCnXXfAATj9pYzdY4k\nha8VCAREGAKTDAex9oXf1yRuktES4QIDAQABo2AwXjAdBgNVHQ4EFgQUC4tdmLVu\nf9hwfK4AGliaet5KkcgwDgYDVR0PAQH/BAQDAgIEMAwGA1UdEwQFMAMBAf8wHwYD\nVR0jBBgwFoAUC4tdmLVuf9hwfK4AGliaet5KkcgwDQYJKoZIhvcNAQENBQADggIB\nAGzL+GRnYu99zFoy0bXJKOGCF5XUXP/3gIXPRDqQf5g7Cu/jYMID9dB3No4Zmf7v\nqHjiSXiS8jx1j/6/Luk6PpFbT7QYm4QLs1f4BlfZOti2KE8r7KRDPIecUsUXW6P/\n3GJAVYH/+7OjA39za9AieM7+H5BELGccGrM5wfl7JeEz8in+V2ZWDzHQO4hMkiTQ\n4ZckuaL201F68YpiItBNnJ9N5nHr1MRiGyApHmLXY/wvlrOpclh95qn+lG6/2jk7\n3AmihLOKYMlPwPakJg4PYczm3icFLgTpjV5sq2md9bRyAg3oPGfAuWHmKj2Ikqch\nTd5CHKGxEEWbGUWEMP0s1A/JHWiCbDigc4Cfxhy56CWG4q0tYtnc2GMw8OAUO6Wf\nXu5pYKNkzKSEtT/MrNJt44tTZWbKV/Pi/N2Fx36my7TgTUj7g3xcE9eF4JV2H/sg\ntsK3pwE0FEqGnT4qMFbixQmc8bGyuakr23wjMvfO7eZUxBuWYR2SkcP26sozF9PF\ntGhbZHQVGZUTVPyvwahMUEhbPGVerOW0IYpxkm0x/eaWdTc4vPpf/rIlgbAjarnJ\nUN9SaWRlWKSdP4haujnzCoJbM7dU9bjvlGZNyXEekgeT0W2qFeGGp+yyUWw8tNsp\n0BuC1b7uW/bBn/xKm319wXVDvBgZgcktMolak39V7DVO\n-----END CERTIFICATE-----",
"timeStamp": "2021-08-25 00:56:22" "timeStamp": "2021-09-16 17:22:20"
} }
] ]
} }
\ No newline at end of file
<?xml version="1.0" standalone="no"?> <?xml version='1.0' encoding='iso-8859-1'?>
<svg width="1024px" height="1024px" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" class="icon"> <!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
<path d="M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zm-334-74c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm-138-70c38.6 0 70 31.4 70 70v70h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70zM180 482V378h298v104H180zm48 68h250v308H228V550zm568 308H546V550h250v308zm48-376H546V378h298v104z"/> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 449.266 449.266" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 449.266 449.266">
<g>
<path d="m0,162.677c1.471-7.672 2.659-15.411 4.468-23.001 4.669-19.586 14.721-36.449 27.524-51.675 16.709-19.87 38.465-32.482 62.675-40.637 8.353-2.814 17.695-3.199 26.638-3.652 18.842-0.955 37.613-0.287 55.572,6.583 14.91,5.704 30.113,10.913 41.032,23.648 16.92-19.999 36.441-36.317 60.027-46.447 12.027-5.166 25.635-6.879 38.676-9.388 13.591-2.615 27.112-1.139 40.261,3.191 16.364,5.389 31.001,12.737 43.184,26.065 15.368,16.811 28.572,34.731 37.842,55.362 9.344,20.794 12.648,42.712 10.93,65.634-3.164,42.205-20.91,78.961-41.387,114.809-13.325,23.326-30.344,43.968-47.652,64.329-19.597,23.054-39.643,45.727-59.548,68.518-3.76,4.305-7.264,9.076-11.785,12.416-7.268,5.37-15.815,4.838-23.723,1.5-21.905-9.246-43.803-18.547-65.371-28.544-34.706-16.086-67.663-35.396-98.008-58.645-28.136-21.556-55.436-44.294-74.035-75.377-11.468-19.168-20.81-39.222-24.84-61.381-1.131-6.219-1.67-12.545-2.48-18.822 0-8.162 0-16.324 0-24.486zm138.093,118.407c0.798,0.049 1.597,0.098 2.395,0.147 0,2.093 0.282,4.23-0.044,6.271-2.958,18.517-6.069,37.011-8.975,55.536-0.25,1.596 0.076,4.171 1.122,4.933 5.693,4.145 11.696,7.864 17.813,11.875 3.782-20.45 7.414-40.086 11.046-59.722 0.816,0.104 1.632,0.209 2.448,0.313 3.69,21.588-6.297,41.888-7.588,63.512 6.1,3.017 12.435,6.151 19.356,9.575 0.534-17.943 2.253-34.93 6.903-51.596 1.294,4.038 1.505,8.007 1.254,11.947-0.718,11.255-1.11,22.569-2.639,33.721-0.999,7.29 1.874,10.644 8.054,13.312 27.057,11.685 54.067,23.485 80.912,35.646 5.566,2.522 8.832,1.563 12.667-2.846 12.496-14.368 25.695-28.134 37.992-42.665 17.168-20.287 34.472-40.524 50.457-61.733 29.574-39.238 52.764-81.684 60.977-131.008 3.612-21.694 2.07-42.988-5.508-63.548-7.515-20.391-19.57-37.989-33.886-54.446-10.653-12.247-22.702-20.907-38.049-26.045-14.674-4.912-29.379-4.857-44.163-2.506-12.976,2.064-25.656,5.14-37.222,12.332-16.857,10.482-32.584,22.14-45.908,36.935-5.756,6.392-7.795,6.488-14.974,1.486-5.733-3.995-11.054-8.809-17.244-11.874-15.132-7.492-30.697-14.43-47.942-14.91-13.772-0.383-28.119-1.981-41.261,1.062-36.026,8.343-62.722,29.891-80.286,62.742-9.521,17.807-12.187,36.847-11.692,56.546 0.251,9.977 1.408,19.931 2.156,29.895 6.996-18.871 11.089-38.264 19.718-56.249 0.663,3.048 0.665,5.967-0.062,8.692-4.731,17.734-9.652,35.416-14.424,53.139-0.711,2.642-1.995,5.746-1.239,8.055 2.75,8.395 6.254,16.542 9.474,24.783-0.004-19.996 13.682-63.895 21.754-66.771 0.071,0.547 0.304,1.107 0.181,1.574-5.599,21.333-11.2,42.665-16.917,63.966-0.388,1.447-1.675,2.652-2.952,4.589 2.849,4.983 6.17,10.79 9.708,16.977 5.582-23.415 11.955-45.637 20.018-67.32 0.947,0.235 1.894,0.471 2.841,0.706-0.908,4.953-1.48,9.996-2.785,14.842-4.633,17.202-9.585,34.318-14.228,51.517-0.679,2.517-1.435,6.01-0.264,7.844 3.593,5.626 8.106,10.665 12.416,16.127 1.821-8.665 3.142-16.663 5.225-24.458 3.073-11.499 6.578-22.888 10.152-34.244 0.836-2.658 2.686-4.997 4.069-7.483 0.668,0.273 1.337,0.545 2.005,0.818-0.185,1.672-0.174,3.394-0.585,5.009-4.02,15.816-8.143,31.607-12.173,47.42-4.55,17.851-4.278,18.864 7.809,29.365 2.162,1.878 4.535,3.512 6.942,5.359 3.763-31.091 12.602-64.735 18.446-68.037-0.305,3.505-0.256,6.623-0.887,9.597-4.164,19.626-8.484,39.22-12.713,58.832-0.25,1.157-0.691,2.969-0.128,3.496 4.727,4.412 9.668,8.595 14.581,12.88 3.488-21.351 7.569-41.653 13.545-61.555 3.454,8.652 0.594,16.914-0.768,25.161-1.918,11.608-4.526,23.1-6.551,34.693-0.403,2.306-0.416,5.915 0.954,7.074 4.826,4.081 10.332,7.356 16.043,11.253 3.929-21.481 5.576-42.61 12.624-62.538z"/>
<path d="m323.215,180.532c-11.437,0.54-21.869-7.32-24.496-19.698-2.074-9.769 0.643-20.268 14.992-27.034 16.595-7.825 38.338,2.266 41.542,19.456 1.241,6.661-1.597,12.154-5.984,16.317-6.883,6.532-14.978,11.249-26.054,10.959z"/>
<path d="m138.898,167.131c10.239,0.462 18.598,4.189 24.964,12.702 8.553,11.437 4.653,30.666-13.57,34.835-11.712,2.68-22.732-0.233-30.92-9.83-6.064-7.108-7.682-15.335-4.207-24.161 3.714-9.432 12.03-12.042 20.963-13.526 0.9-0.15 1.846-0.02 2.77-0.02z"/>
<path d="m233.191,201.992c-18.463-0.352-33.732-13.583-33.995-29.657-0.069-4.211 0.406-8.07 5.452-8.782 4.457-0.629 6.549,2.393 7.9,6.115 2.375,6.541 5.583,12.351 12.453,15.308 7.538,3.245 14.041,1.509 20.36-3.255 6.251-4.712 6.39-11.098 4.713-17.471-1.391-5.288 0.388-8.403 4.769-10.206 4.253-1.75 9.037,1.207 10.836,6.156 7.199,19.813-5.703,34.627-22.764,40.173-3.09,1.006-6.475,1.103-9.724,1.619z"/>
<path d="m201.168,384.698c-0.87-2.062-2.637-4.202-2.466-6.174 1.224-14.102 2.828-28.172 4.369-42.246 0.096-0.879 0.683-1.705 1.041-2.555 0.868,0.363 1.736,0.726 2.604,1.088-1.047,16.37-2.093,32.739-3.14,49.109-0.803,0.26-1.605,0.519-2.408,0.778z"/>
<path d="m222.055,387.444c-4.873-5.745-5.046-15.022-1.052-37.842 3.141,2.956 4.044,30.448 1.052,37.842z"/>
<path d="m240.862,361.741c-0.458,6.595-0.916,13.19-1.402,20.177-4.79-3.306-4.603-11.907-0.192-20.378 0.531,0.067 1.062,0.134 1.594,0.201z"/>
<path d="m257.434,380.447c-4.179-5.294-3.756-9.74 1.05-14.765-0.375,5.277-0.661,9.306-1.05,14.765z"/>
</g>
</svg> </svg>
File deleted
File added
File added
<?xml version="1.0" standalone="no"?> <svg width="21px" height="21px" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="8"/><circle cx="10.5" cy="10.5" r="4"/><path d="m13.5 7.5 2.5-2.5"/><path d="m13.5 13.5 2.5 2.5"/><path d="m7.5 13.5-2.5 2.5"/><path d="m7.5 7.5-2.5-2.5"/></g></svg>
<svg width="1024px" height="1024px" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" class="icon"> \ No newline at end of file
<path d="M824.2 699.9a301.55 301.55 0 0 0-86.4-60.4C783.1 602.8 812 546.8 812 484c0-110.8-92.4-201.7-203.2-200-109.1 1.7-197 90.6-197 200 0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C345 754.6 314 826.8 312 903.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5A226.62 226.62 0 0 1 612 684c60.9 0 118.2 23.7 161.3 66.8C814.5 792 838 846.3 840 904.3c.1 4.3 3.7 7.7 8 7.7h56a8 8 0 0 0 8-8.2c-2-77-33-149.2-87.8-203.9zM612 612c-34.2 0-66.4-13.3-90.5-37.5a126.86 126.86 0 0 1-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4 0 34.2-13.3 66.3-37.5 90.5A127.3 127.3 0 0 1 612 612zM361.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 0 1-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 0 0 8 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7z"/>
</svg>
...@@ -48,7 +48,7 @@ const blueButton = { ...@@ -48,7 +48,7 @@ const blueButton = {
"focusBorder": blueFocusBorder, "focusBorder": blueFocusBorder,
}; };
const buttonFontSize = 20; const buttonFontSize = 18;
const buttonColor = "#eeeeee"; const buttonColor = "#eeeeee";
const bgColor = "#f3f3f3"; const bgColor = "#f3f3f3";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment