diff --git a/config.sample.json b/config.sample.json index 9cb2b5e727..016517cd2c 100644 --- a/config.sample.json +++ b/config.sample.json @@ -1,6 +1,10 @@ { "default_hs_url": "https://matrix.org", "default_is_url": "https://vector.im", + "disable_custom_urls": false, + "disable_guests": false, + "disable_login_language_selector": false, + "disable_3pid_login": false, "brand": "Riot", "integrations_ui_url": "https://scalar.vector.im/", "integrations_rest_url": "https://scalar.vector.im/api", @@ -10,6 +14,8 @@ "feature_pinning": "labs" }, "default_federate": true, + "welcomePageUrl": "home.html", + "default_theme": "light", "roomDirectory": { "servers": [ "matrix.org" diff --git a/docs/skinning thoughts.md b/docs/skinning thoughts.md new file mode 100644 index 0000000000..bbaf18a284 --- /dev/null +++ b/docs/skinning thoughts.md @@ -0,0 +1,68 @@ +== Skinning refactor == + +matrix-react-sdk + - base images + - base CSS + - all the components needed to build a workable app (including the top layer) + +riot-web: the riot skin + - riot-specific classes (e.g. login header/footer) + - riot-specific themes + - light + - dark + +i.e. the only things which should go into riot-web are bits which apply vector-specific skinning +specifically "Stuff that any other brand would not want to use. (e.g. riot logos, links, T&Cs)" + - Questions: + - Electron app? (should probably be a separate repo in its own right? but might as well go here for now) + - index.html & index.js? (should be in matrix-react-sdk, given the SDK is useless without them?) + +ideally matrix-react-sdk itself should ship with a default skin which actually works built in. + +status skin (can go in the same app for now) + - has status theme + - which inherits from riot light theme + - how do we share graphics between skins? + - shove them into react-sdk, or... + - guess we do ../../vector/img + - this means keeping the skin name in the images (unless /img is a shortcut to the right skin's images) + +out of scope: + - making the components more independent, so they can be used in isolation. + - that said, the bits which should probably be used by being embeded into a different app: + - login/reg + - RoomView + RoomSettings + - MessageComposer + - RoomList + - MemberList + - MemberInfo + - Voip UI + - UserSettings + - sharing different js-sdks between the different isolated modules + +other changes: + - how do we handle i18n? + - each skin should really be its own i18n project. As long as all the commonality stuff is in matrix-react-sdk this shouldn't be too bad. + - ability to associate components with a given skin + - skins/vector/src <-- components + - skins/vector/css + - skins/vector/img + - skins/vector/fonts + - gather together themes (per skin) into a single place too + - skins/vector/themes/foo/css + - skins/vector/themes/foo/img + - skins/vector/themes/foo/fonts + - ideally riot-web would contain almost nothing but skins/vector directory. + - ability to entirely replace CSS rather than override it for a given theme + - e.g. if we replace `Login.js` with `StatusLogin.js`, then we should similarly be able to replace `_Login.scss` with `_StatusLogin.scss`. + +random thoughts; + - should we be able to change the entire skin at runtime (more like wordpress) - to the extent of replacing entire components? + - might pose security issues if a theme can be swapped out to replace MatrixChat or other fundamental functionality at runtime + - if so, perhaps skins & themes should converge... + +----------------- + +Immediate plan for Status: + * Implement it as a theme for the riot skin + * Ideally move skins to a sensible level (possibly even including src?) diff --git a/electron_app/package.json b/electron_app/package.json index 8494b2163f..403d059c55 100644 --- a/electron_app/package.json +++ b/electron_app/package.json @@ -2,7 +2,7 @@ "name": "riot-web", "productName": "Riot", "main": "src/electron-main.js", - "version": "0.12.7", + "version": "0.13.0-rc.1", "description": "A feature-rich client for Matrix.org", "author": "Vector Creations Ltd.", "dependencies": { diff --git a/package.json b/package.json index 7c48a8fe21..1f673c389c 100644 --- a/package.json +++ b/package.json @@ -68,8 +68,8 @@ "gfm.css": "^1.1.1", "highlight.js": "^9.0.0", "linkifyjs": "^2.1.3", - "matrix-js-sdk": "0.8.5", - "matrix-react-sdk": "0.10.7", + "matrix-js-sdk": "0.9.0-rc.1", + "matrix-react-sdk": "0.11.0-rc.1", "modernizr": "^3.1.0", "pako": "^1.0.5", "prop-types": "^15.5.10", diff --git a/res/home-status.html b/res/home-status.html new file mode 100644 index 0000000000..7d50470a22 --- /dev/null +++ b/res/home-status.html @@ -0,0 +1,192 @@ + + +
+
+
+

Welcome to Status Community Chat, powered by Riot.

+

For contributors, developers and Ethereum-enthusiasts who care about the movement for decentralization.

+
+
+ +
+

Our rooms

+

Please abide by the channels discussion categories and remain on topic to the specific category details listed.

+

Before posting please refer to our Code of Conduct

+
+ + +
+ + #announcements + Company wide announcements. + Join +
+
+ + #introductions + Newcomer introductions. + Join +
+
+ + #general + General discussions of Status. + Join +
+
+ + #dev-status + Contributing to our codebase? Building a DApp or a chatbot? We're here to help. + Join +
+
+ + #news-articles + Share news, articles related to Ethereum or projects you're excited about + Join +
+
+

+ Interested in market and cryptocurrency type discussions? +

+ Join Telegram +
+
diff --git a/scripts/copy-res.js b/scripts/copy-res.js index b461d030fd..1a68581444 100755 --- a/scripts/copy-res.js +++ b/scripts/copy-res.js @@ -42,10 +42,11 @@ const INCLUDE_LANGS = [ const COPY_LIST = [ ["res/manifest.json", "webapp"], ["res/home.html", "webapp"], + ["res/home-status.html", "webapp"], ["res/home/**", "webapp/home"], ["res/{media,vector-icons}/**", "webapp"], ["res/flags/*", "webapp/flags/"], - ["src/skins/vector/{fonts,img}/**", "webapp"], + ["src/skins/vector/{fonts,img,themes}/**", "webapp"], ["node_modules/emojione/assets/svg/*", "webapp/emojione/svg/"], ["node_modules/emojione/assets/png/*", "webapp/emojione/png/"], ["./config.json", "webapp", { directwatch: 1 }], diff --git a/src/components/structures/BottomLeftMenu.js b/src/components/structures/BottomLeftMenu.js index 5511cc8c8a..3aab61a150 100644 --- a/src/components/structures/BottomLeftMenu.js +++ b/src/components/structures/BottomLeftMenu.js @@ -170,9 +170,6 @@ module.exports = React.createClass({ const GroupsButton = sdk.getComponent('elements.GroupsButton'); const SettingsButton = sdk.getComponent('elements.SettingsButton'); - const groupsButton = SettingsStore.isFeatureEnabled('feature_groups') ? - : null; - return (
@@ -186,12 +183,12 @@ module.exports = React.createClass({
- { groupsButton } +
); - } + }, }); diff --git a/src/components/structures/RightPanel.js b/src/components/structures/RightPanel.js index dedd715f9c..240a5b2efe 100644 --- a/src/components/structures/RightPanel.js +++ b/src/components/structures/RightPanel.js @@ -127,8 +127,9 @@ module.exports = React.createClass({ }, _initGroupStore(groupId) { + if (!groupId) return; this._groupStore = GroupStoreCache.getGroupStore( - this.context.matrixClient, this.props.groupId, + this.context.matrixClient, groupId, ); this._groupStore.registerListener(this.onGroupStoreUpdated); }, diff --git a/src/components/views/globals/NewVersionBar.js b/src/components/views/globals/NewVersionBar.js index f56d1a51b7..2aedf39204 100644 --- a/src/components/views/globals/NewVersionBar.js +++ b/src/components/views/globals/NewVersionBar.js @@ -42,7 +42,7 @@ export default React.createClass({ const QuestionDialog = sdk.getComponent('dialogs.QuestionDialog'); Modal.createTrackedDialog('Display release notes', '', QuestionDialog, { title: _t("What's New"), - description:
{releaseNotes}
, + description:
{releaseNotes}
, button: _t("Update"), onFinished: (update) => { if(update && PlatformPeg.get()) { diff --git a/src/components/views/login/VectorLoginFooter.js b/src/components/views/login/VectorLoginFooter.js index b04dcdb597..e5243f8ec6 100644 --- a/src/components/views/login/VectorLoginFooter.js +++ b/src/components/views/login/VectorLoginFooter.js @@ -18,6 +18,7 @@ limitations under the License. var React = require('react'); import { _t } from 'matrix-react-sdk/lib/languageHandler'; +import UserSettingsStore from 'matrix-react-sdk/lib/UserSettingsStore'; module.exports = React.createClass({ displayName: 'VectorLoginFooter', @@ -26,6 +27,9 @@ module.exports = React.createClass({ }, render: function() { + // FIXME: replace this with a proper Status skin + if (UserSettingsStore.getTheme() === 'status') return
; + return (
blog  ·   diff --git a/src/components/views/login/VectorLoginHeader.js b/src/components/views/login/VectorLoginHeader.js index 3aa8811c40..71093a96c2 100644 --- a/src/components/views/login/VectorLoginHeader.js +++ b/src/components/views/login/VectorLoginHeader.js @@ -33,8 +33,10 @@ module.exports = React.createClass({ render: function() { return ( -
- Riot +
+
+ Riot +
); } diff --git a/src/components/views/rooms/RoomTooltip.js b/src/components/views/rooms/RoomTooltip.js index bbed5df8a5..714d57ca24 100644 --- a/src/components/views/rooms/RoomTooltip.js +++ b/src/components/views/rooms/RoomTooltip.js @@ -19,13 +19,16 @@ limitations under the License. var React = require('react'); var ReactDOM = require('react-dom'); var dis = require('matrix-react-sdk/lib/dispatcher'); +import classNames from 'classnames'; module.exports = React.createClass({ displayName: 'RoomTooltip', propTypes: { - // Alllow the tooltip to be styled by the parent element + // Class applied to the element used to position the tooltip className: React.PropTypes.string.isRequired, + // Class applied to the tooltip itself + tooltipClassName: React.PropTypes.string, // The tooltip is derived from either the room name or a label room: React.PropTypes.object, label: React.PropTypes.string, @@ -69,8 +72,12 @@ module.exports = React.createClass({ style.left = 6 + parent.getBoundingClientRect().right + window.pageXOffset; style.display = "block"; + const tooltipClasses = classNames( + "mx_RoomTooltip", this.props.tooltipClassName, + ); + var tooltip = ( -
+
{ label }
diff --git a/src/header b/src/header index 060709b82e..6d367b04e8 100644 --- a/src/header +++ b/src/header @@ -1,5 +1,5 @@ /* -Copyright 2015, 2016 OpenMarket Ltd +Copyright 2017 New Vector Ltd Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json index 8d9d9305d7..8b85502610 100644 --- a/src/i18n/strings/cs.json +++ b/src/i18n/strings/cs.json @@ -31,7 +31,7 @@ "Hide panel": "Skrýt panel", "I understand the risks and wish to continue": "Rozumím rizikům a přeji si pokračovat", "Keywords": "Klíčová slova", - "Leave": "Opustit", + "Leave": "Odejít", "Loading bug report module": "Nahrává se modul nahlašování chyb", "Low Priority": "Nízká priorita", "Mentions only": "Pouze zmínky", @@ -54,17 +54,17 @@ "Continue": "Pokračovat", "Please set a password!": "Prosím nastavte si heslo!", "You have successfully set a password!": "Úspěšně jste si nastavili heslo!", - "Failed to change password. Is your password correct?": "Nepodařilo se změnit heslo. Je vaše heslo správné?", + "Failed to change password. Is your password correct?": "Nepodařilo se změnit heslo. Zadáváte své heslo správně?", "No update available.": "Není dostupná žádná aktualizace.", "Downloading update...": "Stahování aktualizace...", "Welcome to Riot.im": "Vítá vás Riot.im", - "Enable desktop notifications": "Zapnout upozornění na desktopu", + "Enable desktop notifications": "Zapnout upozornění na ploše", "Enable email notifications": "Zapnout upozornění přes e-mail", "Enable notifications for this account": "Zapnout upozornění na tomto účtu", "#example": "#příklad", "Off": "Vypnout", "On": "Zapnout", - "Operation failed": "Chyba operace", + "Operation failed": "Operace se nezdařila", "Remove %(name)s from the directory?": "Odebrat %(name)s z adresáře?", "Remove": "Odebrat", "remove %(name)s from the directory.": "odebrat %(name)s z adresáře.", @@ -138,7 +138,7 @@ "Uploading report": "Nahrávám hlášení", "View Decrypted Source": "Zobrazit dešifrovaný zdroj", "When I'm invited to a room": "Pokud jsem pozván do místnosti", - "World readable": "Viditelné pro všechny", + "World readable": "Světu čitelné", "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Snad jste je nastavili v jiném klientu než Riot. V Riotu je nemůžete upravit, ale přesto platí", "Error encountered (%(errorDetail)s).": "Nastala chyba (%(errorDetail)s).", "You need to be using HTTPS to place a screen-sharing call.": "Pro uskutečnění hovoru se sdílením obrazovky musíte používat HTTPS.", @@ -202,5 +202,20 @@ "You must specify an event type!": "Musíte určit typ události!", "Event sent!": "Událost odeslána!", "Failed to send custom event.": "Nepodařilo se odeslat vlastní událost.", - "Send Custom Event": "Odeslat vlastní událost" + "Send Custom Event": "Odeslat vlastní událost", + "Show message in desktop notification": "Zobrazovat zprávu v upozornění na ploše", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Přes vlastní serverové volby se můžete přihlásit k dalším Matrix serverům tak, že zadáte jinou adresu domovského serveru.
Díky tomu můžete v Riotu používat Matrix účet z jiného domovského serveru.

Můžete nastavit i vlastní server identity, ale pak už nebudete moci zvát ani být zván/a skrze e-mailovou adresu.", + "Edit": "Upravit", + "Pin Message": "Připíchnout zprávu", + "Register": "Zaregistrovat", + "Rooms": "Místnosti", + "Invite to this community": "Pozvat do této komunity", + "Add rooms to this community": "Přidat místnosti do této komunity", + "State Key": "Stavový klíč", + "Send Custom State Event": "Poslat vlastní stavovou událost", + "Explore Room State": "Prohlížet stav místnosti", + "Unpin Message": "Odepnout zprávu", + "Toolbox": "Sada nástrojů", + "Send Account Data": "Poslat data o účtu", + "Explore Account Data": "Prozkoumat data o účtu" } diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 0c1ce7b98c..196bdc9a36 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -11,13 +11,13 @@ "The Home Server may be too old to support third party networks": "Der Home-Server ist eventuell zu alt, um Drittanbieter-Netzwerke zu unterstützen", "Directory": "Raum-Verzeichnis", "Search for a room": "Nach einem Raum suchen", - "No rooms to show": "Keine Räume anzuzeigen", - "World readable": "Lesbar für die Welt", + "No rooms to show": "Keine anzeigbaren Räume", + "World readable": "Lesbar für alle", "Guests can join": "Gäste können beitreten", "You are not receiving desktop notifications": "Du erhältst keine Desktop-Benachrichtigungen", "Enable them now": "Aktiviere diese jetzt", "Add an email address above to configure email notifications": "Füge oben eine E-Mail-Adresse hinzu, um die E-Mail-Benachrichtigungseinstellungen zu konfigurieren", - "All notifications are currently disabled for all targets.": "Im Moment sind alle Benachrichtigungen für alle Ziele deaktiviert.", + "All notifications are currently disabled for all targets.": "Aktuell sind alle Benachrichtigungen für alle Ziele deaktiviert.", "An error occurred whilst saving your email notification preferences.": "Beim Speichern deiner E-Mail-Benachrichtigungseinstellungen ist ein Fehler aufgetreten.", "Can't update user notification settings": "Benachrichtigungs-Einstellungen des Benutzers konnten nicht aktualisiert werden", "Couldn't find a matching Matrix room": "Konnte keinen entsprechenden Matrix-Raum finden", @@ -26,7 +26,7 @@ "Enable audible notifications in web client": "Audio-Benachrichtigungen im Web-Client aktivieren", "Enable desktop notifications": "Desktop-Benachrichtigungen aktivieren", "Enable email notifications": "E-Mail-Benachrichtigungen aktivieren", - "Enable notifications for this account": "Benachrichtigungen für dieses Konto aktivieren", + "Enable notifications for this account": "Benachrichtigungen für dieses Benutzerkonto aktivieren", "Enter keywords separated by a comma:": "Schlüsselwörter kommagetrennt eingeben:", "Error": "Fehler", "Error saving email notification preferences": "Fehler beim Speichern der E-Mail-Benachrichtigungseinstellungen", @@ -81,7 +81,7 @@ "Source URL": "Quell-URL", "Unable to look up room ID from server": "Es ist nicht möglich, die Raum-ID auf dem Server nachzuschlagen", "Unhide Preview": "Vorschau wieder anzeigen", - "Uploaded on %(date)s by %(user)s": "Hochgeladen am %(date)s von %(user)s", + "Uploaded on %(date)s by %(user)s": "Hochgeladen: %(date)s von %(user)s", "View Decrypted Source": "Entschlüsselten Quellcode ansehen", "View Source": "Quellcode ansehen", "You cannot delete this image. (%(code)s)": "Das Bild kann nicht gelöscht werden. (%(code)s)", @@ -125,16 +125,16 @@ "Failed to send report: ": "Senden des Reports fehlgeschlagen: ", "Forward Message": "Nachricht weiterleiten", "Hide panel": "Panel verbergen", - "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:": "Um Probleme zu diagnostizieren werden mit diesem Fehlerbericht Protokolle von diesem Client gesendet. Wenn du nur obigen text senden willst, deselektiere folgendes:", + "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:": "Zur Diagnose von Softwareproblemen werden mit diesem Fehlerbericht auch Log-Dateien übermittelt. Wenn nur der oben eingegebene Text übermittelt werden soll, bitte die nachfolgende Auswahl entsprechend abwählen:", "Loading bug report module": "Lade Fehlerbericht-Modul", - "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Bitte den Fehler (vorzugsweise auf Englisch) beschreiben. Was hast du gemacht? Was sollte passieren? Was ist tatsächlich passiert?", + "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Bitte den Softwarefehler (vorzugsweise auf Englisch) beschreiben. Was hast du gemacht? Was sollte passieren? Was ist tatsächlich passiert?", "Please describe the bug and/or send logs.": "Bitte den Fehler beschreiben und/oder Log-Dateien übermitteln.", - "Report a bug": "Einen Fehler melden", + "Report a bug": "Einen Softwarefehler melden", "Riot Desktop on %(platformName)s": "Riot Desktop auf %(platformName)s", "Riot is not supported on mobile web. Install the app?": "Riot wird im mobilen Web nicht unterstützt. App installieren?", "Search": "Suchen", "Search…": "Suchen…", - "Send": "Sende", + "Send": "Senden", "Send logs": "Logdateien übermitteln", "This Room": "In diesem Raum", "Unavailable": "Nicht verfügbar", @@ -158,7 +158,7 @@ "Riot/Android & matrix-android-sdk chat": "Riot-Android & matrix-android-sdk-Chat", "Matrix technical discussions": "Technische Diskussion über Matrix", "Running Matrix services": "Matrix-Dienste betreiben", - "Community-run support for Synapse": "Synapse-Support von der Community", + "Community-run support for Synapse": "Support für Synapse von der Community", "Admin support for Dendrite": "Admin-Unterstützung für Dendrite", "Announcements about Synapse releases": "Ankündigungen über Synapse-Versionen", "Support for those using and running matrix-appservice-irc": "Unterstützung für die, die \"matrix-appservice-irc\" betreiben und nutzen", @@ -175,9 +175,9 @@ "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Im Matrix-Netzwerk existieren bereits jetzt zahlreiche Räume, die entweder mit bekannten Netzwerken wie Slack, IRC, Gitter, usw. verknüpft sind oder auch komplett eigenständig betrieben werden. Einen genauen Überblick erhältst du im Raum-Verzeichnis!", "Failed to change password. Is your password correct?": "Passwortänderung fehlgeschlagen. Ist dein Passwort richtig?", "You have successfully set a password!": "Du hast erfolgreich ein Passwort gesetzt!", - "You can now return to your account after signing out, and sign in on other devices.": "Du kannst nun zu deinem Konto zurückkehren nach dem du dich an anderen Geräten ab- und angemeldet hast.", + "You can now return to your account after signing out, and sign in on other devices.": "Du kannst nun zu deinem Benutzerkonto zurückkehren, nachdem du dich abgemeldet hast. Anschließend kannst du dich an anderen Geräten anmelden.", "Continue": "Fortfahren", - "Please set a password!": "Bitte ein Passwort einrichten!", + "Please set a password!": "Bitte setze ein Passwort!", "This will allow you to return to your account after signing out, and sign in on other devices.": "Dies erlaubt dir, dich wieder an deinem Konto anzumelden, nachdem du dich abgemeldet hast.", "Dev chat for the Dendrite dev team": "Entwickler-Chat für das Dendrite-Entwickler-Team", "General discussion about Matrix and Riot": "Allgemeine Diskussion über Matrix und Riot", @@ -199,7 +199,7 @@ "Failed to send custom event.": "Senden des benutzerdefinierten Events fehlgeschlagen.", "Send Custom Event": "Benutzerdefiniertes Event senden", "Send Custom State Event": "Benutzerdefiniertes Status-Event senden", - "Explore Room State": "Erkunde Raum-Status", + "Explore Room State": "Raum-Status erkunden", "Event sent!": "Event gesendet!", "Event Type": "Event-Typ", "Event Content": "Event-Inhalt", @@ -208,5 +208,14 @@ "You must specify an event type!": "Du musst einen Event-Typ spezifizieren!", "Show message in desktop notification": "Nachricht in der Desktop-Benachrichtigung anzeigen", "Pin Message": "Nachricht anheften", - "Unpin Message": "Nachricht losheften" + "Unpin Message": "Nachricht nicht mehr anheften", + "Add rooms to this community": "Räume zu dieser Community hinzufügen", + "Edit": "Editieren", + "Register": "Registrieren", + "Rooms": "Räume", + "Invite to this community": "In diese Community einladen", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Die benutzerdefinierten Server-Einstellungen kannst du verwenden, um dich auf anderen Matrix-Servern anzumelden, indem du eine abweichende Heimserver-URL eingibst.
Somit ist es möglich, Riot mit einem bereits bestehendem Matrix-Benutzerkonto auf einem anderen Heimserver zu verwenden.

Außerdem kannst du einen benutzerdefinierten Identitätsserver eingeben. Allerdings kannst du in diesem Fall Benutzer nicht mehr per E-Mail-Adresse einladen und auch selbst nicht mehr per E-Mail-Adresse eingeladen werden.", + "Toolbox": "Werkzeugkasten", + "Explore Account Data": "Daten des Benutzerkontos erkunden", + "Send Account Data": "Sende Benutzerkonto-Daten" } diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 44f6a1215f..9e365cde0e 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -95,13 +95,13 @@ "Unable to join network": "Impossible de rejoindre le réseau", "Unable to look up room ID from server": "Impossible de récupérer l'ID du salon sur le serveur", "Unhide Preview": "Dévoiler l'aperçu", - "Unnamed room": "Salon anonyme", + "Unnamed room": "Salon sans nom", "Uploaded on %(date)s by %(user)s": "Téléchargé le %(date)s par %(user)s", "View Decrypted Source": "Voir la source déchiffrée", "When I'm invited to a room": "Quand je suis invité dans un salon", - "World readable": "Visible par tout le monde", + "World readable": "Lisible publiquement", "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Vous les avez probablement configurées dans un autre client que Riot. Vous ne pouvez pas les configurer dans Riot mais elles s'appliquent quand même", - "Guests can join": "Ouvert aux visiteurs", + "Guests can join": "Les invités peuvent rejoindre le salon", "Advanced notification settings": "Paramètres de notification avancés", "customServer_text": "Vous pouvez utiliser les options de serveur personnalisées pour vous connecter à d'autres serveurs Matrix, en spécifiant une adresse de serveur d'accueil différente.
Cela permet d'utiliser Riot avec un compte Matrix existant sur un serveur d'accueil différent.

Vous pouvez aussi indiquer un serveur d'identité personnalisé mais vous ne pourrez pas inviter d'utilisateurs par e-mail ou être invité par e-mail.", "Notifications on the following keywords follow rules which can’t be displayed here:": "Les notifications pour les mots-clés suivant répondent à des critères qui ne peuvent pas être affichés ici :", @@ -205,5 +205,17 @@ "Send Custom Event": "Envoyer l'événement personnalisé", "Send Custom State Event": "Envoyer l'événement d'état personnalisé", "Explore Room State": "Parcourir l'état du salon", - "State Key": "Clé d'état" + "State Key": "Clé d'état", + "Unpin Message": "Dépingler le message", + "Add rooms to this community": "Ajouter des salons à cette communauté", + "Show message in desktop notification": "Afficher le message dans les notifications de bureau", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Vous pouvez utiliser les options de serveur personnalisé pour vous connecter à d'autres serveurs Matrix en précisant un serveur d'accueil différent.
Cela vous permet d'utiliser Riot avec un compte Matrix existant sur un autre serveur d'accueil.

Vous pouvez aussi renseigner un serveur d'identité personnalisé mais vous ne pourrez pas inviter d'utilisateurs avec leur adresse e-mail, ou être invité avec votre adresse e-mail.", + "Edit": "Modifier", + "Pin Message": "Épingler le message", + "Register": "S'inscrire", + "Rooms": "Salons", + "Invite to this community": "Inviter à cette communauté", + "Toolbox": "Boîte à outils", + "Send Account Data": "Envoyer les données du compte", + "Explore Account Data": "Explorer les données du compte" } diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json index 700e38ac73..3fec05e9f3 100644 --- a/src/i18n/strings/gl.json +++ b/src/i18n/strings/gl.json @@ -205,5 +205,17 @@ "Set Password": "Establecer contrasinal", "Couldn't load home page": "Non se cargou a páxina de inicio", "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Pode que os configurase nun cliente diferente de Riot. Non pode establecelos desde Riot pero aínda así aplicaranse", - "Riot/Android & matrix-android-sdk chat": "Chat para Riot/Android & matrix-android-sdk" + "Riot/Android & matrix-android-sdk chat": "Chat para Riot/Android & matrix-android-sdk", + "Show message in desktop notification": "Mostrar mensaxe nas notificacións de escritorio", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Vostede pode utilizar as opcións de servidor personalizado para conectarse a outros servidores Matrix indicando o enderezo URL do Servidor.
Esto permítelle utilizar Riot con unha conta Matrix existente en outro servidor.

Tamén pode indicar un servidor de identidade pero non poderá convidar a usarias polo seu enderezo de correo electrónico, o ser convidada vostede por correo electrónico.", + "Toolbox": "Ferramentas", + "Edit": "Editar", + "Send Account Data": "Enviar datos da conta", + "Explore Account Data": "Explorar datos da conta", + "Unpin Message": "Non fixar mensaxe", + "Pin Message": "Fixar mensaxe", + "Register": "Rexistrar", + "Rooms": "Salas", + "Invite to this community": "Convidar a esta comunidade", + "Add rooms to this community": "Engadir salas a esta comunidade" } diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 81e11fc33a..4fe423371d 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -208,5 +208,14 @@ "You must specify an event type!": "Meg kell határoznod az esemény típusát!", "Show message in desktop notification": "Üzenetek megmutatása az asztali értesítésekben", "Pin Message": "Üzenet kitűzése", - "Unpin Message": "Üzenet levétele" + "Unpin Message": "Üzenet levétele", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Bejelentkezhetsz más Matrix szerverbe ha használhatod a saját szerver opciót és megadod egy másik szerver URL-jét.
Ezzel egy másik szerveren egy már meglévő fiókot tudsz használni.

Beállíthatsz egyedi azonosító szervert de akkor nem tudsz másokat e-mail cím alapján meghívni és téged sem tudnak.", + "Edit": "Szerkeszt", + "Register": "Regisztrál", + "Rooms": "Szobák", + "Invite to this community": "Meghívás ebbe a közösségbe", + "Add rooms to this community": "Szobák hozzáadása ehhez a közösséghez", + "Toolbox": "Szerszámok", + "Send Account Data": "Fiók adatok küldése", + "Explore Account Data": "Fiók adatok böngészése" } diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index 096366c60e..a162340fbc 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -205,5 +205,7 @@ "Event sent!": "Evento inviato!", "Event Type": "Tipo di Evento", "Event Content": "Contenuto dell'Evento", - "State Key": "Chiave dello Stato" + "State Key": "Chiave dello Stato", + "Show message in desktop notification": "Mostra i messaggi nelle notifiche desktop", + "Edit": "Modifica" } diff --git a/src/i18n/strings/ne.json b/src/i18n/strings/ne.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/src/i18n/strings/ne.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src/i18n/strings/pl.json b/src/i18n/strings/pl.json index 04868a0c42..7566963c52 100644 --- a/src/i18n/strings/pl.json +++ b/src/i18n/strings/pl.json @@ -205,5 +205,14 @@ "Event sent!": "Wydarzenie wysłane!", "Event Type": "Typ wydarzenia", "Event Content": "Zawartość wydarzenia", - "State Key": "Klucz stanu" + "State Key": "Klucz stanu", + "Toolbox": "Przybornik", + "Edit": "Edycja", + "Show message in desktop notification": "Pokaż wiadomość w notyfikacji na pulpicie", + "Unpin Message": "Odepnij Wiadomość", + "Pin Message": "Przypnij Wiadomość", + "Register": "Rejestracja", + "Rooms": "Pokoje", + "Invite to this community": "Zaproś do tej społeczności", + "Add rooms to this community": "Dodaj pokoje do tej społeczności" } diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 658fab9712..48415323bd 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -9,7 +9,7 @@ "Direct Chat": "Прямой чат", "Directory": "Каталог", "Dismiss": "Отказ", - "Enable audible notifications in web client": "Включить звуковые уведомления в веб клиенте", + "Enable audible notifications in web client": "Включить звуковые уведомления в веб-клиенте", "Enable desktop notifications": "Включить оповещения на рабочем столе", "Enable email notifications": "Включить уведомления по email", "Enable notifications for this account": "Включить уведомления для этой учетной записи", @@ -35,7 +35,7 @@ "Low Priority": "Низкий приоритет", "Members": "Участники", "No rooms to show": "Нет комнат для отображения", - "Noisy": "Громко", + "Noisy": "Со звуком", "Notification targets": "Цели уведомления", "Notifications": "Уведомления", "Notifications on the following keywords follow rules which can’t be displayed here:": "Уведомления по следующим ключевым словам соответствуют правилам, которые нельзя отобразить здесь:", @@ -63,7 +63,7 @@ "You are not receiving desktop notifications": "Вы не получаете уведомления на рабочем столе", "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Возможно вы настроили их не в Riot, а в другом Matrix-клиенте. Настроить их в Riot не удастся, но они будут в нем применяться", "All messages": "Все сообщения", - "All messages (loud)": "Все сообщения (громко)", + "All messages (loud)": "Все сообщения (со звуком)", "Cancel Sending": "Отменить отправку", "Close": "Закрыть", "Download this file": "Скачать этот файл", @@ -120,10 +120,10 @@ "Forward Message": "Переслать сообщение", "Hide panel": "Скрыть панель", "I understand the risks and wish to continue": "Я понимаю риски и желаю продолжить", - "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:": "Чтобы диагностировать проблемы, логи этого клиента будут отправлены вместе с этим сообщением об ошибке. Если вы предпочитаете отправить только текст выше, пожалуйста, отключите:", + "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:": "Чтобы диагностировать проблемы, журналы работы этого клиента будут отправлены вместе с сообщением об ошибке. Если вы предпочитаете отправить только текст выше, пожалуйста, снимите отметку:", "Loading bug report module": "Загрузка модуля Отчет об ошибках", "Messages containing keywords": "Сообщения, содержащие определенные ключевые слова", - "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Опишите ошибку. Что вы сделали? Чего вы ожидали? Что на самом деле произошло?", + "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Пожалуйста, опишите ошибку. Что сделали? Чего ожидали? Что на самом деле произошло?", "Please describe the bug and/or send logs.": "Опишите ошибку и/или отправьте журналы.", "Please install Chrome or Firefox for the best experience.": "Для получения наилучшего опыта при работе с Riot, пожалуйста, установите Chrome или Firefox.", "Report a bug": "Сообщить об ошибке", @@ -133,7 +133,7 @@ "Search": "Поиск", "Search…": "Поиск.…", "Send": "Отослать", - "Send logs": "Отправить журналы", + "Send logs": "Отправка журналов", "Sorry, your browser is not able to run Riot.": "К сожалению, ваш браузер не способен запустить Riot.", "This Room": "Эта комната", "Unavailable": "Недоступен", @@ -208,5 +208,14 @@ "You must specify an event type!": "Необходимо указать тип мероприятия!", "Show message in desktop notification": "Показывать сообщение в уведомлении на рабочем столе", "Pin Message": "Закрепить сообщение", - "Unpin Message": "Открепить сообщение" + "Unpin Message": "Открепить сообщение", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Вы можете использовать пользовательские параметры сервера для входа на другие сервера Matrix, указав другой URL-адрес домашнего сервера.
Это позволяет использовать Riot с существующей учетной записью Matrix на другом домашнем сервере.

Кроме того, можно установить пользовательский сервер идентификации, однако вы не сможете ни пригласить других пользователей, ни быть приглашенным, используя адрес электронной почты, .", + "Edit": "Редактировать", + "Register": "Регистрация", + "Rooms": "Комнаты", + "Invite to this community": "Пригласить в это сообщество", + "Add rooms to this community": "Добавить комнаты в это сообщество", + "Toolbox": "Панель инструментов", + "Send Account Data": "Отправить данные аккаунта", + "Explore Account Data": "Просмотр данных аккаунта" } diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json new file mode 100644 index 0000000000..01ecc78819 --- /dev/null +++ b/src/i18n/strings/sk.json @@ -0,0 +1,219 @@ +{ + "Riot is not supported on mobile web. Install the app?": "Riot nie je podporovaný na mobilných zariadeniach. Želáte si nainštalovať aplikáciu?", + "Collecting app version information": "Získavajú sa informácie o verzii aplikácii", + "Collecting logs": "Získavajú sa záznamy", + "Uploading report": "Prebieha odovzdanie hlásenia", + "Waiting for response from server": "Čakanie na odpoveď zo servera", + "Riot Desktop on %(platformName)s": "Riot Desktop pre %(platformName)s", + "Unknown device": "Neznáme zariadenie", + "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s cez %(browserName)s pre %(osName)s", + "You need to be using HTTPS to place a screen-sharing call.": "Ak si želáte spustiť zdieľanie obrazovky, musíte byť pripojení cez protokol HTTPS.", + "Messages containing my display name": "Správy obsahujúce moje zobrazované meno", + "Messages containing my user name": "Správy obsahujúce moje používateľské meno", + "Messages in one-to-one chats": "Správy v priamych konverzáciách", + "Messages in group chats": "Správy v skupinových konverzáciách", + "When I'm invited to a room": "Pozvania vstúpiť do miestnosti", + "Call invitation": "Audio / Video hovory", + "Messages sent by bot": "Správy odosielané robotmi", + "Error saving email notification preferences": "Chyba pri ukladaní nastavení oznamovania emailom", + "An error occurred whilst saving your email notification preferences.": "Počas ukladania vašich nastavení oznamovania emailom sa vyskytla chyba.", + "Keywords": "Kľúčové slová", + "Enter keywords separated by a comma:": "Zadajte kľúčové slová oddelené čiarkou:", + "OK": "OK", + "Failed to change settings": "Nepodarilo sa zmeniť nastavenia", + "Operation failed": "Operácia zlyhala", + "Can't update user notification settings": "Nie je možné aktualizovať používateľské nastavenia oznamovania", + "Failed to update keywords": "Nepodarilo sa aktualizovať kľúčové slová", + "Messages containing keywords": "Správy obsahujúce kľúčové slová", + "Notify for all other messages/rooms": "oznamovať všetky ostatné správy / miestnosti", + "Notify me for anything else": "Oznamovať mi všetko ostatné", + "Enable notifications for this account": "Povoliť oznámenia pre tento účet", + "All notifications are currently disabled for all targets.": "Momentálne sú zakázané všetky oznámenia pre všetky ciele.", + "Add an email address above to configure email notifications": "Ak si chcete nastaviť oznamovanie emailom, pridajte si emailovú adresu vyššie", + "Enable email notifications": "Povoliť oznamovanie emailom", + "Notifications on the following keywords follow rules which can’t be displayed here:": "Oznámenia nasledujúcich kľúčových slov sa riadia pravidlami, ktoré nie je možné zobraziť na tomto mieste:", + "Unable to fetch notification target list": "Nie je možné získať zoznam cieľov oznámení", + "Notification targets": "Ciele oznámení", + "Advanced notification settings": "Pokročilé nastavenia oznámení", + "There are advanced notifications which are not shown here": "Niektoré pokročilé oznámenia nemôžu byť zobrazené", + "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Tieto nastavenia oznámení sa použijú aj napriek tomu, že ich nemôžete meniť cez Riot. Pravdepodobne ste si ich nastavili v inej aplikácii", + "Enable desktop notifications": "Povoliť oznámenia na pracovnej ploche", + "Show message in desktop notification": "Zobraziť text správy v oznámení na pracovnej ploche", + "Enable audible notifications in web client": "Povoliť zvukové oznámenia vo webovom klientovi", + "Off": "Zakázané", + "On": "Povolené", + "Noisy": "Hlučné", + "Failed to set direct chat tag": "Nepodarilo sa nastaviť značku priama konverzácia", + "Failed to remove tag %(tagName)s from room": "Nepodarilo sa odstrániť značku %(tagName)s pre túto miestnosť", + "Failed to add tag %(tagName)s to room": "Nepodarilo sa pridať značku %(tagName)s pre túto miestnosť", + "Search…": "Hľadať…", + "Search": "Vyhľadávanie", + "This Room": "V tejto miestnosti", + "All Rooms": "Vo všetkych miestnostiach", + "Sunday": "Nedeľa", + "Monday": "Pondelok", + "Tuesday": "Utorok", + "Wednesday": "Streda", + "Thursday": "Štvrtok", + "Friday": "Piatok", + "Saturday": "Sobota", + "Today": "Dnes", + "Yesterday": "Včera", + "Custom Server Options": "Vlastné možnosti servera", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Vlastné nastavenia servera môžete použiť na pripojenie k iným serverom Matrix a to zadaním URL adresy domovského servera.
Umožní vám to použiť Riot s už existujúcim Matrix účtom na akomkoľvek domovskom servery.

Môžete tiež nastaviť vlastný server totožností, no ak tak urobíte, nebudete môcť do konverzácií pozývať používateľov zadaním ich emailovej adresy, ani ostatní nebudú môcť pozvať vás zadaním vašej emailovej adresy.", + "Dismiss": "Zamietnuť", + "powered by Matrix": "poháňa Matrix", + "You are not receiving desktop notifications": "Nedostávate oznámenia na pracovnej ploche", + "Enable them now": "Povolte si ich teraz", + "What's New": "Čo Je Nové", + "Update": "Aktualizovať", + "What's new?": "Čo je nové?", + "A new version of Riot is available.": "Dostupná je nová verzia Riot.", + "To return to your account in future you need to set a password": "Aby ste sa v budúcnosti mohli vrátiť k vašemu účtu mali by ste si teraz nastaviť heslo", + "Toolbox": "Nástroje", + "Set Password": "Nastaviť Heslo", + "Error encountered (%(errorDetail)s).": "Vyskytla sa chyba (%(errorDetail)s).", + "Checking for an update...": "Kontrola dostupnosti aktualizácie...", + "No update available.": "K dispozícii nie je žiadna aktualizácia.", + "Downloading update...": "Sťahovanie aktualizácie...", + "Warning": "Upozornenie", + "Error": "Chyba", + "You cannot delete this image. (%(code)s)": "Nemôžete vymazať tento obrázok. (%(code)s)", + "Uploaded on %(date)s by %(user)s": "Nahral používateľ %(user)s dňa %(date)s", + "Remove": "Odstrániť", + "Close": "Zatvoriť", + "Download this file": "Stiahnuť tento súbor", + "Please describe the bug and/or send logs.": "Prosím, popíšte problém a / alebo pošlite záznamy.", + "Loading bug report module": "Načítanie modulu hlásenia chýb", + "Bug report sent": "Hlásenie chyby odoslané", + "Thank you!": "Ďakujeme!", + "Failed to send report: ": "Nepodarilo sa odoslať hlásenie: ", + "Cancel": "Zrušiť", + "Report a bug": "Ohlásiť chybu", + "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Prosím, Napíšte text hlásenia. Čo ste práve robili? Čo ste očakávali? Čo sa v skutočnosti udialo?", + "Describe your problem here.": "Tu popíšte váš problém.", + "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:": "S cieľom lepšej diagnostiky problému sa spolu s vašim hlásením odošlú záznami o činnosti programu Riot. Ak si želáte odoslať len text hlásenia, odškrtnite nasledujúce pole:", + "Send logs": "Zahrnúť záznamy", + "Send": "Poslať", + "Unavailable": "Nedostupné", + "Changelog": "Zoznam zmien", + "Back": "Naspäť", + "You must specify an event type!": "Musíte nastaviť typ udalosti!", + "Event sent!": "Udalosť odoslaná!", + "Failed to send custom event.": "Odoslanie vlastnej udalosti zlyhalo.", + "Event Type": "Typ Udalosti", + "Event Content": "Obsah Udalosti", + "State Key": "State Key", + "Edit": "Upraviť", + "Filter results": "Filtrovať výsledky", + "Send Custom Event": "Odoslať vlastnú udalosť", + "Send Account Data": "Odoslať Údaje Účtu", + "Explore Account Data": "Preskúmať Údaje účtu", + "Explore Room State": "Preskúmať Stav Miestnosti", + "Developer Tools": "Vývojárske Nástroje", + "You have successfully set a password!": "Ǔspešne ste si nastavili heslo!", + "You have successfully set a password and an email address!": "Úspešne si si nastavili heslo aj emailovú adresu!", + "You can now return to your account after signing out, and sign in on other devices.": "Odteraz sa budete k svojmu účtu vedieť vrátiť aj po odhlásení, alebo tiež prihlásiť na iných zariadeniach.", + "Remember, you can always set an email address in user settings if you change your mind.": "Všimnite si, Emailovú adresu môžete pridať aj neskôr v časti nastavenia, ak zmeníte svoj názor.", + "Continue": "Pokračovať", + "Failed to change password. Is your password correct?": "Nepodarilo sa zmeniť heslo. Zadali ste správne heslo?", + "(HTTP status %(httpStatus)s)": "(HTTP status %(httpStatus)s)", + "Please set a password!": "Prosím, nastavte si heslo!", + "This will allow you to return to your account after signing out, and sign in on other devices.": "Toto vám v budúcnosti umožní vrátiť sa k vašemu účtu aj po odhlásení, alebo tiež prihlásiť sa na iných zariadeniach.", + "You cannot delete this message. (%(code)s)": "Nemôžete vymazať túto správu. (%(code)s)", + "Resend": "Poslať znovu", + "Cancel Sending": "Zrušiť odosielanie", + "Forward Message": "Preposlať správu", + "Unpin Message": "Zrušiť pripnutie správy", + "Pin Message": "Pripnúť správu", + "View Source": "Zobraziť zdroj", + "View Decrypted Source": "Zobraziť dešifrovaný zdroj", + "Unhide Preview": "Zobraziť náhľad", + "Permalink": "Trvalý odkaz", + "Quote": "Citovať", + "Source URL": "Pôvodná URL", + "Failed to set Direct Message status of room": "Nepodarilo sa nastaviť stav miestnosti priama konverzácia", + "unknown error code": "neznámy kód chyby", + "Failed to forget room %(errCode)s": "Nepodarilo sa zabudnuť miestnosť %(errCode)s", + "All messages (loud)": "Všetky správy (hlučné)", + "All messages": "Všetky správy", + "Mentions only": "Len zmienky", + "Mute": "Umlčať", + "Leave": "Opustiť", + "Forget": "Zabudnuť", + "Reject": "Odmietnuť", + "Favourite": "Obľúbená", + "Low Priority": "Nízka priorita", + "Direct Chat": "Priama konverzácia", + "Sorry, your browser is not able to run Riot.": "Prepáčte, vo vašom prehliadači nie je možné spustiť Riot.", + "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot sa spolieha na mnohé pokročilé vlastnosti prehliadača internetu, a niektoré z nich sú vo vašom prehliadači experimentálne alebo nie sú k dispozícii vôbec.", + "Please install Chrome or Firefox for the best experience.": "Prosím, nainštalujte si Chrome alebo Firefox , aby bol váš zážitok pri používaní Riot čo možno najlepší.", + "Safari and Opera work too.": "Safari a Opera tiež fungujú spoľahlivo.", + "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "Vo vašom súčasnom prehliadači nemusí Riot vizerať ani fungovať správne a niektoré alebo všetky vlastnosti môžu chýbať. Ak to chcete vyskúšať, môžete pokračovať, no pri riešení problémov s tým spojených si budete musieť poradiť na vlastnú päsť!", + "I understand the risks and wish to continue": "Rozumiem rizikám a želám si pokračovať", + "Couldn't load home page": "Nie je možné načítať domovskú stránku", + "Login": "Prihlásiť", + "Register": "Registrovať", + "Invite to this room": "Pozvať do tejto miestnosti", + "Members": "Členovia", + "Files": "Súbory", + "Notifications": "Oznámenia", + "Rooms": "Miestnosti", + "Hide panel": "Skryť panel", + "Invite to this community": "Pozvať do tejto komunity", + "Add rooms to this community": "Pridať miestnosti do tejto komunity", + "Failed to get protocol list from Home Server": "Nepodarilo sa získať zoznam protokolov z domovského servera", + "The Home Server may be too old to support third party networks": "Domovský server môže byť natoľko zastaralý, že nepodporuje siete tretíh strán", + "Failed to get public room list": "Nepodarilo sa získať zoznam verejných miestností", + "The server may be unavailable or overloaded": "Server môže byť nedostupný alebo preťažený", + "Unnamed room": "Nepomenovaná miestnosť", + "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Vymazať alias %(alias)s a odstrániť miestnosť %(name)s z adresára?", + "Remove %(name)s from the directory?": "Odstrániť miestnosť %(name)s z adresára?", + "Remove from Directory": "Odstrániť z adresára", + "remove %(name)s from the directory.": "odstrániť %(name)s z adresára.", + "delete the alias.": "vymazať alias.", + "Unable to join network": "Nie je možné sa pripojiť k sieti", + "Riot does not know how to join a room on this network": "Riot nedokáže vstúpiť do miestnosti na tejto sieti", + "Room not found": "Miestnosť nenájdená", + "Couldn't find a matching Matrix room": "Nie je možné nájsť zodpovedajúcu Matrix miestnosť", + "Fetching third party location failed": "Nepodarilo sa získať umiestnenie tretej strany", + "Unable to look up room ID from server": "Nie je možné vyhľadať ID miestnosti na servery", + "World readable": "Viditeľná pre všetkých", + "Guests can join": "Pripojiť sa môžu aj hostia", + "Directory": "Adresár", + "No rooms to show": "Žiadne miestnosti na zobrazenie", + "Search for a room": "Vyhľadať miestnosť", + "#example": "#príklad", + "more": "viac", + "Expand panel": "Rozbaliť panel", + "Collapse panel": "Zbaliť panel", + "Filter room names": "Filtrovať názvy miestností", + "Welcome to Riot.im": "Víta vás Riot.im", + "Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizovaný, šifrovaný chat a spolupráca na platforme [matrix]", + "Search the room directory": "Prehľadať adresár miestností", + "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Na Matrixe je k dispozícii množstvo nezávislých diskusných miestností a tiež miestnosti prepojené z iných sietí (Slack, IRC, Gitter atď). Pozrite si adresár!", + "Chat with Riot Bot": "Konverzácia s Riot Bot", + "Get started with some tips from Riot Bot!": "Začnite zopár tipmi v diskusii s Riot Bot!", + "General discussion about Matrix and Riot": "Všeobecná diskusia o Matrix a Riot", + "Discussion of all things Matrix!": "Diskusia o všetkom okolo Matrix!", + "Riot/Web & Desktop chat": "Riot/Web & Desktop chat", + "Riot/iOS & matrix-ios-sdk chat": "Riot/iOS & matrix-ios-sdk chat", + "Riot/Android & matrix-android-sdk chat": "Riot/Android & matrix-android-sdk chat", + "Matrix technical discussions": "Technické diskusie o Matrix", + "Running Matrix services": "Prevádzka služieb postavených na Matrix", + "Community-run support for Synapse": "Komunitná podpora pre Synapse", + "Admin support for Dendrite": "Administrátorská podpora pre Dendrite", + "Announcements about Synapse releases": "Oznamy o verziách Synapse", + "Support for those using and running matrix-appservice-irc": "Podpora pre používateľov a prevádzkovateľov matrix-appservice-irc", + "Building services on Matrix": "Stavba služieb na Matrix", + "Support for those using the Matrix spec": "Podpora pre konzumentov špecifikácie Matrix", + "Design and implementation of E2E in Matrix": "Návrh a implementácia E2E pre Matrix", + "Implementing VR services with Matrix": "Implementácia služieb VR s Matrix", + "Implementing VoIP services with Matrix": "Implementácia VoIP služieb s Matrix", + "Discussion of the Identity Service API": "Diskusia o API služby totožností", + "Support for those using, running and writing other bridges": "Podpora pre používateľov, prevádzkovateľov a tvorcov premostení do ďalších sietí", + "Contributing code to Matrix and Riot": "Prispievanie kódu projektom Matrix a Riot", + "Dev chat for the Riot/Web dev team": "Diskusia pre tím vývojárov Riot/Web", + "Dev chat for the Dendrite dev team": "Diskusia pre tím vývojárov Dendrite", + "Co-ordination for Riot/Web translators": "Koordinácia prekladov Riot/Web" +} diff --git a/src/i18n/strings/ta.json b/src/i18n/strings/ta.json index 2d3c512036..dc6a593e3b 100644 --- a/src/i18n/strings/ta.json +++ b/src/i18n/strings/ta.json @@ -18,7 +18,7 @@ "%(appName)s via %(browserName)s on %(osName)s": "%(osName)s -ல் %(browserName)s -ன் வழியாக %(appName)s", "Call invitation": "அழைப்பிற்கான விண்ணப்பம்", "Can't update user notification settings": "பயனர் அறிவிப்பு அமைப்புகளை மாற்ற முடியவில்லை", - "Couldn't find a matching Matrix room": "பொருத்தமான Matrix அறை புலப்படவில்லை", + "Couldn't find a matching Matrix room": "பொருத்தமான Matrix அறை கிடைக்கவில்லை", "Custom Server Options": "விருப்பிற்கேற்ற வழங்கி இடப்புகள்", "delete the alias.": "மாற்றை அழி.", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "அறை மாற்று %(alias)s -ஐ அழித்து, %(name)s -ஐ அடைவிலிருந்து நீக்க வேண்டுமா?", @@ -43,7 +43,7 @@ "Favourite": "விருப்பமான", "Files": "கோப்புகள்", "Filter room names": "அறை பெயர்களை வடிகட்டு", - "Forget": "மறத்தல்", + "Forget": "மற", "Guests can join": "விருந்தினர்கள் சேரலாம்", "Hide panel": "பலகத்தை மறை", "Invite to this room": "இந்த அறைக்கு அழை", @@ -70,7 +70,7 @@ "Messages containing my display name": "என் காட்சி பெயர் கொண்ட செய்திகள்", "more": "அதிகம்", "Mute": "முடக்கு", - "No rooms to show": "காண்பதற்கான அறை இல்லை", + "No rooms to show": "காண்பிக்க எந்த அறையும் இல்லை", "Messages containing keywords": "முக்கிய கொண்ட செய்திகள்", "Messages containing my user name": "என் பயனர் பெயர் கொண்ட செய்திகள்", "Messages in group chats": "குழு அரட்டைகளில் உள்ள செய்திகள்", @@ -133,5 +133,40 @@ "You cannot delete this image. (%(code)s)": "இந்த படத்தை நீங்கள் அழிக்க முடியாது. (%(code)s)", "You cannot delete this message. (%(code)s)": "இந்த செய்தியை நீங்கள் அழிக்க முடியாது. (%(code)s)", "You are not receiving desktop notifications": "திரை அறிவிப்புகளை நீங்கள் பெறவில்லை", - "Bug report sent": "வழு அறிக்கை அனுப்பப்பட்டது" + "Bug report sent": "வழு அறிக்கை அனுப்பப்பட்டது", + "You need to be using HTTPS to place a screen-sharing call.": "நீங்கள் திரைபகிர்வு அழைப்பை மேற்க்கொள்ள HTTPS-ஐ பயன்படுத்த வேண்டும்.", + "OK": "சரி", + "Show message in desktop notification": "திரை அறிவிப்புகளில் செய்தியை காண்பிக்கவும்", + "Sunday": "ஞாயிறு", + "Monday": "திங்கள்", + "Tuesday": "செவ்வாய்", + "Wednesday": "புதன்", + "Thursday": "வியாழன்", + "Friday": "வெள்ளி", + "Saturday": "சனி", + "Today": "இன்று", + "Yesterday": "நேற்று", + "No update available.": "எந்த புதுப்பிப்பும் இல்லை.", + "Warning": "எச்சரிக்கை", + "Thank you!": "உங்களுக்கு நன்றி", + "Back": "பின்", + "Event sent!": "நிகழ்வு அனுப்பப்பட்டது", + "Event Type": "நிகழ்வு வகை", + "Event Content": "நிகழ்வு உள்ளடக்கம்", + "Edit": "தொகு", + "You have successfully set a password!": "நீங்கள் வெற்றிகரமாக கடவுச்சொல்லை அமைத்துவிட்டீர்கள்", + "You have successfully set a password and an email address!": "நீங்கள் வெற்றிகரமாக கடவுச்சொல் மற்றும் மின்னஞ்சல் முகவரியை அமைத்துவிட்டீர்கள்", + "Continue": "தொடரவும்", + "Please set a password!": "தயவு செய்து கடவுச்சொல்லை அமைக்கவும்", + "Couldn't load home page": "முதற்பக்கத்தை நிரலேற்ற முடியவில்லை", + "Register": "பதிவு செய்", + "Rooms": "அறைகள்", + "Add rooms to this community": "அறைகளை இந்த சமூகத்தில் சேர்க்கவும்", + "Welcome to Riot.im": "Riot.im -ற்க்கு வரவேற்க்கிறோம்", + "Search the room directory": "அறை அடைவில் தேடவும்", + "Chat with Riot Bot": "Riot இயங்கியிடம் உரையாடவும்", + "Matrix technical discussions": "Matrix தொழில்நுட்ப விவாதங்கள்", + "Running Matrix services": "இருப்பிலிருக்கும் Matrix சேவைகள்", + "Building services on Matrix": "Matrix- ல் சேவைகளைக் கட்டமைக்க", + "Contributing code to Matrix and Riot": "Matrix மற்றும் Riot -ற்க்கு நிரல் பங்களிக்க" } diff --git a/src/i18n/strings/uk.json b/src/i18n/strings/uk.json index b017389e0a..2e3cf61285 100644 --- a/src/i18n/strings/uk.json +++ b/src/i18n/strings/uk.json @@ -39,7 +39,7 @@ "Expand panel": "Розгорнути панель", "Failed to add tag %(tagName)s to room": "Не вдалось додати до кімнати мітку %(tagName)s", "Failed to change settings": "Не вдалось змінити налаштування", - "Failed to forget room %(errCode)s": "Не вдалось забути кімнату %(errCode)s", + "Failed to forget room %(errCode)s": "Не вдалось видалити кімнату %(errCode)s", "Failed to update keywords": "Не вдалось оновити ключові слова", "Failed to get protocol list from Home Server": "Не вдалось отримати перелік протоколів з Домашнього серверу", "Failed to get public room list": "Не вдалось отримати перелік прилюдних кімнат", @@ -190,7 +190,7 @@ "Checking for an update...": "Перевірка оновлень…", "Error encountered (%(errorDetail)s).": "Трапилась помилка (%(errorDetail)s).", "No update available.": "Оновлення відсутні.", - "Downloading update...": "Звантажується оновлення…", + "Downloading update...": "Звантаженя оновлення…", "Couldn't load home page": "Не вдалось завантажити домівку", "Back": "Назад", "Bug report sent": "Звіт про помилки відправлений", @@ -205,5 +205,16 @@ "Event sent!": "Захід відправлено!", "Event Type": "Тип західу", "Event Content": "Зміст заходу", - "State Key": "Ключ стану" + "State Key": "Ключ стану", + "Show message in desktop notification": "Показати повідомлення в сповіщення на робочому столі", + "Edit": "Редактувати", + "Unpin Message": "Відкріпити повідомлення", + "Pin Message": "Прикріпити повідомлення", + "Register": "Зарегіструватись", + "Rooms": "Кімнати", + "Invite to this community": "Запросити в це суспільство", + "Add rooms to this community": "Добавити кімнати в це суспільство", + "Toolbox": "Панель інструментів", + "Send Account Data": "Відправити данні аккаунта", + "Explore Account Data": "Продивитись данні аккаунта" } diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 881adc7aa1..fc5dd6ec6d 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -208,5 +208,14 @@ "You must specify an event type!": "您必須指定事件類型!", "Show message in desktop notification": "在桌面通知中顯示訊息", "Pin Message": "釘選訊息", - "Unpin Message": "取消釘選訊息" + "Unpin Message": "取消釘選訊息", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "您可以使用自訂的伺服器選項,並指定不同的家伺服器 URL 來登入其他的 Matrix 伺服器。
這讓您可以在不同的伺服器上以既有的 Matrix 帳號使用 Riot。

您也可以設定一個自訂的識別伺服器,但您可能無法透過電子郵件地址來邀請使用者,或是讓別人透過電子郵件邀請您。", + "Edit": "編輯", + "Register": "註冊", + "Rooms": "聊天室", + "Invite to this community": "邀請至此社群", + "Add rooms to this community": "新增聊天室到此社群", + "Toolbox": "工具箱", + "Send Account Data": "傳送帳號資料", + "Explore Account Data": "探索帳號資料" } diff --git a/src/skins/vector/css/_common.scss b/src/skins/vector/css/_common.scss index a9b8092848..8a333071cd 100644 --- a/src/skins/vector/css/_common.scss +++ b/src/skins/vector/css/_common.scss @@ -1,6 +1,7 @@ /* Copyright 2015, 2016 OpenMarket Ltd Copyright 2017 Vector Creations Ltd +Copyright 2017 New Vector Ltd Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -23,12 +24,7 @@ html { } body { - /* Open Sans lacks combining diacritics, so these will fall through - to the next font. Helevetica's diacritics however do not combine - nicely with Open Sans (on OSX, at least) and result in a huge - horizontal mess. Arial empirically gets it right, hence prioritising - Arial here. */ - font-family: 'Open Sans', Arial, Helvetica, Sans-Serif; + font-family: $font-family; font-size: 15px; background-color: $primary-bg-color; color: $primary-fg-color; @@ -73,7 +69,7 @@ input[type=text]:focus, input[type=password]:focus, textarea:focus { /* Required by Firefox */ textarea { - font-family: 'Open Sans', Arial, Helvetica, Sans-Serif; + font-family: $font-family; } /* Prevent ugly dotted highlight around selected elements in Firefox */ @@ -123,6 +119,19 @@ textarea { transition: height 120ms ease-out ! important; } +// These are magic constants which are excluded from tinting, to let themes +// (which only have CSS, unlike skins) tell the app what their non-tinted +// colourscheme is by inspecting the stylesheet DOM. +// +// They are not used for layout!! +#mx_theme_accentColor { + color: $accent-color; +} + +#mx_theme_secondaryAccentColor { + color: $secondary-accent-color; +} + .mx_Dialog_wrapper { position: fixed; z-index: 4000; @@ -210,24 +219,19 @@ textarea { } .mx_Dialog button, .mx_Dialog input[type="submit"] { - border: 0px; - height: 36px; - border-radius: 40px; - border: solid 1px $accent-color; - font-weight: 600; - font-size: 14px; - font-family: 'Open Sans', Arial, Helvetica, Sans-Serif; + @mixin mx_DialogButton; margin-left: 0px; margin-right: 8px; - padding-left: 1.5em; - padding-right: 1.5em; - outline: none; - cursor: pointer; - color: $accent-color; - background-color: $primary-bg-color; - /* align images in buttons (eg spinners) */ - vertical-align: middle; + // flip colours for the secondary ones + font-weight: 600; + border: 1px solid $accent-color ! important; + color: $accent-color; + background-color: $accent-fg-color; +} + +.mx_Dialog button:hover, .mx_Dialog input[type="submit"]:hover { + @mixin mx_DialogButton_hover; } .mx_Dialog button:focus, .mx_Dialog input[type="submit"]:focus { @@ -292,26 +296,18 @@ textarea { color: $selection-fg-color; } -/** green button with rounded corners */ .mx_textButton { - color: $accent-fg-color; - background-color: $accent-color; - border-radius: 17px; - text-align: center; - padding-left: 1em; - padding-right: 1em; - cursor: pointer; - display: inline; + @mixin mx_DialogButton_small; +} + +.mx_textButton:hover { + @mixin mx_DialogButton_hover; } .mx_button_row { margin-top: 69px; } -.changelog_text { - font-family: 'Open Sans', Arial, Helvetica, Sans-Serif; -} - .mx_Beta { color: red; margin-right: 10px; diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss index 230b5ae477..77449d81b4 100644 --- a/src/skins/vector/css/_components.scss +++ b/src/skins/vector/css/_components.scss @@ -22,6 +22,7 @@ @import "./matrix-react-sdk/views/dialogs/_CreateGroupDialog.scss"; @import "./matrix-react-sdk/views/dialogs/_CreateRoomDialog.scss"; @import "./matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss"; +@import "./matrix-react-sdk/views/dialogs/_GroupAddressPicker.scss"; @import "./matrix-react-sdk/views/dialogs/_QuestionDialog.scss"; @import "./matrix-react-sdk/views/dialogs/_SetMxIdDialog.scss"; @import "./matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss"; @@ -35,6 +36,7 @@ @import "./matrix-react-sdk/views/elements/_ProgressBar.scss"; @import "./matrix-react-sdk/views/elements/_RichText.scss"; @import "./matrix-react-sdk/views/elements/_RoleButton.scss"; +@import "./matrix-react-sdk/views/elements/_ToolTipButton.scss"; @import "./matrix-react-sdk/views/groups/_GroupRoomList.scss"; @import "./matrix-react-sdk/views/login/_InteractiveAuthEntryComponents.scss"; @import "./matrix-react-sdk/views/login/_ServerConfig.scss"; diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_GroupView.scss b/src/skins/vector/css/matrix-react-sdk/structures/_GroupView.scss index 583ab2ce2e..300728d274 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/_GroupView.scss +++ b/src/skins/vector/css/matrix-react-sdk/structures/_GroupView.scss @@ -213,13 +213,12 @@ limitations under the License. .mx_GroupView_membershipSection { color: $greyed-fg-color; + margin-top: 10px; } .mx_GroupView_membershipSubSection { justify-content: space-between; display: flex; - margin-top: 2px; - margin-bottom: 2px; } .mx_GroupView_membershipSection_description { @@ -227,6 +226,10 @@ limitations under the License. line-height: 34px; } +.mx_GroupView_membershipSection_description .mx_BaseAvatar { + margin-right: 10px; +} + .mx_GroupView_membershipSection .mx_GroupView_textButton { margin-right: 0px; margin-top: 0px; @@ -300,10 +303,22 @@ limitations under the License. } .mx_GroupView_body .gm-scroll-view > *{ - margin: 0px 50px 11px 68px; + margin: 11px 50px 0px 68px; } .mx_GroupView_groupDesc textarea { - width: 50%; + width: 100%; + max-width: 100%; height: 150px; } + +.mx_GroupView_groupDesc_placeholder { + background-color: $info-plinth-bg-color; + color: $info-plinth-fg-color; + border-radius: 10px; + text-align: center; + + cursor: pointer; + padding: 100px 20px; + margin: 20px 0px; +} diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_MyGroups.scss b/src/skins/vector/css/matrix-react-sdk/structures/_MyGroups.scss index d7cbda9a9b..f76aefe383 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/_MyGroups.scss +++ b/src/skins/vector/css/matrix-react-sdk/structures/_MyGroups.scss @@ -87,8 +87,8 @@ limitations under the License. } .mx_MyGroups_placeholder { - background-color: $group-my-groups-placeholder-bg; - color: $group-my-groups-placeholder-fg; + background-color: $info-plinth-bg-color; + color: $info-plinth-fg-color; line-height: 400px; border-radius: 10px; text-align: center; diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss b/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss index 0f34f056a5..64dec8260a 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss +++ b/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss @@ -38,7 +38,7 @@ limitations under the License. .mx_SearchBox_search { flex: 1 1 auto; width: 0px; - font-family: 'Open Sans', Arial, Helvetica, Sans-Serif; + font-family: $font-family; font-size: 12px; margin-top: -2px; height: 24px; diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss index 6607253886..f6341dd6cd 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss +++ b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss @@ -64,30 +64,13 @@ limitations under the License. } .mx_UserSettings_button { + @mixin mx_DialogButton; display: inline; - vertical-align: middle; - border: 0px; - border-radius: 36px; - font-weight: 400; - font-size: 16px; - color: $accent-fg-color; - background-color: $accent-color; - width: auto; margin: auto; - padding: 7px; - padding-left: 1.5em; - padding-right: 1.5em; - cursor: pointer; } -.mx_UserSettings_button.mx_UserSettings_buttonSmall { - height: 36px; - padding: 4px; - padding-left: 7px; - padding-right: 7px; - font-size: 12px; - margin-right: 5px; - line-height: 12px; +.mx_UserSettings_button:hover { + @mixin mx_DialogButton_hover; } .mx_UserSettings_button.danger { diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss index 86ab39be1b..84b8306a74 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss +++ b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss @@ -26,7 +26,6 @@ limitations under the License. } .mx_Login h2 { - color: $primary-fg-color; font-weight: 300; margin-top: 32px; margin-bottom: 20px; @@ -80,15 +79,14 @@ limitations under the License. } .mx_Login_submit { + @mixin mx_DialogButton; + width: 100%; margin-top: 35px; margin-bottom: 24px; - width: 100%; - border-radius: 40px; - height: 40px; - border: 0px; - background-color: $accent-color; - font-size: 15px; - color: $accent-fg-color; +} + +.mx_Login_submit:hover { + @mixin mx_DialogButton_hover; } .mx_Login_submit:disabled { @@ -137,8 +135,7 @@ limitations under the License. } .mx_Login_forgot { - font-size: 13px; - opacity: 0.8; + font-size: 15px; } .mx_Login_forgot:link { @@ -224,7 +221,6 @@ limitations under the License. height: 16px; flex-shrink: 1; min-width: 0px; - border-radius: 3px; } .mx_Login_phoneNumberField { diff --git a/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss b/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss index 320efda043..ee2d9c190f 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss @@ -31,5 +31,5 @@ limitations under the License. .mx_BaseAvatar_image { border-radius: 40px; vertical-align: top; - background-color: #fff; + background-color: $avatar-bg-color; } diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss index a950ea8d12..6fc211743d 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss @@ -28,7 +28,7 @@ limitations under the License. { height: 26px; font-size: 14px; - font-family: 'Open Sans', Arial, Helvetica, Sans-Serif; + font-family: $font-family; padding-left: 12px; padding-right: 12px; margin: 0 !important; @@ -60,9 +60,8 @@ limitations under the License. } .mx_ChatInviteDialog_error { - position: absolute; + margin-top: 10px; color: $warning-color; - line-height: 36px; } .mx_ChatInviteDialog_cancel { diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ConfirmUserActionDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ConfirmUserActionDialog.scss index d12bcd3712..b859d6bf4d 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ConfirmUserActionDialog.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ConfirmUserActionDialog.scss @@ -34,7 +34,7 @@ limitations under the License. } .mx_ConfirmUserActionDialog_reasonField { - font-family: 'Open Sans', Arial, Helvetica, Sans-Serif; + font-family: $font-family; font-size: 14px; color: $primary-fg-color; background-color: $primary-bg-color; diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss index cbc0195cac..9fb2bf525e 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss @@ -27,7 +27,7 @@ limitations under the License. border: solid 1px $accent-color; font-weight: 600; font-size: 14px; - font-family: 'Open Sans', Arial, Helvetica, Sans-Serif; + font-family: $font-family; margin-left: 0px; margin-right: 8px; padding-left: 1.5em; diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_GroupAddressPicker.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_GroupAddressPicker.scss new file mode 100644 index 0000000000..d6c961c0ec --- /dev/null +++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_GroupAddressPicker.scss @@ -0,0 +1,25 @@ +/* +Copyright 2017 New Vector Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +.mx_GroupAddressPicker_checkboxContainer{ + margin-top: 10px; + display: flex; +} + +.mx_GroupAddressPicker_checkboxContainer input[type="checkbox"] { + /* Stop flex from shrinking the checkbox */ + width: 20px; +} diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss index 804b3f419e..332cd571d9 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss @@ -49,7 +49,7 @@ limitations under the License. border: solid 1px $accent-color; font-weight: 600; font-size: 13px; - font-family: 'Open Sans', Arial, Helvetica, Sans-Serif; + font-family: $font-family; margin-left: 0px; margin-right: 8px; padding-left: 0.5em; diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_RichText.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_RichText.scss index 8b7c8f06bb..474a123455 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/elements/_RichText.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_RichText.scss @@ -26,7 +26,8 @@ } .mx_EventTile_highlight .mx_EventTile_content .markdown-body a.mx_UserPill_me, -.mx_EventTile_content .mx_AtRoomPill { +.mx_EventTile_content .mx_AtRoomPill, +.mx_MessageComposer_input .mx_AtRoomPill { color: $accent-fg-color; background-color: $mention-user-pill-bg-color; padding-right: 5px; diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_ToolTipButton.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_ToolTipButton.scss new file mode 100644 index 0000000000..ef9dd02b2a --- /dev/null +++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_ToolTipButton.scss @@ -0,0 +1,51 @@ +/* +Copyright 2017 New Vector Ltd. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +.mx_ToolTipButton { + display: inline-block; + width: 11px; + height: 11px; + margin-left: 5px; + + border: 2px solid $neutral-badge-color; + border-radius: 20px; + color: $neutral-badge-color; + + transition: opacity 0.2s ease-in; + opacity: 0.6; + + line-height: 11px; + text-align: center; + + cursor: pointer; +} + +.mx_ToolTipButton:hover { + opacity: 1.0; +} + +.mx_ToolTipButton_container { + position: relative; + top: -18px; + left: 4px; +} + +.mx_ToolTipButton_helpText { + width: 200px; + text-align: center; + line-height: 17px !important; +} + diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss index f9c092873e..7fe2b03cf4 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -.mx_AppsDrawer { - margin-bottom: 3px; -} +// .mx_AppsDrawer { +// } .mx_AppsContainer { display: flex; @@ -51,11 +50,13 @@ limitations under the License. .mx_AppTile { max-width: 960px; width: 50%; - margin: 0 5px 2px 0; + margin-right: 5px; border: 1px solid $primary-hairline-color; border-radius: 2px; - // height: 350px; - // display: inline-block; +} + +.mx_AppTile:last-child { + margin-right: 1px; } .mx_AppTileFullWidth { @@ -69,6 +70,10 @@ limitations under the License. // display: inline-block; } +.mx_AppTile, .mx_AppTileFullWidth { + margin-top: 3px; +} + .mx_AppTileMenuBar { // height: 15px; margin: 0; @@ -116,8 +121,8 @@ limitations under the License. display: block; } -.mx_CloseAppWidget { -} +// .mx_CloseAppWidget { +// } .mx_AppTileMenuBarWidgetPadding { margin-right: 5px; @@ -235,3 +240,7 @@ form.mx_Custom_Widget_Form div { align-items: center; font-weight: bold; } + +.mx_AppLoading iframe { + display: none; +} diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss index bb0ca9594b..cfc46e85ab 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss @@ -156,18 +156,17 @@ limitations under the License. .mx_EventTile_redacted .mx_EventTile_line .mx_UnknownBody { display: block; width: 100%; - height: 36px; - background-image: $event-redacted-img; - background-repeat: no-repeat; - background-size: contain; -} - -.mx_EventTile.mx_EventTile_redacted .mx_EventTile_line { - /* - Prevent changing colour of the background because - $event-redacted-img matches $primary-bg-color - */ - background-color: initial !important; + height: 22px; + width: 250px; + border-radius: 11px; + background: repeating-linear-gradient( + -45deg, + $event-redacted-fg-color, + $event-redacted-fg-color 3px, + transparent 3px, + transparent 6px + ); + box-shadow: 0px 0px 3px $event-redacted-border-color inset; } .mx_EventTile_highlight, diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss index 2a5be3250d..5888820e0d 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss @@ -26,19 +26,15 @@ limitations under the License. } .mx_MemberDeviceInfo_textButton { - color: $accent-fg-color; - background-color: $accent-color; - border-radius: 17px; - text-align: center; - padding-left: 1em; - padding-right: 1em; - border: 0px; - font-size: 14px; - cursor: pointer; + @mixin mx_DialogButton_small; margin: 2px; flex: 1; } +.mx_MemberDeviceInfo_textButton:hover { + @mixin mx_DialogButton_hover; +} + .mx_MemberDeviceInfo_deviceId { font-size: 13px; } diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss index dd41483b6c..83fc70aefb 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss @@ -49,7 +49,7 @@ limitations under the License. .mx_MemberList_query, .mx_GroupMemberList_query, .mx_GroupRoomList_query { - font-family: 'Open Sans', Arial, Helvetica, Sans-Serif; + font-family: $font-family; border-radius: 3px; border: 1px solid $input-border-color; padding: 9px; diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss index 14e758535e..4a84d161bb 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss @@ -55,9 +55,11 @@ limitations under the License. .mx_MessageComposer_noperm_error { width: 100%; height: 60px; - text-align: center; font-style: italic; color: $greyed-fg-color; + display: flex; + align-items: center; + justify-content: center; } .mx_MessageComposer_input_wrapper { @@ -138,7 +140,7 @@ limitations under the License. max-height: 120px; overflow: auto; /* needed for FF */ - font-family: 'Open Sans', Arial, Helvetica, Sans-Serif; + font-family: $font-family; } /* hack for FF as vertical alignment of custom placeholder text is broken */ @@ -175,6 +177,8 @@ limitations under the License. .mx_MessageComposer_formatting { cursor: pointer; margin: 0 11px; + width: 24px; + height: 18px; } .mx_MessageComposer_formatbar_wrapper { diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss index 85ad08ec82..9c1349adbc 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss @@ -42,22 +42,14 @@ limitations under the License. } .mx_RoomHeader_textButton { - height: 36px; - background-color: $accent-color; - border-radius: 36px; + @mixin mx_DialogButton; margin-right: 8px; - color: $accent-fg-color; - line-height: 34px; - margin-top: -2px; - text-align: center; + margin-top: -5px; order: 2; - cursor: pointer; +} -/* - flex: 0 0 90px; -*/ - padding-left: 12px; - padding-right: 12px; +.mx_RoomHeader_textButton:hover { + @mixin mx_DialogButton_hover; } .mx_RoomHeader_textButton_danger { @@ -176,7 +168,7 @@ limitations under the License. .mx_RoomHeader_topic { vertical-align: bottom; float: left; - max-height: 42px; + max-height: 38px; color: $settings-grey-fg-color; font-weight: 300; font-size: 13px; @@ -185,6 +177,7 @@ limitations under the License. overflow: hidden; text-overflow: ellipsis; border-bottom: 1px solid transparent; + column-width: 960px; } .mx_RoomHeader_avatar { @@ -237,12 +230,16 @@ limitations under the License. position: relative; } -.mx_RoomHeader_unreadPinsIndicator { +.mx_RoomHeader_pinsIndicator { position: absolute; right: 0; bottom: 4px; width: 8px; height: 8px; border-radius: 8px; - background-color: $warning-color; + background-color: $pinned-color; +} + +.mx_RoomHeader_pinsIndicatorUnread { + background-color: $pinned-unread-color; } diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss index 35787ca0c4..d8a8d58a9c 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss @@ -50,10 +50,11 @@ limitations under the License. color: $primary-fg-color; background-color: $droptarget-bg-color; border-radius: 4px; + line-height: 16px; } .mx_RoomList_emptySubListTip .mx_RoleButton { - vertical-align: -3px; + vertical-align: -2px; } .mx_RoomList_headerButtons { diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss index 9e269ac2b5..4013af4c7c 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss @@ -22,18 +22,16 @@ limitations under the License. .mx_RoomSettings_leaveButton, .mx_RoomSettings_unbanButton { + @mixin mx_DialogButton; position: relative; - height: 36px; - background-color: $accent-color; - border-radius: 36px; margin-right: 8px; - color: $accent-fg-color; - line-height: 34px; - text-align: center; - cursor: pointer; - padding-left: 12px; - padding-right: 12px; } + +.mx_RoomSettings_leaveButton:hover, +.mx_RoomSettings_unbanButton:hover { + @mixin mx_DialogButton_hover; +} + .mx_RoomSettings_integrationsButton_error { position: relative; cursor: not-allowed; diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss index 6116dd92ca..37a663123d 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss @@ -21,7 +21,7 @@ limitations under the License. } .mx_SearchableEntityList_query { - font-family: 'Open Sans', Arial, Helvetica, Sans-Serif; + font-family: $font-family; border-radius: 3px; border: 1px solid $input-border-color; padding: 9px; diff --git a/src/skins/vector/css/themes/_base.scss b/src/skins/vector/css/themes/_base.scss index 1a0fa5b400..a3346d1074 100644 --- a/src/skins/vector/css/themes/_base.scss +++ b/src/skins/vector/css/themes/_base.scss @@ -1,3 +1,9 @@ +/* Open Sans lacks combining diacritics, so these will fall through + to the next font. Helevetica's diacritics however do not combine + nicely with Open Sans (on OSX, at least) and result in a huge + horizontal mess. Arial empirically gets it right, hence prioritising + Arial here. */ +$font-family: 'Open Sans', Arial, Helvetica, Sans-Serif; // typical text (dark-on-white in light skin) $primary-fg-color: #454545; @@ -22,9 +28,13 @@ $warning-color: #ff0064; $mention-user-pill-bg-color: #ff0064; $other-user-pill-bg-color: rgba(0, 0, 0, 0.1); -// groups -$group-my-groups-placeholder-bg: #f7f7f7; -$group-my-groups-placeholder-fg: #888; +// pinned events indicator +$pinned-unread-color: #ff0064; // $warning-color +$pinned-color: #888; + +// informational plinth +$info-plinth-bg-color: #f7f7f7; +$info-plinth-fg-color: #888; $preview-bar-bg-color: #f7f7f7; @@ -61,6 +71,7 @@ $menu-border-color: rgba(187, 187, 187, 0.5); $menu-bg-color: #f6f6f6; $avatar-initial-color: #ffffff; +$avatar-bg-color: #ffffff; $h3-color: #3d3b39; @@ -94,6 +105,9 @@ $roomtile-focused-bg-color: rgba(255, 255, 255, 0.9); $roomsublist-label-fg-color: $h3-color; $roomsublist-label-bg-color: #d3efe1; +$roomsublist-chevron-color: $accent-color; + +$panel-divider-color: rgba(118, 207, 166, 0.2); // ******************** @@ -103,7 +117,8 @@ $event-sending-color: #ddd; $event-notsent-color: #f44; // event redaction -$event-redacted-img: url('../../img/redacted.jpg'); +$event-redacted-fg-color: #e2e2e2; +$event-redacted-border-color: #cccccc; // event timestamp $event-timestamp-color: #acacac; @@ -123,3 +138,31 @@ $lightbox-border-color: #ffffff; // unused? $progressbar-color: #000; + +// ***** Mixins! ***** + +@define-mixin mx_DialogButton { + /* align images in buttons (eg spinners) */ + vertical-align: middle; + border: 0px; + border-radius: 36px; + font-family: $font-family; + font-size: 14px; + color: $accent-fg-color; + background-color: $accent-color; + width: auto; + padding: 7px; + padding-left: 1.5em; + padding-right: 1.5em; + cursor: pointer; + display: inline-block; +} + +@define-mixin mx_DialogButton_hover { +} + +@define-mixin mx_DialogButton_small { + @mixin mx_DialogButton; + font-size: 15px; + padding: 0px 1.5em 0px 1.5em; +} diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss index 034bd748ef..595783c377 100644 --- a/src/skins/vector/css/themes/_dark.scss +++ b/src/skins/vector/css/themes/_dark.scss @@ -21,7 +21,7 @@ $focus-brightness: 200%; $warning-color: #ff0064; // groups -$group-my-groups-placeholder-bg: #454545; +$info-plinth-bg-color: #454545; $other-user-pill-bg-color: rgba(255, 255, 255, 0.1); @@ -60,6 +60,7 @@ $menu-border-color: rgba(187, 187, 187, 0.5); $menu-bg-color: #373737; $avatar-initial-color: #2d2d2d; +$avatar-bg-color: #ffffff; $h3-color: $primary-fg-color; @@ -92,6 +93,9 @@ $roomtile-focused-bg-color: rgba(255, 255, 255, 0.2); $roomsublist-label-fg-color: $h3-color; $roomsublist-label-bg-color: #454545; +$roomsublist-chevron-color: $accent-color; + +$panel-divider-color: rgba(118, 207, 166, 0.2); // ******************** @@ -101,7 +105,8 @@ $event-sending-color: #888; $event-notsent-color: #f44; // event redaction -$event-redacted-img: url('../../img/redacted-dark.jpg'); +$event-redacted-fg-color: #606060; +$event-redacted-border-color: #000000; // event timestamp $event-timestamp-color: #acacac; diff --git a/src/skins/vector/css/vector-web/structures/_LeftPanel.scss b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss index 418358dd65..29786fadda 100644 --- a/src/skins/vector/css/vector-web/structures/_LeftPanel.scss +++ b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss @@ -49,7 +49,7 @@ limitations under the License. .mx_LeftPanel .mx_BottomLeftMenu { order: 3; - border-top: 1px solid rgba(118, 207, 166, 0.2); + border-top: 1px solid $panel-divider-color; margin-left: 16px; /* gutter */ margin-right: 16px; /* gutter */ flex: 0 0 60px; diff --git a/src/skins/vector/css/vector-web/structures/_RoomSubList.scss b/src/skins/vector/css/vector-web/structures/_RoomSubList.scss index 0d56d6c378..1a78e51731 100644 --- a/src/skins/vector/css/vector-web/structures/_RoomSubList.scss +++ b/src/skins/vector/css/vector-web/structures/_RoomSubList.scss @@ -129,7 +129,7 @@ limitations under the License. height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; - border-top: 6px solid $accent-color; + border-top: 6px solid $roomsublist-chevron-color; } .mx_RoomSubList_chevronUp { @@ -137,14 +137,14 @@ limitations under the License. height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; - border-bottom: 6px solid $accent-color; + border-bottom: 6px solid $roomsublist-chevron-color; } .mx_RoomSubList_chevronRight { width: 0; height: 0; border-top: 5px solid transparent; - border-left: 6px solid $accent-color; + border-left: 6px solid $roomsublist-chevron-color; border-bottom: 5px solid transparent; } diff --git a/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss index 1a7b1c1646..be69b15f37 100644 --- a/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss +++ b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss @@ -56,3 +56,7 @@ limitations under the License. .mx_MatrixToolbar_action { margin-right: 16px; } + +.mx_MatrixToolbar_changelog { + white-space: pre; +} \ No newline at end of file diff --git a/src/skins/vector/img/button-text-formatting.svg b/src/skins/vector/img/button-text-formatting.svg index d3fc3f5f54..d697010d40 100644 --- a/src/skins/vector/img/button-text-formatting.svg +++ b/src/skins/vector/img/button-text-formatting.svg @@ -1,18 +1,21 @@ - - - - F69CBF5F-0BEC-47E8-B1DF-125D6376C0C9 - Created with sketchtool. - - - - - - - A - a - - - - - \ No newline at end of file + + + + + + + + + + + + diff --git a/src/skins/vector/img/logos/riot-im-logo-1.png b/src/skins/vector/img/logos/riot-im-logo-1.png new file mode 100644 index 0000000000..768679da66 Binary files /dev/null and b/src/skins/vector/img/logos/riot-im-logo-1.png differ diff --git a/src/skins/vector/themes/status/css/_StatusLogin.scss b/src/skins/vector/themes/status/css/_StatusLogin.scss new file mode 100644 index 0000000000..6872727423 --- /dev/null +++ b/src/skins/vector/themes/status/css/_StatusLogin.scss @@ -0,0 +1,232 @@ +/* +Copyright 2017 New Vector Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// overrides for mx_Login* specific to Status. +// Ideally this would be all Status prefixes for a Status specific version of the component +// but given we're not doing Status as a dedicated 'skin' yet... + +.mx_StatusLogin { + + width: 100%; + height: 100%; + + display: flex; + align-items: center; + justify-content: center; + + overflow: auto; + + .mx_StatusLogin_brand { + position: absolute; + top: 30px; + left: 30px; + } + + .mx_StatusLogin_content { + margin: auto; + } + + .mx_StatusLogin_header { + text-align: center; + margin-top: 70px; + margin-bottom: 50px; + } + + .mx_StatusLogin_header h1 { + font-size: 29px; + margin-bottom: 3px; + } + + .mx_StatusLogin_subtitle { + font-size: 18px; + } + + .mx_StatusLogin_subtitle a { + color: $riot-link-color; + } + + .mx_StatusLogin_footer { + margin-top: 30px; + margin-bottom: 30px; + text-align: center; + font-size: 16px; + color: $footer-color; + } + + .mx_StatusLogin_footer p { + margin-top: 0.5em; + margin-bottom: 0.5em; + } + + .mx_StatusLogin_footer_cta { + color: $callout-color; + font-family: $header-font-family; + letter-spacing: 1px; + font-size: 13px; + text-transform: uppercase; + opacity: 1.0; + transition: opacity .2s ease; + } + + .mx_StatusLogin_footer_cta:hover { + opacity: 0.5; + text-decoration: none; + } + + // overrides of .mx_Login + + .mx_Login_box { + width: 330px; + min-height: initial; + padding-top: 40px; + padding-bottom: 20px; + padding-left: 10px; + padding-right: 10px; + border-radius: 8px; + color: $form-fg-color; + font-size: 16px; + line-height: 25px; + background-color: $form-bg-color; + background-image: url(../../themes/status/img/dot.svg); + box-shadow: 0px 5px 16px 0px rgba(25,12,46,0.16); + position: relative; + text-align: center; + } + + .mx_Login_logo { + background-color: #fff; + width: 74px; + height: 74px; + border-radius: 37px; + box-shadow: 0px 5px 16px 0px rgba(0,0,0,0.2); + position: absolute; + top: -36px; + left: 50%; + margin-left: -36px; + } + + .mx_Login_logo img { + width: 36px; + height: 36px; + padding: 19px; + } + + .mx_Login_box h2 { + text-align: center; + color: $form-fg-color; + font-size: 25px; + margin-bottom: 24px; + } + + .mx_Login_field { + width: 260px; + height: 27px; + padding: 8px 20px 10px 20px; + border-radius: 10px; + text-align: left; + border: 1px solid transparent; + background-color: $form-field-bg-color; + color: $form-field-fg-color; + font-weight: 300; + font-size: 15px; + margin-bottom: 14px; + transition: background-color .2s ease; + } + + .mx_Login_field:focus { + border: 1px solid transparent; + background-color: $form-field-bg-hover-color; + } + + .mx_Login_field::-webkit-input-placeholder { + font-family: $font-family; + color: $form-field-fg-color; + opacity: 0.6; + } + + .mx_Login_field::-moz-placeholder { + font-family: $font-family; + color: $form-field-fg-color; + opacity: 0.6; + } + + .mx_Login_field_disabled { + opacity: 0.3; + } + + .mx_Login_prompt { + font-size: 16px; + } + + .mx_Login_submit { + min-width: 200px; + width: auto; + margin-top: 13px; + margin-bottom: 10px; + } + + .mx_Login_submit:disabled { + opacity: 0.3; + } + + .mx_Login_create { + margin-top: 10px; + display: block; + text-align: center; + width: 100%; + font-size: 15px; + opacity: 1.0; + } + + .mx_Login_create:link, + .mx_Login_create:hover, + .mx_Login_create:visited + { + color: $form-fg-color; + } + + .mx_Login_forgot { + display: block; + font-size: 15px; + } + + .mx_Login_forgot:link, + .mx_Login_forgot:hover, + .mx_Login_forgot:visited + { + color: $form-fg-color; + } + + .mx_Login_error { + color: $warning-color; + font-size: 18px; + width: 300px; + height: 44px; + display: flex; + justify-content: center; + align-items: center; + margin: auto; + text-align: center; + margin-top: 12px; + margin-bottom: 16px; + } + + .mx_Login_smallError { + font-size: 13px; + line-height: initial; + } + +} diff --git a/src/skins/vector/themes/status/css/_status.scss b/src/skins/vector/themes/status/css/_status.scss new file mode 100644 index 0000000000..2962ee9d4b --- /dev/null +++ b/src/skins/vector/themes/status/css/_status.scss @@ -0,0 +1,276 @@ +@font-face { + font-family:PostGrotesk-Medium; + src:url('https://status.im/fonts/PostGrotesk-Medium.eot'); + src:url('https://status.im/fonts/PostGrotesk-Medium.eot?#iefix') format("embedded-opentype"),url('https://status.im/fonts/PostGrotesk-Medium.woff') format("woff"),url('https://status.im/fonts/PostGrotesk-Medium.svg#PostGrotesk-Medium') format("svg"); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family:PostGrotesk-Book; + src:url('https://status.im/fonts/PostGrotesk-Book.eot'); + src:url('https://status.im/fonts/PostGrotesk-Book.eot?#iefix') format("embedded-opentype"),url('https://status.im/fonts/PostGrotesk-Book.woff') format("woff"),url('https://status.im/fonts/PostGrotesk-Book.svg#PostGrotesk-Book') format("svg"); + font-weight: 400; + font-style: normal; +} + +// We deliberately prioritise Arial over Helvetica here due to diacritic problems (see _base.scss) +// N.B. that the status.im website uses: +// font-family:PostGrotesk-Book,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif; +// ...but can't be bothered to work out how the apple fonts & segoe interact, so keepingn it simple for now. + +$font-family: PostGrotesk-Book, Arial, Helvetica, Sans-Serif; + +// typical text (dark-on-white in light skin) +$primary-fg-color: #70808D; +$primary-bg-color: #EEF2F5; + +// ***** Start of Status theme specifics ****** +$header-color: #49555F; +$header-font-family: PostGrotesk-Medium, Arial, Helvetica, Sans-Serif; + +$footer-color: #8D99A4; + +$riot-link-color: #A26988; + +a { + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +h1,h2,h3,h4,h5 { + color: $header-color; + font-family: $header-font-family; + font-weight: 400 ! important; +} + +$callout-color: #4360DF; // or #4957b8 from status.im homepage + +$form-bg-color: $callout-color; +$form-fg-color: #ffffff; + +$form-field-bg-color: rgba(244, 242, 247, 0.12); +$form-field-bg-hover-color: rgba(255, 255, 255, 0.2); +$form-field-fg-color: #ffffff; + +// ***** End of Status theme specifics ****** + + +// used for dialog box text +$light-fg-color: #747474; + +// used for focusing form controls +$focus-bg-color: #dddddd; + +// button UI (white-on-green in light skin) +$accent-fg-color: #ffffff; +$accent-color: #6CC1F6; +$accent-hover-color: #84cfff; + +$selection-fg-color: $primary-bg-color; + +$focus-brightness: 125%; + +// red warning colour +$warning-color: #F69E98; +$mention-user-pill-bg-color: #ff0064; +$other-user-pill-bg-color: rgba(0, 0, 0, 0.1); + +$group-alert-color: #774f7e; + +$preview-bar-bg-color: #f7f7f7; + +// left-panel style muted accent color +$secondary-accent-color: #586C7B; + +// stop the tinter trying to change the secondary accent color +// by overriding the key to something untintable +// XXX: this is a bit of a hack. +#mx_theme_secondaryAccentColor { + color: #586C7C ! important; // deliberately off by one +} + +// used by RoomDirectory permissions +$plinth-bg-color: $secondary-accent-color; + +// used by RoomDropTarget +$droptarget-bg-color: rgba(255,255,255,0.5); + +// used by AddressSelector +$selected-color: #eaf5f0; + +// selected for hoverover & selected event tiles +$event-selected-color: #f7f7f7; + +// used for the hairline dividers in RoomView +$primary-hairline-color: #e5e5e5; + +// used for the border of input text fields +$input-border-color: #c9cfd4; + +// apart from login forms, which have stronger border +$strong-input-border-color: #c7c7c7; + +// used for UserSettings EditableText +$input-underline-color: rgba(151, 151, 151, 0.5); +$input-fg-color: rgba(74, 74, 74, 0.9); + +// context menus +$menu-border-color: rgba(187, 187, 187, 0.5); +$menu-bg-color: #f6f6f6; + +$avatar-initial-color: #ffffff; +$avatar-bg-color: transparent; + +$h3-color: #3d3b39; + +$dialog-background-bg-color: #e9e9e9; +$lightbox-background-bg-color: #000; + +$greyed-fg-color: #888; + +$neutral-badge-color: #dbdbdb; + +$preview-widget-bar-color: #ddd; +$preview-widget-fg-color: $greyed-fg-color; + +$blockquote-bar-color: #ddd; +$blockquote-fg-color: #777; + +$settings-grey-fg-color: #a2a2a2; + +$voip-decline-color: #f48080; +$voip-accept-color: #80f480; + +$rte-bg-color: #e9e9e9; +$rte-code-bg-color: rgba(0, 0, 0, 0.04); +$rte-room-pill-color: #aaa; + +// ******************** + +$roomtile-name-color: #ffffff; +$roomtile-selected-bg-color: #465561; +$roomtile-focused-bg-color: #6d8597; + +$roomsublist-label-fg-color: #ffffff; +$roomsublist-label-bg-color: $secondary-accent-color; +$roomsublist-chevron-color: #ffffff; + +$panel-divider-color: rgba(0, 0, 0, 0.2); + +// ******************** + +// event tile lifecycle +$event-encrypting-color: #abddbc; +$event-sending-color: #ddd; +$event-notsent-color: #f44; + +// event redaction +$event-redacted-fg-color: #e2e2e2; +$event-redacted-border-color: #cccccc; + +// event timestamp +$event-timestamp-color: #acacac; + +$edit-button-url: "../../img/icon_context_message.svg"; +$copy-button-url: "../../img/icon_copy_message.svg"; + +// e2e +$e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color +$e2e-unverified-color: #e8bf37; +$e2e-warning-color: #ba6363; + +/*** ImageView ***/ +$lightbox-bg-color: #454545; +$lightbox-fg-color: #ffffff; +$lightbox-border-color: #ffffff; + +// unused? +$progressbar-color: #000; + +@define-mixin mx_DialogButton { + /* align images in buttons (eg spinners) */ + vertical-align: middle; + border-radius: 8px; + border: 1px solid rgba(199, 206, 209, 0.12); + background-color: $accent-color; + font-size: 13px; + font-family: $header-font-family; + text-transform: uppercase; + letter-spacing: 1px; + color: $accent-fg-color; + cursor: pointer; + outline: none; + padding: 14px; + box-sizing: border-box; + padding-left: 1.5em; + padding-right: 1.5em; + display: inline-block; + transition: background-color .2s ease; +} + +@define-mixin mx_DialogButton_hover { + background-color: $accent-hover-color; +} + +@define-mixin mx_DialogButton_small { + @mixin mx_DialogButton; + height: auto; + padding-top: 7px; + padding-bottom: 7px; + padding-left: 1em; + padding-right: 1em; +} + +.mx_RoomSubList_label { + font-size: 13px; + font-family: $header-font-family; + letter-spacing: 1px; +} + +// FIXME: all these ! importants are horrid - we should instead go and define +// variables or something. +.mx_SearchBox_search { + color: #fff ! important; +} + +.mx_SearchBox_search::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.6) ! important; +} + +.mx_SearchBox_search::-moz-placeholder { + color: rgba(255, 255, 255, 0.6) ! important; +} + +.mx_RoomList_emptySubListTip, +.mx_RoomDropTarget { + font-size: 14px ! important; + border: 1.5px dashed rgba(0,0,0,0.2) ! important; + color: #fff ! important; + background-color: transparent ! important; + border-radius: 6px ! important; + margin-left: 6px ! important; + margin-right: 6px ! important; + margin-top: 8px ! important; + margin-bottom: 7px ! important; + padding: 8px ! important; +} + +.mx_RoomDirectory_perm { + font-family: $header-font-family ! important; + background-color: #fff ! important; +} + +.mx_RoomTile_badge, +.mx_RoomSubList_badge { + height: 12px ! important; + padding-top: 1px ! important; + padding-bottom: 1px ! important; +} + +.mx_RoomSubList_chevron { + top: 8px ! important; +} \ No newline at end of file diff --git a/src/skins/vector/themes/status/css/status.scss b/src/skins/vector/themes/status/css/status.scss new file mode 100644 index 0000000000..09f5c78f17 --- /dev/null +++ b/src/skins/vector/themes/status/css/status.scss @@ -0,0 +1,4 @@ +@import "../../../css/themes/_base.scss"; +@import "_status.scss"; +@import "../../../css/_components.scss"; +@import "_StatusLogin.scss"; diff --git a/src/skins/vector/themes/status/fonts/README b/src/skins/vector/themes/status/fonts/README new file mode 100644 index 0000000000..d7900145ed --- /dev/null +++ b/src/skins/vector/themes/status/fonts/README @@ -0,0 +1 @@ +We link out to status.im for fonts, although ideally we'd put them here. diff --git a/src/skins/vector/themes/status/img/a.png b/src/skins/vector/themes/status/img/a.png new file mode 100644 index 0000000000..defbcc4bcd Binary files /dev/null and b/src/skins/vector/themes/status/img/a.png differ diff --git a/src/skins/vector/themes/status/img/d.png b/src/skins/vector/themes/status/img/d.png new file mode 100644 index 0000000000..daeb0b0785 Binary files /dev/null and b/src/skins/vector/themes/status/img/d.png differ diff --git a/src/skins/vector/themes/status/img/dot.svg b/src/skins/vector/themes/status/img/dot.svg new file mode 100644 index 0000000000..45df23c049 --- /dev/null +++ b/src/skins/vector/themes/status/img/dot.svg @@ -0,0 +1 @@ +Artboard \ No newline at end of file diff --git a/src/skins/vector/themes/status/img/g.png b/src/skins/vector/themes/status/img/g.png new file mode 100644 index 0000000000..f675a33022 Binary files /dev/null and b/src/skins/vector/themes/status/img/g.png differ diff --git a/src/skins/vector/themes/status/img/i.png b/src/skins/vector/themes/status/img/i.png new file mode 100644 index 0000000000..b63eeae13b Binary files /dev/null and b/src/skins/vector/themes/status/img/i.png differ diff --git a/src/skins/vector/themes/status/img/logo.svg b/src/skins/vector/themes/status/img/logo.svg new file mode 100644 index 0000000000..68e4a77a5c --- /dev/null +++ b/src/skins/vector/themes/status/img/logo.svg @@ -0,0 +1,16 @@ + + + + Status logo + Created with Sketch. + + + + + \ No newline at end of file diff --git a/src/skins/vector/themes/status/img/n.png b/src/skins/vector/themes/status/img/n.png new file mode 100644 index 0000000000..b8e33d41f7 Binary files /dev/null and b/src/skins/vector/themes/status/img/n.png differ diff --git a/src/vector/index.html b/src/vector/index.html index 49c2979ed1..36047aca7a 100644 --- a/src/vector/index.html +++ b/src/vector/index.html @@ -20,15 +20,14 @@ + <% for (var i=0; i < htmlWebpackPlugin.files.css.length; i++) { var file = htmlWebpackPlugin.files.css[i]; var match = file.match(/^bundles\/.*?\/theme-(.*)\.css$/); if (match) { var title = match[1].charAt(0).toUpperCase() + match[1].slice(1); - var light = match[1] == 'light'; %> - + <% } else { %> <% } @@ -73,5 +72,7 @@