gristlabs_grist-core/app/client/ui/RightPanelStyles.ts
George Gevoian 86062a8c28 (core) New Grist Forms styling and field options
Summary:
 - New styling for forms.
 - New field options for various field types (spinner, checkbox, radio buttons, alignment, sort).
 - Improved alignment of form fields in columns.
 - Support for additional select input keyboard shortcuts (Enter and Backspace).
 - Prevent submitting form on Enter if an input has focus.
 - Fix for changing form field type causing the field to disappear.

Test Plan: Browser tests.

Reviewers: jarek

Reviewed By: jarek

Differential Revision: https://phab.getgrist.com/D4223
2024-04-11 08:17:42 -07:00

97 lines
2.0 KiB
TypeScript

import {theme, vars} from 'app/client/ui2018/cssVars';
import {icon} from 'app/client/ui2018/icons';
import {numericSpinner} from 'app/client/widgets/NumericSpinner';
import {styled} from 'grainjs';
export const cssIcon = styled(icon, `
flex: 0 0 auto;
--icon-color: ${theme.lightText};
`);
export const cssLabel = styled('div', `
color: ${theme.text};
text-transform: uppercase;
margin: 16px 16px 12px 16px;
font-size: ${vars.xsmallFontSize};
`);
export const cssHelp = styled('div', `
color: ${theme.lightText};
margin: -8px 16px 12px 16px;
font-style: italic;
font-size: ${vars.xsmallFontSize};
`);
export const cssRow = styled('div', `
display: flex;
margin: 8px 16px;
align-items: center;
color: ${theme.text};
&-top-space {
margin-top: 24px;
}
&-disabled {
color: ${theme.disabledText};
}
`);
export const cssRowWrapped = styled(cssRow, `
flex-wrap: wrap;
row-gap: 5px;
`);
export const cssSortFilterColumn = styled('div', `
cursor: pointer;
display: flex;
flex-grow: 1;
align-items: center;
color: ${theme.text};
background-color: ${theme.hover};
overflow: hidden;
border-radius: 4px;
padding: 4px 8px;
`);
export const cssBlockedCursor = styled('span', `
&, & * {
cursor: not-allowed !important;
}
`);
export const cssButtonRow = styled(cssRowWrapped, `
margin-left: 0;
margin-right: 0;
& > button {
margin-left: 16px;
}
`);
export const cssSeparator = styled('div', `
border-bottom: 1px solid ${theme.pagePanelsBorder};
margin-top: 16px;
`);
export const cssSaveButtonsRow = styled('div', `
margin: 16px 16px 12px 16px;
`);
export const cssPinButton = styled('div', `
cursor: pointer;
--icon-color: ${theme.controlSecondaryFg};
border-radius: ${vars.controlBorderRadius};
padding: 3px;
&-pinned {
background-color: ${theme.controlPrimaryBg};
--icon-color: ${theme.controlPrimaryFg};
}
&:not(&-pinned):hover {
background-color: ${theme.hover};
}
`);
export const cssNumericSpinner = styled(numericSpinner, `
height: 28px;
`);