diff --git a/web/react/components/channel_loader.jsx b/web/react/components/channel_loader.jsx
index c8f1196a83..13045d7323 100644
--- a/web/react/components/channel_loader.jsx
+++ b/web/react/components/channel_loader.jsx
@@ -10,6 +10,7 @@ import SocketStore from '../stores/socket_store.jsx';
import ChannelStore from '../stores/channel_store.jsx';
import PostStore from '../stores/post_store.jsx';
import UserStore from '../stores/user_store.jsx';
+import PreferenceStore from '../stores/preference_store.jsx';
import * as Utils from '../utils/utils.jsx';
import Constants from '../utils/constants.jsx';
@@ -69,6 +70,9 @@ export default class ChannelLoader extends React.Component {
Utils.applyTheme(Constants.THEMES.default);
}
+ const selectedFont = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'selected_font', {value: Constants.DEFAULT_FONT}).value;
+ Utils.applyFont(selectedFont);
+
$('body').on('mouseenter mouseleave', '.post', function mouseOver(ev) {
if (ev.type === 'mouseenter') {
$(this).parent('div').prev('.date-separator, .new-separator').addClass('hovered--after');
diff --git a/web/react/components/user_settings/user_settings_display.jsx b/web/react/components/user_settings/user_settings_display.jsx
index 43c8d33d12..dc3865c681 100644
--- a/web/react/components/user_settings/user_settings_display.jsx
+++ b/web/react/components/user_settings/user_settings_display.jsx
@@ -6,14 +6,17 @@ import SettingItemMin from '../setting_item_min.jsx';
import SettingItemMax from '../setting_item_max.jsx';
import Constants from '../../utils/constants.jsx';
import PreferenceStore from '../../stores/preference_store.jsx';
+import * as Utils from '../../utils/utils.jsx';
function getDisplayStateFromStores() {
const militaryTime = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'use_military_time', {value: 'false'});
const nameFormat = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'name_format', {value: 'username'});
+ const selectedFont = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'selected_font', {value: Constants.DEFAULT_FONT});
return {
militaryTime: militaryTime.value,
- nameFormat: nameFormat.value
+ nameFormat: nameFormat.value,
+ selectedFont: selectedFont.value
};
}
@@ -24,15 +27,20 @@ export default class UserSettingsDisplay extends React.Component {
this.handleSubmit = this.handleSubmit.bind(this);
this.handleClockRadio = this.handleClockRadio.bind(this);
this.handleNameRadio = this.handleNameRadio.bind(this);
+ this.handleFont = this.handleFont.bind(this);
this.updateSection = this.updateSection.bind(this);
this.state = getDisplayStateFromStores();
+ this.selectedFont = this.state.selectedFont;
}
handleSubmit() {
const timePreference = PreferenceStore.setPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'use_military_time', this.state.militaryTime);
const namePreference = PreferenceStore.setPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'name_format', this.state.nameFormat);
+ const fontPreference = PreferenceStore.setPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'selected_font', this.state.selectedFont);
- savePreferences([timePreference, namePreference],
+ this.selectedFont = this.state.selectedFont;
+
+ savePreferences([timePreference, namePreference, fontPreference],
() => {
PreferenceStore.emitChange();
this.updateSection('');
@@ -48,6 +56,10 @@ export default class UserSettingsDisplay extends React.Component {
handleNameRadio(nameFormat) {
this.setState({nameFormat});
}
+ handleFont(selectedFont) {
+ Utils.applyFont(selectedFont);
+ this.setState({selectedFont});
+ }
updateSection(section) {
this.setState(getDisplayStateFromStores());
this.props.updateSection(section);
@@ -56,6 +68,8 @@ export default class UserSettingsDisplay extends React.Component {
const serverError = this.state.serverError || null;
let clockSection;
let nameFormatSection;
+ let fontSection;
+
if (this.props.activeSection === 'clock') {
const clockFormat = [false, false];
if (this.state.militaryTime === 'true') {
@@ -209,6 +223,69 @@ export default class UserSettingsDisplay extends React.Component {
);
}
+ if (this.props.activeSection === 'font') {
+ const options = [];
+ Object.keys(Constants.FONTS).forEach((fontName, idx) => {
+ const className = Constants.FONTS[fontName];
+ options.push(
+
+ );
+ });
+
+ const inputs = [
+
+
+
+
+ {this.state.selectedFont}
+
+
+
{'Select the font displayed in the Mattermost user interface.'}
+
+ ];
+
+ fontSection = (
+ {
+ if (this.selectedFont !== this.state.selectedFont) {
+ this.handleFont(this.selectedFont);
+ }
+ this.updateSection('');
+ e.preventDefault();
+ }}
+ />
+ );
+ } else {
+ fontSection = (
+ {
+ this.props.updateSection('font');
+ }}
+ />
+ );
+ }
+
return (
@@ -239,6 +316,8 @@ export default class UserSettingsDisplay extends React.Component {
{nameFormatSection}
+ {fontSection}
+
);
diff --git a/web/react/utils/constants.jsx b/web/react/utils/constants.jsx
index 372e155563..122fad3486 100644
--- a/web/react/utils/constants.jsx
+++ b/web/react/utils/constants.jsx
@@ -344,6 +344,21 @@ export default {
}
],
DEFAULT_CODE_THEME: 'github',
+ FONTS: {
+ 'Droid Serif': 'font--droid_serif',
+ 'Roboto Slab': 'font--roboto_slab',
+ Lora: 'font--lora',
+ Slabo: 'font--slabo',
+ Arvo: 'font--arvo',
+ 'Open Sans': 'font--open_sans',
+ Roboto: 'font--roboto',
+ 'PT Sans': 'font--pt_sans',
+ Lato: 'font--lato',
+ 'Source Sans Pro': 'font--source_sans_pro',
+ 'Exo 2': 'font--exo_2',
+ Ubuntu: 'font--ubuntu'
+ },
+ DEFAULT_FONT: 'Open Sans',
Preferences: {
CATEGORY_DIRECT_CHANNEL_SHOW: 'direct_channel_show',
CATEGORY_DISPLAY_SETTINGS: 'display_settings',
diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx
index 9b2f7e0575..b3d1350b66 100644
--- a/web/react/utils/utils.jsx
+++ b/web/react/utils/utils.jsx
@@ -694,6 +694,17 @@ export function applyTheme(theme) {
}
updateCodeTheme(theme.codeTheme);
}
+
+export function applyFont(fontName) {
+ const body = document.querySelector('body');
+ body.classList.forEach((className) => {
+ if (className.lastIndexOf('font') === 0) {
+ body.classList.remove(className);
+ }
+ });
+ body.classList.add(Constants.FONTS[fontName]);
+}
+
export function changeCss(className, classValue, classRepeat) {
// we need invisible container to store additional css definitions
var cssMainContainer = $('#css-modifier-container');
diff --git a/web/static/css/google-fonts.css b/web/static/css/google-fonts.css
index a9d9d1a801..62c58e390d 100644
--- a/web/static/css/google-fonts.css
+++ b/web/static/css/google-fonts.css
@@ -128,3 +128,205 @@
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800italic.svg#OpenSans') format('svg'); /* Legacy iOS */
}
+
+/* Lato */
+@font-face {
+ font-family: 'Lato';
+ font-weight: 400;
+ font-style: normal;
+ src: url('/static/fonts/Lato-regular.eot');
+ src: local('Lato Regular'), local('Lato-regular'),
+ url('/static/fonts/Lato-regular.eot?#iefix') format('embedded-opentype'),
+ url('/static/fonts/Lato-regular.woff2') format('woff2'),
+ url('/static/fonts/Lato-regular.woff') format('woff'),
+ url('/static/fonts/Lato-regular.ttf') format('truetype'),
+ url('/static/fonts/Lato-regular.svg#Lato') format('svg');
+}
+
+/* Droid Serif */
+@font-face {
+ font-family: 'Droid Serif';
+ font-weight: 400;
+ font-style: normal;
+ src: url('/static/fonts/Droid-Serif-regular.eot');
+ src: local('Droid Serif'), local('Droid-Serif-regular'),
+ url('/static/fonts/Droid-Serif-regular.eot?#iefix') format('embedded-opentype'),
+ url('/static/fonts/Droid-Serif-regular.woff2') format('woff2'),
+ url('/static/fonts/Droid-Serif-regular.woff') format('woff'),
+ url('/static/fonts/Droid-Serif-regular.ttf') format('truetype'),
+ url('/static/fonts/Droid-Serif-regular.svg#DroidSerif') format('svg');
+}
+
+/* Lora */
+@font-face {
+ font-family: 'Lora';
+ font-weight: 400;
+ font-style: normal;
+ src: url('/static/fonts/Lora-regular.eot');
+ src: local('Lora'), local('Lora-regular'),
+ url('/static/fonts/Lora-regular.eot?#iefix') format('embedded-opentype'),
+ url('/static/fonts/Lora-regular.woff2') format('woff2'),
+ url('/static/fonts/Lora-regular.woff') format('woff'),
+ url('/static/fonts/Lora-regular.ttf') format('truetype'),
+ url('/static/fonts/Lora-regular.svg#Lora') format('svg');
+}
+
+/* Slabo */
+@font-face {
+ font-family: 'Slabo 13px';
+ font-weight: 400;
+ font-style: normal;
+ src: url('/static/fonts/Slabo-13px-regular.eot');
+ src: local('Slabo 13px'), local('Slabo-13px-regular'),
+ url('/static/fonts/Slabo-13px-regular.eot?#iefix') format('embedded-opentype'),
+ url('/static/fonts/Slabo-13px-regular.woff2') format('woff2'),
+ url('/static/fonts/Slabo-13px-regular.woff') format('woff'),
+ url('/static/fonts/Slabo-13px-regular.ttf') format('truetype'),
+ url('/static/fonts/Slabo-13px-regular.svg#Slabo13px') format('svg');
+}
+
+/* Arvo */
+@font-face {
+ font-family: 'Arvo';
+ font-weight: 400;
+ font-style: normal;
+ src: url('/static/fonts/Arvo-regular.eot');
+ src: local('Arvo'), local('Arvo-regular'),
+ url('/static/fonts/Arvo-regular.eot?#iefix') format('embedded-opentype'),
+ url('/static/fonts/Arvo-regular.woff2') format('woff2'),
+ url('/static/fonts/Arvo-regular.woff') format('woff'),
+ url('/static/fonts/Arvo-regular.ttf') format('truetype'),
+ url('/static/fonts/Arvo-regular.svg#Arvo') format('svg');
+}
+
+/* Roboto */
+@font-face {
+ font-family: 'Roboto';
+ font-weight: 400;
+ font-style: normal;
+ src: url('/static/fonts/Roboto-regular.eot');
+ src: local('Roboto'), local('Roboto-regular'),
+ url('/static/fonts/Roboto-regular.eot?#iefix') format('embedded-opentype'),
+ url('/static/fonts/Roboto-regular.woff2') format('woff2'),
+ url('/static/fonts/Roboto-regular.woff') format('woff'),
+ url('/static/fonts/Roboto-regular.ttf') format('truetype'),
+ url('/static/fonts/Roboto-regular.svg#Roboto') format('svg');
+}
+
+/* PT Sans */
+@font-face {
+ font-family: 'PT Sans';
+ font-weight: 400;
+ font-style: normal;
+ src: url('/static/fonts/PT-Sans-regular.eot');
+ src: local('PT Sans'), local('PT-Sans-regular'),
+ url('/static/fonts/PT-Sans-regular.eot?#iefix') format('embedded-opentype'),
+ url('/static/fonts/PT-Sans-regular.woff2') format('woff2'),
+ url('/static/fonts/PT-Sans-regular.woff') format('woff'),
+ url('/static/fonts/PT-Sans-regular.ttf') format('truetype'),
+ url('/static/fonts/PT-Sans-regular.svg#PTSans') format('svg');
+}
+
+/* Source Sans Pro */
+@font-face {
+ font-family: 'Source Sans Pro';
+ font-weight: 400;
+ font-style: normal;
+ src: url('/static/fonts/Source-Sans-Pro-regular.eot');
+ src: local('Source Sans Pro'), local('Source-Sans-Pro-regular'),
+ url('/static/fonts/Source-Sans-Pro-regular.eot?#iefix') format('embedded-opentype'),
+ url('/static/fonts/Source-Sans-Pro-regular.woff2') format('woff2'),
+ url('/static/fonts/Source-Sans-Pro-regular.woff') format('woff'),
+ url('/static/fonts/Source-Sans-Pro-regular.ttf') format('truetype'),
+ url('/static/fonts/Source-Sans-Pro-regular.svg#SourceSansPro') format('svg');
+}
+
+/* Exo 2 */
+@font-face {
+ font-family: 'Exo 2';
+ font-weight: 400;
+ font-style: normal;
+ src: url('/static/fonts/Exo-2-regular.eot');
+ src: local('Exo 2'), local('Exo-2-regular'),
+ url('/static/fonts/Exo-2-regular.eot?#iefix') format('embedded-opentype'),
+ url('/static/fonts/Exo-2-regular.woff2') format('woff2'),
+ url('/static/fonts/Exo-2-regular.woff') format('woff'),
+ url('/static/fonts/Exo-2-regular.ttf') format('truetype'),
+ url('/static/fonts/Exo-2-regular.svg#Exo2') format('svg');
+}
+
+/* Ubuntu */
+@font-face {
+ font-family: 'Ubuntu';
+ font-weight: 400;
+ font-style: normal;
+ src: url('/static/fonts/Ubuntu-regular.eot');
+ src: local('Ubuntu'), local('Ubuntu-regular'),
+ url('/static/fonts/Ubuntu-regular.eot?#iefix') format('embedded-opentype'),
+ url('/static/fonts/Ubuntu-regular.woff2') format('woff2'),
+ url('/static/fonts/Ubuntu-regular.woff') format('woff'),
+ url('/static/fonts/Ubuntu-regular.ttf') format('truetype'),
+ url('/static/fonts/Ubuntu-regular.svg#Ubuntu') format('svg');
+}
+
+/* Roboto Slab */
+@font-face {
+ font-family: 'Roboto Slab';
+ font-weight: 400;
+ font-style: normal;
+ src: url('/static/fonts/Roboto-Slab-regular.eot');
+ src: local('Roboto Slab Regular'), local('Roboto-Slab-regular'),
+ url('/static/fonts/Roboto-Slab-regular.eot?#iefix') format('embedded-opentype'),
+ url('/static/fonts/Roboto-Slab-regular.woff2') format('woff2'),
+ url('/static/fonts/Roboto-Slab-regular.woff') format('woff'),
+ url('/static/fonts/Roboto-Slab-regular.ttf') format('truetype'),
+ url('/static/fonts/Roboto-Slab-regular.svg#RobotoSlab') format('svg');
+}
+
+.font--open_sans {
+ font-family: 'Open Sans', 'sans-serif';
+}
+
+.font--droid_serif {
+ font-family: 'Droid Serif', 'serif';
+}
+
+.font--roboto_slab {
+ font-family: 'Roboto Slab', 'serif';
+}
+
+.font--lora {
+ font-family: 'Lora', 'serif';
+}
+
+.font--slabo {
+ font-family: 'Slabo 13px', 'sans-serif';
+}
+
+.font--arvo {
+ font-family: 'Arvo', 'serif';
+}
+
+.font--roboto {
+ font-family: 'Roboto', 'sans-serif';
+}
+
+.font--pt_sans {
+ font-family: 'PT Sans', 'sans-serif';
+}
+
+.font--lato {
+ font-family: 'Lato', 'sans-serif';
+}
+
+.font--source_sans_pro {
+ font-family: 'Source Sans Pro', 'sans-serif';
+}
+
+.font--exo_2 {
+ font-family: 'Exo 2', 'sans-serif';
+}
+
+.font--ubuntu {
+ font-family: Ubuntu, 'sans-serif';
+}
\ No newline at end of file
diff --git a/web/static/fonts/Arvo-regular.eot b/web/static/fonts/Arvo-regular.eot
new file mode 100644
index 0000000000..a69a4110d7
Binary files /dev/null and b/web/static/fonts/Arvo-regular.eot differ
diff --git a/web/static/fonts/Arvo-regular.svg b/web/static/fonts/Arvo-regular.svg
new file mode 100644
index 0000000000..6352e5077b
--- /dev/null
+++ b/web/static/fonts/Arvo-regular.svg
@@ -0,0 +1,445 @@
+
+
+
diff --git a/web/static/fonts/Arvo-regular.ttf b/web/static/fonts/Arvo-regular.ttf
new file mode 100644
index 0000000000..0dfe27e4e3
Binary files /dev/null and b/web/static/fonts/Arvo-regular.ttf differ
diff --git a/web/static/fonts/Arvo-regular.woff b/web/static/fonts/Arvo-regular.woff
new file mode 100644
index 0000000000..ff60300b24
Binary files /dev/null and b/web/static/fonts/Arvo-regular.woff differ
diff --git a/web/static/fonts/Arvo-regular.woff2 b/web/static/fonts/Arvo-regular.woff2
new file mode 100644
index 0000000000..243006f4ba
Binary files /dev/null and b/web/static/fonts/Arvo-regular.woff2 differ
diff --git a/web/static/fonts/Droid-Serif-regular.eot b/web/static/fonts/Droid-Serif-regular.eot
new file mode 100644
index 0000000000..99d028feb1
Binary files /dev/null and b/web/static/fonts/Droid-Serif-regular.eot differ
diff --git a/web/static/fonts/Droid-Serif-regular.svg b/web/static/fonts/Droid-Serif-regular.svg
new file mode 100644
index 0000000000..446bbc66c0
--- /dev/null
+++ b/web/static/fonts/Droid-Serif-regular.svg
@@ -0,0 +1,504 @@
+
+
+
diff --git a/web/static/fonts/Droid-Serif-regular.ttf b/web/static/fonts/Droid-Serif-regular.ttf
new file mode 100644
index 0000000000..82a9b160db
Binary files /dev/null and b/web/static/fonts/Droid-Serif-regular.ttf differ
diff --git a/web/static/fonts/Droid-Serif-regular.woff b/web/static/fonts/Droid-Serif-regular.woff
new file mode 100644
index 0000000000..91a41e958f
Binary files /dev/null and b/web/static/fonts/Droid-Serif-regular.woff differ
diff --git a/web/static/fonts/Droid-Serif-regular.woff2 b/web/static/fonts/Droid-Serif-regular.woff2
new file mode 100644
index 0000000000..1d5e4b632e
Binary files /dev/null and b/web/static/fonts/Droid-Serif-regular.woff2 differ
diff --git a/web/static/fonts/Exo-2-regular.eot b/web/static/fonts/Exo-2-regular.eot
new file mode 100644
index 0000000000..20b381e4c4
Binary files /dev/null and b/web/static/fonts/Exo-2-regular.eot differ
diff --git a/web/static/fonts/Exo-2-regular.svg b/web/static/fonts/Exo-2-regular.svg
new file mode 100644
index 0000000000..3027fdad04
--- /dev/null
+++ b/web/static/fonts/Exo-2-regular.svg
@@ -0,0 +1,319 @@
+
+
+
diff --git a/web/static/fonts/Exo-2-regular.ttf b/web/static/fonts/Exo-2-regular.ttf
new file mode 100644
index 0000000000..3953ab5f83
Binary files /dev/null and b/web/static/fonts/Exo-2-regular.ttf differ
diff --git a/web/static/fonts/Exo-2-regular.woff b/web/static/fonts/Exo-2-regular.woff
new file mode 100644
index 0000000000..e635c84b7f
Binary files /dev/null and b/web/static/fonts/Exo-2-regular.woff differ
diff --git a/web/static/fonts/Exo-2-regular.woff2 b/web/static/fonts/Exo-2-regular.woff2
new file mode 100644
index 0000000000..ed9c8fb331
Binary files /dev/null and b/web/static/fonts/Exo-2-regular.woff2 differ
diff --git a/web/static/fonts/Lato-latin-ext.woff2 b/web/static/fonts/Lato-latin-ext.woff2
new file mode 100644
index 0000000000..33e333f1d2
Binary files /dev/null and b/web/static/fonts/Lato-latin-ext.woff2 differ
diff --git a/web/static/fonts/Lato-latin.woff2 b/web/static/fonts/Lato-latin.woff2
new file mode 100644
index 0000000000..5469216e1f
Binary files /dev/null and b/web/static/fonts/Lato-latin.woff2 differ
diff --git a/web/static/fonts/Lato-regular.eot b/web/static/fonts/Lato-regular.eot
new file mode 100644
index 0000000000..28343da023
Binary files /dev/null and b/web/static/fonts/Lato-regular.eot differ
diff --git a/web/static/fonts/Lato-regular.svg b/web/static/fonts/Lato-regular.svg
new file mode 100644
index 0000000000..f7678d37c0
--- /dev/null
+++ b/web/static/fonts/Lato-regular.svg
@@ -0,0 +1,4148 @@
+
+
+
diff --git a/web/static/fonts/Lato-regular.ttf b/web/static/fonts/Lato-regular.ttf
new file mode 100644
index 0000000000..7608bc3e0f
Binary files /dev/null and b/web/static/fonts/Lato-regular.ttf differ
diff --git a/web/static/fonts/Lato-regular.woff b/web/static/fonts/Lato-regular.woff
new file mode 100644
index 0000000000..fe27504d07
Binary files /dev/null and b/web/static/fonts/Lato-regular.woff differ
diff --git a/web/static/fonts/Lato-regular.woff2 b/web/static/fonts/Lato-regular.woff2
new file mode 100644
index 0000000000..c83fe95542
Binary files /dev/null and b/web/static/fonts/Lato-regular.woff2 differ
diff --git a/web/static/fonts/Lora-regular.eot b/web/static/fonts/Lora-regular.eot
new file mode 100644
index 0000000000..c209f9ac7e
Binary files /dev/null and b/web/static/fonts/Lora-regular.eot differ
diff --git a/web/static/fonts/Lora-regular.svg b/web/static/fonts/Lora-regular.svg
new file mode 100644
index 0000000000..c3c9968ed2
--- /dev/null
+++ b/web/static/fonts/Lora-regular.svg
@@ -0,0 +1,9002 @@
+
+
+
diff --git a/web/static/fonts/Lora-regular.ttf b/web/static/fonts/Lora-regular.ttf
new file mode 100644
index 0000000000..87053298d4
Binary files /dev/null and b/web/static/fonts/Lora-regular.ttf differ
diff --git a/web/static/fonts/Lora-regular.woff b/web/static/fonts/Lora-regular.woff
new file mode 100644
index 0000000000..2b9a6be8fb
Binary files /dev/null and b/web/static/fonts/Lora-regular.woff differ
diff --git a/web/static/fonts/Lora-regular.woff2 b/web/static/fonts/Lora-regular.woff2
new file mode 100644
index 0000000000..dfa9891a39
Binary files /dev/null and b/web/static/fonts/Lora-regular.woff2 differ
diff --git a/web/static/fonts/PT-Sans-regular.eot b/web/static/fonts/PT-Sans-regular.eot
new file mode 100644
index 0000000000..428f39fca8
Binary files /dev/null and b/web/static/fonts/PT-Sans-regular.eot differ
diff --git a/web/static/fonts/PT-Sans-regular.svg b/web/static/fonts/PT-Sans-regular.svg
new file mode 100644
index 0000000000..c23a6b1bc9
--- /dev/null
+++ b/web/static/fonts/PT-Sans-regular.svg
@@ -0,0 +1,1335 @@
+
+
+
diff --git a/web/static/fonts/PT-Sans-regular.ttf b/web/static/fonts/PT-Sans-regular.ttf
new file mode 100644
index 0000000000..d55372b83f
Binary files /dev/null and b/web/static/fonts/PT-Sans-regular.ttf differ
diff --git a/web/static/fonts/PT-Sans-regular.woff b/web/static/fonts/PT-Sans-regular.woff
new file mode 100644
index 0000000000..28d33bc5c0
Binary files /dev/null and b/web/static/fonts/PT-Sans-regular.woff differ
diff --git a/web/static/fonts/PT-Sans-regular.woff2 b/web/static/fonts/PT-Sans-regular.woff2
new file mode 100644
index 0000000000..f2ab5aed05
Binary files /dev/null and b/web/static/fonts/PT-Sans-regular.woff2 differ
diff --git a/web/static/fonts/Roboto-Slab-regular.eot b/web/static/fonts/Roboto-Slab-regular.eot
new file mode 100644
index 0000000000..926a22baa0
Binary files /dev/null and b/web/static/fonts/Roboto-Slab-regular.eot differ
diff --git a/web/static/fonts/Roboto-Slab-regular.svg b/web/static/fonts/Roboto-Slab-regular.svg
new file mode 100644
index 0000000000..ffbbc45965
--- /dev/null
+++ b/web/static/fonts/Roboto-Slab-regular.svg
@@ -0,0 +1,337 @@
+
+
+
diff --git a/web/static/fonts/Roboto-Slab-regular.ttf b/web/static/fonts/Roboto-Slab-regular.ttf
new file mode 100644
index 0000000000..141d6c08c8
Binary files /dev/null and b/web/static/fonts/Roboto-Slab-regular.ttf differ
diff --git a/web/static/fonts/Roboto-Slab-regular.woff b/web/static/fonts/Roboto-Slab-regular.woff
new file mode 100644
index 0000000000..dab1852d8d
Binary files /dev/null and b/web/static/fonts/Roboto-Slab-regular.woff differ
diff --git a/web/static/fonts/Roboto-Slab-regular.woff2 b/web/static/fonts/Roboto-Slab-regular.woff2
new file mode 100644
index 0000000000..1444ec4185
Binary files /dev/null and b/web/static/fonts/Roboto-Slab-regular.woff2 differ
diff --git a/web/static/fonts/Roboto-regular.eot b/web/static/fonts/Roboto-regular.eot
new file mode 100644
index 0000000000..d26bc8f519
Binary files /dev/null and b/web/static/fonts/Roboto-regular.eot differ
diff --git a/web/static/fonts/Roboto-regular.svg b/web/static/fonts/Roboto-regular.svg
new file mode 100644
index 0000000000..ed55c105d7
--- /dev/null
+++ b/web/static/fonts/Roboto-regular.svg
@@ -0,0 +1,308 @@
+
+
+
diff --git a/web/static/fonts/Roboto-regular.ttf b/web/static/fonts/Roboto-regular.ttf
new file mode 100644
index 0000000000..7b25f3ce94
Binary files /dev/null and b/web/static/fonts/Roboto-regular.ttf differ
diff --git a/web/static/fonts/Roboto-regular.woff b/web/static/fonts/Roboto-regular.woff
new file mode 100644
index 0000000000..5e353cf47a
Binary files /dev/null and b/web/static/fonts/Roboto-regular.woff differ
diff --git a/web/static/fonts/Roboto-regular.woff2 b/web/static/fonts/Roboto-regular.woff2
new file mode 100644
index 0000000000..d1035f9a10
Binary files /dev/null and b/web/static/fonts/Roboto-regular.woff2 differ
diff --git a/web/static/fonts/Slabo-13px-regular.eot b/web/static/fonts/Slabo-13px-regular.eot
new file mode 100644
index 0000000000..640ccb2fc8
Binary files /dev/null and b/web/static/fonts/Slabo-13px-regular.eot differ
diff --git a/web/static/fonts/Slabo-13px-regular.svg b/web/static/fonts/Slabo-13px-regular.svg
new file mode 100644
index 0000000000..77adfd8a1e
--- /dev/null
+++ b/web/static/fonts/Slabo-13px-regular.svg
@@ -0,0 +1,307 @@
+
+
+
diff --git a/web/static/fonts/Slabo-13px-regular.ttf b/web/static/fonts/Slabo-13px-regular.ttf
new file mode 100644
index 0000000000..48beee06c6
Binary files /dev/null and b/web/static/fonts/Slabo-13px-regular.ttf differ
diff --git a/web/static/fonts/Slabo-13px-regular.woff b/web/static/fonts/Slabo-13px-regular.woff
new file mode 100644
index 0000000000..60b13ce3ab
Binary files /dev/null and b/web/static/fonts/Slabo-13px-regular.woff differ
diff --git a/web/static/fonts/Slabo-13px-regular.woff2 b/web/static/fonts/Slabo-13px-regular.woff2
new file mode 100644
index 0000000000..b07da4e797
Binary files /dev/null and b/web/static/fonts/Slabo-13px-regular.woff2 differ
diff --git a/web/static/fonts/Source-Sans-Pro-regular.eot b/web/static/fonts/Source-Sans-Pro-regular.eot
new file mode 100644
index 0000000000..5dd59e7745
Binary files /dev/null and b/web/static/fonts/Source-Sans-Pro-regular.eot differ
diff --git a/web/static/fonts/Source-Sans-Pro-regular.svg b/web/static/fonts/Source-Sans-Pro-regular.svg
new file mode 100644
index 0000000000..a19acae2c5
--- /dev/null
+++ b/web/static/fonts/Source-Sans-Pro-regular.svg
@@ -0,0 +1,345 @@
+
+
+
diff --git a/web/static/fonts/Source-Sans-Pro-regular.ttf b/web/static/fonts/Source-Sans-Pro-regular.ttf
new file mode 100644
index 0000000000..950ff8bd4b
Binary files /dev/null and b/web/static/fonts/Source-Sans-Pro-regular.ttf differ
diff --git a/web/static/fonts/Source-Sans-Pro-regular.woff b/web/static/fonts/Source-Sans-Pro-regular.woff
new file mode 100644
index 0000000000..d97a490d3c
Binary files /dev/null and b/web/static/fonts/Source-Sans-Pro-regular.woff differ
diff --git a/web/static/fonts/Source-Sans-Pro-regular.woff2 b/web/static/fonts/Source-Sans-Pro-regular.woff2
new file mode 100644
index 0000000000..da49c62c18
Binary files /dev/null and b/web/static/fonts/Source-Sans-Pro-regular.woff2 differ
diff --git a/web/static/fonts/Ubuntu-regular.eot b/web/static/fonts/Ubuntu-regular.eot
new file mode 100644
index 0000000000..c6fb045b8f
Binary files /dev/null and b/web/static/fonts/Ubuntu-regular.eot differ
diff --git a/web/static/fonts/Ubuntu-regular.svg b/web/static/fonts/Ubuntu-regular.svg
new file mode 100644
index 0000000000..a789385dc8
--- /dev/null
+++ b/web/static/fonts/Ubuntu-regular.svg
@@ -0,0 +1,1456 @@
+
+
+
diff --git a/web/static/fonts/Ubuntu-regular.ttf b/web/static/fonts/Ubuntu-regular.ttf
new file mode 100644
index 0000000000..18fecfac83
Binary files /dev/null and b/web/static/fonts/Ubuntu-regular.ttf differ
diff --git a/web/static/fonts/Ubuntu-regular.woff b/web/static/fonts/Ubuntu-regular.woff
new file mode 100644
index 0000000000..19a6189d16
Binary files /dev/null and b/web/static/fonts/Ubuntu-regular.woff differ
diff --git a/web/static/fonts/Ubuntu-regular.woff2 b/web/static/fonts/Ubuntu-regular.woff2
new file mode 100644
index 0000000000..5adbc9934f
Binary files /dev/null and b/web/static/fonts/Ubuntu-regular.woff2 differ