diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index e6279cfb..f3a72d2f 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -99,7 +99,7 @@ class ApplicationController < ActionController::Base
end
def current_theme
- return Setting.theme unless Themes.instance.names.include? current_user&.setting_theme
+ return Setting.theme
current_user.setting_theme
end
diff --git a/app/javascript/gabsocial/actions/tenor.js b/app/javascript/gabsocial/actions/tenor.js
index efd2f352..3f0653b1 100644
--- a/app/javascript/gabsocial/actions/tenor.js
+++ b/app/javascript/gabsocial/actions/tenor.js
@@ -1,5 +1,5 @@
import api from '../api';
-import { me, tenorkey } from '../initial_state'
+import { me } from '../initial_state'
export const GIFS_CLEAR_RESULTS = 'GIFS_CLEAR_RESULTS'
export const GIF_SET_SELECTED = 'GIF_SET_SELECTED'
diff --git a/app/javascript/gabsocial/components/error_boundary.js b/app/javascript/gabsocial/components/error_boundary.js
index 9d7e696c..4c94ca0e 100644
--- a/app/javascript/gabsocial/components/error_boundary.js
+++ b/app/javascript/gabsocial/components/error_boundary.js
@@ -1,3 +1,5 @@
+import Layout from '../layouts/layout'
+
export default class ErrorBoundary extends PureComponent {
static propTypes = {
diff --git a/app/javascript/gabsocial/components/modal/display_options_modal.js b/app/javascript/gabsocial/components/modal/display_options_modal.js
index aa237e12..40244a91 100644
--- a/app/javascript/gabsocial/components/modal/display_options_modal.js
+++ b/app/javascript/gabsocial/components/modal/display_options_modal.js
@@ -1,24 +1,30 @@
import { injectIntl, defineMessages } from 'react-intl'
-import { muteAccount } from '../../actions/accounts'
+import ImmutablePureComponent from 'react-immutable-pure-component'
+import ImmutablePropTypes from 'react-immutable-proptypes'
+import ModalLayout from './modal_layout'
+import Button from '../button'
+import Text from '../text'
+import SettingSwitch from '../setting_switch'
const messages = defineMessages({
- muteMessage: { id: 'confirmations.mute.message', defaultMessage: 'Are you sure you want to mute {name}?' },
- cancel: { id: 'confirmation_modal.cancel', defaultMessage: 'Cancel' },
- title: { id: 'display_options', defaultMessage: 'Display Options' },
+ message: { id: 'display_options.message', defaultMessage: 'Display settings affect your Gab account on this browser. These settings are only visible to you.' },
+ title: { id: 'display_options', defaultMessage: 'Customize your view' },
})
const mapStateToProps = (state) => ({
-
+ settings: state.getIn(['notifications', 'filter']),
})
const mapDispatchToProps = (dispatch) => ({
-
+ onChange(path, value) {
+ dispatch(setFilter(path, value))
+ },
})
export default
@connect(mapStateToProps, mapDispatchToProps)
@injectIntl
-class DisplayOptionsModal extends PureComponent {
+class DisplayOptionsModal extends ImmutablePureComponent {
static propTypes = {
isSubmitting: PropTypes.bool.isRequired,
@@ -26,10 +32,8 @@ class DisplayOptionsModal extends PureComponent {
onConfirm: PropTypes.func.isRequired,
onClose: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
- }
-
- componentDidMount() {
- this.button.focus()
+ onChange: PropTypes.func.isRequired,
+ settings: ImmutablePropTypes.map.isRequired,
}
handleClick = () => {
@@ -37,20 +41,107 @@ class DisplayOptionsModal extends PureComponent {
this.props.onConfirm(this.props.account, this.props.notifications)
}
- handleCancel = () => {
- this.props.onClose()
- }
-
// document.documentElement.style.setProperty("--color-surface", "black");
render() {
- const { account, intl } = this.props
+ const {
+ account,
+ intl,
+ settings,
+ onChange,
+ onClose,
+ } = this.props
+
+ // theme - light, muted, dark
+ // text size - extra small, small, normal, medium, large, extra large
+ // rounded borders
return (
+
+
+
+ {intl.formatMessage(messages.message)}
+
+
+
+
+
+ Font Size
+
+
+ test
+
+
+
+
+
+ Rounded
+
+
+
+
+
+
+
+
+
+
+
+
+
+
)
}
diff --git a/app/javascript/gabsocial/components/navigation_bar.js b/app/javascript/gabsocial/components/navigation_bar.js
index 43279f3d..7c050d92 100644
--- a/app/javascript/gabsocial/components/navigation_bar.js
+++ b/app/javascript/gabsocial/components/navigation_bar.js
@@ -1,14 +1,15 @@
import ImmutablePropTypes from 'react-immutable-proptypes'
import ImmutablePureComponent from 'react-immutable-pure-component'
-import { NavLink } from 'react-router-dom'
import { BREAKPOINT_EXTRA_SMALL } from '../constants'
import { me } from '../initial_state'
import { makeGetAccount } from '../selectors'
import Responsive from '../features/ui/util/responsive_component'
import { CX } from '../constants'
-import Search from './search'
import Avatar from './avatar'
+import Button from './button'
import Icon from './icon'
+import Search from './search'
+import Text from './text'
const mapStateToProps = (state) => ({
account: makeGetAccount()(state, me),
@@ -48,9 +49,9 @@ class NavigationBar extends ImmutablePureComponent {
-
+
+
@@ -68,12 +69,12 @@ class NavigationBar extends ImmutablePureComponent {
-
+
@@ -103,7 +104,7 @@ class NavigationBarButton extends PureComponent {
title: PropTypes.string,
icon: PropTypes.string,
to: PropTypes.string,
- onClick: PropTypes.func,
+ href: PropTypes.string,
}
render() {
@@ -111,7 +112,7 @@ class NavigationBarButton extends PureComponent {
title,
icon,
to,
- onClick,
+ href,
} = this.props
const active = false
@@ -131,6 +132,7 @@ class NavigationBarButton extends PureComponent {
fs13PX: !!title,
fontWeightNormal: !!title,
textUppercase: !!title,
+ noUnderline: 1,
})
const iconClasses = CX({
@@ -142,14 +144,21 @@ class NavigationBarButton extends PureComponent {
const iconSize = !!title ? 16 : 18
return (
-
+ {
+ !!title &&
+
+ {title}
+
+ }
+
)
}
diff --git a/app/javascript/gabsocial/components/sidebar.js b/app/javascript/gabsocial/components/sidebar.js
index 86e77554..e7498e8c 100644
--- a/app/javascript/gabsocial/components/sidebar.js
+++ b/app/javascript/gabsocial/components/sidebar.js
@@ -153,11 +153,6 @@ class Sidebar extends ImmutablePureComponent {
icon: 'list',
to: '/lists',
},
- {
- title: 'Chat',
- icon: 'chat',
- href: 'https://chat.gab.com',
- },
{
title: 'More',
icon: 'more',
@@ -183,6 +178,11 @@ class Sidebar extends ImmutablePureComponent {
]
const exploreItems = [
+ {
+ title: 'Chat',
+ icon: 'chat',
+ href: 'https://chat.gab.com',
+ },
{
title: 'Apps',
icon: 'apps',
diff --git a/app/javascript/gabsocial/components/sidebar_section_item.js b/app/javascript/gabsocial/components/sidebar_section_item.js
index f4d590c4..7c063915 100644
--- a/app/javascript/gabsocial/components/sidebar_section_item.js
+++ b/app/javascript/gabsocial/components/sidebar_section_item.js
@@ -52,7 +52,7 @@ export default class SidebarSectionItem extends PureComponent {
const { hovering } = this.state
const iconSize = '16px'
- const currentPathname = this.context.router.route.location.pathname
+ const currentPathname = this.context.router ? this.context.router.route.location.pathname : undefined
const shouldShowActive = hovering || active || currentPathname === to || currentPathname === href
const isNotifications = to === '/notifications'
diff --git a/app/javascript/gabsocial/constants.js b/app/javascript/gabsocial/constants.js
index e3185252..0086ed65 100644
--- a/app/javascript/gabsocial/constants.js
+++ b/app/javascript/gabsocial/constants.js
@@ -60,3 +60,27 @@ export const MODAL_STATUS_REVISIONS = 'STATUS_REVISIONS'
export const MODAL_UNAUTHORIZED = 'UNAUTHORIZED'
export const MODAL_UNFOLLOW = 'UNFOLLOW'
export const MODAL_VIDEO = 'VIDEO'
+
+export const FONT_SIZES_EXTRA_SMALL = '12px'
+export const FONT_SIZES_SMALL = '13px'
+export const FONT_SIZES_NORMAL = '14px'
+export const FONT_SIZES_MEDIUM = '15px'
+export const FONT_SIZES_LARGE = '16px'
+export const FONT_SIZES_EXTRA_LARGE = '17px'
+
+export const FONT_SIZES = {
+ 'extra-small': FONT_SIZES_EXTRA_SMALL,
+ small: FONT_SIZES_SMALL,
+ normal: FONT_SIZES_NORMAL,
+ medium: FONT_SIZES_MEDIUM,
+ large: FONT_SIZES_LARGE,
+ 'extra-large': FONT_SIZES_EXTRA_LARGE,
+}
+export const THEMES = [
+ 'light',
+ 'muted',
+ 'black',
+]
+
+export const DEFAULT_THEME = 'light'
+export const DEFAULT_FONT_SIZE = 'normal'
\ No newline at end of file
diff --git a/app/javascript/gabsocial/containers/display.js b/app/javascript/gabsocial/containers/display.js
new file mode 100644
index 00000000..16035b20
--- /dev/null
+++ b/app/javascript/gabsocial/containers/display.js
@@ -0,0 +1,92 @@
+import {
+ FONT_SIZES,
+ THEMES,
+ DEFAULT_THEME,
+ DEFAULT_FONT_SIZE,
+} from '../constants'
+
+export default class Display extends PureComponent {
+
+ static propTypes = {
+ theme: PropTypes.string.isRequired,
+ rounded: PropTypes.bool.isRequired,
+ fontSize: PropTypes.string.isRequired,
+ }
+
+ state = {
+ theme: this.props.theme,
+ rounded: this.props.rounded,
+ fontSize: this.props.fontSize,
+ }
+
+ static defaultProps = {
+ theme: 'BLACK',
+ rounded: false,
+ fontSize: 'normal',
+ }
+
+ componentDidMount() {
+ this.updateTheme(this.state.theme)
+ this.updateRounded(this.state.rounded)
+ this.updateFontSizes(this.state.fontSize)
+ }
+
+ static getDerivedStateFromProps(nextProps, prevState) {
+ if (nextProps.theme !== prevState.theme ||
+ nextProps.rounded !== prevState.rounded ||
+ nextProps.fontSize !== prevState.fontSize) {
+ return {
+ theme: nextProps.theme,
+ rounded: nextProps.rounded,
+ fontSize: nextProps.fontSize,
+ }
+ }
+
+ return null
+ }
+
+ componentDidUpdate(prevProps, prevState) {
+ if (prevState.theme !== this.state.theme) {
+ this.updateTheme(this.state.theme)
+ }
+
+ if (prevState.rounded !== this.state.rounded) {
+ this.updateRounded(this.state.rounded)
+ }
+
+ if (prevState.fontSize !== this.state.fontSize) {
+ this.updateFontSizes(this.state.fontSize)
+ }
+ }
+
+ updateRounded(rounded) {
+ if (rounded) {
+ document.documentElement.removeAttribute('rounded')
+ } else {
+ document.documentElement.setAttribute('rounded', '')
+ }
+ }
+
+ updateFontSizes(fontSize) {
+ let correctedFontSize = fontSize.toUpperCase()
+ if (!FONT_SIZES.hasOwnProperty(correctedFontSize)) {
+ correctedFontSize = DEFAULT_FONT_SIZE
+ }
+
+ document.documentElement.style.setProperty('font-size', FONT_SIZES[correctedFontSize]);
+ }
+
+ updateTheme(theme) {
+ let correctedTheme = theme.toLowerCase()
+ if (!THEMES.hasOwnProperty(correctedTheme)) {
+ correctedTheme = DEFAULT_THEME
+ }
+
+ document.documentElement.setAttribute('theme', correctedTheme);
+ }
+
+ render() {
+ return this.props.children
+ }
+
+}
\ No newline at end of file
diff --git a/app/javascript/gabsocial/containers/gabsocial.js b/app/javascript/gabsocial/containers/gabsocial.js
index cec38e0e..e31acffb 100644
--- a/app/javascript/gabsocial/containers/gabsocial.js
+++ b/app/javascript/gabsocial/containers/gabsocial.js
@@ -1,55 +1,60 @@
-'use strict';
+'use strict'
-import { Provider } from 'react-redux';
-import configureStore from '../store/configureStore';
-import { INTRODUCTION_VERSION } from '../actions/onboarding';
-import { BrowserRouter, Route } from 'react-router-dom';
-import { ScrollContext } from 'react-router-scroll-4';
-import { IntlProvider, addLocaleData } from 'react-intl';
-import { fetchCustomEmojis } from '../actions/custom_emojis';
-import { hydrateStore } from '../actions/store';
+import { Provider } from 'react-redux'
+import configureStore from '../store/configureStore'
+import { INTRODUCTION_VERSION } from '../actions/onboarding'
+import { BrowserRouter, Route } from 'react-router-dom'
+import { ScrollContext } from 'react-router-scroll-4'
+import { IntlProvider, addLocaleData } from 'react-intl'
+import { fetchCustomEmojis } from '../actions/custom_emojis'
+import { hydrateStore } from '../actions/store'
import {
connectUserStream,
connectStatusUpdateStream,
-} from '../actions/streaming';
-import { getLocale } from '../locales';
-import initialState from '../initial_state';
-import { me } from '../initial_state';
-import UI from '../features/ui';
-// import Introduction from '../features/introduction';
-import ErrorBoundary from '../components/error_boundary';
+} from '../actions/streaming'
+import { getLocale } from '../locales'
+import initialState from '../initial_state'
+import { me } from '../initial_state'
+import UI from '../features/ui'
+// import Introduction from '../features/introduction'
+import ErrorBoundary from '../components/error_boundary'
+import Display from './display'
-const { localeData, messages } = getLocale();
-addLocaleData(localeData);
+const { localeData, messages } = getLocale()
+addLocaleData(localeData)
-export const store = configureStore();
-const hydrateAction = hydrateStore(initialState);
+export const store = configureStore()
+const hydrateAction = hydrateStore(initialState)
-store.dispatch(hydrateAction);
-store.dispatch(fetchCustomEmojis());
+store.dispatch(hydrateAction)
+store.dispatch(fetchCustomEmojis())
const mapStateToProps = (state) => {
- const account = state.getIn(['accounts', me]);
- const showIntroduction = account ? state.getIn(['settings', 'introductionVersion'], 0) < INTRODUCTION_VERSION : false;
+ const account = state.getIn(['accounts', me])
+ const showIntroduction = account ? state.getIn(['settings', 'introductionVersion'], 0) < INTRODUCTION_VERSION : false
return {
showIntroduction,
- };
-};
+ }
+}
@connect(mapStateToProps)
class GabSocialMount extends PureComponent {
static propTypes = {
showIntroduction: PropTypes.bool,
- };
+ }
+
+ componentDidMount() {
+
+ }
render () {
// Disabling introduction for launch
- // const { showIntroduction } = this.props;
+ // const { showIntroduction } = this.props
//
// if (showIntroduction) {
- // return ;
+ // return
// }
return (
@@ -58,7 +63,7 @@ class GabSocialMount extends PureComponent {
- );
+ )
}
}
@@ -67,34 +72,36 @@ export default class GabSocial extends PureComponent {
static propTypes = {
locale: PropTypes.string.isRequired,
- };
+ }
componentDidMount() {
if (!!me) {
- this.disconnect = store.dispatch(connectUserStream());
- store.dispatch(connectStatusUpdateStream());
+ this.disconnect = store.dispatch(connectUserStream())
+ store.dispatch(connectStatusUpdateStream())
}
}
componentWillUnmount () {
if (this.disconnect) {
- this.disconnect();
- this.disconnect = null;
+ this.disconnect()
+ this.disconnect = null
}
}
render () {
- const { locale } = this.props;
+ const { locale } = this.props
return (
-
-
-
+
+
+
+
+
- );
+ )
}
}
diff --git a/app/javascript/gabsocial/features/compose/compose.js b/app/javascript/gabsocial/features/compose/compose.js
index 1fa503e4..c445b4d4 100644
--- a/app/javascript/gabsocial/features/compose/compose.js
+++ b/app/javascript/gabsocial/features/compose/compose.js
@@ -7,7 +7,6 @@ import {
mountCompose,
unmountCompose,
} from '../../actions/compose';
-import { mascot } from '../../initial_state';
import Motion from '../ui/util/optional_motion';
import ComposeFormContainer from './containers/compose_form_container';
import NavigationBar from './components/navigation_bar';
@@ -83,9 +82,6 @@ class Compose extends ImmutablePureComponent {
-
-
![]({mascot)
-
}
diff --git a/app/javascript/gabsocial/initial_state.js b/app/javascript/gabsocial/initial_state.js
index d9e086f9..22d1dfb0 100644
--- a/app/javascript/gabsocial/initial_state.js
+++ b/app/javascript/gabsocial/initial_state.js
@@ -19,7 +19,6 @@ export const invitesEnabled = getMeta('invites_enabled');
export const repository = getMeta('repository');
export const source_url = getMeta('source_url');
export const version = getMeta('version');
-export const mascot = getMeta('mascot');
export const profile_directory = getMeta('profile_directory');
export const isStaff = getMeta('is_staff');
export const forceSingleColumn = !getMeta('advanced_layout');
@@ -27,6 +26,5 @@ export const promotions = initialState && initialState.promotions;
export const unreadCount = getMeta('unread_count');
export const monthlyExpensesComplete = getMeta('monthly_expenses_complete');
export const favouritesCount = getMeta('favourites_count');
-export const tenorkey = getMeta('tenorkey');
export default initialState;
diff --git a/app/javascript/gabsocial/layouts/group_layout.js b/app/javascript/gabsocial/layouts/group_layout.js
index 7511f24b..d6195063 100644
--- a/app/javascript/gabsocial/layouts/group_layout.js
+++ b/app/javascript/gabsocial/layouts/group_layout.js
@@ -32,18 +32,18 @@ export default class GroupLayout extends ImmutablePureComponent {
actions={actions}
showBackBtn={showBackBtn}
>
-
+
-
+
-
+
{layout}
diff --git a/app/javascript/gabsocial/layouts/profile_layout.js b/app/javascript/gabsocial/layouts/profile_layout.js
index 7a0055fe..d6b4e4bd 100644
--- a/app/javascript/gabsocial/layouts/profile_layout.js
+++ b/app/javascript/gabsocial/layouts/profile_layout.js
@@ -5,6 +5,7 @@ import ProfileHeader from '../components/profile_header'
import NavigationBar from '../components/navigation_bar'
export default class ProfileLayout extends ImmutablePureComponent {
+
static propTypes = {
children: PropTypes.node.isRequired,
account: ImmutablePropTypes.map,
diff --git a/app/javascript/gabsocial/pages/notifications_page.js b/app/javascript/gabsocial/pages/notifications_page.js
index 90db5f39..a98c90b0 100644
--- a/app/javascript/gabsocial/pages/notifications_page.js
+++ b/app/javascript/gabsocial/pages/notifications_page.js
@@ -96,8 +96,6 @@ class NotificationsPage extends PureComponent {
active: selectedFilter.toLowerCase() === filter.toLowerCase(),
}))
- console.log("selectedFilter, filter: ", tabs, selectedFilter)
-
return (
+
+
+
+
+
diff --git a/app/javascript/images/logo_full.svg b/app/javascript/images/logo_full.svg
index c3388334..d59e6fe7 100644
--- a/app/javascript/images/logo_full.svg
+++ b/app/javascript/images/logo_full.svg
@@ -1 +1,19 @@
-
+
+
+
+
+
diff --git a/app/javascript/styles/global.css b/app/javascript/styles/global.css
index fc5e46ca..aea84086 100644
--- a/app/javascript/styles/global.css
+++ b/app/javascript/styles/global.css
@@ -1,17 +1,4 @@
:root {
- --radius-small: 8px;
- --radius-circle: 9999px;
-
- /* Default Font Sizes */
-
- --font_size_extra_small: 12px;
- --font_size_small: 13px;
- --font_size_normal: 14px;
- --font_size_medium: 15px;
- --font_size_large: 16px;
- --font_size_extra_large: 19px;
- --font_size_extra_extra_large: 24px;
-
--color_brand-dark: #378e61;
--color_brand-light: #63DA9D;
--color_brand-light-opaque: rgb(54, 233, 145, .125);
@@ -25,7 +12,26 @@
--color_red: #de2960;
--color_red-dark: #c72c5b;
- /* LIGHT THEME */
+ --fs_xs: 0.8571428571rem;
+ --fs_s: 0.9285714286rem;
+ --fs_n: 1rem;
+ --fs_m: 1.0714285714rem;
+ --fs_l: 1.1428571429rem;
+ --fs_xl: 1.3571428571rem;
+ --fs_xxl: 1.7142857143;
+}
+
+:root {
+ --radius-small: 0;
+ --radius-circle: 0;
+}
+
+:root[rounded] {
+ --radius-small: 8px;
+ --radius-circle: 9999px;
+}
+
+:root[theme='light'] {
--solid_color_primary: #fff;
--solid_color_primary-opaque:rgba(255, 255, 255,.6);
--solid_color_secondary: #e2e8ec;
@@ -38,9 +44,10 @@
--text_color_tertiary: #777;
--border_color_secondary: #ececed;
+}
- /* MUTED THEME */
- /* --solid_color_primary: #222;
+:root[theme='muted'] {
+ --solid_color_primary: #222;
--solid_color_primary-opaque:rgba(34, 34, 34, .6);
--solid_color_secondary: #4f5050;
--solid_color_secondary-dark: #424343;
@@ -51,10 +58,11 @@
--text_color_secondary: #7b7b7b;
--text_color_tertiary: #656565;
- --border_color_secondary: #424141; */
+ --border_color_secondary: #424141;
+}
- /* BLACK THEME */
- /* --solid_color_primary: #13171b;
+:root[theme='black'] {
+ --solid_color_primary: #13171b;
--solid_color_primary-opaque:rgba(19, 23, 27, .6);
--solid_color_secondary: #4f5050;
--solid_color_secondary-dark: #424343;
@@ -65,7 +73,7 @@
--text_color_secondary: #61686E;
--text_color_tertiary: #656565;
- --border_color_secondary: #212020; */
+ --border_color_secondary: #212020;
}
html,
@@ -90,10 +98,10 @@ body {
.statusContent * {
margin-top: 0;
margin-bottom: 0;
- font-size: var(--font_size_medium);
+ font-size: var(--fs_m);
overflow-wrap: break-word;
color: var(--text_color_primary);
- font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", sans-serif;
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, Roboto, Ubuntu, "Helvetica Neue", sans-serif;
}
.statusContent p {
@@ -114,7 +122,7 @@ body {
}
.statusContent h1 {
- font-size: var(--font_size_extra_large);
+ font-size: var(--fs_xl);
font-weight: 700;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
@@ -131,7 +139,7 @@ body {
.dangerousContent * {
margin-top: 0;
margin-bottom: 0;
- font-size: var(--font_size_normal);
+ font-size: var(--fs_n);
overflow-wrap: break-word;
color: var(--text_color_primary);
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", sans-serif;
@@ -533,13 +541,13 @@ body {
.textAlignLeft { text-align: left; }
.textAlignCenter { text-align: center; }
-.fs24PX { font-size: var(--font_size_extra_extra_large); }
-.fs19PX { font-size: var(--font_size_extra_large); }
-.fs16PX { font-size: var(--font_size_large); }
-.fs15PX { font-size: var(--font_size_medium); }
-.fs14PX { font-size: var(--font_size_normal); }
-.fs13PX { font-size: var(--font_size_small); }
-.fs12PX { font-size: var(--font_size_extra_small); }
+.fs24PX { font-size: var(--fs_xxl); }
+.fs19PX { font-size: var(--fs_xl); }
+.fs16PX { font-size: var(--fs_l); }
+.fs15PX { font-size: var(--fs_m); }
+.fs14PX { font-size: var(--fs_n); }
+.fs13PX { font-size: var(--fs_s); }
+.fs12PX { font-size: var(--fs_xs); }
.fs0 { font-size: 0; }
.fontWeightNormal { font-weight: 400; }
@@ -711,7 +719,7 @@ body {
.select {
height: 42px;
line-height: 42px;
- font-size: var(--font_size_extra_large);
+ font-size: var(--fs_xl);
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
@@ -765,7 +773,7 @@ body {
/* :global(.public-DraftEditorPlaceholder-inner) {
font-weight: 400;
- font-size: var(--font_size_large);
+ font-size: var(--fs_l);
} */
:global(.RichEditor-blockquote) {
@@ -779,7 +787,7 @@ body {
:global(.public-DraftStyleDefault-pre) {
background-color: rgba(0,0,0,.05);
font-family: 'Inconsolata', 'Menlo', 'Consolas', monospace;
- font-size: var(--font_size_large);
+ font-size: var(--fs_l);
padding: 10px 20px;
}
diff --git a/app/lib/themes.rb b/app/lib/themes.rb
deleted file mode 100644
index 243ffb9a..00000000
--- a/app/lib/themes.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-# frozen_string_literal: true
-
-require 'singleton'
-require 'yaml'
-
-class Themes
- include Singleton
-
- def initialize
- @conf = YAML.load_file(Rails.root.join('config', 'themes.yml'))
- end
-
- def names
- @conf.keys
- end
-end
diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb
index 531cb7ea..956dfbe5 100644
--- a/app/serializers/initial_state_serializer.rb
+++ b/app/serializers/initial_state_serializer.rb
@@ -39,7 +39,6 @@ class InitialStateSerializer < ActiveModel::Serializer
store[:unread_count] = unread_count object.current_account
store[:monthly_expenses_complete] = Redis.current.get("monthly_funding_amount") || 0
store[:favourites_count] = object.current_account.favourites.count.to_s
- store[:tenorkey] = "QHFJ0C5EWGBH"
end
store
diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml
index 1c2c00f1..4178729f 100644
--- a/app/views/admin/settings/edit.html.haml
+++ b/app/views/admin/settings/edit.html.haml
@@ -8,8 +8,6 @@
= f.input :site_title, wrapper: :with_label, label: t('admin.settings.site_title')
.fields-row
- .fields-row__column.fields-row__column-6.fields-group
- = f.input :theme, collection: Themes.instance.names, label_method: lambda { |theme| I18n.t("themes.#{theme}", default: theme) }, wrapper: :with_label, include_blank: false
.fields-row__column.fields-row__column-6.fields-group
= f.input :registrations_mode, collection: %w(open approved none), wrapper: :with_label, label: t('admin.settings.registrations_mode.title'), include_blank: false, label_method: lambda { |mode| I18n.t("admin.settings.registrations_mode.modes.#{mode}") }
diff --git a/app/views/react/react.html.haml b/app/views/react/react.html.haml
index 1154ea83..68e055d3 100644
--- a/app/views/react/react.html.haml
+++ b/app/views/react/react.html.haml
@@ -10,7 +10,7 @@
#gabsocial{ data: { props: Oj.dump(default_props) } }
%noscript
- = image_pack_tag 'logo.png', alt: 'Gab Social'
-
- %div
- = t('errors.noscript_html', apps_path: 'https://gab.com/apps')
+ %div{ :style => "padding: 60px; max-width: 560px;" }
+ = image_pack_tag 'logo.svg', alt: 'Gab Social', width: '100px'
+ %div{ :style => "margin-top: 20px; line-height: 2rem; font-family: system-ui, -apple-system, BlinkMacSystemFont, Roboto, sans-serif;" }
+ = t('errors.noscript_html', apps_path: 'https://apps.gab.com')
diff --git a/app/views/settings/preferences/show.html.haml b/app/views/settings/preferences/show.html.haml
index c5522ebd..67d41561 100644
--- a/app/views/settings/preferences/show.html.haml
+++ b/app/views/settings/preferences/show.html.haml
@@ -41,8 +41,6 @@
%hr#settings_web/
.fields-row
- .fields-group.fields-row__column.fields-row__column-6
- = f.input :setting_theme, collection: Themes.instance.names, label_method: lambda { |theme| I18n.t("themes.#{theme}", default: theme) }, wrapper: :with_label, include_blank: false, hint: false
.fields-group.fields-row__column.fields-row__column-6
= f.input :setting_display_media, collection: ['default', 'show_all', 'hide_all'], wrapper: :with_label, include_blank: false, label_method: lambda { |item| t("simple_form.hints.defaults.setting_display_media_#{item}") }, hint: false
diff --git a/config/themes.yml b/config/themes.yml
deleted file mode 100644
index 5bf9ced6..00000000
--- a/config/themes.yml
+++ /dev/null
@@ -1 +0,0 @@
-default: styles/base.scss
\ No newline at end of file