jiti-meet/react/features/base/dialog/components/native/styles.js

267 lines
5.9 KiB
JavaScript
Raw Normal View History

2018-10-18 08:28:08 +00:00
import { StyleSheet } from 'react-native';
import BaseTheme from '../../../../base/ui/components/BaseTheme.native';
import { ColorSchemeRegistry, schemeColor } from '../../../color-scheme';
import { BoxModel, ColorPalette } from '../../../styles';
2018-10-18 08:28:08 +00:00
import { PREFERRED_DIALOG_SIZE } from '../../constants';
const BORDER_RADIUS = 5;
export const FIELD_UNDERLINE = ColorPalette.transparent;
2019-01-05 16:49:21 +00:00
/**
* NOTE: These Material guidelines based values are currently only used in
* dialogs (and related) but later on it would be nice to export it into a base
* Material feature.
*/
export const MD_FONT_SIZE = 16;
export const MD_ITEM_HEIGHT = 48;
export const MD_ITEM_MARGIN_PADDING = 16;
/**
* Reusable (colored) style for text in any branded dialogs.
*/
const brandedDialogText = {
color: schemeColor('text'),
fontSize: MD_FONT_SIZE,
textAlign: 'center'
};
2021-04-09 12:30:25 +00:00
const brandedDialogLabelStyle = {
color: ColorPalette.white,
2021-04-09 12:30:25 +00:00
flexShrink: 1,
fontSize: MD_FONT_SIZE,
opacity: 0.90
};
const brandedDialogItemContainerStyle = {
alignItems: 'center',
flexDirection: 'row',
height: MD_ITEM_HEIGHT
};
const brandedDialogIconStyle = {
color: ColorPalette.white,
2021-04-09 12:30:25 +00:00
fontSize: 24
};
export const inputDialog = {
2019-07-10 08:19:00 +00:00
formMessage: {
alignSelf: 'flex-start',
fontStyle: 'italic',
2022-02-04 10:20:47 +00:00
fontWeight: 'bold',
marginTop: BaseTheme.spacing[3]
2018-10-18 08:28:08 +00:00
}
};
2018-10-18 08:28:08 +00:00
/**
* The React {@code Component} styles of {@code BottomSheet}. These have
* been implemented as per the Material Design guidelines:
* {@link https://material.io/guidelines/components/bottom-sheets.html}.
2018-10-18 08:28:08 +00:00
*/
export const bottomSheetStyles = {
sheetAreaCover: {
backgroundColor: ColorPalette.transparent,
flex: 1
},
scrollView: {
paddingHorizontal: 0
},
/**
* Style for the container of the sheet.
*/
sheetContainer: {
alignItems: 'stretch',
flex: 1,
flexDirection: 'column',
justifyContent: 'flex-end',
maxWidth: 500,
marginLeft: 'auto',
marginRight: 'auto',
width: '100%'
},
sheetItemContainer: {
flex: -1,
maxHeight: '75%'
},
2019-11-25 12:01:54 +00:00
buttons: {
/**
* Style for the {@code Icon} element in a generic item of the menu.
*/
iconStyle: {
2021-04-09 12:30:25 +00:00
...brandedDialogIconStyle
2019-11-25 12:01:54 +00:00
},
/**
* Style for the label in a generic item rendered in the menu.
*/
labelStyle: {
2021-04-09 12:30:25 +00:00
...brandedDialogLabelStyle,
marginLeft: 16
2019-11-25 12:01:54 +00:00
},
/**
* Container style for a generic item rendered in the menu.
*/
style: {
...brandedDialogItemContainerStyle,
paddingHorizontal: MD_ITEM_MARGIN_PADDING
2019-11-25 12:01:54 +00:00
},
/**
* Additional style that is not directly used as a style object.
*/
underlayColor: ColorPalette.toggled
2019-11-25 12:01:54 +00:00
},
/**
* Bottom sheet's base style.
*/
sheet: {
backgroundColor: BaseTheme.palette.ui02,
borderTopLeftRadius: 16,
borderTopRightRadius: 16
},
/**
* Bottom sheet's base style with header.
*/
sheetHeader: {
backgroundColor: BaseTheme.palette.ui02
},
/**
* Bottom sheet's background color with footer.
*/
sheetFooter: {
backgroundColor: BaseTheme.palette.bottomSheet
2019-11-25 12:01:54 +00:00
}
};
export default {
dialogButton: {
...BaseTheme.typography.labelButton
},
destructiveDialogButton: {
...BaseTheme.typography.labelButton,
color: BaseTheme.palette.actionDanger
}
};
export const brandedDialog = {
/**
* The style of bold {@code Text} rendered by the {@code Dialog}s of the
* feature authentication.
*/
boldDialogText: {
fontWeight: 'bold'
},
buttonFarRight: {
borderBottomRightRadius: BORDER_RADIUS
},
buttonWrapper: {
alignItems: 'stretch',
borderRadius: BORDER_RADIUS,
flexDirection: 'row'
},
mainWrapper: {
alignSelf: 'stretch',
padding: BoxModel.padding * 2,
// The added bottom padding is to compensate the empty space around the
// close icon.
paddingBottom: BoxModel.padding * 3
},
overlayTouchable: {
...StyleSheet.absoluteFillObject
}
};
2018-10-18 08:28:08 +00:00
/**
* Color schemed styles for all the component based on the abstract dialog.
*/
ColorSchemeRegistry.register('Dialog', {
button: {
backgroundColor: schemeColor('buttonBackground'),
flex: 1,
padding: BoxModel.padding * 1.5
},
/**
* Separator line for the buttons in a dialog.
*/
buttonSeparator: {
borderRightColor: schemeColor('border'),
borderRightWidth: 1
2018-10-18 08:28:08 +00:00
},
buttonLabel: {
color: schemeColor('buttonLabel'),
fontSize: MD_FONT_SIZE,
textAlign: 'center'
},
/**
* Style of the close icon on a dialog.
*/
closeStyle: {
color: schemeColor('icon'),
fontSize: MD_FONT_SIZE
},
/**
* Base style of the dialogs.
*/
dialog: {
alignItems: 'stretch',
backgroundColor: schemeColor('background'),
borderColor: schemeColor('border'),
borderRadius: BORDER_RADIUS,
borderWidth: 1,
flex: 1,
flexDirection: 'column',
maxWidth: PREFERRED_DIALOG_SIZE
},
/**
* Field on an input dialog.
*/
2018-10-18 08:28:08 +00:00
field: {
...brandedDialogText,
2018-10-18 08:28:08 +00:00
borderBottomWidth: 1,
borderColor: schemeColor('border'),
2018-10-18 08:28:08 +00:00
margin: BoxModel.margin,
textAlign: 'left'
},
/**
* Style for the field label on an input dialog.
*/
2018-10-18 08:28:08 +00:00
fieldLabel: {
...brandedDialogText,
2018-10-18 08:28:08 +00:00
margin: BoxModel.margin,
textAlign: 'left'
},
text: {
...brandedDialogText,
color: BaseTheme.palette.text01
2019-04-23 12:30:46 +00:00
},
topBorderContainer: {
borderTopColor: BaseTheme.palette.dividerColor,
2019-04-23 12:30:46 +00:00
borderTopWidth: 1
2018-10-18 08:28:08 +00:00
}
});