uniswap-interface-uncensored/src/theme/colors.ts
Mike Grabowski 5696c61354
feat: add glow to trending table (#5248)
* feat: add glow

* chore: simplify

* chore: move component to theme
2022-11-16 22:18:53 +01:00

382 lines
9.7 KiB
TypeScript

// Based mostly on https://github.com/Uniswap/interface/blob/main/src/theme/index.tsx
import { Color } from './styled'
import { opacify } from './utils'
export interface GlobalPalette {
white: Color
black: Color
gray50: Color
gray100: Color
gray150: Color
gray200: Color
gray250: Color
gray300: Color
gray350: Color
gray400: Color
gray450: Color
gray500: Color
gray550: Color
gray600: Color
gray650: Color
gray700: Color
gray750: Color
gray800: Color
gray850: Color
gray900: Color
pink50: Color
pink100: Color
pink200: Color
pink300: Color
pink400: Color
pink500: Color
pink600: Color
pink700: Color
pink800: Color
pink900: Color
pinkVibrant: Color
red50: Color
red100: Color
red200: Color
red300: Color
red400: Color
red500: Color
red600: Color
red700: Color
red800: Color
red900: Color
redVibrant: Color
yellow50: Color
yellow100: Color
yellow200: Color
yellow300: Color
yellow400: Color
yellow500: Color
yellow600: Color
yellow700: Color
yellow800: Color
yellow900: Color
yellowVibrant: Color
gold200: Color
goldVibrant: Color
green50: Color
green100: Color
green200: Color
green300: Color
green400: Color
green500: Color
green600: Color
green700: Color
green800: Color
green900: Color
greenVibrant: Color
blue50: Color
blue100: Color
blue200: Color
blue300: Color
blue400: Color
blue500: Color
blue600: Color
blue700: Color
blue800: Color
blue900: Color
blueVibrant: Color
magentaVibrant: Color
purple900: Color
networkEthereum: Color
networkOptimism: Color
networkOptimismSoft: Color
networkPolygon: Color
networkArbitrum: Color
networkPolygonSoft: Color
networkEthereumSoft: Color
}
export const colors: GlobalPalette = {
white: '#FFFFFF',
black: '#000000',
gray50: '#F5F6FC',
gray100: '#E8ECFB',
gray150: '#D2D9EE',
gray200: '#B8C0DC',
gray250: '#A6AFCA',
gray300: '#98A1C0',
gray350: '#888FAB',
gray400: '#7780A0',
gray450: '#6B7594',
gray500: '#5D6785',
gray550: '#505A78',
gray600: '#404A67',
gray650: '#333D59',
gray700: '#293249',
gray750: '#1B2236',
gray800: '#131A2A',
gray850: '#0E1524',
gray900: '#0D111C',
pink50: '#F9ECF1',
pink100: '#FFD9E4',
pink200: '#FBA4C0',
pink300: '#FF6FA3',
pink400: '#FB118E',
pink500: '#C41969',
pink600: '#8C0F49',
pink700: '#55072A',
pink800: '#350318',
pink900: '#2B000B',
pinkVibrant: '#F51A70',
red50: '#FAECEA',
red100: '#FED5CF',
red200: '#FEA79B',
red300: '#FD766B',
red400: '#FA2B39',
red500: '#C4292F',
red600: '#891E20',
red700: '#530F0F',
red800: '#380A03',
red900: '#240800',
redVibrant: '#F14544',
yellow50: '#F6F2D5',
yellow100: '#DBBC19',
yellow200: '#DBBC19',
yellow300: '#BB9F13',
yellow400: '#A08116',
yellow500: '#866311',
yellow600: '#5D4204',
yellow700: '#3E2B04',
yellow800: '#231902',
yellow900: '#180F02',
yellowVibrant: '#FAF40A',
// TODO: add gold 50-900
gold200: '#EEB317',
goldVibrant: '#FEB239',
green50: '#E3F3E6',
green100: '#BFEECA',
green200: '#76D191',
green300: '#40B66B',
green400: '#209853',
green500: '#0B783E',
green600: '#0C522A',
green700: '#053117',
green800: '#091F10',
green900: '#09130B',
greenVibrant: '#5CFE9D',
blue50: '#EDEFF8',
blue100: '#DEE1FF',
blue200: '#ADBCFF',
blue300: '#869EFF',
blue400: '#4C82FB',
blue500: '#1267D6',
blue600: '#1D4294',
blue700: '#09265E',
blue800: '#0B193F',
blue900: '#040E34',
blueVibrant: '#587BFF',
// TODO: add magenta 50-900
magentaVibrant: '#FC72FF',
purple900: '#1C0337',
// TODO: add all other vibrant variations
networkEthereum: '#627EEA',
networkOptimism: '#FF0420',
networkOptimismSoft: 'rgba(255, 4, 32, 0.16)',
networkPolygon: '#A457FF',
networkArbitrum: '#28A0F0',
networkPolygonSoft: 'rgba(164, 87, 255, 0.16)',
networkEthereumSoft: 'rgba(98, 126, 234, 0.16)',
}
export interface Palette {
userThemeColor: Color
background: string
backgroundBackdrop: Color
backgroundSurface: Color
backgroundInteractive: Color
backgroundFloating: Color
backgroundModule: Color
backgroundOutline: Color
backgroundScrim: Color
backgroundScrolledSurface: Color
textPrimary: Color
textSecondary: Color
textTertiary: Color
accentAction: Color
accentActive: Color
accentSuccess: Color
accentWarning: Color
accentFailure: Color
accentCritical: Color
accentActionSoft: Color
accentActiveSoft: Color
accentSuccessSoft: Color
accentWarningSoft: Color
accentFailureSoft: Color
accentTextDarkPrimary: Color
accentTextDarkSecondary: Color
accentTextDarkTertiary: Color
accentTextLightPrimary: Color
accentTextLightSecondary: Color
accentTextLightTertiary: Color
white: Color
black: Color
chain_1: Color
chain_3: Color
chain_4: Color
chain_5: Color
chain_10: Color
chain_137: Color
chain_42: Color
chain_420: Color
chain_42161: Color
chain_421611: Color
chain_80001: Color
chain_137_background: Color
chain_10_background: Color
chain_42161_background: Color
shallowShadow: Color
deepShadow: Color
networkDefaultShadow: Color
stateOverlayHover: Color
stateOverlayPressed: Color
}
export const colorsLight: Palette = {
userThemeColor: colors.pink400,
background: '#faf9fa', //INTENTIONALLY OFF THEME TO GIVE WHITE BG A SOFTER VISUAL
backgroundBackdrop: colors.white,
backgroundSurface: colors.white,
backgroundModule: colors.gray50,
backgroundInteractive: colors.gray100,
backgroundFloating: opacify(8, colors.gray700),
backgroundOutline: colors.gray100,
backgroundScrim: opacify(60, colors.gray900),
backgroundScrolledSurface: opacify(72, colors.white),
textPrimary: colors.gray900,
textSecondary: colors.gray400,
textTertiary: colors.gray300,
accentAction: colors.pink400,
accentActive: colors.blue400,
accentSuccess: colors.green300,
accentWarning: colors.gold200,
accentFailure: colors.red400,
accentCritical: colors.red400,
accentActionSoft: opacify(24, colors.pink400),
accentActiveSoft: opacify(24, colors.blue400),
accentSuccessSoft: opacify(24, colors.green400),
accentWarningSoft: opacify(24, colors.gold200),
accentFailureSoft: opacify(12, colors.red400),
accentTextDarkPrimary: opacify(80, colors.gray900),
accentTextDarkSecondary: opacify(60, colors.gray900),
accentTextDarkTertiary: opacify(24, colors.gray900),
accentTextLightPrimary: colors.gray50,
accentTextLightSecondary: opacify(60, colors.gray50),
accentTextLightTertiary: opacify(12, colors.gray50),
white: colors.white,
black: colors.black,
chain_1: colors.networkEthereum,
chain_3: colors.yellow400,
chain_4: colors.pink400,
chain_5: colors.green400,
chain_10: colors.networkOptimism,
chain_137: colors.networkPolygon,
chain_42: colors.networkArbitrum,
chain_420: colors.networkOptimism,
chain_42161: colors.networkEthereum,
chain_421611: colors.networkEthereum,
chain_80001: colors.networkPolygon,
chain_137_background: colors.purple900,
chain_10_background: colors.red900,
chain_42161_background: colors.blue900,
deepShadow:
'8px 12px 20px rgba(51, 53, 72, 0.04), 4px 6px 12px rgba(51, 53, 72, 0.02), 4px 4px 8px rgba(51, 53, 72, 0.04);',
shallowShadow:
'6px 6px 10px rgba(51, 53, 72, 0.01), 2px 2px 6px rgba(51, 53, 72, 0.02), 1px 2px 2px rgba(51, 53, 72, 0.02);',
networkDefaultShadow: `0px 40px 120px ${opacify(12, colors.pink400)}`,
stateOverlayHover: opacify(8, colors.gray300),
stateOverlayPressed: opacify(24, colors.gray200),
}
export const colorsDark: Palette = {
userThemeColor: colors.magentaVibrant,
background: colors.gray800,
backgroundBackdrop: colors.black,
backgroundSurface: colors.gray900,
backgroundModule: colors.gray800,
backgroundInteractive: colors.gray700,
backgroundFloating: opacify(12, colors.black),
backgroundOutline: colors.gray750,
backgroundScrim: opacify(72, colors.gray900),
backgroundScrolledSurface: opacify(72, colors.gray900),
textPrimary: colors.white,
textSecondary: colors.gray300,
textTertiary: colors.gray500,
accentAction: colors.blue400,
accentActive: colors.blue400,
accentSuccess: colors.green200,
accentWarning: colors.gold200,
accentFailure: colors.red300,
accentCritical: colors.red300,
accentActionSoft: opacify(24, colors.blue400),
accentActiveSoft: opacify(24, colors.blue400),
accentSuccessSoft: opacify(24, colors.green400),
accentWarningSoft: opacify(24, colors.gold200),
accentFailureSoft: opacify(12, colors.red400),
accentTextDarkPrimary: opacify(80, colors.gray900),
accentTextDarkSecondary: opacify(60, colors.gray900),
accentTextDarkTertiary: opacify(24, colors.gray900),
accentTextLightPrimary: colors.gray50,
accentTextLightSecondary: opacify(72, colors.gray50),
accentTextLightTertiary: opacify(12, colors.gray50),
white: colors.white,
black: colors.black,
chain_1: colors.networkEthereum,
chain_3: colors.yellow400,
chain_4: colors.pink400,
chain_5: colors.green400,
chain_10: colors.networkOptimism,
chain_137: colors.networkPolygon,
chain_42: colors.networkArbitrum,
chain_420: colors.networkEthereum,
chain_42161: colors.networkEthereum,
chain_421611: colors.networkEthereum,
chain_80001: colors.networkPolygon,
chain_137_background: colors.purple900,
chain_10_background: colors.red900,
chain_42161_background: colors.blue900,
deepShadow: '12px 16px 24px rgba(0, 0, 0, 0.24), 12px 8px 12px rgba(0, 0, 0, 0.24), 4px 4px 8px rgba(0, 0, 0, 0.32);',
shallowShadow: '4px 4px 10px rgba(0, 0, 0, 0.24), 2px 2px 4px rgba(0, 0, 0, 0.12), 1px 2px 2px rgba(0, 0, 0, 0.12);',
networkDefaultShadow: `0px 40px 120px ${opacify(16, colors.blue400)}`,
stateOverlayHover: opacify(8, colors.gray300),
stateOverlayPressed: opacify(24, colors.gray200),
}