mirror of
https://github.com/Redocly/redoc.git
synced 2025-02-07 13:30:33 +03:00
feat: big theme update
This commit is contained in:
parent
c5a352312a
commit
58bddc8811
|
@ -5,7 +5,7 @@ servers:
|
|||
- url: //petstore.swagger.io/sandbox
|
||||
description: Sandbox server
|
||||
info:
|
||||
description: >
|
||||
description: |
|
||||
This is a sample server Petstore server.
|
||||
|
||||
You can find out more about Swagger at
|
||||
|
@ -58,6 +58,14 @@ info:
|
|||
All responses have a wildcard same-origin which makes them completely public
|
||||
and accessible to everyone, including any code on any site.
|
||||
|
||||
|
||||
```json
|
||||
{
|
||||
"test": "value",
|
||||
"test2": "value2"
|
||||
}
|
||||
```
|
||||
|
||||
# Authentication
|
||||
|
||||
Petstore offers two forms of authentication:
|
||||
|
|
|
@ -19,10 +19,10 @@ export const StyledDropdown = withProps<DropdownProps>(styled(Dropdown))`
|
|||
display: inline-block;
|
||||
position: relative;
|
||||
width: auto;
|
||||
font-family: ${props => props.theme.headingsFont.family};
|
||||
font-family: ${props => props.theme.typography.headings.fontFamily};
|
||||
|
||||
.Dropdown-control {
|
||||
font-family: ${props => props.theme.headingsFont.family};
|
||||
font-family: ${props => props.theme.typography.headings.fontFamily};
|
||||
position: relative;
|
||||
font-size: .929em;
|
||||
width: 100%;
|
||||
|
@ -40,14 +40,14 @@ export const StyledDropdown = withProps<DropdownProps>(styled(Dropdown))`
|
|||
background: white;
|
||||
|
||||
&:hover {
|
||||
border-color: ${props => props.theme.colors.main};
|
||||
color: ${props => props.theme.colors.main};
|
||||
border-color: ${props => props.theme.colors.primary.main};
|
||||
color: ${props => props.theme.colors.primary.main};
|
||||
box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12);
|
||||
}
|
||||
}
|
||||
|
||||
.Dropdown-arrow {
|
||||
border-color: ${props => props.theme.colors.main} transparent transparent;
|
||||
border-color: ${props => props.theme.colors.primary.main} transparent transparent;
|
||||
border-style: solid;
|
||||
border-width: 0.35em 0.35em 0;
|
||||
content: ' ';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { transparentize } from 'polished';
|
||||
// import { transparentize } from 'polished';
|
||||
|
||||
import styled, { extensionsHook, withProps } from '../styled-components';
|
||||
import { deprecatedCss } from './mixins';
|
||||
|
@ -7,11 +7,11 @@ export const PropertiesTableCaption = styled.caption`
|
|||
text-align: right;
|
||||
font-size: 0.9em;
|
||||
font-weight: normal;
|
||||
color: ${props => transparentize(0.6, props.theme.colors.text)};
|
||||
color: ${props => props.theme.colors.text.secondary};
|
||||
`;
|
||||
|
||||
export const PropertyCell = styled.td`
|
||||
border-left: 1px solid ${props => props.theme.schemaView.linesColor};
|
||||
border-left: 1px solid ${props => props.theme.schema.linesColor};
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
padding: 10px 10px 10px 0;
|
||||
|
@ -29,16 +29,16 @@ export const PropertyCell = styled.td`
|
|||
to bottom,
|
||||
transparent 0%,
|
||||
transparent 22px,
|
||||
${props => props.theme.schemaView.linesColor} 22px,
|
||||
${props => props.theme.schemaView.linesColor} 100%
|
||||
${props => props.theme.schema.linesColor} 22px,
|
||||
${props => props.theme.schema.linesColor} 100%
|
||||
);
|
||||
}
|
||||
|
||||
tr.last > & {
|
||||
background-image: linear-gradient(
|
||||
to bottom,
|
||||
${props => props.theme.schemaView.linesColor} 0%,
|
||||
${props => props.theme.schemaView.linesColor} 22px,
|
||||
${props => props.theme.schema.linesColor} 0%,
|
||||
${props => props.theme.schema.linesColor} 22px,
|
||||
transparent 22px,
|
||||
transparent 100%
|
||||
);
|
||||
|
@ -63,7 +63,7 @@ export const PropertyNameCell = withProps<{ kind?: string }>(PropertyCell.extend
|
|||
line-height: 20px;
|
||||
white-space: nowrap;
|
||||
font-size: 0.929em;
|
||||
font-family: ${props => props.theme.headingsFont.family};
|
||||
font-family: ${props => props.theme.typography.headings.fontFamily};
|
||||
|
||||
&.deprecated {
|
||||
${deprecatedCss};
|
||||
|
@ -77,7 +77,7 @@ export const PropertyNameCell = withProps<{ kind?: string }>(PropertyCell.extend
|
|||
export const PropertyDetailsCell = styled.td`
|
||||
border-bottom: 1px solid #9fb4be;
|
||||
padding: 10px 0;
|
||||
width: ${props => props.theme.schemaView.defaultDetailsWidth};
|
||||
width: ${props => props.theme.schema.defaultDetailsWidth};
|
||||
box-sizing: border-box;
|
||||
|
||||
tr.expanded & {
|
||||
|
@ -86,8 +86,8 @@ export const PropertyDetailsCell = styled.td`
|
|||
`;
|
||||
|
||||
export const PropertyBullet = styled.span`
|
||||
color: ${props => props.theme.schemaView.linesColor};
|
||||
font-family: ${props => props.theme.code.fontFamily};
|
||||
color: ${props => props.theme.schema.linesColor};
|
||||
font-family: ${props => props.theme.typography.code.fontFamily};
|
||||
margin-right: 10px;
|
||||
|
||||
&::before {
|
||||
|
@ -96,7 +96,7 @@ export const PropertyBullet = styled.span`
|
|||
vertical-align: middle;
|
||||
width: 10px;
|
||||
height: 1px;
|
||||
background: ${props => props.theme.schemaView.linesColor};
|
||||
background: ${props => props.theme.schema.linesColor};
|
||||
}
|
||||
|
||||
&::after {
|
||||
|
@ -104,19 +104,19 @@ export const PropertyBullet = styled.span`
|
|||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: 1px;
|
||||
background: ${props => props.theme.schemaView.linesColor};
|
||||
background: ${props => props.theme.schema.linesColor};
|
||||
height: 7px;
|
||||
}
|
||||
`;
|
||||
|
||||
export const InnerPropertiesWrap = styled.div`
|
||||
padding: ${({ theme }) => theme.schemaView.nestingSpacing};
|
||||
padding: ${({ theme }) => theme.schema.nestingSpacing};
|
||||
`;
|
||||
|
||||
export const PropertiesTable = styled.table`
|
||||
border-collapse: separate;
|
||||
border-radius: 3px;
|
||||
font-size: ${props => props.theme.baseFont.size};
|
||||
font-size: ${props => props.theme.typography.fontSize};
|
||||
|
||||
border-spacing: 0;
|
||||
width: 100%;
|
||||
|
@ -137,9 +137,9 @@ export const PropertiesTable = styled.table`
|
|||
${InnerPropertiesWrap}
|
||||
${InnerPropertiesWrap}
|
||||
${InnerPropertiesWrap} {
|
||||
margin: ${({ theme }) => theme.schemaView.nestingSpacing};
|
||||
margin: ${({ theme }) => theme.schema.nestingSpacing};
|
||||
margin-right: 0;
|
||||
background: #f0f0f0;
|
||||
background: ${({ theme }) => theme.schema.nestedBackground};
|
||||
}
|
||||
|
||||
&
|
||||
|
|
|
@ -1,10 +1,19 @@
|
|||
import { transparentize } from 'polished';
|
||||
|
||||
import styled from '../styled-components';
|
||||
import styled, { extensionsHook } from '../styled-components';
|
||||
import { PropertyNameCell } from './fields-layout';
|
||||
import { ShelfIcon } from './shelfs';
|
||||
|
||||
export const ClickablePropertyNameCell = PropertyNameCell.extend`
|
||||
cursor: pointer;
|
||||
|
||||
${ShelfIcon} {
|
||||
height: ${({ theme }) => theme.schema.arrow.size};
|
||||
width: ${({ theme }) => theme.schema.arrow.size};
|
||||
polygon {
|
||||
fill: ${({ theme }) => theme.schema.arrow.color};
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const FieldLabel = styled.span`
|
||||
|
@ -14,30 +23,29 @@ export const FieldLabel = styled.span`
|
|||
`;
|
||||
|
||||
export const TypePrefix = FieldLabel.extend`
|
||||
color: ${props => transparentize(0.2, props.theme.schemaView.typeNameColor)};
|
||||
color: ${props => transparentize(0.2, props.theme.schema.typeNameColor)};
|
||||
`;
|
||||
|
||||
export const TypeName = FieldLabel.extend`
|
||||
color: ${props => props.theme.schemaView.typeNameColor};
|
||||
color: ${props => props.theme.schema.typeNameColor};
|
||||
`;
|
||||
|
||||
export const TypeTitle = FieldLabel.extend`
|
||||
color: ${props => props.theme.schemaView.typeTitleColor};
|
||||
color: ${props => props.theme.schema.typeTitleColor};
|
||||
`;
|
||||
|
||||
export const TypeFormat = TypeName;
|
||||
|
||||
export const RequiredLabel = FieldLabel.withComponent('div').extend`
|
||||
color: ${props => props.theme.schemaView.requireLabelColor};
|
||||
font-size: 11px;
|
||||
color: ${props => props.theme.schema.requireLabelColor};
|
||||
font-size: ${props => props.theme.schema.labelsTextSize};
|
||||
font-weight: normal;
|
||||
margin-left: 20px;
|
||||
line-height: 1;
|
||||
font-weight: normal;
|
||||
`;
|
||||
|
||||
export const RecursiveLabel = FieldLabel.extend`
|
||||
color: #dd9900;
|
||||
color: ${({ theme }) => theme.colors.warning.main};
|
||||
font-size: 13px;
|
||||
`;
|
||||
|
||||
|
@ -55,27 +63,28 @@ export const PatternLabel = FieldLabel.extend`
|
|||
}
|
||||
`;
|
||||
|
||||
export const ExampleValue = styled.span`
|
||||
font-family: ${props => props.theme.code.fontFamily};
|
||||
background-color: ${props => transparentize(0.98, props.theme.colors.text)};
|
||||
border: 1px solid ${props => transparentize(0.85, props.theme.colors.text)};
|
||||
margin: 0 3px;
|
||||
padding: 0.4em 0.2em 0.2em;
|
||||
font-size: 0.8em;
|
||||
export const ExampleValue = FieldLabel.extend`
|
||||
border-radius: 2px;
|
||||
color: ${props => transparentize(0.1, props.theme.colors.text)};
|
||||
display: inline-block;
|
||||
min-width: 20px;
|
||||
text-align: center;
|
||||
line-height: 1;
|
||||
vertical-align: middle;
|
||||
${({ theme }) => `
|
||||
background-color: ${transparentize(0.85, theme.colors.text.primary)};
|
||||
color: ${transparentize(0.1, theme.colors.text.primary)};
|
||||
|
||||
margin-left: ${theme.spacing.unit}px;
|
||||
padding: 0 ${theme.spacing.unit}px;
|
||||
border: 1px solid ${transparentize(0.9, theme.colors.text.primary)};
|
||||
}`};
|
||||
${extensionsHook('ExampleValue')};
|
||||
`;
|
||||
|
||||
export const ConstraintItem = FieldLabel.extend`
|
||||
background-color: ${props => transparentize(0.85, props.theme.colors.main)};
|
||||
color: ${props => transparentize(0.4, props.theme.colors.main)};
|
||||
margin-right: 6px;
|
||||
margin-left: 6px;
|
||||
border-radius: 2px;
|
||||
padding: 0 4px;
|
||||
${({ theme }) => `
|
||||
background-color: ${transparentize(0.85, theme.colors.primary.light)};
|
||||
color: ${transparentize(0.1, theme.colors.primary.light)};
|
||||
|
||||
margin-left: 0 ${theme.spacing.unit}px;
|
||||
padding: 0 ${theme.spacing.unit}px;
|
||||
border: 1px solid ${transparentize(0.9, theme.colors.primary.light)};
|
||||
}`};
|
||||
${extensionsHook('ConstraintItem')};
|
||||
`;
|
||||
|
|
|
@ -7,14 +7,14 @@ const headerFontSize = {
|
|||
};
|
||||
|
||||
export const headerCommonMixin = level => css`
|
||||
font-family: ${props => props.theme.headingsFont.family};
|
||||
font-family: ${props => props.theme.typography.headings.fontFamily};
|
||||
font-weight: 400;
|
||||
font-size: ${headerFontSize[level]};
|
||||
`;
|
||||
|
||||
export const H1 = styled.h1`
|
||||
${headerCommonMixin(1)};
|
||||
color: ${props => props.theme.colors.main};
|
||||
color: ${props => props.theme.colors.primary.main};
|
||||
|
||||
${extensionsHook('H1')};
|
||||
`;
|
||||
|
|
|
@ -2,7 +2,7 @@ import styled, { media } from '../styled-components';
|
|||
|
||||
export const MiddlePanel = styled.div`
|
||||
width: calc(100% - ${props => props.theme.rightPanel.width});
|
||||
padding: ${props => props.theme.spacingUnit * 2}px;
|
||||
padding: ${props => props.theme.spacing.unit * 8}px;
|
||||
|
||||
${media.lessThan('medium')`
|
||||
width: 100%;
|
||||
|
@ -13,7 +13,7 @@ export const RightPanel = styled.div`
|
|||
width: ${props => props.theme.rightPanel.width};
|
||||
color: #fafbfc;
|
||||
background-color: ${props => props.theme.rightPanel.backgroundColor};
|
||||
padding: ${props => props.theme.spacingUnit * 2}px;
|
||||
padding: ${props => props.theme.spacing.unit * 8}px;
|
||||
|
||||
${media.lessThan('medium')`
|
||||
width: 100%;
|
||||
|
|
|
@ -10,7 +10,7 @@ export const OneOfList = styled.ul`
|
|||
export const OneOfLabel = styled.span`
|
||||
font-size: 0.9em;
|
||||
margin-right: 10px;
|
||||
color: ${props => props.theme.colors.main};
|
||||
color: ${props => props.theme.colors.primary.main};
|
||||
font-family: Montserrat;
|
||||
}
|
||||
`;
|
||||
|
@ -20,18 +20,18 @@ export const OneOfButton = withProps<{ active: boolean }>(styled.li)`
|
|||
margin-right: 10px;
|
||||
font-size: 0.8em;
|
||||
cursor: pointer;
|
||||
border: 1px solid ${props => props.theme.colors.main};
|
||||
border: 1px solid ${props => props.theme.colors.primary.main};
|
||||
padding: 2px 10px;
|
||||
|
||||
${props => {
|
||||
if (props.active) {
|
||||
return `
|
||||
color: white;
|
||||
background-color: ${props.theme.colors.main};
|
||||
background-color: ${props.theme.colors.primary.main};
|
||||
`;
|
||||
} else {
|
||||
return `
|
||||
color: ${props.theme.colors.main};
|
||||
color: ${props.theme.colors.primary.main};
|
||||
background-color: white;
|
||||
`;
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ export const OneOfButton = withProps<{ active: boolean }>(styled.li)`
|
|||
|
||||
export const ArrayOpenningLabel = styled.div`
|
||||
font-size: 0.9em;
|
||||
font-family: ${props => props.theme.code.fontFamily};
|
||||
font-family: ${props => props.theme.typography.code.fontFamily};
|
||||
&::after {
|
||||
content: ' [';
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ export const ArrayOpenningLabel = styled.div`
|
|||
|
||||
export const ArrayClosingLabel = styled.div`
|
||||
font-size: 0.9em;
|
||||
font-family: ${props => props.theme.code.fontFamily};
|
||||
font-family: ${props => props.theme.typography.code.fontFamily};
|
||||
&::after {
|
||||
content: ']';
|
||||
}
|
||||
|
|
|
@ -42,7 +42,9 @@ export const ShelfIcon = styled(IntShelfIcon)`
|
|||
transform: rotateZ(${props => directionMap[props.direction || 'down']});
|
||||
|
||||
polygon {
|
||||
fill: ${props => (props.color && props.theme.colors[props.color]) || props.color};
|
||||
fill: ${props =>
|
||||
(props.color && props.theme.colors[props.color] && props.theme.colors[props.color].main) ||
|
||||
props.color};
|
||||
}
|
||||
`;
|
||||
|
||||
|
@ -50,8 +52,8 @@ export const Badge = withProps<{ type: string }>(styled.span)`
|
|||
display: inline-block;
|
||||
padding: 0 5px;
|
||||
margin: 0;
|
||||
background-color: ${props => props.theme.colors[props.type]};
|
||||
color: white;
|
||||
font-size: ${props => props.theme.code.fontSize};;
|
||||
background-color: ${props => props.theme.colors[props.type].main};
|
||||
color: ${props => props.theme.colors[props.type].dark};
|
||||
font-size: ${props => props.theme.typography.code.fontSize};
|
||||
vertical-align: text-top;
|
||||
`;
|
||||
|
|
|
@ -28,7 +28,7 @@ export const Tabs = styled(ReactTabs)`
|
|||
font-weight: bold;
|
||||
|
||||
&.react-tabs__tab--selected {
|
||||
color: ${props => props.theme.colors.text};
|
||||
color: ${props => props.theme.colors.text.primary};
|
||||
background: #e2e2e2;
|
||||
}
|
||||
|
||||
|
@ -38,19 +38,19 @@ export const Tabs = styled(ReactTabs)`
|
|||
}
|
||||
|
||||
&.tab-success {
|
||||
color: ${props => props.theme.colors.success};
|
||||
color: ${props => props.theme.colors.responses.success.color};
|
||||
}
|
||||
|
||||
&.tab-redirect {
|
||||
color: ${props => props.theme.colors.redirect};
|
||||
color: ${props => props.theme.colors.responses.redirect.color};
|
||||
}
|
||||
|
||||
&.tab-info {
|
||||
color: ${props => props.theme.colors.info};
|
||||
color: ${props => props.theme.colors.responses.info.color};
|
||||
}
|
||||
|
||||
&.tab-error {
|
||||
color: ${props => props.theme.colors.error};
|
||||
color: ${props => props.theme.colors.responses.error.color};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,8 +13,8 @@ export const ApiHeader = H1.extend`
|
|||
`;
|
||||
|
||||
export const DownloadButton = styled.a`
|
||||
border: 1px solid ${props => props.theme.colors.main};
|
||||
color: ${props => props.theme.colors.main};
|
||||
border: 1px solid ${props => props.theme.colors.primary.main};
|
||||
color: ${props => props.theme.colors.primary.main};
|
||||
font-weight: normal;
|
||||
margin-left: 0.5em;
|
||||
padding: 4px 8px 4px;
|
||||
|
|
|
@ -7,7 +7,7 @@ export const OperationEndpointWrap = styled.div`
|
|||
`;
|
||||
|
||||
export const ServerRelativeURL = styled.span`
|
||||
font-family: ${props => props.theme.headingsFont.family};
|
||||
font-family: ${props => props.theme.typography.headings.fontFamily};
|
||||
margin-left: 10px;
|
||||
`;
|
||||
|
||||
|
@ -23,10 +23,11 @@ export const EndpointInfo = withProps<{ expanded?: boolean; inverted?: boolean }
|
|||
border-bottom: ${props => (props.inverted ? '1px solid #ccc' : '0')};
|
||||
transition: border-color 0.25s ease;
|
||||
|
||||
${props => (props.expanded && !props.inverted && 'border-color: #3c4448;') || ''}
|
||||
${props =>
|
||||
(props.expanded && !props.inverted && `border-color: ${props.theme.colors.border.dark};`) || ''}
|
||||
|
||||
.${ServerRelativeURL} {
|
||||
color: ${props => (props.inverted ? props.theme.colors.text : '#ffffff')}
|
||||
color: ${props => (props.inverted ? props.theme.colors.text.primary : '#ffffff')}
|
||||
}
|
||||
`;
|
||||
|
||||
|
@ -39,7 +40,7 @@ export const HttpVerb = withProps<{ type: string }>(styled.span).attrs({
|
|||
color: #ffffff;
|
||||
padding: 3px 10px;
|
||||
text-transform: uppercase;
|
||||
font-family: ${props => props.theme.headingsFont.family};
|
||||
font-family: ${props => props.theme.typography.headings.fontFamily};
|
||||
margin: 0;
|
||||
`;
|
||||
|
||||
|
@ -68,8 +69,8 @@ export const ServerUrl = styled.div`
|
|||
border: 1px solid #ccc;
|
||||
background: #fff;
|
||||
word-break: break-all;
|
||||
color: ${props => props.theme.colors.main};
|
||||
color: ${props => props.theme.colors.primary.main};
|
||||
> span {
|
||||
color: ${props => props.theme.colors.text};
|
||||
color: ${props => props.theme.colors.text.primary};
|
||||
}
|
||||
`;
|
||||
|
|
|
@ -46,7 +46,7 @@ export class Field extends React.Component<FieldProps> {
|
|||
>
|
||||
<PropertyBullet />
|
||||
{name}
|
||||
<ShelfIcon size={'1.2em'} direction={expanded ? 'down' : 'right'} />
|
||||
<ShelfIcon direction={expanded ? 'down' : 'right'} />
|
||||
{required && <RequiredLabel> required </RequiredLabel>}
|
||||
</ClickablePropertyNameCell>
|
||||
) : (
|
||||
|
|
|
@ -5,8 +5,8 @@ export const jsonStyles = css`
|
|||
display: none;
|
||||
}
|
||||
|
||||
font-family: ${props => props.theme.code.fontFamily};
|
||||
font-size: ${props => props.theme.code.fontSize};
|
||||
font-family: ${props => props.theme.typography.code.fontFamily};
|
||||
font-size: ${props => props.theme.typography.code.fontSize};
|
||||
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
|
|
|
@ -4,23 +4,23 @@ import styled, { css, extensionsHook, withProps } from '../../styled-components'
|
|||
export const linksCss = css`
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: ${props => props.theme.links.color};
|
||||
color: ${props => props.theme.typography.links.color};
|
||||
|
||||
&:visited {
|
||||
color: ${props => props.theme.links.visited};
|
||||
color: ${props => props.theme.typography.links.visited};
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: ${props => props.theme.links.hover};
|
||||
color: ${props => props.theme.typography.links.hover};
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const StyledMarkdownBlock = withProps<{ dense?: boolean; inline?: boolean }>(styled.div)`
|
||||
|
||||
font-family: ${props => props.theme.baseFont.family};
|
||||
font-weight: ${props => props.theme.baseFont.weight};
|
||||
line-height: ${props => props.theme.baseFont.lineHeight};
|
||||
font-family: ${props => props.theme.typography.fontFamily};
|
||||
font-weight: ${props => props.theme.typography.fontWeightRegular};
|
||||
line-height: ${props => props.theme.typography.lineHeight};
|
||||
|
||||
p {
|
||||
&:last-of-type {
|
||||
|
@ -42,27 +42,28 @@ export const StyledMarkdownBlock = withProps<{ dense?: boolean; inline?: boolean
|
|||
|
||||
h1 {
|
||||
${headerCommonMixin(1)};
|
||||
color: ${props => props.theme.colors.main};
|
||||
color: ${props => props.theme.colors.primary.main};
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
${headerCommonMixin(2)};
|
||||
color: ${props => props.theme.colors.text};
|
||||
color: ${props => props.theme.colors.text.primary};
|
||||
}
|
||||
|
||||
code {
|
||||
color: ${({ theme }) => theme.colors.code};
|
||||
background-color: ${({ theme }) => theme.colors.codeBg};
|
||||
font-family: ${props => props.theme.code.fontFamily};
|
||||
color: ${({ theme }) => theme.typography.code.color};
|
||||
background-color: ${({ theme }) => theme.typography.code.backgroundColor};
|
||||
|
||||
font-family: ${props => props.theme.typography.code.fontFamily};
|
||||
border-radius: 2px;
|
||||
border: 1px solid rgba(38, 50, 56, 0.1);
|
||||
padding: 0.1em 0.25em 0.2em;
|
||||
font-size: ${props => props.theme.code.fontSize};
|
||||
font-size: ${props => props.theme.typography.code.fontSize};
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: ${props => props.theme.code.fontFamily};
|
||||
font-family: ${props => props.theme.typography.code.fontFamily};
|
||||
white-space: pre-wrap;
|
||||
background-color: #263238;
|
||||
color: white;
|
||||
|
@ -75,6 +76,7 @@ export const StyledMarkdownBlock = withProps<{ dense?: boolean; inline?: boolean
|
|||
code {
|
||||
background-color: transparent;
|
||||
color: white;
|
||||
padding: 0;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
|
@ -140,7 +142,7 @@ export const StyledMarkdownBlock = withProps<{ dense?: boolean; inline?: boolean
|
|||
|
||||
${linkifyMixin('.share-link')};
|
||||
|
||||
${extensionsHook('Markdown')};
|
||||
|
||||
${linksCss}
|
||||
|
||||
${extensionsHook('Markdown')};
|
||||
`;
|
||||
|
|
|
@ -36,7 +36,7 @@ export const InvertedSimpleDropdown = StyledDropdown.extend`
|
|||
`;
|
||||
|
||||
export const NoSampleLabel = styled.div`
|
||||
font-family: ${props => props.theme.code.fontFamily};
|
||||
font-family: ${props => props.theme.typography.code.fontFamily};
|
||||
font-size: 12px;
|
||||
color: #ee807f;
|
||||
`;
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
import styled, { media } from '../../styled-components';
|
||||
|
||||
export const RedocWrap = styled.div`
|
||||
font-family: ${props => props.theme.baseFont.family};
|
||||
font-size: ${props => props.theme.baseFont.size};
|
||||
font-weight: ${props => props.theme.baseFont.weight};
|
||||
line-height: ${props => props.theme.baseFont.lineHeight};
|
||||
color: ${props => props.theme.colors.text};
|
||||
${({ theme }) => `
|
||||
font-family: ${theme.typography.fontFamily};
|
||||
font-size: ${theme.typography.fontSize};
|
||||
font-weight: ${theme.typography.fontWeightRegular};
|
||||
line-height: ${theme.typography.lineHeight};
|
||||
color: ${theme.colors.text.primary};
|
||||
display: flex;
|
||||
position: relative;
|
||||
text-align: left;
|
||||
|
||||
-webkit-font-smoothing: ${props => props.theme.baseFont.smoothing};
|
||||
font-smoothing: ${props => props.theme.baseFont.smoothing};
|
||||
${props =>
|
||||
(props.theme.baseFont.optimizeSpeed && 'text-rendering: optimizeSpeed !important') || ''};
|
||||
-webkit-font-smoothing: ${theme.typography.smoothing};
|
||||
font-smoothing: ${theme.typography.smoothing};
|
||||
${(theme.typography.optimizeSpeed && 'text-rendering: optimizeSpeed !important') || ''};
|
||||
|
||||
tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
text-size-adjust: 100%;
|
||||
|
@ -24,8 +24,9 @@ export const RedocWrap = styled.div`
|
|||
}
|
||||
|
||||
.redoc-markdown h1 {
|
||||
padding-top: ${props => props.theme.spacingUnit * 4}px;
|
||||
padding-top: ${theme.spacing.unit * 16}px;
|
||||
}
|
||||
`};
|
||||
`;
|
||||
|
||||
export const ApiContentWrap = styled.div`
|
||||
|
@ -40,12 +41,12 @@ export const ApiContentWrap = styled.div`
|
|||
`;
|
||||
|
||||
export const BackgroundStub = styled.div`
|
||||
background: ${props => props.theme.rightPanel.backgroundColor};
|
||||
background: ${({ theme }) => theme.rightPanel.backgroundColor};
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
width: calc((100% - ${props => props.theme.menu.width}) * 0.4);
|
||||
width: calc((100% - ${({ theme }) => theme.menu.width}) * 0.4);
|
||||
${media.lessThan('medium')`
|
||||
display: none;
|
||||
`};
|
||||
|
|
|
@ -49,7 +49,7 @@ export class RedocStandalone extends React.PureComponent<RedocStandaloneProps> {
|
|||
!loading ? (
|
||||
<Redoc store={store!} />
|
||||
) : hideLoading ? null : (
|
||||
<Loading color={normalizedOpts.theme.colors.main} />
|
||||
<Loading color={normalizedOpts.theme.colors.primary.main} />
|
||||
)
|
||||
}
|
||||
</StoreProvider>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { transparentize } from 'polished';
|
||||
// import { transparentize } from 'polished';
|
||||
|
||||
import { UnderlinedHeader } from '../../common-elements';
|
||||
import styled from '../../styled-components';
|
||||
|
@ -12,8 +12,8 @@ export const StyledResponseTitle = styled(ResponseTitle)`
|
|||
background-color: #f2f2f2;
|
||||
cursor: pointer;
|
||||
|
||||
color: ${props => props.theme.colors[props.type]};
|
||||
background-color: ${props => transparentize(0.92, props.theme.colors[props.type])};
|
||||
color: ${props => props.theme.colors.responses[props.type].color};
|
||||
background-color: ${props => props.theme.colors.responses[props.type].backgroundColor};
|
||||
|
||||
${props =>
|
||||
(props.empty &&
|
||||
|
|
|
@ -10,10 +10,11 @@ export const SearchWrap = styled.div`
|
|||
export const SearchInput = styled.input.attrs({
|
||||
className: 'search-input',
|
||||
})`
|
||||
width: calc(100% - ${props => props.theme.spacingUnit * 2}px);
|
||||
width: calc(100% - ${props => props.theme.spacing.unit * 8}px);
|
||||
box-sizing: border-box;
|
||||
margin: 0 ${props => props.theme.spacingUnit}px;
|
||||
padding: 5px ${props => props.theme.spacingUnit / 2}px 5px ${props => props.theme.spacingUnit}px;
|
||||
margin: 0 ${props => props.theme.spacing.unit * 4}px;
|
||||
padding: 5px ${props => props.theme.spacing.unit * 2}px 5px
|
||||
${props => props.theme.spacing.unit * 4}px;
|
||||
border: 0;
|
||||
border-bottom: 1px solid #e1e1e1;
|
||||
font-weight: bold;
|
||||
|
@ -38,7 +39,7 @@ export const SearchIcon = styled((props: any) => (
|
|||
className: 'search-icon',
|
||||
})`
|
||||
position: absolute;
|
||||
left: ${props => props.theme.spacingUnit}px;
|
||||
left: ${props => props.theme.spacing.unit * 4}px;
|
||||
height: 1.8em;
|
||||
width: 0.9em;
|
||||
|
||||
|
@ -48,7 +49,7 @@ export const SearchIcon = styled((props: any) => (
|
|||
`;
|
||||
|
||||
export const SearchResultsBox = styled.div`
|
||||
padding: ${props => props.theme.spacingUnit / 4}px 0;
|
||||
padding: ${props => props.theme.spacing.unit}px 0;
|
||||
background-color: #ededed;
|
||||
min-height: 150px;
|
||||
max-height: 250px;
|
||||
|
@ -80,9 +81,9 @@ export const SearchResultsBox = styled.div`
|
|||
export const ClearIcon = styled.i`
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
width: ${props => props.theme.spacingUnit / 2}px;
|
||||
width: ${props => props.theme.spacing.unit * 2}px;
|
||||
text-align: center;
|
||||
right: ${props => props.theme.spacingUnit}px;
|
||||
right: ${props => props.theme.spacing.unit * 4}px;
|
||||
line-height: 2em;
|
||||
vertical-align: middle;
|
||||
margin-right: 2px;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { transparentize } from 'polished';
|
||||
// import { transparentize } from 'polished';
|
||||
import * as React from 'react';
|
||||
|
||||
import styled from '../../styled-components';
|
||||
|
@ -8,9 +8,9 @@ import { SecurityRequirementModel } from '../../services/models/SecurityRequirem
|
|||
import { linksCss } from '../Markdown/styled.elements';
|
||||
|
||||
const ScopeName = styled.code`
|
||||
font-size: ${props => props.theme.code.fontSize};
|
||||
font-family: ${props => props.theme.code.fontFamily};
|
||||
border: 1px solid ${props => transparentize(0.85, props.theme.colors.text)};
|
||||
font-size: ${props => props.theme.typography.code.fontSize};
|
||||
font-family: ${props => props.theme.typography.code.fontFamily};
|
||||
border: 1px solid ${({ theme }) => theme.colors.border.dark};
|
||||
margin: 0 3px;
|
||||
padding: 0.2em;
|
||||
display: inline-block;
|
||||
|
@ -60,7 +60,7 @@ export class SecurityRequirement extends React.PureComponent<SecurityRequirement
|
|||
const AuthHeaderColumn = styled.td``;
|
||||
|
||||
const SecuritiesColumn = styled.td`
|
||||
width: ${props => props.theme.schemaView.defaultDetailsWidth};
|
||||
width: ${props => props.theme.schema.defaultDetailsWidth};
|
||||
`;
|
||||
|
||||
const AuthHeader = UnderlinedHeader.extend`
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import * as classnames from 'classnames';
|
||||
|
||||
import { deprecatedCss } from '../../common-elements';
|
||||
import { deprecatedCss, ShelfIcon } from '../../common-elements';
|
||||
import styled, { css, withProps } from '../../styled-components';
|
||||
|
||||
export const OperationBadge = withProps<{ type: string }>(styled.span).attrs({
|
||||
|
@ -8,7 +8,7 @@ export const OperationBadge = withProps<{ type: string }>(styled.span).attrs({
|
|||
})`
|
||||
width: 26px;
|
||||
display: inline-block;
|
||||
height: ${props => props.theme.code.fontSize};;
|
||||
height: ${props => props.theme.typography.code.fontSize};;
|
||||
background-color: #333;
|
||||
border-radius: 3px;
|
||||
vertical-align: top;
|
||||
|
@ -101,17 +101,17 @@ export const menuItemDepth = {
|
|||
font-size: 0.8em;
|
||||
padding-bottom: 0;
|
||||
cursor: default;
|
||||
color: ${props => props.theme.colors.text};
|
||||
color: ${props => props.theme.colors.text.primary};
|
||||
`,
|
||||
1: css`
|
||||
font-size: 0.929em;
|
||||
text-transform: ${({ theme }) => theme.menu.level1Items.textTransform};
|
||||
&:hover {
|
||||
color: ${props => props.theme.colors.main};
|
||||
color: ${props => props.theme.colors.primary.main};
|
||||
}
|
||||
`,
|
||||
2: css`
|
||||
color: ${props => props.theme.colors.text};
|
||||
color: ${props => props.theme.colors.text.primary};
|
||||
`,
|
||||
};
|
||||
|
||||
|
@ -128,14 +128,15 @@ export const MenuItemLabel = withProps<{
|
|||
}),
|
||||
})`
|
||||
cursor: pointer;
|
||||
color: ${props => (props.active ? props.theme.colors.main : props.theme.colors.text)};
|
||||
color: ${props =>
|
||||
props.active ? props.theme.colors.primary.main : props.theme.colors.text.primary};
|
||||
margin: 0;
|
||||
padding: 12.5px ${props => props.theme.spacingUnit}px;
|
||||
padding: 12.5px ${props => props.theme.spacing.unit * 4}px;
|
||||
${({ depth, type, theme }) =>
|
||||
(type === 'section' && depth > 1 && 'padding-left: ' + theme.spacingUnit * 2 + 'px;') || ''}
|
||||
(type === 'section' && depth > 1 && 'padding-left: ' + theme.spacing.unit * 8 + 'px;') || ''}
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-family: ${props => props.theme.headingsFont.family};
|
||||
font-family: ${props => props.theme.typography.headings.fontFamily};
|
||||
${props => menuItemDepth[props.depth]};
|
||||
background-color: ${props => (props.active ? menuItemActiveBg(props.depth) : '')};
|
||||
|
||||
|
@ -144,6 +145,14 @@ export const MenuItemLabel = withProps<{
|
|||
&:hover {
|
||||
background-color: ${props => menuItemActiveBg(props.depth)};
|
||||
}
|
||||
|
||||
${ShelfIcon} {
|
||||
height: ${({ theme }) => theme.menu.arrow.size};
|
||||
width: ${({ theme }) => theme.menu.arrow.size};
|
||||
polygon {
|
||||
fill: ${({ theme }) => theme.menu.arrow.color};
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const MenuItemTitle = withProps<{ width?: string }>(styled.span)`
|
||||
|
@ -156,8 +165,8 @@ export const MenuItemTitle = withProps<{ width?: string }>(styled.span)`
|
|||
|
||||
export const RedocAttribution = styled.div`
|
||||
font-size: 0.8em;
|
||||
margin-top: ${({ theme }) => `${theme.spacingUnit / 2}px`};
|
||||
padding: ${({ theme }) => `0 ${theme.spacingUnit}px`};
|
||||
margin-top: ${({ theme }) => `${theme.spacing.unit * 2}px`};
|
||||
padding: ${({ theme }) => `0 ${theme.spacing.unit * 4}px`};
|
||||
text-align: left;
|
||||
|
||||
opacity: 0.7;
|
||||
|
@ -165,7 +174,7 @@ export const RedocAttribution = styled.div`
|
|||
a,
|
||||
a:visited,
|
||||
a:hover {
|
||||
color: ${({ theme }) => theme.colors.text} !important;
|
||||
color: ${({ theme }) => theme.colors.text.primary} !important;
|
||||
border-top: 1px solid #e1e1e1;
|
||||
padding-top: 10px;
|
||||
display: block;
|
||||
|
|
|
@ -6,8 +6,8 @@ import { SampleControls, SampleControlsWrap } from '../../common-elements';
|
|||
import { CopyButtonWrapper } from '../../common-elements/CopyButtonWrapper';
|
||||
|
||||
const StyledPre = styled.pre`
|
||||
font-family: ${props => props.theme.code.fontFamily};
|
||||
font-size: ${props => props.theme.code.fontSize};
|
||||
font-family: ${props => props.theme.typography.code.fontFamily};
|
||||
font-size: ${props => props.theme.typography.code.fontSize};
|
||||
overflow-x: auto;
|
||||
margin: 0;
|
||||
|
||||
|
|
|
@ -62,5 +62,5 @@ const ChevronContainer = styled.div`
|
|||
align-self: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
color: ${props => props.theme.colors.main};
|
||||
color: ${props => props.theme.colors.primary.main};
|
||||
`;
|
||||
|
|
|
@ -49,7 +49,7 @@ const FloatingButton = styled.div`
|
|||
outline: none;
|
||||
user-select: none;
|
||||
background-color: #f2f2f2;
|
||||
color: ${props => props.theme.colors.main};
|
||||
color: ${props => props.theme.colors.primary.main};
|
||||
display: none;
|
||||
cursor: pointer;
|
||||
position: fixed;
|
||||
|
|
232
src/theme.ts
232
src/theme.ts
|
@ -1,23 +1,66 @@
|
|||
import { desaturate, lighten, transparentize } from 'polished';
|
||||
import { darken, desaturate, lighten, readableColor, transparentize } from 'polished';
|
||||
|
||||
const defaultTheme: ThemeInterface = {
|
||||
spacingUnit: 20,
|
||||
|
||||
spacing: {
|
||||
unit: 5,
|
||||
},
|
||||
breakpoints: {
|
||||
small: '50rem',
|
||||
medium: '85rem',
|
||||
large: '105rem',
|
||||
},
|
||||
colors: {
|
||||
main: '#32329f',
|
||||
success: '#00aa13',
|
||||
redirect: '#ffa500',
|
||||
error: '#e53935',
|
||||
info: '#87ceeb',
|
||||
text: '#263238',
|
||||
code: '#e53935',
|
||||
codeBg: 'rgba(38, 50, 56, 0.04)',
|
||||
warning: '#f1c400',
|
||||
tonalOffset: 0.3,
|
||||
primary: {
|
||||
main: '#32329f',
|
||||
light: ({ colors }) => lighten(colors.tonalOffset, colors.primary.main),
|
||||
dark: ({ colors }) => darken(colors.tonalOffset, colors.primary.main),
|
||||
contrastText: ({ colors }) => readableColor(colors.primary.main),
|
||||
},
|
||||
success: {
|
||||
main: '#00aa13',
|
||||
light: ({ colors }) => lighten(colors.tonalOffset, colors.success.main),
|
||||
dark: ({ colors }) => darken(colors.tonalOffset, colors.success.main),
|
||||
contrastText: ({ colors }) => readableColor(colors.success.main),
|
||||
},
|
||||
warning: {
|
||||
main: '#d4ad03',
|
||||
light: ({ colors }) => lighten(colors.tonalOffset, colors.warning.main),
|
||||
dark: ({ colors }) => darken(colors.tonalOffset, colors.warning.main),
|
||||
contrastText: ({ colors }) => readableColor(colors.warning.main),
|
||||
},
|
||||
error: {
|
||||
main: '#e53935',
|
||||
light: ({ colors }) => lighten(colors.tonalOffset, colors.error.main),
|
||||
dark: ({ colors }) => darken(colors.tonalOffset, colors.error.main),
|
||||
contrastText: ({ colors }) => readableColor(colors.error.main),
|
||||
},
|
||||
text: {
|
||||
primary: '#333333',
|
||||
secondary: ({ colors }) => lighten(colors.tonalOffset, colors.text.primary),
|
||||
},
|
||||
border: {
|
||||
dark: 'rgba(0,0,0, 0.1)',
|
||||
light: '#ffffff',
|
||||
},
|
||||
responses: {
|
||||
success: {
|
||||
color: ({ colors }) => colors.success.main,
|
||||
backgroundColor: ({ colors }) => transparentize(0.9, colors.success.main),
|
||||
},
|
||||
error: {
|
||||
color: ({ colors }) => colors.error.main,
|
||||
backgroundColor: ({ colors }) => transparentize(0.9, colors.error.main),
|
||||
},
|
||||
redirect: {
|
||||
color: '#ffa500',
|
||||
backgroundColor: ({ colors }) => transparentize(0.9, colors.responses.redirect.color),
|
||||
},
|
||||
info: {
|
||||
color: '#87ceeb',
|
||||
backgroundColor: ({ colors }) => transparentize(0.9, colors.responses.info.color),
|
||||
},
|
||||
},
|
||||
http: {
|
||||
get: '#6bbd5b',
|
||||
post: '#248fb2',
|
||||
|
@ -30,33 +73,50 @@ const defaultTheme: ThemeInterface = {
|
|||
head: '#c167e4',
|
||||
},
|
||||
},
|
||||
schemaView: {
|
||||
linesColor: theme => lighten(0.25, desaturate(0.35, theme.colors.main)),
|
||||
schema: {
|
||||
linesColor: theme =>
|
||||
lighten(
|
||||
theme.colors.tonalOffset,
|
||||
desaturate(theme.colors.tonalOffset, theme.colors.primary.main),
|
||||
),
|
||||
defaultDetailsWidth: '75%',
|
||||
typeNameColor: theme => transparentize(0.2, theme.colors.text),
|
||||
typeTitleColor: theme => theme.schemaView.typeNameColor,
|
||||
requireLabelColor: theme => theme.colors.error,
|
||||
typeNameColor: theme => theme.colors.text.secondary,
|
||||
typeTitleColor: theme => theme.schema.typeNameColor,
|
||||
requireLabelColor: theme => theme.colors.error.main,
|
||||
labelsTextSize: '0.9em',
|
||||
nestingSpacing: '1em',
|
||||
nestedBackground: '#fafafa',
|
||||
arrow: {
|
||||
size: '1.1em',
|
||||
color: theme => theme.colors.text.secondary,
|
||||
},
|
||||
},
|
||||
baseFont: {
|
||||
size: '14px',
|
||||
typography: {
|
||||
fontSize: '14px',
|
||||
lineHeight: '1.5',
|
||||
weight: '400',
|
||||
family: 'Roboto, sans-serif',
|
||||
fontWeightRegular: '400',
|
||||
fontWeightBold: '600',
|
||||
fontWeightLight: '300',
|
||||
fontFamily: 'Roboto, sans-serif',
|
||||
smoothing: 'antialiased',
|
||||
optimizeSpeed: true,
|
||||
},
|
||||
headingsFont: {
|
||||
family: 'Montserrat, sans-serif',
|
||||
},
|
||||
code: {
|
||||
fontSize: '13px',
|
||||
fontFamily: 'Courier, monospace',
|
||||
},
|
||||
links: {
|
||||
color: ({ colors }) => colors.main,
|
||||
visited: ({ colors }) => colors.main,
|
||||
hover: ({ colors }) => lighten(0.2, colors.main),
|
||||
|
||||
headings: {
|
||||
fontFamily: 'Montserrat, sans-serif',
|
||||
},
|
||||
code: {
|
||||
fontSize: '13px',
|
||||
fontFamily: 'Courier, monospace',
|
||||
lineHeight: ({ typography }) => typography.lineHeight,
|
||||
fontWeight: ({ typography }) => typography.fontWeightRegular,
|
||||
color: '#e53935',
|
||||
backgroundColor: 'rgba(38, 50, 56, 0.04)',
|
||||
},
|
||||
links: {
|
||||
color: ({ colors }) => colors.primary.main,
|
||||
visited: ({ colors }) => colors.primary.main,
|
||||
hover: ({ colors }) => lighten(0.2, colors.primary.main),
|
||||
},
|
||||
},
|
||||
menu: {
|
||||
width: '260px',
|
||||
|
@ -67,6 +127,10 @@ const defaultTheme: ThemeInterface = {
|
|||
level1Items: {
|
||||
textTransform: 'none',
|
||||
},
|
||||
arrow: {
|
||||
size: '1.5em',
|
||||
color: theme => theme.colors.text.primary,
|
||||
},
|
||||
},
|
||||
logo: {
|
||||
maxHeight: ({ menu }) => menu.width,
|
||||
|
@ -115,23 +179,55 @@ export function resolveTheme(theme: ThemeInterface): ResolvedThemeInterface {
|
|||
return JSON.parse(JSON.stringify(theme));
|
||||
}
|
||||
|
||||
export interface ColorSetting {
|
||||
main: string;
|
||||
light: string;
|
||||
dark: string;
|
||||
contrastText: string;
|
||||
}
|
||||
|
||||
export interface HTTPResponseColos {
|
||||
color: string;
|
||||
backgroundColor: string;
|
||||
}
|
||||
|
||||
export interface FontSettings {
|
||||
fontSize: string;
|
||||
fontWeight: string;
|
||||
fontFamily: string;
|
||||
lineHeight: string;
|
||||
color: string;
|
||||
}
|
||||
|
||||
export interface ResolvedThemeInterface {
|
||||
spacingUnit: number;
|
||||
spacing: {
|
||||
unit: number;
|
||||
};
|
||||
breakpoints: {
|
||||
small: string;
|
||||
medium: string;
|
||||
large: string;
|
||||
};
|
||||
colors: {
|
||||
main: string;
|
||||
success: string;
|
||||
redirect: string;
|
||||
error: string;
|
||||
info: string;
|
||||
text: string;
|
||||
code: string;
|
||||
codeBg: string;
|
||||
warning: string;
|
||||
tonalOffset: number;
|
||||
primary: ColorSetting;
|
||||
success: ColorSetting;
|
||||
warning: ColorSetting;
|
||||
error: ColorSetting;
|
||||
border: {
|
||||
light: string;
|
||||
dark: string;
|
||||
};
|
||||
text: {
|
||||
primary: string;
|
||||
secondary: string;
|
||||
};
|
||||
responses: {
|
||||
success: HTTPResponseColos;
|
||||
error: HTTPResponseColos;
|
||||
redirect: HTTPResponseColos;
|
||||
info: HTTPResponseColos;
|
||||
};
|
||||
http: {
|
||||
get: string;
|
||||
post: string;
|
||||
|
@ -144,33 +240,43 @@ export interface ResolvedThemeInterface {
|
|||
head: string;
|
||||
};
|
||||
};
|
||||
schemaView: {
|
||||
schema: {
|
||||
linesColor: string;
|
||||
defaultDetailsWidth: string;
|
||||
typeNameColor: string;
|
||||
typeTitleColor: string;
|
||||
requireLabelColor: string;
|
||||
labelsTextSize: string;
|
||||
nestingSpacing: string;
|
||||
nestedBackground: string;
|
||||
arrow: {
|
||||
size: string;
|
||||
color: string;
|
||||
};
|
||||
};
|
||||
baseFont: {
|
||||
size: string;
|
||||
typography: {
|
||||
fontSize: string;
|
||||
lineHeight: string;
|
||||
weight: string;
|
||||
family: string;
|
||||
fontWeightLight: string;
|
||||
fontWeightRegular: string;
|
||||
fontWeightBold: string;
|
||||
fontFamily: string;
|
||||
|
||||
smoothing: string;
|
||||
optimizeSpeed: boolean;
|
||||
};
|
||||
headingsFont: {
|
||||
family: string;
|
||||
};
|
||||
code: {
|
||||
fontSize: string;
|
||||
fontFamily: string;
|
||||
};
|
||||
links: {
|
||||
color: string;
|
||||
visited: string;
|
||||
hover: string;
|
||||
|
||||
code: FontSettings & {
|
||||
backgroundColor: string;
|
||||
};
|
||||
headings: {
|
||||
fontFamily: string;
|
||||
};
|
||||
|
||||
links: {
|
||||
color: string;
|
||||
visited: string;
|
||||
hover: string;
|
||||
};
|
||||
};
|
||||
menu: {
|
||||
width: string;
|
||||
|
@ -181,6 +287,10 @@ export interface ResolvedThemeInterface {
|
|||
level1Items: {
|
||||
textTransform: string;
|
||||
};
|
||||
arrow: {
|
||||
size: string;
|
||||
color: string;
|
||||
};
|
||||
};
|
||||
logo: {
|
||||
maxHeight: string;
|
||||
|
@ -188,8 +298,8 @@ export interface ResolvedThemeInterface {
|
|||
};
|
||||
rightPanel: {
|
||||
backgroundColor: string;
|
||||
width: string;
|
||||
textColor: string;
|
||||
width: string;
|
||||
};
|
||||
|
||||
extensionsHook?: (name: string, props: any) => string;
|
||||
|
|
Loading…
Reference in New Issue
Block a user