session-desktop/ts/state/ducks/SessionTheme.tsx
Warrick Corfe-Tan 066e0d954e lights glowing but not yet in order.
WIP glow cycle.

Glow animation working.

Glow animation working, modal no longer interferring with left menu margins.

Cleaning up code. Adding PR suggestions.

Adding typing.

Refactor edit profile modal dialog to no longer use the signal code.
2021-06-02 15:57:56 +10:00

168 lines
4.8 KiB
TypeScript

import React from 'react';
// tslint:disable-next-line: no-import-side-effect no-submodule-imports
// import 'reset-css/reset.css';
import { DefaultTheme, ThemeProvider } from 'styled-components';
import { pushToastWarning } from '../../session/utils/Toast';
const white = '#ffffff';
const black = '#000000';
const warning = '#e7b100';
const destructive = '#ff453a';
const accentLightTheme = '#00e97b';
const accentDarkTheme = '#00f782';
const borderLightTheme = '#f1f1f1';
const borderDarkTheme = '#ffffff0F';
const borderAvatarColor = '#00000059';
const common = {
fonts: {
sessionFontDefault: 'Roboto',
sessionFontAccent: 'Loor',
sessionFontMono: 'SpaceMono',
xs: '11px',
sm: '13px',
md: '15px',
lg: '18px',
xl: '24px',
},
margins: {
xs: '5px',
sm: '10px',
md: '15px',
lg: '20px',
},
animations: {
defaultDuration: '0.25s',
},
};
export const lightTheme: DefaultTheme = {
common,
colors: {
accent: accentLightTheme,
accentButton: black,
warning: warning,
destructive: destructive,
cellBackground: '#fcfcfc',
modalBackground: '#fcfcfc',
fakeChatBubbleBackground: '#f5f5f5',
// input
inputBackground: '#8E8E93331F',
// text
textColor: black,
textColorSubtle: `${black}99`,
textColorSubtleNoOpacity: '#52514f',
textColorOpposite: white,
textHighlight: `${black}33`,
// inbox
inboxBackground: white,
// buttons
backgroundPrimary: '#272726',
foregroundPrimary: white,
buttonGreen: '#272726',
// conversation view
composeViewBackground: '#fcfcfc',
composeViewTextFieldBackground: '#ededed',
receivedMessageBackground: '#f5f5f5',
sentMessageBackground: accentLightTheme,
receivedMessageText: black,
sentMessageText: black,
sessionShadow: `0 0 4px 0 ${black}5E`,
sessionShadowColor: `${black}5E`,
// left pane
conversationList: white,
conversationItemHasUnread: '#fcfcfc',
conversationItemSelected: '#f0f0f0',
clickableHovered: '#dfdfdf',
sessionBorder: `1px solid ${borderLightTheme}`,
sessionUnreadBorder: `4px solid ${accentLightTheme}`,
leftpaneOverlayBackground: white,
// scrollbars
scrollBarTrack: '#fcfcfc',
scrollBarThumb: '#474646',
// pill divider:
pillDividerColor: `${black}1A`,
pillDividerTextColor: '#555555',
// context menu
contextMenuBackground: '#f5f5f5',
filterSessionText: 'brightness(0) saturate(100%)',
lastSeenIndicatorColor: '#62656a',
lastSeenIndicatorTextColor: '#070c14',
quoteBottomBarBackground: '#f0f0f0',
},
};
export const darkTheme = {
common,
colors: {
accent: accentDarkTheme,
accentButton: accentDarkTheme,
warning: warning,
destructive: destructive,
cellBackground: '#1b1b1b',
modalBackground: '#101011',
fakeChatBubbleBackground: '#212121',
// input
inputBackground: '#8e8e931F',
// text
textColor: white,
textColorSubtle: `${white}99`,
textColorSubtleNoOpacity: '#7f7d7d',
textColorOpposite: black,
textHighlight: `${accentDarkTheme}99`,
// inbox
inboxBackground: 'linear-gradient(180deg, #171717 0%, #121212 100%)',
// buttons
backgroundPrimary: '#474646',
foregroundPrimary: white,
buttonGreen: accentDarkTheme,
// conversation view
composeViewBackground: '#1b1b1b',
composeViewTextFieldBackground: '#141414',
receivedMessageBackground: '#222325',
sentMessageBackground: '#3f4146',
receivedMessageText: white,
sentMessageText: white,
sessionShadow: `0 0 4px 0 ${white}33`,
sessionShadowColor: `${white}33`,
// left pane
conversationList: '#1b1b1b',
conversationItemHasUnread: '#2c2c2c',
conversationItemSelected: '#404040',
clickableHovered: '#414347',
sessionBorder: `1px solid ${borderDarkTheme}`,
sessionUnreadBorder: `4px solid ${accentDarkTheme}`,
leftpaneOverlayBackground: 'linear-gradient(180deg, #171717 0%, #121212 100%)',
// scrollbars
scrollBarTrack: '#1b1b1b',
scrollBarThumb: '#474646',
// pill divider:
pillDividerColor: '#353535',
pillDividerTextColor: '#a0a0a0',
// context menu
contextMenuBackground: '#212121',
filterSessionText: 'none',
lastSeenIndicatorColor: '#353535',
lastSeenIndicatorTextColor: '#a8a9aa',
quoteBottomBarBackground: '#404040',
},
};
export const inversedTheme = (theme: DefaultTheme): DefaultTheme => {
return {
colors: {
...theme.colors,
textColor: theme.colors.textColorOpposite,
textColorOpposite: theme.colors.textColor,
},
common: theme.common,
};
};
export const SessionTheme = ({ children, theme }: { children: any; theme: DefaultTheme }) => (
<ThemeProvider theme={theme}>{children}</ThemeProvider>
);
window.lightTheme = lightTheme;
window.darkTheme = darkTheme;